diff --git a/plugin-designs/cities-internet/connectivity-map.vue b/plugin-designs/cities-internet/connectivity-map.vue index eac907930..52ff68996 100644 --- a/plugin-designs/cities-internet/connectivity-map.vue +++ b/plugin-designs/cities-internet/connectivity-map.vue @@ -46,6 +46,9 @@ import LocationButton from '@map/components/map-controls/LocationButton.vue' import FullscreenButton from '@map/components/map-controls/FullscreenButton.vue' import ShareButton from '@map/components/map-controls/ShareButton.vue' import { resolveAssetsBase } from '@map/utils/embedBase.js' +import { resolveMapProvider } from '@map/composables/useMapProvider.js' +import { ensureEngineScript, engineGlobal } from '@map/composables/useMapInstance.js' +import { resolveNamedStyle } from '@map/styles/registry.js' const profileConfig = inject('profileConfig', ref(null)) const isDark = computed(() => profileConfig.value?.isDark === true) @@ -127,14 +130,28 @@ function paint(map, adm0) { map.on('mouseleave', 'ci-fill', () => { map.getCanvas().style.cursor = '' }) } +// ── HONOUR THE PROVIDER SWITCH: this profile builds its map RAW ───────────── +// Every bundle that goes through useMapInstance gets the switch for free. This one calls +// `new gl.Map` directly, so it was invisible to it — MEASURED by sweeping all 16 isMap leaves: +// at ?provider=maplibre this leaf still loaded Mapbox and made 18 requests to api.mapbox.com, +// identical to its mapbox run, while 12 of 16 siblings swapped. Same shape and same fix as +// my-upg-100-list; the engine loader is IMPORTED, never a second copy of the ENGINES table. +// No geocoder is mounted here, so the deferred-search-bar rule does not apply to this profile. +const ciProvider = resolveMapProvider(inject('profileConfig', null)) + onMounted(async () => { - const gl = window.mapboxgl - if (!gl || !mapEl.value) { err.value = 'mapbox-gl not loaded'; return } + try { await ensureEngineScript(ciProvider) } catch (_) { /* fall through to the notice below */ } + const gl = engineGlobal(ciProvider) || window.mapboxgl + if (!gl || !mapEl.value) { err.value = 'map engine not loaded'; return } try { const adm0 = await load() const map = new gl.Map({ container: mapEl.value, - style: isDark.value ? 'mapbox://styles/mapbox/dark-v11' : 'mapbox://styles/mapbox/light-v11', + // Paired through the registry so both engines show the same intent: 'ink' is the + // near-black entry (mapbox dark-v11 / OpenFreeMap dark) and 'paper' the near-white one + // (light-v11 / positron). Falls back to the literal if a name ever stops resolving. + style: resolveNamedStyle(isDark.value ? 'ink' : 'paper', ciProvider).style + || (isDark.value ? 'mapbox://styles/mapbox/dark-v11' : 'mapbox://styles/mapbox/light-v11'), accessToken: mapboxToken.value, center: [42, 18], zoom: 1.3, projection: 'mercator', attributionControl: false, }) diff --git a/public/doxa-maps/cities-internet/cities-internet.js b/public/doxa-maps/cities-internet/cities-internet.js index 48830397b..8cc4ad0cc 100644 --- a/public/doxa-maps/cities-internet/cities-internet.js +++ b/public/doxa-maps/cities-internet/cities-internet.js @@ -1,45 +1,45 @@ -(function(){"use strict";var lr=typeof document<"u"?document.currentScript:null;const S_="modulepreload",x_=function(e){return"/"+e},I_={},cr=function(t,n,o){let s=Promise.resolve();function r(i){const a=new Event("vite:preloadError",{cancelable:!0});if(a.payload=i,window.dispatchEvent(a),!a.defaultPrevented)throw i}return s.then(i=>{for(const a of i||[])a.status==="rejected"&&r(a.reason);return t().catch(r)})};/** +(function(){"use strict";var cr=typeof document<"u"?document.currentScript:null;const q_="modulepreload",K_=function(e){return"/"+e},X_={},ur=function(t,n,o){let s=Promise.resolve();function r(i){const a=new Event("vite:preloadError",{cancelable:!0});if(a.payload=i,window.dispatchEvent(a),!a.defaultPrevented)throw i}return s.then(i=>{for(const a of i||[])a.status==="rejected"&&r(a.reason);return t().catch(r)})};/** * @vue/shared v3.5.42 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT -**/function ur(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const _e={},_n=[],ht=()=>{},Ns=()=>!1,go=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),mo=e=>e.startsWith("onUpdate:"),Ce=Object.assign,pr=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},Hl=Object.prototype.hasOwnProperty,he=(e,t)=>Hl.call(e,t),ee=Array.isArray,Gt=e=>Pn(e)==="[object Map]",_o=e=>Pn(e)==="[object Set]",Cs=e=>Pn(e)==="[object Date]",oe=e=>typeof e=="function",be=e=>typeof e=="string",Xe=e=>typeof e=="symbol",ge=e=>e!==null&&typeof e=="object",As=e=>(ge(e)||oe(e))&&oe(e.then)&&oe(e.catch),Es=Object.prototype.toString,Pn=e=>Es.call(e),ql=e=>Pn(e).slice(8,-1),bo=e=>Pn(e)==="[object Object]",yo=e=>be(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,Bn=ur(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),vo=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},zl=/-\w/g,Fe=vo(e=>e.replace(zl,t=>t.slice(1).toUpperCase())),Kl=/\B([A-Z])/g,tt=vo(e=>e.replace(Kl,"-$1").toLowerCase()),wo=vo(e=>e.charAt(0).toUpperCase()+e.slice(1)),dr=vo(e=>e?`on${wo(e)}`:""),gt=(e,t)=>!Object.is(e,t),fr=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:o,value:n})},Xl=e=>{const t=parseFloat(e);return isNaN(t)?e:t},Ls=e=>{const t=be(e)?Number(e):NaN;return isNaN(t)?e:t};let Ss;const ko=()=>Ss||(Ss=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function bn(e){if(ee(e)){const t={};for(let n=0;n{if(n){const o=n.split(Zl);o.length>1&&(t[o[0].trim()]=o[1].trim())}}),t}function Te(e){let t="";if(be(e))t=e;else if(ee(e))for(let n=0;n!!(e&&e.__v_isRef===!0),Q=e=>be(e)?e:e==null?"":ee(e)||ge(e)&&(e.toString===Es||!oe(e.toString))?Fs(e)?Q(e.value):JSON.stringify(e,Ms,2):String(e),Ms=(e,t)=>Fs(t)?Ms(e,t.value):Gt(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[o,s],r)=>(n[hr(o,r)+" =>"]=s,n),{})}:_o(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>hr(n))}:Xe(t)?hr(t):ge(t)&&!ee(t)&&!bo(t)?String(t):t,hr=(e,t="")=>{var n;return Xe(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};/** +**/function pr(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const _e={},_n=[],ft=()=>{},As=()=>!1,ho=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),mo=e=>e.startsWith("onUpdate:"),Ne=Object.assign,dr=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},Kl=Object.prototype.hasOwnProperty,fe=(e,t)=>Kl.call(e,t),ee=Array.isArray,jt=e=>Mn(e)==="[object Map]",_o=e=>Mn(e)==="[object Set]",Es=e=>Mn(e)==="[object Date]",oe=e=>typeof e=="function",be=e=>typeof e=="string",Xe=e=>typeof e=="symbol",he=e=>e!==null&&typeof e=="object",Ts=e=>(he(e)||oe(e))&&oe(e.then)&&oe(e.catch),Ss=Object.prototype.toString,Mn=e=>Ss.call(e),Xl=e=>Mn(e).slice(8,-1),bo=e=>Mn(e)==="[object Object]",yo=e=>be(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,Rn=pr(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),vo=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},Jl=/-\w/g,Le=vo(e=>e.replace(Jl,t=>t.slice(1).toUpperCase())),Zl=/\B([A-Z])/g,tt=vo(e=>e.replace(Zl,"-$1").toLowerCase()),wo=vo(e=>e.charAt(0).toUpperCase()+e.slice(1)),gr=vo(e=>e?`on${wo(e)}`:""),ht=(e,t)=>!Object.is(e,t),fr=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:o,value:n})},Ql=e=>{const t=parseFloat(e);return isNaN(t)?e:t},Fs=e=>{const t=be(e)?Number(e):NaN;return isNaN(t)?e:t};let xs;const $o=()=>xs||(xs=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function bn(e){if(ee(e)){const t={};for(let n=0;n{if(n){const o=n.split(tc);o.length>1&&(t[o[0].trim()]=o[1].trim())}}),t}function Te(e){let t="";if(be(e))t=e;else if(ee(e))for(let n=0;n!!(e&&e.__v_isRef===!0),Q=e=>be(e)?e:e==null?"":ee(e)||he(e)&&(e.toString===Ss||!oe(e.toString))?Ms(e)?Q(e.value):JSON.stringify(e,Rs,2):String(e),Rs=(e,t)=>Ms(t)?Rs(e,t.value):jt(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[o,s],r)=>(n[hr(o,r)+" =>"]=s,n),{})}:_o(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>hr(n))}:Xe(t)?hr(t):he(t)&&!ee(t)&&!bo(t)?String(t):t,hr=(e,t="")=>{var n;return Xe(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};/** * @vue/reactivity v3.5.42 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT -**/let Se;class Ps{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&&Se&&(Se.active?(this.parent=Se,this.index=(Se.scopes||(Se.scopes=[])).push(this)-1):(this._active=!1,this._warnOnRun=!1))}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,n;if(this.scopes){const o=this.scopes.slice();for(t=0,n=o.length;t0&&--this._on===0){if(Se===this)Se=this.prevScope;else{let t=Se;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 n,o;for(n=0,o=this.effects.length;n0)return;if(Rn){let t=Rn;for(Rn=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;Dn;){let t=Dn;for(Dn=void 0;t;){const n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(o){e||(e=o)}t=n}}if(e)throw e}function Us(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function js(e){let t,n=e.depsTail,o=n;for(;o;){const s=o.prevDep;o.version===-1?(o===n&&(n=s),vr(o),rc(o)):t=o,o.dep.activeLink=o.prevActiveLink,o.prevActiveLink=void 0,o=s}e.deps=t,e.depsTail=n}function yr(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(Gs(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function Gs(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===Wn)||(e.globalVersion=Wn,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!yr(e))))return;e.flags|=2;const t=e.dep,n=ye,o=it;ye=e,it=!0;try{Us(e);const s=e.fn(e._value);(t.version===0||gt(s,e._value))&&(e.flags|=128,e._value=s,t.version++)}catch(s){throw t.version++,s}finally{ye=n,it=o,js(e),e.flags&=-3}}function vr(e,t=!1){const{dep:n,prevSub:o,nextSub:s}=e;if(o&&(o.nextSub=s,e.prevSub=void 0),s&&(s.prevSub=o,e.nextSub=void 0),n.subs===e&&(n.subs=o,!o&&n.computed)){n.computed.flags&=-5;for(let r=n.computed.deps;r;r=r.nextDep)vr(r,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function rc(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}let it=!0;const Ys=[];function mt(){Ys.push(it),it=!1}function _t(){const e=Ys.pop();it=e===void 0?!0:e}function Vs(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=ye;ye=void 0;try{t()}finally{ye=n}}}let Wn=0;class sc{constructor(t,n){this.sub=t,this.dep=n,this.version=n.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class wr{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(!ye||!it||ye===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==ye)n=this.activeLink=new sc(ye,this),ye.deps?(n.prevDep=ye.depsTail,ye.depsTail.nextDep=n,ye.depsTail=n):ye.deps=ye.depsTail=n,Hs(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const o=n.nextDep;o.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=o),n.prevDep=ye.depsTail,n.nextDep=void 0,ye.depsTail.nextDep=n,ye.depsTail=n,ye.deps===n&&(ye.deps=o)}return n}trigger(t){this.version++,Wn++,this.notify(t)}notify(t){_r();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{br()}}}function Hs(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let o=t.deps;o;o=o.nextDep)Hs(o)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const Oo=new WeakMap,an=Symbol(""),kr=Symbol(""),Un=Symbol("");function je(e,t,n){if(it&&ye){let o=Oo.get(e);o||Oo.set(e,o=new Map);let s=o.get(n);s||(o.set(n,s=new wr),s.map=o,s.key=n),s.track()}}function At(e,t,n,o,s,r){const i=Oo.get(e);if(!i){Wn++;return}const a=l=>{l&&l.trigger()};if(_r(),t==="clear")i.forEach(a);else{const l=ee(e),c=l&&yo(n);if(l&&n==="length"){const u=Number(o);i.forEach((f,h)=>{(h==="length"||h===Un||!Xe(h)&&h>=u)&&a(f)})}else switch((n!==void 0||i.has(void 0))&&a(i.get(n)),c&&a(i.get(Un)),t){case"add":l?c&&a(i.get("length")):(a(i.get(an)),Gt(e)&&a(i.get(kr)));break;case"delete":l||(a(i.get(an)),Gt(e)&&a(i.get(kr)));break;case"set":Gt(e)&&a(i.get(an));break}}br()}function ic(e,t){const n=Oo.get(e);return n&&n.get(t)}function yn(e){const t=pe(e);return t===e?t:(je(t,"iterate",Un),Je(e)?t:t.map(at))}function No(e){return je(e=pe(e),"iterate",Un),e}function bt(e,t){return Lt(e)?wn(Tt(e)?at(t):t):at(t)}const ac={__proto__:null,[Symbol.iterator](){return $r(this,Symbol.iterator,e=>bt(this,e))},concat(...e){return yn(this).concat(...e.map(t=>ee(t)?yn(t):t))},entries(){return $r(this,"entries",e=>(e[1]=bt(this,e[1]),e))},every(e,t){return Et(this,"every",e,t,void 0,arguments)},filter(e,t){return Et(this,"filter",e,t,n=>n.map(o=>bt(this,o)),arguments)},find(e,t){return Et(this,"find",e,t,n=>bt(this,n),arguments)},findIndex(e,t){return Et(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return Et(this,"findLast",e,t,n=>bt(this,n),arguments)},findLastIndex(e,t){return Et(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return Et(this,"forEach",e,t,void 0,arguments)},includes(...e){return Or(this,"includes",e)},indexOf(...e){return Or(this,"indexOf",e)},join(e){return yn(this).join(e)},lastIndexOf(...e){return Or(this,"lastIndexOf",e)},map(e,t){return Et(this,"map",e,t,void 0,arguments)},pop(){return jn(this,"pop")},push(...e){return jn(this,"push",e)},reduce(e,...t){return qs(this,"reduce",e,t)},reduceRight(e,...t){return qs(this,"reduceRight",e,t)},shift(){return jn(this,"shift")},some(e,t){return Et(this,"some",e,t,void 0,arguments)},splice(...e){return jn(this,"splice",e)},toReversed(){return yn(this).toReversed()},toSorted(e){return yn(this).toSorted(e)},toSpliced(...e){return yn(this).toSpliced(...e)},unshift(...e){return jn(this,"unshift",e)},values(){return $r(this,"values",e=>bt(this,e))}};function $r(e,t,n){const o=No(e),s=o[t]();return o!==e&&!Je(e)&&(s._next=s.next,s.next=()=>{const r=s._next();return r.done||(r.value=n(r.value)),r}),s}const lc=Array.prototype;function Et(e,t,n,o,s,r){const i=No(e),a=i!==e&&!Je(e),l=i[t];if(l!==lc[t]){const f=l.apply(e,r);return a?at(f):f}let c=n;i!==e&&(a?c=function(f,h){return n.call(this,bt(e,f),h,e)}:n.length>2&&(c=function(f,h){return n.call(this,f,h,e)}));const u=l.call(i,c,o);return a&&s?s(u):u}function qs(e,t,n,o){const s=No(e),r=s!==e&&!Je(e);let i=n,a=!1;s!==e&&(r?(a=o.length===0,i=function(c,u,f){return a&&(a=!1,c=bt(e,c)),n.call(this,c,bt(e,u),f,e)}):n.length>3&&(i=function(c,u,f){return n.call(this,c,u,f,e)}));const l=s[t](i,...o);return a?bt(e,l):l}function Or(e,t,n){const o=pe(e);je(o,"iterate",Un);const s=o[t](...n);return(s===-1||s===!1)&&So(n[0])?(n[0]=pe(n[0]),o[t](...n)):s}function jn(e,t,n=[]){mt(),_r();const o=pe(e)[t].apply(e,n);return br(),_t(),o}const cc=ur("__proto__,__v_isRef,__isVue"),zs=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(Xe));function uc(e){Xe(e)||(e=String(e));const t=pe(this);return je(t,"has",e),t.hasOwnProperty(e)}class Ks{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,o){if(n==="__v_skip")return t.__v_skip;const s=this._isReadonly,r=this._isShallow;if(n==="__v_isReactive")return!s;if(n==="__v_isReadonly")return s;if(n==="__v_isShallow")return r;if(n==="__v_raw")return o===(s?r?ti:ei:r?Qs:Zs).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(o)?t:void 0;const i=ee(t);if(!s){let l;if(i&&(l=ac[n]))return l;if(n==="hasOwnProperty")return uc}const a=Reflect.get(t,n,Ne(t)?t:o);if((Xe(n)?zs.has(n):cc(n))||(s||je(t,"get",n),r))return a;if(Ne(a)){const l=i&&yo(n)?a:a.value;return s&&ge(l)?Cr(l):l}return ge(a)?s?Cr(a):To(a):a}}class Xs extends Ks{constructor(t=!1){super(!1,t)}set(t,n,o,s){let r=t[n];const i=ee(t)&&yo(n);if(!this._isShallow){const c=Lt(r);if(!Je(o)&&!Lt(o)&&(r=pe(r),o=pe(o)),!i&&Ne(r)&&!Ne(o))return c||(r.value=o),!0}const a=i?Number(n)e,Co=e=>Reflect.getPrototypeOf(e);function gc(e,t,n){return function(...o){const s=this.__v_raw,r=pe(s),i=Gt(r),a=e==="entries"||e===Symbol.iterator&&i,l=e==="keys"&&i,c=s[e](...o),u=n?Nr:t?wn:at;return!t&&je(r,"iterate",l?kr:an),Ce(Object.create(c),{next(){const{value:f,done:h}=c.next();return h?{value:f,done:h}:{value:a?[u(f[0]),u(f[1])]:u(f),done:h}}})}}function Ao(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function mc(e,t){const n={get(s){const r=this.__v_raw,i=pe(r),a=pe(s);e||(gt(s,a)&&je(i,"get",s),je(i,"get",a));const{has:l}=Co(i),c=t?Nr:e?wn:at;if(l.call(i,s))return c(r.get(s));if(l.call(i,a))return c(r.get(a));r!==i&&r.get(s)},get size(){const s=this.__v_raw;return!e&&je(pe(s),"iterate",an),s.size},has(s){const r=this.__v_raw,i=pe(r),a=pe(s);return e||(gt(s,a)&&je(i,"has",s),je(i,"has",a)),s===a?r.has(s):r.has(s)||r.has(a)},forEach(s,r){const i=this,a=i.__v_raw,l=pe(a),c=t?Nr:e?wn:at;return!e&&je(l,"iterate",an),a.forEach((u,f)=>s.call(r,c(u),c(f),i))}};return Ce(n,e?{add:Ao("add"),set:Ao("set"),delete:Ao("delete"),clear:Ao("clear")}:{add(s){const r=pe(this),i=Co(r),a=pe(s),l=!t&&!Je(s)&&!Lt(s)?a:s;return i.has.call(r,l)||gt(s,l)&&i.has.call(r,s)||gt(a,l)&&i.has.call(r,a)||(r.add(l),At(r,"add",l,l)),this},set(s,r){!t&&!Je(r)&&!Lt(r)&&(r=pe(r));const i=pe(this),{has:a,get:l}=Co(i);let c=a.call(i,s);c||(s=pe(s),c=a.call(i,s));const u=l.call(i,s);return i.set(s,r),c?gt(r,u)&&At(i,"set",s,r):At(i,"add",s,r),this},delete(s){const r=pe(this),{has:i,get:a}=Co(r);let l=i.call(r,s);l||(s=pe(s),l=i.call(r,s)),a&&a.call(r,s);const c=r.delete(s);return l&&At(r,"delete",s,void 0),c},clear(){const s=pe(this),r=s.size!==0,i=s.clear();return r&&At(s,"clear",void 0,void 0),i}}),["keys","values","entries",Symbol.iterator].forEach(s=>{n[s]=gc(s,e,t)}),n}function Eo(e,t){const n=mc(e,t);return(o,s,r)=>s==="__v_isReactive"?!e:s==="__v_isReadonly"?e:s==="__v_raw"?o:Reflect.get(he(n,s)&&s in o?n:o,s,r)}const _c={get:Eo(!1,!1)},bc={get:Eo(!1,!0)},yc={get:Eo(!0,!1)},vc={get:Eo(!0,!0)},Zs=new WeakMap,Qs=new WeakMap,ei=new WeakMap,ti=new WeakMap;function wc(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function To(e){return Lt(e)?e:Lo(e,!1,pc,_c,Zs)}function kc(e){return Lo(e,!1,fc,bc,Qs)}function Cr(e){return Lo(e,!0,dc,yc,ei)}function M_(e){return Lo(e,!0,hc,vc,ti)}function Lo(e,t,n,o,s){if(!ge(e)||e.__v_raw&&!(t&&e.__v_isReactive)||e.__v_skip||!Object.isExtensible(e))return e;const r=s.get(e);if(r)return r;const i=wc(ql(e));if(i===0)return e;const a=new Proxy(e,i===2?o:n);return s.set(e,a),a}function Tt(e){return Lt(e)?Tt(e.__v_raw):!!(e&&e.__v_isReactive)}function Lt(e){return!!(e&&e.__v_isReadonly)}function Je(e){return!!(e&&e.__v_isShallow)}function So(e){return e?!!e.__v_raw:!1}function pe(e){const t=e&&e.__v_raw;return t?pe(t):e}function vn(e){return!he(e,"__v_skip")&&Object.isExtensible(e)&&Ts(e,"__v_skip",!0),e}const at=e=>ge(e)?To(e):e,wn=e=>ge(e)?Cr(e):e;function Ne(e){return e?e.__v_isRef===!0:!1}function re(e){return ni(e,!1)}function Gn(e){return ni(e,!0)}function ni(e,t){return Ne(e)?e:new $c(e,t)}class $c{constructor(t,n){this.dep=new wr,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:pe(t),this._value=n?t:at(t),this.__v_isShallow=n}get value(){return this.dep.track(),this._value}set value(t){const n=this._rawValue,o=this.__v_isShallow||Je(t)||Lt(t);t=o?t:pe(t),gt(t,n)&&(this._rawValue=t,this._value=o?t:at(t),this.dep.trigger())}}function ze(e){return Ne(e)?e.value:e}const Oc={get:(e,t,n)=>t==="__v_raw"?e:ze(Reflect.get(e,t,n)),set:(e,t,n,o)=>{const s=e[t];return Ne(s)&&!Ne(n)?(s.value=n,!0):Reflect.set(e,t,n,o)}};function oi(e){return Tt(e)?e:new Proxy(e,Oc)}function Nc(e){const t=ee(e)?new Array(e.length):{};for(const n in e)t[n]=Ac(e,n);return t}class Cc{constructor(t,n,o){this._object=t,this._defaultValue=o,this.__v_isRef=!0,this._value=void 0,this._key=Xe(n)?n:String(n),this._raw=pe(t);let s=!0,r=t;if(!ee(t)||Xe(this._key)||!yo(this._key))do s=!So(r)||Je(r);while(s&&(r=r.__v_raw));this._shallow=s}get value(){let t=this._object[this._key];return this._shallow&&(t=ze(t)),this._value=t===void 0?this._defaultValue:t}set value(t){if(this._shallow&&Ne(this._raw[this._key])){const n=this._object[this._key];if(Ne(n)){n.value=t;return}}this._object[this._key]=t}get dep(){return ic(this._raw,this._key)}}function Ac(e,t,n){return new Cc(e,t,n)}class Ec{constructor(t,n,o){this.fn=t,this.setter=n,this._value=void 0,this.dep=new wr(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=Wn-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=o}notify(){if(this.flags|=16,!(this.flags&8)&&ye!==this)return Ws(this,!0),!0}get value(){const t=this.dep.track();return Gs(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function Tc(e,t,n=!1){let o,s;return oe(e)?o=e:(o=e.get,s=e.set),new Ec(o,s,n)}const xo={},Io=new WeakMap;let ln;function Lc(e,t=!1,n=ln){if(n){let o=Io.get(n);o||Io.set(n,o=[]),o.push(e)}}function Sc(e,t,n=_e){const{immediate:o,deep:s,once:r,scheduler:i,augmentJob:a,call:l}=n,c=b=>s?b:Je(b)||s===!1||s===0?St(b,1):St(b);let u,f,h,m,v=!1,$=!1;if(Ne(e)?(f=()=>e.value,v=Je(e)):Tt(e)?(f=()=>c(e),v=!0):ee(e)?($=!0,v=e.some(b=>Tt(b)||Je(b)),f=()=>e.map(b=>{if(Ne(b))return b.value;if(Tt(b))return c(b);if(oe(b))return l?l(b,2):b()})):oe(e)?t?f=l?()=>l(e,2):e:f=()=>{if(h){mt();try{h()}finally{_t()}}const b=ln;ln=u;try{return l?l(e,3,[m]):e(m)}finally{ln=b}}:f=ht,t&&s){const b=f,T=s===!0?1/0:s;f=()=>St(b(),T)}const A=Bs(),N=()=>{u.stop(),A&&A.active&&pr(A.effects,u)};if(r&&t){const b=t;t=(...T)=>{const k=b(...T);return N(),k}}let C=$?new Array(e.length).fill(xo):xo;const _=b=>{if(!(!(u.flags&1)||!u.dirty&&!b))if(t){const T=u.run();if(b||s||v||($?T.some((k,E)=>gt(k,C[E])):gt(T,C))){h&&h();const k=ln;ln=u;try{const E=[T,C===xo?void 0:$&&C[0]===xo?[]:C,m];C=T,l?l(t,3,E):t(...E)}finally{ln=k}}}else u.run()};return a&&a(_),u=new Ds(f),u.scheduler=i?()=>i(_,!1):_,m=b=>Lc(b,!1,u),h=u.onStop=()=>{const b=Io.get(u);if(b){if(l)l(b,4);else for(const T of b)T();Io.delete(u)}},t?o?_(!0):C=u.run():i?i(_.bind(null,!0),!0):u.run(),N.pause=u.pause.bind(u),N.resume=u.resume.bind(u),N.stop=N,N}function St(e,t=1/0,n){if(t<=0||!ge(e)||e.__v_skip||(n=n||new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,Ne(e))St(e.value,t,n);else if(ee(e))for(let o=0;o{St(o,t,n)});else if(bo(e)){for(const o in e)St(e[o],t,n);for(const o of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,o)&&St(e[o],t,n)}return e}/** +**/let Pe;class Bs{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&&Pe&&(Pe.active?(this.parent=Pe,this.index=(Pe.scopes||(Pe.scopes=[])).push(this)-1):(this._active=!1,this._warnOnRun=!1))}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,n;if(this.scopes){const o=this.scopes.slice();for(t=0,n=o.length;t0&&--this._on===0){if(Pe===this)Pe=this.prevScope;else{let t=Pe;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 n,o;for(n=0,o=this.effects.length;n0)return;if(Dn){let t=Dn;for(Dn=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;Bn;){let t=Bn;for(Bn=void 0;t;){const n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(o){e||(e=o)}t=n}}if(e)throw e}function js(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function Vs(e){let t,n=e.depsTail,o=n;for(;o;){const s=o.prevDep;o.version===-1?(o===n&&(n=s),wr(o),ac(o)):t=o,o.dep.activeLink=o.prevActiveLink,o.prevActiveLink=void 0,o=s}e.deps=t,e.depsTail=n}function vr(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(Ys(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function Ys(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===Wn)||(e.globalVersion=Wn,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!vr(e))))return;e.flags|=2;const t=e.dep,n=ye,o=it;ye=e,it=!0;try{js(e);const s=e.fn(e._value);(t.version===0||ht(s,e._value))&&(e.flags|=128,e._value=s,t.version++)}catch(s){throw t.version++,s}finally{ye=n,it=o,Vs(e),e.flags&=-3}}function wr(e,t=!1){const{dep:n,prevSub:o,nextSub:s}=e;if(o&&(o.nextSub=s,e.prevSub=void 0),s&&(s.prevSub=o,e.nextSub=void 0),n.subs===e&&(n.subs=o,!o&&n.computed)){n.computed.flags&=-5;for(let r=n.computed.deps;r;r=r.nextDep)wr(r,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function ac(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}let it=!0;const Hs=[];function mt(){Hs.push(it),it=!1}function _t(){const e=Hs.pop();it=e===void 0?!0:e}function zs(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=ye;ye=void 0;try{t()}finally{ye=n}}}let Wn=0;class lc{constructor(t,n){this.sub=t,this.dep=n,this.version=n.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class $r{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(!ye||!it||ye===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==ye)n=this.activeLink=new lc(ye,this),ye.deps?(n.prevDep=ye.depsTail,ye.depsTail.nextDep=n,ye.depsTail=n):ye.deps=ye.depsTail=n,qs(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const o=n.nextDep;o.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=o),n.prevDep=ye.depsTail,n.nextDep=void 0,ye.depsTail.nextDep=n,ye.depsTail=n,ye.deps===n&&(ye.deps=o)}return n}trigger(t){this.version++,Wn++,this.notify(t)}notify(t){br();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{yr()}}}function qs(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let o=t.deps;o;o=o.nextDep)qs(o)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const Co=new WeakMap,an=Symbol(""),kr=Symbol(""),Gn=Symbol("");function Ue(e,t,n){if(it&&ye){let o=Co.get(e);o||Co.set(e,o=new Map);let s=o.get(n);s||(o.set(n,s=new $r),s.map=o,s.key=n),s.track()}}function At(e,t,n,o,s,r){const i=Co.get(e);if(!i){Wn++;return}const a=l=>{l&&l.trigger()};if(br(),t==="clear")i.forEach(a);else{const l=ee(e),c=l&&yo(n);if(l&&n==="length"){const u=Number(o);i.forEach((g,f)=>{(f==="length"||f===Gn||!Xe(f)&&f>=u)&&a(g)})}else switch((n!==void 0||i.has(void 0))&&a(i.get(n)),c&&a(i.get(Gn)),t){case"add":l?c&&a(i.get("length")):(a(i.get(an)),jt(e)&&a(i.get(kr)));break;case"delete":l||(a(i.get(an)),jt(e)&&a(i.get(kr)));break;case"set":jt(e)&&a(i.get(an));break}}yr()}function cc(e,t){const n=Co.get(e);return n&&n.get(t)}function yn(e){const t=pe(e);return t===e?t:(Ue(t,"iterate",Gn),Je(e)?t:t.map(at))}function Oo(e){return Ue(e=pe(e),"iterate",Gn),e}function bt(e,t){return St(e)?wn(Tt(e)?at(t):t):at(t)}const uc={__proto__:null,[Symbol.iterator](){return Cr(this,Symbol.iterator,e=>bt(this,e))},concat(...e){return yn(this).concat(...e.map(t=>ee(t)?yn(t):t))},entries(){return Cr(this,"entries",e=>(e[1]=bt(this,e[1]),e))},every(e,t){return Et(this,"every",e,t,void 0,arguments)},filter(e,t){return Et(this,"filter",e,t,n=>n.map(o=>bt(this,o)),arguments)},find(e,t){return Et(this,"find",e,t,n=>bt(this,n),arguments)},findIndex(e,t){return Et(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return Et(this,"findLast",e,t,n=>bt(this,n),arguments)},findLastIndex(e,t){return Et(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return Et(this,"forEach",e,t,void 0,arguments)},includes(...e){return Or(this,"includes",e)},indexOf(...e){return Or(this,"indexOf",e)},join(e){return yn(this).join(e)},lastIndexOf(...e){return Or(this,"lastIndexOf",e)},map(e,t){return Et(this,"map",e,t,void 0,arguments)},pop(){return Un(this,"pop")},push(...e){return Un(this,"push",e)},reduce(e,...t){return Ks(this,"reduce",e,t)},reduceRight(e,...t){return Ks(this,"reduceRight",e,t)},shift(){return Un(this,"shift")},some(e,t){return Et(this,"some",e,t,void 0,arguments)},splice(...e){return Un(this,"splice",e)},toReversed(){return yn(this).toReversed()},toSorted(e){return yn(this).toSorted(e)},toSpliced(...e){return yn(this).toSpliced(...e)},unshift(...e){return Un(this,"unshift",e)},values(){return Cr(this,"values",e=>bt(this,e))}};function Cr(e,t,n){const o=Oo(e),s=o[t]();return o!==e&&!Je(e)&&(s._next=s.next,s.next=()=>{const r=s._next();return r.done||(r.value=n(r.value)),r}),s}const pc=Array.prototype;function Et(e,t,n,o,s,r){const i=Oo(e),a=i!==e&&!Je(e),l=i[t];if(l!==pc[t]){const g=l.apply(e,r);return a?at(g):g}let c=n;i!==e&&(a?c=function(g,f){return n.call(this,bt(e,g),f,e)}:n.length>2&&(c=function(g,f){return n.call(this,g,f,e)}));const u=l.call(i,c,o);return a&&s?s(u):u}function Ks(e,t,n,o){const s=Oo(e),r=s!==e&&!Je(e);let i=n,a=!1;s!==e&&(r?(a=o.length===0,i=function(c,u,g){return a&&(a=!1,c=bt(e,c)),n.call(this,c,bt(e,u),g,e)}):n.length>3&&(i=function(c,u,g){return n.call(this,c,u,g,e)}));const l=s[t](i,...o);return a?bt(e,l):l}function Or(e,t,n){const o=pe(e);Ue(o,"iterate",Gn);const s=o[t](...n);return(s===-1||s===!1)&&Po(n[0])?(n[0]=pe(n[0]),o[t](...n)):s}function Un(e,t,n=[]){mt(),br();const o=pe(e)[t].apply(e,n);return yr(),_t(),o}const dc=pr("__proto__,__v_isRef,__isVue"),Xs=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(Xe));function gc(e){Xe(e)||(e=String(e));const t=pe(this);return Ue(t,"has",e),t.hasOwnProperty(e)}class Js{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,o){if(n==="__v_skip")return t.__v_skip;const s=this._isReadonly,r=this._isShallow;if(n==="__v_isReactive")return!s;if(n==="__v_isReadonly")return s;if(n==="__v_isShallow")return r;if(n==="__v_raw")return o===(s?r?oi:ni:r?ti:ei).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(o)?t:void 0;const i=ee(t);if(!s){let l;if(i&&(l=uc[n]))return l;if(n==="hasOwnProperty")return gc}const a=Reflect.get(t,n,Oe(t)?t:o);if((Xe(n)?Xs.has(n):dc(n))||(s||Ue(t,"get",n),r))return a;if(Oe(a)){const l=i&&yo(n)?a:a.value;return s&&he(l)?Ar(l):l}return he(a)?s?Ar(a):To(a):a}}class Zs extends Js{constructor(t=!1){super(!1,t)}set(t,n,o,s){let r=t[n];const i=ee(t)&&yo(n);if(!this._isShallow){const c=St(r);if(!Je(o)&&!St(o)&&(r=pe(r),o=pe(o)),!i&&Oe(r)&&!Oe(o))return c||(r.value=o),!0}const a=i?Number(n)e,No=e=>Reflect.getPrototypeOf(e);function bc(e,t,n){return function(...o){const s=this.__v_raw,r=pe(s),i=jt(r),a=e==="entries"||e===Symbol.iterator&&i,l=e==="keys"&&i,c=s[e](...o),u=n?Nr:t?wn:at;return!t&&Ue(r,"iterate",l?kr:an),Ne(Object.create(c),{next(){const{value:g,done:f}=c.next();return f?{value:g,done:f}:{value:a?[u(g[0]),u(g[1])]:u(g),done:f}}})}}function Ao(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function yc(e,t){const n={get(s){const r=this.__v_raw,i=pe(r),a=pe(s);e||(ht(s,a)&&Ue(i,"get",s),Ue(i,"get",a));const{has:l}=No(i),c=t?Nr:e?wn:at;if(l.call(i,s))return c(r.get(s));if(l.call(i,a))return c(r.get(a));r!==i&&r.get(s)},get size(){const s=this.__v_raw;return!e&&Ue(pe(s),"iterate",an),s.size},has(s){const r=this.__v_raw,i=pe(r),a=pe(s);return e||(ht(s,a)&&Ue(i,"has",s),Ue(i,"has",a)),s===a?r.has(s):r.has(s)||r.has(a)},forEach(s,r){const i=this,a=i.__v_raw,l=pe(a),c=t?Nr:e?wn:at;return!e&&Ue(l,"iterate",an),a.forEach((u,g)=>s.call(r,c(u),c(g),i))}};return Ne(n,e?{add:Ao("add"),set:Ao("set"),delete:Ao("delete"),clear:Ao("clear")}:{add(s){const r=pe(this),i=No(r),a=pe(s),l=!t&&!Je(s)&&!St(s)?a:s;return i.has.call(r,l)||ht(s,l)&&i.has.call(r,s)||ht(a,l)&&i.has.call(r,a)||(r.add(l),At(r,"add",l,l)),this},set(s,r){!t&&!Je(r)&&!St(r)&&(r=pe(r));const i=pe(this),{has:a,get:l}=No(i);let c=a.call(i,s);c||(s=pe(s),c=a.call(i,s));const u=l.call(i,s);return i.set(s,r),c?ht(r,u)&&At(i,"set",s,r):At(i,"add",s,r),this},delete(s){const r=pe(this),{has:i,get:a}=No(r);let l=i.call(r,s);l||(s=pe(s),l=i.call(r,s)),a&&a.call(r,s);const c=r.delete(s);return l&&At(r,"delete",s,void 0),c},clear(){const s=pe(this),r=s.size!==0,i=s.clear();return r&&At(s,"clear",void 0,void 0),i}}),["keys","values","entries",Symbol.iterator].forEach(s=>{n[s]=bc(s,e,t)}),n}function Eo(e,t){const n=yc(e,t);return(o,s,r)=>s==="__v_isReactive"?!e:s==="__v_isReadonly"?e:s==="__v_raw"?o:Reflect.get(fe(n,s)&&s in o?n:o,s,r)}const vc={get:Eo(!1,!1)},wc={get:Eo(!1,!0)},$c={get:Eo(!0,!1)},kc={get:Eo(!0,!0)},ei=new WeakMap,ti=new WeakMap,ni=new WeakMap,oi=new WeakMap;function Cc(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function To(e){return St(e)?e:So(e,!1,fc,vc,ei)}function Oc(e){return So(e,!1,mc,wc,ti)}function Ar(e){return So(e,!0,hc,$c,ni)}function Z_(e){return So(e,!0,_c,kc,oi)}function So(e,t,n,o,s){if(!he(e)||e.__v_raw&&!(t&&e.__v_isReactive)||e.__v_skip||!Object.isExtensible(e))return e;const r=s.get(e);if(r)return r;const i=Cc(Xl(e));if(i===0)return e;const a=new Proxy(e,i===2?o:n);return s.set(e,a),a}function Tt(e){return St(e)?Tt(e.__v_raw):!!(e&&e.__v_isReactive)}function St(e){return!!(e&&e.__v_isReadonly)}function Je(e){return!!(e&&e.__v_isShallow)}function Po(e){return e?!!e.__v_raw:!1}function pe(e){const t=e&&e.__v_raw;return t?pe(t):e}function vn(e){return!fe(e,"__v_skip")&&Object.isExtensible(e)&&Ps(e,"__v_skip",!0),e}const at=e=>he(e)?To(e):e,wn=e=>he(e)?Ar(e):e;function Oe(e){return e?e.__v_isRef===!0:!1}function re(e){return ri(e,!1)}function jn(e){return ri(e,!0)}function ri(e,t){return Oe(e)?e:new Nc(e,t)}class Nc{constructor(t,n){this.dep=new $r,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:pe(t),this._value=n?t:at(t),this.__v_isShallow=n}get value(){return this.dep.track(),this._value}set value(t){const n=this._rawValue,o=this.__v_isShallow||Je(t)||St(t);t=o?t:pe(t),ht(t,n)&&(this._rawValue=t,this._value=o?t:at(t),this.dep.trigger())}}function qe(e){return Oe(e)?e.value:e}const Ac={get:(e,t,n)=>t==="__v_raw"?e:qe(Reflect.get(e,t,n)),set:(e,t,n,o)=>{const s=e[t];return Oe(s)&&!Oe(n)?(s.value=n,!0):Reflect.set(e,t,n,o)}};function si(e){return Tt(e)?e:new Proxy(e,Ac)}function Ec(e){const t=ee(e)?new Array(e.length):{};for(const n in e)t[n]=Sc(e,n);return t}class Tc{constructor(t,n,o){this._object=t,this._defaultValue=o,this.__v_isRef=!0,this._value=void 0,this._key=Xe(n)?n:String(n),this._raw=pe(t);let s=!0,r=t;if(!ee(t)||Xe(this._key)||!yo(this._key))do s=!Po(r)||Je(r);while(s&&(r=r.__v_raw));this._shallow=s}get value(){let t=this._object[this._key];return this._shallow&&(t=qe(t)),this._value=t===void 0?this._defaultValue:t}set value(t){if(this._shallow&&Oe(this._raw[this._key])){const n=this._object[this._key];if(Oe(n)){n.value=t;return}}this._object[this._key]=t}get dep(){return cc(this._raw,this._key)}}function Sc(e,t,n){return new Tc(e,t,n)}class Pc{constructor(t,n,o){this.fn=t,this.setter=n,this._value=void 0,this.dep=new $r(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=Wn-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=o}notify(){if(this.flags|=16,!(this.flags&8)&&ye!==this)return Us(this,!0),!0}get value(){const t=this.dep.track();return Ys(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function Fc(e,t,n=!1){let o,s;return oe(e)?o=e:(o=e.get,s=e.set),new Pc(o,s,n)}const Fo={},xo=new WeakMap;let ln;function xc(e,t=!1,n=ln){if(n){let o=xo.get(n);o||xo.set(n,o=[]),o.push(e)}}function Lc(e,t,n=_e){const{immediate:o,deep:s,once:r,scheduler:i,augmentJob:a,call:l}=n,c=b=>s?b:Je(b)||s===!1||s===0?Pt(b,1):Pt(b);let u,g,f,_,v=!1,k=!1;if(Oe(e)?(g=()=>e.value,v=Je(e)):Tt(e)?(g=()=>c(e),v=!0):ee(e)?(k=!0,v=e.some(b=>Tt(b)||Je(b)),g=()=>e.map(b=>{if(Oe(b))return b.value;if(Tt(b))return c(b);if(oe(b))return l?l(b,2):b()})):oe(e)?t?g=l?()=>l(e,2):e:g=()=>{if(f){mt();try{f()}finally{_t()}}const b=ln;ln=u;try{return l?l(e,3,[_]):e(_)}finally{ln=b}}:g=ft,t&&s){const b=g,A=s===!0?1/0:s;g=()=>Pt(b(),A)}const O=Ds(),P=()=>{u.stop(),O&&O.active&&dr(O.effects,u)};if(r&&t){const b=t;t=(...A)=>{const C=b(...A);return P(),C}}let N=k?new Array(e.length).fill(Fo):Fo;const h=b=>{if(!(!(u.flags&1)||!u.dirty&&!b))if(t){const A=u.run();if(b||s||v||(k?A.some((C,E)=>ht(C,N[E])):ht(A,N))){f&&f();const C=ln;ln=u;try{const E=[A,N===Fo?void 0:k&&N[0]===Fo?[]:N,_];N=A,l?l(t,3,E):t(...E)}finally{ln=C}}}else u.run()};return a&&a(h),u=new Ws(g),u.scheduler=i?()=>i(h,!1):h,_=b=>xc(b,!1,u),f=u.onStop=()=>{const b=xo.get(u);if(b){if(l)l(b,4);else for(const A of b)A();xo.delete(u)}},t?o?h(!0):N=u.run():i?i(h.bind(null,!0),!0):u.run(),P.pause=u.pause.bind(u),P.resume=u.resume.bind(u),P.stop=P,P}function Pt(e,t=1/0,n){if(t<=0||!he(e)||e.__v_skip||(n=n||new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,Oe(e))Pt(e.value,t,n);else if(ee(e))for(let o=0;o{Pt(o,t,n)});else if(bo(e)){for(const o in e)Pt(e[o],t,n);for(const o of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,o)&&Pt(e[o],t,n)}return e}/** * @vue/runtime-core v3.5.42 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT -**/const Yn=[];let Ar=!1;function P_(e,...t){if(Ar)return;Ar=!0,mt();const n=Yn.length?Yn[Yn.length-1].component:null,o=n&&n.appContext.config.warnHandler,s=xc();if(o)kn(o,n,11,[e+t.map(r=>{var i,a;return(a=(i=r.toString)==null?void 0:i.call(r))!=null?a:JSON.stringify(r)}).join(""),n&&n.proxy,s.map(({vnode:r})=>`at <${na(n,r.type)}>`).join(` +**/const Vn=[];let Er=!1;function Q_(e,...t){if(Er)return;Er=!0,mt();const n=Vn.length?Vn[Vn.length-1].component:null,o=n&&n.appContext.config.warnHandler,s=Ic();if(o)$n(o,n,11,[e+t.map(r=>{var i,a;return(a=(i=r.toString)==null?void 0:i.call(r))!=null?a:JSON.stringify(r)}).join(""),n&&n.proxy,s.map(({vnode:r})=>`at <${ra(n,r.type)}>`).join(` `),s]);else{const r=[`[Vue warn]: ${e}`,...t];s.length&&r.push(` -`,...Ic(s)),console.warn(...r)}_t(),Ar=!1}function xc(){let e=Yn[Yn.length-1];if(!e)return[];const t=[];for(;e;){const n=t[0];n&&n.vnode===e?n.recurseCount++:t.push({vnode:e,recurseCount:0});const o=e.component&&e.component.parent;e=o&&o.vnode}return t}function Ic(e){const t=[];return e.forEach((n,o)=>{t.push(...o===0?[]:[` -`],...Fc(n))}),t}function Fc({vnode:e,recurseCount:t}){const n=t>0?`... (${t} recursive calls)`:"",o=e.component?e.component.parent==null:!1,s=` at <${na(e.component,e.type,o)}`,r=">"+n;return e.props?[s,...Mc(e.props),r]:[s+r]}function Mc(e){const t=[],n=Object.keys(e);return n.slice(0,3).forEach(o=>{t.push(...ri(o,e[o]))}),n.length>3&&t.push(" ..."),t}function ri(e,t,n){return be(t)?(t=JSON.stringify(t),n?t:[`${e}=${t}`]):typeof t=="number"||typeof t=="boolean"||t==null?n?t:[`${e}=${t}`]:Ne(t)?(t=ri(e,pe(t.value),!0),n?t:[`${e}=Ref<`,t,">"]):oe(t)?[`${e}=fn${t.name?`<${t.name}>`:""}`]:(t=pe(t),n?t:[`${e}=`,t])}function kn(e,t,n,o){try{return o?e(...o):e()}catch(s){Vn(s,t,n)}}function lt(e,t,n,o){if(oe(e)){const s=kn(e,t,n,o);return s&&As(s)&&s.catch(r=>{Vn(r,t,n)}),s}if(ee(e)){const s=[];for(let r=0;r>>1,s=Ge[o],r=qn(s);r=qn(n)?Ge.push(e):Ge.splice(Bc(t),0,e),e.flags|=1,ii()}}function ii(){Fo||(Fo=si.then(ci))}function Dc(e){if(!ee(e))Yt&&e.id===-1?Yt.splice(On+1,0,e):e.flags&1||($n.push(e),e.flags|=1);else for(let t=0;tqn(n)-qn(o));if($n.length=0,Yt){for(let n=0;ne.id==null?e.flags&2?-1:1/0:e.id;function ci(e){try{for(yt=0;yt{o._d&&Vo(-1);const r=Mo(t),i=It.length;let a;try{a=e(...s)}finally{for(let l=It.length;l>i;l--)Hr();Mo(r),o._d&&Vo(1)}return a};return o._n=!0,o._c=!0,o._d=!0,o}function Rc(e,t){if(Be===null)return e;const n=Ko(Be),o=e.dirs||(e.dirs=[]);for(let s=0;s1)return n&&oe(t)?t.call(o&&o.proxy):t}}function Wc(){return!!(Mt()||pn)}const Uc=Symbol.for("v-scx"),jc=()=>De(Uc);function Gc(e,t){return Tr(e,null,t)}function ot(e,t,n){return Tr(e,t,n)}function Tr(e,t,n=_e){const{immediate:o,deep:s,flush:r,once:i}=n,a=Ce({},n),l=t&&o||!t&&r!=="post";let c;if(An){if(r==="sync"){const m=jc();c=m.__watcherHandles||(m.__watcherHandles=[])}else if(!l){const m=()=>{};return m.stop=ht,m.resume=ht,m.pause=ht,m}}const u=Re;a.call=(m,v,$)=>lt(m,u,v,$);let f=!1;r==="post"?a.scheduler=m=>{Ve(m,u&&u.suspense)}:r!=="sync"&&(f=!0,a.scheduler=(m,v)=>{v?m():Er(m)}),a.augmentJob=m=>{t&&(m.flags|=4),f&&(m.flags|=2,u&&(m.id=u.uid,m.i=u))};const h=Sc(e,t,a);return An&&(c?c.push(h):l&&h()),h}function Yc(e,t,n){const o=this.proxy,s=be(e)?e.includes(".")?pi(o,e):()=>o[e]:e.bind(o,o);let r;oe(t)?r=t:(r=t.handler,n=t);const i=ro(this),a=Tr(s,r.bind(o),n);return i(),a}function pi(e,t){const n=t.split(".");return()=>{let o=e;for(let s=0;se.__isTeleport,un=e=>e&&(e.disabled||e.disabled===""),Vc=e=>e&&(e.defer||e.defer===""),fi=e=>typeof SVGElement<"u"&&e instanceof SVGElement,hi=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,Lr=(e,t)=>{const n=e&&e.to;return be(n)?t?t(n):null:n},Hc={name:"Teleport",__isTeleport:!0,process(e,t,n,o,s,r,i,a,l,c){const{mc:u,pc:f,pbc:h,o:{insert:m,querySelector:v,createText:$,createComment:A,parentNode:N}}=c,C=un(t.props);let{dynamicChildren:_}=t;const b=(E,x,O)=>{E.shapeFlag&16&&u(E.children,x,O,s,r,i,a,l)},T=(E=t)=>{const x=un(E.props),O=E.target=Lr(E.props,v),R=Sr(O,E,$,m);O&&(i!=="svg"&&fi(O)?i="svg":i!=="mathml"&&hi(O)&&(i="mathml"),s&&s.isCE&&(s.ce._teleportTargets||(s.ce._teleportTargets=new Set)).add(O),x||(b(E,O,R),zn(E,!1)))},k=E=>{const x=()=>{if(Ht.get(E)===x){if(Ht.delete(E),un(E.props)){const O=N(E.el)||n;b(E,O,E.anchor),zn(E,!0)}T(E)}};Ht.set(E,x),Ve(x,r)};if(e==null){const E=t.el=$(""),x=t.anchor=$("");if(m(E,n,o),m(x,n,o),Vc(t.props)||r&&r.pendingBranch){k(t);return}C&&(b(t,n,x),zn(t,!0)),T()}else{t.el=e.el;const E=t.anchor=e.anchor,x=Ht.get(e);if(x){x.flags|=8,Ht.delete(e),k(t);return}t.targetStart=e.targetStart;const O=t.target=e.target,R=t.targetAnchor=e.targetAnchor,j=un(e.props),K=j?n:O,ne=j?E:R;if(i==="svg"||fi(O)?i="svg":(i==="mathml"||hi(O))&&(i="mathml"),_?(h(e.dynamicChildren,_,K,s,r,i,a),Yr(e,t,!0)):l||f(e,t,K,ne,s,r,i,a,!1),C)j?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):Bo(t,n,E,c,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const ue=Lr(t.props,v);ue&&(t.target=ue,Bo(t,ue,null,c,0))}else j&&Bo(t,O,R,c,1);zn(t,C)}},remove(e,t,n,{um:o,o:{remove:s}},r){const{shapeFlag:i,children:a,anchor:l,targetStart:c,targetAnchor:u,target:f,props:h}=e,m=un(h),v=r||!m,$=Ht.get(e);if($&&($.flags|=8,Ht.delete(e)),f&&(s(c),s(u)),r&&s(l),!$&&(m||f)&&i&16)for(let A=0;A1){for(const n of e)if(n.type!==vt){t=n;break}}return t}function gi(e){if(!Wo(e))return Po(e.type)&&e.children?Kc(e.children):e;if(e.component)return e.component.subTree;const{shapeFlag:t,children:n}=e;if(n){if(t&16)return n[0];if(t&32&&oe(n.default))return n.default()}}function Ir(e,t){if(e.shapeFlag&6&&e.component){e.transition=t;const n=e.component.subTree;Ir(Po(n.type)&&gi(n)||n,t)}else e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function Kn(e,t){return oe(e)?Ce({name:e.name},t,{setup:e}):e}function Fr(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}function mi(e,t){let n;return!!((n=Object.getOwnPropertyDescriptor(e,t))&&!n.configurable)}const Do=new WeakMap;function Xn(e,t,n,o,s=!1){if(ee(e)){e.forEach(($,A)=>Xn($,t&&(ee(t)?t[A]:t),n,o,s));return}if(Nn(o)&&!s){o.shapeFlag&512&&o.type.__asyncResolved&&o.component.subTree.component&&Xn(e,t,n,o.component.subTree);return}const r=o.shapeFlag&4?Ko(o.component):o.el,i=s?null:r,{i:a,r:l}=e,c=t&&t.r,u=a.refs===_e?a.refs={}:a.refs,f=a.setupState,h=pe(f),m=f===_e?Ns:$=>mi(u,$)?!1:he(h,$),v=($,A)=>!(A&&mi(u,A));if(c!=null&&c!==l){if(_i(t),be(c))u[c]=null,m(c)&&(f[c]=null);else if(Ne(c)){const $=t;v(c,$.k)&&(c.value=null),$.k&&(u[$.k]=null)}}if(oe(l))kn(l,a,12,[i,u]);else{const $=be(l),A=Ne(l);if($||A){const N=()=>{if(e.f){const C=$?m(l)?f[l]:u[l]:v()||!e.k?l.value:u[e.k];if(s)ee(C)&&pr(C,r);else if(ee(C))C.includes(r)||C.push(r);else if($)u[l]=[r],m(l)&&(f[l]=u[l]);else{const _=[r];v(l,e.k)&&(l.value=_),e.k&&(u[e.k]=_)}}else $?(u[l]=i,m(l)&&(f[l]=i)):A&&(v(l,e.k)&&(l.value=i),e.k&&(u[e.k]=i))};if(i){const C=()=>{N(),Do.delete(e)};C.id=-1,Do.set(e,C),Ve(C,n)}else _i(e),N()}}}function _i(e){const t=Do.get(e);t&&(t.flags|=8,Do.delete(e))}const bi=e=>e.nodeType===8;ko().requestIdleCallback,ko().cancelIdleCallback;function Xc(e,t){if(bi(e)&&e.data==="["){let n=1,o=e.nextSibling;for(;o;){if(o.nodeType===1){if(t(o)===!1)break}else if(bi(o))if(o.data==="]"){if(--n===0)break}else o.data==="["&&n++;o=o.nextSibling}}else t(e)}const Nn=e=>!!e.type.__asyncLoader;function Jc(e){oe(e)&&(e={loader:e});const{loader:t,loadingComponent:n,errorComponent:o,delay:s=200,hydrate:r,timeout:i,suspensible:a=!0,onError:l}=e;let c=null,u,f=0;const h=()=>(f++,c=null,m()),m=()=>{let v;return c||(v=c=t().catch($=>{if($=$ instanceof Error?$:new Error(String($)),l)return new Promise((A,N)=>{l($,()=>A(h()),()=>N($),f+1)});throw $}).then($=>v!==c&&c?c:($&&($.__esModule||$[Symbol.toStringTag]==="Module")&&($=$.default),u=$,$)))};return Kn({name:"AsyncComponentWrapper",__asyncLoader:m,__asyncHydrate(v,$,A){const N=v.isConnected;let C=!1;($.bu||($.bu=[])).push(()=>C=!0);const _=()=>{C||!v.parentNode||N&&!v.isConnected||A()},b=r?()=>{const T=r(_,k=>Xc(v,k));T&&($.bum||($.bum=[])).push(T)}:_;u?b():m().then(()=>!$.isUnmounted&&b())},get __asyncResolved(){return u},setup(){const v=Re;if(Fr(v),u)return()=>Ro(u,v);const $=T=>{c=null,Vn(T,v,13,!o)};if(a&&v.suspense||An)return m().then(T=>()=>Ro(T,v)).catch(T=>($(T),()=>o?ve(o,{error:T}):null));const A=re(!1),N=re(),C=re(!!s);let _,b;return jo(()=>{_!=null&&clearTimeout(_),b!=null&&clearTimeout(b)}),s&&(b=setTimeout(()=>{v.isUnmounted||(C.value=!1)},s)),i!=null&&(_=setTimeout(()=>{if(!v.isUnmounted&&!A.value&&!N.value){const T=new Error(`Async component timed out after ${i}ms.`);$(T),N.value=T}},i)),m().then(()=>{v.isUnmounted||(A.value=!0,v.parent&&Wo(v.parent.vnode)&&v.parent.update())}).catch(T=>{if(v.isUnmounted){c=null;return}$(T),N.value=T}),()=>{if(A.value&&u)return Ro(u,v);if(N.value&&o)return ve(o,{error:N.value});if(n&&!C.value)return Ro(n,v)}}})}function Ro(e,t){const{ref:n,props:o,children:s,ce:r}=t.vnode,i=ve(e,o,s);return i.ref=n,i.ce=r,delete t.vnode.ce,i}const Wo=e=>e.type.__isKeepAlive;function Zc(e,t){yi(e,"a",t)}function Qc(e,t){yi(e,"da",t)}function yi(e,t,n=Re){const o=e.__wdc||(e.__wdc=()=>{let s=n;for(;s;){if(s.isDeactivated)return;s=s.parent}return e()});if(Uo(t,o,n),n){let s=n.parent;for(;s&&s.parent;)Wo(s.parent.vnode)&&eu(o,t,n,s),s=s.parent}}function eu(e,t,n,o){const s=Uo(t,e,o,!0);jo(()=>{pr(o[t],s)},n)}function Uo(e,t,n=Re,o=!1){if(n){const s=n[e]||(n[e]=[]),r=t.__weh||(t.__weh=(...i)=>{mt();const a=ro(n),l=lt(t,n,e,i);return a(),_t(),l});return o?s.unshift(r):s.push(r),r}}const xt=e=>(t,n=Re)=>{(!An||e==="sp")&&Uo(e,(...o)=>t(...o),n)},vi=xt("bm"),qt=xt("m"),tu=xt("bu"),nu=xt("u"),zt=xt("bum"),jo=xt("um"),ou=xt("sp"),ru=xt("rtg"),su=xt("rtc");function iu(e,t=Re){Uo("ec",e,t)}const au="components",wi=Symbol.for("v-ndc");function ki(e){return be(e)?lu(au,e,!1)||e:e||wi}function lu(e,t,n=!0,o=!1){const s=Be||Re;if(s){const r=s.type;{const a=ta(r,!1);if(a&&(a===t||a===Fe(t)||a===wo(Fe(t))))return r}const i=$i(s[e]||r[e],t)||$i(s.appContext[e],t);return!i&&o?r:i}}function $i(e,t){return e&&(e[t]||e[Fe(t)]||e[wo(Fe(t))])}function ct(e,t,n,o){let s;const r=n,i=ee(e);if(i||be(e)){const a=i&&Tt(e);let l=!1,c=!1;a&&(l=!Je(e),c=Lt(e),e=No(e)),s=new Array(e.length);for(let u=0,f=e.length;ut(a,l,void 0,r));else{const a=Object.keys(e);s=new Array(a.length);for(let l=0,c=a.length;l0;return H(),Qe(de,null,[ve("slot",c,o)],u?-2:64)}let i=e[t];i&&i._c&&(i._d=!1);const a=It.length;H();let l;try{const c=i&&Oi(i(n)),u=n.key||r||c&&c.key;l=Qe(de,{key:(u&&!Xe(u)?u:`_${t}`)+(!c&&o?"_fb":"")},c||(o?o():[]),c&&e._===1?64:-2)}catch(c){for(let u=It.length;u>a;u--)Hr();throw c}finally{i&&i._c&&(i._d=!0)}return l.scopeId&&(l.slotScopeIds=[l.scopeId+"-s"]),l}function Oi(e){return e.some(t=>to(t)?!(t.type===vt||t.type===de&&!Oi(t.children)):!0)?e:null}const Pr=e=>e?Zi(e)?Ko(e):Pr(e.parent):null,Jn=Ce(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=>Pr(e.parent),$root:e=>Pr(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Ei(e),$forceUpdate:e=>e.f||(e.f=()=>{Er(e.update)}),$nextTick:e=>e.n||(e.n=Hn.bind(e.proxy)),$watch:e=>Yc.bind(e)}),Br=(e,t)=>e!==_e&&!e.__isScriptSetup&&he(e,t),cu={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:o,data:s,props:r,accessCache:i,type:a,appContext:l}=e;if(t[0]!=="$"){const h=i[t];if(h!==void 0)switch(h){case 1:return o[t];case 2:return s[t];case 4:return n[t];case 3:return r[t]}else{if(Br(o,t))return i[t]=1,o[t];if(s!==_e&&he(s,t))return i[t]=2,s[t];if(he(r,t))return i[t]=3,r[t];if(n!==_e&&he(n,t))return i[t]=4,n[t];Dr&&(i[t]=0)}}const c=Jn[t];let u,f;if(c)return t==="$attrs"&&je(e.attrs,"get",""),c(e);if((u=a.__cssModules)&&(u=u[t]))return u;if(n!==_e&&he(n,t))return i[t]=4,n[t];if(f=l.config.globalProperties,he(f,t))return f[t]},set({_:e},t,n){const{data:o,setupState:s,ctx:r}=e;return Br(s,t)?(s[t]=n,!0):o!==_e&&he(o,t)?(o[t]=n,!0):he(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(r[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:o,appContext:s,props:r,type:i}},a){let l;return!!(n[a]||e!==_e&&a[0]!=="$"&&he(e,a)||Br(t,a)||he(r,a)||he(o,a)||he(Jn,a)||he(s.config.globalProperties,a)||(l=i.__cssModules)&&l[a])},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:he(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function Ni(e){return ee(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let Dr=!0;function uu(e){const t=Ei(e),n=e.proxy,o=e.ctx;Dr=!1,t.beforeCreate&&Ci(t.beforeCreate,e,"bc");const{data:s,computed:r,methods:i,watch:a,provide:l,inject:c,created:u,beforeMount:f,mounted:h,beforeUpdate:m,updated:v,activated:$,deactivated:A,beforeDestroy:N,beforeUnmount:C,destroyed:_,unmounted:b,render:T,renderTracked:k,renderTriggered:E,errorCaptured:x,serverPrefetch:O,expose:R,inheritAttrs:j,components:K,directives:ne,filters:ue}=t;if(c&&pu(c,o,null),i)for(const X in i){const le=i[X];oe(le)&&(o[X]=le.bind(n))}if(s){const X=s.call(n,n);ge(X)&&(e.data=To(X))}if(Dr=!0,r)for(const X in r){const le=r[X],Ee=oe(le)?le.bind(n,n):oe(le.get)?le.get.bind(n,n):ht,Nt=!oe(le)&&oe(le.set)?le.set.bind(n):ht,Ie=ie({get:Ee,set:Nt});Object.defineProperty(o,X,{enumerable:!0,configurable:!0,get:()=>Ie.value,set:Pe=>Ie.value=Pe})}if(a)for(const X in a)Ai(a[X],o,n,X);if(l){const X=oe(l)?l.call(n):l;Reflect.ownKeys(X).forEach(le=>{nt(le,X[le])})}u&&Ci(u,e,"c");function W(X,le){ee(le)?le.forEach(Ee=>X(Ee.bind(n))):le&&X(le.bind(n))}if(W(vi,f),W(qt,h),W(tu,m),W(nu,v),W(Zc,$),W(Qc,A),W(iu,x),W(su,k),W(ru,E),W(zt,C),W(jo,b),W(ou,O),ee(R))if(R.length){const X=e.exposed||(e.exposed={});R.forEach(le=>{Object.defineProperty(X,le,{get:()=>n[le],set:Ee=>n[le]=Ee,enumerable:!0})})}else e.exposed||(e.exposed={});T&&e.render===ht&&(e.render=T),j!=null&&(e.inheritAttrs=j),K&&(e.components=K),ne&&(e.directives=ne),O&&Fr(e)}function pu(e,t,n=ht){ee(e)&&(e=Rr(e));for(const o in e){const s=e[o];let r;ge(s)?"default"in s?r=De(s.from||o,s.default,!0):r=De(s.from||o):r=De(s),Ne(r)?Object.defineProperty(t,o,{enumerable:!0,configurable:!0,get:()=>r.value,set:i=>r.value=i}):t[o]=r}}function Ci(e,t,n){lt(ee(e)?e.map(o=>o.bind(t.proxy)):e.bind(t.proxy),t,n)}function Ai(e,t,n,o){let s=o.includes(".")?pi(n,o):()=>n[o];if(be(e)){const r=t[e];oe(r)&&ot(s,r)}else if(oe(e))ot(s,e.bind(n));else if(ge(e))if(ee(e))e.forEach(r=>Ai(r,t,n,o));else{const r=oe(e.handler)?e.handler.bind(n):t[e.handler];oe(r)&&ot(s,r,e)}}function Ei(e){const t=e.type,{mixins:n,extends:o}=t,{mixins:s,optionsCache:r,config:{optionMergeStrategies:i}}=e.appContext,a=r.get(t);let l;return a?l=a:!s.length&&!n&&!o?l=t:(l={},s.length&&s.forEach(c=>Go(l,c,i,!0)),Go(l,t,i)),ge(t)&&r.set(t,l),l}function Go(e,t,n,o=!1){const{mixins:s,extends:r}=t;r&&Go(e,r,n,!0),s&&s.forEach(i=>Go(e,i,n,!0));for(const i in t)if(!(o&&i==="expose")){const a=du[i]||n&&n[i];e[i]=a?a(e[i],t[i]):t[i]}return e}const du={data:Ti,props:Li,emits:Li,methods:Zn,computed:Zn,beforeCreate:Ye,created:Ye,beforeMount:Ye,mounted:Ye,beforeUpdate:Ye,updated:Ye,beforeDestroy:Ye,beforeUnmount:Ye,destroyed:Ye,unmounted:Ye,activated:Ye,deactivated:Ye,errorCaptured:Ye,serverPrefetch:Ye,components:Zn,directives:Zn,watch:hu,provide:Ti,inject:fu};function Ti(e,t){return t?e?function(){return Ce(oe(e)?e.call(this,this):e,oe(t)?t.call(this,this):t)}:t:e}function fu(e,t){return Zn(Rr(e),Rr(t))}function Rr(e){if(ee(e)){const t={};for(let n=0;nt==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${Fe(t)}Modifiers`]||e[`${tt(t)}Modifiers`];function bu(e,t,...n){if(e.isUnmounted)return;const o=e.vnode.props||_e;let s=n;const r=t.startsWith("update:"),i=r&&_u(o,t.slice(7));i&&(i.trim&&(s=n.map(u=>be(u)?u.trim():u)),i.number&&(s=s.map(Xl)));let a,l=o[a=dr(t)]||o[a=dr(Fe(t))];!l&&r&&(l=o[a=dr(tt(t))]),l&<(l,e,6,s);const c=o[a+"Once"];if(c){if(!e.emitted)e.emitted={};else if(e.emitted[a])return;e.emitted[a]=!0,lt(c,e,6,s)}}const yu=new WeakMap;function xi(e,t,n=!1){const o=n?yu:t.emitsCache,s=o.get(e);if(s!==void 0)return s;const r=e.emits;let i={},a=!1;if(!oe(e)){const l=c=>{const u=xi(c,t,!0);u&&(a=!0,Ce(i,u))};!n&&t.mixins.length&&t.mixins.forEach(l),e.extends&&l(e.extends),e.mixins&&e.mixins.forEach(l)}return!r&&!a?(ge(e)&&o.set(e,null),null):(ee(r)?r.forEach(l=>i[l]=null):Ce(i,r),ge(e)&&o.set(e,i),i)}function Yo(e,t){return!e||!go(t)?!1:(t=t.slice(2),t=t==="Once"?t:t.replace(/Once$/,""),he(e,t[0].toLowerCase()+t.slice(1))||he(e,tt(t))||he(e,t))}function B_(){}function Ii(e){const{type:t,vnode:n,proxy:o,withProxy:s,propsOptions:[r],slots:i,attrs:a,emit:l,render:c,renderCache:u,props:f,data:h,setupState:m,ctx:v,inheritAttrs:$}=e,A=Mo(e);let N,C;try{if(n.shapeFlag&4){const b=s||o,T=b;N=wt(c.call(T,b,u,f,m,h,v)),C=a}else{const b=t;N=wt(b.length>1?b(f,{attrs:a,slots:i,emit:l}):b(f,null)),C=t.props?a:vu(a)}}catch(b){It.length=0,Vn(b,e,1),N=ve(vt)}let _=N;if(C&&$!==!1){const b=Object.keys(C),{shapeFlag:T}=_;b.length&&T&7&&(r&&b.some(mo)&&(C=wu(C,r)),_=Cn(_,C,!1,!0))}if(n.dirs&&(_=Cn(_,null,!1,!0),_.dirs=_.dirs?_.dirs.concat(n.dirs):n.dirs),n.transition){const b=Po(_.type)&&gi(_)||_;Ir(b,n.transition)}return N=_,Mo(A),N}const vu=e=>{let t;for(const n in e)(n==="class"||n==="style"||go(n))&&((t||(t={}))[n]=e[n]);return t},wu=(e,t)=>{const n={};for(const o in e)(!mo(o)||!(o.slice(9)in t))&&(n[o]=e[o]);return n};function ku(e,t,n){const{props:o,children:s,component:r}=e,{props:i,children:a,patchFlag:l}=t,c=r.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&l>=0){if(l&1024)return!0;if(l&16)return o?Fi(o,i,c):!!i;if(l&8){const u=t.dynamicProps;for(let f=0;fObject.create(Pi),Di=e=>Object.getPrototypeOf(e)===Pi;function Ou(e,t,n,o=!1){const s={},r=Bi();e.propsDefaults=Object.create(null),Ri(e,t,s,r);for(const i in e.propsOptions[0])i in s||(s[i]=void 0);n?e.props=o?s:kc(s):e.type.props?e.props=s:e.props=r,e.attrs=r}function Nu(e,t,n,o){const{props:s,attrs:r,vnode:{patchFlag:i}}=e,a=pe(s),[l]=e.propsOptions;let c=!1;if((o||i>0)&&!(i&16)){if(i&8){const u=e.vnode.dynamicProps;for(let f=0;f{l=!0;const[h,m]=Wi(f,t,!0);Ce(i,h),m&&a.push(...m)};!n&&t.mixins.length&&t.mixins.forEach(u),e.extends&&u(e.extends),e.mixins&&e.mixins.forEach(u)}if(!r&&!l)return ge(e)&&o.set(e,_n),_n;if(ee(r))for(let u=0;ue==="_"||e==="_ctx"||e==="$stable",jr=e=>ee(e)?e.map(wt):[wt(e)],Au=(e,t,n)=>{if(t._n)return t;const o=Vt((...s)=>jr(t(...s)),n);return o._c=!1,o},ji=(e,t,n)=>{const o=e._ctx;for(const s in e){if(Ur(s))continue;const r=e[s];if(oe(r))t[s]=Au(s,r,o);else if(r!=null){const i=jr(r);t[s]=()=>i}}},Gi=(e,t)=>{const n=jr(t);e.slots.default=()=>n},Yi=(e,t,n)=>{for(const o in t)(n||!Ur(o))&&(e[o]=t[o])},Eu=(e,t,n)=>{const o=e.slots=Bi();if(e.vnode.shapeFlag&32){const s=t._;s?(Yi(o,t,n),n&&Ts(o,"_",s,!0)):ji(t,o)}else t&&Gi(e,t)},Tu=(e,t,n)=>{const{vnode:o,slots:s}=e;let r=!0,i=_e;if(o.shapeFlag&32){const a=t._;a?n&&a===1?r=!1:Yi(s,t,n):(r=!t.$stable,ji(t,s)),i=t}else t&&(Gi(e,t),i={default:1});if(r)for(const a in s)!Ur(a)&&i[a]==null&&delete s[a]},Ve=Fu;function Lu(e){return Su(e)}function Su(e,t){const n=ko();n.__VUE__=!0;const{insert:o,remove:s,patchProp:r,createElement:i,createText:a,createComment:l,setText:c,setElementText:u,parentNode:f,nextSibling:h,setScopeId:m=ht,insertStaticContent:v}=e,$=(g,w,y,I=null,D=null,B=null,Y=void 0,G=null,p=!!w.dynamicChildren)=>{if(g===w)return;g&&!no(g,w)&&(I=Ut(g),Pe(g,D,B,!0),g=null),w.patchFlag===-2&&(p=!1,w.dynamicChildren=null);const{type:d,ref:S,shapeFlag:F}=w;switch(d){case Qn:A(g,w,y,I);break;case vt:N(g,w,y,I);break;case Vr:g==null&&C(w,y,I,Y);break;case de:K(g,w,y,I,D,B,Y,G,p);break;default:F&1?T(g,w,y,I,D,B,Y,G,p):F&6?ne(g,w,y,I,D,B,Y,G,p):(F&64||F&128)&&d.process(g,w,y,I,D,B,Y,G,p,st)}S!=null&&D?Xn(S,g&&g.ref,B,w||g,!w):S==null&&g&&g.ref!=null&&Xn(g.ref,null,B,g,!0)},A=(g,w,y,I)=>{if(g==null)o(w.el=a(w.children),y,I);else{const D=w.el=g.el;w.children!==g.children&&c(D,w.children)}},N=(g,w,y,I)=>{g==null?o(w.el=l(w.children||""),y,I):w.el=g.el},C=(g,w,y,I)=>{[g.el,g.anchor]=v(g.children,w,y,I,g.el,g.anchor)},_=({el:g,anchor:w},y,I)=>{let D;for(;g&&g!==w;)D=h(g),o(g,y,I),g=D;o(w,y,I)},b=({el:g,anchor:w})=>{let y;for(;g&&g!==w;)y=h(g),s(g),g=y;s(w)},T=(g,w,y,I,D,B,Y,G,p)=>{if(w.type==="svg"?Y="svg":w.type==="math"&&(Y="mathml"),g==null)k(w,y,I,D,B,Y,G,p);else{const d=g.el&&g.el._isVueCE?g.el:null;try{d&&d._beginPatch(),O(g,w,D,B,Y,G,p)}finally{d&&d._endPatch()}}},k=(g,w,y,I,D,B,Y,G)=>{let p,d;const{props:S,shapeFlag:F,transition:V,dirs:U}=g;if(p=g.el=i(g.type,B,S&&S.is,S),F&8?u(p,g.children):F&16&&x(g.children,p,null,I,D,Gr(g,B),Y,G),U&&cn(g,null,I,"created"),E(p,g,g.scopeId,Y,I),S){for(const P in S)P!=="value"&&!Bn(P)&&r(p,P,null,S[P],B,I);"value"in S&&r(p,"value",null,S.value,B),(d=S.onVnodeBeforeMount)&&kt(d,I,g)}U&&cn(g,null,I,"beforeMount");const L=xu(D,V);L&&V.beforeEnter(p),o(p,w,y),((d=S&&S.onVnodeMounted)||L||U)&&Ve(()=>{try{d&&kt(d,I,g),L&&V.enter(p),U&&cn(g,null,I,"mounted")}finally{}},D)},E=(g,w,y,I,D)=>{if(y&&m(g,y),I)for(let B=0;B{for(let d=p;d{const G=w.el=g.el;let{patchFlag:p,dynamicChildren:d,dirs:S}=w;p|=g.patchFlag&16;const F=g.props||_e,V=w.props||_e;let U;if(y&&dn(y,!1),(U=V.onVnodeBeforeUpdate)&&kt(U,y,w,g),S&&cn(w,g,y,"beforeUpdate"),y&&dn(y,!0),d&&(!g.dynamicChildren||g.dynamicChildren.length!==d.length)&&(p=0,Y=!1,d=null),(F.innerHTML&&V.innerHTML==null||F.textContent&&V.textContent==null)&&u(G,""),d?R(g.dynamicChildren,d,G,y,I,Gr(w,D),B):Y||le(g,w,G,null,y,I,Gr(w,D),B,!1),p>0){if(p&16)j(G,F,V,y,D);else if(p&2&&F.class!==V.class&&r(G,"class",null,V.class,D),p&4&&r(G,"style",F.style,V.style,D),p&8){const L=w.dynamicProps;for(let P=0;P{U&&kt(U,y,w,g),S&&cn(w,g,y,"updated")},I)},R=(g,w,y,I,D,B,Y)=>{for(let G=0;G{if(w!==y){if(w!==_e)for(const B in w)!Bn(B)&&!(B in y)&&r(g,B,w[B],null,D,I);for(const B in y){if(Bn(B))continue;const Y=y[B],G=w[B];Y!==G&&B!=="value"&&r(g,B,G,Y,D,I)}"value"in y&&r(g,"value",w.value,y.value,D)}},K=(g,w,y,I,D,B,Y,G,p)=>{const d=w.el=g?g.el:a(""),S=w.anchor=g?g.anchor:a("");let{patchFlag:F,dynamicChildren:V,slotScopeIds:U}=w;U&&(G=G?G.concat(U):U),g==null?(o(d,y,I),o(S,y,I),x(w.children||[],y,S,D,B,Y,G,p)):F>0&&F&64&&V&&g.dynamicChildren&&g.dynamicChildren.length===V.length?(R(g.dynamicChildren,V,y,D,B,Y,G),(w.key!=null||D&&w===D.subTree)&&Yr(g,w,!0)):le(g,w,y,S,D,B,Y,G,p)},ne=(g,w,y,I,D,B,Y,G,p)=>{w.slotScopeIds=G,g==null?w.shapeFlag&512?D.ctx.activate(w,y,I,Y,p):ue(w,y,I,D,B,Y,p):z(g,w,p)},ue=(g,w,y,I,D,B,Y)=>{const G=g.component=Wu(g,I,D);if(Wo(g)&&(G.ctx.renderer=st),Uu(G,!1,Y),G.asyncDep){if(D&&D.registerDep(G,W,Y),!g.el){const p=G.subTree=ve(vt);N(null,p,w,y),g.placeholder=p.el}}else W(G,g,w,y,D,B,Y)},z=(g,w,y)=>{const I=w.component=g.component;if(ku(g,w,y))if(I.asyncDep&&!I.asyncResolved){X(I,w,y);return}else I.next=w,I.update();else w.el=g.el,I.vnode=w},W=(g,w,y,I,D,B,Y)=>{const G=()=>{if(g.isMounted){let{next:F,bu:V,u:U,parent:L,vnode:P}=g;{const Ue=Vi(g);if(Ue){F&&(F.el=P.el,X(g,F,Y)),Ue.asyncDep.then(()=>{Ve(()=>{g.isUnmounted||d()},D)});return}}let Z=F,ae;dn(g,!1),F?(F.el=P.el,X(g,F,Y)):F=P,V&&fr(V),(ae=F.props&&F.props.onVnodeBeforeUpdate)&&kt(ae,L,F,P),dn(g,!0);const ke=Ii(g),qe=g.subTree;g.subTree=ke,$(qe,ke,f(qe.el),Ut(qe),g,D,B),F.el=ke.el,Z===null&&$u(g,ke.el),U&&Ve(U,D),(ae=F.props&&F.props.onVnodeUpdated)&&Ve(()=>kt(ae,L,F,P),D)}else{let F;const{el:V,props:U}=w,{bm:L,m:P,parent:Z,root:ae,type:ke}=g,qe=Nn(w);dn(g,!1),L&&fr(L),!qe&&(F=U&&U.onVnodeBeforeMount)&&kt(F,Z,w),dn(g,!0);{ae.ce&&ae.ce._hasShadowRoot()&&ae.ce._injectChildStyle(ke,g.parent?g.parent.type:void 0);const Ue=g.subTree=Ii(g);$(null,Ue,y,I,g,D,B),w.el=Ue.el}if(P&&Ve(P,D),!qe&&(F=U&&U.onVnodeMounted)){const Ue=w;Ve(()=>kt(F,Z,Ue),D)}(w.shapeFlag&256||Z&&Nn(Z.vnode)&&Z.vnode.shapeFlag&256)&&g.a&&Ve(g.a,D),g.isMounted=!0,w=y=I=null}};g.scope.on();const p=g.effect=new Ds(G);g.scope.off();const d=g.update=p.run.bind(p),S=g.job=p.runIfDirty.bind(p);S.i=g,S.id=g.uid,p.scheduler=()=>Er(S),dn(g,!0),d()},X=(g,w,y)=>{w.component=g;const I=g.vnode.props;g.vnode=w,g.next=null,Nu(g,w.props,I,y),Tu(g,w.children,y),mt(),ai(g),_t()},le=(g,w,y,I,D,B,Y,G,p=!1)=>{const d=g&&g.children,S=g?g.shapeFlag:0,F=w.children,{patchFlag:V,shapeFlag:U}=w;if(V>0){if(V&128){Nt(d,F,y,I,D,B,Y,G,p);return}else if(V&256){Ee(d,F,y,I,D,B,Y,G,p);return}}U&8?(S&16&&ft(d,D,B),F!==d&&u(y,F)):S&16?U&16?Nt(d,F,y,I,D,B,Y,G,p):ft(d,D,B,!0):(S&8&&u(y,""),U&16&&x(F,y,I,D,B,Y,G,p))},Ee=(g,w,y,I,D,B,Y,G,p)=>{g=g||_n,w=w||_n;const d=g.length,S=w.length,F=Math.min(d,S);let V;for(V=0;VS?ft(g,D,B,!0,!1,F):x(w,y,I,D,B,Y,G,p,F)},Nt=(g,w,y,I,D,B,Y,G,p)=>{let d=0;const S=w.length;let F=g.length-1,V=S-1;for(;d<=F&&d<=V;){const U=g[d],L=w[d]=p?Ft(w[d]):wt(w[d]);if(no(U,L))$(U,L,y,null,D,B,Y,G,p);else break;d++}for(;d<=F&&d<=V;){const U=g[F],L=w[V]=p?Ft(w[V]):wt(w[V]);if(no(U,L))$(U,L,y,null,D,B,Y,G,p);else break;F--,V--}if(d>F){if(d<=V){const U=V+1,L=UV)for(;d<=F;)Pe(g[d],D,B,!0),d++;else{const U=d,L=d,P=new Map;for(d=L;d<=V;d++){const et=w[d]=p?Ft(w[d]):wt(w[d]);et.key!=null&&P.set(et.key,d)}let Z,ae=0;const ke=V-L+1;let qe=!1,Ue=0;const mn=new Array(ke);for(d=0;d=ke){Pe(et,D,B,!0);continue}let Ct;if(et.key!=null)Ct=P.get(et.key);else for(Z=L;Z<=V;Z++)if(mn[Z-L]===0&&no(et,w[Z])){Ct=Z;break}Ct===void 0?Pe(et,D,B,!0):(mn[Ct-L]=d+1,Ct>=Ue?Ue=Ct:qe=!0,$(et,w[Ct],y,null,D,B,Y,G,p),ae++)}const Os=qe?Iu(mn):_n;for(Z=Os.length-1,d=ke-1;d>=0;d--){const et=L+d,Ct=w[et],Yl=w[et+1],Vl=et+1{const{el:B,type:Y,transition:G,children:p,shapeFlag:d}=g;if(d&6){Ie(g.component.subTree,w,y,I);return}if(d&128){g.suspense.move(w,y,I);return}if(d&64){Y.move(g,w,y,st);return}if(Y===de){o(B,w,y);for(let F=0;FG.enter(B),D));else{const{leave:F,delayLeave:V,afterLeave:U}=G,L=()=>{g.ctx.isUnmounted?s(B):o(B,w,y)},P=()=>{const Z=B._isLeaving||!!B[xr];B._isLeaving&&B[xr](!0),G.persisted&&!Z?L():F(B,()=>{L(),U&&U()})};V?V(B,L,P):P()}else o(B,w,y)},Pe=(g,w,y,I=!1,D=!1)=>{const{type:B,props:Y,ref:G,children:p,dynamicChildren:d,shapeFlag:S,patchFlag:F,dirs:V,cacheIndex:U,memo:L}=g;if(F===-2&&(D=!1),G!=null&&(mt(),Xn(G,null,y,g,!0),_t()),U!=null&&(w.renderCache[U]=void 0),S&256){w.ctx.deactivate(g);return}const P=S&1&&V,Z=!Nn(g);let ae;if(Z&&(ae=Y&&Y.onVnodeBeforeUnmount)&&kt(ae,w,g),S&6)gn(g.component,y,I);else{if(S&128){g.suspense.unmount(y,I);return}P&&cn(g,null,w,"beforeUnmount"),S&64?g.type.remove(g,w,y,st,I):d&&!d.hasOnce&&(B!==de||F>0&&F&64)?ft(d,w,y,!1,!0):(B===de&&F&384||!D&&S&16)&&ft(p,w,y),I&&on(g)}const ke=L!=null&&U==null;(Z&&(ae=Y&&Y.onVnodeUnmounted)||P||ke)&&Ve(()=>{ae&&kt(ae,w,g),P&&cn(g,null,w,"unmounted"),ke&&(g.el=null)},y)},on=g=>{const{type:w,el:y,anchor:I,transition:D}=g;if(w===de){rn(y,I);return}if(w===Vr){b(g);return}const B=()=>{s(y),D&&!D.persisted&&D.afterLeave&&D.afterLeave()};if(g.shapeFlag&1&&D&&!D.persisted){const{leave:Y,delayLeave:G}=D,p=()=>Y(y,B);G?G(g.el,B,p):p()}else B()},rn=(g,w)=>{let y;for(;g!==w;)y=h(g),s(g),g=y;s(w)},gn=(g,w,y)=>{const{bum:I,scope:D,job:B,subTree:Y,um:G,m:p,a:d}=g;Hi(p),Hi(d),I&&fr(I),D.stop(),B&&(B.flags|=8,Pe(Y,g,w,y)),G&&Ve(G,w),Ve(()=>{g.isUnmounted=!0},w)},ft=(g,w,y,I=!1,D=!1,B=0)=>{for(let Y=B;Y{if(g.shapeFlag&6)return Ut(g.component.subTree);if(g.shapeFlag&128)return g.suspense.next();const w=h(g.anchor||g.el),y=w&&w[di];return y?h(y):w};let jt=!1;const sn=(g,w,y)=>{let I;g==null?w._vnode&&(Pe(w._vnode,null,null,!0),I=w._vnode.component):$(w._vnode||null,g,w,null,null,null,y),w._vnode=g,jt||(jt=!0,ai(I),li(),jt=!1)},st={p:$,um:Pe,m:Ie,r:on,mt:ue,mc:x,pc:le,pbc:R,n:Ut,o:e};return{render:sn,hydrate:void 0,createApp:mu(sn)}}function Gr({type:e,props:t},n){return n==="svg"&&e==="foreignObject"||n==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function dn({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function xu(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Yr(e,t,n=!1){const o=e.children,s=t.children;if(ee(o)&&ee(s))for(let r=0;r>1,e[n[a]]0&&(t[o]=n[r-1]),n[r]=o)}}for(r=n.length,i=n[r-1];r-- >0;)n[r]=i,i=t[i];return n}function Vi(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Vi(t)}function Hi(e){if(e)for(let t=0;te.__isSuspense;function Fu(e,t){t&&t.pendingBranch?ee(e)?t.effects.push(...e):t.effects.push(e):Dc(e)}const de=Symbol.for("v-fgt"),Qn=Symbol.for("v-txt"),vt=Symbol.for("v-cmt"),Vr=Symbol.for("v-stc"),It=[];let Ze=null;function H(e=!1){It.push(Ze=e?null:[])}function Hr(){It.pop(),Ze=It[It.length-1]||null}let eo=1;function Vo(e,t=!1){eo+=e,e<0&&Ze&&t&&(Ze.hasOnce=!0)}function Ki(e){return e.dynamicChildren=eo>0?Ze||_n:null,Hr(),eo>0&&Ze&&Ze.push(e),e}function J(e,t,n,o,s,r){return Ki(M(e,t,n,o,s,r,!0))}function Qe(e,t,n,o,s){return Ki(ve(e,t,n,o,s,!0))}function to(e){return e?e.__v_isVNode===!0:!1}function no(e,t){return e.type===t.type&&e.key===t.key}const Xi=({key:e})=>e??null,Ho=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?be(e)||Ne(e)||oe(e)?{i:Be,r:e,k:t,f:!!n}:e:null);function M(e,t=null,n=null,o=0,s=null,r=e===de?0:1,i=!1,a=!1){const l={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Xi(t),ref:t&&Ho(t),scopeId:ui,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:r,patchFlag:o,dynamicProps:s,dynamicChildren:null,appContext:null,ctx:Be};return a?(qo(l,n),r&128&&e.normalize(l)):n&&(l.shapeFlag|=be(n)?8:16),eo>0&&!i&&Ze&&(l.patchFlag>0||r&6)&&l.patchFlag!==32&&Ze.push(l),l}const ve=Mu;function Mu(e,t=null,n=null,o=0,s=null,r=!1){if((!e||e===wi)&&(e=vt),to(e)){const a=Cn(e,t,!0);return n&&qo(a,n),eo>0&&!r&&Ze&&(a.shapeFlag&6?Ze[Ze.indexOf(e)]=a:Ze.push(a)),a.patchFlag=-2,a}if(qu(e)&&(e=e.__vccOpts),t){t=Pu(t);let{class:a,style:l}=t;a&&!be(a)&&(t.class=Te(a)),ge(l)&&(So(l)&&!ee(l)&&(l=Ce({},l)),t.style=bn(l))}const i=be(e)?1:zi(e)?128:Po(e)?64:ge(e)?4:oe(e)?2:0;return M(e,t,n,o,s,i,r,!0)}function Pu(e){return e?So(e)||Di(e)?Ce({},e):e:null}function Cn(e,t,n=!1,o=!1){const{props:s,ref:r,patchFlag:i,children:a,transition:l}=e,c=t?Bu(s||{},t):s,u={__v_isVNode:!0,__v_skip:!0,type:e.type,props:c,key:c&&Xi(c),ref:t&&t.ref?n&&r?ee(r)?r.concat(Ho(t)):[r,Ho(t)]:Ho(t):r,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:a,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==de?i===-1?16:i|16:i,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&&o&&Ir(u,l.clone(u)),u}function $e(e=" ",t=0){return ve(Qn,null,e,t)}function Le(e="",t=!1){return t?(H(),Qe(vt,null,e)):ve(vt,null,e)}function wt(e){return e==null||typeof e=="boolean"?ve(vt):ee(e)?ve(de,null,e.slice()):to(e)?Ft(e):ve(Qn,null,String(e))}function Ft(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Cn(e)}function qo(e,t){let n=0;const{shapeFlag:o}=e;if(t==null)t=null;else if(ee(t))n=16;else if(typeof t=="object")if(o&65){const s=t.default;s&&(s._c&&(s._d=!1),qo(e,s()),s._c&&(s._d=!0));return}else{n=32;const s=t._;!s&&!Di(t)?t._ctx=Be:s===3&&Be&&(Be.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else if(oe(t)){if(o&65){qo(e,{default:t});return}t={default:t,_ctx:Be},n=32}else t=String(t),o&64?(n=16,t=[$e(t)]):n=8;e.children=t,e.shapeFlag|=n}function Bu(...e){const t={};for(let n=0;nRe||Be;let zo,oo;{const e=ko(),t=(n,o)=>{let s;return(s=e[n])||(s=e[n]=[]),s.push(o),r=>{s.length>1?s.forEach(i=>i(r)):s[0](r)}};zo=t("__VUE_INSTANCE_SETTERS__",n=>Re=n),oo=t("__VUE_SSR_SETTERS__",n=>An=n)}const ro=e=>{const t=Re;return zo(e),e.scope.on(),()=>{e.scope.off(),zo(t)}},Ji=()=>{Re&&Re.scope.off(),zo(null)};function Zi(e){return e.vnode.shapeFlag&4}let An=!1;function Uu(e,t=!1,n=!1){t&&oo(t);const{props:o,children:s}=e.vnode,r=Zi(e);Ou(e,o,r,t),Eu(e,s,n||t);const i=r?ju(e,t):void 0;return t&&oo(!1),i}function ju(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,cu);const{setup:o}=n;if(o){mt();const s=e.setupContext=o.length>1?Yu(e):null,r=ro(e),i=kn(o,e,0,[e.props,s]),a=As(i);if(_t(),r(),(a||e.sp)&&!Nn(e)&&Fr(e),a){if(i.then(Ji,Ji),t)return i.then(l=>{oo(!0);try{Qi(e,l,t)}finally{oo(!1)}}).catch(l=>{Vn(l,e,0)});e.asyncDep=i}else Qi(e,i)}else ea(e)}function Qi(e,t,n){oe(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:ge(t)&&(e.setupState=oi(t)),ea(e)}function ea(e,t,n){const o=e.type;e.render||(e.render=o.render||ht);{const s=ro(e);mt();try{uu(e)}finally{_t(),s()}}}const Gu={get(e,t){return je(e,"get",""),e[t]}};function Yu(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,Gu),slots:e.slots,emit:e.emit,expose:t}}function Ko(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(oi(vn(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in Jn)return Jn[n](e)},has(t,n){return n in t||n in Jn}})):e.proxy}const Vu=/(?:^|[-_])\w/g,Hu=e=>e.replace(Vu,t=>t.toUpperCase()).replace(/[-_]/g,"");function ta(e,t=!0){return oe(e)?e.displayName||e.name:e.name||t&&e.__name}function na(e,t,n=!1){let o=ta(t);if(!o&&t.__file){const s=t.__file.match(/([^/\\]+)\.\w+$/);s&&(o=s[1])}if(!o&&e){const s=r=>{for(const i in r)if(r[i]===t)return i};o=s(e.components)||e.parent&&s(e.parent.type.components)||s(e.appContext.components)}return o?Hu(o):n?"App":"Anonymous"}function qu(e){return oe(e)&&"__vccOpts"in e}const ie=(e,t)=>Tc(e,t,An);function oa(e,t,n){try{Vo(-1);const o=arguments.length;return o===2?ge(t)&&!ee(t)?to(t)?ve(e,null,[t]):ve(e,t):ve(e,null,t):(o>3?n=Array.prototype.slice.call(arguments,2):o===3&&to(n)&&(n=[n]),ve(e,t,n))}finally{Vo(1)}}const zu="3.5.42";/** +`,...Mc(s)),console.warn(...r)}_t(),Er=!1}function Ic(){let e=Vn[Vn.length-1];if(!e)return[];const t=[];for(;e;){const n=t[0];n&&n.vnode===e?n.recurseCount++:t.push({vnode:e,recurseCount:0});const o=e.component&&e.component.parent;e=o&&o.vnode}return t}function Mc(e){const t=[];return e.forEach((n,o)=>{t.push(...o===0?[]:[` +`],...Rc(n))}),t}function Rc({vnode:e,recurseCount:t}){const n=t>0?`... (${t} recursive calls)`:"",o=e.component?e.component.parent==null:!1,s=` at <${ra(e.component,e.type,o)}`,r=">"+n;return e.props?[s,...Bc(e.props),r]:[s+r]}function Bc(e){const t=[],n=Object.keys(e);return n.slice(0,3).forEach(o=>{t.push(...ii(o,e[o]))}),n.length>3&&t.push(" ..."),t}function ii(e,t,n){return be(t)?(t=JSON.stringify(t),n?t:[`${e}=${t}`]):typeof t=="number"||typeof t=="boolean"||t==null?n?t:[`${e}=${t}`]:Oe(t)?(t=ii(e,pe(t.value),!0),n?t:[`${e}=Ref<`,t,">"]):oe(t)?[`${e}=fn${t.name?`<${t.name}>`:""}`]:(t=pe(t),n?t:[`${e}=`,t])}function $n(e,t,n,o){try{return o?e(...o):e()}catch(s){Yn(s,t,n)}}function lt(e,t,n,o){if(oe(e)){const s=$n(e,t,n,o);return s&&Ts(s)&&s.catch(r=>{Yn(r,t,n)}),s}if(ee(e)){const s=[];for(let r=0;r>>1,s=je[o],r=zn(s);r=zn(n)?je.push(e):je.splice(Wc(t),0,e),e.flags|=1,li()}}function li(){Lo||(Lo=ai.then(pi))}function Gc(e){if(!ee(e))Vt&&e.id===-1?Vt.splice(Cn+1,0,e):e.flags&1||(kn.push(e),e.flags|=1);else for(let t=0;tzn(n)-zn(o));if(kn.length=0,Vt){for(let n=0;ne.id==null?e.flags&2?-1:1/0:e.id;function pi(e){try{for(yt=0;yt{o._d&&Yo(-1);const r=Io(t),i=xt.length;let a;try{a=e(...s)}finally{for(let l=xt.length;l>i;l--)zr();Io(r),o._d&&Yo(1)}return a};return o._n=!0,o._c=!0,o._d=!0,o}function Uc(e,t){if(Be===null)return e;const n=Ko(Be),o=e.dirs||(e.dirs=[]);for(let s=0;s1)return n&&oe(t)?t.call(o&&o.proxy):t}}function jc(){return!!(It()||pn)}const Vc=Symbol.for("v-scx"),Yc=()=>Ie(Vc);function Hc(e,t){return Sr(e,null,t)}function ot(e,t,n){return Sr(e,t,n)}function Sr(e,t,n=_e){const{immediate:o,deep:s,flush:r,once:i}=n,a=Ne({},n),l=t&&o||!t&&r!=="post";let c;if(An){if(r==="sync"){const _=Yc();c=_.__watcherHandles||(_.__watcherHandles=[])}else if(!l){const _=()=>{};return _.stop=ft,_.resume=ft,_.pause=ft,_}}const u=De;a.call=(_,v,k)=>lt(_,u,v,k);let g=!1;r==="post"?a.scheduler=_=>{Ye(_,u&&u.suspense)}:r!=="sync"&&(g=!0,a.scheduler=(_,v)=>{v?_():Tr(_)}),a.augmentJob=_=>{t&&(_.flags|=4),g&&(_.flags|=2,u&&(_.id=u.uid,_.i=u))};const f=Lc(e,t,a);return An&&(c?c.push(f):l&&f()),f}function zc(e,t,n){const o=this.proxy,s=be(e)?e.includes(".")?gi(o,e):()=>o[e]:e.bind(o,o);let r;oe(t)?r=t:(r=t.handler,n=t);const i=ro(this),a=Sr(s,r.bind(o),n);return i(),a}function gi(e,t){const n=t.split(".");return()=>{let o=e;for(let s=0;se.__isTeleport,un=e=>e&&(e.disabled||e.disabled===""),qc=e=>e&&(e.defer||e.defer===""),hi=e=>typeof SVGElement<"u"&&e instanceof SVGElement,mi=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,Pr=(e,t)=>{const n=e&&e.to;return be(n)?t?t(n):null:n},Kc={name:"Teleport",__isTeleport:!0,process(e,t,n,o,s,r,i,a,l,c){const{mc:u,pc:g,pbc:f,o:{insert:_,querySelector:v,createText:k,createComment:O,parentNode:P}}=c,N=un(t.props);let{dynamicChildren:h}=t;const b=(E,F,$)=>{E.shapeFlag&16&&u(E.children,F,$,s,r,i,a,l)},A=(E=t)=>{const F=un(E.props),$=E.target=Pr(E.props,v),D=Fr($,E,k,_);$&&(i!=="svg"&&hi($)?i="svg":i!=="mathml"&&mi($)&&(i="mathml"),s&&s.isCE&&(s.ce._teleportTargets||(s.ce._teleportTargets=new Set)).add($),F||(b(E,$,D),qn(E,!1)))},C=E=>{const F=()=>{if(Ht.get(E)===F){if(Ht.delete(E),un(E.props)){const $=P(E.el)||n;b(E,$,E.anchor),qn(E,!0)}A(E)}};Ht.set(E,F),Ye(F,r)};if(e==null){const E=t.el=k(""),F=t.anchor=k("");if(_(E,n,o),_(F,n,o),qc(t.props)||r&&r.pendingBranch){C(t);return}N&&(b(t,n,F),qn(t,!0)),A()}else{t.el=e.el;const E=t.anchor=e.anchor,F=Ht.get(e);if(F){F.flags|=8,Ht.delete(e),C(t);return}t.targetStart=e.targetStart;const $=t.target=e.target,D=t.targetAnchor=e.targetAnchor,U=un(e.props),K=U?n:$,ne=U?E:D;if(i==="svg"||hi($)?i="svg":(i==="mathml"||mi($))&&(i="mathml"),h?(f(e.dynamicChildren,h,K,s,r,i,a),Yr(e,t,!0)):l||g(e,t,K,ne,s,r,i,a,!1),N)U?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):Ro(t,n,E,c,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const ue=Pr(t.props,v);ue&&(t.target=ue,Ro(t,ue,null,c,0))}else U&&Ro(t,$,D,c,1);qn(t,N)}},remove(e,t,n,{um:o,o:{remove:s}},r){const{shapeFlag:i,children:a,anchor:l,targetStart:c,targetAnchor:u,target:g,props:f}=e,_=un(f),v=r||!_,k=Ht.get(e);if(k&&(k.flags|=8,Ht.delete(e)),g&&(s(c),s(u)),r&&s(l),!k&&(_||g)&&i&16)for(let O=0;O1){for(const n of e)if(n.type!==vt){t=n;break}}return t}function _i(e){if(!Wo(e))return Mo(e.type)&&e.children?Zc(e.children):e;if(e.component)return e.component.subTree;const{shapeFlag:t,children:n}=e;if(n){if(t&16)return n[0];if(t&32&&oe(n.default))return n.default()}}function Lr(e,t){if(e.shapeFlag&6&&e.component){e.transition=t;const n=e.component.subTree;Lr(Mo(n.type)&&_i(n)||n,t)}else e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function Kn(e,t){return oe(e)?Ne({name:e.name},t,{setup:e}):e}function Ir(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}function bi(e,t){let n;return!!((n=Object.getOwnPropertyDescriptor(e,t))&&!n.configurable)}const Bo=new WeakMap;function Xn(e,t,n,o,s=!1){if(ee(e)){e.forEach((k,O)=>Xn(k,t&&(ee(t)?t[O]:t),n,o,s));return}if(On(o)&&!s){o.shapeFlag&512&&o.type.__asyncResolved&&o.component.subTree.component&&Xn(e,t,n,o.component.subTree);return}const r=o.shapeFlag&4?Ko(o.component):o.el,i=s?null:r,{i:a,r:l}=e,c=t&&t.r,u=a.refs===_e?a.refs={}:a.refs,g=a.setupState,f=pe(g),_=g===_e?As:k=>bi(u,k)?!1:fe(f,k),v=(k,O)=>!(O&&bi(u,O));if(c!=null&&c!==l){if(yi(t),be(c))u[c]=null,_(c)&&(g[c]=null);else if(Oe(c)){const k=t;v(c,k.k)&&(c.value=null),k.k&&(u[k.k]=null)}}if(oe(l))$n(l,a,12,[i,u]);else{const k=be(l),O=Oe(l);if(k||O){const P=()=>{if(e.f){const N=k?_(l)?g[l]:u[l]:v()||!e.k?l.value:u[e.k];if(s)ee(N)&&dr(N,r);else if(ee(N))N.includes(r)||N.push(r);else if(k)u[l]=[r],_(l)&&(g[l]=u[l]);else{const h=[r];v(l,e.k)&&(l.value=h),e.k&&(u[e.k]=h)}}else k?(u[l]=i,_(l)&&(g[l]=i)):O&&(v(l,e.k)&&(l.value=i),e.k&&(u[e.k]=i))};if(i){const N=()=>{P(),Bo.delete(e)};N.id=-1,Bo.set(e,N),Ye(N,n)}else yi(e),P()}}}function yi(e){const t=Bo.get(e);t&&(t.flags|=8,Bo.delete(e))}const vi=e=>e.nodeType===8;$o().requestIdleCallback,$o().cancelIdleCallback;function Qc(e,t){if(vi(e)&&e.data==="["){let n=1,o=e.nextSibling;for(;o;){if(o.nodeType===1){if(t(o)===!1)break}else if(vi(o))if(o.data==="]"){if(--n===0)break}else o.data==="["&&n++;o=o.nextSibling}}else t(e)}const On=e=>!!e.type.__asyncLoader;function eu(e){oe(e)&&(e={loader:e});const{loader:t,loadingComponent:n,errorComponent:o,delay:s=200,hydrate:r,timeout:i,suspensible:a=!0,onError:l}=e;let c=null,u,g=0;const f=()=>(g++,c=null,_()),_=()=>{let v;return c||(v=c=t().catch(k=>{if(k=k instanceof Error?k:new Error(String(k)),l)return new Promise((O,P)=>{l(k,()=>O(f()),()=>P(k),g+1)});throw k}).then(k=>v!==c&&c?c:(k&&(k.__esModule||k[Symbol.toStringTag]==="Module")&&(k=k.default),u=k,k)))};return Kn({name:"AsyncComponentWrapper",__asyncLoader:_,__asyncHydrate(v,k,O){const P=v.isConnected;let N=!1;(k.bu||(k.bu=[])).push(()=>N=!0);const h=()=>{N||!v.parentNode||P&&!v.isConnected||O()},b=r?()=>{const A=r(h,C=>Qc(v,C));A&&(k.bum||(k.bum=[])).push(A)}:h;u?b():_().then(()=>!k.isUnmounted&&b())},get __asyncResolved(){return u},setup(){const v=De;if(Ir(v),u)return()=>Do(u,v);const k=A=>{c=null,Yn(A,v,13,!o)};if(a&&v.suspense||An)return _().then(A=>()=>Do(A,v)).catch(A=>(k(A),()=>o?ve(o,{error:A}):null));const O=re(!1),P=re(),N=re(!!s);let h,b;return Uo(()=>{h!=null&&clearTimeout(h),b!=null&&clearTimeout(b)}),s&&(b=setTimeout(()=>{v.isUnmounted||(N.value=!1)},s)),i!=null&&(h=setTimeout(()=>{if(!v.isUnmounted&&!O.value&&!P.value){const A=new Error(`Async component timed out after ${i}ms.`);k(A),P.value=A}},i)),_().then(()=>{v.isUnmounted||(O.value=!0,v.parent&&Wo(v.parent.vnode)&&v.parent.update())}).catch(A=>{if(v.isUnmounted){c=null;return}k(A),P.value=A}),()=>{if(O.value&&u)return Do(u,v);if(P.value&&o)return ve(o,{error:P.value});if(n&&!N.value)return Do(n,v)}}})}function Do(e,t){const{ref:n,props:o,children:s,ce:r}=t.vnode,i=ve(e,o,s);return i.ref=n,i.ce=r,delete t.vnode.ce,i}const Wo=e=>e.type.__isKeepAlive;function tu(e,t){wi(e,"a",t)}function nu(e,t){wi(e,"da",t)}function wi(e,t,n=De){const o=e.__wdc||(e.__wdc=()=>{let s=n;for(;s;){if(s.isDeactivated)return;s=s.parent}return e()});if(Go(t,o,n),n){let s=n.parent;for(;s&&s.parent;)Wo(s.parent.vnode)&&ou(o,t,n,s),s=s.parent}}function ou(e,t,n,o){const s=Go(t,e,o,!0);Uo(()=>{dr(o[t],s)},n)}function Go(e,t,n=De,o=!1){if(n){const s=n[e]||(n[e]=[]),r=t.__weh||(t.__weh=(...i)=>{mt();const a=ro(n),l=lt(t,n,e,i);return a(),_t(),l});return o?s.unshift(r):s.push(r),r}}const Ft=e=>(t,n=De)=>{(!An||e==="sp")&&Go(e,(...o)=>t(...o),n)},$i=Ft("bm"),zt=Ft("m"),ru=Ft("bu"),su=Ft("u"),qt=Ft("bum"),Uo=Ft("um"),iu=Ft("sp"),au=Ft("rtg"),lu=Ft("rtc");function cu(e,t=De){Go("ec",e,t)}const uu="components",ki=Symbol.for("v-ndc");function Ci(e){return be(e)?pu(uu,e,!1)||e:e||ki}function pu(e,t,n=!0,o=!1){const s=Be||De;if(s){const r=s.type;{const a=oa(r,!1);if(a&&(a===t||a===Le(t)||a===wo(Le(t))))return r}const i=Oi(s[e]||r[e],t)||Oi(s.appContext[e],t);return!i&&o?r:i}}function Oi(e,t){return e&&(e[t]||e[Le(t)]||e[wo(Le(t))])}function ct(e,t,n,o){let s;const r=n,i=ee(e);if(i||be(e)){const a=i&&Tt(e);let l=!1,c=!1;a&&(l=!Je(e),c=St(e),e=Oo(e)),s=new Array(e.length);for(let u=0,g=e.length;ut(a,l,void 0,r));else{const a=Object.keys(e);s=new Array(a.length);for(let l=0,c=a.length;l0;return H(),Qe(de,null,[ve("slot",c,o)],u?-2:64)}let i=e[t];i&&i._c&&(i._d=!1);const a=xt.length;H();let l;try{const c=i&&Ni(i(n)),u=n.key||r||c&&c.key;l=Qe(de,{key:(u&&!Xe(u)?u:`_${t}`)+(!c&&o?"_fb":"")},c||(o?o():[]),c&&e._===1?64:-2)}catch(c){for(let u=xt.length;u>a;u--)zr();throw c}finally{i&&i._c&&(i._d=!0)}return l.scopeId&&(l.slotScopeIds=[l.scopeId+"-s"]),l}function Ni(e){return e.some(t=>to(t)?!(t.type===vt||t.type===de&&!Ni(t.children)):!0)?e:null}const Rr=e=>e?ea(e)?Ko(e):Rr(e.parent):null,Jn=Ne(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=>Rr(e.parent),$root:e=>Rr(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Si(e),$forceUpdate:e=>e.f||(e.f=()=>{Tr(e.update)}),$nextTick:e=>e.n||(e.n=Hn.bind(e.proxy)),$watch:e=>zc.bind(e)}),Br=(e,t)=>e!==_e&&!e.__isScriptSetup&&fe(e,t),du={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:o,data:s,props:r,accessCache:i,type:a,appContext:l}=e;if(t[0]!=="$"){const f=i[t];if(f!==void 0)switch(f){case 1:return o[t];case 2:return s[t];case 4:return n[t];case 3:return r[t]}else{if(Br(o,t))return i[t]=1,o[t];if(s!==_e&&fe(s,t))return i[t]=2,s[t];if(fe(r,t))return i[t]=3,r[t];if(n!==_e&&fe(n,t))return i[t]=4,n[t];Dr&&(i[t]=0)}}const c=Jn[t];let u,g;if(c)return t==="$attrs"&&Ue(e.attrs,"get",""),c(e);if((u=a.__cssModules)&&(u=u[t]))return u;if(n!==_e&&fe(n,t))return i[t]=4,n[t];if(g=l.config.globalProperties,fe(g,t))return g[t]},set({_:e},t,n){const{data:o,setupState:s,ctx:r}=e;return Br(s,t)?(s[t]=n,!0):o!==_e&&fe(o,t)?(o[t]=n,!0):fe(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(r[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:o,appContext:s,props:r,type:i}},a){let l;return!!(n[a]||e!==_e&&a[0]!=="$"&&fe(e,a)||Br(t,a)||fe(r,a)||fe(o,a)||fe(Jn,a)||fe(s.config.globalProperties,a)||(l=i.__cssModules)&&l[a])},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:fe(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function Ai(e){return ee(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let Dr=!0;function gu(e){const t=Si(e),n=e.proxy,o=e.ctx;Dr=!1,t.beforeCreate&&Ei(t.beforeCreate,e,"bc");const{data:s,computed:r,methods:i,watch:a,provide:l,inject:c,created:u,beforeMount:g,mounted:f,beforeUpdate:_,updated:v,activated:k,deactivated:O,beforeDestroy:P,beforeUnmount:N,destroyed:h,unmounted:b,render:A,renderTracked:C,renderTriggered:E,errorCaptured:F,serverPrefetch:$,expose:D,inheritAttrs:U,components:K,directives:ne,filters:ue}=t;if(c&&fu(c,o,null),i)for(const X in i){const le=i[X];oe(le)&&(o[X]=le.bind(n))}if(s){const X=s.call(n,n);he(X)&&(e.data=To(X))}if(Dr=!0,r)for(const X in r){const le=r[X],Ee=oe(le)?le.bind(n,n):oe(le.get)?le.get.bind(n,n):ft,Ot=!oe(le)&&oe(le.set)?le.set.bind(n):ft,xe=ie({get:Ee,set:Ot});Object.defineProperty(o,X,{enumerable:!0,configurable:!0,get:()=>xe.value,set:Re=>xe.value=Re})}if(a)for(const X in a)Ti(a[X],o,n,X);if(l){const X=oe(l)?l.call(n):l;Reflect.ownKeys(X).forEach(le=>{nt(le,X[le])})}u&&Ei(u,e,"c");function W(X,le){ee(le)?le.forEach(Ee=>X(Ee.bind(n))):le&&X(le.bind(n))}if(W($i,g),W(zt,f),W(ru,_),W(su,v),W(tu,k),W(nu,O),W(cu,F),W(lu,C),W(au,E),W(qt,N),W(Uo,b),W(iu,$),ee(D))if(D.length){const X=e.exposed||(e.exposed={});D.forEach(le=>{Object.defineProperty(X,le,{get:()=>n[le],set:Ee=>n[le]=Ee,enumerable:!0})})}else e.exposed||(e.exposed={});A&&e.render===ft&&(e.render=A),U!=null&&(e.inheritAttrs=U),K&&(e.components=K),ne&&(e.directives=ne),$&&Ir(e)}function fu(e,t,n=ft){ee(e)&&(e=Wr(e));for(const o in e){const s=e[o];let r;he(s)?"default"in s?r=Ie(s.from||o,s.default,!0):r=Ie(s.from||o):r=Ie(s),Oe(r)?Object.defineProperty(t,o,{enumerable:!0,configurable:!0,get:()=>r.value,set:i=>r.value=i}):t[o]=r}}function Ei(e,t,n){lt(ee(e)?e.map(o=>o.bind(t.proxy)):e.bind(t.proxy),t,n)}function Ti(e,t,n,o){let s=o.includes(".")?gi(n,o):()=>n[o];if(be(e)){const r=t[e];oe(r)&&ot(s,r)}else if(oe(e))ot(s,e.bind(n));else if(he(e))if(ee(e))e.forEach(r=>Ti(r,t,n,o));else{const r=oe(e.handler)?e.handler.bind(n):t[e.handler];oe(r)&&ot(s,r,e)}}function Si(e){const t=e.type,{mixins:n,extends:o}=t,{mixins:s,optionsCache:r,config:{optionMergeStrategies:i}}=e.appContext,a=r.get(t);let l;return a?l=a:!s.length&&!n&&!o?l=t:(l={},s.length&&s.forEach(c=>jo(l,c,i,!0)),jo(l,t,i)),he(t)&&r.set(t,l),l}function jo(e,t,n,o=!1){const{mixins:s,extends:r}=t;r&&jo(e,r,n,!0),s&&s.forEach(i=>jo(e,i,n,!0));for(const i in t)if(!(o&&i==="expose")){const a=hu[i]||n&&n[i];e[i]=a?a(e[i],t[i]):t[i]}return e}const hu={data:Pi,props:Fi,emits:Fi,methods:Zn,computed:Zn,beforeCreate:Ve,created:Ve,beforeMount:Ve,mounted:Ve,beforeUpdate:Ve,updated:Ve,beforeDestroy:Ve,beforeUnmount:Ve,destroyed:Ve,unmounted:Ve,activated:Ve,deactivated:Ve,errorCaptured:Ve,serverPrefetch:Ve,components:Zn,directives:Zn,watch:_u,provide:Pi,inject:mu};function Pi(e,t){return t?e?function(){return Ne(oe(e)?e.call(this,this):e,oe(t)?t.call(this,this):t)}:t:e}function mu(e,t){return Zn(Wr(e),Wr(t))}function Wr(e){if(ee(e)){const t={};for(let n=0;nt==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${Le(t)}Modifiers`]||e[`${tt(t)}Modifiers`];function wu(e,t,...n){if(e.isUnmounted)return;const o=e.vnode.props||_e;let s=n;const r=t.startsWith("update:"),i=r&&vu(o,t.slice(7));i&&(i.trim&&(s=n.map(u=>be(u)?u.trim():u)),i.number&&(s=s.map(Ql)));let a,l=o[a=gr(t)]||o[a=gr(Le(t))];!l&&r&&(l=o[a=gr(tt(t))]),l&<(l,e,6,s);const c=o[a+"Once"];if(c){if(!e.emitted)e.emitted={};else if(e.emitted[a])return;e.emitted[a]=!0,lt(c,e,6,s)}}const $u=new WeakMap;function Li(e,t,n=!1){const o=n?$u:t.emitsCache,s=o.get(e);if(s!==void 0)return s;const r=e.emits;let i={},a=!1;if(!oe(e)){const l=c=>{const u=Li(c,t,!0);u&&(a=!0,Ne(i,u))};!n&&t.mixins.length&&t.mixins.forEach(l),e.extends&&l(e.extends),e.mixins&&e.mixins.forEach(l)}return!r&&!a?(he(e)&&o.set(e,null),null):(ee(r)?r.forEach(l=>i[l]=null):Ne(i,r),he(e)&&o.set(e,i),i)}function Vo(e,t){return!e||!ho(t)?!1:(t=t.slice(2),t=t==="Once"?t:t.replace(/Once$/,""),fe(e,t[0].toLowerCase()+t.slice(1))||fe(e,tt(t))||fe(e,t))}function e0(){}function Ii(e){const{type:t,vnode:n,proxy:o,withProxy:s,propsOptions:[r],slots:i,attrs:a,emit:l,render:c,renderCache:u,props:g,data:f,setupState:_,ctx:v,inheritAttrs:k}=e,O=Io(e);let P,N;try{if(n.shapeFlag&4){const b=s||o,A=b;P=wt(c.call(A,b,u,g,_,f,v)),N=a}else{const b=t;P=wt(b.length>1?b(g,{attrs:a,slots:i,emit:l}):b(g,null)),N=t.props?a:ku(a)}}catch(b){xt.length=0,Yn(b,e,1),P=ve(vt)}let h=P;if(N&&k!==!1){const b=Object.keys(N),{shapeFlag:A}=h;b.length&&A&7&&(r&&b.some(mo)&&(N=Cu(N,r)),h=Nn(h,N,!1,!0))}if(n.dirs&&(h=Nn(h,null,!1,!0),h.dirs=h.dirs?h.dirs.concat(n.dirs):n.dirs),n.transition){const b=Mo(h.type)&&_i(h)||h;Lr(b,n.transition)}return P=h,Io(O),P}const ku=e=>{let t;for(const n in e)(n==="class"||n==="style"||ho(n))&&((t||(t={}))[n]=e[n]);return t},Cu=(e,t)=>{const n={};for(const o in e)(!mo(o)||!(o.slice(9)in t))&&(n[o]=e[o]);return n};function Ou(e,t,n){const{props:o,children:s,component:r}=e,{props:i,children:a,patchFlag:l}=t,c=r.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&l>=0){if(l&1024)return!0;if(l&16)return o?Mi(o,i,c):!!i;if(l&8){const u=t.dynamicProps;for(let g=0;gObject.create(Bi),Wi=e=>Object.getPrototypeOf(e)===Bi;function Au(e,t,n,o=!1){const s={},r=Di();e.propsDefaults=Object.create(null),Gi(e,t,s,r);for(const i in e.propsOptions[0])i in s||(s[i]=void 0);n?e.props=o?s:Oc(s):e.type.props?e.props=s:e.props=r,e.attrs=r}function Eu(e,t,n,o){const{props:s,attrs:r,vnode:{patchFlag:i}}=e,a=pe(s),[l]=e.propsOptions;let c=!1;if((o||i>0)&&!(i&16)){if(i&8){const u=e.vnode.dynamicProps;for(let g=0;g{l=!0;const[f,_]=Ui(g,t,!0);Ne(i,f),_&&a.push(..._)};!n&&t.mixins.length&&t.mixins.forEach(u),e.extends&&u(e.extends),e.mixins&&e.mixins.forEach(u)}if(!r&&!l)return he(e)&&o.set(e,_n),_n;if(ee(r))for(let u=0;ue==="_"||e==="_ctx"||e==="$stable",jr=e=>ee(e)?e.map(wt):[wt(e)],Su=(e,t,n)=>{if(t._n)return t;const o=Yt((...s)=>jr(t(...s)),n);return o._c=!1,o},Vi=(e,t,n)=>{const o=e._ctx;for(const s in e){if(Ur(s))continue;const r=e[s];if(oe(r))t[s]=Su(s,r,o);else if(r!=null){const i=jr(r);t[s]=()=>i}}},Yi=(e,t)=>{const n=jr(t);e.slots.default=()=>n},Hi=(e,t,n)=>{for(const o in t)(n||!Ur(o))&&(e[o]=t[o])},Pu=(e,t,n)=>{const o=e.slots=Di();if(e.vnode.shapeFlag&32){const s=t._;s?(Hi(o,t,n),n&&Ps(o,"_",s,!0)):Vi(t,o)}else t&&Yi(e,t)},Fu=(e,t,n)=>{const{vnode:o,slots:s}=e;let r=!0,i=_e;if(o.shapeFlag&32){const a=t._;a?n&&a===1?r=!1:Hi(s,t,n):(r=!t.$stable,Vi(t,s)),i=t}else t&&(Yi(e,t),i={default:1});if(r)for(const a in s)!Ur(a)&&i[a]==null&&delete s[a]},Ye=Ru;function xu(e){return Lu(e)}function Lu(e,t){const n=$o();n.__VUE__=!0;const{insert:o,remove:s,patchProp:r,createElement:i,createText:a,createComment:l,setText:c,setElementText:u,parentNode:g,nextSibling:f,setScopeId:_=ft,insertStaticContent:v}=e,k=(m,w,y,x=null,B=null,R=null,V=void 0,j=null,p=!!w.dynamicChildren)=>{if(m===w)return;m&&!no(m,w)&&(x=Gt(m),Re(m,B,R,!0),m=null),w.patchFlag===-2&&(p=!1,w.dynamicChildren=null);const{type:d,ref:S,shapeFlag:L}=w;switch(d){case Qn:O(m,w,y,x);break;case vt:P(m,w,y,x);break;case Hr:m==null&&N(w,y,x,V);break;case de:K(m,w,y,x,B,R,V,j,p);break;default:L&1?A(m,w,y,x,B,R,V,j,p):L&6?ne(m,w,y,x,B,R,V,j,p):(L&64||L&128)&&d.process(m,w,y,x,B,R,V,j,p,st)}S!=null&&B?Xn(S,m&&m.ref,R,w||m,!w):S==null&&m&&m.ref!=null&&Xn(m.ref,null,R,m,!0)},O=(m,w,y,x)=>{if(m==null)o(w.el=a(w.children),y,x);else{const B=w.el=m.el;w.children!==m.children&&c(B,w.children)}},P=(m,w,y,x)=>{m==null?o(w.el=l(w.children||""),y,x):w.el=m.el},N=(m,w,y,x)=>{[m.el,m.anchor]=v(m.children,w,y,x,m.el,m.anchor)},h=({el:m,anchor:w},y,x)=>{let B;for(;m&&m!==w;)B=f(m),o(m,y,x),m=B;o(w,y,x)},b=({el:m,anchor:w})=>{let y;for(;m&&m!==w;)y=f(m),s(m),m=y;s(w)},A=(m,w,y,x,B,R,V,j,p)=>{if(w.type==="svg"?V="svg":w.type==="math"&&(V="mathml"),m==null)C(w,y,x,B,R,V,j,p);else{const d=m.el&&m.el._isVueCE?m.el:null;try{d&&d._beginPatch(),$(m,w,B,R,V,j,p)}finally{d&&d._endPatch()}}},C=(m,w,y,x,B,R,V,j)=>{let p,d;const{props:S,shapeFlag:L,transition:Y,dirs:G}=m;if(p=m.el=i(m.type,R,S&&S.is,S),L&8?u(p,m.children):L&16&&F(m.children,p,null,x,B,Vr(m,R),V,j),G&&cn(m,null,x,"created"),E(p,m,m.scopeId,V,x),S){for(const M in S)M!=="value"&&!Rn(M)&&r(p,M,null,S[M],R,x);"value"in S&&r(p,"value",null,S.value,R),(d=S.onVnodeBeforeMount)&&$t(d,x,m)}G&&cn(m,null,x,"beforeMount");const T=Iu(B,Y);T&&Y.beforeEnter(p),o(p,w,y),((d=S&&S.onVnodeMounted)||T||G)&&Ye(()=>{try{d&&$t(d,x,m),T&&Y.enter(p),G&&cn(m,null,x,"mounted")}finally{}},B)},E=(m,w,y,x,B)=>{if(y&&_(m,y),x)for(let R=0;R{for(let d=p;d{const j=w.el=m.el;let{patchFlag:p,dynamicChildren:d,dirs:S}=w;p|=m.patchFlag&16;const L=m.props||_e,Y=w.props||_e;let G;if(y&&dn(y,!1),(G=Y.onVnodeBeforeUpdate)&&$t(G,y,w,m),S&&cn(w,m,y,"beforeUpdate"),y&&dn(y,!0),d&&(!m.dynamicChildren||m.dynamicChildren.length!==d.length)&&(p=0,V=!1,d=null),(L.innerHTML&&Y.innerHTML==null||L.textContent&&Y.textContent==null)&&u(j,""),d?D(m.dynamicChildren,d,j,y,x,Vr(w,B),R):V||le(m,w,j,null,y,x,Vr(w,B),R,!1),p>0){if(p&16)U(j,L,Y,y,B);else if(p&2&&L.class!==Y.class&&r(j,"class",null,Y.class,B),p&4&&r(j,"style",L.style,Y.style,B),p&8){const T=w.dynamicProps;for(let M=0;M{G&&$t(G,y,w,m),S&&cn(w,m,y,"updated")},x)},D=(m,w,y,x,B,R,V)=>{for(let j=0;j{if(w!==y){if(w!==_e)for(const R in w)!Rn(R)&&!(R in y)&&r(m,R,w[R],null,B,x);for(const R in y){if(Rn(R))continue;const V=y[R],j=w[R];V!==j&&R!=="value"&&r(m,R,j,V,B,x)}"value"in y&&r(m,"value",w.value,y.value,B)}},K=(m,w,y,x,B,R,V,j,p)=>{const d=w.el=m?m.el:a(""),S=w.anchor=m?m.anchor:a("");let{patchFlag:L,dynamicChildren:Y,slotScopeIds:G}=w;G&&(j=j?j.concat(G):G),m==null?(o(d,y,x),o(S,y,x),F(w.children||[],y,S,B,R,V,j,p)):L>0&&L&64&&Y&&m.dynamicChildren&&m.dynamicChildren.length===Y.length?(D(m.dynamicChildren,Y,y,B,R,V,j),(w.key!=null||B&&w===B.subTree)&&Yr(m,w,!0)):le(m,w,y,S,B,R,V,j,p)},ne=(m,w,y,x,B,R,V,j,p)=>{w.slotScopeIds=j,m==null?w.shapeFlag&512?B.ctx.activate(w,y,x,V,p):ue(w,y,x,B,R,V,p):q(m,w,p)},ue=(m,w,y,x,B,R,V)=>{const j=m.component=ju(m,x,B);if(Wo(m)&&(j.ctx.renderer=st),Vu(j,!1,V),j.asyncDep){if(B&&B.registerDep(j,W,V),!m.el){const p=j.subTree=ve(vt);P(null,p,w,y),m.placeholder=p.el}}else W(j,m,w,y,B,R,V)},q=(m,w,y)=>{const x=w.component=m.component;if(Ou(m,w,y))if(x.asyncDep&&!x.asyncResolved){X(x,w,y);return}else x.next=w,x.update();else w.el=m.el,x.vnode=w},W=(m,w,y,x,B,R,V)=>{const j=()=>{if(m.isMounted){let{next:L,bu:Y,u:G,parent:T,vnode:M}=m;{const Ge=zi(m);if(Ge){L&&(L.el=M.el,X(m,L,V)),Ge.asyncDep.then(()=>{Ye(()=>{m.isUnmounted||d()},B)});return}}let Z=L,ae;dn(m,!1),L?(L.el=M.el,X(m,L,V)):L=M,Y&&fr(Y),(ae=L.props&&L.props.onVnodeBeforeUpdate)&&$t(ae,T,L,M),dn(m,!0);const $e=Ii(m),ze=m.subTree;m.subTree=$e,k(ze,$e,g(ze.el),Gt(ze),m,B,R),L.el=$e.el,Z===null&&Nu(m,$e.el),G&&Ye(G,B),(ae=L.props&&L.props.onVnodeUpdated)&&Ye(()=>$t(ae,T,L,M),B)}else{let L;const{el:Y,props:G}=w,{bm:T,m:M,parent:Z,root:ae,type:$e}=m,ze=On(w);dn(m,!1),T&&fr(T),!ze&&(L=G&&G.onVnodeBeforeMount)&&$t(L,Z,w),dn(m,!0);{ae.ce&&ae.ce._hasShadowRoot()&&ae.ce._injectChildStyle($e,m.parent?m.parent.type:void 0);const Ge=m.subTree=Ii(m);k(null,Ge,y,x,m,B,R),w.el=Ge.el}if(M&&Ye(M,B),!ze&&(L=G&&G.onVnodeMounted)){const Ge=w;Ye(()=>$t(L,Z,Ge),B)}(w.shapeFlag&256||Z&&On(Z.vnode)&&Z.vnode.shapeFlag&256)&&m.a&&Ye(m.a,B),m.isMounted=!0,w=y=x=null}};m.scope.on();const p=m.effect=new Ws(j);m.scope.off();const d=m.update=p.run.bind(p),S=m.job=p.runIfDirty.bind(p);S.i=m,S.id=m.uid,p.scheduler=()=>Tr(S),dn(m,!0),d()},X=(m,w,y)=>{w.component=m;const x=m.vnode.props;m.vnode=w,m.next=null,Eu(m,w.props,x,y),Fu(m,w.children,y),mt(),ci(m),_t()},le=(m,w,y,x,B,R,V,j,p=!1)=>{const d=m&&m.children,S=m?m.shapeFlag:0,L=w.children,{patchFlag:Y,shapeFlag:G}=w;if(Y>0){if(Y&128){Ot(d,L,y,x,B,R,V,j,p);return}else if(Y&256){Ee(d,L,y,x,B,R,V,j,p);return}}G&8?(S&16&>(d,B,R),L!==d&&u(y,L)):S&16?G&16?Ot(d,L,y,x,B,R,V,j,p):gt(d,B,R,!0):(S&8&&u(y,""),G&16&&F(L,y,x,B,R,V,j,p))},Ee=(m,w,y,x,B,R,V,j,p)=>{m=m||_n,w=w||_n;const d=m.length,S=w.length,L=Math.min(d,S);let Y;for(Y=0;YS?gt(m,B,R,!0,!1,L):F(w,y,x,B,R,V,j,p,L)},Ot=(m,w,y,x,B,R,V,j,p)=>{let d=0;const S=w.length;let L=m.length-1,Y=S-1;for(;d<=L&&d<=Y;){const G=m[d],T=w[d]=p?Lt(w[d]):wt(w[d]);if(no(G,T))k(G,T,y,null,B,R,V,j,p);else break;d++}for(;d<=L&&d<=Y;){const G=m[L],T=w[Y]=p?Lt(w[Y]):wt(w[Y]);if(no(G,T))k(G,T,y,null,B,R,V,j,p);else break;L--,Y--}if(d>L){if(d<=Y){const G=Y+1,T=GY)for(;d<=L;)Re(m[d],B,R,!0),d++;else{const G=d,T=d,M=new Map;for(d=T;d<=Y;d++){const et=w[d]=p?Lt(w[d]):wt(w[d]);et.key!=null&&M.set(et.key,d)}let Z,ae=0;const $e=Y-T+1;let ze=!1,Ge=0;const mn=new Array($e);for(d=0;d<$e;d++)mn[d]=0;for(d=G;d<=L;d++){const et=m[d];if(ae>=$e){Re(et,B,R,!0);continue}let Nt;if(et.key!=null)Nt=M.get(et.key);else for(Z=T;Z<=Y;Z++)if(mn[Z-T]===0&&no(et,w[Z])){Nt=Z;break}Nt===void 0?Re(et,B,R,!0):(mn[Nt-T]=d+1,Nt>=Ge?Ge=Nt:ze=!0,k(et,w[Nt],y,null,B,R,V,j,p),ae++)}const Ns=ze?Mu(mn):_n;for(Z=Ns.length-1,d=$e-1;d>=0;d--){const et=T+d,Nt=w[et],zl=w[et+1],ql=et+1{const{el:R,type:V,transition:j,children:p,shapeFlag:d}=m;if(d&6){xe(m.component.subTree,w,y,x);return}if(d&128){m.suspense.move(w,y,x);return}if(d&64){V.move(m,w,y,st);return}if(V===de){o(R,w,y);for(let L=0;Lj.enter(R),B));else{const{leave:L,delayLeave:Y,afterLeave:G}=j,T=()=>{m.ctx.isUnmounted?s(R):o(R,w,y)},M=()=>{const Z=R._isLeaving||!!R[xr];R._isLeaving&&R[xr](!0),j.persisted&&!Z?T():L(R,()=>{T(),G&&G()})};Y?Y(R,T,M):M()}else o(R,w,y)},Re=(m,w,y,x=!1,B=!1)=>{const{type:R,props:V,ref:j,children:p,dynamicChildren:d,shapeFlag:S,patchFlag:L,dirs:Y,cacheIndex:G,memo:T}=m;if(L===-2&&(B=!1),j!=null&&(mt(),Xn(j,null,y,m,!0),_t()),G!=null&&(w.renderCache[G]=void 0),S&256){w.ctx.deactivate(m);return}const M=S&1&&Y,Z=!On(m);let ae;if(Z&&(ae=V&&V.onVnodeBeforeUnmount)&&$t(ae,w,m),S&6)hn(m.component,y,x);else{if(S&128){m.suspense.unmount(y,x);return}M&&cn(m,null,w,"beforeUnmount"),S&64?m.type.remove(m,w,y,st,x):d&&!d.hasOnce&&(R!==de||L>0&&L&64)?gt(d,w,y,!1,!0):(R===de&&L&384||!B&&S&16)&>(p,w,y),x&&on(m)}const $e=T!=null&&G==null;(Z&&(ae=V&&V.onVnodeUnmounted)||M||$e)&&Ye(()=>{ae&&$t(ae,w,m),M&&cn(m,null,w,"unmounted"),$e&&(m.el=null)},y)},on=m=>{const{type:w,el:y,anchor:x,transition:B}=m;if(w===de){rn(y,x);return}if(w===Hr){b(m);return}const R=()=>{s(y),B&&!B.persisted&&B.afterLeave&&B.afterLeave()};if(m.shapeFlag&1&&B&&!B.persisted){const{leave:V,delayLeave:j}=B,p=()=>V(y,R);j?j(m.el,R,p):p()}else R()},rn=(m,w)=>{let y;for(;m!==w;)y=f(m),s(m),m=y;s(w)},hn=(m,w,y)=>{const{bum:x,scope:B,job:R,subTree:V,um:j,m:p,a:d}=m;qi(p),qi(d),x&&fr(x),B.stop(),R&&(R.flags|=8,Re(V,m,w,y)),j&&Ye(j,w),Ye(()=>{m.isUnmounted=!0},w)},gt=(m,w,y,x=!1,B=!1,R=0)=>{for(let V=R;V{if(m.shapeFlag&6)return Gt(m.component.subTree);if(m.shapeFlag&128)return m.suspense.next();const w=f(m.anchor||m.el),y=w&&w[fi];return y?f(y):w};let Ut=!1;const sn=(m,w,y)=>{let x;m==null?w._vnode&&(Re(w._vnode,null,null,!0),x=w._vnode.component):k(w._vnode||null,m,w,null,null,null,y),w._vnode=m,Ut||(Ut=!0,ci(x),ui(),Ut=!1)},st={p:k,um:Re,m:xe,r:on,mt:ue,mc:F,pc:le,pbc:D,n:Gt,o:e};return{render:sn,hydrate:void 0,createApp:yu(sn)}}function Vr({type:e,props:t},n){return n==="svg"&&e==="foreignObject"||n==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function dn({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function Iu(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Yr(e,t,n=!1){const o=e.children,s=t.children;if(ee(o)&&ee(s))for(let r=0;r>1,e[n[a]]0&&(t[o]=n[r-1]),n[r]=o)}}for(r=n.length,i=n[r-1];r-- >0;)n[r]=i,i=t[i];return n}function zi(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:zi(t)}function qi(e){if(e)for(let t=0;te.__isSuspense;function Ru(e,t){t&&t.pendingBranch?ee(e)?t.effects.push(...e):t.effects.push(e):Gc(e)}const de=Symbol.for("v-fgt"),Qn=Symbol.for("v-txt"),vt=Symbol.for("v-cmt"),Hr=Symbol.for("v-stc"),xt=[];let Ze=null;function H(e=!1){xt.push(Ze=e?null:[])}function zr(){xt.pop(),Ze=xt[xt.length-1]||null}let eo=1;function Yo(e,t=!1){eo+=e,e<0&&Ze&&t&&(Ze.hasOnce=!0)}function Ji(e){return e.dynamicChildren=eo>0?Ze||_n:null,zr(),eo>0&&Ze&&Ze.push(e),e}function J(e,t,n,o,s,r){return Ji(I(e,t,n,o,s,r,!0))}function Qe(e,t,n,o,s){return Ji(ve(e,t,n,o,s,!0))}function to(e){return e?e.__v_isVNode===!0:!1}function no(e,t){return e.type===t.type&&e.key===t.key}const Zi=({key:e})=>e??null,Ho=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?be(e)||Oe(e)||oe(e)?{i:Be,r:e,k:t,f:!!n}:e:null);function I(e,t=null,n=null,o=0,s=null,r=e===de?0:1,i=!1,a=!1){const l={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Zi(t),ref:t&&Ho(t),scopeId:di,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:r,patchFlag:o,dynamicProps:s,dynamicChildren:null,appContext:null,ctx:Be};return a?(zo(l,n),r&128&&e.normalize(l)):n&&(l.shapeFlag|=be(n)?8:16),eo>0&&!i&&Ze&&(l.patchFlag>0||r&6)&&l.patchFlag!==32&&Ze.push(l),l}const ve=Bu;function Bu(e,t=null,n=null,o=0,s=null,r=!1){if((!e||e===ki)&&(e=vt),to(e)){const a=Nn(e,t,!0);return n&&zo(a,n),eo>0&&!r&&Ze&&(a.shapeFlag&6?Ze[Ze.indexOf(e)]=a:Ze.push(a)),a.patchFlag=-2,a}if(Xu(e)&&(e=e.__vccOpts),t){t=Du(t);let{class:a,style:l}=t;a&&!be(a)&&(t.class=Te(a)),he(l)&&(Po(l)&&!ee(l)&&(l=Ne({},l)),t.style=bn(l))}const i=be(e)?1:Xi(e)?128:Mo(e)?64:he(e)?4:oe(e)?2:0;return I(e,t,n,o,s,i,r,!0)}function Du(e){return e?Po(e)||Wi(e)?Ne({},e):e:null}function Nn(e,t,n=!1,o=!1){const{props:s,ref:r,patchFlag:i,children:a,transition:l}=e,c=t?Wu(s||{},t):s,u={__v_isVNode:!0,__v_skip:!0,type:e.type,props:c,key:c&&Zi(c),ref:t&&t.ref?n&&r?ee(r)?r.concat(Ho(t)):[r,Ho(t)]:Ho(t):r,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:a,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==de?i===-1?16:i|16:i,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:l,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Nn(e.ssContent),ssFallback:e.ssFallback&&Nn(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return l&&o&&Lr(u,l.clone(u)),u}function ke(e=" ",t=0){return ve(Qn,null,e,t)}function Se(e="",t=!1){return t?(H(),Qe(vt,null,e)):ve(vt,null,e)}function wt(e){return e==null||typeof e=="boolean"?ve(vt):ee(e)?ve(de,null,e.slice()):to(e)?Lt(e):ve(Qn,null,String(e))}function Lt(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Nn(e)}function zo(e,t){let n=0;const{shapeFlag:o}=e;if(t==null)t=null;else if(ee(t))n=16;else if(typeof t=="object")if(o&65){const s=t.default;s&&(s._c&&(s._d=!1),zo(e,s()),s._c&&(s._d=!0));return}else{n=32;const s=t._;!s&&!Wi(t)?t._ctx=Be:s===3&&Be&&(Be.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else if(oe(t)){if(o&65){zo(e,{default:t});return}t={default:t,_ctx:Be},n=32}else t=String(t),o&64?(n=16,t=[ke(t)]):n=8;e.children=t,e.shapeFlag|=n}function Wu(...e){const t={};for(let n=0;nDe||Be;let qo,oo;{const e=$o(),t=(n,o)=>{let s;return(s=e[n])||(s=e[n]=[]),s.push(o),r=>{s.length>1?s.forEach(i=>i(r)):s[0](r)}};qo=t("__VUE_INSTANCE_SETTERS__",n=>De=n),oo=t("__VUE_SSR_SETTERS__",n=>An=n)}const ro=e=>{const t=De;return qo(e),e.scope.on(),()=>{e.scope.off(),qo(t)}},Qi=()=>{De&&De.scope.off(),qo(null)};function ea(e){return e.vnode.shapeFlag&4}let An=!1;function Vu(e,t=!1,n=!1){t&&oo(t);const{props:o,children:s}=e.vnode,r=ea(e);Au(e,o,r,t),Pu(e,s,n||t);const i=r?Yu(e,t):void 0;return t&&oo(!1),i}function Yu(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,du);const{setup:o}=n;if(o){mt();const s=e.setupContext=o.length>1?zu(e):null,r=ro(e),i=$n(o,e,0,[e.props,s]),a=Ts(i);if(_t(),r(),(a||e.sp)&&!On(e)&&Ir(e),a){if(i.then(Qi,Qi),t)return i.then(l=>{oo(!0);try{ta(e,l,t)}finally{oo(!1)}}).catch(l=>{Yn(l,e,0)});e.asyncDep=i}else ta(e,i)}else na(e)}function ta(e,t,n){oe(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:he(t)&&(e.setupState=si(t)),na(e)}function na(e,t,n){const o=e.type;e.render||(e.render=o.render||ft);{const s=ro(e);mt();try{gu(e)}finally{_t(),s()}}}const Hu={get(e,t){return Ue(e,"get",""),e[t]}};function zu(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,Hu),slots:e.slots,emit:e.emit,expose:t}}function Ko(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(si(vn(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in Jn)return Jn[n](e)},has(t,n){return n in t||n in Jn}})):e.proxy}const qu=/(?:^|[-_])\w/g,Ku=e=>e.replace(qu,t=>t.toUpperCase()).replace(/[-_]/g,"");function oa(e,t=!0){return oe(e)?e.displayName||e.name:e.name||t&&e.__name}function ra(e,t,n=!1){let o=oa(t);if(!o&&t.__file){const s=t.__file.match(/([^/\\]+)\.\w+$/);s&&(o=s[1])}if(!o&&e){const s=r=>{for(const i in r)if(r[i]===t)return i};o=s(e.components)||e.parent&&s(e.parent.type.components)||s(e.appContext.components)}return o?Ku(o):n?"App":"Anonymous"}function Xu(e){return oe(e)&&"__vccOpts"in e}const ie=(e,t)=>Fc(e,t,An);function sa(e,t,n){try{Yo(-1);const o=arguments.length;return o===2?he(t)&&!ee(t)?to(t)?ve(e,null,[t]):ve(e,t):ve(e,null,t):(o>3?n=Array.prototype.slice.call(arguments,2):o===3&&to(n)&&(n=[n]),ve(e,t,n))}finally{Yo(1)}}const Ju="3.5.42";/** * @vue/runtime-dom v3.5.42 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT -**/let qr;const ra=typeof window<"u"&&window.trustedTypes;if(ra)try{qr=ra.createPolicy("vue",{createHTML:e=>e})}catch{}const sa=qr?e=>qr.createHTML(e):e=>e,Ku="http://www.w3.org/2000/svg",Xu="http://www.w3.org/1998/Math/MathML",Pt=typeof document<"u"?document:null,ia=Pt&&Pt.createElement("template"),Ju={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,o)=>{const s=t==="svg"?Pt.createElementNS(Ku,e):t==="mathml"?Pt.createElementNS(Xu,e):n?Pt.createElement(e,{is:n}):Pt.createElement(e);return e==="select"&&o&&o.multiple!=null&&s.setAttribute("multiple",o.multiple),s},createText:e=>Pt.createTextNode(e),createComment:e=>Pt.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Pt.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,o,s,r){const i=n?n.previousSibling:t.lastChild;if(s&&(s===r||s.nextSibling))for(;t.insertBefore(s.cloneNode(!0),n),!(s===r||!(s=s.nextSibling)););else{ia.innerHTML=sa(o==="svg"?`${e}`:o==="mathml"?`${e}`:e);const a=ia.content;if(o==="svg"||o==="mathml"){const l=a.firstChild;for(;l.firstChild;)a.appendChild(l.firstChild);a.removeChild(l)}t.insertBefore(a,n)}return[i?i.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},Zu=Symbol("_vtc");function Qu(e,t,n){const o=e[Zu];o&&(t=(t?[t,...o]:[...o]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const Xo=Symbol("_vod"),aa=Symbol("_vsh"),ep={name:"show",beforeMount(e,{value:t},{transition:n}){e[Xo]=e.style.display==="none"?"":e.style.display,n&&t?n.beforeEnter(e):so(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:o}){!t!=!n&&(o?t?(o.beforeEnter(e),so(e,!0),o.enter(e)):o.leave(e,()=>{so(e,!1)}):so(e,t))},beforeUnmount(e,{value:t}){so(e,t)}};function so(e,t){e.style.display=t?e[Xo]:"none",e[aa]=!t}const tp=Symbol(""),np=/(?:^|;)\s*display\s*:/;function op(e,t,n){const o=e.style,s=be(n);let r=!1;if(n&&!s){if(t)if(be(t))for(const i of t.split(";")){const a=i.slice(0,i.indexOf(":")).trim();n[a]==null&&io(o,a,"")}else for(const i in t)n[i]==null&&io(o,i,"");for(const i in n){i==="display"&&(r=!0);const a=n[i];a!=null?sp(e,i,!be(t)&&t?t[i]:void 0,a)||io(o,i,a):io(o,i,"")}}else if(s){if(t!==n){const i=o[tp];i&&(n+=";"+i),o.cssText=n,r=np.test(n)}}else t&&e.removeAttribute("style");Xo in e&&(e[Xo]=r?o.display:"",e[aa]&&(o.display="none"))}const Jo=/\s*!important$/;function io(e,t,n){if(ee(n))n.forEach(o=>io(e,t,o));else if(n==null&&(n=""),t.startsWith("--"))Jo.test(n)?e.setProperty(t,n.replace(Jo,""),"important"):e.setProperty(t,n);else{const o=rp(e,t);Jo.test(n)?e.setProperty(tt(o),n.replace(Jo,""),"important"):e[o]=n}}const la=["Webkit","Moz","ms"],zr={};function rp(e,t){const n=zr[t];if(n)return n;let o=Fe(t);if(o!=="filter"&&o in e)return zr[t]=o;o=wo(o);for(let s=0;sKr||(dp.then(()=>Kr=0),Kr=Date.now());function hp(e,t){const n=o=>{if(!o._vts)o._vts=Date.now();else if(o._vts<=n.attached)return;const s=n.value;if(ee(s)){const r=o.stopImmediatePropagation;o.stopImmediatePropagation=()=>{r.call(o),o._stopped=!0};const i=s.slice(),a=[o];for(let l=0;le.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,gp=(e,t,n,o,s,r)=>{const i=s==="svg";t==="class"?Qu(e,o,i):t==="style"?op(e,n,o):go(t)?mo(t)||lp(e,t,n,o,r):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):mp(e,t,o,i))?(pa(e,t,o),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&ua(e,t,o,i,r,t!=="value")):e._isVueCE&&(_p(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!be(o)))?pa(e,Fe(t),o,r,t):(t==="true-value"?e._trueValue=o:t==="false-value"&&(e._falseValue=o),ua(e,t,o,i))};function mp(e,t,n,o){if(o)return!!(t==="innerHTML"||t==="textContent"||t in e&&fa(t)&&oe(n));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 s=e.tagName;if(s==="IMG"||s==="VIDEO"||s==="CANVAS"||s==="SOURCE")return!1}return fa(t)&&be(n)?!1:t in e}function _p(e,t){const n=e._def.props;if(!n)return!1;const o=Fe(t);return Array.isArray(n)?n.some(s=>Fe(s)===o):Object.keys(n).some(s=>Fe(s)===o)}const ha={};function bp(e,t,n){let o=Kn(e,t);bo(o)&&(o=Ce({},o,t));class s extends Xr{constructor(i){super(o,i,n)}}return s.def=o,s}const yp=typeof HTMLElement<"u"?HTMLElement:class{};class Xr extends yp{constructor(t,n={},o=_a){super(),this._def=t,this._props=n,this._createApp=o,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&&o!==_a?this._root=this.shadowRoot:t.shadowRoot!==!1?(this.attachShadow(Ce({},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 Xr){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,Hn(()=>{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 n of t)this._setAttr(n.attributeName)}_resolveDef(){if(this._pendingResolve)return this._pendingResolve;for(let o=0;o{this._resolved=!0,this._pendingResolve=void 0;const{props:r,styles:i}=o;let a;if(r&&!ee(r))for(const l in r){const c=r[l];(c===Number||c&&c.type===Number)&&(l in this._props&&(this._props[l]=Ls(this._props[l])),(a||(a=Object.create(null)))[Fe(l)]=!0)}this._numberProps=a,this._resolveProps(o),this.shadowRoot&&this._applyStyles(i),this._mount(o)},n=this._def.__asyncLoader;if(n)return this._pendingResolve=n().then(o=>{o.configureApp=this._def.configureApp,t(this._def=o,!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 n=this._instance&&this._instance.exposed;if(n)for(const o in n)he(this,o)||Object.defineProperty(this,o,{get:()=>ze(n[o])})}_resolveProps(t){const{props:n}=t,o=ee(n)?n:Object.keys(n||{});for(const s of Object.keys(this))s[0]!=="_"&&o.includes(s)&&this._setProp(s,this[s]);for(const s of o.map(Fe))Object.defineProperty(this,s,{get(){return this._getProp(s)},set(r){this._setProp(s,r,!0,!this._patching)}})}_setAttr(t){if(t.startsWith("data-v-"))return;const n=this.hasAttribute(t);let o=n?this.getAttribute(t):ha;const s=Fe(t);n&&this._numberProps&&this._numberProps[s]&&(o=Ls(o)),this._setProp(s,o,!1,!0)}_getProp(t){return this._props[t]}_setProp(t,n,o=!0,s=!1){if(n!==this._props[t]&&(this._dirty=!0,n===ha?delete this._props[t]:(this._props[t]=n,t==="key"&&this._app&&(this._app._ceVNode.key=n)),s&&this._instance&&this._update(),o)){const r=this._ob;r&&(this._processMutations(r.takeRecords()),r.disconnect()),n===!0?this.setAttribute(tt(t),""):typeof n=="string"||typeof n=="number"?this.setAttribute(tt(t),n+""):n||this.removeAttribute(tt(t)),r&&r.observe(this,{attributes:!0})}}_update(){const t=this._createVNode();this._app&&(t.appContext=this._app._context),Op(t,this._root)}_createVNode(){const t={};this.shadowRoot||(t.onVnodeMounted=t.onVnodeUpdated=this._renderSlots.bind(this));const n=ve(this._def,Ce(t,this._props));return this._instance||(n.ce=o=>{this._instance=o,o.ce=this,o.isCE=!0;const s=(r,i)=>{this.dispatchEvent(new CustomEvent(r,bo(i[0])?Ce({detail:i},i[0]):{detail:i}))};o.emit=(r,...i)=>{s(r,i),tt(r)!==r&&s(tt(r),i)},this._setParent()}),n}_applyStyles(t,n,o){if(!t)return;if(n){if(n===this._def||this._styleChildren.has(n))return;this._styleChildren.add(n)}const s=this._nonce,r=this.shadowRoot,i=o?this._getStyleAnchor(o)||this._getStyleAnchor(this._def):this._getRootStyleInsertionAnchor(r);let a=null;for(let l=t.length-1;l>=0;l--){const c=document.createElement("style");s&&c.setAttribute("nonce",s),c.textContent=t[l],r.insertBefore(c,a||i),a=c,l===0&&(o||this._styleAnchors.set(this._def,c),n&&this._styleAnchors.set(n,c))}}_getStyleAnchor(t){if(!t)return null;const n=this._styleAnchors.get(t);return n&&n.parentNode===this.shadowRoot?n:(n&&this._styleAnchors.delete(t),null)}_getRootStyleInsertionAnchor(t){for(let n=0;ne.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)=>vp.some(n=>e[`${n}Key`]&&!t.includes(n))},kp=(e,t)=>{if(!e)return e;const n=e._withMods||(e._withMods={}),o=t.join(".");return n[o]||(n[o]=(s,...r)=>{for(let i=0;i{ma().render(...e)},_a=(...e)=>{const t=ma().createApp(...e),{mount:n}=t;return t.mount=o=>{const s=Cp(o);if(!s)return;const r=t._component;!oe(r)&&!r.render&&!r.template&&(r.template=s.innerHTML),s.nodeType===1&&(s.textContent="");const i=n(s,!1,Np(s));return s instanceof Element&&(s.removeAttribute("v-cloak"),s.setAttribute("data-v-app","")),i},t};function Np(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function Cp(e){return be(e)?document.querySelector(e):e}/*! +**/let qr;const ia=typeof window<"u"&&window.trustedTypes;if(ia)try{qr=ia.createPolicy("vue",{createHTML:e=>e})}catch{}const aa=qr?e=>qr.createHTML(e):e=>e,Zu="http://www.w3.org/2000/svg",Qu="http://www.w3.org/1998/Math/MathML",Mt=typeof document<"u"?document:null,la=Mt&&Mt.createElement("template"),ep={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,o)=>{const s=t==="svg"?Mt.createElementNS(Zu,e):t==="mathml"?Mt.createElementNS(Qu,e):n?Mt.createElement(e,{is:n}):Mt.createElement(e);return e==="select"&&o&&o.multiple!=null&&s.setAttribute("multiple",o.multiple),s},createText:e=>Mt.createTextNode(e),createComment:e=>Mt.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Mt.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,o,s,r){const i=n?n.previousSibling:t.lastChild;if(s&&(s===r||s.nextSibling))for(;t.insertBefore(s.cloneNode(!0),n),!(s===r||!(s=s.nextSibling)););else{la.innerHTML=aa(o==="svg"?`${e}`:o==="mathml"?`${e}`:e);const a=la.content;if(o==="svg"||o==="mathml"){const l=a.firstChild;for(;l.firstChild;)a.appendChild(l.firstChild);a.removeChild(l)}t.insertBefore(a,n)}return[i?i.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},tp=Symbol("_vtc");function np(e,t,n){const o=e[tp];o&&(t=(t?[t,...o]:[...o]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const Xo=Symbol("_vod"),ca=Symbol("_vsh"),op={name:"show",beforeMount(e,{value:t},{transition:n}){e[Xo]=e.style.display==="none"?"":e.style.display,n&&t?n.beforeEnter(e):so(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:o}){!t!=!n&&(o?t?(o.beforeEnter(e),so(e,!0),o.enter(e)):o.leave(e,()=>{so(e,!1)}):so(e,t))},beforeUnmount(e,{value:t}){so(e,t)}};function so(e,t){e.style.display=t?e[Xo]:"none",e[ca]=!t}const rp=Symbol(""),sp=/(?:^|;)\s*display\s*:/;function ip(e,t,n){const o=e.style,s=be(n);let r=!1;if(n&&!s){if(t)if(be(t))for(const i of t.split(";")){const a=i.slice(0,i.indexOf(":")).trim();n[a]==null&&io(o,a,"")}else for(const i in t)n[i]==null&&io(o,i,"");for(const i in n){i==="display"&&(r=!0);const a=n[i];a!=null?lp(e,i,!be(t)&&t?t[i]:void 0,a)||io(o,i,a):io(o,i,"")}}else if(s){if(t!==n){const i=o[rp];i&&(n+=";"+i),o.cssText=n,r=sp.test(n)}}else t&&e.removeAttribute("style");Xo in e&&(e[Xo]=r?o.display:"",e[ca]&&(o.display="none"))}const Jo=/\s*!important$/;function io(e,t,n){if(ee(n))n.forEach(o=>io(e,t,o));else if(n==null&&(n=""),t.startsWith("--"))Jo.test(n)?e.setProperty(t,n.replace(Jo,""),"important"):e.setProperty(t,n);else{const o=ap(e,t);Jo.test(n)?e.setProperty(tt(o),n.replace(Jo,""),"important"):e[o]=n}}const ua=["Webkit","Moz","ms"],Kr={};function ap(e,t){const n=Kr[t];if(n)return n;let o=Le(t);if(o!=="filter"&&o in e)return Kr[t]=o;o=wo(o);for(let s=0;sXr||(hp.then(()=>Xr=0),Xr=Date.now());function _p(e,t){const n=o=>{if(!o._vts)o._vts=Date.now();else if(o._vts<=n.attached)return;const s=n.value;if(ee(s)){const r=o.stopImmediatePropagation;o.stopImmediatePropagation=()=>{r.call(o),o._stopped=!0};const i=s.slice(),a=[o];for(let l=0;le.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,bp=(e,t,n,o,s,r)=>{const i=s==="svg";t==="class"?np(e,o,i):t==="style"?ip(e,n,o):ho(t)?mo(t)||pp(e,t,n,o,r):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):yp(e,t,o,i))?(ga(e,t,o),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&da(e,t,o,i,r,t!=="value")):e._isVueCE&&(vp(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!be(o)))?ga(e,Le(t),o,r,t):(t==="true-value"?e._trueValue=o:t==="false-value"&&(e._falseValue=o),da(e,t,o,i))};function yp(e,t,n,o){if(o)return!!(t==="innerHTML"||t==="textContent"||t in e&&ha(t)&&oe(n));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 s=e.tagName;if(s==="IMG"||s==="VIDEO"||s==="CANVAS"||s==="SOURCE")return!1}return ha(t)&&be(n)?!1:t in e}function vp(e,t){const n=e._def.props;if(!n)return!1;const o=Le(t);return Array.isArray(n)?n.some(s=>Le(s)===o):Object.keys(n).some(s=>Le(s)===o)}const ma={};function wp(e,t,n){let o=Kn(e,t);bo(o)&&(o=Ne({},o,t));class s extends Jr{constructor(i){super(o,i,n)}}return s.def=o,s}const $p=typeof HTMLElement<"u"?HTMLElement:class{};class Jr extends $p{constructor(t,n={},o=ya){super(),this._def=t,this._props=n,this._createApp=o,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&&o!==ya?this._root=this.shadowRoot:t.shadowRoot!==!1?(this.attachShadow(Ne({},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 Jr){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,Hn(()=>{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 n of t)this._setAttr(n.attributeName)}_resolveDef(){if(this._pendingResolve)return this._pendingResolve;for(let o=0;o{this._resolved=!0,this._pendingResolve=void 0;const{props:r,styles:i}=o;let a;if(r&&!ee(r))for(const l in r){const c=r[l];(c===Number||c&&c.type===Number)&&(l in this._props&&(this._props[l]=Fs(this._props[l])),(a||(a=Object.create(null)))[Le(l)]=!0)}this._numberProps=a,this._resolveProps(o),this.shadowRoot&&this._applyStyles(i),this._mount(o)},n=this._def.__asyncLoader;if(n)return this._pendingResolve=n().then(o=>{o.configureApp=this._def.configureApp,t(this._def=o,!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 n=this._instance&&this._instance.exposed;if(n)for(const o in n)fe(this,o)||Object.defineProperty(this,o,{get:()=>qe(n[o])})}_resolveProps(t){const{props:n}=t,o=ee(n)?n:Object.keys(n||{});for(const s of Object.keys(this))s[0]!=="_"&&o.includes(s)&&this._setProp(s,this[s]);for(const s of o.map(Le))Object.defineProperty(this,s,{get(){return this._getProp(s)},set(r){this._setProp(s,r,!0,!this._patching)}})}_setAttr(t){if(t.startsWith("data-v-"))return;const n=this.hasAttribute(t);let o=n?this.getAttribute(t):ma;const s=Le(t);n&&this._numberProps&&this._numberProps[s]&&(o=Fs(o)),this._setProp(s,o,!1,!0)}_getProp(t){return this._props[t]}_setProp(t,n,o=!0,s=!1){if(n!==this._props[t]&&(this._dirty=!0,n===ma?delete this._props[t]:(this._props[t]=n,t==="key"&&this._app&&(this._app._ceVNode.key=n)),s&&this._instance&&this._update(),o)){const r=this._ob;r&&(this._processMutations(r.takeRecords()),r.disconnect()),n===!0?this.setAttribute(tt(t),""):typeof n=="string"||typeof n=="number"?this.setAttribute(tt(t),n+""):n||this.removeAttribute(tt(t)),r&&r.observe(this,{attributes:!0})}}_update(){const t=this._createVNode();this._app&&(t.appContext=this._app._context),Ap(t,this._root)}_createVNode(){const t={};this.shadowRoot||(t.onVnodeMounted=t.onVnodeUpdated=this._renderSlots.bind(this));const n=ve(this._def,Ne(t,this._props));return this._instance||(n.ce=o=>{this._instance=o,o.ce=this,o.isCE=!0;const s=(r,i)=>{this.dispatchEvent(new CustomEvent(r,bo(i[0])?Ne({detail:i},i[0]):{detail:i}))};o.emit=(r,...i)=>{s(r,i),tt(r)!==r&&s(tt(r),i)},this._setParent()}),n}_applyStyles(t,n,o){if(!t)return;if(n){if(n===this._def||this._styleChildren.has(n))return;this._styleChildren.add(n)}const s=this._nonce,r=this.shadowRoot,i=o?this._getStyleAnchor(o)||this._getStyleAnchor(this._def):this._getRootStyleInsertionAnchor(r);let a=null;for(let l=t.length-1;l>=0;l--){const c=document.createElement("style");s&&c.setAttribute("nonce",s),c.textContent=t[l],r.insertBefore(c,a||i),a=c,l===0&&(o||this._styleAnchors.set(this._def,c),n&&this._styleAnchors.set(n,c))}}_getStyleAnchor(t){if(!t)return null;const n=this._styleAnchors.get(t);return n&&n.parentNode===this.shadowRoot?n:(n&&this._styleAnchors.delete(t),null)}_getRootStyleInsertionAnchor(t){for(let n=0;ne.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)=>kp.some(n=>e[`${n}Key`]&&!t.includes(n))},Op=(e,t)=>{if(!e)return e;const n=e._withMods||(e._withMods={}),o=t.join(".");return n[o]||(n[o]=(s,...r)=>{for(let i=0;i{ba().render(...e)},ya=(...e)=>{const t=ba().createApp(...e),{mount:n}=t;return t.mount=o=>{const s=Tp(o);if(!s)return;const r=t._component;!oe(r)&&!r.render&&!r.template&&(r.template=s.innerHTML),s.nodeType===1&&(s.textContent="");const i=n(s,!1,Ep(s));return s instanceof Element&&(s.removeAttribute("v-cloak"),s.setAttribute("data-v-app","")),i},t};function Ep(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function Tp(e){return be(e)?document.querySelector(e):e}/*! * pinia v2.3.1 * (c) 2025 Eduardo San Martin Morote * @license MIT - */let ba;const Zo=e=>ba=e,ya=Symbol();function Jr(e){return e&&typeof e=="object"&&Object.prototype.toString.call(e)==="[object Object]"&&typeof e.toJSON!="function"}var ao;(function(e){e.direct="direct",e.patchObject="patch object",e.patchFunction="patch function"})(ao||(ao={}));function Ap(){const e=gr(!0),t=e.run(()=>re({}));let n=[],o=[];const s=vn({install(r){Zo(s),s._a=r,r.provide(ya,s),r.config.globalProperties.$pinia=s,o.forEach(i=>n.push(i)),o=[]},use(r){return this._a?n.push(r):o.push(r),this},_p:n,_a:null,_e:e,_s:new Map,state:t});return s}const va=()=>{};function wa(e,t,n,o=va){e.push(t);const s=()=>{const r=e.indexOf(t);r>-1&&(e.splice(r,1),o())};return!n&&Bs()&&oc(s),s}function En(e,...t){e.slice().forEach(n=>{n(...t)})}const Ep=e=>e(),ka=Symbol(),Zr=Symbol();function Qr(e,t){e instanceof Map&&t instanceof Map?t.forEach((n,o)=>e.set(o,n)):e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(const n in t){if(!t.hasOwnProperty(n))continue;const o=t[n],s=e[n];Jr(s)&&Jr(o)&&e.hasOwnProperty(n)&&!Ne(o)&&!Tt(o)?e[n]=Qr(s,o):e[n]=o}return e}const Tp=Symbol();function Lp(e){return!Jr(e)||!e.hasOwnProperty(Tp)}const{assign:Kt}=Object;function Sp(e){return!!(Ne(e)&&e.effect)}function xp(e,t,n,o){const{state:s,actions:r,getters:i}=t,a=n.state.value[e];let l;function c(){a||(n.state.value[e]=s?s():{});const u=Nc(n.state.value[e]);return Kt(u,r,Object.keys(i||{}).reduce((f,h)=>(f[h]=vn(ie(()=>{Zo(n);const m=n._s.get(e);return i[h].call(m,m)})),f),{}))}return l=$a(e,c,t,n,o,!0),l}function $a(e,t,n={},o,s,r){let i;const a=Kt({actions:{}},n),l={deep:!0};let c,u,f=[],h=[],m;const v=o.state.value[e];!r&&!v&&(o.state.value[e]={});let $;function A(x){let O;c=u=!1,typeof x=="function"?(x(o.state.value[e]),O={type:ao.patchFunction,storeId:e,events:m}):(Qr(o.state.value[e],x),O={type:ao.patchObject,payload:x,storeId:e,events:m});const R=$=Symbol();Hn().then(()=>{$===R&&(c=!0)}),u=!0,En(f,O,o.state.value[e])}const N=r?function(){const{state:O}=n,R=O?O():{};this.$patch(j=>{Kt(j,R)})}:va;function C(){i.stop(),f=[],h=[],o._s.delete(e)}const _=(x,O="")=>{if(ka in x)return x[Zr]=O,x;const R=function(){Zo(o);const j=Array.from(arguments),K=[],ne=[];function ue(X){K.push(X)}function z(X){ne.push(X)}En(h,{args:j,name:R[Zr],store:T,after:ue,onError:z});let W;try{W=x.apply(this&&this.$id===e?this:T,j)}catch(X){throw En(ne,X),X}return W instanceof Promise?W.then(X=>(En(K,X),X)).catch(X=>(En(ne,X),Promise.reject(X))):(En(K,W),W)};return R[ka]=!0,R[Zr]=O,R},b={_p:o,$id:e,$onAction:wa.bind(null,h),$patch:A,$reset:N,$subscribe(x,O={}){const R=wa(f,x,O.detached,()=>j()),j=i.run(()=>ot(()=>o.state.value[e],K=>{(O.flush==="sync"?u:c)&&x({storeId:e,type:ao.direct,events:m},K)},Kt({},l,O)));return R},$dispose:C},T=To(b);o._s.set(e,T);const E=(o._a&&o._a.runWithContext||Ep)(()=>o._e.run(()=>(i=gr()).run(()=>t({action:_}))));for(const x in E){const O=E[x];if(Ne(O)&&!Sp(O)||Tt(O))r||(v&&Lp(O)&&(Ne(O)?O.value=v[x]:Qr(O,v[x])),o.state.value[e][x]=O);else if(typeof O=="function"){const R=_(O,x);E[x]=R,a.actions[x]=O}}return Kt(T,E),Kt(pe(T),E),Object.defineProperty(T,"$state",{get:()=>o.state.value[e],set:x=>{A(O=>{Kt(O,x)})}}),o._p.forEach(x=>{Kt(T,i.run(()=>x({store:T,app:o._a,pinia:o,options:a})))}),v&&r&&n.hydrate&&n.hydrate(T.$state,v),c=!0,u=!0,T}/*! #__NO_SIDE_EFFECTS__ */function es(e,t,n){let o,s;const r=typeof t=="function";typeof e=="string"?(o=e,s=r?n:t):(s=e,o=e.id);function i(a,l){const c=Wc();return a=a||(c?De(ya,null):null),a&&Zo(a),a=ba,a._s.has(o)||(r?$a(o,t,s,a):xp(o,s,a)),a._s.get(o)}return i.$id=o,i}const ts="__doxaMapToken",ns="doxa:map-token",Oa="__doxaMapTokenBridge",Tn=()=>{if(typeof window>"u")return"";const e=window[ts];return typeof e=="string"?e:""};function Na(e){if(typeof window>"u")return"";const t=typeof e=="string"?e.trim():"";if(!t||t===Tn())return Tn();window[ts]=t;try{window.dispatchEvent(new CustomEvent(ns,{detail:t}))}catch{}return t}function Ip(){if(typeof window>"u"||window[Oa])return;const e=typeof window.MAP_TOKEN=="string"?window.MAP_TOKEN:"";e&&!Tn()&&(window[ts]=e);try{Object.defineProperty(window,"MAP_TOKEN",{configurable:!0,get(){return Tn()},set(t){Na(t)}}),window[Oa]=!0}catch{}}function Fp(){Ip();const e=re(Tn());if(typeof window<"u"){const t=()=>{e.value=Tn()};window.addEventListener(ns,t);try{zt(()=>window.removeEventListener(ns,t))}catch{}}return e}function Mp(e){return Jc({loader:e,onError(t,n,o,s){s<=3?setTimeout(n,s*500):o()}})}const Pp={backToLegend:"العودة إلى المفتاح",closeDetailView:"إغلاق عرض التفاصيل"},Bp={prayForThem:"صلِّ من أجلهم",adoptThem:"تبنَّهم",moreInfo:"مزيد من المعلومات",zoomIn:"تكبير",zoomOut:"تصغير",switchToLightMode:"التبديل إلى الوضع الفاتح",switchToDarkMode:"التبديل إلى الوضع الداكن",resetView:"إعادة تعيين العرض",toggleFullscreen:"تبديل ملء الشاشة",aboutThisMap:"حول هذه الخريطة",closeMenu:"إغلاق القائمة",reloadMap:"إعادة تحميل الخريطة",showClusters:"إظهار المجموعات",clusterSettings:"إعدادات المجموعات",startAutoFly:"بدء الطيران التلقائي",stopFlight:"إيقاف الطيران",speedLabel:"السرعة:",speedOption:{slow:"بطيء",normal:"عادي",fast:"سريع"},shareEmbed:"مشاركة وتضمين"},Dp={labels:{country:"الدولة:",population:"السكان:",language:"اللغة:",religion:"الديانة:",languageFamily:"العائلة اللغوية:",peopleCommitted:"ملتزمون بالصلاة:"},messages:{noDescription:"لا يوجد وصف متاح."}},Rp={title:{prayer:"تقدم الصلاة",engagement:"تقدم الانخراط",adoption:"تقدم التبني",languageFamilies:"العائلات اللغوية",doxaRegions:"مناطق Doxa",affinityBlocs:"كتل القرابة",gospelResources:"موارد الإنجيل"},header:{collapsed:"وسيلة الإيضاح",peopleGroupFallback:"مجموعة الشعب"},prayer:{needsPrayer:"يحتاج إلى صلاة",hasPrayer:"لديه صلاة",fullPrayerCoverage:"تغطية صلاة كاملة"},progress:{title:"التقدم",covered:"{covered} من {total} مجموعة شعبية مغطاة بالصلاة · {pct}%",short:"{covered} من {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"يحتاج إلى انخراط",hasEngagement:"لديه انخراط"},adoption:{needsAdoption:"يحتاج إلى تبني",hasAdoption:"لديه تبني"},columns:{upgs:"UUPGs",population:"السكان",name:"الاسم"},footer:{total:"الإجمالي"},sortByUpgs:"ترتيب حسب UUPG",sortByPop:"ترتيب حسب السكان",colLabel:{religion:"ديانات UUPG",prayer:"حالة الصلاة",engagement:"حالة المشاركة",adoption:"حالة التبني",status:"الحالة"},titleBar:{legend:"مفتاح الخريطة",peopleGroups:"الشعوب",wagfRegions:"مناطق WAGF",languages:"اللغات"}},Wp={menuComingSoon:"القائمة قادمة قريباً"},Up={clusterByRegion:"حسب منطقة Doxa",clusterByLanguageFamily:"حسب العائلة اللغوية",clusterByGospelResource:"حسب مورد الإنجيل"},jp={header:"دورة الصلاة الحالية",lap:"الدورة",upgs:"UUPGs",separator:" من "},Gp={placeholder:"شعب، مكان، لغة، ديانة",labels:{people:"الشعب:",place:"المكان:",language:"اللغة:",religion:"الديانة:"},kinds:{people:"الشعب + الدولة",peopleGroup:"الشعب",bloc:"كتلة التقارب",cluster:"مجموعة شعوب",country:"الدولة",region:"المنطقة",family:"عائلة اللغة",languageKind:"اللغة",dialect:"اللهجة",religionKind:"الدين"}},Yp={prayer:"الصلاة",adoption:"التبني",engagement:"المشاركة","affinity-blocks":"الشعوب",regions:"المناطق",countries:"الدول","language-families":"اللغات",religion:"الأديان",family:"عائلة اللغة",language:"اللغة",dialect:"اللهجة/التنوع",bloc:"كتلة التقارب",cluster:"المجموعة",group:"الشعب",pgic:"الشعب في الدولة",region:"منطقة WAGF",block:"كتلة WAGF",country:"الدولة"},Vp={backToLegend:"Zurück zur Legende",closeDetailView:"Detailansicht schließen"},Hp={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"},qp={labels:{country:"Land:",population:"Bevölkerung:",language:"Sprache:",religion:"Religion:",languageFamily:"Sprachfamilie:",peopleCommitted:"Zum Gebet verpflichtet:"},messages:{noDescription:"Keine Beschreibung verfügbar."}},zp={title:{prayer:"Gebetsfortschritt",engagement:"Engagement-Fortschritt",adoption:"Adoptionsfortschritt",languageFamilies:"Sprachfamilien",doxaRegions:"Doxa-Regionen",affinityBlocs:"Affinitätsblöcke",gospelResources:"Evangeliumsressourcen"},header:{collapsed:"Legende",peopleGroupFallback:"Volksgruppe"},prayer:{needsPrayer:"Braucht Gebet",hasPrayer:"Hat Gebet",fullPrayerCoverage:"Vollständige Gebetsabdeckung"},progress:{title:"Fortschritt",covered:"{covered} von {total} Volksgruppen im Gebet abgedeckt · {pct}%",short:"{covered} von {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Braucht Engagement",hasEngagement:"Hat Engagement"},adoption:{needsAdoption:"Braucht Adoption",hasAdoption:"Hat Adoption"},columns:{upgs:"UUPGs",population:"Bevölkerung"},footer:{total:"Gesamt"}},Kp={menuComingSoon:"Menü folgt in Kürze"},Xp={clusterByRegion:"Nach Doxa-Region",clusterByLanguageFamily:"Nach Sprachfamilie",clusterByGospelResource:"Nach Evangeliumsressource"},Jp={header:"AKTUELLE GEBETSRUNDE",lap:"Runde",upgs:"UUPGs",separator:" von "},Zp={placeholder:"Volk, Ort, Sprache, Religion",labels:{people:"Volk:",place:"Ort:",language:"Sprache:",religion:"Religion:"},sections:{within:"Innerhalb {selection}",allData:"Alle DOXA-Daten"}},Qp={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"},ed={backToLegend:"Back to Legend",closeDetailView:"Close detail view"},td={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"},nd={labels:{country:"Country:",population:"Population:",language:"Language:",religion:"Religion:",languageFamily:"Language Family:",peopleCommitted:"Committed to pray:"},messages:{noDescription:"No description available."}},od={title:{prayer:"Prayer Progress",engagement:"Engagement Progress",adoption:"Adoption Progress",languageFamilies:"Language Families",doxaRegions:"Doxa Regions",affinityBlocs:"Affinity Blocks",gospelResources:"Gospel Resources"},header:{default:"Legend",collapsed:"Legend",peopleGroupFallback:"People Group"},prayer:{needsPrayer:"Needs Prayer",hasPrayer:"Has Prayer",fullPrayerCoverage:"Full Prayer Coverage"},progress:{title:"Progress",covered:"{covered} of {total} people groups covered in prayer · {pct}%",short:"{covered} of {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Unengaged",hasEngagement:"Engaged"},adoption:{needsAdoption:"Needs Adoption",hasAdoption:"Has Adoption"},columns:{upgs:"UUPGs",population:"Population",name:"Name"},footer:{total:"Total"},sortByUpgs:"Sort by UUPGs",sortByPop:"Sort by Population",colLabel:{religion:"UUPG Religions",prayer:"Prayer Status",engagement:"Engagement Status",adoption:"Adoption Status",status:"Status"},titleBar:{legend:"Legend",peopleGroups:"People Groups",wagfRegions:"WAGF Regions",languages:"Languages"}},rd={menuComingSoon:"Menu coming soon"},sd={clusterByRegion:"By Doxa Region",clusterByLanguageFamily:"By Language Family",clusterByGospelResource:"By Gospel Resource"},id={country:{wagfRegion:"WAGF Region",wagfBlock:"WAGF Bloc",country:"Country",uupgCount:"UUPG Count"}},ad={header:"CURRENT PRAYER LAP",lap:"Lap",upgs:"UUPGs",separator:" of "},ld={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"}},cd={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"},ud={backToLegend:"Volver a la leyenda",closeDetailView:"Cerrar vista de detalle"},pd={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"},dd={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."}},fd={title:{prayer:"Progreso de oración",engagement:"Progreso de implicación",adoption:"Progreso de adopción",languageFamilies:"Familias lingüísticas",doxaRegions:"Regiones Doxa",affinityBlocs:"Bloques de afinidad",gospelResources:"Recursos del Evangelio"},header:{collapsed:"Leyenda",peopleGroupFallback:"Grupo de personas"},prayer:{needsPrayer:"Necesita oración",hasPrayer:"Tiene oración",fullPrayerCoverage:"Cobertura de oración completa"},progress:{title:"Progreso",covered:"{covered} de {total} grupos de personas cubiertos en oración · {pct}%",short:"{covered} de {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Necesita implicación",hasEngagement:"Tiene implicación"},adoption:{needsAdoption:"Necesita adopción",hasAdoption:"Tiene adopción"},columns:{upgs:"UUPGs",population:"Población",name:"Nombre"},footer:{total:"Total"},sortByUpgs:"Ordenar por UUPG",sortByPop:"Ordenar por población",colLabel:{religion:"Religiones UUPG",prayer:"Estado de oración",engagement:"Estado de compromiso",adoption:"Estado de adopción",status:"Estado"},titleBar:{legend:"Leyenda",peopleGroups:"Pueblos",wagfRegions:"Regiones WAGF",languages:"Idiomas"}},hd={menuComingSoon:"Menú próximamente"},gd={clusterByRegion:"Por región Doxa",clusterByLanguageFamily:"Por familia lingüística",clusterByGospelResource:"Por recurso del Evangelio"},md={header:"VUELTA DE ORACIÓN ACTUAL",lap:"Vuelta",upgs:"UUPGs",separator:" de "},_d={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"}},bd={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"},yd={backToLegend:"Retour à la légende",closeDetailView:"Fermer la vue détaillée"},vd={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"},wd={labels:{country:"Pays :",population:"Population :",language:"Langue :",religion:"Religion :",languageFamily:"Famille de langues :",peopleCommitted:"Engagés à prier :"},messages:{noDescription:"Aucune description disponible."}},kd={title:{prayer:"Progression de la prière",engagement:"Progression de l'engagement",adoption:"Progression de l'adoption",languageFamilies:"Familles de langues",doxaRegions:"Régions Doxa",affinityBlocs:"Blocs d'affinité",gospelResources:"Ressources de l'Évangile"},header:{collapsed:"Légende",peopleGroupFallback:"Groupe de personnes"},prayer:{needsPrayer:"Besoin de prière",hasPrayer:"Prière en cours",fullPrayerCoverage:"Couverture de prière complète"},progress:{title:"Progression",covered:"{covered} sur {total} groupes de personnes couverts par la prière · {pct}%",short:"{covered} sur {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Besoin d'engagement",hasEngagement:"Engagement en cours"},adoption:{needsAdoption:"Besoin d'adoption",hasAdoption:"Adoption en cours"},columns:{upgs:"UUPGs",population:"Population",name:"Nom"},footer:{total:"Total"},sortByUpgs:"Trier par UUPG",sortByPop:"Trier par population",colLabel:{religion:"Religions UUPG",prayer:"Statut de prière",engagement:"Statut d'engagement",adoption:"Statut d'adoption",status:"Statut"},titleBar:{legend:"Légende",peopleGroups:"Peuples",wagfRegions:"Régions WAGF",languages:"Langues"}},$d={menuComingSoon:"Menu bientôt disponible"},Od={clusterByRegion:"Par région Doxa",clusterByLanguageFamily:"Par famille de langues",clusterByGospelResource:"Par ressource de l'Évangile"},Nd={country:{wagfRegion:"Région WAGF",wagfBlock:"Bloc WAGF",country:"Pays",uupgCount:"Nombre d'UUPG"}},Cd={header:"TOUR DE PRIÈRE ACTUEL",lap:"Tour",upgs:"UUPGs",separator:" sur "},Ad={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"}},Ed={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"},Td={backToLegend:"लेजेंड पर वापस जाएं",closeDetailView:"विवरण दृश्य बंद करें"},Ld={prayForThem:"उनके लिए प्रार्थना करें",adoptThem:"उन्हें गोद लें",moreInfo:"अधिक जानकारी",zoomIn:"ज़ूम इन",zoomOut:"ज़ूम आउट",switchToLightMode:"लाइट मोड पर जाएं",switchToDarkMode:"डार्क मोड पर जाएं",resetView:"दृश्य रीसेट करें",toggleFullscreen:"फ़ुलस्क्रीन टॉगल करें",aboutThisMap:"इस मानचित्र के बारे में",closeMenu:"मेनू बंद करें",reloadMap:"मानचित्र पुनः लोड करें",showClusters:"क्लस्टर दिखाएं",clusterSettings:"क्लस्टर सेटिंग्स",startAutoFly:"ऑटो फ्लाई शुरू करें",stopFlight:"उड़ान रोकें",speedLabel:"गति:",speedOption:{slow:"धीमी",normal:"सामान्य",fast:"तेज़"},shareEmbed:"साझा करें और एम्बेड करें"},Sd={labels:{country:"देश:",population:"जनसंख्या:",language:"भाषा:",religion:"धर्म:",languageFamily:"भाषा परिवार:",peopleCommitted:"प्रार्थना के लिए प्रतिबद्ध:"},messages:{noDescription:"कोई विवरण उपलब्ध नहीं है।"}},xd={title:{prayer:"प्रार्थना प्रगति",engagement:"सहभागिता प्रगति",adoption:"गोद लेने की प्रगति",languageFamilies:"भाषा परिवार",doxaRegions:"Doxa क्षेत्र",affinityBlocs:"समानता समूह",gospelResources:"सुसमाचार संसाधन"},header:{collapsed:"किंवदंती",peopleGroupFallback:"जनजाति समूह"},prayer:{needsPrayer:"प्रार्थना चाहिए",hasPrayer:"प्रार्थना है",fullPrayerCoverage:"पूर्ण प्रार्थना कवरेज"},progress:{title:"प्रगति",covered:"{total} में से {covered} जनजाति समूह प्रार्थना में कवर · {pct}%",short:"{total} में से {covered} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"सहभागिता चाहिए",hasEngagement:"सहभागिता है"},adoption:{needsAdoption:"गोद लेना चाहिए",hasAdoption:"गोद लिया गया"},columns:{upgs:"UUPGs",population:"जनसंख्या"},footer:{total:"कुल"}},Id={menuComingSoon:"मेनू शीघ्र आ रहा है"},Fd={clusterByRegion:"Doxa क्षेत्र के अनुसार",clusterByLanguageFamily:"भाषा परिवार के अनुसार",clusterByGospelResource:"सुसमाचार संसाधन के अनुसार"},Md={header:"वर्तमान प्रार्थना चक्र",lap:"चक्र",upgs:"UUPGs",separator:" में से "},Pd={placeholder:"लोग, स्थान, भाषा, धर्म",labels:{people:"लोग:",place:"स्थान:",language:"भाषा:",religion:"धर्म:"}},Bd={backToLegend:"Torna alla legenda",closeDetailView:"Chiudi vista dettaglio"},Dd={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"},Rd={labels:{country:"Paese:",population:"Popolazione:",language:"Lingua:",religion:"Religione:",languageFamily:"Famiglia linguistica:",peopleCommitted:"Impegnati a pregare:"},messages:{noDescription:"Nessuna descrizione disponibile."}},Wd={title:{prayer:"Avanzamento della preghiera",engagement:"Avanzamento dell'impegno",adoption:"Avanzamento dell'adozione",languageFamilies:"Famiglie linguistiche",doxaRegions:"Regioni Doxa",affinityBlocs:"Blocchi di affinità",gospelResources:"Risorse del Vangelo"},header:{collapsed:"Legenda",peopleGroupFallback:"Gruppo di persone"},prayer:{needsPrayer:"Necessita preghiera",hasPrayer:"Ha preghiera",fullPrayerCoverage:"Copertura di preghiera completa"},progress:{title:"Avanzamento",covered:"{covered} di {total} gruppi di persone coperti dalla preghiera · {pct}%",short:"{covered} di {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Necessita impegno",hasEngagement:"Ha impegno"},adoption:{needsAdoption:"Necessita adozione",hasAdoption:"Ha adozione"},columns:{upgs:"UUPGs",population:"Popolazione"},footer:{total:"Totale"}},Ud={menuComingSoon:"Menu in arrivo"},jd={clusterByRegion:"Per regione Doxa",clusterByLanguageFamily:"Per famiglia linguistica",clusterByGospelResource:"Per risorsa del Vangelo"},Gd={header:"GIRO DI PREGHIERA ATTUALE",lap:"Giro",upgs:"UUPGs",separator:" di "},Yd={placeholder:"Popolo, luogo, lingua, religione",labels:{people:"Popolo:",place:"Luogo:",language:"Lingua:",religion:"Religione:"}},Vd={backToLegend:"Voltar à legenda",closeDetailView:"Fechar vista de detalhe"},Hd={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"},qd={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."}},zd={title:{prayer:"Progresso da oração",engagement:"Progresso do envolvimento",adoption:"Progresso da adoção",languageFamilies:"Famílias linguísticas",doxaRegions:"Regiões Doxa",affinityBlocs:"Blocos de afinidade",gospelResources:"Recursos do Evangelho"},header:{collapsed:"Legenda",peopleGroupFallback:"Grupo de pessoas"},prayer:{needsPrayer:"Precisa de oração",hasPrayer:"Tem oração",fullPrayerCoverage:"Cobertura de oração completa"},progress:{title:"Progresso",covered:"{covered} de {total} grupos de pessoas cobertos em oração · {pct}%",short:"{covered} de {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Precisa de envolvimento",hasEngagement:"Tem envolvimento"},adoption:{needsAdoption:"Precisa de adoção",hasAdoption:"Tem adoção"},columns:{upgs:"UUPGs",population:"População",name:"Nome"},footer:{total:"Total"},sortByUpgs:"Ordenar por UUPG",sortByPop:"Ordenar por população",colLabel:{religion:"Religiões UUPG",prayer:"Status de oração",engagement:"Status de engajamento",adoption:"Status de adoção",status:"Status"},titleBar:{legend:"Legenda",peopleGroups:"Povos",wagfRegions:"Regiões WAGF",languages:"Idiomas"}},Kd={menuComingSoon:"Menu em breve"},Xd={clusterByRegion:"Por região Doxa",clusterByLanguageFamily:"Por família linguística",clusterByGospelResource:"Por recurso do Evangelho"},Jd={header:"VOLTA DE ORAÇÃO ATUAL",lap:"Volta",upgs:"UUPGs",separator:" de "},Zd={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"}},Qd={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"},ef={backToLegend:"Înapoi la legendă",closeDetailView:"Închide vizualizarea detaliată"},tf={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ă"},nf={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ă."}},of={title:{prayer:"Progresul rugăciunii",engagement:"Progresul implicării",adoption:"Progresul adopției",languageFamilies:"Familii de limbi",doxaRegions:"Regiuni Doxa",affinityBlocs:"Blocuri de afinitate",gospelResources:"Resurse ale Evangheliei"},header:{collapsed:"Legendă",peopleGroupFallback:"Grup de popoare"},prayer:{needsPrayer:"Necesită rugăciune",hasPrayer:"Are rugăciune",fullPrayerCoverage:"Acoperire completă de rugăciune"},progress:{title:"Progres",covered:"{covered} din {total} grupuri de popoare acoperite în rugăciune · {pct}%",short:"{covered} din {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Necesită implicare",hasEngagement:"Are implicare"},adoption:{needsAdoption:"Necesită adopție",hasAdoption:"Are adopție"},columns:{upgs:"UUPGs",population:"Populație"},footer:{total:"Total"}},rf={menuComingSoon:"Meniu în curând"},sf={clusterByRegion:"După regiune Doxa",clusterByLanguageFamily:"După familia de limbi",clusterByGospelResource:"După resursa Evangheliei"},af={header:"TURUL DE RUGĂCIUNE CURENT",lap:"Tur",upgs:"UUPGs",separator:" din "},lf={placeholder:"Popor, loc, limbă, religie",labels:{people:"Popor:",place:"Loc:",language:"Limbă:",religion:"Religie:"}},cf={backToLegend:"Назад к легенде",closeDetailView:"Закрыть подробный вид"},uf={prayForThem:"Молитесь о них",adoptThem:"Усыновите их",moreInfo:"Подробнее",zoomIn:"Приблизить",zoomOut:"Отдалить",switchToLightMode:"Переключить на светлый режим",switchToDarkMode:"Переключить на тёмный режим",resetView:"Сбросить вид",toggleFullscreen:"Полноэкранный режим",aboutThisMap:"Об этой карте",closeMenu:"Закрыть меню",reloadMap:"Перезагрузить карту",showClusters:"Показать кластеры",clusterSettings:"Настройки кластеров",startAutoFly:"Начать авто-полёт",stopFlight:"Остановить полёт",speedLabel:"Скорость:",speedOption:{slow:"Медленно",normal:"Нормально",fast:"Быстро"},shareEmbed:"Поделиться и встроить"},pf={labels:{country:"Страна:",population:"Население:",language:"Язык:",religion:"Религия:",languageFamily:"Языковая семья:",peopleCommitted:"Обязались молиться:"},messages:{noDescription:"Описание недоступно."}},df={title:{prayer:"Прогресс молитвы",engagement:"Прогресс вовлечённости",adoption:"Прогресс усыновления",languageFamilies:"Языковые семьи",doxaRegions:"Регионы Doxa",affinityBlocs:"Блоки родства",gospelResources:"Евангельские ресурсы"},header:{collapsed:"Условные обозначения",peopleGroupFallback:"Народная группа"},prayer:{needsPrayer:"Нуждается в молитве",hasPrayer:"Есть молитва",fullPrayerCoverage:"Полное молитвенное покрытие"},progress:{title:"Прогресс",covered:"{covered} из {total} народных групп охвачены молитвой · {pct}%",short:"{covered} из {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Нуждается в вовлечённости",hasEngagement:"Есть вовлечённость"},adoption:{needsAdoption:"Нуждается в усыновлении",hasAdoption:"Есть усыновление"},columns:{upgs:"UUPGs",population:"Население",name:"Название"},footer:{total:"Всего"},sortByUpgs:"Сортировать по UUPG",sortByPop:"Сортировать по населению",colLabel:{religion:"Религии UUPG",prayer:"Статус молитвы",engagement:"Статус вовлечённости",adoption:"Статус усыновления",status:"Статус"},titleBar:{legend:"Легенда",peopleGroups:"Народы",wagfRegions:"Регионы WAGF",languages:"Языки"}},ff={menuComingSoon:"Меню скоро появится"},hf={clusterByRegion:"По региону Doxa",clusterByLanguageFamily:"По языковой семье",clusterByGospelResource:"По евангельскому ресурсу"},gf={header:"ТЕКУЩИЙ КРУГ МОЛИТВЫ",lap:"Круг",upgs:"UUPGs",separator:" из "},mf={placeholder:"Народ, место, язык, религия",labels:{people:"Народ:",place:"Место:",language:"Язык:",religion:"Религия:"},kinds:{people:"Народ + страна",peopleGroup:"Народ",bloc:"Блок родства",cluster:"Кластер народов",country:"Страна",region:"Регион",family:"Языковая семья",languageKind:"Язык",dialect:"Диалект",religionKind:"Религия"}},_f={prayer:"Молитва",adoption:"Усыновление",engagement:"Вовлечённость","affinity-blocks":"Народы",regions:"Регионы",countries:"Страны","language-families":"Языки",religion:"Религии",family:"Языковая семья",language:"Язык",dialect:"Диалект/вариант",bloc:"Блок родства",cluster:"Кластер",group:"Народ",pgic:"Народ в стране",region:"Регион WAGF",block:"Блок WAGF",country:"Страна"},bf={backToLegend:"返回图例",closeDetailView:"关闭详情视图"},yf={prayForThem:"为他们祷告",adoptThem:"认领他们",moreInfo:"更多信息",zoomIn:"放大",zoomOut:"缩小",switchToLightMode:"切换至浅色模式",switchToDarkMode:"切换至深色模式",resetView:"重置视图",toggleFullscreen:"切换全屏",aboutThisMap:"关于此地图",closeMenu:"关闭菜单",reloadMap:"重新加载地图",showClusters:"显示聚类",clusterSettings:"聚类设置",startAutoFly:"开始自动飞行",stopFlight:"停止飞行",speedLabel:"速度:",speedOption:{slow:"慢",normal:"正常",fast:"快"},shareEmbed:"分享与嵌入"},vf={labels:{country:"国家:",population:"人口:",language:"语言:",religion:"宗教:",languageFamily:"语系:",peopleCommitted:"承诺祷告人数:"},messages:{noDescription:"暂无描述。"}},wf={title:{prayer:"祷告进度",engagement:"参与进度",adoption:"认领进度",languageFamilies:"语系",doxaRegions:"Doxa 区域",affinityBlocs:"亲缘板块",gospelResources:"福音资源"},header:{collapsed:"图例",peopleGroupFallback:"民族群体"},prayer:{needsPrayer:"需要祷告",hasPrayer:"已有祷告",fullPrayerCoverage:"全面祷告覆盖"},progress:{title:"进度",covered:"{total} 个民族群体中已有 {covered} 个被祷告覆盖 · {pct}%",short:"{covered} / {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"需要参与",hasEngagement:"已有参与"},adoption:{needsAdoption:"需要认领",hasAdoption:"已有认领"},columns:{upgs:"UUPGs",population:"人口"},footer:{total:"总计"}},kf={menuComingSoon:"菜单即将推出"},$f={clusterByRegion:"按 Doxa 区域",clusterByLanguageFamily:"按语系",clusterByGospelResource:"按福音资源"},Of={header:"当前祷告轮次",lap:"第",upgs:"UUPGs",separator:" / "},Nf={placeholder:"民族、地点、语言、宗教",labels:{people:"民族:",place:"地点:",language:"语言:",religion:"宗教:"}};/*! + */let va;const Zo=e=>va=e,wa=Symbol();function Zr(e){return e&&typeof e=="object"&&Object.prototype.toString.call(e)==="[object Object]"&&typeof e.toJSON!="function"}var ao;(function(e){e.direct="direct",e.patchObject="patch object",e.patchFunction="patch function"})(ao||(ao={}));function Sp(){const e=mr(!0),t=e.run(()=>re({}));let n=[],o=[];const s=vn({install(r){Zo(s),s._a=r,r.provide(wa,s),r.config.globalProperties.$pinia=s,o.forEach(i=>n.push(i)),o=[]},use(r){return this._a?n.push(r):o.push(r),this},_p:n,_a:null,_e:e,_s:new Map,state:t});return s}const $a=()=>{};function ka(e,t,n,o=$a){e.push(t);const s=()=>{const r=e.indexOf(t);r>-1&&(e.splice(r,1),o())};return!n&&Ds()&&ic(s),s}function En(e,...t){e.slice().forEach(n=>{n(...t)})}const Pp=e=>e(),Ca=Symbol(),Qr=Symbol();function es(e,t){e instanceof Map&&t instanceof Map?t.forEach((n,o)=>e.set(o,n)):e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(const n in t){if(!t.hasOwnProperty(n))continue;const o=t[n],s=e[n];Zr(s)&&Zr(o)&&e.hasOwnProperty(n)&&!Oe(o)&&!Tt(o)?e[n]=es(s,o):e[n]=o}return e}const Fp=Symbol();function xp(e){return!Zr(e)||!e.hasOwnProperty(Fp)}const{assign:Kt}=Object;function Lp(e){return!!(Oe(e)&&e.effect)}function Ip(e,t,n,o){const{state:s,actions:r,getters:i}=t,a=n.state.value[e];let l;function c(){a||(n.state.value[e]=s?s():{});const u=Ec(n.state.value[e]);return Kt(u,r,Object.keys(i||{}).reduce((g,f)=>(g[f]=vn(ie(()=>{Zo(n);const _=n._s.get(e);return i[f].call(_,_)})),g),{}))}return l=Oa(e,c,t,n,o,!0),l}function Oa(e,t,n={},o,s,r){let i;const a=Kt({actions:{}},n),l={deep:!0};let c,u,g=[],f=[],_;const v=o.state.value[e];!r&&!v&&(o.state.value[e]={});let k;function O(F){let $;c=u=!1,typeof F=="function"?(F(o.state.value[e]),$={type:ao.patchFunction,storeId:e,events:_}):(es(o.state.value[e],F),$={type:ao.patchObject,payload:F,storeId:e,events:_});const D=k=Symbol();Hn().then(()=>{k===D&&(c=!0)}),u=!0,En(g,$,o.state.value[e])}const P=r?function(){const{state:$}=n,D=$?$():{};this.$patch(U=>{Kt(U,D)})}:$a;function N(){i.stop(),g=[],f=[],o._s.delete(e)}const h=(F,$="")=>{if(Ca in F)return F[Qr]=$,F;const D=function(){Zo(o);const U=Array.from(arguments),K=[],ne=[];function ue(X){K.push(X)}function q(X){ne.push(X)}En(f,{args:U,name:D[Qr],store:A,after:ue,onError:q});let W;try{W=F.apply(this&&this.$id===e?this:A,U)}catch(X){throw En(ne,X),X}return W instanceof Promise?W.then(X=>(En(K,X),X)).catch(X=>(En(ne,X),Promise.reject(X))):(En(K,W),W)};return D[Ca]=!0,D[Qr]=$,D},b={_p:o,$id:e,$onAction:ka.bind(null,f),$patch:O,$reset:P,$subscribe(F,$={}){const D=ka(g,F,$.detached,()=>U()),U=i.run(()=>ot(()=>o.state.value[e],K=>{($.flush==="sync"?u:c)&&F({storeId:e,type:ao.direct,events:_},K)},Kt({},l,$)));return D},$dispose:N},A=To(b);o._s.set(e,A);const E=(o._a&&o._a.runWithContext||Pp)(()=>o._e.run(()=>(i=mr()).run(()=>t({action:h}))));for(const F in E){const $=E[F];if(Oe($)&&!Lp($)||Tt($))r||(v&&xp($)&&(Oe($)?$.value=v[F]:es($,v[F])),o.state.value[e][F]=$);else if(typeof $=="function"){const D=h($,F);E[F]=D,a.actions[F]=$}}return Kt(A,E),Kt(pe(A),E),Object.defineProperty(A,"$state",{get:()=>o.state.value[e],set:F=>{O($=>{Kt($,F)})}}),o._p.forEach(F=>{Kt(A,i.run(()=>F({store:A,app:o._a,pinia:o,options:a})))}),v&&r&&n.hydrate&&n.hydrate(A.$state,v),c=!0,u=!0,A}/*! #__NO_SIDE_EFFECTS__ */function ts(e,t,n){let o,s;const r=typeof t=="function";typeof e=="string"?(o=e,s=r?n:t):(s=e,o=e.id);function i(a,l){const c=jc();return a=a||(c?Ie(wa,null):null),a&&Zo(a),a=va,a._s.has(o)||(r?Oa(o,t,s,a):Ip(o,s,a)),a._s.get(o)}return i.$id=o,i}const ns="__doxaMapToken",os="doxa:map-token",Na="__doxaMapTokenBridge",Tn=()=>{if(typeof window>"u")return"";const e=window[ns];return typeof e=="string"?e:""};function Aa(e){if(typeof window>"u")return"";const t=typeof e=="string"?e.trim():"";if(!t||t===Tn())return Tn();window[ns]=t;try{window.dispatchEvent(new CustomEvent(os,{detail:t}))}catch{}return t}function Mp(){if(typeof window>"u"||window[Na])return;const e=typeof window.MAP_TOKEN=="string"?window.MAP_TOKEN:"";e&&!Tn()&&(window[ns]=e);try{Object.defineProperty(window,"MAP_TOKEN",{configurable:!0,get(){return Tn()},set(t){Aa(t)}}),window[Na]=!0}catch{}}function Rp(){Mp();const e=re(Tn());if(typeof window<"u"){const t=()=>{e.value=Tn()};window.addEventListener(os,t);try{qt(()=>window.removeEventListener(os,t))}catch{}}return e}function Bp(e){return eu({loader:e,onError(t,n,o,s){s<=3?setTimeout(n,s*500):o()}})}const Dp={backToLegend:"العودة إلى المفتاح",closeDetailView:"إغلاق عرض التفاصيل"},Wp={prayForThem:"صلِّ من أجلهم",adoptThem:"تبنَّهم",moreInfo:"مزيد من المعلومات",zoomIn:"تكبير",zoomOut:"تصغير",switchToLightMode:"التبديل إلى الوضع الفاتح",switchToDarkMode:"التبديل إلى الوضع الداكن",resetView:"إعادة تعيين العرض",toggleFullscreen:"تبديل ملء الشاشة",aboutThisMap:"حول هذه الخريطة",closeMenu:"إغلاق القائمة",reloadMap:"إعادة تحميل الخريطة",showClusters:"إظهار المجموعات",clusterSettings:"إعدادات المجموعات",startAutoFly:"بدء الطيران التلقائي",stopFlight:"إيقاف الطيران",speedLabel:"السرعة:",speedOption:{slow:"بطيء",normal:"عادي",fast:"سريع"},shareEmbed:"مشاركة وتضمين"},Gp={labels:{country:"الدولة:",population:"السكان:",language:"اللغة:",religion:"الديانة:",languageFamily:"العائلة اللغوية:",peopleCommitted:"ملتزمون بالصلاة:"},messages:{noDescription:"لا يوجد وصف متاح."}},Up={title:{prayer:"تقدم الصلاة",engagement:"تقدم الانخراط",adoption:"تقدم التبني",languageFamilies:"العائلات اللغوية",doxaRegions:"مناطق Doxa",affinityBlocs:"كتل القرابة",gospelResources:"موارد الإنجيل"},header:{collapsed:"وسيلة الإيضاح",peopleGroupFallback:"مجموعة الشعب"},prayer:{needsPrayer:"يحتاج إلى صلاة",hasPrayer:"لديه صلاة",fullPrayerCoverage:"تغطية صلاة كاملة"},progress:{title:"التقدم",covered:"{covered} من {total} مجموعة شعبية مغطاة بالصلاة · {pct}%",short:"{covered} من {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"يحتاج إلى انخراط",hasEngagement:"لديه انخراط"},adoption:{needsAdoption:"يحتاج إلى تبني",hasAdoption:"لديه تبني"},columns:{upgs:"UUPGs",population:"السكان",name:"الاسم"},footer:{total:"الإجمالي"},sortByUpgs:"ترتيب حسب UUPG",sortByPop:"ترتيب حسب السكان",colLabel:{religion:"ديانات UUPG",prayer:"حالة الصلاة",engagement:"حالة المشاركة",adoption:"حالة التبني",status:"الحالة"},titleBar:{legend:"مفتاح الخريطة",peopleGroups:"الشعوب",wagfRegions:"مناطق WAGF",languages:"اللغات"}},jp={menuComingSoon:"القائمة قادمة قريباً"},Vp={clusterByRegion:"حسب منطقة Doxa",clusterByLanguageFamily:"حسب العائلة اللغوية",clusterByGospelResource:"حسب مورد الإنجيل"},Yp={header:"دورة الصلاة الحالية",lap:"الدورة",upgs:"UUPGs",separator:" من "},Hp={"%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":"الأسماء البديلة","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":"إخفاء المرشحات",Intercessors:"المتشفعين","Load More":"تحميل المزيد","Loading results...":"النتائج قيد التحميل...","Mobilize 100+ people praying daily for each DOXA people group":"حشد أكثر من 100 شخص للصلاة يوميًا من أجل كل مجموعة بشرية من مجموعات دوكسا","No One Praying":"لا أحد يصلّي","No options found":"لم يتم العثور على أي خيارات","No unengaged people groups by 2033":"الهدف هو القضاء على جميع الشعوب الغير مخدومة روحيا بحلول عام 2033","Not Adopted":"لم يتم انتماؤه",Other:"أخرى","Page Not Found":"الصفحة غير موجودة","People Group":"مجموعة بشرية","People Groups":"مجموعات بشرية","People committed to praying":"الأشخاص الذين التزموا بالصلاة",Population:"عدد السكان","Prayer Coverage":"التغطية المستمرة بالصلاة","Prayer coverage progress":"تقدم تغطية الصلاة",Regions:"المناطق",Religion:"الدين","Search names, country/continent, religions...":"إبحث عن الأسماء، الدولة/القارة، الأديان...","See %region% dashboard":"عرض لوحة معلومات %region%","See All":"عرض جميع العناصر",Select:"اختر","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":"الشعوب الغير متفاعلة","WAGF Block":"كتلة WAGF","WAGF Region":"منطقة WAGF","people groups adopted":"الشعوب المنتمية","people groups engaged":"مجموعات بشرية مُنخرِطة"},zp={placeholder:"شعب، مكان، لغة، ديانة",labels:{people:"الشعب:",place:"المكان:",language:"اللغة:",religion:"الديانة:"},kinds:{people:"الشعب + الدولة",peopleGroup:"الشعب",bloc:"كتلة التقارب",cluster:"مجموعة شعوب",country:"الدولة",region:"المنطقة",family:"عائلة اللغة",languageKind:"اللغة",dialect:"اللهجة",religionKind:"الدين"}},qp={prayer:"الصلاة",adoption:"التبني",engagement:"المشاركة","affinity-blocks":"الشعوب",regions:"المناطق",countries:"الدول","language-families":"اللغات",religion:"الأديان",family:"عائلة اللغة",language:"اللغة",dialect:"اللهجة/التنوع",bloc:"كتلة التقارب",cluster:"المجموعة",group:"الشعب",pgic:"الشعب في الدولة",region:"منطقة WAGF",block:"كتلة WAGF",country:"الدولة"},Kp={backToLegend:"Zurück zur Legende",closeDetailView:"Detailansicht schließen"},Xp={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"},Jp={labels:{country:"Land:",population:"Bevölkerung:",language:"Sprache:",religion:"Religion:",languageFamily:"Sprachfamilie:",peopleCommitted:"Zum Gebet verpflichtet:"},messages:{noDescription:"Keine Beschreibung verfügbar."}},Zp={title:{prayer:"Gebetsfortschritt",engagement:"Engagement-Fortschritt",adoption:"Adoptionsfortschritt",languageFamilies:"Sprachfamilien",doxaRegions:"Doxa-Regionen",affinityBlocs:"Affinitätsblöcke",gospelResources:"Evangeliumsressourcen"},header:{collapsed:"Legende",peopleGroupFallback:"Volksgruppe"},prayer:{needsPrayer:"Braucht Gebet",hasPrayer:"Hat Gebet",fullPrayerCoverage:"Vollständige Gebetsabdeckung"},progress:{title:"Fortschritt",covered:"{covered} von {total} Volksgruppen im Gebet abgedeckt · {pct}%",short:"{covered} von {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Braucht Engagement",hasEngagement:"Hat Engagement"},adoption:{needsAdoption:"Braucht Adoption",hasAdoption:"Hat Adoption"},columns:{upgs:"UUPGs",population:"Bevölkerung"},footer:{total:"Gesamt"}},Qp={menuComingSoon:"Menü folgt in Kürze"},ed={clusterByRegion:"Nach Doxa-Region",clusterByLanguageFamily:"Nach Sprachfamilie",clusterByGospelResource:"Nach Evangeliumsressource"},td={header:"AKTUELLE GEBETSRUNDE",lap:"Runde",upgs:"UUPGs",separator:" von "},nd={"%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:"Angenommen","Adoption Progress":"Adoptionsfortschritt","All Regions":"Alle Regionen","Alternate Names":"Alternative Namen","Clear All":"Alle löschen",Countries:"Länder","Countries in this region":"Länder in dieser Region",Country:"Land",Engaged:"Engagiert","Engagement Progress":"Engagement-Fortschritt","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",Intercessors:"Fürbitter","Load More":"Mehr laden","Loading results...":"Ergebnisse werden geladen...","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 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",Population:"Bevölkerung","Prayer Coverage":"Gebetsabdeckung","Prayer coverage progress":"Fortschritt der Gebetsabdeckung",Regions:"Regionen",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","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":"Völlig unerreichte Volksgruppen","WAGF Block":"WAGF-Block","WAGF Region":"WAGF-Region","people groups adopted":"adoptierte Volksgruppen","people groups engaged":"engagierte Volksgruppen"},od={placeholder:"Volk, Ort, Sprache, Religion",labels:{people:"Volk:",place:"Ort:",language:"Sprache:",religion:"Religion:"},sections:{within:"Innerhalb {selection}",allData:"Alle DOXA-Daten"}},rd={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"},sd={backToLegend:"Back to Legend",closeDetailView:"Close detail view"},id={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"},ad={labels:{country:"Country:",population:"Population:",language:"Language:",religion:"Religion:",languageFamily:"Language Family:",peopleCommitted:"Committed to pray:"},messages:{noDescription:"No description available."}},ld={title:{prayer:"Prayer Progress",engagement:"Engagement Progress",adoption:"Adoption Progress",languageFamilies:"Language Families",doxaRegions:"Doxa Regions",affinityBlocs:"Affinity Blocks",gospelResources:"Gospel Resources"},header:{default:"Legend",collapsed:"Legend",peopleGroupFallback:"People Group"},prayer:{needsPrayer:"Needs Prayer",hasPrayer:"Has Prayer",fullPrayerCoverage:"Full Prayer Coverage"},progress:{title:"Progress",covered:"{covered} of {total} people groups covered in prayer · {pct}%",short:"{covered} of {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Unengaged",hasEngagement:"Engaged"},adoption:{needsAdoption:"Needs Adoption",hasAdoption:"Has Adoption"},columns:{upgs:"UUPGs",population:"Population",name:"Name"},footer:{total:"Total"},sortByUpgs:"Sort by UUPGs",sortByPop:"Sort by Population",colLabel:{religion:"UUPG Religions",prayer:"Prayer Status",engagement:"Engagement Status",adoption:"Adoption Status",status:"Status"},titleBar:{legend:"Legend",peopleGroups:"People Groups",wagfRegions:"WAGF Regions",languages:"Languages"}},cd={menuComingSoon:"Menu coming soon"},ud={clusterByRegion:"By Doxa Region",clusterByLanguageFamily:"By Language Family",clusterByGospelResource:"By Gospel Resource"},pd={country:{wagfRegion:"WAGF Region",wagfBlock:"WAGF Bloc",country:"Country",uupgCount:"UUPG Count"}},dd={header:"CURRENT PRAYER LAP",lap:"Lap",upgs:"UUPGs",separator:" of "},gd={"%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","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",Intercessors:"Intercessors","Load More":"Load More","Loading results...":"Loading results...","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 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",Population:"Population","Prayer Coverage":"Prayer Coverage","Prayer coverage progress":"Prayer coverage progress",Regions:"Regions",Religion:"Religion","Search names, country/continent, religions...":"Search names, country/continent, religions...","See %region% dashboard":"See %region% dashboard","See All":"See All",Select:"Select","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","WAGF Block":"WAGF Block","WAGF Region":"WAGF Region","people groups adopted":"people groups adopted","people groups engaged":"people groups engaged"},fd={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"}},hd={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"},md={backToLegend:"Volver a la leyenda",closeDetailView:"Cerrar vista de detalle"},_d={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"},bd={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."}},yd={title:{prayer:"Progreso de oración",engagement:"Progreso de implicación",adoption:"Progreso de adopción",languageFamilies:"Familias lingüísticas",doxaRegions:"Regiones Doxa",affinityBlocs:"Bloques de afinidad",gospelResources:"Recursos del Evangelio"},header:{collapsed:"Leyenda",peopleGroupFallback:"Grupo de personas"},prayer:{needsPrayer:"Necesita oración",hasPrayer:"Tiene oración",fullPrayerCoverage:"Cobertura de oración completa"},progress:{title:"Progreso",covered:"{covered} de {total} grupos de personas cubiertos en oración · {pct}%",short:"{covered} de {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Necesita implicación",hasEngagement:"Tiene implicación"},adoption:{needsAdoption:"Necesita adopción",hasAdoption:"Tiene adopción"},columns:{upgs:"UUPGs",population:"Población",name:"Nombre"},footer:{total:"Total"},sortByUpgs:"Ordenar por UUPG",sortByPop:"Ordenar por población",colLabel:{religion:"Religiones UUPG",prayer:"Estado de oración",engagement:"Estado de compromiso",adoption:"Estado de adopción",status:"Estado"},titleBar:{legend:"Leyenda",peopleGroups:"Pueblos",wagfRegions:"Regiones WAGF",languages:"Idiomas"}},vd={menuComingSoon:"Menú próximamente"},wd={clusterByRegion:"Por región Doxa",clusterByLanguageFamily:"Por familia lingüística",clusterByGospelResource:"Por recurso del Evangelio"},$d={header:"VUELTA DE ORACIÓN ACTUAL",lap:"Vuelta",upgs:"UUPGs",separator:" de "},kd={"%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:"Aprobado","Adoption Progress":"Progreso de la adopción","All Regions":"Todas las regiones","Alternate Names":"Nombres alternativos","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",Intercessors:"Intercesores","Load More":"Cargar más","Loading results...":"Cargando resultados...","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 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",Population:"Población","Prayer Coverage":"Cobertura de oración","Prayer coverage progress":"Progreso de la cobertura de oración",Regions:"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","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","WAGF Block":"Bloque WAGF","WAGF Region":"Región de la WAGF","people groups adopted":"grupos de personas adoptados","people groups engaged":"grupos étnicos comprometidos"},Cd={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"}},Od={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"},Nd={backToLegend:"Retour à la légende",closeDetailView:"Fermer la vue détaillée"},Ad={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"},Ed={labels:{country:"Pays :",population:"Population :",language:"Langue :",religion:"Religion :",languageFamily:"Famille de langues :",peopleCommitted:"Engagés à prier :"},messages:{noDescription:"Aucune description disponible."}},Td={title:{prayer:"Progression de la prière",engagement:"Progression de l'engagement",adoption:"Progression de l'adoption",languageFamilies:"Familles de langues",doxaRegions:"Régions Doxa",affinityBlocs:"Blocs d'affinité",gospelResources:"Ressources de l'Évangile"},header:{collapsed:"Légende",peopleGroupFallback:"Groupe de personnes"},prayer:{needsPrayer:"Besoin de prière",hasPrayer:"Prière en cours",fullPrayerCoverage:"Couverture de prière complète"},progress:{title:"Progression",covered:"{covered} sur {total} groupes de personnes couverts par la prière · {pct}%",short:"{covered} sur {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Besoin d'engagement",hasEngagement:"Engagement en cours"},adoption:{needsAdoption:"Besoin d'adoption",hasAdoption:"Adoption en cours"},columns:{upgs:"UUPGs",population:"Population",name:"Nom"},footer:{total:"Total"},sortByUpgs:"Trier par UUPG",sortByPop:"Trier par population",colLabel:{religion:"Religions UUPG",prayer:"Statut de prière",engagement:"Statut d'engagement",adoption:"Statut d'adoption",status:"Statut"},titleBar:{legend:"Légende",peopleGroups:"Peuples",wagfRegions:"Régions WAGF",languages:"Langues"}},Sd={menuComingSoon:"Menu bientôt disponible"},Pd={clusterByRegion:"Par région Doxa",clusterByLanguageFamily:"Par famille de langues",clusterByGospelResource:"Par ressource de l'Évangile"},Fd={country:{wagfRegion:"Région WAGF",wagfBlock:"Bloc WAGF",country:"Pays",uupgCount:"Nombre d'UUPG"}},xd={header:"TOUR DE PRIÈRE ACTUEL",lap:"Tour",upgs:"UUPGs",separator:" sur "},Ld={"%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","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",Intercessors:"Intercesseurs","Load More":"Afficher plus","Loading results...":"Chargement des résultats...","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 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",Population:"Population","Prayer Coverage":"Couverture de prière","Prayer coverage progress":"Progression de la couverture de prière",Regions:"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","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","WAGF Block":"Bloc WAGF","WAGF Region":"Région WAGF","people groups adopted":"peuples adoptés","people groups engaged":"peuples engagés"},Id={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"}},Md={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"},Rd={backToLegend:"लेजेंड पर वापस जाएं",closeDetailView:"विवरण दृश्य बंद करें"},Bd={prayForThem:"उनके लिए प्रार्थना करें",adoptThem:"उन्हें गोद लें",moreInfo:"अधिक जानकारी",zoomIn:"ज़ूम इन",zoomOut:"ज़ूम आउट",switchToLightMode:"लाइट मोड पर जाएं",switchToDarkMode:"डार्क मोड पर जाएं",resetView:"दृश्य रीसेट करें",toggleFullscreen:"फ़ुलस्क्रीन टॉगल करें",aboutThisMap:"इस मानचित्र के बारे में",closeMenu:"मेनू बंद करें",reloadMap:"मानचित्र पुनः लोड करें",showClusters:"क्लस्टर दिखाएं",clusterSettings:"क्लस्टर सेटिंग्स",startAutoFly:"ऑटो फ्लाई शुरू करें",stopFlight:"उड़ान रोकें",speedLabel:"गति:",speedOption:{slow:"धीमी",normal:"सामान्य",fast:"तेज़"},shareEmbed:"साझा करें और एम्बेड करें"},Dd={labels:{country:"देश:",population:"जनसंख्या:",language:"भाषा:",religion:"धर्म:",languageFamily:"भाषा परिवार:",peopleCommitted:"प्रार्थना के लिए प्रतिबद्ध:"},messages:{noDescription:"कोई विवरण उपलब्ध नहीं है।"}},Wd={title:{prayer:"प्रार्थना प्रगति",engagement:"सहभागिता प्रगति",adoption:"गोद लेने की प्रगति",languageFamilies:"भाषा परिवार",doxaRegions:"Doxa क्षेत्र",affinityBlocs:"समानता समूह",gospelResources:"सुसमाचार संसाधन"},header:{collapsed:"किंवदंती",peopleGroupFallback:"जनजाति समूह"},prayer:{needsPrayer:"प्रार्थना चाहिए",hasPrayer:"प्रार्थना है",fullPrayerCoverage:"पूर्ण प्रार्थना कवरेज"},progress:{title:"प्रगति",covered:"{total} में से {covered} जनजाति समूह प्रार्थना में कवर · {pct}%",short:"{total} में से {covered} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"सहभागिता चाहिए",hasEngagement:"सहभागिता है"},adoption:{needsAdoption:"गोद लेना चाहिए",hasAdoption:"गोद लिया गया"},columns:{upgs:"UUPGs",population:"जनसंख्या"},footer:{total:"कुल"}},Gd={menuComingSoon:"मेनू शीघ्र आ रहा है"},Ud={clusterByRegion:"Doxa क्षेत्र के अनुसार",clusterByLanguageFamily:"भाषा परिवार के अनुसार",clusterByGospelResource:"सुसमाचार संसाधन के अनुसार"},jd={header:"वर्तमान प्रार्थना चक्र",lap:"चक्र",upgs:"UUPGs",separator:" में से "},Vd={"%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":"वैकल्पिक नाम","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":"फ़िल्टर छिपाएँ",Intercessors:"मध्यस्थ","Load More":"और लोड करें","Loading results...":"परिणाम लोड हो रहे हैं..।","Mobilize 100+ people praying daily for each DOXA people group":"प्रत्येक DOXA जनसमूह के लिए प्रतिदिन प्रार्थना करने हेतु 100+ लोगों को सक्रिय करें।","No One Praying":"कोई प्रार्थना नहीं कर रहा","No options found":"कोई विकल्प नहीं मिला","No unengaged people groups by 2033":"2033 तक कोई भी संलग्न न किया गया जनसमूह नहीं रहेगा।","Not Adopted":"दत्तक नहीं लिया गया",Other:"अन्य","Page Not Found":"पृष्ठ नहीं मिला","People Group":"लोगों का समूह","People Groups":"लोगों के समूह","People committed to praying":"प्रार्थना के लिए प्रतिबद्ध लोग",Population:"जनसँख्या","Prayer Coverage":"प्रार्थना कवरेज","Prayer coverage progress":"प्रार्थना कवरेज की प्रगति",Regions:"क्षेत्र",Religion:"धर्म","Search names, country/continent, religions...":"नाम, देश/महाद्वीप, धर्म खोजें..।","See %region% dashboard":"%region% डैशबोर्ड देखें","See All":"सभी देखें",Select:"चयन/छंटनी","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":"अनलग्न लोगों के समूह","WAGF Block":"WAGF ब्लॉक","WAGF Region":"डब्ल्यूएजीएफ क्षेत्र","people groups adopted":"लोगों के समूहों ने अपनाया","people groups engaged":"प्रवेशित लोगों के समूह"},Yd={placeholder:"लोग, स्थान, भाषा, धर्म",labels:{people:"लोग:",place:"स्थान:",language:"भाषा:",religion:"धर्म:"}},Hd={backToLegend:"Torna alla legenda",closeDetailView:"Chiudi vista dettaglio"},zd={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"},qd={labels:{country:"Paese:",population:"Popolazione:",language:"Lingua:",religion:"Religione:",languageFamily:"Famiglia linguistica:",peopleCommitted:"Impegnati a pregare:"},messages:{noDescription:"Nessuna descrizione disponibile."}},Kd={title:{prayer:"Avanzamento della preghiera",engagement:"Avanzamento dell'impegno",adoption:"Avanzamento dell'adozione",languageFamilies:"Famiglie linguistiche",doxaRegions:"Regioni Doxa",affinityBlocs:"Blocchi di affinità",gospelResources:"Risorse del Vangelo"},header:{collapsed:"Legenda",peopleGroupFallback:"Gruppo di persone"},prayer:{needsPrayer:"Necessita preghiera",hasPrayer:"Ha preghiera",fullPrayerCoverage:"Copertura di preghiera completa"},progress:{title:"Avanzamento",covered:"{covered} di {total} gruppi di persone coperti dalla preghiera · {pct}%",short:"{covered} di {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Necessita impegno",hasEngagement:"Ha impegno"},adoption:{needsAdoption:"Necessita adozione",hasAdoption:"Ha adozione"},columns:{upgs:"UUPGs",population:"Popolazione"},footer:{total:"Totale"}},Xd={menuComingSoon:"Menu in arrivo"},Jd={clusterByRegion:"Per regione Doxa",clusterByLanguageFamily:"Per famiglia linguistica",clusterByGospelResource:"Per risorsa del Vangelo"},Zd={header:"GIRO DI PREGHIERA ATTUALE",lap:"Giro",upgs:"UUPGs",separator:" di "},Qd={placeholder:"Popolo, luogo, lingua, religione",labels:{people:"Popolo:",place:"Luogo:",language:"Lingua:",religion:"Religione:"}},eg={backToLegend:"Voltar à legenda",closeDetailView:"Fechar vista de detalhe"},tg={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"},ng={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."}},og={title:{prayer:"Progresso da oração",engagement:"Progresso do envolvimento",adoption:"Progresso da adoção",languageFamilies:"Famílias linguísticas",doxaRegions:"Regiões Doxa",affinityBlocs:"Blocos de afinidade",gospelResources:"Recursos do Evangelho"},header:{collapsed:"Legenda",peopleGroupFallback:"Grupo de pessoas"},prayer:{needsPrayer:"Precisa de oração",hasPrayer:"Tem oração",fullPrayerCoverage:"Cobertura de oração completa"},progress:{title:"Progresso",covered:"{covered} de {total} grupos de pessoas cobertos em oração · {pct}%",short:"{covered} de {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Precisa de envolvimento",hasEngagement:"Tem envolvimento"},adoption:{needsAdoption:"Precisa de adoção",hasAdoption:"Tem adoção"},columns:{upgs:"UUPGs",population:"População",name:"Nome"},footer:{total:"Total"},sortByUpgs:"Ordenar por UUPG",sortByPop:"Ordenar por população",colLabel:{religion:"Religiões UUPG",prayer:"Status de oração",engagement:"Status de engajamento",adoption:"Status de adoção",status:"Status"},titleBar:{legend:"Legenda",peopleGroups:"Povos",wagfRegions:"Regiões WAGF",languages:"Idiomas"}},rg={menuComingSoon:"Menu em breve"},sg={clusterByRegion:"Por região Doxa",clusterByLanguageFamily:"Por família linguística",clusterByGospelResource:"Por recurso do Evangelho"},ig={header:"VOLTA DE ORAÇÃO ATUAL",lap:"Volta",upgs:"UUPGs",separator:" de "},ag={"%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:"Aprovado","Adoption Progress":"Progresso da adoção","All Regions":"Todas as regiões","Alternate Names":"Nomes alternativos","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",Intercessors:"Intercessores","Load More":"Carregar mais","Loading results...":"A carregar resultados...","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 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",Population:"Aplicação","Prayer Coverage":"Cobertura de oração","Prayer coverage progress":"Progresso da cobertura de oração",Regions:"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","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","WAGF Block":"Bloco WAGF","WAGF Region":"Região da WAGF","people groups adopted":"grupos étnicos adotados","people groups engaged":"grupos étnicos engajados"},lg={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"}},cg={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"},ug={backToLegend:"Înapoi la legendă",closeDetailView:"Închide vizualizarea detaliată"},pg={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ă"},dg={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ă."}},gg={title:{prayer:"Progresul rugăciunii",engagement:"Progresul implicării",adoption:"Progresul adopției",languageFamilies:"Familii de limbi",doxaRegions:"Regiuni Doxa",affinityBlocs:"Blocuri de afinitate",gospelResources:"Resurse ale Evangheliei"},header:{collapsed:"Legendă",peopleGroupFallback:"Grup de popoare"},prayer:{needsPrayer:"Necesită rugăciune",hasPrayer:"Are rugăciune",fullPrayerCoverage:"Acoperire completă de rugăciune"},progress:{title:"Progres",covered:"{covered} din {total} grupuri de popoare acoperite în rugăciune · {pct}%",short:"{covered} din {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Necesită implicare",hasEngagement:"Are implicare"},adoption:{needsAdoption:"Necesită adopție",hasAdoption:"Are adopție"},columns:{upgs:"UUPGs",population:"Populație"},footer:{total:"Total"}},fg={menuComingSoon:"Meniu în curând"},hg={clusterByRegion:"După regiune Doxa",clusterByLanguageFamily:"După familia de limbi",clusterByGospelResource:"După resursa Evangheliei"},mg={header:"TURUL DE RUGĂCIUNE CURENT",lap:"Tur",upgs:"UUPGs",separator:" din "},_g={placeholder:"Popor, loc, limbă, religie",labels:{people:"Popor:",place:"Loc:",language:"Limbă:",religion:"Religie:"}},bg={backToLegend:"Назад к легенде",closeDetailView:"Закрыть подробный вид"},yg={prayForThem:"Молитесь о них",adoptThem:"Усыновите их",moreInfo:"Подробнее",zoomIn:"Приблизить",zoomOut:"Отдалить",switchToLightMode:"Переключить на светлый режим",switchToDarkMode:"Переключить на тёмный режим",resetView:"Сбросить вид",toggleFullscreen:"Полноэкранный режим",aboutThisMap:"Об этой карте",closeMenu:"Закрыть меню",reloadMap:"Перезагрузить карту",showClusters:"Показать кластеры",clusterSettings:"Настройки кластеров",startAutoFly:"Начать авто-полёт",stopFlight:"Остановить полёт",speedLabel:"Скорость:",speedOption:{slow:"Медленно",normal:"Нормально",fast:"Быстро"},shareEmbed:"Поделиться и встроить"},vg={labels:{country:"Страна:",population:"Население:",language:"Язык:",religion:"Религия:",languageFamily:"Языковая семья:",peopleCommitted:"Обязались молиться:"},messages:{noDescription:"Описание недоступно."}},wg={title:{prayer:"Прогресс молитвы",engagement:"Прогресс вовлечённости",adoption:"Прогресс усыновления",languageFamilies:"Языковые семьи",doxaRegions:"Регионы Doxa",affinityBlocs:"Блоки родства",gospelResources:"Евангельские ресурсы"},header:{collapsed:"Условные обозначения",peopleGroupFallback:"Народная группа"},prayer:{needsPrayer:"Нуждается в молитве",hasPrayer:"Есть молитва",fullPrayerCoverage:"Полное молитвенное покрытие"},progress:{title:"Прогресс",covered:"{covered} из {total} народных групп охвачены молитвой · {pct}%",short:"{covered} из {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Нуждается в вовлечённости",hasEngagement:"Есть вовлечённость"},adoption:{needsAdoption:"Нуждается в усыновлении",hasAdoption:"Есть усыновление"},columns:{upgs:"UUPGs",population:"Население",name:"Название"},footer:{total:"Всего"},sortByUpgs:"Сортировать по UUPG",sortByPop:"Сортировать по населению",colLabel:{religion:"Религии UUPG",prayer:"Статус молитвы",engagement:"Статус вовлечённости",adoption:"Статус усыновления",status:"Статус"},titleBar:{legend:"Легенда",peopleGroups:"Народы",wagfRegions:"Регионы WAGF",languages:"Языки"}},$g={menuComingSoon:"Меню скоро появится"},kg={clusterByRegion:"По региону Doxa",clusterByLanguageFamily:"По языковой семье",clusterByGospelResource:"По евангельскому ресурсу"},Cg={header:"ТЕКУЩИЙ КРУГ МОЛИТВЫ",lap:"Круг",upgs:"UUPGs",separator:" из "},Og={"%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":"Альтернативные названия","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":"Скрыть фильтры",Intercessors:"Ходатаи","Load More":"Загрузить еще","Loading results...":"Загрузка результатов...","Mobilize 100+ people praying daily for each DOXA people group":"Мобилизуйте 100+ человек для ежедневной молитвы за каждую народность DOXA","No One Praying":"Никто не молится","No options found":"Вариантов не найдено","No unengaged people groups by 2033":"К 2033 году не останется незадействованных народов","Not Adopted":"Не принято",Other:"Другое","Page Not Found":"Страница не найдена","People Group":"Группа людей","People Groups":"Группы людей","People committed to praying":"Люди, посвятившие себя молитве",Population:"Население","Prayer Coverage":"Молитвенное покрытие","Prayer coverage progress":"Прогресс молитвенного покрытия",Regions:"Регионы",Religion:"Религия","Search names, country/continent, religions...":"Поиск по именам, странам/континентам, религиям...","See %region% dashboard":"Открыть панель: %region%","See All":"Смотреть все",Select:"Выбрать","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":"Невовлечённые группы людей","WAGF Block":"Блок WAGF","WAGF Region":"Регион WAGF","people groups adopted":"принятые группы людей","people groups engaged":"вовлечённые группы людей"},Ng={placeholder:"Народ, место, язык, религия",labels:{people:"Народ:",place:"Место:",language:"Язык:",religion:"Религия:"},kinds:{people:"Народ + страна",peopleGroup:"Народ",bloc:"Блок родства",cluster:"Кластер народов",country:"Страна",region:"Регион",family:"Языковая семья",languageKind:"Язык",dialect:"Диалект",religionKind:"Религия"}},Ag={prayer:"Молитва",adoption:"Усыновление",engagement:"Вовлечённость","affinity-blocks":"Народы",regions:"Регионы",countries:"Страны","language-families":"Языки",religion:"Религии",family:"Языковая семья",language:"Язык",dialect:"Диалект/вариант",bloc:"Блок родства",cluster:"Кластер",group:"Народ",pgic:"Народ в стране",region:"Регион WAGF",block:"Блок WAGF",country:"Страна"},Eg={backToLegend:"返回图例",closeDetailView:"关闭详情视图"},Tg={prayForThem:"为他们祷告",adoptThem:"认领他们",moreInfo:"更多信息",zoomIn:"放大",zoomOut:"缩小",switchToLightMode:"切换至浅色模式",switchToDarkMode:"切换至深色模式",resetView:"重置视图",toggleFullscreen:"切换全屏",aboutThisMap:"关于此地图",closeMenu:"关闭菜单",reloadMap:"重新加载地图",showClusters:"显示聚类",clusterSettings:"聚类设置",startAutoFly:"开始自动飞行",stopFlight:"停止飞行",speedLabel:"速度:",speedOption:{slow:"慢",normal:"正常",fast:"快"},shareEmbed:"分享与嵌入"},Sg={labels:{country:"国家:",population:"人口:",language:"语言:",religion:"宗教:",languageFamily:"语系:",peopleCommitted:"承诺祷告人数:"},messages:{noDescription:"暂无描述。"}},Pg={title:{prayer:"祷告进度",engagement:"参与进度",adoption:"认领进度",languageFamilies:"语系",doxaRegions:"Doxa 区域",affinityBlocs:"亲缘板块",gospelResources:"福音资源"},header:{collapsed:"图例",peopleGroupFallback:"民族群体"},prayer:{needsPrayer:"需要祷告",hasPrayer:"已有祷告",fullPrayerCoverage:"全面祷告覆盖"},progress:{title:"进度",covered:"{total} 个民族群体中已有 {covered} 个被祷告覆盖 · {pct}%",short:"{covered} / {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"需要参与",hasEngagement:"已有参与"},adoption:{needsAdoption:"需要认领",hasAdoption:"已有认领"},columns:{upgs:"UUPGs",population:"人口"},footer:{total:"总计"}},Fg={menuComingSoon:"菜单即将推出"},xg={clusterByRegion:"按 Doxa 区域",clusterByLanguageFamily:"按语系",clusterByGospelResource:"按福音资源"},Lg={header:"当前祷告轮次",lap:"第",upgs:"UUPGs",separator:" / "},Ig={placeholder:"民族、地点、语言、宗教",labels:{people:"民族:",place:"地点:",language:"语言:",religion:"宗教:"}};/*! * shared v9.14.5 * (c) 2025 kazuya kawaguchi * Released under the MIT License. - */function Cf(e,t){typeof console<"u"&&(console.warn("[intlify] "+e),t&&console.warn(t.stack))}const Qo=typeof window<"u",Xt=(e,t=!1)=>t?Symbol.for(e):Symbol(e),Af=(e,t,n)=>Ef({l:e,k:t,s:n}),Ef=e=>JSON.stringify(e).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029").replace(/\u0027/g,"\\u0027"),Ae=e=>typeof e=="number"&&isFinite(e),Tf=e=>La(e)==="[object Date]",Jt=e=>La(e)==="[object RegExp]",er=e=>se(e)&&Object.keys(e).length===0,We=Object.assign,Lf=Object.create,me=(e=null)=>Lf(e);let Ca;const Bt=()=>Ca||(Ca=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:me());function Aa(e){return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'").replace(/\//g,"/").replace(/=/g,"=")}function Ea(e){return e.replace(/&(?![a-zA-Z0-9#]{2,6};)/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(//g,">")}function Sf(e){return e=e.replace(/(\w+)\s*=\s*"([^"]*)"/g,(o,s,r)=>`${s}="${Ea(r)}"`),e=e.replace(/(\w+)\s*=\s*'([^']*)'/g,(o,s,r)=>`${s}='${Ea(r)}'`),/\s*on\w+\s*=\s*["']?[^"'>]+["']?/gi.test(e)&&(e=e.replace(/(\s+)(on)(\w+\s*=)/gi,"$1on$3")),[/(\s+(?:href|src|action|formaction)\s*=\s*["']?)\s*javascript:/gi,/(style\s*=\s*["'][^"']*url\s*\(\s*)javascript:/gi].forEach(o=>{e=e.replace(o,"$1javascript:")}),e}const xf=Object.prototype.hasOwnProperty;function ut(e,t){return xf.call(e,t)}const Oe=Array.isArray,we=e=>typeof e=="function",q=e=>typeof e=="string",ce=e=>typeof e=="boolean",fe=e=>e!==null&&typeof e=="object",If=e=>fe(e)&&we(e.then)&&we(e.catch),Ta=Object.prototype.toString,La=e=>Ta.call(e),se=e=>{if(!fe(e))return!1;const t=Object.getPrototypeOf(e);return t===null||t.constructor===Object},Ff=e=>e==null?"":Oe(e)||se(e)&&e.toString===Ta?JSON.stringify(e,null,2):String(e);function Mf(e,t=""){return e.reduce((n,o,s)=>s===0?n+o:n+t+o,"")}function tr(e){let t=e;return()=>++t}const nr=e=>!fe(e)||Oe(e);function or(e,t){if(nr(e)||nr(t))throw new Error("Invalid value");const n=[{src:e,des:t}];for(;n.length;){const{src:o,des:s}=n.pop();Object.keys(o).forEach(r=>{r!=="__proto__"&&(fe(o[r])&&!fe(s[r])&&(s[r]=Array.isArray(o[r])?[]:me()),nr(s[r])||nr(o[r])?s[r]=o[r]:n.push({src:o[r],des:s[r]}))})}}/*! + */function Mg(e,t){typeof console<"u"&&(console.warn("[intlify] "+e),t&&console.warn(t.stack))}const Qo=typeof window<"u",Xt=(e,t=!1)=>t?Symbol.for(e):Symbol(e),Rg=(e,t,n)=>Bg({l:e,k:t,s:n}),Bg=e=>JSON.stringify(e).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029").replace(/\u0027/g,"\\u0027"),Ae=e=>typeof e=="number"&&isFinite(e),Dg=e=>Fa(e)==="[object Date]",Jt=e=>Fa(e)==="[object RegExp]",er=e=>se(e)&&Object.keys(e).length===0,We=Object.assign,Wg=Object.create,me=(e=null)=>Wg(e);let Ea;const Rt=()=>Ea||(Ea=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:me());function Ta(e){return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'").replace(/\//g,"/").replace(/=/g,"=")}function Sa(e){return e.replace(/&(?![a-zA-Z0-9#]{2,6};)/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(//g,">")}function Gg(e){return e=e.replace(/(\w+)\s*=\s*"([^"]*)"/g,(o,s,r)=>`${s}="${Sa(r)}"`),e=e.replace(/(\w+)\s*=\s*'([^']*)'/g,(o,s,r)=>`${s}='${Sa(r)}'`),/\s*on\w+\s*=\s*["']?[^"'>]+["']?/gi.test(e)&&(e=e.replace(/(\s+)(on)(\w+\s*=)/gi,"$1on$3")),[/(\s+(?:href|src|action|formaction)\s*=\s*["']?)\s*javascript:/gi,/(style\s*=\s*["'][^"']*url\s*\(\s*)javascript:/gi].forEach(o=>{e=e.replace(o,"$1javascript:")}),e}const Ug=Object.prototype.hasOwnProperty;function ut(e,t){return Ug.call(e,t)}const Ce=Array.isArray,we=e=>typeof e=="function",z=e=>typeof e=="string",ce=e=>typeof e=="boolean",ge=e=>e!==null&&typeof e=="object",jg=e=>ge(e)&&we(e.then)&&we(e.catch),Pa=Object.prototype.toString,Fa=e=>Pa.call(e),se=e=>{if(!ge(e))return!1;const t=Object.getPrototypeOf(e);return t===null||t.constructor===Object},Vg=e=>e==null?"":Ce(e)||se(e)&&e.toString===Pa?JSON.stringify(e,null,2):String(e);function Yg(e,t=""){return e.reduce((n,o,s)=>s===0?n+o:n+t+o,"")}function tr(e){let t=e;return()=>++t}const nr=e=>!ge(e)||Ce(e);function or(e,t){if(nr(e)||nr(t))throw new Error("Invalid value");const n=[{src:e,des:t}];for(;n.length;){const{src:o,des:s}=n.pop();Object.keys(o).forEach(r=>{r!=="__proto__"&&(ge(o[r])&&!ge(s[r])&&(s[r]=Array.isArray(o[r])?[]:me()),nr(s[r])||nr(o[r])?s[r]=o[r]:n.push({src:o[r],des:s[r]}))})}}/*! * message-compiler v9.14.5 * (c) 2025 kazuya kawaguchi * Released under the MIT License. - */function Pf(e,t,n){return{line:e,column:t,offset:n}}function rr(e,t,n){return{start:e,end:t}}const Bf=/\{([0-9a-zA-Z]+)\}/g;function Sa(e,...t){return t.length===1&&Df(t[0])&&(t=t[0]),(!t||!t.hasOwnProperty)&&(t={}),e.replace(Bf,(n,o)=>t.hasOwnProperty(o)?t[o]:"")}const xa=Object.assign,Ia=e=>typeof e=="string",Df=e=>e!==null&&typeof e=="object";function Fa(e,t=""){return e.reduce((n,o,s)=>s===0?n+o:n+t+o,"")}const os={USE_MODULO_SYNTAX:1,__EXTEND_POINT__:2},Rf={[os.USE_MODULO_SYNTAX]:"Use modulo before '{{0}}'."};function Wf(e,t,...n){const o=Sa(Rf[e],...n||[]),s={message:String(o),code:e};return t&&(s.location=t),s}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},Uf={[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 Ln(e,t,n={}){const{domain:o,messages:s,args:r}=n,i=Sa((s||Uf)[e]||"",...r||[]),a=new SyntaxError(String(i));return a.code=e,t&&(a.location=t),a.domain=o,a}function jf(e){throw e}const Dt=" ",Gf="\r",He=` -`,Yf="\u2028",Vf="\u2029";function Hf(e){const t=e;let n=0,o=1,s=1,r=0;const i=E=>t[E]===Gf&&t[E+1]===He,a=E=>t[E]===He,l=E=>t[E]===Vf,c=E=>t[E]===Yf,u=E=>i(E)||a(E)||l(E)||c(E),f=()=>n,h=()=>o,m=()=>s,v=()=>r,$=E=>i(E)||l(E)||c(E)?He:t[E],A=()=>$(n),N=()=>$(n+r);function C(){return r=0,u(n)&&(o++,s=0),i(n)&&n++,n++,s++,t[n]}function _(){return i(n+r)&&r++,r++,t[n+r]}function b(){n=0,o=1,s=1,r=0}function T(E=0){r=E}function k(){const E=n+r;for(;E!==n;)C();r=0}return{index:f,line:h,column:m,peekOffset:v,charAt:$,currentChar:A,currentPeek:N,next:C,peek:_,reset:b,resetPeek:T,skipToPeek:k}}const Zt=void 0,qf=".",Ma="'",zf="tokenizer";function Kf(e,t={}){const n=t.location!==!1,o=Hf(e),s=()=>o.index(),r=()=>Pf(o.line(),o.column(),o.index()),i=r(),a=s(),l={currentType:14,offset:a,startLoc:i,endLoc:i,lastType:14,lastOffset:a,lastStartLoc:i,lastEndLoc:i,braceNest:0,inLinked:!1,text:""},c=()=>l,{onError:u}=t;function f(p,d,S,...F){const V=c();if(d.column+=S,d.offset+=S,u){const U=n?rr(V.startLoc,d):null,L=Ln(p,U,{domain:zf,args:F});u(L)}}function h(p,d,S){p.endLoc=r(),p.currentType=d;const F={type:d};return n&&(F.loc=rr(p.startLoc,p.endLoc)),S!=null&&(F.value=S),F}const m=p=>h(p,14);function v(p,d){return p.currentChar()===d?(p.next(),d):(f(te.EXPECTED_TOKEN,r(),0,d),"")}function $(p){let d="";for(;p.currentPeek()===Dt||p.currentPeek()===He;)d+=p.currentPeek(),p.peek();return d}function A(p){const d=$(p);return p.skipToPeek(),d}function N(p){if(p===Zt)return!1;const d=p.charCodeAt(0);return d>=97&&d<=122||d>=65&&d<=90||d===95}function C(p){if(p===Zt)return!1;const d=p.charCodeAt(0);return d>=48&&d<=57}function _(p,d){const{currentType:S}=d;if(S!==2)return!1;$(p);const F=N(p.currentPeek());return p.resetPeek(),F}function b(p,d){const{currentType:S}=d;if(S!==2)return!1;$(p);const F=p.currentPeek()==="-"?p.peek():p.currentPeek(),V=C(F);return p.resetPeek(),V}function T(p,d){const{currentType:S}=d;if(S!==2)return!1;$(p);const F=p.currentPeek()===Ma;return p.resetPeek(),F}function k(p,d){const{currentType:S}=d;if(S!==8)return!1;$(p);const F=p.currentPeek()===".";return p.resetPeek(),F}function E(p,d){const{currentType:S}=d;if(S!==9)return!1;$(p);const F=N(p.currentPeek());return p.resetPeek(),F}function x(p,d){const{currentType:S}=d;if(!(S===8||S===12))return!1;$(p);const F=p.currentPeek()===":";return p.resetPeek(),F}function O(p,d){const{currentType:S}=d;if(S!==10)return!1;const F=()=>{const U=p.currentPeek();return U==="{"?N(p.peek()):U==="@"||U==="%"||U==="|"||U===":"||U==="."||U===Dt||!U?!1:U===He?(p.peek(),F()):K(p,!1)},V=F();return p.resetPeek(),V}function R(p){$(p);const d=p.currentPeek()==="|";return p.resetPeek(),d}function j(p){const d=$(p),S=p.currentPeek()==="%"&&p.peek()==="{";return p.resetPeek(),{isModulo:S,hasSpace:d.length>0}}function K(p,d=!0){const S=(V=!1,U="",L=!1)=>{const P=p.currentPeek();return P==="{"?U==="%"?!1:V:P==="@"||!P?U==="%"?!0:V:P==="%"?(p.peek(),S(V,"%",!0)):P==="|"?U==="%"||L?!0:!(U===Dt||U===He):P===Dt?(p.peek(),S(!0,Dt,L)):P===He?(p.peek(),S(!0,He,L)):!0},F=S();return d&&p.resetPeek(),F}function ne(p,d){const S=p.currentChar();return S===Zt?Zt:d(S)?(p.next(),S):null}function ue(p){const d=p.charCodeAt(0);return d>=97&&d<=122||d>=65&&d<=90||d>=48&&d<=57||d===95||d===36}function z(p){return ne(p,ue)}function W(p){const d=p.charCodeAt(0);return d>=97&&d<=122||d>=65&&d<=90||d>=48&&d<=57||d===95||d===36||d===45}function X(p){return ne(p,W)}function le(p){const d=p.charCodeAt(0);return d>=48&&d<=57}function Ee(p){return ne(p,le)}function Nt(p){const d=p.charCodeAt(0);return d>=48&&d<=57||d>=65&&d<=70||d>=97&&d<=102}function Ie(p){return ne(p,Nt)}function Pe(p){let d="",S="";for(;d=Ee(p);)S+=d;return S}function on(p){A(p);const d=p.currentChar();return d!=="%"&&f(te.EXPECTED_TOKEN,r(),0,d),p.next(),"%"}function rn(p){let d="";for(;;){const S=p.currentChar();if(S==="{"||S==="}"||S==="@"||S==="|"||!S)break;if(S==="%")if(K(p))d+=S,p.next();else break;else if(S===Dt||S===He)if(K(p))d+=S,p.next();else{if(R(p))break;d+=S,p.next()}else d+=S,p.next()}return d}function gn(p){A(p);let d="",S="";for(;d=X(p);)S+=d;return p.currentChar()===Zt&&f(te.UNTERMINATED_CLOSING_BRACE,r(),0),S}function ft(p){A(p);let d="";return p.currentChar()==="-"?(p.next(),d+=`-${Pe(p)}`):d+=Pe(p),p.currentChar()===Zt&&f(te.UNTERMINATED_CLOSING_BRACE,r(),0),d}function Ut(p){return p!==Ma&&p!==He}function jt(p){A(p),v(p,"'");let d="",S="";for(;d=ne(p,Ut);)d==="\\"?S+=sn(p):S+=d;const F=p.currentChar();return F===He||F===Zt?(f(te.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER,r(),0),F===He&&(p.next(),v(p,"'")),S):(v(p,"'"),S)}function sn(p){const d=p.currentChar();switch(d){case"\\":case"'":return p.next(),`\\${d}`;case"u":return st(p,d,4);case"U":return st(p,d,6);default:return f(te.UNKNOWN_ESCAPE_SEQUENCE,r(),0,d),""}}function st(p,d,S){v(p,d);let F="";for(let V=0;V{const F=p.currentChar();return F==="{"||F==="%"||F==="@"||F==="|"||F==="("||F===")"||!F||F===Dt?S:(S+=F,p.next(),d(S))};return d("")}function I(p){A(p);const d=v(p,"|");return A(p),d}function D(p,d){let S=null;switch(p.currentChar()){case"{":return d.braceNest>=1&&f(te.NOT_ALLOW_NEST_PLACEHOLDER,r(),0),p.next(),S=h(d,2,"{"),A(p),d.braceNest++,S;case"}":return d.braceNest>0&&d.currentType===2&&f(te.EMPTY_PLACEHOLDER,r(),0),p.next(),S=h(d,3,"}"),d.braceNest--,d.braceNest>0&&A(p),d.inLinked&&d.braceNest===0&&(d.inLinked=!1),S;case"@":return d.braceNest>0&&f(te.UNTERMINATED_CLOSING_BRACE,r(),0),S=B(p,d)||m(d),d.braceNest=0,S;default:{let V=!0,U=!0,L=!0;if(R(p))return d.braceNest>0&&f(te.UNTERMINATED_CLOSING_BRACE,r(),0),S=h(d,1,I(p)),d.braceNest=0,d.inLinked=!1,S;if(d.braceNest>0&&(d.currentType===5||d.currentType===6||d.currentType===7))return f(te.UNTERMINATED_CLOSING_BRACE,r(),0),d.braceNest=0,Y(p,d);if(V=_(p,d))return S=h(d,5,gn(p)),A(p),S;if(U=b(p,d))return S=h(d,6,ft(p)),A(p),S;if(L=T(p,d))return S=h(d,7,jt(p)),A(p),S;if(!V&&!U&&!L)return S=h(d,13,g(p)),f(te.INVALID_TOKEN_IN_PLACEHOLDER,r(),0,S.value),A(p),S;break}}return S}function B(p,d){const{currentType:S}=d;let F=null;const V=p.currentChar();switch((S===8||S===9||S===12||S===10)&&(V===He||V===Dt)&&f(te.INVALID_LINKED_FORMAT,r(),0),V){case"@":return p.next(),F=h(d,8,"@"),d.inLinked=!0,F;case".":return A(p),p.next(),h(d,9,".");case":":return A(p),p.next(),h(d,10,":");default:return R(p)?(F=h(d,1,I(p)),d.braceNest=0,d.inLinked=!1,F):k(p,d)||x(p,d)?(A(p),B(p,d)):E(p,d)?(A(p),h(d,12,w(p))):O(p,d)?(A(p),V==="{"?D(p,d)||F:h(d,11,y(p))):(S===8&&f(te.INVALID_LINKED_FORMAT,r(),0),d.braceNest=0,d.inLinked=!1,Y(p,d))}}function Y(p,d){let S={type:14};if(d.braceNest>0)return D(p,d)||m(d);if(d.inLinked)return B(p,d)||m(d);switch(p.currentChar()){case"{":return D(p,d)||m(d);case"}":return f(te.UNBALANCED_CLOSING_BRACE,r(),0),p.next(),h(d,3,"}");case"@":return B(p,d)||m(d);default:{if(R(p))return S=h(d,1,I(p)),d.braceNest=0,d.inLinked=!1,S;const{isModulo:V,hasSpace:U}=j(p);if(V)return U?h(d,0,rn(p)):h(d,4,on(p));if(K(p))return h(d,0,rn(p));break}}return S}function G(){const{currentType:p,offset:d,startLoc:S,endLoc:F}=l;return l.lastType=p,l.lastOffset=d,l.lastStartLoc=S,l.lastEndLoc=F,l.offset=s(),l.startLoc=r(),o.currentChar()===Zt?h(l,14):Y(o,l)}return{nextToken:G,currentOffset:s,currentPosition:r,context:c}}const Xf="parser",Jf=/(?:\\\\|\\'|\\u([0-9a-fA-F]{4})|\\U([0-9a-fA-F]{6}))/g;function Zf(e,t,n){switch(e){case"\\\\":return"\\";case"\\'":return"'";default:{const o=parseInt(t||n,16);return o<=55295||o>=57344?String.fromCodePoint(o):"�"}}}function Qf(e={}){const t=e.location!==!1,{onError:n,onWarn:o}=e;function s(_,b,T,k,...E){const x=_.currentPosition();if(x.offset+=k,x.column+=k,n){const O=t?rr(T,x):null,R=Ln(b,O,{domain:Xf,args:E});n(R)}}function r(_,b,T,k,...E){const x=_.currentPosition();if(x.offset+=k,x.column+=k,o){const O=t?rr(T,x):null;o(Wf(b,O,E))}}function i(_,b,T){const k={type:_};return t&&(k.start=b,k.end=b,k.loc={start:T,end:T}),k}function a(_,b,T,k){t&&(_.end=b,_.loc&&(_.loc.end=T))}function l(_,b){const T=_.context(),k=i(3,T.offset,T.startLoc);return k.value=b,a(k,_.currentOffset(),_.currentPosition()),k}function c(_,b){const T=_.context(),{lastOffset:k,lastStartLoc:E}=T,x=i(5,k,E);return x.index=parseInt(b,10),_.nextToken(),a(x,_.currentOffset(),_.currentPosition()),x}function u(_,b,T){const k=_.context(),{lastOffset:E,lastStartLoc:x}=k,O=i(4,E,x);return O.key=b,T===!0&&(O.modulo=!0),_.nextToken(),a(O,_.currentOffset(),_.currentPosition()),O}function f(_,b){const T=_.context(),{lastOffset:k,lastStartLoc:E}=T,x=i(9,k,E);return x.value=b.replace(Jf,Zf),_.nextToken(),a(x,_.currentOffset(),_.currentPosition()),x}function h(_){const b=_.nextToken(),T=_.context(),{lastOffset:k,lastStartLoc:E}=T,x=i(8,k,E);return b.type!==12?(s(_,te.UNEXPECTED_EMPTY_LINKED_MODIFIER,T.lastStartLoc,0),x.value="",a(x,k,E),{nextConsumeToken:b,node:x}):(b.value==null&&s(_,te.UNEXPECTED_LEXICAL_ANALYSIS,T.lastStartLoc,0,pt(b)),x.value=b.value||"",a(x,_.currentOffset(),_.currentPosition()),{node:x})}function m(_,b){const T=_.context(),k=i(7,T.offset,T.startLoc);return k.value=b,a(k,_.currentOffset(),_.currentPosition()),k}function v(_){const b=_.context(),T=i(6,b.offset,b.startLoc);let k=_.nextToken();if(k.type===9){const E=h(_);T.modifier=E.node,k=E.nextConsumeToken||_.nextToken()}switch(k.type!==10&&s(_,te.UNEXPECTED_LEXICAL_ANALYSIS,b.lastStartLoc,0,pt(k)),k=_.nextToken(),k.type===2&&(k=_.nextToken()),k.type){case 11:k.value==null&&s(_,te.UNEXPECTED_LEXICAL_ANALYSIS,b.lastStartLoc,0,pt(k)),T.key=m(_,k.value||"");break;case 5:k.value==null&&s(_,te.UNEXPECTED_LEXICAL_ANALYSIS,b.lastStartLoc,0,pt(k)),T.key=u(_,k.value||"");break;case 6:k.value==null&&s(_,te.UNEXPECTED_LEXICAL_ANALYSIS,b.lastStartLoc,0,pt(k)),T.key=c(_,k.value||"");break;case 7:k.value==null&&s(_,te.UNEXPECTED_LEXICAL_ANALYSIS,b.lastStartLoc,0,pt(k)),T.key=f(_,k.value||"");break;default:{s(_,te.UNEXPECTED_EMPTY_LINKED_KEY,b.lastStartLoc,0);const E=_.context(),x=i(7,E.offset,E.startLoc);return x.value="",a(x,E.offset,E.startLoc),T.key=x,a(T,E.offset,E.startLoc),{nextConsumeToken:k,node:T}}}return a(T,_.currentOffset(),_.currentPosition()),{node:T}}function $(_){const b=_.context(),T=b.currentType===1?_.currentOffset():b.offset,k=b.currentType===1?b.endLoc:b.startLoc,E=i(2,T,k);E.items=[];let x=null,O=null;do{const K=x||_.nextToken();switch(x=null,K.type){case 0:K.value==null&&s(_,te.UNEXPECTED_LEXICAL_ANALYSIS,b.lastStartLoc,0,pt(K)),E.items.push(l(_,K.value||""));break;case 6:K.value==null&&s(_,te.UNEXPECTED_LEXICAL_ANALYSIS,b.lastStartLoc,0,pt(K)),E.items.push(c(_,K.value||""));break;case 4:O=!0;break;case 5:K.value==null&&s(_,te.UNEXPECTED_LEXICAL_ANALYSIS,b.lastStartLoc,0,pt(K)),E.items.push(u(_,K.value||"",!!O)),O&&(r(_,os.USE_MODULO_SYNTAX,b.lastStartLoc,0,pt(K)),O=null);break;case 7:K.value==null&&s(_,te.UNEXPECTED_LEXICAL_ANALYSIS,b.lastStartLoc,0,pt(K)),E.items.push(f(_,K.value||""));break;case 8:{const ne=v(_);E.items.push(ne.node),x=ne.nextConsumeToken||null;break}}}while(b.currentType!==14&&b.currentType!==1);const R=b.currentType===1?b.lastOffset:_.currentOffset(),j=b.currentType===1?b.lastEndLoc:_.currentPosition();return a(E,R,j),E}function A(_,b,T,k){const E=_.context();let x=k.items.length===0;const O=i(1,b,T);O.cases=[],O.cases.push(k);do{const R=$(_);x||(x=R.items.length===0),O.cases.push(R)}while(E.currentType!==14);return x&&s(_,te.MUST_HAVE_MESSAGES_IN_PLURAL,T,0),a(O,_.currentOffset(),_.currentPosition()),O}function N(_){const b=_.context(),{offset:T,startLoc:k}=b,E=$(_);return b.currentType===14?E:A(_,T,k,E)}function C(_){const b=Kf(_,xa({},e)),T=b.context(),k=i(0,T.offset,T.startLoc);return t&&k.loc&&(k.loc.source=_),k.body=N(b),e.onCacheKey&&(k.cacheKey=e.onCacheKey(_)),T.currentType!==14&&s(b,te.UNEXPECTED_LEXICAL_ANALYSIS,T.lastStartLoc,0,_[T.offset]||""),a(k,b.currentOffset(),b.currentPosition()),k}return{parse:C}}function pt(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 eh(e,t={}){const n={ast:e,helpers:new Set};return{context:()=>n,helper:r=>(n.helpers.add(r),r)}}function Pa(e,t){for(let n=0;nBa(n)),e}function Ba(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 n=0;ni;function l($,A){i.code+=$}function c($,A=!0){const N=A?o:"";l(s?N+" ".repeat($):N)}function u($=!0){const A=++i.indentLevel;$&&c(A)}function f($=!0){const A=--i.indentLevel;$&&c(A)}function h(){c(i.indentLevel)}return{context:a,push:l,indent:u,deindent:f,newline:h,helper:$=>`_${$}`,needIndent:()=>i.needIndent}}function ih(e,t){const{helper:n}=e;e.push(`${n("linked")}(`),xn(e,t.key),t.modifier?(e.push(", "),xn(e,t.modifier),e.push(", _type")):e.push(", undefined, _type"),e.push(")")}function ah(e,t){const{helper:n,needIndent:o}=e;e.push(`${n("normalize")}([`),e.indent(o());const s=t.items.length;for(let r=0;r1){e.push(`${n("plural")}([`),e.indent(o());const s=t.cases.length;for(let r=0;r{const n=Ia(t.mode)?t.mode:"normal",o=Ia(t.filename)?t.filename:"message.intl";t.sourceMap;const s=t.breakLineCode!=null?t.breakLineCode:n==="arrow"?";":` -`,r=t.needIndent?t.needIndent:n!=="arrow",i=e.helpers||[],a=sh(e,{filename:o,breakLineCode:s,needIndent:r});a.push(n==="normal"?"function __msg__ (ctx) {":"(ctx) => {"),a.indent(r),i.length>0&&(a.push(`const { ${Fa(i.map(u=>`${u}: _${u}`),", ")} } = ctx`),a.newline()),a.push("return "),xn(a,e),a.deindent(r),a.push("}"),delete e.helpers;const{code:l,map:c}=a.context();return{ast:e,code:l,map:c?c.toJSON():void 0}};function ph(e,t={}){const n=xa({},t),o=!!n.jit,s=!!n.minify,r=n.optimize==null?!0:n.optimize,a=Qf(n).parse(e);return o?(r&&nh(a),s&&Sn(a),{ast:a,code:""}):(th(a,n),uh(a,n))}/*! + */function Hg(e,t,n){return{line:e,column:t,offset:n}}function rr(e,t,n){return{start:e,end:t}}const zg=/\{([0-9a-zA-Z]+)\}/g;function xa(e,...t){return t.length===1&&qg(t[0])&&(t=t[0]),(!t||!t.hasOwnProperty)&&(t={}),e.replace(zg,(n,o)=>t.hasOwnProperty(o)?t[o]:"")}const La=Object.assign,Ia=e=>typeof e=="string",qg=e=>e!==null&&typeof e=="object";function Ma(e,t=""){return e.reduce((n,o,s)=>s===0?n+o:n+t+o,"")}const rs={USE_MODULO_SYNTAX:1,__EXTEND_POINT__:2},Kg={[rs.USE_MODULO_SYNTAX]:"Use modulo before '{{0}}'."};function Xg(e,t,...n){const o=xa(Kg[e],...n||[]),s={message:String(o),code:e};return t&&(s.location=t),s}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},Jg={[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 Sn(e,t,n={}){const{domain:o,messages:s,args:r}=n,i=xa((s||Jg)[e]||"",...r||[]),a=new SyntaxError(String(i));return a.code=e,t&&(a.location=t),a.domain=o,a}function Zg(e){throw e}const Bt=" ",Qg="\r",He=` +`,ef="\u2028",tf="\u2029";function nf(e){const t=e;let n=0,o=1,s=1,r=0;const i=E=>t[E]===Qg&&t[E+1]===He,a=E=>t[E]===He,l=E=>t[E]===tf,c=E=>t[E]===ef,u=E=>i(E)||a(E)||l(E)||c(E),g=()=>n,f=()=>o,_=()=>s,v=()=>r,k=E=>i(E)||l(E)||c(E)?He:t[E],O=()=>k(n),P=()=>k(n+r);function N(){return r=0,u(n)&&(o++,s=0),i(n)&&n++,n++,s++,t[n]}function h(){return i(n+r)&&r++,r++,t[n+r]}function b(){n=0,o=1,s=1,r=0}function A(E=0){r=E}function C(){const E=n+r;for(;E!==n;)N();r=0}return{index:g,line:f,column:_,peekOffset:v,charAt:k,currentChar:O,currentPeek:P,next:N,peek:h,reset:b,resetPeek:A,skipToPeek:C}}const Zt=void 0,of=".",Ra="'",rf="tokenizer";function sf(e,t={}){const n=t.location!==!1,o=nf(e),s=()=>o.index(),r=()=>Hg(o.line(),o.column(),o.index()),i=r(),a=s(),l={currentType:14,offset:a,startLoc:i,endLoc:i,lastType:14,lastOffset:a,lastStartLoc:i,lastEndLoc:i,braceNest:0,inLinked:!1,text:""},c=()=>l,{onError:u}=t;function g(p,d,S,...L){const Y=c();if(d.column+=S,d.offset+=S,u){const G=n?rr(Y.startLoc,d):null,T=Sn(p,G,{domain:rf,args:L});u(T)}}function f(p,d,S){p.endLoc=r(),p.currentType=d;const L={type:d};return n&&(L.loc=rr(p.startLoc,p.endLoc)),S!=null&&(L.value=S),L}const _=p=>f(p,14);function v(p,d){return p.currentChar()===d?(p.next(),d):(g(te.EXPECTED_TOKEN,r(),0,d),"")}function k(p){let d="";for(;p.currentPeek()===Bt||p.currentPeek()===He;)d+=p.currentPeek(),p.peek();return d}function O(p){const d=k(p);return p.skipToPeek(),d}function P(p){if(p===Zt)return!1;const d=p.charCodeAt(0);return d>=97&&d<=122||d>=65&&d<=90||d===95}function N(p){if(p===Zt)return!1;const d=p.charCodeAt(0);return d>=48&&d<=57}function h(p,d){const{currentType:S}=d;if(S!==2)return!1;k(p);const L=P(p.currentPeek());return p.resetPeek(),L}function b(p,d){const{currentType:S}=d;if(S!==2)return!1;k(p);const L=p.currentPeek()==="-"?p.peek():p.currentPeek(),Y=N(L);return p.resetPeek(),Y}function A(p,d){const{currentType:S}=d;if(S!==2)return!1;k(p);const L=p.currentPeek()===Ra;return p.resetPeek(),L}function C(p,d){const{currentType:S}=d;if(S!==8)return!1;k(p);const L=p.currentPeek()===".";return p.resetPeek(),L}function E(p,d){const{currentType:S}=d;if(S!==9)return!1;k(p);const L=P(p.currentPeek());return p.resetPeek(),L}function F(p,d){const{currentType:S}=d;if(!(S===8||S===12))return!1;k(p);const L=p.currentPeek()===":";return p.resetPeek(),L}function $(p,d){const{currentType:S}=d;if(S!==10)return!1;const L=()=>{const G=p.currentPeek();return G==="{"?P(p.peek()):G==="@"||G==="%"||G==="|"||G===":"||G==="."||G===Bt||!G?!1:G===He?(p.peek(),L()):K(p,!1)},Y=L();return p.resetPeek(),Y}function D(p){k(p);const d=p.currentPeek()==="|";return p.resetPeek(),d}function U(p){const d=k(p),S=p.currentPeek()==="%"&&p.peek()==="{";return p.resetPeek(),{isModulo:S,hasSpace:d.length>0}}function K(p,d=!0){const S=(Y=!1,G="",T=!1)=>{const M=p.currentPeek();return M==="{"?G==="%"?!1:Y:M==="@"||!M?G==="%"?!0:Y:M==="%"?(p.peek(),S(Y,"%",!0)):M==="|"?G==="%"||T?!0:!(G===Bt||G===He):M===Bt?(p.peek(),S(!0,Bt,T)):M===He?(p.peek(),S(!0,He,T)):!0},L=S();return d&&p.resetPeek(),L}function ne(p,d){const S=p.currentChar();return S===Zt?Zt:d(S)?(p.next(),S):null}function ue(p){const d=p.charCodeAt(0);return d>=97&&d<=122||d>=65&&d<=90||d>=48&&d<=57||d===95||d===36}function q(p){return ne(p,ue)}function W(p){const d=p.charCodeAt(0);return d>=97&&d<=122||d>=65&&d<=90||d>=48&&d<=57||d===95||d===36||d===45}function X(p){return ne(p,W)}function le(p){const d=p.charCodeAt(0);return d>=48&&d<=57}function Ee(p){return ne(p,le)}function Ot(p){const d=p.charCodeAt(0);return d>=48&&d<=57||d>=65&&d<=70||d>=97&&d<=102}function xe(p){return ne(p,Ot)}function Re(p){let d="",S="";for(;d=Ee(p);)S+=d;return S}function on(p){O(p);const d=p.currentChar();return d!=="%"&&g(te.EXPECTED_TOKEN,r(),0,d),p.next(),"%"}function rn(p){let d="";for(;;){const S=p.currentChar();if(S==="{"||S==="}"||S==="@"||S==="|"||!S)break;if(S==="%")if(K(p))d+=S,p.next();else break;else if(S===Bt||S===He)if(K(p))d+=S,p.next();else{if(D(p))break;d+=S,p.next()}else d+=S,p.next()}return d}function hn(p){O(p);let d="",S="";for(;d=X(p);)S+=d;return p.currentChar()===Zt&&g(te.UNTERMINATED_CLOSING_BRACE,r(),0),S}function gt(p){O(p);let d="";return p.currentChar()==="-"?(p.next(),d+=`-${Re(p)}`):d+=Re(p),p.currentChar()===Zt&&g(te.UNTERMINATED_CLOSING_BRACE,r(),0),d}function Gt(p){return p!==Ra&&p!==He}function Ut(p){O(p),v(p,"'");let d="",S="";for(;d=ne(p,Gt);)d==="\\"?S+=sn(p):S+=d;const L=p.currentChar();return L===He||L===Zt?(g(te.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER,r(),0),L===He&&(p.next(),v(p,"'")),S):(v(p,"'"),S)}function sn(p){const d=p.currentChar();switch(d){case"\\":case"'":return p.next(),`\\${d}`;case"u":return st(p,d,4);case"U":return st(p,d,6);default:return g(te.UNKNOWN_ESCAPE_SEQUENCE,r(),0,d),""}}function st(p,d,S){v(p,d);let L="";for(let Y=0;Y{const L=p.currentChar();return L==="{"||L==="%"||L==="@"||L==="|"||L==="("||L===")"||!L||L===Bt?S:(S+=L,p.next(),d(S))};return d("")}function x(p){O(p);const d=v(p,"|");return O(p),d}function B(p,d){let S=null;switch(p.currentChar()){case"{":return d.braceNest>=1&&g(te.NOT_ALLOW_NEST_PLACEHOLDER,r(),0),p.next(),S=f(d,2,"{"),O(p),d.braceNest++,S;case"}":return d.braceNest>0&&d.currentType===2&&g(te.EMPTY_PLACEHOLDER,r(),0),p.next(),S=f(d,3,"}"),d.braceNest--,d.braceNest>0&&O(p),d.inLinked&&d.braceNest===0&&(d.inLinked=!1),S;case"@":return d.braceNest>0&&g(te.UNTERMINATED_CLOSING_BRACE,r(),0),S=R(p,d)||_(d),d.braceNest=0,S;default:{let Y=!0,G=!0,T=!0;if(D(p))return d.braceNest>0&&g(te.UNTERMINATED_CLOSING_BRACE,r(),0),S=f(d,1,x(p)),d.braceNest=0,d.inLinked=!1,S;if(d.braceNest>0&&(d.currentType===5||d.currentType===6||d.currentType===7))return g(te.UNTERMINATED_CLOSING_BRACE,r(),0),d.braceNest=0,V(p,d);if(Y=h(p,d))return S=f(d,5,hn(p)),O(p),S;if(G=b(p,d))return S=f(d,6,gt(p)),O(p),S;if(T=A(p,d))return S=f(d,7,Ut(p)),O(p),S;if(!Y&&!G&&!T)return S=f(d,13,m(p)),g(te.INVALID_TOKEN_IN_PLACEHOLDER,r(),0,S.value),O(p),S;break}}return S}function R(p,d){const{currentType:S}=d;let L=null;const Y=p.currentChar();switch((S===8||S===9||S===12||S===10)&&(Y===He||Y===Bt)&&g(te.INVALID_LINKED_FORMAT,r(),0),Y){case"@":return p.next(),L=f(d,8,"@"),d.inLinked=!0,L;case".":return O(p),p.next(),f(d,9,".");case":":return O(p),p.next(),f(d,10,":");default:return D(p)?(L=f(d,1,x(p)),d.braceNest=0,d.inLinked=!1,L):C(p,d)||F(p,d)?(O(p),R(p,d)):E(p,d)?(O(p),f(d,12,w(p))):$(p,d)?(O(p),Y==="{"?B(p,d)||L:f(d,11,y(p))):(S===8&&g(te.INVALID_LINKED_FORMAT,r(),0),d.braceNest=0,d.inLinked=!1,V(p,d))}}function V(p,d){let S={type:14};if(d.braceNest>0)return B(p,d)||_(d);if(d.inLinked)return R(p,d)||_(d);switch(p.currentChar()){case"{":return B(p,d)||_(d);case"}":return g(te.UNBALANCED_CLOSING_BRACE,r(),0),p.next(),f(d,3,"}");case"@":return R(p,d)||_(d);default:{if(D(p))return S=f(d,1,x(p)),d.braceNest=0,d.inLinked=!1,S;const{isModulo:Y,hasSpace:G}=U(p);if(Y)return G?f(d,0,rn(p)):f(d,4,on(p));if(K(p))return f(d,0,rn(p));break}}return S}function j(){const{currentType:p,offset:d,startLoc:S,endLoc:L}=l;return l.lastType=p,l.lastOffset=d,l.lastStartLoc=S,l.lastEndLoc=L,l.offset=s(),l.startLoc=r(),o.currentChar()===Zt?f(l,14):V(o,l)}return{nextToken:j,currentOffset:s,currentPosition:r,context:c}}const af="parser",lf=/(?:\\\\|\\'|\\u([0-9a-fA-F]{4})|\\U([0-9a-fA-F]{6}))/g;function cf(e,t,n){switch(e){case"\\\\":return"\\";case"\\'":return"'";default:{const o=parseInt(t||n,16);return o<=55295||o>=57344?String.fromCodePoint(o):"�"}}}function uf(e={}){const t=e.location!==!1,{onError:n,onWarn:o}=e;function s(h,b,A,C,...E){const F=h.currentPosition();if(F.offset+=C,F.column+=C,n){const $=t?rr(A,F):null,D=Sn(b,$,{domain:af,args:E});n(D)}}function r(h,b,A,C,...E){const F=h.currentPosition();if(F.offset+=C,F.column+=C,o){const $=t?rr(A,F):null;o(Xg(b,$,E))}}function i(h,b,A){const C={type:h};return t&&(C.start=b,C.end=b,C.loc={start:A,end:A}),C}function a(h,b,A,C){t&&(h.end=b,h.loc&&(h.loc.end=A))}function l(h,b){const A=h.context(),C=i(3,A.offset,A.startLoc);return C.value=b,a(C,h.currentOffset(),h.currentPosition()),C}function c(h,b){const A=h.context(),{lastOffset:C,lastStartLoc:E}=A,F=i(5,C,E);return F.index=parseInt(b,10),h.nextToken(),a(F,h.currentOffset(),h.currentPosition()),F}function u(h,b,A){const C=h.context(),{lastOffset:E,lastStartLoc:F}=C,$=i(4,E,F);return $.key=b,A===!0&&($.modulo=!0),h.nextToken(),a($,h.currentOffset(),h.currentPosition()),$}function g(h,b){const A=h.context(),{lastOffset:C,lastStartLoc:E}=A,F=i(9,C,E);return F.value=b.replace(lf,cf),h.nextToken(),a(F,h.currentOffset(),h.currentPosition()),F}function f(h){const b=h.nextToken(),A=h.context(),{lastOffset:C,lastStartLoc:E}=A,F=i(8,C,E);return b.type!==12?(s(h,te.UNEXPECTED_EMPTY_LINKED_MODIFIER,A.lastStartLoc,0),F.value="",a(F,C,E),{nextConsumeToken:b,node:F}):(b.value==null&&s(h,te.UNEXPECTED_LEXICAL_ANALYSIS,A.lastStartLoc,0,pt(b)),F.value=b.value||"",a(F,h.currentOffset(),h.currentPosition()),{node:F})}function _(h,b){const A=h.context(),C=i(7,A.offset,A.startLoc);return C.value=b,a(C,h.currentOffset(),h.currentPosition()),C}function v(h){const b=h.context(),A=i(6,b.offset,b.startLoc);let C=h.nextToken();if(C.type===9){const E=f(h);A.modifier=E.node,C=E.nextConsumeToken||h.nextToken()}switch(C.type!==10&&s(h,te.UNEXPECTED_LEXICAL_ANALYSIS,b.lastStartLoc,0,pt(C)),C=h.nextToken(),C.type===2&&(C=h.nextToken()),C.type){case 11:C.value==null&&s(h,te.UNEXPECTED_LEXICAL_ANALYSIS,b.lastStartLoc,0,pt(C)),A.key=_(h,C.value||"");break;case 5:C.value==null&&s(h,te.UNEXPECTED_LEXICAL_ANALYSIS,b.lastStartLoc,0,pt(C)),A.key=u(h,C.value||"");break;case 6:C.value==null&&s(h,te.UNEXPECTED_LEXICAL_ANALYSIS,b.lastStartLoc,0,pt(C)),A.key=c(h,C.value||"");break;case 7:C.value==null&&s(h,te.UNEXPECTED_LEXICAL_ANALYSIS,b.lastStartLoc,0,pt(C)),A.key=g(h,C.value||"");break;default:{s(h,te.UNEXPECTED_EMPTY_LINKED_KEY,b.lastStartLoc,0);const E=h.context(),F=i(7,E.offset,E.startLoc);return F.value="",a(F,E.offset,E.startLoc),A.key=F,a(A,E.offset,E.startLoc),{nextConsumeToken:C,node:A}}}return a(A,h.currentOffset(),h.currentPosition()),{node:A}}function k(h){const b=h.context(),A=b.currentType===1?h.currentOffset():b.offset,C=b.currentType===1?b.endLoc:b.startLoc,E=i(2,A,C);E.items=[];let F=null,$=null;do{const K=F||h.nextToken();switch(F=null,K.type){case 0:K.value==null&&s(h,te.UNEXPECTED_LEXICAL_ANALYSIS,b.lastStartLoc,0,pt(K)),E.items.push(l(h,K.value||""));break;case 6:K.value==null&&s(h,te.UNEXPECTED_LEXICAL_ANALYSIS,b.lastStartLoc,0,pt(K)),E.items.push(c(h,K.value||""));break;case 4:$=!0;break;case 5:K.value==null&&s(h,te.UNEXPECTED_LEXICAL_ANALYSIS,b.lastStartLoc,0,pt(K)),E.items.push(u(h,K.value||"",!!$)),$&&(r(h,rs.USE_MODULO_SYNTAX,b.lastStartLoc,0,pt(K)),$=null);break;case 7:K.value==null&&s(h,te.UNEXPECTED_LEXICAL_ANALYSIS,b.lastStartLoc,0,pt(K)),E.items.push(g(h,K.value||""));break;case 8:{const ne=v(h);E.items.push(ne.node),F=ne.nextConsumeToken||null;break}}}while(b.currentType!==14&&b.currentType!==1);const D=b.currentType===1?b.lastOffset:h.currentOffset(),U=b.currentType===1?b.lastEndLoc:h.currentPosition();return a(E,D,U),E}function O(h,b,A,C){const E=h.context();let F=C.items.length===0;const $=i(1,b,A);$.cases=[],$.cases.push(C);do{const D=k(h);F||(F=D.items.length===0),$.cases.push(D)}while(E.currentType!==14);return F&&s(h,te.MUST_HAVE_MESSAGES_IN_PLURAL,A,0),a($,h.currentOffset(),h.currentPosition()),$}function P(h){const b=h.context(),{offset:A,startLoc:C}=b,E=k(h);return b.currentType===14?E:O(h,A,C,E)}function N(h){const b=sf(h,La({},e)),A=b.context(),C=i(0,A.offset,A.startLoc);return t&&C.loc&&(C.loc.source=h),C.body=P(b),e.onCacheKey&&(C.cacheKey=e.onCacheKey(h)),A.currentType!==14&&s(b,te.UNEXPECTED_LEXICAL_ANALYSIS,A.lastStartLoc,0,h[A.offset]||""),a(C,b.currentOffset(),b.currentPosition()),C}return{parse:N}}function pt(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 pf(e,t={}){const n={ast:e,helpers:new Set};return{context:()=>n,helper:r=>(n.helpers.add(r),r)}}function Ba(e,t){for(let n=0;nDa(n)),e}function Da(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 n=0;ni;function l(k,O){i.code+=k}function c(k,O=!0){const P=O?o:"";l(s?P+" ".repeat(k):P)}function u(k=!0){const O=++i.indentLevel;k&&c(O)}function g(k=!0){const O=--i.indentLevel;k&&c(O)}function f(){c(i.indentLevel)}return{context:a,push:l,indent:u,deindent:g,newline:f,helper:k=>`_${k}`,needIndent:()=>i.needIndent}}function _f(e,t){const{helper:n}=e;e.push(`${n("linked")}(`),Fn(e,t.key),t.modifier?(e.push(", "),Fn(e,t.modifier),e.push(", _type")):e.push(", undefined, _type"),e.push(")")}function bf(e,t){const{helper:n,needIndent:o}=e;e.push(`${n("normalize")}([`),e.indent(o());const s=t.items.length;for(let r=0;r1){e.push(`${n("plural")}([`),e.indent(o());const s=t.cases.length;for(let r=0;r{const n=Ia(t.mode)?t.mode:"normal",o=Ia(t.filename)?t.filename:"message.intl";t.sourceMap;const s=t.breakLineCode!=null?t.breakLineCode:n==="arrow"?";":` +`,r=t.needIndent?t.needIndent:n!=="arrow",i=e.helpers||[],a=mf(e,{filename:o,breakLineCode:s,needIndent:r});a.push(n==="normal"?"function __msg__ (ctx) {":"(ctx) => {"),a.indent(r),i.length>0&&(a.push(`const { ${Ma(i.map(u=>`${u}: _${u}`),", ")} } = ctx`),a.newline()),a.push("return "),Fn(a,e),a.deindent(r),a.push("}"),delete e.helpers;const{code:l,map:c}=a.context();return{ast:e,code:l,map:c?c.toJSON():void 0}};function $f(e,t={}){const n=La({},t),o=!!n.jit,s=!!n.minify,r=n.optimize==null?!0:n.optimize,a=uf(n).parse(e);return o?(r&&gf(a),s&&Pn(a),{ast:a,code:""}):(df(a,n),wf(a,n))}/*! * core-base v9.14.5 * (c) 2025 kazuya kawaguchi * Released under the MIT License. - */function dh(){typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(Bt().__INTLIFY_PROD_DEVTOOLS__=!1),typeof __INTLIFY_JIT_COMPILATION__!="boolean"&&(Bt().__INTLIFY_JIT_COMPILATION__=!1),typeof __INTLIFY_DROP_MESSAGE_COMPILER__!="boolean"&&(Bt().__INTLIFY_DROP_MESSAGE_COMPILER__=!1)}function $t(e){return fe(e)&&ss(e)===0&&(ut(e,"b")||ut(e,"body"))}const Da=["b","body"];function fh(e){return Qt(e,Da)}const Ra=["c","cases"];function hh(e){return Qt(e,Ra,[])}const Wa=["s","static"];function gh(e){return Qt(e,Wa)}const Ua=["i","items"];function mh(e){return Qt(e,Ua,[])}const ja=["t","type"];function ss(e){return Qt(e,ja)}const Ga=["v","value"];function sr(e,t){const n=Qt(e,Ga);if(n!=null)return n;throw lo(t)}const Ya=["m","modifier"];function _h(e){return Qt(e,Ya)}const Va=["k","key"];function bh(e){const t=Qt(e,Va);if(t)return t;throw lo(6)}function Qt(e,t,n){for(let o=0;o{i===void 0?i=a:i+=a},h[1]=()=>{i!==void 0&&(t.push(i),i=void 0)},h[2]=()=>{h[0](),s++},h[3]=()=>{if(s>0)s--,o=4,h[0]();else{if(s=0,i===void 0||(i=$h(i),i===!1))return!1;h[1]()}};function m(){const v=e[n+1];if(o===5&&v==="'"||o===6&&v==='"')return n++,a="\\"+v,h[0](),!0}for(;o!==null;)if(n++,r=e[n],!(r==="\\"&&m())){if(l=kh(r),f=en[o],c=f[l]||f.l||8,c===8||(o=c[0],c[1]!==void 0&&(u=h[c[1]],u&&(a=r,u()===!1))))return;if(o===7)return t}}const qa=new Map;function Nh(e,t){return fe(e)?e[t]:null}function Ch(e,t){if(!fe(e))return null;let n=qa.get(t);if(n||(n=Oh(t),n&&qa.set(t,n)),!n)return null;const o=n.length;let s=e,r=0;for(;re,Eh=e=>"",Th="text",Lh=e=>e.length===0?"":Mf(e),Sh=Ff;function za(e,t){return e=Math.abs(e),t===2?e?e>1?1:0:1:e?Math.min(e,2):0}function xh(e){const t=Ae(e.pluralIndex)?e.pluralIndex:-1;return e.named&&(Ae(e.named.count)||Ae(e.named.n))?Ae(e.named.count)?e.named.count:Ae(e.named.n)?e.named.n:t:t}function Ih(e,t){t.count||(t.count=e),t.n||(t.n=e)}function Fh(e={}){const t=e.locale,n=xh(e),o=fe(e.pluralRules)&&q(t)&&we(e.pluralRules[t])?e.pluralRules[t]:za,s=fe(e.pluralRules)&&q(t)&&we(e.pluralRules[t])?za:void 0,r=N=>N[o(n,N.length,s)],i=e.list||[],a=N=>i[N],l=e.named||me();Ae(e.pluralIndex)&&Ih(n,l);const c=N=>l[N];function u(N){const C=we(e.messages)?e.messages(N):fe(e.messages)?e.messages[N]:!1;return C||(e.parent?e.parent.message(N):Eh)}const f=N=>e.modifiers?e.modifiers[N]:Ah,h=se(e.processor)&&we(e.processor.normalize)?e.processor.normalize:Lh,m=se(e.processor)&&we(e.processor.interpolate)?e.processor.interpolate:Sh,v=se(e.processor)&&q(e.processor.type)?e.processor.type:Th,A={list:a,named:c,plural:r,linked:(N,...C)=>{const[_,b]=C;let T="text",k="";C.length===1?fe(_)?(k=_.modifier||k,T=_.type||T):q(_)&&(k=_||k):C.length===2&&(q(_)&&(k=_||k),q(b)&&(T=b||T));const E=u(N)(A),x=T==="vnode"&&Oe(E)&&k?E[0]:E;return k?f(k)(x,T):x},message:u,type:v,interpolate:m,normalize:h,values:We(me(),i,l)};return A}let co=null;function Mh(e){co=e}function Ph(e,t,n){co&&co.emit("i18n:init",{timestamp:Date.now(),i18n:e,version:t,meta:n})}const Bh=Dh("function:translate");function Dh(e){return t=>co&&co.emit(e,t)}const Rh=os.__EXTEND_POINT__,fn=tr(Rh),Wh={FALLBACK_TO_TRANSLATE:fn(),CANNOT_FORMAT_NUMBER:fn(),FALLBACK_TO_NUMBER_FORMAT:fn(),CANNOT_FORMAT_DATE:fn(),FALLBACK_TO_DATE_FORMAT:fn(),EXPERIMENTAL_CUSTOM_MESSAGE_COMPILER:fn(),__EXTEND_POINT__:fn()},Ka=te.__EXTEND_POINT__,hn=tr(Ka),dt={INVALID_ARGUMENT:Ka,INVALID_DATE_ARGUMENT:hn(),INVALID_ISO_DATE_ARGUMENT:hn(),NOT_SUPPORT_NON_STRING_MESSAGE:hn(),NOT_SUPPORT_LOCALE_PROMISE_VALUE:hn(),NOT_SUPPORT_LOCALE_ASYNC_FUNCTION:hn(),NOT_SUPPORT_LOCALE_TYPE:hn(),__EXTEND_POINT__:hn()};function Ot(e){return Ln(e,null,void 0)}function is(e,t){return t.locale!=null?Xa(t.locale):Xa(e.locale)}let as;function Xa(e){if(q(e))return e;if(we(e)){if(e.resolvedOnce&&as!=null)return as;if(e.constructor.name==="Function"){const t=e();if(If(t))throw Ot(dt.NOT_SUPPORT_LOCALE_PROMISE_VALUE);return as=t}else throw Ot(dt.NOT_SUPPORT_LOCALE_ASYNC_FUNCTION)}else throw Ot(dt.NOT_SUPPORT_LOCALE_TYPE)}function Uh(e,t,n){return[...new Set([n,...Oe(t)?t:fe(t)?Object.keys(t):q(t)?[t]:[n]])]}function Ja(e,t,n){const o=q(n)?n:In,s=e;s.__localeChainCache||(s.__localeChainCache=new Map);let r=s.__localeChainCache.get(o);if(!r){r=[];let i=[n];for(;Oe(i);)i=Za(r,i,t);const a=Oe(t)||!se(t)?t:t.default?t.default:null;i=q(a)?[a]:a,Oe(i)&&Za(r,i,!1),s.__localeChainCache.set(o,r)}return r}function Za(e,t,n){let o=!0;for(let s=0;s`${e.charAt(0).toLocaleUpperCase()}${e.substr(1)}`;function Vh(){return{upper:(e,t)=>t==="text"&&q(e)?e.toUpperCase():t==="vnode"&&fe(e)&&"__v_isVNode"in e?e.children.toUpperCase():e,lower:(e,t)=>t==="text"&&q(e)?e.toLowerCase():t==="vnode"&&fe(e)&&"__v_isVNode"in e?e.children.toLowerCase():e,capitalize:(e,t)=>t==="text"&&q(e)?el(e):t==="vnode"&&fe(e)&&"__v_isVNode"in e?el(e.children):e}}let tl;function nl(e){tl=e}let ol;function Hh(e){ol=e}let rl;function qh(e){rl=e}let sl=null;const zh=e=>{sl=e},Kh=()=>sl;let il=null;const al=e=>{il=e},Xh=()=>il;let ll=0;function Jh(e={}){const t=we(e.onWarn)?e.onWarn:Cf,n=q(e.version)?e.version:Yh,o=q(e.locale)||we(e.locale)?e.locale:In,s=we(o)?In:o,r=Oe(e.fallbackLocale)||se(e.fallbackLocale)||q(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:s,i=se(e.messages)?e.messages:ls(s),a=se(e.datetimeFormats)?e.datetimeFormats:ls(s),l=se(e.numberFormats)?e.numberFormats:ls(s),c=We(me(),e.modifiers,Vh()),u=e.pluralRules||me(),f=we(e.missing)?e.missing:null,h=ce(e.missingWarn)||Jt(e.missingWarn)?e.missingWarn:!0,m=ce(e.fallbackWarn)||Jt(e.fallbackWarn)?e.fallbackWarn:!0,v=!!e.fallbackFormat,$=!!e.unresolving,A=we(e.postTranslation)?e.postTranslation:null,N=se(e.processor)?e.processor:null,C=ce(e.warnHtmlMessage)?e.warnHtmlMessage:!0,_=!!e.escapeParameter,b=we(e.messageCompiler)?e.messageCompiler:tl,T=we(e.messageResolver)?e.messageResolver:ol||Nh,k=we(e.localeFallbacker)?e.localeFallbacker:rl||Uh,E=fe(e.fallbackContext)?e.fallbackContext:void 0,x=e,O=fe(x.__datetimeFormatters)?x.__datetimeFormatters:new Map,R=fe(x.__numberFormatters)?x.__numberFormatters:new Map,j=fe(x.__meta)?x.__meta:{};ll++;const K={version:n,cid:ll,locale:o,fallbackLocale:r,messages:i,modifiers:c,pluralRules:u,missing:f,missingWarn:h,fallbackWarn:m,fallbackFormat:v,unresolving:$,postTranslation:A,processor:N,warnHtmlMessage:C,escapeParameter:_,messageCompiler:b,messageResolver:T,localeFallbacker:k,fallbackContext:E,onWarn:t,__meta:j};return K.datetimeFormats=a,K.numberFormats=l,K.__datetimeFormatters=O,K.__numberFormatters=R,__INTLIFY_PROD_DEVTOOLS__&&Ph(K,n,j),K}const ls=e=>({[e]:me()});function cs(e,t,n,o,s){const{missing:r,onWarn:i}=e;if(r!==null){const a=r(e,n,t,s);return q(a)?a:t}else return t}function uo(e,t,n){const o=e;o.__localeChainCache=new Map,e.localeFallbacker(e,n,t)}function Zh(e,t){return e===t?!1:e.split("-")[0]===t.split("-")[0]}function Qh(e,t){const n=t.indexOf(e);if(n===-1)return!1;for(let o=n+1;oeg(n,e)}function eg(e,t){const n=fh(t);if(n==null)throw lo(0);if(ss(n)===1){const r=hh(n);return e.plural(r.reduce((i,a)=>[...i,cl(e,a)],[]))}else return cl(e,n)}function cl(e,t){const n=gh(t);if(n!=null)return e.type==="text"?n:e.normalize([n]);{const o=mh(t).reduce((s,r)=>[...s,ps(e,r)],[]);return e.normalize(o)}}function ps(e,t){const n=ss(t);switch(n){case 3:return sr(t,n);case 9:return sr(t,n);case 4:{const o=t;if(ut(o,"k")&&o.k)return e.interpolate(e.named(o.k));if(ut(o,"key")&&o.key)return e.interpolate(e.named(o.key));throw lo(n)}case 5:{const o=t;if(ut(o,"i")&&Ae(o.i))return e.interpolate(e.list(o.i));if(ut(o,"index")&&Ae(o.index))return e.interpolate(e.list(o.index));throw lo(n)}case 6:{const o=t,s=_h(o),r=bh(o);return e.linked(ps(e,r),s?ps(e,s):void 0,e.type)}case 7:return sr(t,n);case 8:return sr(t,n);default:throw new Error(`unhandled node on format message part: ${n}`)}}const ul=e=>e;let Fn=me();function pl(e,t={}){let n=!1;const o=t.onError||jf;return t.onError=s=>{n=!0,o(s)},{...ph(e,t),detectError:n}}const tg=(e,t)=>{if(!q(e))throw Ot(dt.NOT_SUPPORT_NON_STRING_MESSAGE);{ce(t.warnHtmlMessage)&&t.warnHtmlMessage;const o=(t.onCacheKey||ul)(e),s=Fn[o];if(s)return s;const{code:r,detectError:i}=pl(e,t),a=new Function(`return ${r}`)();return i?a:Fn[o]=a}};function ng(e,t){if(__INTLIFY_JIT_COMPILATION__&&!__INTLIFY_DROP_MESSAGE_COMPILER__&&q(e)){ce(t.warnHtmlMessage)&&t.warnHtmlMessage;const o=(t.onCacheKey||ul)(e),s=Fn[o];if(s)return s;const{ast:r,detectError:i}=pl(e,{...t,location:!1,jit:!0}),a=us(r);return i?a:Fn[o]=a}else{const n=e.cacheKey;if(n){const o=Fn[n];return o||(Fn[n]=us(e))}else return us(e)}}const dl=()=>"",rt=e=>we(e);function fl(e,...t){const{fallbackFormat:n,postTranslation:o,unresolving:s,messageCompiler:r,fallbackLocale:i,messages:a}=e,[l,c]=ds(...t),u=ce(c.missingWarn)?c.missingWarn:e.missingWarn,f=ce(c.fallbackWarn)?c.fallbackWarn:e.fallbackWarn,h=ce(c.escapeParameter)?c.escapeParameter:e.escapeParameter,m=!!c.resolvedMessage,v=q(c.default)||ce(c.default)?ce(c.default)?r?l:()=>l:c.default:n?r?l:()=>l:"",$=n||v!=="",A=is(e,c);h&&og(c);let[N,C,_]=m?[l,A,a[A]||me()]:hl(e,l,A,i,f,u),b=N,T=l;if(!m&&!(q(b)||$t(b)||rt(b))&&$&&(b=v,T=b),!m&&(!(q(b)||$t(b)||rt(b))||!q(C)))return s?ir:l;let k=!1;const E=()=>{k=!0},x=rt(b)?b:gl(e,l,C,b,T,E);if(k)return b;const O=ig(e,C,_,c),R=Fh(O),j=rg(e,x,R);let K=o?o(j,l):j;if(h&&q(K)&&(K=Sf(K)),__INTLIFY_PROD_DEVTOOLS__){const ne={timestamp:Date.now(),key:q(l)?l:rt(b)?b.key:"",locale:C||(rt(b)?b.locale:""),format:q(b)?b:rt(b)?b.source:"",message:K};ne.meta=We({},e.__meta,Kh()||{}),Bh(ne)}return K}function og(e){Oe(e.list)?e.list=e.list.map(t=>q(t)?Aa(t):t):fe(e.named)&&Object.keys(e.named).forEach(t=>{q(e.named[t])&&(e.named[t]=Aa(e.named[t]))})}function hl(e,t,n,o,s,r){const{messages:i,onWarn:a,messageResolver:l,localeFallbacker:c}=e,u=c(e,o,n);let f=me(),h,m=null;const v="translate";for(let $=0;$o;return c.locale=n,c.key=t,c}const l=i(o,sg(e,n,s,o,a,r));return l.locale=n,l.key=t,l.source=o,l}function rg(e,t,n){return t(n)}function ds(...e){const[t,n,o]=e,s=me();if(!q(t)&&!Ae(t)&&!rt(t)&&!$t(t))throw Ot(dt.INVALID_ARGUMENT);const r=Ae(t)?String(t):(rt(t),t);return Ae(n)?s.plural=n:q(n)?s.default=n:se(n)&&!er(n)?s.named=n:Oe(n)&&(s.list=n),Ae(o)?s.plural=o:q(o)?s.default=o:se(o)&&We(s,o),[r,s]}function sg(e,t,n,o,s,r){return{locale:t,key:n,warnHtmlMessage:s,onError:i=>{throw r&&r(i),i},onCacheKey:i=>Af(t,n,i)}}function ig(e,t,n,o){const{modifiers:s,pluralRules:r,messageResolver:i,fallbackLocale:a,fallbackWarn:l,missingWarn:c,fallbackContext:u}=e,h={locale:t,modifiers:s,pluralRules:r,messages:m=>{let v=i(n,m);if(v==null&&u){const[,,$]=hl(u,m,t,a,l,c);v=i($,m)}if(q(v)||$t(v)){let $=!1;const N=gl(e,m,t,v,m,()=>{$=!0});return $?dl:N}else return rt(v)?v:dl}};return e.processor&&(h.processor=e.processor),o.list&&(h.list=o.list),o.named&&(h.named=o.named),Ae(o.plural)&&(h.pluralIndex=o.plural),h}function ml(e,...t){const{datetimeFormats:n,unresolving:o,fallbackLocale:s,onWarn:r,localeFallbacker:i}=e,{__datetimeFormatters:a}=e,[l,c,u,f]=fs(...t),h=ce(u.missingWarn)?u.missingWarn:e.missingWarn;ce(u.fallbackWarn)?u.fallbackWarn:e.fallbackWarn;const m=!!u.part,v=is(e,u),$=i(e,s,v);if(!q(l)||l==="")return new Intl.DateTimeFormat(v,f).format(c);let A={},N,C=null;const _="datetime format";for(let k=0;k<$.length&&(N=$[k],A=n[N]||{},C=A[l],!se(C));k++)cs(e,l,N,h,_);if(!se(C)||!q(N))return o?ir:l;let b=`${N}__${l}`;er(f)||(b=`${b}__${JSON.stringify(f)}`);let T=a.get(b);return T||(T=new Intl.DateTimeFormat(N,We({},C,f)),a.set(b,T)),m?T.formatToParts(c):T.format(c)}const _l=["localeMatcher","weekday","era","year","month","day","hour","minute","second","timeZoneName","formatMatcher","hour12","timeZone","dateStyle","timeStyle","calendar","dayPeriod","numberingSystem","hourCycle","fractionalSecondDigits"];function fs(...e){const[t,n,o,s]=e,r=me();let i=me(),a;if(q(t)){const l=t.match(/(\d{4}-\d{2}-\d{2})(T|\s)?(.*)/);if(!l)throw Ot(dt.INVALID_ISO_DATE_ARGUMENT);const c=l[3]?l[3].trim().startsWith("T")?`${l[1].trim()}${l[3].trim()}`:`${l[1].trim()}T${l[3].trim()}`:l[1].trim();a=new Date(c);try{a.toISOString()}catch{throw Ot(dt.INVALID_ISO_DATE_ARGUMENT)}}else if(Tf(t)){if(isNaN(t.getTime()))throw Ot(dt.INVALID_DATE_ARGUMENT);a=t}else if(Ae(t))a=t;else throw Ot(dt.INVALID_ARGUMENT);return q(n)?r.key=n:se(n)&&Object.keys(n).forEach(l=>{_l.includes(l)?i[l]=n[l]:r[l]=n[l]}),q(o)?r.locale=o:se(o)&&(i=o),se(s)&&(i=s),[r.key||"",a,r,i]}function bl(e,t,n){const o=e;for(const s in n){const r=`${t}__${s}`;o.__datetimeFormatters.has(r)&&o.__datetimeFormatters.delete(r)}}function yl(e,...t){const{numberFormats:n,unresolving:o,fallbackLocale:s,onWarn:r,localeFallbacker:i}=e,{__numberFormatters:a}=e,[l,c,u,f]=hs(...t),h=ce(u.missingWarn)?u.missingWarn:e.missingWarn;ce(u.fallbackWarn)?u.fallbackWarn:e.fallbackWarn;const m=!!u.part,v=is(e,u),$=i(e,s,v);if(!q(l)||l==="")return new Intl.NumberFormat(v,f).format(c);let A={},N,C=null;const _="number format";for(let k=0;k<$.length&&(N=$[k],A=n[N]||{},C=A[l],!se(C));k++)cs(e,l,N,h,_);if(!se(C)||!q(N))return o?ir:l;let b=`${N}__${l}`;er(f)||(b=`${b}__${JSON.stringify(f)}`);let T=a.get(b);return T||(T=new Intl.NumberFormat(N,We({},C,f)),a.set(b,T)),m?T.formatToParts(c):T.format(c)}const vl=["localeMatcher","style","currency","currencyDisplay","currencySign","useGrouping","minimumIntegerDigits","minimumFractionDigits","maximumFractionDigits","minimumSignificantDigits","maximumSignificantDigits","compactDisplay","notation","signDisplay","unit","unitDisplay","roundingMode","roundingPriority","roundingIncrement","trailingZeroDisplay"];function hs(...e){const[t,n,o,s]=e,r=me();let i=me();if(!Ae(t))throw Ot(dt.INVALID_ARGUMENT);const a=t;return q(n)?r.key=n:se(n)&&Object.keys(n).forEach(l=>{vl.includes(l)?i[l]=n[l]:r[l]=n[l]}),q(o)?r.locale=o:se(o)&&(i=o),se(s)&&(i=s),[r.key||"",a,r,i]}function wl(e,t,n){const o=e;for(const s in n){const r=`${t}__${s}`;o.__numberFormatters.has(r)&&o.__numberFormatters.delete(r)}}dh();/*! + */function kf(){typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(Rt().__INTLIFY_PROD_DEVTOOLS__=!1),typeof __INTLIFY_JIT_COMPILATION__!="boolean"&&(Rt().__INTLIFY_JIT_COMPILATION__=!1),typeof __INTLIFY_DROP_MESSAGE_COMPILER__!="boolean"&&(Rt().__INTLIFY_DROP_MESSAGE_COMPILER__=!1)}function kt(e){return ge(e)&&is(e)===0&&(ut(e,"b")||ut(e,"body"))}const Wa=["b","body"];function Cf(e){return Qt(e,Wa)}const Ga=["c","cases"];function Of(e){return Qt(e,Ga,[])}const Ua=["s","static"];function Nf(e){return Qt(e,Ua)}const ja=["i","items"];function Af(e){return Qt(e,ja,[])}const Va=["t","type"];function is(e){return Qt(e,Va)}const Ya=["v","value"];function sr(e,t){const n=Qt(e,Ya);if(n!=null)return n;throw lo(t)}const Ha=["m","modifier"];function Ef(e){return Qt(e,Ha)}const za=["k","key"];function Tf(e){const t=Qt(e,za);if(t)return t;throw lo(6)}function Qt(e,t,n){for(let o=0;o{i===void 0?i=a:i+=a},f[1]=()=>{i!==void 0&&(t.push(i),i=void 0)},f[2]=()=>{f[0](),s++},f[3]=()=>{if(s>0)s--,o=4,f[0]();else{if(s=0,i===void 0||(i=Lf(i),i===!1))return!1;f[1]()}};function _(){const v=e[n+1];if(o===5&&v==="'"||o===6&&v==='"')return n++,a="\\"+v,f[0](),!0}for(;o!==null;)if(n++,r=e[n],!(r==="\\"&&_())){if(l=xf(r),g=en[o],c=g[l]||g.l||8,c===8||(o=c[0],c[1]!==void 0&&(u=f[c[1]],u&&(a=r,u()===!1))))return;if(o===7)return t}}const Ka=new Map;function Mf(e,t){return ge(e)?e[t]:null}function Rf(e,t){if(!ge(e))return null;let n=Ka.get(t);if(n||(n=If(t),n&&Ka.set(t,n)),!n)return null;const o=n.length;let s=e,r=0;for(;re,Df=e=>"",Wf="text",Gf=e=>e.length===0?"":Yg(e),Uf=Vg;function Xa(e,t){return e=Math.abs(e),t===2?e?e>1?1:0:1:e?Math.min(e,2):0}function jf(e){const t=Ae(e.pluralIndex)?e.pluralIndex:-1;return e.named&&(Ae(e.named.count)||Ae(e.named.n))?Ae(e.named.count)?e.named.count:Ae(e.named.n)?e.named.n:t:t}function Vf(e,t){t.count||(t.count=e),t.n||(t.n=e)}function Yf(e={}){const t=e.locale,n=jf(e),o=ge(e.pluralRules)&&z(t)&&we(e.pluralRules[t])?e.pluralRules[t]:Xa,s=ge(e.pluralRules)&&z(t)&&we(e.pluralRules[t])?Xa:void 0,r=P=>P[o(n,P.length,s)],i=e.list||[],a=P=>i[P],l=e.named||me();Ae(e.pluralIndex)&&Vf(n,l);const c=P=>l[P];function u(P){const N=we(e.messages)?e.messages(P):ge(e.messages)?e.messages[P]:!1;return N||(e.parent?e.parent.message(P):Df)}const g=P=>e.modifiers?e.modifiers[P]:Bf,f=se(e.processor)&&we(e.processor.normalize)?e.processor.normalize:Gf,_=se(e.processor)&&we(e.processor.interpolate)?e.processor.interpolate:Uf,v=se(e.processor)&&z(e.processor.type)?e.processor.type:Wf,O={list:a,named:c,plural:r,linked:(P,...N)=>{const[h,b]=N;let A="text",C="";N.length===1?ge(h)?(C=h.modifier||C,A=h.type||A):z(h)&&(C=h||C):N.length===2&&(z(h)&&(C=h||C),z(b)&&(A=b||A));const E=u(P)(O),F=A==="vnode"&&Ce(E)&&C?E[0]:E;return C?g(C)(F,A):F},message:u,type:v,interpolate:_,normalize:f,values:We(me(),i,l)};return O}let co=null;function Hf(e){co=e}function zf(e,t,n){co&&co.emit("i18n:init",{timestamp:Date.now(),i18n:e,version:t,meta:n})}const qf=Kf("function:translate");function Kf(e){return t=>co&&co.emit(e,t)}const Xf=rs.__EXTEND_POINT__,gn=tr(Xf),Jf={FALLBACK_TO_TRANSLATE:gn(),CANNOT_FORMAT_NUMBER:gn(),FALLBACK_TO_NUMBER_FORMAT:gn(),CANNOT_FORMAT_DATE:gn(),FALLBACK_TO_DATE_FORMAT:gn(),EXPERIMENTAL_CUSTOM_MESSAGE_COMPILER:gn(),__EXTEND_POINT__:gn()},Ja=te.__EXTEND_POINT__,fn=tr(Ja),dt={INVALID_ARGUMENT:Ja,INVALID_DATE_ARGUMENT:fn(),INVALID_ISO_DATE_ARGUMENT:fn(),NOT_SUPPORT_NON_STRING_MESSAGE:fn(),NOT_SUPPORT_LOCALE_PROMISE_VALUE:fn(),NOT_SUPPORT_LOCALE_ASYNC_FUNCTION:fn(),NOT_SUPPORT_LOCALE_TYPE:fn(),__EXTEND_POINT__:fn()};function Ct(e){return Sn(e,null,void 0)}function as(e,t){return t.locale!=null?Za(t.locale):Za(e.locale)}let ls;function Za(e){if(z(e))return e;if(we(e)){if(e.resolvedOnce&&ls!=null)return ls;if(e.constructor.name==="Function"){const t=e();if(jg(t))throw Ct(dt.NOT_SUPPORT_LOCALE_PROMISE_VALUE);return ls=t}else throw Ct(dt.NOT_SUPPORT_LOCALE_ASYNC_FUNCTION)}else throw Ct(dt.NOT_SUPPORT_LOCALE_TYPE)}function Zf(e,t,n){return[...new Set([n,...Ce(t)?t:ge(t)?Object.keys(t):z(t)?[t]:[n]])]}function Qa(e,t,n){const o=z(n)?n:xn,s=e;s.__localeChainCache||(s.__localeChainCache=new Map);let r=s.__localeChainCache.get(o);if(!r){r=[];let i=[n];for(;Ce(i);)i=el(r,i,t);const a=Ce(t)||!se(t)?t:t.default?t.default:null;i=z(a)?[a]:a,Ce(i)&&el(r,i,!1),s.__localeChainCache.set(o,r)}return r}function el(e,t,n){let o=!0;for(let s=0;s`${e.charAt(0).toLocaleUpperCase()}${e.substr(1)}`;function nh(){return{upper:(e,t)=>t==="text"&&z(e)?e.toUpperCase():t==="vnode"&&ge(e)&&"__v_isVNode"in e?e.children.toUpperCase():e,lower:(e,t)=>t==="text"&&z(e)?e.toLowerCase():t==="vnode"&&ge(e)&&"__v_isVNode"in e?e.children.toLowerCase():e,capitalize:(e,t)=>t==="text"&&z(e)?nl(e):t==="vnode"&&ge(e)&&"__v_isVNode"in e?nl(e.children):e}}let ol;function rl(e){ol=e}let sl;function oh(e){sl=e}let il;function rh(e){il=e}let al=null;const sh=e=>{al=e},ih=()=>al;let ll=null;const cl=e=>{ll=e},ah=()=>ll;let ul=0;function lh(e={}){const t=we(e.onWarn)?e.onWarn:Mg,n=z(e.version)?e.version:th,o=z(e.locale)||we(e.locale)?e.locale:xn,s=we(o)?xn:o,r=Ce(e.fallbackLocale)||se(e.fallbackLocale)||z(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:s,i=se(e.messages)?e.messages:cs(s),a=se(e.datetimeFormats)?e.datetimeFormats:cs(s),l=se(e.numberFormats)?e.numberFormats:cs(s),c=We(me(),e.modifiers,nh()),u=e.pluralRules||me(),g=we(e.missing)?e.missing:null,f=ce(e.missingWarn)||Jt(e.missingWarn)?e.missingWarn:!0,_=ce(e.fallbackWarn)||Jt(e.fallbackWarn)?e.fallbackWarn:!0,v=!!e.fallbackFormat,k=!!e.unresolving,O=we(e.postTranslation)?e.postTranslation:null,P=se(e.processor)?e.processor:null,N=ce(e.warnHtmlMessage)?e.warnHtmlMessage:!0,h=!!e.escapeParameter,b=we(e.messageCompiler)?e.messageCompiler:ol,A=we(e.messageResolver)?e.messageResolver:sl||Mf,C=we(e.localeFallbacker)?e.localeFallbacker:il||Zf,E=ge(e.fallbackContext)?e.fallbackContext:void 0,F=e,$=ge(F.__datetimeFormatters)?F.__datetimeFormatters:new Map,D=ge(F.__numberFormatters)?F.__numberFormatters:new Map,U=ge(F.__meta)?F.__meta:{};ul++;const K={version:n,cid:ul,locale:o,fallbackLocale:r,messages:i,modifiers:c,pluralRules:u,missing:g,missingWarn:f,fallbackWarn:_,fallbackFormat:v,unresolving:k,postTranslation:O,processor:P,warnHtmlMessage:N,escapeParameter:h,messageCompiler:b,messageResolver:A,localeFallbacker:C,fallbackContext:E,onWarn:t,__meta:U};return K.datetimeFormats=a,K.numberFormats=l,K.__datetimeFormatters=$,K.__numberFormatters=D,__INTLIFY_PROD_DEVTOOLS__&&zf(K,n,U),K}const cs=e=>({[e]:me()});function us(e,t,n,o,s){const{missing:r,onWarn:i}=e;if(r!==null){const a=r(e,n,t,s);return z(a)?a:t}else return t}function uo(e,t,n){const o=e;o.__localeChainCache=new Map,e.localeFallbacker(e,n,t)}function ch(e,t){return e===t?!1:e.split("-")[0]===t.split("-")[0]}function uh(e,t){const n=t.indexOf(e);if(n===-1)return!1;for(let o=n+1;oph(n,e)}function ph(e,t){const n=Cf(t);if(n==null)throw lo(0);if(is(n)===1){const r=Of(n);return e.plural(r.reduce((i,a)=>[...i,pl(e,a)],[]))}else return pl(e,n)}function pl(e,t){const n=Nf(t);if(n!=null)return e.type==="text"?n:e.normalize([n]);{const o=Af(t).reduce((s,r)=>[...s,ds(e,r)],[]);return e.normalize(o)}}function ds(e,t){const n=is(t);switch(n){case 3:return sr(t,n);case 9:return sr(t,n);case 4:{const o=t;if(ut(o,"k")&&o.k)return e.interpolate(e.named(o.k));if(ut(o,"key")&&o.key)return e.interpolate(e.named(o.key));throw lo(n)}case 5:{const o=t;if(ut(o,"i")&&Ae(o.i))return e.interpolate(e.list(o.i));if(ut(o,"index")&&Ae(o.index))return e.interpolate(e.list(o.index));throw lo(n)}case 6:{const o=t,s=Ef(o),r=Tf(o);return e.linked(ds(e,r),s?ds(e,s):void 0,e.type)}case 7:return sr(t,n);case 8:return sr(t,n);default:throw new Error(`unhandled node on format message part: ${n}`)}}const dl=e=>e;let Ln=me();function gl(e,t={}){let n=!1;const o=t.onError||Zg;return t.onError=s=>{n=!0,o(s)},{...$f(e,t),detectError:n}}const dh=(e,t)=>{if(!z(e))throw Ct(dt.NOT_SUPPORT_NON_STRING_MESSAGE);{ce(t.warnHtmlMessage)&&t.warnHtmlMessage;const o=(t.onCacheKey||dl)(e),s=Ln[o];if(s)return s;const{code:r,detectError:i}=gl(e,t),a=new Function(`return ${r}`)();return i?a:Ln[o]=a}};function gh(e,t){if(__INTLIFY_JIT_COMPILATION__&&!__INTLIFY_DROP_MESSAGE_COMPILER__&&z(e)){ce(t.warnHtmlMessage)&&t.warnHtmlMessage;const o=(t.onCacheKey||dl)(e),s=Ln[o];if(s)return s;const{ast:r,detectError:i}=gl(e,{...t,location:!1,jit:!0}),a=ps(r);return i?a:Ln[o]=a}else{const n=e.cacheKey;if(n){const o=Ln[n];return o||(Ln[n]=ps(e))}else return ps(e)}}const fl=()=>"",rt=e=>we(e);function hl(e,...t){const{fallbackFormat:n,postTranslation:o,unresolving:s,messageCompiler:r,fallbackLocale:i,messages:a}=e,[l,c]=gs(...t),u=ce(c.missingWarn)?c.missingWarn:e.missingWarn,g=ce(c.fallbackWarn)?c.fallbackWarn:e.fallbackWarn,f=ce(c.escapeParameter)?c.escapeParameter:e.escapeParameter,_=!!c.resolvedMessage,v=z(c.default)||ce(c.default)?ce(c.default)?r?l:()=>l:c.default:n?r?l:()=>l:"",k=n||v!=="",O=as(e,c);f&&fh(c);let[P,N,h]=_?[l,O,a[O]||me()]:ml(e,l,O,i,g,u),b=P,A=l;if(!_&&!(z(b)||kt(b)||rt(b))&&k&&(b=v,A=b),!_&&(!(z(b)||kt(b)||rt(b))||!z(N)))return s?ir:l;let C=!1;const E=()=>{C=!0},F=rt(b)?b:_l(e,l,N,b,A,E);if(C)return b;const $=_h(e,N,h,c),D=Yf($),U=hh(e,F,D);let K=o?o(U,l):U;if(f&&z(K)&&(K=Gg(K)),__INTLIFY_PROD_DEVTOOLS__){const ne={timestamp:Date.now(),key:z(l)?l:rt(b)?b.key:"",locale:N||(rt(b)?b.locale:""),format:z(b)?b:rt(b)?b.source:"",message:K};ne.meta=We({},e.__meta,ih()||{}),qf(ne)}return K}function fh(e){Ce(e.list)?e.list=e.list.map(t=>z(t)?Ta(t):t):ge(e.named)&&Object.keys(e.named).forEach(t=>{z(e.named[t])&&(e.named[t]=Ta(e.named[t]))})}function ml(e,t,n,o,s,r){const{messages:i,onWarn:a,messageResolver:l,localeFallbacker:c}=e,u=c(e,o,n);let g=me(),f,_=null;const v="translate";for(let k=0;ko;return c.locale=n,c.key=t,c}const l=i(o,mh(e,n,s,o,a,r));return l.locale=n,l.key=t,l.source=o,l}function hh(e,t,n){return t(n)}function gs(...e){const[t,n,o]=e,s=me();if(!z(t)&&!Ae(t)&&!rt(t)&&!kt(t))throw Ct(dt.INVALID_ARGUMENT);const r=Ae(t)?String(t):(rt(t),t);return Ae(n)?s.plural=n:z(n)?s.default=n:se(n)&&!er(n)?s.named=n:Ce(n)&&(s.list=n),Ae(o)?s.plural=o:z(o)?s.default=o:se(o)&&We(s,o),[r,s]}function mh(e,t,n,o,s,r){return{locale:t,key:n,warnHtmlMessage:s,onError:i=>{throw r&&r(i),i},onCacheKey:i=>Rg(t,n,i)}}function _h(e,t,n,o){const{modifiers:s,pluralRules:r,messageResolver:i,fallbackLocale:a,fallbackWarn:l,missingWarn:c,fallbackContext:u}=e,f={locale:t,modifiers:s,pluralRules:r,messages:_=>{let v=i(n,_);if(v==null&&u){const[,,k]=ml(u,_,t,a,l,c);v=i(k,_)}if(z(v)||kt(v)){let k=!1;const P=_l(e,_,t,v,_,()=>{k=!0});return k?fl:P}else return rt(v)?v:fl}};return e.processor&&(f.processor=e.processor),o.list&&(f.list=o.list),o.named&&(f.named=o.named),Ae(o.plural)&&(f.pluralIndex=o.plural),f}function bl(e,...t){const{datetimeFormats:n,unresolving:o,fallbackLocale:s,onWarn:r,localeFallbacker:i}=e,{__datetimeFormatters:a}=e,[l,c,u,g]=fs(...t),f=ce(u.missingWarn)?u.missingWarn:e.missingWarn;ce(u.fallbackWarn)?u.fallbackWarn:e.fallbackWarn;const _=!!u.part,v=as(e,u),k=i(e,s,v);if(!z(l)||l==="")return new Intl.DateTimeFormat(v,g).format(c);let O={},P,N=null;const h="datetime format";for(let C=0;C{yl.includes(l)?i[l]=n[l]:r[l]=n[l]}),z(o)?r.locale=o:se(o)&&(i=o),se(s)&&(i=s),[r.key||"",a,r,i]}function vl(e,t,n){const o=e;for(const s in n){const r=`${t}__${s}`;o.__datetimeFormatters.has(r)&&o.__datetimeFormatters.delete(r)}}function wl(e,...t){const{numberFormats:n,unresolving:o,fallbackLocale:s,onWarn:r,localeFallbacker:i}=e,{__numberFormatters:a}=e,[l,c,u,g]=hs(...t),f=ce(u.missingWarn)?u.missingWarn:e.missingWarn;ce(u.fallbackWarn)?u.fallbackWarn:e.fallbackWarn;const _=!!u.part,v=as(e,u),k=i(e,s,v);if(!z(l)||l==="")return new Intl.NumberFormat(v,g).format(c);let O={},P,N=null;const h="number format";for(let C=0;C{$l.includes(l)?i[l]=n[l]:r[l]=n[l]}),z(o)?r.locale=o:se(o)&&(i=o),se(s)&&(i=s),[r.key||"",a,r,i]}function kl(e,t,n){const o=e;for(const s in n){const r=`${t}__${s}`;o.__numberFormatters.has(r)&&o.__numberFormatters.delete(r)}}kf();/*! * vue-i18n v9.14.5 * (c) 2025 kazuya kawaguchi * Released under the MIT License. - */const ag="9.14.5";function lg(){typeof __VUE_I18N_FULL_INSTALL__!="boolean"&&(Bt().__VUE_I18N_FULL_INSTALL__=!0),typeof __VUE_I18N_LEGACY_API__!="boolean"&&(Bt().__VUE_I18N_LEGACY_API__=!0),typeof __INTLIFY_JIT_COMPILATION__!="boolean"&&(Bt().__INTLIFY_JIT_COMPILATION__=!1),typeof __INTLIFY_DROP_MESSAGE_COMPILER__!="boolean"&&(Bt().__INTLIFY_DROP_MESSAGE_COMPILER__=!1),typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(Bt().__INTLIFY_PROD_DEVTOOLS__=!1)}const cg=Wh.__EXTEND_POINT__,Rt=tr(cg);Rt(),Rt(),Rt(),Rt(),Rt(),Rt(),Rt(),Rt(),Rt();const kl=dt.__EXTEND_POINT__,Ke=tr(kl),xe={UNEXPECTED_RETURN_TYPE:kl,INVALID_ARGUMENT:Ke(),MUST_BE_CALL_SETUP_TOP:Ke(),NOT_INSTALLED:Ke(),NOT_AVAILABLE_IN_LEGACY_MODE:Ke(),REQUIRED_VALUE:Ke(),INVALID_VALUE:Ke(),CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN:Ke(),NOT_INSTALLED_WITH_PROVIDE:Ke(),UNEXPECTED_ERROR:Ke(),NOT_COMPATIBLE_LEGACY_VUE_I18N:Ke(),BRIDGE_SUPPORT_VUE_2_ONLY:Ke(),MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION:Ke(),NOT_AVAILABLE_COMPOSITION_IN_LEGACY:Ke(),__EXTEND_POINT__:Ke()};function Me(e,...t){return Ln(e,null,void 0)}const gs=Xt("__translateVNode"),ms=Xt("__datetimeParts"),_s=Xt("__numberParts"),$l=Xt("__setPluralRules"),Ol=Xt("__injectWithOption"),bs=Xt("__dispose");function po(e){if(!fe(e)||$t(e))return e;for(const t in e)if(ut(e,t))if(!t.includes("."))fe(e[t])&&po(e[t]);else{const n=t.split("."),o=n.length-1;let s=e,r=!1;for(let i=0;i{if("locale"in a&&"resource"in a){const{locale:l,resource:c}=a;l?(i[l]=i[l]||me(),or(c,i[l])):or(c,i)}else q(a)&&or(JSON.parse(a),i)}),s==null&&r)for(const a in i)ut(i,a)&&po(i[a]);return i}function Nl(e){return e.type}function Cl(e,t,n){let o=fe(t.messages)?t.messages:me();"__i18nGlobal"in n&&(o=ar(e.locale.value,{messages:o,__i18n:n.__i18nGlobal}));const s=Object.keys(o);s.length&&s.forEach(r=>{e.mergeLocaleMessage(r,o[r])});{if(fe(t.datetimeFormats)){const r=Object.keys(t.datetimeFormats);r.length&&r.forEach(i=>{e.mergeDateTimeFormat(i,t.datetimeFormats[i])})}if(fe(t.numberFormats)){const r=Object.keys(t.numberFormats);r.length&&r.forEach(i=>{e.mergeNumberFormat(i,t.numberFormats[i])})}}}function Al(e){return ve(Qn,null,e,0)}const El="__INTLIFY_META__",Tl=()=>[],ug=()=>!1;let Ll=0;function Sl(e){return(t,n,o,s)=>e(n,o,Mt()||void 0,s)}const pg=()=>{const e=Mt();let t=null;return e&&(t=Nl(e)[El])?{[El]:t}:null};function ys(e={},t){const{__root:n,__injectWithOption:o}=e,s=n===void 0,r=e.flatJson,i=Qo?re:Gn,a=!!e.translateExistCompatible;let l=ce(e.inheritLocale)?e.inheritLocale:!0;const c=i(n&&l?n.locale.value:q(e.locale)?e.locale:In),u=i(n&&l?n.fallbackLocale.value:q(e.fallbackLocale)||Oe(e.fallbackLocale)||se(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:c.value),f=i(ar(c.value,e)),h=i(se(e.datetimeFormats)?e.datetimeFormats:{[c.value]:{}}),m=i(se(e.numberFormats)?e.numberFormats:{[c.value]:{}});let v=n?n.missingWarn:ce(e.missingWarn)||Jt(e.missingWarn)?e.missingWarn:!0,$=n?n.fallbackWarn:ce(e.fallbackWarn)||Jt(e.fallbackWarn)?e.fallbackWarn:!0,A=n?n.fallbackRoot:ce(e.fallbackRoot)?e.fallbackRoot:!0,N=!!e.fallbackFormat,C=we(e.missing)?e.missing:null,_=we(e.missing)?Sl(e.missing):null,b=we(e.postTranslation)?e.postTranslation:null,T=n?n.warnHtmlMessage:ce(e.warnHtmlMessage)?e.warnHtmlMessage:!0,k=!!e.escapeParameter;const E=n?n.modifiers:se(e.modifiers)?e.modifiers:{};let x=e.pluralRules||n&&n.pluralRules,O;O=(()=>{s&&al(null);const L={version:ag,locale:c.value,fallbackLocale:u.value,messages:f.value,modifiers:E,pluralRules:x,missing:_===null?void 0:_,missingWarn:v,fallbackWarn:$,fallbackFormat:N,unresolving:!0,postTranslation:b===null?void 0:b,warnHtmlMessage:T,escapeParameter:k,messageResolver:e.messageResolver,messageCompiler:e.messageCompiler,__meta:{framework:"vue"}};L.datetimeFormats=h.value,L.numberFormats=m.value,L.__datetimeFormatters=se(O)?O.__datetimeFormatters:void 0,L.__numberFormatters=se(O)?O.__numberFormatters:void 0;const P=Jh(L);return s&&al(P),P})(),uo(O,c.value,u.value);function j(){return[c.value,u.value,f.value,h.value,m.value]}const K=ie({get:()=>c.value,set:L=>{c.value=L,O.locale=c.value}}),ne=ie({get:()=>u.value,set:L=>{u.value=L,O.fallbackLocale=u.value,uo(O,c.value,L)}}),ue=ie(()=>f.value),z=ie(()=>h.value),W=ie(()=>m.value);function X(){return we(b)?b:null}function le(L){b=L,O.postTranslation=L}function Ee(){return C}function Nt(L){L!==null&&(_=Sl(L)),C=L,O.missing=_}const Ie=(L,P,Z,ae,ke,qe)=>{j();let Ue;try{__INTLIFY_PROD_DEVTOOLS__,s||(O.fallbackContext=n?Xh():void 0),Ue=L(O)}finally{__INTLIFY_PROD_DEVTOOLS__,s||(O.fallbackContext=void 0)}if(Z!=="translate exists"&&Ae(Ue)&&Ue===ir||Z==="translate exists"&&!Ue){const[mn,Os]=P();return n&&A?ae(n):ke(mn)}else{if(qe(Ue))return Ue;throw Me(xe.UNEXPECTED_RETURN_TYPE)}};function Pe(...L){return Ie(P=>Reflect.apply(fl,null,[P,...L]),()=>ds(...L),"translate",P=>Reflect.apply(P.t,P,[...L]),P=>P,P=>q(P))}function on(...L){const[P,Z,ae]=L;if(ae&&!fe(ae))throw Me(xe.INVALID_ARGUMENT);return Pe(P,Z,We({resolvedMessage:!0},ae||{}))}function rn(...L){return Ie(P=>Reflect.apply(ml,null,[P,...L]),()=>fs(...L),"datetime format",P=>Reflect.apply(P.d,P,[...L]),()=>Qa,P=>q(P))}function gn(...L){return Ie(P=>Reflect.apply(yl,null,[P,...L]),()=>hs(...L),"number format",P=>Reflect.apply(P.n,P,[...L]),()=>Qa,P=>q(P))}function ft(L){return L.map(P=>q(P)||Ae(P)||ce(P)?Al(String(P)):P)}const jt={normalize:ft,interpolate:L=>L,type:"vnode"};function sn(...L){return Ie(P=>{let Z;const ae=P;try{ae.processor=jt,Z=Reflect.apply(fl,null,[ae,...L])}finally{ae.processor=null}return Z},()=>ds(...L),"translate",P=>P[gs](...L),P=>[Al(P)],P=>Oe(P))}function st(...L){return Ie(P=>Reflect.apply(yl,null,[P,...L]),()=>hs(...L),"number format",P=>P[_s](...L),Tl,P=>q(P)||Oe(P))}function Mn(...L){return Ie(P=>Reflect.apply(ml,null,[P,...L]),()=>fs(...L),"datetime format",P=>P[ms](...L),Tl,P=>q(P)||Oe(P))}function g(L){x=L,O.pluralRules=x}function w(L,P){return Ie(()=>{if(!L)return!1;const Z=q(P)?P:c.value,ae=D(Z),ke=O.messageResolver(ae,L);return a?ke!=null:$t(ke)||rt(ke)||q(ke)},()=>[L],"translate exists",Z=>Reflect.apply(Z.te,Z,[L,P]),ug,Z=>ce(Z))}function y(L){let P=null;const Z=Ja(O,u.value,c.value);for(let ae=0;ae{l&&(c.value=L,O.locale=L,uo(O,c.value,u.value))}),ot(n.fallbackLocale,L=>{l&&(u.value=L,O.fallbackLocale=L,uo(O,c.value,u.value))}));const U={id:Ll,locale:K,fallbackLocale:ne,get inheritLocale(){return l},set inheritLocale(L){l=L,L&&n&&(c.value=n.locale.value,u.value=n.fallbackLocale.value,uo(O,c.value,u.value))},get availableLocales(){return Object.keys(f.value).sort()},messages:ue,get modifiers(){return E},get pluralRules(){return x||{}},get isGlobal(){return s},get missingWarn(){return v},set missingWarn(L){v=L,O.missingWarn=v},get fallbackWarn(){return $},set fallbackWarn(L){$=L,O.fallbackWarn=$},get fallbackRoot(){return A},set fallbackRoot(L){A=L},get fallbackFormat(){return N},set fallbackFormat(L){N=L,O.fallbackFormat=N},get warnHtmlMessage(){return T},set warnHtmlMessage(L){T=L,O.warnHtmlMessage=L},get escapeParameter(){return k},set escapeParameter(L){k=L,O.escapeParameter=L},t:Pe,getLocaleMessage:D,setLocaleMessage:B,mergeLocaleMessage:Y,getPostTranslationHandler:X,setPostTranslationHandler:le,getMissingHandler:Ee,setMissingHandler:Nt,[$l]:g};return U.datetimeFormats=z,U.numberFormats=W,U.rt=on,U.te=w,U.tm=I,U.d=rn,U.n=gn,U.getDateTimeFormat=G,U.setDateTimeFormat=p,U.mergeDateTimeFormat=d,U.getNumberFormat=S,U.setNumberFormat=F,U.mergeNumberFormat=V,U[Ol]=o,U[gs]=sn,U[ms]=Mn,U[_s]=st,U}function dg(e){const t=q(e.locale)?e.locale:In,n=q(e.fallbackLocale)||Oe(e.fallbackLocale)||se(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:t,o=we(e.missing)?e.missing:void 0,s=ce(e.silentTranslationWarn)||Jt(e.silentTranslationWarn)?!e.silentTranslationWarn:!0,r=ce(e.silentFallbackWarn)||Jt(e.silentFallbackWarn)?!e.silentFallbackWarn:!0,i=ce(e.fallbackRoot)?e.fallbackRoot:!0,a=!!e.formatFallbackMessages,l=se(e.modifiers)?e.modifiers:{},c=e.pluralizationRules,u=we(e.postTranslation)?e.postTranslation:void 0,f=q(e.warnHtmlInMessage)?e.warnHtmlInMessage!=="off":!0,h=!!e.escapeParameterHtml,m=ce(e.sync)?e.sync:!0;let v=e.messages;if(se(e.sharedMessages)){const k=e.sharedMessages;v=Object.keys(k).reduce((x,O)=>{const R=x[O]||(x[O]={});return We(R,k[O]),x},v||{})}const{__i18n:$,__root:A,__injectWithOption:N}=e,C=e.datetimeFormats,_=e.numberFormats,b=e.flatJson,T=e.translateExistCompatible;return{locale:t,fallbackLocale:n,messages:v,flatJson:b,datetimeFormats:C,numberFormats:_,missing:o,missingWarn:s,fallbackWarn:r,fallbackRoot:i,fallbackFormat:a,modifiers:l,pluralRules:c,postTranslation:u,warnHtmlMessage:f,escapeParameter:h,messageResolver:e.messageResolver,inheritLocale:m,translateExistCompatible:T,__i18n:$,__root:A,__injectWithOption:N}}function vs(e={},t){{const n=ys(dg(e)),{__extender:o}=e,s={id:n.id,get locale(){return n.locale.value},set locale(r){n.locale.value=r},get fallbackLocale(){return n.fallbackLocale.value},set fallbackLocale(r){n.fallbackLocale.value=r},get messages(){return n.messages.value},get datetimeFormats(){return n.datetimeFormats.value},get numberFormats(){return n.numberFormats.value},get availableLocales(){return n.availableLocales},get formatter(){return{interpolate(){return[]}}},set formatter(r){},get missing(){return n.getMissingHandler()},set missing(r){n.setMissingHandler(r)},get silentTranslationWarn(){return ce(n.missingWarn)?!n.missingWarn:n.missingWarn},set silentTranslationWarn(r){n.missingWarn=ce(r)?!r:r},get silentFallbackWarn(){return ce(n.fallbackWarn)?!n.fallbackWarn:n.fallbackWarn},set silentFallbackWarn(r){n.fallbackWarn=ce(r)?!r:r},get modifiers(){return n.modifiers},get formatFallbackMessages(){return n.fallbackFormat},set formatFallbackMessages(r){n.fallbackFormat=r},get postTranslation(){return n.getPostTranslationHandler()},set postTranslation(r){n.setPostTranslationHandler(r)},get sync(){return n.inheritLocale},set sync(r){n.inheritLocale=r},get warnHtmlInMessage(){return n.warnHtmlMessage?"warn":"off"},set warnHtmlInMessage(r){n.warnHtmlMessage=r!=="off"},get escapeParameterHtml(){return n.escapeParameter},set escapeParameterHtml(r){n.escapeParameter=r},get preserveDirectiveContent(){return!0},set preserveDirectiveContent(r){},get pluralizationRules(){return n.pluralRules||{}},__composer:n,t(...r){const[i,a,l]=r,c={};let u=null,f=null;if(!q(i))throw Me(xe.INVALID_ARGUMENT);const h=i;return q(a)?c.locale=a:Oe(a)?u=a:se(a)&&(f=a),Oe(l)?u=l:se(l)&&(f=l),Reflect.apply(n.t,n,[h,u||f||{},c])},rt(...r){return Reflect.apply(n.rt,n,[...r])},tc(...r){const[i,a,l]=r,c={plural:1};let u=null,f=null;if(!q(i))throw Me(xe.INVALID_ARGUMENT);const h=i;return q(a)?c.locale=a:Ae(a)?c.plural=a:Oe(a)?u=a:se(a)&&(f=a),q(l)?c.locale=l:Oe(l)?u=l:se(l)&&(f=l),Reflect.apply(n.t,n,[h,u||f||{},c])},te(r,i){return n.te(r,i)},tm(r){return n.tm(r)},getLocaleMessage(r){return n.getLocaleMessage(r)},setLocaleMessage(r,i){n.setLocaleMessage(r,i)},mergeLocaleMessage(r,i){n.mergeLocaleMessage(r,i)},d(...r){return Reflect.apply(n.d,n,[...r])},getDateTimeFormat(r){return n.getDateTimeFormat(r)},setDateTimeFormat(r,i){n.setDateTimeFormat(r,i)},mergeDateTimeFormat(r,i){n.mergeDateTimeFormat(r,i)},n(...r){return Reflect.apply(n.n,n,[...r])},getNumberFormat(r){return n.getNumberFormat(r)},setNumberFormat(r,i){n.setNumberFormat(r,i)},mergeNumberFormat(r,i){n.mergeNumberFormat(r,i)},getChoiceIndex(r,i){return-1}};return s.__extender=o,s}}const ws={tag:{type:[String,Object]},locale:{type:String},scope:{type:String,validator:e=>e==="parent"||e==="global",default:"parent"},i18n:{type:Object}};function fg({slots:e},t){return t.length===1&&t[0]==="default"?(e.default?e.default():[]).reduce((o,s)=>[...o,...s.type===de?s.children:[s]],[]):t.reduce((n,o)=>{const s=e[o];return s&&(n[o]=s()),n},me())}function xl(e){return de}const Il=Kn({name:"i18n-t",props:We({keypath:{type:String,required:!0},plural:{type:[Number,String],validator:e=>Ae(e)||!isNaN(e)}},ws),setup(e,t){const{slots:n,attrs:o}=t,s=e.i18n||tn({useScope:e.scope,__useComponent:!0});return()=>{const r=Object.keys(n).filter(f=>f!=="_"),i=me();e.locale&&(i.locale=e.locale),e.plural!==void 0&&(i.plural=q(e.plural)?+e.plural:e.plural);const a=fg(t,r),l=s[gs](e.keypath,a,i),c=We(me(),o),u=q(e.tag)||fe(e.tag)?e.tag:xl();return oa(u,c,l)}}});function hg(e){return Oe(e)&&!q(e[0])}function Fl(e,t,n,o){const{slots:s,attrs:r}=t;return()=>{const i={part:!0};let a=me();e.locale&&(i.locale=e.locale),q(e.format)?i.key=e.format:fe(e.format)&&(q(e.format.key)&&(i.key=e.format.key),a=Object.keys(e.format).reduce((h,m)=>n.includes(m)?We(me(),h,{[m]:e.format[m]}):h,me()));const l=o(e.value,i,a);let c=[i.key];Oe(l)?c=l.map((h,m)=>{const v=s[h.type],$=v?v({[h.type]:h.value,index:m,parts:l}):[h.value];return hg($)&&($[0].key=`${h.type}-${m}`),$}):q(l)&&(c=[l]);const u=We(me(),r),f=q(e.tag)||fe(e.tag)?e.tag:xl();return oa(f,u,c)}}const Ml=Kn({name:"i18n-n",props:We({value:{type:Number,required:!0},format:{type:[String,Object]}},ws),setup(e,t){const n=e.i18n||tn({useScope:e.scope,__useComponent:!0});return Fl(e,t,vl,(...o)=>n[_s](...o))}}),Pl=Kn({name:"i18n-d",props:We({value:{type:[Number,Date],required:!0},format:{type:[String,Object]}},ws),setup(e,t){const n=e.i18n||tn({useScope:e.scope,__useComponent:!0});return Fl(e,t,_l,(...o)=>n[ms](...o))}});function gg(e,t){const n=e;if(e.mode==="composition")return n.__getInstance(t)||e.global;{const o=n.__getInstance(t);return o!=null?o.__composer:e.global.__composer}}function mg(e){const t=i=>{const{instance:a,modifiers:l,value:c}=i;if(!a||!a.$)throw Me(xe.UNEXPECTED_ERROR);const u=gg(e,a.$),f=Bl(c);return[Reflect.apply(u.t,u,[...Dl(f)]),u]};return{created:(i,a)=>{const[l,c]=t(a);Qo&&e.global===c&&(i.__i18nWatcher=ot(c.locale,()=>{a.instance&&a.instance.$forceUpdate()})),i.__composer=c,i.textContent=l},unmounted:i=>{Qo&&i.__i18nWatcher&&(i.__i18nWatcher(),i.__i18nWatcher=void 0,delete i.__i18nWatcher),i.__composer&&(i.__composer=void 0,delete i.__composer)},beforeUpdate:(i,{value:a})=>{if(i.__composer){const l=i.__composer,c=Bl(a);i.textContent=Reflect.apply(l.t,l,[...Dl(c)])}},getSSRProps:i=>{const[a]=t(i);return{textContent:a}}}}function Bl(e){if(q(e))return{path:e};if(se(e)){if(!("path"in e))throw Me(xe.REQUIRED_VALUE,"path");return e}else throw Me(xe.INVALID_VALUE)}function Dl(e){const{path:t,locale:n,args:o,choice:s,plural:r}=e,i={},a=o||{};return q(n)&&(i.locale=n),Ae(s)&&(i.plural=s),Ae(r)&&(i.plural=r),[t,a,i]}function _g(e,t,...n){const o=se(n[0])?n[0]:{},s=!!o.useI18nComponentName;(ce(o.globalInstall)?o.globalInstall:!0)&&([s?"i18n":Il.name,"I18nT"].forEach(i=>e.component(i,Il)),[Ml.name,"I18nN"].forEach(i=>e.component(i,Ml)),[Pl.name,"I18nD"].forEach(i=>e.component(i,Pl))),e.directive("t",mg(t))}function bg(e,t,n){return{beforeCreate(){const o=Mt();if(!o)throw Me(xe.UNEXPECTED_ERROR);const s=this.$options;if(s.i18n){const r=s.i18n;if(s.__i18n&&(r.__i18n=s.__i18n),r.__root=t,this===this.$root)this.$i18n=Rl(e,r);else{r.__injectWithOption=!0,r.__extender=n.__vueI18nExtend,this.$i18n=vs(r);const i=this.$i18n;i.__extender&&(i.__disposer=i.__extender(this.$i18n))}}else if(s.__i18n)if(this===this.$root)this.$i18n=Rl(e,s);else{this.$i18n=vs({__i18n:s.__i18n,__injectWithOption:!0,__extender:n.__vueI18nExtend,__root:t});const r=this.$i18n;r.__extender&&(r.__disposer=r.__extender(this.$i18n))}else this.$i18n=e;s.__i18nGlobal&&Cl(t,s,s),this.$t=(...r)=>this.$i18n.t(...r),this.$rt=(...r)=>this.$i18n.rt(...r),this.$tc=(...r)=>this.$i18n.tc(...r),this.$te=(r,i)=>this.$i18n.te(r,i),this.$d=(...r)=>this.$i18n.d(...r),this.$n=(...r)=>this.$i18n.n(...r),this.$tm=r=>this.$i18n.tm(r),n.__setInstance(o,this.$i18n)},mounted(){},unmounted(){const o=Mt();if(!o)throw Me(xe.UNEXPECTED_ERROR);const s=this.$i18n;delete this.$t,delete this.$rt,delete this.$tc,delete this.$te,delete this.$d,delete this.$n,delete this.$tm,s.__disposer&&(s.__disposer(),delete s.__disposer,delete s.__extender),n.__deleteInstance(o),delete this.$i18n}}}function Rl(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[$l](t.pluralizationRules||e.pluralizationRules);const n=ar(e.locale,{messages:t.messages,__i18n:t.__i18n});return Object.keys(n).forEach(o=>e.mergeLocaleMessage(o,n[o])),t.datetimeFormats&&Object.keys(t.datetimeFormats).forEach(o=>e.mergeDateTimeFormat(o,t.datetimeFormats[o])),t.numberFormats&&Object.keys(t.numberFormats).forEach(o=>e.mergeNumberFormat(o,t.numberFormats[o])),e}const yg=Xt("global-vue-i18n");function vg(e={},t){const n=__VUE_I18N_LEGACY_API__&&ce(e.legacy)?e.legacy:__VUE_I18N_LEGACY_API__,o=ce(e.globalInjection)?e.globalInjection:!0,s=__VUE_I18N_LEGACY_API__&&n?!!e.allowComposition:!0,r=new Map,[i,a]=wg(e,n),l=Xt("");function c(h){return r.get(h)||null}function u(h,m){r.set(h,m)}function f(h){r.delete(h)}{const h={get mode(){return __VUE_I18N_LEGACY_API__&&n?"legacy":"composition"},get allowComposition(){return s},async install(m,...v){if(m.__VUE_I18N_SYMBOL__=l,m.provide(m.__VUE_I18N_SYMBOL__,h),se(v[0])){const N=v[0];h.__composerExtend=N.__composerExtend,h.__vueI18nExtend=N.__vueI18nExtend}let $=null;!n&&o&&($=Lg(m,h.global)),__VUE_I18N_FULL_INSTALL__&&_g(m,h,...v),__VUE_I18N_LEGACY_API__&&n&&m.mixin(bg(a,a.__composer,h));const A=m.unmount;m.unmount=()=>{$&&$(),h.dispose(),A()}},get global(){return a},dispose(){i.stop()},__instances:r,__getInstance:c,__setInstance:u,__deleteInstance:f};return h}}function tn(e={}){const t=Mt();if(t==null)throw Me(xe.MUST_BE_CALL_SETUP_TOP);if(!t.isCE&&t.appContext.app!=null&&!t.appContext.app.__VUE_I18N_SYMBOL__)throw Me(xe.NOT_INSTALLED);const n=kg(t),o=Og(n),s=Nl(t),r=$g(e,s);if(__VUE_I18N_LEGACY_API__&&n.mode==="legacy"&&!e.__useComponent){if(!n.allowComposition)throw Me(xe.NOT_AVAILABLE_IN_LEGACY_MODE);return Eg(t,r,o,e)}if(r==="global")return Cl(o,e,s),o;if(r==="parent"){let l=Ng(n,t,e.__useComponent);return l==null&&(l=o),l}const i=n;let a=i.__getInstance(t);if(a==null){const l=We({},e);"__i18n"in s&&(l.__i18n=s.__i18n),o&&(l.__root=o),a=ys(l),i.__composerExtend&&(a[bs]=i.__composerExtend(a)),Ag(i,t,a),i.__setInstance(t,a)}return a}function wg(e,t,n){const o=gr();{const s=__VUE_I18N_LEGACY_API__&&t?o.run(()=>vs(e)):o.run(()=>ys(e));if(s==null)throw Me(xe.UNEXPECTED_ERROR);return[o,s]}}function kg(e){{const t=De(e.isCE?yg:e.appContext.app.__VUE_I18N_SYMBOL__);if(!t)throw Me(e.isCE?xe.NOT_INSTALLED_WITH_PROVIDE:xe.UNEXPECTED_ERROR);return t}}function $g(e,t){return er(e)?"__i18n"in t?"local":"global":e.useScope?e.useScope:"local"}function Og(e){return e.mode==="composition"?e.global:e.global.__composer}function Ng(e,t,n=!1){let o=null;const s=t.root;let r=Cg(t,n);for(;r!=null;){const i=e;if(e.mode==="composition")o=i.__getInstance(r);else if(__VUE_I18N_LEGACY_API__){const a=i.__getInstance(r);a!=null&&(o=a.__composer,n&&o&&!o[Ol]&&(o=null))}if(o!=null||s===r)break;r=r.parent}return o}function Cg(e,t=!1){return e==null?null:t&&e.vnode.ctx||e.parent}function Ag(e,t,n){qt(()=>{},t),jo(()=>{const o=n;e.__deleteInstance(t);const s=o[bs];s&&(s(),delete o[bs])},t)}function Eg(e,t,n,o={}){const s=t==="local",r=Gn(null);if(s&&e.proxy&&!(e.proxy.$options.i18n||e.proxy.$options.__i18n))throw Me(xe.MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION);const i=ce(o.inheritLocale)?o.inheritLocale:!q(o.locale),a=re(!s||i?n.locale.value:q(o.locale)?o.locale:In),l=re(!s||i?n.fallbackLocale.value:q(o.fallbackLocale)||Oe(o.fallbackLocale)||se(o.fallbackLocale)||o.fallbackLocale===!1?o.fallbackLocale:a.value),c=re(ar(a.value,o)),u=re(se(o.datetimeFormats)?o.datetimeFormats:{[a.value]:{}}),f=re(se(o.numberFormats)?o.numberFormats:{[a.value]:{}}),h=s?n.missingWarn:ce(o.missingWarn)||Jt(o.missingWarn)?o.missingWarn:!0,m=s?n.fallbackWarn:ce(o.fallbackWarn)||Jt(o.fallbackWarn)?o.fallbackWarn:!0,v=s?n.fallbackRoot:ce(o.fallbackRoot)?o.fallbackRoot:!0,$=!!o.fallbackFormat,A=we(o.missing)?o.missing:null,N=we(o.postTranslation)?o.postTranslation:null,C=s?n.warnHtmlMessage:ce(o.warnHtmlMessage)?o.warnHtmlMessage:!0,_=!!o.escapeParameter,b=s?n.modifiers:se(o.modifiers)?o.modifiers:{},T=o.pluralRules||s&&n.pluralRules;function k(){return[a.value,l.value,c.value,u.value,f.value]}const E=ie({get:()=>r.value?r.value.locale.value:a.value,set:y=>{r.value&&(r.value.locale.value=y),a.value=y}}),x=ie({get:()=>r.value?r.value.fallbackLocale.value:l.value,set:y=>{r.value&&(r.value.fallbackLocale.value=y),l.value=y}}),O=ie(()=>r.value?r.value.messages.value:c.value),R=ie(()=>u.value),j=ie(()=>f.value);function K(){return r.value?r.value.getPostTranslationHandler():N}function ne(y){r.value&&r.value.setPostTranslationHandler(y)}function ue(){return r.value?r.value.getMissingHandler():A}function z(y){r.value&&r.value.setMissingHandler(y)}function W(y){return k(),y()}function X(...y){return r.value?W(()=>Reflect.apply(r.value.t,null,[...y])):W(()=>"")}function le(...y){return r.value?Reflect.apply(r.value.rt,null,[...y]):""}function Ee(...y){return r.value?W(()=>Reflect.apply(r.value.d,null,[...y])):W(()=>"")}function Nt(...y){return r.value?W(()=>Reflect.apply(r.value.n,null,[...y])):W(()=>"")}function Ie(y){return r.value?r.value.tm(y):{}}function Pe(y,I){return r.value?r.value.te(y,I):!1}function on(y){return r.value?r.value.getLocaleMessage(y):{}}function rn(y,I){r.value&&(r.value.setLocaleMessage(y,I),c.value[y]=I)}function gn(y,I){r.value&&r.value.mergeLocaleMessage(y,I)}function ft(y){return r.value?r.value.getDateTimeFormat(y):{}}function Ut(y,I){r.value&&(r.value.setDateTimeFormat(y,I),u.value[y]=I)}function jt(y,I){r.value&&r.value.mergeDateTimeFormat(y,I)}function sn(y){return r.value?r.value.getNumberFormat(y):{}}function st(y,I){r.value&&(r.value.setNumberFormat(y,I),f.value[y]=I)}function Mn(y,I){r.value&&r.value.mergeNumberFormat(y,I)}const g={get id(){return r.value?r.value.id:-1},locale:E,fallbackLocale:x,messages:O,datetimeFormats:R,numberFormats:j,get inheritLocale(){return r.value?r.value.inheritLocale:i},set inheritLocale(y){r.value&&(r.value.inheritLocale=y)},get availableLocales(){return r.value?r.value.availableLocales:Object.keys(c.value)},get modifiers(){return r.value?r.value.modifiers:b},get pluralRules(){return r.value?r.value.pluralRules:T},get isGlobal(){return r.value?r.value.isGlobal:!1},get missingWarn(){return r.value?r.value.missingWarn:h},set missingWarn(y){r.value&&(r.value.missingWarn=y)},get fallbackWarn(){return r.value?r.value.fallbackWarn:m},set fallbackWarn(y){r.value&&(r.value.missingWarn=y)},get fallbackRoot(){return r.value?r.value.fallbackRoot:v},set fallbackRoot(y){r.value&&(r.value.fallbackRoot=y)},get fallbackFormat(){return r.value?r.value.fallbackFormat:$},set fallbackFormat(y){r.value&&(r.value.fallbackFormat=y)},get warnHtmlMessage(){return r.value?r.value.warnHtmlMessage:C},set warnHtmlMessage(y){r.value&&(r.value.warnHtmlMessage=y)},get escapeParameter(){return r.value?r.value.escapeParameter:_},set escapeParameter(y){r.value&&(r.value.escapeParameter=y)},t:X,getPostTranslationHandler:K,setPostTranslationHandler:ne,getMissingHandler:ue,setMissingHandler:z,rt:le,d:Ee,n:Nt,tm:Ie,te:Pe,getLocaleMessage:on,setLocaleMessage:rn,mergeLocaleMessage:gn,getDateTimeFormat:ft,setDateTimeFormat:Ut,mergeDateTimeFormat:jt,getNumberFormat:sn,setNumberFormat:st,mergeNumberFormat:Mn};function w(y){y.locale.value=a.value,y.fallbackLocale.value=l.value,Object.keys(c.value).forEach(I=>{y.mergeLocaleMessage(I,c.value[I])}),Object.keys(u.value).forEach(I=>{y.mergeDateTimeFormat(I,u.value[I])}),Object.keys(f.value).forEach(I=>{y.mergeNumberFormat(I,f.value[I])}),y.escapeParameter=_,y.fallbackFormat=$,y.fallbackRoot=v,y.fallbackWarn=m,y.missingWarn=h,y.warnHtmlMessage=C}return vi(()=>{if(e.proxy==null||e.proxy.$i18n==null)throw Me(xe.NOT_AVAILABLE_COMPOSITION_IN_LEGACY);const y=r.value=e.proxy.$i18n.__composer;t==="global"?(a.value=y.locale.value,l.value=y.fallbackLocale.value,c.value=y.messages.value,u.value=y.datetimeFormats.value,f.value=y.numberFormats.value):s&&w(y)}),g}const Tg=["locale","fallbackLocale","availableLocales"],Wl=["t","rt","d","n","tm","te"];function Lg(e,t){const n=Object.create(null);return Tg.forEach(s=>{const r=Object.getOwnPropertyDescriptor(t,s);if(!r)throw Me(xe.UNEXPECTED_ERROR);const i=Ne(r.value)?{get(){return r.value.value},set(a){r.value.value=a}}:{get(){return r.get&&r.get()}};Object.defineProperty(n,s,i)}),e.config.globalProperties.$i18n=n,Wl.forEach(s=>{const r=Object.getOwnPropertyDescriptor(t,s);if(!r||!r.value)throw Me(xe.UNEXPECTED_ERROR);Object.defineProperty(e.config.globalProperties,`$${s}`,r)}),()=>{delete e.config.globalProperties.$i18n,Wl.forEach(s=>{delete e.config.globalProperties[`$${s}`]})}}if(lg(),__INTLIFY_JIT_COMPILATION__?nl(ng):nl(tg),Hh(Ch),qh(Ja),__INTLIFY_PROD_DEVTOOLS__){const e=Bt();e.__INTLIFY__=!0,Mh(e.__INTLIFY_DEVTOOLS_GLOBAL_HOOK__)}const Sg=Object.assign({"./locales/ar/aria.json":Pp,"./locales/ar/buttons.json":Bp,"./locales/ar/detail.json":Dp,"./locales/ar/legend.json":Rp,"./locales/ar/messages.json":Wp,"./locales/ar/options.json":Up,"./locales/ar/prayerLaps.json":jp,"./locales/ar/search.json":Gp,"./locales/ar/tabs.json":Yp,"./locales/de/aria.json":Vp,"./locales/de/buttons.json":Hp,"./locales/de/detail.json":qp,"./locales/de/legend.json":zp,"./locales/de/messages.json":Kp,"./locales/de/options.json":Xp,"./locales/de/prayerLaps.json":Jp,"./locales/de/search.json":Zp,"./locales/de/tabs.json":Qp,"./locales/en/aria.json":ed,"./locales/en/buttons.json":td,"./locales/en/detail.json":nd,"./locales/en/legend.json":od,"./locales/en/messages.json":rd,"./locales/en/options.json":sd,"./locales/en/popup.json":id,"./locales/en/prayerLaps.json":ad,"./locales/en/search.json":ld,"./locales/en/tabs.json":cd,"./locales/es/aria.json":ud,"./locales/es/buttons.json":pd,"./locales/es/detail.json":dd,"./locales/es/legend.json":fd,"./locales/es/messages.json":hd,"./locales/es/options.json":gd,"./locales/es/prayerLaps.json":md,"./locales/es/search.json":_d,"./locales/es/tabs.json":bd,"./locales/fr/aria.json":yd,"./locales/fr/buttons.json":vd,"./locales/fr/detail.json":wd,"./locales/fr/legend.json":kd,"./locales/fr/messages.json":$d,"./locales/fr/options.json":Od,"./locales/fr/popup.json":Nd,"./locales/fr/prayerLaps.json":Cd,"./locales/fr/search.json":Ad,"./locales/fr/tabs.json":Ed,"./locales/hi/aria.json":Td,"./locales/hi/buttons.json":Ld,"./locales/hi/detail.json":Sd,"./locales/hi/legend.json":xd,"./locales/hi/messages.json":Id,"./locales/hi/options.json":Fd,"./locales/hi/prayerLaps.json":Md,"./locales/hi/search.json":Pd,"./locales/it/aria.json":Bd,"./locales/it/buttons.json":Dd,"./locales/it/detail.json":Rd,"./locales/it/legend.json":Wd,"./locales/it/messages.json":Ud,"./locales/it/options.json":jd,"./locales/it/prayerLaps.json":Gd,"./locales/it/search.json":Yd,"./locales/pt/aria.json":Vd,"./locales/pt/buttons.json":Hd,"./locales/pt/detail.json":qd,"./locales/pt/legend.json":zd,"./locales/pt/messages.json":Kd,"./locales/pt/options.json":Xd,"./locales/pt/prayerLaps.json":Jd,"./locales/pt/search.json":Zd,"./locales/pt/tabs.json":Qd,"./locales/ro/aria.json":ef,"./locales/ro/buttons.json":tf,"./locales/ro/detail.json":nf,"./locales/ro/legend.json":of,"./locales/ro/messages.json":rf,"./locales/ro/options.json":sf,"./locales/ro/prayerLaps.json":af,"./locales/ro/search.json":lf,"./locales/ru/aria.json":cf,"./locales/ru/buttons.json":uf,"./locales/ru/detail.json":pf,"./locales/ru/legend.json":df,"./locales/ru/messages.json":ff,"./locales/ru/options.json":hf,"./locales/ru/prayerLaps.json":gf,"./locales/ru/search.json":mf,"./locales/ru/tabs.json":_f,"./locales/zh/aria.json":bf,"./locales/zh/buttons.json":yf,"./locales/zh/detail.json":vf,"./locales/zh/legend.json":wf,"./locales/zh/messages.json":kf,"./locales/zh/options.json":$f,"./locales/zh/prayerLaps.json":Of,"./locales/zh/search.json":Nf}),fo={};for(const[e,t]of Object.entries(Sg)){const n=e.match(/\.\/locales\/([^/]+)\/([^/]+)\.json$/);if(!n)continue;const[,o,s]=n;fo[o]??(fo[o]={}),fo[o][s]=t}const Ul=["ar","de","en","es","fr","hi","it","pt","ro","ru","zh"];function xg(){var n;const t=(((n=document==null?void 0:document.documentElement)==null?void 0:n.lang)||"").split("-")[0].toLowerCase();return Ul.includes(t)?t:"en"}function Ig(){return vg({legacy:!1,globalInjection:!0,locale:xg(),fallbackLocale:"en",messages:fo,missingWarn:!1,fallbackWarn:!1})}function Wt(e,t){const n=t||Fg(e);qt(()=>{var a;const o=Mt();if(!o)return;const s=(a=o.proxy)==null?void 0:a.$el;if(!s)return;const r=s.getRootNode();if(!(r instanceof ShadowRoot)||r.querySelector(`style[data-shadow-styles="${n}"]`))return;const i=document.createElement("style");i.setAttribute("data-shadow-styles",n),i.textContent=e,r.appendChild(i)})}function Fg(e){let t=0;for(let n=0;n(t==null?void 0:t.theme)==="dark"),s=ie(()=>{var A;return((A=n==null?void 0:n.value)==null?void 0:A.pinHintLabel)||"Tap a coloured dot — someone still needs prayer"}),r=re(!1),i=re(null);let a=null,l=null,c=null,u=null,f=null;function h(){r.value=!1}function m(A,N){var _;let C=A==null?void 0:A.parentElement;for(let b=0;C&&b<12;b++,C=C.parentElement){if(C===N||(_=C.classList)!=null&&_.contains("profile-loader"))return null;let T="";try{T=getComputedStyle(C).position}catch{}if(T&&T!=="static"){const k=C.getBoundingClientRect();if(k.height>=120&&k.width>=160)return C}}return null}function v(){const A=i.value;if(A)try{A.style.removeProperty("--pin-hint-lift");const N=A.getBoundingClientRect();if(!N.height)return;const C=Math.round(N.bottom-window.innerHeight);C>0&&A.style.setProperty("--pin-hint-lift",C+8+"px")}catch{}}function $(A){const N=i.value;if(!N||!(A!=null&&A.querySelector))return;let C=0;try{const b=A.querySelector(".mapboxgl-ctrl-bottom-right .mapboxgl-ctrl-attrib, .mapboxgl-ctrl-bottom-right .doxa-attribution, .doxa-attribution");if(b){const T=b.getBoundingClientRect(),k=N.parentElement,E=k?k.getBoundingClientRect():null;if(C=E?Math.max(T.height||0,E.bottom-T.top):T.height||0,f!==b&&typeof ResizeObserver<"u"){if(c)try{c.disconnect()}catch{}f=b,c=new ResizeObserver(()=>$(A)),c.observe(b)}}}catch{}const _=Math.min(Math.max(Math.ceil(C)||20,20),72);N.style.setProperty("--pin-hint-attrib-clear",_+"px"),v()}return qt(()=>{var _,b,T;const A=Mt(),N=(T=(b=(_=A==null?void 0:A.proxy)==null?void 0:_.$el)==null?void 0:b.getRootNode)==null?void 0:T.call(b);if(!N||typeof N.querySelector!="function")return;let C=0;a=setInterval(()=>{C++;const k=N.querySelector("canvas");k?(clearInterval(a),a=null,r.value=!0,Hn(()=>{const E=m(k,N),x=i.value;if(E&&x&&x.parentElement!==E)try{E.appendChild(x),l=E}catch{}$(N),v();try{const O=i.value&&i.value.offsetParent||null;if(O&&typeof ResizeObserver<"u"){if(u)try{u.disconnect()}catch{}u=new ResizeObserver(()=>v()),u.observe(O)}}catch{}})):C>40&&(clearInterval(a),a=null)},300)}),zt(()=>{var A;if(a&&clearInterval(a),c){try{c.disconnect()}catch{}c=null}if(f=null,u){try{u.disconnect()}catch{}u=null}if(l&&((A=i.value)==null?void 0:A.parentElement)===l)try{l.removeChild(i.value)}catch{}l=null}),Wt(` + */const bh="9.14.5";function yh(){typeof __VUE_I18N_FULL_INSTALL__!="boolean"&&(Rt().__VUE_I18N_FULL_INSTALL__=!0),typeof __VUE_I18N_LEGACY_API__!="boolean"&&(Rt().__VUE_I18N_LEGACY_API__=!0),typeof __INTLIFY_JIT_COMPILATION__!="boolean"&&(Rt().__INTLIFY_JIT_COMPILATION__=!1),typeof __INTLIFY_DROP_MESSAGE_COMPILER__!="boolean"&&(Rt().__INTLIFY_DROP_MESSAGE_COMPILER__=!1),typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(Rt().__INTLIFY_PROD_DEVTOOLS__=!1)}const vh=Jf.__EXTEND_POINT__,Dt=tr(vh);Dt(),Dt(),Dt(),Dt(),Dt(),Dt(),Dt(),Dt(),Dt();const Cl=dt.__EXTEND_POINT__,Ke=tr(Cl),Fe={UNEXPECTED_RETURN_TYPE:Cl,INVALID_ARGUMENT:Ke(),MUST_BE_CALL_SETUP_TOP:Ke(),NOT_INSTALLED:Ke(),NOT_AVAILABLE_IN_LEGACY_MODE:Ke(),REQUIRED_VALUE:Ke(),INVALID_VALUE:Ke(),CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN:Ke(),NOT_INSTALLED_WITH_PROVIDE:Ke(),UNEXPECTED_ERROR:Ke(),NOT_COMPATIBLE_LEGACY_VUE_I18N:Ke(),BRIDGE_SUPPORT_VUE_2_ONLY:Ke(),MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION:Ke(),NOT_AVAILABLE_COMPOSITION_IN_LEGACY:Ke(),__EXTEND_POINT__:Ke()};function Me(e,...t){return Sn(e,null,void 0)}const ms=Xt("__translateVNode"),_s=Xt("__datetimeParts"),bs=Xt("__numberParts"),Ol=Xt("__setPluralRules"),Nl=Xt("__injectWithOption"),ys=Xt("__dispose");function po(e){if(!ge(e)||kt(e))return e;for(const t in e)if(ut(e,t))if(!t.includes("."))ge(e[t])&&po(e[t]);else{const n=t.split("."),o=n.length-1;let s=e,r=!1;for(let i=0;i{if("locale"in a&&"resource"in a){const{locale:l,resource:c}=a;l?(i[l]=i[l]||me(),or(c,i[l])):or(c,i)}else z(a)&&or(JSON.parse(a),i)}),s==null&&r)for(const a in i)ut(i,a)&&po(i[a]);return i}function Al(e){return e.type}function El(e,t,n){let o=ge(t.messages)?t.messages:me();"__i18nGlobal"in n&&(o=ar(e.locale.value,{messages:o,__i18n:n.__i18nGlobal}));const s=Object.keys(o);s.length&&s.forEach(r=>{e.mergeLocaleMessage(r,o[r])});{if(ge(t.datetimeFormats)){const r=Object.keys(t.datetimeFormats);r.length&&r.forEach(i=>{e.mergeDateTimeFormat(i,t.datetimeFormats[i])})}if(ge(t.numberFormats)){const r=Object.keys(t.numberFormats);r.length&&r.forEach(i=>{e.mergeNumberFormat(i,t.numberFormats[i])})}}}function Tl(e){return ve(Qn,null,e,0)}const Sl="__INTLIFY_META__",Pl=()=>[],wh=()=>!1;let Fl=0;function xl(e){return(t,n,o,s)=>e(n,o,It()||void 0,s)}const $h=()=>{const e=It();let t=null;return e&&(t=Al(e)[Sl])?{[Sl]:t}:null};function vs(e={},t){const{__root:n,__injectWithOption:o}=e,s=n===void 0,r=e.flatJson,i=Qo?re:jn,a=!!e.translateExistCompatible;let l=ce(e.inheritLocale)?e.inheritLocale:!0;const c=i(n&&l?n.locale.value:z(e.locale)?e.locale:xn),u=i(n&&l?n.fallbackLocale.value:z(e.fallbackLocale)||Ce(e.fallbackLocale)||se(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:c.value),g=i(ar(c.value,e)),f=i(se(e.datetimeFormats)?e.datetimeFormats:{[c.value]:{}}),_=i(se(e.numberFormats)?e.numberFormats:{[c.value]:{}});let v=n?n.missingWarn:ce(e.missingWarn)||Jt(e.missingWarn)?e.missingWarn:!0,k=n?n.fallbackWarn:ce(e.fallbackWarn)||Jt(e.fallbackWarn)?e.fallbackWarn:!0,O=n?n.fallbackRoot:ce(e.fallbackRoot)?e.fallbackRoot:!0,P=!!e.fallbackFormat,N=we(e.missing)?e.missing:null,h=we(e.missing)?xl(e.missing):null,b=we(e.postTranslation)?e.postTranslation:null,A=n?n.warnHtmlMessage:ce(e.warnHtmlMessage)?e.warnHtmlMessage:!0,C=!!e.escapeParameter;const E=n?n.modifiers:se(e.modifiers)?e.modifiers:{};let F=e.pluralRules||n&&n.pluralRules,$;$=(()=>{s&&cl(null);const T={version:bh,locale:c.value,fallbackLocale:u.value,messages:g.value,modifiers:E,pluralRules:F,missing:h===null?void 0:h,missingWarn:v,fallbackWarn:k,fallbackFormat:P,unresolving:!0,postTranslation:b===null?void 0:b,warnHtmlMessage:A,escapeParameter:C,messageResolver:e.messageResolver,messageCompiler:e.messageCompiler,__meta:{framework:"vue"}};T.datetimeFormats=f.value,T.numberFormats=_.value,T.__datetimeFormatters=se($)?$.__datetimeFormatters:void 0,T.__numberFormatters=se($)?$.__numberFormatters:void 0;const M=lh(T);return s&&cl(M),M})(),uo($,c.value,u.value);function U(){return[c.value,u.value,g.value,f.value,_.value]}const K=ie({get:()=>c.value,set:T=>{c.value=T,$.locale=c.value}}),ne=ie({get:()=>u.value,set:T=>{u.value=T,$.fallbackLocale=u.value,uo($,c.value,T)}}),ue=ie(()=>g.value),q=ie(()=>f.value),W=ie(()=>_.value);function X(){return we(b)?b:null}function le(T){b=T,$.postTranslation=T}function Ee(){return N}function Ot(T){T!==null&&(h=xl(T)),N=T,$.missing=h}const xe=(T,M,Z,ae,$e,ze)=>{U();let Ge;try{__INTLIFY_PROD_DEVTOOLS__,s||($.fallbackContext=n?ah():void 0),Ge=T($)}finally{__INTLIFY_PROD_DEVTOOLS__,s||($.fallbackContext=void 0)}if(Z!=="translate exists"&&Ae(Ge)&&Ge===ir||Z==="translate exists"&&!Ge){const[mn,Ns]=M();return n&&O?ae(n):$e(mn)}else{if(ze(Ge))return Ge;throw Me(Fe.UNEXPECTED_RETURN_TYPE)}};function Re(...T){return xe(M=>Reflect.apply(hl,null,[M,...T]),()=>gs(...T),"translate",M=>Reflect.apply(M.t,M,[...T]),M=>M,M=>z(M))}function on(...T){const[M,Z,ae]=T;if(ae&&!ge(ae))throw Me(Fe.INVALID_ARGUMENT);return Re(M,Z,We({resolvedMessage:!0},ae||{}))}function rn(...T){return xe(M=>Reflect.apply(bl,null,[M,...T]),()=>fs(...T),"datetime format",M=>Reflect.apply(M.d,M,[...T]),()=>tl,M=>z(M))}function hn(...T){return xe(M=>Reflect.apply(wl,null,[M,...T]),()=>hs(...T),"number format",M=>Reflect.apply(M.n,M,[...T]),()=>tl,M=>z(M))}function gt(T){return T.map(M=>z(M)||Ae(M)||ce(M)?Tl(String(M)):M)}const Ut={normalize:gt,interpolate:T=>T,type:"vnode"};function sn(...T){return xe(M=>{let Z;const ae=M;try{ae.processor=Ut,Z=Reflect.apply(hl,null,[ae,...T])}finally{ae.processor=null}return Z},()=>gs(...T),"translate",M=>M[ms](...T),M=>[Tl(M)],M=>Ce(M))}function st(...T){return xe(M=>Reflect.apply(wl,null,[M,...T]),()=>hs(...T),"number format",M=>M[bs](...T),Pl,M=>z(M)||Ce(M))}function In(...T){return xe(M=>Reflect.apply(bl,null,[M,...T]),()=>fs(...T),"datetime format",M=>M[_s](...T),Pl,M=>z(M)||Ce(M))}function m(T){F=T,$.pluralRules=F}function w(T,M){return xe(()=>{if(!T)return!1;const Z=z(M)?M:c.value,ae=B(Z),$e=$.messageResolver(ae,T);return a?$e!=null:kt($e)||rt($e)||z($e)},()=>[T],"translate exists",Z=>Reflect.apply(Z.te,Z,[T,M]),wh,Z=>ce(Z))}function y(T){let M=null;const Z=Qa($,u.value,c.value);for(let ae=0;ae{l&&(c.value=T,$.locale=T,uo($,c.value,u.value))}),ot(n.fallbackLocale,T=>{l&&(u.value=T,$.fallbackLocale=T,uo($,c.value,u.value))}));const G={id:Fl,locale:K,fallbackLocale:ne,get inheritLocale(){return l},set inheritLocale(T){l=T,T&&n&&(c.value=n.locale.value,u.value=n.fallbackLocale.value,uo($,c.value,u.value))},get availableLocales(){return Object.keys(g.value).sort()},messages:ue,get modifiers(){return E},get pluralRules(){return F||{}},get isGlobal(){return s},get missingWarn(){return v},set missingWarn(T){v=T,$.missingWarn=v},get fallbackWarn(){return k},set fallbackWarn(T){k=T,$.fallbackWarn=k},get fallbackRoot(){return O},set fallbackRoot(T){O=T},get fallbackFormat(){return P},set fallbackFormat(T){P=T,$.fallbackFormat=P},get warnHtmlMessage(){return A},set warnHtmlMessage(T){A=T,$.warnHtmlMessage=T},get escapeParameter(){return C},set escapeParameter(T){C=T,$.escapeParameter=T},t:Re,getLocaleMessage:B,setLocaleMessage:R,mergeLocaleMessage:V,getPostTranslationHandler:X,setPostTranslationHandler:le,getMissingHandler:Ee,setMissingHandler:Ot,[Ol]:m};return G.datetimeFormats=q,G.numberFormats=W,G.rt=on,G.te=w,G.tm=x,G.d=rn,G.n=hn,G.getDateTimeFormat=j,G.setDateTimeFormat=p,G.mergeDateTimeFormat=d,G.getNumberFormat=S,G.setNumberFormat=L,G.mergeNumberFormat=Y,G[Nl]=o,G[ms]=sn,G[_s]=In,G[bs]=st,G}function kh(e){const t=z(e.locale)?e.locale:xn,n=z(e.fallbackLocale)||Ce(e.fallbackLocale)||se(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:t,o=we(e.missing)?e.missing:void 0,s=ce(e.silentTranslationWarn)||Jt(e.silentTranslationWarn)?!e.silentTranslationWarn:!0,r=ce(e.silentFallbackWarn)||Jt(e.silentFallbackWarn)?!e.silentFallbackWarn:!0,i=ce(e.fallbackRoot)?e.fallbackRoot:!0,a=!!e.formatFallbackMessages,l=se(e.modifiers)?e.modifiers:{},c=e.pluralizationRules,u=we(e.postTranslation)?e.postTranslation:void 0,g=z(e.warnHtmlInMessage)?e.warnHtmlInMessage!=="off":!0,f=!!e.escapeParameterHtml,_=ce(e.sync)?e.sync:!0;let v=e.messages;if(se(e.sharedMessages)){const C=e.sharedMessages;v=Object.keys(C).reduce((F,$)=>{const D=F[$]||(F[$]={});return We(D,C[$]),F},v||{})}const{__i18n:k,__root:O,__injectWithOption:P}=e,N=e.datetimeFormats,h=e.numberFormats,b=e.flatJson,A=e.translateExistCompatible;return{locale:t,fallbackLocale:n,messages:v,flatJson:b,datetimeFormats:N,numberFormats:h,missing:o,missingWarn:s,fallbackWarn:r,fallbackRoot:i,fallbackFormat:a,modifiers:l,pluralRules:c,postTranslation:u,warnHtmlMessage:g,escapeParameter:f,messageResolver:e.messageResolver,inheritLocale:_,translateExistCompatible:A,__i18n:k,__root:O,__injectWithOption:P}}function ws(e={},t){{const n=vs(kh(e)),{__extender:o}=e,s={id:n.id,get locale(){return n.locale.value},set locale(r){n.locale.value=r},get fallbackLocale(){return n.fallbackLocale.value},set fallbackLocale(r){n.fallbackLocale.value=r},get messages(){return n.messages.value},get datetimeFormats(){return n.datetimeFormats.value},get numberFormats(){return n.numberFormats.value},get availableLocales(){return n.availableLocales},get formatter(){return{interpolate(){return[]}}},set formatter(r){},get missing(){return n.getMissingHandler()},set missing(r){n.setMissingHandler(r)},get silentTranslationWarn(){return ce(n.missingWarn)?!n.missingWarn:n.missingWarn},set silentTranslationWarn(r){n.missingWarn=ce(r)?!r:r},get silentFallbackWarn(){return ce(n.fallbackWarn)?!n.fallbackWarn:n.fallbackWarn},set silentFallbackWarn(r){n.fallbackWarn=ce(r)?!r:r},get modifiers(){return n.modifiers},get formatFallbackMessages(){return n.fallbackFormat},set formatFallbackMessages(r){n.fallbackFormat=r},get postTranslation(){return n.getPostTranslationHandler()},set postTranslation(r){n.setPostTranslationHandler(r)},get sync(){return n.inheritLocale},set sync(r){n.inheritLocale=r},get warnHtmlInMessage(){return n.warnHtmlMessage?"warn":"off"},set warnHtmlInMessage(r){n.warnHtmlMessage=r!=="off"},get escapeParameterHtml(){return n.escapeParameter},set escapeParameterHtml(r){n.escapeParameter=r},get preserveDirectiveContent(){return!0},set preserveDirectiveContent(r){},get pluralizationRules(){return n.pluralRules||{}},__composer:n,t(...r){const[i,a,l]=r,c={};let u=null,g=null;if(!z(i))throw Me(Fe.INVALID_ARGUMENT);const f=i;return z(a)?c.locale=a:Ce(a)?u=a:se(a)&&(g=a),Ce(l)?u=l:se(l)&&(g=l),Reflect.apply(n.t,n,[f,u||g||{},c])},rt(...r){return Reflect.apply(n.rt,n,[...r])},tc(...r){const[i,a,l]=r,c={plural:1};let u=null,g=null;if(!z(i))throw Me(Fe.INVALID_ARGUMENT);const f=i;return z(a)?c.locale=a:Ae(a)?c.plural=a:Ce(a)?u=a:se(a)&&(g=a),z(l)?c.locale=l:Ce(l)?u=l:se(l)&&(g=l),Reflect.apply(n.t,n,[f,u||g||{},c])},te(r,i){return n.te(r,i)},tm(r){return n.tm(r)},getLocaleMessage(r){return n.getLocaleMessage(r)},setLocaleMessage(r,i){n.setLocaleMessage(r,i)},mergeLocaleMessage(r,i){n.mergeLocaleMessage(r,i)},d(...r){return Reflect.apply(n.d,n,[...r])},getDateTimeFormat(r){return n.getDateTimeFormat(r)},setDateTimeFormat(r,i){n.setDateTimeFormat(r,i)},mergeDateTimeFormat(r,i){n.mergeDateTimeFormat(r,i)},n(...r){return Reflect.apply(n.n,n,[...r])},getNumberFormat(r){return n.getNumberFormat(r)},setNumberFormat(r,i){n.setNumberFormat(r,i)},mergeNumberFormat(r,i){n.mergeNumberFormat(r,i)},getChoiceIndex(r,i){return-1}};return s.__extender=o,s}}const $s={tag:{type:[String,Object]},locale:{type:String},scope:{type:String,validator:e=>e==="parent"||e==="global",default:"parent"},i18n:{type:Object}};function Ch({slots:e},t){return t.length===1&&t[0]==="default"?(e.default?e.default():[]).reduce((o,s)=>[...o,...s.type===de?s.children:[s]],[]):t.reduce((n,o)=>{const s=e[o];return s&&(n[o]=s()),n},me())}function Ll(e){return de}const Il=Kn({name:"i18n-t",props:We({keypath:{type:String,required:!0},plural:{type:[Number,String],validator:e=>Ae(e)||!isNaN(e)}},$s),setup(e,t){const{slots:n,attrs:o}=t,s=e.i18n||tn({useScope:e.scope,__useComponent:!0});return()=>{const r=Object.keys(n).filter(g=>g!=="_"),i=me();e.locale&&(i.locale=e.locale),e.plural!==void 0&&(i.plural=z(e.plural)?+e.plural:e.plural);const a=Ch(t,r),l=s[ms](e.keypath,a,i),c=We(me(),o),u=z(e.tag)||ge(e.tag)?e.tag:Ll();return sa(u,c,l)}}});function Oh(e){return Ce(e)&&!z(e[0])}function Ml(e,t,n,o){const{slots:s,attrs:r}=t;return()=>{const i={part:!0};let a=me();e.locale&&(i.locale=e.locale),z(e.format)?i.key=e.format:ge(e.format)&&(z(e.format.key)&&(i.key=e.format.key),a=Object.keys(e.format).reduce((f,_)=>n.includes(_)?We(me(),f,{[_]:e.format[_]}):f,me()));const l=o(e.value,i,a);let c=[i.key];Ce(l)?c=l.map((f,_)=>{const v=s[f.type],k=v?v({[f.type]:f.value,index:_,parts:l}):[f.value];return Oh(k)&&(k[0].key=`${f.type}-${_}`),k}):z(l)&&(c=[l]);const u=We(me(),r),g=z(e.tag)||ge(e.tag)?e.tag:Ll();return sa(g,u,c)}}const Rl=Kn({name:"i18n-n",props:We({value:{type:Number,required:!0},format:{type:[String,Object]}},$s),setup(e,t){const n=e.i18n||tn({useScope:e.scope,__useComponent:!0});return Ml(e,t,$l,(...o)=>n[bs](...o))}}),Bl=Kn({name:"i18n-d",props:We({value:{type:[Number,Date],required:!0},format:{type:[String,Object]}},$s),setup(e,t){const n=e.i18n||tn({useScope:e.scope,__useComponent:!0});return Ml(e,t,yl,(...o)=>n[_s](...o))}});function Nh(e,t){const n=e;if(e.mode==="composition")return n.__getInstance(t)||e.global;{const o=n.__getInstance(t);return o!=null?o.__composer:e.global.__composer}}function Ah(e){const t=i=>{const{instance:a,modifiers:l,value:c}=i;if(!a||!a.$)throw Me(Fe.UNEXPECTED_ERROR);const u=Nh(e,a.$),g=Dl(c);return[Reflect.apply(u.t,u,[...Wl(g)]),u]};return{created:(i,a)=>{const[l,c]=t(a);Qo&&e.global===c&&(i.__i18nWatcher=ot(c.locale,()=>{a.instance&&a.instance.$forceUpdate()})),i.__composer=c,i.textContent=l},unmounted:i=>{Qo&&i.__i18nWatcher&&(i.__i18nWatcher(),i.__i18nWatcher=void 0,delete i.__i18nWatcher),i.__composer&&(i.__composer=void 0,delete i.__composer)},beforeUpdate:(i,{value:a})=>{if(i.__composer){const l=i.__composer,c=Dl(a);i.textContent=Reflect.apply(l.t,l,[...Wl(c)])}},getSSRProps:i=>{const[a]=t(i);return{textContent:a}}}}function Dl(e){if(z(e))return{path:e};if(se(e)){if(!("path"in e))throw Me(Fe.REQUIRED_VALUE,"path");return e}else throw Me(Fe.INVALID_VALUE)}function Wl(e){const{path:t,locale:n,args:o,choice:s,plural:r}=e,i={},a=o||{};return z(n)&&(i.locale=n),Ae(s)&&(i.plural=s),Ae(r)&&(i.plural=r),[t,a,i]}function Eh(e,t,...n){const o=se(n[0])?n[0]:{},s=!!o.useI18nComponentName;(ce(o.globalInstall)?o.globalInstall:!0)&&([s?"i18n":Il.name,"I18nT"].forEach(i=>e.component(i,Il)),[Rl.name,"I18nN"].forEach(i=>e.component(i,Rl)),[Bl.name,"I18nD"].forEach(i=>e.component(i,Bl))),e.directive("t",Ah(t))}function Th(e,t,n){return{beforeCreate(){const o=It();if(!o)throw Me(Fe.UNEXPECTED_ERROR);const s=this.$options;if(s.i18n){const r=s.i18n;if(s.__i18n&&(r.__i18n=s.__i18n),r.__root=t,this===this.$root)this.$i18n=Gl(e,r);else{r.__injectWithOption=!0,r.__extender=n.__vueI18nExtend,this.$i18n=ws(r);const i=this.$i18n;i.__extender&&(i.__disposer=i.__extender(this.$i18n))}}else if(s.__i18n)if(this===this.$root)this.$i18n=Gl(e,s);else{this.$i18n=ws({__i18n:s.__i18n,__injectWithOption:!0,__extender:n.__vueI18nExtend,__root:t});const r=this.$i18n;r.__extender&&(r.__disposer=r.__extender(this.$i18n))}else this.$i18n=e;s.__i18nGlobal&&El(t,s,s),this.$t=(...r)=>this.$i18n.t(...r),this.$rt=(...r)=>this.$i18n.rt(...r),this.$tc=(...r)=>this.$i18n.tc(...r),this.$te=(r,i)=>this.$i18n.te(r,i),this.$d=(...r)=>this.$i18n.d(...r),this.$n=(...r)=>this.$i18n.n(...r),this.$tm=r=>this.$i18n.tm(r),n.__setInstance(o,this.$i18n)},mounted(){},unmounted(){const o=It();if(!o)throw Me(Fe.UNEXPECTED_ERROR);const s=this.$i18n;delete this.$t,delete this.$rt,delete this.$tc,delete this.$te,delete this.$d,delete this.$n,delete this.$tm,s.__disposer&&(s.__disposer(),delete s.__disposer,delete s.__extender),n.__deleteInstance(o),delete this.$i18n}}}function Gl(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[Ol](t.pluralizationRules||e.pluralizationRules);const n=ar(e.locale,{messages:t.messages,__i18n:t.__i18n});return Object.keys(n).forEach(o=>e.mergeLocaleMessage(o,n[o])),t.datetimeFormats&&Object.keys(t.datetimeFormats).forEach(o=>e.mergeDateTimeFormat(o,t.datetimeFormats[o])),t.numberFormats&&Object.keys(t.numberFormats).forEach(o=>e.mergeNumberFormat(o,t.numberFormats[o])),e}const Sh=Xt("global-vue-i18n");function Ph(e={},t){const n=__VUE_I18N_LEGACY_API__&&ce(e.legacy)?e.legacy:__VUE_I18N_LEGACY_API__,o=ce(e.globalInjection)?e.globalInjection:!0,s=__VUE_I18N_LEGACY_API__&&n?!!e.allowComposition:!0,r=new Map,[i,a]=Fh(e,n),l=Xt("");function c(f){return r.get(f)||null}function u(f,_){r.set(f,_)}function g(f){r.delete(f)}{const f={get mode(){return __VUE_I18N_LEGACY_API__&&n?"legacy":"composition"},get allowComposition(){return s},async install(_,...v){if(_.__VUE_I18N_SYMBOL__=l,_.provide(_.__VUE_I18N_SYMBOL__,f),se(v[0])){const P=v[0];f.__composerExtend=P.__composerExtend,f.__vueI18nExtend=P.__vueI18nExtend}let k=null;!n&&o&&(k=Gh(_,f.global)),__VUE_I18N_FULL_INSTALL__&&Eh(_,f,...v),__VUE_I18N_LEGACY_API__&&n&&_.mixin(Th(a,a.__composer,f));const O=_.unmount;_.unmount=()=>{k&&k(),f.dispose(),O()}},get global(){return a},dispose(){i.stop()},__instances:r,__getInstance:c,__setInstance:u,__deleteInstance:g};return f}}function tn(e={}){const t=It();if(t==null)throw Me(Fe.MUST_BE_CALL_SETUP_TOP);if(!t.isCE&&t.appContext.app!=null&&!t.appContext.app.__VUE_I18N_SYMBOL__)throw Me(Fe.NOT_INSTALLED);const n=xh(t),o=Ih(n),s=Al(t),r=Lh(e,s);if(__VUE_I18N_LEGACY_API__&&n.mode==="legacy"&&!e.__useComponent){if(!n.allowComposition)throw Me(Fe.NOT_AVAILABLE_IN_LEGACY_MODE);return Dh(t,r,o,e)}if(r==="global")return El(o,e,s),o;if(r==="parent"){let l=Mh(n,t,e.__useComponent);return l==null&&(l=o),l}const i=n;let a=i.__getInstance(t);if(a==null){const l=We({},e);"__i18n"in s&&(l.__i18n=s.__i18n),o&&(l.__root=o),a=vs(l),i.__composerExtend&&(a[ys]=i.__composerExtend(a)),Bh(i,t,a),i.__setInstance(t,a)}return a}function Fh(e,t,n){const o=mr();{const s=__VUE_I18N_LEGACY_API__&&t?o.run(()=>ws(e)):o.run(()=>vs(e));if(s==null)throw Me(Fe.UNEXPECTED_ERROR);return[o,s]}}function xh(e){{const t=Ie(e.isCE?Sh:e.appContext.app.__VUE_I18N_SYMBOL__);if(!t)throw Me(e.isCE?Fe.NOT_INSTALLED_WITH_PROVIDE:Fe.UNEXPECTED_ERROR);return t}}function Lh(e,t){return er(e)?"__i18n"in t?"local":"global":e.useScope?e.useScope:"local"}function Ih(e){return e.mode==="composition"?e.global:e.global.__composer}function Mh(e,t,n=!1){let o=null;const s=t.root;let r=Rh(t,n);for(;r!=null;){const i=e;if(e.mode==="composition")o=i.__getInstance(r);else if(__VUE_I18N_LEGACY_API__){const a=i.__getInstance(r);a!=null&&(o=a.__composer,n&&o&&!o[Nl]&&(o=null))}if(o!=null||s===r)break;r=r.parent}return o}function Rh(e,t=!1){return e==null?null:t&&e.vnode.ctx||e.parent}function Bh(e,t,n){zt(()=>{},t),Uo(()=>{const o=n;e.__deleteInstance(t);const s=o[ys];s&&(s(),delete o[ys])},t)}function Dh(e,t,n,o={}){const s=t==="local",r=jn(null);if(s&&e.proxy&&!(e.proxy.$options.i18n||e.proxy.$options.__i18n))throw Me(Fe.MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION);const i=ce(o.inheritLocale)?o.inheritLocale:!z(o.locale),a=re(!s||i?n.locale.value:z(o.locale)?o.locale:xn),l=re(!s||i?n.fallbackLocale.value:z(o.fallbackLocale)||Ce(o.fallbackLocale)||se(o.fallbackLocale)||o.fallbackLocale===!1?o.fallbackLocale:a.value),c=re(ar(a.value,o)),u=re(se(o.datetimeFormats)?o.datetimeFormats:{[a.value]:{}}),g=re(se(o.numberFormats)?o.numberFormats:{[a.value]:{}}),f=s?n.missingWarn:ce(o.missingWarn)||Jt(o.missingWarn)?o.missingWarn:!0,_=s?n.fallbackWarn:ce(o.fallbackWarn)||Jt(o.fallbackWarn)?o.fallbackWarn:!0,v=s?n.fallbackRoot:ce(o.fallbackRoot)?o.fallbackRoot:!0,k=!!o.fallbackFormat,O=we(o.missing)?o.missing:null,P=we(o.postTranslation)?o.postTranslation:null,N=s?n.warnHtmlMessage:ce(o.warnHtmlMessage)?o.warnHtmlMessage:!0,h=!!o.escapeParameter,b=s?n.modifiers:se(o.modifiers)?o.modifiers:{},A=o.pluralRules||s&&n.pluralRules;function C(){return[a.value,l.value,c.value,u.value,g.value]}const E=ie({get:()=>r.value?r.value.locale.value:a.value,set:y=>{r.value&&(r.value.locale.value=y),a.value=y}}),F=ie({get:()=>r.value?r.value.fallbackLocale.value:l.value,set:y=>{r.value&&(r.value.fallbackLocale.value=y),l.value=y}}),$=ie(()=>r.value?r.value.messages.value:c.value),D=ie(()=>u.value),U=ie(()=>g.value);function K(){return r.value?r.value.getPostTranslationHandler():P}function ne(y){r.value&&r.value.setPostTranslationHandler(y)}function ue(){return r.value?r.value.getMissingHandler():O}function q(y){r.value&&r.value.setMissingHandler(y)}function W(y){return C(),y()}function X(...y){return r.value?W(()=>Reflect.apply(r.value.t,null,[...y])):W(()=>"")}function le(...y){return r.value?Reflect.apply(r.value.rt,null,[...y]):""}function Ee(...y){return r.value?W(()=>Reflect.apply(r.value.d,null,[...y])):W(()=>"")}function Ot(...y){return r.value?W(()=>Reflect.apply(r.value.n,null,[...y])):W(()=>"")}function xe(y){return r.value?r.value.tm(y):{}}function Re(y,x){return r.value?r.value.te(y,x):!1}function on(y){return r.value?r.value.getLocaleMessage(y):{}}function rn(y,x){r.value&&(r.value.setLocaleMessage(y,x),c.value[y]=x)}function hn(y,x){r.value&&r.value.mergeLocaleMessage(y,x)}function gt(y){return r.value?r.value.getDateTimeFormat(y):{}}function Gt(y,x){r.value&&(r.value.setDateTimeFormat(y,x),u.value[y]=x)}function Ut(y,x){r.value&&r.value.mergeDateTimeFormat(y,x)}function sn(y){return r.value?r.value.getNumberFormat(y):{}}function st(y,x){r.value&&(r.value.setNumberFormat(y,x),g.value[y]=x)}function In(y,x){r.value&&r.value.mergeNumberFormat(y,x)}const m={get id(){return r.value?r.value.id:-1},locale:E,fallbackLocale:F,messages:$,datetimeFormats:D,numberFormats:U,get inheritLocale(){return r.value?r.value.inheritLocale:i},set inheritLocale(y){r.value&&(r.value.inheritLocale=y)},get availableLocales(){return r.value?r.value.availableLocales:Object.keys(c.value)},get modifiers(){return r.value?r.value.modifiers:b},get pluralRules(){return r.value?r.value.pluralRules:A},get isGlobal(){return r.value?r.value.isGlobal:!1},get missingWarn(){return r.value?r.value.missingWarn:f},set missingWarn(y){r.value&&(r.value.missingWarn=y)},get fallbackWarn(){return r.value?r.value.fallbackWarn:_},set fallbackWarn(y){r.value&&(r.value.missingWarn=y)},get fallbackRoot(){return r.value?r.value.fallbackRoot:v},set fallbackRoot(y){r.value&&(r.value.fallbackRoot=y)},get fallbackFormat(){return r.value?r.value.fallbackFormat:k},set fallbackFormat(y){r.value&&(r.value.fallbackFormat=y)},get warnHtmlMessage(){return r.value?r.value.warnHtmlMessage:N},set warnHtmlMessage(y){r.value&&(r.value.warnHtmlMessage=y)},get escapeParameter(){return r.value?r.value.escapeParameter:h},set escapeParameter(y){r.value&&(r.value.escapeParameter=y)},t:X,getPostTranslationHandler:K,setPostTranslationHandler:ne,getMissingHandler:ue,setMissingHandler:q,rt:le,d:Ee,n:Ot,tm:xe,te:Re,getLocaleMessage:on,setLocaleMessage:rn,mergeLocaleMessage:hn,getDateTimeFormat:gt,setDateTimeFormat:Gt,mergeDateTimeFormat:Ut,getNumberFormat:sn,setNumberFormat:st,mergeNumberFormat:In};function w(y){y.locale.value=a.value,y.fallbackLocale.value=l.value,Object.keys(c.value).forEach(x=>{y.mergeLocaleMessage(x,c.value[x])}),Object.keys(u.value).forEach(x=>{y.mergeDateTimeFormat(x,u.value[x])}),Object.keys(g.value).forEach(x=>{y.mergeNumberFormat(x,g.value[x])}),y.escapeParameter=h,y.fallbackFormat=k,y.fallbackRoot=v,y.fallbackWarn=_,y.missingWarn=f,y.warnHtmlMessage=N}return $i(()=>{if(e.proxy==null||e.proxy.$i18n==null)throw Me(Fe.NOT_AVAILABLE_COMPOSITION_IN_LEGACY);const y=r.value=e.proxy.$i18n.__composer;t==="global"?(a.value=y.locale.value,l.value=y.fallbackLocale.value,c.value=y.messages.value,u.value=y.datetimeFormats.value,g.value=y.numberFormats.value):s&&w(y)}),m}const Wh=["locale","fallbackLocale","availableLocales"],Ul=["t","rt","d","n","tm","te"];function Gh(e,t){const n=Object.create(null);return Wh.forEach(s=>{const r=Object.getOwnPropertyDescriptor(t,s);if(!r)throw Me(Fe.UNEXPECTED_ERROR);const i=Oe(r.value)?{get(){return r.value.value},set(a){r.value.value=a}}:{get(){return r.get&&r.get()}};Object.defineProperty(n,s,i)}),e.config.globalProperties.$i18n=n,Ul.forEach(s=>{const r=Object.getOwnPropertyDescriptor(t,s);if(!r||!r.value)throw Me(Fe.UNEXPECTED_ERROR);Object.defineProperty(e.config.globalProperties,`$${s}`,r)}),()=>{delete e.config.globalProperties.$i18n,Ul.forEach(s=>{delete e.config.globalProperties[`$${s}`]})}}if(yh(),__INTLIFY_JIT_COMPILATION__?rl(gh):rl(dh),oh(Rf),rh(Qa),__INTLIFY_PROD_DEVTOOLS__){const e=Rt();e.__INTLIFY__=!0,Hf(e.__INTLIFY_DEVTOOLS_GLOBAL_HOOK__)}const Uh=Object.assign({"./locales/ar/aria.json":Dp,"./locales/ar/buttons.json":Wp,"./locales/ar/detail.json":Gp,"./locales/ar/legend.json":Up,"./locales/ar/messages.json":jp,"./locales/ar/options.json":Vp,"./locales/ar/prayerLaps.json":Yp,"./locales/ar/regions.json":Hp,"./locales/ar/search.json":zp,"./locales/ar/tabs.json":qp,"./locales/de/aria.json":Kp,"./locales/de/buttons.json":Xp,"./locales/de/detail.json":Jp,"./locales/de/legend.json":Zp,"./locales/de/messages.json":Qp,"./locales/de/options.json":ed,"./locales/de/prayerLaps.json":td,"./locales/de/regions.json":nd,"./locales/de/search.json":od,"./locales/de/tabs.json":rd,"./locales/en/aria.json":sd,"./locales/en/buttons.json":id,"./locales/en/detail.json":ad,"./locales/en/legend.json":ld,"./locales/en/messages.json":cd,"./locales/en/options.json":ud,"./locales/en/popup.json":pd,"./locales/en/prayerLaps.json":dd,"./locales/en/regions.json":gd,"./locales/en/search.json":fd,"./locales/en/tabs.json":hd,"./locales/es/aria.json":md,"./locales/es/buttons.json":_d,"./locales/es/detail.json":bd,"./locales/es/legend.json":yd,"./locales/es/messages.json":vd,"./locales/es/options.json":wd,"./locales/es/prayerLaps.json":$d,"./locales/es/regions.json":kd,"./locales/es/search.json":Cd,"./locales/es/tabs.json":Od,"./locales/fr/aria.json":Nd,"./locales/fr/buttons.json":Ad,"./locales/fr/detail.json":Ed,"./locales/fr/legend.json":Td,"./locales/fr/messages.json":Sd,"./locales/fr/options.json":Pd,"./locales/fr/popup.json":Fd,"./locales/fr/prayerLaps.json":xd,"./locales/fr/regions.json":Ld,"./locales/fr/search.json":Id,"./locales/fr/tabs.json":Md,"./locales/hi/aria.json":Rd,"./locales/hi/buttons.json":Bd,"./locales/hi/detail.json":Dd,"./locales/hi/legend.json":Wd,"./locales/hi/messages.json":Gd,"./locales/hi/options.json":Ud,"./locales/hi/prayerLaps.json":jd,"./locales/hi/regions.json":Vd,"./locales/hi/search.json":Yd,"./locales/it/aria.json":Hd,"./locales/it/buttons.json":zd,"./locales/it/detail.json":qd,"./locales/it/legend.json":Kd,"./locales/it/messages.json":Xd,"./locales/it/options.json":Jd,"./locales/it/prayerLaps.json":Zd,"./locales/it/search.json":Qd,"./locales/pt/aria.json":eg,"./locales/pt/buttons.json":tg,"./locales/pt/detail.json":ng,"./locales/pt/legend.json":og,"./locales/pt/messages.json":rg,"./locales/pt/options.json":sg,"./locales/pt/prayerLaps.json":ig,"./locales/pt/regions.json":ag,"./locales/pt/search.json":lg,"./locales/pt/tabs.json":cg,"./locales/ro/aria.json":ug,"./locales/ro/buttons.json":pg,"./locales/ro/detail.json":dg,"./locales/ro/legend.json":gg,"./locales/ro/messages.json":fg,"./locales/ro/options.json":hg,"./locales/ro/prayerLaps.json":mg,"./locales/ro/search.json":_g,"./locales/ru/aria.json":bg,"./locales/ru/buttons.json":yg,"./locales/ru/detail.json":vg,"./locales/ru/legend.json":wg,"./locales/ru/messages.json":$g,"./locales/ru/options.json":kg,"./locales/ru/prayerLaps.json":Cg,"./locales/ru/regions.json":Og,"./locales/ru/search.json":Ng,"./locales/ru/tabs.json":Ag,"./locales/zh/aria.json":Eg,"./locales/zh/buttons.json":Tg,"./locales/zh/detail.json":Sg,"./locales/zh/legend.json":Pg,"./locales/zh/messages.json":Fg,"./locales/zh/options.json":xg,"./locales/zh/prayerLaps.json":Lg,"./locales/zh/search.json":Ig}),go={};for(const[e,t]of Object.entries(Uh)){const n=e.match(/\.\/locales\/([^/]+)\/([^/]+)\.json$/);if(!n)continue;const[,o,s]=n;go[o]??(go[o]={}),go[o][s]=t}const jl=["ar","de","en","es","fr","hi","it","pt","ro","ru","zh"];function jh(){var n;const t=(((n=document==null?void 0:document.documentElement)==null?void 0:n.lang)||"").split("-")[0].toLowerCase();return jl.includes(t)?t:"en"}function Vh(){return Ph({legacy:!1,globalInjection:!0,locale:jh(),fallbackLocale:"en",messages:go,missingWarn:!1,fallbackWarn:!1})}function Wt(e,t){const n=t||Yh(e);zt(()=>{var a;const o=It();if(!o)return;const s=(a=o.proxy)==null?void 0:a.$el;if(!s)return;const r=s.getRootNode();if(!(r instanceof ShadowRoot)||r.querySelector(`style[data-shadow-styles="${n}"]`))return;const i=document.createElement("style");i.setAttribute("data-shadow-styles",n),i.textContent=e,r.appendChild(i)})}function Yh(e){let t=0;for(let n=0;n(t==null?void 0:t.theme)==="dark"),s=ie(()=>{var O;return((O=n==null?void 0:n.value)==null?void 0:O.pinHintLabel)||"Tap a coloured dot — someone still needs prayer"}),r=re(!1),i=re(null);let a=null,l=null,c=null,u=null,g=null;function f(){r.value=!1}function _(O,P){var h;let N=O==null?void 0:O.parentElement;for(let b=0;N&&b<12;b++,N=N.parentElement){if(N===P||(h=N.classList)!=null&&h.contains("profile-loader"))return null;let A="";try{A=getComputedStyle(N).position}catch{}if(A&&A!=="static"){const C=N.getBoundingClientRect();if(C.height>=120&&C.width>=160)return N}}return null}function v(){const O=i.value;if(O)try{O.style.removeProperty("--pin-hint-lift");const P=O.getBoundingClientRect();if(!P.height)return;const N=Math.round(P.bottom-window.innerHeight);N>0&&O.style.setProperty("--pin-hint-lift",N+8+"px")}catch{}}function k(O){const P=i.value;if(!P||!(O!=null&&O.querySelector))return;let N=0;try{const b=O.querySelector(".mapboxgl-ctrl-bottom-right .mapboxgl-ctrl-attrib, .mapboxgl-ctrl-bottom-right .doxa-attribution, .doxa-attribution");if(b){const A=b.getBoundingClientRect(),C=P.parentElement,E=C?C.getBoundingClientRect():null;if(N=E?Math.max(A.height||0,E.bottom-A.top):A.height||0,g!==b&&typeof ResizeObserver<"u"){if(c)try{c.disconnect()}catch{}g=b,c=new ResizeObserver(()=>k(O)),c.observe(b)}}}catch{}const h=Math.min(Math.max(Math.ceil(N)||20,20),72);P.style.setProperty("--pin-hint-attrib-clear",h+"px"),v()}return zt(()=>{var h,b,A;const O=It(),P=(A=(b=(h=O==null?void 0:O.proxy)==null?void 0:h.$el)==null?void 0:b.getRootNode)==null?void 0:A.call(b);if(!P||typeof P.querySelector!="function")return;let N=0;a=setInterval(()=>{N++;const C=P.querySelector("canvas");C?(clearInterval(a),a=null,r.value=!0,Hn(()=>{const E=_(C,P),F=i.value;if(E&&F&&F.parentElement!==E)try{E.appendChild(F),l=E}catch{}k(P),v();try{const $=i.value&&i.value.offsetParent||null;if($&&typeof ResizeObserver<"u"){if(u)try{u.disconnect()}catch{}u=new ResizeObserver(()=>v()),u.observe($)}}catch{}})):N>40&&(clearInterval(a),a=null)},300)}),qt(()=>{var O;if(a&&clearInterval(a),c){try{c.disconnect()}catch{}c=null}if(g=null,u){try{u.disconnect()}catch{}u=null}if(l&&((O=i.value)==null?void 0:O.parentElement)===l)try{l.removeChild(i.value)}catch{}l=null}),Wt(` .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; @@ -68,7 +68,7 @@ @media (prefers-reduced-motion: reduce) { .pin-hint, .pin-hint-pill, .pin-hint-dot::after { animation: none !important; } } -`,"pin-hint"),(A,N)=>r.value?(H(),J("div",{key:0,ref_key:"hintEl",ref:i,class:Te(["pin-hint",{dark:o.value}]),role:"status"},[M("span",Mg,[N[0]||(N[0]=M("span",{class:"pin-hint-dot","aria-hidden":"true"},null,-1)),$e(" "+Q(s.value)+" ",1),M("button",{class:"pin-hint-x",type:"button","aria-label":"Dismiss hint",onClick:h},"×")])],2)):Le("",!0)}};let Bg=0;const Dg=es("ui",{state:()=>({_storeInstanceId:++Bg,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(n=>n.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 n=this.isDarkTheme;document.documentElement.setAttribute("data-theme",n?"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:n="info",duration:o=this.toastDuration,action:s=null,persistent:r=!1}=e,i={id:this.nextToastId++,message:t,type:n,duration:o,action:s,persistent:r,createdAt:Date.now()};return this.toasts.push(i),!r&&o>0&&setTimeout(()=>{this.removeToast(i.id)},o),i.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(n=>n.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(n=>{for(const o of n)this.updateWindowSize(o.contentRect.width,o.contentRect.height)}).observe(document.documentElement),window.matchMedia&&(window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",n=>{this.theme==="auto"&&document.documentElement.setAttribute("data-theme",n.matches?"dark":"light")}),window.matchMedia("(prefers-reduced-motion: reduce)").addEventListener("change",n=>{this.reducedMotion=n.matches,document.documentElement.setAttribute("data-reduced-motion",n.matches)}))}}}),Rg=es("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,n={}){let o=1.5;n.zoom!==void 0?o=n.zoom:t&&typeof t.getZoom=="function"&&(o=t.getZoom());let s=[0,0];if(n.center)s=n.center;else if(t&&typeof t.getCenter=="function"){const r=t.getCenter();r&&(s=[r.lng,r.lat])}this.maps[e]={instance:t,config:n,isReady:!1,zoom:o,center:s,registeredAt:Date.now()},this.activeMapId||(this.activeMapId=e)},setMapReady(e){const t=this.maps[e];t&&(t.isReady=!0)},updateMapState(e,t){const n=this.maps[e];n&&Object.assign(n,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()}}}),Wg=es("data",{state:()=>({sources:{},loadingStates:{}}),actions:{async load(e,t){if(!this.sources[e]){this.loadingStates[e]={isLoading:!0,error:null};try{const n=await t();this.sources[e]=vn({features:n,timestamp:Date.now()}),this.loadingStates[e]={isLoading:!1,error:null}}catch(n){console.error(`[dataStore] Failed to load source "${e}":`,n),this.loadingStates[e]={isLoading:!1,error:n}}}},clearSource(e){delete this.sources[e],delete this.loadingStates[e]},cacheSourceData(e,t){this.sources[e]=vn({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 n;return((n=e.sources[t])==null?void 0:n.features)??null},isLoading:e=>t=>{var n;return((n=e.loadingStates[t])==null?void 0:n.isLoading)??!1},getError:e=>t=>{var n;return((n=e.loadingStates[t])==null?void 0:n.error)??null}}}),Ug={activeSource:"pray-tools"},jg=".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}",Gg=(e,t)=>{const n=e.__vccOpts||e;for(const[o,s]of t)n[o]=s;return n},Yg={class:"profile-loader"},Vg={key:0,class:"profile-error"},Hg={key:1,class:"profile-error"},qg=Gg({__name:"ProfileLoader",props:{profileConfig:{type:String,default:""}},setup(e){var T;const n=e,o=De("profileConfig",null),s=ie(()=>{var E;if(!n.profileConfig)return null;let k;try{k=JSON.parse(n.profileConfig)}catch{return console.error("[ProfileLoader] Invalid profile-config JSON:",n.profileConfig),null}if(k&&k.assetsBase===void 0){const x=(E=o==null?void 0:o.value)==null?void 0:E.assetsBase;typeof x=="string"&&x&&(k.assetsBase=x)}return k}),r=ie(()=>{var k;return((k=s.value)==null?void 0:k.profile)||null}),i=Fp(),a=ie(()=>{var E;const k=(E=s.value)==null?void 0:E.tk;return typeof k=="string"&&k?k:i.value||""});ot(()=>{var k;return(k=s.value)==null?void 0:k.tk},k=>{typeof k=="string"&&k&&Na(k)},{immediate:!0});const l=ie(()=>{var k;return((k=s.value)==null?void 0:k.dataSource)||Ug.activeSource}),c=ie(()=>{var k;return((k=s.value)==null?void 0:k.colorSet)||"default"}),u=ie(()=>!1),f=ie(()=>{var k;return((k=s.value)==null?void 0:k.pinHint)!==!1}),h=ie(()=>{var E,x;const k=(((E=s.value)==null?void 0:E.locale)||((x=s.value)==null?void 0:x.lang)||"").split("-")[0].toLowerCase();return Ul.includes(k)?k:""}),m=De("appI18n",null);Gc(()=>{h.value&&m&&(m.global.locale.value=h.value)});const v=ie(()=>{var k,E;return h.value||((E=(k=m==null?void 0:m.global)==null?void 0:k.locale)==null?void 0:E.value)||"en"}),$=ie(()=>{var k;return((k=s.value)==null?void 0:k.instanceId)||"doxa-map-"+Math.random().toString(36).slice(2,9)}),A=De("profileModules",null);if(!A)throw new Error('[ProfileLoader] No profileModules provided. Bundle entry must `app.provide("profileModules", import.meta.glob("./*.vue"))`');const N=ie(()=>{if(!r.value)return null;const k=`./${r.value}.vue`;return A[k]?Mp(A[k]):(console.error(`[ProfileLoader] Profile not found: "${r.value}". Available:`,Object.keys(A)),null)});nt("mapboxToken",a),nt("dataSource",l),nt("colorSet",c),nt("profileConfig",s),nt("instanceId",$),nt("lang",v);const C=Dg(),_=Rg(),b=Wg();try{const k=typeof localStorage<"u"?localStorage.getItem("theme"):null;k&&((T=C.setTheme)==null||T.call(C,k))}catch{}return nt("uiStore",C),nt("mapStore",_),nt("dataStore",b),(k,E)=>(H(),J("div",Yg,[s.value?N.value?(H(),Qe(ki(N.value),{key:2})):(H(),J("div",Hg,[M("p",null,[E[1]||(E[1]=$e("⚠️ Profile ",-1)),M("strong",null,'"'+Q(r.value)+'"',1),E[2]||(E[2]=$e(" not found.",-1))])])):(H(),J("div",Vg,[...E[0]||(E[0]=[M("p",null,[$e("⚠️ "),M("strong",null,"doxa-map"),$e(": missing or invalid "),M("code",null,"profile-config"),$e(" prop.")],-1),M("p",null,[$e("Example: "),M("code",null,`profile-config='{"profile":"example-map","tk":"pk.eyJ..."}'`)],-1)])])),N.value&&u.value?(H(),Qe(ki(ze(null)),{key:3})):Le("",!0),N.value&&f.value?(H(),Qe(Pg,{key:4})):Le("",!0)]))}},[["styles",[jg]],["__scopeId","data-v-ba19fc13"]]),zg=Object.assign({"./connectivity-list.vue":()=>cr(()=>Promise.resolve().then(()=>pm),void 0),"./connectivity-map.vue":()=>cr(()=>Promise.resolve().then(()=>s_),void 0),"./data-tables.vue":()=>cr(()=>Promise.resolve().then(()=>L_),void 0)});function Kg(){return bp(qg,{configureApp(e){e.use(Ap()),e.use(Ig()),e.provide("profileModules",zg)}})}const Xg=Kg();typeof customElements<"u"&&(customElements.get("cities-internet-map")||customElements.define("cities-internet-map",Xg));const Jg={countries:[{iso3:"IND",country:"India",region:"Asia",clusters:541,people_groups:856,multi:164,internet_access:"yes",internet_pct:64.9,internet_year:"2024",mobile_per_100:79.4,mobile_year:"2024",national_population:1450935791,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CHN",country:"People's Republic of China",region:"Asia",clusters:130,people_groups:154,multi:19,internet_access:"yes",internet_pct:92,internet_year:"2024",mobile_per_100:131.8,mobile_year:"2024",national_population:1408975e3,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SDN",country:"Sudan",region:"Middle East",clusters:75,people_groups:105,multi:20,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:70.2,mobile_year:"2022",national_population:50448963,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BRA",country:"Brazil",region:"Latin America & Caribbean",clusters:99,people_groups:104,multi:5,internet_access:"yes",internet_pct:84.5,internet_year:"2024",mobile_per_100:101.9,mobile_year:"2024",national_population:211998573,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"LAO",country:"Lao People's Democratic Republic",region:"Asia",clusters:65,people_groups:95,multi:24,internet_access:"yes",internet_pct:65.6,internet_year:"2024",mobile_per_100:64.8,mobile_year:"2023",national_population:7769819,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"TCD",country:"Chad",region:"Africa",clusters:48,people_groups:54,multi:6,internet_access:"no",internet_pct:12.6,internet_year:"2024",mobile_per_100:72.9,mobile_year:"2024",national_population:20299123,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"NGA",country:"Nigeria",region:"Africa",clusters:35,people_groups:38,multi:3,internet_access:"partial",internet_pct:41.2,internet_year:"2024",mobile_per_100:null,mobile_year:null,national_population:232679478,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"IDN",country:"Indonesia",region:"Asia",clusters:35,people_groups:36,multi:1,internet_access:"yes",internet_pct:72.8,internet_year:"2024",mobile_per_100:122.5,mobile_year:"2024",national_population:283487931,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"NPL",country:"Nepal",region:"Asia",clusters:25,people_groups:33,multi:5,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:99.8,mobile_year:"2024",national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ETH",country:"Ethiopia",region:"Africa",clusters:29,people_groups:29,multi:0,internet_access:"no",internet_pct:21.9,internet_year:"2024",mobile_per_100:65.1,mobile_year:"2024",national_population:132059767,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"COL",country:"Colombia",region:"Latin America & Caribbean",clusters:26,people_groups:26,multi:0,internet_access:"yes",internet_pct:79.3,internet_year:"2024",mobile_per_100:174.1,mobile_year:"2024",national_population:52886363,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"PAK",country:"Pakistan",region:"Asia",clusters:21,people_groups:24,multi:2,internet_access:"partial",internet_pct:57.3,internet_year:"2024",mobile_per_100:null,mobile_year:null,national_population:251269164,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SSD",country:"South Sudan",region:"Africa",clusters:22,people_groups:22,multi:0,internet_access:"no",internet_pct:6.7,internet_year:"2019",mobile_per_100:46.6,mobile_year:"2023",national_population:11943408,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"RUS",country:"Russian Federation",region:"Europe",clusters:17,people_groups:21,multi:2,internet_access:"yes",internet_pct:94.4,internet_year:"2024",mobile_per_100:186.1,mobile_year:"2024",national_population:143669648,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"AFG",country:"Afghanistan",region:"Asia",clusters:15,people_groups:21,multi:5,internet_access:"no",internet_pct:16.1,internet_year:"2024",mobile_per_100:60.1,mobile_year:"2024",national_population:42647492,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"IRN",country:"Islamic Republic of Iran",region:"Middle East",clusters:19,people_groups:20,multi:1,internet_access:"yes",internet_pct:85.3,internet_year:"2024",mobile_per_100:174.1,mobile_year:"2024",national_population:91567738,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"DZA",country:"Algeria",region:"Middle East",clusters:15,people_groups:17,multi:2,internet_access:"yes",internet_pct:77.4,internet_year:"2024",mobile_per_100:115.5,mobile_year:"2024",national_population:46814308,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"VNM",country:"Vietnam",region:"Asia",clusters:15,people_groups:16,multi:1,internet_access:"yes",internet_pct:84.2,internet_year:"2024",mobile_per_100:127.6,mobile_year:"2024",national_population:100987686,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"TZA",country:"United Republic of Tanzania",region:"Africa",clusters:16,people_groups:16,multi:0,internet_access:"partial",internet_pct:31.2,internet_year:"2024",mobile_per_100:126.6,mobile_year:"2024",national_population:68560157,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"LBY",country:"Libya",region:"Middle East",clusters:13,people_groups:15,multi:2,internet_access:"yes",internet_pct:82,internet_year:"2024",mobile_per_100:193,mobile_year:"2022",national_population:7381023,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BTN",country:"Bhutan",region:"Asia",clusters:12,people_groups:13,multi:1,internet_access:"yes",internet_pct:91.3,internet_year:"2024",mobile_per_100:99.8,mobile_year:"2024",national_population:791524,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GIN",country:"Guinea",region:"Africa",clusters:13,people_groups:13,multi:0,internet_access:"partial",internet_pct:33.3,internet_year:"2024",mobile_per_100:97.9,mobile_year:"2023",national_population:14754785,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MLI",country:"Mali",region:"Africa",clusters:13,people_groups:13,multi:0,internet_access:"partial",internet_pct:36.8,internet_year:"2024",mobile_per_100:112.1,mobile_year:"2022",national_population:24478595,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MYS",country:"Malaysia",region:"Asia",clusters:11,people_groups:12,multi:1,internet_access:"yes",internet_pct:98,internet_year:"2024",mobile_per_100:139.7,mobile_year:"2024",national_population:35557673,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"AGO",country:"Angola",region:"Africa",clusters:9,people_groups:10,multi:1,internet_access:"partial",internet_pct:40.7,internet_year:"2024",mobile_per_100:69.7,mobile_year:"2024",national_population:37885849,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"PER",country:"Peru",region:"Latin America & Caribbean",clusters:10,people_groups:10,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:124.6,mobile_year:"2024",national_population:34217848,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"YEM",country:"Yemen",region:"Middle East",clusters:8,people_groups:9,multi:1,internet_access:"no",internet_pct:17.5,internet_year:"2019",mobile_per_100:50.9,mobile_year:"2023",national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"COD",country:"Democratic Republic of the Congo",region:"Africa",clusters:8,people_groups:9,multi:1,internet_access:"no",internet_pct:19.7,internet_year:"2024",mobile_per_100:58.5,mobile_year:"2024",national_population:109276265,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BEN",country:"Benin",region:"Africa",clusters:8,people_groups:9,multi:1,internet_access:"partial",internet_pct:34,internet_year:"2024",mobile_per_100:125.9,mobile_year:"2024",national_population:14462724,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SOM",country:"Somalia",region:"Africa",clusters:9,people_groups:9,multi:0,internet_access:"partial",internet_pct:27.9,internet_year:"2024",mobile_per_100:54,mobile_year:"2023",national_population:19009151,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ERI",country:"Eritrea",region:"Africa",clusters:7,people_groups:8,multi:1,internet_access:"no",internet_pct:14.3,internet_year:"2020",mobile_per_100:59.1,mobile_year:"2022",national_population:3535603,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"IRQ",country:"Iraq",region:"Middle East",clusters:7,people_groups:8,multi:1,internet_access:"yes",internet_pct:81.5,internet_year:"2024",mobile_per_100:100.1,mobile_year:"2024",national_population:46042015,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BFA",country:"Burkina Faso",region:"Africa",clusters:7,people_groups:8,multi:1,internet_access:"partial",internet_pct:28.3,internet_year:"2024",mobile_per_100:116.6,mobile_year:"2024",national_population:23548781,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"THA",country:"Thailand",region:"Asia",clusters:8,people_groups:8,multi:0,internet_access:"yes",internet_pct:90.9,internet_year:"2024",mobile_per_100:160.6,mobile_year:"2024",national_population:71668011,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"PSE",country:"State of Palestine",region:"Middle East",clusters:3,people_groups:7,multi:1,internet_access:"yes",internet_pct:86.6,internet_year:"2023",mobile_per_100:76.7,mobile_year:"2023",national_population:5289152,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"OMN",country:"Oman",region:"Middle East",clusters:7,people_groups:7,multi:0,internet_access:"yes",internet_pct:95.3,internet_year:"2024",mobile_per_100:120.6,mobile_year:"2024",national_population:5281538,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MMR",country:"Myanmar",region:"Asia",clusters:7,people_groups:7,multi:0,internet_access:"partial",internet_pct:45.4,internet_year:"2020",mobile_per_100:114.3,mobile_year:"2024",national_population:54500091,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CMR",country:"Cameroon",region:"Africa",clusters:7,people_groups:7,multi:0,internet_access:"partial",internet_pct:46.3,internet_year:"2024",mobile_per_100:108.2,mobile_year:"2024",national_population:29123744,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"TGO",country:"Togo",region:"Africa",clusters:5,people_groups:6,multi:1,internet_access:"partial",internet_pct:39.5,internet_year:"2024",mobile_per_100:null,mobile_year:null,national_population:8406558,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"JPN",country:"Japan",region:"Asia",clusters:6,people_groups:6,multi:0,internet_access:"yes",internet_pct:85.5,internet_year:"2024",mobile_per_100:178.4,mobile_year:"2023",national_population:123975371,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"UGA",country:"Uganda",region:"Africa",clusters:6,people_groups:6,multi:0,internet_access:"no",internet_pct:8.9,internet_year:"2024",mobile_per_100:83.2,mobile_year:"2024",national_population:50015092,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ZMB",country:"Zambia",region:"Africa",clusters:6,people_groups:6,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:108.7,mobile_year:"2024",national_population:21314956,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"VEN",country:"Venezuela",region:"Latin America & Caribbean",clusters:6,people_groups:6,multi:0,internet_access:"yes",internet_pct:76.7,internet_year:"2024",mobile_per_100:71,mobile_year:"2024",national_population:28405543,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"NAM",country:"Namibia",region:"Africa",clusters:6,people_groups:6,multi:0,internet_access:"yes",internet_pct:64.9,internet_year:"2024",mobile_per_100:null,mobile_year:null,national_population:3030131,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BRN",country:"Brunei Darussalam",region:"Asia",clusters:4,people_groups:5,multi:1,internet_access:"yes",internet_pct:96.3,internet_year:"2024",mobile_per_100:118.1,mobile_year:"2024",national_population:462721,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"KEN",country:"Kenya",region:"Africa",clusters:5,people_groups:5,multi:0,internet_access:"partial",internet_pct:35,internet_year:"2024",mobile_per_100:126.5,mobile_year:"2024",national_population:56432944,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SYR",country:"Syrian Arab Republic",region:"Middle East",clusters:5,people_groups:5,multi:0,internet_access:"partial",internet_pct:33.8,internet_year:"2018",mobile_per_100:71.2,mobile_year:"2024",national_population:24672760,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"LBN",country:"Lebanon",region:"Middle East",clusters:4,people_groups:4,multi:0,internet_access:"yes",internet_pct:80.6,internet_year:"2024",mobile_per_100:74,mobile_year:"2022",national_population:5805962,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MOZ",country:"Mozambique",region:"Africa",clusters:4,people_groups:4,multi:0,internet_access:"no",internet_pct:20.5,internet_year:"2024",mobile_per_100:49.5,mobile_year:"2024",national_population:34631766,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MAR",country:"Morocco",region:"Middle East",clusters:4,people_groups:4,multi:0,internet_access:"yes",internet_pct:91.2,internet_year:"2024",mobile_per_100:153.1,mobile_year:"2024",national_population:38081173,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"QAT",country:"Qatar",region:"Middle East",clusters:1,people_groups:3,multi:1,internet_access:"yes",internet_pct:98.1,internet_year:"2024",mobile_per_100:153.6,mobile_year:"2024",national_population:2857822,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SAU",country:"Saudi Arabia",region:"Middle East",clusters:2,people_groups:3,multi:1,internet_access:"yes",internet_pct:100,internet_year:"2024",mobile_per_100:159.5,mobile_year:"2024",national_population:35300280,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"TUR",country:"Türkiye",region:"Europe",clusters:3,people_groups:3,multi:0,internet_access:"yes",internet_pct:87.3,internet_year:"2024",mobile_per_100:null,mobile_year:null,national_population:85518661,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"AZE",country:"Azerbaijan",region:"Asia",clusters:3,people_groups:3,multi:0,internet_access:"yes",internet_pct:90.4,internet_year:"2024",mobile_per_100:109.5,mobile_year:"2024",national_population:10202830,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GMB",country:"Republic of The Gambia",region:"Africa",clusters:3,people_groups:3,multi:0,internet_access:"partial",internet_pct:49.5,internet_year:"2024",mobile_per_100:126.2,mobile_year:"2024",national_population:2759988,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"JOR",country:"Jordan",region:"Middle East",clusters:3,people_groups:3,multi:0,internet_access:"yes",internet_pct:95.6,internet_year:"2024",mobile_per_100:69.6,mobile_year:"2024",national_population:11552876,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ZWE",country:"Zimbabwe",region:"Africa",clusters:3,people_groups:3,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:94.2,mobile_year:"2024",national_population:16634373,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"COM",country:"Comoros",region:"Africa",clusters:3,people_groups:3,multi:0,internet_access:"partial",internet_pct:32.5,internet_year:"2024",mobile_per_100:109.9,mobile_year:"2023",national_population:866628,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"USA",country:"United States of America",region:"Other",clusters:3,people_groups:3,multi:0,internet_access:"yes",internet_pct:94.7,internet_year:"2024",mobile_per_100:113.2,mobile_year:"2024",national_population:340003797,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BGD",country:"Bangladesh",region:"Asia",clusters:3,people_groups:3,multi:0,internet_access:"partial",internet_pct:53.4,internet_year:"2024",mobile_per_100:108.1,mobile_year:"2024",national_population:173562364,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GNB",country:"Guinea-Bissau",region:"Africa",clusters:3,people_groups:3,multi:0,internet_access:"partial",internet_pct:29.8,internet_year:"2024",mobile_per_100:147.2,mobile_year:"2024",national_population:2201352,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"KOS",country:"KOS",region:"Europe",clusters:3,people_groups:3,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MRT",country:"Mauritania",region:"Middle East",clusters:3,people_groups:3,multi:0,internet_access:"partial",internet_pct:45.8,internet_year:"2024",mobile_per_100:92.1,mobile_year:"2024",national_population:5169395,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ESH",country:"Western Sahara",region:"Middle East",clusters:3,people_groups:3,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"TJK",country:"Tajikistan",region:"Asia",clusters:3,people_groups:3,multi:0,internet_access:"partial",internet_pct:55.8,internet_year:"2024",mobile_per_100:76.2,mobile_year:"2023",national_population:10590927,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"EGY",country:"Egypt",region:"Middle East",clusters:3,people_groups:3,multi:0,internet_access:"yes",internet_pct:74.6,internet_year:"2024",mobile_per_100:97.1,mobile_year:"2024",national_population:116538258,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MNG",country:"Mongolia",region:"Asia",clusters:3,people_groups:3,multi:0,internet_access:"yes",internet_pct:85.1,internet_year:"2024",mobile_per_100:140.7,mobile_year:"2024",national_population:3524788,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BHR",country:"Bahrain",region:"Middle East",clusters:1,people_groups:2,multi:1,internet_access:"yes",internet_pct:100,internet_year:"2024",mobile_per_100:159.5,mobile_year:"2024",national_population:1588670,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SUR",country:"Suriname",region:"North America & Non-Spanish Caribbean",clusters:2,people_groups:2,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:142.1,mobile_year:"2024",national_population:634431,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"NER",country:"Niger",region:"Africa",clusters:2,people_groups:2,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:60.6,mobile_year:"2024",national_population:27032412,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ZAF",country:"South Africa",region:"Africa",clusters:2,people_groups:2,multi:0,internet_access:"yes",internet_pct:78.4,internet_year:"2024",mobile_per_100:179.3,mobile_year:"2024",national_population:64007187,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CCK",country:"Cocos (Keeling) Islands",region:"N/A",clusters:2,people_groups:2,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"COG",country:"Republic of the Congo",region:"Africa",clusters:2,people_groups:2,multi:0,internet_access:"partial",internet_pct:47.3,internet_year:"2024",mobile_per_100:95.5,mobile_year:"2024",national_population:6332961,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ARE",country:"United Arab Emirates",region:"Middle East",clusters:2,people_groups:2,multi:0,internet_access:"yes",internet_pct:100,internet_year:"2024",mobile_per_100:203.2,mobile_year:"2024",national_population:10986400,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GAB",country:"Gabon",region:"Africa",clusters:2,people_groups:2,multi:0,internet_access:"yes",internet_pct:68.7,internet_year:"2024",mobile_per_100:125.3,mobile_year:"2024",national_population:2538952,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GUF",country:"French Guiana",region:"N/A",clusters:2,people_groups:2,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CIV",country:"Cote d'Ivoire",region:"Africa",clusters:2,people_groups:2,multi:0,internet_access:"partial",internet_pct:41.4,internet_year:"2024",mobile_per_100:183.9,mobile_year:"2024",national_population:31934230,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"KGZ",country:"Kyrgyzstan",region:"Asia",clusters:2,people_groups:2,multi:0,internet_access:"yes",internet_pct:92,internet_year:"2024",mobile_per_100:107.5,mobile_year:"2024",national_population:7221868,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"LBR",country:"Liberia",region:"Africa",clusters:2,people_groups:2,multi:0,internet_access:"partial",internet_pct:32.2,internet_year:"2024",mobile_per_100:32.1,mobile_year:"2022",national_population:5612817,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SWE",country:"Sweden",region:"Europe",clusters:2,people_groups:2,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:140.7,mobile_year:"2024",national_population:10569709,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"TUN",country:"Tunisia",region:"Middle East",clusters:2,people_groups:2,multi:0,internet_access:"yes",internet_pct:76.5,internet_year:"2024",mobile_per_100:117.6,mobile_year:"2024",national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SLE",country:"Sierra Leone",region:"Africa",clusters:2,people_groups:2,multi:0,internet_access:"partial",internet_pct:25.1,internet_year:"2024",mobile_per_100:107.9,mobile_year:"2022",national_population:8642022,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"AND",country:"Andorra",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:94.4,internet_year:"2024",mobile_per_100:155.7,mobile_year:"2024",national_population:81938,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SEN",country:"Senegal",region:"Africa",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:60.1,internet_year:"2024",mobile_per_100:123.9,mobile_year:"2024",national_population:18501984,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MNE",country:"Montenegro",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:88.9,internet_year:"2024",mobile_per_100:221.7,mobile_year:"2024",national_population:623525,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BOL",country:"Bolivia",region:"Latin America & Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:79.7,internet_year:"2024",mobile_per_100:98,mobile_year:"2024",national_population:12413315,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ECU",country:"Ecuador",region:"Latin America & Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:77.2,internet_year:"2024",mobile_per_100:101.6,mobile_year:"2024",national_population:18135478,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"VIR",country:"Virgin Islands, U.S.",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:91.5,mobile_year:"2022",national_population:104377,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ATG",country:"Antigua and Barbuda",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:72.7,internet_year:"2024",mobile_per_100:200.5,mobile_year:"2022",national_population:93772,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ARM",country:"Armenia",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:81.3,internet_year:"2024",mobile_per_100:134.9,mobile_year:"2024",national_population:3033500,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ABW",country:"Aruba",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:130.6,mobile_year:"2022",national_population:107995,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BHS",country:"Bahamas",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:92.5,internet_year:"2024",mobile_per_100:96.7,mobile_year:"2024",national_population:401283,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BRB",country:"Barbados",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:70.4,internet_year:"2024",mobile_per_100:114.6,mobile_year:"2022",national_population:282467,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BLR",country:"Belarus",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:94.3,internet_year:"2024",mobile_per_100:131.1,mobile_year:"2024",national_population:9132629,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BMU",country:"Bermuda",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:96.7,mobile_year:"2024",national_population:64636,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BIH",country:"Bosnia and Herzegovina",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:86.1,internet_year:"2024",mobile_per_100:121.2,mobile_year:"2024",national_population:3164253,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"VGB",country:"Virgin Islands, British",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:39471,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BGR",country:"Bulgaria",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:82.4,internet_year:"2024",mobile_per_100:118.1,mobile_year:"2024",national_population:6441421,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"KHM",country:"Cambodia",region:"Asia",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:68.5,internet_year:"2024",mobile_per_100:116.1,mobile_year:"2024",national_population:17638801,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CYM",country:"Cayman Islands",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:139.3,mobile_year:"2022",national_population:74457,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CAF",country:"Central African Republic",region:"Africa",clusters:1,people_groups:1,multi:0,internet_access:"no",internet_pct:13.8,internet_year:"2024",mobile_per_100:38.8,mobile_year:"2022",national_population:5330690,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CXR",country:"Christmas Island",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"COK",country:"Cook Islands",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CUB",country:"Cuba",region:"Latin America & Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:70.5,internet_year:"2024",mobile_per_100:72.9,mobile_year:"2024",national_population:10979783,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CUW",country:"Curaçao",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:93.8,mobile_year:"2023",national_population:155967,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CYP",country:"Cyprus",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:89.6,internet_year:"2024",mobile_per_100:156.2,mobile_year:"2024",national_population:1358282,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"DJI",country:"Djibouti",region:"Africa",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:65.3,internet_year:"2024",mobile_per_100:48.5,mobile_year:"2023",national_population:1168722,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"DMA",country:"Dominica",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:82,internet_year:"2024",mobile_per_100:85.2,mobile_year:"2022",national_population:66205,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GNQ",country:"Equatorial Guinea",region:"Africa",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:63.3,internet_year:"2024",mobile_per_100:49.5,mobile_year:"2022",national_population:1892516,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"FRO",country:"Faroe Islands",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:105.8,mobile_year:"2022",national_population:54640,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"FJI",country:"Fiji",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:74.7,internet_year:"2024",mobile_per_100:574.2,mobile_year:"2024",national_population:928784,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"PYF",country:"French Polynesia",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:118.8,mobile_year:"2023",national_population:281807,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GEO",country:"Georgia",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:83.8,internet_year:"2024",mobile_per_100:161.2,mobile_year:"2024",national_population:3812518,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GIB",country:"Gibraltar",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:97.6,mobile_year:"2022",national_population:39329,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GRC",country:"Greece",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:86.3,internet_year:"2024",mobile_per_100:113.6,mobile_year:"2024",national_population:10405134,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GRD",country:"Grenada",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:70.2,internet_year:"2024",mobile_per_100:95.8,mobile_year:"2022",national_population:117207,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GLP",country:"Guadeloupe",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GUM",country:"Guam",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:167777,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GGY",country:"Guernsey",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ISL",country:"Iceland",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:98.2,internet_year:"2024",mobile_per_100:120.9,mobile_year:"2024",national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"KIR",country:"Kiribati",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:89.4,internet_year:"2024",mobile_per_100:53.5,mobile_year:"2024",national_population:134518,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"JAM",country:"Jamaica",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:90.1,internet_year:"2024",mobile_per_100:117.7,mobile_year:"2024",national_population:2839175,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"JEY",country:"Jersey",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"KAZ",country:"Kazakhstan",region:"Asia",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:93.4,internet_year:"2024",mobile_per_100:127.1,mobile_year:"2024",national_population:20592571,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"PRK",country:"North Korea",region:"Asia",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:24.1,mobile_year:"2022",national_population:26498823,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"KWT",country:"Kuwait",region:"Middle East",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:99.7,internet_year:"2024",mobile_per_100:167.7,mobile_year:"2023",national_population:4897263,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"LIE",country:"Liechtenstein",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:98.3,internet_year:"2024",mobile_per_100:128.9,mobile_year:"2024",national_population:40450,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"LUX",country:"Luxembourg",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:98.8,internet_year:"2024",mobile_per_100:144.5,mobile_year:"2023",national_population:677012,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MYT",country:"Mayotte",region:"Africa",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MDV",country:"Maldives",region:"Asia",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:85.2,internet_year:"2024",mobile_per_100:148.1,mobile_year:"2024",national_population:527799,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MLT",country:"Malta",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:93.9,internet_year:"2024",mobile_per_100:142.1,mobile_year:"2024",national_population:568847,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MNP",country:"Northern Mariana Islands",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:44278,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MHL",country:"Marshall Islands",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:65.9,internet_year:"2024",mobile_per_100:39.7,mobile_year:"2022",national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MUS",country:"Mauritius",region:"Africa",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:73.3,internet_year:"2024",mobile_per_100:172.7,mobile_year:"2024",national_population:1245779,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"FSM",country:"Micronesia, Federated States of",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"partial",internet_pct:39.5,internet_year:"2024",mobile_per_100:20,mobile_year:"2022",national_population:113160,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MCO",country:"Monaco",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:99,internet_year:"2024",mobile_per_100:107.4,mobile_year:"2024",national_population:38631,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MSR",country:"Montserrat",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"NCL",country:"New Caledonia",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:91.7,mobile_year:"2022",national_population:292639,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"NIU",country:"Niue",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"VUT",country:"Vanuatu",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:89.3,mobile_year:"2023",national_population:327777,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"NFK",country:"Norfolk Island",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"HKG",country:"Hong Kong",region:"Asia",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:95.8,internet_year:"2024",mobile_per_100:364.8,mobile_year:"2024",national_population:7524100,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MAC",country:"Macao",region:"Asia",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:89.8,internet_year:"2024",mobile_per_100:201.1,mobile_year:"2024",national_population:687e3,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"PLW",country:"Palau",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:83.9,internet_year:"2024",mobile_per_100:135.4,mobile_year:"2023",national_population:17695,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"PNG",country:"Papua New Guinea",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"no",internet_pct:18.8,internet_year:"2024",mobile_per_100:38.8,mobile_year:"2024",national_population:10576502,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BLM",country:"Saint Barthélemy",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SHN",country:"Saint Helena",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"LCA",country:"Saint Lucia",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:68.2,internet_year:"2024",mobile_per_100:98.7,mobile_year:"2022",national_population:179744,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SMR",country:"San Marino",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:97.4,internet_year:"2024",mobile_per_100:120.3,mobile_year:"2022",national_population:33977,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ASM",country:"American Samoa",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:46765,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"WSM",country:"Samoa",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:62.4,mobile_year:"2022",national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"STP",country:"Sao Tome and Principe",region:"Africa",clusters:1,people_groups:1,multi:0,internet_access:"partial",internet_pct:59.1,internet_year:"2024",mobile_per_100:62.4,mobile_year:"2024",national_population:235536,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SXM",country:"Sint Maarten (Dutch part)",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:205.4,mobile_year:"2022",national_population:43350,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SLB",country:"Solomon Islands",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"partial",internet_pct:29,internet_year:"2024",mobile_per_100:62.1,mobile_year:"2022",national_population:819198,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"LKA",country:"Sri Lanka",region:"Asia",clusters:1,people_groups:1,multi:0,internet_access:"partial",internet_pct:54.6,internet_year:"2024",mobile_per_100:132.5,mobile_year:"2024",national_population:21916e3,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SJM",country:"Svalbard and Jan Mayen",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SWZ",country:"Eswatini",region:"Africa",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:63.4,internet_year:"2024",mobile_per_100:139.8,mobile_year:"2024",national_population:1242822,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"TKL",country:"Tokelau",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"TON",country:"Tonga",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:67.4,internet_year:"2024",mobile_per_100:null,mobile_year:null,national_population:104175,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"TCA",country:"Turks and Caicos Islands",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:46535,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"VCT",country:"Saint Vincent and the Grenadines",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:76.2,internet_year:"2024",mobile_per_100:108.4,mobile_year:"2024",national_population:100616,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"WLF",country:"Wallis and Futuna",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"PRY",country:"Paraguay",region:"Latin America & Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:81.6,internet_year:"2024",mobile_per_100:126.6,mobile_year:"2023",national_population:6929153,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"FIN",country:"Finland",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:93.7,internet_year:"2024",mobile_per_100:125.9,mobile_year:"2024",national_population:5619911,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ALB",country:"Albania",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:85.9,internet_year:"2024",mobile_per_100:89.1,mobile_year:"2024",national_population:2377128,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"PAN",country:"Panama",region:"Latin America & Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:72.8,internet_year:"2024",mobile_per_100:156.6,mobile_year:"2023",national_population:4515577,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"NZL",country:"New Zealand",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:130.1,mobile_year:"2024",national_population:529e4,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CZE",country:"Czech Republic",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:87.7,internet_year:"2024",mobile_per_100:126.6,mobile_year:"2024",national_population:10905028,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GHA",country:"Ghana",region:"Africa",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:72.2,internet_year:"2024",mobile_per_100:113.6,mobile_year:"2024",national_population:34427414,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"PHL",country:"Philippines",region:"Asia",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:67.3,internet_year:"2024",mobile_per_100:115.3,mobile_year:"2024",national_population:115843670,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ISR",country:"Israel",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:88.2,internet_year:"2024",mobile_per_100:null,mobile_year:null,national_population:10002200,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GUY",country:"Guyana",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:83,internet_year:"2024",mobile_per_100:112.6,mobile_year:"2022",national_population:831087,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"UZB",country:"Uzbekistan",region:"Asia",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:89.5,internet_year:"2024",mobile_per_100:110.5,mobile_year:"2024",national_population:36361859,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ESP",country:"Spain",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:95.8,internet_year:"2024",mobile_per_100:130.3,mobile_year:"2024",national_population:48848840,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MWI",country:"Malawi",region:"Africa",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:69.3,mobile_year:"2024",national_population:21655286,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}}]},Zg={class:"ci-tot"},Qg={class:"ci-chip"},em={class:"ci-chip"},tm={class:"ci-chip"},nm={class:"ci-chip"},om=["onClick"],rm={class:"sec-name"},sm={class:"sec-meta"},im={class:"r-name"},am={class:"r-sub"},lm={class:"r-num"},cm={class:"r-sub"},um={class:"r-num"},pm=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"connectivity-list",setup(e){const t=De("profileConfig",re(null)),n=ie(()=>{var f;return((f=t.value)==null?void 0:f.isDark)===!0}),o=ie(()=>Jg.countries||[]),s=ie(()=>{const f=new Map;for(const h of o.value){const m=h.region||"Other";f.has(m)||f.set(m,[]),f.get(m).push(h)}return[...f.entries()].map(([h,m])=>({name:h,items:m.slice().sort((v,$)=>$.people_groups-v.people_groups),groups:m.reduce((v,$)=>v+$.people_groups,0),unknown:m.filter(v=>v.internet_access==="unknown").length})).sort((h,m)=>m.groups-h.groups)}),r=re({}),i=f=>!!r.value[f],a=f=>{r.value={...r.value,[f]:!r.value[f]}},l=ie(()=>{const f=o.value;return{countries:f.length,resolved:f.filter(h=>h.internet_access!=="unknown").length,unknown:f.filter(h=>h.internet_access==="unknown").length,low:f.filter(h=>h.internet_access==="no").length}}),c=f=>f==="yes"?"ok":f==="partial"?"mid":f==="no"?"low":"unk",u=f=>f==="yes"?"connected":f==="partial"?"partial":f==="no"?"low":"unknown";return Wt(".ci{position:absolute;inset:0;overflow-y:auto;padding:20px 18px 44px;background:#f6f7f9;color:#0f1419;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}.ci.is-dark{background:#0a1410;color:#e5e7eb}.ci-h{margin:0 0 4px;font-size:19px;font-weight:700;text-align:center}.ci-sub{margin:0 auto 18px;max-width:640px;font-size:12.5px;line-height:1.55;text-align:center;opacity:.75}.ci-tot{display:flex;gap:14px;justify-content:center;margin-bottom:20px;flex-wrap:wrap}.ci-chip{font-size:11.5px;padding:4px 11px;border-radius:999px;background:rgba(0,0,0,.06);font-weight:600}.is-dark .ci-chip{background:rgba(255,255,255,.10)}.sec{max-width:1080px;margin:0 auto;padding-bottom:34px}.sec-head{position:sticky;top:0;z-index:6;background:#f6f7f9;display:flex;align-items:baseline;gap:10px;padding:10px 10px 8px;margin:0 2px 10px;border-bottom:1px solid rgba(0,0,0,.10);cursor:pointer;user-select:none;width:100%;text-align:left;border-top:0;border-left:0;border-right:0;font:inherit;color:inherit;box-shadow:0 6px 10px -8px rgba(0,0,0,.35);border-radius:4px 4px 0 0}.is-dark .sec-head{background:#0a1410;border-bottom-color:rgba(255,255,255,.12)}.sec-caret{display:inline-block;width:12px;font-size:10px;opacity:.55;transition:transform .18s}.sec-caret.open{transform:rotate(90deg)}.sec-name{margin:0;font-size:15px;font-weight:700}.sec-meta{font-size:11px;opacity:.6;font-variant-numeric:tabular-nums}.row{display:grid;grid-template-columns:1fr auto auto auto;gap:12px;align-items:center;padding:8px 10px;border-bottom:1px solid rgba(0,0,0,.06)}.is-dark .row{border-bottom-color:rgba(255,255,255,.07)}.r-name{font-size:13.5px;font-weight:600}.r-sub{font-size:11px;opacity:.6}.r-num{font-size:12.5px;font-variant-numeric:tabular-nums;text-align:right;min-width:72px}.pill{font-size:10.5px;font-weight:700;padding:3px 9px;border-radius:999px;white-space:nowrap}.pill.ok{background:rgba(16,185,129,.15);color:#0b7a5b}.pill.mid{background:rgba(245,158,11,.16);color:#8a6414}.pill.low{background:rgba(220,38,38,.13);color:#a12020}.pill.unk{background:rgba(0,0,0,.07);color:#6b7280}.is-dark .pill.unk{background:rgba(255,255,255,.10);color:#9ca3af}.src{max-width:1080px;margin:8px auto 0;font-size:11px;line-height:1.6;opacity:.6;text-align:center}","doxa-cities-internet"),(f,h)=>(H(),J("div",{class:Te(["ci",{"is-dark":n.value}])},[h[1]||(h[1]=M("h2",{class:"ci-h"},"Cities with Internet",-1)),h[2]||(h[2]=M("p",{class:"ci-sub"},[$e(" Connectivity where the unengaged people groups live. Every figure is a measured national statistic with its observation year — "),M("strong",null,"unknown means unmeasured, never assumed"),$e(". ")],-1)),M("div",Zg,[M("span",Qg,Q(l.value.countries)+" countries",1),M("span",em,Q(l.value.resolved)+" measured",1),M("span",tm,Q(l.value.unknown)+" unknown",1),M("span",nm,Q(l.value.low)+" low-connectivity",1)]),(H(!0),J(de,null,ct(s.value,m=>(H(),J("section",{key:m.name,class:"sec"},[M("button",{type:"button",class:"sec-head",onClick:v=>a(m.name)},[M("span",{class:Te(["sec-caret",{open:!i(m.name)}])},"▶",2),M("h3",rm,Q(m.name),1),M("span",sm,[$e(Q(m.items.length)+" countries · "+Q(m.groups.toLocaleString())+" people groups ",1),m.unknown?(H(),J(de,{key:0},[$e(" · "+Q(m.unknown)+" unmeasured",1)],64)):Le("",!0)])],8,om),Rc(M("div",null,[(H(!0),J(de,null,ct(m.items,v=>(H(),J("div",{key:v.iso3,class:"row"},[M("div",null,[M("div",im,Q(v.country),1),M("div",am,[$e(Q(v.people_groups)+" people groups · "+Q(v.clusters)+" locations ",1),v.multi?(H(),J(de,{key:0},[$e(" · "+Q(v.multi)+" population centres",1)],64)):Le("",!0)])]),M("div",lm,[v.internet_pct!==null&&v.internet_pct!==void 0?(H(),J(de,{key:0},[$e(Q(v.internet_pct)+"% ",1),M("div",cm,Q(v.internet_year),1)],64)):(H(),J(de,{key:1},[$e("—")],64))]),M("div",um,[v.mobile_per_100!==null&&v.mobile_per_100!==void 0?(H(),J(de,{key:0},[$e(Q(v.mobile_per_100)+" ",1),h[0]||(h[0]=M("div",{class:"r-sub"},"mob/100",-1))],64)):(H(),J(de,{key:1},[$e("—")],64))]),M("span",{class:Te(["pill",c(v.internet_access)])},Q(u(v.internet_access)),3)]))),128))],512),[[ep,!i(m.name)]])]))),128)),h[3]||(h[3]=M("p",{class:"src"}," Internet and mobile figures: World Bank Open Data (CC BY 4.0), most recent observation 2018–2024. Banding: connected ≥60% · partial 25–59% · low <25% of population using the internet. Country-resolution — per-city measurements are not publicly available at this scale. ISP names, carrier names and censorship history require per-country cited reporting and are not shown. ",-1))],2))}}},Symbol.toStringTag,{value:"Module"})),ks={boundaries:{label:"geoBoundaries",href:"https://www.geoboundaries.org",title:"Country and administrative boundaries — geoBoundaries gbOpen (mixed upstream licences; see docs)"},mapbox:{label:"Mapbox",href:"https://www.mapbox.com/about/maps/"},osm:{label:"© OpenStreetMap",href:"https://www.openstreetmap.org/copyright"}};function dm(e,t={}){if(!e||typeof e.addControl!="function")return null;const{boundaries:n=!0,basemap:o=!0}=t,s=document.createElement("div");s.className="doxa-attribution mapboxgl-ctrl",s.style.cssText=["font:11px/1.45 system-ui,-apple-system,Segoe UI,Roboto,sans-serif","background:rgba(255,255,255,.82)","color:#3a4048","padding:2px 6px","border-radius:3px 0 0 0","pointer-events:auto","max-width:min(92vw,420px)"].join(";");const r=[];n&&r.push(ks.boundaries),o&&(r.push(ks.mapbox),r.push(ks.osm)),s.innerHTML=r.map(a=>`${a.label}`).join(" · ");const i={onAdd:()=>s,onRemove:()=>{s.parentNode&&s.parentNode.removeChild(s)},getDefaultPosition:()=>"bottom-right"};return e.addControl(i,"bottom-right"),i}const fm={__name:"MapToolbar",props:{hasGeocoder:{type:Boolean,default:!0}},setup(e){const t=re(null);return nt("mapToolbar",{el:t}),Wt(` +`,"pin-hint"),(O,P)=>r.value?(H(),J("div",{key:0,ref_key:"hintEl",ref:i,class:Te(["pin-hint",{dark:o.value}]),role:"status"},[I("span",Hh,[P[0]||(P[0]=I("span",{class:"pin-hint-dot","aria-hidden":"true"},null,-1)),ke(" "+Q(s.value)+" ",1),I("button",{class:"pin-hint-x",type:"button","aria-label":"Dismiss hint",onClick:f},"×")])],2)):Se("",!0)}};let qh=0;const Kh=ts("ui",{state:()=>({_storeInstanceId:++qh,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(n=>n.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 n=this.isDarkTheme;document.documentElement.setAttribute("data-theme",n?"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:n="info",duration:o=this.toastDuration,action:s=null,persistent:r=!1}=e,i={id:this.nextToastId++,message:t,type:n,duration:o,action:s,persistent:r,createdAt:Date.now()};return this.toasts.push(i),!r&&o>0&&setTimeout(()=>{this.removeToast(i.id)},o),i.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(n=>n.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(n=>{for(const o of n)this.updateWindowSize(o.contentRect.width,o.contentRect.height)}).observe(document.documentElement),window.matchMedia&&(window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",n=>{this.theme==="auto"&&document.documentElement.setAttribute("data-theme",n.matches?"dark":"light")}),window.matchMedia("(prefers-reduced-motion: reduce)").addEventListener("change",n=>{this.reducedMotion=n.matches,document.documentElement.setAttribute("data-reduced-motion",n.matches)}))}}}),Xh=ts("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,n={}){let o=1.5;n.zoom!==void 0?o=n.zoom:t&&typeof t.getZoom=="function"&&(o=t.getZoom());let s=[0,0];if(n.center)s=n.center;else if(t&&typeof t.getCenter=="function"){const r=t.getCenter();r&&(s=[r.lng,r.lat])}this.maps[e]={instance:t,config:n,isReady:!1,zoom:o,center:s,registeredAt:Date.now()},this.activeMapId||(this.activeMapId=e)},setMapReady(e){const t=this.maps[e];t&&(t.isReady=!0)},updateMapState(e,t){const n=this.maps[e];n&&Object.assign(n,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()}}}),Jh=ts("data",{state:()=>({sources:{},loadingStates:{}}),actions:{async load(e,t){if(!this.sources[e]){this.loadingStates[e]={isLoading:!0,error:null};try{const n=await t();this.sources[e]=vn({features:n,timestamp:Date.now()}),this.loadingStates[e]={isLoading:!1,error:null}}catch(n){console.error(`[dataStore] Failed to load source "${e}":`,n),this.loadingStates[e]={isLoading:!1,error:n}}}},clearSource(e){delete this.sources[e],delete this.loadingStates[e]},cacheSourceData(e,t){this.sources[e]=vn({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 n;return((n=e.sources[t])==null?void 0:n.features)??null},isLoading:e=>t=>{var n;return((n=e.loadingStates[t])==null?void 0:n.isLoading)??!1},getError:e=>t=>{var n;return((n=e.loadingStates[t])==null?void 0:n.error)??null}}}),Zh={activeSource:"pray-tools"},Qh=".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}",em=(e,t)=>{const n=e.__vccOpts||e;for(const[o,s]of t)n[o]=s;return n},tm={class:"profile-loader"},nm={key:0,class:"profile-error"},om={key:1,class:"profile-error"},rm=em({__name:"ProfileLoader",props:{profileConfig:{type:String,default:""}},setup(e){var A;const n=e,o=Ie("profileConfig",null),s=ie(()=>{var E;if(!n.profileConfig)return null;let C;try{C=JSON.parse(n.profileConfig)}catch{return console.error("[ProfileLoader] Invalid profile-config JSON:",n.profileConfig),null}if(C&&C.assetsBase===void 0){const F=(E=o==null?void 0:o.value)==null?void 0:E.assetsBase;typeof F=="string"&&F&&(C.assetsBase=F)}return C}),r=ie(()=>{var C;return((C=s.value)==null?void 0:C.profile)||null}),i=Rp(),a=ie(()=>{var E;const C=(E=s.value)==null?void 0:E.tk;return typeof C=="string"&&C?C:i.value||""});ot(()=>{var C;return(C=s.value)==null?void 0:C.tk},C=>{typeof C=="string"&&C&&Aa(C)},{immediate:!0});const l=ie(()=>{var C;return((C=s.value)==null?void 0:C.dataSource)||Zh.activeSource}),c=ie(()=>{var C;return((C=s.value)==null?void 0:C.colorSet)||"default"}),u=ie(()=>!1),g=ie(()=>{var C;return((C=s.value)==null?void 0:C.pinHint)!==!1}),f=ie(()=>{var E,F;const C=(((E=s.value)==null?void 0:E.locale)||((F=s.value)==null?void 0:F.lang)||"").split("-")[0].toLowerCase();return jl.includes(C)?C:""}),_=Ie("appI18n",null);Hc(()=>{f.value&&_&&(_.global.locale.value=f.value)});const v=ie(()=>{var C,E;return f.value||((E=(C=_==null?void 0:_.global)==null?void 0:C.locale)==null?void 0:E.value)||"en"}),k=ie(()=>{var C;return((C=s.value)==null?void 0:C.instanceId)||"doxa-map-"+Math.random().toString(36).slice(2,9)}),O=Ie("profileModules",null);if(!O)throw new Error('[ProfileLoader] No profileModules provided. Bundle entry must `app.provide("profileModules", import.meta.glob("./*.vue"))`');const P=ie(()=>{if(!r.value)return null;const C=`./${r.value}.vue`;return O[C]?Bp(O[C]):(console.error(`[ProfileLoader] Profile not found: "${r.value}". Available:`,Object.keys(O)),null)});nt("mapboxToken",a),nt("dataSource",l),nt("colorSet",c),nt("profileConfig",s),nt("instanceId",k),nt("lang",v);const N=Kh(),h=Xh(),b=Jh();try{const C=typeof localStorage<"u"?localStorage.getItem("theme"):null;C&&((A=N.setTheme)==null||A.call(N,C))}catch{}return nt("uiStore",N),nt("mapStore",h),nt("dataStore",b),(C,E)=>(H(),J("div",tm,[s.value?P.value?(H(),Qe(Ci(P.value),{key:2})):(H(),J("div",om,[I("p",null,[E[1]||(E[1]=ke("⚠️ Profile ",-1)),I("strong",null,'"'+Q(r.value)+'"',1),E[2]||(E[2]=ke(" not found.",-1))])])):(H(),J("div",nm,[...E[0]||(E[0]=[I("p",null,[ke("⚠️ "),I("strong",null,"doxa-map"),ke(": missing or invalid "),I("code",null,"profile-config"),ke(" prop.")],-1),I("p",null,[ke("Example: "),I("code",null,`profile-config='{"profile":"example-map","tk":"pk.eyJ..."}'`)],-1)])])),P.value&&u.value?(H(),Qe(Ci(qe(null)),{key:3})):Se("",!0),P.value&&g.value?(H(),Qe(zh,{key:4})):Se("",!0)]))}},[["styles",[Qh]],["__scopeId","data-v-ba19fc13"]]),sm=Object.assign({"./connectivity-list.vue":()=>ur(()=>Promise.resolve().then(()=>$m),void 0),"./connectivity-map.vue":()=>ur(()=>Promise.resolve().then(()=>$_),void 0),"./data-tables.vue":()=>ur(()=>Promise.resolve().then(()=>z_),void 0)});function im(){return wp(rm,{configureApp(e){e.use(Sp()),e.use(Vh()),e.provide("profileModules",sm)}})}const am=im();typeof customElements<"u"&&(customElements.get("cities-internet-map")||customElements.define("cities-internet-map",am));const lm={countries:[{iso3:"IND",country:"India",region:"Asia",clusters:541,people_groups:856,multi:164,internet_access:"yes",internet_pct:64.9,internet_year:"2024",mobile_per_100:79.4,mobile_year:"2024",national_population:1450935791,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CHN",country:"People's Republic of China",region:"Asia",clusters:130,people_groups:154,multi:19,internet_access:"yes",internet_pct:92,internet_year:"2024",mobile_per_100:131.8,mobile_year:"2024",national_population:1408975e3,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SDN",country:"Sudan",region:"Middle East",clusters:75,people_groups:105,multi:20,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:70.2,mobile_year:"2022",national_population:50448963,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BRA",country:"Brazil",region:"Latin America & Caribbean",clusters:99,people_groups:104,multi:5,internet_access:"yes",internet_pct:84.5,internet_year:"2024",mobile_per_100:101.9,mobile_year:"2024",national_population:211998573,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"LAO",country:"Lao People's Democratic Republic",region:"Asia",clusters:65,people_groups:95,multi:24,internet_access:"yes",internet_pct:65.6,internet_year:"2024",mobile_per_100:64.8,mobile_year:"2023",national_population:7769819,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"TCD",country:"Chad",region:"Africa",clusters:48,people_groups:54,multi:6,internet_access:"no",internet_pct:12.6,internet_year:"2024",mobile_per_100:72.9,mobile_year:"2024",national_population:20299123,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"NGA",country:"Nigeria",region:"Africa",clusters:35,people_groups:38,multi:3,internet_access:"partial",internet_pct:41.2,internet_year:"2024",mobile_per_100:null,mobile_year:null,national_population:232679478,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"IDN",country:"Indonesia",region:"Asia",clusters:35,people_groups:36,multi:1,internet_access:"yes",internet_pct:72.8,internet_year:"2024",mobile_per_100:122.5,mobile_year:"2024",national_population:283487931,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"NPL",country:"Nepal",region:"Asia",clusters:25,people_groups:33,multi:5,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:99.8,mobile_year:"2024",national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ETH",country:"Ethiopia",region:"Africa",clusters:29,people_groups:29,multi:0,internet_access:"no",internet_pct:21.9,internet_year:"2024",mobile_per_100:65.1,mobile_year:"2024",national_population:132059767,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"COL",country:"Colombia",region:"Latin America & Caribbean",clusters:26,people_groups:26,multi:0,internet_access:"yes",internet_pct:79.3,internet_year:"2024",mobile_per_100:174.1,mobile_year:"2024",national_population:52886363,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"PAK",country:"Pakistan",region:"Asia",clusters:21,people_groups:24,multi:2,internet_access:"partial",internet_pct:57.3,internet_year:"2024",mobile_per_100:null,mobile_year:null,national_population:251269164,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SSD",country:"South Sudan",region:"Africa",clusters:22,people_groups:22,multi:0,internet_access:"no",internet_pct:6.7,internet_year:"2019",mobile_per_100:46.6,mobile_year:"2023",national_population:11943408,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"RUS",country:"Russian Federation",region:"Europe",clusters:17,people_groups:21,multi:2,internet_access:"yes",internet_pct:94.4,internet_year:"2024",mobile_per_100:186.1,mobile_year:"2024",national_population:143669648,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"AFG",country:"Afghanistan",region:"Asia",clusters:15,people_groups:21,multi:5,internet_access:"no",internet_pct:16.1,internet_year:"2024",mobile_per_100:60.1,mobile_year:"2024",national_population:42647492,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"IRN",country:"Islamic Republic of Iran",region:"Middle East",clusters:19,people_groups:20,multi:1,internet_access:"yes",internet_pct:85.3,internet_year:"2024",mobile_per_100:174.1,mobile_year:"2024",national_population:91567738,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"DZA",country:"Algeria",region:"Middle East",clusters:15,people_groups:17,multi:2,internet_access:"yes",internet_pct:77.4,internet_year:"2024",mobile_per_100:115.5,mobile_year:"2024",national_population:46814308,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"VNM",country:"Vietnam",region:"Asia",clusters:15,people_groups:16,multi:1,internet_access:"yes",internet_pct:84.2,internet_year:"2024",mobile_per_100:127.6,mobile_year:"2024",national_population:100987686,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"TZA",country:"United Republic of Tanzania",region:"Africa",clusters:16,people_groups:16,multi:0,internet_access:"partial",internet_pct:31.2,internet_year:"2024",mobile_per_100:126.6,mobile_year:"2024",national_population:68560157,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"LBY",country:"Libya",region:"Middle East",clusters:13,people_groups:15,multi:2,internet_access:"yes",internet_pct:82,internet_year:"2024",mobile_per_100:193,mobile_year:"2022",national_population:7381023,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BTN",country:"Bhutan",region:"Asia",clusters:12,people_groups:13,multi:1,internet_access:"yes",internet_pct:91.3,internet_year:"2024",mobile_per_100:99.8,mobile_year:"2024",national_population:791524,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GIN",country:"Guinea",region:"Africa",clusters:13,people_groups:13,multi:0,internet_access:"partial",internet_pct:33.3,internet_year:"2024",mobile_per_100:97.9,mobile_year:"2023",national_population:14754785,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MLI",country:"Mali",region:"Africa",clusters:13,people_groups:13,multi:0,internet_access:"partial",internet_pct:36.8,internet_year:"2024",mobile_per_100:112.1,mobile_year:"2022",national_population:24478595,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MYS",country:"Malaysia",region:"Asia",clusters:11,people_groups:12,multi:1,internet_access:"yes",internet_pct:98,internet_year:"2024",mobile_per_100:139.7,mobile_year:"2024",national_population:35557673,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"AGO",country:"Angola",region:"Africa",clusters:9,people_groups:10,multi:1,internet_access:"partial",internet_pct:40.7,internet_year:"2024",mobile_per_100:69.7,mobile_year:"2024",national_population:37885849,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"PER",country:"Peru",region:"Latin America & Caribbean",clusters:10,people_groups:10,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:124.6,mobile_year:"2024",national_population:34217848,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"YEM",country:"Yemen",region:"Middle East",clusters:8,people_groups:9,multi:1,internet_access:"no",internet_pct:17.5,internet_year:"2019",mobile_per_100:50.9,mobile_year:"2023",national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"COD",country:"Democratic Republic of the Congo",region:"Africa",clusters:8,people_groups:9,multi:1,internet_access:"no",internet_pct:19.7,internet_year:"2024",mobile_per_100:58.5,mobile_year:"2024",national_population:109276265,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BEN",country:"Benin",region:"Africa",clusters:8,people_groups:9,multi:1,internet_access:"partial",internet_pct:34,internet_year:"2024",mobile_per_100:125.9,mobile_year:"2024",national_population:14462724,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SOM",country:"Somalia",region:"Africa",clusters:9,people_groups:9,multi:0,internet_access:"partial",internet_pct:27.9,internet_year:"2024",mobile_per_100:54,mobile_year:"2023",national_population:19009151,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ERI",country:"Eritrea",region:"Africa",clusters:7,people_groups:8,multi:1,internet_access:"no",internet_pct:14.3,internet_year:"2020",mobile_per_100:59.1,mobile_year:"2022",national_population:3535603,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"IRQ",country:"Iraq",region:"Middle East",clusters:7,people_groups:8,multi:1,internet_access:"yes",internet_pct:81.5,internet_year:"2024",mobile_per_100:100.1,mobile_year:"2024",national_population:46042015,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BFA",country:"Burkina Faso",region:"Africa",clusters:7,people_groups:8,multi:1,internet_access:"partial",internet_pct:28.3,internet_year:"2024",mobile_per_100:116.6,mobile_year:"2024",national_population:23548781,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"THA",country:"Thailand",region:"Asia",clusters:8,people_groups:8,multi:0,internet_access:"yes",internet_pct:90.9,internet_year:"2024",mobile_per_100:160.6,mobile_year:"2024",national_population:71668011,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"PSE",country:"State of Palestine",region:"Middle East",clusters:3,people_groups:7,multi:1,internet_access:"yes",internet_pct:86.6,internet_year:"2023",mobile_per_100:76.7,mobile_year:"2023",national_population:5289152,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"OMN",country:"Oman",region:"Middle East",clusters:7,people_groups:7,multi:0,internet_access:"yes",internet_pct:95.3,internet_year:"2024",mobile_per_100:120.6,mobile_year:"2024",national_population:5281538,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MMR",country:"Myanmar",region:"Asia",clusters:7,people_groups:7,multi:0,internet_access:"partial",internet_pct:45.4,internet_year:"2020",mobile_per_100:114.3,mobile_year:"2024",national_population:54500091,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CMR",country:"Cameroon",region:"Africa",clusters:7,people_groups:7,multi:0,internet_access:"partial",internet_pct:46.3,internet_year:"2024",mobile_per_100:108.2,mobile_year:"2024",national_population:29123744,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"TGO",country:"Togo",region:"Africa",clusters:5,people_groups:6,multi:1,internet_access:"partial",internet_pct:39.5,internet_year:"2024",mobile_per_100:null,mobile_year:null,national_population:8406558,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"JPN",country:"Japan",region:"Asia",clusters:6,people_groups:6,multi:0,internet_access:"yes",internet_pct:85.5,internet_year:"2024",mobile_per_100:178.4,mobile_year:"2023",national_population:123975371,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"UGA",country:"Uganda",region:"Africa",clusters:6,people_groups:6,multi:0,internet_access:"no",internet_pct:8.9,internet_year:"2024",mobile_per_100:83.2,mobile_year:"2024",national_population:50015092,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ZMB",country:"Zambia",region:"Africa",clusters:6,people_groups:6,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:108.7,mobile_year:"2024",national_population:21314956,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"VEN",country:"Venezuela",region:"Latin America & Caribbean",clusters:6,people_groups:6,multi:0,internet_access:"yes",internet_pct:76.7,internet_year:"2024",mobile_per_100:71,mobile_year:"2024",national_population:28405543,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"NAM",country:"Namibia",region:"Africa",clusters:6,people_groups:6,multi:0,internet_access:"yes",internet_pct:64.9,internet_year:"2024",mobile_per_100:null,mobile_year:null,national_population:3030131,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BRN",country:"Brunei Darussalam",region:"Asia",clusters:4,people_groups:5,multi:1,internet_access:"yes",internet_pct:96.3,internet_year:"2024",mobile_per_100:118.1,mobile_year:"2024",national_population:462721,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"KEN",country:"Kenya",region:"Africa",clusters:5,people_groups:5,multi:0,internet_access:"partial",internet_pct:35,internet_year:"2024",mobile_per_100:126.5,mobile_year:"2024",national_population:56432944,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SYR",country:"Syrian Arab Republic",region:"Middle East",clusters:5,people_groups:5,multi:0,internet_access:"partial",internet_pct:33.8,internet_year:"2018",mobile_per_100:71.2,mobile_year:"2024",national_population:24672760,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"LBN",country:"Lebanon",region:"Middle East",clusters:4,people_groups:4,multi:0,internet_access:"yes",internet_pct:80.6,internet_year:"2024",mobile_per_100:74,mobile_year:"2022",national_population:5805962,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MOZ",country:"Mozambique",region:"Africa",clusters:4,people_groups:4,multi:0,internet_access:"no",internet_pct:20.5,internet_year:"2024",mobile_per_100:49.5,mobile_year:"2024",national_population:34631766,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MAR",country:"Morocco",region:"Middle East",clusters:4,people_groups:4,multi:0,internet_access:"yes",internet_pct:91.2,internet_year:"2024",mobile_per_100:153.1,mobile_year:"2024",national_population:38081173,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"QAT",country:"Qatar",region:"Middle East",clusters:1,people_groups:3,multi:1,internet_access:"yes",internet_pct:98.1,internet_year:"2024",mobile_per_100:153.6,mobile_year:"2024",national_population:2857822,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SAU",country:"Saudi Arabia",region:"Middle East",clusters:2,people_groups:3,multi:1,internet_access:"yes",internet_pct:100,internet_year:"2024",mobile_per_100:159.5,mobile_year:"2024",national_population:35300280,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"TUR",country:"Türkiye",region:"Europe",clusters:3,people_groups:3,multi:0,internet_access:"yes",internet_pct:87.3,internet_year:"2024",mobile_per_100:null,mobile_year:null,national_population:85518661,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"AZE",country:"Azerbaijan",region:"Asia",clusters:3,people_groups:3,multi:0,internet_access:"yes",internet_pct:90.4,internet_year:"2024",mobile_per_100:109.5,mobile_year:"2024",national_population:10202830,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GMB",country:"Republic of The Gambia",region:"Africa",clusters:3,people_groups:3,multi:0,internet_access:"partial",internet_pct:49.5,internet_year:"2024",mobile_per_100:126.2,mobile_year:"2024",national_population:2759988,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"JOR",country:"Jordan",region:"Middle East",clusters:3,people_groups:3,multi:0,internet_access:"yes",internet_pct:95.6,internet_year:"2024",mobile_per_100:69.6,mobile_year:"2024",national_population:11552876,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ZWE",country:"Zimbabwe",region:"Africa",clusters:3,people_groups:3,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:94.2,mobile_year:"2024",national_population:16634373,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"COM",country:"Comoros",region:"Africa",clusters:3,people_groups:3,multi:0,internet_access:"partial",internet_pct:32.5,internet_year:"2024",mobile_per_100:109.9,mobile_year:"2023",national_population:866628,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"USA",country:"United States of America",region:"Other",clusters:3,people_groups:3,multi:0,internet_access:"yes",internet_pct:94.7,internet_year:"2024",mobile_per_100:113.2,mobile_year:"2024",national_population:340003797,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BGD",country:"Bangladesh",region:"Asia",clusters:3,people_groups:3,multi:0,internet_access:"partial",internet_pct:53.4,internet_year:"2024",mobile_per_100:108.1,mobile_year:"2024",national_population:173562364,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GNB",country:"Guinea-Bissau",region:"Africa",clusters:3,people_groups:3,multi:0,internet_access:"partial",internet_pct:29.8,internet_year:"2024",mobile_per_100:147.2,mobile_year:"2024",national_population:2201352,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"KOS",country:"KOS",region:"Europe",clusters:3,people_groups:3,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MRT",country:"Mauritania",region:"Middle East",clusters:3,people_groups:3,multi:0,internet_access:"partial",internet_pct:45.8,internet_year:"2024",mobile_per_100:92.1,mobile_year:"2024",national_population:5169395,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ESH",country:"Western Sahara",region:"Middle East",clusters:3,people_groups:3,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"TJK",country:"Tajikistan",region:"Asia",clusters:3,people_groups:3,multi:0,internet_access:"partial",internet_pct:55.8,internet_year:"2024",mobile_per_100:76.2,mobile_year:"2023",national_population:10590927,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"EGY",country:"Egypt",region:"Middle East",clusters:3,people_groups:3,multi:0,internet_access:"yes",internet_pct:74.6,internet_year:"2024",mobile_per_100:97.1,mobile_year:"2024",national_population:116538258,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MNG",country:"Mongolia",region:"Asia",clusters:3,people_groups:3,multi:0,internet_access:"yes",internet_pct:85.1,internet_year:"2024",mobile_per_100:140.7,mobile_year:"2024",national_population:3524788,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BHR",country:"Bahrain",region:"Middle East",clusters:1,people_groups:2,multi:1,internet_access:"yes",internet_pct:100,internet_year:"2024",mobile_per_100:159.5,mobile_year:"2024",national_population:1588670,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SUR",country:"Suriname",region:"North America & Non-Spanish Caribbean",clusters:2,people_groups:2,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:142.1,mobile_year:"2024",national_population:634431,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"NER",country:"Niger",region:"Africa",clusters:2,people_groups:2,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:60.6,mobile_year:"2024",national_population:27032412,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ZAF",country:"South Africa",region:"Africa",clusters:2,people_groups:2,multi:0,internet_access:"yes",internet_pct:78.4,internet_year:"2024",mobile_per_100:179.3,mobile_year:"2024",national_population:64007187,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CCK",country:"Cocos (Keeling) Islands",region:"N/A",clusters:2,people_groups:2,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"COG",country:"Republic of the Congo",region:"Africa",clusters:2,people_groups:2,multi:0,internet_access:"partial",internet_pct:47.3,internet_year:"2024",mobile_per_100:95.5,mobile_year:"2024",national_population:6332961,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ARE",country:"United Arab Emirates",region:"Middle East",clusters:2,people_groups:2,multi:0,internet_access:"yes",internet_pct:100,internet_year:"2024",mobile_per_100:203.2,mobile_year:"2024",national_population:10986400,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GAB",country:"Gabon",region:"Africa",clusters:2,people_groups:2,multi:0,internet_access:"yes",internet_pct:68.7,internet_year:"2024",mobile_per_100:125.3,mobile_year:"2024",national_population:2538952,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GUF",country:"French Guiana",region:"N/A",clusters:2,people_groups:2,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CIV",country:"Cote d'Ivoire",region:"Africa",clusters:2,people_groups:2,multi:0,internet_access:"partial",internet_pct:41.4,internet_year:"2024",mobile_per_100:183.9,mobile_year:"2024",national_population:31934230,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"KGZ",country:"Kyrgyzstan",region:"Asia",clusters:2,people_groups:2,multi:0,internet_access:"yes",internet_pct:92,internet_year:"2024",mobile_per_100:107.5,mobile_year:"2024",national_population:7221868,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"LBR",country:"Liberia",region:"Africa",clusters:2,people_groups:2,multi:0,internet_access:"partial",internet_pct:32.2,internet_year:"2024",mobile_per_100:32.1,mobile_year:"2022",national_population:5612817,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SWE",country:"Sweden",region:"Europe",clusters:2,people_groups:2,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:140.7,mobile_year:"2024",national_population:10569709,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"TUN",country:"Tunisia",region:"Middle East",clusters:2,people_groups:2,multi:0,internet_access:"yes",internet_pct:76.5,internet_year:"2024",mobile_per_100:117.6,mobile_year:"2024",national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SLE",country:"Sierra Leone",region:"Africa",clusters:2,people_groups:2,multi:0,internet_access:"partial",internet_pct:25.1,internet_year:"2024",mobile_per_100:107.9,mobile_year:"2022",national_population:8642022,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"AND",country:"Andorra",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:94.4,internet_year:"2024",mobile_per_100:155.7,mobile_year:"2024",national_population:81938,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SEN",country:"Senegal",region:"Africa",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:60.1,internet_year:"2024",mobile_per_100:123.9,mobile_year:"2024",national_population:18501984,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MNE",country:"Montenegro",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:88.9,internet_year:"2024",mobile_per_100:221.7,mobile_year:"2024",national_population:623525,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BOL",country:"Bolivia",region:"Latin America & Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:79.7,internet_year:"2024",mobile_per_100:98,mobile_year:"2024",national_population:12413315,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ECU",country:"Ecuador",region:"Latin America & Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:77.2,internet_year:"2024",mobile_per_100:101.6,mobile_year:"2024",national_population:18135478,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"VIR",country:"Virgin Islands, U.S.",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:91.5,mobile_year:"2022",national_population:104377,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ATG",country:"Antigua and Barbuda",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:72.7,internet_year:"2024",mobile_per_100:200.5,mobile_year:"2022",national_population:93772,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ARM",country:"Armenia",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:81.3,internet_year:"2024",mobile_per_100:134.9,mobile_year:"2024",national_population:3033500,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ABW",country:"Aruba",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:130.6,mobile_year:"2022",national_population:107995,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BHS",country:"Bahamas",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:92.5,internet_year:"2024",mobile_per_100:96.7,mobile_year:"2024",national_population:401283,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BRB",country:"Barbados",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:70.4,internet_year:"2024",mobile_per_100:114.6,mobile_year:"2022",national_population:282467,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BLR",country:"Belarus",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:94.3,internet_year:"2024",mobile_per_100:131.1,mobile_year:"2024",national_population:9132629,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BMU",country:"Bermuda",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:96.7,mobile_year:"2024",national_population:64636,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BIH",country:"Bosnia and Herzegovina",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:86.1,internet_year:"2024",mobile_per_100:121.2,mobile_year:"2024",national_population:3164253,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"VGB",country:"Virgin Islands, British",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:39471,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BGR",country:"Bulgaria",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:82.4,internet_year:"2024",mobile_per_100:118.1,mobile_year:"2024",national_population:6441421,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"KHM",country:"Cambodia",region:"Asia",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:68.5,internet_year:"2024",mobile_per_100:116.1,mobile_year:"2024",national_population:17638801,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CYM",country:"Cayman Islands",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:139.3,mobile_year:"2022",national_population:74457,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CAF",country:"Central African Republic",region:"Africa",clusters:1,people_groups:1,multi:0,internet_access:"no",internet_pct:13.8,internet_year:"2024",mobile_per_100:38.8,mobile_year:"2022",national_population:5330690,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CXR",country:"Christmas Island",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"COK",country:"Cook Islands",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CUB",country:"Cuba",region:"Latin America & Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:70.5,internet_year:"2024",mobile_per_100:72.9,mobile_year:"2024",national_population:10979783,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CUW",country:"Curaçao",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:93.8,mobile_year:"2023",national_population:155967,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CYP",country:"Cyprus",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:89.6,internet_year:"2024",mobile_per_100:156.2,mobile_year:"2024",national_population:1358282,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"DJI",country:"Djibouti",region:"Africa",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:65.3,internet_year:"2024",mobile_per_100:48.5,mobile_year:"2023",national_population:1168722,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"DMA",country:"Dominica",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:82,internet_year:"2024",mobile_per_100:85.2,mobile_year:"2022",national_population:66205,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GNQ",country:"Equatorial Guinea",region:"Africa",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:63.3,internet_year:"2024",mobile_per_100:49.5,mobile_year:"2022",national_population:1892516,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"FRO",country:"Faroe Islands",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:105.8,mobile_year:"2022",national_population:54640,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"FJI",country:"Fiji",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:74.7,internet_year:"2024",mobile_per_100:574.2,mobile_year:"2024",national_population:928784,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"PYF",country:"French Polynesia",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:118.8,mobile_year:"2023",national_population:281807,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GEO",country:"Georgia",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:83.8,internet_year:"2024",mobile_per_100:161.2,mobile_year:"2024",national_population:3812518,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GIB",country:"Gibraltar",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:97.6,mobile_year:"2022",national_population:39329,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GRC",country:"Greece",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:86.3,internet_year:"2024",mobile_per_100:113.6,mobile_year:"2024",national_population:10405134,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GRD",country:"Grenada",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:70.2,internet_year:"2024",mobile_per_100:95.8,mobile_year:"2022",national_population:117207,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GLP",country:"Guadeloupe",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GUM",country:"Guam",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:167777,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GGY",country:"Guernsey",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ISL",country:"Iceland",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:98.2,internet_year:"2024",mobile_per_100:120.9,mobile_year:"2024",national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"KIR",country:"Kiribati",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:89.4,internet_year:"2024",mobile_per_100:53.5,mobile_year:"2024",national_population:134518,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"JAM",country:"Jamaica",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:90.1,internet_year:"2024",mobile_per_100:117.7,mobile_year:"2024",national_population:2839175,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"JEY",country:"Jersey",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"KAZ",country:"Kazakhstan",region:"Asia",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:93.4,internet_year:"2024",mobile_per_100:127.1,mobile_year:"2024",national_population:20592571,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"PRK",country:"North Korea",region:"Asia",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:24.1,mobile_year:"2022",national_population:26498823,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"KWT",country:"Kuwait",region:"Middle East",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:99.7,internet_year:"2024",mobile_per_100:167.7,mobile_year:"2023",national_population:4897263,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"LIE",country:"Liechtenstein",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:98.3,internet_year:"2024",mobile_per_100:128.9,mobile_year:"2024",national_population:40450,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"LUX",country:"Luxembourg",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:98.8,internet_year:"2024",mobile_per_100:144.5,mobile_year:"2023",national_population:677012,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MYT",country:"Mayotte",region:"Africa",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MDV",country:"Maldives",region:"Asia",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:85.2,internet_year:"2024",mobile_per_100:148.1,mobile_year:"2024",national_population:527799,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MLT",country:"Malta",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:93.9,internet_year:"2024",mobile_per_100:142.1,mobile_year:"2024",national_population:568847,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MNP",country:"Northern Mariana Islands",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:44278,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MHL",country:"Marshall Islands",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:65.9,internet_year:"2024",mobile_per_100:39.7,mobile_year:"2022",national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MUS",country:"Mauritius",region:"Africa",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:73.3,internet_year:"2024",mobile_per_100:172.7,mobile_year:"2024",national_population:1245779,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"FSM",country:"Micronesia, Federated States of",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"partial",internet_pct:39.5,internet_year:"2024",mobile_per_100:20,mobile_year:"2022",national_population:113160,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MCO",country:"Monaco",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:99,internet_year:"2024",mobile_per_100:107.4,mobile_year:"2024",national_population:38631,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MSR",country:"Montserrat",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"NCL",country:"New Caledonia",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:91.7,mobile_year:"2022",national_population:292639,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"NIU",country:"Niue",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"VUT",country:"Vanuatu",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:89.3,mobile_year:"2023",national_population:327777,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"NFK",country:"Norfolk Island",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"HKG",country:"Hong Kong",region:"Asia",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:95.8,internet_year:"2024",mobile_per_100:364.8,mobile_year:"2024",national_population:7524100,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MAC",country:"Macao",region:"Asia",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:89.8,internet_year:"2024",mobile_per_100:201.1,mobile_year:"2024",national_population:687e3,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"PLW",country:"Palau",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:83.9,internet_year:"2024",mobile_per_100:135.4,mobile_year:"2023",national_population:17695,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"PNG",country:"Papua New Guinea",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"no",internet_pct:18.8,internet_year:"2024",mobile_per_100:38.8,mobile_year:"2024",national_population:10576502,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BLM",country:"Saint Barthélemy",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SHN",country:"Saint Helena",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"LCA",country:"Saint Lucia",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:68.2,internet_year:"2024",mobile_per_100:98.7,mobile_year:"2022",national_population:179744,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SMR",country:"San Marino",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:97.4,internet_year:"2024",mobile_per_100:120.3,mobile_year:"2022",national_population:33977,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ASM",country:"American Samoa",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:46765,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"WSM",country:"Samoa",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:62.4,mobile_year:"2022",national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"STP",country:"Sao Tome and Principe",region:"Africa",clusters:1,people_groups:1,multi:0,internet_access:"partial",internet_pct:59.1,internet_year:"2024",mobile_per_100:62.4,mobile_year:"2024",national_population:235536,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SXM",country:"Sint Maarten (Dutch part)",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:205.4,mobile_year:"2022",national_population:43350,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SLB",country:"Solomon Islands",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"partial",internet_pct:29,internet_year:"2024",mobile_per_100:62.1,mobile_year:"2022",national_population:819198,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"LKA",country:"Sri Lanka",region:"Asia",clusters:1,people_groups:1,multi:0,internet_access:"partial",internet_pct:54.6,internet_year:"2024",mobile_per_100:132.5,mobile_year:"2024",national_population:21916e3,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SJM",country:"Svalbard and Jan Mayen",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SWZ",country:"Eswatini",region:"Africa",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:63.4,internet_year:"2024",mobile_per_100:139.8,mobile_year:"2024",national_population:1242822,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"TKL",country:"Tokelau",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"TON",country:"Tonga",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:67.4,internet_year:"2024",mobile_per_100:null,mobile_year:null,national_population:104175,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"TCA",country:"Turks and Caicos Islands",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:46535,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"VCT",country:"Saint Vincent and the Grenadines",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:76.2,internet_year:"2024",mobile_per_100:108.4,mobile_year:"2024",national_population:100616,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"WLF",country:"Wallis and Futuna",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"PRY",country:"Paraguay",region:"Latin America & Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:81.6,internet_year:"2024",mobile_per_100:126.6,mobile_year:"2023",national_population:6929153,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"FIN",country:"Finland",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:93.7,internet_year:"2024",mobile_per_100:125.9,mobile_year:"2024",national_population:5619911,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ALB",country:"Albania",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:85.9,internet_year:"2024",mobile_per_100:89.1,mobile_year:"2024",national_population:2377128,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"PAN",country:"Panama",region:"Latin America & Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:72.8,internet_year:"2024",mobile_per_100:156.6,mobile_year:"2023",national_population:4515577,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"NZL",country:"New Zealand",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:130.1,mobile_year:"2024",national_population:529e4,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CZE",country:"Czech Republic",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:87.7,internet_year:"2024",mobile_per_100:126.6,mobile_year:"2024",national_population:10905028,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GHA",country:"Ghana",region:"Africa",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:72.2,internet_year:"2024",mobile_per_100:113.6,mobile_year:"2024",national_population:34427414,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"PHL",country:"Philippines",region:"Asia",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:67.3,internet_year:"2024",mobile_per_100:115.3,mobile_year:"2024",national_population:115843670,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ISR",country:"Israel",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:88.2,internet_year:"2024",mobile_per_100:null,mobile_year:null,national_population:10002200,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GUY",country:"Guyana",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:83,internet_year:"2024",mobile_per_100:112.6,mobile_year:"2022",national_population:831087,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"UZB",country:"Uzbekistan",region:"Asia",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:89.5,internet_year:"2024",mobile_per_100:110.5,mobile_year:"2024",national_population:36361859,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ESP",country:"Spain",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:95.8,internet_year:"2024",mobile_per_100:130.3,mobile_year:"2024",national_population:48848840,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MWI",country:"Malawi",region:"Africa",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:69.3,mobile_year:"2024",national_population:21655286,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}}]},cm={class:"ci-tot"},um={class:"ci-chip"},pm={class:"ci-chip"},dm={class:"ci-chip"},gm={class:"ci-chip"},fm=["onClick"],hm={class:"sec-name"},mm={class:"sec-meta"},_m={class:"r-name"},bm={class:"r-sub"},ym={class:"r-num"},vm={class:"r-sub"},wm={class:"r-num"},$m=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"connectivity-list",setup(e){const t=Ie("profileConfig",re(null)),n=ie(()=>{var g;return((g=t.value)==null?void 0:g.isDark)===!0}),o=ie(()=>lm.countries||[]),s=ie(()=>{const g=new Map;for(const f of o.value){const _=f.region||"Other";g.has(_)||g.set(_,[]),g.get(_).push(f)}return[...g.entries()].map(([f,_])=>({name:f,items:_.slice().sort((v,k)=>k.people_groups-v.people_groups),groups:_.reduce((v,k)=>v+k.people_groups,0),unknown:_.filter(v=>v.internet_access==="unknown").length})).sort((f,_)=>_.groups-f.groups)}),r=re({}),i=g=>!!r.value[g],a=g=>{r.value={...r.value,[g]:!r.value[g]}},l=ie(()=>{const g=o.value;return{countries:g.length,resolved:g.filter(f=>f.internet_access!=="unknown").length,unknown:g.filter(f=>f.internet_access==="unknown").length,low:g.filter(f=>f.internet_access==="no").length}}),c=g=>g==="yes"?"ok":g==="partial"?"mid":g==="no"?"low":"unk",u=g=>g==="yes"?"connected":g==="partial"?"partial":g==="no"?"low":"unknown";return Wt(".ci{position:absolute;inset:0;overflow-y:auto;padding:20px 18px 44px;background:#f6f7f9;color:#0f1419;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}.ci.is-dark{background:#0a1410;color:#e5e7eb}.ci-h{margin:0 0 4px;font-size:19px;font-weight:700;text-align:center}.ci-sub{margin:0 auto 18px;max-width:640px;font-size:12.5px;line-height:1.55;text-align:center;opacity:.75}.ci-tot{display:flex;gap:14px;justify-content:center;margin-bottom:20px;flex-wrap:wrap}.ci-chip{font-size:11.5px;padding:4px 11px;border-radius:999px;background:rgba(0,0,0,.06);font-weight:600}.is-dark .ci-chip{background:rgba(255,255,255,.10)}.sec{max-width:1080px;margin:0 auto;padding-bottom:34px}.sec-head{position:sticky;top:0;z-index:6;background:#f6f7f9;display:flex;align-items:baseline;gap:10px;padding:10px 10px 8px;margin:0 2px 10px;border-bottom:1px solid rgba(0,0,0,.10);cursor:pointer;user-select:none;width:100%;text-align:left;border-top:0;border-left:0;border-right:0;font:inherit;color:inherit;box-shadow:0 6px 10px -8px rgba(0,0,0,.35);border-radius:4px 4px 0 0}.is-dark .sec-head{background:#0a1410;border-bottom-color:rgba(255,255,255,.12)}.sec-caret{display:inline-block;width:12px;font-size:10px;opacity:.55;transition:transform .18s}.sec-caret.open{transform:rotate(90deg)}.sec-name{margin:0;font-size:15px;font-weight:700}.sec-meta{font-size:11px;opacity:.6;font-variant-numeric:tabular-nums}.row{display:grid;grid-template-columns:1fr auto auto auto;gap:12px;align-items:center;padding:8px 10px;border-bottom:1px solid rgba(0,0,0,.06)}.is-dark .row{border-bottom-color:rgba(255,255,255,.07)}.r-name{font-size:13.5px;font-weight:600}.r-sub{font-size:11px;opacity:.6}.r-num{font-size:12.5px;font-variant-numeric:tabular-nums;text-align:right;min-width:72px}.pill{font-size:10.5px;font-weight:700;padding:3px 9px;border-radius:999px;white-space:nowrap}.pill.ok{background:rgba(16,185,129,.15);color:#0b7a5b}.pill.mid{background:rgba(245,158,11,.16);color:#8a6414}.pill.low{background:rgba(220,38,38,.13);color:#a12020}.pill.unk{background:rgba(0,0,0,.07);color:#6b7280}.is-dark .pill.unk{background:rgba(255,255,255,.10);color:#9ca3af}.src{max-width:1080px;margin:8px auto 0;font-size:11px;line-height:1.6;opacity:.6;text-align:center}","doxa-cities-internet"),(g,f)=>(H(),J("div",{class:Te(["ci",{"is-dark":n.value}])},[f[1]||(f[1]=I("h2",{class:"ci-h"},"Cities with Internet",-1)),f[2]||(f[2]=I("p",{class:"ci-sub"},[ke(" Connectivity where the unengaged people groups live. Every figure is a measured national statistic with its observation year — "),I("strong",null,"unknown means unmeasured, never assumed"),ke(". ")],-1)),I("div",cm,[I("span",um,Q(l.value.countries)+" countries",1),I("span",pm,Q(l.value.resolved)+" measured",1),I("span",dm,Q(l.value.unknown)+" unknown",1),I("span",gm,Q(l.value.low)+" low-connectivity",1)]),(H(!0),J(de,null,ct(s.value,_=>(H(),J("section",{key:_.name,class:"sec"},[I("button",{type:"button",class:"sec-head",onClick:v=>a(_.name)},[I("span",{class:Te(["sec-caret",{open:!i(_.name)}])},"▶",2),I("h3",hm,Q(_.name),1),I("span",mm,[ke(Q(_.items.length)+" countries · "+Q(_.groups.toLocaleString())+" people groups ",1),_.unknown?(H(),J(de,{key:0},[ke(" · "+Q(_.unknown)+" unmeasured",1)],64)):Se("",!0)])],8,fm),Uc(I("div",null,[(H(!0),J(de,null,ct(_.items,v=>(H(),J("div",{key:v.iso3,class:"row"},[I("div",null,[I("div",_m,Q(v.country),1),I("div",bm,[ke(Q(v.people_groups)+" people groups · "+Q(v.clusters)+" locations ",1),v.multi?(H(),J(de,{key:0},[ke(" · "+Q(v.multi)+" population centres",1)],64)):Se("",!0)])]),I("div",ym,[v.internet_pct!==null&&v.internet_pct!==void 0?(H(),J(de,{key:0},[ke(Q(v.internet_pct)+"% ",1),I("div",vm,Q(v.internet_year),1)],64)):(H(),J(de,{key:1},[ke("—")],64))]),I("div",wm,[v.mobile_per_100!==null&&v.mobile_per_100!==void 0?(H(),J(de,{key:0},[ke(Q(v.mobile_per_100)+" ",1),f[0]||(f[0]=I("div",{class:"r-sub"},"mob/100",-1))],64)):(H(),J(de,{key:1},[ke("—")],64))]),I("span",{class:Te(["pill",c(v.internet_access)])},Q(u(v.internet_access)),3)]))),128))],512),[[op,!i(_.name)]])]))),128)),f[3]||(f[3]=I("p",{class:"src"}," Internet and mobile figures: World Bank Open Data (CC BY 4.0), most recent observation 2018–2024. Banding: connected ≥60% · partial 25–59% · low <25% of population using the internet. Country-resolution — per-city measurements are not publicly available at this scale. ISP names, carrier names and censorship history require per-country cited reporting and are not shown. ",-1))],2))}}},Symbol.toStringTag,{value:"Module"})),ks={boundaries:{label:"geoBoundaries",href:"https://www.geoboundaries.org",title:"Country and administrative boundaries — geoBoundaries gbOpen (mixed upstream licences; see docs)"},mapbox:{label:"Mapbox",href:"https://www.mapbox.com/about/maps/"},osm:{label:"© OpenStreetMap",href:"https://www.openstreetmap.org/copyright"}};function km(e,t={}){if(!e||typeof e.addControl!="function")return null;const{boundaries:n=!0,basemap:o=!0}=t,s=document.createElement("div");s.className="doxa-attribution mapboxgl-ctrl",s.style.cssText=["font:11px/1.45 system-ui,-apple-system,Segoe UI,Roboto,sans-serif","background:rgba(255,255,255,.82)","color:#3a4048","padding:2px 6px","border-radius:3px 0 0 0","pointer-events:auto","max-width:min(92vw,420px)"].join(";");const r=[];n&&r.push(ks.boundaries),o&&(r.push(ks.mapbox),r.push(ks.osm)),s.innerHTML=r.map(a=>`${a.label}`).join(" · ");const i={onAdd:()=>s,onRemove:()=>{s.parentNode&&s.parentNode.removeChild(s)},getDefaultPosition:()=>"bottom-right"};return e.addControl(i,"bottom-right"),i}const Cm={__name:"MapToolbar",props:{hasGeocoder:{type:Boolean,default:!0}},setup(e){const t=re(null);return nt("mapToolbar",{el:t}),Wt(` .map-toolbar { position: absolute; top: 6px; @@ -85,7 +85,7 @@ .map-toolbar { top: 72px; gap: 6px; } .map-toolbar.map-toolbar--no-geocoder { top: 6px; gap: 6px; } } -`,"map-toolbar"),(n,o)=>(H(),J("div",{ref_key:"toolbarEl",ref:t,class:Te(["map-toolbar",{"map-toolbar--no-geocoder":!e.hasGeocoder}])},[Mr(n.$slots,"default")],2))}},hm=["title","aria-label","disabled"],ho={__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 Wt(` +`,"map-toolbar"),(n,o)=>(H(),J("div",{ref_key:"toolbarEl",ref:t,class:Te(["map-toolbar",{"map-toolbar--no-geocoder":!e.hasGeocoder}])},[Mr(n.$slots,"default")],2))}},Om=["title","aria-label","disabled"],fo={__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 Wt(` .mcb{ width:var(--map-btn-size,40px);height:var(--map-btn-size,40px); background:#fff; @@ -109,7 +109,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,n)=>(H(),J("button",{class:Te(["mcb",{dark:e.isDark,active:e.active}]),title:e.title,"aria-label":e.title||void 0,disabled:e.disabled,onClick:n[0]||(n[0]=o=>t.$emit("click"))},[Mr(t.$slots,"default")],10,hm))}},gm={__name:"ZoomInButton",props:{map:{type:Object,default:null},isDark:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1}},setup(e){const{t}=tn(),n=e;function o(){var s;n.disabled||(s=n.map)==null||s.zoomIn()}return(s,r)=>(H(),Qe(ho,{"is-dark":e.isDark,disabled:e.disabled,title:ze(t)("buttons.zoomIn"),onClick:o},{default:Vt(()=>[...r[0]||(r[0]=[M("span",{style:{"font-size":"20px","line-height":"1","font-weight":"600"}},"+",-1)])]),_:1},8,["is-dark","disabled","title"]))}},mm={__name:"ZoomOutButton",props:{map:{type:Object,default:null},isDark:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1}},setup(e){const{t}=tn(),n=e;function o(){var s;n.disabled||(s=n.map)==null||s.zoomOut()}return(s,r)=>(H(),Qe(ho,{"is-dark":e.isDark,disabled:e.disabled,title:ze(t)("buttons.zoomOut"),onClick:o},{default:Vt(()=>[...r[0]||(r[0]=[M("span",{style:{"font-size":"22px","line-height":"1","font-weight":"600"}},"−",-1)])]),_:1},8,["is-dark","disabled","title"]))}},_m={__name:"LocationButton",props:{map:{type:Object,default:null},isDark:{type:Boolean,default:!1},center:{type:Array,default:()=>[20,10]},zoom:{type:Number,default:1.8},userZoom:{type:Number,default:10}},setup(e){const{t}=tn(),n=e;function o(){var r;(r=n.map)==null||r.flyTo({center:n.center,zoom:n.zoom,duration:1200})}function s(){if(n.map){if(typeof navigator>"u"||!navigator.geolocation){o();return}navigator.geolocation.getCurrentPosition(r=>{const{longitude:i,latitude:a}=r.coords;Number.isFinite(i)&&Number.isFinite(a)?n.map.flyTo({center:[i,a],zoom:n.userZoom,duration:1500}):o()},()=>o(),{enableHighAccuracy:!1,timeout:5e3,maximumAge:6e4})}}return(r,i)=>(H(),Qe(ho,{"is-dark":e.isDark,title:ze(t)("buttons.resetView"),onClick:s},{default:Vt(()=>[...i[0]||(i[0]=[M("svg",{xmlns:"http://www.w3.org/2000/svg",width:"18",height:"18",viewBox:"0 0 24 24",fill:"currentColor"},[M("path",{d:"M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5A2.5 2.5 0 1 1 12 6.5a2.5 2.5 0 0 1 0 5z"})],-1)])]),_:1},8,["is-dark","title"]))}},bm={key:0,xmlns:"http://www.w3.org/2000/svg",width:"20",height:"20",viewBox:"0 0 29 29",fill:"currentColor"},ym={key:1,xmlns:"http://www.w3.org/2000/svg",width:"20",height:"20",viewBox:"0 0 29 29",fill:"currentColor"},vm={__name:"FullscreenButton",props:{mapContainer:{type:Object,default:null},isDark:{type:Boolean,default:!1}},emits:["change"],setup(e,{emit:t}){const{t:n}=tn(),o=e,s=t,r=re(!1);let i=null,a=null,l=null,c=null,u=null,f=null,h=null,m=null,v=null,$=null,A=null,N=0,C=0,_=null,b=null;function T(){if(typeof document>"u")return!1;const z=typeof navigator<"u"&&navigator.userAgent||"";return/iPad|iPhone|iPod/.test(z)||z.includes("Mac")&&typeof document<"u"&&"ontouchend"in document?!1:!!(document.fullscreenEnabled||document.webkitFullscreenEnabled)}function k(){var z,W,X;return((X=(W=(z=o.mapContainer)==null?void 0:z.getRootNode)==null?void 0:W.call(z))==null?void 0:X.host)??null}function E(){var W,X;const z=(X=(W=o.mapContainer)==null?void 0:W.getRootNode)==null?void 0:X.call(W);return document.fullscreenElement||document.webkitFullscreenElement||(z&&z instanceof ShadowRoot?z.fullscreenElement:null)||null}function x(z){const W=z.requestFullscreen||z.webkitRequestFullscreen;if(!W)return Promise.reject(new Error("Fullscreen API unavailable"));const X=W.call(z);return X&&typeof X.then=="function"?X:Promise.resolve()}function O(){const z=document.exitFullscreen||document.webkitExitFullscreen;if(!z)return Promise.reject(new Error("Fullscreen API unavailable"));const W=z.call(document);return W&&typeof W.then=="function"?W:Promise.resolve()}function R(){const z=k();if(!z)return!1;if(l=z,a=z.style.cssText,z.style.position="fixed",z.style.top="0",z.style.left="0",z.style.right="0",z.style.bottom="0",z.style.width="100vw",z.style.height="100vh",z.style.height="100dvh",z.style.zIndex="2147483647",z.style.margin="0",z.style.borderRadius="0",z.style.touchAction="pan-x pan-y pinch-zoom",typeof document<"u"){N=window.scrollY||window.pageYOffset||0,C=window.scrollX||window.pageXOffset||0;const W=document.body,X=document.documentElement;c=W?W.style.overflow:null,u=X?X.style.overflow:null,f=W?W.style.position:null,h=W?W.style.top:null,m=W?W.style.left:null,v=W?W.style.width:null,$=W?W.style.touchAction:null,A=X?X.style.touchAction:null,X&&(X.style.overflow="hidden",X.style.touchAction="none"),W&&(W.style.overflow="hidden",W.style.position="fixed",W.style.top=`-${N}px`,W.style.left=`-${C}px`,W.style.width="100%",W.style.touchAction="none"),_=le=>{if(!l)return;const Ee=le.target;Ee&&(Ee===l||l.contains&&l.contains(Ee))||le.cancelable&&le.preventDefault()},b=le=>{if(!l)return;const Ee=le.target;Ee&&(Ee===l||l.contains&&l.contains(Ee))||le.cancelable&&le.preventDefault()},document.addEventListener("touchmove",_,{passive:!1,capture:!0}),document.addEventListener("wheel",b,{passive:!1,capture:!0})}return!0}function j(){if(l){if(l.style.cssText=a||"",l=null,a=null,typeof document<"u"){const z=document.body,W=document.documentElement;z&&(z.style.overflow=c??"",z.style.position=f??"",z.style.top=h??"",z.style.left=m??"",z.style.width=v??"",z.style.touchAction=$??""),W&&(W.style.overflow=u??"",W.style.touchAction=A??""),_&&(document.removeEventListener("touchmove",_,{capture:!0}),_=null),b&&(document.removeEventListener("wheel",b,{capture:!0}),b=null),typeof window<"u"&&(N||C)&&window.scrollTo(C,N)}c=null,u=null,f=null,h=null,m=null,v=null,$=null,A=null,N=0,C=0}}function K(){typeof window>"u"||window.requestAnimationFrame(()=>{window.dispatchEvent(new Event("resize"))})}function ne(){if(!T()){r.value?(j(),r.value=!1,s("change",!1)):R()&&(r.value=!0,s("change",!0)),K();return}if(E())O().then(()=>{r.value=!1,s("change",!1)}).catch(()=>{});else{const W=k()??document.documentElement;x(W).then(()=>{r.value=!0,s("change",!0)}).catch(()=>{x(document.documentElement).then(()=>{r.value=!0,s("change",!0)}).catch(()=>{})})}}function ue(){r.value=!!E(),s("change",r.value)}return qt(()=>{var W,X;document.addEventListener("fullscreenchange",ue),document.addEventListener("webkitfullscreenchange",ue);const z=(X=(W=o.mapContainer)==null?void 0:W.getRootNode)==null?void 0:X.call(W);z instanceof ShadowRoot&&(i=z,z.addEventListener("fullscreenchange",ue),z.addEventListener("webkitfullscreenchange",ue))}),zt(()=>{document.removeEventListener("fullscreenchange",ue),document.removeEventListener("webkitfullscreenchange",ue),i&&(i.removeEventListener("fullscreenchange",ue),i.removeEventListener("webkitfullscreenchange",ue),i=null),l&&j()}),(z,W)=>(H(),Qe(ho,{"is-dark":e.isDark,active:r.value,title:ze(n)("buttons.toggleFullscreen"),onClick:ne},{default:Vt(()=>[r.value?(H(),J("svg",ym,[...W[1]||(W[1]=[M("path",{d:"M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1h-5.5zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1v-5.5zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1v5.5zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1h5.5z"},null,-1)])])):(H(),J("svg",bm,[...W[0]||(W[0]=[M("path",{d:"M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3h1zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16h1zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5H13zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1V7.5z"},null,-1)])]))]),_:1},8,["is-dark","active","title"]))}},wm=lr&&lr.tagName.toUpperCase()==="SCRIPT"&&lr.src||new URL("cities-internet.js",document.baseURI).href,nn=e=>String(e||"").trim().replace(/\/+$/,"");function jl(){try{const t=String(wm||"").split(/[?#]/)[0].match(/^(.*)\/([^/]+)\/([^/]+)\.js$/);return!t||t[2]!==t[3]?null:t[1]||null}catch{return null}}function km(e){const t=e==null?void 0:e.embedBaseUrl;if(typeof t=="string"&&t.trim())return nn(t);if(typeof window<"u"){const n=window.MAP_EMBED_BASE_URL;if(typeof n=="string"&&n.trim())return nn(n)}return nn(jl()||"")}function Gl(e){const t=e==null?void 0:e.assetsBase;if(typeof t=="string"&&t.trim()){const o=nn(t);if(/^https?:\/\//i.test(o)||o.startsWith("/"))return o}const n=nn((e==null?void 0:e.treeBase)||"")||nn(jl()||"");if(n)try{const o=typeof document<"u"?document.baseURI:void 0;return nn(new URL(n+"/../assets",o).href)}catch{return nn(n.replace(/\/[^/]*$/,"")+"/assets")}return"./assets"}function $m({shareUrl:e,embedPath:t,profileConfig:n}={}){const o=n||null,s=typeof window<"u",r=e||(o==null?void 0:o.shareUrl);if(typeof r=="string"&&r.trim())return r.trim();const i=String(t||(o==null?void 0:o.shareEmbedPath)||"").trim();if(i){if(/^https?:\/\//i.test(i))return i;if(i.startsWith("/"))return s?window.location.origin+i:i;const a=km(o),l=i.replace(/^\.\//,"");if(a)return a+"/"+l;if(typeof document<"u")try{return new URL(l,document.baseURI).href}catch{}return l}return s?window.location.origin+window.location.pathname:""}const Om=["aria-label"],Nm={class:"mcm-header"},Cm={class:"mcm-title"},Am={class:"mcm-body"},Em=".dsm-map-area, .rm-map-area, .dm-map-area, [data-map-area]",$s="doxa-map-menu-open",Tm={__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}){Wt(` +`,"map-control-button"),(t,n)=>(H(),J("button",{class:Te(["mcb",{dark:e.isDark,active:e.active}]),title:e.title,"aria-label":e.title||void 0,disabled:e.disabled,onClick:n[0]||(n[0]=o=>t.$emit("click"))},[Mr(t.$slots,"default")],10,Om))}},Nm={__name:"ZoomInButton",props:{map:{type:Object,default:null},isDark:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1}},setup(e){const{t}=tn(),n=e;function o(){var s;n.disabled||(s=n.map)==null||s.zoomIn()}return(s,r)=>(H(),Qe(fo,{"is-dark":e.isDark,disabled:e.disabled,title:qe(t)("buttons.zoomIn"),onClick:o},{default:Yt(()=>[...r[0]||(r[0]=[I("span",{style:{"font-size":"20px","line-height":"1","font-weight":"600"}},"+",-1)])]),_:1},8,["is-dark","disabled","title"]))}},Am={__name:"ZoomOutButton",props:{map:{type:Object,default:null},isDark:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1}},setup(e){const{t}=tn(),n=e;function o(){var s;n.disabled||(s=n.map)==null||s.zoomOut()}return(s,r)=>(H(),Qe(fo,{"is-dark":e.isDark,disabled:e.disabled,title:qe(t)("buttons.zoomOut"),onClick:o},{default:Yt(()=>[...r[0]||(r[0]=[I("span",{style:{"font-size":"22px","line-height":"1","font-weight":"600"}},"−",-1)])]),_:1},8,["is-dark","disabled","title"]))}},Em={__name:"LocationButton",props:{map:{type:Object,default:null},isDark:{type:Boolean,default:!1},center:{type:Array,default:()=>[20,10]},zoom:{type:Number,default:1.8},userZoom:{type:Number,default:10}},setup(e){const{t}=tn(),n=e;function o(){var r;(r=n.map)==null||r.flyTo({center:n.center,zoom:n.zoom,duration:1200})}function s(){if(n.map){if(typeof navigator>"u"||!navigator.geolocation){o();return}navigator.geolocation.getCurrentPosition(r=>{const{longitude:i,latitude:a}=r.coords;Number.isFinite(i)&&Number.isFinite(a)?n.map.flyTo({center:[i,a],zoom:n.userZoom,duration:1500}):o()},()=>o(),{enableHighAccuracy:!1,timeout:5e3,maximumAge:6e4})}}return(r,i)=>(H(),Qe(fo,{"is-dark":e.isDark,title:qe(t)("buttons.resetView"),onClick:s},{default:Yt(()=>[...i[0]||(i[0]=[I("svg",{xmlns:"http://www.w3.org/2000/svg",width:"18",height:"18",viewBox:"0 0 24 24",fill:"currentColor"},[I("path",{d:"M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5A2.5 2.5 0 1 1 12 6.5a2.5 2.5 0 0 1 0 5z"})],-1)])]),_:1},8,["is-dark","title"]))}},Tm={key:0,xmlns:"http://www.w3.org/2000/svg",width:"20",height:"20",viewBox:"0 0 29 29",fill:"currentColor"},Sm={key:1,xmlns:"http://www.w3.org/2000/svg",width:"20",height:"20",viewBox:"0 0 29 29",fill:"currentColor"},Pm={__name:"FullscreenButton",props:{mapContainer:{type:Object,default:null},isDark:{type:Boolean,default:!1}},emits:["change"],setup(e,{emit:t}){const{t:n}=tn(),o=e,s=t,r=re(!1);let i=null,a=null,l=null,c=null,u=null,g=null,f=null,_=null,v=null,k=null,O=null,P=0,N=0,h=null,b=null;function A(){if(typeof document>"u")return!1;const q=typeof navigator<"u"&&navigator.userAgent||"";return/iPad|iPhone|iPod/.test(q)||q.includes("Mac")&&typeof document<"u"&&"ontouchend"in document?!1:!!(document.fullscreenEnabled||document.webkitFullscreenEnabled)}function C(){var q,W,X;return((X=(W=(q=o.mapContainer)==null?void 0:q.getRootNode)==null?void 0:W.call(q))==null?void 0:X.host)??null}function E(){var W,X;const q=(X=(W=o.mapContainer)==null?void 0:W.getRootNode)==null?void 0:X.call(W);return document.fullscreenElement||document.webkitFullscreenElement||(q&&q instanceof ShadowRoot?q.fullscreenElement:null)||null}function F(q){const W=q.requestFullscreen||q.webkitRequestFullscreen;if(!W)return Promise.reject(new Error("Fullscreen API unavailable"));const X=W.call(q);return X&&typeof X.then=="function"?X:Promise.resolve()}function $(){const q=document.exitFullscreen||document.webkitExitFullscreen;if(!q)return Promise.reject(new Error("Fullscreen API unavailable"));const W=q.call(document);return W&&typeof W.then=="function"?W:Promise.resolve()}function D(){const q=C();if(!q)return!1;if(l=q,a=q.style.cssText,q.style.position="fixed",q.style.top="0",q.style.left="0",q.style.right="0",q.style.bottom="0",q.style.width="100vw",q.style.height="100vh",q.style.height="100dvh",q.style.zIndex="2147483647",q.style.margin="0",q.style.borderRadius="0",q.style.touchAction="pan-x pan-y pinch-zoom",typeof document<"u"){P=window.scrollY||window.pageYOffset||0,N=window.scrollX||window.pageXOffset||0;const W=document.body,X=document.documentElement;c=W?W.style.overflow:null,u=X?X.style.overflow:null,g=W?W.style.position:null,f=W?W.style.top:null,_=W?W.style.left:null,v=W?W.style.width:null,k=W?W.style.touchAction:null,O=X?X.style.touchAction:null,X&&(X.style.overflow="hidden",X.style.touchAction="none"),W&&(W.style.overflow="hidden",W.style.position="fixed",W.style.top=`-${P}px`,W.style.left=`-${N}px`,W.style.width="100%",W.style.touchAction="none"),h=le=>{if(!l)return;const Ee=le.target;Ee&&(Ee===l||l.contains&&l.contains(Ee))||le.cancelable&&le.preventDefault()},b=le=>{if(!l)return;const Ee=le.target;Ee&&(Ee===l||l.contains&&l.contains(Ee))||le.cancelable&&le.preventDefault()},document.addEventListener("touchmove",h,{passive:!1,capture:!0}),document.addEventListener("wheel",b,{passive:!1,capture:!0})}return!0}function U(){if(l){if(l.style.cssText=a||"",l=null,a=null,typeof document<"u"){const q=document.body,W=document.documentElement;q&&(q.style.overflow=c??"",q.style.position=g??"",q.style.top=f??"",q.style.left=_??"",q.style.width=v??"",q.style.touchAction=k??""),W&&(W.style.overflow=u??"",W.style.touchAction=O??""),h&&(document.removeEventListener("touchmove",h,{capture:!0}),h=null),b&&(document.removeEventListener("wheel",b,{capture:!0}),b=null),typeof window<"u"&&(P||N)&&window.scrollTo(N,P)}c=null,u=null,g=null,f=null,_=null,v=null,k=null,O=null,P=0,N=0}}function K(){typeof window>"u"||window.requestAnimationFrame(()=>{window.dispatchEvent(new Event("resize"))})}function ne(){if(!A()){r.value?(U(),r.value=!1,s("change",!1)):D()&&(r.value=!0,s("change",!0)),K();return}if(E())$().then(()=>{r.value=!1,s("change",!1)}).catch(()=>{});else{const W=C()??document.documentElement;F(W).then(()=>{r.value=!0,s("change",!0)}).catch(()=>{F(document.documentElement).then(()=>{r.value=!0,s("change",!0)}).catch(()=>{})})}}function ue(){r.value=!!E(),s("change",r.value)}return zt(()=>{var W,X;document.addEventListener("fullscreenchange",ue),document.addEventListener("webkitfullscreenchange",ue);const q=(X=(W=o.mapContainer)==null?void 0:W.getRootNode)==null?void 0:X.call(W);q instanceof ShadowRoot&&(i=q,q.addEventListener("fullscreenchange",ue),q.addEventListener("webkitfullscreenchange",ue))}),qt(()=>{document.removeEventListener("fullscreenchange",ue),document.removeEventListener("webkitfullscreenchange",ue),i&&(i.removeEventListener("fullscreenchange",ue),i.removeEventListener("webkitfullscreenchange",ue),i=null),l&&U()}),(q,W)=>(H(),Qe(fo,{"is-dark":e.isDark,active:r.value,title:qe(n)("buttons.toggleFullscreen"),onClick:ne},{default:Yt(()=>[r.value?(H(),J("svg",Sm,[...W[1]||(W[1]=[I("path",{d:"M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1h-5.5zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1v-5.5zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1v5.5zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1h5.5z"},null,-1)])])):(H(),J("svg",Tm,[...W[0]||(W[0]=[I("path",{d:"M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3h1zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16h1zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5H13zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1V7.5z"},null,-1)])]))]),_:1},8,["is-dark","active","title"]))}},Fm=cr&&cr.tagName.toUpperCase()==="SCRIPT"&&cr.src||new URL("cities-internet.js",document.baseURI).href,nn=e=>String(e||"").trim().replace(/\/+$/,"");function Vl(){try{const t=String(Fm||"").split(/[?#]/)[0].match(/^(.*)\/([^/]+)\/([^/]+)\.js$/);return!t||t[2]!==t[3]?null:t[1]||null}catch{return null}}function xm(e){const t=e==null?void 0:e.embedBaseUrl;if(typeof t=="string"&&t.trim())return nn(t);if(typeof window<"u"){const n=window.MAP_EMBED_BASE_URL;if(typeof n=="string"&&n.trim())return nn(n)}return nn(Vl()||"")}function Yl(e){const t=e==null?void 0:e.assetsBase;if(typeof t=="string"&&t.trim()){const o=nn(t);if(/^https?:\/\//i.test(o)||o.startsWith("/"))return o}const n=nn((e==null?void 0:e.treeBase)||"")||nn(Vl()||"");if(n)try{const o=typeof document<"u"?document.baseURI:void 0;return nn(new URL(n+"/../assets",o).href)}catch{return nn(n.replace(/\/[^/]*$/,"")+"/assets")}return"./assets"}function Lm({shareUrl:e,embedPath:t,profileConfig:n}={}){const o=n||null,s=typeof window<"u",r=e||(o==null?void 0:o.shareUrl);if(typeof r=="string"&&r.trim())return r.trim();const i=String(t||(o==null?void 0:o.shareEmbedPath)||"").trim();if(i){if(/^https?:\/\//i.test(i))return i;if(i.startsWith("/"))return s?window.location.origin+i:i;const a=xm(o),l=i.replace(/^\.\//,"");if(a)return a+"/"+l;if(typeof document<"u")try{return new URL(l,document.baseURI).href}catch{}return l}return s?window.location.origin+window.location.pathname:""}const Im=["aria-label"],Mm={class:"mcm-header"},Rm={class:"mcm-title"},Bm={class:"mcm-body"},Dm=".dsm-map-area, .rm-map-area, .dm-map-area, [data-map-area]",Cs="doxa-map-menu-open",Wm={__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}){Wt(` .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; @@ -125,7 +125,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 n=e,o=t,s=De("mapToolbar",null),r=re(null),i=re(null),a=re({});function l(){var O;const m=(O=s==null?void 0:s.el)==null?void 0:O.value,v=r.value;if(!m||!v){a.value={};return}const $=v.getBoundingClientRect(),A=m.getBoundingClientRect(),N=(A.left+A.right)/2>($.left+$.right)/2,C=8,_=12,b=N?$.right-A.left+C:A.right-$.left+C,T=Math.max(200,Math.min(n.width,$.width-b-_)),k=Math.max(0,A.top-$.top);let x=v.getAttribute&&v.getAttribute("data-map-area")==="share-fallback"?Math.max(120,(window.innerHeight||900)-A.top-_):Math.max(120,$.height-k-_);n.matchToolbar&&(x=Math.max(120,Math.min(x,A.height))),n.maxHeight&&(x=Math.min(x,n.maxHeight)),a.value={top:`${Math.round(k)}px`,[N?"right":"left"]:`${Math.round(b)}px`,width:`${Math.round(T)}px`,maxHeight:`${Math.round(x)}px`,...n.height?{height:`${Math.round(Math.min(n.height,x))}px`}:{}}}function c(m){n.open&&m.detail!==i.value&&o("close")}ot(()=>n.open,async m=>{var v;if(m){await Hn(),l();try{(v=r.value)==null||v.dispatchEvent(new CustomEvent($s,{detail:i.value}))}catch{}}});function u(){n.open&&l()}function f(m){m.key==="Escape"&&n.open&&o("close")}function h(m){var $;if(!n.open)return;const v=m.composedPath?m.composedPath():[m.target];i.value&&v.includes(i.value)||($=s==null?void 0:s.el)!=null&&$.value&&v.includes(s.el.value)||v.some(A=>{var N,C,_,b;return((C=(N=A==null?void 0:A.classList)==null?void 0:N.contains)==null?void 0:C.call(N,"mapboxgl-canvas"))||((b=(_=A==null?void 0:A.classList)==null?void 0:_.contains)==null?void 0:b.call(_,"maplibregl-canvas"))})&&o("close")}return qt(()=>{var m,v,$;r.value=((v=(m=s==null?void 0:s.el)==null?void 0:m.value)==null?void 0:v.closest(Em))||null,($=r.value)==null||$.addEventListener($s,c),window.addEventListener("resize",u),document.addEventListener("click",h,!0),document.addEventListener("keydown",f)}),zt(()=>{var m;(m=r.value)==null||m.removeEventListener($s,c),window.removeEventListener("resize",u),document.removeEventListener("click",h,!0),document.removeEventListener("keydown",f)}),(m,v)=>(H(),Qe(zc,{to:r.value,disabled:!r.value},[e.open?(H(),J("div",{key:0,ref_key:"el",ref:i,class:Te(["mcm",{light:!e.isDark}]),style:bn(a.value),role:"dialog","aria-label":e.title},[M("div",Nm,[M("span",Cm,Q(e.title),1),M("button",{class:"mcm-close",type:"button","aria-label":"Close",onClick:v[0]||(v[0]=$=>o("close"))},[...v[1]||(v[1]=[M("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"},[M("line",{x1:"2",y1:"2",x2:"12",y2:"12"}),M("line",{x1:"12",y1:"2",x2:"2",y2:"12"})],-1)])])]),M("div",Am,[Mr(m.$slots,"default")])],14,Om)):Le("",!0)],8,["to","disabled"]))}},Lm={class:"share-steps"},Sm={class:"share-tabs"},xm={key:0,class:"share-body"},Im={class:"share-url-box"},Fm={class:"share-url-text"},Mm={key:0,width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},Pm={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"},Bm={key:1,class:"share-body"},Dm={class:"share-size-pills"},Rm=["onClick"],Wm={class:"share-code-box"},Um={key:0,width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},jm={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"},Gm={__name:"ShareButton",props:{isDark:{type:Boolean,default:!1},embedPath:{type:String,default:""}},setup(e){Wt(` +`,"map-control-menu");const n=e,o=t,s=Ie("mapToolbar",null),r=re(null),i=re(null),a=re({});function l(){var $;const _=($=s==null?void 0:s.el)==null?void 0:$.value,v=r.value;if(!_||!v){a.value={};return}const k=v.getBoundingClientRect(),O=_.getBoundingClientRect(),P=(O.left+O.right)/2>(k.left+k.right)/2,N=8,h=12,b=P?k.right-O.left+N:O.right-k.left+N,A=Math.max(200,Math.min(n.width,k.width-b-h)),C=Math.max(0,O.top-k.top);let F=v.getAttribute&&v.getAttribute("data-map-area")==="share-fallback"?Math.max(120,(window.innerHeight||900)-O.top-h):Math.max(120,k.height-C-h);n.matchToolbar&&(F=Math.max(120,Math.min(F,O.height))),n.maxHeight&&(F=Math.min(F,n.maxHeight)),a.value={top:`${Math.round(C)}px`,[P?"right":"left"]:`${Math.round(b)}px`,width:`${Math.round(A)}px`,maxHeight:`${Math.round(F)}px`,...n.height?{height:`${Math.round(Math.min(n.height,F))}px`}:{}}}function c(_){n.open&&_.detail!==i.value&&o("close")}ot(()=>n.open,async _=>{var v;if(_){await Hn(),l();try{(v=r.value)==null||v.dispatchEvent(new CustomEvent(Cs,{detail:i.value}))}catch{}}});function u(){n.open&&l()}function g(_){_.key==="Escape"&&n.open&&o("close")}function f(_){var k;if(!n.open)return;const v=_.composedPath?_.composedPath():[_.target];i.value&&v.includes(i.value)||(k=s==null?void 0:s.el)!=null&&k.value&&v.includes(s.el.value)||v.some(O=>{var P,N,h,b;return((N=(P=O==null?void 0:O.classList)==null?void 0:P.contains)==null?void 0:N.call(P,"mapboxgl-canvas"))||((b=(h=O==null?void 0:O.classList)==null?void 0:h.contains)==null?void 0:b.call(h,"maplibregl-canvas"))})&&o("close")}return zt(()=>{var _,v,k;r.value=((v=(_=s==null?void 0:s.el)==null?void 0:_.value)==null?void 0:v.closest(Dm))||null,(k=r.value)==null||k.addEventListener(Cs,c),window.addEventListener("resize",u),document.addEventListener("click",f,!0),document.addEventListener("keydown",g)}),qt(()=>{var _;(_=r.value)==null||_.removeEventListener(Cs,c),window.removeEventListener("resize",u),document.removeEventListener("click",f,!0),document.removeEventListener("keydown",g)}),(_,v)=>(H(),Qe(Jc,{to:r.value,disabled:!r.value},[e.open?(H(),J("div",{key:0,ref_key:"el",ref:i,class:Te(["mcm",{light:!e.isDark}]),style:bn(a.value),role:"dialog","aria-label":e.title},[I("div",Mm,[I("span",Rm,Q(e.title),1),I("button",{class:"mcm-close",type:"button","aria-label":"Close",onClick:v[0]||(v[0]=k=>o("close"))},[...v[1]||(v[1]=[I("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"},[I("line",{x1:"2",y1:"2",x2:"12",y2:"12"}),I("line",{x1:"12",y1:"2",x2:"2",y2:"12"})],-1)])])]),I("div",Bm,[Mr(_.$slots,"default")])],14,Im)):Se("",!0)],8,["to","disabled"]))}},Gm={class:"share-steps"},Um={class:"share-tabs"},jm={key:0,class:"share-body"},Vm={class:"share-url-box"},Ym={class:"share-url-text"},Hm={key:0,width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},zm={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"},qm={key:1,class:"share-body"},Km={class:"share-size-pills"},Xm=["onClick"],Jm={class:"share-code-box"},Zm={key:0,width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},Qm={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"},e_={__name:"ShareButton",props:{isDark:{type:Boolean,default:!1},embedPath:{type:String,default:""}},setup(e){Wt(` .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); @@ -377,4 +377,4 @@ border-color:rgba(46,164,79,0.30); color:#2ea44f; } -`,"share-button");const{t,tm:n,rt:o}=tn(),s=e,r=re(null),i=re(!1),a=re(null),l=re(null),c=re("link"),u=re(!1),f=re(!1),h=re("medium"),m={small:{label:"Small",height:400},medium:{label:"Medium",height:600},large:{label:"Large",height:800}},v=De("profileConfig",null),$=ie(()=>$m({embedPath:s.embedPath,profileConfig:ze(v)||null})),A=ie(()=>{const R=m[h.value].height;return''});function N(){i.value=!i.value,i.value&&(c.value="link",u.value=!1,f.value=!1)}function C(){i.value=!1}async function _(R){try{if(navigator.clipboard&&window.isSecureContext)return await navigator.clipboard.writeText(R),!0}catch{}try{const j=document.createElement("textarea");j.value=R,j.setAttribute("readonly",""),j.style.cssText="position:fixed;top:-1000px;opacity:0",document.body.appendChild(j),j.select();const K=document.execCommand("copy");return document.body.removeChild(j),K}catch{return!1}}async function b(){await _($.value)&&(u.value=!0,setTimeout(()=>{u.value=!1},2e3))}async function T(){await _(A.value)&&(f.value=!0,setTimeout(()=>{f.value=!1},2e3))}const k=De("mapToolbar",null),E=re(null);nt("mapToolbar",k||{el:E});const x=!k;function O(R){if(r.value=R||null,!x||!R){R||(E.value=null);return}const j=R.offsetParent||R.parentElement;j&&!j.closest(".dsm-map-area, .rm-map-area, .dm-map-area, [data-map-area]")&&j.setAttribute("data-map-area","share-fallback"),E.value=R}return(R,j)=>(H(),J("div",{ref:O,class:"share-wrap","data-share-root":""},[ve(ho,{ref_key:"btnEl",ref:l,"is-dark":e.isDark,active:i.value,title:ze(t)("buttons.share"),onClick:N},{default:Vt(()=>[...j[2]||(j[2]=[M("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"},[M("path",{d:"M4 12v7a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-7"}),M("polyline",{points:"16 6 12 2 8 6"}),M("line",{x1:"12",y1:"2",x2:"12",y2:"15"})],-1)])]),_:1},8,["is-dark","active","title"]),ve(Tm,{open:i.value,title:ze(t)("buttons.share"),"is-dark":e.isDark,onClose:C},{default:Vt(()=>[M("div",{ref_key:"popoverEl",ref:a,class:Te(["share-pop",{light:!e.isDark}])},[M("ul",Lm,[(H(!0),J(de,null,ct(ze(n)("buttons.shareSteps"),(K,ne)=>(H(),J("li",{key:ne},Q(ze(o)(K)),1))),128))]),M("div",Sm,[M("button",{class:Te(["share-tab",{active:c.value==="link"}]),onClick:j[0]||(j[0]=K=>c.value="link")},"Embed link",2),M("button",{class:Te(["share-tab",{active:c.value==="embed"}]),onClick:j[1]||(j[1]=K=>c.value="embed")},"Add to Your Website",2)]),c.value==="link"?(H(),J("div",xm,[M("div",Im,[M("div",Fm,Q($.value),1)]),M("button",{class:Te(["share-primary-btn",{copied:u.value}]),onClick:b},[u.value?(H(),J("svg",Pm,[...j[4]||(j[4]=[M("polyline",{points:"20 6 9 17 4 12"},null,-1)])])):(H(),J("svg",Mm,[...j[3]||(j[3]=[M("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"},null,-1),M("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"},null,-1)])])),$e(" "+Q(u.value?"Copied!":"Copy Link"),1)],2)])):Le("",!0),c.value==="embed"?(H(),J("div",Bm,[j[7]||(j[7]=M("div",{class:"share-embed-desc"}," Paste this code into your website builder (WordPress, Squarespace, Wix, or any site that accepts HTML widgets). ",-1)),M("div",Dm,[(H(),J(de,null,ct(m,(K,ne)=>M("button",{key:ne,class:Te(["share-size-pill",{active:h.value===ne}]),onClick:ue=>h.value=ne},Q(K.label),11,Rm)),64))]),M("div",Wm,Q(A.value),1),M("button",{class:Te(["share-secondary-btn",{copied:f.value}]),onClick:T},[f.value?(H(),J("svg",jm,[...j[6]||(j[6]=[M("polyline",{points:"20 6 9 17 4 12"},null,-1)])])):(H(),J("svg",Um,[...j[5]||(j[5]=[M("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"},null,-1),M("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"},null,-1)])])),$e(" "+Q(f.value?"Copied!":"Copy Code"),1)],2)])):Le("",!0)],2)]),_:1},8,["open","title","is-dark"])],512))}},Ym={class:"gm-legend"},Vm={class:"gm-keys"},Hm={key:1,class:"gm-err"},qm={key:2,class:"gm-sheet"},zm={class:"gm-sh-head"},Km={class:"gm-sh-name"},Xm={key:0,class:"gm-ai"},Jm={class:"gm-stat"},Zm={class:"gm-stat"},Qm={class:"gm-stat"},e_={class:"gm-stat"},t_={class:"gm-stat"},n_={key:1,class:"gm-list"},o_={class:"gm-list-h"},r_={key:2,class:"gm-list"},s_=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"connectivity-map",setup(e){const t=De("profileConfig",re(null)),n=ie(()=>{var N;return((N=t.value)==null?void 0:N.isDark)===!0}),o=ie(()=>{var N;return((N=t.value)==null?void 0:N.tk)||window.DOXA_TOKEN||""}),s=ie(()=>Gl(t.value)),r=re(null),i=Gn(null),a=re([]),l=re(null),c=re(!0),u=re(null),f=[{id:"yes",label:"connected 60%+",color:"#10b981"},{id:"partial",label:"partial 25–59%",color:"#e8c15a"},{id:"no",label:"low, under 25%",color:"#b42318"},{id:"unknown",label:"not measured",color:"#9aa2ad"}],h=N=>(f.find(C=>C.id===N)||{}).color||"#9aa2ad",m=ie(()=>{const N={};for(const C of a.value)N[C.iso3]=C;return N});async function v(){const[N,C]=await Promise.all([fetch(`${s.value}/tables/internet-by-country.json`).then(_=>_.json()),fetch(`${s.value}/boundaries/world-adm0.geojson`).then(_=>_.json())]);return a.value=N.countries||[],C}function $(N,C){const _=m.value,T={type:"FeatureCollection",features:(C.features||[]).map(k=>{var O;const E=(O=k.properties)==null?void 0:O.iso3,x=_[E];return{type:"Feature",properties:{iso3:E,band:(x==null?void 0:x.band)||"none",color:x?h(x.band):"rgba(0,0,0,0)",hasData:!!x},geometry:k.geometry}})};if(N.getSource("ci-src")){N.getSource("ci-src").setData(T);return}N.addSource("ci-src",{type:"geojson",data:T}),N.addLayer({id:"ci-fill",type:"fill",source:"ci-src",paint:{"fill-color":["get","color"],"fill-opacity":["case",["get","hasData"],.72,0]}}),N.addLayer({id:"ci-line",type:"line",source:"ci-src",paint:{"line-color":"rgba(255,255,255,0.5)","line-width":.5}}),N.on("click","ci-fill",k=>{var x,O,R;const E=(R=(O=(x=k.features)==null?void 0:x[0])==null?void 0:O.properties)==null?void 0:R.iso3;E&&m.value[E]&&(l.value=m.value[E])}),N.on("mouseenter","ci-fill",()=>{N.getCanvas().style.cursor="pointer"}),N.on("mouseleave","ci-fill",()=>{N.getCanvas().style.cursor=""})}qt(async()=>{const N=window.mapboxgl;if(!N||!r.value){u.value="mapbox-gl not loaded";return}try{const C=await v(),_=new N.Map({container:r.value,style:n.value?"mapbox://styles/mapbox/dark-v11":"mapbox://styles/mapbox/light-v11",accessToken:o.value,center:[42,18],zoom:1.3,projection:"mercator",attributionControl:!1});i.value=vn(_),dm(_,{boundaries:!0}),_.once("load",()=>$(_,C))}catch(C){u.value=String(C.message||C)}}),zt(()=>{var N;try{(N=i.value)==null||N.remove()}catch{}});const A=N=>(Number(N)||0).toLocaleString();return Wt(".gm{position:absolute;inset:0;overflow:hidden}.gm-map{position:absolute;inset:0}.gm-legend{position:absolute;top:8px;left:8px;width:var(--map-legend-width,380px);max-width:calc(100% - 16px);box-sizing:border-box;z-index:4;padding:8px 10px;border-radius:10px;background:rgba(255,255,255,.94);color:#0f1419;font:12px/1.35 -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;box-shadow:0 2px 10px rgba(0,0,0,.16)}@media(max-width:480px){.gm-legend{width:auto;right:46px}}.is-dark .gm-legend{background:rgba(19,32,25,.95);color:#e5e7eb}.gm-title{font-weight:700;font-size:12.5px;margin-bottom:5px}.gm-keys{display:flex;flex-wrap:wrap;gap:5px 12px}.gm-key{display:flex;align-items:center;gap:5px;font-size:11px;white-space:nowrap}.gm-sw{width:12px;height:12px;border-radius:3px;flex:none}.gm-caveat{margin-top:5px;font-size:10.5px;opacity:.72;line-height:1.4}.gm-sheet{position:absolute;left:0;right:0;bottom:0;z-index:6;max-height:62%;overflow-y:auto;background:#fff;color:#0f1419;border-radius:14px 14px 0 0;padding:14px 16px 22px;font:13px/1.5 -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;box-shadow:0 -6px 26px rgba(0,0,0,.28)}@media(min-width:700px){.gm-sheet{left:auto;right:14px;bottom:14px;width:330px;border-radius:12px}}.is-dark .gm-sheet{background:#132019;color:#e5e7eb}.gm-sh-head{display:flex;align-items:center;gap:10px;margin-bottom:8px}.gm-sh-name{font-weight:800;font-size:15px}.gm-ai{display:flex;align-items:flex-start;gap:8px;margin:0 0 10px;padding:7px 9px;border-radius:8px;font-size:11px;line-height:1.35;background:rgba(180,120,0,.12);color:#7a4f00;border:1px solid rgba(180,120,0,.25)}.is-dark .gm-ai{background:rgba(255,200,80,.10);color:#f0cf88;border-color:rgba(255,200,80,.22)}.gm-ai-x{margin-left:auto;flex:none;border:0;background:none;cursor:pointer;font-size:15px;line-height:1;color:inherit;opacity:.7;padding:0 2px}.gm-ai-x:hover{opacity:1}.gm-x{margin-left:auto;border:1px solid rgba(0,0,0,.16);background:transparent;color:inherit;font:600 12px inherit;padding:6px 12px;border-radius:8px;cursor:pointer;min-height:34px}.gm-stat{display:flex;justify-content:space-between;gap:12px;padding:4px 0;border-bottom:1px solid rgba(0,0,0,.07);font-variant-numeric:tabular-nums}.is-dark .gm-stat{border-bottom-color:rgba(255,255,255,.09)}.gm-stat b{font-weight:700}.gm-list{margin-top:9px}.gm-list-h{font-weight:700;font-size:12px;margin-bottom:3px}.gm-list ul{margin:0;padding-left:17px;font-size:12px;line-height:1.5}.gm-note{margin-top:9px;font-size:11px;line-height:1.5;opacity:.75}.gm-err{position:absolute;top:50%;left:0;right:0;text-align:center;font-size:13px;opacity:.7}","doxa-connectivity-map"),(N,C)=>(H(),J("div",{class:Te(["gm",{"is-dark":n.value}])},[M("div",{ref_key:"mapEl",ref:r,class:"gm-map"},null,512),i.value?(H(),Qe(fm,{key:0},{default:Vt(()=>[ve(gm,{map:i.value,"is-dark":n.value},null,8,["map","is-dark"]),ve(mm,{map:i.value,"is-dark":n.value},null,8,["map","is-dark"]),ve(_m,{map:i.value,"is-dark":n.value},null,8,["map","is-dark"]),ve(vm,{"map-container":r.value,"is-dark":n.value},null,8,["map-container","is-dark"]),ve(Gm,{"is-dark":n.value,"embed-path":"cities-internet/connectivity-map/index.html"},null,8,["is-dark"])]),_:1})):Le("",!0),M("div",Ym,[C[2]||(C[2]=M("div",{class:"gm-title"},"Internet access where unengaged people groups live",-1)),M("div",Vm,[(H(),J(de,null,ct(f,_=>M("span",{key:_.id,class:"gm-key"},[M("i",{class:"gm-sw",style:bn({background:_.color})},null,4),$e(Q(_.label),1)])),64))]),C[3]||(C[3]=M("div",{class:"gm-caveat"}," NATIONAL figures (World Bank). Per-city connectivity is not publicly available — do not read a city off a country. ",-1))]),u.value?(H(),J("div",Hm,Q(u.value),1)):Le("",!0),l.value?(H(),J("div",qm,[M("div",zm,[M("span",Km,Q(l.value.country),1),M("button",{type:"button",class:"gm-x",onClick:C[0]||(C[0]=_=>l.value=null)},"Close")]),c.value?(H(),J("div",Xm,[C[4]||(C[4]=M("span",null,"Data was found by AI deep research — it is subject to false information.",-1)),M("button",{type:"button",class:"gm-ai-x",onClick:C[1]||(C[1]=_=>c.value=!1),"aria-label":"Dismiss"},"×")])):Le("",!0),M("div",Jm,[C[5]||(C[5]=M("span",null,"Internet users",-1)),M("b",null,Q(l.value.internet_pct!=null?l.value.internet_pct+"%":"unknown"),1)]),M("div",Zm,[C[6]||(C[6]=M("span",null,"Measured",-1)),M("b",null,Q(l.value.internet_year||"—"),1)]),M("div",Qm,[C[7]||(C[7]=M("span",null,"Mobile per 100",-1)),M("b",null,Q(l.value.mobile_per_100??"—"),1)]),M("div",e_,[C[8]||(C[8]=M("span",null,"People groups",-1)),M("b",null,Q(A(l.value.people_groups)),1)]),M("div",t_,[C[9]||(C[9]=M("span",null,"Top platform",-1)),M("b",null,[$e(Q(l.value.top_platform||"unknown"),1),l.value.top_platform_pct?(H(),J(de,{key:0},[$e(" · "+Q(l.value.top_platform_pct)+"%",1)],64)):Le("",!0)])]),l.value.carriers&&l.value.carriers.length?(H(),J("div",n_,[M("div",o_,"Carriers & ISPs ("+Q(l.value.carrier_count)+")",1),M("ul",null,[(H(!0),J(de,null,ct(l.value.carriers,(_,b)=>(H(),J("li",{key:b},Q(_),1))),128))])])):Le("",!0),l.value.platforms&&l.value.platforms.length?(H(),J("div",r_,[C[10]||(C[10]=M("div",{class:"gm-list-h"},"Social platforms",-1)),M("ul",null,[(H(!0),J(de,null,ct(l.value.platforms,(_,b)=>(H(),J("li",{key:b},Q(_.name)+" · "+Q(_.pct)+"%",1))),128))])])):Le("",!0),C[11]||(C[11]=M("p",{class:"gm-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. ",-1))])):Le("",!0)],2))}}},Symbol.toStringTag,{value:"Module"}));function i_(e){const t=(e==null?void 0:e.parentElement)||e;if(!t||!t.ownerDocument)return{x:0,y:0};const n=t.ownerDocument.createElement("div");n.style.cssText="position:fixed;top:0;left:0;width:0;height:0;pointer-events:none;opacity:0",t.appendChild(n);const o=n.getBoundingClientRect();return n.remove(),{x:o.left,y:o.top}}function a_(e){const t=re(null),n=Gn({position:"fixed",inset:"0"}),o=()=>{var u,f;const r=t.value;if(!r)return;const i=i_(r),a=r.ownerDocument||(typeof document<"u"?document:null),l=((u=a==null?void 0:a.documentElement)==null?void 0:u.clientWidth)||0,c=((f=a==null?void 0:a.documentElement)==null?void 0:f.clientHeight)||0;n.value={position:"fixed",top:`${-i.y}px`,left:`${-i.x}px`,right:"auto",bottom:"auto",width:`${l}px`,height:`${c}px`,boxSizing:"border-box"}};ot(e,r=>{r&&requestAnimationFrame(()=>{o(),requestAnimationFrame(o)})},{flush:"post"});const s=()=>{e.value&&o()};return typeof window<"u"&&window.addEventListener("resize",s),zt(()=>{typeof window<"u"&&window.removeEventListener("resize",s)}),{scrimRef:t,scrimStyle:n}}const l_={class:"dt-head"},c_={class:"dt-title"},u_={class:"dt-count"},p_={key:0,class:"dt-grain"},d_={class:"dt-actions"},f_={key:0,class:"dt-err"},h_={class:"dt-wrap"},g_={class:"dt-hint"},m_={class:"dt-sheet",role:"dialog","aria-label":"Row detail"},__={class:"dt-sheet-head"},b_={class:"dt-dl"},y_=["href"],v_={key:1},w_={key:2},k_={key:2,class:"dt-caveats"},$_={class:"dt-cav-k"},O_={__name:"DataTable",props:{table:{type:Object,required:!0},assetsBase:{type:String,default:"./assets"},isDark:{type:Boolean,default:!1},height:{type:String,default:"560px"},frozen:{type:Number,default:1},pageSize:{type:Number,default:50}},emits:["row-click"],setup(e,{emit:t}){const n=e,o=t,s=re(!1),r=re(null),{scrimRef:i,scrimStyle:a}=a_(r),l=re(null),c=Gn(null),u=re(null),f=re(!1),h=ie(()=>String(n.assetsBase||"./assets").replace(/\/+$/,"")),m=ie(()=>{var O;return((O=n.table)==null?void 0:O.meta)||{}}),v=ie(()=>{var O;return(((O=n.table)==null?void 0:O.rows)||[]).length}),$=ie(()=>Object.entries(m.value).filter(([O,R])=>typeof R=="string"&&/caveat|meaning|note|boundary|measures|does_not/i.test(O)).map(([O,R])=>({key:O.replace(/_/g," "),text:R})));let A=null;function N(){return window.Tabulator?Promise.resolve(window.Tabulator):A||(A=new Promise((O,R)=>{const j=document.createElement("script");j.src=`${h.value}/vendor/tabulator/tabulator.min.js`,j.onload=()=>O(window.Tabulator),j.onerror=()=>R(new Error("Tabulator failed to load — is public/assets/vendor/tabulator/ present?")),document.head.appendChild(j)}),A)}async function C(O){if(!(!O||O.querySelector("style[data-tabulator]")))try{const R=await fetch(`${h.value}/vendor/tabulator/tabulator.min.css`);if(!R.ok)return;const j=document.createElement("style");j.setAttribute("data-tabulator",""),j.textContent=await R.text(),O.appendChild(j)}catch{}}function _(O){var ne,ue;if(!l.value)return;s.value=typeof window<"u"&&window.innerWidth<700;const R=((ne=n.table)==null?void 0:ne.columns)||[],K=(s.value?R.slice(0,3):R).map((z,W)=>({title:z.title,field:z.field,headerFilter:z.type==="boolean"?"tickCross":"input",headerFilterPlaceholder:"filter…",sorter:z.type==="number"?"number":z.type==="boolean"?"boolean":"string",formatter:z.type==="boolean"?"tickCross":void 0,.../_url$/.test(z.field)?{formatter:"link",formatterParams:{target:"_blank",label:()=>"open"}}:{},frozen:!s.value&&W{r.value=W.getData(),o("row-click",W.getData())}),c.value.on("tableBuilt",()=>{f.value=!0})}const b=O=>{var R,j;return((j=(((R=n.table)==null?void 0:R.columns)||[]).find(K=>K.field===O))==null?void 0:j.title)||O.replace(/_/g," ")},T=O=>typeof O=="string"&&O.includes(", ")&&O.length>40?O.split(", "):null,k=O=>typeof O=="string"&&/^https?:\/\//.test(O),E=ie(()=>r.value?Object.entries(r.value).filter(([,O])=>O!==""&&O!==null&&O!==void 0):[]);function x(O){var R;try{(R=c.value)==null||R.download(O,`${(m.value.title||"table").replace(/\W+/g,"-").toLowerCase()}.${O}`)}catch(j){u.value=String(j.message||j)}}return qt(async()=>{var O,R;try{await C((R=(O=l.value)==null?void 0:O.getRootNode)==null?void 0:R.call(O)),_(await N())}catch(j){u.value=String(j.message||j)}}),zt(()=>{var O;try{(O=c.value)==null||O.destroy()}catch{}}),ot(()=>n.table,()=>{var O,R;try{(R=c.value)==null||R.replaceData(((O=n.table)==null?void 0:O.rows)||[])}catch{}}),Wt(".dt,.dt *{box-sizing:border-box}.dt{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}.dt-head{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:8px}.dt-title{font-size:15px;font-weight:700;margin:0}.dt-count{font-size:11.5px;opacity:.6;font-variant-numeric:tabular-nums}.dt-grain{font-size:11px;opacity:.55}.dt-actions{margin-left:auto;display:flex;gap:6px}.dt-btn{font:600 11.5px inherit;padding:5px 11px;border-radius:6px;cursor:pointer;border:1px solid rgba(0,0,0,.16);background:transparent;color:inherit}.dt-btn:hover{background:rgba(0,0,0,.05)}.dt-err{padding:10px 12px;border-radius:8px;background:rgba(220,38,38,.10);color:#a12020;font-size:12.5px}.dt-caveats{margin-top:10px;padding:10px 12px;border-radius:8px;background:rgba(0,0,0,.04);font-size:11.5px;line-height:1.6;opacity:.85}.is-dark .dt-caveats{background:rgba(255,255,255,.06)}.dt-cav-k{font-weight:700;text-transform:capitalize}.dt-scrim{position:fixed;inset:0;z-index:1200;background:rgba(8,12,16,.55);display:flex;align-items:flex-end;justify-content:center}@media(min-width:700px){.dt-scrim{align-items:center}}.dt-sheet{width:100%;max-width:560px;max-height:82vh;overflow-y:auto;background:#fff;color:#0f1419;border-radius:14px 14px 0 0;padding:16px 18px 26px;box-shadow:0 -6px 30px rgba(0,0,0,.3)}@media(min-width:700px){.dt-sheet{border-radius:14px}}.is-dark .dt-sheet{background:#132019;color:#e5e7eb}.dt-sheet-head{display:flex;align-items:center;gap:12px;margin-bottom:10px;padding-bottom:9px;border-bottom:1px solid rgba(0,0,0,.10);font-size:15px}.dt-close{margin-left:auto;font:600 12px inherit;padding:7px 14px;border-radius:8px;cursor:pointer;min-height:36px;border:1px solid rgba(0,0,0,.16);background:transparent;color:inherit}.dt-dl{display:grid;grid-template-columns:minmax(96px,34%) 1fr;gap:7px 12px;margin:0;font-size:12.5px}.dt-dl dt{font-weight:700;opacity:.72;text-transform:capitalize}.dt-dl dd{margin:0;word-break:break-word}.dt-dl ul{margin:0;padding-left:16px}.dt-dl a{color:#0b7a5b;font-weight:600}.dt-hint{font-size:11px;opacity:.6;margin:6px 0 0}.dt-wrap{width:100%;overflow:hidden;border:1px solid rgba(0,0,0,.10);border-radius:8px}.is-dark .dt-wrap{border-color:rgba(255,255,255,.12)}","doxa-data-table"),(O,R)=>{var j,K;return H(),J("div",{class:Te(["dt",{"is-dark":e.isDark}])},[M("div",l_,[M("h3",c_,Q(m.value.title||"Data"),1),M("span",u_,Q(v.value.toLocaleString())+" rows",1),m.value.grain?(H(),J("span",p_,"· "+Q(m.value.grain),1)):Le("",!0),M("span",d_,[M("button",{type:"button",class:"dt-btn",onClick:R[0]||(R[0]=ne=>x("csv"))},"CSV"),M("button",{type:"button",class:"dt-btn",onClick:R[1]||(R[1]=ne=>x("json"))},"JSON")])]),u.value?(H(),J("div",f_,Q(u.value),1)):Le("",!0),M("div",h_,[M("div",{ref_key:"host",ref:l},null,512)]),M("p",g_,"Tap any row for its full detail"+Q(s.value?"":" — every field, including the lists the table flattens")+".",1),r.value?(H(),J("div",{key:1,ref_key:"scrimRef",ref:i,style:bn(ze(a)),class:"dt-scrim",onClick:R[3]||(R[3]=kp(ne=>r.value=null,["self"]))},[M("div",m_,[M("div",__,[M("strong",null,Q(r.value[(K=(((j=e.table)==null?void 0:j.columns)||[])[0])==null?void 0:K.field]||"Detail"),1),M("button",{type:"button",class:"dt-close",onClick:R[2]||(R[2]=ne=>r.value=null)},"Close")]),M("dl",b_,[(H(!0),J(de,null,ct(E.value,([ne,ue])=>(H(),J(de,{key:ne},[M("dt",null,Q(b(ne)),1),M("dd",null,[k(ue)?(H(),J("a",{key:0,href:ue,target:"_blank",rel:"noopener"},Q(ue),9,y_)):T(ue)?(H(),J("ul",v_,[(H(!0),J(de,null,ct(T(ue),(z,W)=>(H(),J("li",{key:W},Q(z),1))),128))])):(H(),J("span",w_,Q(ue===!0?"yes":ue===!1?"no":ue),1))])],64))),128))])])],4)):Le("",!0),$.value.length?(H(),J("div",k_,[(H(!0),J(de,null,ct($.value,ne=>(H(),J("div",{key:ne.key},[M("span",$_,Q(ne.key)+":",1),$e(" "+Q(ne.text),1)]))),128))])):Le("",!0)],2)}}},N_={class:"ct-tabs"},C_=["onClick"],A_={key:0,class:"ct-n"},E_={key:0,class:"ct-err"},T_={key:1,class:"ct-load"},L_=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"data-tables",setup(e){const t=De("profileConfig",re(null)),n=ie(()=>{var h;return((h=t.value)==null?void 0:h.isDark)===!0}),o=ie(()=>Gl(t.value)),s=[{id:"cities",label:"Key Cities",file:"key-cities"},{id:"internet",label:"Connectivity",file:"country-connectivity"},{id:"operators",label:"ISPs & Carriers",file:"network-operators"},{id:"social",label:"Social Platforms",file:"social-platforms"},{id:"messaging",label:"Messaging Apps",file:"messaging-channels"}],r=re("cities"),i=ie(()=>s.find(h=>h.id===r.value)||s[0]),a=re({}),l=re(!1),c=re(null);async function u(h){if(!a.value[h]){l.value=!0,c.value=null;try{const m=await fetch(`${o.value}/tables/${h}.json`);if(!m.ok)throw new Error(`table not found (${m.status})`);a.value={...a.value,[h]:await m.json()}}catch(m){c.value=String(m.message||m)}finally{l.value=!1}}}ot(i,h=>h&&u(h.file),{immediate:!0});const f=ie(()=>{var h;return a.value[(h=i.value)==null?void 0:h.file]||null});return Wt(".ct{position:absolute;inset:0;overflow-y:auto;padding:18px;background:#f6f7f9;color:#0f1419;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}.ct.is-dark{background:#0a1410;color:#e5e7eb}.ct-h{margin:0 0 4px;font-size:18px;font-weight:700}.ct-sub{margin:0 0 14px;font-size:12.5px;opacity:.72;line-height:1.5}.ct-tabs{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:14px}.ct-tab{font:600 12px inherit;padding:7px 14px;border-radius:999px;cursor:pointer;border:1px solid rgba(0,0,0,.14);background:transparent;color:inherit}.ct-tab.on{background:#10b981;border-color:#10b981;color:#04241a}.ct-load{padding:22px;text-align:center;font-size:12.5px;opacity:.6}.ct-err{padding:11px 13px;border-radius:8px;background:rgba(220,38,38,.10);color:#a12020;font-size:12.5px}.ct-n{font-size:10.5px;opacity:.6;margin-left:5px;font-variant-numeric:tabular-nums}","doxa-cities-tables"),(h,m)=>(H(),J("div",{class:Te(["ct",{"is-dark":n.value}])},[m[0]||(m[0]=M("h2",{class:"ct-h"},"Cities Data",-1)),m[1]||(m[1]=M("p",{class:"ct-sub"}," Where the unengaged people groups live — and what reaches them. Sort, filter and export any table; each carries its own sources and limits. ",-1)),M("div",N_,[(H(),J(de,null,ct(s,v=>M("button",{key:v.id,type:"button",class:Te(["ct-tab",{on:r.value===v.id}]),onClick:$=>r.value=v.id},[$e(Q(v.label),1),a.value[v.file]?(H(),J("span",A_,Q((a.value[v.file].rows||[]).length.toLocaleString()),1)):Le("",!0)],10,C_)),64))]),c.value?(H(),J("div",E_,Q(c.value),1)):f.value?(H(),Qe(O_,{key:i.value.id,table:f.value,"assets-base":o.value,"is-dark":n.value,height:"600px"},null,8,["table","assets-base","is-dark"])):(H(),J("div",T_,"Loading "+Q(i.value.label)+"…",1))],2))}}},Symbol.toStringTag,{value:"Module"}))})(); +`,"share-button");const{t,tm:n,rt:o}=tn(),s=e,r=re(null),i=re(!1),a=re(null),l=re(null),c=re("link"),u=re(!1),g=re(!1),f=re("medium"),_={small:{label:"Small",height:400},medium:{label:"Medium",height:600},large:{label:"Large",height:800}},v=Ie("profileConfig",null),k=ie(()=>Lm({embedPath:s.embedPath,profileConfig:qe(v)||null})),O=ie(()=>{const D=_[f.value].height;return''});function P(){i.value=!i.value,i.value&&(c.value="link",u.value=!1,g.value=!1)}function N(){i.value=!1}async function h(D){try{if(navigator.clipboard&&window.isSecureContext)return await navigator.clipboard.writeText(D),!0}catch{}try{const U=document.createElement("textarea");U.value=D,U.setAttribute("readonly",""),U.style.cssText="position:fixed;top:-1000px;opacity:0",document.body.appendChild(U),U.select();const K=document.execCommand("copy");return document.body.removeChild(U),K}catch{return!1}}async function b(){await h(k.value)&&(u.value=!0,setTimeout(()=>{u.value=!1},2e3))}async function A(){await h(O.value)&&(g.value=!0,setTimeout(()=>{g.value=!1},2e3))}const C=Ie("mapToolbar",null),E=re(null);nt("mapToolbar",C||{el:E});const F=!C;function $(D){if(r.value=D||null,!F||!D){D||(E.value=null);return}const U=D.offsetParent||D.parentElement;U&&!U.closest(".dsm-map-area, .rm-map-area, .dm-map-area, [data-map-area]")&&U.setAttribute("data-map-area","share-fallback"),E.value=D}return(D,U)=>(H(),J("div",{ref:$,class:"share-wrap","data-share-root":""},[ve(fo,{ref_key:"btnEl",ref:l,"is-dark":e.isDark,active:i.value,title:qe(t)("buttons.share"),onClick:P},{default:Yt(()=>[...U[2]||(U[2]=[I("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"},[I("path",{d:"M4 12v7a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-7"}),I("polyline",{points:"16 6 12 2 8 6"}),I("line",{x1:"12",y1:"2",x2:"12",y2:"15"})],-1)])]),_:1},8,["is-dark","active","title"]),ve(Wm,{open:i.value,title:qe(t)("buttons.share"),"is-dark":e.isDark,onClose:N},{default:Yt(()=>[I("div",{ref_key:"popoverEl",ref:a,class:Te(["share-pop",{light:!e.isDark}])},[I("ul",Gm,[(H(!0),J(de,null,ct(qe(n)("buttons.shareSteps"),(K,ne)=>(H(),J("li",{key:ne},Q(qe(o)(K)),1))),128))]),I("div",Um,[I("button",{class:Te(["share-tab",{active:c.value==="link"}]),onClick:U[0]||(U[0]=K=>c.value="link")},"Embed link",2),I("button",{class:Te(["share-tab",{active:c.value==="embed"}]),onClick:U[1]||(U[1]=K=>c.value="embed")},"Add to Your Website",2)]),c.value==="link"?(H(),J("div",jm,[I("div",Vm,[I("div",Ym,Q(k.value),1)]),I("button",{class:Te(["share-primary-btn",{copied:u.value}]),onClick:b},[u.value?(H(),J("svg",zm,[...U[4]||(U[4]=[I("polyline",{points:"20 6 9 17 4 12"},null,-1)])])):(H(),J("svg",Hm,[...U[3]||(U[3]=[I("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"},null,-1),I("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"},null,-1)])])),ke(" "+Q(u.value?"Copied!":"Copy Link"),1)],2)])):Se("",!0),c.value==="embed"?(H(),J("div",qm,[U[7]||(U[7]=I("div",{class:"share-embed-desc"}," Paste this code into your website builder (WordPress, Squarespace, Wix, or any site that accepts HTML widgets). ",-1)),I("div",Km,[(H(),J(de,null,ct(_,(K,ne)=>I("button",{key:ne,class:Te(["share-size-pill",{active:f.value===ne}]),onClick:ue=>f.value=ne},Q(K.label),11,Xm)),64))]),I("div",Jm,Q(O.value),1),I("button",{class:Te(["share-secondary-btn",{copied:g.value}]),onClick:A},[g.value?(H(),J("svg",Qm,[...U[6]||(U[6]=[I("polyline",{points:"20 6 9 17 4 12"},null,-1)])])):(H(),J("svg",Zm,[...U[5]||(U[5]=[I("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"},null,-1),I("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"},null,-1)])])),ke(" "+Q(g.value?"Copied!":"Copy Code"),1)],2)])):Se("",!0)],2)]),_:1},8,["open","title","is-dark"])],512))}},t_=["mapbox","maplibre"],Hl="mapbox";function n_(e){return e&&typeof e=="object"&&"value"in e&&!("provider"in e)&&!("profile"in e)?e.value:e}function o_(e){const t=n_(e),n=t==null?void 0:t.provider,o=typeof location<"u"?new URLSearchParams(location.search).get("provider"):void 0,s=typeof window<"u"?window.MAP_PROVIDER:void 0,r=String(n||o||s||Hl).toLowerCase().trim();return t_.includes(r)?r:Hl}const r_=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 s_(e,t="mapbox"){if(typeof e!="string"||!e)return{style:void 0,lightPreset:void 0,paint:void 0};const n=r_[e];return n?t==="maplibre"?{style:n.maplibre,lightPreset:void 0,paint:n.paint}:{style:n.mapbox,lightPreset:n.lightPreset,paint:n.paint}:/^(mapbox:\/\/|https?:\/\/)/.test(e)?{style:e,lightPreset:void 0,paint:void 0}:{style:void 0,lightPreset:void 0,paint:void 0}}const lr={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 Os(e){var n;const t=((n=lr[e])==null?void 0:n.global)||lr.mapbox.global;return typeof window<"u"?window[t]:void 0}async function i_(e){const t=lr[e]||lr.mapbox;if(Os(e)||typeof document>"u")return;if(!document.querySelector(`link[href="${t.css}"]`)){const o=document.createElement("link");o.rel="stylesheet",o.href=t.css,document.head.appendChild(o)}const n=document.querySelector(`script[src="${t.js}"]`);if(n){if(Os(e))return;await new Promise(o=>{n.addEventListener("load",o,{once:!0}),n.addEventListener("error",o,{once:!0})});return}await new Promise((o,s)=>{const r=document.createElement("script");r.src=t.js,r.async=!1,r.addEventListener("load",o,{once:!0}),r.addEventListener("error",()=>s(new Error(`[useMapInstance] Failed to load ${e} engine script`)),{once:!0}),document.head.appendChild(r)})}const a_={class:"gm-legend"},l_={class:"gm-keys"},c_={key:1,class:"gm-err"},u_={key:2,class:"gm-sheet"},p_={class:"gm-sh-head"},d_={class:"gm-sh-name"},g_={key:0,class:"gm-ai"},f_={class:"gm-stat"},h_={class:"gm-stat"},m_={class:"gm-stat"},__={class:"gm-stat"},b_={class:"gm-stat"},y_={key:1,class:"gm-list"},v_={class:"gm-list-h"},w_={key:2,class:"gm-list"},$_=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"connectivity-map",setup(e){const t=Ie("profileConfig",re(null)),n=ie(()=>{var N;return((N=t.value)==null?void 0:N.isDark)===!0}),o=ie(()=>{var N;return((N=t.value)==null?void 0:N.tk)||window.DOXA_TOKEN||""}),s=ie(()=>Yl(t.value)),r=re(null),i=jn(null),a=re([]),l=re(null),c=re(!0),u=re(null),g=[{id:"yes",label:"connected 60%+",color:"#10b981"},{id:"partial",label:"partial 25–59%",color:"#e8c15a"},{id:"no",label:"low, under 25%",color:"#b42318"},{id:"unknown",label:"not measured",color:"#9aa2ad"}],f=N=>(g.find(h=>h.id===N)||{}).color||"#9aa2ad",_=ie(()=>{const N={};for(const h of a.value)N[h.iso3]=h;return N});async function v(){const[N,h]=await Promise.all([fetch(`${s.value}/tables/internet-by-country.json`).then(b=>b.json()),fetch(`${s.value}/boundaries/world-adm0.geojson`).then(b=>b.json())]);return a.value=N.countries||[],h}function k(N,h){const b=_.value,C={type:"FeatureCollection",features:(h.features||[]).map(E=>{var D;const F=(D=E.properties)==null?void 0:D.iso3,$=b[F];return{type:"Feature",properties:{iso3:F,band:($==null?void 0:$.band)||"none",color:$?f($.band):"rgba(0,0,0,0)",hasData:!!$},geometry:E.geometry}})};if(N.getSource("ci-src")){N.getSource("ci-src").setData(C);return}N.addSource("ci-src",{type:"geojson",data:C}),N.addLayer({id:"ci-fill",type:"fill",source:"ci-src",paint:{"fill-color":["get","color"],"fill-opacity":["case",["get","hasData"],.72,0]}}),N.addLayer({id:"ci-line",type:"line",source:"ci-src",paint:{"line-color":"rgba(255,255,255,0.5)","line-width":.5}}),N.on("click","ci-fill",E=>{var $,D,U;const F=(U=(D=($=E.features)==null?void 0:$[0])==null?void 0:D.properties)==null?void 0:U.iso3;F&&_.value[F]&&(l.value=_.value[F])}),N.on("mouseenter","ci-fill",()=>{N.getCanvas().style.cursor="pointer"}),N.on("mouseleave","ci-fill",()=>{N.getCanvas().style.cursor=""})}const O=o_(Ie("profileConfig",null));zt(async()=>{try{await i_(O)}catch{}const N=Os(O)||window.mapboxgl;if(!N||!r.value){u.value="map engine not loaded";return}try{const h=await v(),b=new N.Map({container:r.value,style:s_(n.value?"ink":"paper",O).style||(n.value?"mapbox://styles/mapbox/dark-v11":"mapbox://styles/mapbox/light-v11"),accessToken:o.value,center:[42,18],zoom:1.3,projection:"mercator",attributionControl:!1});i.value=vn(b),km(b,{boundaries:!0}),b.once("load",()=>k(b,h))}catch(h){u.value=String(h.message||h)}}),qt(()=>{var N;try{(N=i.value)==null||N.remove()}catch{}});const P=N=>(Number(N)||0).toLocaleString();return Wt(".gm{position:absolute;inset:0;overflow:hidden}.gm-map{position:absolute;inset:0}.gm-legend{position:absolute;top:8px;left:8px;width:var(--map-legend-width,380px);max-width:calc(100% - 16px);box-sizing:border-box;z-index:4;padding:8px 10px;border-radius:10px;background:rgba(255,255,255,.94);color:#0f1419;font:12px/1.35 -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;box-shadow:0 2px 10px rgba(0,0,0,.16)}@media(max-width:480px){.gm-legend{width:auto;right:46px}}.is-dark .gm-legend{background:rgba(19,32,25,.95);color:#e5e7eb}.gm-title{font-weight:700;font-size:12.5px;margin-bottom:5px}.gm-keys{display:flex;flex-wrap:wrap;gap:5px 12px}.gm-key{display:flex;align-items:center;gap:5px;font-size:11px;white-space:nowrap}.gm-sw{width:12px;height:12px;border-radius:3px;flex:none}.gm-caveat{margin-top:5px;font-size:10.5px;opacity:.72;line-height:1.4}.gm-sheet{position:absolute;left:0;right:0;bottom:0;z-index:6;max-height:62%;overflow-y:auto;background:#fff;color:#0f1419;border-radius:14px 14px 0 0;padding:14px 16px 22px;font:13px/1.5 -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;box-shadow:0 -6px 26px rgba(0,0,0,.28)}@media(min-width:700px){.gm-sheet{left:auto;right:14px;bottom:14px;width:330px;border-radius:12px}}.is-dark .gm-sheet{background:#132019;color:#e5e7eb}.gm-sh-head{display:flex;align-items:center;gap:10px;margin-bottom:8px}.gm-sh-name{font-weight:800;font-size:15px}.gm-ai{display:flex;align-items:flex-start;gap:8px;margin:0 0 10px;padding:7px 9px;border-radius:8px;font-size:11px;line-height:1.35;background:rgba(180,120,0,.12);color:#7a4f00;border:1px solid rgba(180,120,0,.25)}.is-dark .gm-ai{background:rgba(255,200,80,.10);color:#f0cf88;border-color:rgba(255,200,80,.22)}.gm-ai-x{margin-left:auto;flex:none;border:0;background:none;cursor:pointer;font-size:15px;line-height:1;color:inherit;opacity:.7;padding:0 2px}.gm-ai-x:hover{opacity:1}.gm-x{margin-left:auto;border:1px solid rgba(0,0,0,.16);background:transparent;color:inherit;font:600 12px inherit;padding:6px 12px;border-radius:8px;cursor:pointer;min-height:34px}.gm-stat{display:flex;justify-content:space-between;gap:12px;padding:4px 0;border-bottom:1px solid rgba(0,0,0,.07);font-variant-numeric:tabular-nums}.is-dark .gm-stat{border-bottom-color:rgba(255,255,255,.09)}.gm-stat b{font-weight:700}.gm-list{margin-top:9px}.gm-list-h{font-weight:700;font-size:12px;margin-bottom:3px}.gm-list ul{margin:0;padding-left:17px;font-size:12px;line-height:1.5}.gm-note{margin-top:9px;font-size:11px;line-height:1.5;opacity:.75}.gm-err{position:absolute;top:50%;left:0;right:0;text-align:center;font-size:13px;opacity:.7}","doxa-connectivity-map"),(N,h)=>(H(),J("div",{class:Te(["gm",{"is-dark":n.value}])},[I("div",{ref_key:"mapEl",ref:r,class:"gm-map"},null,512),i.value?(H(),Qe(Cm,{key:0},{default:Yt(()=>[ve(Nm,{map:i.value,"is-dark":n.value},null,8,["map","is-dark"]),ve(Am,{map:i.value,"is-dark":n.value},null,8,["map","is-dark"]),ve(Em,{map:i.value,"is-dark":n.value},null,8,["map","is-dark"]),ve(Pm,{"map-container":r.value,"is-dark":n.value},null,8,["map-container","is-dark"]),ve(e_,{"is-dark":n.value,"embed-path":"cities-internet/connectivity-map/index.html"},null,8,["is-dark"])]),_:1})):Se("",!0),I("div",a_,[h[2]||(h[2]=I("div",{class:"gm-title"},"Internet access where unengaged people groups live",-1)),I("div",l_,[(H(),J(de,null,ct(g,b=>I("span",{key:b.id,class:"gm-key"},[I("i",{class:"gm-sw",style:bn({background:b.color})},null,4),ke(Q(b.label),1)])),64))]),h[3]||(h[3]=I("div",{class:"gm-caveat"}," NATIONAL figures (World Bank). Per-city connectivity is not publicly available — do not read a city off a country. ",-1))]),u.value?(H(),J("div",c_,Q(u.value),1)):Se("",!0),l.value?(H(),J("div",u_,[I("div",p_,[I("span",d_,Q(l.value.country),1),I("button",{type:"button",class:"gm-x",onClick:h[0]||(h[0]=b=>l.value=null)},"Close")]),c.value?(H(),J("div",g_,[h[4]||(h[4]=I("span",null,"Data was found by AI deep research — it is subject to false information.",-1)),I("button",{type:"button",class:"gm-ai-x",onClick:h[1]||(h[1]=b=>c.value=!1),"aria-label":"Dismiss"},"×")])):Se("",!0),I("div",f_,[h[5]||(h[5]=I("span",null,"Internet users",-1)),I("b",null,Q(l.value.internet_pct!=null?l.value.internet_pct+"%":"unknown"),1)]),I("div",h_,[h[6]||(h[6]=I("span",null,"Measured",-1)),I("b",null,Q(l.value.internet_year||"—"),1)]),I("div",m_,[h[7]||(h[7]=I("span",null,"Mobile per 100",-1)),I("b",null,Q(l.value.mobile_per_100??"—"),1)]),I("div",__,[h[8]||(h[8]=I("span",null,"People groups",-1)),I("b",null,Q(P(l.value.people_groups)),1)]),I("div",b_,[h[9]||(h[9]=I("span",null,"Top platform",-1)),I("b",null,[ke(Q(l.value.top_platform||"unknown"),1),l.value.top_platform_pct?(H(),J(de,{key:0},[ke(" · "+Q(l.value.top_platform_pct)+"%",1)],64)):Se("",!0)])]),l.value.carriers&&l.value.carriers.length?(H(),J("div",y_,[I("div",v_,"Carriers & ISPs ("+Q(l.value.carrier_count)+")",1),I("ul",null,[(H(!0),J(de,null,ct(l.value.carriers,(b,A)=>(H(),J("li",{key:A},Q(b),1))),128))])])):Se("",!0),l.value.platforms&&l.value.platforms.length?(H(),J("div",w_,[h[10]||(h[10]=I("div",{class:"gm-list-h"},"Social platforms",-1)),I("ul",null,[(H(!0),J(de,null,ct(l.value.platforms,(b,A)=>(H(),J("li",{key:A},Q(b.name)+" · "+Q(b.pct)+"%",1))),128))])])):Se("",!0),h[11]||(h[11]=I("p",{class:"gm-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. ",-1))])):Se("",!0)],2))}}},Symbol.toStringTag,{value:"Module"}));function k_(e){const t=(e==null?void 0:e.parentElement)||e;if(!t||!t.ownerDocument)return{x:0,y:0};const n=t.ownerDocument.createElement("div");n.style.cssText="position:fixed;top:0;left:0;width:0;height:0;pointer-events:none;opacity:0",t.appendChild(n);const o=n.getBoundingClientRect();return n.remove(),{x:o.left,y:o.top}}function C_(e){const t=re(null),n=jn({position:"fixed",inset:"0"}),o=()=>{var u,g;const r=t.value;if(!r)return;const i=k_(r),a=r.ownerDocument||(typeof document<"u"?document:null),l=((u=a==null?void 0:a.documentElement)==null?void 0:u.clientWidth)||0,c=((g=a==null?void 0:a.documentElement)==null?void 0:g.clientHeight)||0;n.value={position:"fixed",top:`${-i.y}px`,left:`${-i.x}px`,right:"auto",bottom:"auto",width:`${l}px`,height:`${c}px`,boxSizing:"border-box"}};ot(e,r=>{r&&requestAnimationFrame(()=>{o(),requestAnimationFrame(o)})},{flush:"post"});const s=()=>{e.value&&o()};return typeof window<"u"&&window.addEventListener("resize",s),qt(()=>{typeof window<"u"&&window.removeEventListener("resize",s)}),{scrimRef:t,scrimStyle:n}}const O_={class:"dt-head"},N_={class:"dt-title"},A_={class:"dt-count"},E_={key:0,class:"dt-grain"},T_={class:"dt-actions"},S_={key:0,class:"dt-err"},P_={class:"dt-wrap"},F_={class:"dt-hint"},x_={class:"dt-sheet",role:"dialog","aria-label":"Row detail"},L_={class:"dt-sheet-head"},I_={class:"dt-dl"},M_=["href"],R_={key:1},B_={key:2},D_={key:2,class:"dt-caveats"},W_={class:"dt-cav-k"},G_={__name:"DataTable",props:{table:{type:Object,required:!0},assetsBase:{type:String,default:"./assets"},isDark:{type:Boolean,default:!1},height:{type:String,default:"560px"},frozen:{type:Number,default:1},pageSize:{type:Number,default:50}},emits:["row-click"],setup(e,{emit:t}){const n=e,o=t,s=re(!1),r=re(null),{scrimRef:i,scrimStyle:a}=C_(r),l=re(null),c=jn(null),u=re(null),g=re(!1),f=ie(()=>String(n.assetsBase||"./assets").replace(/\/+$/,"")),_=ie(()=>{var $;return(($=n.table)==null?void 0:$.meta)||{}}),v=ie(()=>{var $;return((($=n.table)==null?void 0:$.rows)||[]).length}),k=ie(()=>Object.entries(_.value).filter(([$,D])=>typeof D=="string"&&/caveat|meaning|note|boundary|measures|does_not/i.test($)).map(([$,D])=>({key:$.replace(/_/g," "),text:D})));let O=null;function P(){return window.Tabulator?Promise.resolve(window.Tabulator):O||(O=new Promise(($,D)=>{const U=document.createElement("script");U.src=`${f.value}/vendor/tabulator/tabulator.min.js`,U.onload=()=>$(window.Tabulator),U.onerror=()=>D(new Error("Tabulator failed to load — is public/assets/vendor/tabulator/ present?")),document.head.appendChild(U)}),O)}async function N($){if(!(!$||$.querySelector("style[data-tabulator]")))try{const D=await fetch(`${f.value}/vendor/tabulator/tabulator.min.css`);if(!D.ok)return;const U=document.createElement("style");U.setAttribute("data-tabulator",""),U.textContent=await D.text(),$.appendChild(U)}catch{}}function h($){var ne,ue;if(!l.value)return;s.value=typeof window<"u"&&window.innerWidth<700;const D=((ne=n.table)==null?void 0:ne.columns)||[],K=(s.value?D.slice(0,3):D).map((q,W)=>({title:q.title,field:q.field,headerFilter:q.type==="boolean"?"tickCross":"input",headerFilterPlaceholder:"filter…",sorter:q.type==="number"?"number":q.type==="boolean"?"boolean":"string",formatter:q.type==="boolean"?"tickCross":void 0,.../_url$/.test(q.field)?{formatter:"link",formatterParams:{target:"_blank",label:()=>"open"}}:{},frozen:!s.value&&W{r.value=W.getData(),o("row-click",W.getData())}),c.value.on("tableBuilt",()=>{g.value=!0})}const b=$=>{var D,U;return((U=(((D=n.table)==null?void 0:D.columns)||[]).find(K=>K.field===$))==null?void 0:U.title)||$.replace(/_/g," ")},A=$=>typeof $=="string"&&$.includes(", ")&&$.length>40?$.split(", "):null,C=$=>typeof $=="string"&&/^https?:\/\//.test($),E=ie(()=>r.value?Object.entries(r.value).filter(([,$])=>$!==""&&$!==null&&$!==void 0):[]);function F($){var D;try{(D=c.value)==null||D.download($,`${(_.value.title||"table").replace(/\W+/g,"-").toLowerCase()}.${$}`)}catch(U){u.value=String(U.message||U)}}return zt(async()=>{var $,D;try{await N((D=($=l.value)==null?void 0:$.getRootNode)==null?void 0:D.call($)),h(await P())}catch(U){u.value=String(U.message||U)}}),qt(()=>{var $;try{($=c.value)==null||$.destroy()}catch{}}),ot(()=>n.table,()=>{var $,D;try{(D=c.value)==null||D.replaceData((($=n.table)==null?void 0:$.rows)||[])}catch{}}),Wt(".dt,.dt *{box-sizing:border-box}.dt{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}.dt-head{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:8px}.dt-title{font-size:15px;font-weight:700;margin:0}.dt-count{font-size:11.5px;opacity:.6;font-variant-numeric:tabular-nums}.dt-grain{font-size:11px;opacity:.55}.dt-actions{margin-left:auto;display:flex;gap:6px}.dt-btn{font:600 11.5px inherit;padding:5px 11px;border-radius:6px;cursor:pointer;border:1px solid rgba(0,0,0,.16);background:transparent;color:inherit}.dt-btn:hover{background:rgba(0,0,0,.05)}.dt-err{padding:10px 12px;border-radius:8px;background:rgba(220,38,38,.10);color:#a12020;font-size:12.5px}.dt-caveats{margin-top:10px;padding:10px 12px;border-radius:8px;background:rgba(0,0,0,.04);font-size:11.5px;line-height:1.6;opacity:.85}.is-dark .dt-caveats{background:rgba(255,255,255,.06)}.dt-cav-k{font-weight:700;text-transform:capitalize}.dt-scrim{position:fixed;inset:0;z-index:1200;background:rgba(8,12,16,.55);display:flex;align-items:flex-end;justify-content:center}@media(min-width:700px){.dt-scrim{align-items:center}}.dt-sheet{width:100%;max-width:560px;max-height:82vh;overflow-y:auto;background:#fff;color:#0f1419;border-radius:14px 14px 0 0;padding:16px 18px 26px;box-shadow:0 -6px 30px rgba(0,0,0,.3)}@media(min-width:700px){.dt-sheet{border-radius:14px}}.is-dark .dt-sheet{background:#132019;color:#e5e7eb}.dt-sheet-head{display:flex;align-items:center;gap:12px;margin-bottom:10px;padding-bottom:9px;border-bottom:1px solid rgba(0,0,0,.10);font-size:15px}.dt-close{margin-left:auto;font:600 12px inherit;padding:7px 14px;border-radius:8px;cursor:pointer;min-height:36px;border:1px solid rgba(0,0,0,.16);background:transparent;color:inherit}.dt-dl{display:grid;grid-template-columns:minmax(96px,34%) 1fr;gap:7px 12px;margin:0;font-size:12.5px}.dt-dl dt{font-weight:700;opacity:.72;text-transform:capitalize}.dt-dl dd{margin:0;word-break:break-word}.dt-dl ul{margin:0;padding-left:16px}.dt-dl a{color:#0b7a5b;font-weight:600}.dt-hint{font-size:11px;opacity:.6;margin:6px 0 0}.dt-wrap{width:100%;overflow:hidden;border:1px solid rgba(0,0,0,.10);border-radius:8px}.is-dark .dt-wrap{border-color:rgba(255,255,255,.12)}","doxa-data-table"),($,D)=>{var U,K;return H(),J("div",{class:Te(["dt",{"is-dark":e.isDark}])},[I("div",O_,[I("h3",N_,Q(_.value.title||"Data"),1),I("span",A_,Q(v.value.toLocaleString())+" rows",1),_.value.grain?(H(),J("span",E_,"· "+Q(_.value.grain),1)):Se("",!0),I("span",T_,[I("button",{type:"button",class:"dt-btn",onClick:D[0]||(D[0]=ne=>F("csv"))},"CSV"),I("button",{type:"button",class:"dt-btn",onClick:D[1]||(D[1]=ne=>F("json"))},"JSON")])]),u.value?(H(),J("div",S_,Q(u.value),1)):Se("",!0),I("div",P_,[I("div",{ref_key:"host",ref:l},null,512)]),I("p",F_,"Tap any row for its full detail"+Q(s.value?"":" — every field, including the lists the table flattens")+".",1),r.value?(H(),J("div",{key:1,ref_key:"scrimRef",ref:i,style:bn(qe(a)),class:"dt-scrim",onClick:D[3]||(D[3]=Op(ne=>r.value=null,["self"]))},[I("div",x_,[I("div",L_,[I("strong",null,Q(r.value[(K=(((U=e.table)==null?void 0:U.columns)||[])[0])==null?void 0:K.field]||"Detail"),1),I("button",{type:"button",class:"dt-close",onClick:D[2]||(D[2]=ne=>r.value=null)},"Close")]),I("dl",I_,[(H(!0),J(de,null,ct(E.value,([ne,ue])=>(H(),J(de,{key:ne},[I("dt",null,Q(b(ne)),1),I("dd",null,[C(ue)?(H(),J("a",{key:0,href:ue,target:"_blank",rel:"noopener"},Q(ue),9,M_)):A(ue)?(H(),J("ul",R_,[(H(!0),J(de,null,ct(A(ue),(q,W)=>(H(),J("li",{key:W},Q(q),1))),128))])):(H(),J("span",B_,Q(ue===!0?"yes":ue===!1?"no":ue),1))])],64))),128))])])],4)):Se("",!0),k.value.length?(H(),J("div",D_,[(H(!0),J(de,null,ct(k.value,ne=>(H(),J("div",{key:ne.key},[I("span",W_,Q(ne.key)+":",1),ke(" "+Q(ne.text),1)]))),128))])):Se("",!0)],2)}}},U_={class:"ct-tabs"},j_=["onClick"],V_={key:0,class:"ct-n"},Y_={key:0,class:"ct-err"},H_={key:1,class:"ct-load"},z_=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"data-tables",setup(e){const t=Ie("profileConfig",re(null)),n=ie(()=>{var f;return((f=t.value)==null?void 0:f.isDark)===!0}),o=ie(()=>Yl(t.value)),s=[{id:"cities",label:"Key Cities",file:"key-cities"},{id:"internet",label:"Connectivity",file:"country-connectivity"},{id:"operators",label:"ISPs & Carriers",file:"network-operators"},{id:"social",label:"Social Platforms",file:"social-platforms"},{id:"messaging",label:"Messaging Apps",file:"messaging-channels"}],r=re("cities"),i=ie(()=>s.find(f=>f.id===r.value)||s[0]),a=re({}),l=re(!1),c=re(null);async function u(f){if(!a.value[f]){l.value=!0,c.value=null;try{const _=await fetch(`${o.value}/tables/${f}.json`);if(!_.ok)throw new Error(`table not found (${_.status})`);a.value={...a.value,[f]:await _.json()}}catch(_){c.value=String(_.message||_)}finally{l.value=!1}}}ot(i,f=>f&&u(f.file),{immediate:!0});const g=ie(()=>{var f;return a.value[(f=i.value)==null?void 0:f.file]||null});return Wt(".ct{position:absolute;inset:0;overflow-y:auto;padding:18px;background:#f6f7f9;color:#0f1419;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}.ct.is-dark{background:#0a1410;color:#e5e7eb}.ct-h{margin:0 0 4px;font-size:18px;font-weight:700}.ct-sub{margin:0 0 14px;font-size:12.5px;opacity:.72;line-height:1.5}.ct-tabs{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:14px}.ct-tab{font:600 12px inherit;padding:7px 14px;border-radius:999px;cursor:pointer;border:1px solid rgba(0,0,0,.14);background:transparent;color:inherit}.ct-tab.on{background:#10b981;border-color:#10b981;color:#04241a}.ct-load{padding:22px;text-align:center;font-size:12.5px;opacity:.6}.ct-err{padding:11px 13px;border-radius:8px;background:rgba(220,38,38,.10);color:#a12020;font-size:12.5px}.ct-n{font-size:10.5px;opacity:.6;margin-left:5px;font-variant-numeric:tabular-nums}","doxa-cities-tables"),(f,_)=>(H(),J("div",{class:Te(["ct",{"is-dark":n.value}])},[_[0]||(_[0]=I("h2",{class:"ct-h"},"Cities Data",-1)),_[1]||(_[1]=I("p",{class:"ct-sub"}," Where the unengaged people groups live — and what reaches them. Sort, filter and export any table; each carries its own sources and limits. ",-1)),I("div",U_,[(H(),J(de,null,ct(s,v=>I("button",{key:v.id,type:"button",class:Te(["ct-tab",{on:r.value===v.id}]),onClick:k=>r.value=v.id},[ke(Q(v.label),1),a.value[v.file]?(H(),J("span",V_,Q((a.value[v.file].rows||[]).length.toLocaleString()),1)):Se("",!0)],10,j_)),64))]),c.value?(H(),J("div",Y_,Q(c.value),1)):g.value?(H(),Qe(G_,{key:i.value.id,table:g.value,"assets-base":o.value,"is-dark":n.value,height:"600px"},null,8,["table","assets-base","is-dark"])):(H(),J("div",H_,"Loading "+Q(i.value.label)+"…",1))],2))}}},Symbol.toStringTag,{value:"Module"}))})(); diff --git a/public/doxa-maps/cities-internet/connectivity-list/index.html b/public/doxa-maps/cities-internet/connectivity-list/index.html index 2562ff968..c03a960c3 100644 --- a/public/doxa-maps/cities-internet/connectivity-list/index.html +++ b/public/doxa-maps/cities-internet/connectivity-list/index.html @@ -26,7 +26,7 @@ - + - + - + + window.FORGE.manifest = {"schema":"doxa-maps-manifest@1","generatedFrom":"plugin-designs/*/*.vue","embedBase":".","bundleCount":21,"profileCount":32,"bundles":[{"bundle":"all-people-groups","scriptUrl":"./all-people-groups/all-people-groups.js","output":"doxa-maps/all-people-groups/all-people-groups.js","integrity":"sha384-cqk7oshuPW5FdnbZ/DyfBBXN2FObAI+V1jrbxmZR2xzNiBtWG65PETQ5/w5PCDB2","elements":["all-people-groups"],"profiles":[{"profile":"all-people-groups","file":"all-people-groups.vue","description":"All 12,379 people groups (peoplegroups.org) in four colors — reached,","element":"all-people-groups","type":"single","isMap":true,"iframeUrl":"./all-people-groups/all-people-groups/index.html","scriptUrl":"./all-people-groups/all-people-groups.js","embed":{"iframe":"\u003ciframe src=\"./all-people-groups/all-people-groups/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./all-people-groups/all-people-groups.js\" integrity=\"sha384-cqk7oshuPW5FdnbZ/DyfBBXN2FObAI+V1jrbxmZR2xzNiBtWG65PETQ5/w5PCDB2\" crossorigin=\"anonymous\">\u003c/script>\n\u003call-people-groups profile-config='{\"profile\":\"all-people-groups\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/all-people-groups>"},"bundle":"all-people-groups"}]},{"bundle":"big-picture","scriptUrl":"./big-picture/big-picture.js","output":"doxa-maps/big-picture/big-picture.js","integrity":"sha384-v0b+aZ7TBxmgUIBBLdKEm6HzwjY3jAGyOFNsKeKCKY4EIRpiWRTcNLavAitHRt8h","elements":["bp-big-picture","bp-research-header","people-groups-grid"],"composes":["bp-research-header","people-groups-grid"],"profiles":[{"profile":"big-picture","file":"big-picture.vue","description":"The Cat-4 composite that PAIRS the two real capability elements of the","element":"bp-big-picture","type":"nested-elements-mfe","isMap":false,"iframeUrl":"./big-picture/big-picture/index.html","scriptUrl":"./big-picture/big-picture.js","embed":{"iframe":"\u003ciframe src=\"./big-picture/big-picture/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./big-picture/big-picture.js\" integrity=\"sha384-v0b+aZ7TBxmgUIBBLdKEm6HzwjY3jAGyOFNsKeKCKY4EIRpiWRTcNLavAitHRt8h\" crossorigin=\"anonymous\">\u003c/script>\n\u003cbp-big-picture profile-config='{\"profile\":\"big-picture\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/bp-big-picture>"},"instances":[{"id":"big-picture","title":"Big Picture — research header ↔ people-groups grid (composite)","apiBaseUrl":"","props":{"profile":"big-picture","provider":"maplibre","instanceId":"bp-big-picture"},"element":"bp-big-picture","iframeUrl":"./big-picture/big-picture/big-picture/index.html","embed":{"iframe":"\u003ciframe src=\"./big-picture/big-picture/big-picture/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}},{"id":"frontier","title":"Big Picture — frontier accent","apiBaseUrl":"","props":{"profile":"big-picture","provider":"maplibre","instanceId":"bp-big-picture-frontier","accent":"#22d3ee","title":"Big Picture — Frontier Focus"},"element":"bp-big-picture","iframeUrl":"./big-picture/big-picture/frontier/index.html","embed":{"iframe":"\u003ciframe src=\"./big-picture/big-picture/frontier/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}}],"bundle":"big-picture"}]},{"bundle":"cities-internet","scriptUrl":"./cities-internet/cities-internet.js","output":"doxa-maps/cities-internet/cities-internet.js","integrity":"sha384-tNig8gXdCocWVKD5iXR6iRqiAr7msWFtcFKzYif0L0G5i/RM+HI+SO8oR5c6O+5R","elements":["cities-internet-map"],"profiles":[{"profile":"connectivity-list","file":"connectivity-list.vue","description":"Countries where DX people groups live, grouped by region, showing measured internet penetration","element":"cities-internet-map","type":"single","isMap":false,"iframeUrl":"./cities-internet/connectivity-list/index.html","scriptUrl":"./cities-internet/cities-internet.js","embed":{"iframe":"\u003ciframe src=\"./cities-internet/connectivity-list/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./cities-internet/cities-internet.js\" integrity=\"sha384-tNig8gXdCocWVKD5iXR6iRqiAr7msWFtcFKzYif0L0G5i/RM+HI+SO8oR5c6O+5R\" crossorigin=\"anonymous\">\u003c/script>\n\u003ccities-internet-map profile-config='{\"profile\":\"connectivity-list\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/cities-internet-map>"}},{"profile":"connectivity-map","file":"connectivity-map.vue","description":"Every country shaded by measured internet penetration, with its named carriers and dominant","element":"cities-internet-map","type":"single","isMap":true,"iframeUrl":"./cities-internet/connectivity-map/index.html","scriptUrl":"./cities-internet/cities-internet.js","embed":{"iframe":"\u003ciframe src=\"./cities-internet/connectivity-map/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./cities-internet/cities-internet.js\" integrity=\"sha384-tNig8gXdCocWVKD5iXR6iRqiAr7msWFtcFKzYif0L0G5i/RM+HI+SO8oR5c6O+5R\" crossorigin=\"anonymous\">\u003c/script>\n\u003ccities-internet-map profile-config='{\"profile\":\"connectivity-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/cities-internet-map>"}},{"profile":"data-tables","file":"data-tables.vue","description":"Four validated research tables, one tab each, with sortable and filterable columns, CSV and JSON","element":"cities-internet-map","type":"single","isMap":false,"iframeUrl":"./cities-internet/data-tables/index.html","scriptUrl":"./cities-internet/cities-internet.js","embed":{"iframe":"\u003ciframe src=\"./cities-internet/data-tables/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./cities-internet/cities-internet.js\" integrity=\"sha384-tNig8gXdCocWVKD5iXR6iRqiAr7msWFtcFKzYif0L0G5i/RM+HI+SO8oR5c6O+5R\" crossorigin=\"anonymous\">\u003c/script>\n\u003ccities-internet-map profile-config='{\"profile\":\"data-tables\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/cities-internet-map>"}}]},{"bundle":"country-posters","scriptUrl":"./country-posters/country-posters.js","output":"doxa-maps/country-posters/country-posters.js","integrity":"sha384-kbTr53oyqrMpgr620HR4W8vLXxT4Ulo5EeCoHebbMjGns5rwNvJP2BLuPyo5XVJj","elements":["country-posters-map"],"profiles":[{"profile":"countries-map","file":"countries-map.vue","description":"The researcher's workbench retargeted from people groups to COUNTRIES — region","element":"country-posters-map","type":"single","isMap":true,"iframeUrl":"./country-posters/countries-map/index.html","scriptUrl":"./country-posters/country-posters.js","embed":{"iframe":"\u003ciframe src=\"./country-posters/countries-map/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./country-posters/country-posters.js\" integrity=\"sha384-kbTr53oyqrMpgr620HR4W8vLXxT4Ulo5EeCoHebbMjGns5rwNvJP2BLuPyo5XVJj\" crossorigin=\"anonymous\">\u003c/script>\n\u003ccountry-posters-map profile-config='{\"profile\":\"countries-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/country-posters-map>"}},{"profile":"country-poster-wall","file":"country-poster-wall.vue","description":"One printable card per country, grouped into COLLAPSIBLE regional sections so the","element":"country-posters-map","type":"single","isMap":false,"iframeUrl":"./country-posters/country-poster-wall/index.html","scriptUrl":"./country-posters/country-posters.js","embed":{"iframe":"\u003ciframe src=\"./country-posters/country-poster-wall/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./country-posters/country-posters.js\" integrity=\"sha384-kbTr53oyqrMpgr620HR4W8vLXxT4Ulo5EeCoHebbMjGns5rwNvJP2BLuPyo5XVJj\" crossorigin=\"anonymous\">\u003c/script>\n\u003ccountry-posters-map profile-config='{\"profile\":\"country-poster-wall\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/country-posters-map>"}}]},{"bundle":"dashboard-plus-grid","scriptUrl":"./dashboard-plus-grid/dashboard-plus-grid.js","output":"doxa-maps/dashboard-plus-grid/dashboard-plus-grid.js","integrity":"sha384-YbJgljynZ4t3/Ro44oHQy9ihl9/5o7j4IKts8MNRfA73Cb5cyD7U52DklXjzpLpG","elements":["dashboard-plus-grid"],"composes":["research-dashboard","people-groups-grid"],"profiles":[{"profile":"dashboard-plus-grid","file":"dashboard-plus-grid.vue","description":"Both children are IMPORTED DIRECTLY (compiled into this ONE bundle — no runtime bundle","element":"dashboard-plus-grid","type":"nested-elements-mfe","isMap":true,"iframeUrl":"./dashboard-plus-grid/dashboard-plus-grid/index.html","scriptUrl":"./dashboard-plus-grid/dashboard-plus-grid.js","embed":{"iframe":"\u003ciframe src=\"./dashboard-plus-grid/dashboard-plus-grid/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./dashboard-plus-grid/dashboard-plus-grid.js\" integrity=\"sha384-YbJgljynZ4t3/Ro44oHQy9ihl9/5o7j4IKts8MNRfA73Cb5cyD7U52DklXjzpLpG\" crossorigin=\"anonymous\">\u003c/script>\n\u003cdashboard-plus-grid profile-config='{\"profile\":\"dashboard-plus-grid\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/dashboard-plus-grid>"},"instances":[{"id":"default","title":"default","apiBaseUrl":"","props":{"profile":"dashboard-plus-grid"},"element":"dashboard-plus-grid","iframeUrl":"./dashboard-plus-grid/dashboard-plus-grid/default/index.html","embed":{"iframe":"\u003ciframe src=\"./dashboard-plus-grid/dashboard-plus-grid/default/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}}]}]},{"bundle":"demo-map","scriptUrl":"./demo-map/demo-map.js","output":"doxa-maps/demo-map/demo-map.js","integrity":"sha384-QiUJUgeFn27tiHKVhAYtJuIWo+1z5xsCUP1Nj4m1H4cFUV3vUA7ADTP58Ky3oVtQ","elements":["demo-map"],"profiles":[{"profile":"demo-map","file":"demo-map.vue","description":"Simple two-tab demo map. Tab 1 colors pins by religion (shared","element":"demo-map","type":"parameterized","isMap":true,"iframeUrl":"./demo-map/demo-map/index.html","scriptUrl":"./demo-map/demo-map.js","embed":{"iframe":"\u003ciframe src=\"./demo-map/demo-map/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./demo-map/demo-map.js\" integrity=\"sha384-QiUJUgeFn27tiHKVhAYtJuIWo+1z5xsCUP1Nj4m1H4cFUV3vUA7ADTP58Ky3oVtQ\" crossorigin=\"anonymous\">\u003c/script>\n\u003cdemo-map profile-config='{\"profile\":\"demo-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/demo-map>"},"instances":[{"id":"maplibre","title":"Demo map — MapLibre (token-free)","apiBaseUrl":"","props":{"profile":"demo-map","provider":"maplibre","instanceId":"demo-maplibre"},"element":"demo-map","iframeUrl":"./demo-map/demo-map/maplibre/index.html","embed":{"iframe":"\u003ciframe src=\"./demo-map/demo-map/maplibre/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}}],"bundle":"demo-map"}]},{"bundle":"doxa-maps-spa","scriptUrl":"./doxa-maps-spa/doxa-maps-spa.js","output":"doxa-maps/doxa-maps-spa/doxa-maps-spa.js","integrity":"sha384-Ce+DKsLgwfej+rgoWeaWFuMMbR3Y4H+8io/lVL+lQfX0O3iGKwDLf4remDkHGCrP","elements":["doxa-maps-spa"],"composes":["bp-big-picture","doxa-research-map","doxa-simple-map","cities-internet-map","gospel-resources-map","my-upg-100-list-map"],"profiles":[{"profile":"doxa-maps-spa","file":"doxa-maps-spa.vue","description":"The DX-maps app itself: one element whose vertical-tab rail nests every other","element":"doxa-maps-spa","type":"nested-mfe-spa","isMap":false,"iframeUrl":"./doxa-maps-spa/doxa-maps-spa/index.html","scriptUrl":"./doxa-maps-spa/doxa-maps-spa.js","embed":{"iframe":"\u003ciframe src=\"./doxa-maps-spa/doxa-maps-spa/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./doxa-maps-spa/doxa-maps-spa.js\" integrity=\"sha384-Ce+DKsLgwfej+rgoWeaWFuMMbR3Y4H+8io/lVL+lQfX0O3iGKwDLf4remDkHGCrP\" crossorigin=\"anonymous\">\u003c/script>\n\u003cdoxa-maps-spa profile-config='{\"profile\":\"doxa-maps-spa\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/doxa-maps-spa>"},"instances":[{"id":"app","title":"DX-Maps SPA — Big Picture + every research map (app-shell)","apiBaseUrl":"","props":{"profile":"doxa-maps-spa","provider":"maplibre","instanceId":"doxa-maps-spa-app","title":"DX-Maps"},"element":"doxa-maps-spa","iframeUrl":"./doxa-maps-spa/doxa-maps-spa/app/index.html","embed":{"iframe":"\u003ciframe src=\"./doxa-maps-spa/doxa-maps-spa/app/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}}]}]},{"bundle":"doxa-research-map","scriptUrl":"./doxa-research-map/doxa-research-map.js","output":"doxa-maps/doxa-research-map/doxa-research-map.js","integrity":"sha384-m4l+f0dtSiobgVmlkVLdbrLtQ1XwOTEmN2S++QZFqsYdTeEVuSDMl96aTudjoqB4","elements":["doxa-research-map"],"profiles":[{"profile":"research-map","file":"research-map.vue","description":"The researcher's workbench: every piece a missiologist, demographer or","element":"doxa-research-map","type":"monolithic","isMap":true,"iframeUrl":"./doxa-research-map/research-map/index.html","scriptUrl":"./doxa-research-map/doxa-research-map.js","embed":{"iframe":"\u003ciframe src=\"./doxa-research-map/research-map/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./doxa-research-map/doxa-research-map.js\" integrity=\"sha384-m4l+f0dtSiobgVmlkVLdbrLtQ1XwOTEmN2S++QZFqsYdTeEVuSDMl96aTudjoqB4\" crossorigin=\"anonymous\">\u003c/script>\n\u003cdoxa-research-map profile-config='{\"profile\":\"research-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/doxa-research-map>"},"instances":[{"id":"maplibre","title":"Research map — MapLibre (token-free, no search bar)","apiBaseUrl":"","props":{"profile":"research-map","provider":"maplibre","instanceId":"research-map-maplibre"},"element":"doxa-research-map","iframeUrl":"./doxa-research-map/research-map/maplibre/index.html","embed":{"iframe":"\u003ciframe src=\"./doxa-research-map/research-map/maplibre/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}}]}]},{"bundle":"doxa-simple-map","scriptUrl":"./doxa-simple-map/doxa-simple-map.js","output":"doxa-maps/doxa-simple-map/doxa-simple-map.js","integrity":"sha384-hzEui48BqpW8VhRthz3daMgAdw4w4M3gtBre4ce4sXuAmS+39pMRW9reNAvpFb+W","elements":["doxa-map","doxa-simple-map"],"profiles":[{"profile":"doxa-simple-map","file":"doxa-simple-map.vue","description":"The simple world map, shipped as three presets off ONE prop table —","element":"doxa-map","type":"parameterized","isMap":true,"iframeUrl":"./doxa-simple-map/doxa-simple-map/index.html","scriptUrl":"./doxa-simple-map/doxa-simple-map.js","embed":{"iframe":"\u003ciframe src=\"./doxa-simple-map/doxa-simple-map/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./doxa-simple-map/doxa-simple-map.js\" integrity=\"sha384-hzEui48BqpW8VhRthz3daMgAdw4w4M3gtBre4ce4sXuAmS+39pMRW9reNAvpFb+W\" crossorigin=\"anonymous\">\u003c/script>\n\u003cdoxa-map profile-config='{\"profile\":\"doxa-simple-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/doxa-map>"},"instances":[{"id":"prayer","title":"Prayer Map","apiBaseUrl":"https://pray.doxa.life","props":{"profile":"doxa-simple-map","instanceId":"embed-prayer","dataSource":"pray-tools","tabs":[{"id":"prayer","colorStrategy":"prayer","legend":"prayer","popup":"prayer"}]},"element":"doxa-map","iframeUrl":"./doxa-simple-map/doxa-simple-map/prayer/index.html","embed":{"iframe":"\u003ciframe src=\"./doxa-simple-map/doxa-simple-map/prayer/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}},{"id":"engagement","title":"Engagement Map","apiBaseUrl":"https://pray.doxa.life","props":{"profile":"doxa-simple-map","instanceId":"embed-engagement","dataSource":"pray-tools","tabs":[{"id":"engagement","colorStrategy":"engagement","legend":"engagement","popup":"engagement"}]},"element":"doxa-map","iframeUrl":"./doxa-simple-map/doxa-simple-map/engagement/index.html","embed":{"iframe":"\u003ciframe src=\"./doxa-simple-map/doxa-simple-map/engagement/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}},{"id":"adoption","title":"Adoption Map","apiBaseUrl":"https://pray.doxa.life","props":{"profile":"doxa-simple-map","instanceId":"embed-adoption","dataSource":"pray-tools","tabs":[{"id":"adoption","colorStrategy":"adoption","legend":"adoption","popup":"adoption"}]},"element":"doxa-map","iframeUrl":"./doxa-simple-map/doxa-simple-map/adoption/index.html","embed":{"iframe":"\u003ciframe src=\"./doxa-simple-map/doxa-simple-map/adoption/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}}]}]},{"bundle":"doxa-vision-card","scriptUrl":"./doxa-vision-card/doxa-vision-card.js","output":"doxa-maps/doxa-vision-card/doxa-vision-card.js","integrity":"sha384-2mza3cltN5LQQIrlENG/IVL6Icd9zzcFve3E8R8VWuCdYOGW9uGKFvxcbu6eFfwn","elements":["doxa-vision-card"],"profiles":[{"profile":"doxa-vision-card","file":"doxa-vision-card.vue","description":"The Capability-1 example: ONE folder -> ONE bundle -> ONE element.","element":"doxa-vision-card","type":"parameterized","isMap":false,"iframeUrl":"./doxa-vision-card/doxa-vision-card/index.html","scriptUrl":"./doxa-vision-card/doxa-vision-card.js","embed":{"iframe":"\u003ciframe src=\"./doxa-vision-card/doxa-vision-card/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./doxa-vision-card/doxa-vision-card.js\" integrity=\"sha384-2mza3cltN5LQQIrlENG/IVL6Icd9zzcFve3E8R8VWuCdYOGW9uGKFvxcbu6eFfwn\" crossorigin=\"anonymous\">\u003c/script>\n\u003cdoxa-vision-card profile-config='{\"profile\":\"doxa-vision-card\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/doxa-vision-card>"},"instances":[{"id":"default","title":"Vision card — reach at a glance","apiBaseUrl":"","props":{"profile":"doxa-vision-card","provider":"maplibre","instanceId":"vision-card-default"},"element":"doxa-vision-card","iframeUrl":"./doxa-vision-card/doxa-vision-card/default/index.html","embed":{"iframe":"\u003ciframe src=\"./doxa-vision-card/doxa-vision-card/default/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}},{"id":"frontier","title":"Vision card — frontier accent","apiBaseUrl":"","props":{"profile":"doxa-vision-card","provider":"maplibre","instanceId":"vision-card-frontier","accent":"#22d3ee","title":"The last frontier of the gospel.","tagline":"Frontier people groups — where fewer than one in a thousand follow Jesus.","stats":[{"value":"1,910","label":"Frontier groups","note":"under 0.1% believers"},{"value":"2.1B","label":"People","note":"living in frontier settings"},{"value":"0.1%","label":"Christian","note":"or fewer, in each group"}]},"element":"doxa-vision-card","iframeUrl":"./doxa-vision-card/doxa-vision-card/frontier/index.html","embed":{"iframe":"\u003ciframe src=\"./doxa-vision-card/doxa-vision-card/frontier/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}}],"bundle":"doxa-vision-card"}]},{"bundle":"golden-path-check","scriptUrl":"./golden-path-check/golden-path-check.js","output":"doxa-maps/golden-path-check/golden-path-check.js","integrity":"sha384-1V/sT5SkV0U9yTCK9ELIOFfU1ZIJkInIF6nG3UllJ4dxax3RsEAupSGLJEFK6e14","elements":["golden-path-check"],"profiles":[{"profile":"golden-path-check","file":"golden-path-check.vue","description":"A live self-test of the develop-a-plugin-and-see-it-live path: it reads the built","element":"golden-path-check","type":"single","isMap":false,"iframeUrl":"./golden-path-check/golden-path-check/index.html","scriptUrl":"./golden-path-check/golden-path-check.js","embed":{"iframe":"\u003ciframe src=\"./golden-path-check/golden-path-check/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./golden-path-check/golden-path-check.js\" integrity=\"sha384-1V/sT5SkV0U9yTCK9ELIOFfU1ZIJkInIF6nG3UllJ4dxax3RsEAupSGLJEFK6e14\" crossorigin=\"anonymous\">\u003c/script>\n\u003cgolden-path-check profile-config='{\"profile\":\"golden-path-check\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/golden-path-check>"}}]},{"bundle":"gospel-resources","scriptUrl":"./gospel-resources/gospel-resources.js","output":"doxa-maps/gospel-resources/gospel-resources.js","integrity":"sha384-VXjJ4Se+3vtAs3dnqQoWelPf88U32RffjhrVy3usV5m9HHm2fL/CfUq2maQVKhzj","elements":["gospel-resources-map"],"profiles":[{"profile":"charts","file":"charts.vue","description":"The gap by LANGUAGE (ISO 639-3) rather than by people group — because one translation serves every","element":"gospel-resources-map","type":"single","isMap":false,"iframeUrl":"./gospel-resources/charts/index.html","scriptUrl":"./gospel-resources/gospel-resources.js","embed":{"iframe":"\u003ciframe src=\"./gospel-resources/charts/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-VXjJ4Se+3vtAs3dnqQoWelPf88U32RffjhrVy3usV5m9HHm2fL/CfUq2maQVKhzj\" crossorigin=\"anonymous\">\u003c/script>\n\u003cgospel-resources-map profile-config='{\"profile\":\"charts\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/gospel-resources-map>"}},{"profile":"data-tables","file":"data-tables.vue","description":"Two validated tables: what resources exist per people group, and whether that access is keeping","element":"gospel-resources-map","type":"single","isMap":false,"iframeUrl":"./gospel-resources/data-tables/index.html","scriptUrl":"./gospel-resources/gospel-resources.js","embed":{"iframe":"\u003ciframe src=\"./gospel-resources/data-tables/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-VXjJ4Se+3vtAs3dnqQoWelPf88U32RffjhrVy3usV5m9HHm2fL/CfUq2maQVKhzj\" crossorigin=\"anonymous\">\u003c/script>\n\u003cgospel-resources-map profile-config='{\"profile\":\"data-tables\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/gospel-resources-map>"}},{"profile":"resources-list","file":"resources-list.vue","description":"Which DX people groups have scripture in their own language, and which have none. The zero-resource","element":"gospel-resources-map","type":"single","isMap":false,"iframeUrl":"./gospel-resources/resources-list/index.html","scriptUrl":"./gospel-resources/gospel-resources.js","embed":{"iframe":"\u003ciframe src=\"./gospel-resources/resources-list/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-VXjJ4Se+3vtAs3dnqQoWelPf88U32RffjhrVy3usV5m9HHm2fL/CfUq2maQVKhzj\" crossorigin=\"anonymous\">\u003c/script>\n\u003cgospel-resources-map profile-config='{\"profile\":\"resources-list\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/gospel-resources-map>"}},{"profile":"resources-map","file":"resources-map.vue","description":"Every country shaded by how much of its unengaged population has NO gospel resource in their own","element":"gospel-resources-map","type":"single","isMap":true,"iframeUrl":"./gospel-resources/resources-map/index.html","scriptUrl":"./gospel-resources/gospel-resources.js","embed":{"iframe":"\u003ciframe src=\"./gospel-resources/resources-map/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-VXjJ4Se+3vtAs3dnqQoWelPf88U32RffjhrVy3usV5m9HHm2fL/CfUq2maQVKhzj\" crossorigin=\"anonymous\">\u003c/script>\n\u003cgospel-resources-map profile-config='{\"profile\":\"resources-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/gospel-resources-map>"}}]},{"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-Q0oRTPiR5rCbGuYjqx06LU6ngVOJflT7LZIevgE0eGypVGomWEPkzJcpmSaEEOW6","elements":["my-upg-100-list-map"],"composes":["my-upg-100-list/upg-100-list","my-upg-100-list/poster-wall"],"profiles":[{"profile":"poster-wall","file":"poster-wall.vue","description":"A wall of printable poster cards, one per 100-list entry, each with a \"Show on map\" action that","element":"my-upg-100-list-map","type":"single","isMap":true,"iframeUrl":"./my-upg-100-list/poster-wall/index.html","scriptUrl":"./my-upg-100-list/my-upg-100-list.js","embed":{"iframe":"\u003ciframe src=\"./my-upg-100-list/poster-wall/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./my-upg-100-list/my-upg-100-list.js\" integrity=\"sha384-Q0oRTPiR5rCbGuYjqx06LU6ngVOJflT7LZIevgE0eGypVGomWEPkzJcpmSaEEOW6\" crossorigin=\"anonymous\">\u003c/script>\n\u003cmy-upg-100-list-map profile-config='{\"profile\":\"poster-wall\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/my-upg-100-list-map>"}},{"profile":"upg-100-list","file":"upg-100-list.vue","description":"A personal unreached-people-groups list painted as true boundary polygons —","element":"my-upg-100-list-map","type":"single","isMap":true,"iframeUrl":"./my-upg-100-list/upg-100-list/index.html","scriptUrl":"./my-upg-100-list/my-upg-100-list.js","embed":{"iframe":"\u003ciframe src=\"./my-upg-100-list/upg-100-list/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./my-upg-100-list/my-upg-100-list.js\" integrity=\"sha384-Q0oRTPiR5rCbGuYjqx06LU6ngVOJflT7LZIevgE0eGypVGomWEPkzJcpmSaEEOW6\" crossorigin=\"anonymous\">\u003c/script>\n\u003cmy-upg-100-list-map profile-config='{\"profile\":\"upg-100-list\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/my-upg-100-list-map>"}},{"profile":"upg-100-mfe","file":"upg-100-mfe.vue","description":"The standalone, shareable and embeddable composite of the my-upg-100-list family — it nests the map","element":"my-upg-100-list-map","type":"nested-elements-mfe","isMap":true,"iframeUrl":"./my-upg-100-list/upg-100-mfe/index.html","scriptUrl":"./my-upg-100-list/my-upg-100-list.js","embed":{"iframe":"\u003ciframe src=\"./my-upg-100-list/upg-100-mfe/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./my-upg-100-list/my-upg-100-list.js\" integrity=\"sha384-Q0oRTPiR5rCbGuYjqx06LU6ngVOJflT7LZIevgE0eGypVGomWEPkzJcpmSaEEOW6\" crossorigin=\"anonymous\">\u003c/script>\n\u003cmy-upg-100-list-map profile-config='{\"profile\":\"upg-100-mfe\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/my-upg-100-list-map>"}}]},{"bundle":"people-groups-grid","scriptUrl":"./people-groups-grid/people-groups-grid.js","output":"doxa-maps/people-groups-grid/people-groups-grid.js","integrity":"sha384-wyfAzVfoufR5FaDoo3DSivtV33qOexc7PhDYZkXlYmru5FqZgncuUos3nN0kkMJL","elements":["people-groups-grid"],"profiles":[{"profile":"people-groups-grid","file":"people-groups-grid.vue","description":"The people-groups grid as an owned custom element: card list, search and four","element":"people-groups-grid","type":"parameterized","isMap":false,"iframeUrl":"./people-groups-grid/people-groups-grid/index.html","scriptUrl":"./people-groups-grid/people-groups-grid.js","embed":{"iframe":"\u003ciframe src=\"./people-groups-grid/people-groups-grid/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./people-groups-grid/people-groups-grid.js\" integrity=\"sha384-wyfAzVfoufR5FaDoo3DSivtV33qOexc7PhDYZkXlYmru5FqZgncuUos3nN0kkMJL\" crossorigin=\"anonymous\">\u003c/script>\n\u003cpeople-groups-grid profile-config='{\"profile\":\"people-groups-grid\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/people-groups-grid>"},"instances":[{"id":"people-groups-grid","title":"People Groups Grid — standalone (own search + 4 dropdowns)","apiBaseUrl":"","props":{"profile":"people-groups-grid","provider":"maplibre","instanceId":"people-groups-grid","pray-base-url":"https://pray.doxa.life"},"element":"people-groups-grid","iframeUrl":"./people-groups-grid/people-groups-grid/people-groups-grid/index.html","embed":{"iframe":"\u003ciframe src=\"./people-groups-grid/people-groups-grid/people-groups-grid/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}},{"id":"driven","title":"People Groups Grid — externally driven (controls off, props/events)","apiBaseUrl":"","props":{"profile":"people-groups-grid","provider":"maplibre","instanceId":"people-groups-grid-driven","pray-base-url":"https://pray.doxa.life","show-search":"false","show-filters":"false"},"element":"people-groups-grid","iframeUrl":"./people-groups-grid/people-groups-grid/driven/index.html","embed":{"iframe":"\u003ciframe src=\"./people-groups-grid/people-groups-grid/driven/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}}]}]},{"bundle":"plugin-studio","scriptUrl":"./plugin-studio/plugin-studio.js","output":"doxa-maps/plugin-studio/plugin-studio.js","integrity":"sha384-2RlLFRU2XdjBN7w+FPguj8INgj57JFg4IFT2AmdefGnR9QQLehbiiAffV45LcsFH","elements":["plugin-studio"],"composes":["bp-big-picture","people-groups-grid","doxa-research-map","doxa-simple-map","cities-internet-map","gospel-resources-map","my-upg-100-list-map","doxa-vision-card","all-people-groups","research-dashboard"],"profiles":[{"profile":"plugin-studio","file":"plugin-studio.vue","description":"The developer's viewing surface: a sidebar that is the composability ladder","element":"plugin-studio","type":"nested-mfe-spa","isMap":false,"iframeUrl":"./plugin-studio/plugin-studio/index.html","scriptUrl":"./plugin-studio/plugin-studio.js","embed":{"iframe":"\u003ciframe src=\"./plugin-studio/plugin-studio/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./plugin-studio/plugin-studio.js\" integrity=\"sha384-2RlLFRU2XdjBN7w+FPguj8INgj57JFg4IFT2AmdefGnR9QQLehbiiAffV45LcsFH\" crossorigin=\"anonymous\">\u003c/script>\n\u003cplugin-studio profile-config='{\"profile\":\"plugin-studio\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/plugin-studio>"},"instances":[{"id":"studio","title":"Plugin Studio — every element by capability 5 -> 1 (developer studio)","apiBaseUrl":"","props":{"profile":"plugin-studio","provider":"maplibre","instanceId":"plugin-studio","title":"Plugin Studio"},"element":"plugin-studio","iframeUrl":"./plugin-studio/plugin-studio/studio/index.html","embed":{"iframe":"\u003ciframe src=\"./plugin-studio/plugin-studio/studio/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}}]}]},{"bundle":"prayer-walk-planner","scriptUrl":"./prayer-walk-planner/prayer-walk-planner.js","output":"doxa-maps/prayer-walk-planner/prayer-walk-planner.js","integrity":"sha384-F0+r4avX8xkXp0hBpU5EBPU0InMRCObIn2Ieh9HJNn1r2amk8/qHmJ68WuNfsirC","elements":["prayer-walk-planner"],"profiles":[{"profile":"prayer-walk-planner","file":"prayer-walk-planner.vue","description":"A simple polygon-drawing tool for planning prayer-walking routes.","element":"prayer-walk-planner","type":"single","isMap":true,"iframeUrl":"./prayer-walk-planner/prayer-walk-planner/index.html","scriptUrl":"./prayer-walk-planner/prayer-walk-planner.js","embed":{"iframe":"\u003ciframe src=\"./prayer-walk-planner/prayer-walk-planner/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./prayer-walk-planner/prayer-walk-planner.js\" integrity=\"sha384-F0+r4avX8xkXp0hBpU5EBPU0InMRCObIn2Ieh9HJNn1r2amk8/qHmJ68WuNfsirC\" crossorigin=\"anonymous\">\u003c/script>\n\u003cprayer-walk-planner profile-config='{\"profile\":\"prayer-walk-planner\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/prayer-walk-planner>"}}]},{"bundle":"regions-dashboard","scriptUrl":"./regions-dashboard/regions-dashboard.js","output":"doxa-maps/regions-dashboard/regions-dashboard.js","integrity":"sha384-+z7qRIJAEJa+7I4OzeL88//qZ/9lXLuYHQWDFI0Y5AUtnOUqXCSx8YE6Y8Nx0myd","elements":["regions-dashboard"],"composes":["regions-dashboard/regions-list","regions-dashboard/region-dashboards"],"profiles":[{"profile":"region-dashboards","file":"region-dashboards.vue","description":"The dashboard half of the Driver's 2-tab Regions element: given a region (or a","element":"regions-dashboard","type":"single","isMap":true,"iframeUrl":"./regions-dashboard/region-dashboards/index.html","scriptUrl":"./regions-dashboard/regions-dashboard.js","embed":{"iframe":"\u003ciframe src=\"./regions-dashboard/region-dashboards/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./regions-dashboard/regions-dashboard.js\" integrity=\"sha384-+z7qRIJAEJa+7I4OzeL88//qZ/9lXLuYHQWDFI0Y5AUtnOUqXCSx8YE6Y8Nx0myd\" crossorigin=\"anonymous\">\u003c/script>\n\u003cregions-dashboard profile-config='{\"profile\":\"region-dashboards\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/regions-dashboard>"}},{"profile":"regions-list","file":"regions-list.vue","description":"A refactor of DX-life's /regions index page (app/pages/regions/index.vue) into","element":"regions-dashboard","type":"single","isMap":true,"iframeUrl":"./regions-dashboard/regions-list/index.html","scriptUrl":"./regions-dashboard/regions-dashboard.js","embed":{"iframe":"\u003ciframe src=\"./regions-dashboard/regions-list/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./regions-dashboard/regions-dashboard.js\" integrity=\"sha384-+z7qRIJAEJa+7I4OzeL88//qZ/9lXLuYHQWDFI0Y5AUtnOUqXCSx8YE6Y8Nx0myd\" crossorigin=\"anonymous\">\u003c/script>\n\u003cregions-dashboard profile-config='{\"profile\":\"regions-list\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/regions-dashboard>"}},{"profile":"regions-mfe","file":"regions-mfe.vue","description":"The composite the Driver asked for: ONE element carrying the SELECT VIEW switcher","element":"regions-dashboard","type":"nested-elements-mfe","isMap":true,"iframeUrl":"./regions-dashboard/regions-mfe/index.html","scriptUrl":"./regions-dashboard/regions-dashboard.js","embed":{"iframe":"\u003ciframe src=\"./regions-dashboard/regions-mfe/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./regions-dashboard/regions-dashboard.js\" integrity=\"sha384-+z7qRIJAEJa+7I4OzeL88//qZ/9lXLuYHQWDFI0Y5AUtnOUqXCSx8YE6Y8Nx0myd\" crossorigin=\"anonymous\">\u003c/script>\n\u003cregions-dashboard profile-config='{\"profile\":\"regions-mfe\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/regions-dashboard>"}}]},{"bundle":"research-dashboard","scriptUrl":"./research-dashboard/research-dashboard.js","output":"doxa-maps/research-dashboard/research-dashboard.js","integrity":"sha384-VvOYWBcDd7NtnB1eveECKX88ZHIpGnOf79tVdCUqGZzXLgoZPc+oTTPIC3ajaYsn","elements":["research-dashboard-map"],"profiles":[{"profile":"research-dashboard","file":"research-dashboard.vue","description":"Coordinated-Multiple-Views research dashboard for 10/40-window UPGs (live pray.doxa.life): docked facet rail + map-as-hero + linked table/charts, brushing-and-linking over one in-memory store.","element":"research-dashboard-map","type":"monolithic","isMap":true,"iframeUrl":"./research-dashboard/research-dashboard/index.html","scriptUrl":"./research-dashboard/research-dashboard.js","embed":{"iframe":"\u003ciframe src=\"./research-dashboard/research-dashboard/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./research-dashboard/research-dashboard.js\" integrity=\"sha384-VvOYWBcDd7NtnB1eveECKX88ZHIpGnOf79tVdCUqGZzXLgoZPc+oTTPIC3ajaYsn\" crossorigin=\"anonymous\">\u003c/script>\n\u003cresearch-dashboard-map profile-config='{\"profile\":\"research-dashboard\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/research-dashboard-map>"},"bundle":"research-dashboard"}]},{"bundle":"research-map-plus-grid","scriptUrl":"./research-map-plus-grid/research-map-plus-grid.js","output":"doxa-maps/research-map-plus-grid/research-map-plus-grid.js","integrity":"sha384-sOkaMV0UFr2uNXfoJpRvaD+gHD6xFlkmpR7MzEwwFdarYdid8aN9Nj1Y8TqQJuFo","elements":["research-map-plus-grid"],"composes":["doxa-research-map","people-groups-grid"],"profiles":[{"profile":"research-map-plus-grid","file":"research-map-plus-grid.vue","description":"The monolithic 7-tab research map (cap-3) on top, the People Groups grid beneath,","element":"research-map-plus-grid","type":"nested-elements-mfe","isMap":false,"iframeUrl":"./research-map-plus-grid/research-map-plus-grid/index.html","scriptUrl":"./research-map-plus-grid/research-map-plus-grid.js","embed":{"iframe":"\u003ciframe src=\"./research-map-plus-grid/research-map-plus-grid/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./research-map-plus-grid/research-map-plus-grid.js\" integrity=\"sha384-sOkaMV0UFr2uNXfoJpRvaD+gHD6xFlkmpR7MzEwwFdarYdid8aN9Nj1Y8TqQJuFo\" crossorigin=\"anonymous\">\u003c/script>\n\u003cresearch-map-plus-grid profile-config='{\"profile\":\"research-map-plus-grid\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/research-map-plus-grid>"},"instances":[{"id":"default","title":"default","apiBaseUrl":"","props":{"profile":"research-map-plus-grid"},"element":"research-map-plus-grid","iframeUrl":"./research-map-plus-grid/research-map-plus-grid/default/index.html","embed":{"iframe":"\u003ciframe src=\"./research-map-plus-grid/research-map-plus-grid/default/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}}]}]},{"bundle":"stack-demo","scriptUrl":"./stack-demo/stack-demo.js","output":"doxa-maps/stack-demo/stack-demo.js","integrity":"sha384-gnwM6s+puf1K60Nl7crQcC2QC+9BxwpkaTx4OepLZ8VUCraZc+aRlWpsb6nj6Gyf","elements":["stack-demo"],"composes":["research-dashboard-map","people-groups-grid"],"profiles":[{"profile":"stack-demo","file":"stack-demo.vue","description":"Groups TWO independent elements TOP-TO-BOTTOM so you can embed the pair on a page and","element":"stack-demo","type":"nested-elements-mfe","isMap":false,"iframeUrl":"./stack-demo/stack-demo/index.html","scriptUrl":"./stack-demo/stack-demo.js","embed":{"iframe":"\u003ciframe src=\"./stack-demo/stack-demo/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./stack-demo/stack-demo.js\" integrity=\"sha384-gnwM6s+puf1K60Nl7crQcC2QC+9BxwpkaTx4OepLZ8VUCraZc+aRlWpsb6nj6Gyf\" crossorigin=\"anonymous\">\u003c/script>\n\u003cstack-demo profile-config='{\"profile\":\"stack-demo\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/stack-demo>"},"instances":[{"id":"pair","title":"pair","apiBaseUrl":"","props":{"profile":"stack-demo"},"element":"stack-demo","iframeUrl":"./stack-demo/stack-demo/pair/index.html","embed":{"iframe":"\u003ciframe src=\"./stack-demo/stack-demo/pair/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}}]}]},{"bundle":"template-bundle","scriptUrl":"./template-bundle/template-bundle.js","output":"doxa-maps/template-bundle/template-bundle.js","integrity":"sha384-k+G5UlkZ99QmuecCCWUrjz998JBJnQT3hsDG0A+IVmiX9F3CNswmHXXzYhjnUTDX","elements":["template-bundle"],"profiles":[{"profile":"template-map-a","file":"template-map-a.vue","description":"Minimal example profile A — a colored placeholder, no Mapbox or data.","element":"template-bundle","type":"single","isMap":false,"iframeUrl":"./template-bundle/template-map-a/index.html","scriptUrl":"./template-bundle/template-bundle.js","embed":{"iframe":"\u003ciframe src=\"./template-bundle/template-map-a/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./template-bundle/template-bundle.js\" integrity=\"sha384-k+G5UlkZ99QmuecCCWUrjz998JBJnQT3hsDG0A+IVmiX9F3CNswmHXXzYhjnUTDX\" crossorigin=\"anonymous\">\u003c/script>\n\u003ctemplate-bundle profile-config='{\"profile\":\"template-map-a\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/template-bundle>"},"bundle":"template-bundle"},{"profile":"template-map-b","file":"template-map-b.vue","description":"Minimal example profile B — a second profile in the same bundle.","element":"template-bundle","type":"single","isMap":false,"iframeUrl":"./template-bundle/template-map-b/index.html","scriptUrl":"./template-bundle/template-bundle.js","embed":{"iframe":"\u003ciframe src=\"./template-bundle/template-map-b/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./template-bundle/template-bundle.js\" integrity=\"sha384-k+G5UlkZ99QmuecCCWUrjz998JBJnQT3hsDG0A+IVmiX9F3CNswmHXXzYhjnUTDX\" crossorigin=\"anonymous\">\u003c/script>\n\u003ctemplate-bundle profile-config='{\"profile\":\"template-map-b\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/template-bundle>"},"bundle":"template-bundle"}]}]}; \n\n" + "script": "\n\n" } }, { @@ -131,7 +131,7 @@ "scriptUrl": "./cities-internet/cities-internet.js", "embed": { "iframe": "", - "script": "\n\n" + "script": "\n\n" } }, { @@ -145,7 +145,7 @@ "scriptUrl": "./cities-internet/cities-internet.js", "embed": { "iframe": "", - "script": "\n\n" + "script": "\n\n" } } ]