diff --git a/data/posters/andean-caribbean.html b/data/posters/andean-caribbean.html new file mode 100644 index 000000000..9d2eefa3d --- /dev/null +++ b/data/posters/andean-caribbean.html @@ -0,0 +1,355 @@ + +Andean + Caribbean — UPG poster +
+ + + + + + + + + + + + + + + ATLANTIC OCEANBRAZILBRAZILUNITED STATESUNITED STATESPERUPERUCOLOMBIACOLOMBIABOLIVIABOLIVIAVENEZUELAVENEZUELAPARAGUAYPARAGUAYECUADORECUADORCUBACUBAGUYANAGUYANAPANAMAPANAMAJAMAICAJAMAICALimaQuitoLa PazGeorgetownSucreSaint George'sMedellinCaliMaracaiboBarranquillaValenciaArequipaTrujilloBarcelonaSantiago de CubaIquitosPiuraCuscoEncarnacionCuencaSanta ClaraColonPinar del RioTarijaMarker positions are approximate · people-group locations are generalised at the source for privacyMarker positions are approximate · people-group locations are generalised at the source for privacyGenerated 2026-09-24 · data from doxa.lifeGenerated 2026-09-24 · data from doxa.life© geoBoundaries (CC BY 4.0)© geoBoundaries (CC BY 4.0) + + 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162631.Deaf Bahamians2.Deaf Cubans3.Deaf Jamaicans4.Deaf Caymanians5.Yukpa6.Motilón-Barí7.Macaguan8.Angosturas9.Western Tunebo10.Jews11.Amaruwa12.Eastern Tunebo13.Canamomo14.Coyaima15.Guanaca16.Siriano17.Chachis18.Macaguaje19.Yari20.Tucano21.Muinane22.Ocaina23.Tigre Quichua24.Yagua25.Northern ConchucosAncash Quechua26.Isconahua27.Ashéninka Alto Pichis28.Ashéninka Bajo Pichis29.Amahuaca30.Asheninca Perene31.Yaminahua32.Huachipaire33.Deaf Turks and CaicosIslanders34.Deaf Arubans35.Deaf Sint Maarteners36.Deaf Antiguans37.Deaf Curacaoan38.Deaf Saint Lucians39.Deaf Vincentians40.Deaf Barbadians41.Deaf Grenadians42.Jews43.Betoye44.Cuiba45.Deaf Surinamers46.Mapoyo47.Arawak48.Pemon49.Sape50.Siripu51.Masiguare52.Mandahuaca53.Hupdah54.Carapana55.Piratapuyo56.Tuyuka57.Desana58.Carijona59.Carabayo60.Cabiyari61.Cayubaba62.Amarakaire63.Emok + + + + Unengaged People Groups + Unengaged of Andean + Caribbean + + + CountriesAntigua and Barbuda · Aruba · Bahamas · Barbados · Bolivia · Cayman IslandsColombia · Cuba · Curaçao · Ecuador · Grenada · Guyana · Jamaica · PanamaParaguay · Peru · Saint Lucia · Saint Vincent and the Grenadines · SurinameSXM · Turks and Caicos Islands · VenezuelaAdministrative AreasAndean · CaribbeanPeople groups63 UPGSeriesList of 100 UPG's · map 20 of 28“But when he saw the multitudes, he was moved with compassion for them because they were harassed and scattered, like sheep without a shepherd.” MATTHEW 9:36Jesus’ Strategy to Feed the 5000What is a Prayer List of 100 UPG?Jesus’ disciples faced a similar challenge: “How can we feed so many with only five loaves and two fish?” Jesusfed the 5,000 by supernaturally multiplying that small offering — and His answer holds the key to our people-groupsproblem.Through radical faith and miracle-expectant prayer, He focused on the few in front of Him — dividing the crowd andentrusting faithful men and women to serve the most strategic groups of fifties and hundreds (Mark 6:40).This map is one of a 30-map set called the List of 100 UPG's — a large, overwhelming target in the thousands,organised into clear groupings and displayed on maps and prayer lists.Each map comes with a prayer list of its fifty to a hundred people groups — their names, a representative photo, andmore detail — to mobilise informed intercession. + How can we multiply indigenous disciples, churches and leaders among all these people groups — and get the gospel into their own language?Start with Prayer!1 · Thirty disciples. Each follower of Jesus takestheir own map and prayer list, and sets apart a placeto pray — some have hung a people-group map overtheir bed.2 · Thirty churches. Each church dedicates a wall inone of its places of prayer, and keeps copies of theprayer list available for distribution.3 · Thirty indigenous leaders. Find leaders on theground in these areas and give them the map andprayer list, to raise awareness of their unengagedneighbours. + + + + + “And they sat down in groups, by hundreds and by fifties.” Mark 6:40 + + + +
\ No newline at end of file diff --git a/data/posters/asia-china-tibet-autonomous-region.html b/data/posters/asia-china-tibet-autonomous-region.html new file mode 100644 index 000000000..a0d84ed55 --- /dev/null +++ b/data/posters/asia-china-tibet-autonomous-region.html @@ -0,0 +1,355 @@ + +Mainland China + Mongolia — UPG poster +
+ + + + + + + + + + + + + + + ARABIAN SEASOUTH CHINA SEAMahārāshtraMahārāshtraGujarātGujarātBihārBihārLadākhLadākhJhārkhandJhārkhandUttarākhandUttarākhandGuizhou ProvinceGuizhou ProvinceSichuan ProvinceSichuan ProvinceTibet Autonomous RegionTibet Autonomous RegionXinjiang Uyghur Autonomous RegionXinjiang Uyghur Autonomous RegionInner Mongolia Autonomous RegionInner Mongolia Autonomous RegionHeilongjiang ProvinceHeilongjiang ProvinceCHINACHINARUSSIARUSSIAINDIAINDIAKAZAKHSTANKAZAKHSTANMONGOLIAMONGOLIAPAKISTANPAKISTANAFGHANISTANAFGHANISTANUZBEKISTANUZBEKISTANJAPANJAPANMYANMARMYANMARIRANIRANTAJIKISTANTAJIKISTANNORTH KOREANORTH KOREAVIETNAMVIETNAMBHUTANBHUTANBeijingShanghaiGuangzhouWuhanChongqingShenyengXianHarbinUrumqiTaiyuanJinanZhengzhouFuzhouLanzhouNanningHohhotYinchuanTokyoDhakaSeoulHanoiKabulTashkentKyotoDushanbeMarker positions are approximate · people-group locations are generalised at the source for privacyMarker positions are approximate · people-group locations are generalised at the source for privacyGenerated 2026-09-24 · data from doxa.lifeGenerated 2026-09-24 · data from doxa.life© geoBoundaries (CC BY 4.0)© geoBoundaries (CC BY 4.0) + + 123456789101112131415161718192021222324252627282930313233343536373839404142431.Saragh Yugur2.Uzbeks3.Yidu Lhoba4.Medog Monba5.Adi6.Ongkor7.Western Xibe8.Ainu9.Kyrgyz10.Sarikoli Tajiks11.Wakhi12.Nghari Tibetans13.Bunan14.Keji15.Bogar Lhoba16.Miguba17.Cona Monba18.Puroik19.Za20.Geman Deng21.Darang Deng22.Shixing23.Alxa Mongols24.Enger Yugur25.Wutun26.Buryat27.Bogol28.Saman29.Olot30.Tongren Bonan31.Henan Mongols32.Boyu Tibetans33.Heishui34.Manyak35.Ming36.Minyak37.Ersu38.Namuyi39.Luzu40.Butuo Nosu41.Yinuo Nosu42.Suodi Nosu43.Naju + + + + Unengaged People Groups + Unengaged of Mainland China + Mongolia + + + CountriesChina · MongoliaAdministrative AreasTibet Autonomous Region · Sichuan Province · Xinjiang Uyghur Autonomous RegionGansu Province · Inner Mongolia Autonomous Region · Qinghai ProvinceHeilongjiang ProvincePeople groups43 UPGSeriesList of 100 UPG's · map 23 of 28“But when he saw the multitudes, he was moved with compassion for them because they were harassed and scattered, like sheep without a shepherd.” MATTHEW 9:36Jesus’ Strategy to Feed the 5000What is a Prayer List of 100 UPG?Jesus’ disciples faced a similar challenge: “How can we feed so many with only five loaves and two fish?” Jesusfed the 5,000 by supernaturally multiplying that small offering — and His answer holds the key to our people-groupsproblem.Through radical faith and miracle-expectant prayer, He focused on the few in front of Him — dividing the crowd andentrusting faithful men and women to serve the most strategic groups of fifties and hundreds (Mark 6:40).This map is one of a 30-map set called the List of 100 UPG's — a large, overwhelming target in the thousands,organised into clear groupings and displayed on maps and prayer lists.Each map comes with a prayer list of its fifty to a hundred people groups — their names, a representative photo, andmore detail — to mobilise informed intercession. + How can we multiply indigenous disciples, churches and leaders among all these people groups — and get the gospel into their own language?Start with Prayer!1 · Thirty disciples. Each follower of Jesus takestheir own map and prayer list, and sets apart a placeto pray — some have hung a people-group map overtheir bed.2 · Thirty churches. Each church dedicates a wall inone of its places of prayer, and keeps copies of theprayer list available for distribution.3 · Thirty indigenous leaders. Find leaders on theground in these areas and give them the map andprayer list, to raise awareness of their unengagedneighbours. + + + + + “And they sat down in groups, by hundreds and by fifties.” Mark 6:40 + + + +
\ No newline at end of file diff --git a/data/posters/asia-china-yunnan-province.html b/data/posters/asia-china-yunnan-province.html new file mode 100644 index 000000000..a2d332d98 --- /dev/null +++ b/data/posters/asia-china-yunnan-province.html @@ -0,0 +1,355 @@ + +Southern China — UPG poster +
+ + + + + + + + + + + + + + + BAY OF BENGALSOUTH CHINA SEAArunāchal PradeshArunāchal PradeshAssamAssamManipurManipurSichuan ProvinceSichuan ProvinceTibet Autonomous RegionTibet Autonomous RegionQinghai ProvinceQinghai ProvinceGansu ProvinceGansu ProvinceHainan ProvinceHainan ProvinceGuangxi Zhuang Autonomous RegionGuangxi Zhuang Autonomous RegionYunnan ProvinceYunnan ProvinceGuizhou ProvinceGuizhou ProvinceHunan ProvinceHunan ProvinceCHINACHINAMYANMARMYANMARINDIAINDIAVIETNAMVIETNAMLAOSLAOSTHAILANDTHAILANDGuangzhouWuhanChongqingChengduNanjingChangshaNanchangNanningHaikouHefeiZhaotangHanoiRangoonNaypyidawVientianeHong KongMandalayDa NangVinhMawlamyineChiang MaiNakhon RatchasimaUbon RatchathaniImphalKhon KaenMarker positions are approximate · people-group locations are generalised at the source for privacyMarker positions are approximate · people-group locations are generalised at the source for privacyGenerated 2026-09-24 · data from doxa.lifeGenerated 2026-09-24 · data from doxa.life© geoBoundaries (CC BY 4.0)© geoBoundaries (CC BY 4.0) + + 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091.Nanjingren2.Panxian Nasu3.Aling4.Qiubei Zhuang5.Sichuan Mongols6.Naheng7.Ta'er8.Hongjin Tai9.Liang E10.Eastern Samadu11.Xiaoliangshan Nosu12.Mosuo13.Northern Awu14.Tagu15.Popei16.Doupo17.Liude18.Ani19.Tusu20.Yunnan Mongol21.Chesu22.Mishaba Laluo23.Xuzhang Lalu24.Lawu25.Xijima26.Western Gaisu27.Western Samadu28.Rumai De`ang29.Xinping Lalu30.Guaigun31.Puman32.Ya33.Labapo34.Kucong35.Hu36.Alu37.Sanda38.Akeu39.Manmet40.Kong Ge41.Muda42.Laowu43.Tai Lu44.Angku45.Jino46.Bit47.Muzi48.Mang49.Khmu50.Northern Muji51.Tai Pong52.Black Thai53.Wenma Zhuang54.Apu55.Lati56.Yizi57.Lupanshui Miao58.Lu59.Cai60.Qixingmin61.Gelao62.Laba63.A'ou64.Hagei65.Shenzhou66.Gao67.Eastern Xiangxi Miao68.Ga Mong69.Mozhihei70.Rao71.Xi72.Huishui Miao73.Northern Dong74.Qanu75.Wunai76.Liping Baheng77.Diao78.Xialusi79.Aoka80.Linghua81.Ai-Cham82.Younuo Bunu83.Sanqiao84.Pingdi Yao85.Changpao86.Youmai87.Yanghuang88.Beidongnuo89.Mo90.Numao91.Mashan Miao92.Baonuo93.Longjia94.Liujia95.Yunnan Shui96.Palyu97.Pusha98.Buyang99.Wopu100.Jiasou101.Yerong102.Mengwu103.Dianbao104.Bugan105.Jiamao Li106.Pubiao107.Meifu Li108.Ha Li109.Tulao + + + + Unengaged People Groups + Unengaged of Southern China + + + CountriesChinaAdministrative AreasYunnan Province · Guizhou Province · Guangxi Zhuang Autonomous RegionHunan Province · Hainan ProvincePeople groups109 UPGSeriesList of 100 UPG's · map 22 of 28“But when he saw the multitudes, he was moved with compassion for them because they were harassed and scattered, like sheep without a shepherd.” MATTHEW 9:36Jesus’ Strategy to Feed the 5000What is a Prayer List of 100 UPG?Jesus’ disciples faced a similar challenge: “How can we feed so many with only five loaves and two fish?” Jesusfed the 5,000 by supernaturally multiplying that small offering — and His answer holds the key to our people-groupsproblem.Through radical faith and miracle-expectant prayer, He focused on the few in front of Him — dividing the crowd andentrusting faithful men and women to serve the most strategic groups of fifties and hundreds (Mark 6:40).This map is one of a 30-map set called the List of 100 UPG's — a large, overwhelming target in the thousands,organised into clear groupings and displayed on maps and prayer lists.Each map comes with a prayer list of its fifty to a hundred people groups — their names, a representative photo, andmore detail — to mobilise informed intercession. + How can we multiply indigenous disciples, churches and leaders among all these people groups — and get the gospel into their own language?Start with Prayer!1 · Thirty disciples. Each follower of Jesus takestheir own map and prayer list, and sets apart a placeto pray — some have hung a people-group map overtheir bed.2 · Thirty churches. Each church dedicates a wall inone of its places of prayer, and keeps copies of theprayer list available for distribution.3 · Thirty indigenous leaders. Find leaders on theground in these areas and give them the map andprayer list, to raise awareness of their unengagedneighbours. + + + + + “And they sat down in groups, by hundreds and by fifties.” Mark 6:40 + + + +
\ No newline at end of file diff --git a/data/posters/asia-india-andhra-pradesh.html b/data/posters/asia-india-andhra-pradesh.html new file mode 100644 index 000000000..ed9d5690f --- /dev/null +++ b/data/posters/asia-india-andhra-pradesh.html @@ -0,0 +1,355 @@ + +South-Central India — UPG poster +
+ + + + + + + + + + + + + + + ARABIAN SEABAY OF BENGALMahārāshtraMahārāshtraTamil NāduTamil NāduChhattīsgarhChhattīsgarhWest BengalWest BengalOdishaOdishaKarnātakaKarnātakaMadhya PradeshMadhya PradeshGoaGoaKeralaKeralaTelangānaTelangānaAndhra PradeshAndhra PradeshINDIAINDIAChennaiBengaluruRaipurBhubaneshwarPuducherryMarker positions are approximate · people-group locations are generalised at the source for privacyMarker positions are approximate · people-group locations are generalised at the source for privacyGenerated 2026-09-24 · data from doxa.lifeGenerated 2026-09-24 · data from doxa.life© geoBoundaries (CC BY 4.0)© geoBoundaries (CC BY 4.0) + + 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071.Matangi2.Rajannalu3.Cippollu4.Katipamula5.Sindhollu6.Verra Musti7.Khatik (Telugu)8.Gosangi9.Are Kapu10.Pariki Muggula11.Mala Masti12.Kachi13.Jains (Telugu)14.Moghal (Telugu)15.Gangireddula16.Bhatrajulu17.Pambala18.Muchi Chamar19.Gurika20.Bindla21.Bolla22.Patkars23.Lakkamari Kapu24.Saradagallu25.Mitha Ayyalavar26.Kommu Dasari27.Attagara28.Guddi Eluguwallu29.Uppara30.Swakulasali Koshti31.Padigarajulu32.Pagativeshagallu33.Thogataveera Kshatriya34.Dasari35.Silavantulu36.Mondivogula37.Samayavallu38.Ansari-Momin (Telugu)39.Are Bondili40.Sadaru41.Hajjam (Telugu)42.Gandalla43.Bayita Kammara44.Garadi45.Pamula46.Jethi47.Sadhu Chetty48.Tolakari49.Tamboli (Telugu)50.PancaratraSrivaisnavas Brahmans51.Yatagiri52.Karnam53.Ontaris54.Atollu55.Malis56.Aguru57.Medari58.Neyyala59.Arakala60.Majjula61.Reddika62.Dammali63.Hatgar64.Nagavamsam65.Kuliya66.Muli67.Senapathi68.Kurakula69.Bhondari70.Runjalavallu71.Yatla72.Yite73.Yata74.Aiyarakulu75.Godagali76.Pamidi77.Paky78.Reddi Dora79.Tirugatigantla80.Gavara81.Godari82.Manna Dhora83.Konda Kammara84.Udupula85.Andhra Vaisnawa86.Bandollu87.Ganta Sayebulu88.Berad89.Accukattavandlu90.Karnibhakthulu91.Cakketakare92.Mandula93.Vaikhanasa Brahmans94.Are Katika95.Vipravinodulu96.Nakhasa97.Budakukkala98.Sakunapaksollu99.Cundollu100.Jakkula101.Madiga Dasu102.Bania, Agarwal (Telegu)103.Musti Chenchu104.Gandla105.Jandra106.Kaikali107.Camadollu + + + + Unengaged People Groups + Unengaged of South-Central India + + + CountriesIndiaAdministrative AreasAndhra Pradesh · TelangānaPeople groups107 UPGSeriesList of 100 UPG's · map 2 of 28“But when he saw the multitudes, he was moved with compassion for them because they were harassed and scattered, like sheep without a shepherd.” MATTHEW 9:36Jesus’ Strategy to Feed the 5000What is a Prayer List of 100 UPG?Jesus’ disciples faced a similar challenge: “How can we feed so many with only five loaves and two fish?” Jesusfed the 5,000 by supernaturally multiplying that small offering — and His answer holds the key to our people-groupsproblem.Through radical faith and miracle-expectant prayer, He focused on the few in front of Him — dividing the crowd andentrusting faithful men and women to serve the most strategic groups of fifties and hundreds (Mark 6:40).This map is one of a 30-map set called the List of 100 UPG's — a large, overwhelming target in the thousands,organised into clear groupings and displayed on maps and prayer lists.Each map comes with a prayer list of its fifty to a hundred people groups — their names, a representative photo, andmore detail — to mobilise informed intercession. + How can we multiply indigenous disciples, churches and leaders among all these people groups — and get the gospel into their own language?Start with Prayer!1 · Thirty disciples. Each follower of Jesus takestheir own map and prayer list, and sets apart a placeto pray — some have hung a people-group map overtheir bed.2 · Thirty churches. Each church dedicates a wall inone of its places of prayer, and keeps copies of theprayer list available for distribution.3 · Thirty indigenous leaders. Find leaders on theground in these areas and give them the map andprayer list, to raise awareness of their unengagedneighbours. + + + + + “And they sat down in groups, by hundreds and by fifties.” Mark 6:40 + + + +
\ No newline at end of file diff --git a/data/posters/asia-india-gujarat.html b/data/posters/asia-india-gujarat.html new file mode 100644 index 000000000..2ae53480b --- /dev/null +++ b/data/posters/asia-india-gujarat.html @@ -0,0 +1,355 @@ + +West India — UPG poster +
+ + + + + + + + + + + + + + + ARABIAN SEAMahārāshtraMahārāshtraRājasthānRājasthānKarnātakaKarnātakaMadhya PradeshMadhya PradeshGujarātGujarātINDIAINDIAPAKISTANPAKISTANMumbaiGandhinagarDamanKarachiMarker positions are approximate · people-group locations are generalised at the source for privacyMarker positions are approximate · people-group locations are generalised at the source for privacyGenerated 2026-09-24 · data from doxa.lifeGenerated 2026-09-24 · data from doxa.life© geoBoundaries (CC BY 4.0)© geoBoundaries (CC BY 4.0) + + 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889901.Moghol (Gujarati)2.Jat Muslim3.Majothi4.Khaskeli5.Juneja6.Royma7.Miyana8.Mutwa9.Raysipotra10.Node11.Halaypotra12.Kapadi13.Bafan14.Mujavar15.Ker16.Hajjam (Gujarati)17.Langa18.Theba19.Hingora20.Muslim Khatri21.Hingorza22.Caki23.Agaria24.Bhodala25.Paradhi26.Machhiyara27.Garmatan28.Cunara29.Wagheri30.Sompura Salat31.Kathi32.Mer33.Bairagi (Gujarati)34.Vadi35.Champta36.Shravan37.Kasbati38.Makrani39.Dasnami Bawa40.Sandhai Muslims41.Sagar42.Eastern Baloch43.Garvi44.Siddi45.Dafer46.Kambodia Bhagat47.Patni Jamat48.Banjania49.Depala50.Barot51.Kamalia52.Tai53.Targala54.Vahivanca Barot55.Golarana56.Vayati57.Saranias58.Khalpa59.Vyapari60.Agri61.Kasar (Gujarati)62.Mandali Muslims63.Patni Vankars64.Patanwadia65.Dangasiya66.Muslim Lakhera67.Barthari68.Tirgar69.Narsinghpura70.Anjana Patel (Gujarati)71.Padhar72.Mir73.Rathodia74.Kahar (Gujarati)75.Dudhwala76.Wandharo77.Turi Barot78.Khatik (Gujarati)79.Sayyid (Gujarati)80.Galiara81.Muslim Patel82.Panar83.Pomla84.Ghantiya85.Borpi86.Gavli87.Bamcha88.Nayak Muslims89.Gadhai90.Gosain (Gujarati) + + + + Unengaged People Groups + Unengaged of West India + + + CountriesIndiaAdministrative AreasGujarātPeople groups90 UPGSeriesList of 100 UPG's · map 4 of 28“But when he saw the multitudes, he was moved with compassion for them because they were harassed and scattered, like sheep without a shepherd.” MATTHEW 9:36Jesus’ Strategy to Feed the 5000What is a Prayer List of 100 UPG?Jesus’ disciples faced a similar challenge: “How can we feed so many with only five loaves and two fish?” Jesusfed the 5,000 by supernaturally multiplying that small offering — and His answer holds the key to our people-groupsproblem.Through radical faith and miracle-expectant prayer, He focused on the few in front of Him — dividing the crowd andentrusting faithful men and women to serve the most strategic groups of fifties and hundreds (Mark 6:40).This map is one of a 30-map set called the List of 100 UPG's — a large, overwhelming target in the thousands,organised into clear groupings and displayed on maps and prayer lists.Each map comes with a prayer list of its fifty to a hundred people groups — their names, a representative photo, andmore detail — to mobilise informed intercession. + How can we multiply indigenous disciples, churches and leaders among all these people groups — and get the gospel into their own language?Start with Prayer!1 · Thirty disciples. Each follower of Jesus takestheir own map and prayer list, and sets apart a placeto pray — some have hung a people-group map overtheir bed.2 · Thirty churches. Each church dedicates a wall inone of its places of prayer, and keeps copies of theprayer list available for distribution.3 · Thirty indigenous leaders. Find leaders on theground in these areas and give them the map andprayer list, to raise awareness of their unengagedneighbours. + + + + + “And they sat down in groups, by hundreds and by fifties.” Mark 6:40 + + + +
\ No newline at end of file diff --git a/data/posters/asia-india-karnataka.html b/data/posters/asia-india-karnataka.html new file mode 100644 index 000000000..a83823f0e --- /dev/null +++ b/data/posters/asia-india-karnataka.html @@ -0,0 +1,355 @@ + +Southwest India — UPG poster +
+ + + + + + + + + + + + + + + ARABIAN SEAINDIAN OCEANBAY OF BENGALMahārāshtraMahārāshtraTamil NāduTamil NāduGujarātGujarātTelangānaTelangānaAndhra PradeshAndhra PradeshKeralaKeralaGoaGoaINDIAINDIASRI LANKASRI LANKAMumbaiChennaiHyderabadAmaravatiPuducherryDamanKavarattiMarker positions are approximate · people-group locations are generalised at the source for privacyMarker positions are approximate · people-group locations are generalised at the source for privacyGenerated 2026-09-24 · data from doxa.lifeGenerated 2026-09-24 · data from doxa.life© geoBoundaries (CC BY 4.0)© geoBoundaries (CC BY 4.0) + + 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485861.Chenna Dasar2.Pattegar3.Pendar4.Ganti Chores5.Raval6.Durga Murga7.Khakar8.Kudubi9.Nawaiyat10.Halleer11.Gabit12.Mith Gauda13.Padiyar14.Gomantak Maratha15.Bandi16.Mhalo17.Bania (Konkani)18.Komara Panta19.Gauli20.Ghadi21.Ladar22.Harkantra23.Nadors24.Gond (Kannada)25.Bellara26.Agasa27.Sudir28.Gatti29.Charodi30.Jogi (Tulu)31.Kummara, Kumbara32.Mogaveera33.Koosa34.Padarthis35.Raneyar36.Maila37.Rajapuri38.Godda39.Mundala40.Chaptegar41.Koraga (Korra)42.Pambada43.Baira44.Raddi45.Sayyid (Kannada)46.Jatigar47.Hajjam (Kannada)48.Guraw49.Bayil Pattar50.Balasantoshi51.Bayil Kammara52.Sapalyas53.Ansari-Momin (Kannada)54.Holeya Dasari55.Pinjara (Kannada)56.Jaweri57.Gudikara58.Bagga59.Nairy60.Maleru61.Hasalaru62.Batada63.Kottari64.Raya Rawat65.Kurahina Setti66.Dombi Dasa67.Natua68.Helawa69.Bania (Kannada)70.Nai (Kannada)71.Jogi (Telugu)72.Vilyagaras73.Malaikudi74.Manser75.Bestha76.Ayri77.Rachavar78.Meda79.Thammadi80.Arasu81.Soligaru82.Koyava83.Kolari84.Kudiya85.Galada Kokani86.Adiyan + + + + Unengaged People Groups + Unengaged of Southwest India + + + CountriesIndiaAdministrative AreasKarnātaka · GoaPeople groups86 UPGSeriesList of 100 UPG's · map 8 of 28“But when he saw the multitudes, he was moved with compassion for them because they were harassed and scattered, like sheep without a shepherd.” MATTHEW 9:36Jesus’ Strategy to Feed the 5000What is a Prayer List of 100 UPG?Jesus’ disciples faced a similar challenge: “How can we feed so many with only five loaves and two fish?” Jesusfed the 5,000 by supernaturally multiplying that small offering — and His answer holds the key to our people-groupsproblem.Through radical faith and miracle-expectant prayer, He focused on the few in front of Him — dividing the crowd andentrusting faithful men and women to serve the most strategic groups of fifties and hundreds (Mark 6:40).This map is one of a 30-map set called the List of 100 UPG's — a large, overwhelming target in the thousands,organised into clear groupings and displayed on maps and prayer lists.Each map comes with a prayer list of its fifty to a hundred people groups — their names, a representative photo, andmore detail — to mobilise informed intercession. + How can we multiply indigenous disciples, churches and leaders among all these people groups — and get the gospel into their own language?Start with Prayer!1 · Thirty disciples. Each follower of Jesus takestheir own map and prayer list, and sets apart a placeto pray — some have hung a people-group map overtheir bed.2 · Thirty churches. Each church dedicates a wall inone of its places of prayer, and keeps copies of theprayer list available for distribution.3 · Thirty indigenous leaders. Find leaders on theground in these areas and give them the map andprayer list, to raise awareness of their unengagedneighbours. + + + + + “And they sat down in groups, by hundreds and by fifties.” Mark 6:40 + + + +
\ No newline at end of file diff --git a/data/posters/asia-india-kerala.html b/data/posters/asia-india-kerala.html new file mode 100644 index 000000000..f7fd6443b --- /dev/null +++ b/data/posters/asia-india-kerala.html @@ -0,0 +1,355 @@ + +Malabar Coast — UPG poster +
+ + + + + + + + + + + + + + + INDIAN OCEANARABIAN SEABAY OF BENGALTamil NāduTamil NāduAndhra PradeshAndhra PradeshKarnātakaKarnātakaPuducherryPuducherryLakshadweepLakshadweepKeralaKeralaINDIAINDIASRI LANKASRI LANKAChennaiBengaluruKavarattiColomboAnuradhapuraKandyTrincomaleeRatnapuraBadullaPuttalanMarker positions are approximate · people-group locations are generalised at the source for privacyMarker positions are approximate · people-group locations are generalised at the source for privacyGenerated 2026-09-24 · data from doxa.lifeGenerated 2026-09-24 · data from doxa.life© geoBoundaries (CC BY 4.0)© geoBoundaries (CC BY 4.0) + + 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677781.Kalanadies2.Urindavan3.Kumar Kshatriya4.Bakuda5.Malayalar6.Moger (Malayalam)7.Kidaran8.Nalkadaya9.Karimpalan10.Narsanna11.Bowis Mogeyar12.Nambutiris13.Mukkari14.Wainadan Kader15.Mavilan16.Valinjiyar17.Kunduvadian18.Wainadan Pulayan19.Cingatanmar20.Kavuthiyan21.Kummara, Kusuvan22.Moothan23.Kalladi24.Pathinaickans25.Laccadive26.Anthur Nair27.Allar28.Kallattu Kurup29.Wainadan Cetti30.Vadugan31.Padannan32.Kootan33.Poduval34.Ambalavasi35.Marasari36.Samanthan37.Kollan38.Pandithar39.Arayavati40.Wayanad Pathiyan41.Thachanad Moopan42.Cakkala43.Nayadi44.Vilkurup45.Erawallan46.Palakad Tandans47.Otans48.Kavara49.Nasuvan50.Pisaroti51.Indo-French52.Vettalaikarans53.Vettiyan54.Indo-Vietnamese55.Kakkalan56.Chengazhi Nambiar57.Sonavar58.Pulisari59.Chamar, Muchi(Malayalam)60.Cakkyar Nambiyar61.Visavan62.Chakkiyar63.Kocu Wellan64.Musari65.Tiyattunni66.Maran Nairs67.Ezhavathi68.Pathiyan69.Reddi70.Ilayatu71.Malai Pandaram72.Dheevara73.Ayyanavar74.Muttatu75.Vetan76.Puspakan Unni77.Kurukkal78.Bania (Malayalam) + + + + Unengaged People Groups + Unengaged of Malabar Coast + + + CountriesIndiaAdministrative AreasKerala · Puducherry · LakshadweepPeople groups78 UPGSeriesList of 100 UPG's · map 9 of 28“But when he saw the multitudes, he was moved with compassion for them because they were harassed and scattered, like sheep without a shepherd.” MATTHEW 9:36Jesus’ Strategy to Feed the 5000What is a Prayer List of 100 UPG?Jesus’ disciples faced a similar challenge: “How can we feed so many with only five loaves and two fish?” Jesusfed the 5,000 by supernaturally multiplying that small offering — and His answer holds the key to our people-groupsproblem.Through radical faith and miracle-expectant prayer, He focused on the few in front of Him — dividing the crowd andentrusting faithful men and women to serve the most strategic groups of fifties and hundreds (Mark 6:40).This map is one of a 30-map set called the List of 100 UPG's — a large, overwhelming target in the thousands,organised into clear groupings and displayed on maps and prayer lists.Each map comes with a prayer list of its fifty to a hundred people groups — their names, a representative photo, andmore detail — to mobilise informed intercession. + How can we multiply indigenous disciples, churches and leaders among all these people groups — and get the gospel into their own language?Start with Prayer!1 · Thirty disciples. Each follower of Jesus takestheir own map and prayer list, and sets apart a placeto pray — some have hung a people-group map overtheir bed.2 · Thirty churches. Each church dedicates a wall inone of its places of prayer, and keeps copies of theprayer list available for distribution.3 · Thirty indigenous leaders. Find leaders on theground in these areas and give them the map andprayer list, to raise awareness of their unengagedneighbours. + + + + + “And they sat down in groups, by hundreds and by fifties.” Mark 6:40 + + + +
\ No newline at end of file diff --git a/data/posters/asia-india-madhya-pradesh.html b/data/posters/asia-india-madhya-pradesh.html new file mode 100644 index 000000000..05290b99c --- /dev/null +++ b/data/posters/asia-india-madhya-pradesh.html @@ -0,0 +1,355 @@ + +Central India — UPG poster +
+ + + + + + + + + + + + + + + ARABIAN SEABAY OF BENGALUttar PradeshUttar PradeshTamil NāduTamil NāduChhattīsgarhChhattīsgarhGujarātGujarātOdishaOdishaBihārBihārRājasthānRājasthānTelangānaTelangānaAndhra PradeshAndhra PradeshJhārkhandJhārkhandKarnātakaKarnātakaUttarākhandUttarākhandGoaGoaKeralaKeralaPunjabPunjabHaryānaHaryānaMahārāshtraMahārāshtraDādra and Nagar Haveli and Damān and DiuDādra and Nagar Haveli and Damān and DiuMadhya PradeshMadhya PradeshINDIAINDIACHINACHINAPAKISTANPAKISTANNEPALNEPALNew DelhiMumbaiChennaiBengaluruHyderabadAmaravatiJaipurLucknowPatnaRanchiRaipurBhubaneshwarDehra DunGandhinagarPanajiDamanKathmanduPokharaDhangarhiNepalganjBhairawaJumlaMarker positions are approximate · people-group locations are generalised at the source for privacyMarker positions are approximate · people-group locations are generalised at the source for privacyGenerated 2026-09-24 · data from doxa.lifeGenerated 2026-09-24 · data from doxa.life© geoBoundaries (CC BY 4.0)© geoBoundaries (CC BY 4.0) + + 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687881.Bhanumati2.Naita3.Manbhav4.Anjana5.Sisgars6.Banchada7.Mankar8.Zamral9.Gachha10.Bari (Marathi)11.Kaghzi12.Barda13.Hatkar14.Kachchi, Kushwaha15.Kasikapadi16.Bhoi (Marathi)17.Kathar18.Phularis19.Nandiwala20.Bharwad21.Kharvi22.Sagharias23.Kokaniz24.Mitna25.Attar Saibulu26.Prabhu Patane27.Pangul28.Kudimahan29.Dhawad30.Sanghar31.Lonar32.Takari33.Citrakathi34.Kolhati35.Velip36.Hardas37.Mondiwar38.Waidu39.Chitari40.Garodi41.Yelmar42.Khatik (Marathi)43.Nilkanth44.Gondhali45.Kandera46.Soria47.Bari (Hindi)48.Berar49.Sikligar50.Hajjam (Hindi)51.Jains (Hindi)52.Basudeva53.Nema54.Lahangir55.Kachera (Bagheli)56.Ladia57.Nat (Bagheli)58.Muskhan59.Kasar (Hindi)60.Namdeo61.Baraua62.Bhurtia63.Sais64.Dhed65.Rujjhar66.Jadam67.Naoda68.Muslim Gond69.Lodha (Marathi)70.Muslim Kachera71.Garpagari72.Dom (Marathi)73.Pinjara (Marathi)74.Sarodi75.Chari76.Nahal77.Mana78.Jhadi79.Ladsi80.Kapewar81.Sutar, Mistry82.Gopal83.Baharupi84.Lajjhar85.Naikpod86.Pochammalollu87.Neeli88.Sahi + + + + Unengaged People Groups + Unengaged of Central India + + + CountriesIndiaAdministrative AreasMadhya Pradesh · Mahārāshtra · Dādra and Nagar Haveli and Damān and DiuPeople groups88 UPGSeriesList of 100 UPG's · map 6 of 28“But when he saw the multitudes, he was moved with compassion for them because they were harassed and scattered, like sheep without a shepherd.” MATTHEW 9:36Jesus’ Strategy to Feed the 5000What is a Prayer List of 100 UPG?Jesus’ disciples faced a similar challenge: “How can we feed so many with only five loaves and two fish?” Jesusfed the 5,000 by supernaturally multiplying that small offering — and His answer holds the key to our people-groupsproblem.Through radical faith and miracle-expectant prayer, He focused on the few in front of Him — dividing the crowd andentrusting faithful men and women to serve the most strategic groups of fifties and hundreds (Mark 6:40).This map is one of a 30-map set called the List of 100 UPG's — a large, overwhelming target in the thousands,organised into clear groupings and displayed on maps and prayer lists.Each map comes with a prayer list of its fifty to a hundred people groups — their names, a representative photo, andmore detail — to mobilise informed intercession. + How can we multiply indigenous disciples, churches and leaders among all these people groups — and get the gospel into their own language?Start with Prayer!1 · Thirty disciples. Each follower of Jesus takestheir own map and prayer list, and sets apart a placeto pray — some have hung a people-group map overtheir bed.2 · Thirty churches. Each church dedicates a wall inone of its places of prayer, and keeps copies of theprayer list available for distribution.3 · Thirty indigenous leaders. Find leaders on theground in these areas and give them the map andprayer list, to raise awareness of their unengagedneighbours. + + + + + “And they sat down in groups, by hundreds and by fifties.” Mark 6:40 + + + +
\ No newline at end of file diff --git a/data/posters/asia-india-odisha.html b/data/posters/asia-india-odisha.html new file mode 100644 index 000000000..65b63bdc0 --- /dev/null +++ b/data/posters/asia-india-odisha.html @@ -0,0 +1,355 @@ + +East India — UPG poster +
+ + + + + + + + + + + + + + + BAY OF BENGALMahārāshtraMahārāshtraUttar PradeshUttar PradeshWest BengalWest BengalBihārBihārTelangānaTelangānaAndhra PradeshAndhra PradeshJhārkhandJhārkhandKarnātakaKarnātakaMadhya PradeshMadhya PradeshChhattīsgarhChhattīsgarhOdishaOdishaINDIAINDIABANGLADESHBANGLADESHNEPALNEPALKolkataHyderabadAmaravatiPatnaRanchiKhulnaRajshahiBiratnagarJamalpurMarker positions are approximate · people-group locations are generalised at the source for privacyMarker positions are approximate · people-group locations are generalised at the source for privacyGenerated 2026-09-24 · data from doxa.lifeGenerated 2026-09-24 · data from doxa.life© geoBoundaries (CC BY 4.0)© geoBoundaries (CC BY 4.0) + + 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687881.Kol (Chhattisgarhi)2.Kalal (Sadri)3.Khairwar (Chhattisgarhi)4.Son Koli5.Pando6.Samasi7.Chaikwa8.Bharia Bhumia(Chhattisgarhi)9.Ghantarghada10.Munnewar11.Naksia12.Markande Kanjia13.Dom (Chhattisgarhi)14.Gosain (Chhattisgarhi)15.Bargah16.Godra17.Bharewa18.Bairagi (Chhattisgarhi)19.Beldar (Chhattisgarhi)20.Sayyid (Chhattisgarhi)21.Bhunjia22.Bhangi (Chhattisgarhi)23.Badhai (Chhattisgarhi)24.Jogi (Halbi)25.Khatik (Chhattisgarhi)26.Candhai Maru27.Kuli28.Ghogia29.Kusta30.Dhera31.Kapasiya32.Dhakad (Halbi)33.Bangti34.Panara35.Ghadwa36.Rana37.Bhattra (Bhatri)38.Panka (Odia)39.Guna40.Didayi41.Bondo42.Mundapotta43.Eneti Dora44.Parenga45.Thanapati46.Citrakar47.Suda48.Bari (Odia)49.Khandwal50.Kuda51.Ghusuria52.Maghia53.Koraga54.Nai (Odia)55.Kamila56.Bairagi (Odia)57.Kurunga58.Darji (Odia)59.Sabakhia60.Sinduria61.Tharua62.Mahuria63.Bauti64.Radhi65.Sayyid (Odia)66.Kobari67.Tula Vina68.Janughanta69.Jogi (Odia)70.Chatarkheya71.Bavuri72.Sanei73.Bhoi (Odia)74.Irika75.Malia76.Kasar (Odia)77.Khadura78.Baha'i79.Brahman Jyoti80.Khati (Odia)81.Oriya82.Daitapati83.Cherua84.Liari85.Kachchi, Alia86.Noliya87.Damla88.Banka + + + + Unengaged People Groups + Unengaged of East India + + + CountriesIndiaAdministrative AreasOdisha · ChhattīsgarhPeople groups88 UPGSeriesList of 100 UPG's · map 5 of 28“But when he saw the multitudes, he was moved with compassion for them because they were harassed and scattered, like sheep without a shepherd.” MATTHEW 9:36Jesus’ Strategy to Feed the 5000What is a Prayer List of 100 UPG?Jesus’ disciples faced a similar challenge: “How can we feed so many with only five loaves and two fish?” Jesusfed the 5,000 by supernaturally multiplying that small offering — and His answer holds the key to our people-groupsproblem.Through radical faith and miracle-expectant prayer, He focused on the few in front of Him — dividing the crowd andentrusting faithful men and women to serve the most strategic groups of fifties and hundreds (Mark 6:40).This map is one of a 30-map set called the List of 100 UPG's — a large, overwhelming target in the thousands,organised into clear groupings and displayed on maps and prayer lists.Each map comes with a prayer list of its fifty to a hundred people groups — their names, a representative photo, andmore detail — to mobilise informed intercession. + How can we multiply indigenous disciples, churches and leaders among all these people groups — and get the gospel into their own language?Start with Prayer!1 · Thirty disciples. Each follower of Jesus takestheir own map and prayer list, and sets apart a placeto pray — some have hung a people-group map overtheir bed.2 · Thirty churches. Each church dedicates a wall inone of its places of prayer, and keeps copies of theprayer list available for distribution.3 · Thirty indigenous leaders. Find leaders on theground in these areas and give them the map andprayer list, to raise awareness of their unengagedneighbours. + + + + + “And they sat down in groups, by hundreds and by fifties.” Mark 6:40 + + + +
\ No newline at end of file diff --git a/data/posters/asia-india-rajasthan.html b/data/posters/asia-india-rajasthan.html new file mode 100644 index 000000000..4bc19803c --- /dev/null +++ b/data/posters/asia-india-rajasthan.html @@ -0,0 +1,355 @@ + +Northwest India — UPG poster +
+ + + + + + + + + + + + + + + ARABIAN SEAMahārāshtraMahārāshtraUttar PradeshUttar PradeshChhattīsgarhChhattīsgarhGujarātGujarātOdishaOdishaTelangānaTelangānaAndhra PradeshAndhra PradeshUttarākhandUttarākhandMadhya PradeshMadhya PradeshTibet Autonomous RegionTibet Autonomous RegionXinjiang Uyghur Autonomous RegionXinjiang Uyghur Autonomous RegionLadākhLadākhRājasthānRājasthānChandīgarhChandīgarhHimāchal PradeshHimāchal PradeshJammu and KashmīrJammu and KashmīrPunjabPunjabHaryānaHaryānaINDIAINDIACHINACHINAPAKISTANPAKISTANAFGHANISTANAFGHANISTANTAJIKISTANTAJIKISTANUZBEKISTANUZBEKISTANKYRGYZSTANKYRGYZSTANNEPALNEPALKAZAKHSTANKAZAKHSTANNew DelhiMumbaiLucknowBhopalRaipurDehra DunGandhinagarDamanKabulDushanbeIslamabadKarachiLahorePeshawarQuettaFargonaNamanganSamarqandJalalabadMazar-e SharifKhujandOshQurghonteppaKondozJizzaxMarker positions are approximate · people-group locations are generalised at the source for privacyMarker positions are approximate · people-group locations are generalised at the source for privacyGenerated 2026-09-24 · data from doxa.lifeGenerated 2026-09-24 · data from doxa.life© geoBoundaries (CC BY 4.0)© geoBoundaries (CC BY 4.0) + + 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161.Shina2.Manjygur Muslims3.Dhobi (Dogri)4.Naqqas5.Kawoj6.Bhand (Kashmiri)7.Waza8.Gorkun9.Ganz10.Sofi11.Kraal12.Galwan13.Namdagur14.Najjar15.Budhan16.Sudhan17.Cheintz18.Domal19.Sayyid (Pahari)20.Bania (Dogri)21.Pohul22.Dhyar23.Moghol (Dogri)24.Manhas25.Arain (Dogri)26.Gardi27.Ghihara28.Bhopa29.Rath30.Pajabgar31.Usta32.Chungar33.Bhutta34.Rajpurohit35.Hiranbaj36.Van Baoriya37.Saraogi38.Mangnyar Muslims39.Kharol40.Chheepi41.Khadim42.Tak43.Damami44.Kriyagar45.Nyaria46.Chadwa47.Cejara48.Sunga49.Sain50.Gosain (Rajasthani)51.Cudigar52.Gurru53.Nai (Mewari)54.Sorgars55.Nagda56.Ved57.Sanchia58.Badi (Marwari)59.Chopan60.Purig-Pa61.Bomba62.Brukpa63.Lohar (Dogri)64.Dokhpa65.Shaksaz66.Nagbansi (Dogri)67.Hajjam (Kashmiri)68.Mon69.Pangwal Buddhists70.Bania (Kashmiri)71.Dosali72.Pangwala73.Ratal74.Hadi75.Khatik (Chambeali)76.Rehar77.Seok78.Campa79.Gosain (Kangri)80.Malaneese81.Sansoi82.Racband83.Masku84.Nar85.Bhojki86.Swangla87.Sanhai88.Hesi89.Nicar90.Dhaki91.Daule92.Pinjara (Punjabi)93.Thavi94.Daoli95.Khatik (Punjabi)96.Hajjam (Haryanvi)97.Arain (Punjabi)98.Gagra99.Kucband100.Lakhera (Haryanvi)101.Moghol (Marwari)102.Bargi103.Rajkumhar104.Shikari105.Chobdar106.Murhid107.Singiwala108.Vijabargiya109.Dadupanthi110.Mogia111.Pakhimara112.Laskari113.Baret114.Santia115.Dhola116.Runwalas + + + + Unengaged People Groups + Unengaged of Northwest India + + + CountriesIndiaAdministrative AreasRājasthān · Haryāna · Himāchal Pradesh · Jammu and Kashmīr · PunjabChandīgarh · LadākhPeople groups116 UPGSeriesList of 100 UPG's · map 1 of 28“But when he saw the multitudes, he was moved with compassion for them because they were harassed and scattered, like sheep without a shepherd.” MATTHEW 9:36Jesus’ Strategy to Feed the 5000What is a Prayer List of 100 UPG?Jesus’ disciples faced a similar challenge: “How can we feed so many with only five loaves and two fish?” Jesusfed the 5,000 by supernaturally multiplying that small offering — and His answer holds the key to our people-groupsproblem.Through radical faith and miracle-expectant prayer, He focused on the few in front of Him — dividing the crowd andentrusting faithful men and women to serve the most strategic groups of fifties and hundreds (Mark 6:40).This map is one of a 30-map set called the List of 100 UPG's — a large, overwhelming target in the thousands,organised into clear groupings and displayed on maps and prayer lists.Each map comes with a prayer list of its fifty to a hundred people groups — their names, a representative photo, andmore detail — to mobilise informed intercession. + How can we multiply indigenous disciples, churches and leaders among all these people groups — and get the gospel into their own language?Start with Prayer!1 · Thirty disciples. Each follower of Jesus takestheir own map and prayer list, and sets apart a placeto pray — some have hung a people-group map overtheir bed.2 · Thirty churches. Each church dedicates a wall inone of its places of prayer, and keeps copies of theprayer list available for distribution.3 · Thirty indigenous leaders. Find leaders on theground in these areas and give them the map andprayer list, to raise awareness of their unengagedneighbours. + + + + + “And they sat down in groups, by hundreds and by fifties.” Mark 6:40 + + + +
\ No newline at end of file diff --git a/data/posters/asia-india-tamil-nadu.html b/data/posters/asia-india-tamil-nadu.html new file mode 100644 index 000000000..6e5799b64 --- /dev/null +++ b/data/posters/asia-india-tamil-nadu.html @@ -0,0 +1,355 @@ + +Southeast India + Andaman Islands — UPG poster +
+ + + + + + + + + + + + + + + INDIAN OCEANARABIAN SEABAY OF BENGALMahārāshtraMahārāshtraAndhra PradeshAndhra PradeshKarnātakaKarnātakaGoaGoaKeralaKeralaAndaman and Nicobar IslandsAndaman and Nicobar IslandsINDIAINDIAMYANMARMYANMARTHAILANDTHAILANDSRI LANKASRI LANKAINDONESIAINDONESIABengaluruPanajiKavarattiColomboBanda AcehDaweiPhuketAnuradhapuraBadullaRanongMarker positions are approximate · people-group locations are generalised at the source for privacyMarker positions are approximate · people-group locations are generalised at the source for privacyGenerated 2026-09-24 · data from doxa.lifeGenerated 2026-09-24 · data from doxa.life© geoBoundaries (CC BY 4.0)© geoBoundaries (CC BY 4.0) + + 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172731.Kummara, Kummari2.Gudugudupandi3.Jati Pillai4.Baig5.Mudugar6.Katesar7.Kongu Vellala Gounder8.Malai Vellala9.Savalakkarar10.Kota11.Parkavakulam12.Thoraiyar13.Pannadi14.Maleyan15.Siviar16.Panniandi17.Perumkollar18.Gangawar19.Karna Sale20.Dasa Palanjika21.Anuppan22.Kunnuva Vellalar23.Alavan24.Kuluvan25.Aranadan26.Kudumi27.Kattiakaran28.Cekkala29.Semman30.Senaithalaivar31.Sayyid (Tamil)32.Tondman33.Kambalattan34.Chayakkaran35.Dayare36.Chamar, Muchi (Tamil)37.Nanjil Mudali38.Kepmari39.Dhobi (Tamil)40.Bondili41.Maniyattikkaran42.Tambiran43.Pattanavan44.Nakkala45.Vettaikkaran46.Ansari-Momin (Tamil)47.Salivahanam48.Parvatarajakulam49.Kongu Vaisnawa50.Krishnavaka51.Coorgi Andamanese52.Great Andamanese53.Jarawas54.Sentinelese55.Andamanese56.Telengi57.Bhatu (Andamani)58.Brahmin (Andamani)59.Onge60.Vellaiyan KuppamPadaiyaci61.Namdeo Maratha62.Uppillian63.Kannada Saineegar64.Gurukkal65.Jains (Tamil)66.Urikkar Naicker67.Koliyan68.Tholuva Naicker69.Karlar70.Kannada Naicker71.Kambar72.Karaiyar73.Kayalar + + + + Unengaged People Groups + Unengaged of Southeast India + Andaman Islands + + + CountriesIndiaAdministrative AreasTamil Nādu · Andaman and Nicobar IslandsPeople groups73 UPGSeriesList of 100 UPG's · map 10 of 28“But when he saw the multitudes, he was moved with compassion for them because they were harassed and scattered, like sheep without a shepherd.” MATTHEW 9:36Jesus’ Strategy to Feed the 5000What is a Prayer List of 100 UPG?Jesus’ disciples faced a similar challenge: “How can we feed so many with only five loaves and two fish?” Jesusfed the 5,000 by supernaturally multiplying that small offering — and His answer holds the key to our people-groupsproblem.Through radical faith and miracle-expectant prayer, He focused on the few in front of Him — dividing the crowd andentrusting faithful men and women to serve the most strategic groups of fifties and hundreds (Mark 6:40).This map is one of a 30-map set called the List of 100 UPG's — a large, overwhelming target in the thousands,organised into clear groupings and displayed on maps and prayer lists.Each map comes with a prayer list of its fifty to a hundred people groups — their names, a representative photo, andmore detail — to mobilise informed intercession. + How can we multiply indigenous disciples, churches and leaders among all these people groups — and get the gospel into their own language?Start with Prayer!1 · Thirty disciples. Each follower of Jesus takestheir own map and prayer list, and sets apart a placeto pray — some have hung a people-group map overtheir bed.2 · Thirty churches. Each church dedicates a wall inone of its places of prayer, and keeps copies of theprayer list available for distribution.3 · Thirty indigenous leaders. Find leaders on theground in these areas and give them the map andprayer list, to raise awareness of their unengagedneighbours. + + + + + “And they sat down in groups, by hundreds and by fifties.” Mark 6:40 + + + +
\ No newline at end of file diff --git a/data/posters/asia-india-uttarakhand.html b/data/posters/asia-india-uttarakhand.html new file mode 100644 index 000000000..36c1c8088 --- /dev/null +++ b/data/posters/asia-india-uttarakhand.html @@ -0,0 +1,355 @@ + +North India + Nepal — UPG poster +
+ + + + + + + + + + + + + + + BAY OF BENGALMahārāshtraMahārāshtraChhattīsgarhChhattīsgarhGujarātGujarātSikkimSikkimWest BengalWest BengalOdishaOdishaLadākhLadākhRājasthānRājasthānTelangānaTelangānaAndhra PradeshAndhra PradeshMeghālayaMeghālayaAssamAssamMadhya PradeshMadhya PradeshHimāchal PradeshHimāchal PradeshPunjabPunjabHaryānaHaryānaTibet Autonomous RegionTibet Autonomous RegionQinghai ProvinceQinghai ProvinceXinjiang Uyghur Autonomous RegionXinjiang Uyghur Autonomous RegionUttar PradeshUttar PradeshDelhiDelhiBihārBihārJhārkhandJhārkhandUttarākhandUttarākhandINDIAINDIACHINACHINAPAKISTANPAKISTANNEPALNEPALBANGLADESHBANGLADESHBHUTANBHUTANKolkataJaipurBhopalSrinagarChandigarhRaipurBhubaneshwarAgartalaPokharaGangtokLehDandeldhuraDispurSalyanJumlaDhakaThimphuLahoreChattogramKhulnaRajshahiLhasaBarishalJamalpurMarker positions are approximate · people-group locations are generalised at the source for privacyMarker positions are approximate · people-group locations are generalised at the source for privacyGenerated 2026-09-24 · data from doxa.lifeGenerated 2026-09-24 · data from doxa.life© geoBoundaries (CC BY 4.0)© geoBoundaries (CC BY 4.0) + + 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091921.Gyasumdoba2.Kaike3.Byangsi4.Chaudangsi5.Raji6.Anwal7.Bhand8.Kuthliya Bora9.Jimdar10.Tagewale11.Sayyid (Garhwali)12.Sheikhzade13.Badhik14.Badi15.Ahmadiya16.Rave17.Charwaha18.Rai Bhat Muslims19.Hijra20.Khatbune21.Arain (Kannauji)22.Bargala23.Raji24.Bargujar25.Habura26.Balahar27.Mujavir28.Gadhia29.Chidmar30.Kankali31.Bisati32.Pankhiya33.Putliwale34.Khangar (Bundeli)35.Lodha36.Dura37.Rajbhar38.Kamar39.Halkhor40.Thakurai41.Shaikh (Bhojpuri)42.Mali43.Rastogi44.Patari45.Bhuiyar46.Jains (Maithili)47.Pahari Nagarkotis48.Baniya49.Kanu50.Jaine51.Surel52.Dhobi53.Barae54.Bhediyar55.Nalband56.Sudhi57.Dhunia58.Banpar59.Haluwai60.Makalu Sherpa61.Puma62.Camma63.Churaute64.Marwadi65.Tseku66.Kayastha67.Nurang68.Bodo69.Hindu Santarash70.Gangai71.Mallah72.Dhamin73.Jogi (Angika)74.Rajdhop75.Sahisia76.Shershabadia77.Gandharv78.Mukeri79.Tilli80.Jadupetia81.Kadar82.Dhekaro83.Modaks84.Tikulhara85.Jarkhandi Hajjam86.Nagbansi87.Turuk Pasi88.Jarkhandi Julaha89.Gadihar90.Sukiyar91.Puran92.Jharkhandi Nai + + + + Unengaged People Groups + Unengaged of North India + Nepal + + + CountriesIndia · NepalAdministrative AreasUttarākhand · Uttar Pradesh · Bihār · Jhārkhand · DelhiPeople groups92 UPGSeriesList of 100 UPG's · map 3 of 28“But when he saw the multitudes, he was moved with compassion for them because they were harassed and scattered, like sheep without a shepherd.” MATTHEW 9:36Jesus’ Strategy to Feed the 5000What is a Prayer List of 100 UPG?Jesus’ disciples faced a similar challenge: “How can we feed so many with only five loaves and two fish?” Jesusfed the 5,000 by supernaturally multiplying that small offering — and His answer holds the key to our people-groupsproblem.Through radical faith and miracle-expectant prayer, He focused on the few in front of Him — dividing the crowd andentrusting faithful men and women to serve the most strategic groups of fifties and hundreds (Mark 6:40).This map is one of a 30-map set called the List of 100 UPG's — a large, overwhelming target in the thousands,organised into clear groupings and displayed on maps and prayer lists.Each map comes with a prayer list of its fifty to a hundred people groups — their names, a representative photo, andmore detail — to mobilise informed intercession. + How can we multiply indigenous disciples, churches and leaders among all these people groups — and get the gospel into their own language?Start with Prayer!1 · Thirty disciples. Each follower of Jesus takestheir own map and prayer list, and sets apart a placeto pray — some have hung a people-group map overtheir bed.2 · Thirty churches. Each church dedicates a wall inone of its places of prayer, and keeps copies of theprayer list available for distribution.3 · Thirty indigenous leaders. Find leaders on theground in these areas and give them the map andprayer list, to raise awareness of their unengagedneighbours. + + + + + “And they sat down in groups, by hundreds and by fifties.” Mark 6:40 + + + +
\ No newline at end of file diff --git a/data/posters/asia-india-west-bengal.html b/data/posters/asia-india-west-bengal.html new file mode 100644 index 000000000..21571eee4 --- /dev/null +++ b/data/posters/asia-india-west-bengal.html @@ -0,0 +1,355 @@ + +Northeast India + Bangladesh + Bhutan — UPG poster +
+ + + + + + + + + + + + + + + BAY OF BENGALUttar PradeshUttar PradeshChhattīsgarhChhattīsgarhOdishaOdishaBihārBihārAndhra PradeshAndhra PradeshJhārkhandJhārkhandYunnan ProvinceYunnan ProvinceSichuan ProvinceSichuan ProvinceTibet Autonomous RegionTibet Autonomous RegionQinghai ProvinceQinghai ProvinceWest BengalWest BengalArunāchal PradeshArunāchal PradeshMeghālayaMeghālayaAssamAssamManipurManipurCHINACHINAINDIAINDIAMYANMARMYANMARBANGLADESHBANGLADESHNEPALNEPALTHAILANDTHAILANDBHUTANBHUTANLAOSLAOSDhakaChattogramPatnaKhulnaRanchiBhubaneshwarShillongAizawlBarishalJamalpurKohimaItanagarParoNaypyidawKathmanduMandalayChiang MaiLhasaPokharaBiratnagarSittweTaunggyiMyitkyinaMagwayChiang RaiMarker positions are approximate · people-group locations are generalised at the source for privacyMarker positions are approximate · people-group locations are generalised at the source for privacyGenerated 2026-09-24 · data from doxa.lifeGenerated 2026-09-24 · data from doxa.life© geoBoundaries (CC BY 4.0)© geoBoundaries (CC BY 4.0) + + 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586871.Brokkat2.Lunape3.Lakha4.Nupbi5.Nyenpa6.Ole7.Deaf Bhutanese8.Doya9.Yakha10.Bhujel11.Sunuwar12.Banai13.Dhimal14.Dalu15.Sabar16.Kurol17.Mahisyadas18.Koda19.Bhalla20.Kapuria21.Dhal Kstriya22.Angarok23.Bhakta24.Baida25.Paharia26.Tamboli (Bengali)27.Chunari28.Bagti29.Baisya30.Khairwar (Bengali)31.Byadh32.Khatik (Bengali)33.Kakmara34.Jains (Bengali)35.Sutradhar36.Pinjara, Dhunia (Bengali)37.Ansari-Momin (Bengali)38.Mirshikar39.Siyalgar40.Ghazi41.Tripuri Kumhar42.Kasar (Bengali)43.Hajjam (Bengali)44.Khalifa45.Kurtop46.Matpa47.Dzalakha48.Chali49.Gongduk50.Na51.Momba52.Khowa53.Serdukpen54.Khamba55.Taiphake56.Teli (Assamese)57.Khamyang58.Man59.Zakhrin60.Bilaspuri61.Matak62.Chamar (Assamese)63.Kumhar (Assamese)64.Turun65.Mukhi66.Aiton67.Namasudra (Assamese)68.Maria Muslims69.Nai (Assamese)70.Dalu71.Koiren72.Pangans73.Lois74.Yatibi75.Thanga76.Sudra Das77.Hajjam (Assamese)78.Barua79.Bajandar80.Malakar81.Kanda82.Saha83.Banik Bania84.Haluadas85.Ushoi86.Shabdakar87.Tripuri Namasudra + + + + Unengaged People Groups + Unengaged of Northeast India + Bangladesh + Bhutan + + + CountriesBangladesh · Bhutan · IndiaAdministrative AreasWest Bengal · Sikkim · Meghālaya · Assam · Arunāchal Pradesh · ManipurTripura · Bangladesh · BhutanPeople groups87 UPGSeriesList of 100 UPG's · map 7 of 28“But when he saw the multitudes, he was moved with compassion for them because they were harassed and scattered, like sheep without a shepherd.” MATTHEW 9:36Jesus’ Strategy to Feed the 5000What is a Prayer List of 100 UPG?Jesus’ disciples faced a similar challenge: “How can we feed so many with only five loaves and two fish?” Jesusfed the 5,000 by supernaturally multiplying that small offering — and His answer holds the key to our people-groupsproblem.Through radical faith and miracle-expectant prayer, He focused on the few in front of Him — dividing the crowd andentrusting faithful men and women to serve the most strategic groups of fifties and hundreds (Mark 6:40).This map is one of a 30-map set called the List of 100 UPG's — a large, overwhelming target in the thousands,organised into clear groupings and displayed on maps and prayer lists.Each map comes with a prayer list of its fifty to a hundred people groups — their names, a representative photo, andmore detail — to mobilise informed intercession. + How can we multiply indigenous disciples, churches and leaders among all these people groups — and get the gospel into their own language?Start with Prayer!1 · Thirty disciples. Each follower of Jesus takestheir own map and prayer list, and sets apart a placeto pray — some have hung a people-group map overtheir bed.2 · Thirty churches. Each church dedicates a wall inone of its places of prayer, and keeps copies of theprayer list available for distribution.3 · Thirty indigenous leaders. Find leaders on theground in these areas and give them the map andprayer list, to raise awareness of their unengagedneighbours. + + + + + “And they sat down in groups, by hundreds and by fifties.” Mark 6:40 + + + +
\ No newline at end of file diff --git a/data/posters/brazil.html b/data/posters/brazil.html new file mode 100644 index 000000000..c5d034725 --- /dev/null +++ b/data/posters/brazil.html @@ -0,0 +1,355 @@ + +Brazil — UPG poster +
+ + + + + + + + + + + + + + + ATLANTIC OCEANBRAZILBRAZILPERUPERUCOLOMBIACOLOMBIABOLIVIABOLIVIAVENEZUELAVENEZUELAPARAGUAYPARAGUAYECUADORECUADORGUYANAGUYANAPANAMAPANAMABrasiliaSao PauloRio de JaneiroPorto AlegreRecifeSalvadorCuritibaBelemManausVitoriaSao LuisFlorianopolisTeresinaCuiabaCampo GrandeAracajuMacapaPorto VelhoPalmasBoa VistaGuairaBuenos AiresLimaBogotaSantiagoCaracasMarker positions are approximate · people-group locations are generalised at the source for privacyMarker positions are approximate · people-group locations are generalised at the source for privacyGenerated 2026-09-24 · data from doxa.lifeGenerated 2026-09-24 · data from doxa.life© geoBoundaries (CC BY 4.0)© geoBoundaries (CC BY 4.0) + + 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031.Pemon2.Uncontacted of Jatapu3.Waimiri-Atroari4.Kubeo5.Yabaana6.Amazonas Arara7.Arapaso8.Desana9.Tariano10.Piratapuyo11.Miriti-Tapuia12.Carapana13.Northern Barasano14.Mandahuaca15.Makuna16.Kaixana17.Tora18.Katukina of Rio Bia19.Korubo20.Nawa21.Suruwaha22.Katukina-Jutaí23.Nukuini24.Acre Arara25.Yawanawa26.Sharanahua27.Sapanawas28.Piraha29.Morerebi30.Diahoi31.Karipuna of Rondônia32.Uru-Pa-In33.Amundava34.Uraparaquara35.Uncontacted ofMadeirinha36.Itogapuk37.Arua38.Wayoro39.Uncontacted of Bararati40.Arikapu41.Paranawat42.Sakiriabar43.Yakarawakta44.Uncontacted of Serra doTaquaral45.Kwaza46.Enawenê-Nawê47.Maimande48.Sabanes49.Mynky50.Kabixi-Txapakura51.Guato52.Chamacocos53.Saluma54.Kaxuyana55.Sikiana56.Animpokoimo57.Zoe58.Apama59.Uncontacted of Mapuera60.Uncontacted of Cumina61.Uncontacted of Parauari62.Wokarangma63.Asurini Xingu64.Anambe65.Amanaye66.Arawete67.Kreye68.Pitaguari69.Paiaku70.Para Gaviao71.Xambioa72.Uncontacted of TelesPires73.Pankara74.Koiupanka75.Katokinn76.Tingui-Boto77.Javaé78.Uncontacted of RioLiberdade79.Kalapalo80.Uncontacted of RioTapirape81.Tupinamba82.Pataxo-Hahahai83.Mehinaku84.Txikao85.Ava-Canoeiro86.Suya87.Krenak88.Kuikuro89.Tapayuna90.Waura91.Kaxixó92.Tapuia93.Yawalapiti94.Naruvotu95.Nahukwa96.Trumai97.Aweti98.Apiaka99.Matipu100.Irantxe101.Bororo102.Ofayé103.Kamba + + + + Unengaged People Groups + Unengaged of Brazil + + + CountriesBrazilAdministrative AreasBrazilPeople groups103 UPGSeriesList of 100 UPG's · map 19 of 28“But when he saw the multitudes, he was moved with compassion for them because they were harassed and scattered, like sheep without a shepherd.” MATTHEW 9:36Jesus’ Strategy to Feed the 5000What is a Prayer List of 100 UPG?Jesus’ disciples faced a similar challenge: “How can we feed so many with only five loaves and two fish?” Jesusfed the 5,000 by supernaturally multiplying that small offering — and His answer holds the key to our people-groupsproblem.Through radical faith and miracle-expectant prayer, He focused on the few in front of Him — dividing the crowd andentrusting faithful men and women to serve the most strategic groups of fifties and hundreds (Mark 6:40).This map is one of a 30-map set called the List of 100 UPG's — a large, overwhelming target in the thousands,organised into clear groupings and displayed on maps and prayer lists.Each map comes with a prayer list of its fifty to a hundred people groups — their names, a representative photo, andmore detail — to mobilise informed intercession. + How can we multiply indigenous disciples, churches and leaders among all these people groups — and get the gospel into their own language?Start with Prayer!1 · Thirty disciples. Each follower of Jesus takestheir own map and prayer list, and sets apart a placeto pray — some have hung a people-group map overtheir bed.2 · Thirty churches. Each church dedicates a wall inone of its places of prayer, and keeps copies of theprayer list available for distribution.3 · Thirty indigenous leaders. Find leaders on theground in these areas and give them the map andprayer list, to raise awareness of their unengagedneighbours. + + + + + “And they sat down in groups, by hundreds and by fifties.” Mark 6:40 + + + +
\ No newline at end of file diff --git a/data/posters/central-africa.html b/data/posters/central-africa.html new file mode 100644 index 000000000..0ff9d1b97 --- /dev/null +++ b/data/posters/central-africa.html @@ -0,0 +1,355 @@ + +Central Africa — UPG poster +
+ + + + + + + + + + + + + + + GULF OF GUINEARED SEADR CONGODR CONGOSUDANSUDANANGOLAANGOLANIGERNIGERCHADCHADNIGERIANIGERIAZAMBIAZAMBIACENTRAL AFRICAN REPUBLICCENTRAL AFRICAN REPUBLICSOUTH SUDANSOUTH SUDANTANZANIATANZANIAMALIMALIMOZAMBIQUEMOZAMBIQUECONGOCONGOETHIOPIAETHIOPIANAMIBIANAMIBIAKENYAKENYABURKINA FASOBURKINA FASOZIMBABWEZIMBABWEGABONGABONALGERIAALGERIAUGANDAUGANDAGHANAGHANAMALAWIMALAWILIBYALIBYABENINBENINCÔTE D'IVOIRECÔTE D'IVOIREERITREAERITREAEQUATORIAL GUINEAEQUATORIAL GUINEALagosLubumbashiMbuji-MayiBenin CityIlorinSokotoEnuguPointe-NoireKisanganiBamendaGarouaBukavuKatsinaKolweziMbandakaKinduMatadiNgaoundereBertouaBataBandunduPort-GentilMbaikiBossangoaBambariMarker positions are approximate · people-group locations are generalised at the source for privacyMarker positions are approximate · people-group locations are generalised at the source for privacyGenerated 2026-09-24 · data from doxa.lifeGenerated 2026-09-24 · data from doxa.life© geoBoundaries (CC BY 4.0)© geoBoundaries (CC BY 4.0) + + 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960611.Kubi2.Geruma3.Tsagu4.Ruhu5.Dirya6.Taura7.Shanga8.Dendi9.Baangi10.Lopa11.Shani12.Jimbin13.Laru14.Koro Nulu15.Tuyaa16.Ukaan17.Gwa18.Uneme19.Koro Zuba20.Okpamheri21.Engenni22.Kariya23.Epie24.Kadung25.Degema26.Ibuoro27.Pa'a28.Osatu29.Deaf Equatoguineans30.Ndemli31.Deaf Gabonese32.Manga Kanuri33.Duwai34.Barke35.Jimi36.Maha37.Jina38.Deno39.Dek40.Majera41.Kupto42.Kirifi43.Nyam44.Pam45.Dulbu46.Tagbo47.Sere48.Kango-Likango49.Kango-Dikango50.Southern Ngbandi51.Deaf Central Africans52.Central Swahili53.Ndunga54.Vute55.Cung56.Gbaya57.Yulu-Binga58.Deaf Cameroonians59.Minduumo60.Deaf Congolese61.Deaf Congolese + + + + Unengaged People Groups + Unengaged of Central Africa + + + CountriesCameroon · Central African Republic · Congo · DR Congo · Equatorial GuineaGabon · NigeriaAdministrative AreasCentral AfricaPeople groups61 UPGSeriesList of 100 UPG's · map 14 of 28“But when he saw the multitudes, he was moved with compassion for them because they were harassed and scattered, like sheep without a shepherd.” MATTHEW 9:36Jesus’ Strategy to Feed the 5000What is a Prayer List of 100 UPG?Jesus’ disciples faced a similar challenge: “How can we feed so many with only five loaves and two fish?” Jesusfed the 5,000 by supernaturally multiplying that small offering — and His answer holds the key to our people-groupsproblem.Through radical faith and miracle-expectant prayer, He focused on the few in front of Him — dividing the crowd andentrusting faithful men and women to serve the most strategic groups of fifties and hundreds (Mark 6:40).This map is one of a 30-map set called the List of 100 UPG's — a large, overwhelming target in the thousands,organised into clear groupings and displayed on maps and prayer lists.Each map comes with a prayer list of its fifty to a hundred people groups — their names, a representative photo, andmore detail — to mobilise informed intercession. + How can we multiply indigenous disciples, churches and leaders among all these people groups — and get the gospel into their own language?Start with Prayer!1 · Thirty disciples. Each follower of Jesus takestheir own map and prayer list, and sets apart a placeto pray — some have hung a people-group map overtheir bed.2 · Thirty churches. Each church dedicates a wall inone of its places of prayer, and keeps copies of theprayer list available for distribution.3 · Thirty indigenous leaders. Find leaders on theground in these areas and give them the map andprayer list, to raise awareness of their unengagedneighbours. + + + + + “And they sat down in groups, by hundreds and by fifties.” Mark 6:40 + + + +
\ No newline at end of file diff --git a/data/posters/deaf.html b/data/posters/deaf.html new file mode 100644 index 000000000..d292aec1b --- /dev/null +++ b/data/posters/deaf.html @@ -0,0 +1,355 @@ + +Deaf (affinity bloc A017) — UPG poster +
+ + + + + + + + + + + + + + + ATLANTIC OCEANMEDITERRANEAN SEAGULF OF GUINEARED SEAARABIAN SEAINDIAN OCEANBAY OF BENGALSOUTH CHINA SEACORAL SEALadākhLadākhRUSSIARUSSIACHINACHINAUNITED STATESUNITED STATESINDIAINDIAKAZAKHSTANKAZAKHSTANBRAZILBRAZILALGERIAALGERIAMONGOLIAMONGOLIASAUDI ARABIASAUDI ARABIAIRANIRANMALIMALISUDANSUDANDR CONGODR CONGOSWEDENSWEDENETHIOPIAETHIOPIAVENEZUELAVENEZUELAUZBEKISTANUZBEKISTANINDONESIAINDONESIATHAILANDTHAILANDTURKEYTURKEYNIGERIANIGERIAFINLANDFINLANDSPAINSPAINJAPANJAPANLAOSLAOSBELARUSBELARUSCUBACUBAPAPUA NEW GUINEAPAPUA NEW GUINEAICELANDICELANDNEPALNEPALCZECHIACZECHIAAstanaRoseauKarachiAdenAhvazHamhungTangierGoteborgHomyelShymkentVarnaAqtobeSaint-LouisAnuradhapuraSabhaUmeaAkureyriTokyoMexico CityDhakaBeijingManilaMarker positions are approximate · people-group locations are generalised at the source for privacyMarker positions are approximate · people-group locations are generalised at the source for privacyGenerated 2026-09-24 · data from doxa.lifeGenerated 2026-09-24 · data from doxa.life© geoBoundaries (CC BY 4.0)© geoBoundaries (CC BY 4.0) + + 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657581.Deaf Svalbardians2.Deaf Swedes3.Deaf Bulgarians4.Deaf Faroese5.Deaf Liechtensteiners6.Deaf Icelanders7.Deaf Bosnians8.Deaf Luxembourgers9.Deaf Kosovar10.Deaf Guernsey Islanders11.Deaf Jersey Islanders12.Deaf Sammarinese13.Deaf Monacans14.Deaf Greeks15.Deaf Maltese16.Deaf Algerians17.Deaf Gibraltarians18.Deaf Bermudians19.Deaf British VirginIslanders20.Deaf American VirginIslanders21.Deaf Saint Barth22.Deaf Guadeloupeans23.Deaf Montserratians24.Deaf Dominicans25.Deaf Moroccans26.Deaf Sahrawis27.Deaf Mauritanians28.Deaf Libyans29.Deaf Saint Helenians30.Deaf Belarusians31.Deaf Cypriots32.Deaf Lebanese33.Deaf Syrians34.Deaf Georgians35.Deaf Armenians36.Deaf Jordanians37.Deaf Azerbaijanis38.Deaf Iraqis39.Deaf Iranians40.Deaf Kyrgyzstanis41.Deaf Kazakhstanis42.Deaf Tajikistanis43.Deaf Afghans44.Deaf Koreans45.Deaf Pakistanis46.Deaf Kuwaitis47.Deaf Palestinian Arabs48.Deaf of Hong Kong49.Deaf of Macao50.Deaf Qataris51.Deaf Omanis52.Deaf Bahrainis53.Deaf Sri Lankans54.Deaf Emiratis55.Deaf Maldivans56.Deaf Saudi Arabians57.Deaf Israelis58.Deaf Yemenis + + + + Unengaged People Groups + Unengaged of Deaf (affinity bloc A017) + + + CountriesAfghanistan · Algeria · Armenia · Azerbaijan · Bahrain · Belarus · BermudaBosnia and Herzegovina · British Virgin Islands · Bulgaria · Cyprus · DominicaESH · Faroe Islands · Georgia · GIB · Greece · Guadeloupe · Guernsey · HKGIceland · Iran · Iraq · Israel · JEY · Jordan · Kazakhstan · KOS · KuwaitKyrgyzstan · Lebanon · Libya · Liechtenstein · Luxembourg · MAC · MaldivesMalta · Mauritania · MCO · Montserrat · Morocco · North Korea · OmanPakistan · Palestine · Qatar · Saint Barthélemy · Saint Helena · San MarinoSaudi Arabia · SJM · Sri Lanka · Sweden · Syria · TajikistanU.S. Virgin Islands · United Arab Emirates · YemenAdministrative AreasDeaf (affinity bloc A017)People groups58 UPGSeriesList of 100 UPG's · map 24 of 28“But when he saw the multitudes, he was moved with compassion for them because they were harassed and scattered, like sheep without a shepherd.” MATTHEW 9:36Jesus’ Strategy to Feed the 5000What is a Prayer List of 100 UPG?Jesus’ disciples faced a similar challenge: “How can we feed so many with only five loaves and two fish?” Jesusfed the 5,000 by supernaturally multiplying that small offering — and His answer holds the key to our people-groupsproblem.Through radical faith and miracle-expectant prayer, He focused on the few in front of Him — dividing the crowd andentrusting faithful men and women to serve the most strategic groups of fifties and hundreds (Mark 6:40).This map is one of a 30-map set called the List of 100 UPG's — a large, overwhelming target in the thousands,organised into clear groupings and displayed on maps and prayer lists.Each map comes with a prayer list of its fifty to a hundred people groups — their names, a representative photo, andmore detail — to mobilise informed intercession. + How can we multiply indigenous disciples, churches and leaders among all these people groups — and get the gospel into their own language?Start with Prayer!1 · Thirty disciples. Each follower of Jesus takestheir own map and prayer list, and sets apart a placeto pray — some have hung a people-group map overtheir bed.2 · Thirty churches. Each church dedicates a wall inone of its places of prayer, and keeps copies of theprayer list available for distribution.3 · Thirty indigenous leaders. Find leaders on theground in these areas and give them the map andprayer list, to raise awareness of their unengagedneighbours. + + + + + “And they sat down in groups, by hundreds and by fifties.” Mark 6:40 + + + +
\ No newline at end of file diff --git a/data/posters/east-africa.html b/data/posters/east-africa.html new file mode 100644 index 000000000..3529c1c23 --- /dev/null +++ b/data/posters/east-africa.html @@ -0,0 +1,355 @@ + +East Africa — UPG poster +
+ + + + + + + + + + + + + + + RED SEAINDIAN OCEANARABIAN SEADR CONGODR CONGOSUDANSUDANSAUDI ARABIASAUDI ARABIAETHIOPIAETHIOPIASOMALIASOMALIATANZANIATANZANIAZAMBIAZAMBIACHADCHADSOUTH SUDANSOUTH SUDANMOZAMBIQUEMOZAMBIQUECENTRAL AFRICAN REPUBLICCENTRAL AFRICAN REPUBLICANGOLAANGOLAKENYAKENYAYEMENYEMENOMANOMANLIBYALIBYAEGYPTEGYPTERITREAERITREAUGANDAUGANDAZIMBABWEZIMBABWENAMIBIANAMIBIAUNITED ARAB EMIRATESUNITED ARAB EMIRATESCONGOCONGODJIBOUTIDJIBOUTIQATARQATARNairobiDar es SalaamDodomaMombasaMoshiMwanzaMbaleMbeyaAruaDeseHararKigomaMalakalGonderTaboraAwasaWauSongeaJawharAssabMtwaraMekeleSumbawangaMbararaDebre MarkosMarker positions are approximate · people-group locations are generalised at the source for privacyMarker positions are approximate · people-group locations are generalised at the source for privacyGenerated 2026-09-24 · data from doxa.lifeGenerated 2026-09-24 · data from doxa.life© geoBoundaries (CC BY 4.0)© geoBoundaries (CC BY 4.0) + + 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495961.Beni Shangul2.Begi-Mao3.Seze4.Mocha5.North Koma6.Anfillo7.Sheko8.Central Koma9.Shabo10.Opuua Shita11.Mesengo12.Nuer13.Thuri14.Viri15.Ngalgulgule16.Ajja17.Bari Bai18.Kresh19.Banda-Mbres20.Beli21.Sopi22.Suri23.Nyamusa24.Homa25.Gberi26.Mongallese Arabs27.Kadiro28.Pari29.Olubogo30.Kaliko31.Jiye32.Narin33.Nubi34.Kebu35.Donyiro36.Amba37.Karo38.Hima39.Daasanach40.Reshiat41.Swahili42.Padhola43.Vinza44.Jita45.Kuria46.Konongo47.Goroa48.Wasi49.Tigre50.Beja51.Mensa52.Nara53.Bilen54.Deaf Eritreans55.Saho56.Afar57.Xamir58.Ethiopian Jews59.Deaf Djiboutians60.Kereyu61.Mareko62.Hararghe Oromo63.Kebena64.Male65.Gollango66.Ale67.Tsamai68.Yidinit69.Harso70.Dobase71.Dihina72.Arbore73.Digil-Rahanweyn74.Garre75.Deaf Somalis76.Jiiddu77.Dabarre78.Tunni79.Gosha80.Mushungulu81.Bantu Swahili82.Tharaka83.Upper Pokomo84.Dahalo85.Warday86.Sanye (Waata)87.Tumbatu88.Zigua89.Shirazi90.Ndengereko91.Kami92.Sagara93.Rufiji94.Mwera95.Makua96.Yao + + + + Unengaged People Groups + Unengaged of East Africa + + + CountriesDjibouti · Eritrea · Ethiopia · Kenya · Somalia · South Sudan · TanzaniaUgandaAdministrative AreasEast AfricaPeople groups96 UPGSeriesList of 100 UPG's · map 13 of 28“But when he saw the multitudes, he was moved with compassion for them because they were harassed and scattered, like sheep without a shepherd.” MATTHEW 9:36Jesus’ Strategy to Feed the 5000What is a Prayer List of 100 UPG?Jesus’ disciples faced a similar challenge: “How can we feed so many with only five loaves and two fish?” Jesusfed the 5,000 by supernaturally multiplying that small offering — and His answer holds the key to our people-groupsproblem.Through radical faith and miracle-expectant prayer, He focused on the few in front of Him — dividing the crowd andentrusting faithful men and women to serve the most strategic groups of fifties and hundreds (Mark 6:40).This map is one of a 30-map set called the List of 100 UPG's — a large, overwhelming target in the thousands,organised into clear groupings and displayed on maps and prayer lists.Each map comes with a prayer list of its fifty to a hundred people groups — their names, a representative photo, andmore detail — to mobilise informed intercession. + How can we multiply indigenous disciples, churches and leaders among all these people groups — and get the gospel into their own language?Start with Prayer!1 · Thirty disciples. Each follower of Jesus takestheir own map and prayer list, and sets apart a placeto pray — some have hung a people-group map overtheir bed.2 · Thirty churches. Each church dedicates a wall inone of its places of prayer, and keeps copies of theprayer list available for distribution.3 · Thirty indigenous leaders. Find leaders on theground in these areas and give them the map andprayer list, to raise awareness of their unengagedneighbours. + + + + + “And they sat down in groups, by hundreds and by fifties.” Mark 6:40 + + + +
\ No newline at end of file diff --git a/data/posters/europe.html b/data/posters/europe.html new file mode 100644 index 000000000..395879d04 --- /dev/null +++ b/data/posters/europe.html @@ -0,0 +1,355 @@ + +Europe — UPG poster +
+ + + + + + + + + + + + + + + MEDITERRANEAN SEARED SEAARABIAN SEAChhattīsgarhChhattīsgarhRājasthānRājasthānHunan ProvinceHunan ProvinceSichuan ProvinceSichuan ProvinceRUSSIARUSSIACHINACHINAKAZAKHSTANKAZAKHSTANINDIAINDIAMONGOLIAMONGOLIAIRANIRANALGERIAALGERIASAUDI ARABIASAUDI ARABIAPAKISTANPAKISTANLIBYALIBYASWEDENSWEDENUZBEKISTANUZBEKISTANAFGHANISTANAFGHANISTANTURKEYTURKEYFINLANDFINLANDIRAQIRAQSPAINSPAINMYANMARMYANMARMOROCCOMOROCCOBELARUSBELARUSMALIMALINIGERNIGERTAJIKISTANTAJIKISTANSUDANSUDANOMANOMANTUNISIATUNISIABULGARIABULGARIAGEORGIAGEORGIACZECHIACZECHIAVIETNAMVIETNAMARMENIAARMENIAISRAELISRAELBHUTANBHUTANKUWAITKUWAITCYPRUSCYPRUSMoscowAnkaraStockholmHelsinkiTiranaBarcelonaSt. PetersburgIzmirNovosibirskYekaterinburgNizhny NovgorodSamaraOmskRostovGaziantepUfaKrasnoyarskVoronezhTrabzonIrkutskGoteborgOstravaKirovKaliningradBryanskMarker positions are approximate · people-group locations are generalised at the source for privacyMarker positions are approximate · people-group locations are generalised at the source for privacyGenerated 2026-09-24 · data from doxa.lifeGenerated 2026-09-24 · data from doxa.life© geoBoundaries (CC BY 4.0)© geoBoundaries (CC BY 4.0) + + 12345678910111213141516171819202122232425262728293031323334351.Finnish Lapp2.Northern Saami3.Chamalal4.Akkin5.Karata6.Avar7.Doms8.Bosniaks9.Jews10.Turks11.Gorani12.Gorani13.Spanish Jews14.Pomak15.Alawites16.Nash Didan17.Jew, Kurdistani18.Negev Bedouins19.Mountain Mari20.Mansi21.Meadow Mari22.Dolgans23.Batlukh-Gid Avar24.Andi25.Evenk26.Soyot27.Even28.Muirin Dargin29.Khwarshi30.Tindi31.Bagvalal32.Agul33.Kaitag34.Akhwakh35.Botlikh + + + + Unengaged People Groups + Unengaged of Europe + + + CountriesAlbania · Czechia · Finland · Israel · KOS · Montenegro · Russia · SpainSweden · TurkeyAdministrative AreasEuropePeople groups35 UPGSeriesList of 100 UPG's · map 27 of 28“But when he saw the multitudes, he was moved with compassion for them because they were harassed and scattered, like sheep without a shepherd.” MATTHEW 9:36Jesus’ Strategy to Feed the 5000What is a Prayer List of 100 UPG?Jesus’ disciples faced a similar challenge: “How can we feed so many with only five loaves and two fish?” Jesusfed the 5,000 by supernaturally multiplying that small offering — and His answer holds the key to our people-groupsproblem.Through radical faith and miracle-expectant prayer, He focused on the few in front of Him — dividing the crowd andentrusting faithful men and women to serve the most strategic groups of fifties and hundreds (Mark 6:40).This map is one of a 30-map set called the List of 100 UPG's — a large, overwhelming target in the thousands,organised into clear groupings and displayed on maps and prayer lists.Each map comes with a prayer list of its fifty to a hundred people groups — their names, a representative photo, andmore detail — to mobilise informed intercession. + How can we multiply indigenous disciples, churches and leaders among all these people groups — and get the gospel into their own language?Start with Prayer!1 · Thirty disciples. Each follower of Jesus takestheir own map and prayer list, and sets apart a placeto pray — some have hung a people-group map overtheir bed.2 · Thirty churches. Each church dedicates a wall inone of its places of prayer, and keeps copies of theprayer list available for distribution.3 · Thirty indigenous leaders. Find leaders on theground in these areas and give them the map andprayer list, to raise awareness of their unengagedneighbours. + + + + + “And they sat down in groups, by hundreds and by fifties.” Mark 6:40 + + + +
\ No newline at end of file diff --git a/data/posters/laos.html b/data/posters/laos.html new file mode 100644 index 000000000..81dc0802b --- /dev/null +++ b/data/posters/laos.html @@ -0,0 +1,355 @@ + +Laos — UPG poster +
+ + + + + + + + + + + + + + + BAY OF BENGALSOUTH CHINA SEAHainan ProvinceHainan ProvinceGuangxi Zhuang Autonomous RegionGuangxi Zhuang Autonomous RegionYunnan ProvinceYunnan ProvinceGuizhou ProvinceGuizhou ProvinceVIETNAMVIETNAMTHAILANDTHAILANDCHINACHINALAOSLAOSMYANMARMYANMARCAMBODIACAMBODIAVientianeLouangphrabangSavannakhetThakhekXam NuaXaignabouriBan HouayxayBangkokHanoiPhnom PenhKunmingNanningHaiphongDa NangHueQui NhonVinhThai NguyenMawlamyineNha TrangChiang MaiBuon Me ThuotNakhon RatchasimaUbon RatchathaniDa LatKhon KaenMarker positions are approximate · people-group locations are generalised at the source for privacyMarker positions are approximate · people-group locations are generalised at the source for privacyGenerated 2026-09-24 · data from doxa.lifeGenerated 2026-09-24 · data from doxa.life© geoBoundaries (CC BY 4.0)© geoBoundaries (CC BY 4.0) + + 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394951.Phongset2.Tchaho3.Pana4.Akha Ker5.Phunoi6.Akha Muji7.Akha Nuver8.Poumong9.Akha Piso10.Phongku11.Bit12.Akha Eurba13.Poussang14.Tai Loi15.Akha Jowhoi16.Akha Jipea17.Akha Jijor18.Akha Luma19.Akha20.Sida21.Khuen22.Tamoy23.Pouhoy24.Yang25.Nguan26.Lamet27.Northern Thai28.Kongsat29.Sila30.Akha Pala31.Tayten32.Phai33.Mlabri34.Xingmoun Kor35.Xingmoun Laomai36.Tai Sam37.Pong Poong38.Pong Seng39.Tai Peung40.Pong Phen41.Tai Laan42.Pong Puang43.O'du44.Deaf Laotians45.Mon46.Singmoon47.Kuan48.Tai He49.Red Thai50.Tai Khang51.Pong52.Hung53.Tai Men54.Thai Ae55.Thai Toum56.Khatavueng57.Bo58.Aheu59.Arem60.Maleng61.Phutai Kata62.Nguon63.Yoy64.Chut65.Kri66.Khua67.Phuthai Angkham68.Cali69.Ta-Oy Ralok70.Ta-Oy Pras71.Ir72.Khlor73.Katu Adek74.Katong75.Katu Hanna76.Ta-Oy Tamla77.Katu Triew78.Laoseng79.Alak80.Sapuan81.Laven82.Kasseng83.Katu Dark Kang84.Halang Doan85.Jeng86.Lawi87.Salang88.Nyahon89.Brao90.Oy Kamsang91.Tahanag92.Sou93.Tong94.Salao95.Kate + + + + Unengaged People Groups + Unengaged of Laos + + + CountriesLaosAdministrative AreasLaosPeople groups95 UPGSeriesList of 100 UPG's · map 16 of 28“But when he saw the multitudes, he was moved with compassion for them because they were harassed and scattered, like sheep without a shepherd.” MATTHEW 9:36Jesus’ Strategy to Feed the 5000What is a Prayer List of 100 UPG?Jesus’ disciples faced a similar challenge: “How can we feed so many with only five loaves and two fish?” Jesusfed the 5,000 by supernaturally multiplying that small offering — and His answer holds the key to our people-groupsproblem.Through radical faith and miracle-expectant prayer, He focused on the few in front of Him — dividing the crowd andentrusting faithful men and women to serve the most strategic groups of fifties and hundreds (Mark 6:40).This map is one of a 30-map set called the List of 100 UPG's — a large, overwhelming target in the thousands,organised into clear groupings and displayed on maps and prayer lists.Each map comes with a prayer list of its fifty to a hundred people groups — their names, a representative photo, andmore detail — to mobilise informed intercession. + How can we multiply indigenous disciples, churches and leaders among all these people groups — and get the gospel into their own language?Start with Prayer!1 · Thirty disciples. Each follower of Jesus takestheir own map and prayer list, and sets apart a placeto pray — some have hung a people-group map overtheir bed.2 · Thirty churches. Each church dedicates a wall inone of its places of prayer, and keeps copies of theprayer list available for distribution.3 · Thirty indigenous leaders. Find leaders on theground in these areas and give them the map andprayer list, to raise awareness of their unengagedneighbours. + + + + + “And they sat down in groups, by hundreds and by fifties.” Mark 6:40 + + + +
\ No newline at end of file diff --git a/data/posters/maghreb-egypt.html b/data/posters/maghreb-egypt.html new file mode 100644 index 000000000..9bf1142dd --- /dev/null +++ b/data/posters/maghreb-egypt.html @@ -0,0 +1,355 @@ + +Maghreb + Egypt — UPG poster +
+ + + + + + + + + + + + + + + ATLANTIC OCEANMEDITERRANEAN SEARED SEAALGERIAALGERIAMALIMALIMOROCCOMOROCCOSUDANSUDANSAUDI ARABIASAUDI ARABIALIBYALIBYANIGERNIGERCHADCHADMAURITANIAMAURITANIATURKEYTURKEYEGYPTEGYPTSPAINSPAINETHIOPIAETHIOPIAIRANIRANNIGERIANIGERIARUSSIARUSSIAYEMENYEMENERITREAERITREACAMEROONCAMEROONSYRIASYRIATUNISIATUNISIAGUINEAGUINEAGREECEGREECESENEGALSENEGALJORDANJORDANAZERBAIJANAZERBAIJANBULGARIABULGARIAGHANAGHANAKUWAITKUWAITCYPRUSCYPRUSTunisNouakchottBanghaziFezMarrakeshIsmailiaConstantineSohagMisratahNemaTiaratOuarglaBecharGoulimineMatruhAd DakhlaTamanrassetKiffaMarzuqAtarHunMadridBaghdadKhartoumRiyadhAnkaraMarker positions are approximate · people-group locations are generalised at the source for privacyMarker positions are approximate · people-group locations are generalised at the source for privacyGenerated 2026-09-24 · data from doxa.lifeGenerated 2026-09-24 · data from doxa.life© geoBoundaries (CC BY 4.0)© geoBoundaries (CC BY 4.0) + + 123456789101112131415161718192021222324252627282930313233343536373839404142431.Ruarha Bedouins2.Chenoua3.Nail Bedouin4.Menasser Imazighen5.Laguat Bedouin6.Mzab7.Sidi Bedouins8.Ghomara Imazighen9.Moroccan Jews10.Chamba Bedouin11.Figig Imazighen12.White Moor13.Moroccan Arabs14.Sahrawi15.Belbali16.Zenaga17.Wolof18.Tuat Imazighen19.Gourara Imazighen20.Dui-Menia Bedouin21.Tidikelt Imazighen22.Ifora Tuareg23.Amazigh, Gafsa24.Suafa Bedouin25.Amazigh of Djerba26.Amazigh, Matmata27.Doms28.Zuara29.Libyan Arabs30.Nefusa Imazighen31.Sirtican Bedouin32.Doms33.Egyptian Jews34.Riyah Bedouin35.Siwa Imazighen36.Wadshili37.Jalo Imazighen38.Sanusi Bedouins39.Zaghawa40.Kufra Bedouin41.Sawknah42.Jofra Imazighen43.Fezzan Bedouins + + + + Unengaged People Groups + Unengaged of Maghreb + Egypt + + + CountriesAlgeria · Egypt · ESH · Libya · Mauritania · Morocco · TunisiaAdministrative AreasMaghreb · EgyptPeople groups43 UPGSeriesList of 100 UPG's · map 26 of 28“But when he saw the multitudes, he was moved with compassion for them because they were harassed and scattered, like sheep without a shepherd.” MATTHEW 9:36Jesus’ Strategy to Feed the 5000What is a Prayer List of 100 UPG?Jesus’ disciples faced a similar challenge: “How can we feed so many with only five loaves and two fish?” Jesusfed the 5,000 by supernaturally multiplying that small offering — and His answer holds the key to our people-groupsproblem.Through radical faith and miracle-expectant prayer, He focused on the few in front of Him — dividing the crowd andentrusting faithful men and women to serve the most strategic groups of fifties and hundreds (Mark 6:40).This map is one of a 30-map set called the List of 100 UPG's — a large, overwhelming target in the thousands,organised into clear groupings and displayed on maps and prayer lists.Each map comes with a prayer list of its fifty to a hundred people groups — their names, a representative photo, andmore detail — to mobilise informed intercession. + How can we multiply indigenous disciples, churches and leaders among all these people groups — and get the gospel into their own language?Start with Prayer!1 · Thirty disciples. Each follower of Jesus takestheir own map and prayer list, and sets apart a placeto pray — some have hung a people-group map overtheir bed.2 · Thirty churches. Each church dedicates a wall inone of its places of prayer, and keeps copies of theprayer list available for distribution.3 · Thirty indigenous leaders. Find leaders on theground in these areas and give them the map andprayer list, to raise awareness of their unengagedneighbours. + + + + + “And they sat down in groups, by hundreds and by fifties.” Mark 6:40 + + + +
\ No newline at end of file diff --git a/data/posters/mainland-se-asia-philippines.html b/data/posters/mainland-se-asia-philippines.html new file mode 100644 index 000000000..c78e2f383 --- /dev/null +++ b/data/posters/mainland-se-asia-philippines.html @@ -0,0 +1,355 @@ + +Mainland SE Asia + Philippines — UPG poster +
+ + + + + + + + + + + + + + + INDIAN OCEANBAY OF BENGALSOUTH CHINA SEAOdishaOdishaBihārBihārAndaman and Nicobar IslandsAndaman and Nicobar IslandsHainan ProvinceHainan ProvinceGuangxi Zhuang Autonomous RegionGuangxi Zhuang Autonomous RegionYunnan ProvinceYunnan ProvinceHunan ProvinceHunan ProvinceSichuan ProvinceSichuan ProvinceTibet Autonomous RegionTibet Autonomous RegionQinghai ProvinceQinghai ProvinceCHINACHINAINDIAINDIAMYANMARMYANMARINDONESIAINDONESIATHAILANDTHAILANDVIETNAMVIETNAMLAOSLAOSMALAYSIAMALAYSIABANGLADESHBANGLADESHPHILIPPINESPHILIPPINESNEPALNEPALJAPANJAPANBHUTANBHUTANManilaBangkokNaypyidawBaguio CityHo Chi Minh CityGeorge TownMandalayDa NangKelangJohor BahruQui NhonVinhKuchingCa MauKuala TerengganuBagoUdon ThaniNakhon Si ThammaratPhan RangSittweBattambangLang SonDaweiMyitkyinaChumphonNanMarker positions are approximate · people-group locations are generalised at the source for privacyMarker positions are approximate · people-group locations are generalised at the source for privacyGenerated 2026-09-24 · data from doxa.lifeGenerated 2026-09-24 · data from doxa.life© geoBoundaries (CC BY 4.0)© geoBoundaries (CC BY 4.0) + + 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849501.Lati2.Phula3.Laha4.Mang5.Sila6.Tsun-Lao7.Tai Nua8.Golden Palaung9.Tai Leng10.Tai Khun11.Chak12.Danau13.Xinh Mun14.Phunoi15.Nyong16.Deaf Burmese17.Mpi18.Nyahkur19.Tai Nyo20.Kui21.Chong22.Kensiu23.Mendriq24.Indian Muslims25.Temoq26.Pu Peo27.Pa Hng28.Red Tai29.Ngai30.Chut31.Saek32.Arem33.Pacoh34.Upper Ta-Oy35.Rengao36.Deaf Cambodians37.Brunei Dusun38.Bonggi39.Manguangan40.Abai Sungai41.Bisaya42.Iban43.Central Sama44.Deaf Bruneians45.Tutung46.Kiput47.Lelak48.Bisayan Tutong49.Kedayan50.Lahanan + + + + Unengaged People Groups + Unengaged of Mainland SE Asia + Philippines + + + CountriesBrunei · Cambodia · Malaysia · Myanmar · Philippines · Thailand · VietnamAdministrative AreasMainland SE Asia · PhilippinesPeople groups50 UPGSeriesList of 100 UPG's · map 18 of 28“But when he saw the multitudes, he was moved with compassion for them because they were harassed and scattered, like sheep without a shepherd.” MATTHEW 9:36Jesus’ Strategy to Feed the 5000What is a Prayer List of 100 UPG?Jesus’ disciples faced a similar challenge: “How can we feed so many with only five loaves and two fish?” Jesusfed the 5,000 by supernaturally multiplying that small offering — and His answer holds the key to our people-groupsproblem.Through radical faith and miracle-expectant prayer, He focused on the few in front of Him — dividing the crowd andentrusting faithful men and women to serve the most strategic groups of fifties and hundreds (Mark 6:40).This map is one of a 30-map set called the List of 100 UPG's — a large, overwhelming target in the thousands,organised into clear groupings and displayed on maps and prayer lists.Each map comes with a prayer list of its fifty to a hundred people groups — their names, a representative photo, andmore detail — to mobilise informed intercession. + How can we multiply indigenous disciples, churches and leaders among all these people groups — and get the gospel into their own language?Start with Prayer!1 · Thirty disciples. Each follower of Jesus takestheir own map and prayer list, and sets apart a placeto pray — some have hung a people-group map overtheir bed.2 · Thirty churches. Each church dedicates a wall inone of its places of prayer, and keeps copies of theprayer list available for distribution.3 · Thirty indigenous leaders. Find leaders on theground in these areas and give them the map andprayer list, to raise awareness of their unengagedneighbours. + + + + + “And they sat down in groups, by hundreds and by fifties.” Mark 6:40 + + + +
\ No newline at end of file diff --git a/data/posters/middle-east-core.html b/data/posters/middle-east-core.html new file mode 100644 index 000000000..e70809a50 --- /dev/null +++ b/data/posters/middle-east-core.html @@ -0,0 +1,355 @@ + +Middle East Core — UPG poster +
+ + + + + + + + + + + + + + + MEDITERRANEAN SEARED SEAARABIAN SEAGujarātGujarātSAUDI ARABIASAUDI ARABIAIRANIRANRUSSIARUSSIASUDANSUDANKAZAKHSTANKAZAKHSTANETHIOPIAETHIOPIAPAKISTANPAKISTANUZBEKISTANUZBEKISTANTURKEYTURKEYEGYPTEGYPTAFGHANISTANAFGHANISTANIRAQIRAQINDIAINDIASOMALIASOMALIAYEMENYEMENOMANOMANSOUTH SUDANSOUTH SUDANERITREAERITREASYRIASYRIAAZERBAIJANAZERBAIJANJORDANJORDANGEORGIAGEORGIAUNITED ARAB EMIRATESUNITED ARAB EMIRATESTAJIKISTANTAJIKISTANKYRGYZSTANKYRGYZSTANBULGARIABULGARIADJIBOUTIDJIBOUTIKUWAITKUWAITLEBANONLEBANONCYPRUSCYPRUSMuscatAbu DhabiMashhadAd DammanIsfahanTabrizMedinaAdenDahukQomKermanshahAs SulaymaniyahAn NajafZahedanRashtKermanTabukAl LadhiqiyahBandar-e-AbbasAn NasiriyahBuraydahHailNajranBirjandDayr az ZawrMarker positions are approximate · people-group locations are generalised at the source for privacyMarker positions are approximate · people-group locations are generalised at the source for privacyGenerated 2026-09-24 · data from doxa.lifeGenerated 2026-09-24 · data from doxa.life© geoBoundaries (CC BY 4.0)© geoBoundaries (CC BY 4.0) + + 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556571.Southern Tati2.Central Tati3.Northern Tati4.Hawrami5.Laki6.Shabak7.Turkmen8.Shiites9.Alawites10.Lebanese Shia Arabs11.Lebanese Sunni Arabs12.Doms13.Druze14.Levantine Bedawi Arabs15.Samaritans16.Gazan Arabs17.Arab, Palestinian18.Druze19.Bedouin Arabs20.Iraqi Jews21.Ghorbati22.Marsh Arabs23.Mandaeans24.Mandaeans25.Bedouin Arabs26.Tihama27.Northern Yemeni Arabs28.Tihama Yemeni Arabs29.Akhdam30.Talysh31.Afshari32.Doms33.Khunsari34.Semnani35.Kurmanji Kurds36.Khorasani Turks37.Gazi38.Soi39.Zartoshi Zoroastrians40.Sivandi41.Koroshi42.Western Baloch43.Kumzari44.Shihuh45.Bashkardi46.Gulf Arabs47.Arabic (Shihhi)48.Arabized Africans49.Gulf Arabs50.Harasi51.Batahira52.Hobyot53.Jibbali54.Hobyot55.Mahra56.Socotran57.Hadrami Arabs + + + + Unengaged People Groups + Unengaged of Middle East Core + + + CountriesBahrain · Iran · Iraq · Jordan · Lebanon · Oman · Palestine · QatarSaudi Arabia · Syria · United Arab Emirates · YemenAdministrative AreasMiddle East CorePeople groups57 UPGSeriesList of 100 UPG's · map 25 of 28“But when he saw the multitudes, he was moved with compassion for them because they were harassed and scattered, like sheep without a shepherd.” MATTHEW 9:36Jesus’ Strategy to Feed the 5000What is a Prayer List of 100 UPG?Jesus’ disciples faced a similar challenge: “How can we feed so many with only five loaves and two fish?” Jesusfed the 5,000 by supernaturally multiplying that small offering — and His answer holds the key to our people-groupsproblem.Through radical faith and miracle-expectant prayer, He focused on the few in front of Him — dividing the crowd andentrusting faithful men and women to serve the most strategic groups of fifties and hundreds (Mark 6:40).This map is one of a 30-map set called the List of 100 UPG's — a large, overwhelming target in the thousands,organised into clear groupings and displayed on maps and prayer lists.Each map comes with a prayer list of its fifty to a hundred people groups — their names, a representative photo, andmore detail — to mobilise informed intercession. + How can we multiply indigenous disciples, churches and leaders among all these people groups — and get the gospel into their own language?Start with Prayer!1 · Thirty disciples. Each follower of Jesus takestheir own map and prayer list, and sets apart a placeto pray — some have hung a people-group map overtheir bed.2 · Thirty churches. Each church dedicates a wall inone of its places of prayer, and keeps copies of theprayer list available for distribution.3 · Thirty indigenous leaders. Find leaders on theground in these areas and give them the map andprayer list, to raise awareness of their unengagedneighbours. + + + + + “And they sat down in groups, by hundreds and by fifties.” Mark 6:40 + + + +
\ No newline at end of file diff --git a/data/posters/oceania-indonesia.html b/data/posters/oceania-indonesia.html new file mode 100644 index 000000000..3479edbe8 --- /dev/null +++ b/data/posters/oceania-indonesia.html @@ -0,0 +1,355 @@ + +Oceania + Indonesia — UPG poster +
+ + + + + + + + + + + + + + + INDIAN OCEANBAY OF BENGALSOUTH CHINA SEACORAL SEAPACIFIC OCEANINDIAINDIAINDONESIAINDONESIAPAPUA NEW GUINEAPAPUA NEW GUINEATHAILANDTHAILANDMALAYSIAMALAYSIAPHILIPPINESPHILIPPINESSRI LANKASRI LANKANEW CALEDONIANEW CALEDONIAPalikirPadangBanda AcehJayapuraLaeAganaArawaManilaBangkokColomboMaleFunafutiBrisbaneQui NhonKuchingKota KinabaluDarwinMarker positions are approximate · people-group locations are generalised at the source for privacyMarker positions are approximate · people-group locations are generalised at the source for privacyGenerated 2026-09-24 · data from doxa.lifeGenerated 2026-09-24 · data from doxa.life© geoBoundaries (CC BY 4.0)© geoBoundaries (CC BY 4.0) + + 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859601.Dondo2.Luhu3.Tomini4.Ambelau5.Balaesan6.Dampelasa7.Luwu8.Baras9.Alas10.Pakpak Boang11.Singkil12.Lintang13.Kluet14.Moronene15.Lampung Abung16.Deaf Tokelauans17.Deaf Wallisians18.Deaf Samoans19.Deaf Samoans20.Deaf French Polynesians21.Deaf Niueans22.Deaf Tongans23.Deaf Cook Islanders24.Cocos Malays25.Cocos Deaf26.Deaf Christmas Islanders27.Konjo Pegunungan28.Komodo29.Liabuku30.Konjo Pesisir31.Buol32.Gorap33.Deaf Palauans34.Deaf Mariana35.Deaf Guamanians36.Gane37.Tajio38.Hitu39.Deaf Micronesians40.Bati41.Deaf Marshallese42.Sula43.Deaf I-Kiribati44.Komfana45.Latu46.Larike-Wakasihu47.Mairiri48.Deaf Solomon Islanders49.Deaf Fijians50.Deaf Papua NewGuineans51.Deaf Ni-Vanuatu52.Deaf New Caledonians53.Ujir54.Deaf Norfolk Islanders55.Seit-Kaitetu56.Jews57.Lola58.Geser Gorom59.Asilulu60.Bonerate + + + + Unengaged People Groups + Unengaged of Oceania + Indonesia + + + CountriesAmerican Samoa · CCK · Cook Islands · CXR · Fiji · French Polynesia · GuamIndonesia · Kiribati · Marshall Islands · Micronesia · New CaledoniaNew Zealand · NFK · Niue · Northern Mariana Islands · Palau · Papua New GuineaSamoa · Solomon Islands · TKL · Tonga · Vanuatu · Wallis and FutunaAdministrative AreasOceania · IndonesiaPeople groups60 UPGSeriesList of 100 UPG's · map 17 of 28“But when he saw the multitudes, he was moved with compassion for them because they were harassed and scattered, like sheep without a shepherd.” MATTHEW 9:36Jesus’ Strategy to Feed the 5000What is a Prayer List of 100 UPG?Jesus’ disciples faced a similar challenge: “How can we feed so many with only five loaves and two fish?” Jesusfed the 5,000 by supernaturally multiplying that small offering — and His answer holds the key to our people-groupsproblem.Through radical faith and miracle-expectant prayer, He focused on the few in front of Him — dividing the crowd andentrusting faithful men and women to serve the most strategic groups of fifties and hundreds (Mark 6:40).This map is one of a 30-map set called the List of 100 UPG's — a large, overwhelming target in the thousands,organised into clear groupings and displayed on maps and prayer lists.Each map comes with a prayer list of its fifty to a hundred people groups — their names, a representative photo, andmore detail — to mobilise informed intercession. + How can we multiply indigenous disciples, churches and leaders among all these people groups — and get the gospel into their own language?Start with Prayer!1 · Thirty disciples. Each follower of Jesus takestheir own map and prayer list, and sets apart a placeto pray — some have hung a people-group map overtheir bed.2 · Thirty churches. Each church dedicates a wall inone of its places of prayer, and keeps copies of theprayer list available for distribution.3 · Thirty indigenous leaders. Find leaders on theground in these areas and give them the map andprayer list, to raise awareness of their unengagedneighbours. + + + + + “And they sat down in groups, by hundreds and by fifties.” Mark 6:40 + + + +
\ No newline at end of file diff --git a/data/posters/southern-africa-islands.html b/data/posters/southern-africa-islands.html new file mode 100644 index 000000000..1b519f434 --- /dev/null +++ b/data/posters/southern-africa-islands.html @@ -0,0 +1,355 @@ + +Southern Africa + Islands of East Africa — UPG poster +
+ + + + + + + + + + + + + + + GULF OF GUINEARED SEAINDIAN OCEANARABIAN SEADR CONGODR CONGOSOUTH AFRICASOUTH AFRICAMOZAMBIQUEMOZAMBIQUENAMIBIANAMIBIAANGOLAANGOLATANZANIATANZANIAZAMBIAZAMBIASOMALIASOMALIACENTRAL AFRICAN REPUBLICCENTRAL AFRICAN REPUBLICETHIOPIAETHIOPIAKENYAKENYACONGOCONGONIGERIANIGERIAMALAWIMALAWIGHANAGHANACHADCHADSUDANSUDANEQUATORIAL GUINEAEQUATORIAL GUINEAESWATINIESWATINIJohannesburgHarareLilongweBloemfonteinWindhoekHuamboPietermaritzburgBulawayoBeiraNdolaNampulaBhishoNamibeXai-XaiMalanjeCabindaMonguSaurimoKarongaKeetmanshoopTsumebSanto AntonioLagosKinshasaAbidjanMarker positions are approximate · people-group locations are generalised at the source for privacyMarker positions are approximate · people-group locations are generalised at the source for privacyGenerated 2026-09-24 · data from doxa.lifeGenerated 2026-09-24 · data from doxa.life© geoBoundaries (CC BY 4.0)© geoBoundaries (CC BY 4.0) + + 123456789101112131415161718192021222324252627282930313233343536373839401.Toka2.Yauma3.Yombe4.Deaf Angolans5.Deaf Santomeans6.Macanese7.Totela8.Mbukushu9.Dhimba10.Herero11.Kwangali12.Herero13.Gciriku14.Kwangali15.Nyengo16.Gciriku17.Nama18.Fwe19.Subia20.Cape Malay21.Cishinga22.Tambo23.Wandya24.Senga25.Leya26.Deaf Comorans27.Comorian Nzwani28.Comorian Mwali29.Deaf Mahorais30.Bushi31.Ngoni32.Deaf Mauritians33.Makhuwa-Shirima34.Chikunda35.Chikunda36.Zambezi Tonga37.Tswa38.Deaf Mozambicans39.Deaf Swazis40.South African Muslims + + + + Unengaged People Groups + Unengaged of Southern Africa + Islands of East Africa + + + CountriesAngola · Comoros · Eswatini · Malawi · Mauritius · Mayotte · MozambiqueNamibia · São Tomé and Príncipe · South Africa · Zambia · ZimbabweAdministrative AreasSouthern Africa · Islands of East AfricaPeople groups40 UPGSeriesList of 100 UPG's · map 15 of 28“But when he saw the multitudes, he was moved with compassion for them because they were harassed and scattered, like sheep without a shepherd.” MATTHEW 9:36Jesus’ Strategy to Feed the 5000What is a Prayer List of 100 UPG?Jesus’ disciples faced a similar challenge: “How can we feed so many with only five loaves and two fish?” Jesusfed the 5,000 by supernaturally multiplying that small offering — and His answer holds the key to our people-groupsproblem.Through radical faith and miracle-expectant prayer, He focused on the few in front of Him — dividing the crowd andentrusting faithful men and women to serve the most strategic groups of fifties and hundreds (Mark 6:40).This map is one of a 30-map set called the List of 100 UPG's — a large, overwhelming target in the thousands,organised into clear groupings and displayed on maps and prayer lists.Each map comes with a prayer list of its fifty to a hundred people groups — their names, a representative photo, andmore detail — to mobilise informed intercession. + How can we multiply indigenous disciples, churches and leaders among all these people groups — and get the gospel into their own language?Start with Prayer!1 · Thirty disciples. Each follower of Jesus takestheir own map and prayer list, and sets apart a placeto pray — some have hung a people-group map overtheir bed.2 · Thirty churches. Each church dedicates a wall inone of its places of prayer, and keeps copies of theprayer list available for distribution.3 · Thirty indigenous leaders. Find leaders on theground in these areas and give them the map andprayer list, to raise awareness of their unengagedneighbours. + + + + + “And they sat down in groups, by hundreds and by fifties.” Mark 6:40 + + + +
\ No newline at end of file diff --git a/data/posters/sudan.html b/data/posters/sudan.html new file mode 100644 index 000000000..4fad73687 --- /dev/null +++ b/data/posters/sudan.html @@ -0,0 +1,355 @@ + +Sudan — UPG poster +
+ + + + + + + + + + + + + + + RED SEASUDANSUDANCHADCHADETHIOPIAETHIOPIASAUDI ARABIASAUDI ARABIASOUTH SUDANSOUTH SUDANCENTRAL AFRICAN REPUBLICCENTRAL AFRICAN REPUBLICEGYPTEGYPTLIBYALIBYAERITREAERITREADR CONGODR CONGOKENYAKENYAYEMENYEMENDJIBOUTIDJIBOUTIPort SudanKassalaNiyalaKostiGedarefAd DamazinAddis AbabaDjiboutiAsmaraJubaMedinaAl HudaydahSohagAswanQenaAbhaDeseHararSarhAbecheHurghadaGonderAwasaJimaWauAssabMarker positions are approximate · people-group locations are generalised at the source for privacyMarker positions are approximate · people-group locations are generalised at the source for privacyGenerated 2026-09-24 · data from doxa.lifeGenerated 2026-09-24 · data from doxa.life© geoBoundaries (CC BY 4.0)© geoBoundaries (CC BY 4.0) + + 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051.Yazeed2.Dar Hamid3.Kawahia4.Kudur5.Guhayna6.Tasoomi7.Fanda8.Kadaru9.Sherifi10.Tacho11.Wali12.Karko13.Kujriya14.Kalik15.Temain16.Berti17.Borogo18.Kamda19.Gawamaa20.Awlad Hassan21.Shuweihat22.Dubasiyin23.Maalia24.Murgi Birked25.Rizeiqat26.Dar Fur Daju27.Tama28.Kimr29.Erenga30.Bokoruge31.Hawazama32.Abu-Junuk33.Ngile34.Baygo35.Keiga36.Dajo37.Binga38.Sagolle39.Antiti40.Shifir41.Tabak42.Umm Heitan43.Logorif44.Kanga45.Borono46.Trawing47.Liri48.Gulfan49.Doloka50.Mandal51.Arra52.Kufa-Lima53.Bindili54.Kerarish55.Fezara56.Bederia57.Midob58.Dair59.Subei60.Hasania61.Kineenawi62.Batahin63.Deaf Sudanese64.Afitti65.Husseinat66.Farla67.Rashad68.Rufaa69.Selim70.Rashaida71.Tukum72.Wadalka73.Gaaliin74.Shukria75.Kuwala76.Tingal77.Kimla78.Lahawin79.Kasha80.Kega-Alkheel81.Tagale82.Turuj83.Tumale84.Kurundi85.Kajakaja86.Dalang87.Shawafna88.Molo89.Tornasi Kelo90.Logol91.Lange Burun92.Tata93.Fungor94.Warnang95.Eliri96.Kaijen97.Mirisia Zuruk98.Tagoy99.Sebei100.Talasa101.Tumtum102.Kenana103.Lamira104.Kauyaru105.Alehemir + + + + Unengaged People Groups + Unengaged of Sudan + + + CountriesSudanAdministrative AreasSudanPeople groups105 UPGSeriesList of 100 UPG's · map 12 of 28“But when he saw the multitudes, he was moved with compassion for them because they were harassed and scattered, like sheep without a shepherd.” MATTHEW 9:36Jesus’ Strategy to Feed the 5000What is a Prayer List of 100 UPG?Jesus’ disciples faced a similar challenge: “How can we feed so many with only five loaves and two fish?” Jesusfed the 5,000 by supernaturally multiplying that small offering — and His answer holds the key to our people-groupsproblem.Through radical faith and miracle-expectant prayer, He focused on the few in front of Him — dividing the crowd andentrusting faithful men and women to serve the most strategic groups of fifties and hundreds (Mark 6:40).This map is one of a 30-map set called the List of 100 UPG's — a large, overwhelming target in the thousands,organised into clear groupings and displayed on maps and prayer lists.Each map comes with a prayer list of its fifty to a hundred people groups — their names, a representative photo, andmore detail — to mobilise informed intercession. + How can we multiply indigenous disciples, churches and leaders among all these people groups — and get the gospel into their own language?Start with Prayer!1 · Thirty disciples. Each follower of Jesus takestheir own map and prayer list, and sets apart a placeto pray — some have hung a people-group map overtheir bed.2 · Thirty churches. Each church dedicates a wall inone of its places of prayer, and keeps copies of theprayer list available for distribution.3 · Thirty indigenous leaders. Find leaders on theground in these areas and give them the map andprayer list, to raise awareness of their unengagedneighbours. + + + + + “And they sat down in groups, by hundreds and by fifties.” Mark 6:40 + + + +
\ No newline at end of file diff --git a/data/posters/uncovered-nas-a.html b/data/posters/uncovered-nas-a.html new file mode 100644 index 000000000..e3ad15a9c --- /dev/null +++ b/data/posters/uncovered-nas-a.html @@ -0,0 +1,355 @@ + +Central Asia + Pakistan — UPG poster +
+ + + + + + + + + + + + + + + RED SEAARABIAN SEAMahārāshtraMahārāshtraChhattīsgarhChhattīsgarhGujarātGujarātBihārBihārLadākhLadākhRājasthānRājasthānTelangānaTelangānaJhārkhandJhārkhandUttarākhandUttarākhandMadhya PradeshMadhya PradeshJammu and KashmīrJammu and KashmīrPunjabPunjabRUSSIARUSSIACHINACHINAKAZAKHSTANKAZAKHSTANINDIAINDIAIRANIRANSAUDI ARABIASAUDI ARABIAPAKISTANPAKISTANUZBEKISTANUZBEKISTANAFGHANISTANAFGHANISTANIRAQIRAQTURKEYTURKEYOMANOMANKYRGYZSTANKYRGYZSTANTAJIKISTANTAJIKISTANNEPALNEPALSYRIASYRIAAZERBAIJANAZERBAIJANGEORGIAGEORGIAUNITED ARAB EMIRATESUNITED ARAB EMIRATESJORDANJORDANSUDANSUDANMONGOLIAMONGOLIAYEMENYEMENKUWAITKUWAITBakuDushanbeBishkekKarachiQuettaFargonaSamarqandMazar-e SharifBukharaNukusLashkar GahMeymanehNaxcivanKarakolSakiBamianNarynZaranjTalasZareh SharanTehranBaghdadRiyadhDamascusKuwait CityMarker positions are approximate · people-group locations are generalised at the source for privacyMarker positions are approximate · people-group locations are generalised at the source for privacyGenerated 2026-09-24 · data from doxa.lifeGenerated 2026-09-24 · data from doxa.life© geoBoundaries (CC BY 4.0)© geoBoundaries (CC BY 4.0) + + 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748491.Persians2.Mugat3.Munji-Yidgha4.Prasuni Nuristani5.Kalkoti6.Shumashti7.Northeast Pashayi8.Ashkuni Nuristani9.Avar10.Kurmanji Kurds11.Gawar-Bati12.Grangali13.Waigeli Nuristani14.Moghol15.Kati Nuristani16.Parachi17.Qizilbash18.Gujur Rajasthani19.Bashkarik20.Wanetsi21.Dehwari22.Western Baloch23.Eastern Baloch24.Lassi25.Vaghri Koli26.Kazakh27.Sanglechi28.Roshor29.Palula30.Ishkashimi31.Kamviri Nuristani32.Kho33.Bashgali Nuristani34.Galo35.Wakhi36.Dumaki37.Ushojo38.Yidgha39.Gowro40.Shina41.Rajkoti42.Bateri43.Sau44.Southwest Pashayi45.Kohistani46.Vlax Romani47.Damel48.Southeast Pashayi49.Persians + + + + Unengaged People Groups + Unengaged of Central Asia + Pakistan + + + CountriesAfghanistan · Azerbaijan · Kyrgyzstan · Pakistan · Tajikistan · UzbekistanAdministrative AreasPakistan · Afghanistan · Uzbekistan · Tajikistan · Kyrgyzstan · KazakhstanAzerbaijanPeople groups49 UPGSeriesList of 100 UPG's · map 28 of 28“But when he saw the multitudes, he was moved with compassion for them because they were harassed and scattered, like sheep without a shepherd.” MATTHEW 9:36Jesus’ Strategy to Feed the 5000What is a Prayer List of 100 UPG?Jesus’ disciples faced a similar challenge: “How can we feed so many with only five loaves and two fish?” Jesusfed the 5,000 by supernaturally multiplying that small offering — and His answer holds the key to our people-groupsproblem.Through radical faith and miracle-expectant prayer, He focused on the few in front of Him — dividing the crowd andentrusting faithful men and women to serve the most strategic groups of fifties and hundreds (Mark 6:40).This map is one of a 30-map set called the List of 100 UPG's — a large, overwhelming target in the thousands,organised into clear groupings and displayed on maps and prayer lists.Each map comes with a prayer list of its fifty to a hundred people groups — their names, a representative photo, andmore detail — to mobilise informed intercession. + How can we multiply indigenous disciples, churches and leaders among all these people groups — and get the gospel into their own language?Start with Prayer!1 · Thirty disciples. Each follower of Jesus takestheir own map and prayer list, and sets apart a placeto pray — some have hung a people-group map overtheir bed.2 · Thirty churches. Each church dedicates a wall inone of its places of prayer, and keeps copies of theprayer list available for distribution.3 · Thirty indigenous leaders. Find leaders on theground in these areas and give them the map andprayer list, to raise awareness of their unengagedneighbours. + + + + + “And they sat down in groups, by hundreds and by fifties.” Mark 6:40 + + + +
\ No newline at end of file diff --git a/data/posters/uncovered-scatter.html b/data/posters/uncovered-scatter.html new file mode 100644 index 000000000..3cc3eea59 --- /dev/null +++ b/data/posters/uncovered-scatter.html @@ -0,0 +1,355 @@ + +Scattered / Diaspora — UPG poster +
+ + + + + + + + + + + + + + + ATLANTIC OCEANMEDITERRANEAN SEAGULF OF GUINEAUNITED STATESUNITED STATESBRAZILBRAZILALGERIAALGERIAMALIMALIDR CONGODR CONGOLIBYALIBYACHADCHADVENEZUELAVENEZUELANIGERIANIGERIAPERUPERUSPAINSPAINGUINEAGUINEACUBACUBATUNISIATUNISIAGREECEGREECEANGOLAANGOLACZECHIACZECHIABOSNIA AND HERZEGOVINABOSNIA AND HERZEGOVINAWashington, D.C.AtlantaPhoenixDenverSacramentoIndianapolisAustinSt. PaulBoiseOlympiaTopekaBismarckConcordMexico CityParisLagosKinshasaBogotaMadridAbidjanBerlinAlgiersRomeAthensCaracasDakarMarker positions are approximate · people-group locations are generalised at the source for privacyMarker positions are approximate · people-group locations are generalised at the source for privacyGenerated 2026-09-24 · data from doxa.lifeGenerated 2026-09-24 · data from doxa.life© geoBoundaries (CC BY 4.0)© geoBoundaries (CC BY 4.0) + + 1234561.Coquille2.Umpqua3.Pequots4.Andorrans5.Deaf Guyanese6.Wayampi Amapari + + + + Unengaged People Groups + Unengaged of Scattered / Diaspora + + + CountriesAndorra · French Guiana · United StatesAdministrative AreasScattered / DiasporaPeople groups6 UPGSeriesList of 100 UPG's · map 21 of 28“But when he saw the multitudes, he was moved with compassion for them because they were harassed and scattered, like sheep without a shepherd.” MATTHEW 9:36Jesus’ Strategy to Feed the 5000What is a Prayer List of 100 UPG?Jesus’ disciples faced a similar challenge: “How can we feed so many with only five loaves and two fish?” Jesusfed the 5,000 by supernaturally multiplying that small offering — and His answer holds the key to our people-groupsproblem.Through radical faith and miracle-expectant prayer, He focused on the few in front of Him — dividing the crowd andentrusting faithful men and women to serve the most strategic groups of fifties and hundreds (Mark 6:40).This map is one of a 30-map set called the List of 100 UPG's — a large, overwhelming target in the thousands,organised into clear groupings and displayed on maps and prayer lists.Each map comes with a prayer list of its fifty to a hundred people groups — their names, a representative photo, andmore detail — to mobilise informed intercession. + How can we multiply indigenous disciples, churches and leaders among all these people groups — and get the gospel into their own language?Start with Prayer!1 · Thirty disciples. Each follower of Jesus takestheir own map and prayer list, and sets apart a placeto pray — some have hung a people-group map overtheir bed.2 · Thirty churches. Each church dedicates a wall inone of its places of prayer, and keeps copies of theprayer list available for distribution.3 · Thirty indigenous leaders. Find leaders on theground in these areas and give them the map andprayer list, to raise awareness of their unengagedneighbours. + + + + + “And they sat down in groups, by hundreds and by fifties.” Mark 6:40 + + + +
\ No newline at end of file diff --git a/data/posters/west-africa.html b/data/posters/west-africa.html new file mode 100644 index 000000000..261e2c041 --- /dev/null +++ b/data/posters/west-africa.html @@ -0,0 +1,355 @@ + +West Africa — UPG poster +
+ + + + + + + + + + + + + + + ATLANTIC OCEANGULF OF GUINEAMALIMALIALGERIAALGERIANIGERNIGERSUDANSUDANLIBYALIBYACHADCHADMOROCCOMOROCCOMAURITANIAMAURITANIADR CONGODR CONGONIGERIANIGERIACENTRAL AFRICAN REPUBLICCENTRAL AFRICAN REPUBLICEGYPTEGYPTBURKINA FASOBURKINA FASOGUINEAGUINEACÔTE D'IVOIRECÔTE D'IVOIRESENEGALSENEGALUGANDAUGANDAGABONGABONBENINBENINGUINEA-BISSAUGUINEA-BISSAUTUNISIATUNISIADakarAccraMonroviaNiameyBouakeMaradiSan-PedroAgadezGaoWaKayesSunyaniTimbuktuDedougouKaediFaya LargeauBeylaCairoKhartoumYaoundeAbujaKampalaBanguiNouakchottLibrevilleMarker positions are approximate · people-group locations are generalised at the source for privacyMarker positions are approximate · people-group locations are generalised at the source for privacyGenerated 2026-09-24 · data from doxa.lifeGenerated 2026-09-24 · data from doxa.life© geoBoundaries (CC BY 4.0)© geoBoundaries (CC BY 4.0) + + 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181.Idaksahak2.Bulba3.Songhai4.Akaselem5.Sininkere6.Bangi Me7.Samoya8.Bijobe9.Kasena10.Bozo11.Pana12.Tiemaxo Bozo13.Jula14.Jula15.Kelenga Bozo16.Senara Senufo17.Banka Samogho18.Fulanke19.Moor20.Fula Jalon21.Badyara22.Tukulor23.Bainouk24.Konkabay25.Mankanya26.Maswanka27.Fulakunda28.Deaf Gambians29.Kasanga30.Bandial31.Deaf Bissau-Guineans32.Baga Mandouri33.Sankaran34.Baga Fore35.Baga Sitemu36.Baga Koga37.Deaf Guineans38.East Limba39.Kuranko40.Syenara Senufo41.Krim42.Vai43.Kono44.Deaf Liberians45.Tura46.Dogosé Fing47.Komono48.Sapo49.Khe50.Foodo51.Deaf Ivoirians52.Waama53.Soruba54.Kotokoli55.Kotokoli56.Basila57.Bago58.Ci59.Ewe60.Tagdal61.Buduma62.Babalia63.Maslam64.Bulgeda65.Chadian (French)66.Mesmedje67.Baggara Dekakire68.Jongor69.Bernde70.Bilala71.Saaronge72.Mahamid73.Kuka74.Berguid75.Torom76.Massalat77.Mubi78.Jegu79.Mararit80.Bidio81.Karbo82.Soliman Bedouins83.Karanga84.Surbakhal85.Sungor86.Sokoro87.Marfa88.Kendeje89.Kajakse90.Fur91.Kujarge92.Migaama93.Kibet94.Dagel95.Fongoro96.Fanya97.Mogum98.Barein99.Mokoulou100.Saba101.Kaba Kurumi102.Kulfe103.Koke104.Dendje105.Boor106.Bua107.Bon Gula108.Gula109.Buso110.Bolgo Dugag111.Mango112.Goundo113.Majera114.Jumam115.Kabiye116.Dompago117.Pila118.Deaf Beninese + + + + Unengaged People Groups + Unengaged of West Africa + + + CountriesBenin · Burkina Faso · Chad · Côte d'Ivoire · Gambia · Ghana · GuineaGuinea-Bissau · Liberia · Mali · Niger · Senegal · Sierra Leone · TogoAdministrative AreasWest AfricaPeople groups118 UPGSeriesList of 100 UPG's · map 11 of 28“But when he saw the multitudes, he was moved with compassion for them because they were harassed and scattered, like sheep without a shepherd.” MATTHEW 9:36Jesus’ Strategy to Feed the 5000What is a Prayer List of 100 UPG?Jesus’ disciples faced a similar challenge: “How can we feed so many with only five loaves and two fish?” Jesusfed the 5,000 by supernaturally multiplying that small offering — and His answer holds the key to our people-groupsproblem.Through radical faith and miracle-expectant prayer, He focused on the few in front of Him — dividing the crowd andentrusting faithful men and women to serve the most strategic groups of fifties and hundreds (Mark 6:40).This map is one of a 30-map set called the List of 100 UPG's — a large, overwhelming target in the thousands,organised into clear groupings and displayed on maps and prayer lists.Each map comes with a prayer list of its fifty to a hundred people groups — their names, a representative photo, andmore detail — to mobilise informed intercession. + How can we multiply indigenous disciples, churches and leaders among all these people groups — and get the gospel into their own language?Start with Prayer!1 · Thirty disciples. Each follower of Jesus takestheir own map and prayer list, and sets apart a placeto pray — some have hung a people-group map overtheir bed.2 · Thirty churches. Each church dedicates a wall inone of its places of prayer, and keeps copies of theprayer list available for distribution.3 · Thirty indigenous leaders. Find leaders on theground in these areas and give them the map andprayer list, to raise awareness of their unengagedneighbours. + + + + + “And they sat down in groups, by hundreds and by fifties.” Mark 6:40 + + + +
\ No newline at end of file diff --git a/internal/check-poster-print-fallback.mjs b/internal/check-poster-print-fallback.mjs new file mode 100644 index 000000000..8c6f2b6ff --- /dev/null +++ b/internal/check-poster-print-fallback.mjs @@ -0,0 +1,193 @@ +#!/usr/bin/env node +// check-poster-print-fallback — the PRINT preview must survive a missing .webp. +// +// ★ THE ASYMMETRY THIS GUARDS. posters/*.webp is not shipped by default (42MB; +// bundling it pushed the tree to 80MB, git-packed to 57MiB, and the catalog +// rejected the push outright). The DOWNLOAD path has always handled that — +// PosterWall.vue fetches posters/.html and rasterises it in the browser. The +// PRINT path did not: it handed an a url it never checked, so on a default +// drop the SAME poster downloaded fine and printed as "Poster not available yet." +// +// Two paths, one missing file, different outcomes — and the difference was +// invisible to every existing gate, because check:poster-raster drives the +// RENDERER directly and never goes near the print button. +// +// ⚠ IT INTERCEPTS THE PRINTED HTML rather than reading the frame back. +// openPrintFrame calls window.print(), which BLOCKS in headless Chromium, and the +// frame self-removes on afterprint — reading it back measures a frame that has +// already gone. Same technique as check-deck-click. +// +// ⚠ IT FORCES THE MISS. The dev tree may or may not have the .webp; a gate whose +// result depends on that is measuring the fixture, not the product. So every +// request for posters/.webp is failed at the network layer, which is exactly +// the default-drop condition, and the .html is left reachable. +// +// Usage: node internal/check-poster-print-fallback.mjs [zoneId] +import { chromium } from 'playwright' + +// SKIP, never fail, when the preconditions are absent. This gate needs a SERVED tree +// that carries posters/.html (posterSources:true or bundlePosters:true). The +// default tree ships neither, and a clean checkout has no server at all — failing the +// build on that would only teach people to disable the gate. It says what is missing. +const WALL = process.argv[2] || process.env.POSTER_WALL_URL +if (!WALL) { + console.log('POSTER-PRINT-FALLBACK: SKIP — no wall url given.') + console.log(' Pass one, or set POSTER_WALL_URL. Needs a tree built with posterSources:true') + console.log(' and a server: `node library/scripts/posters/publish-html.mjs && bun run tree`.') + process.exit(0) +} + +// The poster SOURCE must be reachable before any of this means anything. Without it +// the fallback has nothing to rasterise and every assertion below would report a +// product bug that is really a missing fixture. +const probeId = process.argv[3] || 'laos' +const srcUrl = new URL(`../assets/posters/${probeId}.html`, WALL).href +try { + const r = await fetch(srcUrl) + if (!r.ok) { + console.log(`POSTER-PRINT-FALLBACK: SKIP — ${srcUrl} is ${r.status}.`) + console.log(' The tree was not built with posterSources:true, so there is no poster source to rasterise.') + process.exit(0) + } +} catch { + console.log(`POSTER-PRINT-FALLBACK: SKIP — cannot reach ${srcUrl} (no server?).`) + process.exit(0) +} + +const browser = await chromium.launch({ args: ['--use-gl=swiftshader', '--enable-unsafe-swiftshader'] }) +const page = await browser.newPage({ viewport: { width: 1400, height: 1000 } }) +const errs = [] +page.on('pageerror', (e) => errs.push(String(e).slice(0, 140))) + +// THE DEFAULT-DROP CONDITION, forced: the print-resolution image is absent, its +// HTML source is not. Anything else would leave the gate at the mercy of whether +// this particular checkout happens to carry 42MB of posters. +let webpBlocked = 0 +let htmlServed = 0 +await page.route('**/posters/*.webp', (route) => { webpBlocked += 1; route.abort() }) +await page.route('**/posters/*.html', (route) => { htmlServed += 1; route.continue() }) + +await page.goto(WALL, { waitUntil: 'load', timeout: 45000 }) +await page.waitForTimeout(8000) + +// Capture what reaches the print frame instead of letting it print-and-vanish. +// ⚠ ASSERT THE HUD, NOT doc.write. Three separate attempts to intercept the printed +// document all captured nothing while the feature DEMONSTRABLY worked (the HUD ran +// "generating the poster" and finished clean): openPrintFrame writes into the iframe's +// OWN realm, calls doc.open() AFTER append — which resets the document and discards a +// patched write — and the frame self-removes on afterprint. A capture that silently +// misses reports a product bug that is not there. +// The HUD is the better assertion anyway: it is what a USER sees, it survives a +// refactor of the print internals, and it distinguishes the three outcomes that +// matter — rasterised / shipped-image / failed — which is exactly what this gate is for. +await page.evaluate(() => { + window.__HUD = [] + window.print = () => {} + const walk = (root, out = []) => { + for (const el of root.querySelectorAll('*')) { out.push(el); if (el.shadowRoot) walk(el.shadowRoot, out) } + return out + } + window.__readHud = () => walk(document) + .filter((e) => e.childElementCount === 0 && e.tagName !== 'SCRIPT' && e.tagName !== 'STYLE') + .map((e) => (e.textContent || '').trim()) + .filter((t) => t && /generating|preparing|saving|not available|failed|blank|error/i.test(t)) + setInterval(() => { for (const t of window.__readHud()) if (!window.__HUD.includes(t)) window.__HUD.push(t) }, 120) +}) + +// Click the REAL print control, found by its accessible name through every shadow root. +const clicked = await page.evaluate(() => { + const walk = (root, out = []) => { + for (const el of root.querySelectorAll('*')) { + out.push(el) + if (el.shadowRoot) walk(el.shadowRoot, out) + } + return out + } + const all = walk(document) + const btn = all.find((el) => { + if (!(el instanceof HTMLElement)) return false + if (el.tagName !== 'BUTTON' && el.getAttribute('role') !== 'button') return false + const label = `${el.getAttribute('aria-label') || ''} ${el.getAttribute('title') || ''} ${el.textContent || ''}` + // ⚠ THE CONTROL IS NOT LABELLED "print". It reads "UPG prayer poster" — the + // product names the ARTEFACT, not the action. A /print/i matcher finds nothing + // and this gate then reports "nothing reached the print frame", which reads as a + // product bug and is purely the selector. Measured 2026-09-24: the .webp and + // .html request counters even LOOKED corroborating, because the wall loads both + // on its own. Match the poster control, and exclude its siblings by name. + return /poster/i.test(label) && !/list|deck|packet|show on map/i.test(label) + }) + if (!btn) { + return { ok: false, labels: all.filter((e) => e.tagName === 'BUTTON') + .map((e) => (e.getAttribute('title') || e.textContent || '').trim().slice(0, 30)).filter(Boolean).slice(0, 14) } + } + btn.click() + return { ok: true } +}) + +let hud = [] +let settled = false +if (clicked.ok) { + // Rasterising a 3000px poster takes real time; poll for the terminal state rather + // than guessing one timeout. + for (let i = 0; i < 45 && !settled; i++) { + await page.waitForTimeout(1000) + hud = await page.evaluate(() => window.__HUD || []) + // Terminal states: an explicit failure, or "generating" seen AND no longer showing. + const live = await page.evaluate(() => window.__readHud()) + const failing = hud.some((t) => /not available|failed|blank|error/i.test(t)) + const generated = hud.some((t) => /generating/i.test(t)) + if (failing) { settled = true; break } + if (generated && !live.some((t) => /generating|preparing|saving/i.test(t))) { settled = true } + } +} +await browser.close() + +const fails = [] +if (!clicked.ok) { + fails.push(`no poster print control found in any shadow root (buttons seen: ${(clicked.labels || []).join(' | ')})`) +} +if (clicked.ok && !hud.length) { + fails.push('the poster control was clicked but the export HUD never reported anything — ' + + 'the click did not reach printPoster at all') +} +// THE LOAD-BEARING ASSERTIONS. +if (hud.some((t) => /Poster not available yet/i.test(t))) { + fails.push('the print preview opened on "Poster not available yet" — the old behaviour: ' + + 'the .webp 404ed and the rasterise fallback did not run') +} +if (hud.some((t) => /not available|failed|blank|error/i.test(t))) { + fails.push(`the print path ended in an error state: ${JSON.stringify(hud.filter((t) => /not available|failed|blank|error/i.test(t)))}`) +} +// With EVERY .webp aborted, a clean run is only possible via the rasteriser — so the +// "generating the poster" phase MUST have been entered. Its absence means the preview +// came from somewhere this gate did not intend, and proves nothing about the fallback. +if (clicked.ok && !hud.some((t) => /generating/i.test(t))) { + fails.push(`the fallback never entered its "generating the poster" phase (HUD: ${JSON.stringify(hud)}) — ` + + 'with every .webp aborted there is no other way to a working preview, so this did not exercise the fallback') +} +if (clicked.ok && !settled) { + fails.push('the print path never reached a terminal state within 45s') +} +if (webpBlocked === 0) { + fails.push('no posters/*.webp request was made at all — the print path never probed the ' + + 'image, so this gate did not exercise the fallback it exists to test') +} +if (htmlServed === 0) { + fails.push('no posters/*.html was fetched — the rasterise fallback never ran') +} +if (errs.length) fails.push(`${errs.length} page error(s): ${errs[0]}`) + +console.log('POSTER-PRINT-FALLBACK') +console.log(` wall : ${WALL}`) +console.log(` .webp requests : ${webpBlocked} (all aborted — the default-drop condition)`) +console.log(` .html requests : ${htmlServed}`) +console.log(` print button : ${clicked.ok ? 'found and clicked' : 'NOT FOUND'}`) +console.log(` HUD : ${hud.length ? JSON.stringify(hud) : '(nothing)'}`) + +if (fails.length) { + console.error(`\nPOSTER-PRINT-FALLBACK: FAIL — ${fails.length} problem(s)`) + for (const f of fails) console.error(` - ${f}`) + process.exit(1) +} +console.log('\nPOSTER-PRINT-FALLBACK: PASS — with every .webp missing, the print preview still ' + + 'opens on a real rasterised poster instead of "Poster not available yet".') diff --git a/internal/generate-tree.mjs b/internal/generate-tree.mjs index 72efe6df0..03ce1a3a5 100644 --- a/internal/generate-tree.mjs +++ b/internal/generate-tree.mjs @@ -96,9 +96,14 @@ function readBuildConfig() { // from previews/, so the tree stays visually complete without them; bundling both pushed the // tree to 74 MB and the catalog server refused the pack. Turn on only for a fully offline drop. const bundlePosters = cfg.bundlePosters === true - return { name, paths, embedBaseUrl, tokenUrl, token, assetsBaseUrl, apiBaseUrl, gatedProfiles, qaWidget, bundlePosters } + // Ship the poster SOURCES (.html, what the browser rasterises) without the + // 40.9 MB of rasters. bundlePosters is a single boolean over a directory holding + // both, so it could not express this — and "neither" is what left export and print + // preview 404ing on a default drop. Implied by bundlePosters:true. + const posterSources = cfg.posterSources === true || bundlePosters + return { name, paths, embedBaseUrl, tokenUrl, token, assetsBaseUrl, apiBaseUrl, gatedProfiles, qaWidget, bundlePosters, posterSources } } catch { - return { name: 'doxa-maps', paths: [], embedBaseUrl: '', tokenUrl: '', token: '', assetsBaseUrl: '', apiBaseUrl: '', gatedProfiles: [], qaWidget: true, bundlePosters: false } + return { name: 'doxa-maps', paths: [], embedBaseUrl: '', tokenUrl: '', token: '', assetsBaseUrl: '', apiBaseUrl: '', gatedProfiles: [], qaWidget: true, bundlePosters: false, posterSources: false } } } const DEST_CONFIG = readBuildConfig() @@ -1481,17 +1486,47 @@ function main() { // so the URL is fetched from INSIDE the tree; with images/ absent from this allowlist it // 404s and the watermark is simply not there, with no error anywhere — the background just // does not paint, which is even quieter than the font failure was. - const assetDirs = DEST_CONFIG.bundlePosters + // ★ posters/ CARRIES TWO VERY DIFFERENT PAYLOADS and bundlePosters is one boolean, + // so it could only ever ship both or neither: + // .webp 378 files, 40.9 MB — the print-resolution rasters. This is the weight + // that pushed the tree to 80MB and got the push rejected. + // .html 28 files, the poster SOURCE the browser rasterises when no .webp is + // present (library/packet/poster-raster.js). ~0.3 MB each. + // "Neither" is what a default drop got, and it is why BOTH full-size paths 404'd: + // export fell back to fetching .html and that was not shipped either, so the + // fallback had nothing to fetch. posterSources ships the sources WITHOUT the rasters, + // which is the only combination the old boolean could not express. + // Default stays FALSE — 28 sources are ~27.9 MB raw, real weight that needs a + // deployment decision, not a silent default. This makes the choice available. + const posterExts = DEST_CONFIG.bundlePosters ? null // everything + : (DEST_CONFIG.posterSources ? ['.html'] : []) // sources only / nothing + const assetDirs = (posterExts === null || posterExts.length) ? ['previews', 'posters', 'fonts', 'images'] : ['previews', 'fonts', 'images'] for (const dirName of assetDirs) { const src = join(pubAssets, dirName) if (!existsSync(src)) { console.warn(`[generate-tree] WARN missing tree asset dir: assets/${dirName}`); continue } + if (dirName === 'posters' && posterExts !== null) { + // Selective copy: only the extensions this deployment asked for. + mkdirSync(join(treeAssets, dirName), { recursive: true }) + let n = 0 + for (const f of readdirSync(src)) { + if (!posterExts.some((e) => f.endsWith(e))) continue + cpSync(join(src, f), join(treeAssets, dirName, f)) + n += 1 + } + staged += n + continue + } cpSync(src, join(treeAssets, dirName), { recursive: true }) staged += readdirSync(src).length } - if (!DEST_CONFIG.bundlePosters) { - console.log('[generate-tree] posters/ NOT bundled (bundlePosters:false) — the wall renders from previews; set an absolute assetsBaseUrl to serve full posters on demand') + if (DEST_CONFIG.bundlePosters) { + console.log('[generate-tree] posters/ bundled in full (bundlePosters:true) — rasters + sources') + } else if (DEST_CONFIG.posterSources) { + console.log('[generate-tree] posters/*.html bundled (posterSources:true) — no rasters; export and print RASTERISE in the browser') + } else { + console.log('[generate-tree] posters/ NOT bundled — the wall renders from previews; export and print need posterSources:true, bundlePosters:true, or an absolute assetsBaseUrl') } console.log(`[generate-tree] staged ${staged} runtime asset(s) → ${TREE_NAME}/assets (tree is self-contained)`) } diff --git a/library/scripts/posters/publish-html.mjs b/library/scripts/posters/publish-html.mjs index 204c37c5a..49a710c68 100644 --- a/library/scripts/posters/publish-html.mjs +++ b/library/scripts/posters/publish-html.mjs @@ -48,7 +48,13 @@ import { dirname, join, resolve } from 'node:path'; const __dirname = dirname(fileURLToPath(import.meta.url)); const SRC = join(__dirname, 'out', 'posters'); const REPO = resolve(__dirname, '..', '..', '..'); -const DEST = join(REPO, 'public', 'assets', 'posters'); +// ⚠ data/posters, NOT public/assets/posters. public/assets/ is a GENERATED +// MIRROR: generate-tree.mjs rmSync's it and re-copies data/ over it on every +// `bun run tree`, so anything written there is deleted by the next build. This +// script wrote there and its output therefore never survived — which is a large +// part of why the browser-rasterise fallback still had no input months after it +// shipped. data/ is the tracked source the mirror is made from. +const DEST = join(REPO, 'data', 'posters'); const ONLY = process.env.ONLY || ''; if (!existsSync(SRC)) { @@ -88,7 +94,7 @@ for (const file of readdirSync(SRC)) { bytes += Buffer.byteLength(html); } -console.log(`[publish-html] ${published} poster HTML -> public/assets/posters/`); +console.log(`[publish-html] ${published} poster HTML -> data/posters/`); console.log(`[publish-html] ${(bytes / 1048576).toFixed(1)} MB raw ` + `(gzips to roughly a third over the wire)`); if (skipped.length) { diff --git a/package.json b/package.json index 0a565f05f..d0c700156 100644 --- a/package.json +++ b/package.json @@ -145,7 +145,8 @@ "build:bundles": "node internal/run-parallel.mjs --bundles", "check:maplibre-drops": "node internal/check-maplibre-layer-drops.mjs", "check:tabs-localized": "node internal/check-tabs-localized.mjs # a chosen locale must CHANGE the rendered tab text. check:i18n-parity compares catalogs to each OTHER, so it cannot tell a shipped translation from a dead one; tabs.json is reached only via a DYNAMIC key (SemanticTreeLegend.vue:40), invisible to any grep. Renders it and reads the result.", - "check:packets-all": "node internal/check-packets-all.mjs # runs check:packet-render over EVERY generated packet, not one hand-named file. The single-file gate SKIPs with no argument, so it was in package.json, passing in all 11 locales, and in neither gates:pre nor gates:post — it only ran when someone typed a filename. SKIPs when no packets are generated." + "check:packets-all": "node internal/check-packets-all.mjs # runs check:packet-render over EVERY generated packet, not one hand-named file. The single-file gate SKIPs with no argument, so it was in package.json, passing in all 11 locales, and in neither gates:pre nor gates:post — it only ran when someone typed a filename. SKIPs when no packets are generated.", + "check:poster-print-fallback": "node internal/check-poster-print-fallback.mjs # clicks the REAL poster print control with every posters/*.webp aborted, and asserts the preview RASTERISES from posters/.html instead of opening on \"Poster not available yet\". Needs a served tree built with posterSources:true; SKIPs otherwise." }, "devDependencies": { "@capacitor/android": "^7.6.9", diff --git a/plugin-designs/my-upg-100-list/poster-wall.vue b/plugin-designs/my-upg-100-list/poster-wall.vue index 16aec6ba9..c8517d619 100644 --- a/plugin-designs/my-upg-100-list/poster-wall.vue +++ b/plugin-designs/my-upg-100-list/poster-wall.vue @@ -30,9 +30,15 @@ * (~42MB). See IDEA-POSTER-EXPORT-404-ON-DROPPED-FOLDER-TRADEOFF: * bundling them pushed the tree to 80MB, git-packed to 57MiB, and the * catalog REJECTED the push — so the all-in version shipped nothing. - * Export and print-preview therefore 404 on a default drop and degrade - * honestly; set bundlePosters:true or point assetsBase at a host that - * serves posters/ to restore them. + * Export and print-preview no longer 404 on a default drop: BOTH now + * fall back to fetching posters/.html and rasterising it in the + * browser (library/packet/poster-raster.js). Print was the odd one out + * until 2026-09-24 — the same poster downloaded fine and PRINTED as + * "Poster not available yet." bundlePosters:true or an assetsBase that + * serves posters/ still short-circuits the fallback with the shipped webp. + * posters/.html — the poster SOURCE, what the fallback rasterises. Also not shipped by + * default (28 zones, 27.9MB raw), so on a drop with neither file the + * preview still refuses to open rather than printing a blank sheet. * The @error fallback to a labelled placeholder is still live and still the right behaviour — * it now covers the missing-poster case rather than the nothing-generated-yet case. */ @@ -267,6 +273,16 @@ async function renderFor(list, spec) { const EXPORT_SPEC = { widthIn: 8.5, heightIn: 12.75, dpi: 150 } // single-canvas, phone-safe const exportState = ref(null) // { label, phase, message, pct, kind } +// Blob URLs minted for a rasterised print preview. They CANNOT be revoked when the +// print window opens — the preview is still loading from them, and revoking +// early gives a blank sheet — so they are held until this element goes away. +// One poster is ~1.5MB as a blob; a reader printing a dozen in one session would +// otherwise pin ~18MB for the life of the page. +const printObjectUrls = [] +onBeforeUnmount(() => { + for (const u of printObjectUrls.splice(0)) { try { URL.revokeObjectURL(u) } catch { /* already gone */ } } +}) + // CARD STOCK for the prayer-card deck. The Driver asked to be able to "choose the // layout of the print dialog to choose the aspect ratio of these prayer cards", so // the stock is a user choice, not a constant. Poker (2.5x3.5in) is the default: it @@ -369,7 +385,40 @@ async function printPoster(list) { exportState.value = { label: list.label, kind: 'Poster', phase: 'fetch', message: 'preparing print preview', pct: 30 } try { - const url = posterUrl(list.id) + let url = posterUrl(list.id) + // ── THE SAME FALLBACK LADDER THE DOWNLOAD PATH ALREADY CLIMBS ─────────── + // ★ THE ASYMMETRY THIS FIXES. posters/*.webp is NOT shipped by default (42MB; + // bundling it pushed the tree to 80MB, git-packed to 57MiB, and the catalog + // rejected the push). The DOWNLOAD path handles that: PosterWall.vue fetches + // posters/.html and rasterises it in the browser. The PRINT path did not — + // it handed the a url it never checked and, on 404, replaced the whole + // preview with "Poster not available yet." + // So on a default drop the same poster DOWNLOADED fine and PRINTED as an error + // message. The card that recorded this (IDEA-POSTER-EXPORT-404-ON-DROPPED-FOLDER- + // TRADEOFF) calls it out precisely: "a print preview that opens on 'Poster not + // available yet' is a worse first impression than a failed download." + // + // Probing costs one HEAD-like GET that is almost always a cache hit when the + // image IS shipped, and only on a miss do we pay for the HTML. + let res = null + try { res = await fetch(url) } catch { /* offline/blocked — treated as a miss */ } + if (!res || !res.ok) { + exportState.value = { ...exportState.value, phase: 'render', + message: 'generating the poster', pct: 55 } + const htmlRes = await fetch(`${assetsBase.value}/posters/${list.id}.html`) + // Still honest when there is genuinely nothing to render: the preview only + // opens once we HAVE a poster, so the reader never sees a blank print dialog. + if (!htmlRes.ok) throw new Error(`poster not available (${htmlRes.status})`) + const { rasterPoster, looksRendered } = await import('@map/packet/poster-raster.js') + const blob = await rasterPoster(await htmlRes.text(), { scale: 2 }) + // ⚠ An SVG loaded through is an isolated document: a lost stylesheet makes + // every fill fall back to BLACK, with no error and a normal file size. Printing + // a black square is worse than failing, so verify pixels before opening the + // dialog — the same guard the download path uses. + if (!(await looksRendered(blob))) throw new Error('the generated poster rendered blank') + url = URL.createObjectURL(blob) + printObjectUrls.push(url) + } // Preview + print in a dedicated window: a single centered, page-fit image and an // onload -> print() so the dialog opens on the poster the user is looking at. The // poster is a 3ft square print (see the template) → @page portrait, image scaled to diff --git a/public/__gallery/index.html b/public/__gallery/index.html index 3299f8642..65c92403e 100644 --- a/public/__gallery/index.html +++ b/public/__gallery/index.html @@ -94,7 +94,7 @@ code{font-family:ui-monospace,Menlo,monospace} (function () { var TREE = "../doxa-maps", TOKEN_SRC = "window.MAP_TOKEN_URL", BAKED_TOKEN = "pk.eyJ1IjoiZ29zeXN0ZW1zIiwiYSI6ImNtZm9vM291czA3amQya3BzYW42YW9ibTcifQ.52WM0IpxY9FcB0zc9f1zbQ", API_BASE = "https://pray.doxa.life", ASSETS_BASE = "", QA = false; var DEFAULT_TOKEN_URL = '/api/maps/token'; - var BAKED = [{"b":"all-people-groups","s":"./all-people-groups/all-people-groups.js","i":"sha384-MTXYtlLgjWDT2Q4U9u2ud4gpjsE0l39I6dJxxAO/hXjMGcMp6KoECWeUhn4+Fl1Y","e":["all-people-groups"],"p":[{"p":"all-people-groups","e":"all-people-groups","u":"./all-people-groups/all-people-groups/index.html","d":"All 12,379 people groups (peoplegroups.org) in four colors — reached,","c":1,"em":{"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-MTXYtlLgjWDT2Q4U9u2ud4gpjsE0l39I6dJxxAO/hXjMGcMp6KoECWeUhn4+Fl1Y\" 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>"}}]},{"b":"big-picture","s":"./big-picture/big-picture.js","i":"sha384-voYmtWeACTFBJOOeqcbf5cuBKSjyskA89cjvm5qcvrx9IUFTAhLuICyRXUM6fL+Y","e":["bp-big-picture","bp-research-header","people-groups-grid"],"p":[{"p":"big-picture","e":"bp-big-picture","u":"./big-picture/big-picture/index.html","d":"The Cat-4 composite that PAIRS the two real capability elements of the","c":4,"em":{"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-voYmtWeACTFBJOOeqcbf5cuBKSjyskA89cjvm5qcvrx9IUFTAhLuICyRXUM6fL+Y\" 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>"},"in":[{"id":"big-picture","t":"Big Picture — research header ↔ people-groups grid (composite)","a":"","pr":{"profile":"big-picture","provider":"maplibre","instanceId":"bp-big-picture"},"e":"bp-big-picture","u":"./big-picture/big-picture/big-picture/index.html"},{"id":"frontier","t":"Big Picture — frontier accent","a":"","pr":{"profile":"big-picture","provider":"maplibre","instanceId":"bp-big-picture-frontier","accent":"#22d3ee","title":"Big Picture — Frontier Focus"},"e":"bp-big-picture","u":"./big-picture/big-picture/frontier/index.html"}]}]},{"b":"cities-internet","s":"./cities-internet/cities-internet.js","i":"sha384-yXvole+EYjOppLtZOqOW4pba/oWzbObcdkoSpYcnukHuARdg6R/qHzhOd5cpCJY0","e":["cities-internet-map"],"p":[{"p":"connectivity-list","e":"cities-internet-map","u":"./cities-internet/connectivity-list/index.html","d":"Countries where DX people groups live, grouped by region, showing measured internet penetration","c":1,"em":{"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-yXvole+EYjOppLtZOqOW4pba/oWzbObcdkoSpYcnukHuARdg6R/qHzhOd5cpCJY0\" 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>"}},{"p":"connectivity-map","e":"cities-internet-map","u":"./cities-internet/connectivity-map/index.html","d":"Every country shaded by measured internet penetration, with its named carriers and dominant","c":1,"em":{"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-yXvole+EYjOppLtZOqOW4pba/oWzbObcdkoSpYcnukHuARdg6R/qHzhOd5cpCJY0\" 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>"}},{"p":"data-tables","e":"cities-internet-map","u":"./cities-internet/data-tables/index.html","d":"Four validated research tables, one tab each, with sortable and filterable columns, CSV and JSON","c":1,"em":{"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-yXvole+EYjOppLtZOqOW4pba/oWzbObcdkoSpYcnukHuARdg6R/qHzhOd5cpCJY0\" 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>"}}]},{"b":"country-posters","s":"./country-posters/country-posters.js","i":"sha384-5a7eHbJrOmwwGTDlhvBUGu2iXs7mujbuBUpY5fRC2vBmjByzaRzq05hQr502uMIj","e":["country-posters-map"],"p":[{"p":"countries-map","e":"country-posters-map","u":"./country-posters/countries-map/index.html","d":"The researcher's workbench retargeted from people groups to COUNTRIES — region","c":1,"em":{"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-5a7eHbJrOmwwGTDlhvBUGu2iXs7mujbuBUpY5fRC2vBmjByzaRzq05hQr502uMIj\" 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>"}},{"p":"country-poster-wall","e":"country-posters-map","u":"./country-posters/country-poster-wall/index.html","d":"One printable card per country, grouped into COLLAPSIBLE regional sections so the","c":1,"em":{"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-5a7eHbJrOmwwGTDlhvBUGu2iXs7mujbuBUpY5fRC2vBmjByzaRzq05hQr502uMIj\" 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>"}},{"p":"country-posters-mfe","e":"country-posters-mfe","u":"./country-posters/country-posters-mfe/index.html","d":"Country Posters as ONE two-tab element — the countries map and the printable","c":4,"em":{"iframe":"\u003ciframe src=\"./country-posters/country-posters-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=\"./country-posters/country-posters.js\" integrity=\"sha384-5a7eHbJrOmwwGTDlhvBUGu2iXs7mujbuBUpY5fRC2vBmjByzaRzq05hQr502uMIj\" crossorigin=\"anonymous\">\u003c/script>\n\u003ccountry-posters-map profile-config='{\"profile\":\"country-posters-mfe\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/country-posters-map>"}}]},{"b":"dashboard-plus-grid","s":"./dashboard-plus-grid/dashboard-plus-grid.js","i":"sha384-q5UVHN5QptVZvJHqrqIFgRpWCj2HRQGiTAO/JYxf5OHmg6XegLjaBMk1AZXWqHRG","e":["dashboard-plus-grid"],"p":[{"p":"dashboard-plus-grid","e":"dashboard-plus-grid","u":"./dashboard-plus-grid/dashboard-plus-grid/index.html","d":"Both children are IMPORTED DIRECTLY (compiled into this ONE bundle — no runtime bundle","c":4,"em":{"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-q5UVHN5QptVZvJHqrqIFgRpWCj2HRQGiTAO/JYxf5OHmg6XegLjaBMk1AZXWqHRG\" 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>"},"in":[{"id":"default","t":"default","a":"","pr":{"profile":"dashboard-plus-grid"},"e":"dashboard-plus-grid","u":"./dashboard-plus-grid/dashboard-plus-grid/default/index.html"}]}]},{"b":"demo-map","s":"./demo-map/demo-map.js","i":"sha384-bdvQUz/ahi3yvFWY4niHIt4hJ/2Thd5T/6KP/mobZrtEKchO1XclRQQcc35jt9Cd","e":["demo-map"],"p":[{"p":"demo-map","e":"demo-map","u":"./demo-map/demo-map/index.html","d":"Simple two-tab demo map. Tab 1 colors pins by religion (shared","c":2,"em":{"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-bdvQUz/ahi3yvFWY4niHIt4hJ/2Thd5T/6KP/mobZrtEKchO1XclRQQcc35jt9Cd\" 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>"},"in":[{"id":"maplibre","t":"Demo map — MapLibre (token-free)","a":"","pr":{"profile":"demo-map","provider":"maplibre","instanceId":"demo-maplibre"},"e":"demo-map","u":"./demo-map/demo-map/maplibre/index.html"}]}]},{"b":"doxa-maps-spa","s":"./doxa-maps-spa/doxa-maps-spa.js","i":"sha384-1f+/rBSGo/1jyUmRmGg34CIU/PcGkB7M3jah1DO0ocb5O0zj81wpUemXcz4WAFz8","e":["doxa-maps-spa"],"p":[{"p":"doxa-maps-spa","e":"doxa-maps-spa","u":"./doxa-maps-spa/doxa-maps-spa/index.html","d":"The DX-maps app itself: one element whose vertical-tab rail nests every other","c":5,"em":{"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-1f+/rBSGo/1jyUmRmGg34CIU/PcGkB7M3jah1DO0ocb5O0zj81wpUemXcz4WAFz8\" 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>"},"in":[{"id":"app","t":"DX-Maps SPA — Big Picture + every research map (app-shell)","a":"","pr":{"profile":"doxa-maps-spa","provider":"maplibre","instanceId":"doxa-maps-spa-app","title":"DX-Maps"},"e":"doxa-maps-spa","u":"./doxa-maps-spa/doxa-maps-spa/app/index.html"}]}]},{"b":"doxa-research-map","s":"./doxa-research-map/doxa-research-map.js","i":"sha384-CTfwl1rhm6JTKoUkSjawyQfHWYf55RBcwSDBYmVyQQ6f64Ag3v2dn5eV18yQSKwD","e":["doxa-research-map"],"p":[{"p":"research-map","e":"doxa-research-map","u":"./doxa-research-map/research-map/index.html","d":"The researcher's workbench: every piece a missiologist, demographer or","c":3,"em":{"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-CTfwl1rhm6JTKoUkSjawyQfHWYf55RBcwSDBYmVyQQ6f64Ag3v2dn5eV18yQSKwD\" 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>"},"in":[{"id":"maplibre","t":"Research map — MapLibre (token-free, no search bar)","a":"","pr":{"profile":"research-map","provider":"maplibre","instanceId":"research-map-maplibre"},"e":"doxa-research-map","u":"./doxa-research-map/research-map/maplibre/index.html"}]}]},{"b":"doxa-simple-map","s":"./doxa-simple-map/doxa-simple-map.js","i":"sha384-edWUmiU1eWxE8Ju7FFg5PDfmw21E2NLoVaYmCgM8gXlm8S/9rowTJ7045NvdeIQA","e":["doxa-map","doxa-simple-map"],"p":[{"p":"doxa-simple-map","e":"doxa-map","u":"./doxa-simple-map/doxa-simple-map/index.html","d":"The simple world map, shipped as three presets off ONE prop table —","c":2,"em":{"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-edWUmiU1eWxE8Ju7FFg5PDfmw21E2NLoVaYmCgM8gXlm8S/9rowTJ7045NvdeIQA\" 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>"},"in":[{"id":"prayer","t":"Prayer Map","a":"https://pray.doxa.life","pr":{"profile":"doxa-simple-map","instanceId":"embed-prayer","dataSource":"pray-tools","tabs":[{"id":"prayer","colorStrategy":"prayer","legend":"prayer","popup":"prayer"}]},"e":"doxa-map","u":"./doxa-simple-map/doxa-simple-map/prayer/index.html"},{"id":"engagement","t":"Engagement Map","a":"https://pray.doxa.life","pr":{"profile":"doxa-simple-map","instanceId":"embed-engagement","dataSource":"pray-tools","tabs":[{"id":"engagement","colorStrategy":"engagement","legend":"engagement","popup":"engagement"}]},"e":"doxa-map","u":"./doxa-simple-map/doxa-simple-map/engagement/index.html"},{"id":"adoption","t":"Adoption Map","a":"https://pray.doxa.life","pr":{"profile":"doxa-simple-map","instanceId":"embed-adoption","dataSource":"pray-tools","tabs":[{"id":"adoption","colorStrategy":"adoption","legend":"adoption","popup":"adoption"}]},"e":"doxa-map","u":"./doxa-simple-map/doxa-simple-map/adoption/index.html"}]}]},{"b":"doxa-vision-card","s":"./doxa-vision-card/doxa-vision-card.js","i":"sha384-2mza3cltN5LQQIrlENG/IVL6Icd9zzcFve3E8R8VWuCdYOGW9uGKFvxcbu6eFfwn","e":["doxa-vision-card"],"p":[{"p":"doxa-vision-card","e":"doxa-vision-card","u":"./doxa-vision-card/doxa-vision-card/index.html","d":"The Capability-1 example: ONE folder -> ONE bundle -> ONE element.","c":2,"em":{"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>"},"in":[{"id":"default","t":"Vision card — reach at a glance","a":"","pr":{"profile":"doxa-vision-card","provider":"maplibre","instanceId":"vision-card-default"},"e":"doxa-vision-card","u":"./doxa-vision-card/doxa-vision-card/default/index.html"},{"id":"frontier","t":"Vision card — frontier accent","a":"","pr":{"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"}]},"e":"doxa-vision-card","u":"./doxa-vision-card/doxa-vision-card/frontier/index.html"}]}]},{"b":"golden-path-check","s":"./golden-path-check/golden-path-check.js","i":"sha384-1V/sT5SkV0U9yTCK9ELIOFfU1ZIJkInIF6nG3UllJ4dxax3RsEAupSGLJEFK6e14","e":["golden-path-check"],"p":[{"p":"golden-path-check","e":"golden-path-check","u":"./golden-path-check/golden-path-check/index.html","d":"A live self-test of the develop-a-plugin-and-see-it-live path: it reads the built","c":1,"em":{"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>"}}]},{"b":"gospel-resources","s":"./gospel-resources/gospel-resources.js","i":"sha384-uljHGYhda+DqMVTe8uCnYCfMNupgLezn47K71zOn+2H6hPaGpILlh/LtNU4wlqrY","e":["gospel-resources-map"],"p":[{"p":"charts","e":"gospel-resources-map","u":"./gospel-resources/charts/index.html","d":"The gap by LANGUAGE (ISO 639-3) rather than by people group — because one translation serves every","c":1,"em":{"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-uljHGYhda+DqMVTe8uCnYCfMNupgLezn47K71zOn+2H6hPaGpILlh/LtNU4wlqrY\" 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>"}},{"p":"data-tables","e":"gospel-resources-map","u":"./gospel-resources/data-tables/index.html","d":"Two validated tables: what resources exist per people group, and whether that access is keeping","c":1,"em":{"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-uljHGYhda+DqMVTe8uCnYCfMNupgLezn47K71zOn+2H6hPaGpILlh/LtNU4wlqrY\" 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>"}},{"p":"resources-list","e":"gospel-resources-map","u":"./gospel-resources/resources-list/index.html","d":"Which DX people groups have scripture in their own language, and which have none. The zero-resource","c":1,"em":{"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-uljHGYhda+DqMVTe8uCnYCfMNupgLezn47K71zOn+2H6hPaGpILlh/LtNU4wlqrY\" 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>"}},{"p":"resources-map","e":"gospel-resources-map","u":"./gospel-resources/resources-map/index.html","d":"Every country shaded by how much of its unengaged population has NO gospel resource in their own","c":1,"em":{"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-uljHGYhda+DqMVTe8uCnYCfMNupgLezn47K71zOn+2H6hPaGpILlh/LtNU4wlqrY\" 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>"}}]},{"b":"my-upg-100-list","s":"./my-upg-100-list/my-upg-100-list.js","i":"sha384-DTQvsXU3C5sstv8K7pnmiFWMP23nSlwYzIHbwpVoqQzQc+7tGx9IQvPXbMqAPA5p","e":["my-upg-100-list-map"],"p":[{"p":"poster-wall","e":"my-upg-100-list-map","u":"./my-upg-100-list/poster-wall/index.html","d":"A wall of printable poster cards, one per 100-list entry, each with a \"Show on map\" action that","c":1,"em":{"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-DTQvsXU3C5sstv8K7pnmiFWMP23nSlwYzIHbwpVoqQzQc+7tGx9IQvPXbMqAPA5p\" 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>"}},{"p":"upg-100-list","e":"my-upg-100-list-map","u":"./my-upg-100-list/upg-100-list/index.html","d":"A personal unreached-people-groups list painted as true boundary polygons —","c":1,"em":{"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-DTQvsXU3C5sstv8K7pnmiFWMP23nSlwYzIHbwpVoqQzQc+7tGx9IQvPXbMqAPA5p\" 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>"}},{"p":"upg-100-mfe","e":"my-upg-100-list-map","u":"./my-upg-100-list/upg-100-mfe/index.html","d":"The standalone, shareable and embeddable composite of the my-upg-100-list family — it nests the map","c":4,"em":{"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-DTQvsXU3C5sstv8K7pnmiFWMP23nSlwYzIHbwpVoqQzQc+7tGx9IQvPXbMqAPA5p\" 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>"}}]},{"b":"people-groups-grid","s":"./people-groups-grid/people-groups-grid.js","i":"sha384-ss5PmeSkKuxafBwvxZG3r7roP0OB/oVGwFbfrHnydEhjbtrlB4eisdsPXEyCJF37","e":["people-groups-grid"],"p":[{"p":"people-groups-grid","e":"people-groups-grid","u":"./people-groups-grid/people-groups-grid/index.html","d":"The people-groups grid as an owned custom element: card list, search and four","c":2,"em":{"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-ss5PmeSkKuxafBwvxZG3r7roP0OB/oVGwFbfrHnydEhjbtrlB4eisdsPXEyCJF37\" 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>"},"in":[{"id":"people-groups-grid","t":"People Groups Grid — standalone (own search + 4 dropdowns)","a":"","pr":{"profile":"people-groups-grid","provider":"maplibre","instanceId":"people-groups-grid","pray-base-url":"https://pray.doxa.life"},"e":"people-groups-grid","u":"./people-groups-grid/people-groups-grid/people-groups-grid/index.html"},{"id":"driven","t":"People Groups Grid — externally driven (controls off, props/events)","a":"","pr":{"profile":"people-groups-grid","provider":"maplibre","instanceId":"people-groups-grid-driven","pray-base-url":"https://pray.doxa.life","show-search":"false","show-filters":"false"},"e":"people-groups-grid","u":"./people-groups-grid/people-groups-grid/driven/index.html"}]}]},{"b":"plugin-studio","s":"./plugin-studio/plugin-studio.js","i":"sha384-2RlLFRU2XdjBN7w+FPguj8INgj57JFg4IFT2AmdefGnR9QQLehbiiAffV45LcsFH","e":["plugin-studio"],"p":[{"p":"plugin-studio","e":"plugin-studio","u":"./plugin-studio/plugin-studio/index.html","d":"The developer's viewing surface: a sidebar that is the composability ladder","c":5,"em":{"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>"},"in":[{"id":"studio","t":"Plugin Studio — every element by capability 5 -> 1 (developer studio)","a":"","pr":{"profile":"plugin-studio","provider":"maplibre","instanceId":"plugin-studio","title":"Plugin Studio"},"e":"plugin-studio","u":"./plugin-studio/plugin-studio/studio/index.html"}]}]},{"b":"prayer-walk-planner","s":"./prayer-walk-planner/prayer-walk-planner.js","i":"sha384-F0+r4avX8xkXp0hBpU5EBPU0InMRCObIn2Ieh9HJNn1r2amk8/qHmJ68WuNfsirC","e":["prayer-walk-planner"],"p":[{"p":"prayer-walk-planner","e":"prayer-walk-planner","u":"./prayer-walk-planner/prayer-walk-planner/index.html","d":"A simple polygon-drawing tool for planning prayer-walking routes.","c":1,"em":{"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>"}}]},{"b":"regions-dashboard","s":"./regions-dashboard/regions-dashboard.js","i":"sha384-n3kInpuswr5SZUqmljlIdNNK0Yc+ZRAGupCSV38rG223iKRdhEPBJlV9HyZU4/+3","e":["regions-dashboard"],"p":[{"p":"region-dashboards","e":"regions-dashboard","u":"./regions-dashboard/region-dashboards/index.html","d":"The dashboard half of the Driver's 2-tab Regions element: given a region (or a","c":1,"em":{"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-n3kInpuswr5SZUqmljlIdNNK0Yc+ZRAGupCSV38rG223iKRdhEPBJlV9HyZU4/+3\" 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>"}},{"p":"regions-list","e":"regions-dashboard","u":"./regions-dashboard/regions-list/index.html","d":"A refactor of DX-life's /regions index page (app/pages/regions/index.vue) into","c":1,"em":{"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-n3kInpuswr5SZUqmljlIdNNK0Yc+ZRAGupCSV38rG223iKRdhEPBJlV9HyZU4/+3\" 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>"}},{"p":"regions-mfe","e":"regions-dashboard","u":"./regions-dashboard/regions-mfe/index.html","d":"The composite the Driver asked for: ONE element carrying the SELECT VIEW switcher","c":4,"em":{"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-n3kInpuswr5SZUqmljlIdNNK0Yc+ZRAGupCSV38rG223iKRdhEPBJlV9HyZU4/+3\" 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>"}}]},{"b":"research-dashboard","s":"./research-dashboard/research-dashboard.js","i":"sha384-cMZfw0g3/v0hHkyHQhHYiv9GeD7hvFaUD0qF/G3FowqUNjgDykvI+btwOIu/p6Qy","e":["research-dashboard-map"],"p":[{"p":"research-dashboard","e":"research-dashboard-map","u":"./research-dashboard/research-dashboard/index.html","d":"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.","c":3,"em":{"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-cMZfw0g3/v0hHkyHQhHYiv9GeD7hvFaUD0qF/G3FowqUNjgDykvI+btwOIu/p6Qy\" 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>"}}]},{"b":"research-map-plus-grid","s":"./research-map-plus-grid/research-map-plus-grid.js","i":"sha384-sOkaMV0UFr2uNXfoJpRvaD+gHD6xFlkmpR7MzEwwFdarYdid8aN9Nj1Y8TqQJuFo","e":["research-map-plus-grid"],"p":[{"p":"research-map-plus-grid","e":"research-map-plus-grid","u":"./research-map-plus-grid/research-map-plus-grid/index.html","d":"The monolithic 7-tab research map (cap-3) on top, the People Groups grid beneath,","c":4,"em":{"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>"},"in":[{"id":"default","t":"default","a":"","pr":{"profile":"research-map-plus-grid"},"e":"research-map-plus-grid","u":"./research-map-plus-grid/research-map-plus-grid/default/index.html"}]}]},{"b":"stack-demo","s":"./stack-demo/stack-demo.js","i":"sha384-gnwM6s+puf1K60Nl7crQcC2QC+9BxwpkaTx4OepLZ8VUCraZc+aRlWpsb6nj6Gyf","e":["stack-demo"],"p":[{"p":"stack-demo","e":"stack-demo","u":"./stack-demo/stack-demo/index.html","d":"Groups TWO independent elements TOP-TO-BOTTOM so you can embed the pair on a page and","c":4,"em":{"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>"},"in":[{"id":"pair","t":"pair","a":"","pr":{"profile":"stack-demo"},"e":"stack-demo","u":"./stack-demo/stack-demo/pair/index.html"}]}]},{"b":"template-bundle","s":"./template-bundle/template-bundle.js","i":"sha384-4YT4Amt8yc0KANs5xlODSxpkWKYgWWCWd9B0CNiHCZebzvGbXp4fS+wYtPbqJJx7","e":["template-bundle"],"p":[{"p":"template-map-a","e":"template-bundle","u":"./template-bundle/template-map-a/index.html","d":"Minimal example profile A — a colored placeholder, no Mapbox or data.","c":1,"em":{"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-4YT4Amt8yc0KANs5xlODSxpkWKYgWWCWd9B0CNiHCZebzvGbXp4fS+wYtPbqJJx7\" 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>"}},{"p":"template-map-b","e":"template-bundle","u":"./template-bundle/template-map-b/index.html","d":"Minimal example profile B — a second profile in the same bundle.","c":1,"em":{"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-4YT4Amt8yc0KANs5xlODSxpkWKYgWWCWd9B0CNiHCZebzvGbXp4fS+wYtPbqJJx7\" 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>"}}]},{"b":"upg-neighbor","s":"./upg-neighbor/upg-neighbor.js","i":"sha384-JDJr4qoVZuiSi/rvgdzeuUNrzf7vjPdyh/g8dg7X8RHkZk/Y+tYXIQ3gpEzrU07q","e":["upg-neighbor"],"p":[{"p":"upg-neighbor","e":"upg-neighbor","u":"./upg-neighbor/upg-neighbor/index.html","d":"Rescues the five pre-bundler experimental maps that live inside the legacy","c":2,"em":{"iframe":"\u003ciframe src=\"./upg-neighbor/upg-neighbor/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=\"./upg-neighbor/upg-neighbor.js\" integrity=\"sha384-JDJr4qoVZuiSi/rvgdzeuUNrzf7vjPdyh/g8dg7X8RHkZk/Y+tYXIQ3gpEzrU07q\" crossorigin=\"anonymous\">\u003c/script>\n\u003cupg-neighbor profile-config='{\"profile\":\"upg-neighbor\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/upg-neighbor>"},"in":[{"id":"send-map","t":"Send Map (legacy)","a":"","pr":{"profile":"upg-neighbor","legacyElement":"send-map","legacyTitle":"Send Map"},"e":"upg-neighbor","u":"./upg-neighbor/upg-neighbor/send-map/index.html"},{"id":"upg-neighbors","t":"UPG Neighbors (legacy)","a":"","pr":{"profile":"upg-neighbor","legacyElement":"upg-neighbors","legacyTitle":"UPG Neighbors"},"e":"upg-neighbor","u":"./upg-neighbor/upg-neighbor/upg-neighbors/index.html"},{"id":"lang-cluster","t":"Language Clusters (legacy)","a":"","pr":{"profile":"upg-neighbor","legacyElement":"lang-cluster","legacyTitle":"Language Clusters"},"e":"upg-neighbor","u":"./upg-neighbor/upg-neighbor/lang-cluster/index.html"},{"id":"bloom-cockpit","t":"Bloom Cockpit (legacy)","a":"","pr":{"profile":"upg-neighbor","legacyElement":"bloom-cockpit","legacyTitle":"Bloom Cockpit"},"e":"upg-neighbor","u":"./upg-neighbor/upg-neighbor/bloom-cockpit/index.html"},{"id":"flower-mesh","t":"Flower Mesh (legacy)","a":"","pr":{"profile":"upg-neighbor","legacyElement":"flower-mesh","legacyTitle":"Flower Mesh"},"e":"upg-neighbor","u":"./upg-neighbor/upg-neighbor/flower-mesh/index.html"}]}]}]; + var BAKED = [{"b":"all-people-groups","s":"./all-people-groups/all-people-groups.js","i":"sha384-MTXYtlLgjWDT2Q4U9u2ud4gpjsE0l39I6dJxxAO/hXjMGcMp6KoECWeUhn4+Fl1Y","e":["all-people-groups"],"p":[{"p":"all-people-groups","e":"all-people-groups","u":"./all-people-groups/all-people-groups/index.html","d":"All 12,379 people groups (peoplegroups.org) in four colors — reached,","c":1,"em":{"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-MTXYtlLgjWDT2Q4U9u2ud4gpjsE0l39I6dJxxAO/hXjMGcMp6KoECWeUhn4+Fl1Y\" 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>"}}]},{"b":"big-picture","s":"./big-picture/big-picture.js","i":"sha384-voYmtWeACTFBJOOeqcbf5cuBKSjyskA89cjvm5qcvrx9IUFTAhLuICyRXUM6fL+Y","e":["bp-big-picture","bp-research-header","people-groups-grid"],"p":[{"p":"big-picture","e":"bp-big-picture","u":"./big-picture/big-picture/index.html","d":"The Cat-4 composite that PAIRS the two real capability elements of the","c":4,"em":{"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-voYmtWeACTFBJOOeqcbf5cuBKSjyskA89cjvm5qcvrx9IUFTAhLuICyRXUM6fL+Y\" 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>"},"in":[{"id":"big-picture","t":"Big Picture — research header ↔ people-groups grid (composite)","a":"","pr":{"profile":"big-picture","provider":"maplibre","instanceId":"bp-big-picture"},"e":"bp-big-picture","u":"./big-picture/big-picture/big-picture/index.html"},{"id":"frontier","t":"Big Picture — frontier accent","a":"","pr":{"profile":"big-picture","provider":"maplibre","instanceId":"bp-big-picture-frontier","accent":"#22d3ee","title":"Big Picture — Frontier Focus"},"e":"bp-big-picture","u":"./big-picture/big-picture/frontier/index.html"}]}]},{"b":"cities-internet","s":"./cities-internet/cities-internet.js","i":"sha384-yXvole+EYjOppLtZOqOW4pba/oWzbObcdkoSpYcnukHuARdg6R/qHzhOd5cpCJY0","e":["cities-internet-map"],"p":[{"p":"connectivity-list","e":"cities-internet-map","u":"./cities-internet/connectivity-list/index.html","d":"Countries where DX people groups live, grouped by region, showing measured internet penetration","c":1,"em":{"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-yXvole+EYjOppLtZOqOW4pba/oWzbObcdkoSpYcnukHuARdg6R/qHzhOd5cpCJY0\" 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>"}},{"p":"connectivity-map","e":"cities-internet-map","u":"./cities-internet/connectivity-map/index.html","d":"Every country shaded by measured internet penetration, with its named carriers and dominant","c":1,"em":{"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-yXvole+EYjOppLtZOqOW4pba/oWzbObcdkoSpYcnukHuARdg6R/qHzhOd5cpCJY0\" 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>"}},{"p":"data-tables","e":"cities-internet-map","u":"./cities-internet/data-tables/index.html","d":"Four validated research tables, one tab each, with sortable and filterable columns, CSV and JSON","c":1,"em":{"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-yXvole+EYjOppLtZOqOW4pba/oWzbObcdkoSpYcnukHuARdg6R/qHzhOd5cpCJY0\" 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>"}}]},{"b":"country-posters","s":"./country-posters/country-posters.js","i":"sha384-5a7eHbJrOmwwGTDlhvBUGu2iXs7mujbuBUpY5fRC2vBmjByzaRzq05hQr502uMIj","e":["country-posters-map"],"p":[{"p":"countries-map","e":"country-posters-map","u":"./country-posters/countries-map/index.html","d":"The researcher's workbench retargeted from people groups to COUNTRIES — region","c":1,"em":{"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-5a7eHbJrOmwwGTDlhvBUGu2iXs7mujbuBUpY5fRC2vBmjByzaRzq05hQr502uMIj\" 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>"}},{"p":"country-poster-wall","e":"country-posters-map","u":"./country-posters/country-poster-wall/index.html","d":"One printable card per country, grouped into COLLAPSIBLE regional sections so the","c":1,"em":{"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-5a7eHbJrOmwwGTDlhvBUGu2iXs7mujbuBUpY5fRC2vBmjByzaRzq05hQr502uMIj\" 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>"}},{"p":"country-posters-mfe","e":"country-posters-mfe","u":"./country-posters/country-posters-mfe/index.html","d":"Country Posters as ONE two-tab element — the countries map and the printable","c":4,"em":{"iframe":"\u003ciframe src=\"./country-posters/country-posters-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=\"./country-posters/country-posters.js\" integrity=\"sha384-5a7eHbJrOmwwGTDlhvBUGu2iXs7mujbuBUpY5fRC2vBmjByzaRzq05hQr502uMIj\" crossorigin=\"anonymous\">\u003c/script>\n\u003ccountry-posters-map profile-config='{\"profile\":\"country-posters-mfe\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/country-posters-map>"}}]},{"b":"dashboard-plus-grid","s":"./dashboard-plus-grid/dashboard-plus-grid.js","i":"sha384-q5UVHN5QptVZvJHqrqIFgRpWCj2HRQGiTAO/JYxf5OHmg6XegLjaBMk1AZXWqHRG","e":["dashboard-plus-grid"],"p":[{"p":"dashboard-plus-grid","e":"dashboard-plus-grid","u":"./dashboard-plus-grid/dashboard-plus-grid/index.html","d":"Both children are IMPORTED DIRECTLY (compiled into this ONE bundle — no runtime bundle","c":4,"em":{"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-q5UVHN5QptVZvJHqrqIFgRpWCj2HRQGiTAO/JYxf5OHmg6XegLjaBMk1AZXWqHRG\" 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>"},"in":[{"id":"default","t":"default","a":"","pr":{"profile":"dashboard-plus-grid"},"e":"dashboard-plus-grid","u":"./dashboard-plus-grid/dashboard-plus-grid/default/index.html"}]}]},{"b":"demo-map","s":"./demo-map/demo-map.js","i":"sha384-bdvQUz/ahi3yvFWY4niHIt4hJ/2Thd5T/6KP/mobZrtEKchO1XclRQQcc35jt9Cd","e":["demo-map"],"p":[{"p":"demo-map","e":"demo-map","u":"./demo-map/demo-map/index.html","d":"Simple two-tab demo map. Tab 1 colors pins by religion (shared","c":2,"em":{"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-bdvQUz/ahi3yvFWY4niHIt4hJ/2Thd5T/6KP/mobZrtEKchO1XclRQQcc35jt9Cd\" 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>"},"in":[{"id":"maplibre","t":"Demo map — MapLibre (token-free)","a":"","pr":{"profile":"demo-map","provider":"maplibre","instanceId":"demo-maplibre"},"e":"demo-map","u":"./demo-map/demo-map/maplibre/index.html"}]}]},{"b":"doxa-maps-spa","s":"./doxa-maps-spa/doxa-maps-spa.js","i":"sha384-1f+/rBSGo/1jyUmRmGg34CIU/PcGkB7M3jah1DO0ocb5O0zj81wpUemXcz4WAFz8","e":["doxa-maps-spa"],"p":[{"p":"doxa-maps-spa","e":"doxa-maps-spa","u":"./doxa-maps-spa/doxa-maps-spa/index.html","d":"The DX-maps app itself: one element whose vertical-tab rail nests every other","c":5,"em":{"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-1f+/rBSGo/1jyUmRmGg34CIU/PcGkB7M3jah1DO0ocb5O0zj81wpUemXcz4WAFz8\" 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>"},"in":[{"id":"app","t":"DX-Maps SPA — Big Picture + every research map (app-shell)","a":"","pr":{"profile":"doxa-maps-spa","provider":"maplibre","instanceId":"doxa-maps-spa-app","title":"DX-Maps"},"e":"doxa-maps-spa","u":"./doxa-maps-spa/doxa-maps-spa/app/index.html"}]}]},{"b":"doxa-research-map","s":"./doxa-research-map/doxa-research-map.js","i":"sha384-CTfwl1rhm6JTKoUkSjawyQfHWYf55RBcwSDBYmVyQQ6f64Ag3v2dn5eV18yQSKwD","e":["doxa-research-map"],"p":[{"p":"research-map","e":"doxa-research-map","u":"./doxa-research-map/research-map/index.html","d":"The researcher's workbench: every piece a missiologist, demographer or","c":3,"em":{"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-CTfwl1rhm6JTKoUkSjawyQfHWYf55RBcwSDBYmVyQQ6f64Ag3v2dn5eV18yQSKwD\" 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>"},"in":[{"id":"maplibre","t":"Research map — MapLibre (token-free, no search bar)","a":"","pr":{"profile":"research-map","provider":"maplibre","instanceId":"research-map-maplibre"},"e":"doxa-research-map","u":"./doxa-research-map/research-map/maplibre/index.html"}]}]},{"b":"doxa-simple-map","s":"./doxa-simple-map/doxa-simple-map.js","i":"sha384-edWUmiU1eWxE8Ju7FFg5PDfmw21E2NLoVaYmCgM8gXlm8S/9rowTJ7045NvdeIQA","e":["doxa-map","doxa-simple-map"],"p":[{"p":"doxa-simple-map","e":"doxa-map","u":"./doxa-simple-map/doxa-simple-map/index.html","d":"The simple world map, shipped as three presets off ONE prop table —","c":2,"em":{"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-edWUmiU1eWxE8Ju7FFg5PDfmw21E2NLoVaYmCgM8gXlm8S/9rowTJ7045NvdeIQA\" 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>"},"in":[{"id":"prayer","t":"Prayer Map","a":"https://pray.doxa.life","pr":{"profile":"doxa-simple-map","instanceId":"embed-prayer","dataSource":"pray-tools","tabs":[{"id":"prayer","colorStrategy":"prayer","legend":"prayer","popup":"prayer"}]},"e":"doxa-map","u":"./doxa-simple-map/doxa-simple-map/prayer/index.html"},{"id":"engagement","t":"Engagement Map","a":"https://pray.doxa.life","pr":{"profile":"doxa-simple-map","instanceId":"embed-engagement","dataSource":"pray-tools","tabs":[{"id":"engagement","colorStrategy":"engagement","legend":"engagement","popup":"engagement"}]},"e":"doxa-map","u":"./doxa-simple-map/doxa-simple-map/engagement/index.html"},{"id":"adoption","t":"Adoption Map","a":"https://pray.doxa.life","pr":{"profile":"doxa-simple-map","instanceId":"embed-adoption","dataSource":"pray-tools","tabs":[{"id":"adoption","colorStrategy":"adoption","legend":"adoption","popup":"adoption"}]},"e":"doxa-map","u":"./doxa-simple-map/doxa-simple-map/adoption/index.html"}]}]},{"b":"doxa-vision-card","s":"./doxa-vision-card/doxa-vision-card.js","i":"sha384-2mza3cltN5LQQIrlENG/IVL6Icd9zzcFve3E8R8VWuCdYOGW9uGKFvxcbu6eFfwn","e":["doxa-vision-card"],"p":[{"p":"doxa-vision-card","e":"doxa-vision-card","u":"./doxa-vision-card/doxa-vision-card/index.html","d":"The Capability-1 example: ONE folder -> ONE bundle -> ONE element.","c":2,"em":{"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>"},"in":[{"id":"default","t":"Vision card — reach at a glance","a":"","pr":{"profile":"doxa-vision-card","provider":"maplibre","instanceId":"vision-card-default"},"e":"doxa-vision-card","u":"./doxa-vision-card/doxa-vision-card/default/index.html"},{"id":"frontier","t":"Vision card — frontier accent","a":"","pr":{"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"}]},"e":"doxa-vision-card","u":"./doxa-vision-card/doxa-vision-card/frontier/index.html"}]}]},{"b":"golden-path-check","s":"./golden-path-check/golden-path-check.js","i":"sha384-1V/sT5SkV0U9yTCK9ELIOFfU1ZIJkInIF6nG3UllJ4dxax3RsEAupSGLJEFK6e14","e":["golden-path-check"],"p":[{"p":"golden-path-check","e":"golden-path-check","u":"./golden-path-check/golden-path-check/index.html","d":"A live self-test of the develop-a-plugin-and-see-it-live path: it reads the built","c":1,"em":{"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>"}}]},{"b":"gospel-resources","s":"./gospel-resources/gospel-resources.js","i":"sha384-uljHGYhda+DqMVTe8uCnYCfMNupgLezn47K71zOn+2H6hPaGpILlh/LtNU4wlqrY","e":["gospel-resources-map"],"p":[{"p":"charts","e":"gospel-resources-map","u":"./gospel-resources/charts/index.html","d":"The gap by LANGUAGE (ISO 639-3) rather than by people group — because one translation serves every","c":1,"em":{"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-uljHGYhda+DqMVTe8uCnYCfMNupgLezn47K71zOn+2H6hPaGpILlh/LtNU4wlqrY\" 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>"}},{"p":"data-tables","e":"gospel-resources-map","u":"./gospel-resources/data-tables/index.html","d":"Two validated tables: what resources exist per people group, and whether that access is keeping","c":1,"em":{"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-uljHGYhda+DqMVTe8uCnYCfMNupgLezn47K71zOn+2H6hPaGpILlh/LtNU4wlqrY\" 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>"}},{"p":"resources-list","e":"gospel-resources-map","u":"./gospel-resources/resources-list/index.html","d":"Which DX people groups have scripture in their own language, and which have none. The zero-resource","c":1,"em":{"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-uljHGYhda+DqMVTe8uCnYCfMNupgLezn47K71zOn+2H6hPaGpILlh/LtNU4wlqrY\" 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>"}},{"p":"resources-map","e":"gospel-resources-map","u":"./gospel-resources/resources-map/index.html","d":"Every country shaded by how much of its unengaged population has NO gospel resource in their own","c":1,"em":{"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-uljHGYhda+DqMVTe8uCnYCfMNupgLezn47K71zOn+2H6hPaGpILlh/LtNU4wlqrY\" 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>"}}]},{"b":"my-upg-100-list","s":"./my-upg-100-list/my-upg-100-list.js","i":"sha384-eIh/eQ3SOnMBPQh5z4wAfhFK1MScit5ksl9pVBqHe3wPEuT48xlPwZz1OGwPSICH","e":["my-upg-100-list-map"],"p":[{"p":"poster-wall","e":"my-upg-100-list-map","u":"./my-upg-100-list/poster-wall/index.html","d":"A wall of printable poster cards, one per 100-list entry, each with a \"Show on map\" action that","c":1,"em":{"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-eIh/eQ3SOnMBPQh5z4wAfhFK1MScit5ksl9pVBqHe3wPEuT48xlPwZz1OGwPSICH\" 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>"}},{"p":"upg-100-list","e":"my-upg-100-list-map","u":"./my-upg-100-list/upg-100-list/index.html","d":"A personal unreached-people-groups list painted as true boundary polygons —","c":1,"em":{"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-eIh/eQ3SOnMBPQh5z4wAfhFK1MScit5ksl9pVBqHe3wPEuT48xlPwZz1OGwPSICH\" 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>"}},{"p":"upg-100-mfe","e":"my-upg-100-list-map","u":"./my-upg-100-list/upg-100-mfe/index.html","d":"The standalone, shareable and embeddable composite of the my-upg-100-list family — it nests the map","c":4,"em":{"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-eIh/eQ3SOnMBPQh5z4wAfhFK1MScit5ksl9pVBqHe3wPEuT48xlPwZz1OGwPSICH\" 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>"}}]},{"b":"people-groups-grid","s":"./people-groups-grid/people-groups-grid.js","i":"sha384-ss5PmeSkKuxafBwvxZG3r7roP0OB/oVGwFbfrHnydEhjbtrlB4eisdsPXEyCJF37","e":["people-groups-grid"],"p":[{"p":"people-groups-grid","e":"people-groups-grid","u":"./people-groups-grid/people-groups-grid/index.html","d":"The people-groups grid as an owned custom element: card list, search and four","c":2,"em":{"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-ss5PmeSkKuxafBwvxZG3r7roP0OB/oVGwFbfrHnydEhjbtrlB4eisdsPXEyCJF37\" 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>"},"in":[{"id":"people-groups-grid","t":"People Groups Grid — standalone (own search + 4 dropdowns)","a":"","pr":{"profile":"people-groups-grid","provider":"maplibre","instanceId":"people-groups-grid","pray-base-url":"https://pray.doxa.life"},"e":"people-groups-grid","u":"./people-groups-grid/people-groups-grid/people-groups-grid/index.html"},{"id":"driven","t":"People Groups Grid — externally driven (controls off, props/events)","a":"","pr":{"profile":"people-groups-grid","provider":"maplibre","instanceId":"people-groups-grid-driven","pray-base-url":"https://pray.doxa.life","show-search":"false","show-filters":"false"},"e":"people-groups-grid","u":"./people-groups-grid/people-groups-grid/driven/index.html"}]}]},{"b":"plugin-studio","s":"./plugin-studio/plugin-studio.js","i":"sha384-2RlLFRU2XdjBN7w+FPguj8INgj57JFg4IFT2AmdefGnR9QQLehbiiAffV45LcsFH","e":["plugin-studio"],"p":[{"p":"plugin-studio","e":"plugin-studio","u":"./plugin-studio/plugin-studio/index.html","d":"The developer's viewing surface: a sidebar that is the composability ladder","c":5,"em":{"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>"},"in":[{"id":"studio","t":"Plugin Studio — every element by capability 5 -> 1 (developer studio)","a":"","pr":{"profile":"plugin-studio","provider":"maplibre","instanceId":"plugin-studio","title":"Plugin Studio"},"e":"plugin-studio","u":"./plugin-studio/plugin-studio/studio/index.html"}]}]},{"b":"prayer-walk-planner","s":"./prayer-walk-planner/prayer-walk-planner.js","i":"sha384-F0+r4avX8xkXp0hBpU5EBPU0InMRCObIn2Ieh9HJNn1r2amk8/qHmJ68WuNfsirC","e":["prayer-walk-planner"],"p":[{"p":"prayer-walk-planner","e":"prayer-walk-planner","u":"./prayer-walk-planner/prayer-walk-planner/index.html","d":"A simple polygon-drawing tool for planning prayer-walking routes.","c":1,"em":{"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>"}}]},{"b":"regions-dashboard","s":"./regions-dashboard/regions-dashboard.js","i":"sha384-n3kInpuswr5SZUqmljlIdNNK0Yc+ZRAGupCSV38rG223iKRdhEPBJlV9HyZU4/+3","e":["regions-dashboard"],"p":[{"p":"region-dashboards","e":"regions-dashboard","u":"./regions-dashboard/region-dashboards/index.html","d":"The dashboard half of the Driver's 2-tab Regions element: given a region (or a","c":1,"em":{"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-n3kInpuswr5SZUqmljlIdNNK0Yc+ZRAGupCSV38rG223iKRdhEPBJlV9HyZU4/+3\" 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>"}},{"p":"regions-list","e":"regions-dashboard","u":"./regions-dashboard/regions-list/index.html","d":"A refactor of DX-life's /regions index page (app/pages/regions/index.vue) into","c":1,"em":{"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-n3kInpuswr5SZUqmljlIdNNK0Yc+ZRAGupCSV38rG223iKRdhEPBJlV9HyZU4/+3\" 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>"}},{"p":"regions-mfe","e":"regions-dashboard","u":"./regions-dashboard/regions-mfe/index.html","d":"The composite the Driver asked for: ONE element carrying the SELECT VIEW switcher","c":4,"em":{"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-n3kInpuswr5SZUqmljlIdNNK0Yc+ZRAGupCSV38rG223iKRdhEPBJlV9HyZU4/+3\" 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>"}}]},{"b":"research-dashboard","s":"./research-dashboard/research-dashboard.js","i":"sha384-cMZfw0g3/v0hHkyHQhHYiv9GeD7hvFaUD0qF/G3FowqUNjgDykvI+btwOIu/p6Qy","e":["research-dashboard-map"],"p":[{"p":"research-dashboard","e":"research-dashboard-map","u":"./research-dashboard/research-dashboard/index.html","d":"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.","c":3,"em":{"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-cMZfw0g3/v0hHkyHQhHYiv9GeD7hvFaUD0qF/G3FowqUNjgDykvI+btwOIu/p6Qy\" 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>"}}]},{"b":"research-map-plus-grid","s":"./research-map-plus-grid/research-map-plus-grid.js","i":"sha384-sOkaMV0UFr2uNXfoJpRvaD+gHD6xFlkmpR7MzEwwFdarYdid8aN9Nj1Y8TqQJuFo","e":["research-map-plus-grid"],"p":[{"p":"research-map-plus-grid","e":"research-map-plus-grid","u":"./research-map-plus-grid/research-map-plus-grid/index.html","d":"The monolithic 7-tab research map (cap-3) on top, the People Groups grid beneath,","c":4,"em":{"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>"},"in":[{"id":"default","t":"default","a":"","pr":{"profile":"research-map-plus-grid"},"e":"research-map-plus-grid","u":"./research-map-plus-grid/research-map-plus-grid/default/index.html"}]}]},{"b":"stack-demo","s":"./stack-demo/stack-demo.js","i":"sha384-gnwM6s+puf1K60Nl7crQcC2QC+9BxwpkaTx4OepLZ8VUCraZc+aRlWpsb6nj6Gyf","e":["stack-demo"],"p":[{"p":"stack-demo","e":"stack-demo","u":"./stack-demo/stack-demo/index.html","d":"Groups TWO independent elements TOP-TO-BOTTOM so you can embed the pair on a page and","c":4,"em":{"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>"},"in":[{"id":"pair","t":"pair","a":"","pr":{"profile":"stack-demo"},"e":"stack-demo","u":"./stack-demo/stack-demo/pair/index.html"}]}]},{"b":"template-bundle","s":"./template-bundle/template-bundle.js","i":"sha384-4YT4Amt8yc0KANs5xlODSxpkWKYgWWCWd9B0CNiHCZebzvGbXp4fS+wYtPbqJJx7","e":["template-bundle"],"p":[{"p":"template-map-a","e":"template-bundle","u":"./template-bundle/template-map-a/index.html","d":"Minimal example profile A — a colored placeholder, no Mapbox or data.","c":1,"em":{"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-4YT4Amt8yc0KANs5xlODSxpkWKYgWWCWd9B0CNiHCZebzvGbXp4fS+wYtPbqJJx7\" 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>"}},{"p":"template-map-b","e":"template-bundle","u":"./template-bundle/template-map-b/index.html","d":"Minimal example profile B — a second profile in the same bundle.","c":1,"em":{"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-4YT4Amt8yc0KANs5xlODSxpkWKYgWWCWd9B0CNiHCZebzvGbXp4fS+wYtPbqJJx7\" 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>"}}]},{"b":"upg-neighbor","s":"./upg-neighbor/upg-neighbor.js","i":"sha384-JDJr4qoVZuiSi/rvgdzeuUNrzf7vjPdyh/g8dg7X8RHkZk/Y+tYXIQ3gpEzrU07q","e":["upg-neighbor"],"p":[{"p":"upg-neighbor","e":"upg-neighbor","u":"./upg-neighbor/upg-neighbor/index.html","d":"Rescues the five pre-bundler experimental maps that live inside the legacy","c":2,"em":{"iframe":"\u003ciframe src=\"./upg-neighbor/upg-neighbor/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=\"./upg-neighbor/upg-neighbor.js\" integrity=\"sha384-JDJr4qoVZuiSi/rvgdzeuUNrzf7vjPdyh/g8dg7X8RHkZk/Y+tYXIQ3gpEzrU07q\" crossorigin=\"anonymous\">\u003c/script>\n\u003cupg-neighbor profile-config='{\"profile\":\"upg-neighbor\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/upg-neighbor>"},"in":[{"id":"send-map","t":"Send Map (legacy)","a":"","pr":{"profile":"upg-neighbor","legacyElement":"send-map","legacyTitle":"Send Map"},"e":"upg-neighbor","u":"./upg-neighbor/upg-neighbor/send-map/index.html"},{"id":"upg-neighbors","t":"UPG Neighbors (legacy)","a":"","pr":{"profile":"upg-neighbor","legacyElement":"upg-neighbors","legacyTitle":"UPG Neighbors"},"e":"upg-neighbor","u":"./upg-neighbor/upg-neighbor/upg-neighbors/index.html"},{"id":"lang-cluster","t":"Language Clusters (legacy)","a":"","pr":{"profile":"upg-neighbor","legacyElement":"lang-cluster","legacyTitle":"Language Clusters"},"e":"upg-neighbor","u":"./upg-neighbor/upg-neighbor/lang-cluster/index.html"},{"id":"bloom-cockpit","t":"Bloom Cockpit (legacy)","a":"","pr":{"profile":"upg-neighbor","legacyElement":"bloom-cockpit","legacyTitle":"Bloom Cockpit"},"e":"upg-neighbor","u":"./upg-neighbor/upg-neighbor/bloom-cockpit/index.html"},{"id":"flower-mesh","t":"Flower Mesh (legacy)","a":"","pr":{"profile":"upg-neighbor","legacyElement":"flower-mesh","legacyTitle":"Flower Mesh"},"e":"upg-neighbor","u":"./upg-neighbor/upg-neighbor/flower-mesh/index.html"}]}]}]; var snip = function snip(b, p, x) { var u = (x || p).u, tag = (x && x.e) || p.e || b.e[0] || b.b var r = { iframe: '' } diff --git a/public/doxa-maps/index.html b/public/doxa-maps/index.html index 8f45f7901..7e29ed6fd 100644 --- a/public/doxa-maps/index.html +++ b/public/doxa-maps/index.html @@ -130,7 +130,7 @@ header.top .sub { margin-top: 3px; font: 12px/1.4 var(--sans); color: var(--mut) + window.FORGE.manifest = {"schema":"doxa-maps-manifest@1","generatedFrom":"plugin-designs/*/*.vue","embedBase":".","bundleCount":22,"profileCount":34,"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-MTXYtlLgjWDT2Q4U9u2ud4gpjsE0l39I6dJxxAO/hXjMGcMp6KoECWeUhn4+Fl1Y","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-MTXYtlLgjWDT2Q4U9u2ud4gpjsE0l39I6dJxxAO/hXjMGcMp6KoECWeUhn4+Fl1Y\" 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-voYmtWeACTFBJOOeqcbf5cuBKSjyskA89cjvm5qcvrx9IUFTAhLuICyRXUM6fL+Y","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-voYmtWeACTFBJOOeqcbf5cuBKSjyskA89cjvm5qcvrx9IUFTAhLuICyRXUM6fL+Y\" 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-yXvole+EYjOppLtZOqOW4pba/oWzbObcdkoSpYcnukHuARdg6R/qHzhOd5cpCJY0","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-yXvole+EYjOppLtZOqOW4pba/oWzbObcdkoSpYcnukHuARdg6R/qHzhOd5cpCJY0\" 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-yXvole+EYjOppLtZOqOW4pba/oWzbObcdkoSpYcnukHuARdg6R/qHzhOd5cpCJY0\" 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-yXvole+EYjOppLtZOqOW4pba/oWzbObcdkoSpYcnukHuARdg6R/qHzhOd5cpCJY0\" 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-5a7eHbJrOmwwGTDlhvBUGu2iXs7mujbuBUpY5fRC2vBmjByzaRzq05hQr502uMIj","elements":["country-posters-map"],"composes":["country-posters/country-poster-wall","country-posters/countries-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-5a7eHbJrOmwwGTDlhvBUGu2iXs7mujbuBUpY5fRC2vBmjByzaRzq05hQr502uMIj\" 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-5a7eHbJrOmwwGTDlhvBUGu2iXs7mujbuBUpY5fRC2vBmjByzaRzq05hQr502uMIj\" 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>"}},{"profile":"country-posters-mfe","file":"country-posters-mfe.vue","description":"Country Posters as ONE two-tab element — the countries map and the printable","element":"country-posters-mfe","type":"nested-elements-mfe","isMap":true,"iframeUrl":"./country-posters/country-posters-mfe/index.html","scriptUrl":"./country-posters/country-posters.js","embed":{"iframe":"\u003ciframe src=\"./country-posters/country-posters-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=\"./country-posters/country-posters.js\" integrity=\"sha384-5a7eHbJrOmwwGTDlhvBUGu2iXs7mujbuBUpY5fRC2vBmjByzaRzq05hQr502uMIj\" crossorigin=\"anonymous\">\u003c/script>\n\u003ccountry-posters-map profile-config='{\"profile\":\"country-posters-mfe\",\"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-q5UVHN5QptVZvJHqrqIFgRpWCj2HRQGiTAO/JYxf5OHmg6XegLjaBMk1AZXWqHRG","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-q5UVHN5QptVZvJHqrqIFgRpWCj2HRQGiTAO/JYxf5OHmg6XegLjaBMk1AZXWqHRG\" 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-bdvQUz/ahi3yvFWY4niHIt4hJ/2Thd5T/6KP/mobZrtEKchO1XclRQQcc35jt9Cd","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-bdvQUz/ahi3yvFWY4niHIt4hJ/2Thd5T/6KP/mobZrtEKchO1XclRQQcc35jt9Cd\" 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-1f+/rBSGo/1jyUmRmGg34CIU/PcGkB7M3jah1DO0ocb5O0zj81wpUemXcz4WAFz8","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-1f+/rBSGo/1jyUmRmGg34CIU/PcGkB7M3jah1DO0ocb5O0zj81wpUemXcz4WAFz8\" 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-CTfwl1rhm6JTKoUkSjawyQfHWYf55RBcwSDBYmVyQQ6f64Ag3v2dn5eV18yQSKwD","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-CTfwl1rhm6JTKoUkSjawyQfHWYf55RBcwSDBYmVyQQ6f64Ag3v2dn5eV18yQSKwD\" 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-edWUmiU1eWxE8Ju7FFg5PDfmw21E2NLoVaYmCgM8gXlm8S/9rowTJ7045NvdeIQA","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-edWUmiU1eWxE8Ju7FFg5PDfmw21E2NLoVaYmCgM8gXlm8S/9rowTJ7045NvdeIQA\" 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-uljHGYhda+DqMVTe8uCnYCfMNupgLezn47K71zOn+2H6hPaGpILlh/LtNU4wlqrY","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-uljHGYhda+DqMVTe8uCnYCfMNupgLezn47K71zOn+2H6hPaGpILlh/LtNU4wlqrY\" 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-uljHGYhda+DqMVTe8uCnYCfMNupgLezn47K71zOn+2H6hPaGpILlh/LtNU4wlqrY\" 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-uljHGYhda+DqMVTe8uCnYCfMNupgLezn47K71zOn+2H6hPaGpILlh/LtNU4wlqrY\" 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-uljHGYhda+DqMVTe8uCnYCfMNupgLezn47K71zOn+2H6hPaGpILlh/LtNU4wlqrY\" 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-eIh/eQ3SOnMBPQh5z4wAfhFK1MScit5ksl9pVBqHe3wPEuT48xlPwZz1OGwPSICH","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-eIh/eQ3SOnMBPQh5z4wAfhFK1MScit5ksl9pVBqHe3wPEuT48xlPwZz1OGwPSICH\" 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-eIh/eQ3SOnMBPQh5z4wAfhFK1MScit5ksl9pVBqHe3wPEuT48xlPwZz1OGwPSICH\" 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-eIh/eQ3SOnMBPQh5z4wAfhFK1MScit5ksl9pVBqHe3wPEuT48xlPwZz1OGwPSICH\" 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-ss5PmeSkKuxafBwvxZG3r7roP0OB/oVGwFbfrHnydEhjbtrlB4eisdsPXEyCJF37","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-ss5PmeSkKuxafBwvxZG3r7roP0OB/oVGwFbfrHnydEhjbtrlB4eisdsPXEyCJF37\" 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-n3kInpuswr5SZUqmljlIdNNK0Yc+ZRAGupCSV38rG223iKRdhEPBJlV9HyZU4/+3","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-n3kInpuswr5SZUqmljlIdNNK0Yc+ZRAGupCSV38rG223iKRdhEPBJlV9HyZU4/+3\" 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-n3kInpuswr5SZUqmljlIdNNK0Yc+ZRAGupCSV38rG223iKRdhEPBJlV9HyZU4/+3\" 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-n3kInpuswr5SZUqmljlIdNNK0Yc+ZRAGupCSV38rG223iKRdhEPBJlV9HyZU4/+3\" 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-cMZfw0g3/v0hHkyHQhHYiv9GeD7hvFaUD0qF/G3FowqUNjgDykvI+btwOIu/p6Qy","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-cMZfw0g3/v0hHkyHQhHYiv9GeD7hvFaUD0qF/G3FowqUNjgDykvI+btwOIu/p6Qy\" 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-4YT4Amt8yc0KANs5xlODSxpkWKYgWWCWd9B0CNiHCZebzvGbXp4fS+wYtPbqJJx7","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-4YT4Amt8yc0KANs5xlODSxpkWKYgWWCWd9B0CNiHCZebzvGbXp4fS+wYtPbqJJx7\" 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-4YT4Amt8yc0KANs5xlODSxpkWKYgWWCWd9B0CNiHCZebzvGbXp4fS+wYtPbqJJx7\" 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"}]},{"bundle":"upg-neighbor","scriptUrl":"./upg-neighbor/upg-neighbor.js","output":"doxa-maps/upg-neighbor/upg-neighbor.js","integrity":"sha384-JDJr4qoVZuiSi/rvgdzeuUNrzf7vjPdyh/g8dg7X8RHkZk/Y+tYXIQ3gpEzrU07q","elements":["upg-neighbor"],"profiles":[{"profile":"upg-neighbor","file":"upg-neighbor.vue","description":"Rescues the five pre-bundler experimental maps that live inside the legacy","element":"upg-neighbor","type":"parameterized","isMap":false,"iframeUrl":"./upg-neighbor/upg-neighbor/index.html","scriptUrl":"./upg-neighbor/upg-neighbor.js","embed":{"iframe":"\u003ciframe src=\"./upg-neighbor/upg-neighbor/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=\"./upg-neighbor/upg-neighbor.js\" integrity=\"sha384-JDJr4qoVZuiSi/rvgdzeuUNrzf7vjPdyh/g8dg7X8RHkZk/Y+tYXIQ3gpEzrU07q\" crossorigin=\"anonymous\">\u003c/script>\n\u003cupg-neighbor profile-config='{\"profile\":\"upg-neighbor\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/upg-neighbor>"},"instances":[{"id":"send-map","title":"Send Map (legacy)","apiBaseUrl":"","props":{"profile":"upg-neighbor","legacyElement":"send-map","legacyTitle":"Send Map"},"element":"upg-neighbor","iframeUrl":"./upg-neighbor/upg-neighbor/send-map/index.html","embed":{"iframe":"\u003ciframe src=\"./upg-neighbor/upg-neighbor/send-map/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}},{"id":"upg-neighbors","title":"UPG Neighbors (legacy)","apiBaseUrl":"","props":{"profile":"upg-neighbor","legacyElement":"upg-neighbors","legacyTitle":"UPG Neighbors"},"element":"upg-neighbor","iframeUrl":"./upg-neighbor/upg-neighbor/upg-neighbors/index.html","embed":{"iframe":"\u003ciframe src=\"./upg-neighbor/upg-neighbor/upg-neighbors/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}},{"id":"lang-cluster","title":"Language Clusters (legacy)","apiBaseUrl":"","props":{"profile":"upg-neighbor","legacyElement":"lang-cluster","legacyTitle":"Language Clusters"},"element":"upg-neighbor","iframeUrl":"./upg-neighbor/upg-neighbor/lang-cluster/index.html","embed":{"iframe":"\u003ciframe src=\"./upg-neighbor/upg-neighbor/lang-cluster/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}},{"id":"bloom-cockpit","title":"Bloom Cockpit (legacy)","apiBaseUrl":"","props":{"profile":"upg-neighbor","legacyElement":"bloom-cockpit","legacyTitle":"Bloom Cockpit"},"element":"upg-neighbor","iframeUrl":"./upg-neighbor/upg-neighbor/bloom-cockpit/index.html","embed":{"iframe":"\u003ciframe src=\"./upg-neighbor/upg-neighbor/bloom-cockpit/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}},{"id":"flower-mesh","title":"Flower Mesh (legacy)","apiBaseUrl":"","props":{"profile":"upg-neighbor","legacyElement":"flower-mesh","legacyTitle":"Flower Mesh"},"element":"upg-neighbor","iframeUrl":"./upg-neighbor/upg-neighbor/flower-mesh/index.html","embed":{"iframe":"\u003ciframe src=\"./upg-neighbor/upg-neighbor/flower-mesh/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}}]}]}]}; \n\n" + "script": "\n\n" } }, { @@ -692,7 +692,7 @@ "scriptUrl": "./my-upg-100-list/my-upg-100-list.js", "embed": { "iframe": "", - "script": "\n\n" + "script": "\n\n" } }, { @@ -706,7 +706,7 @@ "scriptUrl": "./my-upg-100-list/my-upg-100-list.js", "embed": { "iframe": "", - "script": "\n\n" + "script": "\n\n" } } ] diff --git a/public/doxa-maps/my-upg-100-list/my-upg-100-list.js b/public/doxa-maps/my-upg-100-list/my-upg-100-list.js index 2499288e5..50564fa01 100644 --- a/public/doxa-maps/my-upg-100-list/my-upg-100-list.js +++ b/public/doxa-maps/my-upg-100-list/my-upg-100-list.js @@ -1,46 +1,46 @@ -(function(){"use strict";var xp;var ln=typeof document<"u"?document.currentScript:null;const l$="modulepreload",c$=function(e){return"/"+e},u$={},Kt=function(t,o,n){let a=Promise.resolve();function r(s){const i=new Event("vite:preloadError",{cancelable:!0});if(i.payload=s,window.dispatchEvent(i),!i.defaultPrevented)throw s}return a.then(s=>{for(const i of s||[])i.status==="rejected"&&r(i.reason);return t().catch(r)})};/** +(function(){"use strict";var $p;var ln=typeof document<"u"?document.currentScript:null;const p$="modulepreload",g$=function(e){return"/"+e},f$={},Dt=function(t,o,n){let a=Promise.resolve();function r(s){const i=new Event("vite:preloadError",{cancelable:!0});if(i.payload=s,window.dispatchEvent(i),!i.defaultPrevented)throw s}return a.then(s=>{for(const i of s||[])i.status==="rejected"&&r(i.reason);return t().catch(r)})};/** * @vue/shared v3.5.42 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT -**/function Rr(e){const t=Object.create(null);for(const o of e.split(","))t[o]=1;return o=>o in t}const Ze={},cn=[],eo=()=>{},Ni=()=>!1,ka=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),wa=e=>e.startsWith("onUpdate:"),lt=Object.assign,Ir=(e,t)=>{const o=e.indexOf(t);o>-1&&e.splice(o,1)},Lp=Object.prototype.hasOwnProperty,ze=(e,t)=>Lp.call(e,t),xe=Array.isArray,Mo=e=>Fn(e)==="[object Map]",Vo=e=>Fn(e)==="[object Set]",Ri=e=>Fn(e)==="[object Date]",Ee=e=>typeof e=="function",Qe=e=>typeof e=="string",Dt=e=>typeof e=="symbol",Ye=e=>e!==null&&typeof e=="object",Ii=e=>(Ye(e)||Ee(e))&&Ee(e.then)&&Ee(e.catch),Oi=Object.prototype.toString,Fn=e=>Oi.call(e),Cp=e=>Fn(e).slice(8,-1),xa=e=>Fn(e)==="[object Object]",$a=e=>Qe(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,Dn=Rr(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Aa=e=>{const t=Object.create(null);return o=>t[o]||(t[o]=e(o))},Pp=/-\w/g,_t=Aa(e=>e.replace(Pp,t=>t.slice(1).toUpperCase())),Tp=/\B([A-Z])/g,Bt=Aa(e=>e.replace(Tp,"-$1").toLowerCase()),Sa=Aa(e=>e.charAt(0).toUpperCase()+e.slice(1)),Or=Aa(e=>e?`on${Sa(e)}`:""),to=(e,t)=>!Object.is(e,t),Ea=(e,...t)=>{for(let o=0;o{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:n,value:o})},La=e=>{const t=parseFloat(e);return isNaN(t)?e:t},Di=e=>{const t=Qe(e)?Number(e):NaN;return isNaN(t)?e:t};let Bi;const Ca=()=>Bi||(Bi=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function nt(e){if(xe(e)){const t={};for(let o=0;o{if(o){const n=o.split(Np);n.length>1&&(t[n[0].trim()]=n[1].trim())}}),t}function Ne(e){let t="";if(Qe(e))t=e;else if(xe(e))for(let o=0;oNo(o,t))}const Ui=e=>!!(e&&e.__v_isRef===!0),pe=e=>Qe(e)?e:e==null?"":xe(e)||Ye(e)&&(e.toString===Oi||!Ee(e.toString))?Ui(e)?pe(e.value):JSON.stringify(e,Ki,2):String(e),Ki=(e,t)=>Ui(t)?Ki(e,t.value):Mo(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((o,[n,a],r)=>(o[Fr(n,r)+" =>"]=a,o),{})}:Vo(t)?{[`Set(${t.size})`]:[...t.values()].map(o=>Fr(o))}:Dt(t)?Fr(t):Ye(t)&&!xe(t)&&!xa(t)?String(t):t,Fr=(e,t="")=>{var o;return Dt(e)?`Symbol(${(o=e.description)!=null?o:t})`:e};/** +**/function Rr(e){const t=Object.create(null);for(const o of e.split(","))t[o]=1;return o=>o in t}const Ze={},cn=[],to=()=>{},Ni=()=>!1,ka=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),wa=e=>e.startsWith("onUpdate:"),lt=Object.assign,Ir=(e,t)=>{const o=e.indexOf(t);o>-1&&e.splice(o,1)},Cp=Object.prototype.hasOwnProperty,Ke=(e,t)=>Cp.call(e,t),xe=Array.isArray,Mo=e=>Fn(e)==="[object Map]",Vo=e=>Fn(e)==="[object Set]",Ri=e=>Fn(e)==="[object Date]",Ee=e=>typeof e=="function",Qe=e=>typeof e=="string",Bt=e=>typeof e=="symbol",Ye=e=>e!==null&&typeof e=="object",Ii=e=>(Ye(e)||Ee(e))&&Ee(e.then)&&Ee(e.catch),Oi=Object.prototype.toString,Fn=e=>Oi.call(e),Pp=e=>Fn(e).slice(8,-1),xa=e=>Fn(e)==="[object Object]",$a=e=>Qe(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,Dn=Rr(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Aa=e=>{const t=Object.create(null);return o=>t[o]||(t[o]=e(o))},Tp=/-\w/g,_t=Aa(e=>e.replace(Tp,t=>t.slice(1).toUpperCase())),Mp=/\B([A-Z])/g,Gt=Aa(e=>e.replace(Mp,"-$1").toLowerCase()),Sa=Aa(e=>e.charAt(0).toUpperCase()+e.slice(1)),Or=Aa(e=>e?`on${Sa(e)}`:""),oo=(e,t)=>!Object.is(e,t),Ea=(e,...t)=>{for(let o=0;o{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:n,value:o})},La=e=>{const t=parseFloat(e);return isNaN(t)?e:t},Di=e=>{const t=Qe(e)?Number(e):NaN;return isNaN(t)?e:t};let Bi;const Ca=()=>Bi||(Bi=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function nt(e){if(xe(e)){const t={};for(let o=0;o{if(o){const n=o.split(Rp);n.length>1&&(t[n[0].trim()]=n[1].trim())}}),t}function Re(e){let t="";if(Qe(e))t=e;else if(xe(e))for(let o=0;oNo(o,t))}const Ui=e=>!!(e&&e.__v_isRef===!0),ge=e=>Qe(e)?e:e==null?"":xe(e)||Ye(e)&&(e.toString===Oi||!Ee(e.toString))?Ui(e)?ge(e.value):JSON.stringify(e,zi,2):String(e),zi=(e,t)=>Ui(t)?zi(e,t.value):Mo(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((o,[n,a],r)=>(o[Fr(n,r)+" =>"]=a,o),{})}:Vo(t)?{[`Set(${t.size})`]:[...t.values()].map(o=>Fr(o))}:Bt(t)?Fr(t):Ye(t)&&!xe(t)&&!xa(t)?String(t):t,Fr=(e,t="")=>{var o;return Bt(e)?`Symbol(${(o=e.description)!=null?o:t})`:e};/** * @vue/reactivity v3.5.42 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT -**/let ht;class zi{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this._warnOnRun=!0,this.__v_skip=!0,!t&&ht&&(ht.active?(this.parent=ht,this.index=(ht.scopes||(ht.scopes=[])).push(this)-1):(this._active=!1,this._warnOnRun=!1))}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,o;if(this.scopes){const n=this.scopes.slice();for(t=0,o=n.length;t0&&--this._on===0){if(ht===this)ht=this.prevScope;else{let t=ht;for(;t;){if(t.prevScope===this){t.prevScope=this.prevScope;break}t=t.prevScope}}this.prevScope=void 0}}stop(t){if(this._active){this._active=!1;let o,n;for(o=0,n=this.effects.length;o0)return;if(Gn){let t=Gn;for(Gn=void 0;t;){const o=t.next;t.next=void 0,t.flags&=-9,t=o}}let e;for(;Bn;){let t=Bn;for(Bn=void 0;t;){const o=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(n){e||(e=n)}t=o}}if(e)throw e}function qi(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function Ji(e){let t,o=e.depsTail,n=o;for(;n;){const a=n.prevDep;n.version===-1?(n===o&&(o=a),Kr(n),Gp(n)):t=n,n.dep.activeLink=n.prevActiveLink,n.prevActiveLink=void 0,n=a}e.deps=t,e.depsTail=o}function Ur(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(Xi(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function Xi(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===jn)||(e.globalVersion=jn,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!Ur(e))))return;e.flags|=2;const t=e.dep,o=et,n=Wt;et=e,Wt=!0;try{qi(e);const a=e.fn(e._value);(t.version===0||to(a,e._value))&&(e.flags|=128,e._value=a,t.version++)}catch(a){throw t.version++,a}finally{et=o,Wt=n,Ji(e),e.flags&=-3}}function Kr(e,t=!1){const{dep:o,prevSub:n,nextSub:a}=e;if(n&&(n.nextSub=a,e.prevSub=void 0),a&&(a.prevSub=n,e.nextSub=void 0),o.subs===e&&(o.subs=n,!n&&o.computed)){o.computed.flags&=-5;for(let r=o.computed.deps;r;r=r.nextDep)Kr(r,!0)}!t&&!--o.sc&&o.map&&o.map.delete(o.key)}function Gp(e){const{prevDep:t,nextDep:o}=e;t&&(t.nextDep=o,e.prevDep=void 0),o&&(o.prevDep=t,e.nextDep=void 0)}let Wt=!0;const Zi=[];function oo(){Zi.push(Wt),Wt=!1}function no(){const e=Zi.pop();Wt=e===void 0?!0:e}function Qi(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const o=et;et=void 0;try{t()}finally{et=o}}}let jn=0;class jp{constructor(t,o){this.sub=t,this.dep=o,this.version=o.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class zr{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(t){if(!et||!Wt||et===this.computed)return;let o=this.activeLink;if(o===void 0||o.sub!==et)o=this.activeLink=new jp(et,this),et.deps?(o.prevDep=et.depsTail,et.depsTail.nextDep=o,et.depsTail=o):et.deps=et.depsTail=o,el(o);else if(o.version===-1&&(o.version=this.version,o.nextDep)){const n=o.nextDep;n.prevDep=o.prevDep,o.prevDep&&(o.prevDep.nextDep=n),o.prevDep=et.depsTail,o.nextDep=void 0,et.depsTail.nextDep=o,et.depsTail=o,et.deps===o&&(et.deps=n)}return o}trigger(t){this.version++,jn++,this.notify(t)}notify(t){Gr();try{for(let o=this.subs;o;o=o.prevSub)o.sub.notify()&&o.sub.dep.notify()}finally{jr()}}}function el(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let n=t.deps;n;n=n.nextDep)el(n)}const o=e.dep.subs;o!==e&&(e.prevSub=o,o&&(o.nextSub=e)),e.dep.subs=e}}const Pa=new WeakMap,Wo=Symbol(""),Hr=Symbol(""),Un=Symbol("");function Pt(e,t,o){if(Wt&&et){let n=Pa.get(e);n||Pa.set(e,n=new Map);let a=n.get(o);a||(n.set(o,a=new zr),a.map=n,a.key=o),a.track()}}function bo(e,t,o,n,a,r){const s=Pa.get(e);if(!s){jn++;return}const i=l=>{l&&l.trigger()};if(Gr(),t==="clear")s.forEach(i);else{const l=xe(e),u=l&&$a(o);if(l&&o==="length"){const c=Number(n);s.forEach((p,f)=>{(f==="length"||f===Un||!Dt(f)&&f>=c)&&i(p)})}else switch((o!==void 0||s.has(void 0))&&i(s.get(o)),u&&i(s.get(Un)),t){case"add":l?u&&i(s.get("length")):(i(s.get(Wo)),Mo(e)&&i(s.get(Hr)));break;case"delete":l||(i(s.get(Wo)),Mo(e)&&i(s.get(Hr)));break;case"set":Mo(e)&&i(s.get(Wo));break}}jr()}function Up(e,t){const o=Pa.get(e);return o&&o.get(t)}function un(e){const t=Be(e);return t===e?t:(Pt(t,"iterate",Un),Gt(e)?t:t.map(Yt))}function Ta(e){return Pt(e=Be(e),"iterate",Un),e}function ao(e,t){return vo(e)?pn(_o(e)?Yt(t):t):Yt(t)}const Kp={__proto__:null,[Symbol.iterator](){return Vr(this,Symbol.iterator,e=>ao(this,e))},concat(...e){return un(this).concat(...e.map(t=>xe(t)?un(t):t))},entries(){return Vr(this,"entries",e=>(e[1]=ao(this,e[1]),e))},every(e,t){return yo(this,"every",e,t,void 0,arguments)},filter(e,t){return yo(this,"filter",e,t,o=>o.map(n=>ao(this,n)),arguments)},find(e,t){return yo(this,"find",e,t,o=>ao(this,o),arguments)},findIndex(e,t){return yo(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return yo(this,"findLast",e,t,o=>ao(this,o),arguments)},findLastIndex(e,t){return yo(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return yo(this,"forEach",e,t,void 0,arguments)},includes(...e){return Wr(this,"includes",e)},indexOf(...e){return Wr(this,"indexOf",e)},join(e){return un(this).join(e)},lastIndexOf(...e){return Wr(this,"lastIndexOf",e)},map(e,t){return yo(this,"map",e,t,void 0,arguments)},pop(){return Kn(this,"pop")},push(...e){return Kn(this,"push",e)},reduce(e,...t){return tl(this,"reduce",e,t)},reduceRight(e,...t){return tl(this,"reduceRight",e,t)},shift(){return Kn(this,"shift")},some(e,t){return yo(this,"some",e,t,void 0,arguments)},splice(...e){return Kn(this,"splice",e)},toReversed(){return un(this).toReversed()},toSorted(e){return un(this).toSorted(e)},toSpliced(...e){return un(this).toSpliced(...e)},unshift(...e){return Kn(this,"unshift",e)},values(){return Vr(this,"values",e=>ao(this,e))}};function Vr(e,t,o){const n=Ta(e),a=n[t]();return n!==e&&!Gt(e)&&(a._next=a.next,a.next=()=>{const r=a._next();return r.done||(r.value=o(r.value)),r}),a}const zp=Array.prototype;function yo(e,t,o,n,a,r){const s=Ta(e),i=s!==e&&!Gt(e),l=s[t];if(l!==zp[t]){const p=l.apply(e,r);return i?Yt(p):p}let u=o;s!==e&&(i?u=function(p,f){return o.call(this,ao(e,p),f,e)}:o.length>2&&(u=function(p,f){return o.call(this,p,f,e)}));const c=l.call(s,u,n);return i&&a?a(c):c}function tl(e,t,o,n){const a=Ta(e),r=a!==e&&!Gt(e);let s=o,i=!1;a!==e&&(r?(i=n.length===0,s=function(u,c,p){return i&&(i=!1,u=ao(e,u)),o.call(this,u,ao(e,c),p,e)}):o.length>3&&(s=function(u,c,p){return o.call(this,u,c,p,e)}));const l=a[t](s,...n);return i?ao(e,l):l}function Wr(e,t,o){const n=Be(e);Pt(n,"iterate",Un);const a=n[t](...o);return(a===-1||a===!1)&&Oa(o[0])?(o[0]=Be(o[0]),n[t](...o)):a}function Kn(e,t,o=[]){oo(),Gr();const n=Be(e)[t].apply(e,o);return jr(),no(),n}const Hp=Rr("__proto__,__v_isRef,__isVue"),ol=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(Dt));function Vp(e){Dt(e)||(e=String(e));const t=Be(this);return Pt(t,"has",e),t.hasOwnProperty(e)}class nl{constructor(t=!1,o=!1){this._isReadonly=t,this._isShallow=o}get(t,o,n){if(o==="__v_skip")return t.__v_skip;const a=this._isReadonly,r=this._isShallow;if(o==="__v_isReactive")return!a;if(o==="__v_isReadonly")return a;if(o==="__v_isShallow")return r;if(o==="__v_raw")return n===(a?r?cl:ll:r?il:sl).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(n)?t:void 0;const s=xe(t);if(!a){let l;if(s&&(l=Kp[o]))return l;if(o==="hasOwnProperty")return Vp}const i=Reflect.get(t,o,at(t)?t:n);if((Dt(o)?ol.has(o):Hp(o))||(a||Pt(t,"get",o),r))return i;if(at(i)){const l=s&&$a(o)?i:i.value;return a&&Ye(l)?qr(l):l}return Ye(i)?a?qr(i):dn(i):i}}class al extends nl{constructor(t=!1){super(!1,t)}set(t,o,n,a){let r=t[o];const s=xe(t)&&$a(o);if(!this._isShallow){const u=vo(r);if(!Gt(n)&&!vo(n)&&(r=Be(r),n=Be(n)),!s&&at(r)&&!at(n))return u||(r.value=n),!0}const i=s?Number(o)e,Ma=e=>Reflect.getPrototypeOf(e);function Xp(e,t,o){return function(...n){const a=this.__v_raw,r=Be(a),s=Mo(r),i=e==="entries"||e===Symbol.iterator&&s,l=e==="keys"&&s,u=a[e](...n),c=o?Yr:t?pn:Yt;return!t&&Pt(r,"iterate",l?Hr:Wo),lt(Object.create(u),{next(){const{value:p,done:f}=u.next();return f?{value:p,done:f}:{value:i?[c(p[0]),c(p[1])]:c(p),done:f}}})}}function Na(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function Zp(e,t){const o={get(a){const r=this.__v_raw,s=Be(r),i=Be(a);e||(to(a,i)&&Pt(s,"get",a),Pt(s,"get",i));const{has:l}=Ma(s),u=t?Yr:e?pn:Yt;if(l.call(s,a))return u(r.get(a));if(l.call(s,i))return u(r.get(i));r!==s&&r.get(a)},get size(){const a=this.__v_raw;return!e&&Pt(Be(a),"iterate",Wo),a.size},has(a){const r=this.__v_raw,s=Be(r),i=Be(a);return e||(to(a,i)&&Pt(s,"has",a),Pt(s,"has",i)),a===i?r.has(a):r.has(a)||r.has(i)},forEach(a,r){const s=this,i=s.__v_raw,l=Be(i),u=t?Yr:e?pn:Yt;return!e&&Pt(l,"iterate",Wo),i.forEach((c,p)=>a.call(r,u(c),u(p),s))}};return lt(o,e?{add:Na("add"),set:Na("set"),delete:Na("delete"),clear:Na("clear")}:{add(a){const r=Be(this),s=Ma(r),i=Be(a),l=!t&&!Gt(a)&&!vo(a)?i:a;return s.has.call(r,l)||to(a,l)&&s.has.call(r,a)||to(i,l)&&s.has.call(r,i)||(r.add(l),bo(r,"add",l,l)),this},set(a,r){!t&&!Gt(r)&&!vo(r)&&(r=Be(r));const s=Be(this),{has:i,get:l}=Ma(s);let u=i.call(s,a);u||(a=Be(a),u=i.call(s,a));const c=l.call(s,a);return s.set(a,r),u?to(r,c)&&bo(s,"set",a,r):bo(s,"add",a,r),this},delete(a){const r=Be(this),{has:s,get:i}=Ma(r);let l=s.call(r,a);l||(a=Be(a),l=s.call(r,a)),i&&i.call(r,a);const u=r.delete(a);return l&&bo(r,"delete",a,void 0),u},clear(){const a=Be(this),r=a.size!==0,s=a.clear();return r&&bo(a,"clear",void 0,void 0),s}}),["keys","values","entries",Symbol.iterator].forEach(a=>{o[a]=Xp(a,e,t)}),o}function Ra(e,t){const o=Zp(e,t);return(n,a,r)=>a==="__v_isReactive"?!e:a==="__v_isReadonly"?e:a==="__v_raw"?n:Reflect.get(ze(o,a)&&a in n?o:n,a,r)}const Qp={get:Ra(!1,!1)},eg={get:Ra(!1,!0)},tg={get:Ra(!0,!1)},og={get:Ra(!0,!0)},sl=new WeakMap,il=new WeakMap,ll=new WeakMap,cl=new WeakMap;function ng(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function dn(e){return vo(e)?e:Ia(e,!1,Wp,Qp,sl)}function ag(e){return Ia(e,!1,qp,eg,il)}function qr(e){return Ia(e,!0,Yp,tg,ll)}function p$(e){return Ia(e,!0,Jp,og,cl)}function Ia(e,t,o,n,a){if(!Ye(e)||e.__v_raw&&!(t&&e.__v_isReactive)||e.__v_skip||!Object.isExtensible(e))return e;const r=a.get(e);if(r)return r;const s=ng(Cp(e));if(s===0)return e;const i=new Proxy(e,s===2?n:o);return a.set(e,i),i}function _o(e){return vo(e)?_o(e.__v_raw):!!(e&&e.__v_isReactive)}function vo(e){return!!(e&&e.__v_isReadonly)}function Gt(e){return!!(e&&e.__v_isShallow)}function Oa(e){return e?!!e.__v_raw:!1}function Be(e){const t=e&&e.__v_raw;return t?Be(t):e}function Yo(e){return!ze(e,"__v_skip")&&Object.isExtensible(e)&&Fi(e,"__v_skip",!0),e}const Yt=e=>Ye(e)?dn(e):e,pn=e=>Ye(e)?qr(e):e;function at(e){return e?e.__v_isRef===!0:!1}function de(e){return ul(e,!1)}function gn(e){return ul(e,!0)}function ul(e,t){return at(e)?e:new rg(e,t)}class rg{constructor(t,o){this.dep=new zr,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=o?t:Be(t),this._value=o?t:Yt(t),this.__v_isShallow=o}get value(){return this.dep.track(),this._value}set value(t){const o=this._rawValue,n=this.__v_isShallow||Gt(t)||vo(t);t=n?t:Be(t),to(t,o)&&(this._rawValue=t,this._value=n?t:Yt(t),this.dep.trigger())}}function _e(e){return at(e)?e.value:e}const sg={get:(e,t,o)=>t==="__v_raw"?e:_e(Reflect.get(e,t,o)),set:(e,t,o,n)=>{const a=e[t];return at(a)&&!at(o)?(a.value=o,!0):Reflect.set(e,t,o,n)}};function dl(e){return _o(e)?e:new Proxy(e,sg)}function ig(e){const t=xe(e)?new Array(e.length):{};for(const o in e)t[o]=pl(e,o);return t}class lg{constructor(t,o,n){this._object=t,this._defaultValue=n,this.__v_isRef=!0,this._value=void 0,this._key=Dt(o)?o:String(o),this._raw=Be(t);let a=!0,r=t;if(!xe(t)||Dt(this._key)||!$a(this._key))do a=!Oa(r)||Gt(r);while(a&&(r=r.__v_raw));this._shallow=a}get value(){let t=this._object[this._key];return this._shallow&&(t=_e(t)),this._value=t===void 0?this._defaultValue:t}set value(t){if(this._shallow&&at(this._raw[this._key])){const o=this._object[this._key];if(at(o)){o.value=t;return}}this._object[this._key]=t}get dep(){return Up(this._raw,this._key)}}class cg{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function ug(e,t,o){return at(e)?e:Ee(e)?new cg(e):Ye(e)&&arguments.length>1?pl(e,t,o):de(e)}function pl(e,t,o){return new lg(e,t,o)}class dg{constructor(t,o,n){this.fn=t,this.setter=o,this._value=void 0,this.dep=new zr(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=jn-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!o,this.isSSR=n}notify(){if(this.flags|=16,!(this.flags&8)&&et!==this)return Yi(this,!0),!0}get value(){const t=this.dep.track();return Xi(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function pg(e,t,o=!1){let n,a;return Ee(e)?n=e:(n=e.get,a=e.set),new dg(n,a,o)}const Fa={},Da=new WeakMap;let qo;function gg(e,t=!1,o=qo){if(o){let n=Da.get(o);n||Da.set(o,n=[]),n.push(e)}}function fg(e,t,o=Ze){const{immediate:n,deep:a,once:r,scheduler:s,augmentJob:i,call:l}=o,u=_=>a?_:Gt(_)||a===!1||a===0?ko(_,1):ko(_);let c,p,f,k,w=!1,m=!1;if(at(e)?(p=()=>e.value,w=Gt(e)):_o(e)?(p=()=>u(e),w=!0):xe(e)?(m=!0,w=e.some(_=>_o(_)||Gt(_)),p=()=>e.map(_=>{if(at(_))return _.value;if(_o(_))return u(_);if(Ee(_))return l?l(_,2):_()})):Ee(e)?t?p=l?()=>l(e,2):e:p=()=>{if(f){oo();try{f()}finally{no()}}const _=qo;qo=c;try{return l?l(e,3,[k]):e(k)}finally{qo=_}}:p=eo,t&&a){const _=p,x=a===!0?1/0:a;p=()=>ko(_(),x)}const d=Hi(),g=()=>{c.stop(),d&&d.active&&Ir(d.effects,c)};if(r&&t){const _=t;t=(...x)=>{const $=_(...x);return g(),$}}let h=m?new Array(e.length).fill(Fa):Fa;const b=_=>{if(!(!(c.flags&1)||!c.dirty&&!_))if(t){const x=c.run();if(_||a||w||(m?x.some(($,A)=>to($,h[A])):to(x,h))){f&&f();const $=qo;qo=c;try{const A=[x,h===Fa?void 0:m&&h[0]===Fa?[]:h,k];h=x,l?l(t,3,A):t(...A)}finally{qo=$}}}else c.run()};return i&&i(b),c=new Vi(p),c.scheduler=s?()=>s(b,!1):b,k=_=>gg(_,!1,c),f=c.onStop=()=>{const _=Da.get(c);if(_){if(l)l(_,4);else for(const x of _)x();Da.delete(c)}},t?n?b(!0):h=c.run():s?s(b.bind(null,!0),!0):c.run(),g.pause=c.pause.bind(c),g.resume=c.resume.bind(c),g.stop=g,g}function ko(e,t=1/0,o){if(t<=0||!Ye(e)||e.__v_skip||(o=o||new Map,(o.get(e)||0)>=t))return e;if(o.set(e,t),t--,at(e))ko(e.value,t,o);else if(xe(e))for(let n=0;n{ko(n,t,o)});else if(xa(e)){for(const n in e)ko(e[n],t,o);for(const n of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,n)&&ko(e[n],t,o)}return e}/** +**/let ht;class Ki{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this._warnOnRun=!0,this.__v_skip=!0,!t&&ht&&(ht.active?(this.parent=ht,this.index=(ht.scopes||(ht.scopes=[])).push(this)-1):(this._active=!1,this._warnOnRun=!1))}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,o;if(this.scopes){const n=this.scopes.slice();for(t=0,o=n.length;t0&&--this._on===0){if(ht===this)ht=this.prevScope;else{let t=ht;for(;t;){if(t.prevScope===this){t.prevScope=this.prevScope;break}t=t.prevScope}}this.prevScope=void 0}}stop(t){if(this._active){this._active=!1;let o,n;for(o=0,n=this.effects.length;o0)return;if(Gn){let t=Gn;for(Gn=void 0;t;){const o=t.next;t.next=void 0,t.flags&=-9,t=o}}let e;for(;Bn;){let t=Bn;for(Bn=void 0;t;){const o=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(n){e||(e=n)}t=o}}if(e)throw e}function qi(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function Ji(e){let t,o=e.depsTail,n=o;for(;n;){const a=n.prevDep;n.version===-1?(n===o&&(o=a),zr(n),jp(n)):t=n,n.dep.activeLink=n.prevActiveLink,n.prevActiveLink=void 0,n=a}e.deps=t,e.depsTail=o}function Ur(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(Xi(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function Xi(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===jn)||(e.globalVersion=jn,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!Ur(e))))return;e.flags|=2;const t=e.dep,o=et,n=Wt;et=e,Wt=!0;try{qi(e);const a=e.fn(e._value);(t.version===0||oo(a,e._value))&&(e.flags|=128,e._value=a,t.version++)}catch(a){throw t.version++,a}finally{et=o,Wt=n,Ji(e),e.flags&=-3}}function zr(e,t=!1){const{dep:o,prevSub:n,nextSub:a}=e;if(n&&(n.nextSub=a,e.prevSub=void 0),a&&(a.prevSub=n,e.nextSub=void 0),o.subs===e&&(o.subs=n,!n&&o.computed)){o.computed.flags&=-5;for(let r=o.computed.deps;r;r=r.nextDep)zr(r,!0)}!t&&!--o.sc&&o.map&&o.map.delete(o.key)}function jp(e){const{prevDep:t,nextDep:o}=e;t&&(t.nextDep=o,e.prevDep=void 0),o&&(o.prevDep=t,e.nextDep=void 0)}let Wt=!0;const Zi=[];function no(){Zi.push(Wt),Wt=!1}function ao(){const e=Zi.pop();Wt=e===void 0?!0:e}function Qi(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const o=et;et=void 0;try{t()}finally{et=o}}}let jn=0;class Up{constructor(t,o){this.sub=t,this.dep=o,this.version=o.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class Kr{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(t){if(!et||!Wt||et===this.computed)return;let o=this.activeLink;if(o===void 0||o.sub!==et)o=this.activeLink=new Up(et,this),et.deps?(o.prevDep=et.depsTail,et.depsTail.nextDep=o,et.depsTail=o):et.deps=et.depsTail=o,el(o);else if(o.version===-1&&(o.version=this.version,o.nextDep)){const n=o.nextDep;n.prevDep=o.prevDep,o.prevDep&&(o.prevDep.nextDep=n),o.prevDep=et.depsTail,o.nextDep=void 0,et.depsTail.nextDep=o,et.depsTail=o,et.deps===o&&(et.deps=n)}return o}trigger(t){this.version++,jn++,this.notify(t)}notify(t){Gr();try{for(let o=this.subs;o;o=o.prevSub)o.sub.notify()&&o.sub.dep.notify()}finally{jr()}}}function el(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let n=t.deps;n;n=n.nextDep)el(n)}const o=e.dep.subs;o!==e&&(e.prevSub=o,o&&(o.nextSub=e)),e.dep.subs=e}}const Pa=new WeakMap,Wo=Symbol(""),Hr=Symbol(""),Un=Symbol("");function Pt(e,t,o){if(Wt&&et){let n=Pa.get(e);n||Pa.set(e,n=new Map);let a=n.get(o);a||(n.set(o,a=new Kr),a.map=n,a.key=o),a.track()}}function bo(e,t,o,n,a,r){const s=Pa.get(e);if(!s){jn++;return}const i=l=>{l&&l.trigger()};if(Gr(),t==="clear")s.forEach(i);else{const l=xe(e),u=l&&$a(o);if(l&&o==="length"){const c=Number(n);s.forEach((p,g)=>{(g==="length"||g===Un||!Bt(g)&&g>=c)&&i(p)})}else switch((o!==void 0||s.has(void 0))&&i(s.get(o)),u&&i(s.get(Un)),t){case"add":l?u&&i(s.get("length")):(i(s.get(Wo)),Mo(e)&&i(s.get(Hr)));break;case"delete":l||(i(s.get(Wo)),Mo(e)&&i(s.get(Hr)));break;case"set":Mo(e)&&i(s.get(Wo));break}}jr()}function zp(e,t){const o=Pa.get(e);return o&&o.get(t)}function un(e){const t=Be(e);return t===e?t:(Pt(t,"iterate",Un),jt(e)?t:t.map(Yt))}function Ta(e){return Pt(e=Be(e),"iterate",Un),e}function ro(e,t){return vo(e)?pn(_o(e)?Yt(t):t):Yt(t)}const Kp={__proto__:null,[Symbol.iterator](){return Vr(this,Symbol.iterator,e=>ro(this,e))},concat(...e){return un(this).concat(...e.map(t=>xe(t)?un(t):t))},entries(){return Vr(this,"entries",e=>(e[1]=ro(this,e[1]),e))},every(e,t){return yo(this,"every",e,t,void 0,arguments)},filter(e,t){return yo(this,"filter",e,t,o=>o.map(n=>ro(this,n)),arguments)},find(e,t){return yo(this,"find",e,t,o=>ro(this,o),arguments)},findIndex(e,t){return yo(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return yo(this,"findLast",e,t,o=>ro(this,o),arguments)},findLastIndex(e,t){return yo(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return yo(this,"forEach",e,t,void 0,arguments)},includes(...e){return Wr(this,"includes",e)},indexOf(...e){return Wr(this,"indexOf",e)},join(e){return un(this).join(e)},lastIndexOf(...e){return Wr(this,"lastIndexOf",e)},map(e,t){return yo(this,"map",e,t,void 0,arguments)},pop(){return zn(this,"pop")},push(...e){return zn(this,"push",e)},reduce(e,...t){return tl(this,"reduce",e,t)},reduceRight(e,...t){return tl(this,"reduceRight",e,t)},shift(){return zn(this,"shift")},some(e,t){return yo(this,"some",e,t,void 0,arguments)},splice(...e){return zn(this,"splice",e)},toReversed(){return un(this).toReversed()},toSorted(e){return un(this).toSorted(e)},toSpliced(...e){return un(this).toSpliced(...e)},unshift(...e){return zn(this,"unshift",e)},values(){return Vr(this,"values",e=>ro(this,e))}};function Vr(e,t,o){const n=Ta(e),a=n[t]();return n!==e&&!jt(e)&&(a._next=a.next,a.next=()=>{const r=a._next();return r.done||(r.value=o(r.value)),r}),a}const Hp=Array.prototype;function yo(e,t,o,n,a,r){const s=Ta(e),i=s!==e&&!jt(e),l=s[t];if(l!==Hp[t]){const p=l.apply(e,r);return i?Yt(p):p}let u=o;s!==e&&(i?u=function(p,g){return o.call(this,ro(e,p),g,e)}:o.length>2&&(u=function(p,g){return o.call(this,p,g,e)}));const c=l.call(s,u,n);return i&&a?a(c):c}function tl(e,t,o,n){const a=Ta(e),r=a!==e&&!jt(e);let s=o,i=!1;a!==e&&(r?(i=n.length===0,s=function(u,c,p){return i&&(i=!1,u=ro(e,u)),o.call(this,u,ro(e,c),p,e)}):o.length>3&&(s=function(u,c,p){return o.call(this,u,c,p,e)}));const l=a[t](s,...n);return i?ro(e,l):l}function Wr(e,t,o){const n=Be(e);Pt(n,"iterate",Un);const a=n[t](...o);return(a===-1||a===!1)&&Oa(o[0])?(o[0]=Be(o[0]),n[t](...o)):a}function zn(e,t,o=[]){no(),Gr();const n=Be(e)[t].apply(e,o);return jr(),ao(),n}const Vp=Rr("__proto__,__v_isRef,__isVue"),ol=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(Bt));function Wp(e){Bt(e)||(e=String(e));const t=Be(this);return Pt(t,"has",e),t.hasOwnProperty(e)}class nl{constructor(t=!1,o=!1){this._isReadonly=t,this._isShallow=o}get(t,o,n){if(o==="__v_skip")return t.__v_skip;const a=this._isReadonly,r=this._isShallow;if(o==="__v_isReactive")return!a;if(o==="__v_isReadonly")return a;if(o==="__v_isShallow")return r;if(o==="__v_raw")return n===(a?r?cl:ll:r?il:sl).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(n)?t:void 0;const s=xe(t);if(!a){let l;if(s&&(l=Kp[o]))return l;if(o==="hasOwnProperty")return Wp}const i=Reflect.get(t,o,at(t)?t:n);if((Bt(o)?ol.has(o):Vp(o))||(a||Pt(t,"get",o),r))return i;if(at(i)){const l=s&&$a(o)?i:i.value;return a&&Ye(l)?qr(l):l}return Ye(i)?a?qr(i):dn(i):i}}class al extends nl{constructor(t=!1){super(!1,t)}set(t,o,n,a){let r=t[o];const s=xe(t)&&$a(o);if(!this._isShallow){const u=vo(r);if(!jt(n)&&!vo(n)&&(r=Be(r),n=Be(n)),!s&&at(r)&&!at(n))return u||(r.value=n),!0}const i=s?Number(o)e,Ma=e=>Reflect.getPrototypeOf(e);function Zp(e,t,o){return function(...n){const a=this.__v_raw,r=Be(a),s=Mo(r),i=e==="entries"||e===Symbol.iterator&&s,l=e==="keys"&&s,u=a[e](...n),c=o?Yr:t?pn:Yt;return!t&&Pt(r,"iterate",l?Hr:Wo),lt(Object.create(u),{next(){const{value:p,done:g}=u.next();return g?{value:p,done:g}:{value:i?[c(p[0]),c(p[1])]:c(p),done:g}}})}}function Na(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function Qp(e,t){const o={get(a){const r=this.__v_raw,s=Be(r),i=Be(a);e||(oo(a,i)&&Pt(s,"get",a),Pt(s,"get",i));const{has:l}=Ma(s),u=t?Yr:e?pn:Yt;if(l.call(s,a))return u(r.get(a));if(l.call(s,i))return u(r.get(i));r!==s&&r.get(a)},get size(){const a=this.__v_raw;return!e&&Pt(Be(a),"iterate",Wo),a.size},has(a){const r=this.__v_raw,s=Be(r),i=Be(a);return e||(oo(a,i)&&Pt(s,"has",a),Pt(s,"has",i)),a===i?r.has(a):r.has(a)||r.has(i)},forEach(a,r){const s=this,i=s.__v_raw,l=Be(i),u=t?Yr:e?pn:Yt;return!e&&Pt(l,"iterate",Wo),i.forEach((c,p)=>a.call(r,u(c),u(p),s))}};return lt(o,e?{add:Na("add"),set:Na("set"),delete:Na("delete"),clear:Na("clear")}:{add(a){const r=Be(this),s=Ma(r),i=Be(a),l=!t&&!jt(a)&&!vo(a)?i:a;return s.has.call(r,l)||oo(a,l)&&s.has.call(r,a)||oo(i,l)&&s.has.call(r,i)||(r.add(l),bo(r,"add",l,l)),this},set(a,r){!t&&!jt(r)&&!vo(r)&&(r=Be(r));const s=Be(this),{has:i,get:l}=Ma(s);let u=i.call(s,a);u||(a=Be(a),u=i.call(s,a));const c=l.call(s,a);return s.set(a,r),u?oo(r,c)&&bo(s,"set",a,r):bo(s,"add",a,r),this},delete(a){const r=Be(this),{has:s,get:i}=Ma(r);let l=s.call(r,a);l||(a=Be(a),l=s.call(r,a)),i&&i.call(r,a);const u=r.delete(a);return l&&bo(r,"delete",a,void 0),u},clear(){const a=Be(this),r=a.size!==0,s=a.clear();return r&&bo(a,"clear",void 0,void 0),s}}),["keys","values","entries",Symbol.iterator].forEach(a=>{o[a]=Zp(a,e,t)}),o}function Ra(e,t){const o=Qp(e,t);return(n,a,r)=>a==="__v_isReactive"?!e:a==="__v_isReadonly"?e:a==="__v_raw"?n:Reflect.get(Ke(o,a)&&a in n?o:n,a,r)}const eg={get:Ra(!1,!1)},tg={get:Ra(!1,!0)},og={get:Ra(!0,!1)},ng={get:Ra(!0,!0)},sl=new WeakMap,il=new WeakMap,ll=new WeakMap,cl=new WeakMap;function ag(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function dn(e){return vo(e)?e:Ia(e,!1,Yp,eg,sl)}function rg(e){return Ia(e,!1,Jp,tg,il)}function qr(e){return Ia(e,!0,qp,og,ll)}function m$(e){return Ia(e,!0,Xp,ng,cl)}function Ia(e,t,o,n,a){if(!Ye(e)||e.__v_raw&&!(t&&e.__v_isReactive)||e.__v_skip||!Object.isExtensible(e))return e;const r=a.get(e);if(r)return r;const s=ag(Pp(e));if(s===0)return e;const i=new Proxy(e,s===2?n:o);return a.set(e,i),i}function _o(e){return vo(e)?_o(e.__v_raw):!!(e&&e.__v_isReactive)}function vo(e){return!!(e&&e.__v_isReadonly)}function jt(e){return!!(e&&e.__v_isShallow)}function Oa(e){return e?!!e.__v_raw:!1}function Be(e){const t=e&&e.__v_raw;return t?Be(t):e}function Yo(e){return!Ke(e,"__v_skip")&&Object.isExtensible(e)&&Fi(e,"__v_skip",!0),e}const Yt=e=>Ye(e)?dn(e):e,pn=e=>Ye(e)?qr(e):e;function at(e){return e?e.__v_isRef===!0:!1}function pe(e){return ul(e,!1)}function gn(e){return ul(e,!0)}function ul(e,t){return at(e)?e:new sg(e,t)}class sg{constructor(t,o){this.dep=new Kr,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=o?t:Be(t),this._value=o?t:Yt(t),this.__v_isShallow=o}get value(){return this.dep.track(),this._value}set value(t){const o=this._rawValue,n=this.__v_isShallow||jt(t)||vo(t);t=n?t:Be(t),oo(t,o)&&(this._rawValue=t,this._value=n?t:Yt(t),this.dep.trigger())}}function ve(e){return at(e)?e.value:e}const ig={get:(e,t,o)=>t==="__v_raw"?e:ve(Reflect.get(e,t,o)),set:(e,t,o,n)=>{const a=e[t];return at(a)&&!at(o)?(a.value=o,!0):Reflect.set(e,t,o,n)}};function dl(e){return _o(e)?e:new Proxy(e,ig)}function lg(e){const t=xe(e)?new Array(e.length):{};for(const o in e)t[o]=pl(e,o);return t}class cg{constructor(t,o,n){this._object=t,this._defaultValue=n,this.__v_isRef=!0,this._value=void 0,this._key=Bt(o)?o:String(o),this._raw=Be(t);let a=!0,r=t;if(!xe(t)||Bt(this._key)||!$a(this._key))do a=!Oa(r)||jt(r);while(a&&(r=r.__v_raw));this._shallow=a}get value(){let t=this._object[this._key];return this._shallow&&(t=ve(t)),this._value=t===void 0?this._defaultValue:t}set value(t){if(this._shallow&&at(this._raw[this._key])){const o=this._object[this._key];if(at(o)){o.value=t;return}}this._object[this._key]=t}get dep(){return zp(this._raw,this._key)}}class ug{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function dg(e,t,o){return at(e)?e:Ee(e)?new ug(e):Ye(e)&&arguments.length>1?pl(e,t,o):pe(e)}function pl(e,t,o){return new cg(e,t,o)}class pg{constructor(t,o,n){this.fn=t,this.setter=o,this._value=void 0,this.dep=new Kr(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=jn-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!o,this.isSSR=n}notify(){if(this.flags|=16,!(this.flags&8)&&et!==this)return Yi(this,!0),!0}get value(){const t=this.dep.track();return Xi(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function gg(e,t,o=!1){let n,a;return Ee(e)?n=e:(n=e.get,a=e.set),new pg(n,a,o)}const Fa={},Da=new WeakMap;let qo;function fg(e,t=!1,o=qo){if(o){let n=Da.get(o);n||Da.set(o,n=[]),n.push(e)}}function hg(e,t,o=Ze){const{immediate:n,deep:a,once:r,scheduler:s,augmentJob:i,call:l}=o,u=_=>a?_:jt(_)||a===!1||a===0?ko(_,1):ko(_);let c,p,g,k,w=!1,m=!1;if(at(e)?(p=()=>e.value,w=jt(e)):_o(e)?(p=()=>u(e),w=!0):xe(e)?(m=!0,w=e.some(_=>_o(_)||jt(_)),p=()=>e.map(_=>{if(at(_))return _.value;if(_o(_))return u(_);if(Ee(_))return l?l(_,2):_()})):Ee(e)?t?p=l?()=>l(e,2):e:p=()=>{if(g){no();try{g()}finally{ao()}}const _=qo;qo=c;try{return l?l(e,3,[k]):e(k)}finally{qo=_}}:p=to,t&&a){const _=p,x=a===!0?1/0:a;p=()=>ko(_(),x)}const d=Hi(),f=()=>{c.stop(),d&&d.active&&Ir(d.effects,c)};if(r&&t){const _=t;t=(...x)=>{const $=_(...x);return f(),$}}let h=m?new Array(e.length).fill(Fa):Fa;const b=_=>{if(!(!(c.flags&1)||!c.dirty&&!_))if(t){const x=c.run();if(_||a||w||(m?x.some(($,A)=>oo($,h[A])):oo(x,h))){g&&g();const $=qo;qo=c;try{const A=[x,h===Fa?void 0:m&&h[0]===Fa?[]:h,k];h=x,l?l(t,3,A):t(...A)}finally{qo=$}}}else c.run()};return i&&i(b),c=new Vi(p),c.scheduler=s?()=>s(b,!1):b,k=_=>fg(_,!1,c),g=c.onStop=()=>{const _=Da.get(c);if(_){if(l)l(_,4);else for(const x of _)x();Da.delete(c)}},t?n?b(!0):h=c.run():s?s(b.bind(null,!0),!0):c.run(),f.pause=c.pause.bind(c),f.resume=c.resume.bind(c),f.stop=f,f}function ko(e,t=1/0,o){if(t<=0||!Ye(e)||e.__v_skip||(o=o||new Map,(o.get(e)||0)>=t))return e;if(o.set(e,t),t--,at(e))ko(e.value,t,o);else if(xe(e))for(let n=0;n{ko(n,t,o)});else if(xa(e)){for(const n in e)ko(e[n],t,o);for(const n of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,n)&&ko(e[n],t,o)}return e}/** * @vue/runtime-core v3.5.42 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT -**/const zn=[];let Jr=!1;function g$(e,...t){if(Jr)return;Jr=!0,oo();const o=zn.length?zn[zn.length-1].component:null,n=o&&o.appContext.config.warnHandler,a=hg();if(n)fn(n,o,11,[e+t.map(r=>{var s,i;return(i=(s=r.toString)==null?void 0:s.call(r))!=null?i:JSON.stringify(r)}).join(""),o&&o.proxy,a.map(({vnode:r})=>`at <${pc(o,r.type)}>`).join(` +**/const Kn=[];let Jr=!1;function b$(e,...t){if(Jr)return;Jr=!0,no();const o=Kn.length?Kn[Kn.length-1].component:null,n=o&&o.appContext.config.warnHandler,a=mg();if(n)fn(n,o,11,[e+t.map(r=>{var s,i;return(i=(s=r.toString)==null?void 0:s.call(r))!=null?i:JSON.stringify(r)}).join(""),o&&o.proxy,a.map(({vnode:r})=>`at <${pc(o,r.type)}>`).join(` `),a]);else{const r=[`[Vue warn]: ${e}`,...t];a.length&&r.push(` -`,...mg(a)),console.warn(...r)}no(),Jr=!1}function hg(){let e=zn[zn.length-1];if(!e)return[];const t=[];for(;e;){const o=t[0];o&&o.vnode===e?o.recurseCount++:t.push({vnode:e,recurseCount:0});const n=e.component&&e.component.parent;e=n&&n.vnode}return t}function mg(e){const t=[];return e.forEach((o,n)=>{t.push(...n===0?[]:[` -`],...bg(o))}),t}function bg({vnode:e,recurseCount:t}){const o=t>0?`... (${t} recursive calls)`:"",n=e.component?e.component.parent==null:!1,a=` at <${pc(e.component,e.type,n)}`,r=">"+o;return e.props?[a,...yg(e.props),r]:[a+r]}function yg(e){const t=[],o=Object.keys(e);return o.slice(0,3).forEach(n=>{t.push(...gl(n,e[n]))}),o.length>3&&t.push(" ..."),t}function gl(e,t,o){return Qe(t)?(t=JSON.stringify(t),o?t:[`${e}=${t}`]):typeof t=="number"||typeof t=="boolean"||t==null?o?t:[`${e}=${t}`]:at(t)?(t=gl(e,Be(t.value),!0),o?t:[`${e}=Ref<`,t,">"]):Ee(t)?[`${e}=fn${t.name?`<${t.name}>`:""}`]:(t=Be(t),o?t:[`${e}=`,t])}function fn(e,t,o,n){try{return n?e(...n):e()}catch(a){Hn(a,t,o)}}function qt(e,t,o,n){if(Ee(e)){const a=fn(e,t,o,n);return a&&Ii(a)&&a.catch(r=>{Hn(r,t,o)}),a}if(xe(e)){const a=[];for(let r=0;r>>1,a=Mt[n],r=Vn(a);r=Vn(o)?Mt.push(e):Mt.splice(vg(t),0,e),e.flags|=1,hl()}}function hl(){Ba||(Ba=fl.then(yl))}function kg(e){if(!xe(e))Ro&&e.id===-1?Ro.splice(mn+1,0,e):e.flags&1||(hn.push(e),e.flags|=1);else for(let t=0;tVn(o)-Vn(n));if(hn.length=0,Ro){for(let o=0;oe.id==null?e.flags&2?-1:1/0:e.id;function yl(e){try{for(ro=0;ro{n._d&&Xa(-1);const r=Ga(t),s=xo.length;let i;try{i=e(...a)}finally{for(let l=xo.length;l>s;l--)gs();Ga(r),n._d&&Xa(1)}return i};return n._n=!0,n._c=!0,n._d=!0,n}function vl(e,t){if(At===null)return e;const o=tr(At),n=e.dirs||(e.dirs=[]);for(let a=0;a1)return o&&Ee(t)?t.call(n&&n.proxy):t}}function wg(){return!!(Ao()||Zo)}const xg=Symbol.for("v-scx"),$g=()=>Fe(xg);function Ag(e,t){return Zr(e,null,t)}function it(e,t,o){return Zr(e,t,o)}function Zr(e,t,o=Ze){const{immediate:n,deep:a,flush:r,once:s}=o,i=lt({},o),l=t&&n||!t&&r!=="post";let u;if(vn){if(r==="sync"){const k=$g();u=k.__watcherHandles||(k.__watcherHandles=[])}else if(!l){const k=()=>{};return k.stop=eo,k.resume=eo,k.pause=eo,k}}const c=Et;i.call=(k,w,m)=>qt(k,c,w,m);let p=!1;r==="post"?i.scheduler=k=>{Rt(k,c&&c.suspense)}:r!=="sync"&&(p=!0,i.scheduler=(k,w)=>{w?k():Xr(k)}),i.augmentJob=k=>{t&&(k.flags|=4),p&&(k.flags|=2,c&&(k.id=c.uid,k.i=c))};const f=fg(e,t,i);return vn&&(u?u.push(f):l&&f()),f}function Sg(e,t,o){const n=this.proxy,a=Qe(e)?e.includes(".")?kl(n,e):()=>n[e]:e.bind(n,n);let r;Ee(t)?r=t:(r=t.handler,o=t);const s=na(this),i=Zr(a,r.bind(n),o);return s(),i}function kl(e,t){const o=t.split(".");return()=>{let n=e;for(let a=0;ae.__isTeleport,Xo=e=>e&&(e.disabled||e.disabled===""),Eg=e=>e&&(e.defer||e.defer===""),xl=e=>typeof SVGElement<"u"&&e instanceof SVGElement,$l=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,Qr=(e,t)=>{const o=e&&e.to;return Qe(o)?t?t(o):null:o},Lg={name:"Teleport",__isTeleport:!0,process(e,t,o,n,a,r,s,i,l,u){const{mc:c,pc:p,pbc:f,o:{insert:k,querySelector:w,createText:m,createComment:d,parentNode:g}}=u,h=Xo(t.props);let{dynamicChildren:b}=t;const _=(A,C,P)=>{A.shapeFlag&16&&c(A.children,C,P,a,r,s,i,l)},x=(A=t)=>{const C=Xo(A.props),P=A.target=Qr(A.props,w),z=es(P,A,m,k);P&&(s!=="svg"&&xl(P)?s="svg":s!=="mathml"&&$l(P)&&(s="mathml"),a&&a.isCE&&(a.ce._teleportTargets||(a.ce._teleportTargets=new Set)).add(P),C||(_(A,P,z),Wn(A,!1)))},$=A=>{const C=()=>{if(Io.get(A)===C){if(Io.delete(A),Xo(A.props)){const P=g(A.el)||o;_(A,P,A.anchor),Wn(A,!0)}x(A)}};Io.set(A,C),Rt(C,r)};if(e==null){const A=t.el=m(""),C=t.anchor=m("");if(k(A,o,n),k(C,o,n),Eg(t.props)||r&&r.pendingBranch){$(t);return}h&&(_(t,o,C),Wn(t,!0)),x()}else{t.el=e.el;const A=t.anchor=e.anchor,C=Io.get(e);if(C){C.flags|=8,Io.delete(e),$(t);return}t.targetStart=e.targetStart;const P=t.target=e.target,z=t.targetAnchor=e.targetAnchor,Y=Xo(e.props),re=Y?o:P,M=Y?A:z;if(s==="svg"||xl(P)?s="svg":(s==="mathml"||$l(P))&&(s="mathml"),b?(f(e.dynamicChildren,b,re,a,r,s,i),ps(e,t,!0)):l||p(e,t,re,M,a,r,s,i,!1),h)Y?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):Ua(t,o,A,u,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const F=Qr(t.props,w);F&&(t.target=F,Ua(t,F,null,u,0))}else Y&&Ua(t,P,z,u,1);Wn(t,h)}},remove(e,t,o,{um:n,o:{remove:a}},r){const{shapeFlag:s,children:i,anchor:l,targetStart:u,targetAnchor:c,target:p,props:f}=e,k=Xo(f),w=r||!k,m=Io.get(e);if(m&&(m.flags|=8,Io.delete(e)),p&&(a(u),a(c)),r&&a(l),!m&&(k||p)&&s&16)for(let d=0;d1){for(const o of e)if(o.type!==co){t=o;break}}return t}function Al(e){if(!Ha(e))return ja(e.type)&&e.children?Tg(e.children):e;if(e.component)return e.component.subTree;const{shapeFlag:t,children:o}=e;if(o){if(t&16)return o[0];if(t&32&&Ee(o.default))return o.default()}}function os(e,t){if(e.shapeFlag&6&&e.component){e.transition=t;const o=e.component.subTree;os(ja(o.type)&&Al(o)||o,t)}else e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function Yn(e,t){return Ee(e)?lt({name:e.name},t,{setup:e}):e}function ns(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}function Sl(e,t){let o;return!!((o=Object.getOwnPropertyDescriptor(e,t))&&!o.configurable)}const Ka=new WeakMap;function qn(e,t,o,n,a=!1){if(xe(e)){e.forEach((m,d)=>qn(m,t&&(xe(t)?t[d]:t),o,n,a));return}if(bn(n)&&!a){n.shapeFlag&512&&n.type.__asyncResolved&&n.component.subTree.component&&qn(e,t,o,n.component.subTree);return}const r=n.shapeFlag&4?tr(n.component):n.el,s=a?null:r,{i,r:l}=e,u=t&&t.r,c=i.refs===Ze?i.refs={}:i.refs,p=i.setupState,f=Be(p),k=p===Ze?Ni:m=>Sl(c,m)?!1:ze(f,m),w=(m,d)=>!(d&&Sl(c,d));if(u!=null&&u!==l){if(El(t),Qe(u))c[u]=null,k(u)&&(p[u]=null);else if(at(u)){const m=t;w(u,m.k)&&(u.value=null),m.k&&(c[m.k]=null)}}if(Ee(l))fn(l,i,12,[s,c]);else{const m=Qe(l),d=at(l);if(m||d){const g=()=>{if(e.f){const h=m?k(l)?p[l]:c[l]:w()||!e.k?l.value:c[e.k];if(a)xe(h)&&Ir(h,r);else if(xe(h))h.includes(r)||h.push(r);else if(m)c[l]=[r],k(l)&&(p[l]=c[l]);else{const b=[r];w(l,e.k)&&(l.value=b),e.k&&(c[e.k]=b)}}else m?(c[l]=s,k(l)&&(p[l]=s)):d&&(w(l,e.k)&&(l.value=s),e.k&&(c[e.k]=s))};if(s){const h=()=>{g(),Ka.delete(e)};h.id=-1,Ka.set(e,h),Rt(h,o)}else El(e),g()}}}function El(e){const t=Ka.get(e);t&&(t.flags|=8,Ka.delete(e))}const Ll=e=>e.nodeType===8;Ca().requestIdleCallback,Ca().cancelIdleCallback;function Mg(e,t){if(Ll(e)&&e.data==="["){let o=1,n=e.nextSibling;for(;n;){if(n.nodeType===1){if(t(n)===!1)break}else if(Ll(n))if(n.data==="]"){if(--o===0)break}else n.data==="["&&o++;n=n.nextSibling}}else t(e)}const bn=e=>!!e.type.__asyncLoader;function Ng(e){Ee(e)&&(e={loader:e});const{loader:t,loadingComponent:o,errorComponent:n,delay:a=200,hydrate:r,timeout:s,suspensible:i=!0,onError:l}=e;let u=null,c,p=0;const f=()=>(p++,u=null,k()),k=()=>{let w;return u||(w=u=t().catch(m=>{if(m=m instanceof Error?m:new Error(String(m)),l)return new Promise((d,g)=>{l(m,()=>d(f()),()=>g(m),p+1)});throw m}).then(m=>w!==u&&u?u:(m&&(m.__esModule||m[Symbol.toStringTag]==="Module")&&(m=m.default),c=m,m)))};return Yn({name:"AsyncComponentWrapper",__asyncLoader:k,__asyncHydrate(w,m,d){const g=w.isConnected;let h=!1;(m.bu||(m.bu=[])).push(()=>h=!0);const b=()=>{h||!w.parentNode||g&&!w.isConnected||d()},_=r?()=>{const x=r(b,$=>Mg(w,$));x&&(m.bum||(m.bum=[])).push(x)}:b;c?_():k().then(()=>!m.isUnmounted&&_())},get __asyncResolved(){return c},setup(){const w=Et;if(ns(w),c)return()=>za(c,w);const m=x=>{u=null,Hn(x,w,13,!n)};if(i&&w.suspense||vn)return k().then(x=>()=>za(x,w)).catch(x=>(m(x),()=>n?He(n,{error:x}):null));const d=de(!1),g=de(),h=de(!!a);let b,_;return Wa(()=>{b!=null&&clearTimeout(b),_!=null&&clearTimeout(_)}),a&&(_=setTimeout(()=>{w.isUnmounted||(h.value=!1)},a)),s!=null&&(b=setTimeout(()=>{if(!w.isUnmounted&&!d.value&&!g.value){const x=new Error(`Async component timed out after ${s}ms.`);m(x),g.value=x}},s)),k().then(()=>{w.isUnmounted||(d.value=!0,w.parent&&Ha(w.parent.vnode)&&w.parent.update())}).catch(x=>{if(w.isUnmounted){u=null;return}m(x),g.value=x}),()=>{if(d.value&&c)return za(c,w);if(g.value&&n)return He(n,{error:g.value});if(o&&!h.value)return za(o,w)}}})}function za(e,t){const{ref:o,props:n,children:a,ce:r}=t.vnode,s=He(e,n,a);return s.ref=o,s.ce=r,delete t.vnode.ce,s}const Ha=e=>e.type.__isKeepAlive;function Rg(e,t){Cl(e,"a",t)}function Ig(e,t){Cl(e,"da",t)}function Cl(e,t,o=Et){const n=e.__wdc||(e.__wdc=()=>{let a=o;for(;a;){if(a.isDeactivated)return;a=a.parent}return e()});if(Va(t,n,o),o){let a=o.parent;for(;a&&a.parent;)Ha(a.parent.vnode)&&Og(n,t,o,a),a=a.parent}}function Og(e,t,o,n){const a=Va(t,e,n,!0);Wa(()=>{Ir(n[t],a)},o)}function Va(e,t,o=Et,n=!1){if(o){const a=o[e]||(o[e]=[]),r=t.__weh||(t.__weh=(...s)=>{oo();const i=na(o),l=qt(t,o,e,s);return i(),no(),l});return n?a.unshift(r):a.push(r),r}}const wo=e=>(t,o=Et)=>{(!vn||e==="sp")&&Va(e,(...n)=>t(...n),o)},Pl=wo("bm"),io=wo("m"),Fg=wo("bu"),Dg=wo("u"),lo=wo("bum"),Wa=wo("um"),Bg=wo("sp"),Gg=wo("rtg"),jg=wo("rtc");function Ug(e,t=Et){Va("ec",e,t)}const Kg="components",Tl=Symbol.for("v-ndc");function Ml(e){return Qe(e)?zg(Kg,e,!1)||e:e||Tl}function zg(e,t,o=!0,n=!1){const a=At||Et;if(a){const r=a.type;{const i=dc(r,!1);if(i&&(i===t||i===_t(t)||i===Sa(_t(t))))return r}const s=Nl(a[e]||r[e],t)||Nl(a.appContext[e],t);return!s&&n?r:s}}function Nl(e,t){return e&&(e[t]||e[_t(t)]||e[Sa(_t(t))])}function St(e,t,o,n){let a;const r=o,s=xe(e);if(s||Qe(e)){const i=s&&_o(e);let l=!1,u=!1;i&&(l=!Gt(e),u=vo(e),e=Ta(e)),a=new Array(e.length);for(let c=0,p=e.length;ct(i,l,void 0,r));else{const i=Object.keys(e);a=new Array(i.length);for(let l=0,u=i.length;l0;return t!=="default"&&(u.name=t),V(),dt(Te,null,[He("slot",u,n)],c?-2:64)}let s=e[t];s&&s._c&&(s._d=!1);const i=xo.length;V();let l;try{const u=s&&Rl(s(o)),c=o.key||r||u&&u.key;l=dt(Te,{key:(c&&!Dt(c)?c:`_${t}`)+(!u&&n?"_fb":"")},u||(n?n():[]),u&&e._===1?64:-2)}catch(u){for(let c=xo.length;c>i;c--)gs();throw u}finally{s&&s._c&&(s._d=!0)}return!a&&l.scopeId&&(l.slotScopeIds=[l.scopeId+"-s"]),l}function Rl(e){return e.some(t=>ea(t)?!(t.type===co||t.type===Te&&!Rl(t.children)):!0)?e:null}const as=e=>e?lc(e)?tr(e):as(e.parent):null,Jn=lt(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=>as(e.parent),$root:e=>as(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Dl(e),$forceUpdate:e=>e.f||(e.f=()=>{Xr(e.update)}),$nextTick:e=>e.n||(e.n=so.bind(e.proxy)),$watch:e=>Sg.bind(e)}),rs=(e,t)=>e!==Ze&&!e.__isScriptSetup&&ze(e,t),Hg={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:o,setupState:n,data:a,props:r,accessCache:s,type:i,appContext:l}=e;if(t[0]!=="$"){const f=s[t];if(f!==void 0)switch(f){case 1:return n[t];case 2:return a[t];case 4:return o[t];case 3:return r[t]}else{if(rs(n,t))return s[t]=1,n[t];if(a!==Ze&&ze(a,t))return s[t]=2,a[t];if(ze(r,t))return s[t]=3,r[t];if(o!==Ze&&ze(o,t))return s[t]=4,o[t];ss&&(s[t]=0)}}const u=Jn[t];let c,p;if(u)return t==="$attrs"&&Pt(e.attrs,"get",""),u(e);if((c=i.__cssModules)&&(c=c[t]))return c;if(o!==Ze&&ze(o,t))return s[t]=4,o[t];if(p=l.config.globalProperties,ze(p,t))return p[t]},set({_:e},t,o){const{data:n,setupState:a,ctx:r}=e;return rs(a,t)?(a[t]=o,!0):n!==Ze&&ze(n,t)?(n[t]=o,!0):ze(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(r[t]=o,!0)},has({_:{data:e,setupState:t,accessCache:o,ctx:n,appContext:a,props:r,type:s}},i){let l;return!!(o[i]||e!==Ze&&i[0]!=="$"&&ze(e,i)||rs(t,i)||ze(r,i)||ze(n,i)||ze(Jn,i)||ze(a.config.globalProperties,i)||(l=s.__cssModules)&&l[i])},defineProperty(e,t,o){return o.get!=null?e._.accessCache[t]=0:ze(o,"value")&&this.set(e,t,o.value,null),Reflect.defineProperty(e,t,o)}};function Il(e){return xe(e)?e.reduce((t,o)=>(t[o]=null,t),{}):e}let ss=!0;function Vg(e){const t=Dl(e),o=e.proxy,n=e.ctx;ss=!1,t.beforeCreate&&Ol(t.beforeCreate,e,"bc");const{data:a,computed:r,methods:s,watch:i,provide:l,inject:u,created:c,beforeMount:p,mounted:f,beforeUpdate:k,updated:w,activated:m,deactivated:d,beforeDestroy:g,beforeUnmount:h,destroyed:b,unmounted:_,render:x,renderTracked:$,renderTriggered:A,errorCaptured:C,serverPrefetch:P,expose:z,inheritAttrs:Y,components:re,directives:M,filters:F}=t;if(u&&Wg(u,n,null),s)for(const I in s){const ne=s[I];Ee(ne)&&(n[I]=ne.bind(o))}if(a){const I=a.call(o,o);Ye(I)&&(e.data=dn(I))}if(ss=!0,r)for(const I in r){const ne=r[I],ge=Ee(ne)?ne.bind(o,o):Ee(ne.get)?ne.get.bind(o,o):eo,L=!Ee(ne)&&Ee(ne.set)?ne.set.bind(o):eo,ae=oe({get:ge,set:L});Object.defineProperty(n,I,{enumerable:!0,configurable:!0,get:()=>ae.value,set:ie=>ae.value=ie})}if(i)for(const I in i)Fl(i[I],n,o,I);if(l){const I=Ee(l)?l.call(o):l;Reflect.ownKeys(I).forEach(ne=>{Ot(ne,I[ne])})}c&&Ol(c,e,"c");function S(I,ne){xe(ne)?ne.forEach(ge=>I(ge.bind(o))):ne&&I(ne.bind(o))}if(S(Pl,p),S(io,f),S(Fg,k),S(Dg,w),S(Rg,m),S(Ig,d),S(Ug,C),S(jg,$),S(Gg,A),S(lo,h),S(Wa,_),S(Bg,P),xe(z))if(z.length){const I=e.exposed||(e.exposed={});z.forEach(ne=>{Object.defineProperty(I,ne,{get:()=>o[ne],set:ge=>o[ne]=ge,enumerable:!0})})}else e.exposed||(e.exposed={});x&&e.render===eo&&(e.render=x),Y!=null&&(e.inheritAttrs=Y),re&&(e.components=re),M&&(e.directives=M),P&&ns(e)}function Wg(e,t,o=eo){xe(e)&&(e=is(e));for(const n in e){const a=e[n];let r;Ye(a)?"default"in a?r=Fe(a.from||n,a.default,!0):r=Fe(a.from||n):r=Fe(a),at(r)?Object.defineProperty(t,n,{enumerable:!0,configurable:!0,get:()=>r.value,set:s=>r.value=s}):t[n]=r}}function Ol(e,t,o){qt(xe(e)?e.map(n=>n.bind(t.proxy)):e.bind(t.proxy),t,o)}function Fl(e,t,o,n){let a=n.includes(".")?kl(o,n):()=>o[n];if(Qe(e)){const r=t[e];Ee(r)&&it(a,r)}else if(Ee(e))it(a,e.bind(o));else if(Ye(e))if(xe(e))e.forEach(r=>Fl(r,t,o,n));else{const r=Ee(e.handler)?e.handler.bind(o):t[e.handler];Ee(r)&&it(a,r,e)}}function Dl(e){const t=e.type,{mixins:o,extends:n}=t,{mixins:a,optionsCache:r,config:{optionMergeStrategies:s}}=e.appContext,i=r.get(t);let l;return i?l=i:!a.length&&!o&&!n?l=t:(l={},a.length&&a.forEach(u=>Ya(l,u,s,!0)),Ya(l,t,s)),Ye(t)&&r.set(t,l),l}function Ya(e,t,o,n=!1){const{mixins:a,extends:r}=t;r&&Ya(e,r,o,!0),a&&a.forEach(s=>Ya(e,s,o,!0));for(const s in t)if(!(n&&s==="expose")){const i=Yg[s]||o&&o[s];e[s]=i?i(e[s],t[s]):t[s]}return e}const Yg={data:Bl,props:Gl,emits:Gl,methods:Xn,computed:Xn,beforeCreate:Nt,created:Nt,beforeMount:Nt,mounted:Nt,beforeUpdate:Nt,updated:Nt,beforeDestroy:Nt,beforeUnmount:Nt,destroyed:Nt,unmounted:Nt,activated:Nt,deactivated:Nt,errorCaptured:Nt,serverPrefetch:Nt,components:Xn,directives:Xn,watch:Jg,provide:Bl,inject:qg};function Bl(e,t){return t?e?function(){return lt(Ee(e)?e.call(this,this):e,Ee(t)?t.call(this,this):t)}:t:e}function qg(e,t){return Xn(is(e),is(t))}function is(e){if(xe(e)){const t={};for(let o=0;ot==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${_t(t)}Modifiers`]||e[`${Bt(t)}Modifiers`];function ef(e,t,...o){if(e.isUnmounted)return;const n=e.vnode.props||Ze;let a=o;const r=t.startsWith("update:"),s=r&&Qg(n,t.slice(7));s&&(s.trim&&(a=o.map(c=>Qe(c)?c.trim():c)),s.number&&(a=a.map(La)));let i,l=n[i=Or(t)]||n[i=Or(_t(t))];!l&&r&&(l=n[i=Or(Bt(t))]),l&&qt(l,e,6,a);const u=n[i+"Once"];if(u){if(!e.emitted)e.emitted={};else if(e.emitted[i])return;e.emitted[i]=!0,qt(u,e,6,a)}}const tf=new WeakMap;function Ul(e,t,o=!1){const n=o?tf:t.emitsCache,a=n.get(e);if(a!==void 0)return a;const r=e.emits;let s={},i=!1;if(!Ee(e)){const l=u=>{const c=Ul(u,t,!0);c&&(i=!0,lt(s,c))};!o&&t.mixins.length&&t.mixins.forEach(l),e.extends&&l(e.extends),e.mixins&&e.mixins.forEach(l)}return!r&&!i?(Ye(e)&&n.set(e,null),null):(xe(r)?r.forEach(l=>s[l]=null):lt(s,r),Ye(e)&&n.set(e,s),s)}function qa(e,t){return!e||!ka(t)?!1:(t=t.slice(2),t=t==="Once"?t:t.replace(/Once$/,""),ze(e,t[0].toLowerCase()+t.slice(1))||ze(e,Bt(t))||ze(e,t))}function f$(){}function Kl(e){const{type:t,vnode:o,proxy:n,withProxy:a,propsOptions:[r],slots:s,attrs:i,emit:l,render:u,renderCache:c,props:p,data:f,setupState:k,ctx:w,inheritAttrs:m}=e,d=Ga(e);let g,h;try{if(o.shapeFlag&4){const _=a||n,x=_;g=uo(u.call(x,_,c,p,k,f,w)),h=i}else{const _=t;g=uo(_.length>1?_(p,{attrs:i,slots:s,emit:l}):_(p,null)),h=t.props?i:of(i)}}catch(_){xo.length=0,Hn(_,e,1),g=He(co)}let b=g;if(h&&m!==!1){const _=Object.keys(h),{shapeFlag:x}=b;_.length&&x&7&&(r&&_.some(wa)&&(h=nf(h,r)),b=_n(b,h,!1,!0))}if(o.dirs&&(b=_n(b,null,!1,!0),b.dirs=b.dirs?b.dirs.concat(o.dirs):o.dirs),o.transition){const _=ja(b.type)&&Al(b)||b;os(_,o.transition)}return g=b,Ga(d),g}const of=e=>{let t;for(const o in e)(o==="class"||o==="style"||ka(o))&&((t||(t={}))[o]=e[o]);return t},nf=(e,t)=>{const o={};for(const n in e)(!wa(n)||!(n.slice(9)in t))&&(o[n]=e[n]);return o};function af(e,t,o){const{props:n,children:a,component:r}=e,{props:s,children:i,patchFlag:l}=t,u=r.emitsOptions;if(t.dirs||t.transition)return!0;if(o&&l>=0){if(l&1024)return!0;if(l&16)return n?zl(n,s,u):!!s;if(l&8){const c=t.dynamicProps;for(let p=0;pObject.create(Vl),Yl=e=>Object.getPrototypeOf(e)===Vl;function sf(e,t,o,n=!1){const a={},r=Wl();e.propsDefaults=Object.create(null),ql(e,t,a,r);for(const s in e.propsOptions[0])s in a||(a[s]=void 0);o?e.props=n?a:ag(a):e.type.props?e.props=a:e.props=r,e.attrs=r}function lf(e,t,o,n){const{props:a,attrs:r,vnode:{patchFlag:s}}=e,i=Be(a),[l]=e.propsOptions;let u=!1;if((n||s>0)&&!(s&16)){if(s&8){const c=e.vnode.dynamicProps;for(let p=0;p{l=!0;const[f,k]=Jl(p,t,!0);lt(s,f),k&&i.push(...k)};!o&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}if(!r&&!l)return Ye(e)&&n.set(e,cn),cn;if(xe(r))for(let c=0;ce==="_"||e==="_ctx"||e==="$stable",us=e=>xe(e)?e.map(uo):[uo(e)],uf=(e,t,o)=>{if(t._n)return t;const n=zt((...a)=>us(t(...a)),o);return n._c=!1,n},Zl=(e,t,o)=>{const n=e._ctx;for(const a in e){if(cs(a))continue;const r=e[a];if(Ee(r))t[a]=uf(a,r,n);else if(r!=null){const s=us(r);t[a]=()=>s}}},Ql=(e,t)=>{const o=us(t);e.slots.default=()=>o},ec=(e,t,o)=>{for(const n in t)(o||!cs(n))&&(e[n]=t[n])},df=(e,t,o)=>{const n=e.slots=Wl();if(e.vnode.shapeFlag&32){const a=t._;a?(ec(n,t,o),o&&Fi(n,"_",a,!0)):Zl(t,n)}else t&&Ql(e,t)},pf=(e,t,o)=>{const{vnode:n,slots:a}=e;let r=!0,s=Ze;if(n.shapeFlag&32){const i=t._;i?o&&i===1?r=!1:ec(a,t,o):(r=!t.$stable,Zl(t,a)),s=t}else t&&(Ql(e,t),s={default:1});if(r)for(const i in a)!cs(i)&&s[i]==null&&delete a[i]},Rt=bf;function gf(e){return ff(e)}function ff(e,t){const o=Ca();o.__VUE__=!0;const{insert:n,remove:a,patchProp:r,createElement:s,createText:i,createComment:l,setText:u,setElementText:c,parentNode:p,nextSibling:f,setScopeId:k=eo,insertStaticContent:w}=e,m=(E,O,R,H=null,X=null,J=null,Z=void 0,ee=null,y=!!O.dynamicChildren)=>{if(E===O)return;E&&!ta(E,O)&&(H=Oe(E),ie(E,X,J,!0),E=null),O.patchFlag===-2&&(y=!1,O.dynamicChildren=null);const{type:v,ref:B,shapeFlag:W}=O;switch(v){case Zn:d(E,O,R,H);break;case co:g(E,O,R,H);break;case Ja:E==null&&h(O,R,H,Z);break;case Te:re(E,O,R,H,X,J,Z,ee,y);break;default:W&1?x(E,O,R,H,X,J,Z,ee,y):W&6?M(E,O,R,H,X,J,Z,ee,y):(W&64||W&128)&&v.process(E,O,R,H,X,J,Z,ee,y,Je)}B!=null&&X?qn(B,E&&E.ref,J,O||E,!O):B==null&&E&&E.ref!=null&&qn(E.ref,null,J,E,!0)},d=(E,O,R,H)=>{if(E==null)n(O.el=i(O.children),R,H);else{const X=O.el=E.el;O.children!==E.children&&u(X,O.children)}},g=(E,O,R,H)=>{E==null?n(O.el=l(O.children||""),R,H):O.el=E.el},h=(E,O,R,H)=>{[E.el,E.anchor]=w(E.children,O,R,H,E.el,E.anchor)},b=({el:E,anchor:O},R,H)=>{let X;for(;E&&E!==O;)X=f(E),n(E,R,H),E=X;n(O,R,H)},_=({el:E,anchor:O})=>{let R;for(;E&&E!==O;)R=f(E),a(E),E=R;a(O)},x=(E,O,R,H,X,J,Z,ee,y)=>{if(O.type==="svg"?Z="svg":O.type==="math"&&(Z="mathml"),E==null)$(O,R,H,X,J,Z,ee,y);else{const v=E.el&&E.el._isVueCE?E.el:null;try{v&&v._beginPatch(),P(E,O,X,J,Z,ee,y)}finally{v&&v._endPatch()}}},$=(E,O,R,H,X,J,Z,ee)=>{let y,v;const{props:B,shapeFlag:W,transition:ue,dirs:se}=E;if(y=E.el=s(E.type,J,B&&B.is,B),W&8?c(y,E.children):W&16&&C(E.children,y,null,H,X,ds(E,J),Z,ee),se&&Jo(E,null,H,"created"),A(y,E,E.scopeId,Z,H),B){for(const q in B)q!=="value"&&!Dn(q)&&r(y,q,null,B[q],J,H);"value"in B&&r(y,"value",null,B.value,J),(v=B.onVnodeBeforeMount)&&po(v,H,E)}se&&Jo(E,null,H,"beforeMount");const G=hf(X,ue);G&&ue.beforeEnter(y),n(y,O,R),((v=B&&B.onVnodeMounted)||G||se)&&Rt(()=>{try{v&&po(v,H,E),G&&ue.enter(y),se&&Jo(E,null,H,"mounted")}finally{}},X)},A=(E,O,R,H,X)=>{if(R&&k(E,R),H)for(let J=0;J{for(let v=y;v{const ee=O.el=E.el;let{patchFlag:y,dynamicChildren:v,dirs:B}=O;y|=E.patchFlag&16;const W=E.props||Ze,ue=O.props||Ze;let se;if(R&&Qo(R,!1),(se=ue.onVnodeBeforeUpdate)&&po(se,R,O,E),B&&Jo(O,E,R,"beforeUpdate"),R&&Qo(R,!0),v&&(!E.dynamicChildren||E.dynamicChildren.length!==v.length)&&(y=0,Z=!1,v=null),(W.innerHTML&&ue.innerHTML==null||W.textContent&&ue.textContent==null)&&c(ee,""),v?z(E.dynamicChildren,v,ee,R,H,ds(O,X),J):Z||ne(E,O,ee,null,R,H,ds(O,X),J,!1),y>0){if(y&16)Y(ee,W,ue,R,X);else if(y&2&&W.class!==ue.class&&r(ee,"class",null,ue.class,X),y&4&&r(ee,"style",W.style,ue.style,X),y&8){const G=O.dynamicProps;for(let q=0;q{se&&po(se,R,O,E),B&&Jo(O,E,R,"updated")},H)},z=(E,O,R,H,X,J,Z)=>{for(let ee=0;ee{if(O!==R){if(O!==Ze)for(const J in O)!Dn(J)&&!(J in R)&&r(E,J,O[J],null,X,H);for(const J in R){if(Dn(J))continue;const Z=R[J],ee=O[J];Z!==ee&&J!=="value"&&r(E,J,ee,Z,X,H)}"value"in R&&r(E,"value",O.value,R.value,X)}},re=(E,O,R,H,X,J,Z,ee,y)=>{const v=O.el=E?E.el:i(""),B=O.anchor=E?E.anchor:i("");let{patchFlag:W,dynamicChildren:ue,slotScopeIds:se}=O;se&&(ee=ee?ee.concat(se):se),E==null?(n(v,R,H),n(B,R,H),C(O.children||[],R,B,X,J,Z,ee,y)):W>0&&W&64&&ue&&E.dynamicChildren&&E.dynamicChildren.length===ue.length?(z(E.dynamicChildren,ue,R,X,J,Z,ee),(O.key!=null||X&&O===X.subTree)&&ps(E,O,!0)):ne(E,O,R,B,X,J,Z,ee,y)},M=(E,O,R,H,X,J,Z,ee,y)=>{O.slotScopeIds=ee,E==null?O.shapeFlag&512?X.ctx.activate(O,R,H,Z,y):F(O,R,H,X,J,Z,y):T(E,O,y)},F=(E,O,R,H,X,J,Z)=>{const ee=E.component=$f(E,H,X);if(Ha(E)&&(ee.ctx.renderer=Je),Af(ee,!1,Z),ee.asyncDep){if(X&&X.registerDep(ee,S,Z),!E.el){const y=ee.subTree=He(co);g(null,y,O,R),E.placeholder=y.el}}else S(ee,E,O,R,X,J,Z)},T=(E,O,R)=>{const H=O.component=E.component;if(af(E,O,R))if(H.asyncDep&&!H.asyncResolved){I(H,O,R);return}else H.next=O,H.update();else O.el=E.el,H.vnode=O},S=(E,O,R,H,X,J,Z)=>{const ee=()=>{if(E.isMounted){let{next:W,bu:ue,u:se,parent:G,vnode:q}=E;{const K=tc(E);if(K){W&&(W.el=q.el,I(E,W,Z)),K.asyncDep.then(()=>{Rt(()=>{E.isUnmounted||v()},X)});return}}let me=W,$e;Qo(E,!1),W?(W.el=q.el,I(E,W,Z)):W=q,ue&&Ea(ue),($e=W.props&&W.props.onVnodeBeforeUpdate)&&po($e,G,W,q),Qo(E,!0);const Ge=Kl(E),D=E.subTree;E.subTree=Ge,m(D,Ge,p(D.el),Oe(D),E,X,J),W.el=Ge.el,me===null&&rf(E,Ge.el),se&&Rt(se,X),($e=W.props&&W.props.onVnodeUpdated)&&Rt(()=>po($e,G,W,q),X)}else{let W;const{el:ue,props:se}=O,{bm:G,m:q,parent:me,root:$e,type:Ge}=E,D=bn(O);Qo(E,!1),G&&Ea(G),!D&&(W=se&&se.onVnodeBeforeMount)&&po(W,me,O),Qo(E,!0);{$e.ce&&$e.ce._hasShadowRoot()&&$e.ce._injectChildStyle(Ge,E.parent?E.parent.type:void 0);const K=E.subTree=Kl(E);m(null,K,R,H,E,X,J),O.el=K.el}if(q&&Rt(q,X),!D&&(W=se&&se.onVnodeMounted)){const K=O;Rt(()=>po(W,me,K),X)}(O.shapeFlag&256||me&&bn(me.vnode)&&me.vnode.shapeFlag&256)&&E.a&&Rt(E.a,X),E.isMounted=!0,O=R=H=null}};E.scope.on();const y=E.effect=new Vi(ee);E.scope.off();const v=E.update=y.run.bind(y),B=E.job=y.runIfDirty.bind(y);B.i=E,B.id=E.uid,y.scheduler=()=>Xr(B),Qo(E,!0),v()},I=(E,O,R)=>{O.component=E;const H=E.vnode.props;E.vnode=O,E.next=null,lf(E,O.props,H,R),pf(E,O.children,R),oo(),ml(E),no()},ne=(E,O,R,H,X,J,Z,ee,y=!1)=>{const v=E&&E.children,B=E?E.shapeFlag:0,W=O.children,{patchFlag:ue,shapeFlag:se}=O;if(ue>0){if(ue&128){L(v,W,R,H,X,J,Z,ee,y);return}else if(ue&256){ge(v,W,R,H,X,J,Z,ee,y);return}}se&8?(B&16&&Re(v,X,J),W!==v&&c(R,W)):B&16?se&16?L(v,W,R,H,X,J,Z,ee,y):Re(v,X,J,!0):(B&8&&c(R,""),se&16&&C(W,R,H,X,J,Z,ee,y))},ge=(E,O,R,H,X,J,Z,ee,y)=>{E=E||cn,O=O||cn;const v=E.length,B=O.length,W=Math.min(v,B);let ue;for(ue=0;ueB?Re(E,X,J,!0,!1,W):C(O,R,H,X,J,Z,ee,y,W)},L=(E,O,R,H,X,J,Z,ee,y)=>{let v=0;const B=O.length;let W=E.length-1,ue=B-1;for(;v<=W&&v<=ue;){const se=E[v],G=O[v]=y?$o(O[v]):uo(O[v]);if(ta(se,G))m(se,G,R,null,X,J,Z,ee,y);else break;v++}for(;v<=W&&v<=ue;){const se=E[W],G=O[ue]=y?$o(O[ue]):uo(O[ue]);if(ta(se,G))m(se,G,R,null,X,J,Z,ee,y);else break;W--,ue--}if(v>W){if(v<=ue){const se=ue+1,G=seue)for(;v<=W;)ie(E[v],X,J,!0),v++;else{const se=v,G=v,q=new Map;for(v=G;v<=ue;v++){const ke=O[v]=y?$o(O[v]):uo(O[v]);ke.key!=null&&q.set(ke.key,v)}let me,$e=0;const Ge=ue-G+1;let D=!1,K=0;const he=new Array(Ge);for(v=0;v=Ge){ie(ke,X,J,!0);continue}let je;if(ke.key!=null)je=q.get(ke.key);else for(me=G;me<=ue;me++)if(he[me-G]===0&&ta(ke,O[me])){je=me;break}je===void 0?ie(ke,X,J,!0):(he[je-G]=v+1,je>=K?K=je:D=!0,m(ke,O[je],R,null,X,J,Z,ee,y),$e++)}const ve=D?mf(he):cn;for(me=ve.length-1,v=Ge-1;v>=0;v--){const ke=G+v,je=O[ke],Pe=O[ke+1],xt=ke+1{const{el:J,type:Z,transition:ee,children:y,shapeFlag:v}=E;if(v&6){ae(E.component.subTree,O,R,H);return}if(v&128){E.suspense.move(O,R,H);return}if(v&64){Z.move(E,O,R,Je);return}if(Z===Te){n(J,O,R);for(let W=0;Wee.enter(J),X));else{const{leave:W,delayLeave:ue,afterLeave:se}=ee,G=()=>{E.ctx.isUnmounted?a(J):n(J,O,R)},q=()=>{const me=J._isLeaving||!!J[ts];J._isLeaving&&J[ts](!0),ee.persisted&&!me?G():W(J,()=>{G(),se&&se()})};ue?ue(J,G,q):q()}else n(J,O,R)},ie=(E,O,R,H=!1,X=!1)=>{const{type:J,props:Z,ref:ee,children:y,dynamicChildren:v,shapeFlag:B,patchFlag:W,dirs:ue,cacheIndex:se,memo:G}=E;if(W===-2&&(X=!1),ee!=null&&(oo(),qn(ee,null,R,E,!0),no()),se!=null&&(O.renderCache[se]=void 0),B&256){O.ctx.deactivate(E);return}const q=B&1&&ue,me=!bn(E);let $e;if(me&&($e=Z&&Z.onVnodeBeforeUnmount)&&po($e,O,E),B&6)Me(E.component,R,H);else{if(B&128){E.suspense.unmount(R,H);return}q&&Jo(E,null,O,"beforeUnmount"),B&64?E.type.remove(E,O,R,Je,H):v&&!v.hasOnce&&(J!==Te||W>0&&W&64)?Re(v,O,R,!1,!0):(J===Te&&W&384||!X&&B&16)&&Re(y,O,R),H&&ce(E)}const Ge=G!=null&&se==null;(me&&($e=Z&&Z.onVnodeUnmounted)||q||Ge)&&Rt(()=>{$e&&po($e,O,E),q&&Jo(E,null,O,"unmounted"),Ge&&(E.el=null)},R)},ce=E=>{const{type:O,el:R,anchor:H,transition:X}=E;if(O===Te){we(R,H);return}if(O===Ja){_(E);return}const J=()=>{a(R),X&&!X.persisted&&X.afterLeave&&X.afterLeave()};if(E.shapeFlag&1&&X&&!X.persisted){const{leave:Z,delayLeave:ee}=X,y=()=>Z(R,J);ee?ee(E.el,J,y):y()}else J()},we=(E,O)=>{let R;for(;E!==O;)R=f(E),a(E),E=R;a(O)},Me=(E,O,R)=>{const{bum:H,scope:X,job:J,subTree:Z,um:ee,m:y,a:v}=E;oc(y),oc(v),H&&Ea(H),X.stop(),J&&(J.flags|=8,ie(Z,E,O,R)),ee&&Rt(ee,O),Rt(()=>{E.isUnmounted=!0},O)},Re=(E,O,R,H=!1,X=!1,J=0)=>{for(let Z=J;Z{if(E.shapeFlag&6)return Oe(E.component.subTree);if(E.shapeFlag&128)return E.suspense.next();const O=f(E.anchor||E.el),R=O&&O[wl];return R?f(R):O};let Ie=!1;const qe=(E,O,R)=>{let H;E==null?O._vnode&&(ie(O._vnode,null,null,!0),H=O._vnode.component):m(O._vnode||null,E,O,null,null,null,R),O._vnode=E,Ie||(Ie=!0,ml(H),bl(),Ie=!1)},Je={p:m,um:ie,m:ae,r:ce,mt:F,mc:C,pc:ne,pbc:z,n:Oe,o:e};return{render:qe,hydrate:void 0,createApp:Zg(qe)}}function ds({type:e,props:t},o){return o==="svg"&&e==="foreignObject"||o==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:o}function Qo({effect:e,job:t},o){o?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function hf(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function ps(e,t,o=!1){const n=e.children,a=t.children;if(xe(n)&&xe(a))for(let r=0;r>1,e[o[i]]0&&(t[n]=o[r-1]),o[r]=n)}}for(r=o.length,s=o[r-1];r-- >0;)o[r]=s,s=t[s];return o}function tc(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:tc(t)}function oc(e){if(e)for(let t=0;te.__isSuspense;function bf(e,t){t&&t.pendingBranch?xe(e)?t.effects.push(...e):t.effects.push(e):kg(e)}const Te=Symbol.for("v-fgt"),Zn=Symbol.for("v-txt"),co=Symbol.for("v-cmt"),Ja=Symbol.for("v-stc"),xo=[];let jt=null;function V(e=!1){xo.push(jt=e?null:[])}function gs(){xo.pop(),jt=xo[xo.length-1]||null}let Qn=1;function Xa(e,t=!1){Qn+=e,e<0&&jt&&t&&(jt.hasOnce=!0)}function rc(e){return e.dynamicChildren=Qn>0?jt||cn:null,gs(),Qn>0&&jt&&jt.push(e),e}function te(e,t,o,n,a,r){return rc(N(e,t,o,n,a,r,!0))}function dt(e,t,o,n,a){return rc(He(e,t,o,n,a,!0))}function ea(e){return e?e.__v_isVNode===!0:!1}function ta(e,t){return e.type===t.type&&e.key===t.key}const sc=({key:e})=>e??null,Za=({ref:e,ref_key:t,ref_for:o})=>(typeof e=="number"&&(e=""+e),e!=null?Qe(e)||at(e)||Ee(e)?{i:At,r:e,k:t,f:!!o}:e:null);function N(e,t=null,o=null,n=0,a=null,r=e===Te?0:1,s=!1,i=!1){const l={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&sc(t),ref:t&&Za(t),scopeId:_l,slotScopeIds:null,children:o,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:r,patchFlag:n,dynamicProps:a,dynamicChildren:null,appContext:null,ctx:At};return i?(Qa(l,o),r&128&&e.normalize(l)):o&&(l.shapeFlag|=Qe(o)?8:16),Qn>0&&!s&&jt&&(l.patchFlag>0||r&6)&&l.patchFlag!==32&&jt.push(l),l}const He=yf;function yf(e,t=null,o=null,n=0,a=null,r=!1){if((!e||e===Tl)&&(e=co),ea(e)){const i=_n(e,t,!0);return o&&Qa(i,o),Qn>0&&!r&&jt&&(i.shapeFlag&6?jt[jt.indexOf(e)]=i:jt.push(i)),i.patchFlag=-2,i}if(Tf(e)&&(e=e.__vccOpts),t){t=_f(t);let{class:i,style:l}=t;i&&!Qe(i)&&(t.class=Ne(i)),Ye(l)&&(Oa(l)&&!xe(l)&&(l=lt({},l)),t.style=nt(l))}const s=Qe(e)?1:ac(e)?128:ja(e)?64:Ye(e)?4:Ee(e)?2:0;return N(e,t,o,n,a,s,r,!0)}function _f(e){return e?Oa(e)||Yl(e)?lt({},e):e:null}function _n(e,t,o=!1,n=!1){const{props:a,ref:r,patchFlag:s,children:i,transition:l}=e,u=t?kf(a||{},t):a,c={__v_isVNode:!0,__v_skip:!0,type:e.type,props:u,key:u&&sc(u),ref:t&&t.ref?o&&r?xe(r)?r.concat(Za(t)):[r,Za(t)]:Za(t):r,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:i,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==Te?s===-1?16:s|16:s,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:l,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&_n(e.ssContent),ssFallback:e.ssFallback&&_n(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return l&&n&&os(c,l.clone(c)),c}function mt(e=" ",t=0){return He(Zn,null,e,t)}function vf(e,t){const o=He(Ja,null,e);return o.staticCount=t,o}function ye(e="",t=!1){return t?(V(),dt(co,null,e)):He(co,null,e)}function uo(e){return e==null||typeof e=="boolean"?He(co):xe(e)?He(Te,null,e.slice()):ea(e)?$o(e):He(Zn,null,String(e))}function $o(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:_n(e)}function Qa(e,t){let o=0;const{shapeFlag:n}=e;if(t==null)t=null;else if(xe(t))o=16;else if(typeof t=="object")if(n&65){const a=t.default;a&&(a._c&&(a._d=!1),Qa(e,a()),a._c&&(a._d=!0));return}else{o=32;const a=t._;!a&&!Yl(t)?t._ctx=At:a===3&&At&&(At.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else if(Ee(t)){if(n&65){Qa(e,{default:t});return}t={default:t,_ctx:At},o=32}else t=String(t),n&64?(o=16,t=[mt(t)]):o=8;e.children=t,e.shapeFlag|=o}function kf(...e){const t={};for(let o=0;oEt||At;let er,oa;{const e=Ca(),t=(o,n)=>{let a;return(a=e[o])||(a=e[o]=[]),a.push(n),r=>{a.length>1?a.forEach(s=>s(r)):a[0](r)}};er=t("__VUE_INSTANCE_SETTERS__",o=>Et=o),oa=t("__VUE_SSR_SETTERS__",o=>vn=o)}const na=e=>{const t=Et;return er(e),e.scope.on(),()=>{e.scope.off(),er(t)}},ic=()=>{Et&&Et.scope.off(),er(null)};function lc(e){return e.vnode.shapeFlag&4}let vn=!1;function Af(e,t=!1,o=!1){t&&oa(t);const{props:n,children:a}=e.vnode,r=lc(e);sf(e,n,r,t),df(e,a,o||t);const s=r?Sf(e,t):void 0;return t&&oa(!1),s}function Sf(e,t){const o=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,Hg);const{setup:n}=o;if(n){oo();const a=e.setupContext=n.length>1?Lf(e):null,r=na(e),s=fn(n,e,0,[e.props,a]),i=Ii(s);if(no(),r(),(i||e.sp)&&!bn(e)&&ns(e),i){if(s.then(ic,ic),t)return s.then(l=>{oa(!0);try{cc(e,l,t)}finally{oa(!1)}}).catch(l=>{Hn(l,e,0)});e.asyncDep=s}else cc(e,s)}else uc(e)}function cc(e,t,o){Ee(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:Ye(t)&&(e.setupState=dl(t)),uc(e)}function uc(e,t,o){const n=e.type;e.render||(e.render=n.render||eo);{const a=na(e);oo();try{Vg(e)}finally{no(),a()}}}const Ef={get(e,t){return Pt(e,"get",""),e[t]}};function Lf(e){const t=o=>{e.exposed=o||{}};return{attrs:new Proxy(e.attrs,Ef),slots:e.slots,emit:e.emit,expose:t}}function tr(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(dl(Yo(e.exposed)),{get(t,o){if(o in t)return t[o];if(o in Jn)return Jn[o](e)},has(t,o){return o in t||o in Jn}})):e.proxy}const Cf=/(?:^|[-_])\w/g,Pf=e=>e.replace(Cf,t=>t.toUpperCase()).replace(/[-_]/g,"");function dc(e,t=!0){return Ee(e)?e.displayName||e.name:e.name||t&&e.__name}function pc(e,t,o=!1){let n=dc(t);if(!n&&t.__file){const a=t.__file.match(/([^/\\]+)\.\w+$/);a&&(n=a[1])}if(!n&&e){const a=r=>{for(const s in r)if(r[s]===t)return s};n=a(e.components)||e.parent&&a(e.parent.type.components)||a(e.appContext.components)}return n?Pf(n):o?"App":"Anonymous"}function Tf(e){return Ee(e)&&"__vccOpts"in e}const oe=(e,t)=>pg(e,t,vn);function gc(e,t,o){try{Xa(-1);const n=arguments.length;return n===2?Ye(t)&&!xe(t)?ea(t)?He(e,null,[t]):He(e,t):He(e,null,t):(n>3?o=Array.prototype.slice.call(arguments,2):n===3&&ea(o)&&(o=[o]),He(e,t,o))}finally{Xa(1)}}const Mf="3.5.42";/** +`,...bg(a)),console.warn(...r)}ao(),Jr=!1}function mg(){let e=Kn[Kn.length-1];if(!e)return[];const t=[];for(;e;){const o=t[0];o&&o.vnode===e?o.recurseCount++:t.push({vnode:e,recurseCount:0});const n=e.component&&e.component.parent;e=n&&n.vnode}return t}function bg(e){const t=[];return e.forEach((o,n)=>{t.push(...n===0?[]:[` +`],...yg(o))}),t}function yg({vnode:e,recurseCount:t}){const o=t>0?`... (${t} recursive calls)`:"",n=e.component?e.component.parent==null:!1,a=` at <${pc(e.component,e.type,n)}`,r=">"+o;return e.props?[a,..._g(e.props),r]:[a+r]}function _g(e){const t=[],o=Object.keys(e);return o.slice(0,3).forEach(n=>{t.push(...gl(n,e[n]))}),o.length>3&&t.push(" ..."),t}function gl(e,t,o){return Qe(t)?(t=JSON.stringify(t),o?t:[`${e}=${t}`]):typeof t=="number"||typeof t=="boolean"||t==null?o?t:[`${e}=${t}`]:at(t)?(t=gl(e,Be(t.value),!0),o?t:[`${e}=Ref<`,t,">"]):Ee(t)?[`${e}=fn${t.name?`<${t.name}>`:""}`]:(t=Be(t),o?t:[`${e}=`,t])}function fn(e,t,o,n){try{return n?e(...n):e()}catch(a){Hn(a,t,o)}}function qt(e,t,o,n){if(Ee(e)){const a=fn(e,t,o,n);return a&&Ii(a)&&a.catch(r=>{Hn(r,t,o)}),a}if(xe(e)){const a=[];for(let r=0;r>>1,a=Mt[n],r=Vn(a);r=Vn(o)?Mt.push(e):Mt.splice(kg(t),0,e),e.flags|=1,hl()}}function hl(){Ba||(Ba=fl.then(yl))}function wg(e){if(!xe(e))Ro&&e.id===-1?Ro.splice(mn+1,0,e):e.flags&1||(hn.push(e),e.flags|=1);else for(let t=0;tVn(o)-Vn(n));if(hn.length=0,Ro){for(let o=0;oe.id==null?e.flags&2?-1:1/0:e.id;function yl(e){try{for(so=0;so{n._d&&Xa(-1);const r=Ga(t),s=xo.length;let i;try{i=e(...a)}finally{for(let l=xo.length;l>s;l--)gs();Ga(r),n._d&&Xa(1)}return i};return n._n=!0,n._c=!0,n._d=!0,n}function vl(e,t){if(At===null)return e;const o=tr(At),n=e.dirs||(e.dirs=[]);for(let a=0;a1)return o&&Ee(t)?t.call(n&&n.proxy):t}}function xg(){return!!(Ao()||Zo)}const $g=Symbol.for("v-scx"),Ag=()=>Fe($g);function Sg(e,t){return Zr(e,null,t)}function it(e,t,o){return Zr(e,t,o)}function Zr(e,t,o=Ze){const{immediate:n,deep:a,flush:r,once:s}=o,i=lt({},o),l=t&&n||!t&&r!=="post";let u;if(vn){if(r==="sync"){const k=Ag();u=k.__watcherHandles||(k.__watcherHandles=[])}else if(!l){const k=()=>{};return k.stop=to,k.resume=to,k.pause=to,k}}const c=Et;i.call=(k,w,m)=>qt(k,c,w,m);let p=!1;r==="post"?i.scheduler=k=>{Rt(k,c&&c.suspense)}:r!=="sync"&&(p=!0,i.scheduler=(k,w)=>{w?k():Xr(k)}),i.augmentJob=k=>{t&&(k.flags|=4),p&&(k.flags|=2,c&&(k.id=c.uid,k.i=c))};const g=hg(e,t,i);return vn&&(u?u.push(g):l&&g()),g}function Eg(e,t,o){const n=this.proxy,a=Qe(e)?e.includes(".")?kl(n,e):()=>n[e]:e.bind(n,n);let r;Ee(t)?r=t:(r=t.handler,o=t);const s=na(this),i=Zr(a,r.bind(n),o);return s(),i}function kl(e,t){const o=t.split(".");return()=>{let n=e;for(let a=0;ae.__isTeleport,Xo=e=>e&&(e.disabled||e.disabled===""),Lg=e=>e&&(e.defer||e.defer===""),xl=e=>typeof SVGElement<"u"&&e instanceof SVGElement,$l=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,Qr=(e,t)=>{const o=e&&e.to;return Qe(o)?t?t(o):null:o},Cg={name:"Teleport",__isTeleport:!0,process(e,t,o,n,a,r,s,i,l,u){const{mc:c,pc:p,pbc:g,o:{insert:k,querySelector:w,createText:m,createComment:d,parentNode:f}}=u,h=Xo(t.props);let{dynamicChildren:b}=t;const _=(A,P,T)=>{A.shapeFlag&16&&c(A.children,P,T,a,r,s,i,l)},x=(A=t)=>{const P=Xo(A.props),T=A.target=Qr(A.props,w),z=es(T,A,m,k);T&&(s!=="svg"&&xl(T)?s="svg":s!=="mathml"&&$l(T)&&(s="mathml"),a&&a.isCE&&(a.ce._teleportTargets||(a.ce._teleportTargets=new Set)).add(T),P||(_(A,T,z),Wn(A,!1)))},$=A=>{const P=()=>{if(Io.get(A)===P){if(Io.delete(A),Xo(A.props)){const T=f(A.el)||o;_(A,T,A.anchor),Wn(A,!0)}x(A)}};Io.set(A,P),Rt(P,r)};if(e==null){const A=t.el=m(""),P=t.anchor=m("");if(k(A,o,n),k(P,o,n),Lg(t.props)||r&&r.pendingBranch){$(t);return}h&&(_(t,o,P),Wn(t,!0)),x()}else{t.el=e.el;const A=t.anchor=e.anchor,P=Io.get(e);if(P){P.flags|=8,Io.delete(e),$(t);return}t.targetStart=e.targetStart;const T=t.target=e.target,z=t.targetAnchor=e.targetAnchor,W=Xo(e.props),re=W?o:T,M=W?A:z;if(s==="svg"||xl(T)?s="svg":(s==="mathml"||$l(T))&&(s="mathml"),b?(g(e.dynamicChildren,b,re,a,r,s,i),ps(e,t,!0)):l||p(e,t,re,M,a,r,s,i,!1),h)W?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):Ua(t,o,A,u,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const O=Qr(t.props,w);O&&(t.target=O,Ua(t,O,null,u,0))}else W&&Ua(t,T,z,u,1);Wn(t,h)}},remove(e,t,o,{um:n,o:{remove:a}},r){const{shapeFlag:s,children:i,anchor:l,targetStart:u,targetAnchor:c,target:p,props:g}=e,k=Xo(g),w=r||!k,m=Io.get(e);if(m&&(m.flags|=8,Io.delete(e)),p&&(a(u),a(c)),r&&a(l),!m&&(k||p)&&s&16)for(let d=0;d1){for(const o of e)if(o.type!==co){t=o;break}}return t}function Al(e){if(!Ha(e))return ja(e.type)&&e.children?Mg(e.children):e;if(e.component)return e.component.subTree;const{shapeFlag:t,children:o}=e;if(o){if(t&16)return o[0];if(t&32&&Ee(o.default))return o.default()}}function os(e,t){if(e.shapeFlag&6&&e.component){e.transition=t;const o=e.component.subTree;os(ja(o.type)&&Al(o)||o,t)}else e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function Yn(e,t){return Ee(e)?lt({name:e.name},t,{setup:e}):e}function ns(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}function Sl(e,t){let o;return!!((o=Object.getOwnPropertyDescriptor(e,t))&&!o.configurable)}const za=new WeakMap;function qn(e,t,o,n,a=!1){if(xe(e)){e.forEach((m,d)=>qn(m,t&&(xe(t)?t[d]:t),o,n,a));return}if(bn(n)&&!a){n.shapeFlag&512&&n.type.__asyncResolved&&n.component.subTree.component&&qn(e,t,o,n.component.subTree);return}const r=n.shapeFlag&4?tr(n.component):n.el,s=a?null:r,{i,r:l}=e,u=t&&t.r,c=i.refs===Ze?i.refs={}:i.refs,p=i.setupState,g=Be(p),k=p===Ze?Ni:m=>Sl(c,m)?!1:Ke(g,m),w=(m,d)=>!(d&&Sl(c,d));if(u!=null&&u!==l){if(El(t),Qe(u))c[u]=null,k(u)&&(p[u]=null);else if(at(u)){const m=t;w(u,m.k)&&(u.value=null),m.k&&(c[m.k]=null)}}if(Ee(l))fn(l,i,12,[s,c]);else{const m=Qe(l),d=at(l);if(m||d){const f=()=>{if(e.f){const h=m?k(l)?p[l]:c[l]:w()||!e.k?l.value:c[e.k];if(a)xe(h)&&Ir(h,r);else if(xe(h))h.includes(r)||h.push(r);else if(m)c[l]=[r],k(l)&&(p[l]=c[l]);else{const b=[r];w(l,e.k)&&(l.value=b),e.k&&(c[e.k]=b)}}else m?(c[l]=s,k(l)&&(p[l]=s)):d&&(w(l,e.k)&&(l.value=s),e.k&&(c[e.k]=s))};if(s){const h=()=>{f(),za.delete(e)};h.id=-1,za.set(e,h),Rt(h,o)}else El(e),f()}}}function El(e){const t=za.get(e);t&&(t.flags|=8,za.delete(e))}const Ll=e=>e.nodeType===8;Ca().requestIdleCallback,Ca().cancelIdleCallback;function Ng(e,t){if(Ll(e)&&e.data==="["){let o=1,n=e.nextSibling;for(;n;){if(n.nodeType===1){if(t(n)===!1)break}else if(Ll(n))if(n.data==="]"){if(--o===0)break}else n.data==="["&&o++;n=n.nextSibling}}else t(e)}const bn=e=>!!e.type.__asyncLoader;function Rg(e){Ee(e)&&(e={loader:e});const{loader:t,loadingComponent:o,errorComponent:n,delay:a=200,hydrate:r,timeout:s,suspensible:i=!0,onError:l}=e;let u=null,c,p=0;const g=()=>(p++,u=null,k()),k=()=>{let w;return u||(w=u=t().catch(m=>{if(m=m instanceof Error?m:new Error(String(m)),l)return new Promise((d,f)=>{l(m,()=>d(g()),()=>f(m),p+1)});throw m}).then(m=>w!==u&&u?u:(m&&(m.__esModule||m[Symbol.toStringTag]==="Module")&&(m=m.default),c=m,m)))};return Yn({name:"AsyncComponentWrapper",__asyncLoader:k,__asyncHydrate(w,m,d){const f=w.isConnected;let h=!1;(m.bu||(m.bu=[])).push(()=>h=!0);const b=()=>{h||!w.parentNode||f&&!w.isConnected||d()},_=r?()=>{const x=r(b,$=>Ng(w,$));x&&(m.bum||(m.bum=[])).push(x)}:b;c?_():k().then(()=>!m.isUnmounted&&_())},get __asyncResolved(){return c},setup(){const w=Et;if(ns(w),c)return()=>Ka(c,w);const m=x=>{u=null,Hn(x,w,13,!n)};if(i&&w.suspense||vn)return k().then(x=>()=>Ka(x,w)).catch(x=>(m(x),()=>n?He(n,{error:x}):null));const d=pe(!1),f=pe(),h=pe(!!a);let b,_;return Wa(()=>{b!=null&&clearTimeout(b),_!=null&&clearTimeout(_)}),a&&(_=setTimeout(()=>{w.isUnmounted||(h.value=!1)},a)),s!=null&&(b=setTimeout(()=>{if(!w.isUnmounted&&!d.value&&!f.value){const x=new Error(`Async component timed out after ${s}ms.`);m(x),f.value=x}},s)),k().then(()=>{w.isUnmounted||(d.value=!0,w.parent&&Ha(w.parent.vnode)&&w.parent.update())}).catch(x=>{if(w.isUnmounted){u=null;return}m(x),f.value=x}),()=>{if(d.value&&c)return Ka(c,w);if(f.value&&n)return He(n,{error:f.value});if(o&&!h.value)return Ka(o,w)}}})}function Ka(e,t){const{ref:o,props:n,children:a,ce:r}=t.vnode,s=He(e,n,a);return s.ref=o,s.ce=r,delete t.vnode.ce,s}const Ha=e=>e.type.__isKeepAlive;function Ig(e,t){Cl(e,"a",t)}function Og(e,t){Cl(e,"da",t)}function Cl(e,t,o=Et){const n=e.__wdc||(e.__wdc=()=>{let a=o;for(;a;){if(a.isDeactivated)return;a=a.parent}return e()});if(Va(t,n,o),o){let a=o.parent;for(;a&&a.parent;)Ha(a.parent.vnode)&&Fg(n,t,o,a),a=a.parent}}function Fg(e,t,o,n){const a=Va(t,e,n,!0);Wa(()=>{Ir(n[t],a)},o)}function Va(e,t,o=Et,n=!1){if(o){const a=o[e]||(o[e]=[]),r=t.__weh||(t.__weh=(...s)=>{no();const i=na(o),l=qt(t,o,e,s);return i(),ao(),l});return n?a.unshift(r):a.push(r),r}}const wo=e=>(t,o=Et)=>{(!vn||e==="sp")&&Va(e,(...n)=>t(...n),o)},Pl=wo("bm"),lo=wo("m"),Dg=wo("bu"),Bg=wo("u"),Jt=wo("bum"),Wa=wo("um"),Gg=wo("sp"),jg=wo("rtg"),Ug=wo("rtc");function zg(e,t=Et){Va("ec",e,t)}const Kg="components",Tl=Symbol.for("v-ndc");function Ml(e){return Qe(e)?Hg(Kg,e,!1)||e:e||Tl}function Hg(e,t,o=!0,n=!1){const a=At||Et;if(a){const r=a.type;{const i=dc(r,!1);if(i&&(i===t||i===_t(t)||i===Sa(_t(t))))return r}const s=Nl(a[e]||r[e],t)||Nl(a.appContext[e],t);return!s&&n?r:s}}function Nl(e,t){return e&&(e[t]||e[_t(t)]||e[Sa(_t(t))])}function St(e,t,o,n){let a;const r=o,s=xe(e);if(s||Qe(e)){const i=s&&_o(e);let l=!1,u=!1;i&&(l=!jt(e),u=vo(e),e=Ta(e)),a=new Array(e.length);for(let c=0,p=e.length;ct(i,l,void 0,r));else{const i=Object.keys(e);a=new Array(i.length);for(let l=0,u=i.length;l0;return t!=="default"&&(u.name=t),V(),dt(Ne,null,[He("slot",u,n)],c?-2:64)}let s=e[t];s&&s._c&&(s._d=!1);const i=xo.length;V();let l;try{const u=s&&Rl(s(o)),c=o.key||r||u&&u.key;l=dt(Ne,{key:(c&&!Bt(c)?c:`_${t}`)+(!u&&n?"_fb":"")},u||(n?n():[]),u&&e._===1?64:-2)}catch(u){for(let c=xo.length;c>i;c--)gs();throw u}finally{s&&s._c&&(s._d=!0)}return!a&&l.scopeId&&(l.slotScopeIds=[l.scopeId+"-s"]),l}function Rl(e){return e.some(t=>ea(t)?!(t.type===co||t.type===Ne&&!Rl(t.children)):!0)?e:null}const as=e=>e?lc(e)?tr(e):as(e.parent):null,Jn=lt(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=>as(e.parent),$root:e=>as(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Dl(e),$forceUpdate:e=>e.f||(e.f=()=>{Xr(e.update)}),$nextTick:e=>e.n||(e.n=io.bind(e.proxy)),$watch:e=>Eg.bind(e)}),rs=(e,t)=>e!==Ze&&!e.__isScriptSetup&&Ke(e,t),Vg={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:o,setupState:n,data:a,props:r,accessCache:s,type:i,appContext:l}=e;if(t[0]!=="$"){const g=s[t];if(g!==void 0)switch(g){case 1:return n[t];case 2:return a[t];case 4:return o[t];case 3:return r[t]}else{if(rs(n,t))return s[t]=1,n[t];if(a!==Ze&&Ke(a,t))return s[t]=2,a[t];if(Ke(r,t))return s[t]=3,r[t];if(o!==Ze&&Ke(o,t))return s[t]=4,o[t];ss&&(s[t]=0)}}const u=Jn[t];let c,p;if(u)return t==="$attrs"&&Pt(e.attrs,"get",""),u(e);if((c=i.__cssModules)&&(c=c[t]))return c;if(o!==Ze&&Ke(o,t))return s[t]=4,o[t];if(p=l.config.globalProperties,Ke(p,t))return p[t]},set({_:e},t,o){const{data:n,setupState:a,ctx:r}=e;return rs(a,t)?(a[t]=o,!0):n!==Ze&&Ke(n,t)?(n[t]=o,!0):Ke(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(r[t]=o,!0)},has({_:{data:e,setupState:t,accessCache:o,ctx:n,appContext:a,props:r,type:s}},i){let l;return!!(o[i]||e!==Ze&&i[0]!=="$"&&Ke(e,i)||rs(t,i)||Ke(r,i)||Ke(n,i)||Ke(Jn,i)||Ke(a.config.globalProperties,i)||(l=s.__cssModules)&&l[i])},defineProperty(e,t,o){return o.get!=null?e._.accessCache[t]=0:Ke(o,"value")&&this.set(e,t,o.value,null),Reflect.defineProperty(e,t,o)}};function Il(e){return xe(e)?e.reduce((t,o)=>(t[o]=null,t),{}):e}let ss=!0;function Wg(e){const t=Dl(e),o=e.proxy,n=e.ctx;ss=!1,t.beforeCreate&&Ol(t.beforeCreate,e,"bc");const{data:a,computed:r,methods:s,watch:i,provide:l,inject:u,created:c,beforeMount:p,mounted:g,beforeUpdate:k,updated:w,activated:m,deactivated:d,beforeDestroy:f,beforeUnmount:h,destroyed:b,unmounted:_,render:x,renderTracked:$,renderTriggered:A,errorCaptured:P,serverPrefetch:T,expose:z,inheritAttrs:W,components:re,directives:M,filters:O}=t;if(u&&Yg(u,n,null),s)for(const C in s){const ae=s[C];Ee(ae)&&(n[C]=ae.bind(o))}if(a){const C=a.call(o,o);Ye(C)&&(e.data=dn(C))}if(ss=!0,r)for(const C in r){const ae=r[C],le=Ee(ae)?ae.bind(o,o):Ee(ae.get)?ae.get.bind(o,o):to,E=!Ee(ae)&&Ee(ae.set)?ae.set.bind(o):to,Q=ne({get:le,set:E});Object.defineProperty(n,C,{enumerable:!0,configurable:!0,get:()=>Q.value,set:se=>Q.value=se})}if(i)for(const C in i)Fl(i[C],n,o,C);if(l){const C=Ee(l)?l.call(o):l;Reflect.ownKeys(C).forEach(ae=>{Ot(ae,C[ae])})}c&&Ol(c,e,"c");function S(C,ae){xe(ae)?ae.forEach(le=>C(le.bind(o))):ae&&C(ae.bind(o))}if(S(Pl,p),S(lo,g),S(Dg,k),S(Bg,w),S(Ig,m),S(Og,d),S(zg,P),S(Ug,$),S(jg,A),S(Jt,h),S(Wa,_),S(Gg,T),xe(z))if(z.length){const C=e.exposed||(e.exposed={});z.forEach(ae=>{Object.defineProperty(C,ae,{get:()=>o[ae],set:le=>o[ae]=le,enumerable:!0})})}else e.exposed||(e.exposed={});x&&e.render===to&&(e.render=x),W!=null&&(e.inheritAttrs=W),re&&(e.components=re),M&&(e.directives=M),T&&ns(e)}function Yg(e,t,o=to){xe(e)&&(e=is(e));for(const n in e){const a=e[n];let r;Ye(a)?"default"in a?r=Fe(a.from||n,a.default,!0):r=Fe(a.from||n):r=Fe(a),at(r)?Object.defineProperty(t,n,{enumerable:!0,configurable:!0,get:()=>r.value,set:s=>r.value=s}):t[n]=r}}function Ol(e,t,o){qt(xe(e)?e.map(n=>n.bind(t.proxy)):e.bind(t.proxy),t,o)}function Fl(e,t,o,n){let a=n.includes(".")?kl(o,n):()=>o[n];if(Qe(e)){const r=t[e];Ee(r)&&it(a,r)}else if(Ee(e))it(a,e.bind(o));else if(Ye(e))if(xe(e))e.forEach(r=>Fl(r,t,o,n));else{const r=Ee(e.handler)?e.handler.bind(o):t[e.handler];Ee(r)&&it(a,r,e)}}function Dl(e){const t=e.type,{mixins:o,extends:n}=t,{mixins:a,optionsCache:r,config:{optionMergeStrategies:s}}=e.appContext,i=r.get(t);let l;return i?l=i:!a.length&&!o&&!n?l=t:(l={},a.length&&a.forEach(u=>Ya(l,u,s,!0)),Ya(l,t,s)),Ye(t)&&r.set(t,l),l}function Ya(e,t,o,n=!1){const{mixins:a,extends:r}=t;r&&Ya(e,r,o,!0),a&&a.forEach(s=>Ya(e,s,o,!0));for(const s in t)if(!(n&&s==="expose")){const i=qg[s]||o&&o[s];e[s]=i?i(e[s],t[s]):t[s]}return e}const qg={data:Bl,props:Gl,emits:Gl,methods:Xn,computed:Xn,beforeCreate:Nt,created:Nt,beforeMount:Nt,mounted:Nt,beforeUpdate:Nt,updated:Nt,beforeDestroy:Nt,beforeUnmount:Nt,destroyed:Nt,unmounted:Nt,activated:Nt,deactivated:Nt,errorCaptured:Nt,serverPrefetch:Nt,components:Xn,directives:Xn,watch:Xg,provide:Bl,inject:Jg};function Bl(e,t){return t?e?function(){return lt(Ee(e)?e.call(this,this):e,Ee(t)?t.call(this,this):t)}:t:e}function Jg(e,t){return Xn(is(e),is(t))}function is(e){if(xe(e)){const t={};for(let o=0;ot==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${_t(t)}Modifiers`]||e[`${Gt(t)}Modifiers`];function tf(e,t,...o){if(e.isUnmounted)return;const n=e.vnode.props||Ze;let a=o;const r=t.startsWith("update:"),s=r&&ef(n,t.slice(7));s&&(s.trim&&(a=o.map(c=>Qe(c)?c.trim():c)),s.number&&(a=a.map(La)));let i,l=n[i=Or(t)]||n[i=Or(_t(t))];!l&&r&&(l=n[i=Or(Gt(t))]),l&&qt(l,e,6,a);const u=n[i+"Once"];if(u){if(!e.emitted)e.emitted={};else if(e.emitted[i])return;e.emitted[i]=!0,qt(u,e,6,a)}}const of=new WeakMap;function Ul(e,t,o=!1){const n=o?of:t.emitsCache,a=n.get(e);if(a!==void 0)return a;const r=e.emits;let s={},i=!1;if(!Ee(e)){const l=u=>{const c=Ul(u,t,!0);c&&(i=!0,lt(s,c))};!o&&t.mixins.length&&t.mixins.forEach(l),e.extends&&l(e.extends),e.mixins&&e.mixins.forEach(l)}return!r&&!i?(Ye(e)&&n.set(e,null),null):(xe(r)?r.forEach(l=>s[l]=null):lt(s,r),Ye(e)&&n.set(e,s),s)}function qa(e,t){return!e||!ka(t)?!1:(t=t.slice(2),t=t==="Once"?t:t.replace(/Once$/,""),Ke(e,t[0].toLowerCase()+t.slice(1))||Ke(e,Gt(t))||Ke(e,t))}function y$(){}function zl(e){const{type:t,vnode:o,proxy:n,withProxy:a,propsOptions:[r],slots:s,attrs:i,emit:l,render:u,renderCache:c,props:p,data:g,setupState:k,ctx:w,inheritAttrs:m}=e,d=Ga(e);let f,h;try{if(o.shapeFlag&4){const _=a||n,x=_;f=uo(u.call(x,_,c,p,k,g,w)),h=i}else{const _=t;f=uo(_.length>1?_(p,{attrs:i,slots:s,emit:l}):_(p,null)),h=t.props?i:nf(i)}}catch(_){xo.length=0,Hn(_,e,1),f=He(co)}let b=f;if(h&&m!==!1){const _=Object.keys(h),{shapeFlag:x}=b;_.length&&x&7&&(r&&_.some(wa)&&(h=af(h,r)),b=_n(b,h,!1,!0))}if(o.dirs&&(b=_n(b,null,!1,!0),b.dirs=b.dirs?b.dirs.concat(o.dirs):o.dirs),o.transition){const _=ja(b.type)&&Al(b)||b;os(_,o.transition)}return f=b,Ga(d),f}const nf=e=>{let t;for(const o in e)(o==="class"||o==="style"||ka(o))&&((t||(t={}))[o]=e[o]);return t},af=(e,t)=>{const o={};for(const n in e)(!wa(n)||!(n.slice(9)in t))&&(o[n]=e[n]);return o};function rf(e,t,o){const{props:n,children:a,component:r}=e,{props:s,children:i,patchFlag:l}=t,u=r.emitsOptions;if(t.dirs||t.transition)return!0;if(o&&l>=0){if(l&1024)return!0;if(l&16)return n?Kl(n,s,u):!!s;if(l&8){const c=t.dynamicProps;for(let p=0;pObject.create(Vl),Yl=e=>Object.getPrototypeOf(e)===Vl;function lf(e,t,o,n=!1){const a={},r=Wl();e.propsDefaults=Object.create(null),ql(e,t,a,r);for(const s in e.propsOptions[0])s in a||(a[s]=void 0);o?e.props=n?a:rg(a):e.type.props?e.props=a:e.props=r,e.attrs=r}function cf(e,t,o,n){const{props:a,attrs:r,vnode:{patchFlag:s}}=e,i=Be(a),[l]=e.propsOptions;let u=!1;if((n||s>0)&&!(s&16)){if(s&8){const c=e.vnode.dynamicProps;for(let p=0;p{l=!0;const[g,k]=Jl(p,t,!0);lt(s,g),k&&i.push(...k)};!o&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}if(!r&&!l)return Ye(e)&&n.set(e,cn),cn;if(xe(r))for(let c=0;ce==="_"||e==="_ctx"||e==="$stable",us=e=>xe(e)?e.map(uo):[uo(e)],df=(e,t,o)=>{if(t._n)return t;const n=Kt((...a)=>us(t(...a)),o);return n._c=!1,n},Zl=(e,t,o)=>{const n=e._ctx;for(const a in e){if(cs(a))continue;const r=e[a];if(Ee(r))t[a]=df(a,r,n);else if(r!=null){const s=us(r);t[a]=()=>s}}},Ql=(e,t)=>{const o=us(t);e.slots.default=()=>o},ec=(e,t,o)=>{for(const n in t)(o||!cs(n))&&(e[n]=t[n])},pf=(e,t,o)=>{const n=e.slots=Wl();if(e.vnode.shapeFlag&32){const a=t._;a?(ec(n,t,o),o&&Fi(n,"_",a,!0)):Zl(t,n)}else t&&Ql(e,t)},gf=(e,t,o)=>{const{vnode:n,slots:a}=e;let r=!0,s=Ze;if(n.shapeFlag&32){const i=t._;i?o&&i===1?r=!1:ec(a,t,o):(r=!t.$stable,Zl(t,a)),s=t}else t&&(Ql(e,t),s={default:1});if(r)for(const i in a)!cs(i)&&s[i]==null&&delete a[i]},Rt=yf;function ff(e){return hf(e)}function hf(e,t){const o=Ca();o.__VUE__=!0;const{insert:n,remove:a,patchProp:r,createElement:s,createText:i,createComment:l,setText:u,setElementText:c,parentNode:p,nextSibling:g,setScopeId:k=to,insertStaticContent:w}=e,m=(L,I,R,H=null,X=null,J=null,Z=void 0,te=null,y=!!I.dynamicChildren)=>{if(L===I)return;L&&!ta(L,I)&&(H=Oe(L),se(L,X,J,!0),L=null),I.patchFlag===-2&&(y=!1,I.dynamicChildren=null);const{type:v,ref:B,shapeFlag:Y}=I;switch(v){case Zn:d(L,I,R,H);break;case co:f(L,I,R,H);break;case Ja:L==null&&h(I,R,H,Z);break;case Ne:re(L,I,R,H,X,J,Z,te,y);break;default:Y&1?x(L,I,R,H,X,J,Z,te,y):Y&6?M(L,I,R,H,X,J,Z,te,y):(Y&64||Y&128)&&v.process(L,I,R,H,X,J,Z,te,y,Je)}B!=null&&X?qn(B,L&&L.ref,J,I||L,!I):B==null&&L&&L.ref!=null&&qn(L.ref,null,J,L,!0)},d=(L,I,R,H)=>{if(L==null)n(I.el=i(I.children),R,H);else{const X=I.el=L.el;I.children!==L.children&&u(X,I.children)}},f=(L,I,R,H)=>{L==null?n(I.el=l(I.children||""),R,H):I.el=L.el},h=(L,I,R,H)=>{[L.el,L.anchor]=w(L.children,I,R,H,L.el,L.anchor)},b=({el:L,anchor:I},R,H)=>{let X;for(;L&&L!==I;)X=g(L),n(L,R,H),L=X;n(I,R,H)},_=({el:L,anchor:I})=>{let R;for(;L&&L!==I;)R=g(L),a(L),L=R;a(I)},x=(L,I,R,H,X,J,Z,te,y)=>{if(I.type==="svg"?Z="svg":I.type==="math"&&(Z="mathml"),L==null)$(I,R,H,X,J,Z,te,y);else{const v=L.el&&L.el._isVueCE?L.el:null;try{v&&v._beginPatch(),T(L,I,X,J,Z,te,y)}finally{v&&v._endPatch()}}},$=(L,I,R,H,X,J,Z,te)=>{let y,v;const{props:B,shapeFlag:Y,transition:de,dirs:ie}=L;if(y=L.el=s(L.type,J,B&&B.is,B),Y&8?c(y,L.children):Y&16&&P(L.children,y,null,H,X,ds(L,J),Z,te),ie&&Jo(L,null,H,"created"),A(y,L,L.scopeId,Z,H),B){for(const q in B)q!=="value"&&!Dn(q)&&r(y,q,null,B[q],J,H);"value"in B&&r(y,"value",null,B.value,J),(v=B.onVnodeBeforeMount)&&po(v,H,L)}ie&&Jo(L,null,H,"beforeMount");const G=mf(X,de);G&&de.beforeEnter(y),n(y,I,R),((v=B&&B.onVnodeMounted)||G||ie)&&Rt(()=>{try{v&&po(v,H,L),G&&de.enter(y),ie&&Jo(L,null,H,"mounted")}finally{}},X)},A=(L,I,R,H,X)=>{if(R&&k(L,R),H)for(let J=0;J{for(let v=y;v{const te=I.el=L.el;let{patchFlag:y,dynamicChildren:v,dirs:B}=I;y|=L.patchFlag&16;const Y=L.props||Ze,de=I.props||Ze;let ie;if(R&&Qo(R,!1),(ie=de.onVnodeBeforeUpdate)&&po(ie,R,I,L),B&&Jo(I,L,R,"beforeUpdate"),R&&Qo(R,!0),v&&(!L.dynamicChildren||L.dynamicChildren.length!==v.length)&&(y=0,Z=!1,v=null),(Y.innerHTML&&de.innerHTML==null||Y.textContent&&de.textContent==null)&&c(te,""),v?z(L.dynamicChildren,v,te,R,H,ds(I,X),J):Z||ae(L,I,te,null,R,H,ds(I,X),J,!1),y>0){if(y&16)W(te,Y,de,R,X);else if(y&2&&Y.class!==de.class&&r(te,"class",null,de.class,X),y&4&&r(te,"style",Y.style,de.style,X),y&8){const G=I.dynamicProps;for(let q=0;q{ie&&po(ie,R,I,L),B&&Jo(I,L,R,"updated")},H)},z=(L,I,R,H,X,J,Z)=>{for(let te=0;te{if(I!==R){if(I!==Ze)for(const J in I)!Dn(J)&&!(J in R)&&r(L,J,I[J],null,X,H);for(const J in R){if(Dn(J))continue;const Z=R[J],te=I[J];Z!==te&&J!=="value"&&r(L,J,te,Z,X,H)}"value"in R&&r(L,"value",I.value,R.value,X)}},re=(L,I,R,H,X,J,Z,te,y)=>{const v=I.el=L?L.el:i(""),B=I.anchor=L?L.anchor:i("");let{patchFlag:Y,dynamicChildren:de,slotScopeIds:ie}=I;ie&&(te=te?te.concat(ie):ie),L==null?(n(v,R,H),n(B,R,H),P(I.children||[],R,B,X,J,Z,te,y)):Y>0&&Y&64&&de&&L.dynamicChildren&&L.dynamicChildren.length===de.length?(z(L.dynamicChildren,de,R,X,J,Z,te),(I.key!=null||X&&I===X.subTree)&&ps(L,I,!0)):ae(L,I,R,B,X,J,Z,te,y)},M=(L,I,R,H,X,J,Z,te,y)=>{I.slotScopeIds=te,L==null?I.shapeFlag&512?X.ctx.activate(I,R,H,Z,y):O(I,R,H,X,J,Z,y):D(L,I,y)},O=(L,I,R,H,X,J,Z)=>{const te=L.component=Af(L,H,X);if(Ha(L)&&(te.ctx.renderer=Je),Sf(te,!1,Z),te.asyncDep){if(X&&X.registerDep(te,S,Z),!L.el){const y=te.subTree=He(co);f(null,y,I,R),L.placeholder=y.el}}else S(te,L,I,R,X,J,Z)},D=(L,I,R)=>{const H=I.component=L.component;if(rf(L,I,R))if(H.asyncDep&&!H.asyncResolved){C(H,I,R);return}else H.next=I,H.update();else I.el=L.el,H.vnode=I},S=(L,I,R,H,X,J,Z)=>{const te=()=>{if(L.isMounted){let{next:Y,bu:de,u:ie,parent:G,vnode:q}=L;{const K=tc(L);if(K){Y&&(Y.el=q.el,C(L,Y,Z)),K.asyncDep.then(()=>{Rt(()=>{L.isUnmounted||v()},X)});return}}let me=Y,$e;Qo(L,!1),Y?(Y.el=q.el,C(L,Y,Z)):Y=q,de&&Ea(de),($e=Y.props&&Y.props.onVnodeBeforeUpdate)&&po($e,G,Y,q),Qo(L,!0);const Ge=zl(L),F=L.subTree;L.subTree=Ge,m(F,Ge,p(F.el),Oe(F),L,X,J),Y.el=Ge.el,me===null&&sf(L,Ge.el),ie&&Rt(ie,X),($e=Y.props&&Y.props.onVnodeUpdated)&&Rt(()=>po($e,G,Y,q),X)}else{let Y;const{el:de,props:ie}=I,{bm:G,m:q,parent:me,root:$e,type:Ge}=L,F=bn(I);Qo(L,!1),G&&Ea(G),!F&&(Y=ie&&ie.onVnodeBeforeMount)&&po(Y,me,I),Qo(L,!0);{$e.ce&&$e.ce._hasShadowRoot()&&$e.ce._injectChildStyle(Ge,L.parent?L.parent.type:void 0);const K=L.subTree=zl(L);m(null,K,R,H,L,X,J),I.el=K.el}if(q&&Rt(q,X),!F&&(Y=ie&&ie.onVnodeMounted)){const K=I;Rt(()=>po(Y,me,K),X)}(I.shapeFlag&256||me&&bn(me.vnode)&&me.vnode.shapeFlag&256)&&L.a&&Rt(L.a,X),L.isMounted=!0,I=R=H=null}};L.scope.on();const y=L.effect=new Vi(te);L.scope.off();const v=L.update=y.run.bind(y),B=L.job=y.runIfDirty.bind(y);B.i=L,B.id=L.uid,y.scheduler=()=>Xr(B),Qo(L,!0),v()},C=(L,I,R)=>{I.component=L;const H=L.vnode.props;L.vnode=I,L.next=null,cf(L,I.props,H,R),gf(L,I.children,R),no(),ml(L),ao()},ae=(L,I,R,H,X,J,Z,te,y=!1)=>{const v=L&&L.children,B=L?L.shapeFlag:0,Y=I.children,{patchFlag:de,shapeFlag:ie}=I;if(de>0){if(de&128){E(v,Y,R,H,X,J,Z,te,y);return}else if(de&256){le(v,Y,R,H,X,J,Z,te,y);return}}ie&8?(B&16&&Me(v,X,J),Y!==v&&c(R,Y)):B&16?ie&16?E(v,Y,R,H,X,J,Z,te,y):Me(v,X,J,!0):(B&8&&c(R,""),ie&16&&P(Y,R,H,X,J,Z,te,y))},le=(L,I,R,H,X,J,Z,te,y)=>{L=L||cn,I=I||cn;const v=L.length,B=I.length,Y=Math.min(v,B);let de;for(de=0;deB?Me(L,X,J,!0,!1,Y):P(I,R,H,X,J,Z,te,y,Y)},E=(L,I,R,H,X,J,Z,te,y)=>{let v=0;const B=I.length;let Y=L.length-1,de=B-1;for(;v<=Y&&v<=de;){const ie=L[v],G=I[v]=y?$o(I[v]):uo(I[v]);if(ta(ie,G))m(ie,G,R,null,X,J,Z,te,y);else break;v++}for(;v<=Y&&v<=de;){const ie=L[Y],G=I[de]=y?$o(I[de]):uo(I[de]);if(ta(ie,G))m(ie,G,R,null,X,J,Z,te,y);else break;Y--,de--}if(v>Y){if(v<=de){const ie=de+1,G=iede)for(;v<=Y;)se(L[v],X,J,!0),v++;else{const ie=v,G=v,q=new Map;for(v=G;v<=de;v++){const we=I[v]=y?$o(I[v]):uo(I[v]);we.key!=null&&q.set(we.key,v)}let me,$e=0;const Ge=de-G+1;let F=!1,K=0;const he=new Array(Ge);for(v=0;v=Ge){se(we,X,J,!0);continue}let je;if(we.key!=null)je=q.get(we.key);else for(me=G;me<=de;me++)if(he[me-G]===0&&ta(we,I[me])){je=me;break}je===void 0?se(we,X,J,!0):(he[je-G]=v+1,je>=K?K=je:F=!0,m(we,I[je],R,null,X,J,Z,te,y),$e++)}const ke=F?bf(he):cn;for(me=ke.length-1,v=Ge-1;v>=0;v--){const we=G+v,je=I[we],Pe=I[we+1],xt=we+1{const{el:J,type:Z,transition:te,children:y,shapeFlag:v}=L;if(v&6){Q(L.component.subTree,I,R,H);return}if(v&128){L.suspense.move(I,R,H);return}if(v&64){Z.move(L,I,R,Je);return}if(Z===Ne){n(J,I,R);for(let Y=0;Yte.enter(J),X));else{const{leave:Y,delayLeave:de,afterLeave:ie}=te,G=()=>{L.ctx.isUnmounted?a(J):n(J,I,R)},q=()=>{const me=J._isLeaving||!!J[ts];J._isLeaving&&J[ts](!0),te.persisted&&!me?G():Y(J,()=>{G(),ie&&ie()})};de?de(J,G,q):q()}else n(J,I,R)},se=(L,I,R,H=!1,X=!1)=>{const{type:J,props:Z,ref:te,children:y,dynamicChildren:v,shapeFlag:B,patchFlag:Y,dirs:de,cacheIndex:ie,memo:G}=L;if(Y===-2&&(X=!1),te!=null&&(no(),qn(te,null,R,L,!0),ao()),ie!=null&&(I.renderCache[ie]=void 0),B&256){I.ctx.deactivate(L);return}const q=B&1&&de,me=!bn(L);let $e;if(me&&($e=Z&&Z.onVnodeBeforeUnmount)&&po($e,I,L),B&6)Te(L.component,R,H);else{if(B&128){L.suspense.unmount(R,H);return}q&&Jo(L,null,I,"beforeUnmount"),B&64?L.type.remove(L,I,R,Je,H):v&&!v.hasOnce&&(J!==Ne||Y>0&&Y&64)?Me(v,I,R,!1,!0):(J===Ne&&Y&384||!X&&B&16)&&Me(y,I,R),H&&ue(L)}const Ge=G!=null&&ie==null;(me&&($e=Z&&Z.onVnodeUnmounted)||q||Ge)&&Rt(()=>{$e&&po($e,I,L),q&&Jo(L,null,I,"unmounted"),Ge&&(L.el=null)},R)},ue=L=>{const{type:I,el:R,anchor:H,transition:X}=L;if(I===Ne){_e(R,H);return}if(I===Ja){_(L);return}const J=()=>{a(R),X&&!X.persisted&&X.afterLeave&&X.afterLeave()};if(L.shapeFlag&1&&X&&!X.persisted){const{leave:Z,delayLeave:te}=X,y=()=>Z(R,J);te?te(L.el,J,y):y()}else J()},_e=(L,I)=>{let R;for(;L!==I;)R=g(L),a(L),L=R;a(I)},Te=(L,I,R)=>{const{bum:H,scope:X,job:J,subTree:Z,um:te,m:y,a:v}=L;oc(y),oc(v),H&&Ea(H),X.stop(),J&&(J.flags|=8,se(Z,L,I,R)),te&&Rt(te,I),Rt(()=>{L.isUnmounted=!0},I)},Me=(L,I,R,H=!1,X=!1,J=0)=>{for(let Z=J;Z{if(L.shapeFlag&6)return Oe(L.component.subTree);if(L.shapeFlag&128)return L.suspense.next();const I=g(L.anchor||L.el),R=I&&I[wl];return R?g(R):I};let Ie=!1;const qe=(L,I,R)=>{let H;L==null?I._vnode&&(se(I._vnode,null,null,!0),H=I._vnode.component):m(I._vnode||null,L,I,null,null,null,R),I._vnode=L,Ie||(Ie=!0,ml(H),bl(),Ie=!1)},Je={p:m,um:se,m:Q,r:ue,mt:O,mc:P,pc:ae,pbc:z,n:Oe,o:e};return{render:qe,hydrate:void 0,createApp:Qg(qe)}}function ds({type:e,props:t},o){return o==="svg"&&e==="foreignObject"||o==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:o}function Qo({effect:e,job:t},o){o?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function mf(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function ps(e,t,o=!1){const n=e.children,a=t.children;if(xe(n)&&xe(a))for(let r=0;r>1,e[o[i]]0&&(t[n]=o[r-1]),o[r]=n)}}for(r=o.length,s=o[r-1];r-- >0;)o[r]=s,s=t[s];return o}function tc(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:tc(t)}function oc(e){if(e)for(let t=0;te.__isSuspense;function yf(e,t){t&&t.pendingBranch?xe(e)?t.effects.push(...e):t.effects.push(e):wg(e)}const Ne=Symbol.for("v-fgt"),Zn=Symbol.for("v-txt"),co=Symbol.for("v-cmt"),Ja=Symbol.for("v-stc"),xo=[];let Ut=null;function V(e=!1){xo.push(Ut=e?null:[])}function gs(){xo.pop(),Ut=xo[xo.length-1]||null}let Qn=1;function Xa(e,t=!1){Qn+=e,e<0&&Ut&&t&&(Ut.hasOnce=!0)}function rc(e){return e.dynamicChildren=Qn>0?Ut||cn:null,gs(),Qn>0&&Ut&&Ut.push(e),e}function oe(e,t,o,n,a,r){return rc(N(e,t,o,n,a,r,!0))}function dt(e,t,o,n,a){return rc(He(e,t,o,n,a,!0))}function ea(e){return e?e.__v_isVNode===!0:!1}function ta(e,t){return e.type===t.type&&e.key===t.key}const sc=({key:e})=>e??null,Za=({ref:e,ref_key:t,ref_for:o})=>(typeof e=="number"&&(e=""+e),e!=null?Qe(e)||at(e)||Ee(e)?{i:At,r:e,k:t,f:!!o}:e:null);function N(e,t=null,o=null,n=0,a=null,r=e===Ne?0:1,s=!1,i=!1){const l={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&sc(t),ref:t&&Za(t),scopeId:_l,slotScopeIds:null,children:o,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:r,patchFlag:n,dynamicProps:a,dynamicChildren:null,appContext:null,ctx:At};return i?(Qa(l,o),r&128&&e.normalize(l)):o&&(l.shapeFlag|=Qe(o)?8:16),Qn>0&&!s&&Ut&&(l.patchFlag>0||r&6)&&l.patchFlag!==32&&Ut.push(l),l}const He=_f;function _f(e,t=null,o=null,n=0,a=null,r=!1){if((!e||e===Tl)&&(e=co),ea(e)){const i=_n(e,t,!0);return o&&Qa(i,o),Qn>0&&!r&&Ut&&(i.shapeFlag&6?Ut[Ut.indexOf(e)]=i:Ut.push(i)),i.patchFlag=-2,i}if(Mf(e)&&(e=e.__vccOpts),t){t=vf(t);let{class:i,style:l}=t;i&&!Qe(i)&&(t.class=Re(i)),Ye(l)&&(Oa(l)&&!xe(l)&&(l=lt({},l)),t.style=nt(l))}const s=Qe(e)?1:ac(e)?128:ja(e)?64:Ye(e)?4:Ee(e)?2:0;return N(e,t,o,n,a,s,r,!0)}function vf(e){return e?Oa(e)||Yl(e)?lt({},e):e:null}function _n(e,t,o=!1,n=!1){const{props:a,ref:r,patchFlag:s,children:i,transition:l}=e,u=t?wf(a||{},t):a,c={__v_isVNode:!0,__v_skip:!0,type:e.type,props:u,key:u&&sc(u),ref:t&&t.ref?o&&r?xe(r)?r.concat(Za(t)):[r,Za(t)]:Za(t):r,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:i,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==Ne?s===-1?16:s|16:s,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:l,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&_n(e.ssContent),ssFallback:e.ssFallback&&_n(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return l&&n&&os(c,l.clone(c)),c}function mt(e=" ",t=0){return He(Zn,null,e,t)}function kf(e,t){const o=He(Ja,null,e);return o.staticCount=t,o}function ye(e="",t=!1){return t?(V(),dt(co,null,e)):He(co,null,e)}function uo(e){return e==null||typeof e=="boolean"?He(co):xe(e)?He(Ne,null,e.slice()):ea(e)?$o(e):He(Zn,null,String(e))}function $o(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:_n(e)}function Qa(e,t){let o=0;const{shapeFlag:n}=e;if(t==null)t=null;else if(xe(t))o=16;else if(typeof t=="object")if(n&65){const a=t.default;a&&(a._c&&(a._d=!1),Qa(e,a()),a._c&&(a._d=!0));return}else{o=32;const a=t._;!a&&!Yl(t)?t._ctx=At:a===3&&At&&(At.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else if(Ee(t)){if(n&65){Qa(e,{default:t});return}t={default:t,_ctx:At},o=32}else t=String(t),n&64?(o=16,t=[mt(t)]):o=8;e.children=t,e.shapeFlag|=o}function wf(...e){const t={};for(let o=0;oEt||At;let er,oa;{const e=Ca(),t=(o,n)=>{let a;return(a=e[o])||(a=e[o]=[]),a.push(n),r=>{a.length>1?a.forEach(s=>s(r)):a[0](r)}};er=t("__VUE_INSTANCE_SETTERS__",o=>Et=o),oa=t("__VUE_SSR_SETTERS__",o=>vn=o)}const na=e=>{const t=Et;return er(e),e.scope.on(),()=>{e.scope.off(),er(t)}},ic=()=>{Et&&Et.scope.off(),er(null)};function lc(e){return e.vnode.shapeFlag&4}let vn=!1;function Sf(e,t=!1,o=!1){t&&oa(t);const{props:n,children:a}=e.vnode,r=lc(e);lf(e,n,r,t),pf(e,a,o||t);const s=r?Ef(e,t):void 0;return t&&oa(!1),s}function Ef(e,t){const o=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,Vg);const{setup:n}=o;if(n){no();const a=e.setupContext=n.length>1?Cf(e):null,r=na(e),s=fn(n,e,0,[e.props,a]),i=Ii(s);if(ao(),r(),(i||e.sp)&&!bn(e)&&ns(e),i){if(s.then(ic,ic),t)return s.then(l=>{oa(!0);try{cc(e,l,t)}finally{oa(!1)}}).catch(l=>{Hn(l,e,0)});e.asyncDep=s}else cc(e,s)}else uc(e)}function cc(e,t,o){Ee(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:Ye(t)&&(e.setupState=dl(t)),uc(e)}function uc(e,t,o){const n=e.type;e.render||(e.render=n.render||to);{const a=na(e);no();try{Wg(e)}finally{ao(),a()}}}const Lf={get(e,t){return Pt(e,"get",""),e[t]}};function Cf(e){const t=o=>{e.exposed=o||{}};return{attrs:new Proxy(e.attrs,Lf),slots:e.slots,emit:e.emit,expose:t}}function tr(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(dl(Yo(e.exposed)),{get(t,o){if(o in t)return t[o];if(o in Jn)return Jn[o](e)},has(t,o){return o in t||o in Jn}})):e.proxy}const Pf=/(?:^|[-_])\w/g,Tf=e=>e.replace(Pf,t=>t.toUpperCase()).replace(/[-_]/g,"");function dc(e,t=!0){return Ee(e)?e.displayName||e.name:e.name||t&&e.__name}function pc(e,t,o=!1){let n=dc(t);if(!n&&t.__file){const a=t.__file.match(/([^/\\]+)\.\w+$/);a&&(n=a[1])}if(!n&&e){const a=r=>{for(const s in r)if(r[s]===t)return s};n=a(e.components)||e.parent&&a(e.parent.type.components)||a(e.appContext.components)}return n?Tf(n):o?"App":"Anonymous"}function Mf(e){return Ee(e)&&"__vccOpts"in e}const ne=(e,t)=>gg(e,t,vn);function gc(e,t,o){try{Xa(-1);const n=arguments.length;return n===2?Ye(t)&&!xe(t)?ea(t)?He(e,null,[t]):He(e,t):He(e,null,t):(n>3?o=Array.prototype.slice.call(arguments,2):n===3&&ea(o)&&(o=[o]),He(e,t,o))}finally{Xa(1)}}const Nf="3.5.42";/** * @vue/runtime-dom v3.5.42 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT -**/let fs;const fc=typeof window<"u"&&window.trustedTypes;if(fc)try{fs=fc.createPolicy("vue",{createHTML:e=>e})}catch{}const hc=fs?e=>fs.createHTML(e):e=>e,Nf="http://www.w3.org/2000/svg",Rf="http://www.w3.org/1998/Math/MathML",So=typeof document<"u"?document:null,mc=So&&So.createElement("template"),If={insert:(e,t,o)=>{t.insertBefore(e,o||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,o,n)=>{const a=t==="svg"?So.createElementNS(Nf,e):t==="mathml"?So.createElementNS(Rf,e):o?So.createElement(e,{is:o}):So.createElement(e);return e==="select"&&n&&n.multiple!=null&&a.setAttribute("multiple",n.multiple),a},createText:e=>So.createTextNode(e),createComment:e=>So.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>So.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,o,n,a,r){const s=o?o.previousSibling:t.lastChild;if(a&&(a===r||a.nextSibling))for(;t.insertBefore(a.cloneNode(!0),o),!(a===r||!(a=a.nextSibling)););else{mc.innerHTML=hc(n==="svg"?`${e}`:n==="mathml"?`${e}`:e);const i=mc.content;if(n==="svg"||n==="mathml"){const l=i.firstChild;for(;l.firstChild;)i.appendChild(l.firstChild);i.removeChild(l)}t.insertBefore(i,o)}return[s?s.nextSibling:t.firstChild,o?o.previousSibling:t.lastChild]}},Of=Symbol("_vtc");function Ff(e,t,o){const n=e[Of];n&&(t=(t?[t,...n]:[...n]).join(" ")),t==null?e.removeAttribute("class"):o?e.setAttribute("class",t):e.className=t}const bc=Symbol("_vod"),Df=Symbol("_vsh"),Bf=Symbol(""),Gf=/(?:^|;)\s*display\s*:/;function jf(e,t,o){const n=e.style,a=Qe(o);let r=!1;if(o&&!a){if(t)if(Qe(t))for(const s of t.split(";")){const i=s.slice(0,s.indexOf(":")).trim();o[i]==null&&aa(n,i,"")}else for(const s in t)o[s]==null&&aa(n,s,"");for(const s in o){s==="display"&&(r=!0);const i=o[s];i!=null?Kf(e,s,!Qe(t)&&t?t[s]:void 0,i)||aa(n,s,i):aa(n,s,"")}}else if(a){if(t!==o){const s=n[Bf];s&&(o+=";"+s),n.cssText=o,r=Gf.test(o)}}else t&&e.removeAttribute("style");bc in e&&(e[bc]=r?n.display:"",e[Df]&&(n.display="none"))}const or=/\s*!important$/;function aa(e,t,o){if(xe(o))o.forEach(n=>aa(e,t,n));else if(o==null&&(o=""),t.startsWith("--"))or.test(o)?e.setProperty(t,o.replace(or,""),"important"):e.setProperty(t,o);else{const n=Uf(e,t);or.test(o)?e.setProperty(Bt(n),o.replace(or,""),"important"):e[n]=o}}const yc=["Webkit","Moz","ms"],hs={};function Uf(e,t){const o=hs[t];if(o)return o;let n=_t(t);if(n!=="filter"&&n in e)return hs[t]=n;n=Sa(n);for(let a=0;ams||(qf.then(()=>ms=0),ms=Date.now());function Xf(e,t){const o=n=>{if(!n._vts)n._vts=Date.now();else if(n._vts<=o.attached)return;const a=o.value;if(xe(a)){const r=n.stopImmediatePropagation;n.stopImmediatePropagation=()=>{r.call(n),n._stopped=!0};const s=a.slice(),i=[n];for(let l=0;le.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Zf=(e,t,o,n,a,r)=>{const s=a==="svg";t==="class"?Ff(e,n,s):t==="style"?jf(e,o,n):ka(t)?wa(t)||Hf(e,t,o,n,r):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):Qf(e,t,n,s))?(kc(e,t,n),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&vc(e,t,n,s,r,t!=="value")):e._isVueCE&&(eh(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!Qe(n)))?kc(e,_t(t),n,r,t):(t==="true-value"?e._trueValue=n:t==="false-value"&&(e._falseValue=n),vc(e,t,n,s))};function Qf(e,t,o,n){if(n)return!!(t==="innerHTML"||t==="textContent"||t in e&&xc(t)&&Ee(o));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="autocorrect"||t==="sandbox"&&e.tagName==="IFRAME"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const a=e.tagName;if(a==="IMG"||a==="VIDEO"||a==="CANVAS"||a==="SOURCE")return!1}return xc(t)&&Qe(o)?!1:t in e}function eh(e,t){const o=e._def.props;if(!o)return!1;const n=_t(t);return Array.isArray(o)?o.some(a=>_t(a)===n):Object.keys(o).some(a=>_t(a)===n)}const $c={};function th(e,t,o){let n=Yn(e,t);xa(n)&&(n=lt({},n,t));class a extends bs{constructor(s){super(n,s,o)}}return a.def=n,a}const oh=typeof HTMLElement<"u"?HTMLElement:class{};class bs extends oh{constructor(t,o={},n=Cc){super(),this._def=t,this._props=o,this._createApp=n,this._isVueCE=!0,this._instance=null,this._app=null,this._nonce=this._def.nonce,this._connected=!1,this._resolved=!1,this._patching=!1,this._dirty=!1,this._numberProps=null,this._styleChildren=new WeakSet,this._styleAnchors=new WeakMap,this._ob=null,this.shadowRoot&&n!==Cc?this._root=this.shadowRoot:t.shadowRoot!==!1?(this.attachShadow(lt({},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 bs){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,so(()=>{this._connected||(this._ob&&(this._ob.disconnect(),this._ob=null),this._app&&this._app.unmount(),this._instance&&(this._instance.ce=void 0),this._app=this._instance=null,this._teleportTargets&&(this._teleportTargets.clear(),this._teleportTargets=void 0))})}_processMutations(t){for(const o of t)this._setAttr(o.attributeName)}_resolveDef(){if(this._pendingResolve)return this._pendingResolve;for(let n=0;n{this._resolved=!0,this._pendingResolve=void 0;const{props:r,styles:s}=n;let i;if(r&&!xe(r))for(const l in r){const u=r[l];(u===Number||u&&u.type===Number)&&(l in this._props&&(this._props[l]=Di(this._props[l])),(i||(i=Object.create(null)))[_t(l)]=!0)}this._numberProps=i,this._resolveProps(n),this.shadowRoot&&this._applyStyles(s),this._mount(n)},o=this._def.__asyncLoader;if(o)return this._pendingResolve=o().then(n=>{n.configureApp=this._def.configureApp,t(this._def=n,!0)}),this._pendingResolve;t(this._def)}_mount(t){this._app=this._createApp(t),this._inheritParentContext(),t.configureApp&&t.configureApp(this._app),this._app._ceVNode=this._createVNode(),this._app.mount(this._root);const o=this._instance&&this._instance.exposed;if(o)for(const n in o)ze(this,n)||Object.defineProperty(this,n,{get:()=>_e(o[n])})}_resolveProps(t){const{props:o}=t,n=xe(o)?o:Object.keys(o||{});for(const a of Object.keys(this))a[0]!=="_"&&n.includes(a)&&this._setProp(a,this[a]);for(const a of n.map(_t))Object.defineProperty(this,a,{get(){return this._getProp(a)},set(r){this._setProp(a,r,!0,!this._patching)}})}_setAttr(t){if(t.startsWith("data-v-"))return;const o=this.hasAttribute(t);let n=o?this.getAttribute(t):$c;const a=_t(t);o&&this._numberProps&&this._numberProps[a]&&(n=Di(n)),this._setProp(a,n,!1,!0)}_getProp(t){return this._props[t]}_setProp(t,o,n=!0,a=!1){if(o!==this._props[t]&&(this._dirty=!0,o===$c?delete this._props[t]:(this._props[t]=o,t==="key"&&this._app&&(this._app._ceVNode.key=o)),a&&this._instance&&this._update(),n)){const r=this._ob;r&&(this._processMutations(r.takeRecords()),r.disconnect()),o===!0?this.setAttribute(Bt(t),""):typeof o=="string"||typeof o=="number"?this.setAttribute(Bt(t),o+""):o||this.removeAttribute(Bt(t)),r&&r.observe(this,{attributes:!0})}}_update(){const t=this._createVNode();this._app&&(t.appContext=this._app._context),dh(t,this._root)}_createVNode(){const t={};this.shadowRoot||(t.onVnodeMounted=t.onVnodeUpdated=this._renderSlots.bind(this));const o=He(this._def,lt(t,this._props));return this._instance||(o.ce=n=>{this._instance=n,n.ce=this,n.isCE=!0;const a=(r,s)=>{this.dispatchEvent(new CustomEvent(r,xa(s[0])?lt({detail:s},s[0]):{detail:s}))};n.emit=(r,...s)=>{a(r,s),Bt(r)!==r&&a(Bt(r),s)},this._setParent()}),o}_applyStyles(t,o,n){if(!t)return;if(o){if(o===this._def||this._styleChildren.has(o))return;this._styleChildren.add(o)}const a=this._nonce,r=this.shadowRoot,s=n?this._getStyleAnchor(n)||this._getStyleAnchor(this._def):this._getRootStyleInsertionAnchor(r);let i=null;for(let l=t.length-1;l>=0;l--){const u=document.createElement("style");a&&u.setAttribute("nonce",a),u.textContent=t[l],r.insertBefore(u,i||s),i=u,l===0&&(n||this._styleAnchors.set(this._def,u),o&&this._styleAnchors.set(o,u))}}_getStyleAnchor(t){if(!t)return null;const o=this._styleAnchors.get(t);return o&&o.parentNode===this.shadowRoot?o:(o&&this._styleAnchors.delete(t),null)}_getRootStyleInsertionAnchor(t){for(let o=0;o{const t=e.props["onUpdate:modelValue"]||!1;return xe(t)?o=>Ea(t,o):t};function nh(e){e.target.composing=!0}function Ac(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const tn=Symbol("_assign"),ar=Symbol("_initialValue");function ys(e,t,o){return t&&(e=e.trim()),o&&(e=La(e)),e}const ah={created(e,{modifiers:{lazy:t,trim:o,number:n}},a){e.parentNode&&(e.type==="text"?e[ar]=e.defaultValue.replace(/[\r\n]/g,""):e.type==="textarea"&&(e[ar]=e.defaultValue.replace(/\r\n?/g,` -`))),e[tn]=nr(a);const r=n||a.props&&a.props.type==="number";en(e,t?"change":"input",s=>{s.target.composing||e[tn](ys(e.value,o,r))}),(o||r)&&en(e,"change",()=>{e.value=ys(e.value,o,r)}),t||(en(e,"compositionstart",nh),en(e,"compositionend",Ac),en(e,"change",Ac))},mounted(e,{value:t,modifiers:{trim:o,number:n}}){const a=t??"",r=e[ar];delete e[ar],r!==void 0&&(e.type==="text"||e.type==="textarea")&&e.value!==r?e[tn](ys(e.value,o,n)):e.value=a},beforeUpdate(e,{value:t,oldValue:o,modifiers:{lazy:n,trim:a,number:r}},s){if(e[tn]=nr(s),e.composing)return;const i=(r||e.type==="number")&&!/^0\d/.test(e.value)?La(e.value):e.value,l=t??"";if(i===l)return;const u=e.getRootNode();(u instanceof Document||u instanceof ShadowRoot)&&u.activeElement===e&&e.type!=="range"&&(n&&t===o||a&&e.value.trim()===l)||(e.value=l)}},rh={deep:!0,created(e,{value:t,modifiers:{number:o}},n){e._modelValue=t,en(e,"change",()=>{const a=Array.prototype.filter.call(e.options,l=>l.selected).map(l=>o?La(rr(l)):rr(l)),r=e.multiple,s=r?Vo(e._modelValue)?new Set(a):a:a[0],i=e._pendingValue=[r,r?xe(s)?a.slice():a:s];try{e[tn](s)}finally{so(()=>{e._pendingValue===i&&(e._pendingValue=void 0)})}}),e[tn]=nr(n)},mounted(e,{value:t}){Sc(e,t)},beforeUpdate(e,{value:t},o){e._modelValue=t,e[tn]=nr(o)},updated(e,{value:t}){const o=e._pendingValue;e._pendingValue=void 0,(!o||o[0]!==e.multiple||!sh(t,o[1],o[0]))&&Sc(e,t)}};function sh(e,t,o){if(!o||xe(e))return No(e,t);if(Vo(e)){if(e.size!==t.length)return!1;for(const n of t)if(!e.has(n))return!1;return!0}return!1}function Sc(e,t){const o=e.multiple,n=xe(t);if(!(o&&!n&&!Vo(t))){for(let a=0,r=e.options.length;aString(u)===String(i)):s.selected=Dp(t,i)>-1}else s.selected=t.has(i);else if(No(rr(s),t)){e.selectedIndex!==a&&(e.selectedIndex=a);return}}!o&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}}function rr(e){return"_value"in e?e._value:e.value}const ih=["ctrl","shift","alt","meta"],lh={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>ih.some(o=>e[`${o}Key`]&&!t.includes(o))},vt=(e,t)=>{if(!e)return e;const o=e._withMods||(e._withMods={}),n=t.join(".");return o[n]||(o[n]=(a,...r)=>{for(let s=0;s{const o=e._withKeys||(e._withKeys={}),n=t.join(".");return o[n]||(o[n]=a=>{if(!("key"in a))return;const r=Bt(a.key);if(t.some(s=>s===r||ch[s]===r))return e(a)})},uh=lt({patchProp:Zf},If);let Ec;function Lc(){return Ec||(Ec=gf(uh))}const dh=(...e)=>{Lc().render(...e)},Cc=(...e)=>{const t=Lc().createApp(...e),{mount:o}=t;return t.mount=n=>{const a=gh(n);if(!a)return;const r=t._component;!Ee(r)&&!r.render&&!r.template&&(r.template=a.innerHTML),a.nodeType===1&&(a.textContent="");const s=o(a,!1,ph(a));return a instanceof Element&&(a.removeAttribute("v-cloak"),a.setAttribute("data-v-app","")),s},t};function ph(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function gh(e){return Qe(e)?document.querySelector(e):e}/*! +**/let fs;const fc=typeof window<"u"&&window.trustedTypes;if(fc)try{fs=fc.createPolicy("vue",{createHTML:e=>e})}catch{}const hc=fs?e=>fs.createHTML(e):e=>e,Rf="http://www.w3.org/2000/svg",If="http://www.w3.org/1998/Math/MathML",So=typeof document<"u"?document:null,mc=So&&So.createElement("template"),Of={insert:(e,t,o)=>{t.insertBefore(e,o||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,o,n)=>{const a=t==="svg"?So.createElementNS(Rf,e):t==="mathml"?So.createElementNS(If,e):o?So.createElement(e,{is:o}):So.createElement(e);return e==="select"&&n&&n.multiple!=null&&a.setAttribute("multiple",n.multiple),a},createText:e=>So.createTextNode(e),createComment:e=>So.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>So.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,o,n,a,r){const s=o?o.previousSibling:t.lastChild;if(a&&(a===r||a.nextSibling))for(;t.insertBefore(a.cloneNode(!0),o),!(a===r||!(a=a.nextSibling)););else{mc.innerHTML=hc(n==="svg"?`${e}`:n==="mathml"?`${e}`:e);const i=mc.content;if(n==="svg"||n==="mathml"){const l=i.firstChild;for(;l.firstChild;)i.appendChild(l.firstChild);i.removeChild(l)}t.insertBefore(i,o)}return[s?s.nextSibling:t.firstChild,o?o.previousSibling:t.lastChild]}},Ff=Symbol("_vtc");function Df(e,t,o){const n=e[Ff];n&&(t=(t?[t,...n]:[...n]).join(" ")),t==null?e.removeAttribute("class"):o?e.setAttribute("class",t):e.className=t}const bc=Symbol("_vod"),Bf=Symbol("_vsh"),Gf=Symbol(""),jf=/(?:^|;)\s*display\s*:/;function Uf(e,t,o){const n=e.style,a=Qe(o);let r=!1;if(o&&!a){if(t)if(Qe(t))for(const s of t.split(";")){const i=s.slice(0,s.indexOf(":")).trim();o[i]==null&&aa(n,i,"")}else for(const s in t)o[s]==null&&aa(n,s,"");for(const s in o){s==="display"&&(r=!0);const i=o[s];i!=null?Kf(e,s,!Qe(t)&&t?t[s]:void 0,i)||aa(n,s,i):aa(n,s,"")}}else if(a){if(t!==o){const s=n[Gf];s&&(o+=";"+s),n.cssText=o,r=jf.test(o)}}else t&&e.removeAttribute("style");bc in e&&(e[bc]=r?n.display:"",e[Bf]&&(n.display="none"))}const or=/\s*!important$/;function aa(e,t,o){if(xe(o))o.forEach(n=>aa(e,t,n));else if(o==null&&(o=""),t.startsWith("--"))or.test(o)?e.setProperty(t,o.replace(or,""),"important"):e.setProperty(t,o);else{const n=zf(e,t);or.test(o)?e.setProperty(Gt(n),o.replace(or,""),"important"):e[n]=o}}const yc=["Webkit","Moz","ms"],hs={};function zf(e,t){const o=hs[t];if(o)return o;let n=_t(t);if(n!=="filter"&&n in e)return hs[t]=n;n=Sa(n);for(let a=0;ams||(Jf.then(()=>ms=0),ms=Date.now());function Zf(e,t){const o=n=>{if(!n._vts)n._vts=Date.now();else if(n._vts<=o.attached)return;const a=o.value;if(xe(a)){const r=n.stopImmediatePropagation;n.stopImmediatePropagation=()=>{r.call(n),n._stopped=!0};const s=a.slice(),i=[n];for(let l=0;le.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Qf=(e,t,o,n,a,r)=>{const s=a==="svg";t==="class"?Df(e,n,s):t==="style"?Uf(e,o,n):ka(t)?wa(t)||Vf(e,t,o,n,r):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):eh(e,t,n,s))?(kc(e,t,n),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&vc(e,t,n,s,r,t!=="value")):e._isVueCE&&(th(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!Qe(n)))?kc(e,_t(t),n,r,t):(t==="true-value"?e._trueValue=n:t==="false-value"&&(e._falseValue=n),vc(e,t,n,s))};function eh(e,t,o,n){if(n)return!!(t==="innerHTML"||t==="textContent"||t in e&&xc(t)&&Ee(o));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="autocorrect"||t==="sandbox"&&e.tagName==="IFRAME"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const a=e.tagName;if(a==="IMG"||a==="VIDEO"||a==="CANVAS"||a==="SOURCE")return!1}return xc(t)&&Qe(o)?!1:t in e}function th(e,t){const o=e._def.props;if(!o)return!1;const n=_t(t);return Array.isArray(o)?o.some(a=>_t(a)===n):Object.keys(o).some(a=>_t(a)===n)}const $c={};function oh(e,t,o){let n=Yn(e,t);xa(n)&&(n=lt({},n,t));class a extends bs{constructor(s){super(n,s,o)}}return a.def=n,a}const nh=typeof HTMLElement<"u"?HTMLElement:class{};class bs extends nh{constructor(t,o={},n=Cc){super(),this._def=t,this._props=o,this._createApp=n,this._isVueCE=!0,this._instance=null,this._app=null,this._nonce=this._def.nonce,this._connected=!1,this._resolved=!1,this._patching=!1,this._dirty=!1,this._numberProps=null,this._styleChildren=new WeakSet,this._styleAnchors=new WeakMap,this._ob=null,this.shadowRoot&&n!==Cc?this._root=this.shadowRoot:t.shadowRoot!==!1?(this.attachShadow(lt({},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 bs){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,io(()=>{this._connected||(this._ob&&(this._ob.disconnect(),this._ob=null),this._app&&this._app.unmount(),this._instance&&(this._instance.ce=void 0),this._app=this._instance=null,this._teleportTargets&&(this._teleportTargets.clear(),this._teleportTargets=void 0))})}_processMutations(t){for(const o of t)this._setAttr(o.attributeName)}_resolveDef(){if(this._pendingResolve)return this._pendingResolve;for(let n=0;n{this._resolved=!0,this._pendingResolve=void 0;const{props:r,styles:s}=n;let i;if(r&&!xe(r))for(const l in r){const u=r[l];(u===Number||u&&u.type===Number)&&(l in this._props&&(this._props[l]=Di(this._props[l])),(i||(i=Object.create(null)))[_t(l)]=!0)}this._numberProps=i,this._resolveProps(n),this.shadowRoot&&this._applyStyles(s),this._mount(n)},o=this._def.__asyncLoader;if(o)return this._pendingResolve=o().then(n=>{n.configureApp=this._def.configureApp,t(this._def=n,!0)}),this._pendingResolve;t(this._def)}_mount(t){this._app=this._createApp(t),this._inheritParentContext(),t.configureApp&&t.configureApp(this._app),this._app._ceVNode=this._createVNode(),this._app.mount(this._root);const o=this._instance&&this._instance.exposed;if(o)for(const n in o)Ke(this,n)||Object.defineProperty(this,n,{get:()=>ve(o[n])})}_resolveProps(t){const{props:o}=t,n=xe(o)?o:Object.keys(o||{});for(const a of Object.keys(this))a[0]!=="_"&&n.includes(a)&&this._setProp(a,this[a]);for(const a of n.map(_t))Object.defineProperty(this,a,{get(){return this._getProp(a)},set(r){this._setProp(a,r,!0,!this._patching)}})}_setAttr(t){if(t.startsWith("data-v-"))return;const o=this.hasAttribute(t);let n=o?this.getAttribute(t):$c;const a=_t(t);o&&this._numberProps&&this._numberProps[a]&&(n=Di(n)),this._setProp(a,n,!1,!0)}_getProp(t){return this._props[t]}_setProp(t,o,n=!0,a=!1){if(o!==this._props[t]&&(this._dirty=!0,o===$c?delete this._props[t]:(this._props[t]=o,t==="key"&&this._app&&(this._app._ceVNode.key=o)),a&&this._instance&&this._update(),n)){const r=this._ob;r&&(this._processMutations(r.takeRecords()),r.disconnect()),o===!0?this.setAttribute(Gt(t),""):typeof o=="string"||typeof o=="number"?this.setAttribute(Gt(t),o+""):o||this.removeAttribute(Gt(t)),r&&r.observe(this,{attributes:!0})}}_update(){const t=this._createVNode();this._app&&(t.appContext=this._app._context),ph(t,this._root)}_createVNode(){const t={};this.shadowRoot||(t.onVnodeMounted=t.onVnodeUpdated=this._renderSlots.bind(this));const o=He(this._def,lt(t,this._props));return this._instance||(o.ce=n=>{this._instance=n,n.ce=this,n.isCE=!0;const a=(r,s)=>{this.dispatchEvent(new CustomEvent(r,xa(s[0])?lt({detail:s},s[0]):{detail:s}))};n.emit=(r,...s)=>{a(r,s),Gt(r)!==r&&a(Gt(r),s)},this._setParent()}),o}_applyStyles(t,o,n){if(!t)return;if(o){if(o===this._def||this._styleChildren.has(o))return;this._styleChildren.add(o)}const a=this._nonce,r=this.shadowRoot,s=n?this._getStyleAnchor(n)||this._getStyleAnchor(this._def):this._getRootStyleInsertionAnchor(r);let i=null;for(let l=t.length-1;l>=0;l--){const u=document.createElement("style");a&&u.setAttribute("nonce",a),u.textContent=t[l],r.insertBefore(u,i||s),i=u,l===0&&(n||this._styleAnchors.set(this._def,u),o&&this._styleAnchors.set(o,u))}}_getStyleAnchor(t){if(!t)return null;const o=this._styleAnchors.get(t);return o&&o.parentNode===this.shadowRoot?o:(o&&this._styleAnchors.delete(t),null)}_getRootStyleInsertionAnchor(t){for(let o=0;o{const t=e.props["onUpdate:modelValue"]||!1;return xe(t)?o=>Ea(t,o):t};function ah(e){e.target.composing=!0}function Ac(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const tn=Symbol("_assign"),ar=Symbol("_initialValue");function ys(e,t,o){return t&&(e=e.trim()),o&&(e=La(e)),e}const rh={created(e,{modifiers:{lazy:t,trim:o,number:n}},a){e.parentNode&&(e.type==="text"?e[ar]=e.defaultValue.replace(/[\r\n]/g,""):e.type==="textarea"&&(e[ar]=e.defaultValue.replace(/\r\n?/g,` +`))),e[tn]=nr(a);const r=n||a.props&&a.props.type==="number";en(e,t?"change":"input",s=>{s.target.composing||e[tn](ys(e.value,o,r))}),(o||r)&&en(e,"change",()=>{e.value=ys(e.value,o,r)}),t||(en(e,"compositionstart",ah),en(e,"compositionend",Ac),en(e,"change",Ac))},mounted(e,{value:t,modifiers:{trim:o,number:n}}){const a=t??"",r=e[ar];delete e[ar],r!==void 0&&(e.type==="text"||e.type==="textarea")&&e.value!==r?e[tn](ys(e.value,o,n)):e.value=a},beforeUpdate(e,{value:t,oldValue:o,modifiers:{lazy:n,trim:a,number:r}},s){if(e[tn]=nr(s),e.composing)return;const i=(r||e.type==="number")&&!/^0\d/.test(e.value)?La(e.value):e.value,l=t??"";if(i===l)return;const u=e.getRootNode();(u instanceof Document||u instanceof ShadowRoot)&&u.activeElement===e&&e.type!=="range"&&(n&&t===o||a&&e.value.trim()===l)||(e.value=l)}},sh={deep:!0,created(e,{value:t,modifiers:{number:o}},n){e._modelValue=t,en(e,"change",()=>{const a=Array.prototype.filter.call(e.options,l=>l.selected).map(l=>o?La(rr(l)):rr(l)),r=e.multiple,s=r?Vo(e._modelValue)?new Set(a):a:a[0],i=e._pendingValue=[r,r?xe(s)?a.slice():a:s];try{e[tn](s)}finally{io(()=>{e._pendingValue===i&&(e._pendingValue=void 0)})}}),e[tn]=nr(n)},mounted(e,{value:t}){Sc(e,t)},beforeUpdate(e,{value:t},o){e._modelValue=t,e[tn]=nr(o)},updated(e,{value:t}){const o=e._pendingValue;e._pendingValue=void 0,(!o||o[0]!==e.multiple||!ih(t,o[1],o[0]))&&Sc(e,t)}};function ih(e,t,o){if(!o||xe(e))return No(e,t);if(Vo(e)){if(e.size!==t.length)return!1;for(const n of t)if(!e.has(n))return!1;return!0}return!1}function Sc(e,t){const o=e.multiple,n=xe(t);if(!(o&&!n&&!Vo(t))){for(let a=0,r=e.options.length;aString(u)===String(i)):s.selected=Bp(t,i)>-1}else s.selected=t.has(i);else if(No(rr(s),t)){e.selectedIndex!==a&&(e.selectedIndex=a);return}}!o&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}}function rr(e){return"_value"in e?e._value:e.value}const lh=["ctrl","shift","alt","meta"],ch={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>lh.some(o=>e[`${o}Key`]&&!t.includes(o))},vt=(e,t)=>{if(!e)return e;const o=e._withMods||(e._withMods={}),n=t.join(".");return o[n]||(o[n]=(a,...r)=>{for(let s=0;s{const o=e._withKeys||(e._withKeys={}),n=t.join(".");return o[n]||(o[n]=a=>{if(!("key"in a))return;const r=Gt(a.key);if(t.some(s=>s===r||uh[s]===r))return e(a)})},dh=lt({patchProp:Qf},Of);let Ec;function Lc(){return Ec||(Ec=ff(dh))}const ph=(...e)=>{Lc().render(...e)},Cc=(...e)=>{const t=Lc().createApp(...e),{mount:o}=t;return t.mount=n=>{const a=fh(n);if(!a)return;const r=t._component;!Ee(r)&&!r.render&&!r.template&&(r.template=a.innerHTML),a.nodeType===1&&(a.textContent="");const s=o(a,!1,gh(a));return a instanceof Element&&(a.removeAttribute("v-cloak"),a.setAttribute("data-v-app","")),s},t};function gh(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function fh(e){return Qe(e)?document.querySelector(e):e}/*! * pinia v2.3.1 * (c) 2025 Eduardo San Martin Morote * @license MIT - */let Pc;const sr=e=>Pc=e,Tc=Symbol();function vs(e){return e&&typeof e=="object"&&Object.prototype.toString.call(e)==="[object Object]"&&typeof e.toJSON!="function"}var ra;(function(e){e.direct="direct",e.patchObject="patch object",e.patchFunction="patch function"})(ra||(ra={}));function fh(){const e=Dr(!0),t=e.run(()=>de({}));let o=[],n=[];const a=Yo({install(r){sr(a),a._a=r,r.provide(Tc,a),r.config.globalProperties.$pinia=a,n.forEach(s=>o.push(s)),n=[]},use(r){return this._a?o.push(r):n.push(r),this},_p:o,_a:null,_e:e,_s:new Map,state:t});return a}const Mc=()=>{};function Nc(e,t,o,n=Mc){e.push(t);const a=()=>{const r=e.indexOf(t);r>-1&&(e.splice(r,1),n())};return!o&&Hi()&&Bp(a),a}function kn(e,...t){e.slice().forEach(o=>{o(...t)})}const hh=e=>e(),Rc=Symbol(),ks=Symbol();function ws(e,t){e instanceof Map&&t instanceof Map?t.forEach((o,n)=>e.set(n,o)):e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(const o in t){if(!t.hasOwnProperty(o))continue;const n=t[o],a=e[o];vs(a)&&vs(n)&&e.hasOwnProperty(o)&&!at(n)&&!_o(n)?e[o]=ws(a,n):e[o]=n}return e}const mh=Symbol();function bh(e){return!vs(e)||!e.hasOwnProperty(mh)}const{assign:Oo}=Object;function yh(e){return!!(at(e)&&e.effect)}function _h(e,t,o,n){const{state:a,actions:r,getters:s}=t,i=o.state.value[e];let l;function u(){i||(o.state.value[e]=a?a():{});const c=ig(o.state.value[e]);return Oo(c,r,Object.keys(s||{}).reduce((p,f)=>(p[f]=Yo(oe(()=>{sr(o);const k=o._s.get(e);return s[f].call(k,k)})),p),{}))}return l=Ic(e,u,t,o,n,!0),l}function Ic(e,t,o={},n,a,r){let s;const i=Oo({actions:{}},o),l={deep:!0};let u,c,p=[],f=[],k;const w=n.state.value[e];!r&&!w&&(n.state.value[e]={});let m;function d(C){let P;u=c=!1,typeof C=="function"?(C(n.state.value[e]),P={type:ra.patchFunction,storeId:e,events:k}):(ws(n.state.value[e],C),P={type:ra.patchObject,payload:C,storeId:e,events:k});const z=m=Symbol();so().then(()=>{m===z&&(u=!0)}),c=!0,kn(p,P,n.state.value[e])}const g=r?function(){const{state:P}=o,z=P?P():{};this.$patch(Y=>{Oo(Y,z)})}:Mc;function h(){s.stop(),p=[],f=[],n._s.delete(e)}const b=(C,P="")=>{if(Rc in C)return C[ks]=P,C;const z=function(){sr(n);const Y=Array.from(arguments),re=[],M=[];function F(I){re.push(I)}function T(I){M.push(I)}kn(f,{args:Y,name:z[ks],store:x,after:F,onError:T});let S;try{S=C.apply(this&&this.$id===e?this:x,Y)}catch(I){throw kn(M,I),I}return S instanceof Promise?S.then(I=>(kn(re,I),I)).catch(I=>(kn(M,I),Promise.reject(I))):(kn(re,S),S)};return z[Rc]=!0,z[ks]=P,z},_={_p:n,$id:e,$onAction:Nc.bind(null,f),$patch:d,$reset:g,$subscribe(C,P={}){const z=Nc(p,C,P.detached,()=>Y()),Y=s.run(()=>it(()=>n.state.value[e],re=>{(P.flush==="sync"?c:u)&&C({storeId:e,type:ra.direct,events:k},re)},Oo({},l,P)));return z},$dispose:h},x=dn(_);n._s.set(e,x);const A=(n._a&&n._a.runWithContext||hh)(()=>n._e.run(()=>(s=Dr()).run(()=>t({action:b}))));for(const C in A){const P=A[C];if(at(P)&&!yh(P)||_o(P))r||(w&&bh(P)&&(at(P)?P.value=w[C]:ws(P,w[C])),n.state.value[e][C]=P);else if(typeof P=="function"){const z=b(P,C);A[C]=z,i.actions[C]=P}}return Oo(x,A),Oo(Be(x),A),Object.defineProperty(x,"$state",{get:()=>n.state.value[e],set:C=>{d(P=>{Oo(P,C)})}}),n._p.forEach(C=>{Oo(x,s.run(()=>C({store:x,app:n._a,pinia:n,options:i})))}),w&&r&&o.hydrate&&o.hydrate(x.$state,w),u=!0,c=!0,x}/*! #__NO_SIDE_EFFECTS__ */function xs(e,t,o){let n,a;const r=typeof t=="function";typeof e=="string"?(n=e,a=r?o:t):(a=e,n=e.id);function s(i,l){const u=wg();return i=i||(u?Fe(Tc,null):null),i&&sr(i),i=Pc,i._s.has(n)||(r?Ic(n,t,a,i):_h(n,a,i)),i._s.get(n)}return s.$id=n,s}const $s="__doxaMapToken",As="doxa:map-token",Oc="__doxaMapTokenBridge",wn=()=>{if(typeof window>"u")return"";const e=window[$s];return typeof e=="string"?e:""};function Fc(e){if(typeof window>"u")return"";const t=typeof e=="string"?e.trim():"";if(!t||t===wn())return wn();window[$s]=t;try{window.dispatchEvent(new CustomEvent(As,{detail:t}))}catch{}return t}function vh(){if(typeof window>"u"||window[Oc])return;const e=typeof window.MAP_TOKEN=="string"?window.MAP_TOKEN:"";e&&!wn()&&(window[$s]=e);try{Object.defineProperty(window,"MAP_TOKEN",{configurable:!0,get(){return wn()},set(t){Fc(t)}}),window[Oc]=!0}catch{}}function kh(){vh();const e=de(wn());if(typeof window<"u"){const t=()=>{e.value=wn()};window.addEventListener(As,t);try{lo(()=>window.removeEventListener(As,t))}catch{}}return e}function Dc(e){return Ng({loader:e,onError(t,o,n,a){a<=3?setTimeout(o,a*500):n()}})}const wh={backToLegend:"العودة إلى المفتاح",closeDetailView:"إغلاق عرض التفاصيل"},xh={prayForThem:"صلِّ من أجلهم",adoptThem:"تبنَّهم",moreInfo:"مزيد من المعلومات",zoomIn:"تكبير",zoomOut:"تصغير",switchToLightMode:"التبديل إلى الوضع الفاتح",switchToDarkMode:"التبديل إلى الوضع الداكن",resetView:"إعادة تعيين العرض",toggleFullscreen:"تبديل ملء الشاشة",aboutThisMap:"حول هذه الخريطة",closeMenu:"إغلاق القائمة",reloadMap:"إعادة تحميل الخريطة",showClusters:"إظهار المجموعات",clusterSettings:"إعدادات المجموعات",startAutoFly:"بدء الطيران التلقائي",stopFlight:"إيقاف الطيران",speedLabel:"السرعة:",speedOption:{slow:"بطيء",normal:"عادي",fast:"سريع"},shareEmbed:"مشاركة وتضمين",posterMap:"خريطة الملصق",prayerList:"قائمة الصلاة",cardDeck:"مجموعة البطاقات",printOptions:"خيارات الطباعة",showOnMap:"أظهر على الخريطة",close:"إغلاق",showOnMapAria:"أظهر {label} على الخريطة",share:"مشاركة",shareSteps:["ضع هذه الخريطة على موقعك","أعدّ قائمة بمواقع الويب في مدينتك","علّمهم أن يضعوها أيضًا","علّمهم أن يعلّموا غيرهم وضعها","لنكثر الخرائط في كل مكان ليسوع!"]},$h={labels:{country:"الدولة:",population:"السكان:",language:"اللغة:",religion:"الديانة:",languageFamily:"العائلة اللغوية:",peopleCommitted:"ملتزمون بالصلاة:"},messages:{noDescription:"لا يوجد وصف متاح."}},Ah={title:{prayer:"تقدم الصلاة",engagement:"تقدم الانخراط",adoption:"تقدم التبني",languageFamilies:"العائلات اللغوية",doxaRegions:"مناطق Doxa",affinityBlocs:"كتل القرابة",gospelResources:"موارد الإنجيل"},header:{collapsed:"وسيلة الإيضاح",peopleGroupFallback:"مجموعة الشعب",default:"مفتاح الخريطة"},prayer:{needsPrayer:"يحتاج إلى صلاة",hasPrayer:"لديه صلاة",fullPrayerCoverage:"تغطية صلاة كاملة"},progress:{title:"التقدم",covered:"{covered} من {total} مجموعة شعبية مغطاة بالصلاة · {pct}%",short:"{covered} من {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"يحتاج إلى انخراط",hasEngagement:"لديه انخراط"},adoption:{needsAdoption:"يحتاج إلى تبني",hasAdoption:"لديه تبني"},columns:{upgs:"UUPGs",population:"السكان",name:"الاسم"},footer:{total:"الإجمالي"},sortByUpgs:"ترتيب حسب UUPG",sortByPop:"ترتيب حسب السكان",colLabel:{religion:"ديانات UUPG",prayer:"حالة الصلاة",engagement:"حالة المشاركة",adoption:"حالة التبني",status:"الحالة"},titleBar:{legend:"مفتاح الخريطة",peopleGroups:"الشعوب",wagfRegions:"مناطق WAGF",languages:"اللغات"}},Sh={menuComingSoon:"القائمة قادمة قريباً"},Eh={clusterByRegion:"حسب منطقة Doxa",clusterByLanguageFamily:"حسب العائلة اللغوية",clusterByGospelResource:"حسب مورد الإنجيل"},Lh={country:{wagfRegion:"منطقة WAGF",wagfBlock:"كتلة WAGF",country:"الدولة",uupgCount:"عدد UUPG"}},Ch={header:"دورة الصلاة الحالية",lap:"الدورة",upgs:"UUPGs",separator:" من "},Ph={"%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":"مجموعات بشرية مُنخرِطة","View country posters":"عرض ملصقات الدولة","Hide country posters":"إخفاء ملصقات الدولة","No poster has been generated for this country yet.":"لم يُنشأ أي ملصق لهذه الدولة بعد."},Th={placeholder:"شعب، مكان، لغة، ديانة",labels:{people:"الشعب:",place:"المكان:",language:"اللغة:",religion:"الديانة:"},kinds:{people:"الشعب + الدولة",peopleGroup:"الشعب",bloc:"كتلة التقارب",cluster:"مجموعة شعوب",country:"الدولة",region:"المنطقة",family:"عائلة اللغة",languageKind:"اللغة",dialect:"اللهجة",religionKind:"الدين"},sections:{within:"ضمن {selection}",allData:"كل بيانات DOXA"}},Mh={prayer:"الصلاة",adoption:"التبني",engagement:"المشاركة","affinity-blocks":"الشعوب",regions:"المناطق",countries:"الدول","language-families":"اللغات",religion:"الأديان",family:"عائلة اللغة",language:"اللغة",dialect:"اللهجة/التنوع",bloc:"كتلة التقارب",cluster:"المجموعة",group:"الشعب",pgic:"الشعب في الدولة",region:"منطقة WAGF",block:"كتلة WAGF",country:"الدولة"},Nh={backToLegend:"Zurück zur Legende",closeDetailView:"Detailansicht schließen"},Rh={prayForThem:"Für sie beten",adoptThem:"Sie adoptieren",moreInfo:"Mehr Infos",zoomIn:"Vergrößern",zoomOut:"Verkleinern",switchToLightMode:"Zum hellen Modus wechseln",switchToDarkMode:"Zum dunklen Modus wechseln",resetView:"Ansicht zurücksetzen",toggleFullscreen:"Vollbild umschalten",aboutThisMap:"Über diese Karte",closeMenu:"Menü schließen",reloadMap:"Karte neu laden",showClusters:"Cluster anzeigen",clusterSettings:"Cluster-Einstellungen",startAutoFly:"Auto-Flug starten",stopFlight:"Flug stoppen",speedLabel:"Geschwindigkeit:",speedOption:{slow:"Langsam",normal:"Normal",fast:"Schnell"},shareEmbed:"Teilen und einbetten",posterMap:"Posterkarte",prayerList:"Gebetsliste",cardDeck:"Kartenset",printOptions:"Druckoptionen",showOnMap:"Auf der Karte zeigen",close:"Schließen",showOnMapAria:"{label} auf der Karte zeigen",share:"Teilen",shareSteps:["Binde diese Karte auf deiner Website ein","Erstelle eine Liste der Websites in deiner Stadt","Zeige ihnen, wie sie sie ebenfalls einbinden","Zeige ihnen, wie sie es anderen beibringen","Lasst uns Karten überall vermehren – für Jesus!"]},Ih={labels:{country:"Land:",population:"Bevölkerung:",language:"Sprache:",religion:"Religion:",languageFamily:"Sprachfamilie:",peopleCommitted:"Zum Gebet verpflichtet:"},messages:{noDescription:"Keine Beschreibung verfügbar."}},Oh={title:{prayer:"Gebetsfortschritt",engagement:"Engagement-Fortschritt",adoption:"Adoptionsfortschritt",languageFamilies:"Sprachfamilien",doxaRegions:"Doxa-Regionen",affinityBlocs:"Affinitätsblöcke",gospelResources:"Evangeliumsressourcen"},header:{collapsed:"Legende",peopleGroupFallback:"Volksgruppe",default:"Legende"},prayer:{needsPrayer:"Braucht Gebet",hasPrayer:"Hat Gebet",fullPrayerCoverage:"Vollständige Gebetsabdeckung"},progress:{title:"Fortschritt",covered:"{covered} von {total} Volksgruppen im Gebet abgedeckt · {pct}%",short:"{covered} von {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Braucht Engagement",hasEngagement:"Hat Engagement"},adoption:{needsAdoption:"Braucht Adoption",hasAdoption:"Hat Adoption"},columns:{upgs:"UUPGs",population:"Bevölkerung",name:"Name"},footer:{total:"Gesamt"},sortByUpgs:"Nach UUPGs sortieren",sortByPop:"Nach Bevölkerung sortieren",colLabel:{religion:"UUPG-Religionen",prayer:"Gebetsstatus",engagement:"Engagement-Status",adoption:"Adoptionsstatus",status:"Status"},titleBar:{legend:"Legende",peopleGroups:"Völker",wagfRegions:"WAGF-Regionen",languages:"Sprachen"}},Fh={menuComingSoon:"Menü folgt in Kürze"},Dh={clusterByRegion:"Nach Doxa-Region",clusterByLanguageFamily:"Nach Sprachfamilie",clusterByGospelResource:"Nach Evangeliumsressource"},Bh={country:{wagfRegion:"WAGF-Region",wagfBlock:"WAGF-Block",country:"Land",uupgCount:"Anzahl UUPG"}},Gh={header:"AKTUELLE GEBETSRUNDE",lap:"Runde",upgs:"UUPGs",separator:" von "},jh={"%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","View country posters":"Länderposter ansehen","Hide country posters":"Länderposter ausblenden","No poster has been generated for this country yet.":"Für dieses Land wurde noch kein Poster erstellt."},Uh={placeholder:"Volk, Ort, Sprache, Religion",labels:{people:"Volk:",place:"Ort:",language:"Sprache:",religion:"Religion:"},sections:{within:"Innerhalb {selection}",allData:"Alle DOXA-Daten"},kinds:{people:"Volk + Land",peopleGroup:"Volk",bloc:"Affinitätsblock",cluster:"Völkercluster",country:"Land",region:"Region",family:"Sprachfamilie",languageKind:"Sprache",dialect:"Dialekt",religionKind:"Religion"}},Kh={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"},zh={backToLegend:"Back to Legend",closeDetailView:"Close detail view"},Hh={prayForThem:"Pray for them",adoptThem:"Adopt",moreInfo:"More info",zoomIn:"Zoom in",zoomOut:"Zoom out",switchToLightMode:"Switch to light mode",switchToDarkMode:"Switch to dark mode",resetView:"Reset view",toggleFullscreen:"Toggle fullscreen",aboutThisMap:"About this map",closeMenu:"Close menu",reloadMap:"Reload Map",showClusters:"Show Clusters",clusterSettings:"Cluster Settings",startAutoFly:"Start Auto Fly",stopFlight:"Stop Flight",speedLabel:"Speed:",speedOption:{slow:"Slow",normal:"Normal",fast:"Fast"},shareEmbed:"Share & embed",shareSteps:["Embed this map on your site","Create a list of the websites in your city","Train them to embed it too","Train them to train others to embed it too","Multiply maps everywhere for Jesus!"],share:"Share",posterMap:"Poster Map",prayerList:"Prayer List",cardDeck:"Card Deck",printOptions:"Print Options",showOnMap:"Show on map",close:"Close",showOnMapAria:"Show {label} on the map"},Vh={labels:{country:"Country:",population:"Population:",language:"Language:",religion:"Religion:",languageFamily:"Language Family:",peopleCommitted:"Committed to pray:"},messages:{noDescription:"No description available."}},Wh={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"}},Yh={menuComingSoon:"Menu coming soon"},qh={clusterByRegion:"By Doxa Region",clusterByLanguageFamily:"By Language Family",clusterByGospelResource:"By Gospel Resource"},Jh={country:{wagfRegion:"WAGF Region",wagfBlock:"WAGF Bloc",country:"Country",uupgCount:"UUPG Count"}},Xh={header:"CURRENT PRAYER LAP",lap:"Lap",upgs:"UUPGs",separator:" of "},Zh={"%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","View country posters":"View country posters","Hide country posters":"Hide country posters","No poster has been generated for this country yet.":"No poster has been generated for this country yet."},Qh={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"}},em={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"},tm={backToLegend:"Volver a la leyenda",closeDetailView:"Cerrar vista de detalle"},om={prayForThem:"Ora por ellos",adoptThem:"Adóptalos",moreInfo:"Más información",zoomIn:"Acercar",zoomOut:"Alejar",switchToLightMode:"Cambiar a modo claro",switchToDarkMode:"Cambiar a modo oscuro",resetView:"Restablecer vista",toggleFullscreen:"Alternar pantalla completa",aboutThisMap:"Acerca de este mapa",closeMenu:"Cerrar menú",reloadMap:"Recargar mapa",showClusters:"Mostrar clústeres",clusterSettings:"Ajustes de clústeres",startAutoFly:"Iniciar vuelo automático",stopFlight:"Detener vuelo",speedLabel:"Velocidad:",speedOption:{slow:"Lenta",normal:"Normal",fast:"Rápida"},shareEmbed:"Compartir e incrustar",posterMap:"Mapa del cartel",prayerList:"Lista de oración",cardDeck:"Baraja de tarjetas",printOptions:"Opciones de impresión",showOnMap:"Ver en el mapa",close:"Cerrar",showOnMapAria:"Ver {label} en el mapa",share:"Compartir",shareSteps:["Inserta este mapa en tu sitio","Haz una lista de los sitios web de tu ciudad","Enséñales a insertarlo también","Enséñales a enseñar a otros a insertarlo","¡Multiplica los mapas por todas partes para Jesús!"]},nm={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."}},am={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",default:"Leyenda"},prayer:{needsPrayer:"Necesita oración",hasPrayer:"Tiene oración",fullPrayerCoverage:"Cobertura de oración completa"},progress:{title:"Progreso",covered:"{covered} de {total} grupos de personas cubiertos en oración · {pct}%",short:"{covered} de {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Necesita implicación",hasEngagement:"Tiene implicación"},adoption:{needsAdoption:"Necesita adopción",hasAdoption:"Tiene adopción"},columns:{upgs:"UUPGs",population:"Población",name:"Nombre"},footer:{total:"Total"},sortByUpgs:"Ordenar por UUPG",sortByPop:"Ordenar por población",colLabel:{religion:"Religiones UUPG",prayer:"Estado de oración",engagement:"Estado de compromiso",adoption:"Estado de adopción",status:"Estado"},titleBar:{legend:"Leyenda",peopleGroups:"Pueblos",wagfRegions:"Regiones WAGF",languages:"Idiomas"}},rm={menuComingSoon:"Menú próximamente"},sm={clusterByRegion:"Por región Doxa",clusterByLanguageFamily:"Por familia lingüística",clusterByGospelResource:"Por recurso del Evangelio"},im={country:{wagfRegion:"Región WAGF",wagfBlock:"Bloque WAGF",country:"País",uupgCount:"Número de UUPG"}},lm={header:"VUELTA DE ORACIÓN ACTUAL",lap:"Vuelta",upgs:"UUPGs",separator:" de "},cm={"%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","View country posters":"Ver los carteles del país","Hide country posters":"Ocultar los carteles del país","No poster has been generated for this country yet.":"Todavía no se ha generado ningún cartel para este país."},um={placeholder:"Pueblo, lugar, idioma, religión",labels:{people:"Pueblo:",place:"Lugar:",language:"Idioma:",religion:"Religión:"},kinds:{people:"Pueblo + país",peopleGroup:"Pueblo",bloc:"Bloque de afinidad",cluster:"Clúster de pueblos",country:"País",region:"Región",family:"Familia lingüística",languageKind:"Idioma",dialect:"Dialecto",religionKind:"Religión"},sections:{within:"Dentro de {selection}",allData:"Todos los datos DOXA"}},dm={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"},pm={backToLegend:"Retour à la légende",closeDetailView:"Fermer la vue détaillée"},gm={prayForThem:"Priez pour eux",adoptThem:"Adoptez-les",moreInfo:"Plus d'infos",zoomIn:"Zoom avant",zoomOut:"Zoom arrière",switchToLightMode:"Passer au mode clair",switchToDarkMode:"Passer au mode sombre",resetView:"Réinitialiser la vue",toggleFullscreen:"Basculer en plein écran",aboutThisMap:"À propos de cette carte",closeMenu:"Fermer le menu",reloadMap:"Recharger la carte",showClusters:"Afficher les clusters",clusterSettings:"Paramètres des clusters",startAutoFly:"Démarrer le vol auto",stopFlight:"Arrêter le vol",speedLabel:"Vitesse :",speedOption:{slow:"Lente",normal:"Normale",fast:"Rapide"},shareEmbed:"Partager et intégrer",posterMap:"Carte de l'affiche",prayerList:"Liste de prière",cardDeck:"Jeu de cartes",printOptions:"Options d'impression",showOnMap:"Voir sur la carte",close:"Fermer",showOnMapAria:"Voir {label} sur la carte",share:"Partager",shareSteps:["Intégrez cette carte à votre site","Dressez la liste des sites web de votre ville","Apprenez-leur à l’intégrer aussi","Apprenez-leur à former d’autres personnes à l’intégrer","Multiplions les cartes partout pour Jésus !"]},fm={labels:{country:"Pays :",population:"Population :",language:"Langue :",religion:"Religion :",languageFamily:"Famille de langues :",peopleCommitted:"Engagés à prier :"},messages:{noDescription:"Aucune description disponible."}},hm={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",default:"Légende"},prayer:{needsPrayer:"Besoin de prière",hasPrayer:"Prière en cours",fullPrayerCoverage:"Couverture de prière complète"},progress:{title:"Progression",covered:"{covered} sur {total} groupes de personnes couverts par la prière · {pct}%",short:"{covered} sur {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Besoin d'engagement",hasEngagement:"Engagement en cours"},adoption:{needsAdoption:"Besoin d'adoption",hasAdoption:"Adoption en cours"},columns:{upgs:"UUPGs",population:"Population",name:"Nom"},footer:{total:"Total"},sortByUpgs:"Trier par UUPG",sortByPop:"Trier par population",colLabel:{religion:"Religions UUPG",prayer:"Statut de prière",engagement:"Statut d'engagement",adoption:"Statut d'adoption",status:"Statut"},titleBar:{legend:"Légende",peopleGroups:"Peuples",wagfRegions:"Régions WAGF",languages:"Langues"}},mm={menuComingSoon:"Menu bientôt disponible"},bm={clusterByRegion:"Par région Doxa",clusterByLanguageFamily:"Par famille de langues",clusterByGospelResource:"Par ressource de l'Évangile"},ym={country:{wagfRegion:"Région WAGF",wagfBlock:"Bloc WAGF",country:"Pays",uupgCount:"Nombre d'UUPG"}},_m={header:"TOUR DE PRIÈRE ACTUEL",lap:"Tour",upgs:"UUPGs",separator:" sur "},vm={"%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","View country posters":"Voir les affiches du pays","Hide country posters":"Masquer les affiches du pays","No poster has been generated for this country yet.":"Aucune affiche n'a encore été générée pour ce pays."},km={placeholder:"Peuple, lieu, langue, religion",labels:{people:"Peuple :",place:"Lieu :",language:"Langue :",religion:"Religion :"},kinds:{people:"Peuple + pays",peopleGroup:"Peuple",bloc:"Bloc d'affinité",cluster:"Grappe de peuples",country:"Pays",region:"Région",family:"Famille linguistique",languageKind:"Langue",dialect:"Dialecte",religionKind:"Religion"},sections:{within:"Dans {selection}",allData:"Toutes les données DOXA"}},wm={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"},xm={backToLegend:"लेजेंड पर वापस जाएं",closeDetailView:"विवरण दृश्य बंद करें"},$m={prayForThem:"उनके लिए प्रार्थना करें",adoptThem:"उन्हें गोद लें",moreInfo:"अधिक जानकारी",zoomIn:"ज़ूम इन",zoomOut:"ज़ूम आउट",switchToLightMode:"लाइट मोड पर जाएं",switchToDarkMode:"डार्क मोड पर जाएं",resetView:"दृश्य रीसेट करें",toggleFullscreen:"फ़ुलस्क्रीन टॉगल करें",aboutThisMap:"इस मानचित्र के बारे में",closeMenu:"मेनू बंद करें",reloadMap:"मानचित्र पुनः लोड करें",showClusters:"क्लस्टर दिखाएं",clusterSettings:"क्लस्टर सेटिंग्स",startAutoFly:"ऑटो फ्लाई शुरू करें",stopFlight:"उड़ान रोकें",speedLabel:"गति:",speedOption:{slow:"धीमी",normal:"सामान्य",fast:"तेज़"},shareEmbed:"साझा करें और एम्बेड करें",posterMap:"पोस्टर मानचित्र",prayerList:"प्रार्थना सूची",cardDeck:"कार्ड सेट",printOptions:"छपाई विकल्प",showOnMap:"मानचित्र पर देखें",close:"बंद करें",showOnMapAria:"{label} को मानचित्र पर देखें",share:"साझा करें",shareSteps:["इस मानचित्र को अपनी वेबसाइट पर लगाएँ","अपने शहर की वेबसाइटों की सूची बनाएँ","उन्हें भी इसे लगाना सिखाएँ","उन्हें सिखाएँ कि वे औरों को लगाना सिखाएँ","यीशु के लिए हर जगह मानचित्र बढ़ाएँ!"]},Am={labels:{country:"देश:",population:"जनसंख्या:",language:"भाषा:",religion:"धर्म:",languageFamily:"भाषा परिवार:",peopleCommitted:"प्रार्थना के लिए प्रतिबद्ध:"},messages:{noDescription:"कोई विवरण उपलब्ध नहीं है।"}},Sm={title:{prayer:"प्रार्थना प्रगति",engagement:"सहभागिता प्रगति",adoption:"गोद लेने की प्रगति",languageFamilies:"भाषा परिवार",doxaRegions:"Doxa क्षेत्र",affinityBlocs:"समानता समूह",gospelResources:"सुसमाचार संसाधन"},header:{collapsed:"किंवदंती",peopleGroupFallback:"जनजाति समूह",default:"सूचकांक"},prayer:{needsPrayer:"प्रार्थना चाहिए",hasPrayer:"प्रार्थना है",fullPrayerCoverage:"पूर्ण प्रार्थना कवरेज"},progress:{title:"प्रगति",covered:"{total} में से {covered} जनजाति समूह प्रार्थना में कवर · {pct}%",short:"{total} में से {covered} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"सहभागिता चाहिए",hasEngagement:"सहभागिता है"},adoption:{needsAdoption:"गोद लेना चाहिए",hasAdoption:"गोद लिया गया"},columns:{upgs:"UUPGs",population:"जनसंख्या",name:"नाम"},footer:{total:"कुल"},sortByUpgs:"UUPG के अनुसार क्रमबद्ध करें",sortByPop:"जनसंख्या के अनुसार क्रमबद्ध करें",colLabel:{religion:"UUPG धर्म",prayer:"प्रार्थना स्थिति",engagement:"सहभागिता स्थिति",adoption:"गोद लेने की स्थिति",status:"स्थिति"},titleBar:{legend:"सूचकांक",peopleGroups:"जनसमूह",wagfRegions:"WAGF क्षेत्र",languages:"भाषाएँ"}},Em={menuComingSoon:"मेनू शीघ्र आ रहा है"},Lm={clusterByRegion:"Doxa क्षेत्र के अनुसार",clusterByLanguageFamily:"भाषा परिवार के अनुसार",clusterByGospelResource:"सुसमाचार संसाधन के अनुसार"},Cm={country:{wagfRegion:"WAGF क्षेत्र",wagfBlock:"WAGF ब्लॉक",country:"देश",uupgCount:"UUPG संख्या"}},Pm={header:"वर्तमान प्रार्थना चक्र",lap:"चक्र",upgs:"UUPGs",separator:" में से "},Tm={"%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":"प्रवेशित लोगों के समूह","View country posters":"देश के पोस्टर देखें","Hide country posters":"देश के पोस्टर छिपाएँ","No poster has been generated for this country yet.":"इस देश के लिए अभी तक कोई पोस्टर नहीं बना है।"},Mm={placeholder:"लोग, स्थान, भाषा, धर्म",labels:{people:"लोग:",place:"स्थान:",language:"भाषा:",religion:"धर्म:"},sections:{within:"{selection} के भीतर",allData:"सभी DOXA डेटा"},kinds:{people:"जनसमूह + देश",peopleGroup:"जनसमूह",bloc:"समानता समूह",cluster:"जनसमूह क्लस्टर",country:"देश",region:"क्षेत्र",family:"भाषा परिवार",languageKind:"भाषा",dialect:"बोली",religionKind:"धर्म"}},Nm={prayer:"प्रार्थना",adoption:"गोद लेना",engagement:"सहभागिता","affinity-blocks":"जनसमूह",regions:"क्षेत्र",countries:"देश","language-families":"भाषाएँ",religion:"धर्म",family:"भाषा परिवार",language:"भाषा",dialect:"बोली/रूप",bloc:"समानता समूह",cluster:"क्लस्टर",group:"जनसमूह",pgic:"देश में जनसमूह",region:"WAGF क्षेत्र",block:"WAGF ब्लॉक",country:"देश"},Rm={backToLegend:"Torna alla legenda",closeDetailView:"Chiudi vista dettaglio"},Im={prayForThem:"Prega per loro",adoptThem:"Adottali",moreInfo:"Più informazioni",zoomIn:"Ingrandisci",zoomOut:"Riduci",switchToLightMode:"Passa alla modalità chiara",switchToDarkMode:"Passa alla modalità scura",resetView:"Reimposta vista",toggleFullscreen:"Attiva/disattiva schermo intero",aboutThisMap:"Informazioni su questa mappa",closeMenu:"Chiudi menu",reloadMap:"Ricarica mappa",showClusters:"Mostra cluster",clusterSettings:"Impostazioni cluster",startAutoFly:"Avvia volo automatico",stopFlight:"Ferma volo",speedLabel:"Velocità:",speedOption:{slow:"Lenta",normal:"Normale",fast:"Veloce"},shareEmbed:"Condividi e incorpora",posterMap:"Mappa del poster",prayerList:"Lista di preghiera",cardDeck:"Mazzo di carte",printOptions:"Opzioni di stampa",showOnMap:"Mostra sulla mappa",close:"Chiudi",showOnMapAria:"Mostra {label} sulla mappa",share:"Condividi",shareSteps:["Incorpora questa mappa nel tuo sito","Fai un elenco dei siti web della tua città","Insegna loro a incorporarla a loro volta","Insegna loro a formare altri a incorporarla","Moltiplichiamo le mappe ovunque per Gesù!"]},Om={labels:{country:"Paese:",population:"Popolazione:",language:"Lingua:",religion:"Religione:",languageFamily:"Famiglia linguistica:",peopleCommitted:"Impegnati a pregare:"},messages:{noDescription:"Nessuna descrizione disponibile."}},Fm={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",default:"Legenda"},prayer:{needsPrayer:"Necessita preghiera",hasPrayer:"Ha preghiera",fullPrayerCoverage:"Copertura di preghiera completa"},progress:{title:"Avanzamento",covered:"{covered} di {total} gruppi di persone coperti dalla preghiera · {pct}%",short:"{covered} di {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Necessita impegno",hasEngagement:"Ha impegno"},adoption:{needsAdoption:"Necessita adozione",hasAdoption:"Ha adozione"},columns:{upgs:"UUPGs",population:"Popolazione",name:"Nome"},footer:{total:"Totale"},sortByUpgs:"Ordina per UUPG",sortByPop:"Ordina per popolazione",colLabel:{religion:"Religioni UUPG",prayer:"Stato della preghiera",engagement:"Stato dell'impegno",adoption:"Stato dell'adozione",status:"Stato"},titleBar:{legend:"Legenda",peopleGroups:"Popoli",wagfRegions:"Regioni WAGF",languages:"Lingue"}},Dm={menuComingSoon:"Menu in arrivo"},Bm={clusterByRegion:"Per regione Doxa",clusterByLanguageFamily:"Per famiglia linguistica",clusterByGospelResource:"Per risorsa del Vangelo"},Gm={country:{wagfRegion:"Regione WAGF",wagfBlock:"Blocco WAGF",country:"Paese",uupgCount:"Numero di UUPG"}},jm={header:"GIRO DI PREGHIERA ATTUALE",lap:"Giro",upgs:"UUPGs",separator:" di "},Um={placeholder:"Popolo, luogo, lingua, religione",labels:{people:"Popolo:",place:"Luogo:",language:"Lingua:",religion:"Religione:"},sections:{within:"In {selection}",allData:"Tutti i dati DOXA"},kinds:{people:"Popolo + paese",peopleGroup:"Popolo",bloc:"Blocco di affinità",cluster:"Cluster di popoli",country:"Paese",region:"Regione",family:"Famiglia linguistica",languageKind:"Lingua",dialect:"Dialetto",religionKind:"Religione"}},Km={prayer:"Preghiera",adoption:"Adozione",engagement:"Impegno","affinity-blocks":"Popoli",regions:"Regioni",countries:"Paesi","language-families":"Lingue",religion:"Religioni",family:"Famiglia ling.",language:"Lingua",dialect:"Dialetto/Variante",bloc:"Blocco di affinità",cluster:"Cluster",group:"Popolo",pgic:"Popolo nel paese",region:"Regione WAGF",block:"Blocco WAGF",country:"Paese"},zm={backToLegend:"Voltar à legenda",closeDetailView:"Fechar vista de detalhe"},Hm={prayForThem:"Ore por eles",adoptThem:"Adote-os",moreInfo:"Mais informações",zoomIn:"Ampliar",zoomOut:"Reduzir",switchToLightMode:"Mudar para modo claro",switchToDarkMode:"Mudar para modo escuro",resetView:"Repor vista",toggleFullscreen:"Alternar ecrã inteiro",aboutThisMap:"Sobre este mapa",closeMenu:"Fechar menu",reloadMap:"Recarregar mapa",showClusters:"Mostrar clusters",clusterSettings:"Definições de clusters",startAutoFly:"Iniciar voo automático",stopFlight:"Parar voo",speedLabel:"Velocidade:",speedOption:{slow:"Lenta",normal:"Normal",fast:"Rápida"},shareEmbed:"Partilhar e incorporar",posterMap:"Mapa do cartaz",prayerList:"Lista de oração",cardDeck:"Baralho de cartões",printOptions:"Opções de impressão",showOnMap:"Ver no mapa",close:"Fechar",showOnMapAria:"Ver {label} no mapa",share:"Partilhar",shareSteps:["Incorpore este mapa no seu site","Faça uma lista dos sites da sua cidade","Ensine-os a incorporá-lo também","Ensine-os a ensinar outros a incorporá-lo","Multipliquemos mapas por toda a parte para Jesus!"]},Vm={labels:{country:"País:",population:"População:",language:"Língua:",religion:"Religião:",languageFamily:"Família linguística:",peopleCommitted:"Comprometidos a orar:"},messages:{noDescription:"Sem descrição disponível."}},Wm={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",default:"Legenda"},prayer:{needsPrayer:"Precisa de oração",hasPrayer:"Tem oração",fullPrayerCoverage:"Cobertura de oração completa"},progress:{title:"Progresso",covered:"{covered} de {total} grupos de pessoas cobertos em oração · {pct}%",short:"{covered} de {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Precisa de envolvimento",hasEngagement:"Tem envolvimento"},adoption:{needsAdoption:"Precisa de adoção",hasAdoption:"Tem adoção"},columns:{upgs:"UUPGs",population:"População",name:"Nome"},footer:{total:"Total"},sortByUpgs:"Ordenar por UUPG",sortByPop:"Ordenar por população",colLabel:{religion:"Religiões UUPG",prayer:"Status de oração",engagement:"Status de engajamento",adoption:"Status de adoção",status:"Status"},titleBar:{legend:"Legenda",peopleGroups:"Povos",wagfRegions:"Regiões WAGF",languages:"Idiomas"}},Ym={menuComingSoon:"Menu em breve"},qm={clusterByRegion:"Por região Doxa",clusterByLanguageFamily:"Por família linguística",clusterByGospelResource:"Por recurso do Evangelho"},Jm={country:{wagfRegion:"Região WAGF",wagfBlock:"Bloco WAGF",country:"País",uupgCount:"Número de UUPG"}},Xm={header:"VOLTA DE ORAÇÃO ATUAL",lap:"Volta",upgs:"UUPGs",separator:" de "},Zm={"%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","View country posters":"Ver os cartazes do país","Hide country posters":"Ocultar os cartazes do país","No poster has been generated for this country yet.":"Ainda não foi gerado nenhum cartaz para este país."},Qm={placeholder:"Povo, local, língua, religião",labels:{people:"Povo:",place:"Local:",language:"Língua:",religion:"Religião:"},kinds:{people:"Povo + país",peopleGroup:"Povo",bloc:"Bloco de afinidade",cluster:"Agrupamento de povos",country:"País",region:"Região",family:"Família linguística",languageKind:"Idioma",dialect:"Dialeto",religionKind:"Religião"},sections:{within:"Dentro de {selection}",allData:"Todos os dados DOXA"}},eb={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"},tb={backToLegend:"Înapoi la legendă",closeDetailView:"Închide vizualizarea detaliată"},ob={prayForThem:"Roagă-te pentru ei",adoptThem:"Adoptă-i",moreInfo:"Mai multe informații",zoomIn:"Mărește",zoomOut:"Micșorează",switchToLightMode:"Comută la modul luminos",switchToDarkMode:"Comută la modul întunecat",resetView:"Resetează vizualizarea",toggleFullscreen:"Comută ecran complet",aboutThisMap:"Despre această hartă",closeMenu:"Închide meniul",reloadMap:"Reîncarcă harta",showClusters:"Arată clusterele",clusterSettings:"Setări clustere",startAutoFly:"Pornește zborul automat",stopFlight:"Oprește zborul",speedLabel:"Viteză:",speedOption:{slow:"Lent",normal:"Normal",fast:"Rapid"},shareEmbed:"Partajează și încorporează",posterMap:"Harta afișului",prayerList:"Listă de rugăciune",cardDeck:"Pachet de cartonașe",printOptions:"Opțiuni de tipărire",showOnMap:"Arată pe hartă",close:"Închide",showOnMapAria:"Arată {label} pe hartă",share:"Distribuie",shareSteps:["Încorporează această hartă pe site-ul tău","Fă o listă cu site-urile din orașul tău","Învață-i să o încorporeze și ei","Învață-i să îi formeze pe alții să o încorporeze","Să multiplicăm hărți pretutindeni pentru Isus!"]},nb={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ă."}},ab={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",default:"Legendă"},prayer:{needsPrayer:"Necesită rugăciune",hasPrayer:"Are rugăciune",fullPrayerCoverage:"Acoperire completă de rugăciune"},progress:{title:"Progres",covered:"{covered} din {total} grupuri de popoare acoperite în rugăciune · {pct}%",short:"{covered} din {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Necesită implicare",hasEngagement:"Are implicare"},adoption:{needsAdoption:"Necesită adopție",hasAdoption:"Are adopție"},columns:{upgs:"UUPGs",population:"Populație",name:"Nume"},footer:{total:"Total"},sortByUpgs:"Sortează după UUPG",sortByPop:"Sortează după populație",colLabel:{religion:"Religii UUPG",prayer:"Starea rugăciunii",engagement:"Starea implicării",adoption:"Starea adopției",status:"Stare"},titleBar:{legend:"Legendă",peopleGroups:"Popoare",wagfRegions:"Regiuni WAGF",languages:"Limbi"}},rb={menuComingSoon:"Meniu în curând"},sb={clusterByRegion:"După regiune Doxa",clusterByLanguageFamily:"După familia de limbi",clusterByGospelResource:"După resursa Evangheliei"},ib={country:{wagfRegion:"Regiunea WAGF",wagfBlock:"Blocul WAGF",country:"Țară",uupgCount:"Număr de UUPG"}},lb={header:"TURUL DE RUGĂCIUNE CURENT",lap:"Tur",upgs:"UUPGs",separator:" din "},cb={placeholder:"Popor, loc, limbă, religie",labels:{people:"Popor:",place:"Loc:",language:"Limbă:",religion:"Religie:"},sections:{within:"În {selection}",allData:"Toate datele DOXA"},kinds:{people:"Popor + țară",peopleGroup:"Popor",bloc:"Bloc de afinitate",cluster:"Grup de popoare",country:"Țară",region:"Regiune",family:"Familie de limbi",languageKind:"Limbă",dialect:"Dialect",religionKind:"Religie"}},ub={prayer:"Rugăciune",adoption:"Adopție",engagement:"Implicare","affinity-blocks":"Popoare",regions:"Regiuni",countries:"Țări","language-families":"Limbi",religion:"Religii",family:"Familie de limbi",language:"Limbă",dialect:"Dialect/Variantă",bloc:"Bloc de afinitate",cluster:"Grup",group:"Popor",pgic:"Popor în țară",region:"Regiune WAGF",block:"Bloc WAGF",country:"Țară"},db={backToLegend:"Назад к легенде",closeDetailView:"Закрыть подробный вид"},pb={prayForThem:"Молитесь о них",adoptThem:"Усыновите их",moreInfo:"Подробнее",zoomIn:"Приблизить",zoomOut:"Отдалить",switchToLightMode:"Переключить на светлый режим",switchToDarkMode:"Переключить на тёмный режим",resetView:"Сбросить вид",toggleFullscreen:"Полноэкранный режим",aboutThisMap:"Об этой карте",closeMenu:"Закрыть меню",reloadMap:"Перезагрузить карту",showClusters:"Показать кластеры",clusterSettings:"Настройки кластеров",startAutoFly:"Начать авто-полёт",stopFlight:"Остановить полёт",speedLabel:"Скорость:",speedOption:{slow:"Медленно",normal:"Нормально",fast:"Быстро"},shareEmbed:"Поделиться и встроить",posterMap:"Карта плаката",prayerList:"Молитвенный список",cardDeck:"Набор карточек",printOptions:"Параметры печати",showOnMap:"Показать на карте",close:"Закрыть",showOnMapAria:"Показать {label} на карте",share:"Поделиться",shareSteps:["Разместите эту карту на своём сайте","Составьте список сайтов вашего города","Научите их тоже размещать её","Научите их учить других размещать её","Умножим карты повсюду для Иисуса!"]},gb={labels:{country:"Страна:",population:"Население:",language:"Язык:",religion:"Религия:",languageFamily:"Языковая семья:",peopleCommitted:"Обязались молиться:"},messages:{noDescription:"Описание недоступно."}},fb={title:{prayer:"Прогресс молитвы",engagement:"Прогресс вовлечённости",adoption:"Прогресс усыновления",languageFamilies:"Языковые семьи",doxaRegions:"Регионы Doxa",affinityBlocs:"Блоки родства",gospelResources:"Евангельские ресурсы"},header:{collapsed:"Условные обозначения",peopleGroupFallback:"Народная группа",default:"Легенда"},prayer:{needsPrayer:"Нуждается в молитве",hasPrayer:"Есть молитва",fullPrayerCoverage:"Полное молитвенное покрытие"},progress:{title:"Прогресс",covered:"{covered} из {total} народных групп охвачены молитвой · {pct}%",short:"{covered} из {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Нуждается в вовлечённости",hasEngagement:"Есть вовлечённость"},adoption:{needsAdoption:"Нуждается в усыновлении",hasAdoption:"Есть усыновление"},columns:{upgs:"UUPGs",population:"Население",name:"Название"},footer:{total:"Всего"},sortByUpgs:"Сортировать по UUPG",sortByPop:"Сортировать по населению",colLabel:{religion:"Религии UUPG",prayer:"Статус молитвы",engagement:"Статус вовлечённости",adoption:"Статус усыновления",status:"Статус"},titleBar:{legend:"Легенда",peopleGroups:"Народы",wagfRegions:"Регионы WAGF",languages:"Языки"}},hb={menuComingSoon:"Меню скоро появится"},mb={clusterByRegion:"По региону Doxa",clusterByLanguageFamily:"По языковой семье",clusterByGospelResource:"По евангельскому ресурсу"},bb={country:{wagfRegion:"Регион WAGF",wagfBlock:"Блок WAGF",country:"Страна",uupgCount:"Число UUPG"}},yb={header:"ТЕКУЩИЙ КРУГ МОЛИТВЫ",lap:"Круг",upgs:"UUPGs",separator:" из "},_b={"%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":"вовлечённые группы людей","View country posters":"Показать плакаты страны","Hide country posters":"Скрыть плакаты страны","No poster has been generated for this country yet.":"Для этой страны плакат ещё не создан."},vb={placeholder:"Народ, место, язык, религия",labels:{people:"Народ:",place:"Место:",language:"Язык:",religion:"Религия:"},kinds:{people:"Народ + страна",peopleGroup:"Народ",bloc:"Блок родства",cluster:"Кластер народов",country:"Страна",region:"Регион",family:"Языковая семья",languageKind:"Язык",dialect:"Диалект",religionKind:"Религия"},sections:{within:"В пределах {selection}",allData:"Все данные DOXA"}},kb={prayer:"Молитва",adoption:"Усыновление",engagement:"Вовлечённость","affinity-blocks":"Народы",regions:"Регионы",countries:"Страны","language-families":"Языки",religion:"Религии",family:"Языковая семья",language:"Язык",dialect:"Диалект/вариант",bloc:"Блок родства",cluster:"Кластер",group:"Народ",pgic:"Народ в стране",region:"Регион WAGF",block:"Блок WAGF",country:"Страна"},wb={backToLegend:"返回图例",closeDetailView:"关闭详情视图"},xb={prayForThem:"为他们祷告",adoptThem:"认领他们",moreInfo:"更多信息",zoomIn:"放大",zoomOut:"缩小",switchToLightMode:"切换至浅色模式",switchToDarkMode:"切换至深色模式",resetView:"重置视图",toggleFullscreen:"切换全屏",aboutThisMap:"关于此地图",closeMenu:"关闭菜单",reloadMap:"重新加载地图",showClusters:"显示聚类",clusterSettings:"聚类设置",startAutoFly:"开始自动飞行",stopFlight:"停止飞行",speedLabel:"速度:",speedOption:{slow:"慢",normal:"正常",fast:"快"},shareEmbed:"分享与嵌入",posterMap:"海报地图",prayerList:"禱告名單",cardDeck:"禱告卡組",printOptions:"列印選項",showOnMap:"在地圖上顯示",close:"關閉",showOnMapAria:"在地圖上顯示 {label}",share:"分享",shareSteps:["把這張地圖嵌入你的網站","列出你城市裡的網站","教他們也嵌入這張地圖","教他們去教別人嵌入","為耶穌讓地圖遍地繁增!"]},$b={labels:{country:"国家:",population:"人口:",language:"语言:",religion:"宗教:",languageFamily:"语系:",peopleCommitted:"承诺祷告人数:"},messages:{noDescription:"暂无描述。"}},Ab={title:{prayer:"祷告进度",engagement:"参与进度",adoption:"认领进度",languageFamilies:"语系",doxaRegions:"Doxa 区域",affinityBlocs:"亲缘板块",gospelResources:"福音资源"},header:{collapsed:"图例",peopleGroupFallback:"民族群体",default:"圖例"},prayer:{needsPrayer:"需要祷告",hasPrayer:"已有祷告",fullPrayerCoverage:"全面祷告覆盖"},progress:{title:"进度",covered:"{total} 个民族群体中已有 {covered} 个被祷告覆盖 · {pct}%",short:"{covered} / {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"需要参与",hasEngagement:"已有参与"},adoption:{needsAdoption:"需要认领",hasAdoption:"已有认领"},columns:{upgs:"UUPGs",population:"人口",name:"名称"},footer:{total:"总计"},sortByUpgs:"按 UUPG 排序",sortByPop:"按人口排序",colLabel:{religion:"UUPG 宗教",prayer:"祷告状态",engagement:"参与状态",adoption:"认领状态",status:"状态"},titleBar:{legend:"图例",peopleGroups:"民族",wagfRegions:"WAGF 区域",languages:"语言"}},Sb={menuComingSoon:"菜单即将推出"},Eb={clusterByRegion:"按 Doxa 区域",clusterByLanguageFamily:"按语系",clusterByGospelResource:"按福音资源"},Lb={country:{wagfRegion:"WAGF 地區",wagfBlock:"WAGF 區塊",country:"國家",uupgCount:"UUPG 數量"}},Cb={header:"当前祷告轮次",lap:"第",upgs:"UUPGs",separator:" / "},Pb={placeholder:"民族、地点、语言、宗教",labels:{people:"民族:",place:"地点:",language:"语言:",religion:"宗教:"},sections:{within:"在 {selection} 之內",allData:"所有 DOXA 資料"},kinds:{people:"民族 + 国家",peopleGroup:"民族",bloc:"亲缘板块",cluster:"民族群",country:"国家",region:"区域",family:"语系",languageKind:"语言",dialect:"方言",religionKind:"宗教"}},Tb={prayer:"祷告",adoption:"认领",engagement:"参与","affinity-blocks":"民族",regions:"区域",countries:"国家","language-families":"语言",religion:"宗教",family:"语系",language:"语言",dialect:"方言/变体",bloc:"亲缘板块",cluster:"民族群",group:"民族",pgic:"国内民族",region:"WAGF 区域",block:"WAGF 板块",country:"国家"};/*! + */let Pc;const sr=e=>Pc=e,Tc=Symbol();function vs(e){return e&&typeof e=="object"&&Object.prototype.toString.call(e)==="[object Object]"&&typeof e.toJSON!="function"}var ra;(function(e){e.direct="direct",e.patchObject="patch object",e.patchFunction="patch function"})(ra||(ra={}));function hh(){const e=Dr(!0),t=e.run(()=>pe({}));let o=[],n=[];const a=Yo({install(r){sr(a),a._a=r,r.provide(Tc,a),r.config.globalProperties.$pinia=a,n.forEach(s=>o.push(s)),n=[]},use(r){return this._a?o.push(r):n.push(r),this},_p:o,_a:null,_e:e,_s:new Map,state:t});return a}const Mc=()=>{};function Nc(e,t,o,n=Mc){e.push(t);const a=()=>{const r=e.indexOf(t);r>-1&&(e.splice(r,1),n())};return!o&&Hi()&&Gp(a),a}function kn(e,...t){e.slice().forEach(o=>{o(...t)})}const mh=e=>e(),Rc=Symbol(),ks=Symbol();function ws(e,t){e instanceof Map&&t instanceof Map?t.forEach((o,n)=>e.set(n,o)):e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(const o in t){if(!t.hasOwnProperty(o))continue;const n=t[o],a=e[o];vs(a)&&vs(n)&&e.hasOwnProperty(o)&&!at(n)&&!_o(n)?e[o]=ws(a,n):e[o]=n}return e}const bh=Symbol();function yh(e){return!vs(e)||!e.hasOwnProperty(bh)}const{assign:Oo}=Object;function _h(e){return!!(at(e)&&e.effect)}function vh(e,t,o,n){const{state:a,actions:r,getters:s}=t,i=o.state.value[e];let l;function u(){i||(o.state.value[e]=a?a():{});const c=lg(o.state.value[e]);return Oo(c,r,Object.keys(s||{}).reduce((p,g)=>(p[g]=Yo(ne(()=>{sr(o);const k=o._s.get(e);return s[g].call(k,k)})),p),{}))}return l=Ic(e,u,t,o,n,!0),l}function Ic(e,t,o={},n,a,r){let s;const i=Oo({actions:{}},o),l={deep:!0};let u,c,p=[],g=[],k;const w=n.state.value[e];!r&&!w&&(n.state.value[e]={});let m;function d(P){let T;u=c=!1,typeof P=="function"?(P(n.state.value[e]),T={type:ra.patchFunction,storeId:e,events:k}):(ws(n.state.value[e],P),T={type:ra.patchObject,payload:P,storeId:e,events:k});const z=m=Symbol();io().then(()=>{m===z&&(u=!0)}),c=!0,kn(p,T,n.state.value[e])}const f=r?function(){const{state:T}=o,z=T?T():{};this.$patch(W=>{Oo(W,z)})}:Mc;function h(){s.stop(),p=[],g=[],n._s.delete(e)}const b=(P,T="")=>{if(Rc in P)return P[ks]=T,P;const z=function(){sr(n);const W=Array.from(arguments),re=[],M=[];function O(C){re.push(C)}function D(C){M.push(C)}kn(g,{args:W,name:z[ks],store:x,after:O,onError:D});let S;try{S=P.apply(this&&this.$id===e?this:x,W)}catch(C){throw kn(M,C),C}return S instanceof Promise?S.then(C=>(kn(re,C),C)).catch(C=>(kn(M,C),Promise.reject(C))):(kn(re,S),S)};return z[Rc]=!0,z[ks]=T,z},_={_p:n,$id:e,$onAction:Nc.bind(null,g),$patch:d,$reset:f,$subscribe(P,T={}){const z=Nc(p,P,T.detached,()=>W()),W=s.run(()=>it(()=>n.state.value[e],re=>{(T.flush==="sync"?c:u)&&P({storeId:e,type:ra.direct,events:k},re)},Oo({},l,T)));return z},$dispose:h},x=dn(_);n._s.set(e,x);const A=(n._a&&n._a.runWithContext||mh)(()=>n._e.run(()=>(s=Dr()).run(()=>t({action:b}))));for(const P in A){const T=A[P];if(at(T)&&!_h(T)||_o(T))r||(w&&yh(T)&&(at(T)?T.value=w[P]:ws(T,w[P])),n.state.value[e][P]=T);else if(typeof T=="function"){const z=b(T,P);A[P]=z,i.actions[P]=T}}return Oo(x,A),Oo(Be(x),A),Object.defineProperty(x,"$state",{get:()=>n.state.value[e],set:P=>{d(T=>{Oo(T,P)})}}),n._p.forEach(P=>{Oo(x,s.run(()=>P({store:x,app:n._a,pinia:n,options:i})))}),w&&r&&o.hydrate&&o.hydrate(x.$state,w),u=!0,c=!0,x}/*! #__NO_SIDE_EFFECTS__ */function xs(e,t,o){let n,a;const r=typeof t=="function";typeof e=="string"?(n=e,a=r?o:t):(a=e,n=e.id);function s(i,l){const u=xg();return i=i||(u?Fe(Tc,null):null),i&&sr(i),i=Pc,i._s.has(n)||(r?Ic(n,t,a,i):vh(n,a,i)),i._s.get(n)}return s.$id=n,s}const $s="__doxaMapToken",As="doxa:map-token",Oc="__doxaMapTokenBridge",wn=()=>{if(typeof window>"u")return"";const e=window[$s];return typeof e=="string"?e:""};function Fc(e){if(typeof window>"u")return"";const t=typeof e=="string"?e.trim():"";if(!t||t===wn())return wn();window[$s]=t;try{window.dispatchEvent(new CustomEvent(As,{detail:t}))}catch{}return t}function kh(){if(typeof window>"u"||window[Oc])return;const e=typeof window.MAP_TOKEN=="string"?window.MAP_TOKEN:"";e&&!wn()&&(window[$s]=e);try{Object.defineProperty(window,"MAP_TOKEN",{configurable:!0,get(){return wn()},set(t){Fc(t)}}),window[Oc]=!0}catch{}}function wh(){kh();const e=pe(wn());if(typeof window<"u"){const t=()=>{e.value=wn()};window.addEventListener(As,t);try{Jt(()=>window.removeEventListener(As,t))}catch{}}return e}function Dc(e){return Rg({loader:e,onError(t,o,n,a){a<=3?setTimeout(o,a*500):n()}})}const xh={backToLegend:"العودة إلى المفتاح",closeDetailView:"إغلاق عرض التفاصيل"},$h={prayForThem:"صلِّ من أجلهم",adoptThem:"تبنَّهم",moreInfo:"مزيد من المعلومات",zoomIn:"تكبير",zoomOut:"تصغير",switchToLightMode:"التبديل إلى الوضع الفاتح",switchToDarkMode:"التبديل إلى الوضع الداكن",resetView:"إعادة تعيين العرض",toggleFullscreen:"تبديل ملء الشاشة",aboutThisMap:"حول هذه الخريطة",closeMenu:"إغلاق القائمة",reloadMap:"إعادة تحميل الخريطة",showClusters:"إظهار المجموعات",clusterSettings:"إعدادات المجموعات",startAutoFly:"بدء الطيران التلقائي",stopFlight:"إيقاف الطيران",speedLabel:"السرعة:",speedOption:{slow:"بطيء",normal:"عادي",fast:"سريع"},shareEmbed:"مشاركة وتضمين",posterMap:"خريطة الملصق",prayerList:"قائمة الصلاة",cardDeck:"مجموعة البطاقات",printOptions:"خيارات الطباعة",showOnMap:"أظهر على الخريطة",close:"إغلاق",showOnMapAria:"أظهر {label} على الخريطة",share:"مشاركة",shareSteps:["ضع هذه الخريطة على موقعك","أعدّ قائمة بمواقع الويب في مدينتك","علّمهم أن يضعوها أيضًا","علّمهم أن يعلّموا غيرهم وضعها","لنكثر الخرائط في كل مكان ليسوع!"]},Ah={labels:{country:"الدولة:",population:"السكان:",language:"اللغة:",religion:"الديانة:",languageFamily:"العائلة اللغوية:",peopleCommitted:"ملتزمون بالصلاة:"},messages:{noDescription:"لا يوجد وصف متاح."}},Sh={title:{prayer:"تقدم الصلاة",engagement:"تقدم الانخراط",adoption:"تقدم التبني",languageFamilies:"العائلات اللغوية",doxaRegions:"مناطق Doxa",affinityBlocs:"كتل القرابة",gospelResources:"موارد الإنجيل"},header:{collapsed:"وسيلة الإيضاح",peopleGroupFallback:"مجموعة الشعب",default:"مفتاح الخريطة"},prayer:{needsPrayer:"يحتاج إلى صلاة",hasPrayer:"لديه صلاة",fullPrayerCoverage:"تغطية صلاة كاملة"},progress:{title:"التقدم",covered:"{covered} من {total} مجموعة شعبية مغطاة بالصلاة · {pct}%",short:"{covered} من {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"يحتاج إلى انخراط",hasEngagement:"لديه انخراط"},adoption:{needsAdoption:"يحتاج إلى تبني",hasAdoption:"لديه تبني"},columns:{upgs:"UUPGs",population:"السكان",name:"الاسم"},footer:{total:"الإجمالي"},sortByUpgs:"ترتيب حسب UUPG",sortByPop:"ترتيب حسب السكان",colLabel:{religion:"ديانات UUPG",prayer:"حالة الصلاة",engagement:"حالة المشاركة",adoption:"حالة التبني",status:"الحالة"},titleBar:{legend:"مفتاح الخريطة",peopleGroups:"الشعوب",wagfRegions:"مناطق WAGF",languages:"اللغات"}},Eh={menuComingSoon:"القائمة قادمة قريباً"},Lh={clusterByRegion:"حسب منطقة Doxa",clusterByLanguageFamily:"حسب العائلة اللغوية",clusterByGospelResource:"حسب مورد الإنجيل"},Ch={country:{wagfRegion:"منطقة WAGF",wagfBlock:"كتلة WAGF",country:"الدولة",uupgCount:"عدد UUPG"}},Ph={header:"دورة الصلاة الحالية",lap:"الدورة",upgs:"UUPGs",separator:" من "},Th={"%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":"مجموعات بشرية مُنخرِطة","View country posters":"عرض ملصقات الدولة","Hide country posters":"إخفاء ملصقات الدولة","No poster has been generated for this country yet.":"لم يُنشأ أي ملصق لهذه الدولة بعد."},Mh={placeholder:"شعب، مكان، لغة، ديانة",labels:{people:"الشعب:",place:"المكان:",language:"اللغة:",religion:"الديانة:"},kinds:{people:"الشعب + الدولة",peopleGroup:"الشعب",bloc:"كتلة التقارب",cluster:"مجموعة شعوب",country:"الدولة",region:"المنطقة",family:"عائلة اللغة",languageKind:"اللغة",dialect:"اللهجة",religionKind:"الدين"},sections:{within:"ضمن {selection}",allData:"كل بيانات DOXA"}},Nh={prayer:"الصلاة",adoption:"التبني",engagement:"المشاركة","affinity-blocks":"الشعوب",regions:"المناطق",countries:"الدول","language-families":"اللغات",religion:"الأديان",family:"عائلة اللغة",language:"اللغة",dialect:"اللهجة/التنوع",bloc:"كتلة التقارب",cluster:"المجموعة",group:"الشعب",pgic:"الشعب في الدولة",region:"منطقة WAGF",block:"كتلة WAGF",country:"الدولة"},Rh={backToLegend:"Zurück zur Legende",closeDetailView:"Detailansicht schließen"},Ih={prayForThem:"Für sie beten",adoptThem:"Sie adoptieren",moreInfo:"Mehr Infos",zoomIn:"Vergrößern",zoomOut:"Verkleinern",switchToLightMode:"Zum hellen Modus wechseln",switchToDarkMode:"Zum dunklen Modus wechseln",resetView:"Ansicht zurücksetzen",toggleFullscreen:"Vollbild umschalten",aboutThisMap:"Über diese Karte",closeMenu:"Menü schließen",reloadMap:"Karte neu laden",showClusters:"Cluster anzeigen",clusterSettings:"Cluster-Einstellungen",startAutoFly:"Auto-Flug starten",stopFlight:"Flug stoppen",speedLabel:"Geschwindigkeit:",speedOption:{slow:"Langsam",normal:"Normal",fast:"Schnell"},shareEmbed:"Teilen und einbetten",posterMap:"Posterkarte",prayerList:"Gebetsliste",cardDeck:"Kartenset",printOptions:"Druckoptionen",showOnMap:"Auf der Karte zeigen",close:"Schließen",showOnMapAria:"{label} auf der Karte zeigen",share:"Teilen",shareSteps:["Binde diese Karte auf deiner Website ein","Erstelle eine Liste der Websites in deiner Stadt","Zeige ihnen, wie sie sie ebenfalls einbinden","Zeige ihnen, wie sie es anderen beibringen","Lasst uns Karten überall vermehren – für Jesus!"]},Oh={labels:{country:"Land:",population:"Bevölkerung:",language:"Sprache:",religion:"Religion:",languageFamily:"Sprachfamilie:",peopleCommitted:"Zum Gebet verpflichtet:"},messages:{noDescription:"Keine Beschreibung verfügbar."}},Fh={title:{prayer:"Gebetsfortschritt",engagement:"Engagement-Fortschritt",adoption:"Adoptionsfortschritt",languageFamilies:"Sprachfamilien",doxaRegions:"Doxa-Regionen",affinityBlocs:"Affinitätsblöcke",gospelResources:"Evangeliumsressourcen"},header:{collapsed:"Legende",peopleGroupFallback:"Volksgruppe",default:"Legende"},prayer:{needsPrayer:"Braucht Gebet",hasPrayer:"Hat Gebet",fullPrayerCoverage:"Vollständige Gebetsabdeckung"},progress:{title:"Fortschritt",covered:"{covered} von {total} Volksgruppen im Gebet abgedeckt · {pct}%",short:"{covered} von {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Braucht Engagement",hasEngagement:"Hat Engagement"},adoption:{needsAdoption:"Braucht Adoption",hasAdoption:"Hat Adoption"},columns:{upgs:"UUPGs",population:"Bevölkerung",name:"Name"},footer:{total:"Gesamt"},sortByUpgs:"Nach UUPGs sortieren",sortByPop:"Nach Bevölkerung sortieren",colLabel:{religion:"UUPG-Religionen",prayer:"Gebetsstatus",engagement:"Engagement-Status",adoption:"Adoptionsstatus",status:"Status"},titleBar:{legend:"Legende",peopleGroups:"Völker",wagfRegions:"WAGF-Regionen",languages:"Sprachen"}},Dh={menuComingSoon:"Menü folgt in Kürze"},Bh={clusterByRegion:"Nach Doxa-Region",clusterByLanguageFamily:"Nach Sprachfamilie",clusterByGospelResource:"Nach Evangeliumsressource"},Gh={country:{wagfRegion:"WAGF-Region",wagfBlock:"WAGF-Block",country:"Land",uupgCount:"Anzahl UUPG"}},jh={header:"AKTUELLE GEBETSRUNDE",lap:"Runde",upgs:"UUPGs",separator:" von "},Uh={"%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","View country posters":"Länderposter ansehen","Hide country posters":"Länderposter ausblenden","No poster has been generated for this country yet.":"Für dieses Land wurde noch kein Poster erstellt."},zh={placeholder:"Volk, Ort, Sprache, Religion",labels:{people:"Volk:",place:"Ort:",language:"Sprache:",religion:"Religion:"},sections:{within:"Innerhalb {selection}",allData:"Alle DOXA-Daten"},kinds:{people:"Volk + Land",peopleGroup:"Volk",bloc:"Affinitätsblock",cluster:"Völkercluster",country:"Land",region:"Region",family:"Sprachfamilie",languageKind:"Sprache",dialect:"Dialekt",religionKind:"Religion"}},Kh={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"},Hh={backToLegend:"Back to Legend",closeDetailView:"Close detail view"},Vh={prayForThem:"Pray for them",adoptThem:"Adopt",moreInfo:"More info",zoomIn:"Zoom in",zoomOut:"Zoom out",switchToLightMode:"Switch to light mode",switchToDarkMode:"Switch to dark mode",resetView:"Reset view",toggleFullscreen:"Toggle fullscreen",aboutThisMap:"About this map",closeMenu:"Close menu",reloadMap:"Reload Map",showClusters:"Show Clusters",clusterSettings:"Cluster Settings",startAutoFly:"Start Auto Fly",stopFlight:"Stop Flight",speedLabel:"Speed:",speedOption:{slow:"Slow",normal:"Normal",fast:"Fast"},shareEmbed:"Share & embed",shareSteps:["Embed this map on your site","Create a list of the websites in your city","Train them to embed it too","Train them to train others to embed it too","Multiply maps everywhere for Jesus!"],share:"Share",posterMap:"Poster Map",prayerList:"Prayer List",cardDeck:"Card Deck",printOptions:"Print Options",showOnMap:"Show on map",close:"Close",showOnMapAria:"Show {label} on the map"},Wh={labels:{country:"Country:",population:"Population:",language:"Language:",religion:"Religion:",languageFamily:"Language Family:",peopleCommitted:"Committed to pray:"},messages:{noDescription:"No description available."}},Yh={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"}},qh={menuComingSoon:"Menu coming soon"},Jh={clusterByRegion:"By Doxa Region",clusterByLanguageFamily:"By Language Family",clusterByGospelResource:"By Gospel Resource"},Xh={country:{wagfRegion:"WAGF Region",wagfBlock:"WAGF Bloc",country:"Country",uupgCount:"UUPG Count"}},Zh={header:"CURRENT PRAYER LAP",lap:"Lap",upgs:"UUPGs",separator:" of "},Qh={"%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","View country posters":"View country posters","Hide country posters":"Hide country posters","No poster has been generated for this country yet.":"No poster has been generated for this country yet."},em={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"}},tm={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"},om={backToLegend:"Volver a la leyenda",closeDetailView:"Cerrar vista de detalle"},nm={prayForThem:"Ora por ellos",adoptThem:"Adóptalos",moreInfo:"Más información",zoomIn:"Acercar",zoomOut:"Alejar",switchToLightMode:"Cambiar a modo claro",switchToDarkMode:"Cambiar a modo oscuro",resetView:"Restablecer vista",toggleFullscreen:"Alternar pantalla completa",aboutThisMap:"Acerca de este mapa",closeMenu:"Cerrar menú",reloadMap:"Recargar mapa",showClusters:"Mostrar clústeres",clusterSettings:"Ajustes de clústeres",startAutoFly:"Iniciar vuelo automático",stopFlight:"Detener vuelo",speedLabel:"Velocidad:",speedOption:{slow:"Lenta",normal:"Normal",fast:"Rápida"},shareEmbed:"Compartir e incrustar",posterMap:"Mapa del cartel",prayerList:"Lista de oración",cardDeck:"Baraja de tarjetas",printOptions:"Opciones de impresión",showOnMap:"Ver en el mapa",close:"Cerrar",showOnMapAria:"Ver {label} en el mapa",share:"Compartir",shareSteps:["Inserta este mapa en tu sitio","Haz una lista de los sitios web de tu ciudad","Enséñales a insertarlo también","Enséñales a enseñar a otros a insertarlo","¡Multiplica los mapas por todas partes para Jesús!"]},am={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."}},rm={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",default:"Leyenda"},prayer:{needsPrayer:"Necesita oración",hasPrayer:"Tiene oración",fullPrayerCoverage:"Cobertura de oración completa"},progress:{title:"Progreso",covered:"{covered} de {total} grupos de personas cubiertos en oración · {pct}%",short:"{covered} de {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Necesita implicación",hasEngagement:"Tiene implicación"},adoption:{needsAdoption:"Necesita adopción",hasAdoption:"Tiene adopción"},columns:{upgs:"UUPGs",population:"Población",name:"Nombre"},footer:{total:"Total"},sortByUpgs:"Ordenar por UUPG",sortByPop:"Ordenar por población",colLabel:{religion:"Religiones UUPG",prayer:"Estado de oración",engagement:"Estado de compromiso",adoption:"Estado de adopción",status:"Estado"},titleBar:{legend:"Leyenda",peopleGroups:"Pueblos",wagfRegions:"Regiones WAGF",languages:"Idiomas"}},sm={menuComingSoon:"Menú próximamente"},im={clusterByRegion:"Por región Doxa",clusterByLanguageFamily:"Por familia lingüística",clusterByGospelResource:"Por recurso del Evangelio"},lm={country:{wagfRegion:"Región WAGF",wagfBlock:"Bloque WAGF",country:"País",uupgCount:"Número de UUPG"}},cm={header:"VUELTA DE ORACIÓN ACTUAL",lap:"Vuelta",upgs:"UUPGs",separator:" de "},um={"%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","View country posters":"Ver los carteles del país","Hide country posters":"Ocultar los carteles del país","No poster has been generated for this country yet.":"Todavía no se ha generado ningún cartel para este país."},dm={placeholder:"Pueblo, lugar, idioma, religión",labels:{people:"Pueblo:",place:"Lugar:",language:"Idioma:",religion:"Religión:"},kinds:{people:"Pueblo + país",peopleGroup:"Pueblo",bloc:"Bloque de afinidad",cluster:"Clúster de pueblos",country:"País",region:"Región",family:"Familia lingüística",languageKind:"Idioma",dialect:"Dialecto",religionKind:"Religión"},sections:{within:"Dentro de {selection}",allData:"Todos los datos DOXA"}},pm={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"},gm={backToLegend:"Retour à la légende",closeDetailView:"Fermer la vue détaillée"},fm={prayForThem:"Priez pour eux",adoptThem:"Adoptez-les",moreInfo:"Plus d'infos",zoomIn:"Zoom avant",zoomOut:"Zoom arrière",switchToLightMode:"Passer au mode clair",switchToDarkMode:"Passer au mode sombre",resetView:"Réinitialiser la vue",toggleFullscreen:"Basculer en plein écran",aboutThisMap:"À propos de cette carte",closeMenu:"Fermer le menu",reloadMap:"Recharger la carte",showClusters:"Afficher les clusters",clusterSettings:"Paramètres des clusters",startAutoFly:"Démarrer le vol auto",stopFlight:"Arrêter le vol",speedLabel:"Vitesse :",speedOption:{slow:"Lente",normal:"Normale",fast:"Rapide"},shareEmbed:"Partager et intégrer",posterMap:"Carte de l'affiche",prayerList:"Liste de prière",cardDeck:"Jeu de cartes",printOptions:"Options d'impression",showOnMap:"Voir sur la carte",close:"Fermer",showOnMapAria:"Voir {label} sur la carte",share:"Partager",shareSteps:["Intégrez cette carte à votre site","Dressez la liste des sites web de votre ville","Apprenez-leur à l’intégrer aussi","Apprenez-leur à former d’autres personnes à l’intégrer","Multiplions les cartes partout pour Jésus !"]},hm={labels:{country:"Pays :",population:"Population :",language:"Langue :",religion:"Religion :",languageFamily:"Famille de langues :",peopleCommitted:"Engagés à prier :"},messages:{noDescription:"Aucune description disponible."}},mm={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",default:"Légende"},prayer:{needsPrayer:"Besoin de prière",hasPrayer:"Prière en cours",fullPrayerCoverage:"Couverture de prière complète"},progress:{title:"Progression",covered:"{covered} sur {total} groupes de personnes couverts par la prière · {pct}%",short:"{covered} sur {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Besoin d'engagement",hasEngagement:"Engagement en cours"},adoption:{needsAdoption:"Besoin d'adoption",hasAdoption:"Adoption en cours"},columns:{upgs:"UUPGs",population:"Population",name:"Nom"},footer:{total:"Total"},sortByUpgs:"Trier par UUPG",sortByPop:"Trier par population",colLabel:{religion:"Religions UUPG",prayer:"Statut de prière",engagement:"Statut d'engagement",adoption:"Statut d'adoption",status:"Statut"},titleBar:{legend:"Légende",peopleGroups:"Peuples",wagfRegions:"Régions WAGF",languages:"Langues"}},bm={menuComingSoon:"Menu bientôt disponible"},ym={clusterByRegion:"Par région Doxa",clusterByLanguageFamily:"Par famille de langues",clusterByGospelResource:"Par ressource de l'Évangile"},_m={country:{wagfRegion:"Région WAGF",wagfBlock:"Bloc WAGF",country:"Pays",uupgCount:"Nombre d'UUPG"}},vm={header:"TOUR DE PRIÈRE ACTUEL",lap:"Tour",upgs:"UUPGs",separator:" sur "},km={"%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","View country posters":"Voir les affiches du pays","Hide country posters":"Masquer les affiches du pays","No poster has been generated for this country yet.":"Aucune affiche n'a encore été générée pour ce pays."},wm={placeholder:"Peuple, lieu, langue, religion",labels:{people:"Peuple :",place:"Lieu :",language:"Langue :",religion:"Religion :"},kinds:{people:"Peuple + pays",peopleGroup:"Peuple",bloc:"Bloc d'affinité",cluster:"Grappe de peuples",country:"Pays",region:"Région",family:"Famille linguistique",languageKind:"Langue",dialect:"Dialecte",religionKind:"Religion"},sections:{within:"Dans {selection}",allData:"Toutes les données DOXA"}},xm={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"},$m={backToLegend:"लेजेंड पर वापस जाएं",closeDetailView:"विवरण दृश्य बंद करें"},Am={prayForThem:"उनके लिए प्रार्थना करें",adoptThem:"उन्हें गोद लें",moreInfo:"अधिक जानकारी",zoomIn:"ज़ूम इन",zoomOut:"ज़ूम आउट",switchToLightMode:"लाइट मोड पर जाएं",switchToDarkMode:"डार्क मोड पर जाएं",resetView:"दृश्य रीसेट करें",toggleFullscreen:"फ़ुलस्क्रीन टॉगल करें",aboutThisMap:"इस मानचित्र के बारे में",closeMenu:"मेनू बंद करें",reloadMap:"मानचित्र पुनः लोड करें",showClusters:"क्लस्टर दिखाएं",clusterSettings:"क्लस्टर सेटिंग्स",startAutoFly:"ऑटो फ्लाई शुरू करें",stopFlight:"उड़ान रोकें",speedLabel:"गति:",speedOption:{slow:"धीमी",normal:"सामान्य",fast:"तेज़"},shareEmbed:"साझा करें और एम्बेड करें",posterMap:"पोस्टर मानचित्र",prayerList:"प्रार्थना सूची",cardDeck:"कार्ड सेट",printOptions:"छपाई विकल्प",showOnMap:"मानचित्र पर देखें",close:"बंद करें",showOnMapAria:"{label} को मानचित्र पर देखें",share:"साझा करें",shareSteps:["इस मानचित्र को अपनी वेबसाइट पर लगाएँ","अपने शहर की वेबसाइटों की सूची बनाएँ","उन्हें भी इसे लगाना सिखाएँ","उन्हें सिखाएँ कि वे औरों को लगाना सिखाएँ","यीशु के लिए हर जगह मानचित्र बढ़ाएँ!"]},Sm={labels:{country:"देश:",population:"जनसंख्या:",language:"भाषा:",religion:"धर्म:",languageFamily:"भाषा परिवार:",peopleCommitted:"प्रार्थना के लिए प्रतिबद्ध:"},messages:{noDescription:"कोई विवरण उपलब्ध नहीं है।"}},Em={title:{prayer:"प्रार्थना प्रगति",engagement:"सहभागिता प्रगति",adoption:"गोद लेने की प्रगति",languageFamilies:"भाषा परिवार",doxaRegions:"Doxa क्षेत्र",affinityBlocs:"समानता समूह",gospelResources:"सुसमाचार संसाधन"},header:{collapsed:"किंवदंती",peopleGroupFallback:"जनजाति समूह",default:"सूचकांक"},prayer:{needsPrayer:"प्रार्थना चाहिए",hasPrayer:"प्रार्थना है",fullPrayerCoverage:"पूर्ण प्रार्थना कवरेज"},progress:{title:"प्रगति",covered:"{total} में से {covered} जनजाति समूह प्रार्थना में कवर · {pct}%",short:"{total} में से {covered} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"सहभागिता चाहिए",hasEngagement:"सहभागिता है"},adoption:{needsAdoption:"गोद लेना चाहिए",hasAdoption:"गोद लिया गया"},columns:{upgs:"UUPGs",population:"जनसंख्या",name:"नाम"},footer:{total:"कुल"},sortByUpgs:"UUPG के अनुसार क्रमबद्ध करें",sortByPop:"जनसंख्या के अनुसार क्रमबद्ध करें",colLabel:{religion:"UUPG धर्म",prayer:"प्रार्थना स्थिति",engagement:"सहभागिता स्थिति",adoption:"गोद लेने की स्थिति",status:"स्थिति"},titleBar:{legend:"सूचकांक",peopleGroups:"जनसमूह",wagfRegions:"WAGF क्षेत्र",languages:"भाषाएँ"}},Lm={menuComingSoon:"मेनू शीघ्र आ रहा है"},Cm={clusterByRegion:"Doxa क्षेत्र के अनुसार",clusterByLanguageFamily:"भाषा परिवार के अनुसार",clusterByGospelResource:"सुसमाचार संसाधन के अनुसार"},Pm={country:{wagfRegion:"WAGF क्षेत्र",wagfBlock:"WAGF ब्लॉक",country:"देश",uupgCount:"UUPG संख्या"}},Tm={header:"वर्तमान प्रार्थना चक्र",lap:"चक्र",upgs:"UUPGs",separator:" में से "},Mm={"%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":"प्रवेशित लोगों के समूह","View country posters":"देश के पोस्टर देखें","Hide country posters":"देश के पोस्टर छिपाएँ","No poster has been generated for this country yet.":"इस देश के लिए अभी तक कोई पोस्टर नहीं बना है।"},Nm={placeholder:"लोग, स्थान, भाषा, धर्म",labels:{people:"लोग:",place:"स्थान:",language:"भाषा:",religion:"धर्म:"},sections:{within:"{selection} के भीतर",allData:"सभी DOXA डेटा"},kinds:{people:"जनसमूह + देश",peopleGroup:"जनसमूह",bloc:"समानता समूह",cluster:"जनसमूह क्लस्टर",country:"देश",region:"क्षेत्र",family:"भाषा परिवार",languageKind:"भाषा",dialect:"बोली",religionKind:"धर्म"}},Rm={prayer:"प्रार्थना",adoption:"गोद लेना",engagement:"सहभागिता","affinity-blocks":"जनसमूह",regions:"क्षेत्र",countries:"देश","language-families":"भाषाएँ",religion:"धर्म",family:"भाषा परिवार",language:"भाषा",dialect:"बोली/रूप",bloc:"समानता समूह",cluster:"क्लस्टर",group:"जनसमूह",pgic:"देश में जनसमूह",region:"WAGF क्षेत्र",block:"WAGF ब्लॉक",country:"देश"},Im={backToLegend:"Torna alla legenda",closeDetailView:"Chiudi vista dettaglio"},Om={prayForThem:"Prega per loro",adoptThem:"Adottali",moreInfo:"Più informazioni",zoomIn:"Ingrandisci",zoomOut:"Riduci",switchToLightMode:"Passa alla modalità chiara",switchToDarkMode:"Passa alla modalità scura",resetView:"Reimposta vista",toggleFullscreen:"Attiva/disattiva schermo intero",aboutThisMap:"Informazioni su questa mappa",closeMenu:"Chiudi menu",reloadMap:"Ricarica mappa",showClusters:"Mostra cluster",clusterSettings:"Impostazioni cluster",startAutoFly:"Avvia volo automatico",stopFlight:"Ferma volo",speedLabel:"Velocità:",speedOption:{slow:"Lenta",normal:"Normale",fast:"Veloce"},shareEmbed:"Condividi e incorpora",posterMap:"Mappa del poster",prayerList:"Lista di preghiera",cardDeck:"Mazzo di carte",printOptions:"Opzioni di stampa",showOnMap:"Mostra sulla mappa",close:"Chiudi",showOnMapAria:"Mostra {label} sulla mappa",share:"Condividi",shareSteps:["Incorpora questa mappa nel tuo sito","Fai un elenco dei siti web della tua città","Insegna loro a incorporarla a loro volta","Insegna loro a formare altri a incorporarla","Moltiplichiamo le mappe ovunque per Gesù!"]},Fm={labels:{country:"Paese:",population:"Popolazione:",language:"Lingua:",religion:"Religione:",languageFamily:"Famiglia linguistica:",peopleCommitted:"Impegnati a pregare:"},messages:{noDescription:"Nessuna descrizione disponibile."}},Dm={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",default:"Legenda"},prayer:{needsPrayer:"Necessita preghiera",hasPrayer:"Ha preghiera",fullPrayerCoverage:"Copertura di preghiera completa"},progress:{title:"Avanzamento",covered:"{covered} di {total} gruppi di persone coperti dalla preghiera · {pct}%",short:"{covered} di {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Necessita impegno",hasEngagement:"Ha impegno"},adoption:{needsAdoption:"Necessita adozione",hasAdoption:"Ha adozione"},columns:{upgs:"UUPGs",population:"Popolazione",name:"Nome"},footer:{total:"Totale"},sortByUpgs:"Ordina per UUPG",sortByPop:"Ordina per popolazione",colLabel:{religion:"Religioni UUPG",prayer:"Stato della preghiera",engagement:"Stato dell'impegno",adoption:"Stato dell'adozione",status:"Stato"},titleBar:{legend:"Legenda",peopleGroups:"Popoli",wagfRegions:"Regioni WAGF",languages:"Lingue"}},Bm={menuComingSoon:"Menu in arrivo"},Gm={clusterByRegion:"Per regione Doxa",clusterByLanguageFamily:"Per famiglia linguistica",clusterByGospelResource:"Per risorsa del Vangelo"},jm={country:{wagfRegion:"Regione WAGF",wagfBlock:"Blocco WAGF",country:"Paese",uupgCount:"Numero di UUPG"}},Um={header:"GIRO DI PREGHIERA ATTUALE",lap:"Giro",upgs:"UUPGs",separator:" di "},zm={placeholder:"Popolo, luogo, lingua, religione",labels:{people:"Popolo:",place:"Luogo:",language:"Lingua:",religion:"Religione:"},sections:{within:"In {selection}",allData:"Tutti i dati DOXA"},kinds:{people:"Popolo + paese",peopleGroup:"Popolo",bloc:"Blocco di affinità",cluster:"Cluster di popoli",country:"Paese",region:"Regione",family:"Famiglia linguistica",languageKind:"Lingua",dialect:"Dialetto",religionKind:"Religione"}},Km={prayer:"Preghiera",adoption:"Adozione",engagement:"Impegno","affinity-blocks":"Popoli",regions:"Regioni",countries:"Paesi","language-families":"Lingue",religion:"Religioni",family:"Famiglia ling.",language:"Lingua",dialect:"Dialetto/Variante",bloc:"Blocco di affinità",cluster:"Cluster",group:"Popolo",pgic:"Popolo nel paese",region:"Regione WAGF",block:"Blocco WAGF",country:"Paese"},Hm={backToLegend:"Voltar à legenda",closeDetailView:"Fechar vista de detalhe"},Vm={prayForThem:"Ore por eles",adoptThem:"Adote-os",moreInfo:"Mais informações",zoomIn:"Ampliar",zoomOut:"Reduzir",switchToLightMode:"Mudar para modo claro",switchToDarkMode:"Mudar para modo escuro",resetView:"Repor vista",toggleFullscreen:"Alternar ecrã inteiro",aboutThisMap:"Sobre este mapa",closeMenu:"Fechar menu",reloadMap:"Recarregar mapa",showClusters:"Mostrar clusters",clusterSettings:"Definições de clusters",startAutoFly:"Iniciar voo automático",stopFlight:"Parar voo",speedLabel:"Velocidade:",speedOption:{slow:"Lenta",normal:"Normal",fast:"Rápida"},shareEmbed:"Partilhar e incorporar",posterMap:"Mapa do cartaz",prayerList:"Lista de oração",cardDeck:"Baralho de cartões",printOptions:"Opções de impressão",showOnMap:"Ver no mapa",close:"Fechar",showOnMapAria:"Ver {label} no mapa",share:"Partilhar",shareSteps:["Incorpore este mapa no seu site","Faça uma lista dos sites da sua cidade","Ensine-os a incorporá-lo também","Ensine-os a ensinar outros a incorporá-lo","Multipliquemos mapas por toda a parte para Jesus!"]},Wm={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."}},Ym={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",default:"Legenda"},prayer:{needsPrayer:"Precisa de oração",hasPrayer:"Tem oração",fullPrayerCoverage:"Cobertura de oração completa"},progress:{title:"Progresso",covered:"{covered} de {total} grupos de pessoas cobertos em oração · {pct}%",short:"{covered} de {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Precisa de envolvimento",hasEngagement:"Tem envolvimento"},adoption:{needsAdoption:"Precisa de adoção",hasAdoption:"Tem adoção"},columns:{upgs:"UUPGs",population:"População",name:"Nome"},footer:{total:"Total"},sortByUpgs:"Ordenar por UUPG",sortByPop:"Ordenar por população",colLabel:{religion:"Religiões UUPG",prayer:"Status de oração",engagement:"Status de engajamento",adoption:"Status de adoção",status:"Status"},titleBar:{legend:"Legenda",peopleGroups:"Povos",wagfRegions:"Regiões WAGF",languages:"Idiomas"}},qm={menuComingSoon:"Menu em breve"},Jm={clusterByRegion:"Por região Doxa",clusterByLanguageFamily:"Por família linguística",clusterByGospelResource:"Por recurso do Evangelho"},Xm={country:{wagfRegion:"Região WAGF",wagfBlock:"Bloco WAGF",country:"País",uupgCount:"Número de UUPG"}},Zm={header:"VOLTA DE ORAÇÃO ATUAL",lap:"Volta",upgs:"UUPGs",separator:" de "},Qm={"%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","View country posters":"Ver os cartazes do país","Hide country posters":"Ocultar os cartazes do país","No poster has been generated for this country yet.":"Ainda não foi gerado nenhum cartaz para este país."},eb={placeholder:"Povo, local, língua, religião",labels:{people:"Povo:",place:"Local:",language:"Língua:",religion:"Religião:"},kinds:{people:"Povo + país",peopleGroup:"Povo",bloc:"Bloco de afinidade",cluster:"Agrupamento de povos",country:"País",region:"Região",family:"Família linguística",languageKind:"Idioma",dialect:"Dialeto",religionKind:"Religião"},sections:{within:"Dentro de {selection}",allData:"Todos os dados DOXA"}},tb={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"},ob={backToLegend:"Înapoi la legendă",closeDetailView:"Închide vizualizarea detaliată"},nb={prayForThem:"Roagă-te pentru ei",adoptThem:"Adoptă-i",moreInfo:"Mai multe informații",zoomIn:"Mărește",zoomOut:"Micșorează",switchToLightMode:"Comută la modul luminos",switchToDarkMode:"Comută la modul întunecat",resetView:"Resetează vizualizarea",toggleFullscreen:"Comută ecran complet",aboutThisMap:"Despre această hartă",closeMenu:"Închide meniul",reloadMap:"Reîncarcă harta",showClusters:"Arată clusterele",clusterSettings:"Setări clustere",startAutoFly:"Pornește zborul automat",stopFlight:"Oprește zborul",speedLabel:"Viteză:",speedOption:{slow:"Lent",normal:"Normal",fast:"Rapid"},shareEmbed:"Partajează și încorporează",posterMap:"Harta afișului",prayerList:"Listă de rugăciune",cardDeck:"Pachet de cartonașe",printOptions:"Opțiuni de tipărire",showOnMap:"Arată pe hartă",close:"Închide",showOnMapAria:"Arată {label} pe hartă",share:"Distribuie",shareSteps:["Încorporează această hartă pe site-ul tău","Fă o listă cu site-urile din orașul tău","Învață-i să o încorporeze și ei","Învață-i să îi formeze pe alții să o încorporeze","Să multiplicăm hărți pretutindeni pentru Isus!"]},ab={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ă."}},rb={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",default:"Legendă"},prayer:{needsPrayer:"Necesită rugăciune",hasPrayer:"Are rugăciune",fullPrayerCoverage:"Acoperire completă de rugăciune"},progress:{title:"Progres",covered:"{covered} din {total} grupuri de popoare acoperite în rugăciune · {pct}%",short:"{covered} din {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Necesită implicare",hasEngagement:"Are implicare"},adoption:{needsAdoption:"Necesită adopție",hasAdoption:"Are adopție"},columns:{upgs:"UUPGs",population:"Populație",name:"Nume"},footer:{total:"Total"},sortByUpgs:"Sortează după UUPG",sortByPop:"Sortează după populație",colLabel:{religion:"Religii UUPG",prayer:"Starea rugăciunii",engagement:"Starea implicării",adoption:"Starea adopției",status:"Stare"},titleBar:{legend:"Legendă",peopleGroups:"Popoare",wagfRegions:"Regiuni WAGF",languages:"Limbi"}},sb={menuComingSoon:"Meniu în curând"},ib={clusterByRegion:"După regiune Doxa",clusterByLanguageFamily:"După familia de limbi",clusterByGospelResource:"După resursa Evangheliei"},lb={country:{wagfRegion:"Regiunea WAGF",wagfBlock:"Blocul WAGF",country:"Țară",uupgCount:"Număr de UUPG"}},cb={header:"TURUL DE RUGĂCIUNE CURENT",lap:"Tur",upgs:"UUPGs",separator:" din "},ub={placeholder:"Popor, loc, limbă, religie",labels:{people:"Popor:",place:"Loc:",language:"Limbă:",religion:"Religie:"},sections:{within:"În {selection}",allData:"Toate datele DOXA"},kinds:{people:"Popor + țară",peopleGroup:"Popor",bloc:"Bloc de afinitate",cluster:"Grup de popoare",country:"Țară",region:"Regiune",family:"Familie de limbi",languageKind:"Limbă",dialect:"Dialect",religionKind:"Religie"}},db={prayer:"Rugăciune",adoption:"Adopție",engagement:"Implicare","affinity-blocks":"Popoare",regions:"Regiuni",countries:"Țări","language-families":"Limbi",religion:"Religii",family:"Familie de limbi",language:"Limbă",dialect:"Dialect/Variantă",bloc:"Bloc de afinitate",cluster:"Grup",group:"Popor",pgic:"Popor în țară",region:"Regiune WAGF",block:"Bloc WAGF",country:"Țară"},pb={backToLegend:"Назад к легенде",closeDetailView:"Закрыть подробный вид"},gb={prayForThem:"Молитесь о них",adoptThem:"Усыновите их",moreInfo:"Подробнее",zoomIn:"Приблизить",zoomOut:"Отдалить",switchToLightMode:"Переключить на светлый режим",switchToDarkMode:"Переключить на тёмный режим",resetView:"Сбросить вид",toggleFullscreen:"Полноэкранный режим",aboutThisMap:"Об этой карте",closeMenu:"Закрыть меню",reloadMap:"Перезагрузить карту",showClusters:"Показать кластеры",clusterSettings:"Настройки кластеров",startAutoFly:"Начать авто-полёт",stopFlight:"Остановить полёт",speedLabel:"Скорость:",speedOption:{slow:"Медленно",normal:"Нормально",fast:"Быстро"},shareEmbed:"Поделиться и встроить",posterMap:"Карта плаката",prayerList:"Молитвенный список",cardDeck:"Набор карточек",printOptions:"Параметры печати",showOnMap:"Показать на карте",close:"Закрыть",showOnMapAria:"Показать {label} на карте",share:"Поделиться",shareSteps:["Разместите эту карту на своём сайте","Составьте список сайтов вашего города","Научите их тоже размещать её","Научите их учить других размещать её","Умножим карты повсюду для Иисуса!"]},fb={labels:{country:"Страна:",population:"Население:",language:"Язык:",religion:"Религия:",languageFamily:"Языковая семья:",peopleCommitted:"Обязались молиться:"},messages:{noDescription:"Описание недоступно."}},hb={title:{prayer:"Прогресс молитвы",engagement:"Прогресс вовлечённости",adoption:"Прогресс усыновления",languageFamilies:"Языковые семьи",doxaRegions:"Регионы Doxa",affinityBlocs:"Блоки родства",gospelResources:"Евангельские ресурсы"},header:{collapsed:"Условные обозначения",peopleGroupFallback:"Народная группа",default:"Легенда"},prayer:{needsPrayer:"Нуждается в молитве",hasPrayer:"Есть молитва",fullPrayerCoverage:"Полное молитвенное покрытие"},progress:{title:"Прогресс",covered:"{covered} из {total} народных групп охвачены молитвой · {pct}%",short:"{covered} из {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Нуждается в вовлечённости",hasEngagement:"Есть вовлечённость"},adoption:{needsAdoption:"Нуждается в усыновлении",hasAdoption:"Есть усыновление"},columns:{upgs:"UUPGs",population:"Население",name:"Название"},footer:{total:"Всего"},sortByUpgs:"Сортировать по UUPG",sortByPop:"Сортировать по населению",colLabel:{religion:"Религии UUPG",prayer:"Статус молитвы",engagement:"Статус вовлечённости",adoption:"Статус усыновления",status:"Статус"},titleBar:{legend:"Легенда",peopleGroups:"Народы",wagfRegions:"Регионы WAGF",languages:"Языки"}},mb={menuComingSoon:"Меню скоро появится"},bb={clusterByRegion:"По региону Doxa",clusterByLanguageFamily:"По языковой семье",clusterByGospelResource:"По евангельскому ресурсу"},yb={country:{wagfRegion:"Регион WAGF",wagfBlock:"Блок WAGF",country:"Страна",uupgCount:"Число UUPG"}},_b={header:"ТЕКУЩИЙ КРУГ МОЛИТВЫ",lap:"Круг",upgs:"UUPGs",separator:" из "},vb={"%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":"вовлечённые группы людей","View country posters":"Показать плакаты страны","Hide country posters":"Скрыть плакаты страны","No poster has been generated for this country yet.":"Для этой страны плакат ещё не создан."},kb={placeholder:"Народ, место, язык, религия",labels:{people:"Народ:",place:"Место:",language:"Язык:",religion:"Религия:"},kinds:{people:"Народ + страна",peopleGroup:"Народ",bloc:"Блок родства",cluster:"Кластер народов",country:"Страна",region:"Регион",family:"Языковая семья",languageKind:"Язык",dialect:"Диалект",religionKind:"Религия"},sections:{within:"В пределах {selection}",allData:"Все данные DOXA"}},wb={prayer:"Молитва",adoption:"Усыновление",engagement:"Вовлечённость","affinity-blocks":"Народы",regions:"Регионы",countries:"Страны","language-families":"Языки",religion:"Религии",family:"Языковая семья",language:"Язык",dialect:"Диалект/вариант",bloc:"Блок родства",cluster:"Кластер",group:"Народ",pgic:"Народ в стране",region:"Регион WAGF",block:"Блок WAGF",country:"Страна"},xb={backToLegend:"返回图例",closeDetailView:"关闭详情视图"},$b={prayForThem:"为他们祷告",adoptThem:"认领他们",moreInfo:"更多信息",zoomIn:"放大",zoomOut:"缩小",switchToLightMode:"切换至浅色模式",switchToDarkMode:"切换至深色模式",resetView:"重置视图",toggleFullscreen:"切换全屏",aboutThisMap:"关于此地图",closeMenu:"关闭菜单",reloadMap:"重新加载地图",showClusters:"显示聚类",clusterSettings:"聚类设置",startAutoFly:"开始自动飞行",stopFlight:"停止飞行",speedLabel:"速度:",speedOption:{slow:"慢",normal:"正常",fast:"快"},shareEmbed:"分享与嵌入",posterMap:"海报地图",prayerList:"禱告名單",cardDeck:"禱告卡組",printOptions:"列印選項",showOnMap:"在地圖上顯示",close:"關閉",showOnMapAria:"在地圖上顯示 {label}",share:"分享",shareSteps:["把這張地圖嵌入你的網站","列出你城市裡的網站","教他們也嵌入這張地圖","教他們去教別人嵌入","為耶穌讓地圖遍地繁增!"]},Ab={labels:{country:"国家:",population:"人口:",language:"语言:",religion:"宗教:",languageFamily:"语系:",peopleCommitted:"承诺祷告人数:"},messages:{noDescription:"暂无描述。"}},Sb={title:{prayer:"祷告进度",engagement:"参与进度",adoption:"认领进度",languageFamilies:"语系",doxaRegions:"Doxa 区域",affinityBlocs:"亲缘板块",gospelResources:"福音资源"},header:{collapsed:"图例",peopleGroupFallback:"民族群体",default:"圖例"},prayer:{needsPrayer:"需要祷告",hasPrayer:"已有祷告",fullPrayerCoverage:"全面祷告覆盖"},progress:{title:"进度",covered:"{total} 个民族群体中已有 {covered} 个被祷告覆盖 · {pct}%",short:"{covered} / {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"需要参与",hasEngagement:"已有参与"},adoption:{needsAdoption:"需要认领",hasAdoption:"已有认领"},columns:{upgs:"UUPGs",population:"人口",name:"名称"},footer:{total:"总计"},sortByUpgs:"按 UUPG 排序",sortByPop:"按人口排序",colLabel:{religion:"UUPG 宗教",prayer:"祷告状态",engagement:"参与状态",adoption:"认领状态",status:"状态"},titleBar:{legend:"图例",peopleGroups:"民族",wagfRegions:"WAGF 区域",languages:"语言"}},Eb={menuComingSoon:"菜单即将推出"},Lb={clusterByRegion:"按 Doxa 区域",clusterByLanguageFamily:"按语系",clusterByGospelResource:"按福音资源"},Cb={country:{wagfRegion:"WAGF 地區",wagfBlock:"WAGF 區塊",country:"國家",uupgCount:"UUPG 數量"}},Pb={header:"当前祷告轮次",lap:"第",upgs:"UUPGs",separator:" / "},Tb={placeholder:"民族、地点、语言、宗教",labels:{people:"民族:",place:"地点:",language:"语言:",religion:"宗教:"},sections:{within:"在 {selection} 之內",allData:"所有 DOXA 資料"},kinds:{people:"民族 + 国家",peopleGroup:"民族",bloc:"亲缘板块",cluster:"民族群",country:"国家",region:"区域",family:"语系",languageKind:"语言",dialect:"方言",religionKind:"宗教"}},Mb={prayer:"祷告",adoption:"认领",engagement:"参与","affinity-blocks":"民族",regions:"区域",countries:"国家","language-families":"语言",religion:"宗教",family:"语系",language:"语言",dialect:"方言/变体",bloc:"亲缘板块",cluster:"民族群",group:"民族",pgic:"国内民族",region:"WAGF 区域",block:"WAGF 板块",country:"国家"};/*! * shared v9.14.5 * (c) 2025 kazuya kawaguchi * Released under the MIT License. - */function Mb(e,t){typeof console<"u"&&(console.warn("[intlify] "+e),t&&console.warn(t.stack))}const ir=typeof window<"u",Fo=(e,t=!1)=>t?Symbol.for(e):Symbol(e),Nb=(e,t,o)=>Rb({l:e,k:t,s:o}),Rb=e=>JSON.stringify(e).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029").replace(/\u0027/g,"\\u0027"),pt=e=>typeof e=="number"&&isFinite(e),Ib=e=>Kc(e)==="[object Date]",Do=e=>Kc(e)==="[object RegExp]",lr=e=>Ce(e)&&Object.keys(e).length===0,Lt=Object.assign,Ob=Object.create,Xe=(e=null)=>Ob(e);let Bc;const Eo=()=>Bc||(Bc=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:Xe());function Gc(e){return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'").replace(/\//g,"/").replace(/=/g,"=")}function jc(e){return e.replace(/&(?![a-zA-Z0-9#]{2,6};)/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(//g,">")}function Fb(e){return e=e.replace(/(\w+)\s*=\s*"([^"]*)"/g,(n,a,r)=>`${a}="${jc(r)}"`),e=e.replace(/(\w+)\s*=\s*'([^']*)'/g,(n,a,r)=>`${a}='${jc(r)}'`),/\s*on\w+\s*=\s*["']?[^"'>]+["']?/gi.test(e)&&(e=e.replace(/(\s+)(on)(\w+\s*=)/gi,"$1on$3")),[/(\s+(?:href|src|action|formaction)\s*=\s*["']?)\s*javascript:/gi,/(style\s*=\s*["'][^"']*url\s*\(\s*)javascript:/gi].forEach(n=>{e=e.replace(n,"$1javascript:")}),e}const Db=Object.prototype.hasOwnProperty;function Jt(e,t){return Db.call(e,t)}const rt=Array.isArray,tt=e=>typeof e=="function",fe=e=>typeof e=="string",De=e=>typeof e=="boolean",Ke=e=>e!==null&&typeof e=="object",Bb=e=>Ke(e)&&tt(e.then)&&tt(e.catch),Uc=Object.prototype.toString,Kc=e=>Uc.call(e),Ce=e=>{if(!Ke(e))return!1;const t=Object.getPrototypeOf(e);return t===null||t.constructor===Object},Gb=e=>e==null?"":rt(e)||Ce(e)&&e.toString===Uc?JSON.stringify(e,null,2):String(e);function jb(e,t=""){return e.reduce((o,n,a)=>a===0?o+n:o+t+n,"")}function cr(e){let t=e;return()=>++t}const ur=e=>!Ke(e)||rt(e);function dr(e,t){if(ur(e)||ur(t))throw new Error("Invalid value");const o=[{src:e,des:t}];for(;o.length;){const{src:n,des:a}=o.pop();Object.keys(n).forEach(r=>{r!=="__proto__"&&(Ke(n[r])&&!Ke(a[r])&&(a[r]=Array.isArray(n[r])?[]:Xe()),ur(a[r])||ur(n[r])?a[r]=n[r]:o.push({src:n[r],des:a[r]}))})}}/*! + */function Nb(e,t){typeof console<"u"&&(console.warn("[intlify] "+e),t&&console.warn(t.stack))}const ir=typeof window<"u",Fo=(e,t=!1)=>t?Symbol.for(e):Symbol(e),Rb=(e,t,o)=>Ib({l:e,k:t,s:o}),Ib=e=>JSON.stringify(e).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029").replace(/\u0027/g,"\\u0027"),pt=e=>typeof e=="number"&&isFinite(e),Ob=e=>zc(e)==="[object Date]",Do=e=>zc(e)==="[object RegExp]",lr=e=>Ce(e)&&Object.keys(e).length===0,Lt=Object.assign,Fb=Object.create,Xe=(e=null)=>Fb(e);let Bc;const Eo=()=>Bc||(Bc=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:Xe());function Gc(e){return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'").replace(/\//g,"/").replace(/=/g,"=")}function jc(e){return e.replace(/&(?![a-zA-Z0-9#]{2,6};)/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(//g,">")}function Db(e){return e=e.replace(/(\w+)\s*=\s*"([^"]*)"/g,(n,a,r)=>`${a}="${jc(r)}"`),e=e.replace(/(\w+)\s*=\s*'([^']*)'/g,(n,a,r)=>`${a}='${jc(r)}'`),/\s*on\w+\s*=\s*["']?[^"'>]+["']?/gi.test(e)&&(e=e.replace(/(\s+)(on)(\w+\s*=)/gi,"$1on$3")),[/(\s+(?:href|src|action|formaction)\s*=\s*["']?)\s*javascript:/gi,/(style\s*=\s*["'][^"']*url\s*\(\s*)javascript:/gi].forEach(n=>{e=e.replace(n,"$1javascript:")}),e}const Bb=Object.prototype.hasOwnProperty;function Xt(e,t){return Bb.call(e,t)}const rt=Array.isArray,tt=e=>typeof e=="function",fe=e=>typeof e=="string",De=e=>typeof e=="boolean",ze=e=>e!==null&&typeof e=="object",Gb=e=>ze(e)&&tt(e.then)&&tt(e.catch),Uc=Object.prototype.toString,zc=e=>Uc.call(e),Ce=e=>{if(!ze(e))return!1;const t=Object.getPrototypeOf(e);return t===null||t.constructor===Object},jb=e=>e==null?"":rt(e)||Ce(e)&&e.toString===Uc?JSON.stringify(e,null,2):String(e);function Ub(e,t=""){return e.reduce((o,n,a)=>a===0?o+n:o+t+n,"")}function cr(e){let t=e;return()=>++t}const ur=e=>!ze(e)||rt(e);function dr(e,t){if(ur(e)||ur(t))throw new Error("Invalid value");const o=[{src:e,des:t}];for(;o.length;){const{src:n,des:a}=o.pop();Object.keys(n).forEach(r=>{r!=="__proto__"&&(ze(n[r])&&!ze(a[r])&&(a[r]=Array.isArray(n[r])?[]:Xe()),ur(a[r])||ur(n[r])?a[r]=n[r]:o.push({src:n[r],des:a[r]}))})}}/*! * message-compiler v9.14.5 * (c) 2025 kazuya kawaguchi * Released under the MIT License. - */function Ub(e,t,o){return{line:e,column:t,offset:o}}function pr(e,t,o){return{start:e,end:t}}const Kb=/\{([0-9a-zA-Z]+)\}/g;function zc(e,...t){return t.length===1&&zb(t[0])&&(t=t[0]),(!t||!t.hasOwnProperty)&&(t={}),e.replace(Kb,(o,n)=>t.hasOwnProperty(n)?t[n]:"")}const Hc=Object.assign,Vc=e=>typeof e=="string",zb=e=>e!==null&&typeof e=="object";function Wc(e,t=""){return e.reduce((o,n,a)=>a===0?o+n:o+t+n,"")}const Ss={USE_MODULO_SYNTAX:1,__EXTEND_POINT__:2},Hb={[Ss.USE_MODULO_SYNTAX]:"Use modulo before '{{0}}'."};function Vb(e,t,...o){const n=zc(Hb[e],...o||[]),a={message:String(n),code:e};return t&&(a.location=t),a}const Ae={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},Wb={[Ae.EXPECTED_TOKEN]:"Expected token: '{0}'",[Ae.INVALID_TOKEN_IN_PLACEHOLDER]:"Invalid token in placeholder: '{0}'",[Ae.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER]:"Unterminated single quote in placeholder",[Ae.UNKNOWN_ESCAPE_SEQUENCE]:"Unknown escape sequence: \\{0}",[Ae.INVALID_UNICODE_ESCAPE_SEQUENCE]:"Invalid unicode escape sequence: {0}",[Ae.UNBALANCED_CLOSING_BRACE]:"Unbalanced closing brace",[Ae.UNTERMINATED_CLOSING_BRACE]:"Unterminated closing brace",[Ae.EMPTY_PLACEHOLDER]:"Empty placeholder",[Ae.NOT_ALLOW_NEST_PLACEHOLDER]:"Not allowed nest placeholder",[Ae.INVALID_LINKED_FORMAT]:"Invalid linked format",[Ae.MUST_HAVE_MESSAGES_IN_PLURAL]:"Plural must have messages",[Ae.UNEXPECTED_EMPTY_LINKED_MODIFIER]:"Unexpected empty linked modifier",[Ae.UNEXPECTED_EMPTY_LINKED_KEY]:"Unexpected empty linked key",[Ae.UNEXPECTED_LEXICAL_ANALYSIS]:"Unexpected lexical analysis in token: '{0}'",[Ae.UNHANDLED_CODEGEN_NODE_TYPE]:"unhandled codegen node type: '{0}'",[Ae.UNHANDLED_MINIFIER_NODE_TYPE]:"unhandled mimifier node type: '{0}'"};function xn(e,t,o={}){const{domain:n,messages:a,args:r}=o,s=zc((a||Wb)[e]||"",...r||[]),i=new SyntaxError(String(s));return i.code=e,t&&(i.location=t),i.domain=n,i}function Yb(e){throw e}const Lo=" ",qb="\r",It=` -`,Jb="\u2028",Xb="\u2029";function Zb(e){const t=e;let o=0,n=1,a=1,r=0;const s=A=>t[A]===qb&&t[A+1]===It,i=A=>t[A]===It,l=A=>t[A]===Xb,u=A=>t[A]===Jb,c=A=>s(A)||i(A)||l(A)||u(A),p=()=>o,f=()=>n,k=()=>a,w=()=>r,m=A=>s(A)||l(A)||u(A)?It:t[A],d=()=>m(o),g=()=>m(o+r);function h(){return r=0,c(o)&&(n++,a=0),s(o)&&o++,o++,a++,t[o]}function b(){return s(o+r)&&r++,r++,t[o+r]}function _(){o=0,n=1,a=1,r=0}function x(A=0){r=A}function $(){const A=o+r;for(;A!==o;)h();r=0}return{index:p,line:f,column:k,peekOffset:w,charAt:m,currentChar:d,currentPeek:g,next:h,peek:b,reset:_,resetPeek:x,skipToPeek:$}}const Bo=void 0,Qb=".",Yc="'",ey="tokenizer";function ty(e,t={}){const o=t.location!==!1,n=Zb(e),a=()=>n.index(),r=()=>Ub(n.line(),n.column(),n.index()),s=r(),i=a(),l={currentType:14,offset:i,startLoc:s,endLoc:s,lastType:14,lastOffset:i,lastStartLoc:s,lastEndLoc:s,braceNest:0,inLinked:!1,text:""},u=()=>l,{onError:c}=t;function p(y,v,B,...W){const ue=u();if(v.column+=B,v.offset+=B,c){const se=o?pr(ue.startLoc,v):null,G=xn(y,se,{domain:ey,args:W});c(G)}}function f(y,v,B){y.endLoc=r(),y.currentType=v;const W={type:v};return o&&(W.loc=pr(y.startLoc,y.endLoc)),B!=null&&(W.value=B),W}const k=y=>f(y,14);function w(y,v){return y.currentChar()===v?(y.next(),v):(p(Ae.EXPECTED_TOKEN,r(),0,v),"")}function m(y){let v="";for(;y.currentPeek()===Lo||y.currentPeek()===It;)v+=y.currentPeek(),y.peek();return v}function d(y){const v=m(y);return y.skipToPeek(),v}function g(y){if(y===Bo)return!1;const v=y.charCodeAt(0);return v>=97&&v<=122||v>=65&&v<=90||v===95}function h(y){if(y===Bo)return!1;const v=y.charCodeAt(0);return v>=48&&v<=57}function b(y,v){const{currentType:B}=v;if(B!==2)return!1;m(y);const W=g(y.currentPeek());return y.resetPeek(),W}function _(y,v){const{currentType:B}=v;if(B!==2)return!1;m(y);const W=y.currentPeek()==="-"?y.peek():y.currentPeek(),ue=h(W);return y.resetPeek(),ue}function x(y,v){const{currentType:B}=v;if(B!==2)return!1;m(y);const W=y.currentPeek()===Yc;return y.resetPeek(),W}function $(y,v){const{currentType:B}=v;if(B!==8)return!1;m(y);const W=y.currentPeek()===".";return y.resetPeek(),W}function A(y,v){const{currentType:B}=v;if(B!==9)return!1;m(y);const W=g(y.currentPeek());return y.resetPeek(),W}function C(y,v){const{currentType:B}=v;if(!(B===8||B===12))return!1;m(y);const W=y.currentPeek()===":";return y.resetPeek(),W}function P(y,v){const{currentType:B}=v;if(B!==10)return!1;const W=()=>{const se=y.currentPeek();return se==="{"?g(y.peek()):se==="@"||se==="%"||se==="|"||se===":"||se==="."||se===Lo||!se?!1:se===It?(y.peek(),W()):re(y,!1)},ue=W();return y.resetPeek(),ue}function z(y){m(y);const v=y.currentPeek()==="|";return y.resetPeek(),v}function Y(y){const v=m(y),B=y.currentPeek()==="%"&&y.peek()==="{";return y.resetPeek(),{isModulo:B,hasSpace:v.length>0}}function re(y,v=!0){const B=(ue=!1,se="",G=!1)=>{const q=y.currentPeek();return q==="{"?se==="%"?!1:ue:q==="@"||!q?se==="%"?!0:ue:q==="%"?(y.peek(),B(ue,"%",!0)):q==="|"?se==="%"||G?!0:!(se===Lo||se===It):q===Lo?(y.peek(),B(!0,Lo,G)):q===It?(y.peek(),B(!0,It,G)):!0},W=B();return v&&y.resetPeek(),W}function M(y,v){const B=y.currentChar();return B===Bo?Bo:v(B)?(y.next(),B):null}function F(y){const v=y.charCodeAt(0);return v>=97&&v<=122||v>=65&&v<=90||v>=48&&v<=57||v===95||v===36}function T(y){return M(y,F)}function S(y){const v=y.charCodeAt(0);return v>=97&&v<=122||v>=65&&v<=90||v>=48&&v<=57||v===95||v===36||v===45}function I(y){return M(y,S)}function ne(y){const v=y.charCodeAt(0);return v>=48&&v<=57}function ge(y){return M(y,ne)}function L(y){const v=y.charCodeAt(0);return v>=48&&v<=57||v>=65&&v<=70||v>=97&&v<=102}function ae(y){return M(y,L)}function ie(y){let v="",B="";for(;v=ge(y);)B+=v;return B}function ce(y){d(y);const v=y.currentChar();return v!=="%"&&p(Ae.EXPECTED_TOKEN,r(),0,v),y.next(),"%"}function we(y){let v="";for(;;){const B=y.currentChar();if(B==="{"||B==="}"||B==="@"||B==="|"||!B)break;if(B==="%")if(re(y))v+=B,y.next();else break;else if(B===Lo||B===It)if(re(y))v+=B,y.next();else{if(z(y))break;v+=B,y.next()}else v+=B,y.next()}return v}function Me(y){d(y);let v="",B="";for(;v=I(y);)B+=v;return y.currentChar()===Bo&&p(Ae.UNTERMINATED_CLOSING_BRACE,r(),0),B}function Re(y){d(y);let v="";return y.currentChar()==="-"?(y.next(),v+=`-${ie(y)}`):v+=ie(y),y.currentChar()===Bo&&p(Ae.UNTERMINATED_CLOSING_BRACE,r(),0),v}function Oe(y){return y!==Yc&&y!==It}function Ie(y){d(y),w(y,"'");let v="",B="";for(;v=M(y,Oe);)v==="\\"?B+=qe(y):B+=v;const W=y.currentChar();return W===It||W===Bo?(p(Ae.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER,r(),0),W===It&&(y.next(),w(y,"'")),B):(w(y,"'"),B)}function qe(y){const v=y.currentChar();switch(v){case"\\":case"'":return y.next(),`\\${v}`;case"u":return Je(y,v,4);case"U":return Je(y,v,6);default:return p(Ae.UNKNOWN_ESCAPE_SEQUENCE,r(),0,v),""}}function Je(y,v,B){w(y,v);let W="";for(let ue=0;ue{const W=y.currentChar();return W==="{"||W==="%"||W==="@"||W==="|"||W==="("||W===")"||!W||W===Lo?B:(B+=W,y.next(),v(B))};return v("")}function H(y){d(y);const v=w(y,"|");return d(y),v}function X(y,v){let B=null;switch(y.currentChar()){case"{":return v.braceNest>=1&&p(Ae.NOT_ALLOW_NEST_PLACEHOLDER,r(),0),y.next(),B=f(v,2,"{"),d(y),v.braceNest++,B;case"}":return v.braceNest>0&&v.currentType===2&&p(Ae.EMPTY_PLACEHOLDER,r(),0),y.next(),B=f(v,3,"}"),v.braceNest--,v.braceNest>0&&d(y),v.inLinked&&v.braceNest===0&&(v.inLinked=!1),B;case"@":return v.braceNest>0&&p(Ae.UNTERMINATED_CLOSING_BRACE,r(),0),B=J(y,v)||k(v),v.braceNest=0,B;default:{let ue=!0,se=!0,G=!0;if(z(y))return v.braceNest>0&&p(Ae.UNTERMINATED_CLOSING_BRACE,r(),0),B=f(v,1,H(y)),v.braceNest=0,v.inLinked=!1,B;if(v.braceNest>0&&(v.currentType===5||v.currentType===6||v.currentType===7))return p(Ae.UNTERMINATED_CLOSING_BRACE,r(),0),v.braceNest=0,Z(y,v);if(ue=b(y,v))return B=f(v,5,Me(y)),d(y),B;if(se=_(y,v))return B=f(v,6,Re(y)),d(y),B;if(G=x(y,v))return B=f(v,7,Ie(y)),d(y),B;if(!ue&&!se&&!G)return B=f(v,13,E(y)),p(Ae.INVALID_TOKEN_IN_PLACEHOLDER,r(),0,B.value),d(y),B;break}}return B}function J(y,v){const{currentType:B}=v;let W=null;const ue=y.currentChar();switch((B===8||B===9||B===12||B===10)&&(ue===It||ue===Lo)&&p(Ae.INVALID_LINKED_FORMAT,r(),0),ue){case"@":return y.next(),W=f(v,8,"@"),v.inLinked=!0,W;case".":return d(y),y.next(),f(v,9,".");case":":return d(y),y.next(),f(v,10,":");default:return z(y)?(W=f(v,1,H(y)),v.braceNest=0,v.inLinked=!1,W):$(y,v)||C(y,v)?(d(y),J(y,v)):A(y,v)?(d(y),f(v,12,O(y))):P(y,v)?(d(y),ue==="{"?X(y,v)||W:f(v,11,R(y))):(B===8&&p(Ae.INVALID_LINKED_FORMAT,r(),0),v.braceNest=0,v.inLinked=!1,Z(y,v))}}function Z(y,v){let B={type:14};if(v.braceNest>0)return X(y,v)||k(v);if(v.inLinked)return J(y,v)||k(v);switch(y.currentChar()){case"{":return X(y,v)||k(v);case"}":return p(Ae.UNBALANCED_CLOSING_BRACE,r(),0),y.next(),f(v,3,"}");case"@":return J(y,v)||k(v);default:{if(z(y))return B=f(v,1,H(y)),v.braceNest=0,v.inLinked=!1,B;const{isModulo:ue,hasSpace:se}=Y(y);if(ue)return se?f(v,0,we(y)):f(v,4,ce(y));if(re(y))return f(v,0,we(y));break}}return B}function ee(){const{currentType:y,offset:v,startLoc:B,endLoc:W}=l;return l.lastType=y,l.lastOffset=v,l.lastStartLoc=B,l.lastEndLoc=W,l.offset=a(),l.startLoc=r(),n.currentChar()===Bo?f(l,14):Z(n,l)}return{nextToken:ee,currentOffset:a,currentPosition:r,context:u}}const oy="parser",ny=/(?:\\\\|\\'|\\u([0-9a-fA-F]{4})|\\U([0-9a-fA-F]{6}))/g;function ay(e,t,o){switch(e){case"\\\\":return"\\";case"\\'":return"'";default:{const n=parseInt(t||o,16);return n<=55295||n>=57344?String.fromCodePoint(n):"�"}}}function ry(e={}){const t=e.location!==!1,{onError:o,onWarn:n}=e;function a(b,_,x,$,...A){const C=b.currentPosition();if(C.offset+=$,C.column+=$,o){const P=t?pr(x,C):null,z=xn(_,P,{domain:oy,args:A});o(z)}}function r(b,_,x,$,...A){const C=b.currentPosition();if(C.offset+=$,C.column+=$,n){const P=t?pr(x,C):null;n(Vb(_,P,A))}}function s(b,_,x){const $={type:b};return t&&($.start=_,$.end=_,$.loc={start:x,end:x}),$}function i(b,_,x,$){t&&(b.end=_,b.loc&&(b.loc.end=x))}function l(b,_){const x=b.context(),$=s(3,x.offset,x.startLoc);return $.value=_,i($,b.currentOffset(),b.currentPosition()),$}function u(b,_){const x=b.context(),{lastOffset:$,lastStartLoc:A}=x,C=s(5,$,A);return C.index=parseInt(_,10),b.nextToken(),i(C,b.currentOffset(),b.currentPosition()),C}function c(b,_,x){const $=b.context(),{lastOffset:A,lastStartLoc:C}=$,P=s(4,A,C);return P.key=_,x===!0&&(P.modulo=!0),b.nextToken(),i(P,b.currentOffset(),b.currentPosition()),P}function p(b,_){const x=b.context(),{lastOffset:$,lastStartLoc:A}=x,C=s(9,$,A);return C.value=_.replace(ny,ay),b.nextToken(),i(C,b.currentOffset(),b.currentPosition()),C}function f(b){const _=b.nextToken(),x=b.context(),{lastOffset:$,lastStartLoc:A}=x,C=s(8,$,A);return _.type!==12?(a(b,Ae.UNEXPECTED_EMPTY_LINKED_MODIFIER,x.lastStartLoc,0),C.value="",i(C,$,A),{nextConsumeToken:_,node:C}):(_.value==null&&a(b,Ae.UNEXPECTED_LEXICAL_ANALYSIS,x.lastStartLoc,0,Xt(_)),C.value=_.value||"",i(C,b.currentOffset(),b.currentPosition()),{node:C})}function k(b,_){const x=b.context(),$=s(7,x.offset,x.startLoc);return $.value=_,i($,b.currentOffset(),b.currentPosition()),$}function w(b){const _=b.context(),x=s(6,_.offset,_.startLoc);let $=b.nextToken();if($.type===9){const A=f(b);x.modifier=A.node,$=A.nextConsumeToken||b.nextToken()}switch($.type!==10&&a(b,Ae.UNEXPECTED_LEXICAL_ANALYSIS,_.lastStartLoc,0,Xt($)),$=b.nextToken(),$.type===2&&($=b.nextToken()),$.type){case 11:$.value==null&&a(b,Ae.UNEXPECTED_LEXICAL_ANALYSIS,_.lastStartLoc,0,Xt($)),x.key=k(b,$.value||"");break;case 5:$.value==null&&a(b,Ae.UNEXPECTED_LEXICAL_ANALYSIS,_.lastStartLoc,0,Xt($)),x.key=c(b,$.value||"");break;case 6:$.value==null&&a(b,Ae.UNEXPECTED_LEXICAL_ANALYSIS,_.lastStartLoc,0,Xt($)),x.key=u(b,$.value||"");break;case 7:$.value==null&&a(b,Ae.UNEXPECTED_LEXICAL_ANALYSIS,_.lastStartLoc,0,Xt($)),x.key=p(b,$.value||"");break;default:{a(b,Ae.UNEXPECTED_EMPTY_LINKED_KEY,_.lastStartLoc,0);const A=b.context(),C=s(7,A.offset,A.startLoc);return C.value="",i(C,A.offset,A.startLoc),x.key=C,i(x,A.offset,A.startLoc),{nextConsumeToken:$,node:x}}}return i(x,b.currentOffset(),b.currentPosition()),{node:x}}function m(b){const _=b.context(),x=_.currentType===1?b.currentOffset():_.offset,$=_.currentType===1?_.endLoc:_.startLoc,A=s(2,x,$);A.items=[];let C=null,P=null;do{const re=C||b.nextToken();switch(C=null,re.type){case 0:re.value==null&&a(b,Ae.UNEXPECTED_LEXICAL_ANALYSIS,_.lastStartLoc,0,Xt(re)),A.items.push(l(b,re.value||""));break;case 6:re.value==null&&a(b,Ae.UNEXPECTED_LEXICAL_ANALYSIS,_.lastStartLoc,0,Xt(re)),A.items.push(u(b,re.value||""));break;case 4:P=!0;break;case 5:re.value==null&&a(b,Ae.UNEXPECTED_LEXICAL_ANALYSIS,_.lastStartLoc,0,Xt(re)),A.items.push(c(b,re.value||"",!!P)),P&&(r(b,Ss.USE_MODULO_SYNTAX,_.lastStartLoc,0,Xt(re)),P=null);break;case 7:re.value==null&&a(b,Ae.UNEXPECTED_LEXICAL_ANALYSIS,_.lastStartLoc,0,Xt(re)),A.items.push(p(b,re.value||""));break;case 8:{const M=w(b);A.items.push(M.node),C=M.nextConsumeToken||null;break}}}while(_.currentType!==14&&_.currentType!==1);const z=_.currentType===1?_.lastOffset:b.currentOffset(),Y=_.currentType===1?_.lastEndLoc:b.currentPosition();return i(A,z,Y),A}function d(b,_,x,$){const A=b.context();let C=$.items.length===0;const P=s(1,_,x);P.cases=[],P.cases.push($);do{const z=m(b);C||(C=z.items.length===0),P.cases.push(z)}while(A.currentType!==14);return C&&a(b,Ae.MUST_HAVE_MESSAGES_IN_PLURAL,x,0),i(P,b.currentOffset(),b.currentPosition()),P}function g(b){const _=b.context(),{offset:x,startLoc:$}=_,A=m(b);return _.currentType===14?A:d(b,x,$,A)}function h(b){const _=ty(b,Hc({},e)),x=_.context(),$=s(0,x.offset,x.startLoc);return t&&$.loc&&($.loc.source=b),$.body=g(_),e.onCacheKey&&($.cacheKey=e.onCacheKey(b)),x.currentType!==14&&a(_,Ae.UNEXPECTED_LEXICAL_ANALYSIS,x.lastStartLoc,0,b[x.offset]||""),i($,_.currentOffset(),_.currentPosition()),$}return{parse:h}}function Xt(e){if(e.type===14)return"EOF";const t=(e.value||"").replace(/\r?\n/gu,"\\n");return t.length>10?t.slice(0,9)+"…":t}function sy(e,t={}){const o={ast:e,helpers:new Set};return{context:()=>o,helper:r=>(o.helpers.add(r),r)}}function qc(e,t){for(let o=0;oJc(o)),e}function Jc(e){if(e.items.length===1){const t=e.items[0];(t.type===3||t.type===9)&&(e.static=t.value,delete t.value)}else{const t=[];for(let o=0;os;function l(m,d){s.code+=m}function u(m,d=!0){const g=d?n:"";l(a?g+" ".repeat(m):g)}function c(m=!0){const d=++s.indentLevel;m&&u(d)}function p(m=!0){const d=--s.indentLevel;m&&u(d)}function f(){u(s.indentLevel)}return{context:i,push:l,indent:c,deindent:p,newline:f,helper:m=>`_${m}`,needIndent:()=>s.needIndent}}function py(e,t){const{helper:o}=e;e.push(`${o("linked")}(`),An(e,t.key),t.modifier?(e.push(", "),An(e,t.modifier),e.push(", _type")):e.push(", undefined, _type"),e.push(")")}function gy(e,t){const{helper:o,needIndent:n}=e;e.push(`${o("normalize")}([`),e.indent(n());const a=t.items.length;for(let r=0;r1){e.push(`${o("plural")}([`),e.indent(n());const a=t.cases.length;for(let r=0;r{const o=Vc(t.mode)?t.mode:"normal",n=Vc(t.filename)?t.filename:"message.intl";t.sourceMap;const a=t.breakLineCode!=null?t.breakLineCode:o==="arrow"?";":` -`,r=t.needIndent?t.needIndent:o!=="arrow",s=e.helpers||[],i=dy(e,{filename:n,breakLineCode:a,needIndent:r});i.push(o==="normal"?"function __msg__ (ctx) {":"(ctx) => {"),i.indent(r),s.length>0&&(i.push(`const { ${Wc(s.map(c=>`${c}: _${c}`),", ")} } = ctx`),i.newline()),i.push("return "),An(i,e),i.deindent(r),i.push("}"),delete e.helpers;const{code:l,map:u}=i.context();return{ast:e,code:l,map:u?u.toJSON():void 0}};function by(e,t={}){const o=Hc({},t),n=!!o.jit,a=!!o.minify,r=o.optimize==null?!0:o.optimize,i=ry(o).parse(e);return n?(r&&ly(i),a&&$n(i),{ast:i,code:""}):(iy(i,o),my(i,o))}/*! + */function zb(e,t,o){return{line:e,column:t,offset:o}}function pr(e,t,o){return{start:e,end:t}}const Kb=/\{([0-9a-zA-Z]+)\}/g;function Kc(e,...t){return t.length===1&&Hb(t[0])&&(t=t[0]),(!t||!t.hasOwnProperty)&&(t={}),e.replace(Kb,(o,n)=>t.hasOwnProperty(n)?t[n]:"")}const Hc=Object.assign,Vc=e=>typeof e=="string",Hb=e=>e!==null&&typeof e=="object";function Wc(e,t=""){return e.reduce((o,n,a)=>a===0?o+n:o+t+n,"")}const Ss={USE_MODULO_SYNTAX:1,__EXTEND_POINT__:2},Vb={[Ss.USE_MODULO_SYNTAX]:"Use modulo before '{{0}}'."};function Wb(e,t,...o){const n=Kc(Vb[e],...o||[]),a={message:String(n),code:e};return t&&(a.location=t),a}const Ae={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},Yb={[Ae.EXPECTED_TOKEN]:"Expected token: '{0}'",[Ae.INVALID_TOKEN_IN_PLACEHOLDER]:"Invalid token in placeholder: '{0}'",[Ae.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER]:"Unterminated single quote in placeholder",[Ae.UNKNOWN_ESCAPE_SEQUENCE]:"Unknown escape sequence: \\{0}",[Ae.INVALID_UNICODE_ESCAPE_SEQUENCE]:"Invalid unicode escape sequence: {0}",[Ae.UNBALANCED_CLOSING_BRACE]:"Unbalanced closing brace",[Ae.UNTERMINATED_CLOSING_BRACE]:"Unterminated closing brace",[Ae.EMPTY_PLACEHOLDER]:"Empty placeholder",[Ae.NOT_ALLOW_NEST_PLACEHOLDER]:"Not allowed nest placeholder",[Ae.INVALID_LINKED_FORMAT]:"Invalid linked format",[Ae.MUST_HAVE_MESSAGES_IN_PLURAL]:"Plural must have messages",[Ae.UNEXPECTED_EMPTY_LINKED_MODIFIER]:"Unexpected empty linked modifier",[Ae.UNEXPECTED_EMPTY_LINKED_KEY]:"Unexpected empty linked key",[Ae.UNEXPECTED_LEXICAL_ANALYSIS]:"Unexpected lexical analysis in token: '{0}'",[Ae.UNHANDLED_CODEGEN_NODE_TYPE]:"unhandled codegen node type: '{0}'",[Ae.UNHANDLED_MINIFIER_NODE_TYPE]:"unhandled mimifier node type: '{0}'"};function xn(e,t,o={}){const{domain:n,messages:a,args:r}=o,s=Kc((a||Yb)[e]||"",...r||[]),i=new SyntaxError(String(s));return i.code=e,t&&(i.location=t),i.domain=n,i}function qb(e){throw e}const Lo=" ",Jb="\r",It=` +`,Xb="\u2028",Zb="\u2029";function Qb(e){const t=e;let o=0,n=1,a=1,r=0;const s=A=>t[A]===Jb&&t[A+1]===It,i=A=>t[A]===It,l=A=>t[A]===Zb,u=A=>t[A]===Xb,c=A=>s(A)||i(A)||l(A)||u(A),p=()=>o,g=()=>n,k=()=>a,w=()=>r,m=A=>s(A)||l(A)||u(A)?It:t[A],d=()=>m(o),f=()=>m(o+r);function h(){return r=0,c(o)&&(n++,a=0),s(o)&&o++,o++,a++,t[o]}function b(){return s(o+r)&&r++,r++,t[o+r]}function _(){o=0,n=1,a=1,r=0}function x(A=0){r=A}function $(){const A=o+r;for(;A!==o;)h();r=0}return{index:p,line:g,column:k,peekOffset:w,charAt:m,currentChar:d,currentPeek:f,next:h,peek:b,reset:_,resetPeek:x,skipToPeek:$}}const Bo=void 0,ey=".",Yc="'",ty="tokenizer";function oy(e,t={}){const o=t.location!==!1,n=Qb(e),a=()=>n.index(),r=()=>zb(n.line(),n.column(),n.index()),s=r(),i=a(),l={currentType:14,offset:i,startLoc:s,endLoc:s,lastType:14,lastOffset:i,lastStartLoc:s,lastEndLoc:s,braceNest:0,inLinked:!1,text:""},u=()=>l,{onError:c}=t;function p(y,v,B,...Y){const de=u();if(v.column+=B,v.offset+=B,c){const ie=o?pr(de.startLoc,v):null,G=xn(y,ie,{domain:ty,args:Y});c(G)}}function g(y,v,B){y.endLoc=r(),y.currentType=v;const Y={type:v};return o&&(Y.loc=pr(y.startLoc,y.endLoc)),B!=null&&(Y.value=B),Y}const k=y=>g(y,14);function w(y,v){return y.currentChar()===v?(y.next(),v):(p(Ae.EXPECTED_TOKEN,r(),0,v),"")}function m(y){let v="";for(;y.currentPeek()===Lo||y.currentPeek()===It;)v+=y.currentPeek(),y.peek();return v}function d(y){const v=m(y);return y.skipToPeek(),v}function f(y){if(y===Bo)return!1;const v=y.charCodeAt(0);return v>=97&&v<=122||v>=65&&v<=90||v===95}function h(y){if(y===Bo)return!1;const v=y.charCodeAt(0);return v>=48&&v<=57}function b(y,v){const{currentType:B}=v;if(B!==2)return!1;m(y);const Y=f(y.currentPeek());return y.resetPeek(),Y}function _(y,v){const{currentType:B}=v;if(B!==2)return!1;m(y);const Y=y.currentPeek()==="-"?y.peek():y.currentPeek(),de=h(Y);return y.resetPeek(),de}function x(y,v){const{currentType:B}=v;if(B!==2)return!1;m(y);const Y=y.currentPeek()===Yc;return y.resetPeek(),Y}function $(y,v){const{currentType:B}=v;if(B!==8)return!1;m(y);const Y=y.currentPeek()===".";return y.resetPeek(),Y}function A(y,v){const{currentType:B}=v;if(B!==9)return!1;m(y);const Y=f(y.currentPeek());return y.resetPeek(),Y}function P(y,v){const{currentType:B}=v;if(!(B===8||B===12))return!1;m(y);const Y=y.currentPeek()===":";return y.resetPeek(),Y}function T(y,v){const{currentType:B}=v;if(B!==10)return!1;const Y=()=>{const ie=y.currentPeek();return ie==="{"?f(y.peek()):ie==="@"||ie==="%"||ie==="|"||ie===":"||ie==="."||ie===Lo||!ie?!1:ie===It?(y.peek(),Y()):re(y,!1)},de=Y();return y.resetPeek(),de}function z(y){m(y);const v=y.currentPeek()==="|";return y.resetPeek(),v}function W(y){const v=m(y),B=y.currentPeek()==="%"&&y.peek()==="{";return y.resetPeek(),{isModulo:B,hasSpace:v.length>0}}function re(y,v=!0){const B=(de=!1,ie="",G=!1)=>{const q=y.currentPeek();return q==="{"?ie==="%"?!1:de:q==="@"||!q?ie==="%"?!0:de:q==="%"?(y.peek(),B(de,"%",!0)):q==="|"?ie==="%"||G?!0:!(ie===Lo||ie===It):q===Lo?(y.peek(),B(!0,Lo,G)):q===It?(y.peek(),B(!0,It,G)):!0},Y=B();return v&&y.resetPeek(),Y}function M(y,v){const B=y.currentChar();return B===Bo?Bo:v(B)?(y.next(),B):null}function O(y){const v=y.charCodeAt(0);return v>=97&&v<=122||v>=65&&v<=90||v>=48&&v<=57||v===95||v===36}function D(y){return M(y,O)}function S(y){const v=y.charCodeAt(0);return v>=97&&v<=122||v>=65&&v<=90||v>=48&&v<=57||v===95||v===36||v===45}function C(y){return M(y,S)}function ae(y){const v=y.charCodeAt(0);return v>=48&&v<=57}function le(y){return M(y,ae)}function E(y){const v=y.charCodeAt(0);return v>=48&&v<=57||v>=65&&v<=70||v>=97&&v<=102}function Q(y){return M(y,E)}function se(y){let v="",B="";for(;v=le(y);)B+=v;return B}function ue(y){d(y);const v=y.currentChar();return v!=="%"&&p(Ae.EXPECTED_TOKEN,r(),0,v),y.next(),"%"}function _e(y){let v="";for(;;){const B=y.currentChar();if(B==="{"||B==="}"||B==="@"||B==="|"||!B)break;if(B==="%")if(re(y))v+=B,y.next();else break;else if(B===Lo||B===It)if(re(y))v+=B,y.next();else{if(z(y))break;v+=B,y.next()}else v+=B,y.next()}return v}function Te(y){d(y);let v="",B="";for(;v=C(y);)B+=v;return y.currentChar()===Bo&&p(Ae.UNTERMINATED_CLOSING_BRACE,r(),0),B}function Me(y){d(y);let v="";return y.currentChar()==="-"?(y.next(),v+=`-${se(y)}`):v+=se(y),y.currentChar()===Bo&&p(Ae.UNTERMINATED_CLOSING_BRACE,r(),0),v}function Oe(y){return y!==Yc&&y!==It}function Ie(y){d(y),w(y,"'");let v="",B="";for(;v=M(y,Oe);)v==="\\"?B+=qe(y):B+=v;const Y=y.currentChar();return Y===It||Y===Bo?(p(Ae.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER,r(),0),Y===It&&(y.next(),w(y,"'")),B):(w(y,"'"),B)}function qe(y){const v=y.currentChar();switch(v){case"\\":case"'":return y.next(),`\\${v}`;case"u":return Je(y,v,4);case"U":return Je(y,v,6);default:return p(Ae.UNKNOWN_ESCAPE_SEQUENCE,r(),0,v),""}}function Je(y,v,B){w(y,v);let Y="";for(let de=0;de{const Y=y.currentChar();return Y==="{"||Y==="%"||Y==="@"||Y==="|"||Y==="("||Y===")"||!Y||Y===Lo?B:(B+=Y,y.next(),v(B))};return v("")}function H(y){d(y);const v=w(y,"|");return d(y),v}function X(y,v){let B=null;switch(y.currentChar()){case"{":return v.braceNest>=1&&p(Ae.NOT_ALLOW_NEST_PLACEHOLDER,r(),0),y.next(),B=g(v,2,"{"),d(y),v.braceNest++,B;case"}":return v.braceNest>0&&v.currentType===2&&p(Ae.EMPTY_PLACEHOLDER,r(),0),y.next(),B=g(v,3,"}"),v.braceNest--,v.braceNest>0&&d(y),v.inLinked&&v.braceNest===0&&(v.inLinked=!1),B;case"@":return v.braceNest>0&&p(Ae.UNTERMINATED_CLOSING_BRACE,r(),0),B=J(y,v)||k(v),v.braceNest=0,B;default:{let de=!0,ie=!0,G=!0;if(z(y))return v.braceNest>0&&p(Ae.UNTERMINATED_CLOSING_BRACE,r(),0),B=g(v,1,H(y)),v.braceNest=0,v.inLinked=!1,B;if(v.braceNest>0&&(v.currentType===5||v.currentType===6||v.currentType===7))return p(Ae.UNTERMINATED_CLOSING_BRACE,r(),0),v.braceNest=0,Z(y,v);if(de=b(y,v))return B=g(v,5,Te(y)),d(y),B;if(ie=_(y,v))return B=g(v,6,Me(y)),d(y),B;if(G=x(y,v))return B=g(v,7,Ie(y)),d(y),B;if(!de&&!ie&&!G)return B=g(v,13,L(y)),p(Ae.INVALID_TOKEN_IN_PLACEHOLDER,r(),0,B.value),d(y),B;break}}return B}function J(y,v){const{currentType:B}=v;let Y=null;const de=y.currentChar();switch((B===8||B===9||B===12||B===10)&&(de===It||de===Lo)&&p(Ae.INVALID_LINKED_FORMAT,r(),0),de){case"@":return y.next(),Y=g(v,8,"@"),v.inLinked=!0,Y;case".":return d(y),y.next(),g(v,9,".");case":":return d(y),y.next(),g(v,10,":");default:return z(y)?(Y=g(v,1,H(y)),v.braceNest=0,v.inLinked=!1,Y):$(y,v)||P(y,v)?(d(y),J(y,v)):A(y,v)?(d(y),g(v,12,I(y))):T(y,v)?(d(y),de==="{"?X(y,v)||Y:g(v,11,R(y))):(B===8&&p(Ae.INVALID_LINKED_FORMAT,r(),0),v.braceNest=0,v.inLinked=!1,Z(y,v))}}function Z(y,v){let B={type:14};if(v.braceNest>0)return X(y,v)||k(v);if(v.inLinked)return J(y,v)||k(v);switch(y.currentChar()){case"{":return X(y,v)||k(v);case"}":return p(Ae.UNBALANCED_CLOSING_BRACE,r(),0),y.next(),g(v,3,"}");case"@":return J(y,v)||k(v);default:{if(z(y))return B=g(v,1,H(y)),v.braceNest=0,v.inLinked=!1,B;const{isModulo:de,hasSpace:ie}=W(y);if(de)return ie?g(v,0,_e(y)):g(v,4,ue(y));if(re(y))return g(v,0,_e(y));break}}return B}function te(){const{currentType:y,offset:v,startLoc:B,endLoc:Y}=l;return l.lastType=y,l.lastOffset=v,l.lastStartLoc=B,l.lastEndLoc=Y,l.offset=a(),l.startLoc=r(),n.currentChar()===Bo?g(l,14):Z(n,l)}return{nextToken:te,currentOffset:a,currentPosition:r,context:u}}const ny="parser",ay=/(?:\\\\|\\'|\\u([0-9a-fA-F]{4})|\\U([0-9a-fA-F]{6}))/g;function ry(e,t,o){switch(e){case"\\\\":return"\\";case"\\'":return"'";default:{const n=parseInt(t||o,16);return n<=55295||n>=57344?String.fromCodePoint(n):"�"}}}function sy(e={}){const t=e.location!==!1,{onError:o,onWarn:n}=e;function a(b,_,x,$,...A){const P=b.currentPosition();if(P.offset+=$,P.column+=$,o){const T=t?pr(x,P):null,z=xn(_,T,{domain:ny,args:A});o(z)}}function r(b,_,x,$,...A){const P=b.currentPosition();if(P.offset+=$,P.column+=$,n){const T=t?pr(x,P):null;n(Wb(_,T,A))}}function s(b,_,x){const $={type:b};return t&&($.start=_,$.end=_,$.loc={start:x,end:x}),$}function i(b,_,x,$){t&&(b.end=_,b.loc&&(b.loc.end=x))}function l(b,_){const x=b.context(),$=s(3,x.offset,x.startLoc);return $.value=_,i($,b.currentOffset(),b.currentPosition()),$}function u(b,_){const x=b.context(),{lastOffset:$,lastStartLoc:A}=x,P=s(5,$,A);return P.index=parseInt(_,10),b.nextToken(),i(P,b.currentOffset(),b.currentPosition()),P}function c(b,_,x){const $=b.context(),{lastOffset:A,lastStartLoc:P}=$,T=s(4,A,P);return T.key=_,x===!0&&(T.modulo=!0),b.nextToken(),i(T,b.currentOffset(),b.currentPosition()),T}function p(b,_){const x=b.context(),{lastOffset:$,lastStartLoc:A}=x,P=s(9,$,A);return P.value=_.replace(ay,ry),b.nextToken(),i(P,b.currentOffset(),b.currentPosition()),P}function g(b){const _=b.nextToken(),x=b.context(),{lastOffset:$,lastStartLoc:A}=x,P=s(8,$,A);return _.type!==12?(a(b,Ae.UNEXPECTED_EMPTY_LINKED_MODIFIER,x.lastStartLoc,0),P.value="",i(P,$,A),{nextConsumeToken:_,node:P}):(_.value==null&&a(b,Ae.UNEXPECTED_LEXICAL_ANALYSIS,x.lastStartLoc,0,Zt(_)),P.value=_.value||"",i(P,b.currentOffset(),b.currentPosition()),{node:P})}function k(b,_){const x=b.context(),$=s(7,x.offset,x.startLoc);return $.value=_,i($,b.currentOffset(),b.currentPosition()),$}function w(b){const _=b.context(),x=s(6,_.offset,_.startLoc);let $=b.nextToken();if($.type===9){const A=g(b);x.modifier=A.node,$=A.nextConsumeToken||b.nextToken()}switch($.type!==10&&a(b,Ae.UNEXPECTED_LEXICAL_ANALYSIS,_.lastStartLoc,0,Zt($)),$=b.nextToken(),$.type===2&&($=b.nextToken()),$.type){case 11:$.value==null&&a(b,Ae.UNEXPECTED_LEXICAL_ANALYSIS,_.lastStartLoc,0,Zt($)),x.key=k(b,$.value||"");break;case 5:$.value==null&&a(b,Ae.UNEXPECTED_LEXICAL_ANALYSIS,_.lastStartLoc,0,Zt($)),x.key=c(b,$.value||"");break;case 6:$.value==null&&a(b,Ae.UNEXPECTED_LEXICAL_ANALYSIS,_.lastStartLoc,0,Zt($)),x.key=u(b,$.value||"");break;case 7:$.value==null&&a(b,Ae.UNEXPECTED_LEXICAL_ANALYSIS,_.lastStartLoc,0,Zt($)),x.key=p(b,$.value||"");break;default:{a(b,Ae.UNEXPECTED_EMPTY_LINKED_KEY,_.lastStartLoc,0);const A=b.context(),P=s(7,A.offset,A.startLoc);return P.value="",i(P,A.offset,A.startLoc),x.key=P,i(x,A.offset,A.startLoc),{nextConsumeToken:$,node:x}}}return i(x,b.currentOffset(),b.currentPosition()),{node:x}}function m(b){const _=b.context(),x=_.currentType===1?b.currentOffset():_.offset,$=_.currentType===1?_.endLoc:_.startLoc,A=s(2,x,$);A.items=[];let P=null,T=null;do{const re=P||b.nextToken();switch(P=null,re.type){case 0:re.value==null&&a(b,Ae.UNEXPECTED_LEXICAL_ANALYSIS,_.lastStartLoc,0,Zt(re)),A.items.push(l(b,re.value||""));break;case 6:re.value==null&&a(b,Ae.UNEXPECTED_LEXICAL_ANALYSIS,_.lastStartLoc,0,Zt(re)),A.items.push(u(b,re.value||""));break;case 4:T=!0;break;case 5:re.value==null&&a(b,Ae.UNEXPECTED_LEXICAL_ANALYSIS,_.lastStartLoc,0,Zt(re)),A.items.push(c(b,re.value||"",!!T)),T&&(r(b,Ss.USE_MODULO_SYNTAX,_.lastStartLoc,0,Zt(re)),T=null);break;case 7:re.value==null&&a(b,Ae.UNEXPECTED_LEXICAL_ANALYSIS,_.lastStartLoc,0,Zt(re)),A.items.push(p(b,re.value||""));break;case 8:{const M=w(b);A.items.push(M.node),P=M.nextConsumeToken||null;break}}}while(_.currentType!==14&&_.currentType!==1);const z=_.currentType===1?_.lastOffset:b.currentOffset(),W=_.currentType===1?_.lastEndLoc:b.currentPosition();return i(A,z,W),A}function d(b,_,x,$){const A=b.context();let P=$.items.length===0;const T=s(1,_,x);T.cases=[],T.cases.push($);do{const z=m(b);P||(P=z.items.length===0),T.cases.push(z)}while(A.currentType!==14);return P&&a(b,Ae.MUST_HAVE_MESSAGES_IN_PLURAL,x,0),i(T,b.currentOffset(),b.currentPosition()),T}function f(b){const _=b.context(),{offset:x,startLoc:$}=_,A=m(b);return _.currentType===14?A:d(b,x,$,A)}function h(b){const _=oy(b,Hc({},e)),x=_.context(),$=s(0,x.offset,x.startLoc);return t&&$.loc&&($.loc.source=b),$.body=f(_),e.onCacheKey&&($.cacheKey=e.onCacheKey(b)),x.currentType!==14&&a(_,Ae.UNEXPECTED_LEXICAL_ANALYSIS,x.lastStartLoc,0,b[x.offset]||""),i($,_.currentOffset(),_.currentPosition()),$}return{parse:h}}function Zt(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 iy(e,t={}){const o={ast:e,helpers:new Set};return{context:()=>o,helper:r=>(o.helpers.add(r),r)}}function qc(e,t){for(let o=0;oJc(o)),e}function Jc(e){if(e.items.length===1){const t=e.items[0];(t.type===3||t.type===9)&&(e.static=t.value,delete t.value)}else{const t=[];for(let o=0;os;function l(m,d){s.code+=m}function u(m,d=!0){const f=d?n:"";l(a?f+" ".repeat(m):f)}function c(m=!0){const d=++s.indentLevel;m&&u(d)}function p(m=!0){const d=--s.indentLevel;m&&u(d)}function g(){u(s.indentLevel)}return{context:i,push:l,indent:c,deindent:p,newline:g,helper:m=>`_${m}`,needIndent:()=>s.needIndent}}function gy(e,t){const{helper:o}=e;e.push(`${o("linked")}(`),An(e,t.key),t.modifier?(e.push(", "),An(e,t.modifier),e.push(", _type")):e.push(", undefined, _type"),e.push(")")}function fy(e,t){const{helper:o,needIndent:n}=e;e.push(`${o("normalize")}([`),e.indent(n());const a=t.items.length;for(let r=0;r1){e.push(`${o("plural")}([`),e.indent(n());const a=t.cases.length;for(let r=0;r{const o=Vc(t.mode)?t.mode:"normal",n=Vc(t.filename)?t.filename:"message.intl";t.sourceMap;const a=t.breakLineCode!=null?t.breakLineCode:o==="arrow"?";":` +`,r=t.needIndent?t.needIndent:o!=="arrow",s=e.helpers||[],i=py(e,{filename:n,breakLineCode:a,needIndent:r});i.push(o==="normal"?"function __msg__ (ctx) {":"(ctx) => {"),i.indent(r),s.length>0&&(i.push(`const { ${Wc(s.map(c=>`${c}: _${c}`),", ")} } = ctx`),i.newline()),i.push("return "),An(i,e),i.deindent(r),i.push("}"),delete e.helpers;const{code:l,map:u}=i.context();return{ast:e,code:l,map:u?u.toJSON():void 0}};function yy(e,t={}){const o=Hc({},t),n=!!o.jit,a=!!o.minify,r=o.optimize==null?!0:o.optimize,i=sy(o).parse(e);return n?(r&&cy(i),a&&$n(i),{ast:i,code:""}):(ly(i,o),by(i,o))}/*! * core-base v9.14.5 * (c) 2025 kazuya kawaguchi * Released under the MIT License. - */function yy(){typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(Eo().__INTLIFY_PROD_DEVTOOLS__=!1),typeof __INTLIFY_JIT_COMPILATION__!="boolean"&&(Eo().__INTLIFY_JIT_COMPILATION__=!1),typeof __INTLIFY_DROP_MESSAGE_COMPILER__!="boolean"&&(Eo().__INTLIFY_DROP_MESSAGE_COMPILER__=!1)}function go(e){return Ke(e)&&Ls(e)===0&&(Jt(e,"b")||Jt(e,"body"))}const Xc=["b","body"];function _y(e){return Go(e,Xc)}const Zc=["c","cases"];function vy(e){return Go(e,Zc,[])}const Qc=["s","static"];function ky(e){return Go(e,Qc)}const eu=["i","items"];function wy(e){return Go(e,eu,[])}const tu=["t","type"];function Ls(e){return Go(e,tu)}const ou=["v","value"];function gr(e,t){const o=Go(e,ou);if(o!=null)return o;throw sa(t)}const nu=["m","modifier"];function xy(e){return Go(e,nu)}const au=["k","key"];function $y(e){const t=Go(e,au);if(t)return t;throw sa(6)}function Go(e,t,o){for(let n=0;n{s===void 0?s=i:s+=i},f[1]=()=>{s!==void 0&&(t.push(s),s=void 0)},f[2]=()=>{f[0](),a++},f[3]=()=>{if(a>0)a--,n=4,f[0]();else{if(a=0,s===void 0||(s=Cy(s),s===!1))return!1;f[1]()}};function k(){const w=e[o+1];if(n===5&&w==="'"||n===6&&w==='"')return o++,i="\\"+w,f[0](),!0}for(;n!==null;)if(o++,r=e[o],!(r==="\\"&&k())){if(l=Ly(r),p=jo[n],u=p[l]||p.l||8,u===8||(n=u[0],u[1]!==void 0&&(c=f[u[1]],c&&(i=r,c()===!1))))return;if(n===7)return t}}const su=new Map;function Ty(e,t){return Ke(e)?e[t]:null}function My(e,t){if(!Ke(e))return null;let o=su.get(t);if(o||(o=Py(t),o&&su.set(t,o)),!o)return null;const n=o.length;let a=e,r=0;for(;re,Ry=e=>"",Iy="text",Oy=e=>e.length===0?"":jb(e),Fy=Gb;function iu(e,t){return e=Math.abs(e),t===2?e?e>1?1:0:1:e?Math.min(e,2):0}function Dy(e){const t=pt(e.pluralIndex)?e.pluralIndex:-1;return e.named&&(pt(e.named.count)||pt(e.named.n))?pt(e.named.count)?e.named.count:pt(e.named.n)?e.named.n:t:t}function By(e,t){t.count||(t.count=e),t.n||(t.n=e)}function Gy(e={}){const t=e.locale,o=Dy(e),n=Ke(e.pluralRules)&&fe(t)&&tt(e.pluralRules[t])?e.pluralRules[t]:iu,a=Ke(e.pluralRules)&&fe(t)&&tt(e.pluralRules[t])?iu:void 0,r=g=>g[n(o,g.length,a)],s=e.list||[],i=g=>s[g],l=e.named||Xe();pt(e.pluralIndex)&&By(o,l);const u=g=>l[g];function c(g){const h=tt(e.messages)?e.messages(g):Ke(e.messages)?e.messages[g]:!1;return h||(e.parent?e.parent.message(g):Ry)}const p=g=>e.modifiers?e.modifiers[g]:Ny,f=Ce(e.processor)&&tt(e.processor.normalize)?e.processor.normalize:Oy,k=Ce(e.processor)&&tt(e.processor.interpolate)?e.processor.interpolate:Fy,w=Ce(e.processor)&&fe(e.processor.type)?e.processor.type:Iy,d={list:i,named:u,plural:r,linked:(g,...h)=>{const[b,_]=h;let x="text",$="";h.length===1?Ke(b)?($=b.modifier||$,x=b.type||x):fe(b)&&($=b||$):h.length===2&&(fe(b)&&($=b||$),fe(_)&&(x=_||x));const A=c(g)(d),C=x==="vnode"&&rt(A)&&$?A[0]:A;return $?p($)(C,x):C},message:c,type:w,interpolate:k,normalize:f,values:Lt(Xe(),s,l)};return d}let ia=null;function jy(e){ia=e}function Uy(e,t,o){ia&&ia.emit("i18n:init",{timestamp:Date.now(),i18n:e,version:t,meta:o})}const Ky=zy("function:translate");function zy(e){return t=>ia&&ia.emit(e,t)}const Hy=Ss.__EXTEND_POINT__,on=cr(Hy),Vy={FALLBACK_TO_TRANSLATE:on(),CANNOT_FORMAT_NUMBER:on(),FALLBACK_TO_NUMBER_FORMAT:on(),CANNOT_FORMAT_DATE:on(),FALLBACK_TO_DATE_FORMAT:on(),EXPERIMENTAL_CUSTOM_MESSAGE_COMPILER:on(),__EXTEND_POINT__:on()},lu=Ae.__EXTEND_POINT__,nn=cr(lu),Zt={INVALID_ARGUMENT:lu,INVALID_DATE_ARGUMENT:nn(),INVALID_ISO_DATE_ARGUMENT:nn(),NOT_SUPPORT_NON_STRING_MESSAGE:nn(),NOT_SUPPORT_LOCALE_PROMISE_VALUE:nn(),NOT_SUPPORT_LOCALE_ASYNC_FUNCTION:nn(),NOT_SUPPORT_LOCALE_TYPE:nn(),__EXTEND_POINT__:nn()};function fo(e){return xn(e,null,void 0)}function Cs(e,t){return t.locale!=null?cu(t.locale):cu(e.locale)}let Ps;function cu(e){if(fe(e))return e;if(tt(e)){if(e.resolvedOnce&&Ps!=null)return Ps;if(e.constructor.name==="Function"){const t=e();if(Bb(t))throw fo(Zt.NOT_SUPPORT_LOCALE_PROMISE_VALUE);return Ps=t}else throw fo(Zt.NOT_SUPPORT_LOCALE_ASYNC_FUNCTION)}else throw fo(Zt.NOT_SUPPORT_LOCALE_TYPE)}function Wy(e,t,o){return[...new Set([o,...rt(t)?t:Ke(t)?Object.keys(t):fe(t)?[t]:[o]])]}function uu(e,t,o){const n=fe(o)?o:Sn,a=e;a.__localeChainCache||(a.__localeChainCache=new Map);let r=a.__localeChainCache.get(n);if(!r){r=[];let s=[o];for(;rt(s);)s=du(r,s,t);const i=rt(t)||!Ce(t)?t:t.default?t.default:null;s=fe(i)?[i]:i,rt(s)&&du(r,s,!1),a.__localeChainCache.set(n,r)}return r}function du(e,t,o){let n=!0;for(let a=0;a`${e.charAt(0).toLocaleUpperCase()}${e.substr(1)}`;function Xy(){return{upper:(e,t)=>t==="text"&&fe(e)?e.toUpperCase():t==="vnode"&&Ke(e)&&"__v_isVNode"in e?e.children.toUpperCase():e,lower:(e,t)=>t==="text"&&fe(e)?e.toLowerCase():t==="vnode"&&Ke(e)&&"__v_isVNode"in e?e.children.toLowerCase():e,capitalize:(e,t)=>t==="text"&&fe(e)?gu(e):t==="vnode"&&Ke(e)&&"__v_isVNode"in e?gu(e.children):e}}let fu;function hu(e){fu=e}let mu;function Zy(e){mu=e}let bu;function Qy(e){bu=e}let yu=null;const e0=e=>{yu=e},t0=()=>yu;let _u=null;const vu=e=>{_u=e},o0=()=>_u;let ku=0;function n0(e={}){const t=tt(e.onWarn)?e.onWarn:Mb,o=fe(e.version)?e.version:Jy,n=fe(e.locale)||tt(e.locale)?e.locale:Sn,a=tt(n)?Sn:n,r=rt(e.fallbackLocale)||Ce(e.fallbackLocale)||fe(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:a,s=Ce(e.messages)?e.messages:Ts(a),i=Ce(e.datetimeFormats)?e.datetimeFormats:Ts(a),l=Ce(e.numberFormats)?e.numberFormats:Ts(a),u=Lt(Xe(),e.modifiers,Xy()),c=e.pluralRules||Xe(),p=tt(e.missing)?e.missing:null,f=De(e.missingWarn)||Do(e.missingWarn)?e.missingWarn:!0,k=De(e.fallbackWarn)||Do(e.fallbackWarn)?e.fallbackWarn:!0,w=!!e.fallbackFormat,m=!!e.unresolving,d=tt(e.postTranslation)?e.postTranslation:null,g=Ce(e.processor)?e.processor:null,h=De(e.warnHtmlMessage)?e.warnHtmlMessage:!0,b=!!e.escapeParameter,_=tt(e.messageCompiler)?e.messageCompiler:fu,x=tt(e.messageResolver)?e.messageResolver:mu||Ty,$=tt(e.localeFallbacker)?e.localeFallbacker:bu||Wy,A=Ke(e.fallbackContext)?e.fallbackContext:void 0,C=e,P=Ke(C.__datetimeFormatters)?C.__datetimeFormatters:new Map,z=Ke(C.__numberFormatters)?C.__numberFormatters:new Map,Y=Ke(C.__meta)?C.__meta:{};ku++;const re={version:o,cid:ku,locale:n,fallbackLocale:r,messages:s,modifiers:u,pluralRules:c,missing:p,missingWarn:f,fallbackWarn:k,fallbackFormat:w,unresolving:m,postTranslation:d,processor:g,warnHtmlMessage:h,escapeParameter:b,messageCompiler:_,messageResolver:x,localeFallbacker:$,fallbackContext:A,onWarn:t,__meta:Y};return re.datetimeFormats=i,re.numberFormats=l,re.__datetimeFormatters=P,re.__numberFormatters=z,__INTLIFY_PROD_DEVTOOLS__&&Uy(re,o,Y),re}const Ts=e=>({[e]:Xe()});function Ms(e,t,o,n,a){const{missing:r,onWarn:s}=e;if(r!==null){const i=r(e,o,t,a);return fe(i)?i:t}else return t}function la(e,t,o){const n=e;n.__localeChainCache=new Map,e.localeFallbacker(e,o,t)}function a0(e,t){return e===t?!1:e.split("-")[0]===t.split("-")[0]}function r0(e,t){const o=t.indexOf(e);if(o===-1)return!1;for(let n=o+1;ns0(o,e)}function s0(e,t){const o=_y(t);if(o==null)throw sa(0);if(Ls(o)===1){const r=vy(o);return e.plural(r.reduce((s,i)=>[...s,wu(e,i)],[]))}else return wu(e,o)}function wu(e,t){const o=ky(t);if(o!=null)return e.type==="text"?o:e.normalize([o]);{const n=wy(t).reduce((a,r)=>[...a,Rs(e,r)],[]);return e.normalize(n)}}function Rs(e,t){const o=Ls(t);switch(o){case 3:return gr(t,o);case 9:return gr(t,o);case 4:{const n=t;if(Jt(n,"k")&&n.k)return e.interpolate(e.named(n.k));if(Jt(n,"key")&&n.key)return e.interpolate(e.named(n.key));throw sa(o)}case 5:{const n=t;if(Jt(n,"i")&&pt(n.i))return e.interpolate(e.list(n.i));if(Jt(n,"index")&&pt(n.index))return e.interpolate(e.list(n.index));throw sa(o)}case 6:{const n=t,a=xy(n),r=$y(n);return e.linked(Rs(e,r),a?Rs(e,a):void 0,e.type)}case 7:return gr(t,o);case 8:return gr(t,o);default:throw new Error(`unhandled node on format message part: ${o}`)}}const xu=e=>e;let En=Xe();function $u(e,t={}){let o=!1;const n=t.onError||Yb;return t.onError=a=>{o=!0,n(a)},{...by(e,t),detectError:o}}const i0=(e,t)=>{if(!fe(e))throw fo(Zt.NOT_SUPPORT_NON_STRING_MESSAGE);{De(t.warnHtmlMessage)&&t.warnHtmlMessage;const n=(t.onCacheKey||xu)(e),a=En[n];if(a)return a;const{code:r,detectError:s}=$u(e,t),i=new Function(`return ${r}`)();return s?i:En[n]=i}};function l0(e,t){if(__INTLIFY_JIT_COMPILATION__&&!__INTLIFY_DROP_MESSAGE_COMPILER__&&fe(e)){De(t.warnHtmlMessage)&&t.warnHtmlMessage;const n=(t.onCacheKey||xu)(e),a=En[n];if(a)return a;const{ast:r,detectError:s}=$u(e,{...t,location:!1,jit:!0}),i=Ns(r);return s?i:En[n]=i}else{const o=e.cacheKey;if(o){const n=En[o];return n||(En[o]=Ns(e))}else return Ns(e)}}const Au=()=>"",Ht=e=>tt(e);function Su(e,...t){const{fallbackFormat:o,postTranslation:n,unresolving:a,messageCompiler:r,fallbackLocale:s,messages:i}=e,[l,u]=Is(...t),c=De(u.missingWarn)?u.missingWarn:e.missingWarn,p=De(u.fallbackWarn)?u.fallbackWarn:e.fallbackWarn,f=De(u.escapeParameter)?u.escapeParameter:e.escapeParameter,k=!!u.resolvedMessage,w=fe(u.default)||De(u.default)?De(u.default)?r?l:()=>l:u.default:o?r?l:()=>l:"",m=o||w!=="",d=Cs(e,u);f&&c0(u);let[g,h,b]=k?[l,d,i[d]||Xe()]:Eu(e,l,d,s,p,c),_=g,x=l;if(!k&&!(fe(_)||go(_)||Ht(_))&&m&&(_=w,x=_),!k&&(!(fe(_)||go(_)||Ht(_))||!fe(h)))return a?fr:l;let $=!1;const A=()=>{$=!0},C=Ht(_)?_:Lu(e,l,h,_,x,A);if($)return _;const P=p0(e,h,b,u),z=Gy(P),Y=u0(e,C,z);let re=n?n(Y,l):Y;if(f&&fe(re)&&(re=Fb(re)),__INTLIFY_PROD_DEVTOOLS__){const M={timestamp:Date.now(),key:fe(l)?l:Ht(_)?_.key:"",locale:h||(Ht(_)?_.locale:""),format:fe(_)?_:Ht(_)?_.source:"",message:re};M.meta=Lt({},e.__meta,t0()||{}),Ky(M)}return re}function c0(e){rt(e.list)?e.list=e.list.map(t=>fe(t)?Gc(t):t):Ke(e.named)&&Object.keys(e.named).forEach(t=>{fe(e.named[t])&&(e.named[t]=Gc(e.named[t]))})}function Eu(e,t,o,n,a,r){const{messages:s,onWarn:i,messageResolver:l,localeFallbacker:u}=e,c=u(e,n,o);let p=Xe(),f,k=null;const w="translate";for(let m=0;mn;return u.locale=o,u.key=t,u}const l=s(n,d0(e,o,a,n,i,r));return l.locale=o,l.key=t,l.source=n,l}function u0(e,t,o){return t(o)}function Is(...e){const[t,o,n]=e,a=Xe();if(!fe(t)&&!pt(t)&&!Ht(t)&&!go(t))throw fo(Zt.INVALID_ARGUMENT);const r=pt(t)?String(t):(Ht(t),t);return pt(o)?a.plural=o:fe(o)?a.default=o:Ce(o)&&!lr(o)?a.named=o:rt(o)&&(a.list=o),pt(n)?a.plural=n:fe(n)?a.default=n:Ce(n)&&Lt(a,n),[r,a]}function d0(e,t,o,n,a,r){return{locale:t,key:o,warnHtmlMessage:a,onError:s=>{throw r&&r(s),s},onCacheKey:s=>Nb(t,o,s)}}function p0(e,t,o,n){const{modifiers:a,pluralRules:r,messageResolver:s,fallbackLocale:i,fallbackWarn:l,missingWarn:u,fallbackContext:c}=e,f={locale:t,modifiers:a,pluralRules:r,messages:k=>{let w=s(o,k);if(w==null&&c){const[,,m]=Eu(c,k,t,i,l,u);w=s(m,k)}if(fe(w)||go(w)){let m=!1;const g=Lu(e,k,t,w,k,()=>{m=!0});return m?Au:g}else return Ht(w)?w:Au}};return e.processor&&(f.processor=e.processor),n.list&&(f.list=n.list),n.named&&(f.named=n.named),pt(n.plural)&&(f.pluralIndex=n.plural),f}function Cu(e,...t){const{datetimeFormats:o,unresolving:n,fallbackLocale:a,onWarn:r,localeFallbacker:s}=e,{__datetimeFormatters:i}=e,[l,u,c,p]=Os(...t),f=De(c.missingWarn)?c.missingWarn:e.missingWarn;De(c.fallbackWarn)?c.fallbackWarn:e.fallbackWarn;const k=!!c.part,w=Cs(e,c),m=s(e,a,w);if(!fe(l)||l==="")return new Intl.DateTimeFormat(w,p).format(u);let d={},g,h=null;const b="datetime format";for(let $=0;${Pu.includes(l)?s[l]=o[l]:r[l]=o[l]}),fe(n)?r.locale=n:Ce(n)&&(s=n),Ce(a)&&(s=a),[r.key||"",i,r,s]}function Tu(e,t,o){const n=e;for(const a in o){const r=`${t}__${a}`;n.__datetimeFormatters.has(r)&&n.__datetimeFormatters.delete(r)}}function Mu(e,...t){const{numberFormats:o,unresolving:n,fallbackLocale:a,onWarn:r,localeFallbacker:s}=e,{__numberFormatters:i}=e,[l,u,c,p]=Fs(...t),f=De(c.missingWarn)?c.missingWarn:e.missingWarn;De(c.fallbackWarn)?c.fallbackWarn:e.fallbackWarn;const k=!!c.part,w=Cs(e,c),m=s(e,a,w);if(!fe(l)||l==="")return new Intl.NumberFormat(w,p).format(u);let d={},g,h=null;const b="number format";for(let $=0;${Nu.includes(l)?s[l]=o[l]:r[l]=o[l]}),fe(n)?r.locale=n:Ce(n)&&(s=n),Ce(a)&&(s=a),[r.key||"",i,r,s]}function Ru(e,t,o){const n=e;for(const a in o){const r=`${t}__${a}`;n.__numberFormatters.has(r)&&n.__numberFormatters.delete(r)}}yy();/*! + */function _y(){typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(Eo().__INTLIFY_PROD_DEVTOOLS__=!1),typeof __INTLIFY_JIT_COMPILATION__!="boolean"&&(Eo().__INTLIFY_JIT_COMPILATION__=!1),typeof __INTLIFY_DROP_MESSAGE_COMPILER__!="boolean"&&(Eo().__INTLIFY_DROP_MESSAGE_COMPILER__=!1)}function go(e){return ze(e)&&Ls(e)===0&&(Xt(e,"b")||Xt(e,"body"))}const Xc=["b","body"];function vy(e){return Go(e,Xc)}const Zc=["c","cases"];function ky(e){return Go(e,Zc,[])}const Qc=["s","static"];function wy(e){return Go(e,Qc)}const eu=["i","items"];function xy(e){return Go(e,eu,[])}const tu=["t","type"];function Ls(e){return Go(e,tu)}const ou=["v","value"];function gr(e,t){const o=Go(e,ou);if(o!=null)return o;throw sa(t)}const nu=["m","modifier"];function $y(e){return Go(e,nu)}const au=["k","key"];function Ay(e){const t=Go(e,au);if(t)return t;throw sa(6)}function Go(e,t,o){for(let n=0;n{s===void 0?s=i:s+=i},g[1]=()=>{s!==void 0&&(t.push(s),s=void 0)},g[2]=()=>{g[0](),a++},g[3]=()=>{if(a>0)a--,n=4,g[0]();else{if(a=0,s===void 0||(s=Py(s),s===!1))return!1;g[1]()}};function k(){const w=e[o+1];if(n===5&&w==="'"||n===6&&w==='"')return o++,i="\\"+w,g[0](),!0}for(;n!==null;)if(o++,r=e[o],!(r==="\\"&&k())){if(l=Cy(r),p=jo[n],u=p[l]||p.l||8,u===8||(n=u[0],u[1]!==void 0&&(c=g[u[1]],c&&(i=r,c()===!1))))return;if(n===7)return t}}const su=new Map;function My(e,t){return ze(e)?e[t]:null}function Ny(e,t){if(!ze(e))return null;let o=su.get(t);if(o||(o=Ty(t),o&&su.set(t,o)),!o)return null;const n=o.length;let a=e,r=0;for(;re,Iy=e=>"",Oy="text",Fy=e=>e.length===0?"":Ub(e),Dy=jb;function iu(e,t){return e=Math.abs(e),t===2?e?e>1?1:0:1:e?Math.min(e,2):0}function By(e){const t=pt(e.pluralIndex)?e.pluralIndex:-1;return e.named&&(pt(e.named.count)||pt(e.named.n))?pt(e.named.count)?e.named.count:pt(e.named.n)?e.named.n:t:t}function Gy(e,t){t.count||(t.count=e),t.n||(t.n=e)}function jy(e={}){const t=e.locale,o=By(e),n=ze(e.pluralRules)&&fe(t)&&tt(e.pluralRules[t])?e.pluralRules[t]:iu,a=ze(e.pluralRules)&&fe(t)&&tt(e.pluralRules[t])?iu:void 0,r=f=>f[n(o,f.length,a)],s=e.list||[],i=f=>s[f],l=e.named||Xe();pt(e.pluralIndex)&&Gy(o,l);const u=f=>l[f];function c(f){const h=tt(e.messages)?e.messages(f):ze(e.messages)?e.messages[f]:!1;return h||(e.parent?e.parent.message(f):Iy)}const p=f=>e.modifiers?e.modifiers[f]:Ry,g=Ce(e.processor)&&tt(e.processor.normalize)?e.processor.normalize:Fy,k=Ce(e.processor)&&tt(e.processor.interpolate)?e.processor.interpolate:Dy,w=Ce(e.processor)&&fe(e.processor.type)?e.processor.type:Oy,d={list:i,named:u,plural:r,linked:(f,...h)=>{const[b,_]=h;let x="text",$="";h.length===1?ze(b)?($=b.modifier||$,x=b.type||x):fe(b)&&($=b||$):h.length===2&&(fe(b)&&($=b||$),fe(_)&&(x=_||x));const A=c(f)(d),P=x==="vnode"&&rt(A)&&$?A[0]:A;return $?p($)(P,x):P},message:c,type:w,interpolate:k,normalize:g,values:Lt(Xe(),s,l)};return d}let ia=null;function Uy(e){ia=e}function zy(e,t,o){ia&&ia.emit("i18n:init",{timestamp:Date.now(),i18n:e,version:t,meta:o})}const Ky=Hy("function:translate");function Hy(e){return t=>ia&&ia.emit(e,t)}const Vy=Ss.__EXTEND_POINT__,on=cr(Vy),Wy={FALLBACK_TO_TRANSLATE:on(),CANNOT_FORMAT_NUMBER:on(),FALLBACK_TO_NUMBER_FORMAT:on(),CANNOT_FORMAT_DATE:on(),FALLBACK_TO_DATE_FORMAT:on(),EXPERIMENTAL_CUSTOM_MESSAGE_COMPILER:on(),__EXTEND_POINT__:on()},lu=Ae.__EXTEND_POINT__,nn=cr(lu),Qt={INVALID_ARGUMENT:lu,INVALID_DATE_ARGUMENT:nn(),INVALID_ISO_DATE_ARGUMENT:nn(),NOT_SUPPORT_NON_STRING_MESSAGE:nn(),NOT_SUPPORT_LOCALE_PROMISE_VALUE:nn(),NOT_SUPPORT_LOCALE_ASYNC_FUNCTION:nn(),NOT_SUPPORT_LOCALE_TYPE:nn(),__EXTEND_POINT__:nn()};function fo(e){return xn(e,null,void 0)}function Cs(e,t){return t.locale!=null?cu(t.locale):cu(e.locale)}let Ps;function cu(e){if(fe(e))return e;if(tt(e)){if(e.resolvedOnce&&Ps!=null)return Ps;if(e.constructor.name==="Function"){const t=e();if(Gb(t))throw fo(Qt.NOT_SUPPORT_LOCALE_PROMISE_VALUE);return Ps=t}else throw fo(Qt.NOT_SUPPORT_LOCALE_ASYNC_FUNCTION)}else throw fo(Qt.NOT_SUPPORT_LOCALE_TYPE)}function Yy(e,t,o){return[...new Set([o,...rt(t)?t:ze(t)?Object.keys(t):fe(t)?[t]:[o]])]}function uu(e,t,o){const n=fe(o)?o:Sn,a=e;a.__localeChainCache||(a.__localeChainCache=new Map);let r=a.__localeChainCache.get(n);if(!r){r=[];let s=[o];for(;rt(s);)s=du(r,s,t);const i=rt(t)||!Ce(t)?t:t.default?t.default:null;s=fe(i)?[i]:i,rt(s)&&du(r,s,!1),a.__localeChainCache.set(n,r)}return r}function du(e,t,o){let n=!0;for(let a=0;a`${e.charAt(0).toLocaleUpperCase()}${e.substr(1)}`;function Zy(){return{upper:(e,t)=>t==="text"&&fe(e)?e.toUpperCase():t==="vnode"&&ze(e)&&"__v_isVNode"in e?e.children.toUpperCase():e,lower:(e,t)=>t==="text"&&fe(e)?e.toLowerCase():t==="vnode"&&ze(e)&&"__v_isVNode"in e?e.children.toLowerCase():e,capitalize:(e,t)=>t==="text"&&fe(e)?gu(e):t==="vnode"&&ze(e)&&"__v_isVNode"in e?gu(e.children):e}}let fu;function hu(e){fu=e}let mu;function Qy(e){mu=e}let bu;function e0(e){bu=e}let yu=null;const t0=e=>{yu=e},o0=()=>yu;let _u=null;const vu=e=>{_u=e},n0=()=>_u;let ku=0;function a0(e={}){const t=tt(e.onWarn)?e.onWarn:Nb,o=fe(e.version)?e.version:Xy,n=fe(e.locale)||tt(e.locale)?e.locale:Sn,a=tt(n)?Sn:n,r=rt(e.fallbackLocale)||Ce(e.fallbackLocale)||fe(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:a,s=Ce(e.messages)?e.messages:Ts(a),i=Ce(e.datetimeFormats)?e.datetimeFormats:Ts(a),l=Ce(e.numberFormats)?e.numberFormats:Ts(a),u=Lt(Xe(),e.modifiers,Zy()),c=e.pluralRules||Xe(),p=tt(e.missing)?e.missing:null,g=De(e.missingWarn)||Do(e.missingWarn)?e.missingWarn:!0,k=De(e.fallbackWarn)||Do(e.fallbackWarn)?e.fallbackWarn:!0,w=!!e.fallbackFormat,m=!!e.unresolving,d=tt(e.postTranslation)?e.postTranslation:null,f=Ce(e.processor)?e.processor:null,h=De(e.warnHtmlMessage)?e.warnHtmlMessage:!0,b=!!e.escapeParameter,_=tt(e.messageCompiler)?e.messageCompiler:fu,x=tt(e.messageResolver)?e.messageResolver:mu||My,$=tt(e.localeFallbacker)?e.localeFallbacker:bu||Yy,A=ze(e.fallbackContext)?e.fallbackContext:void 0,P=e,T=ze(P.__datetimeFormatters)?P.__datetimeFormatters:new Map,z=ze(P.__numberFormatters)?P.__numberFormatters:new Map,W=ze(P.__meta)?P.__meta:{};ku++;const re={version:o,cid:ku,locale:n,fallbackLocale:r,messages:s,modifiers:u,pluralRules:c,missing:p,missingWarn:g,fallbackWarn:k,fallbackFormat:w,unresolving:m,postTranslation:d,processor:f,warnHtmlMessage:h,escapeParameter:b,messageCompiler:_,messageResolver:x,localeFallbacker:$,fallbackContext:A,onWarn:t,__meta:W};return re.datetimeFormats=i,re.numberFormats=l,re.__datetimeFormatters=T,re.__numberFormatters=z,__INTLIFY_PROD_DEVTOOLS__&&zy(re,o,W),re}const Ts=e=>({[e]:Xe()});function Ms(e,t,o,n,a){const{missing:r,onWarn:s}=e;if(r!==null){const i=r(e,o,t,a);return fe(i)?i:t}else return t}function la(e,t,o){const n=e;n.__localeChainCache=new Map,e.localeFallbacker(e,o,t)}function r0(e,t){return e===t?!1:e.split("-")[0]===t.split("-")[0]}function s0(e,t){const o=t.indexOf(e);if(o===-1)return!1;for(let n=o+1;ni0(o,e)}function i0(e,t){const o=vy(t);if(o==null)throw sa(0);if(Ls(o)===1){const r=ky(o);return e.plural(r.reduce((s,i)=>[...s,wu(e,i)],[]))}else return wu(e,o)}function wu(e,t){const o=wy(t);if(o!=null)return e.type==="text"?o:e.normalize([o]);{const n=xy(t).reduce((a,r)=>[...a,Rs(e,r)],[]);return e.normalize(n)}}function Rs(e,t){const o=Ls(t);switch(o){case 3:return gr(t,o);case 9:return gr(t,o);case 4:{const n=t;if(Xt(n,"k")&&n.k)return e.interpolate(e.named(n.k));if(Xt(n,"key")&&n.key)return e.interpolate(e.named(n.key));throw sa(o)}case 5:{const n=t;if(Xt(n,"i")&&pt(n.i))return e.interpolate(e.list(n.i));if(Xt(n,"index")&&pt(n.index))return e.interpolate(e.list(n.index));throw sa(o)}case 6:{const n=t,a=$y(n),r=Ay(n);return e.linked(Rs(e,r),a?Rs(e,a):void 0,e.type)}case 7:return gr(t,o);case 8:return gr(t,o);default:throw new Error(`unhandled node on format message part: ${o}`)}}const xu=e=>e;let En=Xe();function $u(e,t={}){let o=!1;const n=t.onError||qb;return t.onError=a=>{o=!0,n(a)},{...yy(e,t),detectError:o}}const l0=(e,t)=>{if(!fe(e))throw fo(Qt.NOT_SUPPORT_NON_STRING_MESSAGE);{De(t.warnHtmlMessage)&&t.warnHtmlMessage;const n=(t.onCacheKey||xu)(e),a=En[n];if(a)return a;const{code:r,detectError:s}=$u(e,t),i=new Function(`return ${r}`)();return s?i:En[n]=i}};function c0(e,t){if(__INTLIFY_JIT_COMPILATION__&&!__INTLIFY_DROP_MESSAGE_COMPILER__&&fe(e)){De(t.warnHtmlMessage)&&t.warnHtmlMessage;const n=(t.onCacheKey||xu)(e),a=En[n];if(a)return a;const{ast:r,detectError:s}=$u(e,{...t,location:!1,jit:!0}),i=Ns(r);return s?i:En[n]=i}else{const o=e.cacheKey;if(o){const n=En[o];return n||(En[o]=Ns(e))}else return Ns(e)}}const Au=()=>"",Ht=e=>tt(e);function Su(e,...t){const{fallbackFormat:o,postTranslation:n,unresolving:a,messageCompiler:r,fallbackLocale:s,messages:i}=e,[l,u]=Is(...t),c=De(u.missingWarn)?u.missingWarn:e.missingWarn,p=De(u.fallbackWarn)?u.fallbackWarn:e.fallbackWarn,g=De(u.escapeParameter)?u.escapeParameter:e.escapeParameter,k=!!u.resolvedMessage,w=fe(u.default)||De(u.default)?De(u.default)?r?l:()=>l:u.default:o?r?l:()=>l:"",m=o||w!=="",d=Cs(e,u);g&&u0(u);let[f,h,b]=k?[l,d,i[d]||Xe()]:Eu(e,l,d,s,p,c),_=f,x=l;if(!k&&!(fe(_)||go(_)||Ht(_))&&m&&(_=w,x=_),!k&&(!(fe(_)||go(_)||Ht(_))||!fe(h)))return a?fr:l;let $=!1;const A=()=>{$=!0},P=Ht(_)?_:Lu(e,l,h,_,x,A);if($)return _;const T=g0(e,h,b,u),z=jy(T),W=d0(e,P,z);let re=n?n(W,l):W;if(g&&fe(re)&&(re=Db(re)),__INTLIFY_PROD_DEVTOOLS__){const M={timestamp:Date.now(),key:fe(l)?l:Ht(_)?_.key:"",locale:h||(Ht(_)?_.locale:""),format:fe(_)?_:Ht(_)?_.source:"",message:re};M.meta=Lt({},e.__meta,o0()||{}),Ky(M)}return re}function u0(e){rt(e.list)?e.list=e.list.map(t=>fe(t)?Gc(t):t):ze(e.named)&&Object.keys(e.named).forEach(t=>{fe(e.named[t])&&(e.named[t]=Gc(e.named[t]))})}function Eu(e,t,o,n,a,r){const{messages:s,onWarn:i,messageResolver:l,localeFallbacker:u}=e,c=u(e,n,o);let p=Xe(),g,k=null;const w="translate";for(let m=0;mn;return u.locale=o,u.key=t,u}const l=s(n,p0(e,o,a,n,i,r));return l.locale=o,l.key=t,l.source=n,l}function d0(e,t,o){return t(o)}function Is(...e){const[t,o,n]=e,a=Xe();if(!fe(t)&&!pt(t)&&!Ht(t)&&!go(t))throw fo(Qt.INVALID_ARGUMENT);const r=pt(t)?String(t):(Ht(t),t);return pt(o)?a.plural=o:fe(o)?a.default=o:Ce(o)&&!lr(o)?a.named=o:rt(o)&&(a.list=o),pt(n)?a.plural=n:fe(n)?a.default=n:Ce(n)&&Lt(a,n),[r,a]}function p0(e,t,o,n,a,r){return{locale:t,key:o,warnHtmlMessage:a,onError:s=>{throw r&&r(s),s},onCacheKey:s=>Rb(t,o,s)}}function g0(e,t,o,n){const{modifiers:a,pluralRules:r,messageResolver:s,fallbackLocale:i,fallbackWarn:l,missingWarn:u,fallbackContext:c}=e,g={locale:t,modifiers:a,pluralRules:r,messages:k=>{let w=s(o,k);if(w==null&&c){const[,,m]=Eu(c,k,t,i,l,u);w=s(m,k)}if(fe(w)||go(w)){let m=!1;const f=Lu(e,k,t,w,k,()=>{m=!0});return m?Au:f}else return Ht(w)?w:Au}};return e.processor&&(g.processor=e.processor),n.list&&(g.list=n.list),n.named&&(g.named=n.named),pt(n.plural)&&(g.pluralIndex=n.plural),g}function Cu(e,...t){const{datetimeFormats:o,unresolving:n,fallbackLocale:a,onWarn:r,localeFallbacker:s}=e,{__datetimeFormatters:i}=e,[l,u,c,p]=Os(...t),g=De(c.missingWarn)?c.missingWarn:e.missingWarn;De(c.fallbackWarn)?c.fallbackWarn:e.fallbackWarn;const k=!!c.part,w=Cs(e,c),m=s(e,a,w);if(!fe(l)||l==="")return new Intl.DateTimeFormat(w,p).format(u);let d={},f,h=null;const b="datetime format";for(let $=0;${Pu.includes(l)?s[l]=o[l]:r[l]=o[l]}),fe(n)?r.locale=n:Ce(n)&&(s=n),Ce(a)&&(s=a),[r.key||"",i,r,s]}function Tu(e,t,o){const n=e;for(const a in o){const r=`${t}__${a}`;n.__datetimeFormatters.has(r)&&n.__datetimeFormatters.delete(r)}}function Mu(e,...t){const{numberFormats:o,unresolving:n,fallbackLocale:a,onWarn:r,localeFallbacker:s}=e,{__numberFormatters:i}=e,[l,u,c,p]=Fs(...t),g=De(c.missingWarn)?c.missingWarn:e.missingWarn;De(c.fallbackWarn)?c.fallbackWarn:e.fallbackWarn;const k=!!c.part,w=Cs(e,c),m=s(e,a,w);if(!fe(l)||l==="")return new Intl.NumberFormat(w,p).format(u);let d={},f,h=null;const b="number format";for(let $=0;${Nu.includes(l)?s[l]=o[l]:r[l]=o[l]}),fe(n)?r.locale=n:Ce(n)&&(s=n),Ce(a)&&(s=a),[r.key||"",i,r,s]}function Ru(e,t,o){const n=e;for(const a in o){const r=`${t}__${a}`;n.__numberFormatters.has(r)&&n.__numberFormatters.delete(r)}}_y();/*! * vue-i18n v9.14.5 * (c) 2025 kazuya kawaguchi * Released under the MIT License. - */const g0="9.14.5";function f0(){typeof __VUE_I18N_FULL_INSTALL__!="boolean"&&(Eo().__VUE_I18N_FULL_INSTALL__=!0),typeof __VUE_I18N_LEGACY_API__!="boolean"&&(Eo().__VUE_I18N_LEGACY_API__=!0),typeof __INTLIFY_JIT_COMPILATION__!="boolean"&&(Eo().__INTLIFY_JIT_COMPILATION__=!1),typeof __INTLIFY_DROP_MESSAGE_COMPILER__!="boolean"&&(Eo().__INTLIFY_DROP_MESSAGE_COMPILER__=!1),typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(Eo().__INTLIFY_PROD_DEVTOOLS__=!1)}const h0=Vy.__EXTEND_POINT__,Co=cr(h0);Co(),Co(),Co(),Co(),Co(),Co(),Co(),Co(),Co();const Iu=Zt.__EXTEND_POINT__,Ft=cr(Iu),bt={UNEXPECTED_RETURN_TYPE:Iu,INVALID_ARGUMENT:Ft(),MUST_BE_CALL_SETUP_TOP:Ft(),NOT_INSTALLED:Ft(),NOT_AVAILABLE_IN_LEGACY_MODE:Ft(),REQUIRED_VALUE:Ft(),INVALID_VALUE:Ft(),CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN:Ft(),NOT_INSTALLED_WITH_PROVIDE:Ft(),UNEXPECTED_ERROR:Ft(),NOT_COMPATIBLE_LEGACY_VUE_I18N:Ft(),BRIDGE_SUPPORT_VUE_2_ONLY:Ft(),MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION:Ft(),NOT_AVAILABLE_COMPOSITION_IN_LEGACY:Ft(),__EXTEND_POINT__:Ft()};function kt(e,...t){return xn(e,null,void 0)}const Ds=Fo("__translateVNode"),Bs=Fo("__datetimeParts"),Gs=Fo("__numberParts"),Ou=Fo("__setPluralRules"),Fu=Fo("__injectWithOption"),js=Fo("__dispose");function ca(e){if(!Ke(e)||go(e))return e;for(const t in e)if(Jt(e,t))if(!t.includes("."))Ke(e[t])&&ca(e[t]);else{const o=t.split("."),n=o.length-1;let a=e,r=!1;for(let s=0;s{if("locale"in i&&"resource"in i){const{locale:l,resource:u}=i;l?(s[l]=s[l]||Xe(),dr(u,s[l])):dr(u,s)}else fe(i)&&dr(JSON.parse(i),s)}),a==null&&r)for(const i in s)Jt(s,i)&&ca(s[i]);return s}function Du(e){return e.type}function Bu(e,t,o){let n=Ke(t.messages)?t.messages:Xe();"__i18nGlobal"in o&&(n=hr(e.locale.value,{messages:n,__i18n:o.__i18nGlobal}));const a=Object.keys(n);a.length&&a.forEach(r=>{e.mergeLocaleMessage(r,n[r])});{if(Ke(t.datetimeFormats)){const r=Object.keys(t.datetimeFormats);r.length&&r.forEach(s=>{e.mergeDateTimeFormat(s,t.datetimeFormats[s])})}if(Ke(t.numberFormats)){const r=Object.keys(t.numberFormats);r.length&&r.forEach(s=>{e.mergeNumberFormat(s,t.numberFormats[s])})}}}function Gu(e){return He(Zn,null,e,0)}const ju="__INTLIFY_META__",Uu=()=>[],m0=()=>!1;let Ku=0;function zu(e){return(t,o,n,a)=>e(o,n,Ao()||void 0,a)}const b0=()=>{const e=Ao();let t=null;return e&&(t=Du(e)[ju])?{[ju]:t}:null};function Us(e={},t){const{__root:o,__injectWithOption:n}=e,a=o===void 0,r=e.flatJson,s=ir?de:gn,i=!!e.translateExistCompatible;let l=De(e.inheritLocale)?e.inheritLocale:!0;const u=s(o&&l?o.locale.value:fe(e.locale)?e.locale:Sn),c=s(o&&l?o.fallbackLocale.value:fe(e.fallbackLocale)||rt(e.fallbackLocale)||Ce(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:u.value),p=s(hr(u.value,e)),f=s(Ce(e.datetimeFormats)?e.datetimeFormats:{[u.value]:{}}),k=s(Ce(e.numberFormats)?e.numberFormats:{[u.value]:{}});let w=o?o.missingWarn:De(e.missingWarn)||Do(e.missingWarn)?e.missingWarn:!0,m=o?o.fallbackWarn:De(e.fallbackWarn)||Do(e.fallbackWarn)?e.fallbackWarn:!0,d=o?o.fallbackRoot:De(e.fallbackRoot)?e.fallbackRoot:!0,g=!!e.fallbackFormat,h=tt(e.missing)?e.missing:null,b=tt(e.missing)?zu(e.missing):null,_=tt(e.postTranslation)?e.postTranslation:null,x=o?o.warnHtmlMessage:De(e.warnHtmlMessage)?e.warnHtmlMessage:!0,$=!!e.escapeParameter;const A=o?o.modifiers:Ce(e.modifiers)?e.modifiers:{};let C=e.pluralRules||o&&o.pluralRules,P;P=(()=>{a&&vu(null);const G={version:g0,locale:u.value,fallbackLocale:c.value,messages:p.value,modifiers:A,pluralRules:C,missing:b===null?void 0:b,missingWarn:w,fallbackWarn:m,fallbackFormat:g,unresolving:!0,postTranslation:_===null?void 0:_,warnHtmlMessage:x,escapeParameter:$,messageResolver:e.messageResolver,messageCompiler:e.messageCompiler,__meta:{framework:"vue"}};G.datetimeFormats=f.value,G.numberFormats=k.value,G.__datetimeFormatters=Ce(P)?P.__datetimeFormatters:void 0,G.__numberFormatters=Ce(P)?P.__numberFormatters:void 0;const q=n0(G);return a&&vu(q),q})(),la(P,u.value,c.value);function Y(){return[u.value,c.value,p.value,f.value,k.value]}const re=oe({get:()=>u.value,set:G=>{u.value=G,P.locale=u.value}}),M=oe({get:()=>c.value,set:G=>{c.value=G,P.fallbackLocale=c.value,la(P,u.value,G)}}),F=oe(()=>p.value),T=oe(()=>f.value),S=oe(()=>k.value);function I(){return tt(_)?_:null}function ne(G){_=G,P.postTranslation=G}function ge(){return h}function L(G){G!==null&&(b=zu(G)),h=G,P.missing=b}const ae=(G,q,me,$e,Ge,D)=>{Y();let K;try{__INTLIFY_PROD_DEVTOOLS__,a||(P.fallbackContext=o?o0():void 0),K=G(P)}finally{__INTLIFY_PROD_DEVTOOLS__,a||(P.fallbackContext=void 0)}if(me!=="translate exists"&&pt(K)&&K===fr||me==="translate exists"&&!K){const[he,ve]=q();return o&&d?$e(o):Ge(he)}else{if(D(K))return K;throw kt(bt.UNEXPECTED_RETURN_TYPE)}};function ie(...G){return ae(q=>Reflect.apply(Su,null,[q,...G]),()=>Is(...G),"translate",q=>Reflect.apply(q.t,q,[...G]),q=>q,q=>fe(q))}function ce(...G){const[q,me,$e]=G;if($e&&!Ke($e))throw kt(bt.INVALID_ARGUMENT);return ie(q,me,Lt({resolvedMessage:!0},$e||{}))}function we(...G){return ae(q=>Reflect.apply(Cu,null,[q,...G]),()=>Os(...G),"datetime format",q=>Reflect.apply(q.d,q,[...G]),()=>pu,q=>fe(q))}function Me(...G){return ae(q=>Reflect.apply(Mu,null,[q,...G]),()=>Fs(...G),"number format",q=>Reflect.apply(q.n,q,[...G]),()=>pu,q=>fe(q))}function Re(G){return G.map(q=>fe(q)||pt(q)||De(q)?Gu(String(q)):q)}const Ie={normalize:Re,interpolate:G=>G,type:"vnode"};function qe(...G){return ae(q=>{let me;const $e=q;try{$e.processor=Ie,me=Reflect.apply(Su,null,[$e,...G])}finally{$e.processor=null}return me},()=>Is(...G),"translate",q=>q[Ds](...G),q=>[Gu(q)],q=>rt(q))}function Je(...G){return ae(q=>Reflect.apply(Mu,null,[q,...G]),()=>Fs(...G),"number format",q=>q[Gs](...G),Uu,q=>fe(q)||rt(q))}function ft(...G){return ae(q=>Reflect.apply(Cu,null,[q,...G]),()=>Os(...G),"datetime format",q=>q[Bs](...G),Uu,q=>fe(q)||rt(q))}function E(G){C=G,P.pluralRules=C}function O(G,q){return ae(()=>{if(!G)return!1;const me=fe(q)?q:u.value,$e=X(me),Ge=P.messageResolver($e,G);return i?Ge!=null:go(Ge)||Ht(Ge)||fe(Ge)},()=>[G],"translate exists",me=>Reflect.apply(me.te,me,[G,q]),m0,me=>De(me))}function R(G){let q=null;const me=uu(P,c.value,u.value);for(let $e=0;$e{l&&(u.value=G,P.locale=G,la(P,u.value,c.value))}),it(o.fallbackLocale,G=>{l&&(c.value=G,P.fallbackLocale=G,la(P,u.value,c.value))}));const se={id:Ku,locale:re,fallbackLocale:M,get inheritLocale(){return l},set inheritLocale(G){l=G,G&&o&&(u.value=o.locale.value,c.value=o.fallbackLocale.value,la(P,u.value,c.value))},get availableLocales(){return Object.keys(p.value).sort()},messages:F,get modifiers(){return A},get pluralRules(){return C||{}},get isGlobal(){return a},get missingWarn(){return w},set missingWarn(G){w=G,P.missingWarn=w},get fallbackWarn(){return m},set fallbackWarn(G){m=G,P.fallbackWarn=m},get fallbackRoot(){return d},set fallbackRoot(G){d=G},get fallbackFormat(){return g},set fallbackFormat(G){g=G,P.fallbackFormat=g},get warnHtmlMessage(){return x},set warnHtmlMessage(G){x=G,P.warnHtmlMessage=G},get escapeParameter(){return $},set escapeParameter(G){$=G,P.escapeParameter=G},t:ie,getLocaleMessage:X,setLocaleMessage:J,mergeLocaleMessage:Z,getPostTranslationHandler:I,setPostTranslationHandler:ne,getMissingHandler:ge,setMissingHandler:L,[Ou]:E};return se.datetimeFormats=T,se.numberFormats=S,se.rt=ce,se.te=O,se.tm=H,se.d=we,se.n=Me,se.getDateTimeFormat=ee,se.setDateTimeFormat=y,se.mergeDateTimeFormat=v,se.getNumberFormat=B,se.setNumberFormat=W,se.mergeNumberFormat=ue,se[Fu]=n,se[Ds]=qe,se[Bs]=ft,se[Gs]=Je,se}function y0(e){const t=fe(e.locale)?e.locale:Sn,o=fe(e.fallbackLocale)||rt(e.fallbackLocale)||Ce(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:t,n=tt(e.missing)?e.missing:void 0,a=De(e.silentTranslationWarn)||Do(e.silentTranslationWarn)?!e.silentTranslationWarn:!0,r=De(e.silentFallbackWarn)||Do(e.silentFallbackWarn)?!e.silentFallbackWarn:!0,s=De(e.fallbackRoot)?e.fallbackRoot:!0,i=!!e.formatFallbackMessages,l=Ce(e.modifiers)?e.modifiers:{},u=e.pluralizationRules,c=tt(e.postTranslation)?e.postTranslation:void 0,p=fe(e.warnHtmlInMessage)?e.warnHtmlInMessage!=="off":!0,f=!!e.escapeParameterHtml,k=De(e.sync)?e.sync:!0;let w=e.messages;if(Ce(e.sharedMessages)){const $=e.sharedMessages;w=Object.keys($).reduce((C,P)=>{const z=C[P]||(C[P]={});return Lt(z,$[P]),C},w||{})}const{__i18n:m,__root:d,__injectWithOption:g}=e,h=e.datetimeFormats,b=e.numberFormats,_=e.flatJson,x=e.translateExistCompatible;return{locale:t,fallbackLocale:o,messages:w,flatJson:_,datetimeFormats:h,numberFormats:b,missing:n,missingWarn:a,fallbackWarn:r,fallbackRoot:s,fallbackFormat:i,modifiers:l,pluralRules:u,postTranslation:c,warnHtmlMessage:p,escapeParameter:f,messageResolver:e.messageResolver,inheritLocale:k,translateExistCompatible:x,__i18n:m,__root:d,__injectWithOption:g}}function Ks(e={},t){{const o=Us(y0(e)),{__extender:n}=e,a={id:o.id,get locale(){return o.locale.value},set locale(r){o.locale.value=r},get fallbackLocale(){return o.fallbackLocale.value},set fallbackLocale(r){o.fallbackLocale.value=r},get messages(){return o.messages.value},get datetimeFormats(){return o.datetimeFormats.value},get numberFormats(){return o.numberFormats.value},get availableLocales(){return o.availableLocales},get formatter(){return{interpolate(){return[]}}},set formatter(r){},get missing(){return o.getMissingHandler()},set missing(r){o.setMissingHandler(r)},get silentTranslationWarn(){return De(o.missingWarn)?!o.missingWarn:o.missingWarn},set silentTranslationWarn(r){o.missingWarn=De(r)?!r:r},get silentFallbackWarn(){return De(o.fallbackWarn)?!o.fallbackWarn:o.fallbackWarn},set silentFallbackWarn(r){o.fallbackWarn=De(r)?!r:r},get modifiers(){return o.modifiers},get formatFallbackMessages(){return o.fallbackFormat},set formatFallbackMessages(r){o.fallbackFormat=r},get postTranslation(){return o.getPostTranslationHandler()},set postTranslation(r){o.setPostTranslationHandler(r)},get sync(){return o.inheritLocale},set sync(r){o.inheritLocale=r},get warnHtmlInMessage(){return o.warnHtmlMessage?"warn":"off"},set warnHtmlInMessage(r){o.warnHtmlMessage=r!=="off"},get escapeParameterHtml(){return o.escapeParameter},set escapeParameterHtml(r){o.escapeParameter=r},get preserveDirectiveContent(){return!0},set preserveDirectiveContent(r){},get pluralizationRules(){return o.pluralRules||{}},__composer:o,t(...r){const[s,i,l]=r,u={};let c=null,p=null;if(!fe(s))throw kt(bt.INVALID_ARGUMENT);const f=s;return fe(i)?u.locale=i:rt(i)?c=i:Ce(i)&&(p=i),rt(l)?c=l:Ce(l)&&(p=l),Reflect.apply(o.t,o,[f,c||p||{},u])},rt(...r){return Reflect.apply(o.rt,o,[...r])},tc(...r){const[s,i,l]=r,u={plural:1};let c=null,p=null;if(!fe(s))throw kt(bt.INVALID_ARGUMENT);const f=s;return fe(i)?u.locale=i:pt(i)?u.plural=i:rt(i)?c=i:Ce(i)&&(p=i),fe(l)?u.locale=l:rt(l)?c=l:Ce(l)&&(p=l),Reflect.apply(o.t,o,[f,c||p||{},u])},te(r,s){return o.te(r,s)},tm(r){return o.tm(r)},getLocaleMessage(r){return o.getLocaleMessage(r)},setLocaleMessage(r,s){o.setLocaleMessage(r,s)},mergeLocaleMessage(r,s){o.mergeLocaleMessage(r,s)},d(...r){return Reflect.apply(o.d,o,[...r])},getDateTimeFormat(r){return o.getDateTimeFormat(r)},setDateTimeFormat(r,s){o.setDateTimeFormat(r,s)},mergeDateTimeFormat(r,s){o.mergeDateTimeFormat(r,s)},n(...r){return Reflect.apply(o.n,o,[...r])},getNumberFormat(r){return o.getNumberFormat(r)},setNumberFormat(r,s){o.setNumberFormat(r,s)},mergeNumberFormat(r,s){o.mergeNumberFormat(r,s)},getChoiceIndex(r,s){return-1}};return a.__extender=n,a}}const zs={tag:{type:[String,Object]},locale:{type:String},scope:{type:String,validator:e=>e==="parent"||e==="global",default:"parent"},i18n:{type:Object}};function _0({slots:e},t){return t.length===1&&t[0]==="default"?(e.default?e.default():[]).reduce((n,a)=>[...n,...a.type===Te?a.children:[a]],[]):t.reduce((o,n)=>{const a=e[n];return a&&(o[n]=a()),o},Xe())}function Hu(e){return Te}const Vu=Yn({name:"i18n-t",props:Lt({keypath:{type:String,required:!0},plural:{type:[Number,String],validator:e=>pt(e)||!isNaN(e)}},zs),setup(e,t){const{slots:o,attrs:n}=t,a=e.i18n||yt({useScope:e.scope,__useComponent:!0});return()=>{const r=Object.keys(o).filter(p=>p!=="_"),s=Xe();e.locale&&(s.locale=e.locale),e.plural!==void 0&&(s.plural=fe(e.plural)?+e.plural:e.plural);const i=_0(t,r),l=a[Ds](e.keypath,i,s),u=Lt(Xe(),n),c=fe(e.tag)||Ke(e.tag)?e.tag:Hu();return gc(c,u,l)}}});function v0(e){return rt(e)&&!fe(e[0])}function Wu(e,t,o,n){const{slots:a,attrs:r}=t;return()=>{const s={part:!0};let i=Xe();e.locale&&(s.locale=e.locale),fe(e.format)?s.key=e.format:Ke(e.format)&&(fe(e.format.key)&&(s.key=e.format.key),i=Object.keys(e.format).reduce((f,k)=>o.includes(k)?Lt(Xe(),f,{[k]:e.format[k]}):f,Xe()));const l=n(e.value,s,i);let u=[s.key];rt(l)?u=l.map((f,k)=>{const w=a[f.type],m=w?w({[f.type]:f.value,index:k,parts:l}):[f.value];return v0(m)&&(m[0].key=`${f.type}-${k}`),m}):fe(l)&&(u=[l]);const c=Lt(Xe(),r),p=fe(e.tag)||Ke(e.tag)?e.tag:Hu();return gc(p,c,u)}}const Yu=Yn({name:"i18n-n",props:Lt({value:{type:Number,required:!0},format:{type:[String,Object]}},zs),setup(e,t){const o=e.i18n||yt({useScope:e.scope,__useComponent:!0});return Wu(e,t,Nu,(...n)=>o[Gs](...n))}}),qu=Yn({name:"i18n-d",props:Lt({value:{type:[Number,Date],required:!0},format:{type:[String,Object]}},zs),setup(e,t){const o=e.i18n||yt({useScope:e.scope,__useComponent:!0});return Wu(e,t,Pu,(...n)=>o[Bs](...n))}});function k0(e,t){const o=e;if(e.mode==="composition")return o.__getInstance(t)||e.global;{const n=o.__getInstance(t);return n!=null?n.__composer:e.global.__composer}}function w0(e){const t=s=>{const{instance:i,modifiers:l,value:u}=s;if(!i||!i.$)throw kt(bt.UNEXPECTED_ERROR);const c=k0(e,i.$),p=Ju(u);return[Reflect.apply(c.t,c,[...Xu(p)]),c]};return{created:(s,i)=>{const[l,u]=t(i);ir&&e.global===u&&(s.__i18nWatcher=it(u.locale,()=>{i.instance&&i.instance.$forceUpdate()})),s.__composer=u,s.textContent=l},unmounted:s=>{ir&&s.__i18nWatcher&&(s.__i18nWatcher(),s.__i18nWatcher=void 0,delete s.__i18nWatcher),s.__composer&&(s.__composer=void 0,delete s.__composer)},beforeUpdate:(s,{value:i})=>{if(s.__composer){const l=s.__composer,u=Ju(i);s.textContent=Reflect.apply(l.t,l,[...Xu(u)])}},getSSRProps:s=>{const[i]=t(s);return{textContent:i}}}}function Ju(e){if(fe(e))return{path:e};if(Ce(e)){if(!("path"in e))throw kt(bt.REQUIRED_VALUE,"path");return e}else throw kt(bt.INVALID_VALUE)}function Xu(e){const{path:t,locale:o,args:n,choice:a,plural:r}=e,s={},i=n||{};return fe(o)&&(s.locale=o),pt(a)&&(s.plural=a),pt(r)&&(s.plural=r),[t,i,s]}function x0(e,t,...o){const n=Ce(o[0])?o[0]:{},a=!!n.useI18nComponentName;(De(n.globalInstall)?n.globalInstall:!0)&&([a?"i18n":Vu.name,"I18nT"].forEach(s=>e.component(s,Vu)),[Yu.name,"I18nN"].forEach(s=>e.component(s,Yu)),[qu.name,"I18nD"].forEach(s=>e.component(s,qu))),e.directive("t",w0(t))}function $0(e,t,o){return{beforeCreate(){const n=Ao();if(!n)throw kt(bt.UNEXPECTED_ERROR);const a=this.$options;if(a.i18n){const r=a.i18n;if(a.__i18n&&(r.__i18n=a.__i18n),r.__root=t,this===this.$root)this.$i18n=Zu(e,r);else{r.__injectWithOption=!0,r.__extender=o.__vueI18nExtend,this.$i18n=Ks(r);const s=this.$i18n;s.__extender&&(s.__disposer=s.__extender(this.$i18n))}}else if(a.__i18n)if(this===this.$root)this.$i18n=Zu(e,a);else{this.$i18n=Ks({__i18n:a.__i18n,__injectWithOption:!0,__extender:o.__vueI18nExtend,__root:t});const r=this.$i18n;r.__extender&&(r.__disposer=r.__extender(this.$i18n))}else this.$i18n=e;a.__i18nGlobal&&Bu(t,a,a),this.$t=(...r)=>this.$i18n.t(...r),this.$rt=(...r)=>this.$i18n.rt(...r),this.$tc=(...r)=>this.$i18n.tc(...r),this.$te=(r,s)=>this.$i18n.te(r,s),this.$d=(...r)=>this.$i18n.d(...r),this.$n=(...r)=>this.$i18n.n(...r),this.$tm=r=>this.$i18n.tm(r),o.__setInstance(n,this.$i18n)},mounted(){},unmounted(){const n=Ao();if(!n)throw kt(bt.UNEXPECTED_ERROR);const a=this.$i18n;delete this.$t,delete this.$rt,delete this.$tc,delete this.$te,delete this.$d,delete this.$n,delete this.$tm,a.__disposer&&(a.__disposer(),delete a.__disposer,delete a.__extender),o.__deleteInstance(n),delete this.$i18n}}}function Zu(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[Ou](t.pluralizationRules||e.pluralizationRules);const o=hr(e.locale,{messages:t.messages,__i18n:t.__i18n});return Object.keys(o).forEach(n=>e.mergeLocaleMessage(n,o[n])),t.datetimeFormats&&Object.keys(t.datetimeFormats).forEach(n=>e.mergeDateTimeFormat(n,t.datetimeFormats[n])),t.numberFormats&&Object.keys(t.numberFormats).forEach(n=>e.mergeNumberFormat(n,t.numberFormats[n])),e}const A0=Fo("global-vue-i18n");function S0(e={},t){const o=__VUE_I18N_LEGACY_API__&&De(e.legacy)?e.legacy:__VUE_I18N_LEGACY_API__,n=De(e.globalInjection)?e.globalInjection:!0,a=__VUE_I18N_LEGACY_API__&&o?!!e.allowComposition:!0,r=new Map,[s,i]=E0(e,o),l=Fo("");function u(f){return r.get(f)||null}function c(f,k){r.set(f,k)}function p(f){r.delete(f)}{const f={get mode(){return __VUE_I18N_LEGACY_API__&&o?"legacy":"composition"},get allowComposition(){return a},async install(k,...w){if(k.__VUE_I18N_SYMBOL__=l,k.provide(k.__VUE_I18N_SYMBOL__,f),Ce(w[0])){const g=w[0];f.__composerExtend=g.__composerExtend,f.__vueI18nExtend=g.__vueI18nExtend}let m=null;!o&&n&&(m=O0(k,f.global)),__VUE_I18N_FULL_INSTALL__&&x0(k,f,...w),__VUE_I18N_LEGACY_API__&&o&&k.mixin($0(i,i.__composer,f));const d=k.unmount;k.unmount=()=>{m&&m(),f.dispose(),d()}},get global(){return i},dispose(){s.stop()},__instances:r,__getInstance:u,__setInstance:c,__deleteInstance:p};return f}}function yt(e={}){const t=Ao();if(t==null)throw kt(bt.MUST_BE_CALL_SETUP_TOP);if(!t.isCE&&t.appContext.app!=null&&!t.appContext.app.__VUE_I18N_SYMBOL__)throw kt(bt.NOT_INSTALLED);const o=L0(t),n=P0(o),a=Du(t),r=C0(e,a);if(__VUE_I18N_LEGACY_API__&&o.mode==="legacy"&&!e.__useComponent){if(!o.allowComposition)throw kt(bt.NOT_AVAILABLE_IN_LEGACY_MODE);return R0(t,r,n,e)}if(r==="global")return Bu(n,e,a),n;if(r==="parent"){let l=T0(o,t,e.__useComponent);return l==null&&(l=n),l}const s=o;let i=s.__getInstance(t);if(i==null){const l=Lt({},e);"__i18n"in a&&(l.__i18n=a.__i18n),n&&(l.__root=n),i=Us(l),s.__composerExtend&&(i[js]=s.__composerExtend(i)),N0(s,t,i),s.__setInstance(t,i)}return i}function E0(e,t,o){const n=Dr();{const a=__VUE_I18N_LEGACY_API__&&t?n.run(()=>Ks(e)):n.run(()=>Us(e));if(a==null)throw kt(bt.UNEXPECTED_ERROR);return[n,a]}}function L0(e){{const t=Fe(e.isCE?A0:e.appContext.app.__VUE_I18N_SYMBOL__);if(!t)throw kt(e.isCE?bt.NOT_INSTALLED_WITH_PROVIDE:bt.UNEXPECTED_ERROR);return t}}function C0(e,t){return lr(e)?"__i18n"in t?"local":"global":e.useScope?e.useScope:"local"}function P0(e){return e.mode==="composition"?e.global:e.global.__composer}function T0(e,t,o=!1){let n=null;const a=t.root;let r=M0(t,o);for(;r!=null;){const s=e;if(e.mode==="composition")n=s.__getInstance(r);else if(__VUE_I18N_LEGACY_API__){const i=s.__getInstance(r);i!=null&&(n=i.__composer,o&&n&&!n[Fu]&&(n=null))}if(n!=null||a===r)break;r=r.parent}return n}function M0(e,t=!1){return e==null?null:t&&e.vnode.ctx||e.parent}function N0(e,t,o){io(()=>{},t),Wa(()=>{const n=o;e.__deleteInstance(t);const a=n[js];a&&(a(),delete n[js])},t)}function R0(e,t,o,n={}){const a=t==="local",r=gn(null);if(a&&e.proxy&&!(e.proxy.$options.i18n||e.proxy.$options.__i18n))throw kt(bt.MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION);const s=De(n.inheritLocale)?n.inheritLocale:!fe(n.locale),i=de(!a||s?o.locale.value:fe(n.locale)?n.locale:Sn),l=de(!a||s?o.fallbackLocale.value:fe(n.fallbackLocale)||rt(n.fallbackLocale)||Ce(n.fallbackLocale)||n.fallbackLocale===!1?n.fallbackLocale:i.value),u=de(hr(i.value,n)),c=de(Ce(n.datetimeFormats)?n.datetimeFormats:{[i.value]:{}}),p=de(Ce(n.numberFormats)?n.numberFormats:{[i.value]:{}}),f=a?o.missingWarn:De(n.missingWarn)||Do(n.missingWarn)?n.missingWarn:!0,k=a?o.fallbackWarn:De(n.fallbackWarn)||Do(n.fallbackWarn)?n.fallbackWarn:!0,w=a?o.fallbackRoot:De(n.fallbackRoot)?n.fallbackRoot:!0,m=!!n.fallbackFormat,d=tt(n.missing)?n.missing:null,g=tt(n.postTranslation)?n.postTranslation:null,h=a?o.warnHtmlMessage:De(n.warnHtmlMessage)?n.warnHtmlMessage:!0,b=!!n.escapeParameter,_=a?o.modifiers:Ce(n.modifiers)?n.modifiers:{},x=n.pluralRules||a&&o.pluralRules;function $(){return[i.value,l.value,u.value,c.value,p.value]}const A=oe({get:()=>r.value?r.value.locale.value:i.value,set:R=>{r.value&&(r.value.locale.value=R),i.value=R}}),C=oe({get:()=>r.value?r.value.fallbackLocale.value:l.value,set:R=>{r.value&&(r.value.fallbackLocale.value=R),l.value=R}}),P=oe(()=>r.value?r.value.messages.value:u.value),z=oe(()=>c.value),Y=oe(()=>p.value);function re(){return r.value?r.value.getPostTranslationHandler():g}function M(R){r.value&&r.value.setPostTranslationHandler(R)}function F(){return r.value?r.value.getMissingHandler():d}function T(R){r.value&&r.value.setMissingHandler(R)}function S(R){return $(),R()}function I(...R){return r.value?S(()=>Reflect.apply(r.value.t,null,[...R])):S(()=>"")}function ne(...R){return r.value?Reflect.apply(r.value.rt,null,[...R]):""}function ge(...R){return r.value?S(()=>Reflect.apply(r.value.d,null,[...R])):S(()=>"")}function L(...R){return r.value?S(()=>Reflect.apply(r.value.n,null,[...R])):S(()=>"")}function ae(R){return r.value?r.value.tm(R):{}}function ie(R,H){return r.value?r.value.te(R,H):!1}function ce(R){return r.value?r.value.getLocaleMessage(R):{}}function we(R,H){r.value&&(r.value.setLocaleMessage(R,H),u.value[R]=H)}function Me(R,H){r.value&&r.value.mergeLocaleMessage(R,H)}function Re(R){return r.value?r.value.getDateTimeFormat(R):{}}function Oe(R,H){r.value&&(r.value.setDateTimeFormat(R,H),c.value[R]=H)}function Ie(R,H){r.value&&r.value.mergeDateTimeFormat(R,H)}function qe(R){return r.value?r.value.getNumberFormat(R):{}}function Je(R,H){r.value&&(r.value.setNumberFormat(R,H),p.value[R]=H)}function ft(R,H){r.value&&r.value.mergeNumberFormat(R,H)}const E={get id(){return r.value?r.value.id:-1},locale:A,fallbackLocale:C,messages:P,datetimeFormats:z,numberFormats:Y,get inheritLocale(){return r.value?r.value.inheritLocale:s},set inheritLocale(R){r.value&&(r.value.inheritLocale=R)},get availableLocales(){return r.value?r.value.availableLocales:Object.keys(u.value)},get modifiers(){return r.value?r.value.modifiers:_},get pluralRules(){return r.value?r.value.pluralRules:x},get isGlobal(){return r.value?r.value.isGlobal:!1},get missingWarn(){return r.value?r.value.missingWarn:f},set missingWarn(R){r.value&&(r.value.missingWarn=R)},get fallbackWarn(){return r.value?r.value.fallbackWarn:k},set fallbackWarn(R){r.value&&(r.value.missingWarn=R)},get fallbackRoot(){return r.value?r.value.fallbackRoot:w},set fallbackRoot(R){r.value&&(r.value.fallbackRoot=R)},get fallbackFormat(){return r.value?r.value.fallbackFormat:m},set fallbackFormat(R){r.value&&(r.value.fallbackFormat=R)},get warnHtmlMessage(){return r.value?r.value.warnHtmlMessage:h},set warnHtmlMessage(R){r.value&&(r.value.warnHtmlMessage=R)},get escapeParameter(){return r.value?r.value.escapeParameter:b},set escapeParameter(R){r.value&&(r.value.escapeParameter=R)},t:I,getPostTranslationHandler:re,setPostTranslationHandler:M,getMissingHandler:F,setMissingHandler:T,rt:ne,d:ge,n:L,tm:ae,te:ie,getLocaleMessage:ce,setLocaleMessage:we,mergeLocaleMessage:Me,getDateTimeFormat:Re,setDateTimeFormat:Oe,mergeDateTimeFormat:Ie,getNumberFormat:qe,setNumberFormat:Je,mergeNumberFormat:ft};function O(R){R.locale.value=i.value,R.fallbackLocale.value=l.value,Object.keys(u.value).forEach(H=>{R.mergeLocaleMessage(H,u.value[H])}),Object.keys(c.value).forEach(H=>{R.mergeDateTimeFormat(H,c.value[H])}),Object.keys(p.value).forEach(H=>{R.mergeNumberFormat(H,p.value[H])}),R.escapeParameter=b,R.fallbackFormat=m,R.fallbackRoot=w,R.fallbackWarn=k,R.missingWarn=f,R.warnHtmlMessage=h}return Pl(()=>{if(e.proxy==null||e.proxy.$i18n==null)throw kt(bt.NOT_AVAILABLE_COMPOSITION_IN_LEGACY);const R=r.value=e.proxy.$i18n.__composer;t==="global"?(i.value=R.locale.value,l.value=R.fallbackLocale.value,u.value=R.messages.value,c.value=R.datetimeFormats.value,p.value=R.numberFormats.value):a&&O(R)}),E}const I0=["locale","fallbackLocale","availableLocales"],Qu=["t","rt","d","n","tm","te"];function O0(e,t){const o=Object.create(null);return I0.forEach(a=>{const r=Object.getOwnPropertyDescriptor(t,a);if(!r)throw kt(bt.UNEXPECTED_ERROR);const s=at(r.value)?{get(){return r.value.value},set(i){r.value.value=i}}:{get(){return r.get&&r.get()}};Object.defineProperty(o,a,s)}),e.config.globalProperties.$i18n=o,Qu.forEach(a=>{const r=Object.getOwnPropertyDescriptor(t,a);if(!r||!r.value)throw kt(bt.UNEXPECTED_ERROR);Object.defineProperty(e.config.globalProperties,`$${a}`,r)}),()=>{delete e.config.globalProperties.$i18n,Qu.forEach(a=>{delete e.config.globalProperties[`$${a}`]})}}if(f0(),__INTLIFY_JIT_COMPILATION__?hu(l0):hu(i0),Zy(My),Qy(uu),__INTLIFY_PROD_DEVTOOLS__){const e=Eo();e.__INTLIFY__=!0,jy(e.__INTLIFY_DEVTOOLS_GLOBAL_HOOK__)}const F0=Object.assign({"./locales/ar/aria.json":wh,"./locales/ar/buttons.json":xh,"./locales/ar/detail.json":$h,"./locales/ar/legend.json":Ah,"./locales/ar/messages.json":Sh,"./locales/ar/options.json":Eh,"./locales/ar/popup.json":Lh,"./locales/ar/prayerLaps.json":Ch,"./locales/ar/regions.json":Ph,"./locales/ar/search.json":Th,"./locales/ar/tabs.json":Mh,"./locales/de/aria.json":Nh,"./locales/de/buttons.json":Rh,"./locales/de/detail.json":Ih,"./locales/de/legend.json":Oh,"./locales/de/messages.json":Fh,"./locales/de/options.json":Dh,"./locales/de/popup.json":Bh,"./locales/de/prayerLaps.json":Gh,"./locales/de/regions.json":jh,"./locales/de/search.json":Uh,"./locales/de/tabs.json":Kh,"./locales/en/aria.json":zh,"./locales/en/buttons.json":Hh,"./locales/en/detail.json":Vh,"./locales/en/legend.json":Wh,"./locales/en/messages.json":Yh,"./locales/en/options.json":qh,"./locales/en/popup.json":Jh,"./locales/en/prayerLaps.json":Xh,"./locales/en/regions.json":Zh,"./locales/en/search.json":Qh,"./locales/en/tabs.json":em,"./locales/es/aria.json":tm,"./locales/es/buttons.json":om,"./locales/es/detail.json":nm,"./locales/es/legend.json":am,"./locales/es/messages.json":rm,"./locales/es/options.json":sm,"./locales/es/popup.json":im,"./locales/es/prayerLaps.json":lm,"./locales/es/regions.json":cm,"./locales/es/search.json":um,"./locales/es/tabs.json":dm,"./locales/fr/aria.json":pm,"./locales/fr/buttons.json":gm,"./locales/fr/detail.json":fm,"./locales/fr/legend.json":hm,"./locales/fr/messages.json":mm,"./locales/fr/options.json":bm,"./locales/fr/popup.json":ym,"./locales/fr/prayerLaps.json":_m,"./locales/fr/regions.json":vm,"./locales/fr/search.json":km,"./locales/fr/tabs.json":wm,"./locales/hi/aria.json":xm,"./locales/hi/buttons.json":$m,"./locales/hi/detail.json":Am,"./locales/hi/legend.json":Sm,"./locales/hi/messages.json":Em,"./locales/hi/options.json":Lm,"./locales/hi/popup.json":Cm,"./locales/hi/prayerLaps.json":Pm,"./locales/hi/regions.json":Tm,"./locales/hi/search.json":Mm,"./locales/hi/tabs.json":Nm,"./locales/it/aria.json":Rm,"./locales/it/buttons.json":Im,"./locales/it/detail.json":Om,"./locales/it/legend.json":Fm,"./locales/it/messages.json":Dm,"./locales/it/options.json":Bm,"./locales/it/popup.json":Gm,"./locales/it/prayerLaps.json":jm,"./locales/it/search.json":Um,"./locales/it/tabs.json":Km,"./locales/pt/aria.json":zm,"./locales/pt/buttons.json":Hm,"./locales/pt/detail.json":Vm,"./locales/pt/legend.json":Wm,"./locales/pt/messages.json":Ym,"./locales/pt/options.json":qm,"./locales/pt/popup.json":Jm,"./locales/pt/prayerLaps.json":Xm,"./locales/pt/regions.json":Zm,"./locales/pt/search.json":Qm,"./locales/pt/tabs.json":eb,"./locales/ro/aria.json":tb,"./locales/ro/buttons.json":ob,"./locales/ro/detail.json":nb,"./locales/ro/legend.json":ab,"./locales/ro/messages.json":rb,"./locales/ro/options.json":sb,"./locales/ro/popup.json":ib,"./locales/ro/prayerLaps.json":lb,"./locales/ro/search.json":cb,"./locales/ro/tabs.json":ub,"./locales/ru/aria.json":db,"./locales/ru/buttons.json":pb,"./locales/ru/detail.json":gb,"./locales/ru/legend.json":fb,"./locales/ru/messages.json":hb,"./locales/ru/options.json":mb,"./locales/ru/popup.json":bb,"./locales/ru/prayerLaps.json":yb,"./locales/ru/regions.json":_b,"./locales/ru/search.json":vb,"./locales/ru/tabs.json":kb,"./locales/zh/aria.json":wb,"./locales/zh/buttons.json":xb,"./locales/zh/detail.json":$b,"./locales/zh/legend.json":Ab,"./locales/zh/messages.json":Sb,"./locales/zh/options.json":Eb,"./locales/zh/popup.json":Lb,"./locales/zh/prayerLaps.json":Cb,"./locales/zh/search.json":Pb,"./locales/zh/tabs.json":Tb}),ua={};for(const[e,t]of Object.entries(F0)){const o=e.match(/\.\/locales\/([^/]+)\/([^/]+)\.json$/);if(!o)continue;const[,n,a]=o;ua[n]??(ua[n]={}),ua[n][a]=t}const Hs=["ar","de","en","es","fr","hi","it","pt","ro","ru","zh"],D0=new Set(["ar"]);function B0(){var n;const e=(()=>{try{const a=new URLSearchParams(window.location.search);return(a.get("lang")||a.get("locale")||"").split("-")[0].toLowerCase()}catch{return""}})();if(Hs.includes(e))return e;const o=(((n=document==null?void 0:document.documentElement)==null?void 0:n.lang)||"").split("-")[0].toLowerCase();return Hs.includes(o)?o:"en"}function G0(){const e=B0();try{D0.has(e)&&(document!=null&&document.documentElement)&&(document.documentElement.dir="rtl")}catch{}return S0({legacy:!1,globalInjection:!0,locale:e,fallbackLocale:"en",messages:ua,missingWarn:!1,fallbackWarn:!1})}function wt(e,t){const o=t||j0(e);io(()=>{var i;const n=Ao();if(!n)return;const a=(i=n.proxy)==null?void 0:i.$el;if(!a)return;const r=a.getRootNode();if(!(r instanceof ShadowRoot)||r.querySelector(`style[data-shadow-styles="${o}"]`))return;const s=document.createElement("style");s.setAttribute("data-shadow-styles",o),s.textContent=e,r.appendChild(s)})}function j0(e){let t=0;for(let o=0;o(t==null?void 0:t.theme)==="dark"),a=oe(()=>{var d;return((d=o==null?void 0:o.value)==null?void 0:d.pinHintLabel)||"Tap a coloured dot — someone still needs prayer"}),r=de(!1),s=de(null);let i=null,l=null,u=null,c=null,p=null;function f(){r.value=!1}function k(d,g){var b;let h=d==null?void 0:d.parentElement;for(let _=0;h&&_<12;_++,h=h.parentElement){if(h===g||(b=h.classList)!=null&&b.contains("profile-loader"))return null;let x="";try{x=getComputedStyle(h).position}catch{}if(x&&x!=="static"){const $=h.getBoundingClientRect();if($.height>=120&&$.width>=160)return h}}return null}function w(){const d=s.value;if(d)try{d.style.removeProperty("--pin-hint-lift");const g=d.getBoundingClientRect();if(!g.height)return;const h=Math.round(g.bottom-window.innerHeight);h>0&&d.style.setProperty("--pin-hint-lift",h+8+"px")}catch{}}function m(d){const g=s.value;if(!g||!(d!=null&&d.querySelector))return;let h=0;try{const _=d.querySelector(".mapboxgl-ctrl-bottom-right .mapboxgl-ctrl-attrib, .mapboxgl-ctrl-bottom-right .doxa-attribution, .doxa-attribution");if(_){const x=_.getBoundingClientRect(),$=g.parentElement,A=$?$.getBoundingClientRect():null;if(h=A?Math.max(x.height||0,A.bottom-x.top):x.height||0,p!==_&&typeof ResizeObserver<"u"){if(u)try{u.disconnect()}catch{}p=_,u=new ResizeObserver(()=>m(d)),u.observe(_)}}}catch{}const b=Math.min(Math.max(Math.ceil(h)||20,20),72);g.style.setProperty("--pin-hint-attrib-clear",b+"px"),w()}return io(()=>{var b,_,x;const d=Ao(),g=(x=(_=(b=d==null?void 0:d.proxy)==null?void 0:b.$el)==null?void 0:_.getRootNode)==null?void 0:x.call(_);if(!g||typeof g.querySelector!="function")return;let h=0;i=setInterval(()=>{h++;const $=g.querySelector("canvas");$?(clearInterval(i),i=null,r.value=!0,so(()=>{const A=k($,g),C=s.value;if(A&&C&&C.parentElement!==A)try{A.appendChild(C),l=A}catch{}m(g),w();try{const P=s.value&&s.value.offsetParent||null;if(P&&typeof ResizeObserver<"u"){if(c)try{c.disconnect()}catch{}c=new ResizeObserver(()=>w()),c.observe(P)}}catch{}})):h>40&&(clearInterval(i),i=null)},300)}),lo(()=>{var d;if(i&&clearInterval(i),u){try{u.disconnect()}catch{}u=null}if(p=null,c){try{c.disconnect()}catch{}c=null}if(l&&((d=s.value)==null?void 0:d.parentElement)===l)try{l.removeChild(s.value)}catch{}l=null}),wt(` + */const f0="9.14.5";function h0(){typeof __VUE_I18N_FULL_INSTALL__!="boolean"&&(Eo().__VUE_I18N_FULL_INSTALL__=!0),typeof __VUE_I18N_LEGACY_API__!="boolean"&&(Eo().__VUE_I18N_LEGACY_API__=!0),typeof __INTLIFY_JIT_COMPILATION__!="boolean"&&(Eo().__INTLIFY_JIT_COMPILATION__=!1),typeof __INTLIFY_DROP_MESSAGE_COMPILER__!="boolean"&&(Eo().__INTLIFY_DROP_MESSAGE_COMPILER__=!1),typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(Eo().__INTLIFY_PROD_DEVTOOLS__=!1)}const m0=Wy.__EXTEND_POINT__,Co=cr(m0);Co(),Co(),Co(),Co(),Co(),Co(),Co(),Co(),Co();const Iu=Qt.__EXTEND_POINT__,Ft=cr(Iu),bt={UNEXPECTED_RETURN_TYPE:Iu,INVALID_ARGUMENT:Ft(),MUST_BE_CALL_SETUP_TOP:Ft(),NOT_INSTALLED:Ft(),NOT_AVAILABLE_IN_LEGACY_MODE:Ft(),REQUIRED_VALUE:Ft(),INVALID_VALUE:Ft(),CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN:Ft(),NOT_INSTALLED_WITH_PROVIDE:Ft(),UNEXPECTED_ERROR:Ft(),NOT_COMPATIBLE_LEGACY_VUE_I18N:Ft(),BRIDGE_SUPPORT_VUE_2_ONLY:Ft(),MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION:Ft(),NOT_AVAILABLE_COMPOSITION_IN_LEGACY:Ft(),__EXTEND_POINT__:Ft()};function kt(e,...t){return xn(e,null,void 0)}const Ds=Fo("__translateVNode"),Bs=Fo("__datetimeParts"),Gs=Fo("__numberParts"),Ou=Fo("__setPluralRules"),Fu=Fo("__injectWithOption"),js=Fo("__dispose");function ca(e){if(!ze(e)||go(e))return e;for(const t in e)if(Xt(e,t))if(!t.includes("."))ze(e[t])&&ca(e[t]);else{const o=t.split("."),n=o.length-1;let a=e,r=!1;for(let s=0;s{if("locale"in i&&"resource"in i){const{locale:l,resource:u}=i;l?(s[l]=s[l]||Xe(),dr(u,s[l])):dr(u,s)}else fe(i)&&dr(JSON.parse(i),s)}),a==null&&r)for(const i in s)Xt(s,i)&&ca(s[i]);return s}function Du(e){return e.type}function Bu(e,t,o){let n=ze(t.messages)?t.messages:Xe();"__i18nGlobal"in o&&(n=hr(e.locale.value,{messages:n,__i18n:o.__i18nGlobal}));const a=Object.keys(n);a.length&&a.forEach(r=>{e.mergeLocaleMessage(r,n[r])});{if(ze(t.datetimeFormats)){const r=Object.keys(t.datetimeFormats);r.length&&r.forEach(s=>{e.mergeDateTimeFormat(s,t.datetimeFormats[s])})}if(ze(t.numberFormats)){const r=Object.keys(t.numberFormats);r.length&&r.forEach(s=>{e.mergeNumberFormat(s,t.numberFormats[s])})}}}function Gu(e){return He(Zn,null,e,0)}const ju="__INTLIFY_META__",Uu=()=>[],b0=()=>!1;let zu=0;function Ku(e){return(t,o,n,a)=>e(o,n,Ao()||void 0,a)}const y0=()=>{const e=Ao();let t=null;return e&&(t=Du(e)[ju])?{[ju]:t}:null};function Us(e={},t){const{__root:o,__injectWithOption:n}=e,a=o===void 0,r=e.flatJson,s=ir?pe:gn,i=!!e.translateExistCompatible;let l=De(e.inheritLocale)?e.inheritLocale:!0;const u=s(o&&l?o.locale.value:fe(e.locale)?e.locale:Sn),c=s(o&&l?o.fallbackLocale.value:fe(e.fallbackLocale)||rt(e.fallbackLocale)||Ce(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:u.value),p=s(hr(u.value,e)),g=s(Ce(e.datetimeFormats)?e.datetimeFormats:{[u.value]:{}}),k=s(Ce(e.numberFormats)?e.numberFormats:{[u.value]:{}});let w=o?o.missingWarn:De(e.missingWarn)||Do(e.missingWarn)?e.missingWarn:!0,m=o?o.fallbackWarn:De(e.fallbackWarn)||Do(e.fallbackWarn)?e.fallbackWarn:!0,d=o?o.fallbackRoot:De(e.fallbackRoot)?e.fallbackRoot:!0,f=!!e.fallbackFormat,h=tt(e.missing)?e.missing:null,b=tt(e.missing)?Ku(e.missing):null,_=tt(e.postTranslation)?e.postTranslation:null,x=o?o.warnHtmlMessage:De(e.warnHtmlMessage)?e.warnHtmlMessage:!0,$=!!e.escapeParameter;const A=o?o.modifiers:Ce(e.modifiers)?e.modifiers:{};let P=e.pluralRules||o&&o.pluralRules,T;T=(()=>{a&&vu(null);const G={version:f0,locale:u.value,fallbackLocale:c.value,messages:p.value,modifiers:A,pluralRules:P,missing:b===null?void 0:b,missingWarn:w,fallbackWarn:m,fallbackFormat:f,unresolving:!0,postTranslation:_===null?void 0:_,warnHtmlMessage:x,escapeParameter:$,messageResolver:e.messageResolver,messageCompiler:e.messageCompiler,__meta:{framework:"vue"}};G.datetimeFormats=g.value,G.numberFormats=k.value,G.__datetimeFormatters=Ce(T)?T.__datetimeFormatters:void 0,G.__numberFormatters=Ce(T)?T.__numberFormatters:void 0;const q=a0(G);return a&&vu(q),q})(),la(T,u.value,c.value);function W(){return[u.value,c.value,p.value,g.value,k.value]}const re=ne({get:()=>u.value,set:G=>{u.value=G,T.locale=u.value}}),M=ne({get:()=>c.value,set:G=>{c.value=G,T.fallbackLocale=c.value,la(T,u.value,G)}}),O=ne(()=>p.value),D=ne(()=>g.value),S=ne(()=>k.value);function C(){return tt(_)?_:null}function ae(G){_=G,T.postTranslation=G}function le(){return h}function E(G){G!==null&&(b=Ku(G)),h=G,T.missing=b}const Q=(G,q,me,$e,Ge,F)=>{W();let K;try{__INTLIFY_PROD_DEVTOOLS__,a||(T.fallbackContext=o?n0():void 0),K=G(T)}finally{__INTLIFY_PROD_DEVTOOLS__,a||(T.fallbackContext=void 0)}if(me!=="translate exists"&&pt(K)&&K===fr||me==="translate exists"&&!K){const[he,ke]=q();return o&&d?$e(o):Ge(he)}else{if(F(K))return K;throw kt(bt.UNEXPECTED_RETURN_TYPE)}};function se(...G){return Q(q=>Reflect.apply(Su,null,[q,...G]),()=>Is(...G),"translate",q=>Reflect.apply(q.t,q,[...G]),q=>q,q=>fe(q))}function ue(...G){const[q,me,$e]=G;if($e&&!ze($e))throw kt(bt.INVALID_ARGUMENT);return se(q,me,Lt({resolvedMessage:!0},$e||{}))}function _e(...G){return Q(q=>Reflect.apply(Cu,null,[q,...G]),()=>Os(...G),"datetime format",q=>Reflect.apply(q.d,q,[...G]),()=>pu,q=>fe(q))}function Te(...G){return Q(q=>Reflect.apply(Mu,null,[q,...G]),()=>Fs(...G),"number format",q=>Reflect.apply(q.n,q,[...G]),()=>pu,q=>fe(q))}function Me(G){return G.map(q=>fe(q)||pt(q)||De(q)?Gu(String(q)):q)}const Ie={normalize:Me,interpolate:G=>G,type:"vnode"};function qe(...G){return Q(q=>{let me;const $e=q;try{$e.processor=Ie,me=Reflect.apply(Su,null,[$e,...G])}finally{$e.processor=null}return me},()=>Is(...G),"translate",q=>q[Ds](...G),q=>[Gu(q)],q=>rt(q))}function Je(...G){return Q(q=>Reflect.apply(Mu,null,[q,...G]),()=>Fs(...G),"number format",q=>q[Gs](...G),Uu,q=>fe(q)||rt(q))}function ft(...G){return Q(q=>Reflect.apply(Cu,null,[q,...G]),()=>Os(...G),"datetime format",q=>q[Bs](...G),Uu,q=>fe(q)||rt(q))}function L(G){P=G,T.pluralRules=P}function I(G,q){return Q(()=>{if(!G)return!1;const me=fe(q)?q:u.value,$e=X(me),Ge=T.messageResolver($e,G);return i?Ge!=null:go(Ge)||Ht(Ge)||fe(Ge)},()=>[G],"translate exists",me=>Reflect.apply(me.te,me,[G,q]),b0,me=>De(me))}function R(G){let q=null;const me=uu(T,c.value,u.value);for(let $e=0;$e{l&&(u.value=G,T.locale=G,la(T,u.value,c.value))}),it(o.fallbackLocale,G=>{l&&(c.value=G,T.fallbackLocale=G,la(T,u.value,c.value))}));const ie={id:zu,locale:re,fallbackLocale:M,get inheritLocale(){return l},set inheritLocale(G){l=G,G&&o&&(u.value=o.locale.value,c.value=o.fallbackLocale.value,la(T,u.value,c.value))},get availableLocales(){return Object.keys(p.value).sort()},messages:O,get modifiers(){return A},get pluralRules(){return P||{}},get isGlobal(){return a},get missingWarn(){return w},set missingWarn(G){w=G,T.missingWarn=w},get fallbackWarn(){return m},set fallbackWarn(G){m=G,T.fallbackWarn=m},get fallbackRoot(){return d},set fallbackRoot(G){d=G},get fallbackFormat(){return f},set fallbackFormat(G){f=G,T.fallbackFormat=f},get warnHtmlMessage(){return x},set warnHtmlMessage(G){x=G,T.warnHtmlMessage=G},get escapeParameter(){return $},set escapeParameter(G){$=G,T.escapeParameter=G},t:se,getLocaleMessage:X,setLocaleMessage:J,mergeLocaleMessage:Z,getPostTranslationHandler:C,setPostTranslationHandler:ae,getMissingHandler:le,setMissingHandler:E,[Ou]:L};return ie.datetimeFormats=D,ie.numberFormats=S,ie.rt=ue,ie.te=I,ie.tm=H,ie.d=_e,ie.n=Te,ie.getDateTimeFormat=te,ie.setDateTimeFormat=y,ie.mergeDateTimeFormat=v,ie.getNumberFormat=B,ie.setNumberFormat=Y,ie.mergeNumberFormat=de,ie[Fu]=n,ie[Ds]=qe,ie[Bs]=ft,ie[Gs]=Je,ie}function _0(e){const t=fe(e.locale)?e.locale:Sn,o=fe(e.fallbackLocale)||rt(e.fallbackLocale)||Ce(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:t,n=tt(e.missing)?e.missing:void 0,a=De(e.silentTranslationWarn)||Do(e.silentTranslationWarn)?!e.silentTranslationWarn:!0,r=De(e.silentFallbackWarn)||Do(e.silentFallbackWarn)?!e.silentFallbackWarn:!0,s=De(e.fallbackRoot)?e.fallbackRoot:!0,i=!!e.formatFallbackMessages,l=Ce(e.modifiers)?e.modifiers:{},u=e.pluralizationRules,c=tt(e.postTranslation)?e.postTranslation:void 0,p=fe(e.warnHtmlInMessage)?e.warnHtmlInMessage!=="off":!0,g=!!e.escapeParameterHtml,k=De(e.sync)?e.sync:!0;let w=e.messages;if(Ce(e.sharedMessages)){const $=e.sharedMessages;w=Object.keys($).reduce((P,T)=>{const z=P[T]||(P[T]={});return Lt(z,$[T]),P},w||{})}const{__i18n:m,__root:d,__injectWithOption:f}=e,h=e.datetimeFormats,b=e.numberFormats,_=e.flatJson,x=e.translateExistCompatible;return{locale:t,fallbackLocale:o,messages:w,flatJson:_,datetimeFormats:h,numberFormats:b,missing:n,missingWarn:a,fallbackWarn:r,fallbackRoot:s,fallbackFormat:i,modifiers:l,pluralRules:u,postTranslation:c,warnHtmlMessage:p,escapeParameter:g,messageResolver:e.messageResolver,inheritLocale:k,translateExistCompatible:x,__i18n:m,__root:d,__injectWithOption:f}}function zs(e={},t){{const o=Us(_0(e)),{__extender:n}=e,a={id:o.id,get locale(){return o.locale.value},set locale(r){o.locale.value=r},get fallbackLocale(){return o.fallbackLocale.value},set fallbackLocale(r){o.fallbackLocale.value=r},get messages(){return o.messages.value},get datetimeFormats(){return o.datetimeFormats.value},get numberFormats(){return o.numberFormats.value},get availableLocales(){return o.availableLocales},get formatter(){return{interpolate(){return[]}}},set formatter(r){},get missing(){return o.getMissingHandler()},set missing(r){o.setMissingHandler(r)},get silentTranslationWarn(){return De(o.missingWarn)?!o.missingWarn:o.missingWarn},set silentTranslationWarn(r){o.missingWarn=De(r)?!r:r},get silentFallbackWarn(){return De(o.fallbackWarn)?!o.fallbackWarn:o.fallbackWarn},set silentFallbackWarn(r){o.fallbackWarn=De(r)?!r:r},get modifiers(){return o.modifiers},get formatFallbackMessages(){return o.fallbackFormat},set formatFallbackMessages(r){o.fallbackFormat=r},get postTranslation(){return o.getPostTranslationHandler()},set postTranslation(r){o.setPostTranslationHandler(r)},get sync(){return o.inheritLocale},set sync(r){o.inheritLocale=r},get warnHtmlInMessage(){return o.warnHtmlMessage?"warn":"off"},set warnHtmlInMessage(r){o.warnHtmlMessage=r!=="off"},get escapeParameterHtml(){return o.escapeParameter},set escapeParameterHtml(r){o.escapeParameter=r},get preserveDirectiveContent(){return!0},set preserveDirectiveContent(r){},get pluralizationRules(){return o.pluralRules||{}},__composer:o,t(...r){const[s,i,l]=r,u={};let c=null,p=null;if(!fe(s))throw kt(bt.INVALID_ARGUMENT);const g=s;return fe(i)?u.locale=i:rt(i)?c=i:Ce(i)&&(p=i),rt(l)?c=l:Ce(l)&&(p=l),Reflect.apply(o.t,o,[g,c||p||{},u])},rt(...r){return Reflect.apply(o.rt,o,[...r])},tc(...r){const[s,i,l]=r,u={plural:1};let c=null,p=null;if(!fe(s))throw kt(bt.INVALID_ARGUMENT);const g=s;return fe(i)?u.locale=i:pt(i)?u.plural=i:rt(i)?c=i:Ce(i)&&(p=i),fe(l)?u.locale=l:rt(l)?c=l:Ce(l)&&(p=l),Reflect.apply(o.t,o,[g,c||p||{},u])},te(r,s){return o.te(r,s)},tm(r){return o.tm(r)},getLocaleMessage(r){return o.getLocaleMessage(r)},setLocaleMessage(r,s){o.setLocaleMessage(r,s)},mergeLocaleMessage(r,s){o.mergeLocaleMessage(r,s)},d(...r){return Reflect.apply(o.d,o,[...r])},getDateTimeFormat(r){return o.getDateTimeFormat(r)},setDateTimeFormat(r,s){o.setDateTimeFormat(r,s)},mergeDateTimeFormat(r,s){o.mergeDateTimeFormat(r,s)},n(...r){return Reflect.apply(o.n,o,[...r])},getNumberFormat(r){return o.getNumberFormat(r)},setNumberFormat(r,s){o.setNumberFormat(r,s)},mergeNumberFormat(r,s){o.mergeNumberFormat(r,s)},getChoiceIndex(r,s){return-1}};return a.__extender=n,a}}const Ks={tag:{type:[String,Object]},locale:{type:String},scope:{type:String,validator:e=>e==="parent"||e==="global",default:"parent"},i18n:{type:Object}};function v0({slots:e},t){return t.length===1&&t[0]==="default"?(e.default?e.default():[]).reduce((n,a)=>[...n,...a.type===Ne?a.children:[a]],[]):t.reduce((o,n)=>{const a=e[n];return a&&(o[n]=a()),o},Xe())}function Hu(e){return Ne}const Vu=Yn({name:"i18n-t",props:Lt({keypath:{type:String,required:!0},plural:{type:[Number,String],validator:e=>pt(e)||!isNaN(e)}},Ks),setup(e,t){const{slots:o,attrs:n}=t,a=e.i18n||yt({useScope:e.scope,__useComponent:!0});return()=>{const r=Object.keys(o).filter(p=>p!=="_"),s=Xe();e.locale&&(s.locale=e.locale),e.plural!==void 0&&(s.plural=fe(e.plural)?+e.plural:e.plural);const i=v0(t,r),l=a[Ds](e.keypath,i,s),u=Lt(Xe(),n),c=fe(e.tag)||ze(e.tag)?e.tag:Hu();return gc(c,u,l)}}});function k0(e){return rt(e)&&!fe(e[0])}function Wu(e,t,o,n){const{slots:a,attrs:r}=t;return()=>{const s={part:!0};let i=Xe();e.locale&&(s.locale=e.locale),fe(e.format)?s.key=e.format:ze(e.format)&&(fe(e.format.key)&&(s.key=e.format.key),i=Object.keys(e.format).reduce((g,k)=>o.includes(k)?Lt(Xe(),g,{[k]:e.format[k]}):g,Xe()));const l=n(e.value,s,i);let u=[s.key];rt(l)?u=l.map((g,k)=>{const w=a[g.type],m=w?w({[g.type]:g.value,index:k,parts:l}):[g.value];return k0(m)&&(m[0].key=`${g.type}-${k}`),m}):fe(l)&&(u=[l]);const c=Lt(Xe(),r),p=fe(e.tag)||ze(e.tag)?e.tag:Hu();return gc(p,c,u)}}const Yu=Yn({name:"i18n-n",props:Lt({value:{type:Number,required:!0},format:{type:[String,Object]}},Ks),setup(e,t){const o=e.i18n||yt({useScope:e.scope,__useComponent:!0});return Wu(e,t,Nu,(...n)=>o[Gs](...n))}}),qu=Yn({name:"i18n-d",props:Lt({value:{type:[Number,Date],required:!0},format:{type:[String,Object]}},Ks),setup(e,t){const o=e.i18n||yt({useScope:e.scope,__useComponent:!0});return Wu(e,t,Pu,(...n)=>o[Bs](...n))}});function w0(e,t){const o=e;if(e.mode==="composition")return o.__getInstance(t)||e.global;{const n=o.__getInstance(t);return n!=null?n.__composer:e.global.__composer}}function x0(e){const t=s=>{const{instance:i,modifiers:l,value:u}=s;if(!i||!i.$)throw kt(bt.UNEXPECTED_ERROR);const c=w0(e,i.$),p=Ju(u);return[Reflect.apply(c.t,c,[...Xu(p)]),c]};return{created:(s,i)=>{const[l,u]=t(i);ir&&e.global===u&&(s.__i18nWatcher=it(u.locale,()=>{i.instance&&i.instance.$forceUpdate()})),s.__composer=u,s.textContent=l},unmounted:s=>{ir&&s.__i18nWatcher&&(s.__i18nWatcher(),s.__i18nWatcher=void 0,delete s.__i18nWatcher),s.__composer&&(s.__composer=void 0,delete s.__composer)},beforeUpdate:(s,{value:i})=>{if(s.__composer){const l=s.__composer,u=Ju(i);s.textContent=Reflect.apply(l.t,l,[...Xu(u)])}},getSSRProps:s=>{const[i]=t(s);return{textContent:i}}}}function Ju(e){if(fe(e))return{path:e};if(Ce(e)){if(!("path"in e))throw kt(bt.REQUIRED_VALUE,"path");return e}else throw kt(bt.INVALID_VALUE)}function Xu(e){const{path:t,locale:o,args:n,choice:a,plural:r}=e,s={},i=n||{};return fe(o)&&(s.locale=o),pt(a)&&(s.plural=a),pt(r)&&(s.plural=r),[t,i,s]}function $0(e,t,...o){const n=Ce(o[0])?o[0]:{},a=!!n.useI18nComponentName;(De(n.globalInstall)?n.globalInstall:!0)&&([a?"i18n":Vu.name,"I18nT"].forEach(s=>e.component(s,Vu)),[Yu.name,"I18nN"].forEach(s=>e.component(s,Yu)),[qu.name,"I18nD"].forEach(s=>e.component(s,qu))),e.directive("t",x0(t))}function A0(e,t,o){return{beforeCreate(){const n=Ao();if(!n)throw kt(bt.UNEXPECTED_ERROR);const a=this.$options;if(a.i18n){const r=a.i18n;if(a.__i18n&&(r.__i18n=a.__i18n),r.__root=t,this===this.$root)this.$i18n=Zu(e,r);else{r.__injectWithOption=!0,r.__extender=o.__vueI18nExtend,this.$i18n=zs(r);const s=this.$i18n;s.__extender&&(s.__disposer=s.__extender(this.$i18n))}}else if(a.__i18n)if(this===this.$root)this.$i18n=Zu(e,a);else{this.$i18n=zs({__i18n:a.__i18n,__injectWithOption:!0,__extender:o.__vueI18nExtend,__root:t});const r=this.$i18n;r.__extender&&(r.__disposer=r.__extender(this.$i18n))}else this.$i18n=e;a.__i18nGlobal&&Bu(t,a,a),this.$t=(...r)=>this.$i18n.t(...r),this.$rt=(...r)=>this.$i18n.rt(...r),this.$tc=(...r)=>this.$i18n.tc(...r),this.$te=(r,s)=>this.$i18n.te(r,s),this.$d=(...r)=>this.$i18n.d(...r),this.$n=(...r)=>this.$i18n.n(...r),this.$tm=r=>this.$i18n.tm(r),o.__setInstance(n,this.$i18n)},mounted(){},unmounted(){const n=Ao();if(!n)throw kt(bt.UNEXPECTED_ERROR);const a=this.$i18n;delete this.$t,delete this.$rt,delete this.$tc,delete this.$te,delete this.$d,delete this.$n,delete this.$tm,a.__disposer&&(a.__disposer(),delete a.__disposer,delete a.__extender),o.__deleteInstance(n),delete this.$i18n}}}function Zu(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[Ou](t.pluralizationRules||e.pluralizationRules);const o=hr(e.locale,{messages:t.messages,__i18n:t.__i18n});return Object.keys(o).forEach(n=>e.mergeLocaleMessage(n,o[n])),t.datetimeFormats&&Object.keys(t.datetimeFormats).forEach(n=>e.mergeDateTimeFormat(n,t.datetimeFormats[n])),t.numberFormats&&Object.keys(t.numberFormats).forEach(n=>e.mergeNumberFormat(n,t.numberFormats[n])),e}const S0=Fo("global-vue-i18n");function E0(e={},t){const o=__VUE_I18N_LEGACY_API__&&De(e.legacy)?e.legacy:__VUE_I18N_LEGACY_API__,n=De(e.globalInjection)?e.globalInjection:!0,a=__VUE_I18N_LEGACY_API__&&o?!!e.allowComposition:!0,r=new Map,[s,i]=L0(e,o),l=Fo("");function u(g){return r.get(g)||null}function c(g,k){r.set(g,k)}function p(g){r.delete(g)}{const g={get mode(){return __VUE_I18N_LEGACY_API__&&o?"legacy":"composition"},get allowComposition(){return a},async install(k,...w){if(k.__VUE_I18N_SYMBOL__=l,k.provide(k.__VUE_I18N_SYMBOL__,g),Ce(w[0])){const f=w[0];g.__composerExtend=f.__composerExtend,g.__vueI18nExtend=f.__vueI18nExtend}let m=null;!o&&n&&(m=F0(k,g.global)),__VUE_I18N_FULL_INSTALL__&&$0(k,g,...w),__VUE_I18N_LEGACY_API__&&o&&k.mixin(A0(i,i.__composer,g));const d=k.unmount;k.unmount=()=>{m&&m(),g.dispose(),d()}},get global(){return i},dispose(){s.stop()},__instances:r,__getInstance:u,__setInstance:c,__deleteInstance:p};return g}}function yt(e={}){const t=Ao();if(t==null)throw kt(bt.MUST_BE_CALL_SETUP_TOP);if(!t.isCE&&t.appContext.app!=null&&!t.appContext.app.__VUE_I18N_SYMBOL__)throw kt(bt.NOT_INSTALLED);const o=C0(t),n=T0(o),a=Du(t),r=P0(e,a);if(__VUE_I18N_LEGACY_API__&&o.mode==="legacy"&&!e.__useComponent){if(!o.allowComposition)throw kt(bt.NOT_AVAILABLE_IN_LEGACY_MODE);return I0(t,r,n,e)}if(r==="global")return Bu(n,e,a),n;if(r==="parent"){let l=M0(o,t,e.__useComponent);return l==null&&(l=n),l}const s=o;let i=s.__getInstance(t);if(i==null){const l=Lt({},e);"__i18n"in a&&(l.__i18n=a.__i18n),n&&(l.__root=n),i=Us(l),s.__composerExtend&&(i[js]=s.__composerExtend(i)),R0(s,t,i),s.__setInstance(t,i)}return i}function L0(e,t,o){const n=Dr();{const a=__VUE_I18N_LEGACY_API__&&t?n.run(()=>zs(e)):n.run(()=>Us(e));if(a==null)throw kt(bt.UNEXPECTED_ERROR);return[n,a]}}function C0(e){{const t=Fe(e.isCE?S0:e.appContext.app.__VUE_I18N_SYMBOL__);if(!t)throw kt(e.isCE?bt.NOT_INSTALLED_WITH_PROVIDE:bt.UNEXPECTED_ERROR);return t}}function P0(e,t){return lr(e)?"__i18n"in t?"local":"global":e.useScope?e.useScope:"local"}function T0(e){return e.mode==="composition"?e.global:e.global.__composer}function M0(e,t,o=!1){let n=null;const a=t.root;let r=N0(t,o);for(;r!=null;){const s=e;if(e.mode==="composition")n=s.__getInstance(r);else if(__VUE_I18N_LEGACY_API__){const i=s.__getInstance(r);i!=null&&(n=i.__composer,o&&n&&!n[Fu]&&(n=null))}if(n!=null||a===r)break;r=r.parent}return n}function N0(e,t=!1){return e==null?null:t&&e.vnode.ctx||e.parent}function R0(e,t,o){lo(()=>{},t),Wa(()=>{const n=o;e.__deleteInstance(t);const a=n[js];a&&(a(),delete n[js])},t)}function I0(e,t,o,n={}){const a=t==="local",r=gn(null);if(a&&e.proxy&&!(e.proxy.$options.i18n||e.proxy.$options.__i18n))throw kt(bt.MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION);const s=De(n.inheritLocale)?n.inheritLocale:!fe(n.locale),i=pe(!a||s?o.locale.value:fe(n.locale)?n.locale:Sn),l=pe(!a||s?o.fallbackLocale.value:fe(n.fallbackLocale)||rt(n.fallbackLocale)||Ce(n.fallbackLocale)||n.fallbackLocale===!1?n.fallbackLocale:i.value),u=pe(hr(i.value,n)),c=pe(Ce(n.datetimeFormats)?n.datetimeFormats:{[i.value]:{}}),p=pe(Ce(n.numberFormats)?n.numberFormats:{[i.value]:{}}),g=a?o.missingWarn:De(n.missingWarn)||Do(n.missingWarn)?n.missingWarn:!0,k=a?o.fallbackWarn:De(n.fallbackWarn)||Do(n.fallbackWarn)?n.fallbackWarn:!0,w=a?o.fallbackRoot:De(n.fallbackRoot)?n.fallbackRoot:!0,m=!!n.fallbackFormat,d=tt(n.missing)?n.missing:null,f=tt(n.postTranslation)?n.postTranslation:null,h=a?o.warnHtmlMessage:De(n.warnHtmlMessage)?n.warnHtmlMessage:!0,b=!!n.escapeParameter,_=a?o.modifiers:Ce(n.modifiers)?n.modifiers:{},x=n.pluralRules||a&&o.pluralRules;function $(){return[i.value,l.value,u.value,c.value,p.value]}const A=ne({get:()=>r.value?r.value.locale.value:i.value,set:R=>{r.value&&(r.value.locale.value=R),i.value=R}}),P=ne({get:()=>r.value?r.value.fallbackLocale.value:l.value,set:R=>{r.value&&(r.value.fallbackLocale.value=R),l.value=R}}),T=ne(()=>r.value?r.value.messages.value:u.value),z=ne(()=>c.value),W=ne(()=>p.value);function re(){return r.value?r.value.getPostTranslationHandler():f}function M(R){r.value&&r.value.setPostTranslationHandler(R)}function O(){return r.value?r.value.getMissingHandler():d}function D(R){r.value&&r.value.setMissingHandler(R)}function S(R){return $(),R()}function C(...R){return r.value?S(()=>Reflect.apply(r.value.t,null,[...R])):S(()=>"")}function ae(...R){return r.value?Reflect.apply(r.value.rt,null,[...R]):""}function le(...R){return r.value?S(()=>Reflect.apply(r.value.d,null,[...R])):S(()=>"")}function E(...R){return r.value?S(()=>Reflect.apply(r.value.n,null,[...R])):S(()=>"")}function Q(R){return r.value?r.value.tm(R):{}}function se(R,H){return r.value?r.value.te(R,H):!1}function ue(R){return r.value?r.value.getLocaleMessage(R):{}}function _e(R,H){r.value&&(r.value.setLocaleMessage(R,H),u.value[R]=H)}function Te(R,H){r.value&&r.value.mergeLocaleMessage(R,H)}function Me(R){return r.value?r.value.getDateTimeFormat(R):{}}function Oe(R,H){r.value&&(r.value.setDateTimeFormat(R,H),c.value[R]=H)}function Ie(R,H){r.value&&r.value.mergeDateTimeFormat(R,H)}function qe(R){return r.value?r.value.getNumberFormat(R):{}}function Je(R,H){r.value&&(r.value.setNumberFormat(R,H),p.value[R]=H)}function ft(R,H){r.value&&r.value.mergeNumberFormat(R,H)}const L={get id(){return r.value?r.value.id:-1},locale:A,fallbackLocale:P,messages:T,datetimeFormats:z,numberFormats:W,get inheritLocale(){return r.value?r.value.inheritLocale:s},set inheritLocale(R){r.value&&(r.value.inheritLocale=R)},get availableLocales(){return r.value?r.value.availableLocales:Object.keys(u.value)},get modifiers(){return r.value?r.value.modifiers:_},get pluralRules(){return r.value?r.value.pluralRules:x},get isGlobal(){return r.value?r.value.isGlobal:!1},get missingWarn(){return r.value?r.value.missingWarn:g},set missingWarn(R){r.value&&(r.value.missingWarn=R)},get fallbackWarn(){return r.value?r.value.fallbackWarn:k},set fallbackWarn(R){r.value&&(r.value.missingWarn=R)},get fallbackRoot(){return r.value?r.value.fallbackRoot:w},set fallbackRoot(R){r.value&&(r.value.fallbackRoot=R)},get fallbackFormat(){return r.value?r.value.fallbackFormat:m},set fallbackFormat(R){r.value&&(r.value.fallbackFormat=R)},get warnHtmlMessage(){return r.value?r.value.warnHtmlMessage:h},set warnHtmlMessage(R){r.value&&(r.value.warnHtmlMessage=R)},get escapeParameter(){return r.value?r.value.escapeParameter:b},set escapeParameter(R){r.value&&(r.value.escapeParameter=R)},t:C,getPostTranslationHandler:re,setPostTranslationHandler:M,getMissingHandler:O,setMissingHandler:D,rt:ae,d:le,n:E,tm:Q,te:se,getLocaleMessage:ue,setLocaleMessage:_e,mergeLocaleMessage:Te,getDateTimeFormat:Me,setDateTimeFormat:Oe,mergeDateTimeFormat:Ie,getNumberFormat:qe,setNumberFormat:Je,mergeNumberFormat:ft};function I(R){R.locale.value=i.value,R.fallbackLocale.value=l.value,Object.keys(u.value).forEach(H=>{R.mergeLocaleMessage(H,u.value[H])}),Object.keys(c.value).forEach(H=>{R.mergeDateTimeFormat(H,c.value[H])}),Object.keys(p.value).forEach(H=>{R.mergeNumberFormat(H,p.value[H])}),R.escapeParameter=b,R.fallbackFormat=m,R.fallbackRoot=w,R.fallbackWarn=k,R.missingWarn=g,R.warnHtmlMessage=h}return Pl(()=>{if(e.proxy==null||e.proxy.$i18n==null)throw kt(bt.NOT_AVAILABLE_COMPOSITION_IN_LEGACY);const R=r.value=e.proxy.$i18n.__composer;t==="global"?(i.value=R.locale.value,l.value=R.fallbackLocale.value,u.value=R.messages.value,c.value=R.datetimeFormats.value,p.value=R.numberFormats.value):a&&I(R)}),L}const O0=["locale","fallbackLocale","availableLocales"],Qu=["t","rt","d","n","tm","te"];function F0(e,t){const o=Object.create(null);return O0.forEach(a=>{const r=Object.getOwnPropertyDescriptor(t,a);if(!r)throw kt(bt.UNEXPECTED_ERROR);const s=at(r.value)?{get(){return r.value.value},set(i){r.value.value=i}}:{get(){return r.get&&r.get()}};Object.defineProperty(o,a,s)}),e.config.globalProperties.$i18n=o,Qu.forEach(a=>{const r=Object.getOwnPropertyDescriptor(t,a);if(!r||!r.value)throw kt(bt.UNEXPECTED_ERROR);Object.defineProperty(e.config.globalProperties,`$${a}`,r)}),()=>{delete e.config.globalProperties.$i18n,Qu.forEach(a=>{delete e.config.globalProperties[`$${a}`]})}}if(h0(),__INTLIFY_JIT_COMPILATION__?hu(c0):hu(l0),Qy(Ny),e0(uu),__INTLIFY_PROD_DEVTOOLS__){const e=Eo();e.__INTLIFY__=!0,Uy(e.__INTLIFY_DEVTOOLS_GLOBAL_HOOK__)}const D0=Object.assign({"./locales/ar/aria.json":xh,"./locales/ar/buttons.json":$h,"./locales/ar/detail.json":Ah,"./locales/ar/legend.json":Sh,"./locales/ar/messages.json":Eh,"./locales/ar/options.json":Lh,"./locales/ar/popup.json":Ch,"./locales/ar/prayerLaps.json":Ph,"./locales/ar/regions.json":Th,"./locales/ar/search.json":Mh,"./locales/ar/tabs.json":Nh,"./locales/de/aria.json":Rh,"./locales/de/buttons.json":Ih,"./locales/de/detail.json":Oh,"./locales/de/legend.json":Fh,"./locales/de/messages.json":Dh,"./locales/de/options.json":Bh,"./locales/de/popup.json":Gh,"./locales/de/prayerLaps.json":jh,"./locales/de/regions.json":Uh,"./locales/de/search.json":zh,"./locales/de/tabs.json":Kh,"./locales/en/aria.json":Hh,"./locales/en/buttons.json":Vh,"./locales/en/detail.json":Wh,"./locales/en/legend.json":Yh,"./locales/en/messages.json":qh,"./locales/en/options.json":Jh,"./locales/en/popup.json":Xh,"./locales/en/prayerLaps.json":Zh,"./locales/en/regions.json":Qh,"./locales/en/search.json":em,"./locales/en/tabs.json":tm,"./locales/es/aria.json":om,"./locales/es/buttons.json":nm,"./locales/es/detail.json":am,"./locales/es/legend.json":rm,"./locales/es/messages.json":sm,"./locales/es/options.json":im,"./locales/es/popup.json":lm,"./locales/es/prayerLaps.json":cm,"./locales/es/regions.json":um,"./locales/es/search.json":dm,"./locales/es/tabs.json":pm,"./locales/fr/aria.json":gm,"./locales/fr/buttons.json":fm,"./locales/fr/detail.json":hm,"./locales/fr/legend.json":mm,"./locales/fr/messages.json":bm,"./locales/fr/options.json":ym,"./locales/fr/popup.json":_m,"./locales/fr/prayerLaps.json":vm,"./locales/fr/regions.json":km,"./locales/fr/search.json":wm,"./locales/fr/tabs.json":xm,"./locales/hi/aria.json":$m,"./locales/hi/buttons.json":Am,"./locales/hi/detail.json":Sm,"./locales/hi/legend.json":Em,"./locales/hi/messages.json":Lm,"./locales/hi/options.json":Cm,"./locales/hi/popup.json":Pm,"./locales/hi/prayerLaps.json":Tm,"./locales/hi/regions.json":Mm,"./locales/hi/search.json":Nm,"./locales/hi/tabs.json":Rm,"./locales/it/aria.json":Im,"./locales/it/buttons.json":Om,"./locales/it/detail.json":Fm,"./locales/it/legend.json":Dm,"./locales/it/messages.json":Bm,"./locales/it/options.json":Gm,"./locales/it/popup.json":jm,"./locales/it/prayerLaps.json":Um,"./locales/it/search.json":zm,"./locales/it/tabs.json":Km,"./locales/pt/aria.json":Hm,"./locales/pt/buttons.json":Vm,"./locales/pt/detail.json":Wm,"./locales/pt/legend.json":Ym,"./locales/pt/messages.json":qm,"./locales/pt/options.json":Jm,"./locales/pt/popup.json":Xm,"./locales/pt/prayerLaps.json":Zm,"./locales/pt/regions.json":Qm,"./locales/pt/search.json":eb,"./locales/pt/tabs.json":tb,"./locales/ro/aria.json":ob,"./locales/ro/buttons.json":nb,"./locales/ro/detail.json":ab,"./locales/ro/legend.json":rb,"./locales/ro/messages.json":sb,"./locales/ro/options.json":ib,"./locales/ro/popup.json":lb,"./locales/ro/prayerLaps.json":cb,"./locales/ro/search.json":ub,"./locales/ro/tabs.json":db,"./locales/ru/aria.json":pb,"./locales/ru/buttons.json":gb,"./locales/ru/detail.json":fb,"./locales/ru/legend.json":hb,"./locales/ru/messages.json":mb,"./locales/ru/options.json":bb,"./locales/ru/popup.json":yb,"./locales/ru/prayerLaps.json":_b,"./locales/ru/regions.json":vb,"./locales/ru/search.json":kb,"./locales/ru/tabs.json":wb,"./locales/zh/aria.json":xb,"./locales/zh/buttons.json":$b,"./locales/zh/detail.json":Ab,"./locales/zh/legend.json":Sb,"./locales/zh/messages.json":Eb,"./locales/zh/options.json":Lb,"./locales/zh/popup.json":Cb,"./locales/zh/prayerLaps.json":Pb,"./locales/zh/search.json":Tb,"./locales/zh/tabs.json":Mb}),ua={};for(const[e,t]of Object.entries(D0)){const o=e.match(/\.\/locales\/([^/]+)\/([^/]+)\.json$/);if(!o)continue;const[,n,a]=o;ua[n]??(ua[n]={}),ua[n][a]=t}const Hs=["ar","de","en","es","fr","hi","it","pt","ro","ru","zh"],B0=new Set(["ar"]);function G0(){var n;const e=(()=>{try{const a=new URLSearchParams(window.location.search);return(a.get("lang")||a.get("locale")||"").split("-")[0].toLowerCase()}catch{return""}})();if(Hs.includes(e))return e;const o=(((n=document==null?void 0:document.documentElement)==null?void 0:n.lang)||"").split("-")[0].toLowerCase();return Hs.includes(o)?o:"en"}function j0(){const e=G0();try{B0.has(e)&&(document!=null&&document.documentElement)&&(document.documentElement.dir="rtl")}catch{}return E0({legacy:!1,globalInjection:!0,locale:e,fallbackLocale:"en",messages:ua,missingWarn:!1,fallbackWarn:!1})}function wt(e,t){const o=t||U0(e);lo(()=>{var i;const n=Ao();if(!n)return;const a=(i=n.proxy)==null?void 0:i.$el;if(!a)return;const r=a.getRootNode();if(!(r instanceof ShadowRoot)||r.querySelector(`style[data-shadow-styles="${o}"]`))return;const s=document.createElement("style");s.setAttribute("data-shadow-styles",o),s.textContent=e,r.appendChild(s)})}function U0(e){let t=0;for(let o=0;o(t==null?void 0:t.theme)==="dark"),a=ne(()=>{var d;return((d=o==null?void 0:o.value)==null?void 0:d.pinHintLabel)||"Tap a coloured dot — someone still needs prayer"}),r=pe(!1),s=pe(null);let i=null,l=null,u=null,c=null,p=null;function g(){r.value=!1}function k(d,f){var b;let h=d==null?void 0:d.parentElement;for(let _=0;h&&_<12;_++,h=h.parentElement){if(h===f||(b=h.classList)!=null&&b.contains("profile-loader"))return null;let x="";try{x=getComputedStyle(h).position}catch{}if(x&&x!=="static"){const $=h.getBoundingClientRect();if($.height>=120&&$.width>=160)return h}}return null}function w(){const d=s.value;if(d)try{d.style.removeProperty("--pin-hint-lift");const f=d.getBoundingClientRect();if(!f.height)return;const h=Math.round(f.bottom-window.innerHeight);h>0&&d.style.setProperty("--pin-hint-lift",h+8+"px")}catch{}}function m(d){const f=s.value;if(!f||!(d!=null&&d.querySelector))return;let h=0;try{const _=d.querySelector(".mapboxgl-ctrl-bottom-right .mapboxgl-ctrl-attrib, .mapboxgl-ctrl-bottom-right .doxa-attribution, .doxa-attribution");if(_){const x=_.getBoundingClientRect(),$=f.parentElement,A=$?$.getBoundingClientRect():null;if(h=A?Math.max(x.height||0,A.bottom-x.top):x.height||0,p!==_&&typeof ResizeObserver<"u"){if(u)try{u.disconnect()}catch{}p=_,u=new ResizeObserver(()=>m(d)),u.observe(_)}}}catch{}const b=Math.min(Math.max(Math.ceil(h)||20,20),72);f.style.setProperty("--pin-hint-attrib-clear",b+"px"),w()}return lo(()=>{var b,_,x;const d=Ao(),f=(x=(_=(b=d==null?void 0:d.proxy)==null?void 0:b.$el)==null?void 0:_.getRootNode)==null?void 0:x.call(_);if(!f||typeof f.querySelector!="function")return;let h=0;i=setInterval(()=>{h++;const $=f.querySelector("canvas");$?(clearInterval(i),i=null,r.value=!0,io(()=>{const A=k($,f),P=s.value;if(A&&P&&P.parentElement!==A)try{A.appendChild(P),l=A}catch{}m(f),w();try{const T=s.value&&s.value.offsetParent||null;if(T&&typeof ResizeObserver<"u"){if(c)try{c.disconnect()}catch{}c=new ResizeObserver(()=>w()),c.observe(T)}}catch{}})):h>40&&(clearInterval(i),i=null)},300)}),Jt(()=>{var d;if(i&&clearInterval(i),u){try{u.disconnect()}catch{}u=null}if(p=null,c){try{c.disconnect()}catch{}c=null}if(l&&((d=s.value)==null?void 0:d.parentElement)===l)try{l.removeChild(s.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; @@ -69,7 +69,7 @@ @media (prefers-reduced-motion: reduce) { .pin-hint, .pin-hint-pill, .pin-hint-dot::after { animation: none !important; } } -`,"pin-hint"),(d,g)=>r.value?(V(),te("div",{key:0,ref_key:"hintEl",ref:s,class:Ne(["pin-hint",{dark:n.value}]),role:"status"},[N("span",U0,[g[0]||(g[0]=N("span",{class:"pin-hint-dot","aria-hidden":"true"},null,-1)),mt(" "+pe(a.value)+" ",1),N("button",{class:"pin-hint-x",type:"button","aria-label":"Dismiss hint",onClick:f},"×")])],2)):ye("",!0)}},z0=!1;let H0=0;const V0=xs("ui",{state:()=>({_storeInstanceId:++H0,theme:"light",colorScheme:"default",reducedMotion:!1,highContrast:!1,activeTab:"doxa-regions",sidebarCollapsed:!1,mobileMenuOpen:!1,legendState:"collapsed",_customLegendHeight:null,searchMode:!1,hamburgerMenuOpen:!1,legendMode:"prayer",prayerFilter:null,engagementFilter:null,adoptionFilter:null,religionFilter:null,selectedPeopleGroup:null,breakpoint:"desktop",windowSize:{width:window.innerWidth,height:window.innerHeight},toasts:[],nextToastId:1,toastDuration:5e3,openModals:[],modalData:new Map,isGlobalLoading:!1,globalLoadingMessage:"Loading...",loadingStates:new Map,interactionHistory:[],maxHistoryLength:20,keyboardShortcutsEnabled:!0,screenReaderAnnouncement:"",focusTrapActive:!1,debugMode:!1,showPerformanceOverlay:!1}),getters:{isDarkTheme:e=>!1,isMobile:e=>e.breakpoint==="mobile",isTablet:e=>e.breakpoint==="tablet",isDesktop:e=>e.breakpoint==="desktop"||e.breakpoint==="wide",legendHeight:e=>e._customLegendHeight?e._customLegendHeight:e.legendState==="collapsed"?"48px":e.legendState==="open"?"30%":e.legendState==="fullyOpen"?"calc(100% - 80px)":"48px",caretRotation:e=>e.legendState==="collapsed"?0:90,showPullTab:e=>e.legendState==="open"||e.legendState==="fullyOpen",getToastsByType:e=>t=>e.toasts.filter(o=>o.type===t),hasOpenModal:e=>e.openModals.length>0,topModal:e=>e.openModals.length===0?null:e.openModals[e.openModals.length-1],isModalOpen:e=>t=>e.openModals.includes(t),isAnyLoading:e=>e.isGlobalLoading||e.loadingStates.size>0,isLoading:e=>t=>e.loadingStates.get(t)||!1},actions:{setTheme(e){if(!["light","dark","auto"].includes(e))return;e="light",this.theme=e;const o=this.isDarkTheme;document.documentElement.setAttribute("data-theme",o?"dark":"light");try{localStorage.setItem("theme",e)}catch{}},toggleTheme(){const e=this.theme==="light"?"dark":"light";this.setTheme(e)},setColorScheme(e){this.colorScheme=e,document.documentElement.setAttribute("data-color-scheme",e)},toggleReducedMotion(){this.reducedMotion=!this.reducedMotion,document.documentElement.setAttribute("data-reduced-motion",this.reducedMotion)},toggleHighContrast(){this.highContrast=!this.highContrast,document.documentElement.setAttribute("data-high-contrast",this.highContrast)},setActiveTab(e){this.activeTab=e,this.addToHistory({type:"tab-change",tabId:e,timestamp:Date.now()})},toggleSidebar(){this.sidebarCollapsed=!this.sidebarCollapsed},openMobileMenu(){this.mobileMenuOpen=!0},closeMobileMenu(){this.mobileMenuOpen=!1},setLegendMode(e){["prayer","detail"].includes(e)&&(this.legendMode=e)},setPrayerFilter(e){[null,"noPrayer","hasPrayer","fullPrayer"].includes(e)&&(this.prayerFilter=e)},setEngagementFilter(e){[null,"notEngaged","hasEngagement"].includes(e)&&(this.engagementFilter=e)},setAdoptionFilter(e){[null,"notAdopted","hasAdoption"].includes(e)&&(this.adoptionFilter=e)},setReligionFilter(e){[null,"C","M","H","B","E","J","S","N","O","U"].includes(e)&&(this.religionFilter=e)},selectPeopleGroup(e){this.selectedPeopleGroup=e,e?(this._legendStateBeforeDetail=this.legendState,this.legendState="open",this._customLegendHeight=null,this.setLegendMode("detail")):(this.legendState=this._legendStateBeforeDetail||"open",this._customLegendHeight=null,this.setLegendMode("prayer"))},setLegendState(e){["collapsed","open","fullyOpen"].includes(e)&&(this.legendState=e)},toggleSearchMode(){this.searchMode=!this.searchMode},setSearchMode(e){this.searchMode=e},toggleHamburgerMenu(){this.hamburgerMenuOpen=!this.hamburgerMenuOpen},updateBreakpoint(e){let t;e<768?t="mobile":e<1024?t="tablet":e<1920?t="desktop":t="wide",t!==this.breakpoint&&(this.breakpoint=t)},updateWindowSize(e,t){this.windowSize.width=e,this.windowSize.height=t,this.updateBreakpoint(e)},showToast(e){const{message:t,type:o="info",duration:n=this.toastDuration,action:a=null,persistent:r=!1}=e,s={id:this.nextToastId++,message:t,type:o,duration:n,action:a,persistent:r,createdAt:Date.now()};return this.toasts.push(s),!r&&n>0&&setTimeout(()=>{this.removeToast(s.id)},n),s.id},showSuccess(e,t={}){return this.showToast({message:e,type:"success",...t})},showError(e,t={}){return this.showToast({message:e,type:"error",duration:7e3,...t})},showWarning(e,t={}){return this.showToast({message:e,type:"warning",...t})},showInfo(e,t={}){return this.showToast({message:e,type:"info",...t})},removeToast(e){const t=this.toasts.findIndex(o=>o.id===e);t!==-1&&this.toasts.splice(t,1)},clearAllToasts(){this.toasts=[]},openModal(e,t={}){this.openModals.includes(e)||(this.openModals.push(e),this.modalData.set(e,t),this.focusTrapActive=!0)},closeModal(e=null){if(e){const t=this.openModals.indexOf(e);t!==-1&&(this.openModals.splice(t,1),this.modalData.delete(e))}else{const t=this.openModals.pop();t&&this.modalData.delete(t)}this.openModals.length===0&&(this.focusTrapActive=!1)},closeAllModals(){this.openModals=[],this.modalData.clear(),this.focusTrapActive=!1},getModalData(e){return this.modalData.get(e)},showGlobalLoading(e="Loading..."){this.isGlobalLoading=!0,this.globalLoadingMessage=e},hideGlobalLoading(){this.isGlobalLoading=!1},setLoading(e,t=!0){t?this.loadingStates.set(e,!0):this.loadingStates.delete(e)},addToHistory(e){this.interactionHistory.push(e),this.interactionHistory.length>this.maxHistoryLength&&this.interactionHistory.shift()},clearHistory(){this.interactionHistory=[]},announce(e,t="polite"){this.screenReaderAnnouncement=e,setTimeout(()=>{this.screenReaderAnnouncement===e&&(this.screenReaderAnnouncement="")},1e3)},toggleKeyboardShortcuts(){this.keyboardShortcutsEnabled=!this.keyboardShortcutsEnabled},toggleDebugMode(){this.debugMode=!this.debugMode},togglePerformanceOverlay(){this.showPerformanceOverlay=!this.showPerformanceOverlay},toggleLegend(){this.legendState==="fullyOpen"?this.legendState="open":this.legendState==="open"?this.legendState="collapsed":this.legendState="open",this._customLegendHeight=null},openLegend(){this.legendState="open",this._customLegendHeight=null},fullyOpenLegend(){this.legendState="fullyOpen",this._customLegendHeight=null},collapseLegend(){this.legendState="collapsed",this._customLegendHeight=null},setLegendHeight(e){this._customLegendHeight=e},handleLegendItemClick(){this.legendState==="fullyOpen"&&(this.legendState="open")},enableSearchMode(){this.searchMode=!0},disableSearchMode(){this.searchMode=!1},toggleHamburgerMenu(){this.hamburgerMenuOpen=!this.hamburgerMenuOpen},openHamburgerMenu(){this.hamburgerMenuOpen=!0},closeHamburgerMenu(){this.hamburgerMenuOpen=!1},init(){let e=null;try{e=localStorage.getItem("theme")}catch{}e&&this.setTheme(e),new ResizeObserver(o=>{for(const n of o)this.updateWindowSize(n.contentRect.width,n.contentRect.height)}).observe(document.documentElement),window.matchMedia&&(window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",o=>{this.theme==="auto"&&document.documentElement.setAttribute("data-theme",o.matches?"dark":"light")}),window.matchMedia("(prefers-reduced-motion: reduce)").addEventListener("change",o=>{this.reducedMotion=o.matches,document.documentElement.setAttribute("data-reduced-motion",o.matches)}))}}}),W0=xs("map",{state:()=>({maps:{},activeMapId:null,selectedRegion:null,selectedFamily:null,selectedAffinityBlock:null,selectedLanguage:null,selectedDialect:null,activeLegendTab:"family",selectedResource:null,selectedPeopleGroup:null,selectedPinIds:[],globalFilters:{},searchQuery:"",autoFly:{isActive:!1,speed:1,interval:5e3,currentIndex:0,items:[],timerId:null},guidedTour:{isActive:!1,currentStep:0,steps:[]},showClusters:!1,clusterMode:"region",clusterFilterProperty:null,clusterFilterValue:null,flySpeed:"normal",fullscreenMapId:null,preferences:{theme:"light",defaultMapStyle:"streets",enableAnimations:!0,autoSavePreferences:!0}}),getters:{getMapById:e=>t=>e.maps[t],activeMap:e=>e.activeMapId?e.maps[e.activeMapId]:null,hasMap:e=>t=>t in e.maps,allMapIds:e=>Object.keys(e.maps),hasSelection:e=>!!(e.selectedRegion||e.selectedFamily||e.selectedAffinityBlock||e.selectedPeopleGroup),isAutoFlying:e=>e.autoFly.isActive,isGuidedTourActive:e=>e.guidedTour.isActive,isMapFullscreen:e=>t=>e.fullscreenMapId===t},actions:{registerMap(e,t,o={}){let n=1.5;o.zoom!==void 0?n=o.zoom:t&&typeof t.getZoom=="function"&&(n=t.getZoom());let a=[0,0];if(o.center)a=o.center;else if(t&&typeof t.getCenter=="function"){const r=t.getCenter();r&&(a=[r.lng,r.lat])}this.maps[e]={instance:t,config:o,isReady:!1,zoom:n,center:a,registeredAt:Date.now()},this.activeMapId||(this.activeMapId=e)},setMapReady(e){const t=this.maps[e];t&&(t.isReady=!0)},updateMapState(e,t){const o=this.maps[e];o&&Object.assign(o,t)},unregisterMap(e){if(delete this.maps[e],this.activeMapId===e){const t=this.allMapIds;this.activeMapId=t.length>0?t[0]:null}},setActiveMap(e){e in this.maps&&(this.activeMapId=e)},selectRegion(e){this.selectedFamily=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedRegion=e},selectFamily(e){this.selectedRegion=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedLanguage=null,this.selectedDialect=null,this.selectedFamily=e},setActiveLegendTab(e){this.activeLegendTab=e},selectLanguage(e){this.selectedRegion=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedFamily=null,this.selectedDialect=null,this.selectedLanguage=e},selectDialect(e){this.selectedRegion=null,this.selectedFamily=null,this.selectedLanguage=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedDialect=e},selectAffinityBlock(e){this.selectedRegion=null,this.selectedFamily=null,this.selectedPeopleGroup=null,this.selectedAffinityBlock=e},selectPeopleGroup(e){this.selectedPeopleGroup=e},selectResource(e){this.selectedRegion=null,this.selectedFamily=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedResource===e?this.selectedResource=null:this.selectedResource=e},clearSelections(){this.selectedRegion=null,this.selectedFamily=null,this.selectedLanguage=null,this.selectedDialect=null,this.selectedAffinityBlock=null,this.selectedResource=null,this.selectedPeopleGroup=null,this.selectedPinIds=[],this.showClusters=!1,this.clusterMode="region"},setSelectedPinIds(e){this.selectedPinIds=e||[]},setFilter(e,t){this.globalFilters[e]=t},removeFilter(e){delete this.globalFilters[e]},clearFilters(){this.globalFilters={},this.searchQuery=""},setSearchQuery(e){this.searchQuery=e},startAutoFly(e,t=1){this.stopAutoFly(),this.autoFly.isActive=!0,this.autoFly.speed=t,this.autoFly.items=e,this.autoFly.currentIndex=0},stopAutoFly(){this.autoFly.timerId&&(clearInterval(this.autoFly.timerId),this.autoFly.timerId=null),this.autoFly.isActive=!1,this.autoFly.currentIndex=0},setAutoFlySpeed(e){this.autoFly.speed=Math.max(.5,Math.min(2,e))},nextAutoFlyItem(){if(!this.autoFly.isActive||this.autoFly.items.length===0)return;this.autoFly.currentIndex=(this.autoFly.currentIndex+1)%this.autoFly.items.length;const e=this.autoFly.items[this.autoFly.currentIndex];e.type==="region"?this.selectRegion(e):e.type==="family"&&this.selectFamily(e)},toggleClusters(e){typeof e=="boolean"?this.showClusters=e:this.showClusters=!this.showClusters},setClusterMode(e){["region","language-family","affinity-block","mst","resource"].includes(e)&&(this.clusterMode=e)},setClusterFilter(e,t){this.clusterFilterProperty=e||null,this.clusterFilterValue=t||null},clearClusterFilter(){this.clusterFilterProperty=null,this.clusterFilterValue=null},setFlySpeed(e){["slow","normal","fast"].includes(e)&&(this.flySpeed=e)},setSelectedFamily(e){this.selectFamily(e)},clearSelectedFamily(){this.selectFamily(null)},setSelectedRegion(e){this.selectRegion(e)},clearSelectedRegion(){this.selectRegion(null)},clearSelectedResource(){this.selectResource(null)},clearSelectedLanguage(){this.selectLanguage(null)},clearSelectedDialect(){this.selectDialect(null)},toggleFullscreen(e){this.fullscreenMapId===e?this.fullscreenMapId=null:this.fullscreenMapId=e},loadPreferences(){try{const e=localStorage.getItem("mapUserPreferences");if(e){const t=JSON.parse(e);this.preferences={...this.preferences,...t}}}catch(e){console.error("[mapStore] Failed to load preferences:",e)}},savePreferences(){try{localStorage.setItem("mapUserPreferences",JSON.stringify(this.preferences))}catch(e){console.error("[mapStore] Failed to save preferences:",e)}},setPreference(e,t){this.preferences[e]=t,this.preferences.autoSavePreferences&&this.savePreferences()}}}),Y0=xs("data",{state:()=>({sources:{},loadingStates:{}}),actions:{async load(e,t){if(!this.sources[e]){this.loadingStates[e]={isLoading:!0,error:null};try{const o=await t();this.sources[e]=Yo({features:o,timestamp:Date.now()}),this.loadingStates[e]={isLoading:!1,error:null}}catch(o){console.error(`[dataStore] Failed to load source "${e}":`,o),this.loadingStates[e]={isLoading:!1,error:o}}}},clearSource(e){delete this.sources[e],delete this.loadingStates[e]},cacheSourceData(e,t){this.sources[e]=Yo({features:t.normalizedData||[],timestamp:t.timestamp||Date.now()})},hasSourceData(e){return!!this.sources[e]},getSourceData(e){return this.sources[e]?{normalizedData:this.sources[e].features}:null}},getters:{getData:e=>t=>{var o;return((o=e.sources[t])==null?void 0:o.features)??null},isLoading:e=>t=>{var o;return((o=e.loadingStates[t])==null?void 0:o.isLoading)??!1},getError:e=>t=>{var o;return((o=e.loadingStates[t])==null?void 0:o.error)??null}}}),da={_meta:{_comment:"Single source of truth for data-source connections across all doxa-maps bundles.",_comment_token:"Mapbox access token is fetched at runtime from window.MAP_TOKEN_URL (same modular pattern as window.MAP_APP_API_URL). Not hardcoded to any host — set mapboxTokenUrl below or override window.MAP_TOKEN_URL on the host page.",mapboxTokenUrl:"window.MAP_TOKEN_URL"},activeSource:"pray-tools",sources:{"pray-tools":{id:"pray-tools",name:"Prayer.Tools API",type:"rest-api",description:"pray.doxa.life live API — people-group prayer, engagement, and adoption data. Base URL read from window.MAP_APP_API_URL or VITE_API_BASE_URL at runtime.",endpoints:{bulk:"/api/people-groups/list",detail:"/api/people-groups/detail/{slug}",statistics:"/api/people-groups/statistics"},queryParams:{lang:"en"},defaultFields:["slug","name","latitude","longitude","wagf_region","wagf_block","wagf_member","rop1","imb_reg_of_people_2","imb_reg_of_people_25","imb_reg_of_people_3","country_code","religion","population","has_photo","image_url","people_praying","people_committed","adopted_by_churches","engagement_status","imb_gsec","primary_language","imb_language_family","imb_language_class","imb_language_speakers"],pollFields:["slug","people_praying"],pollInterval:3e5,fallbackSourceId:null,fieldMappings:{uniqueId:"slug",slug:"slug",name:"name",latitude:"latitude",longitude:"longitude",wagfRegion:"wagf_region",doxaRegion:"wagf_region",wagfBlock:"wagf_block",wagfMember:"wagf_member",affinityBlock:"rop1",countryIso:"country_code",religion:"religion",religionCode:"religion",population:"population",hasPhoto:"has_photo",imageUrl:"image_url",photoUrl:"image_url",peoplePraying:"people_praying",peopleCommitted:"people_committed",engagementStatus:"engagement_status",adoptionStatus:"adopted_by_churches",language:"primary_language",cluster:"imb_reg_of_people_2",peopleGroup:"imb_reg_of_people_25",peopleGroupCountry:"imb_reg_of_people_3",languageFamily:"imb_language_family",languageClass:"imb_language_class",languageSpeakers:"imb_language_speakers"},imageConfig:{useField:"imageUrl",fallbackField:null,fallbackUrlTemplate:null,placeholderUrl:"https://www.peoplegroups.org/images/pgphotosearch/NoImageAvailable_search.jpg",useSvgPlaceholder:!0}},"doxa-csv":{id:"doxa-csv",name:"DOXA People Groups CSV",type:"csv",path:"assets/data/Joshua-project-ids-Doxa-1439.csv",description:"People groups dataset from DOXA / Joshua Project",fieldMappings:{uniqueId:"ROP3",peopleGroupId:"ROP3",countryCode:"ROG",peopleId3:"PeopleID3",name:"Name",displayName:"NmDisp",alternateName:"NmAlt",description:"PeopleDesc",locationDescription:"LocationDe",country:"Ctry",countryIso:"ISOalpha3",region:"Regn",subRegion:"RegnSub",wagfRegion:"WAGF Region",doxaRegion:"WAGF Region",wagfBlock:"WAGF BLOCK",affinityBloc:"Affbloc",affinityBlock:"ROP1",affinityCode:"AffCd",affinityName:"Aff",peopleCluster:"PplClstr",ethneName:"Ethne",latitude:"Latitude",longitude:"Longitude",population:"Pop",populationClass:"PopCls",status:"Status",engagementStatus:"EngStat",evangelicalLevel:"EvngLvl",gsec:"GSEC",gsecBrief:"GSECbrf",gsecLong:"GSEClng",spiScore:"SPI",spiDescription:"SPIdesc",language:"Lang",languageCode:"ROL",languageFamily:"LangFamily",religion:"Rlgn",religionCode:"ROR",religionDescription:"RORdesc",religionBase:"RlgnBs",religionDiv:"RlgnDiv",bible:"Bible",jesusFilm:"Jesus",radio:"Radio",gospel:"Gospel",audio:"Audio",stories:"Stories",resourcesTotal:"ResTot",bibleLevel:"LvlBible",yearPublished:"YrPub",photoCredit:"PicCrdt",photoUrl:"PicURL",hasPhoto:"Photo",isIndigenous:"Indigenous"},imageConfig:{useField:"photoUrl",fallbackField:"peopleId3",fallbackUrlTemplate:"https://joshuaproject.net/assets/media/profiles/photos/p{peopleId3}.jpg",placeholderUrl:"https://www.peoplegroups.org/images/pgphotosearch/NoImageAvailable_search.jpg"}}},systemFields:{uniqueId:{description:"Unique identifier per row (slug for API, ROP3+ROG for CSV)",required:!0},peopleGroupId:{description:"People group ID — same group can appear in multiple countries",required:!0},name:{description:"People group display name",required:!0},latitude:{description:"Latitude coordinate for map pin",required:!0},longitude:{description:"Longitude coordinate for map pin",required:!0},engagementStatus:{description:"Boolean — true if engaged_status = 'engaged'",required:!1},adoptionStatus:{description:"Boolean — true if adopted_by_churches > 0",required:!1},peoplePraying:{description:"Number of people currently praying for this group — from pray-tools API",required:!1},peopleCommitted:{description:"Raw count of committed workers for this group — source of engagementStatus",required:!1},languageFamily:{description:"Language family name",required:!1},religion:{description:"Primary religion",required:!1},population:{description:"Population count",required:!1},doxaRegion:{description:"WAGF/DOXA region name",required:!1},photoUrl:{description:"URL to people group photo",required:!1},description:{description:"People group description text",required:!1}}},q0=".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}",Ln=(e,t)=>{const o=e.__vccOpts||e;for(const[n,a]of t)o[n]=a;return o},J0={class:"profile-loader"},X0={key:0,class:"profile-error"},Z0={key:1,class:"profile-error"},Q0=Ln({__name:"ProfileLoader",props:{profileConfig:{type:String,default:""}},setup(e){var x;const o=e,n=Fe("profileConfig",null),a=oe(()=>{var A;if(!o.profileConfig)return null;let $;try{$=JSON.parse(o.profileConfig)}catch{return console.error("[ProfileLoader] Invalid profile-config JSON:",o.profileConfig),null}if($&&$.assetsBase===void 0){const C=(A=n==null?void 0:n.value)==null?void 0:A.assetsBase;typeof C=="string"&&C&&($.assetsBase=C)}return $}),r=oe(()=>{var $;return(($=a.value)==null?void 0:$.profile)||null}),s=kh(),i=oe(()=>{var A;const $=(A=a.value)==null?void 0:A.tk;return typeof $=="string"&&$?$:s.value||""});it(()=>{var $;return($=a.value)==null?void 0:$.tk},$=>{typeof $=="string"&&$&&Fc($)},{immediate:!0});const l=oe(()=>{var $;return(($=a.value)==null?void 0:$.dataSource)||da.activeSource}),u=oe(()=>{var $;return(($=a.value)==null?void 0:$.colorSet)||"default"}),c=oe(()=>!1),p=oe(()=>{var $;return(($=a.value)==null?void 0:$.pinHint)!==!1}),f=oe(()=>{var A,C;const $=(((A=a.value)==null?void 0:A.locale)||((C=a.value)==null?void 0:C.lang)||"").split("-")[0].toLowerCase();return Hs.includes($)?$:""}),k=Fe("appI18n",null);Ag(()=>{f.value&&k&&(k.global.locale.value=f.value)});const w=oe(()=>{var $,A;return f.value||((A=($=k==null?void 0:k.global)==null?void 0:$.locale)==null?void 0:A.value)||"en"}),m=oe(()=>{var $;return(($=a.value)==null?void 0:$.instanceId)||"doxa-map-"+Math.random().toString(36).slice(2,9)}),d=Fe("profileModules",null);if(!d)throw new Error('[ProfileLoader] No profileModules provided. Bundle entry must `app.provide("profileModules", import.meta.glob("./*.vue"))`');const g=oe(()=>{if(!r.value)return null;const $=`./${r.value}.vue`;return d[$]?Dc(d[$]):(console.error(`[ProfileLoader] Profile not found: "${r.value}". Available:`,Object.keys(d)),null)});Ot("mapboxToken",i),Ot("dataSource",l),Ot("colorSet",u),Ot("profileConfig",a),Ot("instanceId",m),Ot("lang",w);const h=V0(),b=W0(),_=Y0();try{const $=typeof localStorage<"u"?localStorage.getItem("theme"):null;$&&((x=h.setTheme)==null||x.call(h,$))}catch{}return Ot("uiStore",h),Ot("mapStore",b),Ot("dataStore",_),($,A)=>(V(),te("div",J0,[a.value?g.value?(V(),dt(Ml(g.value),{key:2})):(V(),te("div",Z0,[N("p",null,[A[1]||(A[1]=mt("⚠️ Profile ",-1)),N("strong",null,'"'+pe(r.value)+'"',1),A[2]||(A[2]=mt(" not found.",-1))])])):(V(),te("div",X0,[...A[0]||(A[0]=[N("p",null,[mt("⚠️ "),N("strong",null,"doxa-map"),mt(": missing or invalid "),N("code",null,"profile-config"),mt(" prop.")],-1),N("p",null,[mt("Example: "),N("code",null,`profile-config='{"profile":"example-map","tk":"pk.eyJ..."}'`)],-1)])])),g.value&&c.value?(V(),dt(Ml(_e(null)),{key:3})):ye("",!0),g.value&&p.value?(V(),dt(K0,{key:4})):ye("",!0)]))}},[["styles",[q0]],["__scopeId","data-v-ba19fc13"]]),e_=Object.assign({"./poster-wall.vue":()=>Kt(()=>Promise.resolve().then(()=>I_),void 0),"./upg-100-list.vue":()=>Kt(()=>Promise.resolve().then(()=>fx),void 0),"./upg-100-mfe.vue":()=>Kt(()=>Promise.resolve().then(()=>zx),void 0)});if(typeof window<"u"&&((xp=window.mapboxgl)!=null&&xp.setRTLTextPlugin))try{window.mapboxgl.setRTLTextPlugin("https://api.mapbox.com/mapbox-gl-js/plugins/mapbox-gl-rtl-text/v0.3.0/mapbox-gl-rtl-text.js",null,!0)}catch{}function t_(){return th(Q0,{configureApp(e){e.use(fh()),e.use(G0()),e.provide("profileModules",e_)}})}const o_=t_();typeof customElements<"u"&&(customElements.get("my-upg-100-list-map")||customElements.define("my-upg-100-list-map",o_));function pa(e,{autoprint:t=!1}={}){const o=document.createElement("iframe");o.setAttribute("aria-hidden","true"),o.style.cssText="position:fixed;right:0;bottom:0;width:1px;height:1px;opacity:0;border:0",document.body.appendChild(o);const n=o.contentDocument;if(!n)return o.remove(),null;n.open(),n.write(e),t&&n.write(' - + - + - +