Wikipedia
sowiki
https://so.wikipedia.org/wiki/Bogga_Hore
MediaWiki 1.47.0-wmf.21
first-letter
Media
Special
Talk
User
User talk
Wikipedia
Wikipedia talk
File
File talk
MediaWiki
MediaWiki talk
Template
Template talk
Help
Help talk
Category
Category talk
Portal
Portal talk
TimedText
TimedText talk
Module
Module talk
Event
Event talk
Wacbuudhan Abgaal
0
9660
309774
307552
2026-09-27T00:44:21Z
Abdirizak maslah muhudiin
47243
/* Sarakiisha */
309774
wikitext
text/x-wiki
Beesha '''Wacbuudhan Abgaal''' ({{lang-so|Wacbuudhan}}, {{lang-en|Wacbudhan}}) waa beel ka mid ah 9ka Abgaal Cismaan waana midka ugu tiro badan oo ugu dhul wayn.
{{Infobox ethnic group
| group = Wacbudhan
| flag = [[File:Hirshabeelle.png | thumb | 60px]]
[[File:Flag of Mogadishu, Somalia.svg | thumb |
60px | right]]
| region1 = {{flagcountry|Somalia}}
| langs = [[Somali language|Somali]], [[Arabic]],
| rels = [[Islam]]
| related-c = [[Harti]], [[Waceysle]], [[Mudulood]], iyo beelaha kale ee beesha [[Hawiye]].}}
==Meelahay dagto==
Beesha waxayna degtaa Xamar oo Wacbudhan asal u leh iyo Shabellaha Dheexe oo ay ka dagaan 8/10 degmo waana qabiilka ugu tiro badan oo Shabellaha Dhexe dago.
Waxey kaloo dagaan Shabellaha Hoose sida magaloyinka Marka, Baraawe, Afgooye iyo magalooyin badan. Ethiopia waxey ka dagaan Deganada Somalida ee Ethiopia oo loo yaqaano DDS oo degmoyinka kala ah Iimeey iyo Liben Zone. Kenya waxey ka dagaan Deganada Somalida ee Kenya oo kala ah Gobolka Wajir. Gobolka Wajir waxaa dago Reer Mataan laf ka mid ah oo la dhaho Maxamud, Samatar iyo Macow Mataan oo maanta la qaaran ah beesha Dagodia oo gobolka Wajir u badan. Waxey kala degaan Jubbada Dhexe iyo Jubbada Hoose qeybo ka mid ah.
==Sidey u kala baxdo==
Beesha waxay u kala baxdaa 4 jufo oo waa weyn waxayna kala yihiin:
1-Danweyne Wacbudhan 2- Doole Wacbudhan 3- Kabaale Wacbudhan 4- hartacaso wacbudhan
* Abgaal
** Wacbudhan
***Danweyne
****Yonis Danweyne
*****Maxamed Yonis
*****Muuse maalin
*****Muuse maalin * Cumar maalin *Cubeyd maalin * Kurtumoow
*****Aadan Yonis
*****Gafoow yonis
*****Xuseen Yonis
******Sahal Koraye
******Xeyle sahal
******Koshin sahal
******Maxamud sahal
******Diirshe sahal
******Farah sahal
******Ahmed sahal
*****Galmaax Yonis
******Cumar Galmaax
*******Celi Cumar
********Cosoble Celi
********Xasan-Gaab Celi
********Shige Celi
********Cali Celi
********Ibraahim Celi
********Geesaweyn Celi
*******Reer Mataan
********Bariise Mataan
********Diinle Mataan
********Duliye Mataan
******Yusuf Galmaax
*******Wehliye Muuse
*******Maxamed Muuse
*******Birkaanle
********Tuuryar
********Dhiblaawe Tuuryar
********Suubiye Tuuryar
*******Soomane
********Absuge Soomane
********Arwaaq Soomane
********Fiise Soomane
********Maalinle Soomane
********Faarax Soomane
********Geedi Soomane
********Xasan-Cariif Soomane
******Cabdulle Galmaax
*******Cumar Fool
*******Faarax Shige
*******Cigaal Gacal
*******Kuusow Cumar
*******Cadow Dhere
*******Dudeey Macalin
*******Cumar Suubiye
*******cumar Agoon
***Doole Wacbudhan
****Daauud
*****[[Isaaq]] Dauud
******Calooley
*******Qubeys
*******Dhigbil
*******Cali dhigbil
********Cumar Dhigbil
*********Xalfooy Cumar
*********Muuse Cumar
**********Ciroole Muuse
***********Cabdi ciroole
***********Adam Ciroole
***********Cabdiraxman Ciroole
***********Gashaan Ciroole
***********Gacal Ciroole
***********Cali Ciroole
***********Dabaleeb Ciroole
**********Cali Muuse
***********Adam Cali
***********Suufi Cali
***********Dhagafiiq Cali
***********Cismaan Cali
***********Macallim Cali
***********Cabdalle Cali
**********Idiris Muuse
*********Yoocaale Cumar
********Cali Dhigbil
******Cali Isaaq
******Soomane Isaaq
******Cabdulle Isaaq
*****Yusuf Dauud
******Cabdulle Yusuf
*******Muuse Cabdulle
********Aadan Muuse
*********Sugwaay Adan
*********Sangaab Muuse
********Ibraahim maxaa dheere
********Roobsuge muuse
******Cabdalle-Yar
***Kabaale Wacbudhan
****Saleeban Muse
*****Roobsuge Saleeban
*****Qoorsal Saleeban
******Aadan Maxamed
******Goley
*******Afrax-Maxad-Yar
*******Aruuris
****Xeyle Muse
*****Idiris Yabarow
******Cabdalle Idiris
******Dhegayare Idiris
*******Jibriil
*****Calaacul
******Maanweyn Calaacul
******Maxaa Cade
******Ali Sabuul
******Ilkagaduud.
******hartacaso wacbudhan
******Tolwayne hartacaso
******Jimcaale cabdi
******cabdi xaayow
******Yabadhaal hartacaso
==Dadka ugu caansan==
Wacbuudhan Abgaal waa beesha ugu badan tiro ahaan hadana qabata Gudoomiyaha Gobolka [[Banaadir]].
===Siyaasiinta===
* Nur Xasan Xusen (Nur Adde)
* Sheekh MuuSe(Cabdulle Cood)
* Genaral Jilacow
*Wasiir Eng Axmadey Sh. Xassan
*Siyaasi Xuseen Xassan(Xuseen Dheere)
*Siyaasi Senator Muse Sudi Yalaxow
*Siyaasi Gudoomiye Cumar Finish
*Siyaasi Hon Bashir moallim Ali Hassan
*Siyaasi Ahmed Ali mohamed (Ahmed Sakin)
*Siyaasi Gudoomiye Axmed Meyre Makaran
*Siyaasi Amb. Maxamed Cali America
* Siyaasi Axmed Maxamed Neegar
* Siyaasi Cabdiraxmaan Kooli
*Siyaasi Gudoomiye Jeneral Muungaab
*Siyaasi Gudoomiye Sh Yusuf Madaale
*Siyaasi Xildhibaan Yuusuf Kabaale
*Siyaasi Gudoomiye Axmed Daaci
*Siyaasi Cabdullahi Sheikh Hassan
*Siyaasi cabdiraxman Cumar Cisman Eng-Yarisow
*Siyaasi Ambasador Jamal Xaaji Axmed
*Siyaasi Omar Abdullahi ( Qoryooley )
*Siyaasi Sheikh Cali Sheekh Muuse( Ex Gudoomiyihi [[Jowhar|JowHar]]
*Siyaasi Sh Yusuf Haji Nor
*Siyaasi Xildhibaan Xasan Saney Barre.
*Siyaasi Xildhiban Carabow
*Siyaasi Xildhibaan Ruqiyo Abshir Nuur
*Siyaasi xildhibaan Mino Xasan Shibis
*Siyaasi Shador Xaaji Shadoor
*Siyaasi xildhibaan Xuseen Caraale
* Siyaasi Xildhibaan Sh Maxamed Maxamud
*Siyaasi Cabdicasiis cali ibraahim (Cabdicasiis Xildhibaan)
*siyaasi xildhibaan Cismaan Xaadoole
===Faanka iyo Sugaanta===
*Abwaan Maxamed Gacal Xaayow
*Abwaan Cabdulle Raage Taraawiil
*Laashin Cabdulle macalin Cagoole
*Abwaan Faarax Gololeey
*Abwaan Xuseen Sh Axmed Kadare
*Abwaan Cabdiqadir Sanka
*Fanaanad Binti Cumar Gacal
*Fanaanad Xabiibo Xasan Tooxow
*Fanaan Bashiir Xuseen
*Fanaan Xaawo Kiin
*Fanaanad Ikraan Caraale
*Fanaanad Amal Aragsan
*Fanaan Fowsiyo Fanka
*Fanaan Axmed kaafi AK
*Fanaan Khadar Keeyow
===Sarakiisha===
*General abukar gacal mudey
*General Cali Maxamed Cali (Cali Shariif)
* General Caaqil aweys elmy
* General Sh Nuur Maxamed Shiiqa Jowhar
* cornel maxamed nuur ( baarqab)
* Cornel. Cabdisalaan Naxar (cornel Xabe)
*Cornel Eng. Maxamed Nuur Cambuurre
*General Axmed Jilacow Cadow(Godka Jilacow)
*General Hassan Maxamed Hussein (Mungaab)
*General Ibrahim Moalim abdulllahi joqof
*General Cismaan Xaadoole
*G/lle Dhexe Mukhtaar Cabdulle Nuur
*Generaal Cali Calasow
*Generaal Axmed sheikh caddow nuur
*Generaal Maxamed Xuseen Axmed wadan (G.N.Dhaxaaye)
* General Ibraahim Maxamed
*Generaal Mohamuud Xaaji Cali
*G/sare Shuceyb Nuur Cambuure
*Gaashaanle sare Ali cabduqadir Cali (Cali yare)
*Gaashaanle sare Qondhe Nuur
*G/Dhexe Abukar Cali Maxamed Abukar Boonow
* General Maxamed Maxamud Saney
*Gaashaanle Yaasin Geedi Suubiye
*Gaashaanle Jilacow Maxamed Gacal
*Gaashanle Eng. C/qaadir Maxamed Nuur Cambuure
*Gaashaanle Yuusuf Cumar Makaraan (yaanyo)
*
===Aqoonyahanada===
*Prof. Abdirahmaan Abdullahi Baadiyow
*Ganacsade Eng. Liban Mohamed Nur Ambure
*Prof. Mohamed Osoble Mohamud( prof Osoble)
*Prof Marooko
*Prof. Arabow Ibrahim Nur
*Prof. Muhudin Hassan Yabarow (Prof Yabarow)
*Garyaqaan Dr. Yasin Haji Ambure Gudoomiyaha Hay'adda ACORDO
*Dr ABDULLAHI Ali Qoryooley
*Dr Ahmed ALI Abdullahi (LEGAALE)
*Dr. Hassan Mohamed Sheikh (Bayaan)
*Col. Mohamed Nur Baarqab (Maareyihii Som.Tex)
*Drs. Mariam Abdulkadir Mohamed Nur Ambure
*Dr Sh Eng Ahmed Omar Alasow
*Sh Mohamed Kulmiye Axmed
*Mr. Mohamed Diini Mohamed Nuur (Aqoon yahaan bartay Ganacsiga iyo Dhaqaalaha)
* Xuseen Ibraahim Maxamud (Alxaaji)
* Dr Mohamed Morroco
* Dr Hassan Muhudin Hassan
* ENG Mohamed Abshir Nur
* ENG Abdirahman Yusuf Bocor
* Eng Zakariye Cumar Makaraan
*Dr. Yasin Ahmed Osman Milkiilaha Nootaayada Al-Aamin
*Shiikh Dr Mohamed Omar Makaran aqoonyahan ku takhasusay shareecada islaamka iyo caafimaadka
*Marwo Sabah Nur Hassan Xubin ka ah Ganacsatada Dalka USA, Kenya, Saudi Arabia, Uganda & Somalia
===Wariyeyaasha ===
Aamino muuse weheliye ( ma aha wacbuudhan)
* Bashir Ali Shire
* Biibto
* Mohamed Muhiadin Ali
*Hassan Mohamed Mohamud Fanax
* Al Axmed
* Xuurshe
*Jeeri
* Abdirahman Hudeyfi
* Mohamed Daauud (Yuumbi)
* Mohamed Abdulle Siidi
* Abdiaziz Hassan Golf Yare
* Shadoor
* Nur Hassan Nur Buqaari.
*Abdijibar Yusuf Bocor
* Hussein abdulle mohamed
* Abdullahi kulmiye cadow
*Abdikamil yusuf mohamud
# Zakariye Axmed Muse
* Mohamed Omar Mohamoud (Baakaay)
*Abdullahi Moh'ed (Abdullahi Daacad)
*Suleiman Haji Ahmed Rage
*Kiin Cumar Makaraan
===Dhaqatiirta===
* Dr Mohamed Abukar Sheik Nor ( Dr Aayaha .
* Dr Mohamed Ali Sheik Mohamud (Dr Macsaro)
* Dr Adnan Ahmed Shire(Dr shire)
* Dr Abdullahi Ali Mohamud ( Qoryoley )
* Dr. Abdullaahi Husein
* Dr.JAlaaludiin
* Dr.Noradin Legaale
* Dr.Jimcaale
* Dr.Adnaan Abudllahi Hussein
* Dr. Hassan Mohamed Nur
* Dr.Hassan Xaayow
* Dr Xeydar Cali Raage
*Dr. Zakarie Osman Adow profssorka.
* Dr Abdullahi Maxamud Salax
* Dr Abdiwali Yusuf Bocor
* Dr Abdullahi Sheikh Hassan (Ciro)
* Dr Abdullahi nor buubshe ( cadani)
* Dr Abdullahi nur omar ( Dr. Guraash )
* Dr Nur omar warsame ( Dr. Sheekh Nur )
* Dr Abdirahman nur omar ( Dr Ag )
* Dr Muhuadin Omar Mataan (Dr matan)
* Dr Axmed Ali uley (Axmed young)
c97s7gihnz8qy7sdupbymas6eho8lyc
309775
309774
2026-09-27T00:45:19Z
Abdirizak maslah muhudiin
47243
/* Siyaasiinta */
309775
wikitext
text/x-wiki
Beesha '''Wacbuudhan Abgaal''' ({{lang-so|Wacbuudhan}}, {{lang-en|Wacbudhan}}) waa beel ka mid ah 9ka Abgaal Cismaan waana midka ugu tiro badan oo ugu dhul wayn.
{{Infobox ethnic group
| group = Wacbudhan
| flag = [[File:Hirshabeelle.png | thumb | 60px]]
[[File:Flag of Mogadishu, Somalia.svg | thumb |
60px | right]]
| region1 = {{flagcountry|Somalia}}
| langs = [[Somali language|Somali]], [[Arabic]],
| rels = [[Islam]]
| related-c = [[Harti]], [[Waceysle]], [[Mudulood]], iyo beelaha kale ee beesha [[Hawiye]].}}
==Meelahay dagto==
Beesha waxayna degtaa Xamar oo Wacbudhan asal u leh iyo Shabellaha Dheexe oo ay ka dagaan 8/10 degmo waana qabiilka ugu tiro badan oo Shabellaha Dhexe dago.
Waxey kaloo dagaan Shabellaha Hoose sida magaloyinka Marka, Baraawe, Afgooye iyo magalooyin badan. Ethiopia waxey ka dagaan Deganada Somalida ee Ethiopia oo loo yaqaano DDS oo degmoyinka kala ah Iimeey iyo Liben Zone. Kenya waxey ka dagaan Deganada Somalida ee Kenya oo kala ah Gobolka Wajir. Gobolka Wajir waxaa dago Reer Mataan laf ka mid ah oo la dhaho Maxamud, Samatar iyo Macow Mataan oo maanta la qaaran ah beesha Dagodia oo gobolka Wajir u badan. Waxey kala degaan Jubbada Dhexe iyo Jubbada Hoose qeybo ka mid ah.
==Sidey u kala baxdo==
Beesha waxay u kala baxdaa 4 jufo oo waa weyn waxayna kala yihiin:
1-Danweyne Wacbudhan 2- Doole Wacbudhan 3- Kabaale Wacbudhan 4- hartacaso wacbudhan
* Abgaal
** Wacbudhan
***Danweyne
****Yonis Danweyne
*****Maxamed Yonis
*****Muuse maalin
*****Muuse maalin * Cumar maalin *Cubeyd maalin * Kurtumoow
*****Aadan Yonis
*****Gafoow yonis
*****Xuseen Yonis
******Sahal Koraye
******Xeyle sahal
******Koshin sahal
******Maxamud sahal
******Diirshe sahal
******Farah sahal
******Ahmed sahal
*****Galmaax Yonis
******Cumar Galmaax
*******Celi Cumar
********Cosoble Celi
********Xasan-Gaab Celi
********Shige Celi
********Cali Celi
********Ibraahim Celi
********Geesaweyn Celi
*******Reer Mataan
********Bariise Mataan
********Diinle Mataan
********Duliye Mataan
******Yusuf Galmaax
*******Wehliye Muuse
*******Maxamed Muuse
*******Birkaanle
********Tuuryar
********Dhiblaawe Tuuryar
********Suubiye Tuuryar
*******Soomane
********Absuge Soomane
********Arwaaq Soomane
********Fiise Soomane
********Maalinle Soomane
********Faarax Soomane
********Geedi Soomane
********Xasan-Cariif Soomane
******Cabdulle Galmaax
*******Cumar Fool
*******Faarax Shige
*******Cigaal Gacal
*******Kuusow Cumar
*******Cadow Dhere
*******Dudeey Macalin
*******Cumar Suubiye
*******cumar Agoon
***Doole Wacbudhan
****Daauud
*****[[Isaaq]] Dauud
******Calooley
*******Qubeys
*******Dhigbil
*******Cali dhigbil
********Cumar Dhigbil
*********Xalfooy Cumar
*********Muuse Cumar
**********Ciroole Muuse
***********Cabdi ciroole
***********Adam Ciroole
***********Cabdiraxman Ciroole
***********Gashaan Ciroole
***********Gacal Ciroole
***********Cali Ciroole
***********Dabaleeb Ciroole
**********Cali Muuse
***********Adam Cali
***********Suufi Cali
***********Dhagafiiq Cali
***********Cismaan Cali
***********Macallim Cali
***********Cabdalle Cali
**********Idiris Muuse
*********Yoocaale Cumar
********Cali Dhigbil
******Cali Isaaq
******Soomane Isaaq
******Cabdulle Isaaq
*****Yusuf Dauud
******Cabdulle Yusuf
*******Muuse Cabdulle
********Aadan Muuse
*********Sugwaay Adan
*********Sangaab Muuse
********Ibraahim maxaa dheere
********Roobsuge muuse
******Cabdalle-Yar
***Kabaale Wacbudhan
****Saleeban Muse
*****Roobsuge Saleeban
*****Qoorsal Saleeban
******Aadan Maxamed
******Goley
*******Afrax-Maxad-Yar
*******Aruuris
****Xeyle Muse
*****Idiris Yabarow
******Cabdalle Idiris
******Dhegayare Idiris
*******Jibriil
*****Calaacul
******Maanweyn Calaacul
******Maxaa Cade
******Ali Sabuul
******Ilkagaduud.
******hartacaso wacbudhan
******Tolwayne hartacaso
******Jimcaale cabdi
******cabdi xaayow
******Yabadhaal hartacaso
==Dadka ugu caansan==
Wacbuudhan Abgaal waa beesha ugu badan tiro ahaan hadana qabata Gudoomiyaha Gobolka [[Banaadir]].
===Siyaasiinta===
* Nur Xasan Xusen (Nur Adde)
* Sheekh MuuSe(Cabdulle Cood)
*Wasiir Eng Axmadey Sh. Xassan
*Siyaasi Xuseen Xassan(Xuseen Dheere)
*Siyaasi Senator Muse Sudi Yalaxow
*Siyaasi Gudoomiye Cumar Finish
*Siyaasi Hon Bashir moallim Ali Hassan
*Siyaasi Ahmed Ali mohamed (Ahmed Sakin)
*Siyaasi Gudoomiye Axmed Meyre Makaran
*Siyaasi Amb. Maxamed Cali America
* Siyaasi Axmed Maxamed Neegar
* Siyaasi Cabdiraxmaan Kooli
*Siyaasi Gudoomiye Jeneral Muungaab
*Siyaasi Gudoomiye Sh Yusuf Madaale
*Siyaasi Xildhibaan Yuusuf Kabaale
*Siyaasi Gudoomiye Axmed Daaci
*Siyaasi Cabdullahi Sheikh Hassan
*Siyaasi cabdiraxman Cumar Cisman Eng-Yarisow
*Siyaasi Ambasador Jamal Xaaji Axmed
*Siyaasi Omar Abdullahi ( Qoryooley )
*Siyaasi Sheikh Cali Sheekh Muuse( Ex Gudoomiyihi [[Jowhar|JowHar]]
*Siyaasi Sh Yusuf Haji Nor
*Siyaasi Xildhibaan Xasan Saney Barre.
*Siyaasi Xildhiban Carabow
*Siyaasi Xildhibaan Ruqiyo Abshir Nuur
*Siyaasi xildhibaan Mino Xasan Shibis
*Siyaasi Shador Xaaji Shadoor
*Siyaasi xildhibaan Xuseen Caraale
* Siyaasi Xildhibaan Sh Maxamed Maxamud
*Siyaasi Cabdicasiis cali ibraahim (Cabdicasiis Xildhibaan)
*siyaasi xildhibaan Cismaan Xaadoole
===Faanka iyo Sugaanta===
*Abwaan Maxamed Gacal Xaayow
*Abwaan Cabdulle Raage Taraawiil
*Laashin Cabdulle macalin Cagoole
*Abwaan Faarax Gololeey
*Abwaan Xuseen Sh Axmed Kadare
*Abwaan Cabdiqadir Sanka
*Fanaanad Binti Cumar Gacal
*Fanaanad Xabiibo Xasan Tooxow
*Fanaan Bashiir Xuseen
*Fanaan Xaawo Kiin
*Fanaanad Ikraan Caraale
*Fanaanad Amal Aragsan
*Fanaan Fowsiyo Fanka
*Fanaan Axmed kaafi AK
*Fanaan Khadar Keeyow
===Sarakiisha===
*General abukar gacal mudey
*General Cali Maxamed Cali (Cali Shariif)
* General Caaqil aweys elmy
* General Sh Nuur Maxamed Shiiqa Jowhar
* cornel maxamed nuur ( baarqab)
* Cornel. Cabdisalaan Naxar (cornel Xabe)
*Cornel Eng. Maxamed Nuur Cambuurre
*General Axmed Jilacow Cadow(Godka Jilacow)
*General Hassan Maxamed Hussein (Mungaab)
*General Ibrahim Moalim abdulllahi joqof
*General Cismaan Xaadoole
*G/lle Dhexe Mukhtaar Cabdulle Nuur
*Generaal Cali Calasow
*Generaal Axmed sheikh caddow nuur
*Generaal Maxamed Xuseen Axmed wadan (G.N.Dhaxaaye)
* General Ibraahim Maxamed
*Generaal Mohamuud Xaaji Cali
*G/sare Shuceyb Nuur Cambuure
*Gaashaanle sare Ali cabduqadir Cali (Cali yare)
*Gaashaanle sare Qondhe Nuur
*G/Dhexe Abukar Cali Maxamed Abukar Boonow
* General Maxamed Maxamud Saney
*Gaashaanle Yaasin Geedi Suubiye
*Gaashaanle Jilacow Maxamed Gacal
*Gaashanle Eng. C/qaadir Maxamed Nuur Cambuure
*Gaashaanle Yuusuf Cumar Makaraan (yaanyo)
*
===Aqoonyahanada===
*Prof. Abdirahmaan Abdullahi Baadiyow
*Ganacsade Eng. Liban Mohamed Nur Ambure
*Prof. Mohamed Osoble Mohamud( prof Osoble)
*Prof Marooko
*Prof. Arabow Ibrahim Nur
*Prof. Muhudin Hassan Yabarow (Prof Yabarow)
*Garyaqaan Dr. Yasin Haji Ambure Gudoomiyaha Hay'adda ACORDO
*Dr ABDULLAHI Ali Qoryooley
*Dr Ahmed ALI Abdullahi (LEGAALE)
*Dr. Hassan Mohamed Sheikh (Bayaan)
*Col. Mohamed Nur Baarqab (Maareyihii Som.Tex)
*Drs. Mariam Abdulkadir Mohamed Nur Ambure
*Dr Sh Eng Ahmed Omar Alasow
*Sh Mohamed Kulmiye Axmed
*Mr. Mohamed Diini Mohamed Nuur (Aqoon yahaan bartay Ganacsiga iyo Dhaqaalaha)
* Xuseen Ibraahim Maxamud (Alxaaji)
* Dr Mohamed Morroco
* Dr Hassan Muhudin Hassan
* ENG Mohamed Abshir Nur
* ENG Abdirahman Yusuf Bocor
* Eng Zakariye Cumar Makaraan
*Dr. Yasin Ahmed Osman Milkiilaha Nootaayada Al-Aamin
*Shiikh Dr Mohamed Omar Makaran aqoonyahan ku takhasusay shareecada islaamka iyo caafimaadka
*Marwo Sabah Nur Hassan Xubin ka ah Ganacsatada Dalka USA, Kenya, Saudi Arabia, Uganda & Somalia
===Wariyeyaasha ===
Aamino muuse weheliye ( ma aha wacbuudhan)
* Bashir Ali Shire
* Biibto
* Mohamed Muhiadin Ali
*Hassan Mohamed Mohamud Fanax
* Al Axmed
* Xuurshe
*Jeeri
* Abdirahman Hudeyfi
* Mohamed Daauud (Yuumbi)
* Mohamed Abdulle Siidi
* Abdiaziz Hassan Golf Yare
* Shadoor
* Nur Hassan Nur Buqaari.
*Abdijibar Yusuf Bocor
* Hussein abdulle mohamed
* Abdullahi kulmiye cadow
*Abdikamil yusuf mohamud
# Zakariye Axmed Muse
* Mohamed Omar Mohamoud (Baakaay)
*Abdullahi Moh'ed (Abdullahi Daacad)
*Suleiman Haji Ahmed Rage
*Kiin Cumar Makaraan
===Dhaqatiirta===
* Dr Mohamed Abukar Sheik Nor ( Dr Aayaha .
* Dr Mohamed Ali Sheik Mohamud (Dr Macsaro)
* Dr Adnan Ahmed Shire(Dr shire)
* Dr Abdullahi Ali Mohamud ( Qoryoley )
* Dr. Abdullaahi Husein
* Dr.JAlaaludiin
* Dr.Noradin Legaale
* Dr.Jimcaale
* Dr.Adnaan Abudllahi Hussein
* Dr. Hassan Mohamed Nur
* Dr.Hassan Xaayow
* Dr Xeydar Cali Raage
*Dr. Zakarie Osman Adow profssorka.
* Dr Abdullahi Maxamud Salax
* Dr Abdiwali Yusuf Bocor
* Dr Abdullahi Sheikh Hassan (Ciro)
* Dr Abdullahi nor buubshe ( cadani)
* Dr Abdullahi nur omar ( Dr. Guraash )
* Dr Nur omar warsame ( Dr. Sheekh Nur )
* Dr Abdirahman nur omar ( Dr Ag )
* Dr Muhuadin Omar Mataan (Dr matan)
* Dr Axmed Ali uley (Axmed young)
ckb6br13t8tkpx5w9mon7u1uigwnve1
Template:Bar box
10
10849
309748
115628
2026-09-26T17:34:50Z
Isma4l
41797
309748
wikitext
text/x-wiki
<includeonly><div class="barbox {{#switch:{{{float|}}}|left=floatleft|right=floatright}}" style="font-size:88%;overflow-x:auto;display:table;padding:0.4em;border:{{{border_width|1}}}px solid silver;width:{{{width|auto}}};background:{{{background-color|var(--background-color-neutral-subtle,white)}}};color:inherit;margin:{{#ifeq:{{{float|}}}|center|0 auto}}">
<table style="text-align:left; border-collapse:collapse; width:100%;">
{{#if:{{{title|}}}|
<caption style="font-weight:bold;color:var(--color-base,#202122);background:{{{titlebar|none}}}">{{{title}}}</caption>
}}
<tr style="height:4px;">
<th scope="col" {{#if:{{{left2|}}}||colspan="2"}} style="padding:0 4px; text-align:left;">{{{left1|}}}</th>
{{#if:{{{left2|}}}|
<th scope="col" style="padding:0 4px; text-align:right;">{{{left2}}}</th>
}}
<td style="width:{{{barwidth|100px}}};"></td>
<th scope="col" {{#if:{{{right2|}}}||colspan="2"}} style="padding:0 4px; width:1em; text-align:right;">{{{right1|}}}</th>
{{#if:{{{right2|}}}|
<th scope="col" style="padding:0 4px; text-align:right;">{{{right2}}}</th>
}}
</tr>
{{{bars|}}}
{{#if:{{{caption|}}}|
<tr><td colspan="5" style="padding:5px; text-align:left;">{{{caption}}}</td></tr>
}}
</table>
</div>{{#switch: {{{float|}}} | left = | right = | #default={{main other|[[Category:Pages using bar box without float left or float right|{{#switch:{{{width|auto}}}|auto|=Ω|#default=}}{{PAGENAME}}]]}}}}</includeonly><noinclude>
{{documentation}}
</noinclude>
1gdl9y5rrt1uercfsl0trqkci3fut00
Fadhigaab
0
28449
309735
280283
2026-09-26T16:45:23Z
~2026-52006-15
47580
.....
309735
wikitext
text/x-wiki
Tuulada fadhigaab.... waxay woqooyi bari kaga beegan tahay '''degmada garadag.''' Waxa koonfur ka xiga degmada [[sincarro]] oo u jirta 24km '''fadhigaab''', waxana dega beesha, [[biciide]], gaar ahaan [[Axmed Faarax|axmed faarax]] iyo '',
Degmada waxa ay Hodan kutahay xoolaha waa mid kamid ah sayladihii ugu waaweynaa dawladii soomaaliya.
Waa goob taariikhdu xusayso iyadoo lagu xasuusto inay kaqayb qaadatay halgankii SNM. Waana goobtii lagu jebiyay Ciidamadii kacaanka saomalia oo uu hogaaminyay
siyaad barre
. ```((laasdhagax))``` waa halkii lagu jebiyay ciidankiii haystay qaybta gobolka sanaag iyadoo goobtaas waxyeelo badan kasoo gaadhay labada dhinacba ugu dambaynna lagu jebeiyey ciidankii faqashta ....
.
Qurbajoogta dadka degan Fadhigaab ayaa wada, dedaal ay ku horu marinayan magaalada
Sida dhisidda goobo waxbarasho caafimaad ceelal biyood iyo kaabista dadka danyarta ah.
Waxay leedahay khayraad dabiici ah
Waxa ku haboon dhaqashada meesiyada kala duwan ee xoolaha
waxay leedahay dhul beereed ku haboon tacabka klnoocyadiisa kala duwan
Dadkeeda caanka ah ama taariikh da leh
Waxa kamid ah
1:. FAAHIYE MIRE IBRAAHIN OO ahaa
Suldaan garyaqaan halgamaa
2): axmed aadan Cali goodir Lataliye madaxweyne ahaan siyaasi caan ah OO aqoonyahan ah dalka marxalado badan kala
Madaxdhaqameedka deegaanka
3) cawil cabdi ayax furre
Waa aasaasaha xarunta MCH fadhigaaB
4) abdi cabdillaahi dayaxweerar
Safiirkii somaliland ee UK 2017-2024
alle miisaanka xasanaadka haw saaro
(4) muuse fardaale ibraahim
aasaasaha iyo mamulaha dugsida h/dhexe iftin
sidoo kale waxa ka mid ah dadka ugu san waxa ka mid siciid maxamed adan goodir oo ah ganacsade ku nool wadanka debadisa, ismaaciil Baxar oo ahaa odayaashii wakhtigooda geliyay horumarinta magaalada, waxa sidoo kale maal masood iyo maskaxba geliyey horumarka magaalada Yusuf Geedxamar oo kaalin muuqata ka qaatay dhisidda dugsigii ugu horreeyey ee ay Fadhigaab yeelato.
qhp7kx6zrrthtfjd8ofps57dw30voxs
309739
309735
2026-09-26T17:08:18Z
Isma4l
41797
Wuxuu dib u noqay badalkii uu sameeyay [[Special:Contributions/~2026-52006-15|~2026-52006-15]] ([[User talk:~2026-52006-15|wadahadal]]) kuna celiyay badalkii ka danbeeyay oo sameeyay [[User:~2025-57301-4|~2025-57301-4]]
280283
wikitext
text/x-wiki
Tuulada fadhigaab.... waxay woqooyi bari kaga beegan tahay '''degmada garadag.''' Waxa koonfur ka xiga degmada [[sincarro]] oo u jirta 24km '''fadhigaab''', waxana dega beesha, [[biciide]], gaar ahaan [[Axmed Faarax|axmed faarax]] iyo '',
Degmada waxa ay Hodan kutahay xoolaha waa mid kamid ah sayladihii ugu waaweynaa dawladii soomaaliya.
Waa goob taariikhdu xusayso iyadoo lagu xasuusto inay kaqayb qaadatay halgankii SNM. Waana goobtii lagu jebiyay Ciidamadii Faqashta. ```((laasdhagax))``` waa halkii lagu jebiyay Faqashta.
qurbajoogta dadka degan degmada aya wada, dedaal ay ku horu marinayan degmadoda. waa magaalada 2aad ama 3aad ee ugu dadka badan '''Degmada Garadag'''.
Dadkeeda caanka ah ama taariikh da leh
Waxa kamid ah
1:. ((FAAHIYE MIRE IBRAAHIN ))OO ahaa Suldaan garyaqaan halgamaa
2: (( axmed aadan Cali goodir)). Lataliye madaxweyne ahaan siyaasi caan ah OO aqoonyahan ah dalka marxalado badan kala Soo dabaashay
3: dadka ugu caan san waxa ka mid siciid maxamed adan goodir oo ah ganacsade ku nool wadanka debadisa, ismaaciil Baxar oo ahaa odayaashii wakhtigooda geliyay horumarinta magaalada, waxa sidoo kale maal masood iyo maskaxba geliyey horumarka magaalada Yusuf Geedxamar oo kaalin muuqata ka qaatay dhisidda dugsigii ugu horreeyey ee ay Fadhigaab yeelato.
dct1wmnwy7ixmln6sj0u8oukjzw912w
309740
309739
2026-09-26T17:19:45Z
Isma4l
41797
309740
wikitext
text/x-wiki
{{Infobox settlement
| name =
| utc_offset = +3
| established_date =
| area_total_km2 =
| population_as_of = 2002<ref>{{Cite web |author=unicef |date=September 2002 |url=https://www.fsnau.org/downloads/Sanaag%20Survey%20-%20May%202002.pdf |title=SANAAG REGION NUTRITION SURVEY REPORT |accessdate=2021-07-11 |archive-date=2021-07-11 |archive-url=https://web.archive.org/web/20210711080102/https://www.fsnau.org/downloads/Sanaag%20Survey%20-%20May%202002.pdf |url-status=dead }}</ref>
| population_footnotes =
| population_total = 3000
| population_density_km2 =
| leader_name = Faahiye mire (suldaan)
| time_zone = [[East Africa Time|Waqtiga Bariga Afrika|EAT]]
| coordinates = {{coord|9|40|02.0|N|47|00|59.3|E|region:SO|display=inline}}
| elevation_footnotes =
| elevation_m =
| elevation_ft =
| website =
| footnotes =
| established_title =
| pushpin_label_position = right
| leader_title =
| subdivision_name3 = [[Sanaag]]
| subdivision_type3 = [[Administrative divisions of Somalia|Gobol]]
| subdivision_name2 = [[Garadag]]
| subdivision_type2 = [[Administrative divisions of Somalia|Degmo]]
| subdivision_name1 = [[Somaliland]]
| subdivision_type1 = Dhulka sheegta
| subdivision_name = {{flag|Somalia}}
| subdivision_type = Wadan
| pushpin_caption = Goobta Somalia
| other_name =
| pushpin_map =Somalia#Somaliland
| caption =
| image_size =
| image =
| type = Tuulo
| native_name =
| official_name = Fadhi gaab
}}
'''Fadhi gaab''' waa tuulo ku taalla [[Garadag|Degmada Gar-adag]] ee [[Sanaag]] ee [[Somaliland]].<ref>{{Cite web|title=The Impact of Drought on Protection Concerns in IDP Sites: Fadhi Gab IDP Settlement, Gar-adag District, Sanaag Region, Somaliland - February 2018 - Somalia|url=https://reliefweb.int/report/somalia/impact-drought-protection-concerns-idp-sites-fadhi-gab-idp-settlement-gar-adag|access-date=2021-07-30|website=ReliefWeb|language=en}}</ref>
==Sidoo kale eeg==
{{Portal|Somalia}}
{{Portal|Somaliland}}
== Tixraacyo ==
{{Reflist}}
{{Gumud}}
fsvdq7lekabblfr9gdgj5nexassvat9
Begedi
0
30278
309734
305686
2026-09-26T16:06:33Z
~2026-51820-56
47579
/* */
309734
wikitext
text/x-wiki
BEGEDI:
*TAARIIKDA EE BEEL WEYNTA BAGEDI
*Beesha bagedi waa beel kamid ah beelaha asalka ee ku abtirsada odeyga aw digil oo ah adeyga kasoo faracmeen qabaa ilada leysku yiraahdo hada Digil & Mirifle
*Odeyga aw Digil wuxuu dhalay kuna abtirsada todobo odey oo kala ah
*Abaasaad
*Quraawane
*QURIILE
*Abaa Abaa
*Sidaasi darteed odey Maadd DIGIL waxa uu dhalay 2 isku hooyo ah
*0 , CALEEMOW MAAD DIGIL
*MAXAMED MAAD DIGIL MAXAMED MAAD DIGIL WUXUU DHALAY 4 CARUUR
*'''1 , Aba Saad'''
*'''2 , Abaa Abaa'''
*'''3 , Abaajibil'''
*'''4 , Quraawane'''
== Isirika Beelaha Begedi ==
Isirka beesha bagedi waxey galaan cadow Mirifle oo wada dageen deegaanada shableeda hoose.
Bagedigu waa beel ay boqortooyo wadaag ahayen beelaha geledi oo muddo aad udheer xukumeysa barta iyo koonfurta [[soomaaliya]] kadib market jabiyeen boqortooyadii ajuuraan iyo hiraab ee katalin jirtay waayo hore koonfurta soomaaliya
Bagedi waa beel kucaan ah ladirika shisheeyaha iyo gumeysi diidka , inkastoo Aan labuunbuuninin sida beelaha kale ee soomaaliyeed .
Bagedi iyo geledi oo ah ilmo adeero (digil) waxey Daris iyo boqortoyo wadaag ahaayeen muddo aad utiro badan.
Sidoo kale waa dad ku caan ah wax soosaarka dalka aanan waligood gacan hoorsan laguna yaqaan dad shaqeysta oo karti leh
Bagediga waxa uu ku abtirsada cadow Mirifle
== Dadka Iyo Deegaanada Beelaha Begedi ==
Dadka begedi oo sida aan horey u soo tilmaamayba ku abuurmay dan iyosida awoowyaasheynah sheegeen deegaan wadaag ayaa waxay ka kooban yihiin 12 beelood oo ku aroora afar isir. Walow aan si dhab ah loo ogayn sidii loo soo kala horeeyay ayaa hadana waxaa jira astaamo aad u muuqda oo aan la dafiri karin oo ka muuqda degmada Awdheegle sida magacyada qadiimiga ah,Qabuuraha iyo caado dhaqameedyada,waxayna si guud iyo si gaar ahba ay u cabirayaan in degmadan Awdheegle la deganaa ka hor soo galidii diinta islaamka geyiga Soomaaliyeed. Magacan begedi oo u muuqda magac micno ahaan loo ekaysiiyay carabi ayaa hadan waxa uu magacan yahay magac Soomaali ah loona yaqiinay deegaanka beesha begedi,waxa uuna tilmaan u ahaa barwaaqada ALAH ku maneystay beesha cid kasta oo aragtaa in ayan aragti kaga BOGAN karin nicmada taal dhalka reer BOGODI oo la micno ah INDHO DARAANDAR ama ASHQARAAR .
[[Hal Abuur|halka]] degmada Awdheegle gobolka Shabeelaha hoose ay tahay deegaan iyo degmo reer begedi ay ku dhan yihiin,iyadoo sidoo kalena ay degaan degmooyinka Buurhakaba,Afgooye,Qoryooleey,Marko iyo Baraawe, Sablaale, kunturwaarey,Janaale, Baardheere,Jowhar waxaa intaa dheer caasimada magaalada muqdisho gobolka banaadir iyo caasimada kumeelgaarka ahee KoonfurGalbeed magaalada Baydhabo. Dadka begedigu waa dad isugu jira Beeraaleey,Xoolo dhaqato,Ganacsato iyo Xirfadlayaal sumcad iyo maamuusba ku dhex leh sokeeye iyo shisheeye,deris iyo ood wadaag,waana dad nabadeed aad u adadag xiliyada ay taagan yihiin duruufaha adag sida dagaalada,abaaraha,cudurada iyo aafooyinka dabeecadu keento. Dhulkan baaxada intaan la eg misna barwaaqada ahayaa waxa uu beeshu ku sababay iska war hayn la'aan meelaha qaar iyo mararka qaar sababta in reero ka mid ah beesha begedi ay ku biiraan reero ay oodwadaag yihiin,beelaha ay beesha begedi reero ka mid ahi ay ku biireen waxaa kamid ah l beesha sedaxda buurood amaba beesha EELAAY,Geledi,Gare,, iyo Tuni.
== Beesha Bagedi ==
-Beesha Quraawane ayaa iyaguna waxay ku qaaraan yihiin beesha GELEDI(7-Digil),Sidoo kale ayaa beesha Quraawane waxay dhalasho wadaag la tahay beelaha laysku yiraahdo LIKA CADOW MIRIFLE oo ay ku abtirsadaan 6 beelood oo kala ah Yantaar,Barbaare,Helede,Quraawane,Daawane iyo Goorlabe,lixdan beelood ayaa hada ku kala abtirsada beelo ka gedisan sida beelaha Yantaar ee Mirifle,Barbaare 5Caleen,Helede Eelaay,Quraawane Begedi,Daawane Eelaay,Goorlabe Abgaal.
== Sida saxda ah Abtirka Beesha waa ==
Qabiilka Begedi / Beesha Begedi waa beel kamid ah Beelaha aslaka ah ee ku abtirsada Odeyga AW-DIGIL, oo ah odeyga ey kasoo farcamee Qabaa’ilada lesku yiraahdo Hada Digil & Mirifle.
Beel weynta Begedi ama Bagadi waxay u qeybsantaa sida soo socota:
1) Quraawane
2) quriile
3) abaasaad
4) quriile
5) reer maclin
6) reer Cumar Makaraan Cilmiile Maxaad Kheyre ( waxee dhaqan iyo deegaan wadaag yihiin Bagadi waxaana Hooyo u ah Quriile iyaguna waa jajeele Gugundhabe)
3sodplo8m4pqt6k2yev9fjyw2r9kq4e
309736
309734
2026-09-26T16:57:59Z
Isma4l
41797
Wuxuu dib u noqay badalkii uu sameeyay [[Special:Contributions/~2026-51820-56|~2026-51820-56]] ([[User talk:~2026-51820-56|wadahadal]]) kuna celiyay badalkii ka danbeeyay oo sameeyay [[User:~2026-45734-10|~2026-45734-10]]
305686
wikitext
text/x-wiki
BEGEDI:
*TAARIIKDA EE BEEL WEYNTA BAGEDI
*Beesha bagedi waa beel kamid ah beelaha asalka ee ku abtirsada odeyga aw digil oo ah adeyga kasoo faracmeen qabaa ilada leysku yiraahdo hada Digil & Mirifle
*Odeyga aw Digil wuxuu dhalay kuna abtirsada todobo odey oo kala ah
*Abaasaad
*Quraawane
*QURIILE
*Reer Cumur Makaraan Cilmiile Maxaad Kheyre ( jajeele reer wabar )
*Sidaasi darteed odey Maadd DIGIL waxa uu dhalay 2 isku hooyo ah
*0 , CALEEMOW MAAD DIGIL
*MAXAMED MAAD DIGIL MAXAMED MAAD DIGIL WUXUU DHALAY 4 CARUUR
*'''1 , QURAAWANE( Israel asal ahaan)'''
*'''2 , ABAASAAD ( Bagadi mad reiwing)'''
*'''3 , quriile ( bagadi mad reiwing)'''
*'''4 , Reer cumar Makaraan Cilmiile Maxaad Kheyre ( waxaa dhashay hooyo caashoow oo Qoriile ah deegaankooda waa Deeganweenaha 14 guri ugu yaalo Mubaarak Awdheegle )'''
== Isirika Beelaha Begedi ==
Isirka beesha bagedi waxey galaan cadow Mirifle oo wada dageen deegaanada shableeda hoose.
Bagedigu waa beel ay boqortooyo wadaag ahayen beelaha geledi oo muddo aad udheer xukumeysa barta iyo koonfurta [[soomaaliya]] kadib market jabiyeen boqortooyadii ajuuraan iyo hiraab ee katalin jirtay waayo hore koonfurta soomaaliya
Bagedi waa beel kucaan ah ladirika shisheeyaha iyo gumeysi diidka , inkastoo Aan labuunbuuninin sida beelaha kale ee soomaaliyeed .
Bagedi iyo geledi oo ah ilmo adeero (digil) waxey Daris iyo boqortoyo wadaag ahaayeen muddo aad utiro badan.
Sidoo kale waa dad ku caan ah wax soosaarka dalka aanan waligood gacan hoorsan laguna yaqaan dad shaqeysta oo karti leh
Bagediga waxa uu ku abtirsada cadow Mirifle
== Dadka Iyo Deegaanada Beelaha Begedi ==
Dadka begedi oo sida aan horey u soo tilmaamayba ku abuurmay dan iyosida awoowyaasheynah sheegeen deegaan wadaag ayaa waxay ka kooban yihiin 12 beelood oo ku aroora afar isir. Walow aan si dhab ah loo ogayn sidii loo soo kala horeeyay ayaa hadana waxaa jira astaamo aad u muuqda oo aan la dafiri karin oo ka muuqda degmada Awdheegle sida magacyada qadiimiga ah,Qabuuraha iyo caado dhaqameedyada,waxayna si guud iyo si gaar ahba ay u cabirayaan in degmadan Awdheegle la deganaa ka hor soo galidii diinta islaamka geyiga Soomaaliyeed. Magacan begedi oo u muuqda magac micno ahaan loo ekaysiiyay carabi ayaa hadan waxa uu magacan yahay magac Soomaali ah loona yaqiinay deegaanka beesha begedi,waxa uuna tilmaan u ahaa barwaaqada ALAH ku maneystay beesha cid kasta oo aragtaa in ayan aragti kaga BOGAN karin nicmada taal dhalka reer BOGODI oo la micno ah INDHO DARAANDAR ama ASHQARAAR .
[[Hal Abuur|halka]] degmada Awdheegle gobolka Shabeelaha hoose ay tahay deegaan iyo degmo reer begedi ay ku dhan yihiin,iyadoo sidoo kalena ay degaan degmooyinka Buurhakaba,Afgooye,Qoryooleey,Marko iyo Baraawe, Sablaale, kunturwaarey,Janaale, Baardheere,Jowhar waxaa intaa dheer caasimada magaalada muqdisho gobolka banaadir iyo caasimada kumeelgaarka ahee KoonfurGalbeed magaalada Baydhabo. Dadka begedigu waa dad isugu jira Beeraaleey,Xoolo dhaqato,Ganacsato iyo Xirfadlayaal sumcad iyo maamuusba ku dhex leh sokeeye iyo shisheeye,deris iyo ood wadaag,waana dad nabadeed aad u adadag xiliyada ay taagan yihiin duruufaha adag sida dagaalada,abaaraha,cudurada iyo aafooyinka dabeecadu keento. Dhulkan baaxada intaan la eg misna barwaaqada ahayaa waxa uu beeshu ku sababay iska war hayn la'aan meelaha qaar iyo mararka qaar sababta in reero ka mid ah beesha begedi ay ku biiraan reero ay oodwadaag yihiin,beelaha ay beesha begedi reero ka mid ahi ay ku biireen waxaa kamid ah l beesha sedaxda buurood amaba beesha EELAAY,Geledi,Gare,, iyo Tuni.
== Beesha Bagedi ==
-Beesha Quraawane ayaa iyaguna waxay ku qaaraan yihiin beesha GELEDI(7-Digil),Sidoo kale ayaa beesha Quraawane waxay dhalasho wadaag la tahay beelaha laysku yiraahdo LIKA CADOW MIRIFLE oo ay ku abtirsadaan 6 beelood oo kala ah Yantaar,Barbaare,Helede,Quraawane,Daawane iyo Goorlabe,lixdan beelood ayaa hada ku kala abtirsada beelo ka gedisan sida beelaha Yantaar ee Mirifle,Barbaare 5Caleen,Helede Eelaay,Quraawane Begedi,Daawane Eelaay,Goorlabe Abgaal.
== Sida saxda ah Abtirka Beesha waa ==
Qabiilka Begedi / Beesha Begedi waa beel kamid ah Beelaha aslaka ah ee ku abtirsada Odeyga AW-DIGIL, oo ah odeyga ey kasoo farcamee Qabaa’ilada lesku yiraahdo Hada Digil & Mirifle.
Beel weynta Begedi ama Bagadi waxay u qeybsantaa sida soo socota:
1) Quraawane
2) quriile
3) abaasaad
4) quriile
5) reer maclin
6) reer Cumar Makaraan Cilmiile Maxaad Kheyre ( waxee dhaqan iyo deegaan wadaag yihiin Bagadi waxaana Hooyo u ah Quriile iyaguna waa jajeele Gugundhabe)
8dack7lodurjhdjyfq0im10x5gc4ysv
309737
309736
2026-09-26T16:59:04Z
Isma4l
41797
Hagaajiyay kana saaray kuwa aan tixraac laheen
309737
wikitext
text/x-wiki
Beesha bagedi waa beel kamid ah beelaha asalka ee ku abtirsada odeyga aw digil oo ah adeyga kasoo faracmeen qabaa ilada leysku yiraahdo hada Digil & Mirifle
{{Farac|
|group = Begedi<br />بغيدي
|image =
|poptime =
|region1 = {{flagcountry|Somalia}}
{{flagcountry|Ethiopia}}
{{flagcountry|Kenya}}
|langs = {{flag|Somalia}} [[Af-Maay]] iyo
[[File:Flag of the Arab League.svg|20px|border|]] [[Carabi]]
|rels = [[Islaam|Islaam]]
|flag=}}
== Dadka Iyo Deegaanada ==
Dadka begedi oo sida aan horey u soo tilmaamayba ku abuurmay dan iyosida awoowyaasheynah sheegeen deegaan wadaag ayaa waxay ka kooban yihiin 12 beelood oo ku aroora afar isir. Walow aan si dhab ah loo ogayn sidii loo soo kala horeeyay ayaa hadana waxaa jira astaamo aad u muuqda oo aan la dafiri karin oo ka muuqda degmada Awdheegle sida magacyada qadiimiga ah,Qabuuraha iyo caado dhaqameedyada,waxayna si guud iyo si gaar ahba ay u cabirayaan in degmadan Awdheegle la deganaa ka hor soo galidii diinta islaamka geyiga Soomaaliyeed. Magacan begedi oo u muuqda magac micno ahaan loo ekaysiiyay carabi ayaa hadan waxa uu magacan yahay magac Soomaali ah loona yaqiinay deegaanka beesha begedi,waxa uuna tilmaan u ahaa barwaaqada.
[[Hal Abuur|halka]] degmada Awdheegle gobolka Shabeelaha hoose ay tahay deegaan iyo degmo reer begedi ay ku dhan yihiin,iyadoo sidoo kalena ay degaan degmooyinka Buurhakaba,Afgooye,Qoryooleey,Marko iyo Baraawe, Sablaale, kunturwaarey,Janaale, Baardheere,Jowhar waxaa intaa dheer caasimada magaalada muqdisho gobolka banaadir iyo caasimada kumeelgaarka ahee Koonfur Galbeed magaalada Baydhabo. Dadka begedigu waa dad isugu jira Beeraaleey,Xoolo dhaqato,Ganacsato iyo Xirfadlayaal sumcad iyo maamuusba ku dhex leh sokeeye iyo shisheeye,deris iyo ood wadaag,waana dad nabadeed aad u adadag xiliyada ay taagan yihiin duruufaha adag sida dagaalada,abaaraha,cudurada iyo aafooyinka dabeecadu keento. Dhulkan baaxada intaan la eg misna barwaaqada ahayaa waxa uu beeshu ku sababay iska war hayn la'aan meelaha qaar iyo mararka qaar sababta in reero ka mid ah beesha begedi ay ku biiraan reero ay oodwadaag yihiin,beelaha ay beesha begedi reero ka mid ahi ay ku biireen waxaa kamid ah l beesha sedaxda buurood amaba beesha eelaay,Geledi,Gare,, iyo Tuni.
==Tixraac==
{{Reflist}}
{{Gumud}}
n9u49q8gsg661ryaz41sowyc77uygde
309738
309737
2026-09-26T16:59:49Z
Isma4l
41797
La ilaaliyay "[[Begedi]]": Gelinta qoraal aan [[Wikipedia:Xaqiijin|Tixraac]] laheen (adeegsanaya [[:metawikimedia:User:Isma4l/AdminInspector.js|AdminInspector]]) ([Wax ka badal=U ogolow kaliya isticmaalayaasha la xaqiijiyay] (aan xad lahayn) [Wareeji=U ogolow kaliya isticmaalayaasha la xaqiijiyay] (aan xad lahayn))
309737
wikitext
text/x-wiki
Beesha bagedi waa beel kamid ah beelaha asalka ee ku abtirsada odeyga aw digil oo ah adeyga kasoo faracmeen qabaa ilada leysku yiraahdo hada Digil & Mirifle
{{Farac|
|group = Begedi<br />بغيدي
|image =
|poptime =
|region1 = {{flagcountry|Somalia}}
{{flagcountry|Ethiopia}}
{{flagcountry|Kenya}}
|langs = {{flag|Somalia}} [[Af-Maay]] iyo
[[File:Flag of the Arab League.svg|20px|border|]] [[Carabi]]
|rels = [[Islaam|Islaam]]
|flag=}}
== Dadka Iyo Deegaanada ==
Dadka begedi oo sida aan horey u soo tilmaamayba ku abuurmay dan iyosida awoowyaasheynah sheegeen deegaan wadaag ayaa waxay ka kooban yihiin 12 beelood oo ku aroora afar isir. Walow aan si dhab ah loo ogayn sidii loo soo kala horeeyay ayaa hadana waxaa jira astaamo aad u muuqda oo aan la dafiri karin oo ka muuqda degmada Awdheegle sida magacyada qadiimiga ah,Qabuuraha iyo caado dhaqameedyada,waxayna si guud iyo si gaar ahba ay u cabirayaan in degmadan Awdheegle la deganaa ka hor soo galidii diinta islaamka geyiga Soomaaliyeed. Magacan begedi oo u muuqda magac micno ahaan loo ekaysiiyay carabi ayaa hadan waxa uu magacan yahay magac Soomaali ah loona yaqiinay deegaanka beesha begedi,waxa uuna tilmaan u ahaa barwaaqada.
[[Hal Abuur|halka]] degmada Awdheegle gobolka Shabeelaha hoose ay tahay deegaan iyo degmo reer begedi ay ku dhan yihiin,iyadoo sidoo kalena ay degaan degmooyinka Buurhakaba,Afgooye,Qoryooleey,Marko iyo Baraawe, Sablaale, kunturwaarey,Janaale, Baardheere,Jowhar waxaa intaa dheer caasimada magaalada muqdisho gobolka banaadir iyo caasimada kumeelgaarka ahee Koonfur Galbeed magaalada Baydhabo. Dadka begedigu waa dad isugu jira Beeraaleey,Xoolo dhaqato,Ganacsato iyo Xirfadlayaal sumcad iyo maamuusba ku dhex leh sokeeye iyo shisheeye,deris iyo ood wadaag,waana dad nabadeed aad u adadag xiliyada ay taagan yihiin duruufaha adag sida dagaalada,abaaraha,cudurada iyo aafooyinka dabeecadu keento. Dhulkan baaxada intaan la eg misna barwaaqada ahayaa waxa uu beeshu ku sababay iska war hayn la'aan meelaha qaar iyo mararka qaar sababta in reero ka mid ah beesha begedi ay ku biiraan reero ay oodwadaag yihiin,beelaha ay beesha begedi reero ka mid ahi ay ku biireen waxaa kamid ah l beesha sedaxda buurood amaba beesha eelaay,Geledi,Gare,, iyo Tuni.
==Tixraac==
{{Reflist}}
{{Gumud}}
n9u49q8gsg661ryaz41sowyc77uygde
Template:Collapsed infobox section begin
10
31850
309744
288451
2026-09-26T17:27:59Z
Isma4l
41797
309744
wikitext
text/x-wiki
<templatestyles src="Collapsed infobox section begin/styles.css"/>
<includeonly>{{#if:{{{div|}}}|</div>}}{{#if:{{{td|}}}|<td>}}</td></tr>
<tr><td colspan="{{#if:{{{columns|}}}|{{{columns}}}|2}}">
{| class="cisb-table {{Collapsed infobox section begin/cont|transcludesection=class |cont={{{cont|{{{last|}}}}}}}} {{#if:{{{expand|}}}| |mw-collapsed}} mw-collapsible" {{#if:{{{collapsetext|}}}|data-collapsetext="{{{collapsetext|}}}"}} {{#if:{{{expandtext|}}}|data-expandtext="{{{expandtext|}}}"}} style="{{{style|}}};"
|-
! class="cisb-header" colspan="{{#if:{{{columns|}}}|{{{columns}}}|2}}" style="{{{titlestyle|}}};" | <div class="cisb-title">{{{1|Further information}}}</div>
|- class="cisb-content-row"
{{Collapsed infobox section begin/cont|transcludesection=embed}}
</tr>{{#if:{{{div|}}}|<div>}}</includeonly><noinclude>
{{documentation}}
<!-- Add categories to the /doc subpage, interwikis to Wikidata, not here -->
</noinclude>
6hzyq1zb1fuv5cqezf7h2o0apf4ouxt
Template:Tree chart/start
10
42045
309747
279880
2026-09-26T17:32:27Z
Isma4l
41797
309747
wikitext
text/x-wiki
<table class="tree-chart" style="border-spacing: 0px; border-collapse: separate; {{#switch: {{{align|}}}
|left = float: left;
|right = float: right;
|center = margin: 0 auto;
|#default =
}} {{{style|}}}"><noinclude>
{{Tree chart/end}}
{{documentation}}
</noinclude>
khxmk3q51k86fasxt0qzrcuiiyil8hc
William Kentridge
0
45473
309776
296791
2026-09-27T11:38:17Z
~2026-51875-57
47587
309776
wikitext
text/x-wiki
{{Infobox artist
| name = William Kentridge
| image = William Kentridge (2025) (cropped).jpg
| image_size =
| alt =
| caption = William Kentridge oo jooga [[Folkwang Museum]], [[Essen]] sanadka 2025
| birth_name =
| birth_date = {{birth date and age|df=yes|1955|04|28}}
| birth_place = [[Johannesburg]], South Africa
| death_date = <!-- {{Death date and age|df=yes|YYYY|MM|DD|YYYY|MM|DD}} -->
| death_place =
| nationality =
| spouse = Anne Stanwix
| children = 3
| field =
| training = [[Jaamacadda Witwatersrand]] iyo Hay'adda Farshaxanka ee Johannesburg
| known_for = [[Daabacaadda]], [[sawirro]], iyo [[animation|filimada dhaqdhaqaaqa leh]]
| movement =
| works =
| patrons =
| awards =
| elected =
| website = <!-- {{URL|Example.com}} -->
}}
'''William Kentridge''' (wuxuu dhashay 28 Abriil 1955) waa farshaxane Koonfur Afrikaan ah oo si fiican loogu yaqaan daabacadiisa, sawirradiisa, iyo filimaantiisa firfircoon . Waxa si gaar ah loogu xusay taxane filimaan gacmeed lagu sawiray oo uu soo saaray intii lagu jiray 1990-meeyadii, oo lagu dhisay sawir-qaadista, samaynta tirtiridda iyo isbeddelka, iyo duubista mar kale. Waxa uu u sii wadaa hawshan si taxadar leh, isaga oo isbeddel kasta ku siinaya sawirka rubuc ilbiriqsi ilaa laba ilbiriqsi wakhtiga shaashadda. Hal sawir ayaa sidan loo beddeli doonaa oo loo duubi doonaa ilaa dhamaadka muuqaalka. Sawirradan palimpsest -u eg ayaa markii dambe lala soo bandhigay filimada sida qaybo farshaxan oo la dhammeeyey.
==Nolosha hore iyo shaqada==
Kentridge wuxuu ku dhashay Johannesburg 1955 wuxuu u dhashay Sydney Kentridge iyo Felicia Geffen , qoys Yuhuudi ah. Labaduba waxay ahaayeen u doodeyaal (qareenno) oo wakiil ka ahaa dadka la takooray nidaamka midab-takoorka Wuxuu wax ku bartay Dugsiga King Edward VII ee Houghton, Johannesburg. Wuxuu muujiyay ballan-qaad faneed aad u weyn tan iyo yaraantiisii, wuxuuna bilaabay inuu casharro ku qaato dhuxusha isagoo siddeed jir ah Sannadkii 2016, waxa laga yaabaa inuu noqday fanaankii ugu horreeyay ee haysta buug-yaraha raisonné oo si gaar ah ugu go'ay dhallintiisa
Waxa uu shahaadada Bachelor of Arts in Politics and African Studies ka qaatay Jaamacadda Witwatersrand ka dibna shahaado Fine Arts ah oo uu ka qaatay Mu’asasada Farshaxanka ee Johannesburg. Horraantii 1980-meeyadii, wuxuu wax ku bartay mime iyo masraxa L' École Internationale de Théâtre Jacques Lecoq ee Paris . Markii hore waxa uu rajaynayay in uu noqdo jilaa , laakiin waxa uu yidhi ka dib: "Nasiib ayaan u yeeshay in aan dugsiga masraxa ka ogaaday in aan aad ugu xunahay jilaanimada la igu soo koobay fannaanka, aniguna waan la nabadgalay. Intii u dhaxaysay 1975 iyo 1991, waxa uu ku jilay oo hagayay Shirkadda Tiyaatarka Junction Avenue ee Johannesburg. Sanadihii 1980-meeyadii, wuxuu ka shaqeeyay filimaanta telefishinka iyo taxane isagoo ah agaasime faneed .
==Tixraac==
[https://archive.org/details/contemporaryafri00kasf Farshaxanka casriga ah ee Afrika]
[https://www.goodman-gallery.com/artists/william-kentridge William Kentridge oo jooga Goodman Gallery] {{Wayback|url=https://www.goodman-gallery.com/artists/william-kentridge |date=20220419140958 }}
[http://www.metmuseum.org/collections/metcollects/archive/the-refusal-of-time William Kentridge: Diidmada Waqtiga ee Matxafka Farshaxanka ee Metropolitan]
bdk7n14u82s4wkp1ni2gggnz4ixi2s5
Template:Requested move
10
53313
309718
2026-09-26T13:03:49Z
Isma4l
41797
/* */
309718
wikitext
text/x-wiki
<includeonly>{{ {{{|safesubst:}}}require subst|template=Requested move
|{{safesubst:#invoke:requested move|main}} }}</includeonly><noinclude>
{{documentation}}
<!-- Categories go on the /doc subpage, and interwikis go on Wikidata. -->
</noinclude>
j2pxitll6ka3wp2a7d5fztdtiuhqeoh
Module:Requested move
828
53314
309719
2026-09-26T13:05:36Z
Isma4l
41797
Abuuray
309719
Scribunto
text/plain
-- This module implements {{requested move}}.
-- Load necessary modules
local getArgs = require('Module:Arguments').getArgs
local tableTools = require('Module:TableTools')
local yesno = require('Module:Yesno')
local mRedirect = require('Module:Redirect')
-- Set static values
local defaultNewPagename = '?' -- Name of new pages that haven't been specified
local p = {}
--------------------------------------------------------------------------------
-- Helper functions
--------------------------------------------------------------------------------
local function err(msg, numargs, reason, count)
-- Generates a wikitext error message
local commented = '<!-- {{subst:requested move|'
if count ~= 1 then
commented = commented .. 'new1='
end
commented = commented .. numargs[1]['new']
for i = 2,count do
commented = commented .. string.format('|current%i=%s', i, (numargs[i]['current'] or ''))
commented = commented .. string.format('|new%i=%s', i, (numargs[i]['new'] or ''))
end
if reason then
commented = commented .. '|reason=' .. reason
end
commented = commented .. '}} -->'
return string.format('{{error|%s}}', msg) .. commented
end
local function validateTitle(page, paramName, paramNum)
-- Validates a page name, and if it is valid, returns true and the title
-- object for that page. If it is not valid, returns false and the
-- appropriate error message.
-- Check for a small subset of characters that cannot be used in MediaWiki
-- titles. For the full set of restrictions, see
-- [[Wikipedia:Page name#Technical restrictions and limitations]]. This is
-- also covered by the invalid title check, but with this check we can give
-- a more specific error message.
local invalidChar = page:match('[#<>%[%]|{}]')
if invalidChar then
local msg = 'Calaamad aan ansax ahayn "'
.. invalidChar
.. '" ayaa laga helay barafka "'
.. paramName
.. paramNum
.. '" parameter'
return false, msg
end
-- Get the title object. This also checks for invalid titles that aren't
-- covered by the previous check.
local titleObj = mw.title.new(page)
if not titleObj then
local msg = 'Cinwaan aan ansax ahayn ayaa laga dhex helay cabbirka "'
.. paramName
.. paramNum
.. '"; hubi [[Wikipedia:Page name#'
.. 'Technical restrictions and limitations|calaamadaha aan ansaxa ahayn]]'
return false, msg
end
-- Check for interwiki links. Titles with interwikis make valid title
-- objects, but cannot be created on the local wiki.
local interwiki = titleObj.interwiki
if interwiki and interwiki ~= '' then
local msg = 'Cinwaan aan ansax ahayn ayaa laga dhex helay cabbirka "'
.. paramName
.. paramNum
.. '"; wuxuu leeyahay [[Help:Interwiki linking|Hordhaca interwiki]] "'
.. titleObj.interwiki
.. ':"'
return false, msg
end
return true, titleObj
end
--------------------------------------------------------------------------------
-- Validate title entry point (used at [[Template:RMassist/core]])
--------------------------------------------------------------------------------
function p.validateTitle(frame)
local value = frame.args[1]
local validTitle, currentTitle = validateTitle(value or '', '1', '')
if not validTitle then
-- If invalid, the second parameter is the error message.
return currentTitle
end
return 'yes'
end
--------------------------------------------------------------------------------
-- Confirm protection levels (used at [[Template:Requested move/dated]])
--------------------------------------------------------------------------------
function p.protected(frame)
local args = getArgs(frame, {parentOnly = true})
if args.protected then
local levels = mw.title.new(args.protected).protectionLevels
local levelMove = levels['move'] and levels['move'][1]
local levelEdit = levels['edit'] and levels['edit'][1]
local levelCreate = levels['create'] and levels['create'][1]
if levelMove == 'sysop'
or levelEdit == 'sysop'
or levelEdit == 'editprotected'
or levelCreate == 'sysop' then
return 'sysop'
elseif levelMove == 'templateeditor'
or levelEdit == 'templateeditor'
or levelCreate == 'templateeditor' then
return 'templateeditor'
end
end
end
--------------------------------------------------------------------------------
-- Main function
--------------------------------------------------------------------------------
function p.main(frame)
----------------------------------------------------------------------------
-- Initialise variables and preprocess the arguments
----------------------------------------------------------------------------
local args = getArgs(frame, {parentOnly = true})
local title = mw.title.getCurrentTitle()
--[[
-- To iterate over the current1, new1, current2, new2, ... arguments
-- we get an array of tables sorted by number and compressed so that
-- it can be traversed with ipairs. The table format looks like this:
-- {
-- {current = x, new = y, num = 1},
-- {current = z, new = q, num = 2},
-- ...
-- }
-- The "num" field is used to correctly preserve the number of the parameter
-- that was used, in case users skip any numbers in the invocation.
--
-- The current1 parameter is a special case, as it does not need to be
-- specified. To avoid clashes with later current parameters, we need to
-- add it to the args table manually.
--
-- Also, we allow the first positional parameter to be an alias for the
-- new1 parameter, so that the syntax for the old templates
-- {{requested move}} and {{move-multi}} will both be supported.
--
-- The "multi" variable tracks whether we are using the syntax previously
-- produced by {{requested move}}, or the syntax previously produced by
-- {{move-multi}}. For the former, multi is false, and for the latter it is
-- true.
--]]
if not args.current1 then
args.current1 = title.subjectPageTitle.prefixedText
end
-- Find the first new page title, if specified, and keep a record of the
-- prefix used to make it; the prefix will be used later to make error
-- messages.
local firstNewParam
if args.new1 then
firstNewParamPrefix = 'new'
elseif args[1] then
args.new1 = args[1]
firstNewParamPrefix = ''
else
firstNewParamPrefix = ''
end
-- Build the sorted argument table.
local argsByNum = {}
for k, v in pairs(args) do
k = tostring(k)
local prefix, num = k:match('^(%l*)([1-9][0-9]*)$')
if prefix == 'current' or prefix == 'new' then
num = tonumber(num)
local subtable = argsByNum[num] or {}
subtable[prefix] = v
subtable.num = num
argsByNum[num] = subtable
end
end
argsByNum = tableTools.compressSparseArray(argsByNum)
-- Calculate the number of arguments and whether we are dealing with a
-- multiple nomination.
local argsByNumCount = #argsByNum
local multi = (argsByNumCount >= 2)
--[[
-- Validate new params.
-- This check ensures we don't have any absent new parameters, and that
-- users haven't simply copied in the values from the documentation page.
--]]
if multi then
for i, t in ipairs(argsByNum) do
local new = t.new
local num = t.num
if not new or new == 'New title for page ' .. tostring(num) then
argsByNum[i].new = defaultNewPagename
end
end
else
local new = argsByNum[1].new
if not new or new == 'NewName' then
argsByNum[1].new = defaultNewPagename
end
end
----------------------------------------------------------------------------
-- Error checks
----------------------------------------------------------------------------
-- Subst check
if not mw.isSubsting() then
local lb = mw.text.nowiki('{{')
local rb = mw.text.nowiki('}}')
local msg = '<strong class="error">'
.. 'Haddan qaab-dhismeedkan waa in la [[Wikipedia:Template substitution|beddelaa (subst)];'
.. ' ku beddel %srequested move%s adeegsiga %ssubst:requested move%s'
.. '</strong>'
msg = string.format(msg, lb, rb, lb, rb)
return msg
end
-- Check we are on a talk page
if not title.isTalkPage then
local msg = '[[Template:Requested move]] waa in lagu isticmaalo bogga wadahadalka (TALKSPACE), tusaale ahaan, [[%s:%s]]'
msg = string.format(msg, mw.site.namespaces[title.namespace].talk.name, title.text)
return err(msg, argsByNum, args.reason, argsByNumCount)
end
-- Check the arguments
local currentDupes, newDupes = {}, {}
for i, t in ipairs(argsByNum) do
local current = t.current
local new = t.new
local num = t.num
local validCurrent
local currentTitle
local subjectSpace
-- Check for invalid or missing currentn parameters
-- This check must come first, as mw.title.new will give an error if
-- it is given invalid input.
if not current then
local msg = 'Cabbirka "current%d" waa maqan yahay;'
.. ' fadlan ku dar ama tirtir cabbirka "new%d"'
msg = string.format(msg, num, num)
return err(msg, argsByNum, args.reason, argsByNumCount)
end
-- Get the currentn title object, and check for invalid titles. This check
-- must come before the namespace and existence checks, as they will
-- produce script errors if the title object doesn't exist.
validCurrent, currentTitle = validateTitle(current, 'current', num)
if not validCurrent then
-- If invalid, the second parameter is the error message.
local msg = currentTitle
return err(msg, argsByNum, args.reason, argsByNumCount)
end
-- Category namespace check
subjectSpace = mw.site.namespaces[currentTitle.namespace].subject.id
if subjectSpace == 14 then
local msg = '[[Template:Requested move]] looguma talagelin qaybaha (categories),'
.. ' eeg [[Wikipedia:Categories for discussion]]'
return err(msg, argsByNum, args.reason, argsByNumCount)
-- File namespace check
elseif subjectSpace == 6 then
local msg = '[[Template:Requested move]] looguma talagelin faylasha;'
.. ' eeg [[Wikipedia:Moving a page#Moving a file page]]'
.. ' (oo la beddelkeeda isticmaal [[Template:Rename media]])'
return err(msg, argsByNum, args.reason, argsByNumCount)
-- Draft and User namespace check
elseif subjectSpace == 2 or subjectSpace == 118 then
local msg = '[[Template:Requested move]] looguma talagelin in laga guuro meelaha qabyo-qoraalka ah ama isticmaalaha.'
.. '<br>Haddii aad rabto inaad soo gudbiso qabyo-qoraalkaaga si loo eego, ku dar <code>{{tlf|subst:submit}}</code>'
.. 'xagga sare ee bogga.'
.. '<br>Haddii kale, eeg tilmaamaha [[Help:How to move a page]].'
.. '<br>Haddii aadan adigu dhaqaajin karin, eeg [[Wikipedia:Requested moves#Requesting technical moves|Codsashada dhaqaaqyada farsamada]].'
return err(msg, argsByNum, args.reason, argsByNumCount)
end
-- Request to move a single page must be placed on that page's talk, or the page it redirects to
if not multi and args.current1 ~= title.subjectPageTitle.prefixedText then
local idealpage = mw.title.new(args.current1).talkPageTitle
local rtarget = mRedirect.getTarget(idealpage)
if rtarget == title.prefixedText then
multi = true
else
local msg = 'Codsiga ah in la guuro hal bog waa in lagu rakibaa bogga wadahadalka ee boggaas ama bogga uu ku sii leexiyo (redirect)'
return err(msg, argsByNum, args.reason, argsByNumCount)
end
end
-- Check for non-existent titles.
if not currentTitle.exists then
local msg = 'Waa inaad abuurtaa [[:%s]] ka hor intaanad codsan in la guuro'
msg = string.format(msg, current)
return err(msg, argsByNum, args.reason, argsByNumCount)
end
-- Check for duplicate current titles
-- We know the id isn't zero because we have already checked for
-- existence.
local currentId = currentTitle.id
if currentDupes[currentId] then
local msg = 'Waxaa la helay cinwaan labanlaab ah ("'
.. currentTitle.prefixedText
.. '"); lama guurin karo hal bog oo loo kala qaadayo laba meelood oo kala duwan'
return err(msg, argsByNum, args.reason, argsByNumCount)
else
currentDupes[currentId] = true
end
-- Check for invalid new titles. This check must come before the
-- duplicate title check for new titles, as it will produce a script
-- error if the title object doesn't exist.
local validNew, newTitle = validateTitle(
new,
multi and 'new' or firstNewParamPrefix,
num
)
if not validNew then
-- If invalid, the second parameter is the error message.
local msg = newTitle
return err(msg, argsByNum, args.reason, argsByNumCount)
end
-- Check for duplicate new titles.
-- We can't use the page_id, as new pages might not exist, and therefore
-- multiple pages may have an id of 0. Use the prefixedText as a
-- reasonable fallback. We also need to check that we aren't using the
-- default new page name, as we don't want it to be treated as a duplicate
-- page if more than one new page name has been omitted.
local newPrefixedText = newTitle.prefixedText
if newPrefixedText ~= defaultNewPagename then
if newDupes[newPrefixedText] then
local msg = 'Waxaa la helay cinwaan labanlaab ah ("'
.. newTitle.prefixedText
.. '"); lama guurin karo laba bog oo kala duwan isla meeshaas'
return err(msg, argsByNum, args.reason, argsByNumCount)
else
newDupes[newPrefixedText] = true
end
end
end
----------------------------------------------------------------------------
-- Check for page protection
----------------------------------------------------------------------------
local highestProtection = ''
local protectedTitle = ''
-- Checking page protection requires use of .protectionLevels(), one of the
-- "expensive" parser functions, which stop working after 500 uses total.
-- Without some limit set, this starts breaking near 250 distinct titles.
local titleLimit = 80
local titlesChecked = 0
local titles = {}
-- Consolidate duplicate titles (i.e., when moving A to B and B to C)
for i = 1,argsByNumCount do
titles[mw.title.new(argsByNum[i]['current'])] = true
titles[mw.title.new(argsByNum[i]['new'])] = true
end
-- Check each title t, while ignoring the "true" value
for t, _ in pairs(titles) do
if titlesChecked < titleLimit then
local levels = t.protectionLevels
titlesChecked = titlesChecked + 1
local levelMove = levels['move'] and levels['move'][1]
local levelEdit = levels['edit'] and levels['edit'][1]
local levelCreate = levels['create'] and levels['create'][1]
if levelMove == 'sysop'
or levelEdit == 'sysop'
or levelEdit == 'editprotected'
or levelCreate == 'sysop' then
highestProtection = 'sysop'
protectedTitle = tostring(t)
break
elseif levelMove == 'templateeditor'
or levelEdit == 'templateeditor'
or levelCreate == 'templateeditor' then
highestProtection = 'templateeditor'
protectedTitle = tostring(t)
end
else
-- End the "for" loop if the titleLimit is reached
break
end
end
----------------------------------------------------------------------------
-- Generate the heading
----------------------------------------------------------------------------
-- For custom values of |heading=, use those.
-- For |heading=no, |heading=n, etc., don't include a heading.
-- Otherwise use the current date as a heading.
local heading = args.heading or args.header
local useHeading = yesno(heading, heading)
if heading and useHeading == heading then
heading = '== ' .. heading .. ' ==\n\n'
elseif useHeading == false then
heading = ''
else
local lang = mw.language.getContentLanguage()
local headingDate = lang:formatDate('j F Y')
heading = '== Codsiga guuritaanka ' .. headingDate .. ' ==\n\n'
end
----------------------------------------------------------------------------
-- Build the {{requested move/dated}} invocation
----------------------------------------------------------------------------
local rmd = {}
rmd[#rmd + 1] = '{{requested move/dated'
if multi then
rmd[#rmd + 1] = '|multiple=yes'
rmd[#rmd + 1] = '\n|current1=' .. argsByNum[1].current
end
--[[
-- The first new title. This is used both by single and by multi; for single
-- it is the only parameter used. For single the parameter name is the first
-- positional parameter, and for multi the parameter name is "new1".
--]]
local new1param = multi and 'new1=' or ''
rmd[#rmd + 1] = '|' .. new1param .. argsByNum[1].new
-- Add more arguments for multi.
if multi then
for i = 2, argsByNumCount do
local t = argsByNum[i]
local numString = tostring(i)
local current = t.current
local new = t.new
rmd[#rmd + 1] = '|current' .. numString .. '=' .. current
rmd[#rmd + 1] = '|new' .. numString .. '=' .. new
end
end
-- Highest page protection (if admin or template-editor)
if highestProtection == 'sysop' or highestProtection == 'templateeditor' then
rmd[#rmd + 1] = '|protected=' .. protectedTitle
end
-- Pass through demo=yes to the
if args.demo ~= nil then
rmd[#rmd + 1] = '|demo='
rmd[#rmd + 1] = args.demo
end
-- The old multi template always has a bar before the closing curly
-- braces, so we will do that too.
if multi then
rmd[#rmd + 1] = '|'
end
rmd[#rmd + 1] = '}}'
rmd = table.concat(rmd)
----------------------------------------------------------------------------
-- Generate the list of links to the pages to be moved
----------------------------------------------------------------------------
local linkList = {}
for i, t in ipairs(argsByNum) do
local current = t.current
local new = t.new
local msg = '\n%s[[:%s]] → '
if new ~= defaultNewPagename then
msg = msg .. '{{no redirect|%s}}'
else
msg = msg .. '%s'
end
local item = string.format(
msg,
multi and '* ' or '', -- Don't make a list for single page moves.
current,
new
)
linkList[#linkList + 1] = item
end
linkList = table.concat(linkList)
----------------------------------------------------------------------------
-- Reason and talk blurb
----------------------------------------------------------------------------
-- Reason
local reason = args.reason or args[2] or 'Fadlan halkan ku qor sababta aad u jeedinayso in la guuro.'
reason = '– ' .. reason
if yesno(args.sign or args.sig or args.signature or 'unspecified', not reason:match("~~~$")) then
reason = reason .. ' ~~~~'
end
-- Talk blurb
local talk = ''
if yesno(args.talk, true) then
talk = frame:expandTemplate{title = 'Requested move/talk'}
end
----------------------------------------------------------------------------
-- Assemble the output
----------------------------------------------------------------------------
-- The old templates start with a line break, so we will do that too.
local ret = string.format(
'\n%s%s\n%s%s%s%s',
heading,
rmd,
linkList,
multi and '\n' or ' ',
reason,
talk
)
return ret
end
return p
8ff0o2ib1vm1azfqy46h35kapv8pnkq
309727
309719
2026-09-26T13:22:49Z
Isma4l
41797
309727
Scribunto
text/plain
-- This module implements {{requested move}}.
-- Load necessary modules
local getArgs = require('Module:Arguments').getArgs
local tableTools = require('Module:TableTools')
local yesno = require('Module:Yesno')
local mRedirect = require('Module:Redirect')
-- Set static values
local defaultNewPagename = '?' -- Name of new pages that haven't been specified
local p = {}
--------------------------------------------------------------------------------
-- Helper functions
--------------------------------------------------------------------------------
local function err(msg, numargs, reason, count)
-- Generates a wikitext error message
local commented = '<!-- {{subst:requested move|'
if count ~= 1 then
commented = commented .. 'new1='
end
commented = commented .. numargs[1]['new']
for i = 2,count do
commented = commented .. string.format('|current%i=%s', i, (numargs[i]['current'] or ''))
commented = commented .. string.format('|new%i=%s', i, (numargs[i]['new'] or ''))
end
if reason then
commented = commented .. '|reason=' .. reason
end
commented = commented .. '}} -->'
return string.format('{{error|%s}}', msg) .. commented
end
local function validateTitle(page, paramName, paramNum)
-- Validates a page name, and if it is valid, returns true and the title
-- object for that page. If it is not valid, returns false and the
-- appropriate error message.
-- Check for a small subset of characters that cannot be used in MediaWiki
-- titles. For the full set of restrictions, see
-- [[Wikipedia:Page name#Technical restrictions and limitations]]. This is
-- also covered by the invalid title check, but with this check we can give
-- a more specific error message.
local invalidChar = page:match('[#<>%[%]|{}]')
if invalidChar then
local msg = 'Calaamad aan ansax ahayn "'
.. invalidChar
.. '" ayaa laga helay barafka "'
.. paramName
.. paramNum
.. '" parameter'
return false, msg
end
-- Get the title object. This also checks for invalid titles that aren't
-- covered by the previous check.
local titleObj = mw.title.new(page)
if not titleObj then
local msg = 'Cinwaan aan ansax ahayn ayaa laga dhex helay cabbirka "'
.. paramName
.. paramNum
.. '"; hubi [[Wikipedia:Page name#'
.. 'Technical restrictions and limitations|calaamadaha aan ansaxa ahayn]]'
return false, msg
end
-- Check for interwiki links. Titles with interwikis make valid title
-- objects, but cannot be created on the local wiki.
local interwiki = titleObj.interwiki
if interwiki and interwiki ~= '' then
local msg = 'Cinwaan aan ansax ahayn ayaa laga dhex helay cabbirka "'
.. paramName
.. paramNum
.. '"; wuxuu leeyahay [[Help:Interwiki linking|Hordhaca interwiki]] "'
.. titleObj.interwiki
.. ':"'
return false, msg
end
return true, titleObj
end
--------------------------------------------------------------------------------
-- Validate title entry point (used at [[Template:RMassist/core]])
--------------------------------------------------------------------------------
function p.validateTitle(frame)
local value = frame.args[1]
local validTitle, currentTitle = validateTitle(value or '', '1', '')
if not validTitle then
-- If invalid, the second parameter is the error message.
return currentTitle
end
return 'yes'
end
--------------------------------------------------------------------------------
-- Confirm protection levels (used at [[Template:Requested move/dated]])
--------------------------------------------------------------------------------
function p.protected(frame)
local args = getArgs(frame, {parentOnly = true})
if args.protected then
local levels = mw.title.new(args.protected).protectionLevels
local levelMove = levels['move'] and levels['move'][1]
local levelEdit = levels['edit'] and levels['edit'][1]
local levelCreate = levels['create'] and levels['create'][1]
if levelMove == 'sysop'
or levelEdit == 'sysop'
or levelEdit == 'editprotected'
or levelCreate == 'sysop' then
return 'sysop'
elseif levelMove == 'templateeditor'
or levelEdit == 'templateeditor'
or levelCreate == 'templateeditor' then
return 'templateeditor'
end
end
end
--------------------------------------------------------------------------------
-- Main function
--------------------------------------------------------------------------------
function p.main(frame)
----------------------------------------------------------------------------
-- Initialise variables and preprocess the arguments
----------------------------------------------------------------------------
local args = getArgs(frame, {parentOnly = true})
local title = mw.title.getCurrentTitle()
--[[
-- To iterate over the current1, new1, current2, new2, ... arguments
-- we get an array of tables sorted by number and compressed so that
-- it can be traversed with ipairs. The table format looks like this:
-- {
-- {current = x, new = y, num = 1},
-- {current = z, new = q, num = 2},
-- ...
-- }
-- The "num" field is used to correctly preserve the number of the parameter
-- that was used, in case users skip any numbers in the invocation.
--
-- The current1 parameter is a special case, as it does not need to be
-- specified. To avoid clashes with later current parameters, we need to
-- add it to the args table manually.
--
-- Also, we allow the first positional parameter to be an alias for the
-- new1 parameter, so that the syntax for the old templates
-- {{requested move}} and {{move-multi}} will both be supported.
--
-- The "multi" variable tracks whether we are using the syntax previously
-- produced by {{requested move}}, or the syntax previously produced by
-- {{move-multi}}. For the former, multi is false, and for the latter it is
-- true.
--]]
if not args.current1 then
args.current1 = title.subjectPageTitle.prefixedText
end
-- Find the first new page title, if specified, and keep a record of the
-- prefix used to make it; the prefix will be used later to make error
-- messages.
local firstNewParam
if args.new1 then
firstNewParamPrefix = 'new'
elseif args[1] then
args.new1 = args[1]
firstNewParamPrefix = ''
else
firstNewParamPrefix = ''
end
-- Build the sorted argument table.
local argsByNum = {}
for k, v in pairs(args) do
k = tostring(k)
local prefix, num = k:match('^(%l*)([1-9][0-9]*)$')
if prefix == 'current' or prefix == 'new' then
num = tonumber(num)
local subtable = argsByNum[num] or {}
subtable[prefix] = v
subtable.num = num
argsByNum[num] = subtable
end
end
argsByNum = tableTools.compressSparseArray(argsByNum)
-- Calculate the number of arguments and whether we are dealing with a
-- multiple nomination.
local argsByNumCount = #argsByNum
local multi = (argsByNumCount >= 2)
--[[
-- Validate new params.
-- This check ensures we don't have any absent new parameters, and that
-- users haven't simply copied in the values from the documentation page.
--]]
if multi then
for i, t in ipairs(argsByNum) do
local new = t.new
local num = t.num
if not new or new == 'New title for page ' .. tostring(num) then
argsByNum[i].new = defaultNewPagename
end
end
else
local new = argsByNum[1].new
if not new or new == 'NewName' then
argsByNum[1].new = defaultNewPagename
end
end
----------------------------------------------------------------------------
-- Error checks
----------------------------------------------------------------------------
-- Subst check
if not mw.isSubsting() then
local lb = mw.text.nowiki('{{')
local rb = mw.text.nowiki('}}')
local msg = '<strong class="error">'
.. 'Haddan qaab-dhismeedkan waa in la [[Wikipedia:Template substitution|beddelaa];'
.. ' ku beddel %srequested move%s adeegsiga %ssubst:requested move%s'
.. '</strong>'
msg = string.format(msg, lb, rb, lb, rb)
return msg
end
-- Check we are on a talk page
if not title.isTalkPage then
local msg = '[[Template:Requested move]] waa in lagu isticmaalo bogga wadahadalka, tusaale ahaan, [[%s:%s]]'
msg = string.format(msg, mw.site.namespaces[title.namespace].talk.name, title.text)
return err(msg, argsByNum, args.reason, argsByNumCount)
end
-- Check the arguments
local currentDupes, newDupes = {}, {}
for i, t in ipairs(argsByNum) do
local current = t.current
local new = t.new
local num = t.num
local validCurrent
local currentTitle
local subjectSpace
-- Check for invalid or missing currentn parameters
-- This check must come first, as mw.title.new will give an error if
-- it is given invalid input.
if not current then
local msg = 'Cabbirka "current%d" waa maqan yahay;'
.. ' fadlan ku dar ama tirtir cabbirka "new%d"'
msg = string.format(msg, num, num)
return err(msg, argsByNum, args.reason, argsByNumCount)
end
-- Get the currentn title object, and check for invalid titles. This check
-- must come before the namespace and existence checks, as they will
-- produce script errors if the title object doesn't exist.
validCurrent, currentTitle = validateTitle(current, 'current', num)
if not validCurrent then
-- If invalid, the second parameter is the error message.
local msg = currentTitle
return err(msg, argsByNum, args.reason, argsByNumCount)
end
-- Category namespace check
subjectSpace = mw.site.namespaces[currentTitle.namespace].subject.id
if subjectSpace == 14 then
local msg = '[[Template:Requested move]] looguma talagelin qaybaha (categories),'
.. ' eeg [[Wikipedia:Categories for discussion]]'
return err(msg, argsByNum, args.reason, argsByNumCount)
-- File namespace check
elseif subjectSpace == 6 then
local msg = '[[Template:Requested move]] looguma talagelin faylasha;'
.. ' eeg [[Wikipedia:Moving a page#Moving a file page]]'
.. ' (oo la beddelkeeda isticmaal [[Template:Rename media]])'
return err(msg, argsByNum, args.reason, argsByNumCount)
-- Draft and User namespace check
elseif subjectSpace == 2 or subjectSpace == 118 then
local msg = '[[Template:Requested move]] looguma talagelin in laga guuro meelaha qabyo-qoraalka ah ama isticmaalaha.'
.. '<br>Haddii aad rabto inaad soo gudbiso qabyo-qoraalkaaga si loo eego, ku dar <code>{{tlf|subst:submit}}</code>'
.. 'xagga sare ee bogga.'
.. '<br>Haddii kale, eeg tilmaamaha [[Help:How to move a page]].'
.. '<br>Haddii aadan adigu dhaqaajin karin, eeg [[Wikipedia:Requested moves#Requesting technical moves|Codsashada dhaqaaqyada farsamada]].'
return err(msg, argsByNum, args.reason, argsByNumCount)
end
-- Request to move a single page must be placed on that page's talk, or the page it redirects to
if not multi and args.current1 ~= title.subjectPageTitle.prefixedText then
local idealpage = mw.title.new(args.current1).talkPageTitle
local rtarget = mRedirect.getTarget(idealpage)
if rtarget == title.prefixedText then
multi = true
else
local msg = 'Codsiga ah in la guuro hal bog waa in lagu rakibaa bogga wadahadalka ee boggaas ama bogga uu ku sii leexiyo (redirect)'
return err(msg, argsByNum, args.reason, argsByNumCount)
end
end
-- Check for non-existent titles.
if not currentTitle.exists then
local msg = 'Waa inaad abuurtaa [[:%s]] ka hor intaanad codsan in la guuro'
msg = string.format(msg, current)
return err(msg, argsByNum, args.reason, argsByNumCount)
end
-- Check for duplicate current titles
-- We know the id isn't zero because we have already checked for
-- existence.
local currentId = currentTitle.id
if currentDupes[currentId] then
local msg = 'Waxaa la helay cinwaan labanlaab ah ("'
.. currentTitle.prefixedText
.. '"); lama guurin karo hal bog oo loo kala qaadayo laba meelood oo kala duwan'
return err(msg, argsByNum, args.reason, argsByNumCount)
else
currentDupes[currentId] = true
end
-- Check for invalid new titles. This check must come before the
-- duplicate title check for new titles, as it will produce a script
-- error if the title object doesn't exist.
local validNew, newTitle = validateTitle(
new,
multi and 'new' or firstNewParamPrefix,
num
)
if not validNew then
-- If invalid, the second parameter is the error message.
local msg = newTitle
return err(msg, argsByNum, args.reason, argsByNumCount)
end
-- Check for duplicate new titles.
-- We can't use the page_id, as new pages might not exist, and therefore
-- multiple pages may have an id of 0. Use the prefixedText as a
-- reasonable fallback. We also need to check that we aren't using the
-- default new page name, as we don't want it to be treated as a duplicate
-- page if more than one new page name has been omitted.
local newPrefixedText = newTitle.prefixedText
if newPrefixedText ~= defaultNewPagename then
if newDupes[newPrefixedText] then
local msg = 'Waxaa la helay cinwaan labanlaab ah ("'
.. newTitle.prefixedText
.. '"); lama guurin karo laba bog oo kala duwan isla meeshaas'
return err(msg, argsByNum, args.reason, argsByNumCount)
else
newDupes[newPrefixedText] = true
end
end
end
----------------------------------------------------------------------------
-- Check for page protection
----------------------------------------------------------------------------
local highestProtection = ''
local protectedTitle = ''
-- Checking page protection requires use of .protectionLevels(), one of the
-- "expensive" parser functions, which stop working after 500 uses total.
-- Without some limit set, this starts breaking near 250 distinct titles.
local titleLimit = 80
local titlesChecked = 0
local titles = {}
-- Consolidate duplicate titles (i.e., when moving A to B and B to C)
for i = 1,argsByNumCount do
titles[mw.title.new(argsByNum[i]['current'])] = true
titles[mw.title.new(argsByNum[i]['new'])] = true
end
-- Check each title t, while ignoring the "true" value
for t, _ in pairs(titles) do
if titlesChecked < titleLimit then
local levels = t.protectionLevels
titlesChecked = titlesChecked + 1
local levelMove = levels['move'] and levels['move'][1]
local levelEdit = levels['edit'] and levels['edit'][1]
local levelCreate = levels['create'] and levels['create'][1]
if levelMove == 'sysop'
or levelEdit == 'sysop'
or levelEdit == 'editprotected'
or levelCreate == 'sysop' then
highestProtection = 'sysop'
protectedTitle = tostring(t)
break
elseif levelMove == 'templateeditor'
or levelEdit == 'templateeditor'
or levelCreate == 'templateeditor' then
highestProtection = 'templateeditor'
protectedTitle = tostring(t)
end
else
-- End the "for" loop if the titleLimit is reached
break
end
end
----------------------------------------------------------------------------
-- Generate the heading
----------------------------------------------------------------------------
-- For custom values of |heading=, use those.
-- For |heading=no, |heading=n, etc., don't include a heading.
-- Otherwise use the current date as a heading.
local heading = args.heading or args.header
local useHeading = yesno(heading, heading)
if heading and useHeading == heading then
heading = '== ' .. heading .. ' ==\n\n'
elseif useHeading == false then
heading = ''
else
local lang = mw.language.getContentLanguage()
local headingDate = lang:formatDate('j F Y')
heading = '== Codsiga guuritaanka ' .. headingDate .. ' ==\n\n'
end
----------------------------------------------------------------------------
-- Build the {{requested move/dated}} invocation
----------------------------------------------------------------------------
local rmd = {}
rmd[#rmd + 1] = '{{requested move/dated'
if multi then
rmd[#rmd + 1] = '|multiple=yes'
rmd[#rmd + 1] = '\n|current1=' .. argsByNum[1].current
end
--[[
-- The first new title. This is used both by single and by multi; for single
-- it is the only parameter used. For single the parameter name is the first
-- positional parameter, and for multi the parameter name is "new1".
--]]
local new1param = multi and 'new1=' or ''
rmd[#rmd + 1] = '|' .. new1param .. argsByNum[1].new
-- Add more arguments for multi.
if multi then
for i = 2, argsByNumCount do
local t = argsByNum[i]
local numString = tostring(i)
local current = t.current
local new = t.new
rmd[#rmd + 1] = '|current' .. numString .. '=' .. current
rmd[#rmd + 1] = '|new' .. numString .. '=' .. new
end
end
-- Highest page protection (if admin or template-editor)
if highestProtection == 'sysop' or highestProtection == 'templateeditor' then
rmd[#rmd + 1] = '|protected=' .. protectedTitle
end
-- Pass through demo=yes to the
if args.demo ~= nil then
rmd[#rmd + 1] = '|demo='
rmd[#rmd + 1] = args.demo
end
-- The old multi template always has a bar before the closing curly
-- braces, so we will do that too.
if multi then
rmd[#rmd + 1] = '|'
end
rmd[#rmd + 1] = '}}'
rmd = table.concat(rmd)
----------------------------------------------------------------------------
-- Generate the list of links to the pages to be moved
----------------------------------------------------------------------------
local linkList = {}
for i, t in ipairs(argsByNum) do
local current = t.current
local new = t.new
local msg = '\n%s[[:%s]] → '
if new ~= defaultNewPagename then
msg = msg .. '{{no redirect|%s}}'
else
msg = msg .. '%s'
end
local item = string.format(
msg,
multi and '* ' or '', -- Don't make a list for single page moves.
current,
new
)
linkList[#linkList + 1] = item
end
linkList = table.concat(linkList)
----------------------------------------------------------------------------
-- Reason and talk blurb
----------------------------------------------------------------------------
-- Reason
local reason = args.reason or args[2] or 'Fadlan halkan ku qor sababta aad u jeedinayso in la guuro.'
reason = '– ' .. reason
if yesno(args.sign or args.sig or args.signature or 'unspecified', not reason:match("~~~$")) then
reason = reason .. ' ~~~~'
end
-- Talk blurb
local talk = ''
if yesno(args.talk, true) then
talk = frame:expandTemplate{title = 'Requested move/talk'}
end
----------------------------------------------------------------------------
-- Assemble the output
----------------------------------------------------------------------------
-- The old templates start with a line break, so we will do that too.
local ret = string.format(
'\n%s%s\n%s%s%s%s',
heading,
rmd,
linkList,
multi and '\n' or ' ',
reason,
talk
)
return ret
end
return p
lw79uvw6gzakj66hst3n437e1yp5ion
309728
309727
2026-09-26T13:24:47Z
Isma4l
41797
309728
Scribunto
text/plain
-- This module implements {{requested move}}.
-- Load necessary modules
local getArgs = require('Module:Arguments').getArgs
local tableTools = require('Module:TableTools')
local yesno = require('Module:Yesno')
local mRedirect = require('Module:Redirect')
-- Set static values
local defaultNewPagename = '?' -- Name of new pages that haven't been specified
local p = {}
--------------------------------------------------------------------------------
-- Helper functions
--------------------------------------------------------------------------------
local function err(msg, numargs, reason, count)
-- Generates a wikitext error message
local commented = '<!-- {{subst:requested move|'
if count ~= 1 then
commented = commented .. 'new1='
end
commented = commented .. numargs[1]['new']
for i = 2,count do
commented = commented .. string.format('|current%i=%s', i, (numargs[i]['current'] or ''))
commented = commented .. string.format('|new%i=%s', i, (numargs[i]['new'] or ''))
end
if reason then
commented = commented .. '|reason=' .. reason
end
commented = commented .. '}} -->'
return string.format('{{error|%s}}', msg) .. commented
end
local function validateTitle(page, paramName, paramNum)
-- Validates a page name, and if it is valid, returns true and the title
-- object for that page. If it is not valid, returns false and the
-- appropriate error message.
-- Check for a small subset of characters that cannot be used in MediaWiki
-- titles. For the full set of restrictions, see
-- [[Wikipedia:Page name#Technical restrictions and limitations]]. This is
-- also covered by the invalid title check, but with this check we can give
-- a more specific error message.
local invalidChar = page:match('[#<>%[%]|{}]')
if invalidChar then
local msg = 'Calaamad aan ansax ahayn "'
.. invalidChar
.. '" ayaa laga helay barafka "'
.. paramName
.. paramNum
.. '" parameter'
return false, msg
end
-- Get the title object. This also checks for invalid titles that aren't
-- covered by the previous check.
local titleObj = mw.title.new(page)
if not titleObj then
local msg = 'Cinwaan aan ansax ahayn ayaa laga dhex helay cabbirka "'
.. paramName
.. paramNum
.. '"; hubi [[Wikipedia:Page name#'
.. 'Technical restrictions and limitations|calaamadaha aan ansaxa ahayn]]'
return false, msg
end
-- Check for interwiki links. Titles with interwikis make valid title
-- objects, but cannot be created on the local wiki.
local interwiki = titleObj.interwiki
if interwiki and interwiki ~= '' then
local msg = 'Cinwaan aan ansax ahayn ayaa laga dhex helay cabbirka "'
.. paramName
.. paramNum
.. '"; wuxuu leeyahay [[Help:Interwiki linking|Hordhaca interwiki]] "'
.. titleObj.interwiki
.. ':"'
return false, msg
end
return true, titleObj
end
--------------------------------------------------------------------------------
-- Validate title entry point (used at [[Template:RMassist/core]])
--------------------------------------------------------------------------------
function p.validateTitle(frame)
local value = frame.args[1]
local validTitle, currentTitle = validateTitle(value or '', '1', '')
if not validTitle then
-- If invalid, the second parameter is the error message.
return currentTitle
end
return 'yes'
end
--------------------------------------------------------------------------------
-- Confirm protection levels (used at [[Template:Requested move/dated]])
--------------------------------------------------------------------------------
function p.protected(frame)
local args = getArgs(frame, {parentOnly = true})
if args.protected then
local levels = mw.title.new(args.protected).protectionLevels
local levelMove = levels['move'] and levels['move'][1]
local levelEdit = levels['edit'] and levels['edit'][1]
local levelCreate = levels['create'] and levels['create'][1]
if levelMove == 'sysop'
or levelEdit == 'sysop'
or levelEdit == 'editprotected'
or levelCreate == 'sysop' then
return 'sysop'
elseif levelMove == 'templateeditor'
or levelEdit == 'templateeditor'
or levelCreate == 'templateeditor' then
return 'templateeditor'
end
end
end
--------------------------------------------------------------------------------
-- Main function
--------------------------------------------------------------------------------
function p.main(frame)
----------------------------------------------------------------------------
-- Initialise variables and preprocess the arguments
----------------------------------------------------------------------------
local args = getArgs(frame, {parentOnly = true})
local title = mw.title.getCurrentTitle()
--[[
-- To iterate over the current1, new1, current2, new2, ... arguments
-- we get an array of tables sorted by number and compressed so that
-- it can be traversed with ipairs. The table format looks like this:
-- {
-- {current = x, new = y, num = 1},
-- {current = z, new = q, num = 2},
-- ...
-- }
-- The "num" field is used to correctly preserve the number of the parameter
-- that was used, in case users skip any numbers in the invocation.
--
-- The current1 parameter is a special case, as it does not need to be
-- specified. To avoid clashes with later current parameters, we need to
-- add it to the args table manually.
--
-- Also, we allow the first positional parameter to be an alias for the
-- new1 parameter, so that the syntax for the old templates
-- {{requested move}} and {{move-multi}} will both be supported.
--
-- The "multi" variable tracks whether we are using the syntax previously
-- produced by {{requested move}}, or the syntax previously produced by
-- {{move-multi}}. For the former, multi is false, and for the latter it is
-- true.
--]]
if not args.current1 then
args.current1 = title.subjectPageTitle.prefixedText
end
-- Find the first new page title, if specified, and keep a record of the
-- prefix used to make it; the prefix will be used later to make error
-- messages.
local firstNewParam
if args.new1 then
firstNewParamPrefix = 'new'
elseif args[1] then
args.new1 = args[1]
firstNewParamPrefix = ''
else
firstNewParamPrefix = ''
end
-- Build the sorted argument table.
local argsByNum = {}
for k, v in pairs(args) do
k = tostring(k)
local prefix, num = k:match('^(%l*)([1-9][0-9]*)$')
if prefix == 'current' or prefix == 'new' then
num = tonumber(num)
local subtable = argsByNum[num] or {}
subtable[prefix] = v
subtable.num = num
argsByNum[num] = subtable
end
end
argsByNum = tableTools.compressSparseArray(argsByNum)
-- Calculate the number of arguments and whether we are dealing with a
-- multiple nomination.
local argsByNumCount = #argsByNum
local multi = (argsByNumCount >= 2)
--[[
-- Validate new params.
-- This check ensures we don't have any absent new parameters, and that
-- users haven't simply copied in the values from the documentation page.
--]]
if multi then
for i, t in ipairs(argsByNum) do
local new = t.new
local num = t.num
if not new or new == 'New title for page ' .. tostring(num) then
argsByNum[i].new = defaultNewPagename
end
end
else
local new = argsByNum[1].new
if not new or new == 'NewName' then
argsByNum[1].new = defaultNewPagename
end
end
----------------------------------------------------------------------------
-- Error checks
----------------------------------------------------------------------------
-- Subst check
if not mw.isSubsting() then
local lb = mw.text.nowiki('{{')
local rb = mw.text.nowiki('}}')
local msg = '<strong class="error">'
.. 'Haddan qaab-dhismeedkan waa in la [[Wikipedia:Template substitution|beddelaa];'
.. ' ku beddel %srequested move%s adeegsiga %ssubst:requested move%s'
.. '</strong>'
msg = string.format(msg, lb, rb, lb, rb)
return msg
end
-- Check we are on a talk page
if not title.isTalkPage then
local msg = '[[Template:Requested move]] waa in lagu isticmaalo bogga wadahadalka, tusaale ahaan, [[%s:%s]]'
msg = string.format(msg, mw.site.namespaces[title.namespace].talk.name, title.text)
return err(msg, argsByNum, args.reason, argsByNumCount)
end
-- Check the arguments
local currentDupes, newDupes = {}, {}
for i, t in ipairs(argsByNum) do
local current = t.current
local new = t.new
local num = t.num
local validCurrent
local currentTitle
local subjectSpace
-- Check for invalid or missing currentn parameters
-- This check must come first, as mw.title.new will give an error if
-- it is given invalid input.
if not current then
local msg = 'Cabbirka "current%d" waa maqan yahay;'
.. ' fadlan ku dar ama tirtir cabbirka "new%d"'
msg = string.format(msg, num, num)
return err(msg, argsByNum, args.reason, argsByNumCount)
end
-- Get the currentn title object, and check for invalid titles. This check
-- must come before the namespace and existence checks, as they will
-- produce script errors if the title object doesn't exist.
validCurrent, currentTitle = validateTitle(current, 'current', num)
if not validCurrent then
-- If invalid, the second parameter is the error message.
local msg = currentTitle
return err(msg, argsByNum, args.reason, argsByNumCount)
end
-- Category namespace check
subjectSpace = mw.site.namespaces[currentTitle.namespace].subject.id
if subjectSpace == 14 then
local msg = '[[Template:Requested move]] looguma talagelin qaybaha,'
.. ' eeg [[Wikipedia:Categories for discussion]]'
return err(msg, argsByNum, args.reason, argsByNumCount)
-- File namespace check
elseif subjectSpace == 6 then
local msg = '[[Template:Requested move]] looguma talagelin faylasha;'
.. ' eeg [[Wikipedia:Moving a page#Moving a file page]]'
.. ' (oo la beddelkeeda isticmaal [[Template:Rename media]])'
return err(msg, argsByNum, args.reason, argsByNumCount)
-- Draft and User namespace check
elseif subjectSpace == 2 or subjectSpace == 118 then
local msg = '[[Template:Requested move]] looguma talagelin in laga guuro meelaha qabyo-qoraalka ah ama isticmaalaha.'
.. '<br>Haddii aad rabto inaad soo gudbiso qabyo-qoraalkaaga si loo eego, ku dar <code>{{tlf|subst:submit}}</code>'
.. 'xagga sare ee bogga.'
.. '<br>Haddii kale, eeg tilmaamaha [[Help:How to move a page]].'
.. '<br>Haddii aadan adigu dhaqaajin karin, eeg [[Wikipedia:Requested moves#Requesting technical moves|Codsashada dhaqaaqyada farsamada]].'
return err(msg, argsByNum, args.reason, argsByNumCount)
end
-- Request to move a single page must be placed on that page's talk, or the page it redirects to
if not multi and args.current1 ~= title.subjectPageTitle.prefixedText then
local idealpage = mw.title.new(args.current1).talkPageTitle
local rtarget = mRedirect.getTarget(idealpage)
if rtarget == title.prefixedText then
multi = true
else
local msg = 'Codsiga ah in la guuro hal bog waa in lagu rakibaa bogga wadahadalka ee boggaas ama bogga uu ku sii leexiyo'
return err(msg, argsByNum, args.reason, argsByNumCount)
end
end
-- Check for non-existent titles.
if not currentTitle.exists then
local msg = 'Waa inaad abuurtaa [[:%s]] ka hor intaanad codsan in la guuro'
msg = string.format(msg, current)
return err(msg, argsByNum, args.reason, argsByNumCount)
end
-- Check for duplicate current titles
-- We know the id isn't zero because we have already checked for
-- existence.
local currentId = currentTitle.id
if currentDupes[currentId] then
local msg = 'Waxaa la helay cinwaan labanlaab ah ("'
.. currentTitle.prefixedText
.. '"); lama guurin karo hal bog oo loo kala qaadayo laba meelood oo kala duwan'
return err(msg, argsByNum, args.reason, argsByNumCount)
else
currentDupes[currentId] = true
end
-- Check for invalid new titles. This check must come before the
-- duplicate title check for new titles, as it will produce a script
-- error if the title object doesn't exist.
local validNew, newTitle = validateTitle(
new,
multi and 'new' or firstNewParamPrefix,
num
)
if not validNew then
-- If invalid, the second parameter is the error message.
local msg = newTitle
return err(msg, argsByNum, args.reason, argsByNumCount)
end
-- Check for duplicate new titles.
-- We can't use the page_id, as new pages might not exist, and therefore
-- multiple pages may have an id of 0. Use the prefixedText as a
-- reasonable fallback. We also need to check that we aren't using the
-- default new page name, as we don't want it to be treated as a duplicate
-- page if more than one new page name has been omitted.
local newPrefixedText = newTitle.prefixedText
if newPrefixedText ~= defaultNewPagename then
if newDupes[newPrefixedText] then
local msg = 'Waxaa la helay cinwaan labanlaab ah ("'
.. newTitle.prefixedText
.. '"); lama guurin karo laba bog oo kala duwan isla meeshaas'
return err(msg, argsByNum, args.reason, argsByNumCount)
else
newDupes[newPrefixedText] = true
end
end
end
----------------------------------------------------------------------------
-- Check for page protection
----------------------------------------------------------------------------
local highestProtection = ''
local protectedTitle = ''
-- Checking page protection requires use of .protectionLevels(), one of the
-- "expensive" parser functions, which stop working after 500 uses total.
-- Without some limit set, this starts breaking near 250 distinct titles.
local titleLimit = 80
local titlesChecked = 0
local titles = {}
-- Consolidate duplicate titles (i.e., when moving A to B and B to C)
for i = 1,argsByNumCount do
titles[mw.title.new(argsByNum[i]['current'])] = true
titles[mw.title.new(argsByNum[i]['new'])] = true
end
-- Check each title t, while ignoring the "true" value
for t, _ in pairs(titles) do
if titlesChecked < titleLimit then
local levels = t.protectionLevels
titlesChecked = titlesChecked + 1
local levelMove = levels['move'] and levels['move'][1]
local levelEdit = levels['edit'] and levels['edit'][1]
local levelCreate = levels['create'] and levels['create'][1]
if levelMove == 'sysop'
or levelEdit == 'sysop'
or levelEdit == 'editprotected'
or levelCreate == 'sysop' then
highestProtection = 'sysop'
protectedTitle = tostring(t)
break
elseif levelMove == 'templateeditor'
or levelEdit == 'templateeditor'
or levelCreate == 'templateeditor' then
highestProtection = 'templateeditor'
protectedTitle = tostring(t)
end
else
-- End the "for" loop if the titleLimit is reached
break
end
end
----------------------------------------------------------------------------
-- Generate the heading
----------------------------------------------------------------------------
-- For custom values of |heading=, use those.
-- For |heading=no, |heading=n, etc., don't include a heading.
-- Otherwise use the current date as a heading.
local heading = args.heading or args.header
local useHeading = yesno(heading, heading)
if heading and useHeading == heading then
heading = '== ' .. heading .. ' ==\n\n'
elseif useHeading == false then
heading = ''
else
local lang = mw.language.getContentLanguage()
local headingDate = lang:formatDate('j F Y')
heading = '== Codsiga guuritaanka ' .. headingDate .. ' ==\n\n'
end
----------------------------------------------------------------------------
-- Build the {{requested move/dated}} invocation
----------------------------------------------------------------------------
local rmd = {}
rmd[#rmd + 1] = '{{requested move/dated'
if multi then
rmd[#rmd + 1] = '|multiple=yes'
rmd[#rmd + 1] = '\n|current1=' .. argsByNum[1].current
end
--[[
-- The first new title. This is used both by single and by multi; for single
-- it is the only parameter used. For single the parameter name is the first
-- positional parameter, and for multi the parameter name is "new1".
--]]
local new1param = multi and 'new1=' or ''
rmd[#rmd + 1] = '|' .. new1param .. argsByNum[1].new
-- Add more arguments for multi.
if multi then
for i = 2, argsByNumCount do
local t = argsByNum[i]
local numString = tostring(i)
local current = t.current
local new = t.new
rmd[#rmd + 1] = '|current' .. numString .. '=' .. current
rmd[#rmd + 1] = '|new' .. numString .. '=' .. new
end
end
-- Highest page protection (if admin or template-editor)
if highestProtection == 'sysop' or highestProtection == 'templateeditor' then
rmd[#rmd + 1] = '|protected=' .. protectedTitle
end
-- Pass through demo=yes to the
if args.demo ~= nil then
rmd[#rmd + 1] = '|demo='
rmd[#rmd + 1] = args.demo
end
-- The old multi template always has a bar before the closing curly
-- braces, so we will do that too.
if multi then
rmd[#rmd + 1] = '|'
end
rmd[#rmd + 1] = '}}'
rmd = table.concat(rmd)
----------------------------------------------------------------------------
-- Generate the list of links to the pages to be moved
----------------------------------------------------------------------------
local linkList = {}
for i, t in ipairs(argsByNum) do
local current = t.current
local new = t.new
local msg = '\n%s[[:%s]] → '
if new ~= defaultNewPagename then
msg = msg .. '{{no redirect|%s}}'
else
msg = msg .. '%s'
end
local item = string.format(
msg,
multi and '* ' or '', -- Don't make a list for single page moves.
current,
new
)
linkList[#linkList + 1] = item
end
linkList = table.concat(linkList)
----------------------------------------------------------------------------
-- Reason and talk blurb
----------------------------------------------------------------------------
-- Reason
local reason = args.reason or args[2] or 'Fadlan halkan ku qor sababta aad u jeedinayso in la guuro.'
reason = '– ' .. reason
if yesno(args.sign or args.sig or args.signature or 'unspecified', not reason:match("~~~$")) then
reason = reason .. ' ~~~~'
end
-- Talk blurb
local talk = ''
if yesno(args.talk, true) then
talk = frame:expandTemplate{title = 'Requested move/talk'}
end
----------------------------------------------------------------------------
-- Assemble the output
----------------------------------------------------------------------------
-- The old templates start with a line break, so we will do that too.
local ret = string.format(
'\n%s%s\n%s%s%s%s',
heading,
rmd,
linkList,
multi and '\n' or ' ',
reason,
talk
)
return ret
end
return p
24xcwb4y65l9qfdke7thqhluen9ewaa
309732
309728
2026-09-26T13:55:46Z
Isma4l
41797
309732
Scribunto
text/plain
-- This module implements {{requested move}}.
-- Load necessary modules
local getArgs = require('Module:Arguments').getArgs
local tableTools = require('Module:TableTools')
local yesno = require('Module:Yesno')
local mRedirect = require('Module:Redirect')
-- Set static values
local defaultNewPagename = '?' -- Name of new pages that haven't been specified
local p = {}
--------------------------------------------------------------------------------
-- Helper functions
--------------------------------------------------------------------------------
local function err(msg, numargs, reason, count)
-- Generates a wikitext error message
local commented = '<!-- {{subst:requested move|'
if count ~= 1 then
commented = commented .. 'new1='
end
commented = commented .. numargs[1]['new']
for i = 2,count do
commented = commented .. string.format('|current%i=%s', i, (numargs[i]['current'] or ''))
commented = commented .. string.format('|new%i=%s', i, (numargs[i]['new'] or ''))
end
if reason then
commented = commented .. '|reason=' .. reason
end
commented = commented .. '}} -->'
return string.format('{{error|%s}}', msg) .. commented
end
local function validateTitle(page, paramName, paramNum)
-- Validates a page name, and if it is valid, returns true and the title
-- object for that page. If it is not valid, returns false and the
-- appropriate error message.
-- Check for a small subset of characters that cannot be used in MediaWiki
-- titles. For the full set of restrictions, see
-- [[Wikipedia:Page name#Technical restrictions and limitations]]. This is
-- also covered by the invalid title check, but with this check we can give
-- a more specific error message.
local invalidChar = page:match('[#<>%[%]|{}]')
if invalidChar then
local msg = 'Calaamad aan ansax ahayn "'
.. invalidChar
.. '" ayaa laga helay barafka "'
.. paramName
.. paramNum
.. '" parameter'
return false, msg
end
-- Get the title object. This also checks for invalid titles that aren't
-- covered by the previous check.
local titleObj = mw.title.new(page)
if not titleObj then
local msg = 'Cinwaan aan ansax ahayn ayaa laga dhex helay cabbirka "'
.. paramName
.. paramNum
.. '"; hubi [[Wikipedia:Page name#'
.. 'Technical restrictions and limitations|calaamadaha aan ansaxa ahayn]]'
return false, msg
end
-- Check for interwiki links. Titles with interwikis make valid title
-- objects, but cannot be created on the local wiki.
local interwiki = titleObj.interwiki
if interwiki and interwiki ~= '' then
local msg = 'Cinwaan aan ansax ahayn ayaa laga dhex helay cabbirka "'
.. paramName
.. paramNum
.. '"; wuxuu leeyahay [[Help:Interwiki linking|Hordhaca interwiki]] "'
.. titleObj.interwiki
.. ':"'
return false, msg
end
return true, titleObj
end
--------------------------------------------------------------------------------
-- Validate title entry point (used at [[Template:RMassist/core]])
--------------------------------------------------------------------------------
function p.validateTitle(frame)
local value = frame.args[1]
local validTitle, currentTitle = validateTitle(value or '', '1', '')
if not validTitle then
-- If invalid, the second parameter is the error message.
return currentTitle
end
return 'yes'
end
--------------------------------------------------------------------------------
-- Confirm protection levels (used at [[Template:Requested move/dated]])
--------------------------------------------------------------------------------
function p.protected(frame)
local args = getArgs(frame, {parentOnly = true})
if args.protected then
local levels = mw.title.new(args.protected).protectionLevels
local levelMove = levels['move'] and levels['move'][1]
local levelEdit = levels['edit'] and levels['edit'][1]
local levelCreate = levels['create'] and levels['create'][1]
if levelMove == 'sysop'
or levelEdit == 'sysop'
or levelEdit == 'editprotected'
or levelCreate == 'sysop' then
return 'sysop'
elseif levelMove == 'templateeditor'
or levelEdit == 'templateeditor'
or levelCreate == 'templateeditor' then
return 'templateeditor'
end
end
end
--------------------------------------------------------------------------------
-- Main function
--------------------------------------------------------------------------------
function p.main(frame)
----------------------------------------------------------------------------
-- Initialise variables and preprocess the arguments
----------------------------------------------------------------------------
local args = getArgs(frame, {parentOnly = true})
local title = mw.title.getCurrentTitle()
--[[
-- To iterate over the current1, new1, current2, new2, ... arguments
-- we get an array of tables sorted by number and compressed so that
-- it can be traversed with ipairs. The table format looks like this:
-- {
-- {current = x, new = y, num = 1},
-- {current = z, new = q, num = 2},
-- ...
-- }
-- The "num" field is used to correctly preserve the number of the parameter
-- that was used, in case users skip any numbers in the invocation.
--
-- The current1 parameter is a special case, as it does not need to be
-- specified. To avoid clashes with later current parameters, we need to
-- add it to the args table manually.
--
-- Also, we allow the first positional parameter to be an alias for the
-- new1 parameter, so that the syntax for the old templates
-- {{requested move}} and {{move-multi}} will both be supported.
--
-- The "multi" variable tracks whether we are using the syntax previously
-- produced by {{requested move}}, or the syntax previously produced by
-- {{move-multi}}. For the former, multi is false, and for the latter it is
-- true.
--]]
if not args.current1 then
args.current1 = title.subjectPageTitle.prefixedText
end
-- Find the first new page title, if specified, and keep a record of the
-- prefix used to make it; the prefix will be used later to make error
-- messages.
local firstNewParam
if args.new1 then
firstNewParamPrefix = 'new'
elseif args[1] then
args.new1 = args[1]
firstNewParamPrefix = ''
else
firstNewParamPrefix = ''
end
-- Build the sorted argument table.
local argsByNum = {}
for k, v in pairs(args) do
k = tostring(k)
local prefix, num = k:match('^(%l*)([1-9][0-9]*)$')
if prefix == 'current' or prefix == 'new' then
num = tonumber(num)
local subtable = argsByNum[num] or {}
subtable[prefix] = v
subtable.num = num
argsByNum[num] = subtable
end
end
argsByNum = tableTools.compressSparseArray(argsByNum)
-- Calculate the number of arguments and whether we are dealing with a
-- multiple nomination.
local argsByNumCount = #argsByNum
local multi = (argsByNumCount >= 2)
--[[
-- Validate new params.
-- This check ensures we don't have any absent new parameters, and that
-- users haven't simply copied in the values from the documentation page.
--]]
if multi then
for i, t in ipairs(argsByNum) do
local new = t.new
local num = t.num
if not new or new == 'New title for page ' .. tostring(num) then
argsByNum[i].new = defaultNewPagename
end
end
else
local new = argsByNum[1].new
if not new or new == 'NewName' then
argsByNum[1].new = defaultNewPagename
end
end
----------------------------------------------------------------------------
-- Error checks
----------------------------------------------------------------------------
-- Subst check
if not mw.isSubsting() then
local lb = mw.text.nowiki('{{')
local rb = mw.text.nowiki('}}')
local msg = '<strong class="error">'
.. 'Haddan qaab-dhismeedkan waa in la [[Wikipedia:Template substitution|beddelaa];'
.. ' ku beddel %srequested move%s adeegsiga %ssubst:requested move%s'
.. '</strong>'
msg = string.format(msg, lb, rb, lb, rb)
return msg
end
-- Check we are on a talk page
if not title.isTalkPage then
local msg = '[[Template:Requested move]] waa in lagu isticmaalo bogga wadahadalka, tusaale ahaan, [[%s:%s]]'
msg = string.format(msg, mw.site.namespaces[title.namespace].talk.name, title.text)
return err(msg, argsByNum, args.reason, argsByNumCount)
end
-- Check the arguments
local currentDupes, newDupes = {}, {}
for i, t in ipairs(argsByNum) do
local current = t.current
local new = t.new
local num = t.num
local validCurrent
local currentTitle
local subjectSpace
-- Check for invalid or missing currentn parameters
-- This check must come first, as mw.title.new will give an error if
-- it is given invalid input.
if not current then
local msg = 'Cabbirka "current%d" waa maqan yahay;'
.. ' fadlan ku dar ama tirtir cabbirka "new%d"'
msg = string.format(msg, num, num)
return err(msg, argsByNum, args.reason, argsByNumCount)
end
-- Get the currentn title object, and check for invalid titles. This check
-- must come before the namespace and existence checks, as they will
-- produce script errors if the title object doesn't exist.
validCurrent, currentTitle = validateTitle(current, 'current', num)
if not validCurrent then
-- If invalid, the second parameter is the error message.
local msg = currentTitle
return err(msg, argsByNum, args.reason, argsByNumCount)
end
-- Category namespace check
subjectSpace = mw.site.namespaces[currentTitle.namespace].subject.id
if subjectSpace == 14 then
local msg = '[[Template:Requested move]] looguma talagelin qaybaha,'
.. ' eeg [[Wikipedia:Categories for discussion]]'
return err(msg, argsByNum, args.reason, argsByNumCount)
-- File namespace check
elseif subjectSpace == 6 then
local msg = '[[Template:Requested move]] looguma talagelin faylasha;'
.. ' eeg [[Wikipedia:Moving a page#Moving a file page]]'
.. ' (oo la beddelkeeda isticmaal [[Template:Rename media]])'
return err(msg, argsByNum, args.reason, argsByNumCount)
-- Draft and User namespace check
elseif subjectSpace == 2 or subjectSpace == 118 then
local msg = '[[Template:Requested move]] looguma talagelin in laga guuro meelaha qabyo-qoraalka ah ama isticmaalaha.'
.. '<br>Haddii aad rabto inaad soo gudbiso qabyo-qoraalkaaga si loo eego, ku dar <code>{{tlf|subst:submit}}</code>'
.. 'xagga sare ee bogga.'
.. '<br>Haddii kale, eeg tilmaamaha [[Help:How to move a page]].'
.. '<br>Haddii aadan adigu dhaqaajin karin, eeg [[Wikipedia:Requested moves#Requesting technical moves|Codsashada dhaqaaqyada farsamada]].'
return err(msg, argsByNum, args.reason, argsByNumCount)
end
-- Request to move a single page must be placed on that page's talk, or the page it redirects to
if not multi and args.current1 ~= title.subjectPageTitle.prefixedText then
local idealpage = mw.title.new(args.current1).talkPageTitle
local rtarget = mRedirect.getTarget(idealpage)
if rtarget == title.prefixedText then
multi = true
else
local msg = 'Codsiga ah in la guuro hal bog waa in lagu rakibaa bogga wadahadalka ee boggaas ama bogga uu ku sii leexiyo'
return err(msg, argsByNum, args.reason, argsByNumCount)
end
end
-- Check for non-existent titles.
if not currentTitle.exists then
local msg = 'Waa inaad abuurtaa [[:%s]] ka hor intaanad codsan in la guuro'
msg = string.format(msg, current)
return err(msg, argsByNum, args.reason, argsByNumCount)
end
-- Check for duplicate current titles
-- We know the id isn't zero because we have already checked for
-- existence.
local currentId = currentTitle.id
if currentDupes[currentId] then
local msg = 'Waxaa la helay cinwaan labanlaab ah ("'
.. currentTitle.prefixedText
.. '"); lama guurin karo hal bog oo loo kala qaadayo laba meelood oo kala duwan'
return err(msg, argsByNum, args.reason, argsByNumCount)
else
currentDupes[currentId] = true
end
-- Check for invalid new titles. This check must come before the
-- duplicate title check for new titles, as it will produce a script
-- error if the title object doesn't exist.
local validNew, newTitle = validateTitle(
new,
multi and 'new' or firstNewParamPrefix,
num
)
if not validNew then
-- If invalid, the second parameter is the error message.
local msg = newTitle
return err(msg, argsByNum, args.reason, argsByNumCount)
end
-- Check for duplicate new titles.
-- We can't use the page_id, as new pages might not exist, and therefore
-- multiple pages may have an id of 0. Use the prefixedText as a
-- reasonable fallback. We also need to check that we aren't using the
-- default new page name, as we don't want it to be treated as a duplicate
-- page if more than one new page name has been omitted.
local newPrefixedText = newTitle.prefixedText
if newPrefixedText ~= defaultNewPagename then
if newDupes[newPrefixedText] then
local msg = 'Waxaa la helay cinwaan labanlaab ah ("'
.. newTitle.prefixedText
.. '"); lama guurin karo laba bog oo kala duwan isla meeshaas'
return err(msg, argsByNum, args.reason, argsByNumCount)
else
newDupes[newPrefixedText] = true
end
end
end
----------------------------------------------------------------------------
-- Check for page protection
----------------------------------------------------------------------------
local highestProtection = ''
local protectedTitle = ''
-- Checking page protection requires use of .protectionLevels(), one of the
-- "expensive" parser functions, which stop working after 500 uses total.
-- Without some limit set, this starts breaking near 250 distinct titles.
local titleLimit = 80
local titlesChecked = 0
local titles = {}
-- Consolidate duplicate titles (i.e., when moving A to B and B to C)
for i = 1,argsByNumCount do
titles[mw.title.new(argsByNum[i]['current'])] = true
titles[mw.title.new(argsByNum[i]['new'])] = true
end
-- Check each title t, while ignoring the "true" value
for t, _ in pairs(titles) do
if titlesChecked < titleLimit then
local levels = t.protectionLevels
titlesChecked = titlesChecked + 1
local levelMove = levels['move'] and levels['move'][1]
local levelEdit = levels['edit'] and levels['edit'][1]
local levelCreate = levels['create'] and levels['create'][1]
if levelMove == 'sysop'
or levelEdit == 'sysop'
or levelEdit == 'editprotected'
or levelCreate == 'sysop' then
highestProtection = 'sysop'
protectedTitle = tostring(t)
break
elseif levelMove == 'templateeditor'
or levelEdit == 'templateeditor'
or levelCreate == 'templateeditor' then
highestProtection = 'templateeditor'
protectedTitle = tostring(t)
end
else
-- End the "for" loop if the titleLimit is reached
break
end
end
----------------------------------------------------------------------------
-- Generate the heading
----------------------------------------------------------------------------
-- For custom values of |heading=, use those.
-- For |heading=no, |heading=n, etc., don't include a heading.
-- Otherwise use the current date as a heading.
local heading = args.heading or args.header
local useHeading = yesno(heading, heading)
if heading and useHeading == heading then
heading = '== ' .. heading .. ' ==\n\n'
elseif useHeading == false then
heading = ''
else
local lang = mw.language.getContentLanguage()
local headingDate = lang:formatDate('j F Y')
heading = '== Codsiga wareejinta ' .. headingDate .. ' ==\n\n'
end
----------------------------------------------------------------------------
-- Build the {{requested move/dated}} invocation
----------------------------------------------------------------------------
local rmd = {}
rmd[#rmd + 1] = '{{requested move/dated'
if multi then
rmd[#rmd + 1] = '|multiple=yes'
rmd[#rmd + 1] = '\n|current1=' .. argsByNum[1].current
end
--[[
-- The first new title. This is used both by single and by multi; for single
-- it is the only parameter used. For single the parameter name is the first
-- positional parameter, and for multi the parameter name is "new1".
--]]
local new1param = multi and 'new1=' or ''
rmd[#rmd + 1] = '|' .. new1param .. argsByNum[1].new
-- Add more arguments for multi.
if multi then
for i = 2, argsByNumCount do
local t = argsByNum[i]
local numString = tostring(i)
local current = t.current
local new = t.new
rmd[#rmd + 1] = '|current' .. numString .. '=' .. current
rmd[#rmd + 1] = '|new' .. numString .. '=' .. new
end
end
-- Highest page protection (if admin or template-editor)
if highestProtection == 'sysop' or highestProtection == 'templateeditor' then
rmd[#rmd + 1] = '|protected=' .. protectedTitle
end
-- Pass through demo=yes to the
if args.demo ~= nil then
rmd[#rmd + 1] = '|demo='
rmd[#rmd + 1] = args.demo
end
-- The old multi template always has a bar before the closing curly
-- braces, so we will do that too.
if multi then
rmd[#rmd + 1] = '|'
end
rmd[#rmd + 1] = '}}'
rmd = table.concat(rmd)
----------------------------------------------------------------------------
-- Generate the list of links to the pages to be moved
----------------------------------------------------------------------------
local linkList = {}
for i, t in ipairs(argsByNum) do
local current = t.current
local new = t.new
local msg = '\n%s[[:%s]] → '
if new ~= defaultNewPagename then
msg = msg .. '{{no redirect|%s}}'
else
msg = msg .. '%s'
end
local item = string.format(
msg,
multi and '* ' or '', -- Don't make a list for single page moves.
current,
new
)
linkList[#linkList + 1] = item
end
linkList = table.concat(linkList)
----------------------------------------------------------------------------
-- Reason and talk blurb
----------------------------------------------------------------------------
-- Reason
local reason = args.reason or args[2] or 'Fadlan halkan ku qor sababta aad u jeedinayso in la guuro.'
reason = '– ' .. reason
if yesno(args.sign or args.sig or args.signature or 'unspecified', not reason:match("~~~$")) then
reason = reason .. ' ~~~~'
end
-- Talk blurb
local talk = ''
if yesno(args.talk, true) then
talk = frame:expandTemplate{title = 'Requested move/talk'}
end
----------------------------------------------------------------------------
-- Assemble the output
----------------------------------------------------------------------------
-- The old templates start with a line break, so we will do that too.
local ret = string.format(
'\n%s%s\n%s%s%s%s',
heading,
rmd,
linkList,
multi and '\n' or ' ',
reason,
talk
)
return ret
end
return p
iweuvn5kx00oeetobtq8sbpjyusaoxe
Template:Require substitution
10
53315
309720
2026-09-26T13:07:24Z
Isma4l
41797
/* */
309720
wikitext
text/x-wiki
<includeonly>{{
{{{|safesubst:}}}#if:{{{nosubst|{{{subst|}}}}}}{{ {{{|safesubst:}}}issubst}}
| {{{1|}}}
| {{ {{{|safesubst:}}}error
| Qaab-dhismeedkan waa in la [[Wikipedia:Template substitution|beddelaa (subst)]]{{
#if:{{{template|}}}
|. Ku beddel <nowiki>{{</nowiki>{{{template}}} ...<nowiki>}} leh {{</nowiki>subst:{{{template}}} ...<nowiki>}}</nowiki>
}}.}}
}}</includeonly><noinclude>{{documentation}}</noinclude>
rk81c3g1f2tuqmty402fac2dr0np9nt
Template:Require subst
10
53316
309721
2026-09-26T13:08:25Z
Isma4l
41797
/* */
309721
wikitext
text/x-wiki
#REDIRECT [[Template:Require substitution]]
33jr8w1ff2mkbvvydtb68q19r06h3x6
Template:Substitution
10
53317
309722
2026-09-26T13:10:40Z
Isma4l
41797
/* */
309722
wikitext
text/x-wiki
{{safesubst:<noinclude />#invoke: Unsubst||$B=
{{Ombox
| style = text-align: center;
| type = notice
| text = Tusmadaan '''waa in {{{1}}} la [[Wikipedia:Substitution|beddelaa ]]'''{{#if:{{{2|}}}| {{{2}}}}}.}}
}}<noinclude>
{{Documentation}}
</noinclude>
ec910ijsxmxb6hklabg40xp9tyufg6x
Template:Comment
10
53318
309723
2026-09-26T13:11:55Z
Isma4l
41797
Bog cusub: {{Respond|greyexclamation|{{{1|Faallo:}}}}}<noinclude> {{documentation}} </noinclude>
309723
wikitext
text/x-wiki
{{Respond|greyexclamation|{{{1|Faallo:}}}}}<noinclude>
{{documentation}}
</noinclude>
1wy4pxy8v7dk5xggiuk6dzqdpgp6gv1
Template:Merge done
10
53319
309724
2026-09-26T13:13:42Z
Isma4l
41797
/* */
309724
wikitext
text/x-wiki
<span class="nowrap">[[File:Merge-arrows.svg|Merge arrows|32px|link=|alt=]] {{{{{|safesubst:}}}tick|18}} '''[[Wikipedia:Merging|Isku darka]] waa la dhammeeyey'''</span>{{#if:{{{1|}}}|‍''':''' <small>{{{1}}}</small>|}}<noinclude>
{{documentation}}
</noinclude>
e1det69yugt4xcfv5g1v3a8n7kbgmu3
Template:Question
10
53320
309725
2026-09-26T13:15:32Z
Isma4l
41797
/* */
309725
wikitext
text/x-wiki
<span class="nowrap">[[File:Symbol question.svg|20px|link=|alt=]] '''{{{label|Su'aal}}}:'''</span>{{{{{|safesubst:}}}#if:{{{1|}}}| {{{1}}}}}<noinclude>{{documentation}}
[[Category:Template-yada sawirka wata faallooyinka]]
[[Category:Template-yada maamulka Wikipedia]]
</noinclude>
qiueef3h96oggdpm0a85tegxgnbhq4a
Template:Withdrawn
10
53321
309726
2026-09-26T13:17:22Z
Isma4l
41797
/* */
309726
wikitext
text/x-wiki
[[File:Cancelled process mini.svg|200x20px|alt=icon]] '''{{{1|Codsigii waa laga noqday}}}'''<noinclude>{{Documentation}}</noinclude>
maik5ar4ek1kvt5536265efnc8ba0bm
Template:Requested move/dated
10
53322
309729
2026-09-26T13:43:02Z
Isma4l
41797
/* */
309729
wikitext
text/x-wiki
{{ {{{|safesubst:}}}ifsubst| {{error|Haku beddelin subst {{tlx|Requested move/dated}}. Eeg [[WP:RM/CM]] si aad u hesho tilmaamaha ku saabsan sida loo codsado wareejinta.}}[[Category:Bogag ay ku jiraan template-yo si khaldan loo beddelay (subst)]] |
<!--the #reqmovetag anchor is added via a span tag similar to how {{Rfctag}} adds #rfctag so that the ombox can be "section"-linked to without necessarily knowing the sub-section's name-->
<span id{{=}}"requestedmovetag"></span><span id{{=}}"reqmovetag"></span>{{#switch:{{SUBJECTSPACE}}
|Category={{error|[[Template:Requested move/dated]] looguma talagelin qaybaha. Halkaas waxaa beddelkeeda ah [[Wikipedia:Categories for discussion]]}}
|File={{error|[[Template:Requested move/dated]] looguma talagelin faylasha, eeg [[Wikipedia:Moving a page#Moving a file page]] (oo la beddelkeeda isticmaal [[template:Rename media]])}}
|User={{error|[[Template:Requested move/dated]] looguma talagelin in laga wareejiyo meelaha isticmaalaha, eeg [[Wikipedia:Articles for creation]] (oo halkaas la beddelkeeda isticmaal {{tls|submit}}), ama [[Help:How to move a page|adigu u wareejiso]]}}
|Wikipedia={{#ifeq:{{BASEPAGENAME}}|Requested moves/Log||{{check talk}}}}
|#default={{check talk}} }}
{{#ifeq:{{BASEPAGENAME}}|Requested moves/Log|----<br><!--don't show the template on Requested moves/Log pages-->|
{{#ifeq:{{{multiple}}}|yes|{{#ifeq:{{{new1|}}}||{{error|Cabbirka ''new1'' waa in la cayimaa}}||}}|}}
{{Tmbox
|imageright = {{#ifeq:{{{{{#ifeq:{{{multiple}}}|yes|new1|1}}|}}}|?
|[[File:Symbol question.svg|40px]]
}}
|type = move
|text = {{#ifeq:{{{new1|{{{1}}}}}}|{{SUBJECTPAGENAME}}
|'''Codsigii ahaa in maqaalkan loo beddelo [[{{{new1|{{{1}}}}}}]] waa la fuliyay.'''
----
Haddii ciwaanka boggu leeyahay is afgarad, hubi inaad xirto wadahadalkan adoo isticmaalaya {{nowrap|{{tlsx|RM top|<nowiki>'''</nowiki>bogii waa la wareejiyay<nowiki>'''</nowiki>.}}}} iyo {{nowrap|{{tlsx|RM bottom}}}} isla markaana aad ka saarto calaamadda {{nowrap|{{tlx|Requested move/dated|…}}}} ama aad ku beddesho calaamadda {{nowrap|{{tls|Requested move/end|…}}}}.{{category handler|all=[[Category:Codsiyada wareejinta bogagga ee la fuliyay]]|nocat={{#ifeq:{{{demo|<noinclude>yes</noinclude>}}}|yes|true}}}}
|<div style="display: flex; align-items: center"><div style="flex: 1">'''Waxaa qaybtan lagu soo jeediyay in {{#ifeq:{{{multiple}}}|yes|{{#ifeq:{{{current2|}}}||[[:{{{current1|}}}]]|bogaag badan}}|[[:{{ARTICLEPAGENAME}}]]}} la [[Wikipedia:Moving a page|magacaabo oo loo wareejiyo]]{{#ifeq:{{{{{#ifeq:{{{multiple}}}|yes|new1|1}}|}}}|?| meel kale, iyadoo magaca{{#ifeq:{{{multiple}}}|yes|s|}} laga go'aan gaari doono hoos|{{#ifeq:{{{multiple}}}|yes|| ama dib loo magacaabo [[WP:Namespace|meel magaca ]] ee {{#ifeq:{{{NAMESPACE:{{{1}}}}}||(Main/Article)|{{NAMESPACE:{{{1}}}}}}}.}}''</small>}}}}}}</div>{{#switch:{{{protected|}}}
||no = <!-- catches empty and "no" -->
|#default = {{category handler|all=[[Category:Requested moves with protected titles]]|nocat={{#ifeq:{{{demo|<noinclude>yes</noinclude>}}}|yes|true}}}}<div>{{#switch:{{#invoke:requested move|protected|{{{protected|}}}}}|templateeditor=[[File:Template-protection-shackle.svg|30px|link=Wikipedia:Template protection]]|sysop=[[File:Move-protection-shackle.svg|30px|link=Wikipedia:Move protection]]|#default=}}</div>
}}</div>
----
Bot-ka [[Wikipedia:Requested moves|codsiyada wareejinta]] ayaa soo bandhigi doona wadahadalkan gudaha [[Wikipedia:Requested moves/Current discussions|hoosaadka]] wada xaajoodyada taagan saacad gudahood inta la gelinayo calaamaddan. Wadahadalka waxaa lagu xiri karaa 7 maalmood ka dib markii la furo, haddii la gaaro isku raac (eeg [[Wikipedia:Requested moves/Closing instructions|tilmaamaha xiritaanka]]). Fadlan doodaha ku salee [[Wikipedia:Article titles#Deciding on an article title|siyaasadda ciwaannada maqaallada]], oo doodda ka dhig mid [[Wikipedia:Too long; didn't read|kooban]] oo [[Wikipedia:Civility|ilbax ah]].
----
<small style="line-height:1.2em;">''Fadlan isticmaal {{Tlxs|requested move}}. Ha '''ha''' isticmaalin {{Tlx|requested move/dated}} si toos ah.''</small>{{#ifeq:{{{multiple}}}|yes| <div class="floatright"><small style="line-height:1.2em;">''Xiriirinta:'' [{{fullurl:Special:Log/move|page={{Urlencode:{{{current1}}}}}}} diiwaanka taagan] {{#ifeq:{{{new1}}}|?|| • [{{fullurl:Special:Log/move|page={{Urlencode:{{{new1}}}}}}} diiwaanka bartilmaameedka] • [{{fullurl:Special:MovePage|wpOldTitle={{Urlencode:{{{current1}}}}}&wpNewTitle={{Urlencode:{{{new1}}}}}&wpReason={{Urlencode:[[Wikipedia:Requested moves|wareejin la codsaday]]; eeg [[{{TALKPAGENAME:{{{new1}}}}}]]}}&wpMovetalk=1}} guuritaan toos ah]}}</small></div> | <div class="floatright"><small style="line-height:1.2em;">''Xiriirinta:'' [{{fullurl:Special:Log/move|page={{Urlencode:{{ARTICLEPAGENAME}}}}}} diiwaanka taagan] {{#ifeq:{{{1}}}|?|| • [{{fullurl:Special:Log/move|page={{Urlencode:{{{1}}}}}}} diiwaanka bartilmaameedka] • [{{fullurl:Special:MovePage|wpOldTitle={{Urlencode:{{ARTICLEPAGENAME}}}}&wpNewTitle={{Urlencode:{{{1}}}}}&wpReason={{Urlencode:[[Wikipedia:Requested moves|wareejin la codsaday]]; eeg [[{{TALKPAGENAME:{{{1}}}}}]]}}&wpMovetalk=1}} guuritaan toos ah]}}</small></div>}}
}}{{category handler
|all=[[Category:Codsiyada guuritaanka|{{{sort|}}}{{PAGENAME}}]]
|nocat={{#ifeq:{{{demo|<noinclude>yes</noinclude>}}}|yes|true}}
|category2={{{category|¬}}}
}}
}}
}}
}}<noinclude>
{{documentation}}
<!-- Categories go on the /doc subpage, and interwikis go on Wikidata. -->
</noinclude>
9ixc5z9rhlm7pesghuqrpe41hfkd0q3
309730
309729
2026-09-26T13:44:22Z
Isma4l
41797
/* */
309730
wikitext
text/x-wiki
{{ {{{|safesubst:}}}ifsubst| {{error|Haku beddelin subst {{tlx|Requested move/dated}}. Eeg [[WP:RM/CM]] si aad u hesho tilmaamaha ku saabsan sida loo codsado wareejinta.}}[[Category:Bogag ay ku jiraan template-yo si khaldan loo beddelay (subst)]] |
<!--the #reqmovetag anchor is added via a span tag similar to how {{Rfctag}} adds #rfctag so that the ombox can be "section"-linked to without necessarily knowing the sub-section's name-->
<span id{{=}}"requestedmovetag"></span><span id{{=}}"reqmovetag"></span>{{#switch:{{SUBJECTSPACE}}
|Category={{error|[[Template:Requested move/dated]] looguma talagelin qaybaha. Halkaas waxaa beddelkeeda ah [[Wikipedia:Categories for discussion]]}}
|File={{error|[[Template:Requested move/dated]] looguma talagelin faylasha, eeg [[Wikipedia:Moving a page#Moving a file page]] (oo la beddelkeeda isticmaal [[template:Rename media]])}}
|User={{error|[[Template:Requested move/dated]] looguma talagelin in laga wareejiyo meelaha isticmaalaha, eeg [[Wikipedia:Articles for creation]] (oo halkaas la beddelkeeda isticmaal {{tls|submit}}), ama [[Help:How to move a page|adigu u wareejiso]]}}
|Wikipedia={{#ifeq:{{BASEPAGENAME}}|Requested moves/Log||{{check talk}}}}
|#default={{check talk}} }}
{{#ifeq:{{BASEPAGENAME}}|Requested moves/Log|----<br><!--don't show the template on Requested moves/Log pages-->|
{{#ifeq:{{{multiple}}}|yes|{{#ifeq:{{{new1|}}}||{{error|Cabbirka ''new1'' waa in la cayimaa}}||}}|}}
{{Tmbox
|imageright = {{#ifeq:{{{{{#ifeq:{{{multiple}}}|yes|new1|1}}|}}}|?
|[[File:Symbol question.svg|40px]]
}}
|type = move
|text = {{#ifeq:{{{new1|{{{1}}}}}}|{{SUBJECTPAGENAME}}
|'''Codsigii ahaa in maqaalkan loo beddelo [[{{{new1|{{{1}}}}}}]] waa la fuliyay.'''
----
Haddii ciwaanka boggu leeyahay is afgarad, hubi inaad xirto wadahadalkan adoo isticmaalaya {{nowrap|{{tlsx|RM top|<nowiki>'''</nowiki>bogii waa la wareejiyay<nowiki>'''</nowiki>.}}}} iyo {{nowrap|{{tlsx|RM bottom}}}} isla markaana aad ka saarto calaamadda {{nowrap|{{tlx|Requested move/dated|…}}}} ama aad ku beddesho calaamadda {{nowrap|{{tls|Requested move/end|…}}}}.{{category handler|all=[[Category:Codsiyada wareejinta bogagga ee la fuliyay]]|nocat={{#ifeq:{{{demo|<noinclude>yes</noinclude>}}}|yes|true}}}}
|<div style="display: flex; align-items: center"><div style="flex: 1">'''Waxaa qaybtan lagu soo jeediyay in {{#ifeq:{{{multiple}}}|yes|{{#ifeq:{{{current2|}}}||[[:{{{current1|}}}]]|bogaag badan}}|[[:{{ARTICLEPAGENAME}}]]}} la [[Wikipedia:Moving a page|magacaabo oo loo wareejiyo]]{{#ifeq:{{{{{#ifeq:{{{multiple}}}|yes|new1|1}}|}}}|?| meel kale, iyadoo magaca{{#ifeq:{{{multiple}}}|yes|s|}} laga go'aan gaari doono hoos|{{#ifeq:{{{multiple}}}|yes|| ama dib loo magacaabo [[WP:Namespace|meel magaca ]] ee {{#ifeq:{{{NAMESPACE:{{{1}}}}}||(Main/Article)|{{NAMESPACE:{{{1}}}}}}}.}}''</small>}}}}}}</div>{{#switch:{{{protected|}}}
||no = <!-- catches empty and "no" -->
|#default = {{category handler|all=[[Category:Requested moves with protected titles]]|nocat={{#ifeq:{{{demo|<noinclude>yes</noinclude>}}}|yes|true}}}}<div>{{#switch:{{#invoke:requested move|protected|{{{protected|}}}}}|templateeditor=[[File:Template-protection-shackle.svg|30px|link=Wikipedia:Template protection]]|sysop=[[File:Move-protection-shackle.svg|30px|link=Wikipedia:Move protection]]|#default=}}</div>
}}</div>
----
Bot-ka [[Wikipedia:Requested moves|codsiyada wareejinta]] ayaa soo bandhigi doona wadahadalkan gudaha [[Wikipedia:Requested moves/Current discussions|hoosaadka]] wada xaajoodyada taagan saacad gudahood inta la gelinayo calaamaddan. Wadahadalka waxaa lagu xiri karaa 7 maalmood ka dib markii la furo, haddii la gaaro isku raac (eeg [[Wikipedia:Requested moves/Closing instructions|tilmaamaha xiritaanka]]). Fadlan doodaha ku salee [[Wikipedia:Article titles#Deciding on an article title|siyaasadda ciwaannada maqaallada]], oo doodda ka dhig mid [[Wikipedia:Too long; didn't read|kooban]] oo [[Wikipedia:Civility|ilbax ah]].
----
<small style="line-height:1.2em;">''Fadlan isticmaal {{Tlxs|requested move}}. Ha '''ha''' isticmaalin {{Tlx|requested move/dated}} si toos ah.''</small>{{#ifeq:{{{multiple}}}|yes| <div class="floatright"><small style="line-height:1.2em;">''Xiriirinta:'' [{{fullurl:Special:Log/move|page={{Urlencode:{{{current1}}}}}}} diiwaanka taagan] {{#ifeq:{{{new1}}}|?|| • [{{fullurl:Special:Log/move|page={{Urlencode:{{{new1}}}}}}} diiwaanka bartilmaameedka] • [{{fullurl:Special:MovePage|wpOldTitle={{Urlencode:{{{current1}}}}}&wpNewTitle={{Urlencode:{{{new1}}}}}&wpReason={{Urlencode:[[Wikipedia:Requested moves|wareejin la codsaday]]; eeg [[{{TALKPAGENAME:{{{new1}}}}}]]}}&wpMovetalk=1}} guuritaan toos ah]}}</small></div> | <div class="floatright"><small style="line-height:1.2em;">''Xiriirinta:'' [{{fullurl:Special:Log/move|page={{Urlencode:{{ARTICLEPAGENAME}}}}}} diiwaanka taagan] {{#ifeq:{{{1}}}|?|| • [{{fullurl:Special:Log/move|page={{Urlencode:{{{1}}}}}}} diiwaanka bartilmaameedka] • [{{fullurl:Special:MovePage|wpOldTitle={{Urlencode:{{ARTICLEPAGENAME}}}}&wpNewTitle={{Urlencode:{{{1}}}}}&wpReason={{Urlencode:[[Wikipedia:Requested moves|wareejin la codsaday]]; eeg [[{{TALKPAGENAME:{{{1}}}}}]]}}&wpMovetalk=1}} guuritaan toos ah]}}</small></div>}}
}}{{category handler
|all=[[Category:Codsiyada guuritaanka|{{{sort|}}}{{PAGENAME}}]]
|nocat={{#ifeq:{{{demo|<noinclude>yes</noinclude>}}}|yes|true}}
|category2={{{category|¬}}}
}}
}}
}}
}}<noinclude>
{{documentation}}
<!-- Categories go on the /doc subpage, and interwikis go on Wikidata. -->
</noinclude>
7b9yapcrwkmqcooans9k7okh9hibw5u
309731
309730
2026-09-26T13:48:21Z
Isma4l
41797
/* */
309731
wikitext
text/x-wiki
{{ {{{|safesubst:}}}ifsubst| {{error|Haku beddelin subst {{tlx|Requested move/dated}}. Eeg [[WP:RM/CM]] si aad u hesho tilmaamaha ku saabsan sida loo codsado wareejinta.}}[[Category:Bogag ay ku jiraan template-yo si khaldan loo beddelay (subst)]] |
<!--the #reqmovetag anchor is added via a span tag similar to how {{Rfctag}} adds #rfctag so that the ombox can be "section"-linked to without necessarily knowing the sub-section's name-->
<span id{{=}}"requestedmovetag"></span><span id{{=}}"reqmovetag"></span>{{#switch:{{SUBJECTSPACE}}
|Category={{error|[[Template:Requested move/dated]] looguma talagelin qaybaha. Halkaas waxaa beddelkeeda ah [[Wikipedia:Categories for discussion]]}}
|File={{error|[[Template:Requested move/dated]] looguma talagelin faylasha, eeg [[Wikipedia:Moving a page#Moving a file page]] (oo la beddelkeeda isticmaal [[template:Rename media]])}}
|User={{error|[[Template:Requested move/dated]] looguma talagelin in laga wareejiyo meelaha isticmaalaha, eeg [[Wikipedia:Articles for creation]] (oo halkaas la beddelkeeda isticmaal {{tls|submit}}), ama [[Help:How to move a page|adigu u wareejiso]]}}
|Wikipedia={{#ifeq:{{BASEPAGENAME}}|Requested moves/Log||{{check talk}}}}
|#default={{check talk}} }}
{{#ifeq:{{BASEPAGENAME}}|Requested moves/Log|----<br><!--don't show the template on Requested moves/Log pages-->|
{{#ifeq:{{{multiple}}}|yes|{{#ifeq:{{{new1|}}}||{{error|Cabbirka ''new1'' waa in la cayimaa}}||}}|}}
{{Tmbox
|imageright = {{#ifeq:{{{{{#ifeq:{{{multiple}}}|yes|new1|1}}|}}}|?
|[[File:Symbol question.svg|40px]]
}}
|type = move
|text = {{#ifeq:{{{new1|{{{1}}}}}}|{{SUBJECTPAGENAME}}
|'''Codsigii ahaa in maqaalkan loo beddelo [[{{{new1|{{{1}}}}}}]] waa la fuliyay.'''
----
Haddii ciwaanka boggu leeyahay is-afgarad, hubi inaad xirto wadahadalkan adoo isticmaalaya {{nowrap|{{tlsx|RM top|<nowiki>'''</nowiki>bogii waa la wareejiyay<nowiki>'''</nowiki>.}}}} iyo {{nowrap|{{tlsx|RM bottom}}}} isla markaana aad ka saarto calaamadda {{nowrap|{{tlx|Requested move/dated|…}}}} ama aad ku beddesho calaamadda {{nowrap|{{tls|Requested move/end|…}}}}.{{category handler|all=[[Category:Codsiyada wareejinta bogagga ee la fuliyay]]|nocat={{#ifeq:{{{demo|<noinclude>yes</noinclude>}}}|yes|true}}}}
|<div style="display: flex; align-items: center"><div style="flex: 1">'''Waxaa qaybtan lagu soo jeediyay in {{#ifeq:{{{multiple}}}|yes|{{#ifeq:{{{current2|}}}||[[:{{{current1|}}}]]|bogaag badan}}|[[:{{ARTICLEPAGENAME}}]]}} la [[Wikipedia:Moving a page|magacaabo oo loo wareejiyo]]{{#ifeq:{{{{{#ifeq:{{{multiple}}}|yes|new1|1}}|}}}|?| meel kale, iyadoo magaca{{#ifeq:{{{multiple}}}|yes|s|}} laga go'aan gaari doono hoos|{{#ifeq:{{{multiple}}}|yes|| oo loo wareejinayo {{no redirect|{{{1|{{error|Waa in la cayimaa magaca cusub}}}}}}}}}}}.'''<br>{{#ifeq:{{{1}}}|?||{{#ifeq:{{{multiple}}}|yes||{{#ifeq:{{NAMESPACE:{{ARTICLEPAGENAME}}}}|{{NAMESPACE:{{{1}}}}}||<small style="line-height:1.2em;">''Soo jeedintani waa wareejin u dhaxaysa {{if preview|{{red|'''boosaska magaca'''}}|boosaska magaca}} oo ka timid [[WP:Namespace|booska magaca]] {{#ifeq:{{NAMESPACE:{{ARTICLEPAGENAME}}}}||(Maqaal/Hore)|{{NAMESPACE:{{ARTICLEPAGENAME}}}}}} ilaa {{#ifeq:{{NAMESPACE:{{{1}}}}}||(Maqaal/Hore)|{{NAMESPACE:{{{1}}}}}}}.''</small><br>}}}}}}</div>{{#switch:{{{protected|}}}
||no = <!-- catches empty and "no" -->
|#default = {{category handler|all=[[Category:Codsiyada wareejinta ee ciwaannada la ilaaliyo]]|nocat={{#ifeq:{{{demo|<noinclude>yes</noinclude>}}}|yes|true}}}}<div>{{#switch:{{#invoke:requested move|protected|{{{protected|}}}}}|templateeditor=[[File:Template-protection-shackle.svg|30px|link=Wikipedia:Template protection]]|sysop=[[File:Move-protection-shackle.svg|30px|link=Wikipedia:Move protection]]|#default=}}</div>
}}</div>
----
Bot-ka [[Wikipedia:Requested moves|codsiyada wareejinta]] ayaa soo bandhigi doona wadahadalkan gudaha [[Wikipedia:Requested moves/Current discussions|hoosaadka]] wada-xaajoodyada taagan saacad gudahood inta la gelinayo calaamaddan. Wadahadalka waxaa lagu xiri karaa 7 maalmood ka dib markii la furo, haddii la gaaro is-afgarad (eeg [[Wikipedia:Requested moves/Closing instructions|tilmaamaha xiritaanka]]). Fadlan doodaha ku salee [[Wikipedia:Article titles#Deciding on an article title|siyaasadda ciwaannada maqaallada]], oo doodda ka dhig mid [[Wikipedia:Too long; didn't read|kooban]] oo [[Wikipedia:Civility|ilbax ah]].
----
<small style="line-height:1.2em;">''Fadlan isticmaal {{Tlxs|requested move}}. Ha '''ha''' isticmaalin {{Tlx|requested move/dated}} si toos ah.''</small>{{#ifeq:{{{multiple}}}|yes| <div class="floatright"><small style="line-height:1.2em;">''Xiriirinta:'' [{{fullurl:Special:Log/move|page={{Urlencode:{{{current1}}}}}}} diiwaanka taagan] {{#ifeq:{{{new1}}}|?|| • [{{fullurl:Special:Log/move|page={{Urlencode:{{{new1}}}}}}} diiwaanka bartilmaameedka] • [{{fullurl:Special:MovePage|wpOldTitle={{Urlencode:{{{current1}}}}}&wpNewTitle={{Urlencode:{{{new1}}}}}&wpReason={{Urlencode:[[Wikipedia:Requested moves|wareejin la codsaday]]; eeg [[{{TALKPAGENAME:{{{new1}}}}}]]}}&wpMovetalk=1}} wareejin toos ah]}}</small></div> | <div class="floatright"><small style="line-height:1.2em;">''Xiriirinta:'' [{{fullurl:Special:Log/move|page={{Urlencode:{{ARTICLEPAGENAME}}}}}} diiwaanka taagan] {{#ifeq:{{{1}}}|?|| • [{{fullurl:Special:Log/move|page={{Urlencode:{{{1}}}}}}} diiwaanka bartilmaameedka] • [{{fullurl:Special:MovePage|wpOldTitle={{Urlencode:{{ARTICLEPAGENAME}}}}&wpNewTitle={{Urlencode:{{{1}}}}}&wpReason={{Urlencode:[[Wikipedia:Requested moves|wareejin la codsaday]]; eeg [[{{TALKPAGENAME:{{{1}}}}}]]}}&wpMovetalk=1}} wareejin toos ah]}}</small></div>}}
}}{{category handler
|all=[[Category:Codsiyada guuritaanka|{{{sort|}}}{{PAGENAME}}]]
|nocat={{#ifeq:{{{demo|<noinclude>yes</noinclude>}}}|yes|true}}
|category2={{{category|¬}}}
}}
}}
}}
}}<noinclude>
{{documentation}}
<!-- Categories go on the /doc subpage, and interwikis go on Wikidata. -->
</noinclude>
ju2huq7w52bnmgel6ghcurr39b8hktq
Template:Move
10
53323
309733
2026-09-26T13:57:22Z
Isma4l
41797
/* */
309733
wikitext
text/x-wiki
#Redirect [[Template:Requested move]]
47q2gql7cv5gtma95hj8cjv6yfk22fe
Template:Dividing line
10
53324
309741
2026-09-26T17:25:30Z
Isma4l
41797
Bog cusub: <noinclude> {{Documentation|content= {{Substitution|not}} Template-kan waxaa loogu talagalay in uu soo saaro <code>----</code> meelaha aanu calaamaddaas caadiga ahi ka shaqaynayn (tusaale ahaan miiska dhexdiisa ama qaybaha kale ee gaarka ah). [[Category:Qaybaha unugyada miiska]] }}</noinclude>
309741
wikitext
text/x-wiki
<noinclude>
{{Documentation|content=
{{Substitution|not}}
Template-kan waxaa loogu talagalay in uu soo saaro <code>----</code> meelaha aanu calaamaddaas caadiga ahi ka shaqaynayn (tusaale ahaan miiska dhexdiisa ama qaybaha kale ee gaarka ah).
[[Category:Qaybaha unugyada miiska]]
}}</noinclude>
gxukswc4yg8d1yy0onfffn524rbzmpr
Template:DfE performance tables
10
53325
309742
2026-09-26T17:26:25Z
Isma4l
41797
Bog cusub: [https://www.compare-school-performance.service.gov.uk/school/{{{1}}} {{#if:{{{2|}}}|{{{2}}}|Performance tables for {{{1}}}}}]<noinclude> {{Documentation}} <!-- PLEASE ADD THIS TEMPLATE'S CATEGORIES AND INTERWIKIS TO THE /doc SUBPAGE, THANKS --> </noinclude>
309742
wikitext
text/x-wiki
[https://www.compare-school-performance.service.gov.uk/school/{{{1}}} {{#if:{{{2|}}}|{{{2}}}|Performance tables for {{{1}}}}}]<noinclude>
{{Documentation}}
<!-- PLEASE ADD THIS TEMPLATE'S CATEGORIES AND INTERWIKIS TO THE /doc SUBPAGE, THANKS -->
</noinclude>
ljfneenf246i1ysn8fzdlw2ngiq7kfx
Template:Collapsed infobox section begin/styles.css
10
53326
309743
2026-09-26T17:27:19Z
Isma4l
41797
Bog cusub: /* {{pp-template}} */ /* These styles were formerly inline in the parent template. */ .cisb-header { line-height: normal; padding: 0.2em; } .cisb-table { width: 100%; } /* The helper adds this class when |cont= or |last= is true. */ .cisb-table.cisb-last { margin-bottom: -0.4em; } /* This matches spacing between embedded officeholder sections. */ .cisb-table.cisb-officeholder-embed:not(.cisb-single) { margin-bottom: -10px; } /* Collapse the required empty marker row so i...
309743
sanitized-css
text/css
/* {{pp-template}} */
/* These styles were formerly inline in the parent template. */
.cisb-header {
line-height: normal;
padding: 0.2em;
}
.cisb-table {
width: 100%;
}
/* The helper adds this class when |cont= or |last= is true. */
.cisb-table.cisb-last {
margin-bottom: -0.4em;
}
/* This matches spacing between embedded officeholder sections. */
.cisb-table.cisb-officeholder-embed:not(.cisb-single) {
margin-bottom: -10px;
}
/* Collapse the required empty marker row so it adds no height. */
.cisb-table.cisb-officeholder-embed > tbody > .cisb-content-row {
height: 0;
}
/* Touch layouts need no marker-cell padding. */
.cisb-table.cisb-officeholder-embed > tbody > .cisb-content-row > td {
padding-top: 0;
padding-bottom: 0;
}
/* Add 1px marker-cell padding only for desktop-style pointers. */
@media (min-width: 640px) and (hover: hover) and (pointer: fine) {
.cisb-table.cisb-officeholder-embed > tbody > .cisb-content-row > td {
padding-top: 1px;
padding-bottom: 1px;
}
}
/* This keeps the title clear of the collapse control. */
.cisb-title {
margin: 0 3.3em;
padding: 0 0.4em;
text-align: center;
}
aiq2z7xbwc6xo80fhuly33qzi6u88x1
Template:Chart top
10
53327
309745
2026-09-26T17:31:05Z
Isma4l
41797
Bog cusub: {| class="collapsible {{#ifeq:{{Yesno-no|{{{collapsed|{{{collapse|}}}}}}}}|yes|collapsed|expanded}}" style="{{#switch:{{{align|}}}{{{float|}}} | left = margin: 0.3em 1em 0.3em 0; float:left; clear:{{{clear|left}}}; min-width:{{{min-width|{{{width|33em}}}}}}; | right = margin: 0.3em 0 0.3em 1em; float:right; clear:{{{clear|right}}}; min-width:{{{min-width|{{{width|33em}}}}}}; | #default = margin: 0.3em auto auto; clear:{{{clear|none}}}; min-width:{{{min-width|{{{width|60...
309745
wikitext
text/x-wiki
{| class="collapsible {{#ifeq:{{Yesno-no|{{{collapsed|{{{collapse|}}}}}}}}|yes|collapsed|expanded}}" style="{{#switch:{{{align|}}}{{{float|}}}
| left = margin: 0.3em 1em 0.3em 0; float:left; clear:{{{clear|left}}}; min-width:{{{min-width|{{{width|33em}}}}}};
| right = margin: 0.3em 0 0.3em 1em; float:right; clear:{{{clear|right}}}; min-width:{{{min-width|{{{width|33em}}}}}};
| #default = margin: 0.3em auto auto; clear:{{{clear|none}}}; min-width:{{{min-width|{{{width|60em}}}}}};
}} width:{{{width|auto}}}; font-size:85%; border:1px solid #aaa"
! style="padding:0.2em 0.3em 0.2em {{#if:{{{template_name|}}}|0.3em|4.3em}};{{#if:{{{background|}}}|background:{{{background|}}}; color: black|background:none; color: inherit}}; width:{{{width|auto}}}" | {{#if:{{{template_name|}}}
|{{Navbar-collapsible|{{{title|{{{1|Family of {{PAGENAME}}}}}}}}|{{{template_name}}}|brackets=yes}}
|{{{title|{{{1|Family of {{PAGENAME}}}}}}}}
}}
|-
| style="text-align:{{{text-align|center}}}" | {{#invoke:Check for unknown parameters|check|unknown=[[Category:Pages using chart top with unknown parameters|_VALUE_{{PAGENAME}}]]|preview=Page using [[Template:Chart top]] with unknown parameter "_VALUE_"|ignoreblank=y| 1 | align | background | clear | collapse | collapsed | float | min-width | template_name | text-align | title | width }}<noinclude>
|}
{{documentation}}</noinclude>
m8rk0znq9mjtsd5vyrw34wv7ollz4xk
Template:Chart bottom
10
53328
309746
2026-09-26T17:31:37Z
Isma4l
41797
Bog cusub: <includeonly>|}</includeonly><noinclude> {{documentation|Template:Chart top/doc}} </noinclude>
309746
wikitext
text/x-wiki
<includeonly>|}</includeonly><noinclude>
{{documentation|Template:Chart top/doc}}
</noinclude>
fox8ehjw6tecak790qn3g0vm666gtni
Module:Bar
828
53329
309749
2026-09-26T17:37:03Z
Isma4l
41797
Bog cusub: require('strict') require('Module:Lua class') local frame = mw.getCurrentFrame() local metatable = { -- Append to array by calling it __call = function (t, v) t[#t+1] = v end, __tostring = function(t) return table.concat(t) end } local function notblank(v) return (v or '') ~= '' end local function ifblank(v, a) return notblank(v) and v or a end local BarBox = class('BarBox', { _css = 'Module:Bar/styles.css', __init = function (self, args) self.css = args[1] or args....
309749
Scribunto
text/plain
require('strict')
require('Module:Lua class')
local frame = mw.getCurrentFrame()
local metatable = { -- Append to array by calling it
__call = function (t, v) t[#t+1] = v end,
__tostring = function(t) return table.concat(t) end
}
local function notblank(v) return (v or '') ~= '' end
local function ifblank(v, a) return notblank(v) and v or a end
local BarBox = class('BarBox', {
_css = 'Module:Bar/styles.css',
__init = function (self, args)
self.css = args[1] or args.css
self.float = args[2] or args.float or 'none'
self.backgroundcolor = args[3] or args.backgroundcolor or 'white'
self.borderwidth = args[4] or args.borderwidth or '1'
self.style = args[5] or args.style
self.width = args[6] or args.width-- or 'auto'
self.barwidth = args[7] or args.barwidth or '100px'
self.lineheight = args[8] or args.lineheight-- or '1.6'
self.title = args[9] or args.title
self.titlebar = args[10] or args.titlebar-- or 'none'
self.left1 = args[11] or args.left1
self.left2 = args[12] or args.left2
self.right1 = args[13] or args.right1
self.right2 = args[14] or args.right2
self.bars = args[15] or args.bars
self.caption = args[16] or args.caption -- deprecated
self.footer = args[17] or args.footer or args[16] or args.caption
end,
create = function (cls, args)
args = mw.clone(args)
args.float = args.float and args.float:lower()
args.width = tonumber(args.width) and args.width .. 'px' or args.width and args.width:lower()
args.barwidth = tonumber(args.barwidth) and args.barwidth .. 'px' or args.barwidth and args.barwidth:lower()
return cls(args)
end,
_sDefaultAlign = 'lrlr',
_tDefaultAlign = {false, 'r', false, 'r'},
_setAlign = function (obj, align)
obj._alignClasses = {}
for i, d in ipairs(obj._tDefaultAlign) do
local a = align:sub(i,i)
if a == 'l' then
a = false
elseif a == 'd' then
a = d
elseif a ~= 'c' and a ~= 'r' then
error('unrecognized align[' .. i .. ']')
end
obj._alignClasses[i] = a and 'class=bb-' .. a
end
end,
html = function (self)
local output = setmetatable({}, metatable)
output(frame:extensionTag('templatestyles', '', {src=self._css}) .. '\n')
output(self.css and frame:extensionTag('templatestyles', '', {src=self.css}) .. '\n' or '')
local class = 'barbox'
if self.float == 'left' or self.float == 'right' then
class = class .. ' t' .. self.float
end
output('<div class="' .. class .. '" style="background:' ..
self.backgroundcolor .. '; border:' .. self.borderwidth .. 'px solid silver'
)
if self.float == 'center' then output('; margin:0 auto') end
if self.width then output('; width:' .. self.width) end
if self.style then output('; ' .. self.style) end
output('">\n')
output('{|')
if self.lineheight then output(' style="line-height:' .. self.lineheight .. '"') end
output('\n')
if self.title then output(
'|+ class=bb-default' .. (self.titlebar and ' style="background:' .. self.titlebar .. '"' or '') .. ' |\n' ..
self.title .. '\n'
) end
output('|- class=bb-default style="font-size:88%; min-height:4px"\n')
if self._alignClasses then -- same as self.__class._alignClasses
self._alignClasses = self._alignClasses
self.__class._alignClasses = nil
else
self._setAlign(self, self._sDefaultAlign)
end
local attributes =
not self.left2 and 'colspan=2' .. (self._alignClasses[1] and ' ' .. self._alignClasses[1] or '') or self._alignClasses[1]
output('!' .. (attributes and attributes .. '|' or '') .. (self.left1 or ' '))
output(self.left2 and '!!' .. (self._alignClasses[2] and self._alignClasses[2] .. '|' or '') .. self.left2 or '')
output('!!style="width:' .. self.barwidth .. '"| ')
attributes =
not self.right2 and 'colspan=2' .. (self._alignClasses[4] and ' ' .. self._alignClasses[4] or '') or self._alignClasses[3]
output('!!' .. (attributes and attributes .. '|' or '') .. (self.right1 or self.right2 and ' ' or ''))
output(self.right2 and '!!' .. (self._alignClasses[4] and self._alignClasses[4] .. '|' or '') .. self.right2 or '')
output('\n')
if self.bars then output(self.bars .. '\n') end
if self.caption then output('\n[[Category:Pages using bar box with deprecated caption parameter]]') end
if self.footer then output(
'|- class=bb-default\n| colspan=5 style="padding:5px 0" | ' .. -- <p> is created if \n precedes the footer
self.footer .. '\n'
) end
output('|}\n</div>')
return tostring(output)
end,
__tostring = function (self)
return self.html()
end,
percent = function (args)
local output = setmetatable({'|-'}, metatable)
local percentage = (args[3] or '0') .. '%'
if args.bg then output(args.bg and 'style="background:' .. args.bg .. '"') end
output('\n')
output('|colspan=2 class=bb-min8|' .. (args[1] or ' '))
output('||class=bb-b|')
output('<div style="background:' .. (args[2] or 'gray') .. '; width:' .. percentage .. '">​</div>')
output('||' .. (args.note and '' or 'colspan=2 class=bb-r|') .. (args[4] or percentage))
if args.note then output('||class=bb-r|' .. args.note) end
return tostring(output)
end,
pixel = function (args)
local output = setmetatable({'|-'}, metatable)
local pixels = (args[3] or '0')
if args.bg then output('style="background:' .. args.bg .. '"') end
output('\n')
output('|colspan=2|' .. (args[1] or ' '))
output('||class=bb-b|')
output('<div style="background:' .. (args[2] or 'gray') .. '; width:' .. pixels .. 'px">​</div>')
output('||class="bb-min3' .. (args.note and '"' or ' bb-r" colspan=2') .. '|' .. (args[5] or pixels .. (args[4] or '')))
if args.note then output('||class=bb-r|' .. args.note) end
return tostring(output)
end,
stacked = function (cls, args)
local output = setmetatable({'|-'}, metatable)
if args.id then
output('class="mw-collapsible' ..
(args.collapsed and ' mw-collapsed' or '') ..
'" id=mw-customcollapsible-' .. args.id
)
end
output('\n')
if not cls._alignClasses then
cls._setAlign(cls, args.align and args.align:lower() or cls._sDefaultAlign)
end
local attributes =
not args.note1 and 'colspan=2' .. (cls._alignClasses[1] and ' ' .. cls._alignClasses[1] or '') or cls._alignClasses[1]
output('|' .. (attributes and attributes .. '|' or '') .. (args[1] or ' '))
if args.note1 then
output('||' .. (cls._alignClasses[2] and cls._alignClasses[2] .. '|' or '') .. args.note1)
end
output('||class=bb-b|')
local len = 0 -- can't use #args because of [[Module:Arguments#Known limitations]]
for k in pairs(args) do
local idx = tonumber(k) or 0
if idx > len then len = idx end
end
if args.bkgclasses then -- used when wikitext minimization is essential
for i = 1, len-2 do
local width, delim, title --is delim reset every cycle?
width = args[i+2] or 0
width = tonumber(('%.2f'):format(width))
if width > 0 then
if not delim then -- assuming title types are consistent
delim = tonumber(args['title' .. i]) and '' or '"'
end
title = args['title' .. i] and ' title=' .. delim .. args['title' .. i] .. delim or ''
output(
'<div' .. title .. ' class=' .. args.bkgclasses[i] .. ' style=width:' .. width .. 'px></div>'
)
end
end
else
for i = 1, (len-2) / 2 do
local width, title, background
width = args[2*i + 2] or 0
width = tonumber(('%.2f'):format(width))
if width > 0 then
title = args['title' .. i] and ' title="' .. args['title' .. i] .. '"' or ''
background = args[2*i + 1] or 'gray'
output(
'<div' .. title .. ' style="background:' .. background .. ';width:' .. width .. 'px"></div>'
)
end
end
end
if #output == 4 then output(' ') end
attributes =
not args.note2 and 'colspan=2' .. (cls._alignClasses[4] and ' ' .. cls._alignClasses[4] or '') or cls._alignClasses[3]
output('||')
if attributes then output(attributes .. '|') end
if (args[2] or args.note2) then output(' ') end
if args.note2 then
output('||')
if cls._alignClasses[4] then output (cls._alignClasses[4] .. '|') end
output(args.note2)
end
return tostring(output)
end,
gap = function (args)
local output = setmetatable({'|-\n'}, metatable)
local height = tonumber(args.height) and args.height .. 'px' or args.height and args.height:lower() or '10px'
output('|colspan=5 style="height:' .. height .. '"|' .. (args[1] or ''))
return tostring(output)
end,
['table'] = function (args)
local function expr(v, a)
v = frame:callParserFunction('formatnum', {ifblank(v, a), 'R'})
v = frame:callParserFunction('#expr', v)
return tonumber(ifblank(v, a)) or a
end
local barValue = expr(args[1], 0)
local scale = expr(args[3], 1)
local width = math.abs(scale * barValue)
local height = ifblank(args[4], '2ex')
local output = setmetatable({}, metatable)
-- Handle the display of the value and unit (parameters 1 and 2) --
if notblank(args[2]) then -- If a unit (parameter 2) is provided
local titleparts = mw.text.split(args[2], '/', true)
if notblank(titleparts[2]) then -- If unit has multiple parts (e.g., 'km|mi'), attempt conversion
if notblank(titleparts[1]) then -- If unit has a single part, display value and unit directly
output((args[1] or '') .. args[2])
else -- Otherwise, use the convert template to handle unit conversion
local cvtArgs = {
[1] = tostring(barValue),
[2] = titleparts[2] or '',
[3] = titleparts[3] or '',
[4] = titleparts[4] or '',
abbr= 'on'
}
local convert = require('Module:Convert')._convert
output(convert({}, cvtArgs))
end
else -- If unit is simple, display value and unit without conversion
output((args[1] or '') .. args[2])
end
else -- If no unit is provided, display value or default to em dash
output(ifblank(args[1], '—'))
end
-- Handle the bar visualization --
local sortString = 'data-sort-value="' .. barValue .. '"|'
local barString = sortString ..
'<div style="width:' .. width .. 'px;height:' .. height ..
';background:#aaa;color:inherit;' .. (args[5] or '') ..
'" title="' .. barValue .. '"> </div>'
if scale < 0 then -- If scale (parameter 3) is negative, add extra column
output('||')
if barValue < 0 then -- If value (parameter 1) is negative, align bar to the right & scale
output('align="right" ' .. barString)
else -- output hidden sort key for sortable wikitables
output(sortString)
end
end
output('\n|')
if barValue > 0 then -- if display value is positive, align bar to the left
output('align="left" ' .. barString)
else -- output hidden sort key for sortable wikitables
output(sortString)
end
return tostring(output)
end,
__classmethods = {'create', 'stacked'},
__staticmethods = {'_setAlign', 'percent', 'pixel', 'gap'},
__slots = {'_alignClasses'}
})
local getArgs = require('Module:Arguments').getArgs
local p = {BarBox}
function p.box(frame)
local args = getArgs(frame)
local box = BarBox.create(args)
return tostring(box)
end
function p.percent(frame)
local args = getArgs(frame)
return BarBox.percent(args)
end
function p.pixel(frame)
local args = getArgs(frame)
return BarBox.pixel(args)
end
function p.log(frame)
local args = getArgs(frame)
local outArgs = {[1] = args[2], [2] = args[3]}
outArgs[3] = math.log((tonumber(args[4]) ~= nil) and (args[4] + 1) or 100)/
math.log((tonumber(args[1]) ~= nil) and args[1] or 2)*30
outArgs[5] = ifblank(args[6], ((args[4] or '') .. (args[5] or '')))
return BarBox.pixel(outArgs)
end
function p.stacked(frame)
local yesno = require('Module:Yesno')
local args = getArgs(frame, {
valueFunc = function (key, value)
if value then
if key == 'collapsed' then
return yesno(value)
elseif key == 'bkgclasses' then
return mw.text.jsonDecode(value) -- string to table
end
value = mw.text.trim(value)
if value ~= '' then
return value
end
end
return nil
end
})
return BarBox.stacked(args)
end
function p.gap(frame)
local args = getArgs(frame)
return BarBox.gap(args)
end
function p.bartable(frame)
local args = frame.args
return BarBox['table'](args)
end
p['table'] = p.bartable
function p.tableTemplate(frame)
local args = frame:getParent().args
return BarBox['table'](args)
end
return p
jhxd32eufddam5g0slzucwgy91lrfwh
Module:Bar/styles.css
828
53330
309750
2026-09-26T17:37:35Z
Isma4l
41797
Bog cusub: /* {{pp-template}} */ .barbox { overflow-x: auto; padding: 0.4em 0 } .barbox > table { border-spacing: 0.8em 0; font-size: 88%; text-align: left; width: 100% } .barbox caption { font-weight: bold; margin: 0 0.4em; text-align: center /* not default in MinervaNeue */ } .barbox th, .barbox td:not(.bb-b) { padding-left: 0; padding-right: 0 } .bb-default { line-height: 1.6 } .bb-c { text-align: center } .bb-r { text-align: right } .bb-min3 { min-width: 3em } .bb-mi...
309750
sanitized-css
text/css
/* {{pp-template}} */
.barbox {
overflow-x: auto;
padding: 0.4em 0
}
.barbox > table {
border-spacing: 0.8em 0;
font-size: 88%;
text-align: left;
width: 100%
}
.barbox caption {
font-weight: bold;
margin: 0 0.4em;
text-align: center /* not default in MinervaNeue */
}
.barbox th, .barbox td:not(.bb-b) {
padding-left: 0;
padding-right: 0
}
.bb-default {
line-height: 1.6
}
.bb-c {
text-align: center
}
.bb-r {
text-align: right
}
.bb-min3 {
min-width: 3em
}
.bb-min8 {
min-width: 8em
}
.bb-b {
border-left: 1px solid silver;
border-right: 1px solid silver
}
.bb-b > div {
float: left;
overflow: hidden
}
.bb-b > div::after {
content: "\200B";
}
s4dn4heiaajopkpke9mod73q31l62cn
Module:Lua class
828
53331
309751
2026-09-26T17:38:18Z
Isma4l
41797
Bog cusub: local libraryUtil = require('libraryUtil') -- overridden for new types and exceptions local warn = require('Module:Warning') local mode_mt = {__mode='k'} local _classes, _instances = {}, {} -- registry mapping all private classes and instances to their internal counterparts setmetatable(_classes, mode_mt); setmetatable(_instances, mode_mt) local classes, instances = {}, {} -- same but public -> private setmetatable(classes, mode_mt); setmetatable(instances, mode_mt) local inst_p...
309751
Scribunto
text/plain
local libraryUtil = require('libraryUtil') -- overridden for new types and exceptions
local warn = require('Module:Warning')
local mode_mt = {__mode='k'}
local _classes, _instances = {}, {} -- registry mapping all private classes and instances to their internal counterparts
setmetatable(_classes, mode_mt); setmetatable(_instances, mode_mt)
local classes, instances = {}, {} -- same but public -> private
setmetatable(classes, mode_mt); setmetatable(instances, mode_mt)
local inst_private_mts, inst_public_mts = {}, {} -- for each class since they are mostly immutable
local una_metamethods = {__ipairs=1, __pairs=1, __tostring=1, __unm=1}
local bin_metamethods = {__add=1, __concat=1, __div=1, __eq=1, __le=1, __lt=1, __mod=1, __mul=1, __pow=1, __sub=1}
local oth_metamethods = {__call=1, __index=1, __newindex=1, __init=1}
local not_metamethods = {__name=1, __bases=1, __methods=1, __classmethods=1, __staticmethods=1, __normalmethods=1, __slots=1, __protected=1}
-- __class and __hash
local function objtostr(obj)
local copy = {}
for key, val in pairs(obj) do
copy[key] = type(val) == 'function' and 'function' or val
end
return mw.text.jsonEncode(copy, mw.text.JSON_PRETTY)
end
local inst_mt = {
__index = function (self, key)
if tonumber(key) or key == 'hash' or key == '__hash' then -- don't search numeric keys in classes and hash isn't inheritable
return nil
end
return self.__class[key] -- key could be invalid here without issues as __index(cls_private, key) would handle it
end,
__tostring = objtostr--
}
local function private_read(self_private, key)
return _instances[self_private][key] -- instance should be clean of invalid keys so that __index(cls_private, key) handles them
end
local function private_read_custom(self_private, key)
if not_metamethods[key] then
error(("AttributeError: unauthorized read attempt of internal '%s'"):format(key), 2)
end
local self = _instances[self_private]
local value = self.__class.__index(self_private, key) -- custom __index can handle invalid keys
if value == nil then
return self[key] -- same reason of private_read for not checking key validity
end
return value
end
local function private_write(self_private, key, value)
libraryUtil.checkTypeMultiForIndex(key, {'string', 'number'})
local self = _instances[self_private]
if type(key) == 'string' then
local cls = _classes[self.__class]
if cls.__normalmethods[key] or key:sub(1,2) == '__' and key ~= '__hash' then
error(("AttributeError: forbidden write attempt {%s: %s} to immutable method or invalid key"):format(key, tostring(value)), 2)
elseif key:find('[^_%w]') or key:find('^%d') then
error(("AttributeError: invalid attribute name '%s'"):format(key), 2)
elseif key == '__hash' and self.__hash ~= nil then
error("AttributeError: forbidden update attempt to immutable __hash", 2)
end
end
self[key] = value
end
local function private_write_custom(self_private, key, value)
local self = _instances[self_private]
local cls = _classes[self.__class]
local keyType = type(key)
if keyType == 'string' and (cls.__normalmethods[key] or key:sub(1,2) == '__' and key ~= '__hash') then
error(("AttributeError: forbidden write attempt {%s: %s} to immutable method or invalid key"):format(key, tostring(value)), 2)
end
if cls.__newindex(self_private, key, value) == false then -- custom __newindex can handle invalid keys
libraryUtil.checkTypeMultiForIndex(key, {'string', 'number'})
if keyType == 'string' then
if key:find('[^_%w]') or key:find('^%d') then
error(("AttributeError: invalid attribute name '%s'"):format(key), 2)
elseif key == '__hash' and self.__hash ~= nil then
error("AttributeError: forbidden update attempt to immutable __hash", 2)
end
end
self[key] = value
end
end
local function public_read(self_public, key)
if type(key) == 'string' and key:sub(1,1) == '_' then
error(("AttributeError: unauthorized read attempt of nonpublic '%s'"):format(key), 2)
end
return _instances[instances[self_public]][key] -- same reason of private_read...
end
local function public_read_custom(self_public, key)
if type(key) == 'string' and key:sub(1,1) == '_' then
error(("AttributeError: unauthorized read attempt of nonpublic '%s'"):format(key), 2)
end
local self = _instances[instances[self_public]]
local value = self.__class.__index(instances[self_public], key)
if value == nil then
return self[key] -- same reason of private_read...
end
return value
end
local function public_write(self_public, key, value)
local self = _instances[instances[self_public]]
local cls = _classes[self.__class]
if type(key) == 'string' then
if key:sub(1,1) == '_' then
error(("AttributeError: unauthorized write attempt of nonpublic {%s: %s}"):format(key, tostring(value)), 2)
elseif cls.__normalmethods[key] then
error(("AttributeError: forbidden write attempt {%s: %s} to immutable method"):format(key, tostring(value)), 2)
end
end
if self[key] == nil and not cls.__slots[key] then -- if instance and __slots are valid, no danger of creating invalid attributes
libraryUtil.checkTypeMultiForIndex(key, {'string', 'number'}) -- otherwise error message would not make sense
error(("AttributeError: public attribute creation attempt {%s: %s} not expected by __slots"):format(key, tostring(value)), 2)
end
self[key] = value
end
local function public_write_custom(self_public, key, value)
local self = _instances[instances[self_public]]
local cls = _classes[self.__class]
if type(key) == 'string' then
if key:sub(1,1) == '_' then
error(("AttributeError: unauthorized write attempt of nonpublic {%s: %s}"):format(key, tostring(value)), 2)
elseif cls.__normalmethods[key] then
error(("AttributeError: forbidden write attempt {%s: %s} to immutable method"):format(key, tostring(value)), 2)
end
end
if cls.__newindex(instances[self_public], key, value) == false then
if self[key] == nil and not cls.__slots[key] then
libraryUtil.checkTypeMultiForIndex(key, {'string', 'number'}) -- otherwise error message...
error(("AttributeError: public attribute creation attempt {%s: %s} not expected by __slots"):format(key, tostring(value)), 2)
end
self[key] = value
end
end
local function constructor(wrapper, ...)
if select('#', ...) ~= 1 or type(...) ~= 'table' then
error("SyntaxError: incorrect instance constructor syntax, should be: Class{arg1, arg2..., kw1=kwarg1, kw2=kwarg2...}", 2)
end
local self = {} -- __new
local cls_private = classes[wrapper] or wrapper
self.__class = cls_private
setmetatable(self, inst_mt)
local self_private = {} -- wrapper
local cls = _classes[cls_private]
local mt = inst_private_mts[cls]
if not mt then
mt = {}
mt.__index = cls.__index and private_read_custom or private_read
mt.__newindex = cls.__newindex and private_write_custom or private_write
for key in pairs(una_metamethods) do
mt[key] = cls[key]
end
mt.__call = cls.__call
mt.__metatable = "unauthorized access attempt of wrapper object metatable"
inst_private_mts[cls] = mt
end
setmetatable(self_private, mt)
_instances[self_private] = self
local __init = cls.__init
if __init and __init(self_private, ...) then
error("TypeError: __init must not return a var-list")
end
for key in pairs(cls.__methods) do
local func = cls[key] -- index once to save time in future calls
self[key] = function (...) return func(self_private, ...) end
end
if cls._hash then -- not inheritable
self.hash = function () return cls._hash(self_private) end
self.hash() -- construction of self is finalized at this point, so immutable hash can be safely set
end
local self_public = {}
mt = inst_public_mts[cls]
if not mt then
mt = {}
mt.__index = cls.__index and public_read_custom or public_read
mt.__newindex = cls.__newindex and public_write_custom or public_write
for key in pairs(una_metamethods) do
if cls[key] then
local func = cls[key]
mt[key] = function (a) return func(instances[a]) end
end
end
for key in pairs(bin_metamethods) do
if cls[key] then
local func = cls[key]
mt[key] = function (a, b) return func(instances[a], instances[b]) end
end
end
if cls.__call then
local func = cls.__call
mt.__call = function (self_public, ...) return func(instances[self_public], ...) end
end
mt.__metatable = "unauthorized access attempt of wrapper object metatable"
inst_public_mts[cls] = mt
end
setmetatable(self_public, mt)
instances[self_public] = self_private
return self_public, not classes[wrapper] and self_private or nil -- so that constructions in private scopes have access to private instances
end
local function multi_inheritance(cls, key)
for _, base in ipairs(cls.__bases) do
if key:sub(1,1) ~= '_' or base.__protected[key] or key:sub(1,2) == '__' and key ~= '__name' and key ~= '__hash' then
local value = base[key]
if value ~= nil then
return value
end
end
end
end
local cls_mt = {
__index = multi_inheritance,
__tostring = objtostr--
}
local cls_private_mt = {
__call = constructor,
__index = function (cls_private, key)
if type(key) ~= 'string' then
warn(("AttributeWarning: index '%s' type should be string, %s given"):format(tostring(key), type(key)), 2)
elseif not_metamethods[key] then
error(("AttributeError: unauthorized read attempt of internal '%s'"):format(key), 2)
elseif key:find('[^_%w]') or key:find('^%d') then
warn(("AttributeWarning: index '%s' should be a valid Lua name"):format(key), 2)
end
local cls = _classes[cls_private]
local value = cls[key]
if not cls.__slots[key] then
local valueType = type(value)
if valueType == 'table' then
return mw.clone(value) -- because class attributes are immutable by default
elseif valueType == 'set' then --should list be clone or deep copy?
return value.copy()
end
end
return value
end,
__newindex = function (cls_private, key, value)
local cls = _classes[cls_private]
if not cls.__slots[key] and key ~= '__hash' then -- __slots should be valid, so no need to check key validity before
libraryUtil.checkTypeMultiForIndex(key, {'string'}) -- otherwise error message would not make sense
error(("AttributeError: write attempt {%s: %s} not expected by __slots"):format(key, tostring(value)), 2)
elseif key == '__hash' and cls.__hash ~= nil then
error("AttributeError: forbidden update attempt to immutable __hash", 2)
end
cls[key] = value
end,
__metatable = "unauthorized access attempt of wrapper object metatable"
}
local cls_public_mt = {
__call = constructor,
__index = function (cls_public, key)
if type(key) ~= 'string' then
warn(("AttributeWarning: index '%s' type should be string, %s given"):format(tostring(key), type(key)), 2)
elseif key:sub(1,1) == '_' then
error(("AttributeError: unauthorized read attempt of nonpublic '%s'"):format(key), 2)
elseif key:find('[^_%w]') or key:find('^%d') then
warn(("AttributeWarning: index '%s' should be a valid Lua name"):format(key), 2)
end
local value = _classes[classes[cls_public]][key]
local valueType = type(value)
if valueType == 'table' then
return mw.clone(value) -- all class attributes are immutable in the public scope
elseif valueType == 'set' then
return value.copy()
end
return value
end,
__newindex = function (cls_public, key, value)
libraryUtil.checkTypeMultiForIndex(key, {'string'}) -- otherwise error message...
error(("AttributeError: forbidden write attempt of {%s: %s}; a class is immutable in public scope"):format(key, tostring(value)), 2)
end,
__metatable = "unauthorized access attempt of wrapper object metatable"
}
local function default_hash(obj_private)
if obj_private.__hash == nil then -- not inheritable
obj_private.__hash = tonumber('0x' .. mw.hash.hashValue('fnv1a32', tostring(os.time() + math.random())))
end
return obj_private.__hash
end
rawset(_G, 'class', '')
function class(...)
local args = {...}
local cls = {} -- internal
local idx
if type(args[1]) == 'string' then
local __name = args[1]
if __name:find('%W') or __name:find('^%d') then
error(("ValueError: class '%s' must be a valid Lua name without '_'s"):format(__name), 2)
end
cls.__name = __name
idx = 2
else
idx = 1
end
cls.__bases = {}
for i = idx, #args-1 do
libraryUtil.checkType('class', i, args[i], 'class')
cls.__bases[#cls.__bases+1] = _classes[classes[args[i]]]
end
setmetatable(cls, cls_mt)
local kwargs = args[#args]
libraryUtil.checkType('class', #args, kwargs, 'table')
if kwargs.__name ~= nil or kwargs.__bases ~= nil then
error("ValueError: __name and unpacked __bases must be passed as optional first args to 'class'", 2)
end
cls.__slots = {}
local mt = {
__index = function (__slots, key) -- multi_inheritance
for _, base in ipairs(cls.__bases) do
if (key:sub(1,1) ~= '_' or base.__protected[key]) and base.__slots[key] then
return true
end
end
end
}
setmetatable(cls.__slots, mt)
if kwargs.__slots ~= nil then
libraryUtil.checkTypeForNamedArg('class', '__slots', kwargs.__slots, 'table')
for i, slot in ipairs(kwargs.__slots) do
libraryUtil.checkType('__slots', i, slot, 'string')
if slot:find('[^_%w]') or slot:find('^%d') then
error(("ValueError: invalid slot name '%s'"):format(slot), 2)
elseif slot:sub(1,2) == '__' then
error(("ValueError: slot '%s' has forbidden namespace"):format(slot), 2)
elseif rawget(cls.__slots, slot) then
warn(("ValueWarning: duplicated slot '%s'"):format(slot), 2)
elseif kwargs[slot] ~= nil or cls.__slots[slot] then
error(("ValueError: slot '%s' is predefined in class or allocated in __slots of bases"):format(slot), 2)
end
cls.__slots[slot] = true
end
kwargs.__slots = nil
end
cls.__protected = {}
mt = {
__index = function (__protected, key)
for _, base in ipairs(cls.__bases) do
if base.__protected[key] then
return true
end
end
end
}
setmetatable(cls.__protected, mt)
if kwargs.__protected ~= nil then
libraryUtil.checkTypeForNamedArg('class', '__protected', kwargs.__protected, 'table')
for i, key in ipairs(kwargs.__protected) do
libraryUtil.checkType('__protected', i, key, 'string')
if key:sub(1,1) ~= '_' or key:sub(2,2) == '_' then
error(("ValueError: the namespace of '%s' is not manually protectable"):format(key), 2)
elseif key == '_hash' then
error("ValueError: forbidden attempt to protect _hash which is not inheritable", 2)
elseif rawget(cls.__protected, key) then
warn(("ValueWarning: duplicated '%s' in __protected"):format(key), 2)
elseif cls.__protected[key] then
error(("ValueError: '%s' is already allocated in __protected of bases"):format(key), 2)
elseif kwargs[key] == nil then -- key validity will be checked further ahead
error(("ValueError: attempt to protect undefined '%s'"):format(key), 2)
end
cls.__protected[key] = true
end
kwargs.__protected = nil
end
if kwargs.__methods ~= nil then
error("ValueError: __classmethods and __staticmethods should be passed as optional attributes instead of __methods", 2)
elseif kwargs.hash ~= nil or kwargs.__hash ~= nil then
error("ValueError: forbidden attempt to define hash or __hash which are set internally", 2)
end
cls.__normalmethods = {} -- used in instance write methods
mt = {
__index = function (__normalmethods, key)
return cls.__methods[key] or cls.__classmethods[key] or cls.__staticmethods[key]
end
}
setmetatable(cls.__normalmethods, mt)
local cls_private = {} -- wrapper
setmetatable(cls_private, cls_private_mt)
_classes[cls_private] = cls
cls.__classmethods = {}
mt = {
__index = function (__classmethods, key)
for _, base in ipairs(cls.__bases) do
if (key:sub(1,1) ~= '_' or base.__protected[key]) and base.__classmethods[key] then
return true
end
end
end
}
setmetatable(cls.__classmethods, mt)
if kwargs.__classmethods ~= nil then
libraryUtil.checkTypeForNamedArg('class', '__classmethods', kwargs.__classmethods, 'table')
for i, key in ipairs(kwargs.__classmethods) do
libraryUtil.checkType('__classmethods', i, key, 'string')
if key:find('[^_%w]') or key:find('^%d') then
error(("ValueError: invalid classmethod name '%s'"):format(key), 2)
elseif key:sub(1,2) == '__' then
error(("ValueError: classmethod '%s' has forbidden namespace"):format(key), 2)
elseif key == '_hash' then
error("ValueError: invalid classmethod _hash, classes have their own hash classmethod", 2)
elseif rawget(cls.__classmethods, key) then
error(("ValueError: duplicated '%s' in __classmethods"):format(key), 2)
elseif not cls.__classmethods[key] and cls[key] ~= nil then
error(("ValueError: forbidden attempt to convert '%s' non-classmethod to classmethod"):format(key), 2)
end
libraryUtil.checkTypeForNamedArg('class', key, kwargs[key], 'function')
cls.__classmethods[key] = true
local func = kwargs[key]
cls[key] = function (...) return func(cls_private, ...) end
kwargs[key] = nil
end
kwargs.__classmethods = nil
end
cls.__normalmethods.hash = true
cls.hash = function () return default_hash(cls_private) end -- classes are always hashable so this is independent from _hash
cls.hash()
-- see https://docs.python.org/3/reference/datamodel.html#object.__hash__
if kwargs.__eq == nil then
if kwargs._hash then
warn("ValueWarning: _hash is defined but not __eq, which is expected", 2)
elseif kwargs._hash == false then
kwargs._hash = nil
else
kwargs._hash = default_hash
end
end
if kwargs._hash ~= nil then
libraryUtil.checkTypeForNamedArg('class', '_hash', kwargs._hash, 'function')
cls.__normalmethods._hash = true
cls._hash = kwargs._hash
kwargs._hash = nil
end
cls.__staticmethods = {}
mt = {
__index = function (__staticmethods, key)
for _, base in ipairs(cls.__bases) do
if (key:sub(1,1) ~= '_' or base.__protected[key]) and base.__staticmethods[key] then
return true
end
end
end
}
setmetatable(cls.__staticmethods, mt)
if kwargs.__staticmethods ~= nil then
libraryUtil.checkTypeForNamedArg('class', '__staticmethods', kwargs.__staticmethods, 'table')
for i, key in ipairs(kwargs.__staticmethods) do
libraryUtil.checkType('__staticmethods', i, key, 'string')
if key:sub(1,2) == '__' then
error(("ValueError: staticmethod '%s' has forbidden namespace"):format(key), 2)
elseif rawget(cls.__staticmethods, key) then
warn(("ValueWarning: duplicated staticmethod '%s'"):format(key), 2)
elseif not cls.__staticmethods[key] and cls[key] ~= nil then
error(("ValueError: forbidden attempt to convert '%s' non-staticmethod to staticmethod"):format(key), 2)
end
libraryUtil.checkTypeForNamedArg('class', key, kwargs[key], 'function')
cls.__staticmethods[key] = true
end
kwargs.__staticmethods = nil
end
cls.__methods = {}
for _, base in ipairs(cls.__bases) do
for key in pairs(base.__methods) do
if key:sub(1,1) ~= '_' or base.__protected[key] then
cls.__methods[key] = true
end
end
end
local valid = false
for key, val in pairs(kwargs) do
if type(key) ~= 'string' then
error(("TypeError: invalid attribute name '%s' (string expected, got %s)"):format(tostring(key), type(key)), 2)
elseif key:find('[^_%w]') or key:find('^%d') then
error(("ValueError: invalid attribute name '%s'"):format(key), 2)
elseif key:sub(1,2) == '__' and not una_metamethods[key] and not bin_metamethods[key] and not oth_metamethods[key] then
error(("ValueError: unrecognized metamethod or unauthorized internal attribute {%s: %s}"):format(key, tostring(val)), 2)
end
cls[key] = val
if type(val) == 'function' then
if not cls.__staticmethods[key] and key:sub(1,2) ~= '__' then -- classmethods and _hash were already removed from kwargs
cls.__methods[key] = true
end
if key ~= '__init' then -- __init does not qualify to a functional/proper class
valid = true
end
end
end
if not valid then
error("ValueError: a (sub)class must have at least one functional method", 2)
end
local cls_public = {}
setmetatable(cls_public, cls_public_mt)
classes[cls_public] = cls_private
return cls_public, cls_private
end
local function rissubclass2(class, classinfo)
if class == classinfo then
return true
end
for _, base in ipairs(class.__bases) do
if rissubclass2(base, classinfo) then
return true
end
end
return false
end
local function rissubclass1(class, classinfo, parent, level)
libraryUtil.checkTypeMulti(parent, 2, classinfo, {'class', 'table'}, level)
if classes[classinfo] then
return rissubclass2(class, _classes[classes[classinfo]])
elseif _classes[classinfo] then
return rissubclass2(class, _classes[classinfo])
end
for i = 1, #classinfo do
if rissubclass1(class, classinfo[i], parent, level+1) then
return true
end
end
return false
end
rawset(_G, 'issubclass', '')
function issubclass(class, classinfo)
libraryUtil.checkType('issubclass', 1, class, 'class')
class = classes[class] or class
return rissubclass1(_classes[class], classinfo, 'issubclass', 4)
end
rawset(_G, 'isinstance', '')
function isinstance(instance, classinfo)
if not instances[instance] and not _instances[instance] then -- because named (ClassName) instances would fail with checkType
if classinfo == nil then
return false
end
error(("TypeError: bad argument #1 to 'isinstance' (instance expected, got %s)"):format(type(instance)), 2)
end
if classinfo == nil then
return true
end
instance = instances[instance] or instance
return rissubclass1(_classes[instance.__class], classinfo, 'isinstance', 4)
end
local _type = type
type = function (value)
local t = _type(value)
if t == 'table' then
if classes[value] or _classes[value] then
return 'class'
elseif instances[value] or _instances[value] then
value = instances[value] or value
return _classes[value.__class].__name or 'instance' -- should __name be directly readable instead?
end
end
return t
end
libraryUtil.checkType = function (name, argIdx, arg, expectType, nilOk, level)
if arg == nil and nilOk then
return
end
if type(arg) ~= expectType then
error(("TypeError: bad argument #%d to '%s' (%s expected, got %s)"):format(argIdx, name, expectType, type(arg)), level or 3)
end
end
libraryUtil.checkTypeMulti = function (name, argIdx, arg, expectTypes, level)
local argType = type(arg)
for _, expectType in ipairs(expectTypes) do
if argType == expectType then
return
end
end
local n = #expectTypes
local typeList
if n > 1 then
typeList = table.concat(expectTypes, ', ', 1, n-1) .. ' or ' .. expectTypes[n]
else
typeList = expectTypes[1]
end
error(("TypeError: bad argument #%d to '%s' (%s expected, got %s)"):format(argIdx, name, typeList, type(arg)), level or 3)
end
libraryUtil.checkTypeForIndex = function (index, value, expectType, level)
if type(value) ~= expectType then
error(("TypeError: value for index '%s' must be %s, %s given"):format(index, expectType, type(value)), level or 3)
end
end
libraryUtil.checkTypeMultiForIndex = function (index, expectTypes, level)
local indexType = type(index)
for _, expectType in ipairs(expectTypes) do
if indexType == expectType then
return
end
end
local n = #expectTypes
local typeList
if n > 1 then
typeList = table.concat(expectTypes, ', ', 1, n-1) .. ' or ' .. expectTypes[n]
else
typeList = expectTypes[1]
end
error(("TypeError: index '%s' must be %s, %s given"):format(index, typeList, type(index)), level or 3)
end
libraryUtil.checkTypeForNamedArg = function (name, argName, arg, expectType, nilOk, level)
if arg == nil and nilOk then
return
end
if type(arg) ~= expectType then
error(("TypeError: bad named argument %s to '%s' (%s expected, got %s)"):format(argName, name, expectType, type(arg)), level or 3)
end
end
libraryUtil.checkTypeMultiForNamedArg = function (name, argName, arg, expectTypes, level)
local argType = type(arg)
for _, expectType in ipairs(expectTypes) do
if argType == expectType then
return
end
end
local n = #expectTypes
local typeList
if n > 1 then
typeList = table.concat(expectTypes, ', ', 1, n-1) .. ' or ' .. expectTypes[n]
else
typeList = expectTypes[1]
end
error(("TypeError: bad named argument %s to '%s' (%s expected, got %s)"):format(argName, name, typeList, type(arg)), level or 3)
end
local function try_parser(...)
local args = {...}
libraryUtil.checkType('try', 1, args[1], 'function', nil, 4)
local try_clause = args[1]
if args[2] ~= 'except' then
error("SyntaxError: missing required except clause", 3)
end
local except_clauses = {}
local i = 3
local argType, exceptionTypes = nil, {string=1, table=1}
repeat
libraryUtil.checkTypeMulti('try', i, args[i], {'string', 'table', 'function'}, 4)
argType = type(args[i])
if exceptionTypes[argType] then
libraryUtil.checkType('try', i+1, args[i+1], 'function', nil, 4)
except_clauses[#except_clauses+1] = {exceptions={}, handler=args[i+1]}
if argType == 'string' then
except_clauses[#except_clauses].exceptions[args[i]] = true
else
for _, exception in ipairs(args[i]) do
if type(exception) ~= 'string' then
error(("TypeError: invalid exception type in except (string expected, got %s)"):format(type(exception)), 3)
end
except_clauses[#except_clauses].exceptions[exception] = true
end
end
i = i + 3
else
except_clauses[#except_clauses+1] = {exceptions={}, handler=args[i]}
i = i + 2
break
end
until args[i-1] ~= 'except'
local else_clause, finally_clause
if args[i-1] == 'except' then
error("SyntaxError: except after except clause without specific exceptions, which should be the last", 3)
elseif args[i-1] == 'else' then
libraryUtil.checkType('try', i, args[i], 'function', nil, 4)
else_clause = args[i]
i = i + 2
end
if args[i-1] == 'finally' then
libraryUtil.checkType('try', i, args[i], 'function', nil, 4)
finally_clause = args[i]
i = i + 2
end
if args[i-1] ~= nil then
error(("SyntaxError: unexpected arguments #%d–#%d to 'try'"):format(i-1, #args), 3)
end
return try_clause, except_clauses, else_clause, finally_clause
end
rawset(_G, 'try', '')
function try(...)
local try_clause, except_clauses, else_clause, finally_clause = try_parser(...)
local function errhandler(message)
local errtype = mw.text.split(message, ':')[1]
local handled = false
for _, except in ipairs(except_clauses) do
if except.exceptions[errtype] or #except.exceptions == 0 then
handled, message = pcall(except.handler)
break
end
end
if not handled then
return message
end
end
local success, message = xpcall(try_clause, errhandler)
if else_clause and success then
success, message = pcall(else_clause)
end
if finally_clause then
finally_clause()
end
if not success and message then
error(message, 0) -- what should be the level?
end
end
local classes_proxy, instances_proxy = {}, {}
setmetatable(classes_proxy, {
__index = classes, -- create function to limit access only to modules which define the requested classes and testcases pages
__newindex = function () error("KeyError: forbidden write attempt to classes proxy", 2) end,
__metatable = "unauthorized access attempt of classes proxy metatable"
})
setmetatable(instances_proxy, {
__index = instances, -- create function to limit access only to testcases pages
__newindex = function () error("KeyError: forbidden write attempt to instances proxy", 2) end,
__metatable = "unauthorized access attempt of instances proxy metatable"
})
return {classes_proxy, instances_proxy}
0oq7fjezzr2g68e16eyy3c7nevys1es
Module:Warning
828
53332
309752
2026-09-26T17:39:08Z
Isma4l
41797
Bog cusub: local libraryUtil = require('libraryUtil') local wrapper = "%s" -- wikitext formatting local msg_loc = "Lua warning in %s at line %d: %s." local msg = "Lua warning: %s." return function (message, level) libraryUtil.checkType('warn', 2, level, 'number', true) level = level or 1 if level > 0 then local _, location = pcall(error, '', level+2) if location ~= '' then location = mw.text.split(location:sub(1,-3), ':%f[%d]') message = msg_loc:format(location[1], location[2...
309752
Scribunto
text/plain
local libraryUtil = require('libraryUtil')
local wrapper = "%s" -- wikitext formatting
local msg_loc = "Lua warning in %s at line %d: %s."
local msg = "Lua warning: %s."
return function (message, level)
libraryUtil.checkType('warn', 2, level, 'number', true)
level = level or 1
if level > 0 then
local _, location = pcall(error, '', level+2)
if location ~= '' then
location = mw.text.split(location:sub(1,-3), ':%f[%d]')
message = msg_loc:format(location[1], location[2], message)
else
message = msg:format(message)
end
else
message = msg:format(message)
end
mw.addWarning(wrapper:format(message))
end
6n5nxfk4xtrlul0szoxeogpa9uj1ggn
Template:Bar stacked
10
53333
309753
2026-09-26T17:40:05Z
Isma4l
41797
Bog cusub: <includeonly> <tr {{#if:{{{id|}}}|class="mw-collapsible {{#switch:{{{collapsed}}}|yes|y|1=mw-collapsed}}" id="mw-customcollapsible-{{{id}}}"}}> <td {{#if:{{{note1|}}}||colspan="2"}} style="padding-left:0.4em;padding-right:0.4em;text-align:{{#if:{{{align|}}}|{{#switch:{{#invoke:String|pos|{{{align}}}|1}}|l=left|c=center|r=right|d=left}}|left}}">{{#if:1|{{{1|}}}}}</td> {{#if:{{{note1|}}}|<td style="padding-left:0.4em;padding-right:0.4em;text-align:{{#if:{{{align|}}}|{{#switch:{{#in...
309753
wikitext
text/x-wiki
<includeonly>
<tr {{#if:{{{id|}}}|class="mw-collapsible {{#switch:{{{collapsed}}}|yes|y|1=mw-collapsed}}" id="mw-customcollapsible-{{{id}}}"}}>
<td {{#if:{{{note1|}}}||colspan="2"}} style="padding-left:0.4em;padding-right:0.4em;text-align:{{#if:{{{align|}}}|{{#switch:{{#invoke:String|pos|{{{align}}}|1}}|l=left|c=center|r=right|d=left}}|left}}">{{#if:1|{{{1|}}}}}</td>
{{#if:{{{note1|}}}|<td style="padding-left:0.4em;padding-right:0.4em;text-align:{{#if:{{{align|}}}|{{#switch:{{#invoke:String|pos|{{{align}}}|2}}|l=left|c=center|r=right|d=right}}|right}}">{{{note1}}}</td>}}
<td style="border-left:1px solid silver;border-right:1px solid silver">{{#ifeq:{{#if:1|{{{4|0}}}}}|0||
<div {{#if:{{{title1|}}}|title="{{{title1}}}"}} style="background:{{{3|gray}}};float:left;overflow:hidden;width:{{#expr:{{#if:1|{{{4}}}}}round2}}px">​</div>}}{{#ifeq:{{#if:1|{{{6|0}}}}}|0||
<div {{#if:{{{title2|}}}|title="{{{title2}}}"}} style="background:{{{5|gray}}};float:left;overflow:hidden;width:{{#expr:{{#if:1|{{{6}}}}}round2}}px">​</div>}}{{#ifeq:{{#if:1|{{{8|0}}}}}|0||
<div {{#if:{{{title3|}}}|title="{{{title3}}}"}} style="background:{{{7|gray}}};float:left;overflow:hidden;width:{{#expr:{{#if:1|{{{8}}}}}round2}}px">​</div>}}{{#ifeq:{{#if:1|{{{10|0}}}}}|0||
<div {{#if:{{{title4|}}}|title="{{{title4}}}"}} style="background:{{{9|gray}}};float:left;overflow:hidden;width:{{#expr:{{#if:1|{{{10}}}}}round2}}px">​</div>}}{{#ifeq:{{#if:1|{{{12|0}}}}}|0||
<div {{#if:{{{title5|}}}|title="{{{title5}}}"}} style="background:{{{11|gray}}};float:left;overflow:hidden;width:{{#expr:{{#if:1|{{{12}}}}}round2}}px">​</div>}}
</td>
<td {{#if:{{{note2|}}}||colspan="2"}} style="padding-left:0.4em;padding-right:0.4em;text-align:{{#if:{{{align|}}}|{{#switch:{{#invoke:String|pos|{{{align}}}|3}}|l=left|c=center|r=right|d=left}}|left}}">{{#if:1|{{{2|}}}}}</td>
{{#if:{{{note2|}}}|<td style="padding-left:0.4em;padding-right:0.4em;text-align:{{#if:{{{align|}}}|{{#switch:{{#invoke:String|pos|{{{align}}}|4}}|l=left|c=center|r=right|d=right}}|right}}">{{{note2}}}</td>}}
</tr>
</includeonly><noinclude>{{Documentation}}
{{Graph, chart and plot formatting and function templates}}
</noinclude>
0y621fcw6q1a37sbf5sgmh1rv31wnss
309754
309753
2026-09-26T17:40:59Z
Isma4l
41797
309754
wikitext
text/x-wiki
<includeonly>
<tr {{#if:{{{id|}}}|class="mw-collapsible {{#switch:{{{collapsed}}}|yes|y|1=mw-collapsed}}" id="mw-customcollapsible-{{{id}}}"}}>
<td {{#if:{{{note1|}}}||colspan="2"}} style="padding-left:0.4em;padding-right:0.4em;text-align:{{#if:{{{align|}}}|{{#switch:{{#invoke:String|pos|{{{align}}}|1}}|l=left|c=center|r=right|d=left}}|left}}">{{#if:1|{{{1|}}}}}</td>
{{#if:{{{note1|}}}|<td style="padding-left:0.4em;padding-right:0.4em;text-align:{{#if:{{{align|}}}|{{#switch:{{#invoke:String|pos|{{{align}}}|2}}|l=left|c=center|r=right|d=right}}|right}}">{{{note1}}}</td>}}
<td style="border-left:1px solid silver;border-right:1px solid silver">{{#ifeq:{{#if:1|{{{4|0}}}}}|0||
<div {{#if:{{{title1|}}}|title="{{{title1}}}"}} style="background:{{{3|gray}}};float:left;overflow:hidden;width:{{#expr:{{#if:1|{{{4}}}}}round2}}px">​</div>}}{{#ifeq:{{#if:1|{{{6|0}}}}}|0||
<div {{#if:{{{title2|}}}|title="{{{title2}}}"}} style="background:{{{5|gray}}};float:left;overflow:hidden;width:{{#expr:{{#if:1|{{{6}}}}}round2}}px">​</div>}}{{#ifeq:{{#if:1|{{{8|0}}}}}|0||
<div {{#if:{{{title3|}}}|title="{{{title3}}}"}} style="background:{{{7|gray}}};float:left;overflow:hidden;width:{{#expr:{{#if:1|{{{8}}}}}round2}}px">​</div>}}{{#ifeq:{{#if:1|{{{10|0}}}}}|0||
<div {{#if:{{{title4|}}}|title="{{{title4}}}"}} style="background:{{{9|gray}}};float:left;overflow:hidden;width:{{#expr:{{#if:1|{{{10}}}}}round2}}px">​</div>}}{{#ifeq:{{#if:1|{{{12|0}}}}}|0||
<div {{#if:{{{title5|}}}|title="{{{title5}}}"}} style="background:{{{11|gray}}};float:left;overflow:hidden;width:{{#expr:{{#if:1|{{{12}}}}}round2}}px">​</div>}}
</td>
<td {{#if:{{{note2|}}}||colspan="2"}} style="padding-left:0.4em;padding-right:0.4em;text-align:{{#if:{{{align|}}}|{{#switch:{{#invoke:String|pos|{{{align}}}|3}}|l=left|c=center|r=right|d=left}}|left}}">{{#if:1|{{{2|}}}}}</td>
{{#if:{{{note2|}}}|<td style="padding-left:0.4em;padding-right:0.4em;text-align:{{#if:{{{align|}}}|{{#switch:{{#invoke:String|pos|{{{align}}}|4}}|l=left|c=center|r=right|d=right}}|right}}">{{{note2}}}</td>}}
</tr>
</includeonly><noinclude>{{Documentation}}
</noinclude>
qa7iml0bdja3xf459rjdy6frfvot8su
Template:Brick chart
10
53334
309755
2026-09-26T17:41:30Z
Isma4l
41797
Bog cusub: <includeonly>{{#ifeq:{{{thumb|}}}|center|<div class="center">}}<div class="BrickChartTemplate thumb t{{#switch:{{{thumb|}}}|center|none=none|left=left|#default=right}}" {{#if:{{{style|}}}|style="{{{style|}}}"}}> <div class="thumbinner" style="width:{{#expr:{{{width|180}}}+2}}px"> <div style="position:relative; width:{{{width|180}}}px; height:{{#expr:ceil({{{total|100}}}/{{{stride|10}}})*{{{width|180}}}/{{{stride|10}}}}}px; overflow:hidden; background:white; border:solid 1px silve...
309755
wikitext
text/x-wiki
<includeonly>{{#ifeq:{{{thumb|}}}|center|<div class="center">}}<div class="BrickChartTemplate thumb t{{#switch:{{{thumb|}}}|center|none=none|left=left|#default=right}}" {{#if:{{{style|}}}|style="{{{style|}}}"}}>
<div class="thumbinner" style="width:{{#expr:{{{width|180}}}+2}}px">
<div style="position:relative;
width:{{{width|180}}}px;
height:{{#expr:ceil({{{total|100}}}/{{{stride|10}}})*{{{width|180}}}/{{{stride|10}}}}}px;
overflow:hidden;
background:white;
border:solid 1px silver
">
<div style="width:{{{width|180}}}px;height:{{{width|180}}}px;font-size:{{#expr:{{{width|180}}}/{{{stride|10}}}}}px;text-align:left">
{{#if:{{{value1|}}}
| {{Brick chart/{{{style|Bricks}}}
| offset = 0
| count = ({{{value1|0}}}) / {{{brick_size|1}}}
| color = {{{color1|red}}}
| stride = {{{stride|10}}}
}}
}}{{#if:{{{value2|}}}
| {{Brick chart/{{{style|Bricks}}}
| offset = ({{{value1|0}}}) / {{{brick_size|1}}}
| count = ( {{{value2}}} ) / {{{brick_size|1}}}
| color = {{{color2|green}}}
| stride = {{{stride|10}}}
}}
}}{{#if:{{{value3|}}}
| {{Brick chart/{{{style|Bricks}}}
| offset = ({{{value1|0}}}+{{{value2|0}}} ) / {{{brick_size|1}}}
| count = ( {{{value3}}} ) / {{{brick_size|1}}}
| color = {{{color3|blue}}}
| stride = {{{stride|10}}}
}}
}}{{#if:{{{value4|}}}
| {{Brick chart/{{{style|Bricks}}}
| offset = ({{{value1|0}}}+{{{value2|0}}}+{{{value3|0}}} ) / {{{brick_size|1}}}
| count = ( {{{value4}}} ) / {{{brick_size|1}}}
| color = {{{color4|yellow}}}
| stride = {{{stride|10}}}
}}
}}{{#if:{{{value5|}}}
| {{Brick chart/{{{style|Bricks}}}
| offset = ({{{value1|0}}}+{{{value2|0}}}+{{{value3|0}}}+{{{value4|0}}} ) / {{{brick_size|1}}}
| count = ( {{{value5}}} ) / {{{brick_size|1}}}
| color = {{{color5|magenta}}}
| stride = {{{stride|10}}}
}}
}}{{#if:{{{value6|}}}
| {{Brick chart/{{{style|Bricks}}}
| offset = ({{{value1|0}}}+{{{value2|0}}}+{{{value3|0}}}+{{{value4|0}}}+{{{value5|0}}} ) / {{{brick_size|1}}}
| count = ( {{{value6}}} ) / {{{brick_size|1}}}
| color = {{{color6|cyan}}}
| stride = {{{stride|10}}}
}}
}}{{#if:{{{value7|}}}
| {{Brick chart/{{{style|Bricks}}}
| offset = ({{{value1|0}}}+{{{value2|0}}}+{{{value3|0}}}+{{{value4|0}}}+{{{value5|0}}}+{{{value6|0}}} ) / {{{brick_size|1}}}
| count = ( {{{value7}}} ) / {{{brick_size|1}}}
| color = {{{color7|brown}}}
| stride = {{{stride|10}}}
}}
}}{{#if:{{{value8|}}}
| {{Brick chart/{{{style|Bricks}}}
| offset = ( {{{value1|0}}}+{{{value2|0}}}+{{{value3|0}}}+{{{value4|0}}}+{{{value5|0}}}+{{{value6|0}}}+{{{value7|0}}} ) / {{{brick_size|1}}}
| count = ( {{{value8}}} ) / {{{brick_size|1}}}
| color = {{{color8|orange}}}
| stride = {{{stride|10}}}
}}
}}{{#if:{{{value9|}}}
| {{Brick chart/{{{style|Bricks}}}
| offset = ({{{value1|0}}}+{{{value2|0}}}+{{{value3|0}}}+{{{value4|0}}}+{{{value5|0}}}+{{{value6|0}}}+{{{value7|0}}}+{{{value8|0}}} ) / {{{brick_size|1}}}
| count = ( {{{value9}}} ) / {{{brick_size|1}}}
| color = {{{color9|purple}}}
| stride = {{{stride|10}}}
}}
}}
</div>
</div>
<div class="thumbcaption" {{#ifeq:{{{thumb|}}}|center|style="text-align:left"}}>
{{{caption|}}}
<div style="margin:{{{legend_margin|3px 0 0 10px}}};">
{{#if:{{{value1|}}}|{{legend|{{{color1|red}}}|{{{label1|}}} - {{{value1}}} {{{unit|%}}}}}
}}{{#if:{{{value2|}}}|{{legend|{{{color2|green}}}|{{{label2|}}} - {{{value2}}} {{{unit|%}}}}}
}}{{#if:{{{value3|}}}|{{legend|{{{color3|blue}}}|{{{label3|}}} - {{{value3}}} {{{unit|%}}}}}
}}{{#if:{{{value4|}}}|{{legend|{{{color4|yellow}}}|{{{label4|}}} - {{{value4}}} {{{unit|%}}}}}
}}{{#if:{{{value5|}}}|{{legend|{{{color5|magenta}}}|{{{label5|}}} - {{{value5}}} {{{unit|%}}}}}
}}{{#if:{{{value6|}}}|{{legend|{{{color6|cyan}}}|{{{label6|}}} - {{{value6}}} {{{unit|%}}}}}
}}{{#if:{{{value7|}}}|{{legend|{{{color7|brown}}}|{{{label7|}}} - {{{value7}}} {{{unit|%}}}}}
}}{{#if:{{{value8|}}}|{{legend|{{{color8|orange}}}|{{{label8|}}} - {{{value8}}} {{{unit|%}}}}}
}}{{#if:{{{value9|}}}|{{legend|{{{color9|purple}}}|{{{label9|}}} - {{{value9}}} {{{unit|%}}}}}
}}{{#ifexpr:({{{value1|0}}}+{{{value2|0}}}+{{{value3|0}}}+{{{value4|0}}}+{{{value5|0}}}+{{{value6|0}}}+{{{value7|0}}}+{{{value8|0}}}+{{{value9|0}}})<{{{total|100}}}|{{legend|white|outline=silver|{{{other|Other}}} - {{#expr:{{{total|100}}}-({{{value1|0}}}+{{{value2|0}}}+{{{value3|0}}}+{{{value4|0}}}+{{{value5|0}}}+{{{value6|0}}}+{{{value7|0}}}+{{{value8|0}}}+{{{value9|0}}})}} {{{unit|%}}}}}}}
</div><!--end div margin-->
</div>
</div>
</div>{{#ifeq:{{{thumb|}}}|center|</div>}}</includeonly><noinclude>
{{Documentation}}
</noinclude>
i08iexv5mherg34nf58c352xielnd2a
Template:Data bars
10
53335
309756
2026-09-26T17:42:05Z
Isma4l
41797
Bog cusub: <includeonly>{| align="{{{align|{{{float|none}}}}}}" cellspacing="8" cellpadding="0" class="plainlinks" {{#if:{{#ifexpr:1*{{{style|1}}}}}||{{#ifexpr:{{{style|1}}}*{{#expr:{{{style|1}}}<>5}}*{{#expr:{{{style|1}}}<>6}}*{{#expr:{{{style|1}}}<>9}}*{{#expr:{{{style|1}}}<>10}}*{{#expr:{{{style|1}}}<>13}}*{{#expr:{{{style|1}}}<>14}}>2|style="background:#eee; border-left:2px solid #ccc; border-top:2px solid #ccc; border-right:2px solid #777; border-bottom:2px solid #777;"|}}}} {{#if:{{{t...
309756
wikitext
text/x-wiki
<includeonly>{| align="{{{align|{{{float|none}}}}}}" cellspacing="8" cellpadding="0" class="plainlinks" {{#if:{{#ifexpr:1*{{{style|1}}}}}||{{#ifexpr:{{{style|1}}}*{{#expr:{{{style|1}}}<>5}}*{{#expr:{{{style|1}}}<>6}}*{{#expr:{{{style|1}}}<>9}}*{{#expr:{{{style|1}}}<>10}}*{{#expr:{{{style|1}}}<>13}}*{{#expr:{{{style|1}}}<>14}}>2|style="background:#eee; border-left:2px solid #ccc; border-top:2px solid #ccc; border-right:2px solid #777; border-bottom:2px solid #777;"|}}}}
{{#if:{{{title|}}}|
{{!}} colspan="2" align="center" {{!}} '''{{{title}}}'''{{#if:{{{subtitle|}}}|<br/><sup>{{{subtitle}}}</sup>|}}|}}
{{#if:{{{{{#expr:3+(2*{{{columns|1}}})}}|}}}||
{{!}}-
{{!}} style="text-align:center;" {{!}} {{{{{#expr:2+{{{columns|1}}}}}|}}}}}
|-
|
{| {{#if:{{#ifexpr:1*{{{style|1}}}}}||{{#ifexpr:{{#expr:{{{style|1}}} / 2 round 0 }}*2={{{style|1}}}|cellspacing="8"|}}}} style="text-align:center;border-collapse:collapse;{{#if:{{#ifexpr:1*{{{style|1}}}}}||{{#ifexpr:{{{style|1}}}*{{#expr:{{{style|1}}}<>5}}*{{#expr:{{{style|1}}}<>6}}*{{#expr:{{{style|1}}}<>9}}*{{#expr:{{{style|1}}}<>10}}*{{#expr:{{{style|1}}}<>13}}*{{#expr:{{{style|1}}}<>14}}>2|background:#eee; border-left:1px solid #777; border-top:1px solid #777; border-right:1px solid #ccc; border-bottom:1px solid #ccc;|}}}}"
| style="text-align:center;" {{#if:{{#ifexpr:1*{{{style|1}}}}}||{{#ifexpr:{{{style|1}}}*{{#expr:{{{style|1}}}<>5}}*{{#expr:{{{style|1}}}<>6}}*{{#expr:{{{style|1}}}<>9}}*{{#expr:{{{style|1}}}<>10}}*{{#expr:{{{style|1}}}<>13}}*{{#expr:{{{style|1}}}<>14}}>2|style="padding:8px 8px 8px 8px;"|}}}} |
{| cellspacing="0" cellpadding="2"
|- style="vertical-align:bottom;"
<!-------------
-- Column 1 --
-------------->
{{#if:{{#ifexpr:1*{{{style|1}}}}}||{{#ifexpr:{{#expr:{{{style|1}}} / 2 round 0 }}*2={{{style|1}}}|
! style="text-align:right;vertical-align:bottom;padding-right:4px;" {{!}} {{{1|xxx}}}|}}}}
{{Data bars/column
| detailed = {{#if:{{#ifexpr:1*{{{style|1}}}}}||{{#ifexpr:{{{style|1}}}<5||{{#ifexpr:{{{style|1}}}>8|{{#ifexpr:{{{style|1}}}<13||true}}|true}}}}}}
| scale={{#if:{{#ifexpr:1*{{{scale|1}}}}}|1|{{{scale|1}}}}}
| style={{#if:{{#ifexpr:1*{{{style|1}}}}}|1|{{{style|1}}}}}
| color1 = {{{{{#expr:1+{{{columns|1}}}}}|#ddd}}}
| color2 = {{{{{#expr:3+(2*{{{columns|1}}})}}|#ddd}}}
| color3 = {{{{{#expr:5+(3*{{{columns|1}}})}}|#ddd}}}
| color4 = {{{{{#expr:7+(4*{{{columns|1}}})}}|#ddd}}}
| color5 = {{{{{#expr:9+(5*{{{columns|1}}})}}|#ddd}}}
| color6 = {{{{{#expr:11+(6*{{{columns|1}}})}}|#ddd}}}
| color7 = {{{{{#expr:13+(7*{{{columns|1}}})}}|#ddd}}}
| color8 = {{{{{#expr:15+(8*{{{columns|1}}})}}|#ddd}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:{{{columns|1}}} + 3}}|}}}}}|0|{{{{{#expr:{{{columns|1}}} + 3}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:2*{{{columns|1}}}+5}}|}}}}}|0|{{{{{#expr:2*{{{columns|1}}}+5}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:3*{{{columns|1}}}+7}}|}}}}}|0|{{{{{#expr:3*{{{columns|1}}}+7}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:4*{{{columns|1}}}+9}}|}}}}}|0|{{{{{#expr:4*{{{columns|1}}}+9}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:5*{{{columns|1}}}+11}}|}}}}}|0|{{{{{#expr:5*{{{columns|1}}}+11}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:6*{{{columns|1}}}+13}}|}}}}}|0|{{{{{#expr:6*{{{columns|1}}}+13}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:7*{{{columns|1}}}+15}}|}}}}}|0|{{{{{#expr:7*{{{columns|1}}}+15}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:8*{{{columns|1}}}+17}}|}}}}}|0|{{{{{#expr:8*{{{columns|1}}}+17}}|0}}}}}
}}
<!-------------
-- Column 2 --
-------------->{{#ifexpr:{{{columns|1}}}>1|
{{#if:{{#ifexpr:1*{{{style|1}}}}}||{{#ifexpr:{{#expr:{{{style|1}}} / 2 round 0 }}*2={{{style|1}}}|
! style="text-align:right;vertical-align:bottom;padding-right:4px;" {{!}} {{{2|xxx}}}|}}}}
{{Data bars/column
| detailed = {{#if:{{#ifexpr:1*{{{style|1}}}}}||{{#ifexpr:{{{style|1}}}<5||{{#ifexpr:{{{style|1}}}>8|{{#ifexpr:{{{style|1}}}<13||true}}|true}}}}}}
| scale={{#if:{{#ifexpr:1*{{{scale|1}}}}}|1|{{{scale|1}}}}}
| style={{#if:{{#ifexpr:1*{{{style|1}}}}}|1|{{{style|1}}}}}
| color1 = {{{{{#expr:1+{{{columns|1}}}}}|#ddd}}}
| color2 = {{{{{#expr:3+(2*{{{columns|1}}})}}|#ddd}}}
| color3 = {{{{{#expr:5+(3*{{{columns|1}}})}}|#ddd}}}
| color4 = {{{{{#expr:7+(4*{{{columns|1}}})}}|#ddd}}}
| color5 = {{{{{#expr:9+(5*{{{columns|1}}})}}|#ddd}}}
| color6 = {{{{{#expr:11+(6*{{{columns|1}}})}}|#ddd}}}
| color7 = {{{{{#expr:13+(7*{{{columns|1}}})}}|#ddd}}}
| color8 = {{{{{#expr:15+(8*{{{columns|1}}})}}|#ddd}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:{{{columns|1}}} + 4}}|}}}}}|0|{{{{{#expr:{{{columns|1}}} + 4}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:2*{{{columns|1}}}+6}}|}}}}}|0|{{{{{#expr:2*{{{columns|1}}}+6}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:3*{{{columns|1}}}+8}}|}}}}}|0|{{{{{#expr:3*{{{columns|1}}}+8}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:4*{{{columns|1}}}+10}}|}}}}}|0|{{{{{#expr:4*{{{columns|1}}}+10}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:5*{{{columns|1}}}+12}}|}}}}}|0|{{{{{#expr:5*{{{columns|1}}}+12}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:6*{{{columns|1}}}+14}}|}}}}}|0|{{{{{#expr:6*{{{columns|1}}}+14}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:7*{{{columns|1}}}+16}}|}}}}}|0|{{{{{#expr:7*{{{columns|1}}}+16}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:8*{{{columns|1}}}+18}}|}}}}}|0|{{{{{#expr:8*{{{columns|1}}}+18}}|0}}}}}
}}
<!-------------
-- Column 3 --
-------------->{{#ifexpr:{{{columns|1}}}>2|
{{#if:{{#ifexpr:1*{{{style|1}}}}}||{{#ifexpr:{{#expr:{{{style|1}}} / 2 round 0 }}*2={{{style|1}}}|
! style="text-align:right;vertical-align:bottom;padding-right:4px;" {{!}} {{{3|xxx}}}|}}}}
{{Data bars/column
| detailed = {{#if:{{#ifexpr:1*{{{style|1}}}}}||{{#ifexpr:{{{style|1}}}<5||{{#ifexpr:{{{style|1}}}>8|{{#ifexpr:{{{style|1}}}<13||true}}|true}}}}}}
| scale={{#if:{{#ifexpr:1*{{{scale|1}}}}}|1|{{{scale|1}}}}}
| style={{#if:{{#ifexpr:1*{{{style|1}}}}}|1|{{{style|1}}}}}
| color1 = {{{{{#expr:1+{{{columns|1}}}}}|#ddd}}}
| color2 = {{{{{#expr:3+(2*{{{columns|1}}})}}|#ddd}}}
| color3 = {{{{{#expr:5+(3*{{{columns|1}}})}}|#ddd}}}
| color4 = {{{{{#expr:7+(4*{{{columns|1}}})}}|#ddd}}}
| color5 = {{{{{#expr:9+(5*{{{columns|1}}})}}|#ddd}}}
| color6 = {{{{{#expr:11+(6*{{{columns|1}}})}}|#ddd}}}
| color7 = {{{{{#expr:13+(7*{{{columns|1}}})}}|#ddd}}}
| color8 = {{{{{#expr:15+(8*{{{columns|1}}})}}|#ddd}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:{{{columns|1}}} + 5}}|}}}}}|0|{{{{{#expr:{{{columns|1}}} + 5}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:2*{{{columns|1}}}+7}}|}}}}}|0|{{{{{#expr:2*{{{columns|1}}}+7}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:3*{{{columns|1}}}+9}}|}}}}}|0|{{{{{#expr:3*{{{columns|1}}}+9}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:4*{{{columns|1}}}+11}}|}}}}}|0|{{{{{#expr:4*{{{columns|1}}}+11}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:5*{{{columns|1}}}+13}}|}}}}}|0|{{{{{#expr:5*{{{columns|1}}}+13}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:6*{{{columns|1}}}+15}}|}}}}}|0|{{{{{#expr:6*{{{columns|1}}}+15}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:7*{{{columns|1}}}+17}}|}}}}}|0|{{{{{#expr:7*{{{columns|1}}}+17}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:8*{{{columns|1}}}+19}}|}}}}}|0|{{{{{#expr:8*{{{columns|1}}}+19}}|0}}}}}
}}
<!-------------
-- Column 4 --
-------------->{{#ifexpr:{{{columns|1}}}>3|
{{#if:{{#ifexpr:1*{{{style|1}}}}}||{{#ifexpr:{{#expr:{{{style|1}}} / 2 round 0 }}*2={{{style|1}}}|
! style="text-align:right;vertical-align:bottom;padding-right:4px;" {{!}} {{{4|xxx}}}|}}}}
{{Data bars/column
| detailed = {{#if:{{#ifexpr:1*{{{style|1}}}}}||{{#ifexpr:{{{style|1}}}<5||{{#ifexpr:{{{style|1}}}>8|{{#ifexpr:{{{style|1}}}<13||true}}|true}}}}}}
| scale={{#if:{{#ifexpr:1*{{{scale|1}}}}}|1|{{{scale|1}}}}}
| style={{#if:{{#ifexpr:1*{{{style|1}}}}}|1|{{{style|1}}}}}
| color1 = {{{{{#expr:1+{{{columns|1}}}}}|#ddd}}}
| color2 = {{{{{#expr:3+(2*{{{columns|1}}})}}|#ddd}}}
| color3 = {{{{{#expr:5+(3*{{{columns|1}}})}}|#ddd}}}
| color4 = {{{{{#expr:7+(4*{{{columns|1}}})}}|#ddd}}}
| color5 = {{{{{#expr:9+(5*{{{columns|1}}})}}|#ddd}}}
| color6 = {{{{{#expr:11+(6*{{{columns|1}}})}}|#ddd}}}
| color7 = {{{{{#expr:13+(7*{{{columns|1}}})}}|#ddd}}}
| color8 = {{{{{#expr:15+(8*{{{columns|1}}})}}|#ddd}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:{{{columns|1}}} + 6}}|}}}}}|0|{{{{{#expr:{{{columns|1}}} + 6}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:2*{{{columns|1}}}+8}}|}}}}}|0|{{{{{#expr:2*{{{columns|1}}}+8}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:3*{{{columns|1}}}+10}}|}}}}}|0|{{{{{#expr:3*{{{columns|1}}}+10}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:4*{{{columns|1}}}+12}}|}}}}}|0|{{{{{#expr:4*{{{columns|1}}}+12}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:5*{{{columns|1}}}+14}}|}}}}}|0|{{{{{#expr:5*{{{columns|1}}}+14}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:6*{{{columns|1}}}+16}}|}}}}}|0|{{{{{#expr:6*{{{columns|1}}}+16}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:7*{{{columns|1}}}+18}}|}}}}}|0|{{{{{#expr:7*{{{columns|1}}}+18}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:8*{{{columns|1}}}+20}}|}}}}}|0|{{{{{#expr:8*{{{columns|1}}}+20}}|0}}}}}
}}
<!-------------
-- Column 5 --
-------------->{{#ifexpr:{{{columns|1}}}>4|
{{#if:{{#ifexpr:1*{{{style|1}}}}}||{{#ifexpr:{{#expr:{{{style|1}}} / 2 round 0 }}*2={{{style|1}}}|
! style="text-align:right;vertical-align:bottom;padding-right:4px;" {{!}} {{{5|xxx}}}|}}}}
{{Data bars/column
| detailed = {{#if:{{#ifexpr:1*{{{style|1}}}}}||{{#ifexpr:{{{style|1}}}<5||{{#ifexpr:{{{style|1}}}>8|{{#ifexpr:{{{style|1}}}<13||true}}|true}}}}}}
| scale={{#if:{{#ifexpr:1*{{{scale|1}}}}}|1|{{{scale|1}}}}}
| style={{#if:{{#ifexpr:1*{{{style|1}}}}}|1|{{{style|1}}}}}
| color1 = {{{{{#expr:1+{{{columns|1}}}}}|#ddd}}}
| color2 = {{{{{#expr:3+(2*{{{columns|1}}})}}|#ddd}}}
| color3 = {{{{{#expr:5+(3*{{{columns|1}}})}}|#ddd}}}
| color4 = {{{{{#expr:7+(4*{{{columns|1}}})}}|#ddd}}}
| color5 = {{{{{#expr:9+(5*{{{columns|1}}})}}|#ddd}}}
| color6 = {{{{{#expr:11+(6*{{{columns|1}}})}}|#ddd}}}
| color7 = {{{{{#expr:13+(7*{{{columns|1}}})}}|#ddd}}}
| color8 = {{{{{#expr:15+(8*{{{columns|1}}})}}|#ddd}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:{{{columns|1}}} + 7}}|}}}}}|0|{{{{{#expr:{{{columns|1}}} + 7}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:2*{{{columns|1}}}+9}}|}}}}}|0|{{{{{#expr:2*{{{columns|1}}}+9}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:3*{{{columns|1}}}+11}}|}}}}}|0|{{{{{#expr:3*{{{columns|1}}}+11}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:4*{{{columns|1}}}+13}}|}}}}}|0|{{{{{#expr:4*{{{columns|1}}}+13}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:5*{{{columns|1}}}+15}}|}}}}}|0|{{{{{#expr:5*{{{columns|1}}}+15}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:6*{{{columns|1}}}+17}}|}}}}}|0|{{{{{#expr:6*{{{columns|1}}}+17}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:7*{{{columns|1}}}+19}}|}}}}}|0|{{{{{#expr:7*{{{columns|1}}}+19}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:8*{{{columns|1}}}+21}}|}}}}}|0|{{{{{#expr:8*{{{columns|1}}}+21}}|0}}}}}
}}
<!-------------
-- Column 6 --
-------------->{{#ifexpr:{{{columns|1}}}>5|
{{#if:{{#ifexpr:1*{{{style|1}}}}}||{{#ifexpr:{{#expr:{{{style|1}}} / 2 round 0 }}*2={{{style|1}}}|
! style="text-align:right;vertical-align:bottom;padding-right:4px;" {{!}} {{{6|xxx}}}|}}}}
{{Data bars/column
| detailed = {{#if:{{#ifexpr:1*{{{style|1}}}}}||{{#ifexpr:{{{style|1}}}<5||{{#ifexpr:{{{style|1}}}>8|{{#ifexpr:{{{style|1}}}<13||true}}|true}}}}}}
| scale={{#if:{{#ifexpr:1*{{{scale|1}}}}}|1|{{{scale|1}}}}}
| style={{#if:{{#ifexpr:1*{{{style|1}}}}}|1|{{{style|1}}}}}
| color1 = {{{{{#expr:1+{{{columns|1}}}}}|#ddd}}}
| color2 = {{{{{#expr:3+(2*{{{columns|1}}})}}|#ddd}}}
| color3 = {{{{{#expr:5+(3*{{{columns|1}}})}}|#ddd}}}
| color4 = {{{{{#expr:7+(4*{{{columns|1}}})}}|#ddd}}}
| color5 = {{{{{#expr:9+(5*{{{columns|1}}})}}|#ddd}}}
| color6 = {{{{{#expr:11+(6*{{{columns|1}}})}}|#ddd}}}
| color7 = {{{{{#expr:13+(7*{{{columns|1}}})}}|#ddd}}}
| color8 = {{{{{#expr:15+(8*{{{columns|1}}})}}|#ddd}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:{{{columns|1}}} + 8}}|}}}}}|0|{{{{{#expr:{{{columns|1}}} + 8}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:2*{{{columns|1}}}+10}}|}}}}}|0|{{{{{#expr:2*{{{columns|1}}}+10}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:3*{{{columns|1}}}+12}}|}}}}}|0|{{{{{#expr:3*{{{columns|1}}}+12}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:4*{{{columns|1}}}+14}}|}}}}}|0|{{{{{#expr:4*{{{columns|1}}}+14}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:5*{{{columns|1}}}+16}}|}}}}}|0|{{{{{#expr:5*{{{columns|1}}}+16}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:6*{{{columns|1}}}+18}}|}}}}}|0|{{{{{#expr:6*{{{columns|1}}}+18}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:7*{{{columns|1}}}+20}}|}}}}}|0|{{{{{#expr:7*{{{columns|1}}}+20}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:8*{{{columns|1}}}+22}}|}}}}}|0|{{{{{#expr:8*{{{columns|1}}}+22}}|0}}}}}
}}
<!-------------
-- Column 7 --
-------------->{{#ifexpr:{{{columns|1}}}>6|
{{#if:{{#ifexpr:1*{{{style|1}}}}}||{{#ifexpr:{{#expr:{{{style|1}}} / 2 round 0 }}*2={{{style|1}}}|
! style="text-align:right;vertical-align:bottom;padding-right:4px;" {{!}} {{{7|xxx}}}|}}}}
{{Data bars/column
| detailed = {{#if:{{#ifexpr:1*{{{style|1}}}}}||{{#ifexpr:{{{style|1}}}<5||{{#ifexpr:{{{style|1}}}>8|{{#ifexpr:{{{style|1}}}<13||true}}|true}}}}}}
| scale={{#if:{{#ifexpr:1*{{{scale|1}}}}}|1|{{{scale|1}}}}}
| style={{#if:{{#ifexpr:1*{{{style|1}}}}}|1|{{{style|1}}}}}
| color1 = {{{{{#expr:1+{{{columns|1}}}}}|#ddd}}}
| color2 = {{{{{#expr:3+(2*{{{columns|1}}})}}|#ddd}}}
| color3 = {{{{{#expr:5+(3*{{{columns|1}}})}}|#ddd}}}
| color4 = {{{{{#expr:7+(4*{{{columns|1}}})}}|#ddd}}}
| color5 = {{{{{#expr:9+(5*{{{columns|1}}})}}|#ddd}}}
| color6 = {{{{{#expr:11+(6*{{{columns|1}}})}}|#ddd}}}
| color7 = {{{{{#expr:13+(7*{{{columns|1}}})}}|#ddd}}}
| color8 = {{{{{#expr:15+(8*{{{columns|1}}})}}|#ddd}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:{{{columns|1}}} + 9}}|}}}}}|0|{{{{{#expr:{{{columns|1}}} + 9}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:2*{{{columns|1}}}+11}}|}}}}}|0|{{{{{#expr:2*{{{columns|1}}}+11}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:3*{{{columns|1}}}+13}}|}}}}}|0|{{{{{#expr:3*{{{columns|1}}}+13}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:4*{{{columns|1}}}+15}}|}}}}}|0|{{{{{#expr:4*{{{columns|1}}}+15}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:5*{{{columns|1}}}+17}}|}}}}}|0|{{{{{#expr:5*{{{columns|1}}}+17}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:6*{{{columns|1}}}+19}}|}}}}}|0|{{{{{#expr:6*{{{columns|1}}}+19}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:7*{{{columns|1}}}+21}}|}}}}}|0|{{{{{#expr:7*{{{columns|1}}}+21}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:8*{{{columns|1}}}+23}}|}}}}}|0|{{{{{#expr:8*{{{columns|1}}}+23}}|0}}}}}
}}
<!-------------
-- Column 8 --
-------------->{{#ifexpr:{{{columns|1}}}>7|
{{#if:{{#ifexpr:1*{{{style|1}}}}}||{{#ifexpr:{{#expr:{{{style|1}}} / 2 round 0 }}*2={{{style|1}}}|
! style="text-align:right;vertical-align:bottom;padding-right:4px;" {{!}} {{{8|xxx}}}|}}}}
{{Data bars/column
| detailed = {{#if:{{#ifexpr:1*{{{style|1}}}}}||{{#ifexpr:{{{style|1}}}<5||{{#ifexpr:{{{style|1}}}>8|{{#ifexpr:{{{style|1}}}<13||true}}|true}}}}}}
| scale={{#if:{{#ifexpr:1*{{{scale|1}}}}}|1|{{{scale|1}}}}}
| style={{#if:{{#ifexpr:1*{{{style|1}}}}}|1|{{{style|1}}}}}
| color1 = {{{{{#expr:1+{{{columns|1}}}}}|#ddd}}}
| color2 = {{{{{#expr:3+(2*{{{columns|1}}})}}|#ddd}}}
| color3 = {{{{{#expr:5+(3*{{{columns|1}}})}}|#ddd}}}
| color4 = {{{{{#expr:7+(4*{{{columns|1}}})}}|#ddd}}}
| color5 = {{{{{#expr:9+(5*{{{columns|1}}})}}|#ddd}}}
| color6 = {{{{{#expr:11+(6*{{{columns|1}}})}}|#ddd}}}
| color7 = {{{{{#expr:13+(7*{{{columns|1}}})}}|#ddd}}}
| color8 = {{{{{#expr:15+(8*{{{columns|1}}})}}|#ddd}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:{{{columns|1}}} + 10}}|}}}}}|0|{{{{{#expr:{{{columns|1}}} + 10}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:2*{{{columns|1}}}+12}}|}}}}}|0|{{{{{#expr:2*{{{columns|1}}}+12}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:3*{{{columns|1}}}+14}}|}}}}}|0|{{{{{#expr:3*{{{columns|1}}}+14}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:4*{{{columns|1}}}+16}}|}}}}}|0|{{{{{#expr:4*{{{columns|1}}}+16}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:5*{{{columns|1}}}+18}}|}}}}}|0|{{{{{#expr:5*{{{columns|1}}}+18}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:6*{{{columns|1}}}+20}}|}}}}}|0|{{{{{#expr:6*{{{columns|1}}}+20}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:7*{{{columns|1}}}+22}}|}}}}}|0|{{{{{#expr:7*{{{columns|1}}}+22}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:8*{{{columns|1}}}+24}}|}}}}}|0|{{{{{#expr:8*{{{columns|1}}}+24}}|0}}}}}
}}
<!-------------
-- Column 9 --
-------------->{{#ifexpr:{{{columns|1}}}>8|
{{#if:{{#ifexpr:1*{{{style|1}}}}}||{{#ifexpr:{{#expr:{{{style|1}}} / 2 round 0 }}*2={{{style|1}}}|
! style="text-align:right;vertical-align:bottom;padding-right:4px;" {{!}} {{{9|xxx}}}|}}}}
{{Data bars/column
| detailed = {{#if:{{#ifexpr:1*{{{style|1}}}}}||{{#ifexpr:{{{style|1}}}<5||{{#ifexpr:{{{style|1}}}>8|{{#ifexpr:{{{style|1}}}<13||true}}|true}}}}}}
| scale={{#if:{{#ifexpr:1*{{{scale|1}}}}}|1|{{{scale|1}}}}}
| style={{#if:{{#ifexpr:1*{{{style|1}}}}}|1|{{{style|1}}}}}
| color1 = {{{{{#expr:1+{{{columns|1}}}}}|#ddd}}}
| color2 = {{{{{#expr:3+(2*{{{columns|1}}})}}|#ddd}}}
| color3 = {{{{{#expr:5+(3*{{{columns|1}}})}}|#ddd}}}
| color4 = {{{{{#expr:7+(4*{{{columns|1}}})}}|#ddd}}}
| color5 = {{{{{#expr:9+(5*{{{columns|1}}})}}|#ddd}}}
| color6 = {{{{{#expr:11+(6*{{{columns|1}}})}}|#ddd}}}
| color7 = {{{{{#expr:13+(7*{{{columns|1}}})}}|#ddd}}}
| color8 = {{{{{#expr:15+(8*{{{columns|1}}})}}|#ddd}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:{{{columns|1}}} + 11}}|}}}}}|0|{{{{{#expr:{{{columns|1}}} + 11}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:2*{{{columns|1}}}+13}}|}}}}}|0|{{{{{#expr:2*{{{columns|1}}}+13}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:3*{{{columns|1}}}+15}}|}}}}}|0|{{{{{#expr:3*{{{columns|1}}}+15}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:4*{{{columns|1}}}+17}}|}}}}}|0|{{{{{#expr:4*{{{columns|1}}}+17}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:5*{{{columns|1}}}+19}}|}}}}}|0|{{{{{#expr:5*{{{columns|1}}}+19}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:6*{{{columns|1}}}+21}}|}}}}}|0|{{{{{#expr:6*{{{columns|1}}}+21}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:7*{{{columns|1}}}+23}}|}}}}}|0|{{{{{#expr:7*{{{columns|1}}}+23}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:8*{{{columns|1}}}+25}}|}}}}}|0|{{{{{#expr:8*{{{columns|1}}}+25}}|0}}}}}
}}
<!-------------
-- Column 10 --
-------------->{{#ifexpr:{{{columns|1}}}>9|
{{#if:{{#ifexpr:1*{{{style|1}}}}}||{{#ifexpr:{{#expr:{{{style|1}}} / 2 round 0 }}*2={{{style|1}}}|
! style="text-align:right;vertical-align:bottom;padding-right:4px;" {{!}} {{{10|xxx}}}|}}}}
{{Data bars/column
| detailed = {{#if:{{#ifexpr:1*{{{style|1}}}}}||{{#ifexpr:{{{style|1}}}<5||{{#ifexpr:{{{style|1}}}>8|{{#ifexpr:{{{style|1}}}<13||true}}|true}}}}}}
| scale={{#if:{{#ifexpr:1*{{{scale|1}}}}}|1|{{{scale|1}}}}}
| style={{#if:{{#ifexpr:1*{{{style|1}}}}}|1|{{{style|1}}}}}
| color1 = {{{{{#expr:1+{{{columns|1}}}}}|#ddd}}}
| color2 = {{{{{#expr:3+(2*{{{columns|1}}})}}|#ddd}}}
| color3 = {{{{{#expr:5+(3*{{{columns|1}}})}}|#ddd}}}
| color4 = {{{{{#expr:7+(4*{{{columns|1}}})}}|#ddd}}}
| color5 = {{{{{#expr:9+(5*{{{columns|1}}})}}|#ddd}}}
| color6 = {{{{{#expr:11+(6*{{{columns|1}}})}}|#ddd}}}
| color7 = {{{{{#expr:13+(7*{{{columns|1}}})}}|#ddd}}}
| color8 = {{{{{#expr:15+(8*{{{columns|1}}})}}|#ddd}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:{{{columns|1}}} + 12}}|}}}}}|0|{{{{{#expr:{{{columns|1}}} + 12}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:2*{{{columns|1}}}+14}}|}}}}}|0|{{{{{#expr:2*{{{columns|1}}}+14}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:3*{{{columns|1}}}+16}}|}}}}}|0|{{{{{#expr:3*{{{columns|1}}}+16}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:4*{{{columns|1}}}+18}}|}}}}}|0|{{{{{#expr:4*{{{columns|1}}}+18}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:5*{{{columns|1}}}+20}}|}}}}}|0|{{{{{#expr:5*{{{columns|1}}}+20}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:6*{{{columns|1}}}+22}}|}}}}}|0|{{{{{#expr:6*{{{columns|1}}}+22}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:7*{{{columns|1}}}+24}}|}}}}}|0|{{{{{#expr:7*{{{columns|1}}}+24}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:8*{{{columns|1}}}+26}}|}}}}}|0|{{{{{#expr:8*{{{columns|1}}}+26}}|0}}}}}
}}
<!-------------
-- Column 11 --
-------------->{{#ifexpr:{{{columns|1}}}>10|
{{#if:{{#ifexpr:1*{{{style|1}}}}}||{{#ifexpr:{{#expr:{{{style|1}}} / 2 round 0 }}*2={{{style|1}}}|
! style="text-align:right;vertical-align:bottom;padding-right:4px;" {{!}} {{{11|xxx}}}|}}}}
{{Data bars/column
| detailed = {{#if:{{#ifexpr:1*{{{style|1}}}}}||{{#ifexpr:{{{style|1}}}<5||{{#ifexpr:{{{style|1}}}>8|{{#ifexpr:{{{style|1}}}<13||true}}|true}}}}}}
| scale={{#if:{{#ifexpr:1*{{{scale|1}}}}}|1|{{{scale|1}}}}}
| style={{#if:{{#ifexpr:1*{{{style|1}}}}}|1|{{{style|1}}}}}
| color1 = {{{{{#expr:1+{{{columns|1}}}}}|#ddd}}}
| color2 = {{{{{#expr:3+(2*{{{columns|1}}})}}|#ddd}}}
| color3 = {{{{{#expr:5+(3*{{{columns|1}}})}}|#ddd}}}
| color4 = {{{{{#expr:7+(4*{{{columns|1}}})}}|#ddd}}}
| color5 = {{{{{#expr:9+(5*{{{columns|1}}})}}|#ddd}}}
| color6 = {{{{{#expr:11+(6*{{{columns|1}}})}}|#ddd}}}
| color7 = {{{{{#expr:13+(7*{{{columns|1}}})}}|#ddd}}}
| color8 = {{{{{#expr:15+(8*{{{columns|1}}})}}|#ddd}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:{{{columns|1}}} + 13}}|}}}}}|0|{{{{{#expr:{{{columns|1}}} + 13}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:2*{{{columns|1}}}+15}}|}}}}}|0|{{{{{#expr:2*{{{columns|1}}}+15}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:3*{{{columns|1}}}+17}}|}}}}}|0|{{{{{#expr:3*{{{columns|1}}}+17}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:4*{{{columns|1}}}+19}}|}}}}}|0|{{{{{#expr:4*{{{columns|1}}}+19}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:5*{{{columns|1}}}+21}}|}}}}}|0|{{{{{#expr:5*{{{columns|1}}}+21}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:6*{{{columns|1}}}+23}}|}}}}}|0|{{{{{#expr:6*{{{columns|1}}}+23}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:7*{{{columns|1}}}+25}}|}}}}}|0|{{{{{#expr:7*{{{columns|1}}}+25}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:8*{{{columns|1}}}+27}}|}}}}}|0|{{{{{#expr:8*{{{columns|1}}}+27}}|0}}}}}
}}
<!--------------
-- Column 12 --
--------------->{{#ifexpr:{{{columns|1}}}>11|
{{#if:{{#ifexpr:1*{{{style|1}}}}}||{{#ifexpr:{{#expr:{{{style|1}}} / 2 round 0 }}*2={{{style|1}}}|
! style="text-align:right;vertical-align:bottom;padding-right:4px;" {{!}} {{{12|xxx}}}|}}}}
{{Data bars/column
| detailed = {{#if:{{#ifexpr:1*{{{style|1}}}}}||{{#ifexpr:{{{style|1}}}<5||{{#ifexpr:{{{style|1}}}>8|{{#ifexpr:{{{style|1}}}<13||true}}|true}}}}}}
| scale={{#if:{{#ifexpr:1*{{{scale|1}}}}}|1|{{{scale|1}}}}}
| style={{#if:{{#ifexpr:1*{{{style|1}}}}}|1|{{{style|1}}}}}
| color1 = {{{{{#expr:1+{{{columns|1}}}}}|#ddd}}}
| color2 = {{{{{#expr:3+(2*{{{columns|1}}})}}|#ddd}}}
| color3 = {{{{{#expr:5+(3*{{{columns|1}}})}}|#ddd}}}
| color4 = {{{{{#expr:7+(4*{{{columns|1}}})}}|#ddd}}}
| color5 = {{{{{#expr:9+(5*{{{columns|1}}})}}|#ddd}}}
| color6 = {{{{{#expr:11+(6*{{{columns|1}}})}}|#ddd}}}
| color7 = {{{{{#expr:13+(7*{{{columns|1}}})}}|#ddd}}}
| color8 = {{{{{#expr:15+(8*{{{columns|1}}})}}|#ddd}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:{{{columns|1}}} + 14}}|}}}}}|0|{{{{{#expr:{{{columns|1}}} + 14}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:2*{{{columns|1}}}+16}}|}}}}}|0|{{{{{#expr:2*{{{columns|1}}}+16}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:3*{{{columns|1}}}+18}}|}}}}}|0|{{{{{#expr:3*{{{columns|1}}}+18}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:4*{{{columns|1}}}+20}}|}}}}}|0|{{{{{#expr:4*{{{columns|1}}}+20}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:5*{{{columns|1}}}+22}}|}}}}}|0|{{{{{#expr:5*{{{columns|1}}}+22}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:6*{{{columns|1}}}+24}}|}}}}}|0|{{{{{#expr:6*{{{columns|1}}}+24}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:7*{{{columns|1}}}+26}}|}}}}}|0|{{{{{#expr:7*{{{columns|1}}}+26}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:8*{{{columns|1}}}+28}}|}}}}}|0|{{{{{#expr:8*{{{columns|1}}}+28}}|0}}}}}
}}
<!--------------
-- Column 13 --
--------------->{{#ifexpr:{{{columns|1}}}>12|
{{#if:{{#ifexpr:1*{{{style|1}}}}}||{{#ifexpr:{{#expr:{{{style|1}}} / 2 round 0 }}*2={{{style|1}}}|
! style="text-align:right;vertical-align:bottom;padding-right:4px;" {{!}} {{{13|xxx}}}|}}}}
{{Data bars/column
| detailed = {{#if:{{#ifexpr:1*{{{style|1}}}}}||{{#ifexpr:{{{style|1}}}<5||{{#ifexpr:{{{style|1}}}>8|{{#ifexpr:{{{style|1}}}<13||true}}|true}}}}}}
| scale={{#if:{{#ifexpr:1*{{{scale|1}}}}}|1|{{{scale|1}}}}}
| style={{#if:{{#ifexpr:1*{{{style|1}}}}}|1|{{{style|1}}}}}
| color1 = {{{{{#expr:1+{{{columns|1}}}}}|#ddd}}}
| color2 = {{{{{#expr:3+(2*{{{columns|1}}})}}|#ddd}}}
| color3 = {{{{{#expr:5+(3*{{{columns|1}}})}}|#ddd}}}
| color4 = {{{{{#expr:7+(4*{{{columns|1}}})}}|#ddd}}}
| color5 = {{{{{#expr:9+(5*{{{columns|1}}})}}|#ddd}}}
| color6 = {{{{{#expr:11+(6*{{{columns|1}}})}}|#ddd}}}
| color7 = {{{{{#expr:13+(7*{{{columns|1}}})}}|#ddd}}}
| color8 = {{{{{#expr:15+(8*{{{columns|1}}})}}|#ddd}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:{{{columns|1}}} + 15}}|}}}}}|0|{{{{{#expr:{{{columns|1}}} + 15}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:2*{{{columns|1}}}+17}}|}}}}}|0|{{{{{#expr:2*{{{columns|1}}}+17}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:3*{{{columns|1}}}+19}}|}}}}}|0|{{{{{#expr:3*{{{columns|1}}}+19}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:4*{{{columns|1}}}+21}}|}}}}}|0|{{{{{#expr:4*{{{columns|1}}}+21}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:5*{{{columns|1}}}+23}}|}}}}}|0|{{{{{#expr:5*{{{columns|1}}}+23}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:6*{{{columns|1}}}+25}}|}}}}}|0|{{{{{#expr:6*{{{columns|1}}}+25}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:7*{{{columns|1}}}+27}}|}}}}}|0|{{{{{#expr:7*{{{columns|1}}}+27}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:8*{{{columns|1}}}+29}}|}}}}}|0|{{{{{#expr:8*{{{columns|1}}}+29}}|0}}}}}
}}
<!--------------
-- Column 14 --
--------------->{{#ifexpr:{{{columns|1}}}>13|
{{#if:{{#ifexpr:1*{{{style|1}}}}}||{{#ifexpr:{{#expr:{{{style|1}}} / 2 round 0 }}*2={{{style|1}}}|
! style="text-align:right;vertical-align:bottom;padding-right:4px;" {{!}} {{{14|xxx}}}|}}}}
{{Data bars/column
| detailed = {{#if:{{#ifexpr:1*{{{style|1}}}}}||{{#ifexpr:{{{style|1}}}<5||{{#ifexpr:{{{style|1}}}>8|{{#ifexpr:{{{style|1}}}<13||true}}|true}}}}}}
| scale={{#if:{{#ifexpr:1*{{{scale|1}}}}}|1|{{{scale|1}}}}}
| style={{#if:{{#ifexpr:1*{{{style|1}}}}}|1|{{{style|1}}}}}
| color1 = {{{{{#expr:1+{{{columns|1}}}}}|#ddd}}}
| color2 = {{{{{#expr:3+(2*{{{columns|1}}})}}|#ddd}}}
| color3 = {{{{{#expr:5+(3*{{{columns|1}}})}}|#ddd}}}
| color4 = {{{{{#expr:7+(4*{{{columns|1}}})}}|#ddd}}}
| color5 = {{{{{#expr:9+(5*{{{columns|1}}})}}|#ddd}}}
| color6 = {{{{{#expr:11+(6*{{{columns|1}}})}}|#ddd}}}
| color7 = {{{{{#expr:13+(7*{{{columns|1}}})}}|#ddd}}}
| color8 = {{{{{#expr:15+(8*{{{columns|1}}})}}|#ddd}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:{{{columns|1}}} + 16}}|}}}}}|0|{{{{{#expr:{{{columns|1}}} + 16}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:2*{{{columns|1}}}+18}}|}}}}}|0|{{{{{#expr:2*{{{columns|1}}}+18}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:3*{{{columns|1}}}+20}}|}}}}}|0|{{{{{#expr:3*{{{columns|1}}}+20}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:4*{{{columns|1}}}+22}}|}}}}}|0|{{{{{#expr:4*{{{columns|1}}}+22}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:5*{{{columns|1}}}+24}}|}}}}}|0|{{{{{#expr:5*{{{columns|1}}}+24}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:6*{{{columns|1}}}+26}}|}}}}}|0|{{{{{#expr:6*{{{columns|1}}}+26}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:7*{{{columns|1}}}+28}}|}}}}}|0|{{{{{#expr:7*{{{columns|1}}}+28}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:8*{{{columns|1}}}+30}}|}}}}}|0|{{{{{#expr:8*{{{columns|1}}}+30}}|0}}}}}
}}
<!--------------
-- Column 15 --
--------------->{{#ifexpr:{{{columns|1}}}>14|
{{#if:{{#ifexpr:1*{{{style|1}}}}}||{{#ifexpr:{{#expr:{{{style|1}}} / 2 round 0 }}*2={{{style|1}}}|
! style="text-align:right;vertical-align:bottom;padding-right:4px;" {{!}} {{{15|xxx}}}|}}}}
{{Data bars/column
| detailed = {{#if:{{#ifexpr:1*{{{style|1}}}}}||{{#ifexpr:{{{style|1}}}<5||{{#ifexpr:{{{style|1}}}>8|{{#ifexpr:{{{style|1}}}<13||true}}|true}}}}}}
| scale={{#if:{{#ifexpr:1*{{{scale|1}}}}}|1|{{{scale|1}}}}}
| style={{#if:{{#ifexpr:1*{{{style|1}}}}}|1|{{{style|1}}}}}
| color1 = {{{{{#expr:1+{{{columns|1}}}}}|#ddd}}}
| color2 = {{{{{#expr:3+(2*{{{columns|1}}})}}|#ddd}}}
| color3 = {{{{{#expr:5+(3*{{{columns|1}}})}}|#ddd}}}
| color4 = {{{{{#expr:7+(4*{{{columns|1}}})}}|#ddd}}}
| color5 = {{{{{#expr:9+(5*{{{columns|1}}})}}|#ddd}}}
| color6 = {{{{{#expr:11+(6*{{{columns|1}}})}}|#ddd}}}
| color7 = {{{{{#expr:13+(7*{{{columns|1}}})}}|#ddd}}}
| color8 = {{{{{#expr:15+(8*{{{columns|1}}})}}|#ddd}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:{{{columns|1}}} + 17}}|}}}}}|0|{{{{{#expr:{{{columns|1}}} + 17}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:2*{{{columns|1}}}+19}}|}}}}}|0|{{{{{#expr:2*{{{columns|1}}}+19}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:3*{{{columns|1}}}+21}}|}}}}}|0|{{{{{#expr:3*{{{columns|1}}}+21}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:4*{{{columns|1}}}+23}}|}}}}}|0|{{{{{#expr:4*{{{columns|1}}}+23}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:5*{{{columns|1}}}+25}}|}}}}}|0|{{{{{#expr:5*{{{columns|1}}}+25}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:6*{{{columns|1}}}+27}}|}}}}}|0|{{{{{#expr:6*{{{columns|1}}}+27}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:7*{{{columns|1}}}+29}}|}}}}}|0|{{{{{#expr:7*{{{columns|1}}}+29}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:8*{{{columns|1}}}+31}}|}}}}}|0|{{{{{#expr:8*{{{columns|1}}}+31}}|0}}}}}
}}
<!--------------
-- Column 16 --
--------------->{{#ifexpr:{{{columns|1}}}>15|
{{#if:{{#ifexpr:1*{{{style|1}}}}}||{{#ifexpr:{{#expr:{{{style|1}}} / 2 round 0 }}*2={{{style|1}}}|
! style="text-align:right;vertical-align:bottom;padding-right:4px;" {{!}} {{{16|xxx}}}|}}}}
{{Data bars/column
| detailed = {{#if:{{#ifexpr:1*{{{style|1}}}}}||{{#ifexpr:{{{style|1}}}<5||{{#ifexpr:{{{style|1}}}>8|{{#ifexpr:{{{style|1}}}<13||true}}|true}}}}}}
| scale={{#if:{{#ifexpr:1*{{{scale|1}}}}}|1|{{{scale|1}}}}}
| style={{#if:{{#ifexpr:1*{{{style|1}}}}}|1|{{{style|1}}}}}
| color1 = {{{{{#expr:1+{{{columns|1}}}}}|#ddd}}}
| color2 = {{{{{#expr:3+(2*{{{columns|1}}})}}|#ddd}}}
| color3 = {{{{{#expr:5+(3*{{{columns|1}}})}}|#ddd}}}
| color4 = {{{{{#expr:7+(4*{{{columns|1}}})}}|#ddd}}}
| color5 = {{{{{#expr:9+(5*{{{columns|1}}})}}|#ddd}}}
| color6 = {{{{{#expr:11+(6*{{{columns|1}}})}}|#ddd}}}
| color7 = {{{{{#expr:13+(7*{{{columns|1}}})}}|#ddd}}}
| color8 = {{{{{#expr:15+(8*{{{columns|1}}})}}|#ddd}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:{{{columns|1}}} + 18}}|}}}}}|0|{{{{{#expr:{{{columns|1}}} + 18}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:2*{{{columns|1}}}+20}}|}}}}}|0|{{{{{#expr:2*{{{columns|1}}}+20}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:3*{{{columns|1}}}+22}}|}}}}}|0|{{{{{#expr:3*{{{columns|1}}}+22}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:4*{{{columns|1}}}+24}}|}}}}}|0|{{{{{#expr:4*{{{columns|1}}}+24}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:5*{{{columns|1}}}+26}}|}}}}}|0|{{{{{#expr:5*{{{columns|1}}}+26}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:6*{{{columns|1}}}+28}}|}}}}}|0|{{{{{#expr:6*{{{columns|1}}}+28}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:7*{{{columns|1}}}+30}}|}}}}}|0|{{{{{#expr:7*{{{columns|1}}}+30}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:8*{{{columns|1}}}+32}}|}}}}}|0|{{{{{#expr:8*{{{columns|1}}}+32}}|0}}}}}
}}<!------------->|}}|}}|}}|}}|}}|}}|}}|}}|}}|}}|}}|}}|}}|}}|}}
<!-------------------
--- ---
--- vertical ---
--- chart ---
--- BAR LABELS ---
--- ---
-------------------->{{#if:{{#ifexpr:1*{{{style|1}}}}}
|<!---no labels if error------>
|<!-------------->{{#ifexpr:{{#expr:{{{style|1}}} / 2 round 0 }}*2={{{style|1}}}<!-------
----------------->|<!-------no labels if even----
----------------->|<!------- labels if odd ---->
{{!}}- style="vertical-align:top;"
! style="padding-left:4px; padding-right:4px;" {{!}} {{{1|xxx}}}
{{#ifexpr:{{{columns|1}}}>1|
! style="padding-left:4px; padding-right:4px;" {{!}} {{{2|xxx}}}
{{#ifexpr:{{{columns|1}}}>2|
! style="padding-left:4px; padding-right:4px;" {{!}} {{{3|xxx}}}
{{#ifexpr:{{{columns|1}}}>3|
! style="padding-left:4px; padding-right:4px;" {{!}} {{{4|xxx}}}
{{#ifexpr:{{{columns|1}}}>4|
! style="padding-left:4px; padding-right:4px;" {{!}} {{{5|xxx}}}
{{#ifexpr:{{{columns|1}}}>5|
! style="padding-left:4px; padding-right:4px;" {{!}} {{{6|xxx}}}
{{#ifexpr:{{{columns|1}}}>6|
! style="padding-left:4px; padding-right:4px;" {{!}} {{{7|xxx}}}
{{#ifexpr:{{{columns|1}}}>7|
! style="padding-left:4px; padding-right:4px;" {{!}} {{{8|xxx}}}
{{#ifexpr:{{{columns|1}}}>8|
! style="padding-left:4px; padding-right:4px;" {{!}} {{{9|xxx}}}
{{#ifexpr:{{{columns|1}}}>9|
! style="padding-left:4px; padding-right:4px;" {{!}} {{{10|xxx}}}
{{#ifexpr:{{{columns|1}}}>10|
! style="padding-left:4px; padding-right:4px;" {{!}} {{{11|xxx}}}
{{#ifexpr:{{{columns|1}}}>11|
! style="padding-left:4px; padding-right:4px;" {{!}} {{{12|xxx}}}
{{#ifexpr:{{{columns|1}}}>12|
! style="padding-left:4px; padding-right:4px;" {{!}} {{{13|xxx}}}
{{#ifexpr:{{{columns|1}}}>13|
! style="padding-left:4px; padding-right:4px;" {{!}} {{{14|xxx}}}
{{#ifexpr:{{{columns|1}}}>14|
! style="padding-left:4px; padding-right:4px;" {{!}} {{{15|xxx}}}
{{#ifexpr:{{{columns|1}}}>15|
! style="padding-left:4px; padding-right:4px;" {{!}} {{{16|xxx}}}|}}|}}|}}|}}|}}|}}|}}|}}|}}|}}|}}|}}|}}|}}|}}<!-------
----------------->}}}}
|}
|}
| style="vertical-align:top;" |
{{#if:{{#ifexpr:1*{{{style|1}}}}}||{{#ifexpr:{{{style|1}}}>8|<!---
------------------------------
-- --
-- do averages if style > 8 --
-- --
----------------------------->
{{Data bars/averages
| style = {{{style|9}}}
| scale = {{{scale|1}}}
| columns = {{{columns|1}}}
| {{{1|}}}| {{{2|}}}| {{{3|}}}| {{{4|}}}| {{{5|}}}| {{{6|}}}| {{{7|}}}| {{{8|}}}| {{{9|}}}| {{{10|}}}
| {{{11|}}}| {{{12|}}}| {{{13|}}}| {{{14|}}}| {{{15|}}}| {{{16|}}}| {{{17|}}}| {{{18|}}}| {{{19|}}}| {{{20|}}}
| {{{21|}}}| {{{22|}}}| {{{23|}}}| {{{24|}}}| {{{25|}}}| {{{26|}}}| {{{27|}}}| {{{28|}}}| {{{29|}}}| {{{30|}}}
| {{{31|}}}| {{{32|}}}| {{{33|}}}| {{{34|}}}| {{{35|}}}| {{{36|}}}| {{{37|}}}| {{{38|}}}| {{{39|}}}| {{{40|}}}
| {{{41|}}}| {{{42|}}}| {{{43|}}}| {{{44|}}}| {{{45|}}}| {{{46|}}}| {{{47|}}}| {{{48|}}}| {{{49|}}}| {{{50|}}}
| {{{51|}}}| {{{52|}}}| {{{53|}}}| {{{54|}}}| {{{55|}}}| {{{56|}}}| {{{57|}}}| {{{58|}}}| {{{59|}}}| {{{60|}}}
| {{{61|}}}| {{{62|}}}| {{{63|}}}| {{{64|}}}| {{{65|}}}| {{{66|}}}| {{{67|}}}| {{{68|}}}| {{{69|}}}| {{{70|}}}
| {{{71|}}}| {{{72|}}}| {{{73|}}}| {{{74|}}}| {{{75|}}}| {{{76|}}}| {{{77|}}}| {{{78|}}}| {{{79|}}}| {{{80|}}}
| {{{81|}}}| {{{82|}}}| {{{83|}}}| {{{84|}}}| {{{85|}}}| {{{86|}}}| {{{87|}}}| {{{88|}}}| {{{89|}}}| {{{90|}}}
| {{{91|}}}| {{{92|}}}| {{{93|}}}| {{{94|}}}| {{{95|}}}| {{{96|}}}| {{{97|}}}| {{{98|}}}| {{{99|}}}|{{{100|}}}
|{{{101|}}}|{{{102|}}}|{{{103|}}}|{{{104|}}}|{{{105|}}}|{{{106|}}}|{{{107|}}}|{{{108|}}}|{{{109|}}}|{{{110|}}}
|{{{111|}}}|{{{112|}}}|{{{113|}}}|{{{114|}}}|{{{115|}}}|{{{116|}}}|{{{117|}}}|{{{118|}}}|{{{119|}}}|{{{120|}}}
|{{{121|}}}|{{{122|}}}|{{{123|}}}|{{{124|}}}|{{{125|}}}|{{{126|}}}|{{{127|}}}|{{{128|}}}|{{{129|}}}|{{{130|}}}
|{{{131|}}}|{{{132|}}}|{{{133|}}}|{{{134|}}}|{{{135|}}}|{{{136|}}}|{{{137|}}}|{{{138|}}}|{{{139|}}}|{{{140|}}}
|{{{141|}}}|{{{142|}}}|{{{143|}}}|{{{144|}}}|{{{145|}}}|{{{146|}}}|{{{147|}}}|{{{148|}}}|{{{149|}}}|{{{150|}}}
|{{{151|}}}|{{{152|}}}|{{{153|}}}|{{{154|}}}|{{{155|}}}|{{{156|}}}|{{{157|}}}|{{{158|}}}|{{{159|}}}|{{{160|}}}
}}|
<!-------------------
--- ---
--- else ---
--- color key ---
--- & totals ---
--- ---
-------------------->
{{#ifexpr:{{{columns|1}}}>1|Total: {{#expr:<!---
---->{{#expr:<!-- column 1 ---
------->{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:{{{columns|1}}} + 3}}|}}}}}|0|{{{{{#expr:{{{columns|1}}} + 3}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:2*{{{columns|1}}}+5}}|}}}}}|0|{{{{{#expr:2*{{{columns|1}}}+5}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:3*{{{columns|1}}}+7}}|}}}}}|0|{{{{{#expr:3*{{{columns|1}}}+7}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:4*{{{columns|1}}}+9}}|}}}}}|0|{{{{{#expr:4*{{{columns|1}}}+9}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:5*{{{columns|1}}}+11}}|}}}}}|0|{{{{{#expr:5*{{{columns|1}}}+11}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:6*{{{columns|1}}}+13}}|}}}}}|0|{{{{{#expr:6*{{{columns|1}}}+13}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:7*{{{columns|1}}}+15}}|}}}}}|0|{{{{{#expr:7*{{{columns|1}}}+15}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:8*{{{columns|1}}}+17}}|}}}}}|0|{{{{{#expr:8*{{{columns|1}}}+17}}|0}}}}}<!--
------>}}<!---
--->+{{#ifexpr:{{{columns|1}}}>1|{{#expr:<!-- column 2 ---
------->{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:{{{columns|1}}} + 4}}|}}}}}|0|{{{{{#expr:{{{columns|1}}} + 4}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:2*{{{columns|1}}}+6}}|}}}}}|0|{{{{{#expr:2*{{{columns|1}}}+6}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:3*{{{columns|1}}}+8}}|}}}}}|0|{{{{{#expr:3*{{{columns|1}}}+8}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:4*{{{columns|1}}}+10}}|}}}}}|0|{{{{{#expr:4*{{{columns|1}}}+10}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:5*{{{columns|1}}}+12}}|}}}}}|0|{{{{{#expr:5*{{{columns|1}}}+12}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:6*{{{columns|1}}}+14}}|}}}}}|0|{{{{{#expr:6*{{{columns|1}}}+14}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:7*{{{columns|1}}}+16}}|}}}}}|0|{{{{{#expr:7*{{{columns|1}}}+16}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:8*{{{columns|1}}}+18}}|}}}}}|0|{{{{{#expr:8*{{{columns|1}}}+18}}|0}}}}}<!--
------>}}|0}}<!---
--->+{{#ifexpr:{{{columns|1}}}>2|{{#expr:<!-- column 3 ---
------->{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:{{{columns|1}}} + 5}}|}}}}}|0|{{{{{#expr:{{{columns|1}}} + 5}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:2*{{{columns|1}}}+7}}|}}}}}|0|{{{{{#expr:2*{{{columns|1}}}+7}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:3*{{{columns|1}}}+9}}|}}}}}|0|{{{{{#expr:3*{{{columns|1}}}+9}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:4*{{{columns|1}}}+11}}|}}}}}|0|{{{{{#expr:4*{{{columns|1}}}+11}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:5*{{{columns|1}}}+13}}|}}}}}|0|{{{{{#expr:5*{{{columns|1}}}+13}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:6*{{{columns|1}}}+15}}|}}}}}|0|{{{{{#expr:6*{{{columns|1}}}+15}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:7*{{{columns|1}}}+17}}|}}}}}|0|{{{{{#expr:7*{{{columns|1}}}+17}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:8*{{{columns|1}}}+19}}|}}}}}|0|{{{{{#expr:8*{{{columns|1}}}+19}}|0}}}}}<!--
------>}}|0}}<!---
--->+{{#ifexpr:{{{columns|1}}}>3|{{#expr:<!-- column 4 ---
------->{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:{{{columns|1}}} + 6}}|}}}}}|0|{{{{{#expr:{{{columns|1}}} + 6}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:2*{{{columns|1}}}+8}}|}}}}}|0|{{{{{#expr:2*{{{columns|1}}}+8}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:3*{{{columns|1}}}+10}}|}}}}}|0|{{{{{#expr:3*{{{columns|1}}}+10}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:4*{{{columns|1}}}+12}}|}}}}}|0|{{{{{#expr:4*{{{columns|1}}}+12}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:5*{{{columns|1}}}+14}}|}}}}}|0|{{{{{#expr:5*{{{columns|1}}}+14}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:6*{{{columns|1}}}+16}}|}}}}}|0|{{{{{#expr:6*{{{columns|1}}}+16}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:7*{{{columns|1}}}+18}}|}}}}}|0|{{{{{#expr:7*{{{columns|1}}}+18}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:8*{{{columns|1}}}+20}}|}}}}}|0|{{{{{#expr:8*{{{columns|1}}}+20}}|0}}}}}<!--
------>}}|0}}<!---
--->+{{#ifexpr:{{{columns|1}}}>4|{{#expr:<!-- column 5 ---
------->{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:{{{columns|1}}} + 7}}|}}}}}|0|{{{{{#expr:{{{columns|1}}} + 7}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:2*{{{columns|1}}}+9}}|}}}}}|0|{{{{{#expr:2*{{{columns|1}}}+9}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:3*{{{columns|1}}}+11}}|}}}}}|0|{{{{{#expr:3*{{{columns|1}}}+11}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:4*{{{columns|1}}}+13}}|}}}}}|0|{{{{{#expr:4*{{{columns|1}}}+13}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:5*{{{columns|1}}}+15}}|}}}}}|0|{{{{{#expr:5*{{{columns|1}}}+15}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:6*{{{columns|1}}}+17}}|}}}}}|0|{{{{{#expr:6*{{{columns|1}}}+17}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:7*{{{columns|1}}}+19}}|}}}}}|0|{{{{{#expr:7*{{{columns|1}}}+19}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:8*{{{columns|1}}}+21}}|}}}}}|0|{{{{{#expr:8*{{{columns|1}}}+21}}|0}}}}}<!--
------>}}|0}}<!---
--->+{{#ifexpr:{{{columns|1}}}>5|{{#expr:<!-- column 6 ---
------->{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:{{{columns|1}}} + 8}}|}}}}}|0|{{{{{#expr:{{{columns|1}}} + 8}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:2*{{{columns|1}}}+10}}|}}}}}|0|{{{{{#expr:2*{{{columns|1}}}+10}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:3*{{{columns|1}}}+12}}|}}}}}|0|{{{{{#expr:3*{{{columns|1}}}+12}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:4*{{{columns|1}}}+14}}|}}}}}|0|{{{{{#expr:4*{{{columns|1}}}+14}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:5*{{{columns|1}}}+16}}|}}}}}|0|{{{{{#expr:5*{{{columns|1}}}+16}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:6*{{{columns|1}}}+18}}|}}}}}|0|{{{{{#expr:6*{{{columns|1}}}+18}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:7*{{{columns|1}}}+20}}|}}}}}|0|{{{{{#expr:7*{{{columns|1}}}+20}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:8*{{{columns|1}}}+22}}|}}}}}|0|{{{{{#expr:8*{{{columns|1}}}+22}}|0}}}}}<!--
------>}}|0}}<!---
--->+{{#ifexpr:{{{columns|1}}}>6|{{#expr:<!-- column 7 ---
------->{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:{{{columns|1}}} + 9}}|}}}}}|0|{{{{{#expr:{{{columns|1}}} + 9}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:2*{{{columns|1}}}+11}}|}}}}}|0|{{{{{#expr:2*{{{columns|1}}}+11}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:3*{{{columns|1}}}+13}}|}}}}}|0|{{{{{#expr:3*{{{columns|1}}}+13}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:4*{{{columns|1}}}+15}}|}}}}}|0|{{{{{#expr:4*{{{columns|1}}}+15}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:5*{{{columns|1}}}+17}}|}}}}}|0|{{{{{#expr:5*{{{columns|1}}}+17}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:6*{{{columns|1}}}+19}}|}}}}}|0|{{{{{#expr:6*{{{columns|1}}}+19}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:7*{{{columns|1}}}+21}}|}}}}}|0|{{{{{#expr:7*{{{columns|1}}}+21}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:8*{{{columns|1}}}+23}}|}}}}}|0|{{{{{#expr:8*{{{columns|1}}}+23}}|0}}}}}<!--
------>}}|0}}<!---
--->+{{#ifexpr:{{{columns|1}}}>7|{{#expr:<!-- column 8 ---
------->{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:{{{columns|1}}} + 10}}|}}}}}|0|{{{{{#expr:{{{columns|1}}} + 10}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:2*{{{columns|1}}}+12}}|}}}}}|0|{{{{{#expr:2*{{{columns|1}}}+12}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:3*{{{columns|1}}}+14}}|}}}}}|0|{{{{{#expr:3*{{{columns|1}}}+14}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:4*{{{columns|1}}}+16}}|}}}}}|0|{{{{{#expr:4*{{{columns|1}}}+16}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:5*{{{columns|1}}}+18}}|}}}}}|0|{{{{{#expr:5*{{{columns|1}}}+18}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:6*{{{columns|1}}}+20}}|}}}}}|0|{{{{{#expr:6*{{{columns|1}}}+20}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:7*{{{columns|1}}}+22}}|}}}}}|0|{{{{{#expr:7*{{{columns|1}}}+22}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:8*{{{columns|1}}}+24}}|}}}}}|0|{{{{{#expr:8*{{{columns|1}}}+24}}|0}}}}}<!--
------>}}|0}}<!---
--->+{{#ifexpr:{{{columns|1}}}>8|{{#expr:<!-- column 9 ---
------->{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:{{{columns|1}}} + 11}}|}}}}}|0|{{{{{#expr:{{{columns|1}}} + 11}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:2*{{{columns|1}}}+13}}|}}}}}|0|{{{{{#expr:2*{{{columns|1}}}+13}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:3*{{{columns|1}}}+15}}|}}}}}|0|{{{{{#expr:3*{{{columns|1}}}+15}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:4*{{{columns|1}}}+17}}|}}}}}|0|{{{{{#expr:4*{{{columns|1}}}+17}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:5*{{{columns|1}}}+19}}|}}}}}|0|{{{{{#expr:5*{{{columns|1}}}+19}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:6*{{{columns|1}}}+21}}|}}}}}|0|{{{{{#expr:6*{{{columns|1}}}+21}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:7*{{{columns|1}}}+23}}|}}}}}|0|{{{{{#expr:7*{{{columns|1}}}+23}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:8*{{{columns|1}}}+25}}|}}}}}|0|{{{{{#expr:8*{{{columns|1}}}+25}}|0}}}}}<!--
------>}}|0}}<!---
--->+{{#ifexpr:{{{columns|1}}}>9|{{#expr:<!-- column 10 ---
------->{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:{{{columns|1}}} + 12}}|}}}}}|0|{{{{{#expr:{{{columns|1}}} + 12}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:2*{{{columns|1}}}+14}}|}}}}}|0|{{{{{#expr:2*{{{columns|1}}}+14}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:3*{{{columns|1}}}+16}}|}}}}}|0|{{{{{#expr:3*{{{columns|1}}}+16}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:4*{{{columns|1}}}+18}}|}}}}}|0|{{{{{#expr:4*{{{columns|1}}}+18}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:5*{{{columns|1}}}+20}}|}}}}}|0|{{{{{#expr:5*{{{columns|1}}}+20}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:6*{{{columns|1}}}+22}}|}}}}}|0|{{{{{#expr:6*{{{columns|1}}}+22}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:7*{{{columns|1}}}+24}}|}}}}}|0|{{{{{#expr:7*{{{columns|1}}}+24}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:8*{{{columns|1}}}+26}}|}}}}}|0|{{{{{#expr:8*{{{columns|1}}}+26}}|0}}}}}<!--
------>}}|0}}<!---
--->+{{#ifexpr:{{{columns|1}}}>10|{{#expr:<!-- column 11 ---
------->{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:{{{columns|1}}} + 13}}|}}}}}|0|{{{{{#expr:{{{columns|1}}} + 13}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:2*{{{columns|1}}}+15}}|}}}}}|0|{{{{{#expr:2*{{{columns|1}}}+15}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:3*{{{columns|1}}}+17}}|}}}}}|0|{{{{{#expr:3*{{{columns|1}}}+17}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:4*{{{columns|1}}}+19}}|}}}}}|0|{{{{{#expr:4*{{{columns|1}}}+19}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:5*{{{columns|1}}}+21}}|}}}}}|0|{{{{{#expr:5*{{{columns|1}}}+21}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:6*{{{columns|1}}}+23}}|}}}}}|0|{{{{{#expr:6*{{{columns|1}}}+23}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:7*{{{columns|1}}}+25}}|}}}}}|0|{{{{{#expr:7*{{{columns|1}}}+25}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:8*{{{columns|1}}}+27}}|}}}}}|0|{{{{{#expr:8*{{{columns|1}}}+27}}|0}}}}}<!--
------>}}|0}}<!---
--->+{{#ifexpr:{{{columns|1}}}>11|{{#expr:<!-- column 12 ---
------->{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:{{{columns|1}}} + 14}}|}}}}}|0|{{{{{#expr:{{{columns|1}}} + 14}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:2*{{{columns|1}}}+16}}|}}}}}|0|{{{{{#expr:2*{{{columns|1}}}+16}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:3*{{{columns|1}}}+18}}|}}}}}|0|{{{{{#expr:3*{{{columns|1}}}+18}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:4*{{{columns|1}}}+20}}|}}}}}|0|{{{{{#expr:4*{{{columns|1}}}+20}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:5*{{{columns|1}}}+22}}|}}}}}|0|{{{{{#expr:5*{{{columns|1}}}+22}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:6*{{{columns|1}}}+24}}|}}}}}|0|{{{{{#expr:6*{{{columns|1}}}+24}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:7*{{{columns|1}}}+26}}|}}}}}|0|{{{{{#expr:7*{{{columns|1}}}+26}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:8*{{{columns|1}}}+28}}|}}}}}|0|{{{{{#expr:8*{{{columns|1}}}+28}}|0}}}}}<!--
------>}}|0}}<!---
--->+{{#ifexpr:{{{columns|1}}}>12|{{#expr:<!-- column 13 ---
------->{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:{{{columns|1}}} + 15}}|}}}}}|0|{{{{{#expr:{{{columns|1}}} + 15}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:2*{{{columns|1}}}+17}}|}}}}}|0|{{{{{#expr:2*{{{columns|1}}}+17}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:3*{{{columns|1}}}+19}}|}}}}}|0|{{{{{#expr:3*{{{columns|1}}}+19}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:4*{{{columns|1}}}+21}}|}}}}}|0|{{{{{#expr:4*{{{columns|1}}}+21}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:5*{{{columns|1}}}+23}}|}}}}}|0|{{{{{#expr:5*{{{columns|1}}}+23}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:6*{{{columns|1}}}+25}}|}}}}}|0|{{{{{#expr:6*{{{columns|1}}}+25}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:7*{{{columns|1}}}+27}}|}}}}}|0|{{{{{#expr:7*{{{columns|1}}}+27}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:8*{{{columns|1}}}+29}}|}}}}}|0|{{{{{#expr:8*{{{columns|1}}}+29}}|0}}}}}<!--
------>}}|0}}<!---
--->+{{#ifexpr:{{{columns|1}}}>13|{{#expr:<!-- column 14 ---
------->{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:{{{columns|1}}} + 16}}|}}}}}|0|{{{{{#expr:{{{columns|1}}} + 16}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:2*{{{columns|1}}}+18}}|}}}}}|0|{{{{{#expr:2*{{{columns|1}}}+18}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:3*{{{columns|1}}}+20}}|}}}}}|0|{{{{{#expr:3*{{{columns|1}}}+20}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:4*{{{columns|1}}}+22}}|}}}}}|0|{{{{{#expr:4*{{{columns|1}}}+22}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:5*{{{columns|1}}}+24}}|}}}}}|0|{{{{{#expr:5*{{{columns|1}}}+24}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:6*{{{columns|1}}}+26}}|}}}}}|0|{{{{{#expr:6*{{{columns|1}}}+26}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:7*{{{columns|1}}}+28}}|}}}}}|0|{{{{{#expr:7*{{{columns|1}}}+28}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:8*{{{columns|1}}}+30}}|}}}}}|0|{{{{{#expr:8*{{{columns|1}}}+30}}|0}}}}}<!--
------>}}|0}}<!---
--->+{{#ifexpr:{{{columns|1}}}>14|{{#expr:<!-- column 15 ---
------->{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:{{{columns|1}}} + 17}}|}}}}}|0|{{{{{#expr:{{{columns|1}}} + 17}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:2*{{{columns|1}}}+19}}|}}}}}|0|{{{{{#expr:2*{{{columns|1}}}+19}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:3*{{{columns|1}}}+21}}|}}}}}|0|{{{{{#expr:3*{{{columns|1}}}+21}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:4*{{{columns|1}}}+23}}|}}}}}|0|{{{{{#expr:4*{{{columns|1}}}+23}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:5*{{{columns|1}}}+25}}|}}}}}|0|{{{{{#expr:5*{{{columns|1}}}+25}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:6*{{{columns|1}}}+27}}|}}}}}|0|{{{{{#expr:6*{{{columns|1}}}+27}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:7*{{{columns|1}}}+29}}|}}}}}|0|{{{{{#expr:7*{{{columns|1}}}+29}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:8*{{{columns|1}}}+31}}|}}}}}|0|{{{{{#expr:8*{{{columns|1}}}+31}}|0}}}}}<!--
------>}}|0}}<!---
--->+{{#ifexpr:{{{columns|1}}}>15|{{#expr:<!-- column 16 ---
------->{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:{{{columns|1}}} + 18}}|}}}}}|0|{{{{{#expr:{{{columns|1}}} + 18}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:2*{{{columns|1}}}+20}}|}}}}}|0|{{{{{#expr:2*{{{columns|1}}}+20}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:3*{{{columns|1}}}+22}}|}}}}}|0|{{{{{#expr:3*{{{columns|1}}}+22}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:4*{{{columns|1}}}+24}}|}}}}}|0|{{{{{#expr:4*{{{columns|1}}}+24}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:5*{{{columns|1}}}+26}}|}}}}}|0|{{{{{#expr:5*{{{columns|1}}}+26}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:6*{{{columns|1}}}+28}}|}}}}}|0|{{{{{#expr:6*{{{columns|1}}}+28}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:7*{{{columns|1}}}+30}}|}}}}}|0|{{{{{#expr:7*{{{columns|1}}}+30}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:8*{{{columns|1}}}+32}}|}}}}}|0|{{{{{#expr:8*{{{columns|1}}}+32}}|0}}}}}<!--
----->}}|0}}<!---
--->}}| }}<!---
--->{{#if:{{{{{#expr:3+(2*{{{columns|1}}})}}|}}}|<!----
--------->{{Data bars/bar|detailed={{#if:{{#ifexpr:1*{{{style|1}}}}}||{{#ifexpr:{{{style|1}}}>4|true|}}}}<!----
--------->|size=16|color={{{{{#expr:1+{{{columns|1}}}}}|#ddd}}}|name={{{{{#expr:2+{{{columns|1}}}}}|xxx}}}<!----
--------->|title={{#ifexpr:{{{columns|1}}}>1|{{#expr:<!----------
-------------------------------->{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:{{{columns|1}}}+3}}|}}}}}|0|{{{{{#expr:{{{columns|1}}}+3}}|0}}}}}<!---
--->+{{#ifexpr:{{{columns|1}}}>1|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:{{{columns|1}}}+4}}|}}}}}|0|{{{{{#expr:{{{columns|1}}}+4}}|0}}}}}|0}}<!---
--->+{{#ifexpr:{{{columns|1}}}>2|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:{{{columns|1}}}+5}}|}}}}}|0|{{{{{#expr:{{{columns|1}}}+5}}|0}}}}}|0}}<!---
--->+{{#ifexpr:{{{columns|1}}}>3|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:{{{columns|1}}}+6}}|}}}}}|0|{{{{{#expr:{{{columns|1}}}+6}}|0}}}}}|0}}<!---
--->+{{#ifexpr:{{{columns|1}}}>4|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:{{{columns|1}}}+7}}|}}}}}|0|{{{{{#expr:{{{columns|1}}}+7}}|0}}}}}|0}}<!---
--->+{{#ifexpr:{{{columns|1}}}>5|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:{{{columns|1}}}+8}}|}}}}}|0|{{{{{#expr:{{{columns|1}}}+8}}|0}}}}}|0}}<!---
--->+{{#ifexpr:{{{columns|1}}}>6|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:{{{columns|1}}}+9}}|}}}}}|0|{{{{{#expr:{{{columns|1}}}+9}}|0}}}}}|0}}<!---
--->+{{#ifexpr:{{{columns|1}}}>7|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:{{{columns|1}}}+10}}|}}}}}|0|{{{{{#expr:{{{columns|1}}}+10}}|0}}}}}|0}}<!---
--->+{{#ifexpr:{{{columns|1}}}>8|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:{{{columns|1}}}+11}}|}}}}}|0|{{{{{#expr:{{{columns|1}}}+11}}|0}}}}}|0}}<!---
--->+{{#ifexpr:{{{columns|1}}}>9|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:{{{columns|1}}}+12}}|}}}}}|0|{{{{{#expr:{{{columns|1}}}+12}}|0}}}}}|0}}<!---
--->+{{#ifexpr:{{{columns|1}}}>10|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:{{{columns|1}}}+13}}|}}}}}|0|{{{{{#expr:{{{columns|1}}}+13}}|0}}}}}|0}}<!---
--->+{{#ifexpr:{{{columns|1}}}>11|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:{{{columns|1}}}+14}}|}}}}}|0|{{{{{#expr:{{{columns|1}}}+14}}|0}}}}}|0}}<!---
--->+{{#ifexpr:{{{columns|1}}}>12|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:{{{columns|1}}}+15}}|}}}}}|0|{{{{{#expr:{{{columns|1}}}+15}}|0}}}}}|0}}<!---
--->+{{#ifexpr:{{{columns|1}}}>13|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:{{{columns|1}}}+16}}|}}}}}|0|{{{{{#expr:{{{columns|1}}}+16}}|0}}}}}|0}}<!---
--->+{{#ifexpr:{{{columns|1}}}>14|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:{{{columns|1}}}+17}}|}}}}}|0|{{{{{#expr:{{{columns|1}}}+17}}|0}}}}}|0}}<!---
--->+{{#ifexpr:{{{columns|1}}}>15|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:{{{columns|1}}}+18}}|}}}}}|0|{{{{{#expr:{{{columns|1}}}+18}}|0}}}}}|0}}<!---
--->}}|}}}}<!----
--->{{#if:{{{{{#expr:3+(2*{{{columns|1}}})}}|}}}|<!----
--------->{{Data bars/bar|detailed={{#if:{{#ifexpr:1*{{{style|1}}}}}||{{#ifexpr:{{{style|1}}}>4|true|}}}}<!----
--------->|size=16|color={{{{{#expr:3+(2*{{{columns|1}}})}}|#ddd}}}|name={{{{{#expr:4+(2*{{{columns|1}}})}}|xxx}}}<!----
--------->|title={{#ifexpr:{{{columns|1}}}>1|{{#expr:<!----------
------------------------------->{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:2*{{{columns|1}}}+5}}|}}}}}|0|{{{{{#expr:2*{{{columns|1}}}+5}}|0}}}}}<!---
-->+{{#ifexpr:{{{columns|1}}}>1|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:2*{{{columns|1}}}+6}}|}}}}}|0|{{{{{#expr:2*{{{columns|1}}}+6}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>2|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:2*{{{columns|1}}}+7}}|}}}}}|0|{{{{{#expr:2*{{{columns|1}}}+7}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>3|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:2*{{{columns|1}}}+8}}|}}}}}|0|{{{{{#expr:2*{{{columns|1}}}+8}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>4|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:2*{{{columns|1}}}+9}}|}}}}}|0|{{{{{#expr:2*{{{columns|1}}}+9}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>5|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:2*{{{columns|1}}}+10}}|}}}}}|0|{{{{{#expr:2*{{{columns|1}}}+10}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>6|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:2*{{{columns|1}}}+11}}|}}}}}|0|{{{{{#expr:2*{{{columns|1}}}+11}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>7|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:2*{{{columns|1}}}+12}}|}}}}}|0|{{{{{#expr:2*{{{columns|1}}}+12}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>8|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:2*{{{columns|1}}}+13}}|}}}}}|0|{{{{{#expr:2*{{{columns|1}}}+13}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>9|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:2*{{{columns|1}}}+14}}|}}}}}|0|{{{{{#expr:2*{{{columns|1}}}+14}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>10|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:2*{{{columns|1}}}+15}}|}}}}}|0|{{{{{#expr:2*{{{columns|1}}}+15}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>11|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:2*{{{columns|1}}}+16}}|}}}}}|0|{{{{{#expr:2*{{{columns|1}}}+16}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>12|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:2*{{{columns|1}}}+17}}|}}}}}|0|{{{{{#expr:2*{{{columns|1}}}+17}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>13|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:2*{{{columns|1}}}+18}}|}}}}}|0|{{{{{#expr:2*{{{columns|1}}}+18}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>14|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:2*{{{columns|1}}}+19}}|}}}}}|0|{{{{{#expr:2*{{{columns|1}}}+19}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>15|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:2*{{{columns|1}}}+20}}|}}}}}|0|{{{{{#expr:2*{{{columns|1}}}+20}}|0}}}}}|0}}<!---
-->}}|}}}}<!----
-->{{#if:{{{{{#expr:5+(3*{{{columns|1}}})}}|}}}|<!----
--------->{{Data bars/bar|detailed={{#if:{{#ifexpr:1*{{{style|1}}}}}||{{#ifexpr:{{{style|1}}}>4|true|}}}}<!----
--------->|size=16|color={{{{{#expr:5+(3*{{{columns|1}}})}}|#ddd}}}|name={{{{{#expr:6+(3*{{{columns|1}}})}}|xxx}}}<!----
--------->|title={{#ifexpr:{{{columns|1}}}>1|{{#expr:<!----------
------------------------------->{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:3*{{{columns|1}}}+7}}|}}}}}|0|{{{{{#expr:3*{{{columns|1}}}+7}}|0}}}}}<!---
-->+{{#ifexpr:{{{columns|1}}}>1|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:3*{{{columns|1}}}+8}}|}}}}}|0|{{{{{#expr:3*{{{columns|1}}}+8}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>2|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:3*{{{columns|1}}}+9}}|}}}}}|0|{{{{{#expr:3*{{{columns|1}}}+9}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>3|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:3*{{{columns|1}}}+10}}|}}}}}|0|{{{{{#expr:3*{{{columns|1}}}+10}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>4|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:3*{{{columns|1}}}+11}}|}}}}}|0|{{{{{#expr:3*{{{columns|1}}}+11}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>5|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:3*{{{columns|1}}}+12}}|}}}}}|0|{{{{{#expr:3*{{{columns|1}}}+12}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>6|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:3*{{{columns|1}}}+13}}|}}}}}|0|{{{{{#expr:3*{{{columns|1}}}+13}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>7|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:3*{{{columns|1}}}+14}}|}}}}}|0|{{{{{#expr:3*{{{columns|1}}}+14}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>8|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:3*{{{columns|1}}}+15}}|}}}}}|0|{{{{{#expr:3*{{{columns|1}}}+15}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>9|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:3*{{{columns|1}}}+16}}|}}}}}|0|{{{{{#expr:3*{{{columns|1}}}+16}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>10|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:3*{{{columns|1}}}+17}}|}}}}}|0|{{{{{#expr:3*{{{columns|1}}}+17}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>11|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:3*{{{columns|1}}}+18}}|}}}}}|0|{{{{{#expr:3*{{{columns|1}}}+18}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>12|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:3*{{{columns|1}}}+19}}|}}}}}|0|{{{{{#expr:3*{{{columns|1}}}+19}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>13|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:3*{{{columns|1}}}+20}}|}}}}}|0|{{{{{#expr:3*{{{columns|1}}}+20}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>14|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:3*{{{columns|1}}}+21}}|}}}}}|0|{{{{{#expr:3*{{{columns|1}}}+21}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>15|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:3*{{{columns|1}}}+22}}|}}}}}|0|{{{{{#expr:3*{{{columns|1}}}+22}}|0}}}}}|0}}<!---
--->}}|}}}}<!----
--->{{#if:{{{{{#expr:7+(4*{{{columns|1}}})}}|}}}|<!----
--------->{{Data bars/bar|detailed={{#if:{{#ifexpr:1*{{{style|1}}}}}||{{#ifexpr:{{{style|1}}}>4|true|}}}}<!----
--------->|size=16|color={{{{{#expr:7+(4*{{{columns|1}}})}}|#ddd}}}|name={{{{{#expr:8+(4*{{{columns|1}}})}}|xxx}}}<!----
--------->|title={{#ifexpr:{{{columns|1}}}>1|{{#expr:<!----------
------------------------------->{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:4*{{{columns|1}}}+9}}|}}}}}|0|{{{{{#expr:4*{{{columns|1}}}+9}}|0}}}}}<!---
-->+{{#ifexpr:{{{columns|1}}}>1|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:4*{{{columns|1}}}+10}}|}}}}}|0|{{{{{#expr:4*{{{columns|1}}}+10}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>2|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:4*{{{columns|1}}}+11}}|}}}}}|0|{{{{{#expr:4*{{{columns|1}}}+11}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>3|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:4*{{{columns|1}}}+12}}|}}}}}|0|{{{{{#expr:4*{{{columns|1}}}+12}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>4|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:4*{{{columns|1}}}+13}}|}}}}}|0|{{{{{#expr:4*{{{columns|1}}}+13}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>5|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:4*{{{columns|1}}}+14}}|}}}}}|0|{{{{{#expr:4*{{{columns|1}}}+14}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>6|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:4*{{{columns|1}}}+15}}|}}}}}|0|{{{{{#expr:4*{{{columns|1}}}+15}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>7|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:4*{{{columns|1}}}+16}}|}}}}}|0|{{{{{#expr:4*{{{columns|1}}}+16}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>8|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:4*{{{columns|1}}}+17}}|}}}}}|0|{{{{{#expr:4*{{{columns|1}}}+17}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>9|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:4*{{{columns|1}}}+18}}|}}}}}|0|{{{{{#expr:4*{{{columns|1}}}+18}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>10|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:4*{{{columns|1}}}+19}}|}}}}}|0|{{{{{#expr:4*{{{columns|1}}}+19}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>11|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:4*{{{columns|1}}}+20}}|}}}}}|0|{{{{{#expr:4*{{{columns|1}}}+20}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>12|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:4*{{{columns|1}}}+21}}|}}}}}|0|{{{{{#expr:4*{{{columns|1}}}+21}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>13|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:4*{{{columns|1}}}+22}}|}}}}}|0|{{{{{#expr:4*{{{columns|1}}}+22}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>14|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:4*{{{columns|1}}}+23}}|}}}}}|0|{{{{{#expr:4*{{{columns|1}}}+23}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>15|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:4*{{{columns|1}}}+24}}|}}}}}|0|{{{{{#expr:4*{{{columns|1}}}+24}}|0}}}}}|0}}<!---
--->}}|}}}}<!----
--->{{#if:{{{{{#expr:9+(5*{{{columns|1}}})}}|}}}|<!----
--------->{{Data bars/bar|detailed={{#if:{{#ifexpr:1*{{{style|1}}}}}||{{#ifexpr:{{{style|1}}}>4|true|}}}}<!----
--------->|size=16|color={{{{{#expr:9+(5*{{{columns|1}}})}}|#ddd}}}|name={{{{{#expr:10+(5*{{{columns|1}}})}}|xxx}}}<!----
--------->|title={{#ifexpr:{{{columns|1}}}>1|{{#expr:<!----------
------------------------------->{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:5*{{{columns|1}}}+11}}|}}}}}|0|{{{{{#expr:5*{{{columns|1}}}+11}}|0}}}}}<!---
-->+{{#ifexpr:{{{columns|1}}}>1|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:5*{{{columns|1}}}+12}}|}}}}}|0|{{{{{#expr:5*{{{columns|1}}}+12}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>2|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:5*{{{columns|1}}}+13}}|}}}}}|0|{{{{{#expr:5*{{{columns|1}}}+13}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>3|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:5*{{{columns|1}}}+14}}|}}}}}|0|{{{{{#expr:5*{{{columns|1}}}+14}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>4|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:5*{{{columns|1}}}+15}}|}}}}}|0|{{{{{#expr:5*{{{columns|1}}}+15}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>5|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:5*{{{columns|1}}}+16}}|}}}}}|0|{{{{{#expr:5*{{{columns|1}}}+16}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>6|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:5*{{{columns|1}}}+17}}|}}}}}|0|{{{{{#expr:5*{{{columns|1}}}+17}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>7|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:5*{{{columns|1}}}+18}}|}}}}}|0|{{{{{#expr:5*{{{columns|1}}}+18}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>8|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:5*{{{columns|1}}}+19}}|}}}}}|0|{{{{{#expr:5*{{{columns|1}}}+19}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>9|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:5*{{{columns|1}}}+20}}|}}}}}|0|{{{{{#expr:5*{{{columns|1}}}+20}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>10|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:5*{{{columns|1}}}+21}}|}}}}}|0|{{{{{#expr:5*{{{columns|1}}}+21}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>11|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:5*{{{columns|1}}}+22}}|}}}}}|0|{{{{{#expr:5*{{{columns|1}}}+22}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>12|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:5*{{{columns|1}}}+23}}|}}}}}|0|{{{{{#expr:5*{{{columns|1}}}+23}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>13|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:5*{{{columns|1}}}+24}}|}}}}}|0|{{{{{#expr:5*{{{columns|1}}}+24}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>14|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:5*{{{columns|1}}}+25}}|}}}}}|0|{{{{{#expr:5*{{{columns|1}}}+25}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>15|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:5*{{{columns|1}}}+26}}|}}}}}|0|{{{{{#expr:5*{{{columns|1}}}+26}}|0}}}}}|0}}<!---
--->}}|}}}}<!----
--->{{#if:{{{{{#expr:11+(6*{{{columns|1}}})}}|}}}|<!----
--------->{{Data bars/bar|detailed={{#if:{{#ifexpr:1*{{{style|1}}}}}||{{#ifexpr:{{{style|1}}}>4|true|}}}}<!----
--------->|size=16|color={{{{{#expr:11+(6*{{{columns|1}}})}}|#ddd}}}|name={{{{{#expr:12+(6*{{{columns|1}}})}}|xxx}}}<!----
--------->|title={{#ifexpr:{{{columns|1}}}>1|{{#expr:<!----------
------------------------------->{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:6*{{{columns|1}}}+13}}|}}}}}|0|{{{{{#expr:6*{{{columns|1}}}+13}}|0}}}}}<!---
-->+{{#ifexpr:{{{columns|1}}}>1|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:6*{{{columns|1}}}+14}}|}}}}}|0|{{{{{#expr:6*{{{columns|1}}}+14}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>2|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:6*{{{columns|1}}}+15}}|}}}}}|0|{{{{{#expr:6*{{{columns|1}}}+15}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>3|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:6*{{{columns|1}}}+16}}|}}}}}|0|{{{{{#expr:6*{{{columns|1}}}+16}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>4|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:6*{{{columns|1}}}+17}}|}}}}}|0|{{{{{#expr:6*{{{columns|1}}}+17}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>5|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:6*{{{columns|1}}}+18}}|}}}}}|0|{{{{{#expr:6*{{{columns|1}}}+18}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>6|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:6*{{{columns|1}}}+19}}|}}}}}|0|{{{{{#expr:6*{{{columns|1}}}+19}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>7|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:6*{{{columns|1}}}+20}}|}}}}}|0|{{{{{#expr:6*{{{columns|1}}}+20}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>8|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:6*{{{columns|1}}}+21}}|}}}}}|0|{{{{{#expr:6*{{{columns|1}}}+21}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>9|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:6*{{{columns|1}}}+22}}|}}}}}|0|{{{{{#expr:6*{{{columns|1}}}+22}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>10|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:6*{{{columns|1}}}+23}}|}}}}}|0|{{{{{#expr:6*{{{columns|1}}}+23}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>11|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:6*{{{columns|1}}}+24}}|}}}}}|0|{{{{{#expr:6*{{{columns|1}}}+24}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>12|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:6*{{{columns|1}}}+25}}|}}}}}|0|{{{{{#expr:6*{{{columns|1}}}+25}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>13|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:6*{{{columns|1}}}+26}}|}}}}}|0|{{{{{#expr:6*{{{columns|1}}}+26}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>14|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:6*{{{columns|1}}}+27}}|}}}}}|0|{{{{{#expr:6*{{{columns|1}}}+27}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>15|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:6*{{{columns|1}}}+28}}|}}}}}|0|{{{{{#expr:6*{{{columns|1}}}+28}}|0}}}}}|0}}<!---
--->}}|}}}}<!----
--->{{#if:{{{{{#expr:13+(7*{{{columns|1}}})}}|}}}|<!----
--------->{{Data bars/bar|detailed={{#if:{{#ifexpr:1*{{{style|1}}}}}||{{#ifexpr:{{{style|1}}}>4|true|}}}}<!----
--------->|size=16|color={{{{{#expr:13+(7*{{{columns|1}}})}}|#ddd}}}|name={{{{{#expr:14+(7*{{{columns|1}}})}}|xxx}}}<!----
--------->|title={{#ifexpr:{{{columns|1}}}>1|{{#expr:<!----------
------------------------------->{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:7*{{{columns|1}}}+15}}|}}}}}|0|{{{{{#expr:7*{{{columns|1}}}+15}}|0}}}}}<!---
-->+{{#ifexpr:{{{columns|1}}}>1|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:7*{{{columns|1}}}+16}}|}}}}}|0|{{{{{#expr:7*{{{columns|1}}}+16}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>2|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:7*{{{columns|1}}}+17}}|}}}}}|0|{{{{{#expr:7*{{{columns|1}}}+17}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>3|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:7*{{{columns|1}}}+18}}|}}}}}|0|{{{{{#expr:7*{{{columns|1}}}+18}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>4|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:7*{{{columns|1}}}+19}}|}}}}}|0|{{{{{#expr:7*{{{columns|1}}}+19}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>5|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:7*{{{columns|1}}}+20}}|}}}}}|0|{{{{{#expr:7*{{{columns|1}}}+20}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>6|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:7*{{{columns|1}}}+21}}|}}}}}|0|{{{{{#expr:7*{{{columns|1}}}+21}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>7|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:7*{{{columns|1}}}+22}}|}}}}}|0|{{{{{#expr:7*{{{columns|1}}}+22}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>8|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:7*{{{columns|1}}}+23}}|}}}}}|0|{{{{{#expr:7*{{{columns|1}}}+23}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>9|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:7*{{{columns|1}}}+24}}|}}}}}|0|{{{{{#expr:7*{{{columns|1}}}+24}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>10|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:7*{{{columns|1}}}+25}}|}}}}}|0|{{{{{#expr:7*{{{columns|1}}}+25}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>11|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:7*{{{columns|1}}}+26}}|}}}}}|0|{{{{{#expr:7*{{{columns|1}}}+26}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>12|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:7*{{{columns|1}}}+27}}|}}}}}|0|{{{{{#expr:7*{{{columns|1}}}+27}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>13|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:7*{{{columns|1}}}+28}}|}}}}}|0|{{{{{#expr:7*{{{columns|1}}}+28}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>14|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:7*{{{columns|1}}}+29}}|}}}}}|0|{{{{{#expr:7*{{{columns|1}}}+29}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>15|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:7*{{{columns|1}}}+30}}|}}}}}|0|{{{{{#expr:7*{{{columns|1}}}+30}}|0}}}}}|0}}<!---
--->}}|}}}}<!----
--->{{#if:{{{{{#expr:15+(8*{{{columns|1}}})}}|}}}|<!----
--------->{{Data bars/bar|detailed={{#if:{{#ifexpr:1*{{{style|1}}}}}||{{#ifexpr:{{{style|1}}}>4|true|}}}}<!----
--------->|size=16|color={{{{{#expr:15+(8*{{{columns|1}}})}}|#ddd}}}|name={{{{{#expr:16+(8*{{{columns|1}}})}}|xxx}}}<!----
--------->|title={{#ifexpr:{{{columns|1}}}>1|{{#expr:<!----------
------------------------------->{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:8*{{{columns|1}}}+17}}|}}}}}|0|{{{{{#expr:8*{{{columns|1}}}+17}}|0}}}}}<!---
-->+{{#ifexpr:{{{columns|1}}}>1|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:8*{{{columns|1}}}+18}}|}}}}}|0|{{{{{#expr:8*{{{columns|1}}}+18}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>2|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:8*{{{columns|1}}}+19}}|}}}}}|0|{{{{{#expr:8*{{{columns|1}}}+19}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>3|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:8*{{{columns|1}}}+20}}|}}}}}|0|{{{{{#expr:8*{{{columns|1}}}+20}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>4|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:8*{{{columns|1}}}+21}}|}}}}}|0|{{{{{#expr:8*{{{columns|1}}}+21}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>5|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:8*{{{columns|1}}}+22}}|}}}}}|0|{{{{{#expr:8*{{{columns|1}}}+22}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>6|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:8*{{{columns|1}}}+23}}|}}}}}|0|{{{{{#expr:8*{{{columns|1}}}+23}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>7|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:8*{{{columns|1}}}+24}}|}}}}}|0|{{{{{#expr:8*{{{columns|1}}}+24}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>8|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:8*{{{columns|1}}}+25}}|}}}}}|0|{{{{{#expr:8*{{{columns|1}}}+25}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>9|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:8*{{{columns|1}}}+26}}|}}}}}|0|{{{{{#expr:8*{{{columns|1}}}+26}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>10|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:8*{{{columns|1}}}+27}}|}}}}}|0|{{{{{#expr:8*{{{columns|1}}}+27}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>11|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:8*{{{columns|1}}}+28}}|}}}}}|0|{{{{{#expr:8*{{{columns|1}}}+28}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>12|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:8*{{{columns|1}}}+29}}|}}}}}|0|{{{{{#expr:8*{{{columns|1}}}+29}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>13|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:8*{{{columns|1}}}+30}}|}}}}}|0|{{{{{#expr:8*{{{columns|1}}}+30}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>14|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:8*{{{columns|1}}}+31}}|}}}}}|0|{{{{{#expr:8*{{{columns|1}}}+31}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>15|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:8*{{{columns|1}}}+32}}|}}}}}|0|{{{{{#expr:8*{{{columns|1}}}+32}}|0}}}}}|0}}<!---
--->}}|}}}}<!----
--->|}}|}}|}}|}}|}}|}}|}}|}}}}}}
{{#if:{{{source|}}}|
{{!}}-
{{!}} colspan="2" style="text-align:right;font-style:italic;" {{!}} <small>Source: {{{source|}}}</small>|}}
|}</includeonly><noinclude>
{{Documentation}}
<!-- Add categories to the /doc subpage, not here! -->
{{Graph, chart and plot formatting and function templates}}
</noinclude>
n6uarhyp262vp0d3e12fvlfemwov5ih
309757
309756
2026-09-26T17:42:33Z
Isma4l
41797
309757
wikitext
text/x-wiki
<includeonly>{| align="{{{align|{{{float|none}}}}}}" cellspacing="8" cellpadding="0" class="plainlinks" {{#if:{{#ifexpr:1*{{{style|1}}}}}||{{#ifexpr:{{{style|1}}}*{{#expr:{{{style|1}}}<>5}}*{{#expr:{{{style|1}}}<>6}}*{{#expr:{{{style|1}}}<>9}}*{{#expr:{{{style|1}}}<>10}}*{{#expr:{{{style|1}}}<>13}}*{{#expr:{{{style|1}}}<>14}}>2|style="background:#eee; border-left:2px solid #ccc; border-top:2px solid #ccc; border-right:2px solid #777; border-bottom:2px solid #777;"|}}}}
{{#if:{{{title|}}}|
{{!}} colspan="2" align="center" {{!}} '''{{{title}}}'''{{#if:{{{subtitle|}}}|<br/><sup>{{{subtitle}}}</sup>|}}|}}
{{#if:{{{{{#expr:3+(2*{{{columns|1}}})}}|}}}||
{{!}}-
{{!}} style="text-align:center;" {{!}} {{{{{#expr:2+{{{columns|1}}}}}|}}}}}
|-
|
{| {{#if:{{#ifexpr:1*{{{style|1}}}}}||{{#ifexpr:{{#expr:{{{style|1}}} / 2 round 0 }}*2={{{style|1}}}|cellspacing="8"|}}}} style="text-align:center;border-collapse:collapse;{{#if:{{#ifexpr:1*{{{style|1}}}}}||{{#ifexpr:{{{style|1}}}*{{#expr:{{{style|1}}}<>5}}*{{#expr:{{{style|1}}}<>6}}*{{#expr:{{{style|1}}}<>9}}*{{#expr:{{{style|1}}}<>10}}*{{#expr:{{{style|1}}}<>13}}*{{#expr:{{{style|1}}}<>14}}>2|background:#eee; border-left:1px solid #777; border-top:1px solid #777; border-right:1px solid #ccc; border-bottom:1px solid #ccc;|}}}}"
| style="text-align:center;" {{#if:{{#ifexpr:1*{{{style|1}}}}}||{{#ifexpr:{{{style|1}}}*{{#expr:{{{style|1}}}<>5}}*{{#expr:{{{style|1}}}<>6}}*{{#expr:{{{style|1}}}<>9}}*{{#expr:{{{style|1}}}<>10}}*{{#expr:{{{style|1}}}<>13}}*{{#expr:{{{style|1}}}<>14}}>2|style="padding:8px 8px 8px 8px;"|}}}} |
{| cellspacing="0" cellpadding="2"
|- style="vertical-align:bottom;"
<!-------------
-- Column 1 --
-------------->
{{#if:{{#ifexpr:1*{{{style|1}}}}}||{{#ifexpr:{{#expr:{{{style|1}}} / 2 round 0 }}*2={{{style|1}}}|
! style="text-align:right;vertical-align:bottom;padding-right:4px;" {{!}} {{{1|xxx}}}|}}}}
{{Data bars/column
| detailed = {{#if:{{#ifexpr:1*{{{style|1}}}}}||{{#ifexpr:{{{style|1}}}<5||{{#ifexpr:{{{style|1}}}>8|{{#ifexpr:{{{style|1}}}<13||true}}|true}}}}}}
| scale={{#if:{{#ifexpr:1*{{{scale|1}}}}}|1|{{{scale|1}}}}}
| style={{#if:{{#ifexpr:1*{{{style|1}}}}}|1|{{{style|1}}}}}
| color1 = {{{{{#expr:1+{{{columns|1}}}}}|#ddd}}}
| color2 = {{{{{#expr:3+(2*{{{columns|1}}})}}|#ddd}}}
| color3 = {{{{{#expr:5+(3*{{{columns|1}}})}}|#ddd}}}
| color4 = {{{{{#expr:7+(4*{{{columns|1}}})}}|#ddd}}}
| color5 = {{{{{#expr:9+(5*{{{columns|1}}})}}|#ddd}}}
| color6 = {{{{{#expr:11+(6*{{{columns|1}}})}}|#ddd}}}
| color7 = {{{{{#expr:13+(7*{{{columns|1}}})}}|#ddd}}}
| color8 = {{{{{#expr:15+(8*{{{columns|1}}})}}|#ddd}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:{{{columns|1}}} + 3}}|}}}}}|0|{{{{{#expr:{{{columns|1}}} + 3}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:2*{{{columns|1}}}+5}}|}}}}}|0|{{{{{#expr:2*{{{columns|1}}}+5}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:3*{{{columns|1}}}+7}}|}}}}}|0|{{{{{#expr:3*{{{columns|1}}}+7}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:4*{{{columns|1}}}+9}}|}}}}}|0|{{{{{#expr:4*{{{columns|1}}}+9}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:5*{{{columns|1}}}+11}}|}}}}}|0|{{{{{#expr:5*{{{columns|1}}}+11}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:6*{{{columns|1}}}+13}}|}}}}}|0|{{{{{#expr:6*{{{columns|1}}}+13}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:7*{{{columns|1}}}+15}}|}}}}}|0|{{{{{#expr:7*{{{columns|1}}}+15}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:8*{{{columns|1}}}+17}}|}}}}}|0|{{{{{#expr:8*{{{columns|1}}}+17}}|0}}}}}
}}
<!-------------
-- Column 2 --
-------------->{{#ifexpr:{{{columns|1}}}>1|
{{#if:{{#ifexpr:1*{{{style|1}}}}}||{{#ifexpr:{{#expr:{{{style|1}}} / 2 round 0 }}*2={{{style|1}}}|
! style="text-align:right;vertical-align:bottom;padding-right:4px;" {{!}} {{{2|xxx}}}|}}}}
{{Data bars/column
| detailed = {{#if:{{#ifexpr:1*{{{style|1}}}}}||{{#ifexpr:{{{style|1}}}<5||{{#ifexpr:{{{style|1}}}>8|{{#ifexpr:{{{style|1}}}<13||true}}|true}}}}}}
| scale={{#if:{{#ifexpr:1*{{{scale|1}}}}}|1|{{{scale|1}}}}}
| style={{#if:{{#ifexpr:1*{{{style|1}}}}}|1|{{{style|1}}}}}
| color1 = {{{{{#expr:1+{{{columns|1}}}}}|#ddd}}}
| color2 = {{{{{#expr:3+(2*{{{columns|1}}})}}|#ddd}}}
| color3 = {{{{{#expr:5+(3*{{{columns|1}}})}}|#ddd}}}
| color4 = {{{{{#expr:7+(4*{{{columns|1}}})}}|#ddd}}}
| color5 = {{{{{#expr:9+(5*{{{columns|1}}})}}|#ddd}}}
| color6 = {{{{{#expr:11+(6*{{{columns|1}}})}}|#ddd}}}
| color7 = {{{{{#expr:13+(7*{{{columns|1}}})}}|#ddd}}}
| color8 = {{{{{#expr:15+(8*{{{columns|1}}})}}|#ddd}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:{{{columns|1}}} + 4}}|}}}}}|0|{{{{{#expr:{{{columns|1}}} + 4}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:2*{{{columns|1}}}+6}}|}}}}}|0|{{{{{#expr:2*{{{columns|1}}}+6}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:3*{{{columns|1}}}+8}}|}}}}}|0|{{{{{#expr:3*{{{columns|1}}}+8}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:4*{{{columns|1}}}+10}}|}}}}}|0|{{{{{#expr:4*{{{columns|1}}}+10}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:5*{{{columns|1}}}+12}}|}}}}}|0|{{{{{#expr:5*{{{columns|1}}}+12}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:6*{{{columns|1}}}+14}}|}}}}}|0|{{{{{#expr:6*{{{columns|1}}}+14}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:7*{{{columns|1}}}+16}}|}}}}}|0|{{{{{#expr:7*{{{columns|1}}}+16}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:8*{{{columns|1}}}+18}}|}}}}}|0|{{{{{#expr:8*{{{columns|1}}}+18}}|0}}}}}
}}
<!-------------
-- Column 3 --
-------------->{{#ifexpr:{{{columns|1}}}>2|
{{#if:{{#ifexpr:1*{{{style|1}}}}}||{{#ifexpr:{{#expr:{{{style|1}}} / 2 round 0 }}*2={{{style|1}}}|
! style="text-align:right;vertical-align:bottom;padding-right:4px;" {{!}} {{{3|xxx}}}|}}}}
{{Data bars/column
| detailed = {{#if:{{#ifexpr:1*{{{style|1}}}}}||{{#ifexpr:{{{style|1}}}<5||{{#ifexpr:{{{style|1}}}>8|{{#ifexpr:{{{style|1}}}<13||true}}|true}}}}}}
| scale={{#if:{{#ifexpr:1*{{{scale|1}}}}}|1|{{{scale|1}}}}}
| style={{#if:{{#ifexpr:1*{{{style|1}}}}}|1|{{{style|1}}}}}
| color1 = {{{{{#expr:1+{{{columns|1}}}}}|#ddd}}}
| color2 = {{{{{#expr:3+(2*{{{columns|1}}})}}|#ddd}}}
| color3 = {{{{{#expr:5+(3*{{{columns|1}}})}}|#ddd}}}
| color4 = {{{{{#expr:7+(4*{{{columns|1}}})}}|#ddd}}}
| color5 = {{{{{#expr:9+(5*{{{columns|1}}})}}|#ddd}}}
| color6 = {{{{{#expr:11+(6*{{{columns|1}}})}}|#ddd}}}
| color7 = {{{{{#expr:13+(7*{{{columns|1}}})}}|#ddd}}}
| color8 = {{{{{#expr:15+(8*{{{columns|1}}})}}|#ddd}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:{{{columns|1}}} + 5}}|}}}}}|0|{{{{{#expr:{{{columns|1}}} + 5}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:2*{{{columns|1}}}+7}}|}}}}}|0|{{{{{#expr:2*{{{columns|1}}}+7}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:3*{{{columns|1}}}+9}}|}}}}}|0|{{{{{#expr:3*{{{columns|1}}}+9}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:4*{{{columns|1}}}+11}}|}}}}}|0|{{{{{#expr:4*{{{columns|1}}}+11}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:5*{{{columns|1}}}+13}}|}}}}}|0|{{{{{#expr:5*{{{columns|1}}}+13}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:6*{{{columns|1}}}+15}}|}}}}}|0|{{{{{#expr:6*{{{columns|1}}}+15}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:7*{{{columns|1}}}+17}}|}}}}}|0|{{{{{#expr:7*{{{columns|1}}}+17}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:8*{{{columns|1}}}+19}}|}}}}}|0|{{{{{#expr:8*{{{columns|1}}}+19}}|0}}}}}
}}
<!-------------
-- Column 4 --
-------------->{{#ifexpr:{{{columns|1}}}>3|
{{#if:{{#ifexpr:1*{{{style|1}}}}}||{{#ifexpr:{{#expr:{{{style|1}}} / 2 round 0 }}*2={{{style|1}}}|
! style="text-align:right;vertical-align:bottom;padding-right:4px;" {{!}} {{{4|xxx}}}|}}}}
{{Data bars/column
| detailed = {{#if:{{#ifexpr:1*{{{style|1}}}}}||{{#ifexpr:{{{style|1}}}<5||{{#ifexpr:{{{style|1}}}>8|{{#ifexpr:{{{style|1}}}<13||true}}|true}}}}}}
| scale={{#if:{{#ifexpr:1*{{{scale|1}}}}}|1|{{{scale|1}}}}}
| style={{#if:{{#ifexpr:1*{{{style|1}}}}}|1|{{{style|1}}}}}
| color1 = {{{{{#expr:1+{{{columns|1}}}}}|#ddd}}}
| color2 = {{{{{#expr:3+(2*{{{columns|1}}})}}|#ddd}}}
| color3 = {{{{{#expr:5+(3*{{{columns|1}}})}}|#ddd}}}
| color4 = {{{{{#expr:7+(4*{{{columns|1}}})}}|#ddd}}}
| color5 = {{{{{#expr:9+(5*{{{columns|1}}})}}|#ddd}}}
| color6 = {{{{{#expr:11+(6*{{{columns|1}}})}}|#ddd}}}
| color7 = {{{{{#expr:13+(7*{{{columns|1}}})}}|#ddd}}}
| color8 = {{{{{#expr:15+(8*{{{columns|1}}})}}|#ddd}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:{{{columns|1}}} + 6}}|}}}}}|0|{{{{{#expr:{{{columns|1}}} + 6}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:2*{{{columns|1}}}+8}}|}}}}}|0|{{{{{#expr:2*{{{columns|1}}}+8}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:3*{{{columns|1}}}+10}}|}}}}}|0|{{{{{#expr:3*{{{columns|1}}}+10}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:4*{{{columns|1}}}+12}}|}}}}}|0|{{{{{#expr:4*{{{columns|1}}}+12}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:5*{{{columns|1}}}+14}}|}}}}}|0|{{{{{#expr:5*{{{columns|1}}}+14}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:6*{{{columns|1}}}+16}}|}}}}}|0|{{{{{#expr:6*{{{columns|1}}}+16}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:7*{{{columns|1}}}+18}}|}}}}}|0|{{{{{#expr:7*{{{columns|1}}}+18}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:8*{{{columns|1}}}+20}}|}}}}}|0|{{{{{#expr:8*{{{columns|1}}}+20}}|0}}}}}
}}
<!-------------
-- Column 5 --
-------------->{{#ifexpr:{{{columns|1}}}>4|
{{#if:{{#ifexpr:1*{{{style|1}}}}}||{{#ifexpr:{{#expr:{{{style|1}}} / 2 round 0 }}*2={{{style|1}}}|
! style="text-align:right;vertical-align:bottom;padding-right:4px;" {{!}} {{{5|xxx}}}|}}}}
{{Data bars/column
| detailed = {{#if:{{#ifexpr:1*{{{style|1}}}}}||{{#ifexpr:{{{style|1}}}<5||{{#ifexpr:{{{style|1}}}>8|{{#ifexpr:{{{style|1}}}<13||true}}|true}}}}}}
| scale={{#if:{{#ifexpr:1*{{{scale|1}}}}}|1|{{{scale|1}}}}}
| style={{#if:{{#ifexpr:1*{{{style|1}}}}}|1|{{{style|1}}}}}
| color1 = {{{{{#expr:1+{{{columns|1}}}}}|#ddd}}}
| color2 = {{{{{#expr:3+(2*{{{columns|1}}})}}|#ddd}}}
| color3 = {{{{{#expr:5+(3*{{{columns|1}}})}}|#ddd}}}
| color4 = {{{{{#expr:7+(4*{{{columns|1}}})}}|#ddd}}}
| color5 = {{{{{#expr:9+(5*{{{columns|1}}})}}|#ddd}}}
| color6 = {{{{{#expr:11+(6*{{{columns|1}}})}}|#ddd}}}
| color7 = {{{{{#expr:13+(7*{{{columns|1}}})}}|#ddd}}}
| color8 = {{{{{#expr:15+(8*{{{columns|1}}})}}|#ddd}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:{{{columns|1}}} + 7}}|}}}}}|0|{{{{{#expr:{{{columns|1}}} + 7}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:2*{{{columns|1}}}+9}}|}}}}}|0|{{{{{#expr:2*{{{columns|1}}}+9}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:3*{{{columns|1}}}+11}}|}}}}}|0|{{{{{#expr:3*{{{columns|1}}}+11}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:4*{{{columns|1}}}+13}}|}}}}}|0|{{{{{#expr:4*{{{columns|1}}}+13}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:5*{{{columns|1}}}+15}}|}}}}}|0|{{{{{#expr:5*{{{columns|1}}}+15}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:6*{{{columns|1}}}+17}}|}}}}}|0|{{{{{#expr:6*{{{columns|1}}}+17}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:7*{{{columns|1}}}+19}}|}}}}}|0|{{{{{#expr:7*{{{columns|1}}}+19}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:8*{{{columns|1}}}+21}}|}}}}}|0|{{{{{#expr:8*{{{columns|1}}}+21}}|0}}}}}
}}
<!-------------
-- Column 6 --
-------------->{{#ifexpr:{{{columns|1}}}>5|
{{#if:{{#ifexpr:1*{{{style|1}}}}}||{{#ifexpr:{{#expr:{{{style|1}}} / 2 round 0 }}*2={{{style|1}}}|
! style="text-align:right;vertical-align:bottom;padding-right:4px;" {{!}} {{{6|xxx}}}|}}}}
{{Data bars/column
| detailed = {{#if:{{#ifexpr:1*{{{style|1}}}}}||{{#ifexpr:{{{style|1}}}<5||{{#ifexpr:{{{style|1}}}>8|{{#ifexpr:{{{style|1}}}<13||true}}|true}}}}}}
| scale={{#if:{{#ifexpr:1*{{{scale|1}}}}}|1|{{{scale|1}}}}}
| style={{#if:{{#ifexpr:1*{{{style|1}}}}}|1|{{{style|1}}}}}
| color1 = {{{{{#expr:1+{{{columns|1}}}}}|#ddd}}}
| color2 = {{{{{#expr:3+(2*{{{columns|1}}})}}|#ddd}}}
| color3 = {{{{{#expr:5+(3*{{{columns|1}}})}}|#ddd}}}
| color4 = {{{{{#expr:7+(4*{{{columns|1}}})}}|#ddd}}}
| color5 = {{{{{#expr:9+(5*{{{columns|1}}})}}|#ddd}}}
| color6 = {{{{{#expr:11+(6*{{{columns|1}}})}}|#ddd}}}
| color7 = {{{{{#expr:13+(7*{{{columns|1}}})}}|#ddd}}}
| color8 = {{{{{#expr:15+(8*{{{columns|1}}})}}|#ddd}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:{{{columns|1}}} + 8}}|}}}}}|0|{{{{{#expr:{{{columns|1}}} + 8}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:2*{{{columns|1}}}+10}}|}}}}}|0|{{{{{#expr:2*{{{columns|1}}}+10}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:3*{{{columns|1}}}+12}}|}}}}}|0|{{{{{#expr:3*{{{columns|1}}}+12}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:4*{{{columns|1}}}+14}}|}}}}}|0|{{{{{#expr:4*{{{columns|1}}}+14}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:5*{{{columns|1}}}+16}}|}}}}}|0|{{{{{#expr:5*{{{columns|1}}}+16}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:6*{{{columns|1}}}+18}}|}}}}}|0|{{{{{#expr:6*{{{columns|1}}}+18}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:7*{{{columns|1}}}+20}}|}}}}}|0|{{{{{#expr:7*{{{columns|1}}}+20}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:8*{{{columns|1}}}+22}}|}}}}}|0|{{{{{#expr:8*{{{columns|1}}}+22}}|0}}}}}
}}
<!-------------
-- Column 7 --
-------------->{{#ifexpr:{{{columns|1}}}>6|
{{#if:{{#ifexpr:1*{{{style|1}}}}}||{{#ifexpr:{{#expr:{{{style|1}}} / 2 round 0 }}*2={{{style|1}}}|
! style="text-align:right;vertical-align:bottom;padding-right:4px;" {{!}} {{{7|xxx}}}|}}}}
{{Data bars/column
| detailed = {{#if:{{#ifexpr:1*{{{style|1}}}}}||{{#ifexpr:{{{style|1}}}<5||{{#ifexpr:{{{style|1}}}>8|{{#ifexpr:{{{style|1}}}<13||true}}|true}}}}}}
| scale={{#if:{{#ifexpr:1*{{{scale|1}}}}}|1|{{{scale|1}}}}}
| style={{#if:{{#ifexpr:1*{{{style|1}}}}}|1|{{{style|1}}}}}
| color1 = {{{{{#expr:1+{{{columns|1}}}}}|#ddd}}}
| color2 = {{{{{#expr:3+(2*{{{columns|1}}})}}|#ddd}}}
| color3 = {{{{{#expr:5+(3*{{{columns|1}}})}}|#ddd}}}
| color4 = {{{{{#expr:7+(4*{{{columns|1}}})}}|#ddd}}}
| color5 = {{{{{#expr:9+(5*{{{columns|1}}})}}|#ddd}}}
| color6 = {{{{{#expr:11+(6*{{{columns|1}}})}}|#ddd}}}
| color7 = {{{{{#expr:13+(7*{{{columns|1}}})}}|#ddd}}}
| color8 = {{{{{#expr:15+(8*{{{columns|1}}})}}|#ddd}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:{{{columns|1}}} + 9}}|}}}}}|0|{{{{{#expr:{{{columns|1}}} + 9}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:2*{{{columns|1}}}+11}}|}}}}}|0|{{{{{#expr:2*{{{columns|1}}}+11}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:3*{{{columns|1}}}+13}}|}}}}}|0|{{{{{#expr:3*{{{columns|1}}}+13}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:4*{{{columns|1}}}+15}}|}}}}}|0|{{{{{#expr:4*{{{columns|1}}}+15}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:5*{{{columns|1}}}+17}}|}}}}}|0|{{{{{#expr:5*{{{columns|1}}}+17}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:6*{{{columns|1}}}+19}}|}}}}}|0|{{{{{#expr:6*{{{columns|1}}}+19}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:7*{{{columns|1}}}+21}}|}}}}}|0|{{{{{#expr:7*{{{columns|1}}}+21}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:8*{{{columns|1}}}+23}}|}}}}}|0|{{{{{#expr:8*{{{columns|1}}}+23}}|0}}}}}
}}
<!-------------
-- Column 8 --
-------------->{{#ifexpr:{{{columns|1}}}>7|
{{#if:{{#ifexpr:1*{{{style|1}}}}}||{{#ifexpr:{{#expr:{{{style|1}}} / 2 round 0 }}*2={{{style|1}}}|
! style="text-align:right;vertical-align:bottom;padding-right:4px;" {{!}} {{{8|xxx}}}|}}}}
{{Data bars/column
| detailed = {{#if:{{#ifexpr:1*{{{style|1}}}}}||{{#ifexpr:{{{style|1}}}<5||{{#ifexpr:{{{style|1}}}>8|{{#ifexpr:{{{style|1}}}<13||true}}|true}}}}}}
| scale={{#if:{{#ifexpr:1*{{{scale|1}}}}}|1|{{{scale|1}}}}}
| style={{#if:{{#ifexpr:1*{{{style|1}}}}}|1|{{{style|1}}}}}
| color1 = {{{{{#expr:1+{{{columns|1}}}}}|#ddd}}}
| color2 = {{{{{#expr:3+(2*{{{columns|1}}})}}|#ddd}}}
| color3 = {{{{{#expr:5+(3*{{{columns|1}}})}}|#ddd}}}
| color4 = {{{{{#expr:7+(4*{{{columns|1}}})}}|#ddd}}}
| color5 = {{{{{#expr:9+(5*{{{columns|1}}})}}|#ddd}}}
| color6 = {{{{{#expr:11+(6*{{{columns|1}}})}}|#ddd}}}
| color7 = {{{{{#expr:13+(7*{{{columns|1}}})}}|#ddd}}}
| color8 = {{{{{#expr:15+(8*{{{columns|1}}})}}|#ddd}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:{{{columns|1}}} + 10}}|}}}}}|0|{{{{{#expr:{{{columns|1}}} + 10}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:2*{{{columns|1}}}+12}}|}}}}}|0|{{{{{#expr:2*{{{columns|1}}}+12}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:3*{{{columns|1}}}+14}}|}}}}}|0|{{{{{#expr:3*{{{columns|1}}}+14}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:4*{{{columns|1}}}+16}}|}}}}}|0|{{{{{#expr:4*{{{columns|1}}}+16}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:5*{{{columns|1}}}+18}}|}}}}}|0|{{{{{#expr:5*{{{columns|1}}}+18}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:6*{{{columns|1}}}+20}}|}}}}}|0|{{{{{#expr:6*{{{columns|1}}}+20}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:7*{{{columns|1}}}+22}}|}}}}}|0|{{{{{#expr:7*{{{columns|1}}}+22}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:8*{{{columns|1}}}+24}}|}}}}}|0|{{{{{#expr:8*{{{columns|1}}}+24}}|0}}}}}
}}
<!-------------
-- Column 9 --
-------------->{{#ifexpr:{{{columns|1}}}>8|
{{#if:{{#ifexpr:1*{{{style|1}}}}}||{{#ifexpr:{{#expr:{{{style|1}}} / 2 round 0 }}*2={{{style|1}}}|
! style="text-align:right;vertical-align:bottom;padding-right:4px;" {{!}} {{{9|xxx}}}|}}}}
{{Data bars/column
| detailed = {{#if:{{#ifexpr:1*{{{style|1}}}}}||{{#ifexpr:{{{style|1}}}<5||{{#ifexpr:{{{style|1}}}>8|{{#ifexpr:{{{style|1}}}<13||true}}|true}}}}}}
| scale={{#if:{{#ifexpr:1*{{{scale|1}}}}}|1|{{{scale|1}}}}}
| style={{#if:{{#ifexpr:1*{{{style|1}}}}}|1|{{{style|1}}}}}
| color1 = {{{{{#expr:1+{{{columns|1}}}}}|#ddd}}}
| color2 = {{{{{#expr:3+(2*{{{columns|1}}})}}|#ddd}}}
| color3 = {{{{{#expr:5+(3*{{{columns|1}}})}}|#ddd}}}
| color4 = {{{{{#expr:7+(4*{{{columns|1}}})}}|#ddd}}}
| color5 = {{{{{#expr:9+(5*{{{columns|1}}})}}|#ddd}}}
| color6 = {{{{{#expr:11+(6*{{{columns|1}}})}}|#ddd}}}
| color7 = {{{{{#expr:13+(7*{{{columns|1}}})}}|#ddd}}}
| color8 = {{{{{#expr:15+(8*{{{columns|1}}})}}|#ddd}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:{{{columns|1}}} + 11}}|}}}}}|0|{{{{{#expr:{{{columns|1}}} + 11}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:2*{{{columns|1}}}+13}}|}}}}}|0|{{{{{#expr:2*{{{columns|1}}}+13}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:3*{{{columns|1}}}+15}}|}}}}}|0|{{{{{#expr:3*{{{columns|1}}}+15}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:4*{{{columns|1}}}+17}}|}}}}}|0|{{{{{#expr:4*{{{columns|1}}}+17}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:5*{{{columns|1}}}+19}}|}}}}}|0|{{{{{#expr:5*{{{columns|1}}}+19}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:6*{{{columns|1}}}+21}}|}}}}}|0|{{{{{#expr:6*{{{columns|1}}}+21}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:7*{{{columns|1}}}+23}}|}}}}}|0|{{{{{#expr:7*{{{columns|1}}}+23}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:8*{{{columns|1}}}+25}}|}}}}}|0|{{{{{#expr:8*{{{columns|1}}}+25}}|0}}}}}
}}
<!-------------
-- Column 10 --
-------------->{{#ifexpr:{{{columns|1}}}>9|
{{#if:{{#ifexpr:1*{{{style|1}}}}}||{{#ifexpr:{{#expr:{{{style|1}}} / 2 round 0 }}*2={{{style|1}}}|
! style="text-align:right;vertical-align:bottom;padding-right:4px;" {{!}} {{{10|xxx}}}|}}}}
{{Data bars/column
| detailed = {{#if:{{#ifexpr:1*{{{style|1}}}}}||{{#ifexpr:{{{style|1}}}<5||{{#ifexpr:{{{style|1}}}>8|{{#ifexpr:{{{style|1}}}<13||true}}|true}}}}}}
| scale={{#if:{{#ifexpr:1*{{{scale|1}}}}}|1|{{{scale|1}}}}}
| style={{#if:{{#ifexpr:1*{{{style|1}}}}}|1|{{{style|1}}}}}
| color1 = {{{{{#expr:1+{{{columns|1}}}}}|#ddd}}}
| color2 = {{{{{#expr:3+(2*{{{columns|1}}})}}|#ddd}}}
| color3 = {{{{{#expr:5+(3*{{{columns|1}}})}}|#ddd}}}
| color4 = {{{{{#expr:7+(4*{{{columns|1}}})}}|#ddd}}}
| color5 = {{{{{#expr:9+(5*{{{columns|1}}})}}|#ddd}}}
| color6 = {{{{{#expr:11+(6*{{{columns|1}}})}}|#ddd}}}
| color7 = {{{{{#expr:13+(7*{{{columns|1}}})}}|#ddd}}}
| color8 = {{{{{#expr:15+(8*{{{columns|1}}})}}|#ddd}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:{{{columns|1}}} + 12}}|}}}}}|0|{{{{{#expr:{{{columns|1}}} + 12}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:2*{{{columns|1}}}+14}}|}}}}}|0|{{{{{#expr:2*{{{columns|1}}}+14}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:3*{{{columns|1}}}+16}}|}}}}}|0|{{{{{#expr:3*{{{columns|1}}}+16}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:4*{{{columns|1}}}+18}}|}}}}}|0|{{{{{#expr:4*{{{columns|1}}}+18}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:5*{{{columns|1}}}+20}}|}}}}}|0|{{{{{#expr:5*{{{columns|1}}}+20}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:6*{{{columns|1}}}+22}}|}}}}}|0|{{{{{#expr:6*{{{columns|1}}}+22}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:7*{{{columns|1}}}+24}}|}}}}}|0|{{{{{#expr:7*{{{columns|1}}}+24}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:8*{{{columns|1}}}+26}}|}}}}}|0|{{{{{#expr:8*{{{columns|1}}}+26}}|0}}}}}
}}
<!-------------
-- Column 11 --
-------------->{{#ifexpr:{{{columns|1}}}>10|
{{#if:{{#ifexpr:1*{{{style|1}}}}}||{{#ifexpr:{{#expr:{{{style|1}}} / 2 round 0 }}*2={{{style|1}}}|
! style="text-align:right;vertical-align:bottom;padding-right:4px;" {{!}} {{{11|xxx}}}|}}}}
{{Data bars/column
| detailed = {{#if:{{#ifexpr:1*{{{style|1}}}}}||{{#ifexpr:{{{style|1}}}<5||{{#ifexpr:{{{style|1}}}>8|{{#ifexpr:{{{style|1}}}<13||true}}|true}}}}}}
| scale={{#if:{{#ifexpr:1*{{{scale|1}}}}}|1|{{{scale|1}}}}}
| style={{#if:{{#ifexpr:1*{{{style|1}}}}}|1|{{{style|1}}}}}
| color1 = {{{{{#expr:1+{{{columns|1}}}}}|#ddd}}}
| color2 = {{{{{#expr:3+(2*{{{columns|1}}})}}|#ddd}}}
| color3 = {{{{{#expr:5+(3*{{{columns|1}}})}}|#ddd}}}
| color4 = {{{{{#expr:7+(4*{{{columns|1}}})}}|#ddd}}}
| color5 = {{{{{#expr:9+(5*{{{columns|1}}})}}|#ddd}}}
| color6 = {{{{{#expr:11+(6*{{{columns|1}}})}}|#ddd}}}
| color7 = {{{{{#expr:13+(7*{{{columns|1}}})}}|#ddd}}}
| color8 = {{{{{#expr:15+(8*{{{columns|1}}})}}|#ddd}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:{{{columns|1}}} + 13}}|}}}}}|0|{{{{{#expr:{{{columns|1}}} + 13}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:2*{{{columns|1}}}+15}}|}}}}}|0|{{{{{#expr:2*{{{columns|1}}}+15}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:3*{{{columns|1}}}+17}}|}}}}}|0|{{{{{#expr:3*{{{columns|1}}}+17}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:4*{{{columns|1}}}+19}}|}}}}}|0|{{{{{#expr:4*{{{columns|1}}}+19}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:5*{{{columns|1}}}+21}}|}}}}}|0|{{{{{#expr:5*{{{columns|1}}}+21}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:6*{{{columns|1}}}+23}}|}}}}}|0|{{{{{#expr:6*{{{columns|1}}}+23}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:7*{{{columns|1}}}+25}}|}}}}}|0|{{{{{#expr:7*{{{columns|1}}}+25}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:8*{{{columns|1}}}+27}}|}}}}}|0|{{{{{#expr:8*{{{columns|1}}}+27}}|0}}}}}
}}
<!--------------
-- Column 12 --
--------------->{{#ifexpr:{{{columns|1}}}>11|
{{#if:{{#ifexpr:1*{{{style|1}}}}}||{{#ifexpr:{{#expr:{{{style|1}}} / 2 round 0 }}*2={{{style|1}}}|
! style="text-align:right;vertical-align:bottom;padding-right:4px;" {{!}} {{{12|xxx}}}|}}}}
{{Data bars/column
| detailed = {{#if:{{#ifexpr:1*{{{style|1}}}}}||{{#ifexpr:{{{style|1}}}<5||{{#ifexpr:{{{style|1}}}>8|{{#ifexpr:{{{style|1}}}<13||true}}|true}}}}}}
| scale={{#if:{{#ifexpr:1*{{{scale|1}}}}}|1|{{{scale|1}}}}}
| style={{#if:{{#ifexpr:1*{{{style|1}}}}}|1|{{{style|1}}}}}
| color1 = {{{{{#expr:1+{{{columns|1}}}}}|#ddd}}}
| color2 = {{{{{#expr:3+(2*{{{columns|1}}})}}|#ddd}}}
| color3 = {{{{{#expr:5+(3*{{{columns|1}}})}}|#ddd}}}
| color4 = {{{{{#expr:7+(4*{{{columns|1}}})}}|#ddd}}}
| color5 = {{{{{#expr:9+(5*{{{columns|1}}})}}|#ddd}}}
| color6 = {{{{{#expr:11+(6*{{{columns|1}}})}}|#ddd}}}
| color7 = {{{{{#expr:13+(7*{{{columns|1}}})}}|#ddd}}}
| color8 = {{{{{#expr:15+(8*{{{columns|1}}})}}|#ddd}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:{{{columns|1}}} + 14}}|}}}}}|0|{{{{{#expr:{{{columns|1}}} + 14}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:2*{{{columns|1}}}+16}}|}}}}}|0|{{{{{#expr:2*{{{columns|1}}}+16}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:3*{{{columns|1}}}+18}}|}}}}}|0|{{{{{#expr:3*{{{columns|1}}}+18}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:4*{{{columns|1}}}+20}}|}}}}}|0|{{{{{#expr:4*{{{columns|1}}}+20}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:5*{{{columns|1}}}+22}}|}}}}}|0|{{{{{#expr:5*{{{columns|1}}}+22}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:6*{{{columns|1}}}+24}}|}}}}}|0|{{{{{#expr:6*{{{columns|1}}}+24}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:7*{{{columns|1}}}+26}}|}}}}}|0|{{{{{#expr:7*{{{columns|1}}}+26}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:8*{{{columns|1}}}+28}}|}}}}}|0|{{{{{#expr:8*{{{columns|1}}}+28}}|0}}}}}
}}
<!--------------
-- Column 13 --
--------------->{{#ifexpr:{{{columns|1}}}>12|
{{#if:{{#ifexpr:1*{{{style|1}}}}}||{{#ifexpr:{{#expr:{{{style|1}}} / 2 round 0 }}*2={{{style|1}}}|
! style="text-align:right;vertical-align:bottom;padding-right:4px;" {{!}} {{{13|xxx}}}|}}}}
{{Data bars/column
| detailed = {{#if:{{#ifexpr:1*{{{style|1}}}}}||{{#ifexpr:{{{style|1}}}<5||{{#ifexpr:{{{style|1}}}>8|{{#ifexpr:{{{style|1}}}<13||true}}|true}}}}}}
| scale={{#if:{{#ifexpr:1*{{{scale|1}}}}}|1|{{{scale|1}}}}}
| style={{#if:{{#ifexpr:1*{{{style|1}}}}}|1|{{{style|1}}}}}
| color1 = {{{{{#expr:1+{{{columns|1}}}}}|#ddd}}}
| color2 = {{{{{#expr:3+(2*{{{columns|1}}})}}|#ddd}}}
| color3 = {{{{{#expr:5+(3*{{{columns|1}}})}}|#ddd}}}
| color4 = {{{{{#expr:7+(4*{{{columns|1}}})}}|#ddd}}}
| color5 = {{{{{#expr:9+(5*{{{columns|1}}})}}|#ddd}}}
| color6 = {{{{{#expr:11+(6*{{{columns|1}}})}}|#ddd}}}
| color7 = {{{{{#expr:13+(7*{{{columns|1}}})}}|#ddd}}}
| color8 = {{{{{#expr:15+(8*{{{columns|1}}})}}|#ddd}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:{{{columns|1}}} + 15}}|}}}}}|0|{{{{{#expr:{{{columns|1}}} + 15}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:2*{{{columns|1}}}+17}}|}}}}}|0|{{{{{#expr:2*{{{columns|1}}}+17}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:3*{{{columns|1}}}+19}}|}}}}}|0|{{{{{#expr:3*{{{columns|1}}}+19}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:4*{{{columns|1}}}+21}}|}}}}}|0|{{{{{#expr:4*{{{columns|1}}}+21}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:5*{{{columns|1}}}+23}}|}}}}}|0|{{{{{#expr:5*{{{columns|1}}}+23}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:6*{{{columns|1}}}+25}}|}}}}}|0|{{{{{#expr:6*{{{columns|1}}}+25}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:7*{{{columns|1}}}+27}}|}}}}}|0|{{{{{#expr:7*{{{columns|1}}}+27}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:8*{{{columns|1}}}+29}}|}}}}}|0|{{{{{#expr:8*{{{columns|1}}}+29}}|0}}}}}
}}
<!--------------
-- Column 14 --
--------------->{{#ifexpr:{{{columns|1}}}>13|
{{#if:{{#ifexpr:1*{{{style|1}}}}}||{{#ifexpr:{{#expr:{{{style|1}}} / 2 round 0 }}*2={{{style|1}}}|
! style="text-align:right;vertical-align:bottom;padding-right:4px;" {{!}} {{{14|xxx}}}|}}}}
{{Data bars/column
| detailed = {{#if:{{#ifexpr:1*{{{style|1}}}}}||{{#ifexpr:{{{style|1}}}<5||{{#ifexpr:{{{style|1}}}>8|{{#ifexpr:{{{style|1}}}<13||true}}|true}}}}}}
| scale={{#if:{{#ifexpr:1*{{{scale|1}}}}}|1|{{{scale|1}}}}}
| style={{#if:{{#ifexpr:1*{{{style|1}}}}}|1|{{{style|1}}}}}
| color1 = {{{{{#expr:1+{{{columns|1}}}}}|#ddd}}}
| color2 = {{{{{#expr:3+(2*{{{columns|1}}})}}|#ddd}}}
| color3 = {{{{{#expr:5+(3*{{{columns|1}}})}}|#ddd}}}
| color4 = {{{{{#expr:7+(4*{{{columns|1}}})}}|#ddd}}}
| color5 = {{{{{#expr:9+(5*{{{columns|1}}})}}|#ddd}}}
| color6 = {{{{{#expr:11+(6*{{{columns|1}}})}}|#ddd}}}
| color7 = {{{{{#expr:13+(7*{{{columns|1}}})}}|#ddd}}}
| color8 = {{{{{#expr:15+(8*{{{columns|1}}})}}|#ddd}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:{{{columns|1}}} + 16}}|}}}}}|0|{{{{{#expr:{{{columns|1}}} + 16}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:2*{{{columns|1}}}+18}}|}}}}}|0|{{{{{#expr:2*{{{columns|1}}}+18}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:3*{{{columns|1}}}+20}}|}}}}}|0|{{{{{#expr:3*{{{columns|1}}}+20}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:4*{{{columns|1}}}+22}}|}}}}}|0|{{{{{#expr:4*{{{columns|1}}}+22}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:5*{{{columns|1}}}+24}}|}}}}}|0|{{{{{#expr:5*{{{columns|1}}}+24}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:6*{{{columns|1}}}+26}}|}}}}}|0|{{{{{#expr:6*{{{columns|1}}}+26}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:7*{{{columns|1}}}+28}}|}}}}}|0|{{{{{#expr:7*{{{columns|1}}}+28}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:8*{{{columns|1}}}+30}}|}}}}}|0|{{{{{#expr:8*{{{columns|1}}}+30}}|0}}}}}
}}
<!--------------
-- Column 15 --
--------------->{{#ifexpr:{{{columns|1}}}>14|
{{#if:{{#ifexpr:1*{{{style|1}}}}}||{{#ifexpr:{{#expr:{{{style|1}}} / 2 round 0 }}*2={{{style|1}}}|
! style="text-align:right;vertical-align:bottom;padding-right:4px;" {{!}} {{{15|xxx}}}|}}}}
{{Data bars/column
| detailed = {{#if:{{#ifexpr:1*{{{style|1}}}}}||{{#ifexpr:{{{style|1}}}<5||{{#ifexpr:{{{style|1}}}>8|{{#ifexpr:{{{style|1}}}<13||true}}|true}}}}}}
| scale={{#if:{{#ifexpr:1*{{{scale|1}}}}}|1|{{{scale|1}}}}}
| style={{#if:{{#ifexpr:1*{{{style|1}}}}}|1|{{{style|1}}}}}
| color1 = {{{{{#expr:1+{{{columns|1}}}}}|#ddd}}}
| color2 = {{{{{#expr:3+(2*{{{columns|1}}})}}|#ddd}}}
| color3 = {{{{{#expr:5+(3*{{{columns|1}}})}}|#ddd}}}
| color4 = {{{{{#expr:7+(4*{{{columns|1}}})}}|#ddd}}}
| color5 = {{{{{#expr:9+(5*{{{columns|1}}})}}|#ddd}}}
| color6 = {{{{{#expr:11+(6*{{{columns|1}}})}}|#ddd}}}
| color7 = {{{{{#expr:13+(7*{{{columns|1}}})}}|#ddd}}}
| color8 = {{{{{#expr:15+(8*{{{columns|1}}})}}|#ddd}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:{{{columns|1}}} + 17}}|}}}}}|0|{{{{{#expr:{{{columns|1}}} + 17}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:2*{{{columns|1}}}+19}}|}}}}}|0|{{{{{#expr:2*{{{columns|1}}}+19}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:3*{{{columns|1}}}+21}}|}}}}}|0|{{{{{#expr:3*{{{columns|1}}}+21}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:4*{{{columns|1}}}+23}}|}}}}}|0|{{{{{#expr:4*{{{columns|1}}}+23}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:5*{{{columns|1}}}+25}}|}}}}}|0|{{{{{#expr:5*{{{columns|1}}}+25}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:6*{{{columns|1}}}+27}}|}}}}}|0|{{{{{#expr:6*{{{columns|1}}}+27}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:7*{{{columns|1}}}+29}}|}}}}}|0|{{{{{#expr:7*{{{columns|1}}}+29}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:8*{{{columns|1}}}+31}}|}}}}}|0|{{{{{#expr:8*{{{columns|1}}}+31}}|0}}}}}
}}
<!--------------
-- Column 16 --
--------------->{{#ifexpr:{{{columns|1}}}>15|
{{#if:{{#ifexpr:1*{{{style|1}}}}}||{{#ifexpr:{{#expr:{{{style|1}}} / 2 round 0 }}*2={{{style|1}}}|
! style="text-align:right;vertical-align:bottom;padding-right:4px;" {{!}} {{{16|xxx}}}|}}}}
{{Data bars/column
| detailed = {{#if:{{#ifexpr:1*{{{style|1}}}}}||{{#ifexpr:{{{style|1}}}<5||{{#ifexpr:{{{style|1}}}>8|{{#ifexpr:{{{style|1}}}<13||true}}|true}}}}}}
| scale={{#if:{{#ifexpr:1*{{{scale|1}}}}}|1|{{{scale|1}}}}}
| style={{#if:{{#ifexpr:1*{{{style|1}}}}}|1|{{{style|1}}}}}
| color1 = {{{{{#expr:1+{{{columns|1}}}}}|#ddd}}}
| color2 = {{{{{#expr:3+(2*{{{columns|1}}})}}|#ddd}}}
| color3 = {{{{{#expr:5+(3*{{{columns|1}}})}}|#ddd}}}
| color4 = {{{{{#expr:7+(4*{{{columns|1}}})}}|#ddd}}}
| color5 = {{{{{#expr:9+(5*{{{columns|1}}})}}|#ddd}}}
| color6 = {{{{{#expr:11+(6*{{{columns|1}}})}}|#ddd}}}
| color7 = {{{{{#expr:13+(7*{{{columns|1}}})}}|#ddd}}}
| color8 = {{{{{#expr:15+(8*{{{columns|1}}})}}|#ddd}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:{{{columns|1}}} + 18}}|}}}}}|0|{{{{{#expr:{{{columns|1}}} + 18}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:2*{{{columns|1}}}+20}}|}}}}}|0|{{{{{#expr:2*{{{columns|1}}}+20}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:3*{{{columns|1}}}+22}}|}}}}}|0|{{{{{#expr:3*{{{columns|1}}}+22}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:4*{{{columns|1}}}+24}}|}}}}}|0|{{{{{#expr:4*{{{columns|1}}}+24}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:5*{{{columns|1}}}+26}}|}}}}}|0|{{{{{#expr:5*{{{columns|1}}}+26}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:6*{{{columns|1}}}+28}}|}}}}}|0|{{{{{#expr:6*{{{columns|1}}}+28}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:7*{{{columns|1}}}+30}}|}}}}}|0|{{{{{#expr:7*{{{columns|1}}}+30}}|0}}}}}
| {{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:8*{{{columns|1}}}+32}}|}}}}}|0|{{{{{#expr:8*{{{columns|1}}}+32}}|0}}}}}
}}<!------------->|}}|}}|}}|}}|}}|}}|}}|}}|}}|}}|}}|}}|}}|}}|}}
<!-------------------
--- ---
--- vertical ---
--- chart ---
--- BAR LABELS ---
--- ---
-------------------->{{#if:{{#ifexpr:1*{{{style|1}}}}}
|<!---no labels if error------>
|<!-------------->{{#ifexpr:{{#expr:{{{style|1}}} / 2 round 0 }}*2={{{style|1}}}<!-------
----------------->|<!-------no labels if even----
----------------->|<!------- labels if odd ---->
{{!}}- style="vertical-align:top;"
! style="padding-left:4px; padding-right:4px;" {{!}} {{{1|xxx}}}
{{#ifexpr:{{{columns|1}}}>1|
! style="padding-left:4px; padding-right:4px;" {{!}} {{{2|xxx}}}
{{#ifexpr:{{{columns|1}}}>2|
! style="padding-left:4px; padding-right:4px;" {{!}} {{{3|xxx}}}
{{#ifexpr:{{{columns|1}}}>3|
! style="padding-left:4px; padding-right:4px;" {{!}} {{{4|xxx}}}
{{#ifexpr:{{{columns|1}}}>4|
! style="padding-left:4px; padding-right:4px;" {{!}} {{{5|xxx}}}
{{#ifexpr:{{{columns|1}}}>5|
! style="padding-left:4px; padding-right:4px;" {{!}} {{{6|xxx}}}
{{#ifexpr:{{{columns|1}}}>6|
! style="padding-left:4px; padding-right:4px;" {{!}} {{{7|xxx}}}
{{#ifexpr:{{{columns|1}}}>7|
! style="padding-left:4px; padding-right:4px;" {{!}} {{{8|xxx}}}
{{#ifexpr:{{{columns|1}}}>8|
! style="padding-left:4px; padding-right:4px;" {{!}} {{{9|xxx}}}
{{#ifexpr:{{{columns|1}}}>9|
! style="padding-left:4px; padding-right:4px;" {{!}} {{{10|xxx}}}
{{#ifexpr:{{{columns|1}}}>10|
! style="padding-left:4px; padding-right:4px;" {{!}} {{{11|xxx}}}
{{#ifexpr:{{{columns|1}}}>11|
! style="padding-left:4px; padding-right:4px;" {{!}} {{{12|xxx}}}
{{#ifexpr:{{{columns|1}}}>12|
! style="padding-left:4px; padding-right:4px;" {{!}} {{{13|xxx}}}
{{#ifexpr:{{{columns|1}}}>13|
! style="padding-left:4px; padding-right:4px;" {{!}} {{{14|xxx}}}
{{#ifexpr:{{{columns|1}}}>14|
! style="padding-left:4px; padding-right:4px;" {{!}} {{{15|xxx}}}
{{#ifexpr:{{{columns|1}}}>15|
! style="padding-left:4px; padding-right:4px;" {{!}} {{{16|xxx}}}|}}|}}|}}|}}|}}|}}|}}|}}|}}|}}|}}|}}|}}|}}|}}<!-------
----------------->}}}}
|}
|}
| style="vertical-align:top;" |
{{#if:{{#ifexpr:1*{{{style|1}}}}}||{{#ifexpr:{{{style|1}}}>8|<!---
------------------------------
-- --
-- do averages if style > 8 --
-- --
----------------------------->
{{Data bars/averages
| style = {{{style|9}}}
| scale = {{{scale|1}}}
| columns = {{{columns|1}}}
| {{{1|}}}| {{{2|}}}| {{{3|}}}| {{{4|}}}| {{{5|}}}| {{{6|}}}| {{{7|}}}| {{{8|}}}| {{{9|}}}| {{{10|}}}
| {{{11|}}}| {{{12|}}}| {{{13|}}}| {{{14|}}}| {{{15|}}}| {{{16|}}}| {{{17|}}}| {{{18|}}}| {{{19|}}}| {{{20|}}}
| {{{21|}}}| {{{22|}}}| {{{23|}}}| {{{24|}}}| {{{25|}}}| {{{26|}}}| {{{27|}}}| {{{28|}}}| {{{29|}}}| {{{30|}}}
| {{{31|}}}| {{{32|}}}| {{{33|}}}| {{{34|}}}| {{{35|}}}| {{{36|}}}| {{{37|}}}| {{{38|}}}| {{{39|}}}| {{{40|}}}
| {{{41|}}}| {{{42|}}}| {{{43|}}}| {{{44|}}}| {{{45|}}}| {{{46|}}}| {{{47|}}}| {{{48|}}}| {{{49|}}}| {{{50|}}}
| {{{51|}}}| {{{52|}}}| {{{53|}}}| {{{54|}}}| {{{55|}}}| {{{56|}}}| {{{57|}}}| {{{58|}}}| {{{59|}}}| {{{60|}}}
| {{{61|}}}| {{{62|}}}| {{{63|}}}| {{{64|}}}| {{{65|}}}| {{{66|}}}| {{{67|}}}| {{{68|}}}| {{{69|}}}| {{{70|}}}
| {{{71|}}}| {{{72|}}}| {{{73|}}}| {{{74|}}}| {{{75|}}}| {{{76|}}}| {{{77|}}}| {{{78|}}}| {{{79|}}}| {{{80|}}}
| {{{81|}}}| {{{82|}}}| {{{83|}}}| {{{84|}}}| {{{85|}}}| {{{86|}}}| {{{87|}}}| {{{88|}}}| {{{89|}}}| {{{90|}}}
| {{{91|}}}| {{{92|}}}| {{{93|}}}| {{{94|}}}| {{{95|}}}| {{{96|}}}| {{{97|}}}| {{{98|}}}| {{{99|}}}|{{{100|}}}
|{{{101|}}}|{{{102|}}}|{{{103|}}}|{{{104|}}}|{{{105|}}}|{{{106|}}}|{{{107|}}}|{{{108|}}}|{{{109|}}}|{{{110|}}}
|{{{111|}}}|{{{112|}}}|{{{113|}}}|{{{114|}}}|{{{115|}}}|{{{116|}}}|{{{117|}}}|{{{118|}}}|{{{119|}}}|{{{120|}}}
|{{{121|}}}|{{{122|}}}|{{{123|}}}|{{{124|}}}|{{{125|}}}|{{{126|}}}|{{{127|}}}|{{{128|}}}|{{{129|}}}|{{{130|}}}
|{{{131|}}}|{{{132|}}}|{{{133|}}}|{{{134|}}}|{{{135|}}}|{{{136|}}}|{{{137|}}}|{{{138|}}}|{{{139|}}}|{{{140|}}}
|{{{141|}}}|{{{142|}}}|{{{143|}}}|{{{144|}}}|{{{145|}}}|{{{146|}}}|{{{147|}}}|{{{148|}}}|{{{149|}}}|{{{150|}}}
|{{{151|}}}|{{{152|}}}|{{{153|}}}|{{{154|}}}|{{{155|}}}|{{{156|}}}|{{{157|}}}|{{{158|}}}|{{{159|}}}|{{{160|}}}
}}|
<!-------------------
--- ---
--- else ---
--- color key ---
--- & totals ---
--- ---
-------------------->
{{#ifexpr:{{{columns|1}}}>1|Total: {{#expr:<!---
---->{{#expr:<!-- column 1 ---
------->{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:{{{columns|1}}} + 3}}|}}}}}|0|{{{{{#expr:{{{columns|1}}} + 3}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:2*{{{columns|1}}}+5}}|}}}}}|0|{{{{{#expr:2*{{{columns|1}}}+5}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:3*{{{columns|1}}}+7}}|}}}}}|0|{{{{{#expr:3*{{{columns|1}}}+7}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:4*{{{columns|1}}}+9}}|}}}}}|0|{{{{{#expr:4*{{{columns|1}}}+9}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:5*{{{columns|1}}}+11}}|}}}}}|0|{{{{{#expr:5*{{{columns|1}}}+11}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:6*{{{columns|1}}}+13}}|}}}}}|0|{{{{{#expr:6*{{{columns|1}}}+13}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:7*{{{columns|1}}}+15}}|}}}}}|0|{{{{{#expr:7*{{{columns|1}}}+15}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:8*{{{columns|1}}}+17}}|}}}}}|0|{{{{{#expr:8*{{{columns|1}}}+17}}|0}}}}}<!--
------>}}<!---
--->+{{#ifexpr:{{{columns|1}}}>1|{{#expr:<!-- column 2 ---
------->{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:{{{columns|1}}} + 4}}|}}}}}|0|{{{{{#expr:{{{columns|1}}} + 4}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:2*{{{columns|1}}}+6}}|}}}}}|0|{{{{{#expr:2*{{{columns|1}}}+6}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:3*{{{columns|1}}}+8}}|}}}}}|0|{{{{{#expr:3*{{{columns|1}}}+8}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:4*{{{columns|1}}}+10}}|}}}}}|0|{{{{{#expr:4*{{{columns|1}}}+10}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:5*{{{columns|1}}}+12}}|}}}}}|0|{{{{{#expr:5*{{{columns|1}}}+12}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:6*{{{columns|1}}}+14}}|}}}}}|0|{{{{{#expr:6*{{{columns|1}}}+14}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:7*{{{columns|1}}}+16}}|}}}}}|0|{{{{{#expr:7*{{{columns|1}}}+16}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:8*{{{columns|1}}}+18}}|}}}}}|0|{{{{{#expr:8*{{{columns|1}}}+18}}|0}}}}}<!--
------>}}|0}}<!---
--->+{{#ifexpr:{{{columns|1}}}>2|{{#expr:<!-- column 3 ---
------->{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:{{{columns|1}}} + 5}}|}}}}}|0|{{{{{#expr:{{{columns|1}}} + 5}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:2*{{{columns|1}}}+7}}|}}}}}|0|{{{{{#expr:2*{{{columns|1}}}+7}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:3*{{{columns|1}}}+9}}|}}}}}|0|{{{{{#expr:3*{{{columns|1}}}+9}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:4*{{{columns|1}}}+11}}|}}}}}|0|{{{{{#expr:4*{{{columns|1}}}+11}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:5*{{{columns|1}}}+13}}|}}}}}|0|{{{{{#expr:5*{{{columns|1}}}+13}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:6*{{{columns|1}}}+15}}|}}}}}|0|{{{{{#expr:6*{{{columns|1}}}+15}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:7*{{{columns|1}}}+17}}|}}}}}|0|{{{{{#expr:7*{{{columns|1}}}+17}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:8*{{{columns|1}}}+19}}|}}}}}|0|{{{{{#expr:8*{{{columns|1}}}+19}}|0}}}}}<!--
------>}}|0}}<!---
--->+{{#ifexpr:{{{columns|1}}}>3|{{#expr:<!-- column 4 ---
------->{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:{{{columns|1}}} + 6}}|}}}}}|0|{{{{{#expr:{{{columns|1}}} + 6}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:2*{{{columns|1}}}+8}}|}}}}}|0|{{{{{#expr:2*{{{columns|1}}}+8}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:3*{{{columns|1}}}+10}}|}}}}}|0|{{{{{#expr:3*{{{columns|1}}}+10}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:4*{{{columns|1}}}+12}}|}}}}}|0|{{{{{#expr:4*{{{columns|1}}}+12}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:5*{{{columns|1}}}+14}}|}}}}}|0|{{{{{#expr:5*{{{columns|1}}}+14}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:6*{{{columns|1}}}+16}}|}}}}}|0|{{{{{#expr:6*{{{columns|1}}}+16}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:7*{{{columns|1}}}+18}}|}}}}}|0|{{{{{#expr:7*{{{columns|1}}}+18}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:8*{{{columns|1}}}+20}}|}}}}}|0|{{{{{#expr:8*{{{columns|1}}}+20}}|0}}}}}<!--
------>}}|0}}<!---
--->+{{#ifexpr:{{{columns|1}}}>4|{{#expr:<!-- column 5 ---
------->{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:{{{columns|1}}} + 7}}|}}}}}|0|{{{{{#expr:{{{columns|1}}} + 7}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:2*{{{columns|1}}}+9}}|}}}}}|0|{{{{{#expr:2*{{{columns|1}}}+9}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:3*{{{columns|1}}}+11}}|}}}}}|0|{{{{{#expr:3*{{{columns|1}}}+11}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:4*{{{columns|1}}}+13}}|}}}}}|0|{{{{{#expr:4*{{{columns|1}}}+13}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:5*{{{columns|1}}}+15}}|}}}}}|0|{{{{{#expr:5*{{{columns|1}}}+15}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:6*{{{columns|1}}}+17}}|}}}}}|0|{{{{{#expr:6*{{{columns|1}}}+17}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:7*{{{columns|1}}}+19}}|}}}}}|0|{{{{{#expr:7*{{{columns|1}}}+19}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:8*{{{columns|1}}}+21}}|}}}}}|0|{{{{{#expr:8*{{{columns|1}}}+21}}|0}}}}}<!--
------>}}|0}}<!---
--->+{{#ifexpr:{{{columns|1}}}>5|{{#expr:<!-- column 6 ---
------->{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:{{{columns|1}}} + 8}}|}}}}}|0|{{{{{#expr:{{{columns|1}}} + 8}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:2*{{{columns|1}}}+10}}|}}}}}|0|{{{{{#expr:2*{{{columns|1}}}+10}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:3*{{{columns|1}}}+12}}|}}}}}|0|{{{{{#expr:3*{{{columns|1}}}+12}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:4*{{{columns|1}}}+14}}|}}}}}|0|{{{{{#expr:4*{{{columns|1}}}+14}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:5*{{{columns|1}}}+16}}|}}}}}|0|{{{{{#expr:5*{{{columns|1}}}+16}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:6*{{{columns|1}}}+18}}|}}}}}|0|{{{{{#expr:6*{{{columns|1}}}+18}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:7*{{{columns|1}}}+20}}|}}}}}|0|{{{{{#expr:7*{{{columns|1}}}+20}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:8*{{{columns|1}}}+22}}|}}}}}|0|{{{{{#expr:8*{{{columns|1}}}+22}}|0}}}}}<!--
------>}}|0}}<!---
--->+{{#ifexpr:{{{columns|1}}}>6|{{#expr:<!-- column 7 ---
------->{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:{{{columns|1}}} + 9}}|}}}}}|0|{{{{{#expr:{{{columns|1}}} + 9}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:2*{{{columns|1}}}+11}}|}}}}}|0|{{{{{#expr:2*{{{columns|1}}}+11}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:3*{{{columns|1}}}+13}}|}}}}}|0|{{{{{#expr:3*{{{columns|1}}}+13}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:4*{{{columns|1}}}+15}}|}}}}}|0|{{{{{#expr:4*{{{columns|1}}}+15}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:5*{{{columns|1}}}+17}}|}}}}}|0|{{{{{#expr:5*{{{columns|1}}}+17}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:6*{{{columns|1}}}+19}}|}}}}}|0|{{{{{#expr:6*{{{columns|1}}}+19}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:7*{{{columns|1}}}+21}}|}}}}}|0|{{{{{#expr:7*{{{columns|1}}}+21}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:8*{{{columns|1}}}+23}}|}}}}}|0|{{{{{#expr:8*{{{columns|1}}}+23}}|0}}}}}<!--
------>}}|0}}<!---
--->+{{#ifexpr:{{{columns|1}}}>7|{{#expr:<!-- column 8 ---
------->{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:{{{columns|1}}} + 10}}|}}}}}|0|{{{{{#expr:{{{columns|1}}} + 10}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:2*{{{columns|1}}}+12}}|}}}}}|0|{{{{{#expr:2*{{{columns|1}}}+12}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:3*{{{columns|1}}}+14}}|}}}}}|0|{{{{{#expr:3*{{{columns|1}}}+14}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:4*{{{columns|1}}}+16}}|}}}}}|0|{{{{{#expr:4*{{{columns|1}}}+16}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:5*{{{columns|1}}}+18}}|}}}}}|0|{{{{{#expr:5*{{{columns|1}}}+18}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:6*{{{columns|1}}}+20}}|}}}}}|0|{{{{{#expr:6*{{{columns|1}}}+20}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:7*{{{columns|1}}}+22}}|}}}}}|0|{{{{{#expr:7*{{{columns|1}}}+22}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:8*{{{columns|1}}}+24}}|}}}}}|0|{{{{{#expr:8*{{{columns|1}}}+24}}|0}}}}}<!--
------>}}|0}}<!---
--->+{{#ifexpr:{{{columns|1}}}>8|{{#expr:<!-- column 9 ---
------->{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:{{{columns|1}}} + 11}}|}}}}}|0|{{{{{#expr:{{{columns|1}}} + 11}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:2*{{{columns|1}}}+13}}|}}}}}|0|{{{{{#expr:2*{{{columns|1}}}+13}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:3*{{{columns|1}}}+15}}|}}}}}|0|{{{{{#expr:3*{{{columns|1}}}+15}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:4*{{{columns|1}}}+17}}|}}}}}|0|{{{{{#expr:4*{{{columns|1}}}+17}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:5*{{{columns|1}}}+19}}|}}}}}|0|{{{{{#expr:5*{{{columns|1}}}+19}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:6*{{{columns|1}}}+21}}|}}}}}|0|{{{{{#expr:6*{{{columns|1}}}+21}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:7*{{{columns|1}}}+23}}|}}}}}|0|{{{{{#expr:7*{{{columns|1}}}+23}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:8*{{{columns|1}}}+25}}|}}}}}|0|{{{{{#expr:8*{{{columns|1}}}+25}}|0}}}}}<!--
------>}}|0}}<!---
--->+{{#ifexpr:{{{columns|1}}}>9|{{#expr:<!-- column 10 ---
------->{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:{{{columns|1}}} + 12}}|}}}}}|0|{{{{{#expr:{{{columns|1}}} + 12}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:2*{{{columns|1}}}+14}}|}}}}}|0|{{{{{#expr:2*{{{columns|1}}}+14}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:3*{{{columns|1}}}+16}}|}}}}}|0|{{{{{#expr:3*{{{columns|1}}}+16}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:4*{{{columns|1}}}+18}}|}}}}}|0|{{{{{#expr:4*{{{columns|1}}}+18}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:5*{{{columns|1}}}+20}}|}}}}}|0|{{{{{#expr:5*{{{columns|1}}}+20}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:6*{{{columns|1}}}+22}}|}}}}}|0|{{{{{#expr:6*{{{columns|1}}}+22}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:7*{{{columns|1}}}+24}}|}}}}}|0|{{{{{#expr:7*{{{columns|1}}}+24}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:8*{{{columns|1}}}+26}}|}}}}}|0|{{{{{#expr:8*{{{columns|1}}}+26}}|0}}}}}<!--
------>}}|0}}<!---
--->+{{#ifexpr:{{{columns|1}}}>10|{{#expr:<!-- column 11 ---
------->{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:{{{columns|1}}} + 13}}|}}}}}|0|{{{{{#expr:{{{columns|1}}} + 13}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:2*{{{columns|1}}}+15}}|}}}}}|0|{{{{{#expr:2*{{{columns|1}}}+15}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:3*{{{columns|1}}}+17}}|}}}}}|0|{{{{{#expr:3*{{{columns|1}}}+17}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:4*{{{columns|1}}}+19}}|}}}}}|0|{{{{{#expr:4*{{{columns|1}}}+19}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:5*{{{columns|1}}}+21}}|}}}}}|0|{{{{{#expr:5*{{{columns|1}}}+21}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:6*{{{columns|1}}}+23}}|}}}}}|0|{{{{{#expr:6*{{{columns|1}}}+23}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:7*{{{columns|1}}}+25}}|}}}}}|0|{{{{{#expr:7*{{{columns|1}}}+25}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:8*{{{columns|1}}}+27}}|}}}}}|0|{{{{{#expr:8*{{{columns|1}}}+27}}|0}}}}}<!--
------>}}|0}}<!---
--->+{{#ifexpr:{{{columns|1}}}>11|{{#expr:<!-- column 12 ---
------->{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:{{{columns|1}}} + 14}}|}}}}}|0|{{{{{#expr:{{{columns|1}}} + 14}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:2*{{{columns|1}}}+16}}|}}}}}|0|{{{{{#expr:2*{{{columns|1}}}+16}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:3*{{{columns|1}}}+18}}|}}}}}|0|{{{{{#expr:3*{{{columns|1}}}+18}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:4*{{{columns|1}}}+20}}|}}}}}|0|{{{{{#expr:4*{{{columns|1}}}+20}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:5*{{{columns|1}}}+22}}|}}}}}|0|{{{{{#expr:5*{{{columns|1}}}+22}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:6*{{{columns|1}}}+24}}|}}}}}|0|{{{{{#expr:6*{{{columns|1}}}+24}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:7*{{{columns|1}}}+26}}|}}}}}|0|{{{{{#expr:7*{{{columns|1}}}+26}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:8*{{{columns|1}}}+28}}|}}}}}|0|{{{{{#expr:8*{{{columns|1}}}+28}}|0}}}}}<!--
------>}}|0}}<!---
--->+{{#ifexpr:{{{columns|1}}}>12|{{#expr:<!-- column 13 ---
------->{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:{{{columns|1}}} + 15}}|}}}}}|0|{{{{{#expr:{{{columns|1}}} + 15}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:2*{{{columns|1}}}+17}}|}}}}}|0|{{{{{#expr:2*{{{columns|1}}}+17}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:3*{{{columns|1}}}+19}}|}}}}}|0|{{{{{#expr:3*{{{columns|1}}}+19}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:4*{{{columns|1}}}+21}}|}}}}}|0|{{{{{#expr:4*{{{columns|1}}}+21}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:5*{{{columns|1}}}+23}}|}}}}}|0|{{{{{#expr:5*{{{columns|1}}}+23}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:6*{{{columns|1}}}+25}}|}}}}}|0|{{{{{#expr:6*{{{columns|1}}}+25}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:7*{{{columns|1}}}+27}}|}}}}}|0|{{{{{#expr:7*{{{columns|1}}}+27}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:8*{{{columns|1}}}+29}}|}}}}}|0|{{{{{#expr:8*{{{columns|1}}}+29}}|0}}}}}<!--
------>}}|0}}<!---
--->+{{#ifexpr:{{{columns|1}}}>13|{{#expr:<!-- column 14 ---
------->{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:{{{columns|1}}} + 16}}|}}}}}|0|{{{{{#expr:{{{columns|1}}} + 16}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:2*{{{columns|1}}}+18}}|}}}}}|0|{{{{{#expr:2*{{{columns|1}}}+18}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:3*{{{columns|1}}}+20}}|}}}}}|0|{{{{{#expr:3*{{{columns|1}}}+20}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:4*{{{columns|1}}}+22}}|}}}}}|0|{{{{{#expr:4*{{{columns|1}}}+22}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:5*{{{columns|1}}}+24}}|}}}}}|0|{{{{{#expr:5*{{{columns|1}}}+24}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:6*{{{columns|1}}}+26}}|}}}}}|0|{{{{{#expr:6*{{{columns|1}}}+26}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:7*{{{columns|1}}}+28}}|}}}}}|0|{{{{{#expr:7*{{{columns|1}}}+28}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:8*{{{columns|1}}}+30}}|}}}}}|0|{{{{{#expr:8*{{{columns|1}}}+30}}|0}}}}}<!--
------>}}|0}}<!---
--->+{{#ifexpr:{{{columns|1}}}>14|{{#expr:<!-- column 15 ---
------->{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:{{{columns|1}}} + 17}}|}}}}}|0|{{{{{#expr:{{{columns|1}}} + 17}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:2*{{{columns|1}}}+19}}|}}}}}|0|{{{{{#expr:2*{{{columns|1}}}+19}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:3*{{{columns|1}}}+21}}|}}}}}|0|{{{{{#expr:3*{{{columns|1}}}+21}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:4*{{{columns|1}}}+23}}|}}}}}|0|{{{{{#expr:4*{{{columns|1}}}+23}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:5*{{{columns|1}}}+25}}|}}}}}|0|{{{{{#expr:5*{{{columns|1}}}+25}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:6*{{{columns|1}}}+27}}|}}}}}|0|{{{{{#expr:6*{{{columns|1}}}+27}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:7*{{{columns|1}}}+29}}|}}}}}|0|{{{{{#expr:7*{{{columns|1}}}+29}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:8*{{{columns|1}}}+31}}|}}}}}|0|{{{{{#expr:8*{{{columns|1}}}+31}}|0}}}}}<!--
------>}}|0}}<!---
--->+{{#ifexpr:{{{columns|1}}}>15|{{#expr:<!-- column 16 ---
------->{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:{{{columns|1}}} + 18}}|}}}}}|0|{{{{{#expr:{{{columns|1}}} + 18}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:2*{{{columns|1}}}+20}}|}}}}}|0|{{{{{#expr:2*{{{columns|1}}}+20}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:3*{{{columns|1}}}+22}}|}}}}}|0|{{{{{#expr:3*{{{columns|1}}}+22}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:4*{{{columns|1}}}+24}}|}}}}}|0|{{{{{#expr:4*{{{columns|1}}}+24}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:5*{{{columns|1}}}+26}}|}}}}}|0|{{{{{#expr:5*{{{columns|1}}}+26}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:6*{{{columns|1}}}+28}}|}}}}}|0|{{{{{#expr:6*{{{columns|1}}}+28}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:7*{{{columns|1}}}+30}}|}}}}}|0|{{{{{#expr:7*{{{columns|1}}}+30}}|0}}}}}<!--
------>+{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:8*{{{columns|1}}}+32}}|}}}}}|0|{{{{{#expr:8*{{{columns|1}}}+32}}|0}}}}}<!--
----->}}|0}}<!---
--->}}| }}<!---
--->{{#if:{{{{{#expr:3+(2*{{{columns|1}}})}}|}}}|<!----
--------->{{Data bars/bar|detailed={{#if:{{#ifexpr:1*{{{style|1}}}}}||{{#ifexpr:{{{style|1}}}>4|true|}}}}<!----
--------->|size=16|color={{{{{#expr:1+{{{columns|1}}}}}|#ddd}}}|name={{{{{#expr:2+{{{columns|1}}}}}|xxx}}}<!----
--------->|title={{#ifexpr:{{{columns|1}}}>1|{{#expr:<!----------
-------------------------------->{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:{{{columns|1}}}+3}}|}}}}}|0|{{{{{#expr:{{{columns|1}}}+3}}|0}}}}}<!---
--->+{{#ifexpr:{{{columns|1}}}>1|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:{{{columns|1}}}+4}}|}}}}}|0|{{{{{#expr:{{{columns|1}}}+4}}|0}}}}}|0}}<!---
--->+{{#ifexpr:{{{columns|1}}}>2|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:{{{columns|1}}}+5}}|}}}}}|0|{{{{{#expr:{{{columns|1}}}+5}}|0}}}}}|0}}<!---
--->+{{#ifexpr:{{{columns|1}}}>3|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:{{{columns|1}}}+6}}|}}}}}|0|{{{{{#expr:{{{columns|1}}}+6}}|0}}}}}|0}}<!---
--->+{{#ifexpr:{{{columns|1}}}>4|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:{{{columns|1}}}+7}}|}}}}}|0|{{{{{#expr:{{{columns|1}}}+7}}|0}}}}}|0}}<!---
--->+{{#ifexpr:{{{columns|1}}}>5|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:{{{columns|1}}}+8}}|}}}}}|0|{{{{{#expr:{{{columns|1}}}+8}}|0}}}}}|0}}<!---
--->+{{#ifexpr:{{{columns|1}}}>6|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:{{{columns|1}}}+9}}|}}}}}|0|{{{{{#expr:{{{columns|1}}}+9}}|0}}}}}|0}}<!---
--->+{{#ifexpr:{{{columns|1}}}>7|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:{{{columns|1}}}+10}}|}}}}}|0|{{{{{#expr:{{{columns|1}}}+10}}|0}}}}}|0}}<!---
--->+{{#ifexpr:{{{columns|1}}}>8|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:{{{columns|1}}}+11}}|}}}}}|0|{{{{{#expr:{{{columns|1}}}+11}}|0}}}}}|0}}<!---
--->+{{#ifexpr:{{{columns|1}}}>9|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:{{{columns|1}}}+12}}|}}}}}|0|{{{{{#expr:{{{columns|1}}}+12}}|0}}}}}|0}}<!---
--->+{{#ifexpr:{{{columns|1}}}>10|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:{{{columns|1}}}+13}}|}}}}}|0|{{{{{#expr:{{{columns|1}}}+13}}|0}}}}}|0}}<!---
--->+{{#ifexpr:{{{columns|1}}}>11|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:{{{columns|1}}}+14}}|}}}}}|0|{{{{{#expr:{{{columns|1}}}+14}}|0}}}}}|0}}<!---
--->+{{#ifexpr:{{{columns|1}}}>12|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:{{{columns|1}}}+15}}|}}}}}|0|{{{{{#expr:{{{columns|1}}}+15}}|0}}}}}|0}}<!---
--->+{{#ifexpr:{{{columns|1}}}>13|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:{{{columns|1}}}+16}}|}}}}}|0|{{{{{#expr:{{{columns|1}}}+16}}|0}}}}}|0}}<!---
--->+{{#ifexpr:{{{columns|1}}}>14|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:{{{columns|1}}}+17}}|}}}}}|0|{{{{{#expr:{{{columns|1}}}+17}}|0}}}}}|0}}<!---
--->+{{#ifexpr:{{{columns|1}}}>15|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:{{{columns|1}}}+18}}|}}}}}|0|{{{{{#expr:{{{columns|1}}}+18}}|0}}}}}|0}}<!---
--->}}|}}}}<!----
--->{{#if:{{{{{#expr:3+(2*{{{columns|1}}})}}|}}}|<!----
--------->{{Data bars/bar|detailed={{#if:{{#ifexpr:1*{{{style|1}}}}}||{{#ifexpr:{{{style|1}}}>4|true|}}}}<!----
--------->|size=16|color={{{{{#expr:3+(2*{{{columns|1}}})}}|#ddd}}}|name={{{{{#expr:4+(2*{{{columns|1}}})}}|xxx}}}<!----
--------->|title={{#ifexpr:{{{columns|1}}}>1|{{#expr:<!----------
------------------------------->{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:2*{{{columns|1}}}+5}}|}}}}}|0|{{{{{#expr:2*{{{columns|1}}}+5}}|0}}}}}<!---
-->+{{#ifexpr:{{{columns|1}}}>1|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:2*{{{columns|1}}}+6}}|}}}}}|0|{{{{{#expr:2*{{{columns|1}}}+6}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>2|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:2*{{{columns|1}}}+7}}|}}}}}|0|{{{{{#expr:2*{{{columns|1}}}+7}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>3|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:2*{{{columns|1}}}+8}}|}}}}}|0|{{{{{#expr:2*{{{columns|1}}}+8}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>4|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:2*{{{columns|1}}}+9}}|}}}}}|0|{{{{{#expr:2*{{{columns|1}}}+9}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>5|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:2*{{{columns|1}}}+10}}|}}}}}|0|{{{{{#expr:2*{{{columns|1}}}+10}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>6|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:2*{{{columns|1}}}+11}}|}}}}}|0|{{{{{#expr:2*{{{columns|1}}}+11}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>7|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:2*{{{columns|1}}}+12}}|}}}}}|0|{{{{{#expr:2*{{{columns|1}}}+12}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>8|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:2*{{{columns|1}}}+13}}|}}}}}|0|{{{{{#expr:2*{{{columns|1}}}+13}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>9|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:2*{{{columns|1}}}+14}}|}}}}}|0|{{{{{#expr:2*{{{columns|1}}}+14}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>10|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:2*{{{columns|1}}}+15}}|}}}}}|0|{{{{{#expr:2*{{{columns|1}}}+15}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>11|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:2*{{{columns|1}}}+16}}|}}}}}|0|{{{{{#expr:2*{{{columns|1}}}+16}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>12|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:2*{{{columns|1}}}+17}}|}}}}}|0|{{{{{#expr:2*{{{columns|1}}}+17}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>13|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:2*{{{columns|1}}}+18}}|}}}}}|0|{{{{{#expr:2*{{{columns|1}}}+18}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>14|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:2*{{{columns|1}}}+19}}|}}}}}|0|{{{{{#expr:2*{{{columns|1}}}+19}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>15|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:2*{{{columns|1}}}+20}}|}}}}}|0|{{{{{#expr:2*{{{columns|1}}}+20}}|0}}}}}|0}}<!---
-->}}|}}}}<!----
-->{{#if:{{{{{#expr:5+(3*{{{columns|1}}})}}|}}}|<!----
--------->{{Data bars/bar|detailed={{#if:{{#ifexpr:1*{{{style|1}}}}}||{{#ifexpr:{{{style|1}}}>4|true|}}}}<!----
--------->|size=16|color={{{{{#expr:5+(3*{{{columns|1}}})}}|#ddd}}}|name={{{{{#expr:6+(3*{{{columns|1}}})}}|xxx}}}<!----
--------->|title={{#ifexpr:{{{columns|1}}}>1|{{#expr:<!----------
------------------------------->{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:3*{{{columns|1}}}+7}}|}}}}}|0|{{{{{#expr:3*{{{columns|1}}}+7}}|0}}}}}<!---
-->+{{#ifexpr:{{{columns|1}}}>1|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:3*{{{columns|1}}}+8}}|}}}}}|0|{{{{{#expr:3*{{{columns|1}}}+8}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>2|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:3*{{{columns|1}}}+9}}|}}}}}|0|{{{{{#expr:3*{{{columns|1}}}+9}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>3|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:3*{{{columns|1}}}+10}}|}}}}}|0|{{{{{#expr:3*{{{columns|1}}}+10}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>4|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:3*{{{columns|1}}}+11}}|}}}}}|0|{{{{{#expr:3*{{{columns|1}}}+11}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>5|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:3*{{{columns|1}}}+12}}|}}}}}|0|{{{{{#expr:3*{{{columns|1}}}+12}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>6|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:3*{{{columns|1}}}+13}}|}}}}}|0|{{{{{#expr:3*{{{columns|1}}}+13}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>7|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:3*{{{columns|1}}}+14}}|}}}}}|0|{{{{{#expr:3*{{{columns|1}}}+14}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>8|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:3*{{{columns|1}}}+15}}|}}}}}|0|{{{{{#expr:3*{{{columns|1}}}+15}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>9|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:3*{{{columns|1}}}+16}}|}}}}}|0|{{{{{#expr:3*{{{columns|1}}}+16}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>10|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:3*{{{columns|1}}}+17}}|}}}}}|0|{{{{{#expr:3*{{{columns|1}}}+17}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>11|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:3*{{{columns|1}}}+18}}|}}}}}|0|{{{{{#expr:3*{{{columns|1}}}+18}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>12|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:3*{{{columns|1}}}+19}}|}}}}}|0|{{{{{#expr:3*{{{columns|1}}}+19}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>13|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:3*{{{columns|1}}}+20}}|}}}}}|0|{{{{{#expr:3*{{{columns|1}}}+20}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>14|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:3*{{{columns|1}}}+21}}|}}}}}|0|{{{{{#expr:3*{{{columns|1}}}+21}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>15|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:3*{{{columns|1}}}+22}}|}}}}}|0|{{{{{#expr:3*{{{columns|1}}}+22}}|0}}}}}|0}}<!---
--->}}|}}}}<!----
--->{{#if:{{{{{#expr:7+(4*{{{columns|1}}})}}|}}}|<!----
--------->{{Data bars/bar|detailed={{#if:{{#ifexpr:1*{{{style|1}}}}}||{{#ifexpr:{{{style|1}}}>4|true|}}}}<!----
--------->|size=16|color={{{{{#expr:7+(4*{{{columns|1}}})}}|#ddd}}}|name={{{{{#expr:8+(4*{{{columns|1}}})}}|xxx}}}<!----
--------->|title={{#ifexpr:{{{columns|1}}}>1|{{#expr:<!----------
------------------------------->{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:4*{{{columns|1}}}+9}}|}}}}}|0|{{{{{#expr:4*{{{columns|1}}}+9}}|0}}}}}<!---
-->+{{#ifexpr:{{{columns|1}}}>1|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:4*{{{columns|1}}}+10}}|}}}}}|0|{{{{{#expr:4*{{{columns|1}}}+10}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>2|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:4*{{{columns|1}}}+11}}|}}}}}|0|{{{{{#expr:4*{{{columns|1}}}+11}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>3|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:4*{{{columns|1}}}+12}}|}}}}}|0|{{{{{#expr:4*{{{columns|1}}}+12}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>4|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:4*{{{columns|1}}}+13}}|}}}}}|0|{{{{{#expr:4*{{{columns|1}}}+13}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>5|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:4*{{{columns|1}}}+14}}|}}}}}|0|{{{{{#expr:4*{{{columns|1}}}+14}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>6|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:4*{{{columns|1}}}+15}}|}}}}}|0|{{{{{#expr:4*{{{columns|1}}}+15}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>7|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:4*{{{columns|1}}}+16}}|}}}}}|0|{{{{{#expr:4*{{{columns|1}}}+16}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>8|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:4*{{{columns|1}}}+17}}|}}}}}|0|{{{{{#expr:4*{{{columns|1}}}+17}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>9|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:4*{{{columns|1}}}+18}}|}}}}}|0|{{{{{#expr:4*{{{columns|1}}}+18}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>10|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:4*{{{columns|1}}}+19}}|}}}}}|0|{{{{{#expr:4*{{{columns|1}}}+19}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>11|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:4*{{{columns|1}}}+20}}|}}}}}|0|{{{{{#expr:4*{{{columns|1}}}+20}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>12|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:4*{{{columns|1}}}+21}}|}}}}}|0|{{{{{#expr:4*{{{columns|1}}}+21}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>13|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:4*{{{columns|1}}}+22}}|}}}}}|0|{{{{{#expr:4*{{{columns|1}}}+22}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>14|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:4*{{{columns|1}}}+23}}|}}}}}|0|{{{{{#expr:4*{{{columns|1}}}+23}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>15|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:4*{{{columns|1}}}+24}}|}}}}}|0|{{{{{#expr:4*{{{columns|1}}}+24}}|0}}}}}|0}}<!---
--->}}|}}}}<!----
--->{{#if:{{{{{#expr:9+(5*{{{columns|1}}})}}|}}}|<!----
--------->{{Data bars/bar|detailed={{#if:{{#ifexpr:1*{{{style|1}}}}}||{{#ifexpr:{{{style|1}}}>4|true|}}}}<!----
--------->|size=16|color={{{{{#expr:9+(5*{{{columns|1}}})}}|#ddd}}}|name={{{{{#expr:10+(5*{{{columns|1}}})}}|xxx}}}<!----
--------->|title={{#ifexpr:{{{columns|1}}}>1|{{#expr:<!----------
------------------------------->{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:5*{{{columns|1}}}+11}}|}}}}}|0|{{{{{#expr:5*{{{columns|1}}}+11}}|0}}}}}<!---
-->+{{#ifexpr:{{{columns|1}}}>1|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:5*{{{columns|1}}}+12}}|}}}}}|0|{{{{{#expr:5*{{{columns|1}}}+12}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>2|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:5*{{{columns|1}}}+13}}|}}}}}|0|{{{{{#expr:5*{{{columns|1}}}+13}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>3|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:5*{{{columns|1}}}+14}}|}}}}}|0|{{{{{#expr:5*{{{columns|1}}}+14}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>4|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:5*{{{columns|1}}}+15}}|}}}}}|0|{{{{{#expr:5*{{{columns|1}}}+15}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>5|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:5*{{{columns|1}}}+16}}|}}}}}|0|{{{{{#expr:5*{{{columns|1}}}+16}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>6|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:5*{{{columns|1}}}+17}}|}}}}}|0|{{{{{#expr:5*{{{columns|1}}}+17}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>7|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:5*{{{columns|1}}}+18}}|}}}}}|0|{{{{{#expr:5*{{{columns|1}}}+18}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>8|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:5*{{{columns|1}}}+19}}|}}}}}|0|{{{{{#expr:5*{{{columns|1}}}+19}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>9|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:5*{{{columns|1}}}+20}}|}}}}}|0|{{{{{#expr:5*{{{columns|1}}}+20}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>10|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:5*{{{columns|1}}}+21}}|}}}}}|0|{{{{{#expr:5*{{{columns|1}}}+21}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>11|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:5*{{{columns|1}}}+22}}|}}}}}|0|{{{{{#expr:5*{{{columns|1}}}+22}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>12|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:5*{{{columns|1}}}+23}}|}}}}}|0|{{{{{#expr:5*{{{columns|1}}}+23}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>13|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:5*{{{columns|1}}}+24}}|}}}}}|0|{{{{{#expr:5*{{{columns|1}}}+24}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>14|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:5*{{{columns|1}}}+25}}|}}}}}|0|{{{{{#expr:5*{{{columns|1}}}+25}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>15|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:5*{{{columns|1}}}+26}}|}}}}}|0|{{{{{#expr:5*{{{columns|1}}}+26}}|0}}}}}|0}}<!---
--->}}|}}}}<!----
--->{{#if:{{{{{#expr:11+(6*{{{columns|1}}})}}|}}}|<!----
--------->{{Data bars/bar|detailed={{#if:{{#ifexpr:1*{{{style|1}}}}}||{{#ifexpr:{{{style|1}}}>4|true|}}}}<!----
--------->|size=16|color={{{{{#expr:11+(6*{{{columns|1}}})}}|#ddd}}}|name={{{{{#expr:12+(6*{{{columns|1}}})}}|xxx}}}<!----
--------->|title={{#ifexpr:{{{columns|1}}}>1|{{#expr:<!----------
------------------------------->{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:6*{{{columns|1}}}+13}}|}}}}}|0|{{{{{#expr:6*{{{columns|1}}}+13}}|0}}}}}<!---
-->+{{#ifexpr:{{{columns|1}}}>1|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:6*{{{columns|1}}}+14}}|}}}}}|0|{{{{{#expr:6*{{{columns|1}}}+14}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>2|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:6*{{{columns|1}}}+15}}|}}}}}|0|{{{{{#expr:6*{{{columns|1}}}+15}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>3|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:6*{{{columns|1}}}+16}}|}}}}}|0|{{{{{#expr:6*{{{columns|1}}}+16}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>4|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:6*{{{columns|1}}}+17}}|}}}}}|0|{{{{{#expr:6*{{{columns|1}}}+17}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>5|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:6*{{{columns|1}}}+18}}|}}}}}|0|{{{{{#expr:6*{{{columns|1}}}+18}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>6|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:6*{{{columns|1}}}+19}}|}}}}}|0|{{{{{#expr:6*{{{columns|1}}}+19}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>7|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:6*{{{columns|1}}}+20}}|}}}}}|0|{{{{{#expr:6*{{{columns|1}}}+20}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>8|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:6*{{{columns|1}}}+21}}|}}}}}|0|{{{{{#expr:6*{{{columns|1}}}+21}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>9|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:6*{{{columns|1}}}+22}}|}}}}}|0|{{{{{#expr:6*{{{columns|1}}}+22}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>10|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:6*{{{columns|1}}}+23}}|}}}}}|0|{{{{{#expr:6*{{{columns|1}}}+23}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>11|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:6*{{{columns|1}}}+24}}|}}}}}|0|{{{{{#expr:6*{{{columns|1}}}+24}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>12|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:6*{{{columns|1}}}+25}}|}}}}}|0|{{{{{#expr:6*{{{columns|1}}}+25}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>13|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:6*{{{columns|1}}}+26}}|}}}}}|0|{{{{{#expr:6*{{{columns|1}}}+26}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>14|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:6*{{{columns|1}}}+27}}|}}}}}|0|{{{{{#expr:6*{{{columns|1}}}+27}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>15|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:6*{{{columns|1}}}+28}}|}}}}}|0|{{{{{#expr:6*{{{columns|1}}}+28}}|0}}}}}|0}}<!---
--->}}|}}}}<!----
--->{{#if:{{{{{#expr:13+(7*{{{columns|1}}})}}|}}}|<!----
--------->{{Data bars/bar|detailed={{#if:{{#ifexpr:1*{{{style|1}}}}}||{{#ifexpr:{{{style|1}}}>4|true|}}}}<!----
--------->|size=16|color={{{{{#expr:13+(7*{{{columns|1}}})}}|#ddd}}}|name={{{{{#expr:14+(7*{{{columns|1}}})}}|xxx}}}<!----
--------->|title={{#ifexpr:{{{columns|1}}}>1|{{#expr:<!----------
------------------------------->{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:7*{{{columns|1}}}+15}}|}}}}}|0|{{{{{#expr:7*{{{columns|1}}}+15}}|0}}}}}<!---
-->+{{#ifexpr:{{{columns|1}}}>1|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:7*{{{columns|1}}}+16}}|}}}}}|0|{{{{{#expr:7*{{{columns|1}}}+16}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>2|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:7*{{{columns|1}}}+17}}|}}}}}|0|{{{{{#expr:7*{{{columns|1}}}+17}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>3|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:7*{{{columns|1}}}+18}}|}}}}}|0|{{{{{#expr:7*{{{columns|1}}}+18}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>4|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:7*{{{columns|1}}}+19}}|}}}}}|0|{{{{{#expr:7*{{{columns|1}}}+19}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>5|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:7*{{{columns|1}}}+20}}|}}}}}|0|{{{{{#expr:7*{{{columns|1}}}+20}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>6|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:7*{{{columns|1}}}+21}}|}}}}}|0|{{{{{#expr:7*{{{columns|1}}}+21}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>7|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:7*{{{columns|1}}}+22}}|}}}}}|0|{{{{{#expr:7*{{{columns|1}}}+22}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>8|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:7*{{{columns|1}}}+23}}|}}}}}|0|{{{{{#expr:7*{{{columns|1}}}+23}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>9|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:7*{{{columns|1}}}+24}}|}}}}}|0|{{{{{#expr:7*{{{columns|1}}}+24}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>10|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:7*{{{columns|1}}}+25}}|}}}}}|0|{{{{{#expr:7*{{{columns|1}}}+25}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>11|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:7*{{{columns|1}}}+26}}|}}}}}|0|{{{{{#expr:7*{{{columns|1}}}+26}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>12|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:7*{{{columns|1}}}+27}}|}}}}}|0|{{{{{#expr:7*{{{columns|1}}}+27}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>13|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:7*{{{columns|1}}}+28}}|}}}}}|0|{{{{{#expr:7*{{{columns|1}}}+28}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>14|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:7*{{{columns|1}}}+29}}|}}}}}|0|{{{{{#expr:7*{{{columns|1}}}+29}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>15|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:7*{{{columns|1}}}+30}}|}}}}}|0|{{{{{#expr:7*{{{columns|1}}}+30}}|0}}}}}|0}}<!---
--->}}|}}}}<!----
--->{{#if:{{{{{#expr:15+(8*{{{columns|1}}})}}|}}}|<!----
--------->{{Data bars/bar|detailed={{#if:{{#ifexpr:1*{{{style|1}}}}}||{{#ifexpr:{{{style|1}}}>4|true|}}}}<!----
--------->|size=16|color={{{{{#expr:15+(8*{{{columns|1}}})}}|#ddd}}}|name={{{{{#expr:16+(8*{{{columns|1}}})}}|xxx}}}<!----
--------->|title={{#ifexpr:{{{columns|1}}}>1|{{#expr:<!----------
------------------------------->{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:8*{{{columns|1}}}+17}}|}}}}}|0|{{{{{#expr:8*{{{columns|1}}}+17}}|0}}}}}<!---
-->+{{#ifexpr:{{{columns|1}}}>1|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:8*{{{columns|1}}}+18}}|}}}}}|0|{{{{{#expr:8*{{{columns|1}}}+18}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>2|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:8*{{{columns|1}}}+19}}|}}}}}|0|{{{{{#expr:8*{{{columns|1}}}+19}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>3|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:8*{{{columns|1}}}+20}}|}}}}}|0|{{{{{#expr:8*{{{columns|1}}}+20}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>4|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:8*{{{columns|1}}}+21}}|}}}}}|0|{{{{{#expr:8*{{{columns|1}}}+21}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>5|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:8*{{{columns|1}}}+22}}|}}}}}|0|{{{{{#expr:8*{{{columns|1}}}+22}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>6|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:8*{{{columns|1}}}+23}}|}}}}}|0|{{{{{#expr:8*{{{columns|1}}}+23}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>7|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:8*{{{columns|1}}}+24}}|}}}}}|0|{{{{{#expr:8*{{{columns|1}}}+24}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>8|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:8*{{{columns|1}}}+25}}|}}}}}|0|{{{{{#expr:8*{{{columns|1}}}+25}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>9|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:8*{{{columns|1}}}+26}}|}}}}}|0|{{{{{#expr:8*{{{columns|1}}}+26}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>10|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:8*{{{columns|1}}}+27}}|}}}}}|0|{{{{{#expr:8*{{{columns|1}}}+27}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>11|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:8*{{{columns|1}}}+28}}|}}}}}|0|{{{{{#expr:8*{{{columns|1}}}+28}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>12|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:8*{{{columns|1}}}+29}}|}}}}}|0|{{{{{#expr:8*{{{columns|1}}}+29}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>13|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:8*{{{columns|1}}}+30}}|}}}}}|0|{{{{{#expr:8*{{{columns|1}}}+30}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>14|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:8*{{{columns|1}}}+31}}|}}}}}|0|{{{{{#expr:8*{{{columns|1}}}+31}}|0}}}}}|0}}<!---
-->+{{#ifexpr:{{{columns|1}}}>15|{{#if:{{#ifexpr:{{{scale|1}}}*{{{{{#expr:8*{{{columns|1}}}+32}}|}}}}}|0|{{{{{#expr:8*{{{columns|1}}}+32}}|0}}}}}|0}}<!---
--->}}|}}}}<!----
--->|}}|}}|}}|}}|}}|}}|}}|}}}}}}
{{#if:{{{source|}}}|
{{!}}-
{{!}} colspan="2" style="text-align:right;font-style:italic;" {{!}} <small>Source: {{{source|}}}</small>|}}
|}</includeonly><noinclude>
{{Documentation}}
<!-- Add categories to the /doc subpage, not here! -->
</noinclude>
g3v80jp6i3ikblvksiy146k7cgcfscj
Template:Stacked bar
10
53336
309758
2026-09-26T17:43:05Z
Isma4l
41797
Bog cusub: <templatestyles src="Stacked bar/styles.css" /> <includeonly><div class="StackedBarTemplate {{yesno|{{{vertical_caption|}}}|yes=StackedBarTemplate_vertical|def=StackedBarTemplate_{{{vertical_caption|}}}}}"><div style="{{yesno|{{{vertical_caption|}}}|yes=max-height: {{{caption_height|8em}}}}}"> {{#ifeq: {{{T1|0}}} | 0 | <!-- do nothing --> | <div style="flex:{{#expr: 100 * {{{A1}}} / {{{Total|100}}} round 1 }}">{{#if:{{{T1}}}|<span>{{{T1}}}</span>}}</div>}}<!-- -->{{#ifeq: {{{T2|0...
309758
wikitext
text/x-wiki
<templatestyles src="Stacked bar/styles.css" />
<includeonly><div class="StackedBarTemplate {{yesno|{{{vertical_caption|}}}|yes=StackedBarTemplate_vertical|def=StackedBarTemplate_{{{vertical_caption|}}}}}"><div style="{{yesno|{{{vertical_caption|}}}|yes=max-height: {{{caption_height|8em}}}}}">
{{#ifeq: {{{T1|0}}} | 0 | <!-- do nothing --> | <div style="flex:{{#expr: 100 * {{{A1}}} / {{{Total|100}}} round 1 }}">{{#if:{{{T1}}}|<span>{{{T1}}}</span>}}</div>}}<!--
-->{{#ifeq: {{{T2|0}}} | 0 | <!-- do nothing --> | <div style="flex:{{#expr: 100 * {{{A2}}} / {{{Total|100}}} round 1 }}">{{#if:{{{T2}}}|<span>{{{T2}}}</span>}}</div>}}<!--
-->{{#ifeq: {{{T3|0}}} | 0 | <!-- do nothing --> | <div style="flex:{{#expr: 100 * {{{A3}}} / {{{Total|100}}} round 1 }}">{{#if:{{{T3}}}|<span>{{{T3}}}</span>}}</div>}}<!--
-->{{#ifeq: {{{T4|0}}} | 0 | <!-- do nothing --> | <div style="flex:{{#expr: 100 * {{{A4}}} / {{{Total|100}}} round 1 }}">{{#if:{{{T4}}}|<span>{{{T4}}}</span>}}</div>}}<!--
-->{{#ifeq: {{{T5|0}}} | 0 | <!-- do nothing --> | <div style="flex:{{#expr: 100 * {{{A5}}} / {{{Total|100}}} round 1 }}">{{#if:{{{T5}}}|<span>{{{T5}}}</span>}}</div>}}<!--
-->{{#ifeq: {{{T6|0}}} | 0 | <!-- do nothing --> | <div style="flex:{{#expr: 100 * {{{A6}}} / {{{Total|100}}} round 1 }}">{{#if:{{{T6}}}|<span>{{{T6}}}</span>}}</div>}}<!--
-->{{#ifeq: {{{T7|0}}} | 0 | <!-- do nothing --> | <div style="flex:{{#expr: 100 * {{{A7}}} / {{{Total|100}}} round 1 }}">{{#if:{{{T7}}}|<span>{{{T7}}}</span>}}</div>}}<!--
-->{{#ifeq: {{{T8|0}}} | 0 | <!-- do nothing --> | <div style="flex:{{#expr: 100 * {{{A8}}} / {{{Total|100}}} round 1 }}">{{#if:{{{T8}}}|<span>{{{T8}}}</span>}}</div>}}<!--
-->{{#ifeq: {{{T9|0}}} | 0 | <!-- do nothing --> | <div style="flex:{{#expr: 100 * {{{A9}}} / {{{Total|100}}} round 1 }}">{{#if:{{{T9}}}|<span>{{{T9}}}</span>}}</div>}}<!--
-->{{#ifeq: {{{T10|0}}} | 0 | <!-- do nothing --> | <div style="flex:{{#expr: 100 * {{{A10}}} / {{{Total|100}}} round 1 }}">{{#if:{{{T10}}}|<span>{{{T10}}}</span>}}</div>}}<!--
-->{{#ifeq: {{{T11|0}}} | 0 | <!-- do nothing --> | <div style="flex:{{#expr: 100 * {{{A11}}} / {{{Total|100}}} round 1 }}">{{#if:{{{T11}}}|<span>{{{T11}}}</span>}}</div>}}<!--
-->{{#ifeq: {{{T12|0}}} | 0 | <!-- do nothing --> | <div style="flex:{{#expr: 100 * {{{A12}}} / {{{Total|100}}} round 1 }}">{{#if:{{{T12}}}|<span>{{{T12}}}</span>}}</div>}}<!--
-->{{#ifexpr: {{{A1|0}}} + {{{A2|0}}} + {{{A3|0}}} + {{{A4|0}}} + {{{A5|0}}} + {{{A6|0}}} + {{{A7|0}}} + {{{A8|0}}} + {{{A9|0}}} + {{{A10|0}}} + {{{A11|0}}} + {{{A12|0}}} - {{{Total|100}}} = 0 | <!-- do nothing --> | <div style="flex:{{#expr: -100 * ( {{{A1|0}}} + {{{A2|0}}} + {{{A3|0}}} + {{{A4|0}}} + {{{A5|0}}} + {{{A6|0}}} + {{{A7|0}}} + {{{A8|0}}} + {{{A9|0}}} + {{{A10|0}}} + {{{A11|0}}} + {{{A12|0}}} - {{{Total|100}}} ) / {{{Total|100}}} round 1 }}"></div>}}
</div>
{|class="stackedbar" cellspacing="1" style="height:{{{height|10px}}}"
{{#ifeq: {{{A1|0}}} | 0 | <!-- do nothing --> | {{!}}class="StackedBarTemplate_color" style="font-size:0px; -webkit-print-color-adjust: exact; print-color-adjust: exact; color:inherit; background: {{{C1|#85e084}}}; width: {{#expr: 100 * {{{A1}}} / {{{Total|100}}} round 1 }}%" title="{{#if:{{{hover-pc|}}}|{{#expr: 100 * {{{A1}}} / {{{Total|100}}} round 1 }}%}}"{{!}}}}
{{#ifeq: {{{A2|0}}} | 0 | <!-- do nothing --> | {{!}}class="StackedBarTemplate_color" style="font-size:0px; -webkit-print-color-adjust: exact; print-color-adjust: exact; color:inherit; background: {{{C2|#64d1cf}}}; width: {{#expr: 100 * {{{A2}}} / {{{Total|100}}} round 1 }}%" title="{{#if:{{{hover-pc|}}}|{{#expr: 100 * {{{A2}}} / {{{Total|100}}} round 1 }}%}}"{{!}}}}
{{#ifeq: {{{A3|0}}} | 0 | <!-- do nothing --> | {{!}}class="StackedBarTemplate_color" style="font-size:0px; -webkit-print-color-adjust: exact; print-color-adjust: exact; color:inherit; background: {{{C3|#6fc0f2}}}; width: {{#expr: 100 * {{{A3}}} / {{{Total|100}}} round 1 }}%" title="{{#if:{{{hover-pc|}}}|{{#expr: 100 * {{{A3}}} / {{{Total|100}}} round 1 }}%}}"{{!}}}}
{{#ifeq: {{{A4|0}}} | 0 | <!-- do nothing --> | {{!}}class="StackedBarTemplate_color" style="font-size:0px; -webkit-print-color-adjust: exact; print-color-adjust: exact; color:inherit; background: {{{C4|#9692e3}}}; width: {{#expr: 100 * {{{A4}}} / {{{Total|100}}} round 1 }}%" title="{{#if:{{{hover-pc|}}}|{{#expr: 100 * {{{A4}}} / {{{Total|100}}} round 1 }}%}}"{{!}}}}
{{#ifeq: {{{A5|0}}} | 0 | <!-- do nothing --> | {{!}}class="StackedBarTemplate_color" style="font-size:0px; -webkit-print-color-adjust: exact; print-color-adjust: exact; color:inherit; background: {{{C5|#bd64d1}}}; width: {{#expr: 100 * {{{A5}}} / {{{Total|100}}} round 1 }}%" title="{{#if:{{{hover-pc|}}}|{{#expr: 100 * {{{A5}}} / {{{Total|100}}} round 1 }}%}}"{{!}}}}
{{#ifeq: {{{A6|0}}} | 0 | <!-- do nothing --> | {{!}}class="StackedBarTemplate_color" style="font-size:0px; -webkit-print-color-adjust: exact; print-color-adjust: exact; color:inherit; background: {{{C6|#fc80c2}}}; width: {{#expr: 100 * {{{A6}}} / {{{Total|100}}} round 1 }}%" title="{{#if:{{{hover-pc|}}}|{{#expr: 100 * {{{A6}}} / {{{Total|100}}} round 1 }}%}}"{{!}}}}
{{#ifeq: {{{A7|0}}} | 0 | <!-- do nothing --> | {{!}}class="StackedBarTemplate_color" style="font-size:0px; -webkit-print-color-adjust: exact; print-color-adjust: exact; color:inherit; background: {{{C7|#e5726e}}}; width: {{#expr: 100 * {{{A7}}} / {{{Total|100}}} round 1 }}%" title="{{#if:{{{hover-pc|}}}|{{#expr: 100 * {{{A7}}} / {{{Total|100}}} round 1 }}%}}"{{!}}}}
{{#ifeq: {{{A8|0}}} | 0 | <!-- do nothing --> | {{!}}class="StackedBarTemplate_color" style="font-size:0px; -webkit-print-color-adjust: exact; print-color-adjust: exact; color:inherit; background: {{{C8|#e5ab6e}}}; width: {{#expr: 100 * {{{A8}}} / {{{Total|100}}} round 1 }}%" title="{{#if:{{{hover-pc|}}}|{{#expr: 100 * {{{A8}}} / {{{Total|100}}} round 1 }}%}}"{{!}}}}
{{#ifeq: {{{A9|0}}} | 0 | <!-- do nothing --> | {{!}}class="StackedBarTemplate_color" style="font-size:0px; -webkit-print-color-adjust: exact; print-color-adjust: exact; color:inherit; background: {{{C9|#e5e36e}}}; width: {{#expr: 100 * {{{A9}}} / {{{Total|100}}} round 1 }}%" title="{{#if:{{{hover-pc|}}}|{{#expr: 100 * {{{A9}}} / {{{Total|100}}} round 1 }}%}}"{{!}}}}
{{#ifeq: {{{A10|0}}} | 0 | <!-- do nothing --> | {{!}}class="StackedBarTemplate_color" style="font-size:0px; -webkit-print-color-adjust: exact; print-color-adjust: exact; color:inherit; background: {{{C10|#b5e279}}}; width: {{#expr: 100 * {{{A10}}} / {{{Total|100}}} round 1 }}%" title="{{#if:{{{hover-pc|}}}|{{#expr: 100 * {{{A10}}} / {{{Total|100}}} round 1 }}%}}"{{!}}}}
{{#ifeq: {{{A11|0}}} | 0 | <!-- do nothing --> | {{!}}class="StackedBarTemplate_color" style="font-size:0px; -webkit-print-color-adjust: exact; print-color-adjust: exact; color:inherit; background: {{{C11|#85e084}}}; width: {{#expr: 100 * {{{A11}}} / {{{Total|100}}} round 1 }}%" title="{{#if:{{{hover-pc|}}}|{{#expr: 100 * {{{A11}}} / {{{Total|100}}} round 1 }}%}}"{{!}}}}
{{#ifeq: {{{A12|0}}} | 0 | <!-- do nothing --> | {{!}}class="StackedBarTemplate_color" style="font-size:0px; -webkit-print-color-adjust: exact; print-color-adjust: exact; color:inherit; background: {{{C12|#64d1cf}}}; width: {{#expr: 100 * {{{A12}}} / {{{Total|100}}} round 1 }}%" title="{{#if:{{{hover-pc|}}}|{{#expr: 100 * {{{A12}}} / {{{Total|100}}} round 1 }}%}}"{{!}}}}
{{#ifexpr: {{{A1|0}}} + {{{A2|0}}} + {{{A3|0}}} + {{{A4|0}}} + {{{A5|0}}} + {{{A6|0}}} + {{{A7|0}}} + {{{A8|0}}} + {{{A9|0}}} + {{{A10|0}}} + {{{A11|0}}} + {{{A12|0}}} - {{{Total|100}}} = 0 | <!-- do nothing --> | {{!}}class="StackedBarTemplate_color" style="font-size:0px; -webkit-print-color-adjust: exact; print-color-adjust: exact; color:inherit; background: #E2E2E2; width: {{#expr: -100 * ( {{{A1|0}}} + {{{A2|0}}} + {{{A3|0}}} + {{{A4|0}}} + {{{A5|0}}} + {{{A6|0}}} + {{{A7|0}}} + {{{A8|0}}} + {{{A9|0}}} + {{{A10|0}}} + {{{A11|0}}} + {{{A12|0}}} - {{{Total|100}}} ) / {{{Total|100}}} round 1 }}%" title="{{#if:{{{hover-pc|}}}|{{#expr: -100 * ( {{{A1|0}}} + {{{A2|0}}} + {{{A3|0}}} + {{{A4|0}}} + {{{A5|0}}} + {{{A6|0}}} + {{{A7|0}}} + {{{A8|0}}} + {{{A9|0}}} + {{{A10|0}}} + {{{A11|0}}} + {{{A12|0}}} - {{{Total|100}}} ) / {{{Total|100}}} round 1 }}%}}"{{!}}}}
|}</div></includeonly>
<noinclude>{{documentation}}</noinclude>
m654jdas9d8vk3beqw7j225i6a2dicu
Template:Stacked bar/styles.css
10
53337
309759
2026-09-26T17:43:35Z
Isma4l
41797
Bog cusub: .stackedbar { border: 1px solid grey; height: 10px; width: 100%; line-height: 0; box-sizing: border-box; } .StackedBarTemplate > div:first-child { font-size: 14px; width: 100%; text-align:center; display: flex; } .StackedBarTemplate > div:first-child > div > span { padding: 0.15em; } .StackedBarTemplate_lean > div:first-child > div { transform: translateX(1em) rotate(200deg); } .StackedBarTemplate_lean > div:first-child > div > span { text-align: left; writing-m...
309759
sanitized-css
text/css
.stackedbar {
border: 1px solid grey;
height: 10px;
width: 100%;
line-height: 0;
box-sizing: border-box;
}
.StackedBarTemplate > div:first-child {
font-size: 14px;
width: 100%;
text-align:center;
display: flex;
}
.StackedBarTemplate > div:first-child > div > span {
padding: 0.15em;
}
.StackedBarTemplate_lean > div:first-child > div {
transform: translateX(1em) rotate(200deg);
}
.StackedBarTemplate_lean > div:first-child > div > span {
text-align: left;
writing-mode: vertical-rl;
}
.StackedBarTemplate_vertical > div:first-child > div {
transform: rotate(180deg);
}
.StackedBarTemplate_vertical > div:first-child > div > span {
text-align: left;
writing-mode: vertical-rl;
}
.StackedBarTemplate_color p {
line-height:0;
font-size:0;
margin-top:0;
}
cn91hqstebssqz5mtsay5gg2wn3nirh
Template:Bar chart
10
53338
309760
2026-09-26T17:44:18Z
Isma4l
41797
Bog cusub: <templatestyles src="Template:Bar chart/styles.css"/> {| class="bar-chart {{#switch:{{{float|}}}|left=bar-chart-left|right=bar-chart-right|center=bar-chart-center}}" {{#if:{{{table_width|}}}|style="width: {{{table_width}}}em;"}} |+ {{{title|List of cities by population}}} |- ! scope="col" class="bar-chart-label-type" | {{#if:{{{label_type|}}}|{{{label_type}}}|City}} ! scope="col" {{#if:{{{bar_width|}}}|style="width: {{{bar_width}}}em"}} | {{#if:{{{data_type|{{{col1_data_type|}}}}...
309760
wikitext
text/x-wiki
<templatestyles src="Template:Bar chart/styles.css"/>
{| class="bar-chart {{#switch:{{{float|}}}|left=bar-chart-left|right=bar-chart-right|center=bar-chart-center}}" {{#if:{{{table_width|}}}|style="width: {{{table_width}}}em;"}}
|+ {{{title|List of cities by population}}}
|-
! scope="col" class="bar-chart-label-type" | {{#if:{{{label_type|}}}|{{{label_type}}}|City}}
! scope="col" {{#if:{{{bar_width|}}}|style="width: {{{bar_width}}}em"}} | {{#if:{{{data_type|{{{col1_data_type|}}}}}}|{{{data_type|{{{col1_data_type}}}}}}|Population}} {{#if:{{{col2_data_type|}}}|
!! scope="col" {{#if:{{{bar_width|}}}|style="width: {{{bar_width}}}em"}} {{!}} {{{col2_data_type}}}
}} {{#if:{{{col3_data_type|}}}|
!! scope="col" {{#if:{{{bar_width|}}}|style="width: {{{bar_width}}}em"}} {{!}} {{{col3_data_type}}}
}} {{#if:{{{col4_data_type|}}}|
!! scope="col" {{#if:{{{bar_width|}}}|style="width: {{{bar_width}}}em"}} {{!}} {{{col4_data_type}}}
}} {{#if:{{{col5_data_type|}}}|
!! scope="col" {{#if:{{{bar_width|}}}|style="width: {{{bar_width}}}em"}} {{!}} {{{col5_data_type}}}
}} {{#if:{{{col6_data_type|}}}|
!! scope="col" {{#if:{{{bar_width|}}}|style="width: {{{bar_width}}}em"}} {{!}} {{{col6_data_type}}}
}} {{#if:{{{col7_data_type|}}}|
!! scope="col" {{#if:{{{bar_width|}}}|style="width: {{{bar_width}}}em"}} {{!}} {{{col7_data_type}}}
}} {{#if:{{{col8_data_type|}}}|
!! scope="col" {{#if:{{{bar_width|}}}|style="width: {{{bar_width}}}em"}} {{!}} {{{col8_data_type}}}
}} {{#if:{{{col9_data_type|}}}|
!! scope="col" {{#if:{{{bar_width|}}}|style="width: {{{bar_width}}}em"}} {{!}} {{{col9_data_type}}}
}}
|-
{{#if:{{{col1_data1|{{{data1|}}}}}}|
! scope="row" {{!}} {{{label1}}}
{{!}} {{Bar chart/bar|{{{col1_data1|{{{data1}}}}}}|{{{col1_data_max|{{{data_max|{{{col1_data1|{{{data1}}}}}}}}}}}}|comment={{#if:{{{col1_comment1|{{{comment1|}}}}}}|{{{col1_comment1|{{{comment1}}}}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}}
}} {{#if:{{{col2_data1|}}}|
{{!!}} {{Bar chart/bar|{{{col2_data1}}}|{{{col2_data_max|{{{col2_data1}}}}}}|comment={{#if:{{{col2_comment1|}}}|{{{col2_comment1}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col3_data1|}}}|
{{!!}} {{Bar chart/bar|{{{col3_data1}}}|{{{col3_data_max|{{{col3_data1}}}}}}|comment={{#if:{{{col3_comment1|}}}|{{{col3_comment1}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col4_data1|}}}|
{{!!}} {{Bar chart/bar|{{{col4_data1}}}|{{{col4_data_max|{{{col4_data1}}}}}}|comment={{#if:{{{col4_comment1|}}}|{{{col4_comment1}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col5_data1|}}}|
{{!!}} {{Bar chart/bar|{{{col5_data1}}}|{{{col4_data_max|{{{col5_data1}}}}}}|comment={{#if:{{{col5_comment1|}}}|{{{col5_comment1}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col6_data1|}}}|
{{!!}} {{Bar chart/bar|{{{col6_data1}}}|{{{col4_data_max|{{{col6_data1}}}}}}|comment={{#if:{{{col6_comment1|}}}|{{{col6_comment1}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col7_data1|}}}|
{{!!}} {{Bar chart/bar|{{{col7_data1}}}|{{{col4_data_max|{{{col7_data1}}}}}}|comment={{#if:{{{col7_comment1|}}}|{{{col7_comment1}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col8_data1|}}}|
{{!!}} {{Bar chart/bar|{{{col8_data1}}}|{{{col4_data_max|{{{col8_data1}}}}}}|comment={{#if:{{{col8_comment1|}}}|{{{col8_comment1}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col9_data1|}}}|
{{!!}} {{Bar chart/bar|{{{col9_data1}}}|{{{col4_data_max|{{{col9_data1}}}}}}|comment={{#if:{{{col9_comment1|}}}|{{{col9_comment1}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }}
|-
{{#if:{{{col1_data2|{{{data2|}}}}}}|
! scope="row" {{!}} {{{label2}}}
{{!}} {{Bar chart/bar|{{{col1_data2|{{{data2}}}}}}|{{{col1_data_max|{{{data_max|{{{col1_data1|{{{data1}}}}}}}}}}}}|comment={{#if:{{{col1_comment2|{{{comment2|}}}}}}|{{{col1_comment2|{{{comment2}}}}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}}
}} {{#if:{{{col2_data2|}}}|
{{!!}} {{Bar chart/bar|{{{col2_data2}}}|{{{col2_data_max|{{{col2_data1}}}}}}|comment={{#if:{{{col2_comment2|}}}|{{{col2_comment2}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col3_data2|}}}|
{{!!}} {{Bar chart/bar|{{{col3_data2}}}|{{{col3_data_max|{{{col3_data1}}}}}}|comment={{#if:{{{col3_comment2|}}}|{{{col3_comment2}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col4_data2|}}}|
{{!!}} {{Bar chart/bar|{{{col4_data2}}}|{{{col4_data_max|{{{col4_data1}}}}}}|comment={{#if:{{{col4_comment2|}}}|{{{col4_comment2}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col5_data2|}}}|
{{!!}} {{Bar chart/bar|{{{col5_data2}}}|{{{col4_data_max|{{{col5_data1}}}}}}|comment={{#if:{{{col5_comment2|}}}|{{{col5_comment2}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col6_data2|}}}|
{{!!}} {{Bar chart/bar|{{{col6_data2}}}|{{{col4_data_max|{{{col6_data1}}}}}}|comment={{#if:{{{col6_comment2|}}}|{{{col6_comment2}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col7_data2|}}}|
{{!!}} {{Bar chart/bar|{{{col7_data2}}}|{{{col4_data_max|{{{col7_data1}}}}}}|comment={{#if:{{{col7_comment2|}}}|{{{col7_comment2}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col8_data2|}}}|
{{!!}} {{Bar chart/bar|{{{col8_data2}}}|{{{col4_data_max|{{{col8_data1}}}}}}|comment={{#if:{{{col8_comment2|}}}|{{{col8_comment2}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col9_data2|}}}|
{{!!}} {{Bar chart/bar|{{{col9_data2}}}|{{{col4_data_max|{{{col9_data1}}}}}}|comment={{#if:{{{col9_comment2|}}}|{{{col9_comment2}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }}
|-
{{#if:{{{col1_data3|{{{data3|}}}}}}|
! scope="row" {{!}} {{{label3}}}
{{!}} {{Bar chart/bar|{{{col1_data3|{{{data3}}}}}}|{{{col1_data_max|{{{data_max|{{{col1_data1|{{{data1}}}}}}}}}}}}|comment={{#if:{{{col1_comment3|{{{comment3|}}}}}}|{{{col1_comment3|{{{comment3}}}}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}}
}} {{#if:{{{col2_data3|}}}|
{{!!}} {{Bar chart/bar|{{{col2_data3}}}|{{{col2_data_max|{{{col2_data1}}}}}}|comment={{#if:{{{col2_comment3|}}}|{{{col2_comment3}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col3_data3|}}}|
{{!!}} {{Bar chart/bar|{{{col3_data3}}}|{{{col3_data_max|{{{col3_data1}}}}}}|comment={{#if:{{{col3_comment3|}}}|{{{col3_comment3}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col4_data3|}}}|
{{!!}} {{Bar chart/bar|{{{col4_data3}}}|{{{col4_data_max|{{{col4_data1}}}}}}|comment={{#if:{{{col4_comment3|}}}|{{{col4_comment3}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col5_data3|}}}|
{{!!}} {{Bar chart/bar|{{{col5_data3}}}|{{{col4_data_max|{{{col5_data1}}}}}}|comment={{#if:{{{col5_comment3|}}}|{{{col5_comment3}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col6_data3|}}}|
{{!!}} {{Bar chart/bar|{{{col6_data3}}}|{{{col4_data_max|{{{col6_data1}}}}}}|comment={{#if:{{{col6_comment3|}}}|{{{col6_comment3}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col7_data3|}}}|
{{!!}} {{Bar chart/bar|{{{col7_data3}}}|{{{col4_data_max|{{{col7_data1}}}}}}|comment={{#if:{{{col7_comment3|}}}|{{{col7_comment3}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col8_data3|}}}|
{{!!}} {{Bar chart/bar|{{{col8_data3}}}|{{{col4_data_max|{{{col8_data1}}}}}}|comment={{#if:{{{col8_comment3|}}}|{{{col8_comment3}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col9_data3|}}}|
{{!!}} {{Bar chart/bar|{{{col9_data3}}}|{{{col4_data_max|{{{col9_data1}}}}}}|comment={{#if:{{{col9_comment3|}}}|{{{col9_comment3}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }}
|-
{{#if:{{{col1_data4|{{{data4|}}}}}}|
! scope="row" {{!}} {{{label4}}}
{{!}} {{Bar chart/bar|{{{col1_data4|{{{data4}}}}}}|{{{col1_data_max|{{{data_max|{{{col1_data1|{{{data1}}}}}}}}}}}}|comment={{#if:{{{col1_comment4|{{{comment4|}}}}}}|{{{col1_comment4|{{{comment4}}}}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}}
}} {{#if:{{{col2_data4|}}}|
{{!!}} {{Bar chart/bar|{{{col2_data4}}}|{{{col2_data_max|{{{col2_data1}}}}}}|comment={{#if:{{{col2_comment4|}}}|{{{col2_comment4}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col3_data4|}}}|
{{!!}} {{Bar chart/bar|{{{col3_data4}}}|{{{col3_data_max|{{{col3_data1}}}}}}|comment={{#if:{{{col3_comment4|}}}|{{{col3_comment4}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col4_data4|}}}|
{{!!}} {{Bar chart/bar|{{{col4_data4}}}|{{{col4_data_max|{{{col4_data1}}}}}}|comment={{#if:{{{col4_comment4|}}}|{{{col4_comment4}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col5_data4|}}}|
{{!!}} {{Bar chart/bar|{{{col5_data4}}}|{{{col4_data_max|{{{col5_data1}}}}}}|comment={{#if:{{{col5_comment4|}}}|{{{col5_comment4}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col6_data4|}}}|
{{!!}} {{Bar chart/bar|{{{col6_data4}}}|{{{col4_data_max|{{{col6_data1}}}}}}|comment={{#if:{{{col6_comment4|}}}|{{{col6_comment4}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col7_data4|}}}|
{{!!}} {{Bar chart/bar|{{{col7_data4}}}|{{{col4_data_max|{{{col7_data1}}}}}}|comment={{#if:{{{col7_comment4|}}}|{{{col7_comment4}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col8_data4|}}}|
{{!!}} {{Bar chart/bar|{{{col8_data4}}}|{{{col4_data_max|{{{col8_data1}}}}}}|comment={{#if:{{{col8_comment4|}}}|{{{col8_comment4}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col9_data4|}}}|
{{!!}} {{Bar chart/bar|{{{col9_data4}}}|{{{col4_data_max|{{{col9_data1}}}}}}|comment={{#if:{{{col9_comment4|}}}|{{{col9_comment4}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }}
|-
{{#if:{{{col1_data5|{{{data5|}}}}}}|
! scope="row" {{!}} {{{label5}}}
{{!}} {{Bar chart/bar|{{{col1_data5|{{{data5}}}}}}|{{{col1_data_max|{{{data_max|{{{col1_data1|{{{data1}}}}}}}}}}}}|comment={{#if:{{{col1_comment5|{{{comment5|}}}}}}|{{{col1_comment5|{{{comment5}}}}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}}
}} {{#if:{{{col2_data5|}}}|
{{!!}} {{Bar chart/bar|{{{col2_data5}}}|{{{col2_data_max|{{{col2_data1}}}}}}|comment={{#if:{{{col2_comment5|}}}|{{{col2_comment5}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col3_data5|}}}|
{{!!}} {{Bar chart/bar|{{{col3_data5}}}|{{{col3_data_max|{{{col3_data1}}}}}}|comment={{#if:{{{col3_comment5|}}}|{{{col3_comment5}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col4_data5|}}}|
{{!!}} {{Bar chart/bar|{{{col4_data5}}}|{{{col4_data_max|{{{col4_data1}}}}}}|comment={{#if:{{{col4_comment5|}}}|{{{col4_comment5}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col5_data5|}}}|
{{!!}} {{Bar chart/bar|{{{col5_data5}}}|{{{col5_data_max|{{{col5_data1}}}}}}|comment={{#if:{{{col5_comment5|}}}|{{{col5_comment5}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col6_data5|}}}|
{{!!}} {{Bar chart/bar|{{{col6_data5}}}|{{{col6_data_max|{{{col6_data1}}}}}}|comment={{#if:{{{col6_comment5|}}}|{{{col6_comment5}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col7_data5|}}}|
{{!!}} {{Bar chart/bar|{{{col7_data5}}}|{{{col7_data_max|{{{col7_data1}}}}}}|comment={{#if:{{{col7_comment5|}}}|{{{col7_comment5}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col8_data5|}}}|
{{!!}} {{Bar chart/bar|{{{col8_data5}}}|{{{col8_data_max|{{{col8_data1}}}}}}|comment={{#if:{{{col8_comment5|}}}|{{{col8_comment5}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col9_data5|}}}|
{{!!}} {{Bar chart/bar|{{{col9_data5}}}|{{{col9_data_max|{{{col9_data1}}}}}}|comment={{#if:{{{col9_comment5|}}}|{{{col9_comment5}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }}
|-
{{#if:{{{col1_data6|{{{data6|}}}}}}|
! scope="row" {{!}} {{{label6}}}
{{!}} {{Bar chart/bar|{{{col1_data6|{{{data6}}}}}}|{{{col1_data_max|{{{data_max|{{{col1_data1|{{{data1}}}}}}}}}}}}|comment={{#if:{{{col1_comment6|{{{comment6|}}}}}}|{{{col1_comment6|{{{comment6}}}}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}}
}} {{#if:{{{col2_data6|}}}|
{{!!}} {{Bar chart/bar|{{{col2_data6}}}|{{{col2_data_max|{{{col2_data1}}}}}}|comment={{#if:{{{col2_comment6|}}}|{{{col2_comment6}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col3_data6|}}}|
{{!!}} {{Bar chart/bar|{{{col3_data6}}}|{{{col3_data_max|{{{col3_data1}}}}}}|comment={{#if:{{{col3_comment6|}}}|{{{col3_comment6}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col4_data6|}}}|
{{!!}} {{Bar chart/bar|{{{col4_data6}}}|{{{col4_data_max|{{{col4_data1}}}}}}|comment={{#if:{{{col4_comment6|}}}|{{{col4_comment6}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col5_data6|}}}|
{{!!}} {{Bar chart/bar|{{{col5_data6}}}|{{{col5_data_max|{{{col5_data1}}}}}}|comment={{#if:{{{col5_comment6|}}}|{{{col5_comment6}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col6_data6|}}}|
{{!!}} {{Bar chart/bar|{{{col6_data6}}}|{{{col6_data_max|{{{col6_data1}}}}}}|comment={{#if:{{{col6_comment6|}}}|{{{col6_comment6}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col7_data6|}}}|
{{!!}} {{Bar chart/bar|{{{col7_data6}}}|{{{col7_data_max|{{{col7_data1}}}}}}|comment={{#if:{{{col7_comment6|}}}|{{{col7_comment6}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col8_data6|}}}|
{{!!}} {{Bar chart/bar|{{{col8_data6}}}|{{{col8_data_max|{{{col8_data1}}}}}}|comment={{#if:{{{col8_comment6|}}}|{{{col8_comment6}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col9_data6|}}}|
{{!!}} {{Bar chart/bar|{{{col9_data6}}}|{{{col9_data_max|{{{col9_data1}}}}}}|comment={{#if:{{{col9_comment6|}}}|{{{col9_comment6}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }}
|-
{{#if:{{{col1_data7|{{{data7|}}}}}}|
! scope="row" {{!}} {{{label7}}}
{{!}} {{Bar chart/bar|{{{col1_data7|{{{data7}}}}}}|{{{col1_data_max|{{{data_max|{{{col1_data1|{{{data1}}}}}}}}}}}}|comment={{#if:{{{col1_comment7|{{{comment7|}}}}}}|{{{col1_comment7|{{{comment7}}}}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}}
}} {{#if:{{{col2_data7|}}}|
{{!!}} {{Bar chart/bar|{{{col2_data7}}}|{{{col2_data_max|{{{col2_data1}}}}}}|comment={{#if:{{{col2_comment7|}}}|{{{col2_comment7}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col3_data7|}}}|
{{!!}} {{Bar chart/bar|{{{col3_data7}}}|{{{col3_data_max|{{{col3_data1}}}}}}|comment={{#if:{{{col3_comment7|}}}|{{{col3_comment7}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col4_data7|}}}|
{{!!}} {{Bar chart/bar|{{{col4_data7}}}|{{{col4_data_max|{{{col4_data1}}}}}}|comment={{#if:{{{col4_comment7|}}}|{{{col4_comment7}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col5_data7|}}}|
{{!!}} {{Bar chart/bar|{{{col5_data7}}}|{{{col5_data_max|{{{col5_data1}}}}}}|comment={{#if:{{{col5_comment7|}}}|{{{col5_comment7}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col6_data7|}}}|
{{!!}} {{Bar chart/bar|{{{col6_data7}}}|{{{col6_data_max|{{{col6_data1}}}}}}|comment={{#if:{{{col6_comment7|}}}|{{{col6_comment7}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col7_data7|}}}|
{{!!}} {{Bar chart/bar|{{{col7_data7}}}|{{{col7_data_max|{{{col7_data1}}}}}}|comment={{#if:{{{col7_comment7|}}}|{{{col7_comment7}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col8_data7|}}}|
{{!!}} {{Bar chart/bar|{{{col8_data7}}}|{{{col8_data_max|{{{col8_data1}}}}}}|comment={{#if:{{{col8_comment7|}}}|{{{col8_comment7}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col9_data7|}}}|
{{!!}} {{Bar chart/bar|{{{col9_data7}}}|{{{col9_data_max|{{{col9_data1}}}}}}|comment={{#if:{{{col9_comment7|}}}|{{{col9_comment7}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }}
|-
{{#if:{{{col1_data8|{{{data8|}}}}}}|
! scope="row" {{!}} {{{label8}}}
{{!}} {{Bar chart/bar|{{{col1_data8|{{{data8}}}}}}|{{{col1_data_max|{{{data_max|{{{col1_data1|{{{data1}}}}}}}}}}}}|comment={{#if:{{{col1_comment8|{{{comment8|}}}}}}|{{{col1_comment8|{{{comment8}}}}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}}
}} {{#if:{{{col2_data8|}}}|
{{!!}} {{Bar chart/bar|{{{col2_data8}}}|{{{col2_data_max|{{{col2_data1}}}}}}|comment={{#if:{{{col2_comment8|}}}|{{{col2_comment8}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col3_data8|}}}|
{{!!}} {{Bar chart/bar|{{{col3_data8}}}|{{{col3_data_max|{{{col3_data1}}}}}}|comment={{#if:{{{col3_comment8|}}}|{{{col3_comment8}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col4_data8|}}}|
{{!!}} {{Bar chart/bar|{{{col4_data8}}}|{{{col4_data_max|{{{col4_data1}}}}}}|comment={{#if:{{{col4_comment8|}}}|{{{col4_comment8}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col5_data8|}}}|
{{!!}} {{Bar chart/bar|{{{col5_data8}}}|{{{col5_data_max|{{{col5_data1}}}}}}|comment={{#if:{{{col5_comment8|}}}|{{{col5_comment8}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col6_data8|}}}|
{{!!}} {{Bar chart/bar|{{{col6_data8}}}|{{{col6_data_max|{{{col6_data1}}}}}}|comment={{#if:{{{col6_comment8|}}}|{{{col6_comment8}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col7_data8|}}}|
{{!!}} {{Bar chart/bar|{{{col7_data8}}}|{{{col7_data_max|{{{col7_data1}}}}}}|comment={{#if:{{{col7_comment8|}}}|{{{col7_comment8}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col8_data8|}}}|
{{!!}} {{Bar chart/bar|{{{col8_data8}}}|{{{col8_data_max|{{{col8_data1}}}}}}|comment={{#if:{{{col8_comment8|}}}|{{{col8_comment8}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col9_data8|}}}|
{{!!}} {{Bar chart/bar|{{{col9_data8}}}|{{{col9_data_max|{{{col9_data1}}}}}}|comment={{#if:{{{col9_comment8|}}}|{{{col9_comment8}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }}
|-
{{#if:{{{col1_data9|{{{data9|}}}}}}|
! scope="row" {{!}} {{{label9}}}
{{!}} {{Bar chart/bar|{{{col1_data9|{{{data9}}}}}}|{{{col1_data_max|{{{data_max|{{{col1_data1|{{{data1}}}}}}}}}}}}|comment={{#if:{{{col1_comment9|{{{comment9|}}}}}}|{{{col1_comment9|{{{comment9}}}}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}}
}} {{#if:{{{col2_data9|}}}|
{{!!}} {{Bar chart/bar|{{{col2_data9}}}|{{{col2_data_max|{{{col2_data1}}}}}}|comment={{#if:{{{col2_comment9|}}}|{{{col2_comment9}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col3_data9|}}}|
{{!!}} {{Bar chart/bar|{{{col3_data9}}}|{{{col3_data_max|{{{col3_data1}}}}}}|comment={{#if:{{{col3_comment9|}}}|{{{col3_comment9}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col4_data9|}}}|
{{!!}} {{Bar chart/bar|{{{col4_data9}}}|{{{col4_data_max|{{{col4_data1}}}}}}|comment={{#if:{{{col4_comment9|}}}|{{{col4_comment9}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col5_data9|}}}|
{{!!}} {{Bar chart/bar|{{{col5_data9}}}|{{{col5_data_max|{{{col5_data1}}}}}}|comment={{#if:{{{col5_comment9|}}}|{{{col5_comment9}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col6_data9|}}}|
{{!!}} {{Bar chart/bar|{{{col6_data9}}}|{{{col6_data_max|{{{col6_data1}}}}}}|comment={{#if:{{{col6_comment9|}}}|{{{col6_comment9}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col7_data9|}}}|
{{!!}} {{Bar chart/bar|{{{col7_data9}}}|{{{col7_data_max|{{{col7_data1}}}}}}|comment={{#if:{{{col7_comment9|}}}|{{{col7_comment9}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col8_data9|}}}|
{{!!}} {{Bar chart/bar|{{{col8_data9}}}|{{{col8_data_max|{{{col8_data1}}}}}}|comment={{#if:{{{col8_comment9|}}}|{{{col8_comment9}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col9_data9|}}}|
{{!!}} {{Bar chart/bar|{{{col9_data9}}}|{{{col9_data_max|{{{col9_data1}}}}}}|comment={{#if:{{{col9_comment9|}}}|{{{col9_comment9}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }}
|-
{{#if:{{{col1_data10|{{{data10|}}}}}}|
! scope="row" {{!}} {{{label10}}}
{{!}} {{Bar chart/bar|{{{col1_data10|{{{data10}}}}}}|{{{col1_data_max|{{{data_max|{{{col1_data1|{{{data1}}}}}}}}}}}}|comment={{#if:{{{col1_comment10|{{{comment10|}}}}}}|{{{col1_comment10|{{{comment10}}}}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}}
}} {{#if:{{{col2_data10|}}}|
{{!!}} {{Bar chart/bar|{{{col2_data10}}}|{{{col2_data_max|{{{col2_data1}}}}}}|comment={{#if:{{{col2_comment10|}}}|{{{col2_comment10}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col3_data10|}}}|
{{!!}} {{Bar chart/bar|{{{col3_data10}}}|{{{col3_data_max|{{{col3_data1}}}}}}|comment={{#if:{{{col3_comment10|}}}|{{{col3_comment10}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col4_data10|}}}|
{{!!}} {{Bar chart/bar|{{{col4_data10}}}|{{{col4_data_max|{{{col4_data1}}}}}}|comment={{#if:{{{col4_comment10|}}}|{{{col4_comment10}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col5_data10|}}}|
{{!!}} {{Bar chart/bar|{{{col5_data10}}}|{{{col5_data_max|{{{col5_data1}}}}}}|comment={{#if:{{{col5_comment10|}}}|{{{col5_comment10}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col6_data10|}}}|
{{!!}} {{Bar chart/bar|{{{col6_data10}}}|{{{col6_data_max|{{{col6_data1}}}}}}|comment={{#if:{{{col6_comment10|}}}|{{{col6_comment10}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col7_data10|}}}|
{{!!}} {{Bar chart/bar|{{{col7_data10}}}|{{{col7_data_max|{{{col7_data1}}}}}}|comment={{#if:{{{col7_comment10|}}}|{{{col7_comment10}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col8_data10|}}}|
{{!!}} {{Bar chart/bar|{{{col8_data10}}}|{{{col8_data_max|{{{col8_data1}}}}}}|comment={{#if:{{{col8_comment10|}}}|{{{col8_comment10}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col9_data10|}}}|
{{!!}} {{Bar chart/bar|{{{col9_data10}}}|{{{col9_data_max|{{{col9_data1}}}}}}|comment={{#if:{{{col9_comment10|}}}|{{{col9_comment10}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }}
|-
{{#if:{{{col1_data11|{{{data11|}}}}}}|
! scope="row" {{!}} {{{label11}}}
{{!}} {{Bar chart/bar|{{{col1_data11|{{{data11}}}}}}|{{{col1_data_max|{{{data_max|{{{col1_data1|{{{data1}}}}}}}}}}}}|comment={{#if:{{{col1_comment11|{{{comment11|}}}}}}|{{{col1_comment11|{{{comment11}}}}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}}
}} {{#if:{{{col2_data11|}}}|
{{!!}} {{Bar chart/bar|{{{col2_data11}}}|{{{col2_data_max|{{{col2_data1}}}}}}|comment={{#if:{{{col2_comment11|}}}|{{{col2_comment11}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col3_data11|}}}|
{{!!}} {{Bar chart/bar|{{{col3_data11}}}|{{{col3_data_max|{{{col3_data1}}}}}}|comment={{#if:{{{col3_comment11|}}}|{{{col3_comment11}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col4_data11|}}}|
{{!!}} {{Bar chart/bar|{{{col4_data11}}}|{{{col4_data_max|{{{col4_data1}}}}}}|comment={{#if:{{{col4_comment11|}}}|{{{col4_comment11}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col5_data11|}}}|
{{!!}} {{Bar chart/bar|{{{col5_data11}}}|{{{col5_data_max|{{{col5_data1}}}}}}|comment={{#if:{{{col5_comment11|}}}|{{{col5_comment11}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col6_data11|}}}|
{{!!}} {{Bar chart/bar|{{{col6_data11}}}|{{{col6_data_max|{{{col6_data1}}}}}}|comment={{#if:{{{col6_comment11|}}}|{{{col6_comment11}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col7_data11|}}}|
{{!!}} {{Bar chart/bar|{{{col7_data11}}}|{{{col7_data_max|{{{col7_data1}}}}}}|comment={{#if:{{{col7_comment11|}}}|{{{col7_comment11}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col8_data11|}}}|
{{!!}} {{Bar chart/bar|{{{col8_data11}}}|{{{col8_data_max|{{{col8_data1}}}}}}|comment={{#if:{{{col8_comment11|}}}|{{{col8_comment11}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col9_data11|}}}|
{{!!}} {{Bar chart/bar|{{{col9_data11}}}|{{{col9_data_max|{{{col9_data1}}}}}}|comment={{#if:{{{col9_comment11|}}}|{{{col9_comment11}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }}
|-
{{#if:{{{col1_data12|{{{data12|}}}}}}|
! scope="row" {{!}} {{{label12}}}
{{!}} {{Bar chart/bar|{{{col1_data12|{{{data12}}}}}}|{{{col1_data_max|{{{data_max|{{{col1_data1|{{{data1}}}}}}}}}}}}|comment={{#if:{{{col1_comment12|{{{comment12|}}}}}}|{{{col1_comment12|{{{comment12}}}}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}}
}} {{#if:{{{col2_data12|}}}|
{{!!}} {{Bar chart/bar|{{{col2_data12}}}|{{{col2_data_max|{{{col2_data1}}}}}}|comment={{#if:{{{col2_comment12|}}}|{{{col2_comment12}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col3_data12|}}}|
{{!!}} {{Bar chart/bar|{{{col3_data12}}}|{{{col3_data_max|{{{col3_data1}}}}}}|comment={{#if:{{{col3_comment12|}}}|{{{col3_comment12}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col4_data12|}}}|
{{!!}} {{Bar chart/bar|{{{col4_data12}}}|{{{col4_data_max|{{{col4_data1}}}}}}|comment={{#if:{{{col4_comment12|}}}|{{{col4_comment12}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col5_data12|}}}|
{{!!}} {{Bar chart/bar|{{{col5_data12}}}|{{{col5_data_max|{{{col5_data1}}}}}}|comment={{#if:{{{col5_comment12|}}}|{{{col5_comment12}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col6_data12|}}}|
{{!!}} {{Bar chart/bar|{{{col6_data12}}}|{{{col6_data_max|{{{col6_data1}}}}}}|comment={{#if:{{{col6_comment12|}}}|{{{col6_comment12}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col7_data12|}}}|
{{!!}} {{Bar chart/bar|{{{col7_data12}}}|{{{col7_data_max|{{{col7_data1}}}}}}|comment={{#if:{{{col7_comment12|}}}|{{{col7_comment12}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col8_data12|}}}|
{{!!}} {{Bar chart/bar|{{{col8_data12}}}|{{{col8_data_max|{{{col8_data1}}}}}}|comment={{#if:{{{col8_comment12|}}}|{{{col8_comment12}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col9_data12|}}}|
{{!!}} {{Bar chart/bar|{{{col9_data12}}}|{{{col9_data_max|{{{col9_data1}}}}}}|comment={{#if:{{{col9_comment12|}}}|{{{col9_comment12}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }}
|-
{{#if:{{{col1_data13|{{{data13|}}}}}}|
! scope="row" {{!}} {{{label13}}}
{{!}} {{Bar chart/bar|{{{col1_data13|{{{data13}}}}}}|{{{col1_data_max|{{{data_max|{{{col1_data1|{{{data1}}}}}}}}}}}}|comment={{#if:{{{col1_comment13|{{{comment13|}}}}}}|{{{col1_comment13|{{{comment13}}}}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}}
}} {{#if:{{{col2_data13|}}}|
{{!!}} {{Bar chart/bar|{{{col2_data13}}}|{{{col2_data_max|{{{col2_data1}}}}}}|comment={{#if:{{{col2_comment13|}}}|{{{col2_comment13}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col3_data13|}}}|
{{!!}} {{Bar chart/bar|{{{col3_data13}}}|{{{col3_data_max|{{{col3_data1}}}}}}|comment={{#if:{{{col3_comment13|}}}|{{{col3_comment13}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col4_data13|}}}|
{{!!}} {{Bar chart/bar|{{{col4_data13}}}|{{{col4_data_max|{{{col4_data1}}}}}}|comment={{#if:{{{col4_comment13|}}}|{{{col4_comment13}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col5_data13|}}}|
{{!!}} {{Bar chart/bar|{{{col5_data13}}}|{{{col5_data_max|{{{col5_data1}}}}}}|comment={{#if:{{{col5_comment13|}}}|{{{col5_comment13}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col6_data13|}}}|
{{!!}} {{Bar chart/bar|{{{col6_data13}}}|{{{col6_data_max|{{{col6_data1}}}}}}|comment={{#if:{{{col6_comment13|}}}|{{{col6_comment13}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col7_data13|}}}|
{{!!}} {{Bar chart/bar|{{{col7_data13}}}|{{{col7_data_max|{{{col7_data1}}}}}}|comment={{#if:{{{col7_comment13|}}}|{{{col7_comment13}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col8_data13|}}}|
{{!!}} {{Bar chart/bar|{{{col8_data13}}}|{{{col8_data_max|{{{col8_data1}}}}}}|comment={{#if:{{{col8_comment13|}}}|{{{col8_comment13}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col9_data13|}}}|
{{!!}} {{Bar chart/bar|{{{col9_data13}}}|{{{col9_data_max|{{{col9_data1}}}}}}|comment={{#if:{{{col9_comment13|}}}|{{{col9_comment13}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }}
|-
{{#if:{{{col1_data14|{{{data14|}}}}}}|
! scope="row" {{!}} {{{label14}}}
{{!}} {{Bar chart/bar|{{{col1_data14|{{{data14}}}}}}|{{{col1_data_max|{{{data_max|{{{col1_data1|{{{data1}}}}}}}}}}}}|comment={{#if:{{{col1_comment14|{{{comment14|}}}}}}|{{{col1_comment14|{{{comment14}}}}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}}
}} {{#if:{{{col2_data14|}}}|
{{!!}} {{Bar chart/bar|{{{col2_data14}}}|{{{col2_data_max|{{{col2_data1}}}}}}|comment={{#if:{{{col2_comment14|}}}|{{{col2_comment14}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col3_data14|}}}|
{{!!}} {{Bar chart/bar|{{{col3_data14}}}|{{{col3_data_max|{{{col3_data1}}}}}}|comment={{#if:{{{col3_comment14|}}}|{{{col3_comment14}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col4_data14|}}}|
{{!!}} {{Bar chart/bar|{{{col4_data14}}}|{{{col4_data_max|{{{col4_data1}}}}}}|comment={{#if:{{{col4_comment14|}}}|{{{col4_comment14}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col5_data14|}}}|
{{!!}} {{Bar chart/bar|{{{col5_data14}}}|{{{col5_data_max|{{{col5_data1}}}}}}|comment={{#if:{{{col5_comment14|}}}|{{{col5_comment14}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col6_data14|}}}|
{{!!}} {{Bar chart/bar|{{{col6_data14}}}|{{{col6_data_max|{{{col6_data1}}}}}}|comment={{#if:{{{col6_comment14|}}}|{{{col6_comment14}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col7_data14|}}}|
{{!!}} {{Bar chart/bar|{{{col7_data14}}}|{{{col7_data_max|{{{col7_data1}}}}}}|comment={{#if:{{{col7_comment14|}}}|{{{col7_comment14}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col8_data14|}}}|
{{!!}} {{Bar chart/bar|{{{col8_data14}}}|{{{col8_data_max|{{{col8_data1}}}}}}|comment={{#if:{{{col8_comment14|}}}|{{{col8_comment14}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col9_data14|}}}|
{{!!}} {{Bar chart/bar|{{{col9_data14}}}|{{{col9_data_max|{{{col9_data1}}}}}}|comment={{#if:{{{col9_comment14|}}}|{{{col9_comment14}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }}
|-
{{#if:{{{col1_data15|{{{data15|}}}}}}|
! scope="row" {{!}} {{{label15}}}
{{!}} {{Bar chart/bar|{{{col1_data15|{{{data15}}}}}}|{{{col1_data_max|{{{data_max|{{{col1_data1|{{{data1}}}}}}}}}}}}|comment={{#if:{{{col1_comment15|{{{comment15|}}}}}}|{{{col1_comment15|{{{comment15}}}}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}}
}} {{#if:{{{col2_data15|}}}|
{{!!}} {{Bar chart/bar|{{{col2_data15}}}|{{{col2_data_max|{{{col2_data1}}}}}}|comment={{#if:{{{col2_comment15|}}}|{{{col2_comment15}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col3_data15|}}}|
{{!!}} {{Bar chart/bar|{{{col3_data15}}}|{{{col3_data_max|{{{col3_data1}}}}}}|comment={{#if:{{{col3_comment15|}}}|{{{col3_comment15}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col4_data15|}}}|
{{!!}} {{Bar chart/bar|{{{col4_data15}}}|{{{col4_data_max|{{{col4_data1}}}}}}|comment={{#if:{{{col4_comment15|}}}|{{{col4_comment15}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col5_data15|}}}|
{{!!}} {{Bar chart/bar|{{{col5_data15}}}|{{{col5_data_max|{{{col5_data1}}}}}}|comment={{#if:{{{col5_comment15|}}}|{{{col5_comment15}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col6_data15|}}}|
{{!!}} {{Bar chart/bar|{{{col6_data15}}}|{{{col6_data_max|{{{col6_data1}}}}}}|comment={{#if:{{{col6_comment15|}}}|{{{col6_comment15}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col7_data15|}}}|
{{!!}} {{Bar chart/bar|{{{col7_data15}}}|{{{col7_data_max|{{{col7_data1}}}}}}|comment={{#if:{{{col7_comment15|}}}|{{{col7_comment15}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col8_data15|}}}|
{{!!}} {{Bar chart/bar|{{{col8_data15}}}|{{{col8_data_max|{{{col8_data1}}}}}}|comment={{#if:{{{col8_comment15|}}}|{{{col8_comment15}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col9_data15|}}}|
{{!!}} {{Bar chart/bar|{{{col9_data15}}}|{{{col9_data_max|{{{col9_data1}}}}}}|comment={{#if:{{{col9_comment15|}}}|{{{col9_comment15}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }}
|-
{{#if:{{{col1_data16|{{{data16|}}}}}}|
! scope="row" {{!}} {{{label16}}}
{{!}} {{Bar chart/bar|{{{col1_data16|{{{data16}}}}}}|{{{col1_data_max|{{{data_max|{{{col1_data1|{{{data1}}}}}}}}}}}}|comment={{#if:{{{col1_comment16|{{{comment16|}}}}}}|{{{col1_comment16|{{{comment16}}}}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}}
}} {{#if:{{{col2_data16|}}}|
{{!!}} {{Bar chart/bar|{{{col2_data16}}}|{{{col2_data_max|{{{col2_data1}}}}}}|comment={{#if:{{{col2_comment16|}}}|{{{col2_comment16}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col3_data16|}}}|
{{!!}} {{Bar chart/bar|{{{col3_data16}}}|{{{col3_data_max|{{{col3_data1}}}}}}|comment={{#if:{{{col3_comment16|}}}|{{{col3_comment16}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col4_data16|}}}|
{{!!}} {{Bar chart/bar|{{{col4_data16}}}|{{{col4_data_max|{{{col4_data1}}}}}}|comment={{#if:{{{col4_comment16|}}}|{{{col4_comment16}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col5_data16|}}}|
{{!!}} {{Bar chart/bar|{{{col5_data16}}}|{{{col5_data_max|{{{col5_data1}}}}}}|comment={{#if:{{{col5_comment16|}}}|{{{col5_comment16}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col6_data16|}}}|
{{!!}} {{Bar chart/bar|{{{col6_data16}}}|{{{col6_data_max|{{{col6_data1}}}}}}|comment={{#if:{{{col6_comment16|}}}|{{{col6_comment16}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col7_data16|}}}|
{{!!}} {{Bar chart/bar|{{{col7_data16}}}|{{{col7_data_max|{{{col7_data1}}}}}}|comment={{#if:{{{col7_comment16|}}}|{{{col7_comment16}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col8_data16|}}}|
{{!!}} {{Bar chart/bar|{{{col8_data16}}}|{{{col8_data_max|{{{col8_data1}}}}}}|comment={{#if:{{{col8_comment16|}}}|{{{col8_comment16}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col9_data16|}}}|
{{!!}} {{Bar chart/bar|{{{col9_data16}}}|{{{col9_data_max|{{{col9_data1}}}}}}|comment={{#if:{{{col9_comment16|}}}|{{{col9_comment16}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }}
|-
{{#if:{{{col1_data17|{{{data17|}}}}}}|
! scope="row" {{!}} {{{label17}}}
{{!}} {{Bar chart/bar|{{{col1_data17|{{{data17}}}}}}|{{{col1_data_max|{{{data_max|{{{col1_data1|{{{data1}}}}}}}}}}}}|comment={{#if:{{{col1_comment17|{{{comment17|}}}}}}|{{{col1_comment17|{{{comment17}}}}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}}
}} {{#if:{{{col2_data17|}}}|
{{!!}} {{Bar chart/bar|{{{col2_data17}}}|{{{col2_data_max|{{{col2_data1}}}}}}|comment={{#if:{{{col2_comment17|}}}|{{{col2_comment17}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col3_data17|}}}|
{{!!}} {{Bar chart/bar|{{{col3_data17}}}|{{{col3_data_max|{{{col3_data1}}}}}}|comment={{#if:{{{col3_comment17|}}}|{{{col3_comment17}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col4_data17|}}}|
{{!!}} {{Bar chart/bar|{{{col4_data17}}}|{{{col4_data_max|{{{col4_data1}}}}}}|comment={{#if:{{{col4_comment17|}}}|{{{col4_comment17}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col5_data17|}}}|
{{!!}} {{Bar chart/bar|{{{col5_data17}}}|{{{col5_data_max|{{{col5_data1}}}}}}|comment={{#if:{{{col5_comment17|}}}|{{{col5_comment17}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col6_data17|}}}|
{{!!}} {{Bar chart/bar|{{{col6_data17}}}|{{{col6_data_max|{{{col6_data1}}}}}}|comment={{#if:{{{col6_comment17|}}}|{{{col6_comment17}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col7_data17|}}}|
{{!!}} {{Bar chart/bar|{{{col7_data17}}}|{{{col7_data_max|{{{col7_data1}}}}}}|comment={{#if:{{{col7_comment17|}}}|{{{col7_comment17}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col8_data17|}}}|
{{!!}} {{Bar chart/bar|{{{col8_data17}}}|{{{col8_data_max|{{{col8_data1}}}}}}|comment={{#if:{{{col8_comment17|}}}|{{{col8_comment17}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col9_data17|}}}|
{{!!}} {{Bar chart/bar|{{{col9_data17}}}|{{{col9_data_max|{{{col9_data1}}}}}}|comment={{#if:{{{col9_comment17|}}}|{{{col9_comment17}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }}
|-
{{#if:{{{col1_data18|{{{data18|}}}}}}|
! scope="row" {{!}} {{{label18}}}
{{!}} {{Bar chart/bar|{{{col1_data18|{{{data18}}}}}}|{{{col1_data_max|{{{data_max|{{{col1_data1|{{{data1}}}}}}}}}}}}|comment={{#if:{{{col1_comment18|{{{comment18|}}}}}}|{{{col1_comment18|{{{comment18}}}}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}}
}} {{#if:{{{col2_data18|}}}|
{{!!}} {{Bar chart/bar|{{{col2_data18}}}|{{{col2_data_max|{{{col2_data1}}}}}}|comment={{#if:{{{col2_comment18|}}}|{{{col2_comment18}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col3_data18|}}}|
{{!!}} {{Bar chart/bar|{{{col3_data18}}}|{{{col3_data_max|{{{col3_data1}}}}}}|comment={{#if:{{{col3_comment18|}}}|{{{col3_comment18}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col4_data18|}}}|
{{!!}} {{Bar chart/bar|{{{col4_data18}}}|{{{col4_data_max|{{{col4_data1}}}}}}|comment={{#if:{{{col4_comment18|}}}|{{{col4_comment18}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col5_data18|}}}|
{{!!}} {{Bar chart/bar|{{{col5_data18}}}|{{{col5_data_max|{{{col5_data1}}}}}}|comment={{#if:{{{col5_comment18|}}}|{{{col5_comment18}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col6_data18|}}}|
{{!!}} {{Bar chart/bar|{{{col6_data18}}}|{{{col6_data_max|{{{col6_data1}}}}}}|comment={{#if:{{{col6_comment18|}}}|{{{col6_comment18}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col7_data18|}}}|
{{!!}} {{Bar chart/bar|{{{col7_data18}}}|{{{col7_data_max|{{{col7_data1}}}}}}|comment={{#if:{{{col7_comment18|}}}|{{{col7_comment18}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col8_data18|}}}|
{{!!}} {{Bar chart/bar|{{{col8_data18}}}|{{{col8_data_max|{{{col8_data1}}}}}}|comment={{#if:{{{col8_comment18|}}}|{{{col8_comment18}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col9_data18|}}}|
{{!!}} {{Bar chart/bar|{{{col9_data18}}}|{{{col9_data_max|{{{col9_data1}}}}}}|comment={{#if:{{{col9_comment18|}}}|{{{col9_comment18}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }}
|-
{{#if:{{{col1_data19|{{{data19|}}}}}}|
! scope="row" {{!}} {{{label19}}}
{{!}} {{Bar chart/bar|{{{col1_data19|{{{data19}}}}}}|{{{col1_data_max|{{{data_max|{{{col1_data1|{{{data1}}}}}}}}}}}}|comment={{#if:{{{col1_comment19|{{{comment19|}}}}}}|{{{col1_comment19|{{{comment19}}}}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}}
}} {{#if:{{{col2_data19|}}}|
{{!!}} {{Bar chart/bar|{{{col2_data19}}}|{{{col2_data_max|{{{col2_data1}}}}}}|comment={{#if:{{{col2_comment19|}}}|{{{col2_comment19}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col3_data19|}}}|
{{!!}} {{Bar chart/bar|{{{col3_data19}}}|{{{col3_data_max|{{{col3_data1}}}}}}|comment={{#if:{{{col3_comment19|}}}|{{{col3_comment19}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col4_data19|}}}|
{{!!}} {{Bar chart/bar|{{{col4_data19}}}|{{{col4_data_max|{{{col4_data1}}}}}}|comment={{#if:{{{col4_comment19|}}}|{{{col4_comment19}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col5_data19|}}}|
{{!!}} {{Bar chart/bar|{{{col5_data19}}}|{{{col5_data_max|{{{col5_data1}}}}}}|comment={{#if:{{{col5_comment19|}}}|{{{col5_comment19}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col6_data19|}}}|
{{!!}} {{Bar chart/bar|{{{col6_data19}}}|{{{col6_data_max|{{{col6_data1}}}}}}|comment={{#if:{{{col6_comment19|}}}|{{{col6_comment19}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col7_data19|}}}|
{{!!}} {{Bar chart/bar|{{{col7_data19}}}|{{{col7_data_max|{{{col7_data1}}}}}}|comment={{#if:{{{col7_comment19|}}}|{{{col7_comment19}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col8_data19|}}}|
{{!!}} {{Bar chart/bar|{{{col8_data19}}}|{{{col8_data_max|{{{col8_data1}}}}}}|comment={{#if:{{{col8_comment19|}}}|{{{col8_comment19}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col9_data19|}}}|
{{!!}} {{Bar chart/bar|{{{col9_data19}}}|{{{col9_data_max|{{{col9_data1}}}}}}|comment={{#if:{{{col9_comment19|}}}|{{{col9_comment19}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }}
|-
{{#if:{{{col1_data20|{{{data20|}}}}}}|
! scope="row" {{!}} {{{label20}}}
{{!}} {{Bar chart/bar|{{{col1_data20|{{{data20}}}}}}|{{{col1_data_max|{{{data_max|{{{col1_data1|{{{data1}}}}}}}}}}}}|comment={{#if:{{{col1_comment20|{{{comment20|}}}}}}|{{{col1_comment20|{{{comment20}}}}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}}
}} {{#if:{{{col2_data20|}}}|
{{!!}} {{Bar chart/bar|{{{col2_data20}}}|{{{col2_data_max|{{{col2_data1}}}}}}|comment={{#if:{{{col2_comment20|}}}|{{{col2_comment20}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col3_data20|}}}|
{{!!}} {{Bar chart/bar|{{{col3_data20}}}|{{{col3_data_max|{{{col3_data1}}}}}}|comment={{#if:{{{col3_comment20|}}}|{{{col3_comment20}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col4_data20|}}}|
{{!!}} {{Bar chart/bar|{{{col4_data20}}}|{{{col4_data_max|{{{col4_data1}}}}}}|comment={{#if:{{{col4_comment20|}}}|{{{col4_comment20}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col5_data20|}}}|
{{!!}} {{Bar chart/bar|{{{col5_data20}}}|{{{col5_data_max|{{{col5_data1}}}}}}|comment={{#if:{{{col5_comment20|}}}|{{{col5_comment20}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col6_data20|}}}|
{{!!}} {{Bar chart/bar|{{{col6_data20}}}|{{{col6_data_max|{{{col6_data1}}}}}}|comment={{#if:{{{col6_comment20|}}}|{{{col6_comment20}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col7_data20|}}}|
{{!!}} {{Bar chart/bar|{{{col7_data20}}}|{{{col7_data_max|{{{col7_data1}}}}}}|comment={{#if:{{{col7_comment20|}}}|{{{col7_comment20}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col8_data20|}}}|
{{!!}} {{Bar chart/bar|{{{col8_data20}}}|{{{col8_data_max|{{{col8_data1}}}}}}|comment={{#if:{{{col8_comment20|}}}|{{{col8_comment20}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col9_data20|}}}|
{{!!}} {{Bar chart/bar|{{{col9_data20}}}|{{{col9_data_max|{{{col9_data1}}}}}}|comment={{#if:{{{col9_comment20|}}}|{{{col9_comment20}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }}
|-
{{#if:{{{col1_data21|{{{data21|}}}}}}|
! scope="row" {{!}} {{{label21}}}
{{!}} {{Bar chart/bar|{{{col1_data21|{{{data21}}}}}}|{{{col1_data_max|{{{data_max|{{{col1_data1|{{{data1}}}}}}}}}}}}|comment={{#if:{{{col1_comment21|{{{comment21|}}}}}}|{{{col1_comment21|{{{comment21}}}}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}}
}} {{#if:{{{col2_data21|}}}|
{{!!}} {{Bar chart/bar|{{{col2_data21}}}|{{{col2_data_max|{{{col2_data1}}}}}}|comment={{#if:{{{col2_comment21|}}}|{{{col2_comment21}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col3_data21|}}}|
{{!!}} {{Bar chart/bar|{{{col3_data21}}}|{{{col3_data_max|{{{col3_data1}}}}}}|comment={{#if:{{{col3_comment21|}}}|{{{col3_comment21}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col4_data21|}}}|
{{!!}} {{Bar chart/bar|{{{col4_data21}}}|{{{col4_data_max|{{{col4_data1}}}}}}|comment={{#if:{{{col4_comment21|}}}|{{{col4_comment21}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col5_data21|}}}|
{{!!}} {{Bar chart/bar|{{{col5_data21}}}|{{{col5_data_max|{{{col5_data1}}}}}}|comment={{#if:{{{col5_comment21|}}}|{{{col5_comment21}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col6_data21|}}}|
{{!!}} {{Bar chart/bar|{{{col6_data21}}}|{{{col6_data_max|{{{col6_data1}}}}}}|comment={{#if:{{{col6_comment21|}}}|{{{col6_comment21}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col7_data21|}}}|
{{!!}} {{Bar chart/bar|{{{col7_data21}}}|{{{col7_data_max|{{{col7_data1}}}}}}|comment={{#if:{{{col7_comment21|}}}|{{{col7_comment21}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col8_data21|}}}|
{{!!}} {{Bar chart/bar|{{{col8_data21}}}|{{{col8_data_max|{{{col8_data1}}}}}}|comment={{#if:{{{col8_comment21|}}}|{{{col8_comment21}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col9_data21|}}}|
{{!!}} {{Bar chart/bar|{{{col9_data21}}}|{{{col9_data_max|{{{col9_data1}}}}}}|comment={{#if:{{{col9_comment21|}}}|{{{col9_comment21}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }}
|-
{{#if:{{{col1_data22|{{{data22|}}}}}}|
! scope="row" {{!}} {{{label22}}}
{{!}} {{Bar chart/bar|{{{col1_data22|{{{data22}}}}}}|{{{col1_data_max|{{{data_max|{{{col1_data1|{{{data1}}}}}}}}}}}}|comment={{#if:{{{col1_comment22|{{{comment22|}}}}}}|{{{col1_comment22|{{{comment22}}}}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}}
}} {{#if:{{{col2_data22|}}}|
{{!!}} {{Bar chart/bar|{{{col2_data22}}}|{{{col2_data_max|{{{col2_data1}}}}}}|comment={{#if:{{{col2_comment22|}}}|{{{col2_comment22}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col3_data22|}}}|
{{!!}} {{Bar chart/bar|{{{col3_data22}}}|{{{col3_data_max|{{{col3_data1}}}}}}|comment={{#if:{{{col3_comment22|}}}|{{{col3_comment22}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col4_data22|}}}|
{{!!}} {{Bar chart/bar|{{{col4_data22}}}|{{{col4_data_max|{{{col4_data1}}}}}}|comment={{#if:{{{col4_comment22|}}}|{{{col4_comment22}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col5_data22|}}}|
{{!!}} {{Bar chart/bar|{{{col5_data22}}}|{{{col5_data_max|{{{col5_data1}}}}}}|comment={{#if:{{{col5_comment22|}}}|{{{col5_comment22}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col6_data22|}}}|
{{!!}} {{Bar chart/bar|{{{col6_data22}}}|{{{col6_data_max|{{{col6_data1}}}}}}|comment={{#if:{{{col6_comment22|}}}|{{{col6_comment22}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col7_data22|}}}|
{{!!}} {{Bar chart/bar|{{{col7_data22}}}|{{{col7_data_max|{{{col7_data1}}}}}}|comment={{#if:{{{col7_comment22|}}}|{{{col7_comment22}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col8_data22|}}}|
{{!!}} {{Bar chart/bar|{{{col8_data22}}}|{{{col8_data_max|{{{col8_data1}}}}}}|comment={{#if:{{{col8_comment22|}}}|{{{col8_comment22}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col9_data22|}}}|
{{!!}} {{Bar chart/bar|{{{col9_data22}}}|{{{col9_data_max|{{{col9_data1}}}}}}|comment={{#if:{{{col9_comment22|}}}|{{{col9_comment22}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }}
|-
{{#if:{{{col1_data23|{{{data23|}}}}}}|
! scope="row" {{!}} {{{label23}}}
{{!}} {{Bar chart/bar|{{{col1_data23|{{{data23}}}}}}|{{{col1_data_max|{{{data_max|{{{col1_data1|{{{data1}}}}}}}}}}}}|comment={{#if:{{{col1_comment23|{{{comment23|}}}}}}|{{{col1_comment23|{{{comment23}}}}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}}
}} {{#if:{{{col2_data23|}}}|
{{!!}} {{Bar chart/bar|{{{col2_data23}}}|{{{col2_data_max|{{{col2_data1}}}}}}|comment={{#if:{{{col2_comment23|}}}|{{{col2_comment23}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col3_data23|}}}|
{{!!}} {{Bar chart/bar|{{{col3_data23}}}|{{{col3_data_max|{{{col3_data1}}}}}}|comment={{#if:{{{col3_comment23|}}}|{{{col3_comment23}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col4_data23|}}}|
{{!!}} {{Bar chart/bar|{{{col4_data23}}}|{{{col4_data_max|{{{col4_data1}}}}}}|comment={{#if:{{{col4_comment23|}}}|{{{col4_comment23}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col5_data23|}}}|
{{!!}} {{Bar chart/bar|{{{col5_data23}}}|{{{col5_data_max|{{{col5_data1}}}}}}|comment={{#if:{{{col5_comment23|}}}|{{{col5_comment23}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col6_data23|}}}|
{{!!}} {{Bar chart/bar|{{{col6_data23}}}|{{{col6_data_max|{{{col6_data1}}}}}}|comment={{#if:{{{col6_comment23|}}}|{{{col6_comment23}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col7_data23|}}}|
{{!!}} {{Bar chart/bar|{{{col7_data23}}}|{{{col7_data_max|{{{col7_data1}}}}}}|comment={{#if:{{{col7_comment23|}}}|{{{col7_comment23}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col8_data23|}}}|
{{!!}} {{Bar chart/bar|{{{col8_data23}}}|{{{col8_data_max|{{{col8_data1}}}}}}|comment={{#if:{{{col8_comment23|}}}|{{{col8_comment23}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col9_data23|}}}|
{{!!}} {{Bar chart/bar|{{{col9_data23}}}|{{{col9_data_max|{{{col9_data1}}}}}}|comment={{#if:{{{col9_comment23|}}}|{{{col9_comment23}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }}
|-
{{#if:{{{col1_data24|{{{data24|}}}}}}|
! scope="row" {{!}} {{{label24}}}
{{!}} {{Bar chart/bar|{{{col1_data24|{{{data24}}}}}}|{{{col1_data_max|{{{data_max|{{{col1_data1|{{{data1}}}}}}}}}}}}|comment={{#if:{{{col1_comment24|{{{comment24|}}}}}}|{{{col1_comment24|{{{comment24}}}}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}}
}} {{#if:{{{col2_data24|}}}|
{{!!}} {{Bar chart/bar|{{{col2_data24}}}|{{{col2_data_max|{{{col2_data1}}}}}}|comment={{#if:{{{col2_comment24|}}}|{{{col2_comment24}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col3_data24|}}}|
{{!!}} {{Bar chart/bar|{{{col3_data24}}}|{{{col3_data_max|{{{col3_data1}}}}}}|comment={{#if:{{{col3_comment24|}}}|{{{col3_comment24}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col4_data24|}}}|
{{!!}} {{Bar chart/bar|{{{col4_data24}}}|{{{col4_data_max|{{{col4_data1}}}}}}|comment={{#if:{{{col4_comment24|}}}|{{{col4_comment24}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col5_data24|}}}|
{{!!}} {{Bar chart/bar|{{{col5_data24}}}|{{{col5_data_max|{{{col5_data1}}}}}}|comment={{#if:{{{col5_comment24|}}}|{{{col5_comment24}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col6_data24|}}}|
{{!!}} {{Bar chart/bar|{{{col6_data24}}}|{{{col6_data_max|{{{col6_data1}}}}}}|comment={{#if:{{{col6_comment24|}}}|{{{col6_comment24}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col7_data24|}}}|
{{!!}} {{Bar chart/bar|{{{col7_data24}}}|{{{col7_data_max|{{{col7_data1}}}}}}|comment={{#if:{{{col7_comment24|}}}|{{{col7_comment24}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col8_data24|}}}|
{{!!}} {{Bar chart/bar|{{{col8_data24}}}|{{{col8_data_max|{{{col8_data1}}}}}}|comment={{#if:{{{col8_comment24|}}}|{{{col8_comment24}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col9_data24|}}}|
{{!!}} {{Bar chart/bar|{{{col9_data24}}}|{{{col9_data_max|{{{col9_data1}}}}}}|comment={{#if:{{{col9_comment24|}}}|{{{col9_comment24}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }}
|-
{{#if:{{{col1_data25|{{{data25|}}}}}}|
! scope="row" {{!}} {{{label25}}}
{{!}} {{Bar chart/bar|{{{col1_data25|{{{data25}}}}}}|{{{col1_data_max|{{{data_max|{{{col1_data1|{{{data1}}}}}}}}}}}}|comment={{#if:{{{col1_comment25|{{{comment25|}}}}}}|{{{col1_comment25|{{{comment25}}}}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}}
}} {{#if:{{{col2_data25|}}}|
{{!!}} {{Bar chart/bar|{{{col2_data25}}}|{{{col2_data_max|{{{col2_data1}}}}}}|comment={{#if:{{{col2_comment25|}}}|{{{col2_comment25}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col3_data25|}}}|
{{!!}} {{Bar chart/bar|{{{col3_data25}}}|{{{col3_data_max|{{{col3_data1}}}}}}|comment={{#if:{{{col3_comment25|}}}|{{{col3_comment25}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col4_data25|}}}|
{{!!}} {{Bar chart/bar|{{{col4_data25}}}|{{{col4_data_max|{{{col4_data1}}}}}}|comment={{#if:{{{col4_comment25|}}}|{{{col4_comment25}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col5_data25|}}}|
{{!!}} {{Bar chart/bar|{{{col5_data25}}}|{{{col5_data_max|{{{col5_data1}}}}}}|comment={{#if:{{{col5_comment25|}}}|{{{col5_comment25}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col6_data25|}}}|
{{!!}} {{Bar chart/bar|{{{col6_data25}}}|{{{col6_data_max|{{{col6_data1}}}}}}|comment={{#if:{{{col6_comment25|}}}|{{{col6_comment25}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col7_data25|}}}|
{{!!}} {{Bar chart/bar|{{{col7_data25}}}|{{{col7_data_max|{{{col7_data1}}}}}}|comment={{#if:{{{col7_comment25|}}}|{{{col7_comment25}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col8_data25|}}}|
{{!!}} {{Bar chart/bar|{{{col8_data25}}}|{{{col8_data_max|{{{col8_data1}}}}}}|comment={{#if:{{{col8_comment25|}}}|{{{col8_comment25}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col9_data25|}}}|
{{!!}} {{Bar chart/bar|{{{col9_data25}}}|{{{col9_data_max|{{{col9_data1}}}}}}|comment={{#if:{{{col9_comment25|}}}|{{{col9_comment25}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }}
|-
{{#if:{{{col1_data26|{{{data26|}}}}}}|
! scope="row" {{!}} {{{label26}}}
{{!}} {{Bar chart/bar|{{{col1_data26|{{{data26}}}}}}|{{{col1_data_max|{{{data_max|{{{col1_data1|{{{data1}}}}}}}}}}}}|comment={{#if:{{{col1_comment26|{{{comment26|}}}}}}|{{{col1_comment26|{{{comment26}}}}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}}
}} {{#if:{{{col2_data26|}}}|
{{!!}} {{Bar chart/bar|{{{col2_data26}}}|{{{col2_data_max|{{{col2_data1}}}}}}|comment={{#if:{{{col2_comment26|}}}|{{{col2_comment26}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col3_data26|}}}|
{{!!}} {{Bar chart/bar|{{{col3_data26}}}|{{{col3_data_max|{{{col3_data1}}}}}}|comment={{#if:{{{col3_comment26|}}}|{{{col3_comment26}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col4_data26|}}}|
{{!!}} {{Bar chart/bar|{{{col4_data26}}}|{{{col4_data_max|{{{col4_data1}}}}}}|comment={{#if:{{{col4_comment26|}}}|{{{col4_comment26}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col5_data26|}}}|
{{!!}} {{Bar chart/bar|{{{col5_data26}}}|{{{col5_data_max|{{{col5_data1}}}}}}|comment={{#if:{{{col5_comment26|}}}|{{{col5_comment26}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col6_data26|}}}|
{{!!}} {{Bar chart/bar|{{{col6_data26}}}|{{{col6_data_max|{{{col6_data1}}}}}}|comment={{#if:{{{col6_comment26|}}}|{{{col6_comment26}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col7_data26|}}}|
{{!!}} {{Bar chart/bar|{{{col7_data26}}}|{{{col7_data_max|{{{col7_data1}}}}}}|comment={{#if:{{{col7_comment26|}}}|{{{col7_comment26}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col8_data26|}}}|
{{!!}} {{Bar chart/bar|{{{col8_data26}}}|{{{col8_data_max|{{{col8_data1}}}}}}|comment={{#if:{{{col8_comment26|}}}|{{{col8_comment26}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col9_data26|}}}|
{{!!}} {{Bar chart/bar|{{{col9_data26}}}|{{{col9_data_max|{{{col9_data1}}}}}}|comment={{#if:{{{col9_comment26|}}}|{{{col9_comment26}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }}
|-
{{#if:{{{col1_data27|{{{data27|}}}}}}|
! scope="row" {{!}} {{{label27}}}
{{!}} {{Bar chart/bar|{{{col1_data27|{{{data27}}}}}}|{{{col1_data_max|{{{data_max|{{{col1_data1|{{{data1}}}}}}}}}}}}|comment={{#if:{{{col1_comment27|{{{comment27|}}}}}}|{{{col1_comment27|{{{comment27}}}}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}}
}} {{#if:{{{col2_data27|}}}|
{{!!}} {{Bar chart/bar|{{{col2_data27}}}|{{{col2_data_max|{{{col2_data1}}}}}}|comment={{#if:{{{col2_comment27|}}}|{{{col2_comment27}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col3_data27|}}}|
{{!!}} {{Bar chart/bar|{{{col3_data27}}}|{{{col3_data_max|{{{col3_data1}}}}}}|comment={{#if:{{{col3_comment27|}}}|{{{col3_comment27}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col4_data27|}}}|
{{!!}} {{Bar chart/bar|{{{col4_data27}}}|{{{col4_data_max|{{{col4_data1}}}}}}|comment={{#if:{{{col4_comment27|}}}|{{{col4_comment27}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col5_data27|}}}|
{{!!}} {{Bar chart/bar|{{{col5_data27}}}|{{{col5_data_max|{{{col5_data1}}}}}}|comment={{#if:{{{col5_comment27|}}}|{{{col5_comment27}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col6_data27|}}}|
{{!!}} {{Bar chart/bar|{{{col6_data27}}}|{{{col6_data_max|{{{col6_data1}}}}}}|comment={{#if:{{{col6_comment27|}}}|{{{col6_comment27}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col7_data27|}}}|
{{!!}} {{Bar chart/bar|{{{col7_data27}}}|{{{col7_data_max|{{{col7_data1}}}}}}|comment={{#if:{{{col7_comment27|}}}|{{{col7_comment27}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col8_data27|}}}|
{{!!}} {{Bar chart/bar|{{{col8_data27}}}|{{{col8_data_max|{{{col8_data1}}}}}}|comment={{#if:{{{col8_comment27|}}}|{{{col8_comment27}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col9_data27|}}}|
{{!!}} {{Bar chart/bar|{{{col9_data27}}}|{{{col9_data_max|{{{col9_data1}}}}}}|comment={{#if:{{{col9_comment27|}}}|{{{col9_comment27}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }}
|-
{{#if:{{{col1_data28|{{{data28|}}}}}}|
! scope="row" {{!}} {{{label28}}}
{{!}} {{Bar chart/bar|{{{col1_data28|{{{data28}}}}}}|{{{col1_data_max|{{{data_max|{{{col1_data1|{{{data1}}}}}}}}}}}}|comment={{#if:{{{col1_comment28|{{{comment28|}}}}}}|{{{col1_comment28|{{{comment28}}}}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}}
}} {{#if:{{{col2_data28|}}}|
{{!!}} {{Bar chart/bar|{{{col2_data28}}}|{{{col2_data_max|{{{col2_data1}}}}}}|comment={{#if:{{{col2_comment28|}}}|{{{col2_comment28}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col3_data28|}}}|
{{!!}} {{Bar chart/bar|{{{col3_data28}}}|{{{col3_data_max|{{{col3_data1}}}}}}|comment={{#if:{{{col3_comment28|}}}|{{{col3_comment28}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col4_data28|}}}|
{{!!}} {{Bar chart/bar|{{{col4_data28}}}|{{{col4_data_max|{{{col4_data1}}}}}}|comment={{#if:{{{col4_comment28|}}}|{{{col4_comment28}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col5_data28|}}}|
{{!!}} {{Bar chart/bar|{{{col5_data28}}}|{{{col5_data_max|{{{col5_data1}}}}}}|comment={{#if:{{{col5_comment28|}}}|{{{col5_comment28}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col6_data28|}}}|
{{!!}} {{Bar chart/bar|{{{col6_data28}}}|{{{col6_data_max|{{{col6_data1}}}}}}|comment={{#if:{{{col6_comment28|}}}|{{{col6_comment28}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col7_data28|}}}|
{{!!}} {{Bar chart/bar|{{{col7_data28}}}|{{{col7_data_max|{{{col7_data1}}}}}}|comment={{#if:{{{col7_comment28|}}}|{{{col7_comment28}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col8_data28|}}}|
{{!!}} {{Bar chart/bar|{{{col8_data28}}}|{{{col8_data_max|{{{col8_data1}}}}}}|comment={{#if:{{{col8_comment28|}}}|{{{col8_comment28}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col9_data28|}}}|
{{!!}} {{Bar chart/bar|{{{col9_data28}}}|{{{col9_data_max|{{{col9_data1}}}}}}|comment={{#if:{{{col9_comment28|}}}|{{{col9_comment28}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }}
|-
{{#if:{{{col1_data29|{{{data29|}}}}}}|
! scope="row" {{!}} {{{label29}}}
{{!}} {{Bar chart/bar|{{{col1_data29|{{{data29}}}}}}|{{{col1_data_max|{{{data_max|{{{col1_data1|{{{data1}}}}}}}}}}}}|comment={{#if:{{{col1_comment29|{{{comment29|}}}}}}|{{{col1_comment29|{{{comment29}}}}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}}
}} {{#if:{{{col2_data29|}}}|
{{!!}} {{Bar chart/bar|{{{col2_data29}}}|{{{col2_data_max|{{{col2_data1}}}}}}|comment={{#if:{{{col2_comment29|}}}|{{{col2_comment29}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col3_data29|}}}|
{{!!}} {{Bar chart/bar|{{{col3_data29}}}|{{{col3_data_max|{{{col3_data1}}}}}}|comment={{#if:{{{col3_comment29|}}}|{{{col3_comment29}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col4_data29|}}}|
{{!!}} {{Bar chart/bar|{{{col4_data29}}}|{{{col4_data_max|{{{col4_data1}}}}}}|comment={{#if:{{{col4_comment29|}}}|{{{col4_comment29}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col5_data29|}}}|
{{!!}} {{Bar chart/bar|{{{col5_data29}}}|{{{col5_data_max|{{{col5_data1}}}}}}|comment={{#if:{{{col5_comment29|}}}|{{{col5_comment29}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col6_data29|}}}|
{{!!}} {{Bar chart/bar|{{{col6_data29}}}|{{{col6_data_max|{{{col6_data1}}}}}}|comment={{#if:{{{col6_comment29|}}}|{{{col6_comment29}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col7_data29|}}}|
{{!!}} {{Bar chart/bar|{{{col7_data29}}}|{{{col7_data_max|{{{col7_data1}}}}}}|comment={{#if:{{{col7_comment29|}}}|{{{col7_comment29}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col8_data29|}}}|
{{!!}} {{Bar chart/bar|{{{col8_data29}}}|{{{col8_data_max|{{{col8_data1}}}}}}|comment={{#if:{{{col8_comment29|}}}|{{{col8_comment29}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col9_data29|}}}|
{{!!}} {{Bar chart/bar|{{{col9_data29}}}|{{{col9_data_max|{{{col9_data1}}}}}}|comment={{#if:{{{col9_comment29|}}}|{{{col9_comment29}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }}
|-
{{#if:{{{col1_data30|{{{data30|}}}}}}|
! scope="row" {{!}} {{{label30}}}
{{!}} {{Bar chart/bar|{{{col1_data30|{{{data30}}}}}}|{{{col1_data_max|{{{data_max|{{{col1_data1|{{{data1}}}}}}}}}}}}|comment={{#if:{{{col1_comment30|{{{comment30|}}}}}}|{{{col1_comment30|{{{comment30}}}}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}}
}} {{#if:{{{col2_data30|}}}|
{{!!}} {{Bar chart/bar|{{{col2_data30}}}|{{{col2_data_max|{{{col2_data1}}}}}}|comment={{#if:{{{col2_comment30|}}}|{{{col2_comment30}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col3_data30|}}}|
{{!!}} {{Bar chart/bar|{{{col3_data30}}}|{{{col3_data_max|{{{col3_data1}}}}}}|comment={{#if:{{{col3_comment30|}}}|{{{col3_comment30}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col4_data30|}}}|
{{!!}} {{Bar chart/bar|{{{col4_data30}}}|{{{col4_data_max|{{{col4_data1}}}}}}|comment={{#if:{{{col4_comment30|}}}|{{{col4_comment30}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col5_data30|}}}|
{{!!}} {{Bar chart/bar|{{{col5_data30}}}|{{{col5_data_max|{{{col5_data1}}}}}}|comment={{#if:{{{col5_comment30|}}}|{{{col5_comment30}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col6_data30|}}}|
{{!!}} {{Bar chart/bar|{{{col6_data30}}}|{{{col6_data_max|{{{col6_data1}}}}}}|comment={{#if:{{{col6_comment30|}}}|{{{col6_comment30}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col7_data30|}}}|
{{!!}} {{Bar chart/bar|{{{col7_data30}}}|{{{col7_data_max|{{{col7_data1}}}}}}|comment={{#if:{{{col7_comment30|}}}|{{{col7_comment30}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col8_data30|}}}|
{{!!}} {{Bar chart/bar|{{{col8_data30}}}|{{{col8_data_max|{{{col8_data1}}}}}}|comment={{#if:{{{col8_comment30|}}}|{{{col8_comment30}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col9_data30|}}}|
{{!!}} {{Bar chart/bar|{{{col9_data30}}}|{{{col9_data_max|{{{col9_data1}}}}}}|comment={{#if:{{{col9_comment30|}}}|{{{col9_comment30}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }}
|-
{{#if:{{{total|{{{col1_total|}}}}}}|
! scope="row" class="bar-chart-total" {{!}} Total {{!!}} {{formatnum: {{{total|{{{col1_total}}}}}} }} }} {{#if:{{{col2_total|}}}|
{{!!}} {{formatnum: {{{col2_total}}} }} }}{{#if:{{{col3_total|}}}|
{{!!}} {{formatnum: {{{col3_total}}} }} }}{{#if:{{{col4_total|}}}|
{{!!}} {{formatnum: {{{col4_total}}} }} }}{{#if:{{{col5_total|}}}|
{{!!}} {{formatnum: {{{col5_total}}} }} }}{{#if:{{{col6_total|}}}|
{{!!}} {{formatnum: {{{col6_total}}} }} }}{{#if:{{{col7_total|}}}|
{{!!}} {{formatnum: {{{col7_total}}} }} }}{{#if:{{{col8_total|}}}|
{{!!}} {{formatnum: {{{col8_total}}} }} }}{{#if:{{{col9_total|}}}|
{{!!}} {{formatnum: {{{col9_total}}} }} }}
|-
{{#if:{{{caption|}}}|
{{!}} class="bar-chart-caption" colspan=10 {{!}}
{{{caption}}}
}}
|}<noinclude>
{{documentation}}
</noinclude>
0hx0fsv6g227q1iq36itcswv9zg8ttc
309761
309760
2026-09-26T17:46:26Z
Isma4l
41797
309761
wikitext
text/x-wiki
<templatestyles src="Template:Bar chart/styles.css"/>
{| class="bar-chart {{#switch:{{{float|}}}|left=bar-chart-left|right=bar-chart-right|center=bar-chart-center}}" {{#if:{{{table_width|}}}|style="width: {{{table_width}}}em;"}}
|+ {{{title|Liiska magaalooyinka marka la eego dadweynaha}}}
|-
! scope="col" class="bar-chart-label-type" | {{#if:{{{label_type|}}}|{{{label_type}}}|Magaalada}}
! scope="col" {{#if:{{{bar_width|}}}|style="width: {{{bar_width}}}em"}} | {{#if:{{{data_type|{{{col1_data_type|}}}}}}|{{{data_type|{{{col1_data_type}}}}}}|Dadweynaha}} {{#if:{{{col2_data_type|}}}|
!! scope="col" {{#if:{{{bar_width|}}}|style="width: {{{bar_width}}}em"}} {{!}} {{{col2_data_type}}}
}} {{#if:{{{col3_data_type|}}}|
!! scope="col" {{#if:{{{bar_width|}}}|style="width: {{{bar_width}}}em"}} {{!}} {{{col3_data_type}}}
}} {{#if:{{{col4_data_type|}}}|
!! scope="col" {{#if:{{{bar_width|}}}|style="width: {{{bar_width}}}em"}} {{!}} {{{col4_data_type}}}
}} {{#if:{{{col5_data_type|}}}|
!! scope="col" {{#if:{{{bar_width|}}}|style="width: {{{bar_width}}}em"}} {{!}} {{{col5_data_type}}}
}} {{#if:{{{col6_data_type|}}}|
!! scope="col" {{#if:{{{bar_width|}}}|style="width: {{{bar_width}}}em"}} {{!}} {{{col6_data_type}}}
}} {{#if:{{{col7_data_type|}}}|
!! scope="col" {{#if:{{{bar_width|}}}|style="width: {{{bar_width}}}em"}} {{!}} {{{col7_data_type}}}
}} {{#if:{{{col8_data_type|}}}|
!! scope="col" {{#if:{{{bar_width|}}}|style="width: {{{bar_width}}}em"}} {{!}} {{{col8_data_type}}}
}} {{#if:{{{col9_data_type|}}}|
!! scope="col" {{#if:{{{bar_width|}}}|style="width: {{{bar_width}}}em"}} {{!}} {{{col9_data_type}}}
}}
|-
{{#if:{{{col1_data1|{{{data1|}}}}}}|
! scope="row" {{!}} {{{label1}}}
{{!}} {{Bar chart/bar|{{{col1_data1|{{{data1}}}}}}|{{{col1_data_max|{{{data_max|{{{col1_data1|{{{data1}}}}}}}}}}}}|comment={{#if:{{{col1_comment1|{{{comment1|}}}}}}|{{{col1_comment1|{{{comment1}}}}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}}
}} {{#if:{{{col2_data1|}}}|
{{!!}} {{Bar chart/bar|{{{col2_data1}}}|{{{col2_data_max|{{{col2_data1}}}}}}|comment={{#if:{{{col2_comment1|}}}|{{{col2_comment1}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col3_data1|}}}|
{{!!}} {{Bar chart/bar|{{{col3_data1}}}|{{{col3_data_max|{{{col3_data1}}}}}}|comment={{#if:{{{col3_comment1|}}}|{{{col3_comment1}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col4_data1|}}}|
{{!!}} {{Bar chart/bar|{{{col4_data1}}}|{{{col4_data_max|{{{col4_data1}}}}}}|comment={{#if:{{{col4_comment1|}}}|{{{col4_comment1}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col5_data1|}}}|
{{!!}} {{Bar chart/bar|{{{col5_data1}}}|{{{col4_data_max|{{{col5_data1}}}}}}|comment={{#if:{{{col5_comment1|}}}|{{{col5_comment1}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col6_data1|}}}|
{{!!}} {{Bar chart/bar|{{{col6_data1}}}|{{{col4_data_max|{{{col6_data1}}}}}}|comment={{#if:{{{col6_comment1|}}}|{{{col6_comment1}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col7_data1|}}}|
{{!!}} {{Bar chart/bar|{{{col7_data1}}}|{{{col4_data_max|{{{col7_data1}}}}}}|comment={{#if:{{{col7_comment1|}}}|{{{col7_comment1}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col8_data1|}}}|
{{!!}} {{Bar chart/bar|{{{col8_data1}}}|{{{col4_data_max|{{{col8_data1}}}}}}|comment={{#if:{{{col8_comment1|}}}|{{{col8_comment1}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col9_data1|}}}|
{{!!}} {{Bar chart/bar|{{{col9_data1}}}|{{{col4_data_max|{{{col9_data1}}}}}}|comment={{#if:{{{col9_comment1|}}}|{{{col9_comment1}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }}
|-
{{#if:{{{col1_data2|{{{data2|}}}}}}|
! scope="row" {{!}} {{{label2}}}
{{!}} {{Bar chart/bar|{{{col1_data2|{{{data2}}}}}}|{{{col1_data_max|{{{data_max|{{{col1_data1|{{{data1}}}}}}}}}}}}|comment={{#if:{{{col1_comment2|{{{comment2|}}}}}}|{{{col1_comment2|{{{comment2}}}}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}}
}} {{#if:{{{col2_data2|}}}|
{{!!}} {{Bar chart/bar|{{{col2_data2}}}|{{{col2_data_max|{{{col2_data1}}}}}}|comment={{#if:{{{col2_comment2|}}}|{{{col2_comment2}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col3_data2|}}}|
{{!!}} {{Bar chart/bar|{{{col3_data2}}}|{{{col3_data_max|{{{col3_data1}}}}}}|comment={{#if:{{{col3_comment2|}}}|{{{col3_comment2}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col4_data2|}}}|
{{!!}} {{Bar chart/bar|{{{col4_data2}}}|{{{col4_data_max|{{{col4_data1}}}}}}|comment={{#if:{{{col4_comment2|}}}|{{{col4_comment2}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col5_data2|}}}|
{{!!}} {{Bar chart/bar|{{{col5_data2}}}|{{{col4_data_max|{{{col5_data1}}}}}}|comment={{#if:{{{col5_comment2|}}}|{{{col5_comment2}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col6_data2|}}}|
{{!!}} {{Bar chart/bar|{{{col6_data2}}}|{{{col4_data_max|{{{col6_data1}}}}}}|comment={{#if:{{{col6_comment2|}}}|{{{col6_comment2}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col7_data2|}}}|
{{!!}} {{Bar chart/bar|{{{col7_data2}}}|{{{col4_data_max|{{{col7_data1}}}}}}|comment={{#if:{{{col7_comment2|}}}|{{{col7_comment2}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col8_data2|}}}|
{{!!}} {{Bar chart/bar|{{{col8_data2}}}|{{{col4_data_max|{{{col8_data1}}}}}}|comment={{#if:{{{col8_comment2|}}}|{{{col8_comment2}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col9_data2|}}}|
{{!!}} {{Bar chart/bar|{{{col9_data2}}}|{{{col4_data_max|{{{col9_data1}}}}}}|comment={{#if:{{{col9_comment2|}}}|{{{col9_comment2}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }}
|-
{{#if:{{{col1_data3|{{{data3|}}}}}}|
! scope="row" {{!}} {{{label3}}}
{{!}} {{Bar chart/bar|{{{col1_data3|{{{data3}}}}}}|{{{col1_data_max|{{{data_max|{{{col1_data1|{{{data1}}}}}}}}}}}}|comment={{#if:{{{col1_comment3|{{{comment3|}}}}}}|{{{col1_comment3|{{{comment3}}}}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}}
}} {{#if:{{{col2_data3|}}}|
{{!!}} {{Bar chart/bar|{{{col2_data3}}}|{{{col2_data_max|{{{col2_data1}}}}}}|comment={{#if:{{{col2_comment3|}}}|{{{col2_comment3}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col3_data3|}}}|
{{!!}} {{Bar chart/bar|{{{col3_data3}}}|{{{col3_data_max|{{{col3_data1}}}}}}|comment={{#if:{{{col3_comment3|}}}|{{{col3_comment3}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col4_data3|}}}|
{{!!}} {{Bar chart/bar|{{{col4_data3}}}|{{{col4_data_max|{{{col4_data1}}}}}}|comment={{#if:{{{col4_comment3|}}}|{{{col4_comment3}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col5_data3|}}}|
{{!!}} {{Bar chart/bar|{{{col5_data3}}}|{{{col4_data_max|{{{col5_data1}}}}}}|comment={{#if:{{{col5_comment3|}}}|{{{col5_comment3}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col6_data3|}}}|
{{!!}} {{Bar chart/bar|{{{col6_data3}}}|{{{col4_data_max|{{{col6_data1}}}}}}|comment={{#if:{{{col6_comment3|}}}|{{{col6_comment3}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col7_data3|}}}|
{{!!}} {{Bar chart/bar|{{{col7_data3}}}|{{{col4_data_max|{{{col7_data1}}}}}}|comment={{#if:{{{col7_comment3|}}}|{{{col7_comment3}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col8_data3|}}}|
{{!!}} {{Bar chart/bar|{{{col8_data3}}}|{{{col4_data_max|{{{col8_data1}}}}}}|comment={{#if:{{{col8_comment3|}}}|{{{col8_comment3}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col9_data3|}}}|
{{!!}} {{Bar chart/bar|{{{col9_data3}}}|{{{col4_data_max|{{{col9_data1}}}}}}|comment={{#if:{{{col9_comment3|}}}|{{{col9_comment3}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }}
|-
{{#if:{{{col1_data4|{{{data4|}}}}}}|
! scope="row" {{!}} {{{label4}}}
{{!}} {{Bar chart/bar|{{{col1_data4|{{{data4}}}}}}|{{{col1_data_max|{{{data_max|{{{col1_data1|{{{data1}}}}}}}}}}}}|comment={{#if:{{{col1_comment4|{{{comment4|}}}}}}|{{{col1_comment4|{{{comment4}}}}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}}
}} {{#if:{{{col2_data4|}}}|
{{!!}} {{Bar chart/bar|{{{col2_data4}}}|{{{col2_data_max|{{{col2_data1}}}}}}|comment={{#if:{{{col2_comment4|}}}|{{{col2_comment4}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col3_data4|}}}|
{{!!}} {{Bar chart/bar|{{{col3_data4}}}|{{{col3_data_max|{{{col3_data1}}}}}}|comment={{#if:{{{col3_comment4|}}}|{{{col3_comment4}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col4_data4|}}}|
{{!!}} {{Bar chart/bar|{{{col4_data4}}}|{{{col4_data_max|{{{col4_data1}}}}}}|comment={{#if:{{{col4_comment4|}}}|{{{col4_comment4}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col5_data4|}}}|
{{!!}} {{Bar chart/bar|{{{col5_data4}}}|{{{col4_data_max|{{{col5_data1}}}}}}|comment={{#if:{{{col5_comment4|}}}|{{{col5_comment4}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col6_data4|}}}|
{{!!}} {{Bar chart/bar|{{{col6_data4}}}|{{{col4_data_max|{{{col6_data1}}}}}}|comment={{#if:{{{col6_comment4|}}}|{{{col6_comment4}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col7_data4|}}}|
{{!!}} {{Bar chart/bar|{{{col7_data4}}}|{{{col4_data_max|{{{col7_data1}}}}}}|comment={{#if:{{{col7_comment4|}}}|{{{col7_comment4}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col8_data4|}}}|
{{!!}} {{Bar chart/bar|{{{col8_data4}}}|{{{col4_data_max|{{{col8_data1}}}}}}|comment={{#if:{{{col8_comment4|}}}|{{{col8_comment4}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col9_data4|}}}|
{{!!}} {{Bar chart/bar|{{{col9_data4}}}|{{{col4_data_max|{{{col9_data1}}}}}}|comment={{#if:{{{col9_comment4|}}}|{{{col9_comment4}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }}
|-
{{#if:{{{col1_data5|{{{data5|}}}}}}|
! scope="row" {{!}} {{{label5}}}
{{!}} {{Bar chart/bar|{{{col1_data5|{{{data5}}}}}}|{{{col1_data_max|{{{data_max|{{{col1_data1|{{{data1}}}}}}}}}}}}|comment={{#if:{{{col1_comment5|{{{comment5|}}}}}}|{{{col1_comment5|{{{comment5}}}}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}}
}} {{#if:{{{col2_data5|}}}|
{{!!}} {{Bar chart/bar|{{{col2_data5}}}|{{{col2_data_max|{{{col2_data1}}}}}}|comment={{#if:{{{col2_comment5|}}}|{{{col2_comment5}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col3_data5|}}}|
{{!!}} {{Bar chart/bar|{{{col3_data5}}}|{{{col3_data_max|{{{col3_data1}}}}}}|comment={{#if:{{{col3_comment5|}}}|{{{col3_comment5}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col4_data5|}}}|
{{!!}} {{Bar chart/bar|{{{col4_data5}}}|{{{col4_data_max|{{{col4_data1}}}}}}|comment={{#if:{{{col4_comment5|}}}|{{{col4_comment5}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col5_data5|}}}|
{{!!}} {{Bar chart/bar|{{{col5_data5}}}|{{{col5_data_max|{{{col5_data1}}}}}}|comment={{#if:{{{col5_comment5|}}}|{{{col5_comment5}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col6_data5|}}}|
{{!!}} {{Bar chart/bar|{{{col6_data5}}}|{{{col6_data_max|{{{col6_data1}}}}}}|comment={{#if:{{{col6_comment5|}}}|{{{col6_comment5}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col7_data5|}}}|
{{!!}} {{Bar chart/bar|{{{col7_data5}}}|{{{col7_data_max|{{{col7_data1}}}}}}|comment={{#if:{{{col7_comment5|}}}|{{{col7_comment5}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col8_data5|}}}|
{{!!}} {{Bar chart/bar|{{{col8_data5}}}|{{{col8_data_max|{{{col8_data1}}}}}}|comment={{#if:{{{col8_comment5|}}}|{{{col8_comment5}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col9_data5|}}}|
{{!!}} {{Bar chart/bar|{{{col9_data5}}}|{{{col9_data_max|{{{col9_data1}}}}}}|comment={{#if:{{{col9_comment5|}}}|{{{col9_comment5}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }}
|-
{{#if:{{{col1_data6|{{{data6|}}}}}}|
! scope="row" {{!}} {{{label6}}}
{{!}} {{Bar chart/bar|{{{col1_data6|{{{data6}}}}}}|{{{col1_data_max|{{{data_max|{{{col1_data1|{{{data1}}}}}}}}}}}}|comment={{#if:{{{col1_comment6|{{{comment6|}}}}}}|{{{col1_comment6|{{{comment6}}}}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}}
}} {{#if:{{{col2_data6|}}}|
{{!!}} {{Bar chart/bar|{{{col2_data6}}}|{{{col2_data_max|{{{col2_data1}}}}}}|comment={{#if:{{{col2_comment6|}}}|{{{col2_comment6}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col3_data6|}}}|
{{!!}} {{Bar chart/bar|{{{col3_data6}}}|{{{col3_data_max|{{{col3_data1}}}}}}|comment={{#if:{{{col3_comment6|}}}|{{{col3_comment6}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col4_data6|}}}|
{{!!}} {{Bar chart/bar|{{{col4_data6}}}|{{{col4_data_max|{{{col4_data1}}}}}}|comment={{#if:{{{col4_comment6|}}}|{{{col4_comment6}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col5_data6|}}}|
{{!!}} {{Bar chart/bar|{{{col5_data6}}}|{{{col5_data_max|{{{col5_data1}}}}}}|comment={{#if:{{{col5_comment6|}}}|{{{col5_comment6}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col6_data6|}}}|
{{!!}} {{Bar chart/bar|{{{col6_data6}}}|{{{col6_data_max|{{{col6_data1}}}}}}|comment={{#if:{{{col6_comment6|}}}|{{{col6_comment6}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col7_data6|}}}|
{{!!}} {{Bar chart/bar|{{{col7_data6}}}|{{{col7_data_max|{{{col7_data1}}}}}}|comment={{#if:{{{col7_comment6|}}}|{{{col7_comment6}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col8_data6|}}}|
{{!!}} {{Bar chart/bar|{{{col8_data6}}}|{{{col8_data_max|{{{col8_data1}}}}}}|comment={{#if:{{{col8_comment6|}}}|{{{col8_comment6}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col9_data6|}}}|
{{!!}} {{Bar chart/bar|{{{col9_data6}}}|{{{col9_data_max|{{{col9_data1}}}}}}|comment={{#if:{{{col9_comment6|}}}|{{{col9_comment6}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }}
|-
{{#if:{{{col1_data7|{{{data7|}}}}}}|
! scope="row" {{!}} {{{label7}}}
{{!}} {{Bar chart/bar|{{{col1_data7|{{{data7}}}}}}|{{{col1_data_max|{{{data_max|{{{col1_data1|{{{data1}}}}}}}}}}}}|comment={{#if:{{{col1_comment7|{{{comment7|}}}}}}|{{{col1_comment7|{{{comment7}}}}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}}
}} {{#if:{{{col2_data7|}}}|
{{!!}} {{Bar chart/bar|{{{col2_data7}}}|{{{col2_data_max|{{{col2_data1}}}}}}|comment={{#if:{{{col2_comment7|}}}|{{{col2_comment7}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col3_data7|}}}|
{{!!}} {{Bar chart/bar|{{{col3_data7}}}|{{{col3_data_max|{{{col3_data1}}}}}}|comment={{#if:{{{col3_comment7|}}}|{{{col3_comment7}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col4_data7|}}}|
{{!!}} {{Bar chart/bar|{{{col4_data7}}}|{{{col4_data_max|{{{col4_data1}}}}}}|comment={{#if:{{{col4_comment7|}}}|{{{col4_comment7}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col5_data7|}}}|
{{!!}} {{Bar chart/bar|{{{col5_data7}}}|{{{col5_data_max|{{{col5_data1}}}}}}|comment={{#if:{{{col5_comment7|}}}|{{{col5_comment7}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col6_data7|}}}|
{{!!}} {{Bar chart/bar|{{{col6_data7}}}|{{{col6_data_max|{{{col6_data1}}}}}}|comment={{#if:{{{col6_comment7|}}}|{{{col6_comment7}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col7_data7|}}}|
{{!!}} {{Bar chart/bar|{{{col7_data7}}}|{{{col7_data_max|{{{col7_data1}}}}}}|comment={{#if:{{{col7_comment7|}}}|{{{col7_comment7}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col8_data7|}}}|
{{!!}} {{Bar chart/bar|{{{col8_data7}}}|{{{col8_data_max|{{{col8_data1}}}}}}|comment={{#if:{{{col8_comment7|}}}|{{{col8_comment7}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col9_data7|}}}|
{{!!}} {{Bar chart/bar|{{{col9_data7}}}|{{{col9_data_max|{{{col9_data1}}}}}}|comment={{#if:{{{col9_comment7|}}}|{{{col9_comment7}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }}
|-
{{#if:{{{col1_data8|{{{data8|}}}}}}|
! scope="row" {{!}} {{{label8}}}
{{!}} {{Bar chart/bar|{{{col1_data8|{{{data8}}}}}}|{{{col1_data_max|{{{data_max|{{{col1_data1|{{{data1}}}}}}}}}}}}|comment={{#if:{{{col1_comment8|{{{comment8|}}}}}}|{{{col1_comment8|{{{comment8}}}}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}}
}} {{#if:{{{col2_data8|}}}|
{{!!}} {{Bar chart/bar|{{{col2_data8}}}|{{{col2_data_max|{{{col2_data1}}}}}}|comment={{#if:{{{col2_comment8|}}}|{{{col2_comment8}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col3_data8|}}}|
{{!!}} {{Bar chart/bar|{{{col3_data8}}}|{{{col3_data_max|{{{col3_data1}}}}}}|comment={{#if:{{{col3_comment8|}}}|{{{col3_comment8}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col4_data8|}}}|
{{!!}} {{Bar chart/bar|{{{col4_data8}}}|{{{col4_data_max|{{{col4_data1}}}}}}|comment={{#if:{{{col4_comment8|}}}|{{{col4_comment8}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col5_data8|}}}|
{{!!}} {{Bar chart/bar|{{{col5_data8}}}|{{{col5_data_max|{{{col5_data1}}}}}}|comment={{#if:{{{col5_comment8|}}}|{{{col5_comment8}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col6_data8|}}}|
{{!!}} {{Bar chart/bar|{{{col6_data8}}}|{{{col6_data_max|{{{col6_data1}}}}}}|comment={{#if:{{{col6_comment8|}}}|{{{col6_comment8}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col7_data8|}}}|
{{!!}} {{Bar chart/bar|{{{col7_data8}}}|{{{col7_data_max|{{{col7_data1}}}}}}|comment={{#if:{{{col7_comment8|}}}|{{{col7_comment8}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col8_data8|}}}|
{{!!}} {{Bar chart/bar|{{{col8_data8}}}|{{{col8_data_max|{{{col8_data1}}}}}}|comment={{#if:{{{col8_comment8|}}}|{{{col8_comment8}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col9_data8|}}}|
{{!!}} {{Bar chart/bar|{{{col9_data8}}}|{{{col9_data_max|{{{col9_data1}}}}}}|comment={{#if:{{{col9_comment8|}}}|{{{col9_comment8}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }}
|-
{{#if:{{{col1_data9|{{{data9|}}}}}}|
! scope="row" {{!}} {{{label9}}}
{{!}} {{Bar chart/bar|{{{col1_data9|{{{data9}}}}}}|{{{col1_data_max|{{{data_max|{{{col1_data1|{{{data1}}}}}}}}}}}}|comment={{#if:{{{col1_comment9|{{{comment9|}}}}}}|{{{col1_comment9|{{{comment9}}}}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}}
}} {{#if:{{{col2_data9|}}}|
{{!!}} {{Bar chart/bar|{{{col2_data9}}}|{{{col2_data_max|{{{col2_data1}}}}}}|comment={{#if:{{{col2_comment9|}}}|{{{col2_comment9}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col3_data9|}}}|
{{!!}} {{Bar chart/bar|{{{col3_data9}}}|{{{col3_data_max|{{{col3_data1}}}}}}|comment={{#if:{{{col3_comment9|}}}|{{{col3_comment9}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col4_data9|}}}|
{{!!}} {{Bar chart/bar|{{{col4_data9}}}|{{{col4_data_max|{{{col4_data1}}}}}}|comment={{#if:{{{col4_comment9|}}}|{{{col4_comment9}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col5_data9|}}}|
{{!!}} {{Bar chart/bar|{{{col5_data9}}}|{{{col5_data_max|{{{col5_data1}}}}}}|comment={{#if:{{{col5_comment9|}}}|{{{col5_comment9}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col6_data9|}}}|
{{!!}} {{Bar chart/bar|{{{col6_data9}}}|{{{col6_data_max|{{{col6_data1}}}}}}|comment={{#if:{{{col6_comment9|}}}|{{{col6_comment9}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col7_data9|}}}|
{{!!}} {{Bar chart/bar|{{{col7_data9}}}|{{{col7_data_max|{{{col7_data1}}}}}}|comment={{#if:{{{col7_comment9|}}}|{{{col7_comment9}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col8_data9|}}}|
{{!!}} {{Bar chart/bar|{{{col8_data9}}}|{{{col8_data_max|{{{col8_data1}}}}}}|comment={{#if:{{{col8_comment9|}}}|{{{col8_comment9}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col9_data9|}}}|
{{!!}} {{Bar chart/bar|{{{col9_data9}}}|{{{col9_data_max|{{{col9_data1}}}}}}|comment={{#if:{{{col9_comment9|}}}|{{{col9_comment9}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }}
|-
{{#if:{{{col1_data10|{{{data10|}}}}}}|
! scope="row" {{!}} {{{label10}}}
{{!}} {{Bar chart/bar|{{{col1_data10|{{{data10}}}}}}|{{{col1_data_max|{{{data_max|{{{col1_data1|{{{data1}}}}}}}}}}}}|comment={{#if:{{{col1_comment10|{{{comment10|}}}}}}|{{{col1_comment10|{{{comment10}}}}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}}
}} {{#if:{{{col2_data10|}}}|
{{!!}} {{Bar chart/bar|{{{col2_data10}}}|{{{col2_data_max|{{{col2_data1}}}}}}|comment={{#if:{{{col2_comment10|}}}|{{{col2_comment10}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col3_data10|}}}|
{{!!}} {{Bar chart/bar|{{{col3_data10}}}|{{{col3_data_max|{{{col3_data1}}}}}}|comment={{#if:{{{col3_comment10|}}}|{{{col3_comment10}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col4_data10|}}}|
{{!!}} {{Bar chart/bar|{{{col4_data10}}}|{{{col4_data_max|{{{col4_data1}}}}}}|comment={{#if:{{{col4_comment10|}}}|{{{col4_comment10}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col5_data10|}}}|
{{!!}} {{Bar chart/bar|{{{col5_data10}}}|{{{col5_data_max|{{{col5_data1}}}}}}|comment={{#if:{{{col5_comment10|}}}|{{{col5_comment10}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col6_data10|}}}|
{{!!}} {{Bar chart/bar|{{{col6_data10}}}|{{{col6_data_max|{{{col6_data1}}}}}}|comment={{#if:{{{col6_comment10|}}}|{{{col6_comment10}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col7_data10|}}}|
{{!!}} {{Bar chart/bar|{{{col7_data10}}}|{{{col7_data_max|{{{col7_data1}}}}}}|comment={{#if:{{{col7_comment10|}}}|{{{col7_comment10}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col8_data10|}}}|
{{!!}} {{Bar chart/bar|{{{col8_data10}}}|{{{col8_data_max|{{{col8_data1}}}}}}|comment={{#if:{{{col8_comment10|}}}|{{{col8_comment10}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col9_data10|}}}|
{{!!}} {{Bar chart/bar|{{{col9_data10}}}|{{{col9_data_max|{{{col9_data1}}}}}}|comment={{#if:{{{col9_comment10|}}}|{{{col9_comment10}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }}
|-
{{#if:{{{col1_data11|{{{data11|}}}}}}|
! scope="row" {{!}} {{{label11}}}
{{!}} {{Bar chart/bar|{{{col1_data11|{{{data11}}}}}}|{{{col1_data_max|{{{data_max|{{{col1_data1|{{{data1}}}}}}}}}}}}|comment={{#if:{{{col1_comment11|{{{comment11|}}}}}}|{{{col1_comment11|{{{comment11}}}}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}}
}} {{#if:{{{col2_data11|}}}|
{{!!}} {{Bar chart/bar|{{{col2_data11}}}|{{{col2_data_max|{{{col2_data1}}}}}}|comment={{#if:{{{col2_comment11|}}}|{{{col2_comment11}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col3_data11|}}}|
{{!!}} {{Bar chart/bar|{{{col3_data11}}}|{{{col3_data_max|{{{col3_data1}}}}}}|comment={{#if:{{{col3_comment11|}}}|{{{col3_comment11}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col4_data11|}}}|
{{!!}} {{Bar chart/bar|{{{col4_data11}}}|{{{col4_data_max|{{{col4_data1}}}}}}|comment={{#if:{{{col4_comment11|}}}|{{{col4_comment11}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col5_data11|}}}|
{{!!}} {{Bar chart/bar|{{{col5_data11}}}|{{{col5_data_max|{{{col5_data1}}}}}}|comment={{#if:{{{col5_comment11|}}}|{{{col5_comment11}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col6_data11|}}}|
{{!!}} {{Bar chart/bar|{{{col6_data11}}}|{{{col6_data_max|{{{col6_data1}}}}}}|comment={{#if:{{{col6_comment11|}}}|{{{col6_comment11}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col7_data11|}}}|
{{!!}} {{Bar chart/bar|{{{col7_data11}}}|{{{col7_data_max|{{{col7_data1}}}}}}|comment={{#if:{{{col7_comment11|}}}|{{{col7_comment11}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col8_data11|}}}|
{{!!}} {{Bar chart/bar|{{{col8_data11}}}|{{{col8_data_max|{{{col8_data1}}}}}}|comment={{#if:{{{col8_comment11|}}}|{{{col8_comment11}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col9_data11|}}}|
{{!!}} {{Bar chart/bar|{{{col9_data11}}}|{{{col9_data_max|{{{col9_data1}}}}}}|comment={{#if:{{{col9_comment11|}}}|{{{col9_comment11}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }}
|-
{{#if:{{{col1_data12|{{{data12|}}}}}}|
! scope="row" {{!}} {{{label12}}}
{{!}} {{Bar chart/bar|{{{col1_data12|{{{data12}}}}}}|{{{col1_data_max|{{{data_max|{{{col1_data1|{{{data1}}}}}}}}}}}}|comment={{#if:{{{col1_comment12|{{{comment12|}}}}}}|{{{col1_comment12|{{{comment12}}}}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}}
}} {{#if:{{{col2_data12|}}}|
{{!!}} {{Bar chart/bar|{{{col2_data12}}}|{{{col2_data_max|{{{col2_data1}}}}}}|comment={{#if:{{{col2_comment12|}}}|{{{col2_comment12}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col3_data12|}}}|
{{!!}} {{Bar chart/bar|{{{col3_data12}}}|{{{col3_data_max|{{{col3_data1}}}}}}|comment={{#if:{{{col3_comment12|}}}|{{{col3_comment12}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col4_data12|}}}|
{{!!}} {{Bar chart/bar|{{{col4_data12}}}|{{{col4_data_max|{{{col4_data1}}}}}}|comment={{#if:{{{col4_comment12|}}}|{{{col4_comment12}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col5_data12|}}}|
{{!!}} {{Bar chart/bar|{{{col5_data12}}}|{{{col5_data_max|{{{col5_data1}}}}}}|comment={{#if:{{{col5_comment12|}}}|{{{col5_comment12}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col6_data12|}}}|
{{!!}} {{Bar chart/bar|{{{col6_data12}}}|{{{col6_data_max|{{{col6_data1}}}}}}|comment={{#if:{{{col6_comment12|}}}|{{{col6_comment12}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col7_data12|}}}|
{{!!}} {{Bar chart/bar|{{{col7_data12}}}|{{{col7_data_max|{{{col7_data1}}}}}}|comment={{#if:{{{col7_comment12|}}}|{{{col7_comment12}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col8_data12|}}}|
{{!!}} {{Bar chart/bar|{{{col8_data12}}}|{{{col8_data_max|{{{col8_data1}}}}}}|comment={{#if:{{{col8_comment12|}}}|{{{col8_comment12}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col9_data12|}}}|
{{!!}} {{Bar chart/bar|{{{col9_data12}}}|{{{col9_data_max|{{{col9_data1}}}}}}|comment={{#if:{{{col9_comment12|}}}|{{{col9_comment12}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }}
|-
{{#if:{{{col1_data13|{{{data13|}}}}}}|
! scope="row" {{!}} {{{label13}}}
{{!}} {{Bar chart/bar|{{{col1_data13|{{{data13}}}}}}|{{{col1_data_max|{{{data_max|{{{col1_data1|{{{data1}}}}}}}}}}}}|comment={{#if:{{{col1_comment13|{{{comment13|}}}}}}|{{{col1_comment13|{{{comment13}}}}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}}
}} {{#if:{{{col2_data13|}}}|
{{!!}} {{Bar chart/bar|{{{col2_data13}}}|{{{col2_data_max|{{{col2_data1}}}}}}|comment={{#if:{{{col2_comment13|}}}|{{{col2_comment13}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col3_data13|}}}|
{{!!}} {{Bar chart/bar|{{{col3_data13}}}|{{{col3_data_max|{{{col3_data1}}}}}}|comment={{#if:{{{col3_comment13|}}}|{{{col3_comment13}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col4_data13|}}}|
{{!!}} {{Bar chart/bar|{{{col4_data13}}}|{{{col4_data_max|{{{col4_data1}}}}}}|comment={{#if:{{{col4_comment13|}}}|{{{col4_comment13}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col5_data13|}}}|
{{!!}} {{Bar chart/bar|{{{col5_data13}}}|{{{col5_data_max|{{{col5_data1}}}}}}|comment={{#if:{{{col5_comment13|}}}|{{{col5_comment13}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col6_data13|}}}|
{{!!}} {{Bar chart/bar|{{{col6_data13}}}|{{{col6_data_max|{{{col6_data1}}}}}}|comment={{#if:{{{col6_comment13|}}}|{{{col6_comment13}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col7_data13|}}}|
{{!!}} {{Bar chart/bar|{{{col7_data13}}}|{{{col7_data_max|{{{col7_data1}}}}}}|comment={{#if:{{{col7_comment13|}}}|{{{col7_comment13}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col8_data13|}}}|
{{!!}} {{Bar chart/bar|{{{col8_data13}}}|{{{col8_data_max|{{{col8_data1}}}}}}|comment={{#if:{{{col8_comment13|}}}|{{{col8_comment13}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col9_data13|}}}|
{{!!}} {{Bar chart/bar|{{{col9_data13}}}|{{{col9_data_max|{{{col9_data1}}}}}}|comment={{#if:{{{col9_comment13|}}}|{{{col9_comment13}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }}
|-
{{#if:{{{col1_data14|{{{data14|}}}}}}|
! scope="row" {{!}} {{{label14}}}
{{!}} {{Bar chart/bar|{{{col1_data14|{{{data14}}}}}}|{{{col1_data_max|{{{data_max|{{{col1_data1|{{{data1}}}}}}}}}}}}|comment={{#if:{{{col1_comment14|{{{comment14|}}}}}}|{{{col1_comment14|{{{comment14}}}}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}}
}} {{#if:{{{col2_data14|}}}|
{{!!}} {{Bar chart/bar|{{{col2_data14}}}|{{{col2_data_max|{{{col2_data1}}}}}}|comment={{#if:{{{col2_comment14|}}}|{{{col2_comment14}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col3_data14|}}}|
{{!!}} {{Bar chart/bar|{{{col3_data14}}}|{{{col3_data_max|{{{col3_data1}}}}}}|comment={{#if:{{{col3_comment14|}}}|{{{col3_comment14}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col4_data14|}}}|
{{!!}} {{Bar chart/bar|{{{col4_data14}}}|{{{col4_data_max|{{{col4_data1}}}}}}|comment={{#if:{{{col4_comment14|}}}|{{{col4_comment14}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col5_data14|}}}|
{{!!}} {{Bar chart/bar|{{{col5_data14}}}|{{{col5_data_max|{{{col5_data1}}}}}}|comment={{#if:{{{col5_comment14|}}}|{{{col5_comment14}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col6_data14|}}}|
{{!!}} {{Bar chart/bar|{{{col6_data14}}}|{{{col6_data_max|{{{col6_data1}}}}}}|comment={{#if:{{{col6_comment14|}}}|{{{col6_comment14}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col7_data14|}}}|
{{!!}} {{Bar chart/bar|{{{col7_data14}}}|{{{col7_data_max|{{{col7_data1}}}}}}|comment={{#if:{{{col7_comment14|}}}|{{{col7_comment14}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col8_data14|}}}|
{{!!}} {{Bar chart/bar|{{{col8_data14}}}|{{{col8_data_max|{{{col8_data1}}}}}}|comment={{#if:{{{col8_comment14|}}}|{{{col8_comment14}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col9_data14|}}}|
{{!!}} {{Bar chart/bar|{{{col9_data14}}}|{{{col9_data_max|{{{col9_data1}}}}}}|comment={{#if:{{{col9_comment14|}}}|{{{col9_comment14}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }}
|-
{{#if:{{{col1_data15|{{{data15|}}}}}}|
! scope="row" {{!}} {{{label15}}}
{{!}} {{Bar chart/bar|{{{col1_data15|{{{data15}}}}}}|{{{col1_data_max|{{{data_max|{{{col1_data1|{{{data1}}}}}}}}}}}}|comment={{#if:{{{col1_comment15|{{{comment15|}}}}}}|{{{col1_comment15|{{{comment15}}}}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}}
}} {{#if:{{{col2_data15|}}}|
{{!!}} {{Bar chart/bar|{{{col2_data15}}}|{{{col2_data_max|{{{col2_data1}}}}}}|comment={{#if:{{{col2_comment15|}}}|{{{col2_comment15}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col3_data15|}}}|
{{!!}} {{Bar chart/bar|{{{col3_data15}}}|{{{col3_data_max|{{{col3_data1}}}}}}|comment={{#if:{{{col3_comment15|}}}|{{{col3_comment15}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col4_data15|}}}|
{{!!}} {{Bar chart/bar|{{{col4_data15}}}|{{{col4_data_max|{{{col4_data1}}}}}}|comment={{#if:{{{col4_comment15|}}}|{{{col4_comment15}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col5_data15|}}}|
{{!!}} {{Bar chart/bar|{{{col5_data15}}}|{{{col5_data_max|{{{col5_data1}}}}}}|comment={{#if:{{{col5_comment15|}}}|{{{col5_comment15}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col6_data15|}}}|
{{!!}} {{Bar chart/bar|{{{col6_data15}}}|{{{col6_data_max|{{{col6_data1}}}}}}|comment={{#if:{{{col6_comment15|}}}|{{{col6_comment15}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col7_data15|}}}|
{{!!}} {{Bar chart/bar|{{{col7_data15}}}|{{{col7_data_max|{{{col7_data1}}}}}}|comment={{#if:{{{col7_comment15|}}}|{{{col7_comment15}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col8_data15|}}}|
{{!!}} {{Bar chart/bar|{{{col8_data15}}}|{{{col8_data_max|{{{col8_data1}}}}}}|comment={{#if:{{{col8_comment15|}}}|{{{col8_comment15}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col9_data15|}}}|
{{!!}} {{Bar chart/bar|{{{col9_data15}}}|{{{col9_data_max|{{{col9_data1}}}}}}|comment={{#if:{{{col9_comment15|}}}|{{{col9_comment15}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }}
|-
{{#if:{{{col1_data16|{{{data16|}}}}}}|
! scope="row" {{!}} {{{label16}}}
{{!}} {{Bar chart/bar|{{{col1_data16|{{{data16}}}}}}|{{{col1_data_max|{{{data_max|{{{col1_data1|{{{data1}}}}}}}}}}}}|comment={{#if:{{{col1_comment16|{{{comment16|}}}}}}|{{{col1_comment16|{{{comment16}}}}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}}
}} {{#if:{{{col2_data16|}}}|
{{!!}} {{Bar chart/bar|{{{col2_data16}}}|{{{col2_data_max|{{{col2_data1}}}}}}|comment={{#if:{{{col2_comment16|}}}|{{{col2_comment16}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col3_data16|}}}|
{{!!}} {{Bar chart/bar|{{{col3_data16}}}|{{{col3_data_max|{{{col3_data1}}}}}}|comment={{#if:{{{col3_comment16|}}}|{{{col3_comment16}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col4_data16|}}}|
{{!!}} {{Bar chart/bar|{{{col4_data16}}}|{{{col4_data_max|{{{col4_data1}}}}}}|comment={{#if:{{{col4_comment16|}}}|{{{col4_comment16}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col5_data16|}}}|
{{!!}} {{Bar chart/bar|{{{col5_data16}}}|{{{col5_data_max|{{{col5_data1}}}}}}|comment={{#if:{{{col5_comment16|}}}|{{{col5_comment16}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col6_data16|}}}|
{{!!}} {{Bar chart/bar|{{{col6_data16}}}|{{{col6_data_max|{{{col6_data1}}}}}}|comment={{#if:{{{col6_comment16|}}}|{{{col6_comment16}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col7_data16|}}}|
{{!!}} {{Bar chart/bar|{{{col7_data16}}}|{{{col7_data_max|{{{col7_data1}}}}}}|comment={{#if:{{{col7_comment16|}}}|{{{col7_comment16}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col8_data16|}}}|
{{!!}} {{Bar chart/bar|{{{col8_data16}}}|{{{col8_data_max|{{{col8_data1}}}}}}|comment={{#if:{{{col8_comment16|}}}|{{{col8_comment16}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col9_data16|}}}|
{{!!}} {{Bar chart/bar|{{{col9_data16}}}|{{{col9_data_max|{{{col9_data1}}}}}}|comment={{#if:{{{col9_comment16|}}}|{{{col9_comment16}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }}
|-
{{#if:{{{col1_data17|{{{data17|}}}}}}|
! scope="row" {{!}} {{{label17}}}
{{!}} {{Bar chart/bar|{{{col1_data17|{{{data17}}}}}}|{{{col1_data_max|{{{data_max|{{{col1_data1|{{{data1}}}}}}}}}}}}|comment={{#if:{{{col1_comment17|{{{comment17|}}}}}}|{{{col1_comment17|{{{comment17}}}}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}}
}} {{#if:{{{col2_data17|}}}|
{{!!}} {{Bar chart/bar|{{{col2_data17}}}|{{{col2_data_max|{{{col2_data1}}}}}}|comment={{#if:{{{col2_comment17|}}}|{{{col2_comment17}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col3_data17|}}}|
{{!!}} {{Bar chart/bar|{{{col3_data17}}}|{{{col3_data_max|{{{col3_data1}}}}}}|comment={{#if:{{{col3_comment17|}}}|{{{col3_comment17}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col4_data17|}}}|
{{!!}} {{Bar chart/bar|{{{col4_data17}}}|{{{col4_data_max|{{{col4_data1}}}}}}|comment={{#if:{{{col4_comment17|}}}|{{{col4_comment17}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col5_data17|}}}|
{{!!}} {{Bar chart/bar|{{{col5_data17}}}|{{{col5_data_max|{{{col5_data1}}}}}}|comment={{#if:{{{col5_comment17|}}}|{{{col5_comment17}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col6_data17|}}}|
{{!!}} {{Bar chart/bar|{{{col6_data17}}}|{{{col6_data_max|{{{col6_data1}}}}}}|comment={{#if:{{{col6_comment17|}}}|{{{col6_comment17}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col7_data17|}}}|
{{!!}} {{Bar chart/bar|{{{col7_data17}}}|{{{col7_data_max|{{{col7_data1}}}}}}|comment={{#if:{{{col7_comment17|}}}|{{{col7_comment17}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col8_data17|}}}|
{{!!}} {{Bar chart/bar|{{{col8_data17}}}|{{{col8_data_max|{{{col8_data1}}}}}}|comment={{#if:{{{col8_comment17|}}}|{{{col8_comment17}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col9_data17|}}}|
{{!!}} {{Bar chart/bar|{{{col9_data17}}}|{{{col9_data_max|{{{col9_data1}}}}}}|comment={{#if:{{{col9_comment17|}}}|{{{col9_comment17}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }}
|-
{{#if:{{{col1_data18|{{{data18|}}}}}}|
! scope="row" {{!}} {{{label18}}}
{{!}} {{Bar chart/bar|{{{col1_data18|{{{data18}}}}}}|{{{col1_data_max|{{{data_max|{{{col1_data1|{{{data1}}}}}}}}}}}}|comment={{#if:{{{col1_comment18|{{{comment18|}}}}}}|{{{col1_comment18|{{{comment18}}}}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}}
}} {{#if:{{{col2_data18|}}}|
{{!!}} {{Bar chart/bar|{{{col2_data18}}}|{{{col2_data_max|{{{col2_data1}}}}}}|comment={{#if:{{{col2_comment18|}}}|{{{col2_comment18}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col3_data18|}}}|
{{!!}} {{Bar chart/bar|{{{col3_data18}}}|{{{col3_data_max|{{{col3_data1}}}}}}|comment={{#if:{{{col3_comment18|}}}|{{{col3_comment18}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col4_data18|}}}|
{{!!}} {{Bar chart/bar|{{{col4_data18}}}|{{{col4_data_max|{{{col4_data1}}}}}}|comment={{#if:{{{col4_comment18|}}}|{{{col4_comment18}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col5_data18|}}}|
{{!!}} {{Bar chart/bar|{{{col5_data18}}}|{{{col5_data_max|{{{col5_data1}}}}}}|comment={{#if:{{{col5_comment18|}}}|{{{col5_comment18}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col6_data18|}}}|
{{!!}} {{Bar chart/bar|{{{col6_data18}}}|{{{col6_data_max|{{{col6_data1}}}}}}|comment={{#if:{{{col6_comment18|}}}|{{{col6_comment18}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col7_data18|}}}|
{{!!}} {{Bar chart/bar|{{{col7_data18}}}|{{{col7_data_max|{{{col7_data1}}}}}}|comment={{#if:{{{col7_comment18|}}}|{{{col7_comment18}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col8_data18|}}}|
{{!!}} {{Bar chart/bar|{{{col8_data18}}}|{{{col8_data_max|{{{col8_data1}}}}}}|comment={{#if:{{{col8_comment18|}}}|{{{col8_comment18}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col9_data18|}}}|
{{!!}} {{Bar chart/bar|{{{col9_data18}}}|{{{col9_data_max|{{{col9_data1}}}}}}|comment={{#if:{{{col9_comment18|}}}|{{{col9_comment18}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }}
|-
{{#if:{{{col1_data19|{{{data19|}}}}}}|
! scope="row" {{!}} {{{label19}}}
{{!}} {{Bar chart/bar|{{{col1_data19|{{{data19}}}}}}|{{{col1_data_max|{{{data_max|{{{col1_data1|{{{data1}}}}}}}}}}}}|comment={{#if:{{{col1_comment19|{{{comment19|}}}}}}|{{{col1_comment19|{{{comment19}}}}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}}
}} {{#if:{{{col2_data19|}}}|
{{!!}} {{Bar chart/bar|{{{col2_data19}}}|{{{col2_data_max|{{{col2_data1}}}}}}|comment={{#if:{{{col2_comment19|}}}|{{{col2_comment19}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col3_data19|}}}|
{{!!}} {{Bar chart/bar|{{{col3_data19}}}|{{{col3_data_max|{{{col3_data1}}}}}}|comment={{#if:{{{col3_comment19|}}}|{{{col3_comment19}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col4_data19|}}}|
{{!!}} {{Bar chart/bar|{{{col4_data19}}}|{{{col4_data_max|{{{col4_data1}}}}}}|comment={{#if:{{{col4_comment19|}}}|{{{col4_comment19}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col5_data19|}}}|
{{!!}} {{Bar chart/bar|{{{col5_data19}}}|{{{col5_data_max|{{{col5_data1}}}}}}|comment={{#if:{{{col5_comment19|}}}|{{{col5_comment19}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col6_data19|}}}|
{{!!}} {{Bar chart/bar|{{{col6_data19}}}|{{{col6_data_max|{{{col6_data1}}}}}}|comment={{#if:{{{col6_comment19|}}}|{{{col6_comment19}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col7_data19|}}}|
{{!!}} {{Bar chart/bar|{{{col7_data19}}}|{{{col7_data_max|{{{col7_data1}}}}}}|comment={{#if:{{{col7_comment19|}}}|{{{col7_comment19}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col8_data19|}}}|
{{!!}} {{Bar chart/bar|{{{col8_data19}}}|{{{col8_data_max|{{{col8_data1}}}}}}|comment={{#if:{{{col8_comment19|}}}|{{{col8_comment19}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col9_data19|}}}|
{{!!}} {{Bar chart/bar|{{{col9_data19}}}|{{{col9_data_max|{{{col9_data1}}}}}}|comment={{#if:{{{col9_comment19|}}}|{{{col9_comment19}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }}
|-
{{#if:{{{col1_data20|{{{data20|}}}}}}|
! scope="row" {{!}} {{{label20}}}
{{!}} {{Bar chart/bar|{{{col1_data20|{{{data20}}}}}}|{{{col1_data_max|{{{data_max|{{{col1_data1|{{{data1}}}}}}}}}}}}|comment={{#if:{{{col1_comment20|{{{comment20|}}}}}}|{{{col1_comment20|{{{comment20}}}}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}}
}} {{#if:{{{col2_data20|}}}|
{{!!}} {{Bar chart/bar|{{{col2_data20}}}|{{{col2_data_max|{{{col2_data1}}}}}}|comment={{#if:{{{col2_comment20|}}}|{{{col2_comment20}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col3_data20|}}}|
{{!!}} {{Bar chart/bar|{{{col3_data20}}}|{{{col3_data_max|{{{col3_data1}}}}}}|comment={{#if:{{{col3_comment20|}}}|{{{col3_comment20}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col4_data20|}}}|
{{!!}} {{Bar chart/bar|{{{col4_data20}}}|{{{col4_data_max|{{{col4_data1}}}}}}|comment={{#if:{{{col4_comment20|}}}|{{{col4_comment20}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col5_data20|}}}|
{{!!}} {{Bar chart/bar|{{{col5_data20}}}|{{{col5_data_max|{{{col5_data1}}}}}}|comment={{#if:{{{col5_comment20|}}}|{{{col5_comment20}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col6_data20|}}}|
{{!!}} {{Bar chart/bar|{{{col6_data20}}}|{{{col6_data_max|{{{col6_data1}}}}}}|comment={{#if:{{{col6_comment20|}}}|{{{col6_comment20}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col7_data20|}}}|
{{!!}} {{Bar chart/bar|{{{col7_data20}}}|{{{col7_data_max|{{{col7_data1}}}}}}|comment={{#if:{{{col7_comment20|}}}|{{{col7_comment20}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col8_data20|}}}|
{{!!}} {{Bar chart/bar|{{{col8_data20}}}|{{{col8_data_max|{{{col8_data1}}}}}}|comment={{#if:{{{col8_comment20|}}}|{{{col8_comment20}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col9_data20|}}}|
{{!!}} {{Bar chart/bar|{{{col9_data20}}}|{{{col9_data_max|{{{col9_data1}}}}}}|comment={{#if:{{{col9_comment20|}}}|{{{col9_comment20}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }}
|-
{{#if:{{{col1_data21|{{{data21|}}}}}}|
! scope="row" {{!}} {{{label21}}}
{{!}} {{Bar chart/bar|{{{col1_data21|{{{data21}}}}}}|{{{col1_data_max|{{{data_max|{{{col1_data1|{{{data1}}}}}}}}}}}}|comment={{#if:{{{col1_comment21|{{{comment21|}}}}}}|{{{col1_comment21|{{{comment21}}}}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}}
}} {{#if:{{{col2_data21|}}}|
{{!!}} {{Bar chart/bar|{{{col2_data21}}}|{{{col2_data_max|{{{col2_data1}}}}}}|comment={{#if:{{{col2_comment21|}}}|{{{col2_comment21}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col3_data21|}}}|
{{!!}} {{Bar chart/bar|{{{col3_data21}}}|{{{col3_data_max|{{{col3_data1}}}}}}|comment={{#if:{{{col3_comment21|}}}|{{{col3_comment21}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col4_data21|}}}|
{{!!}} {{Bar chart/bar|{{{col4_data21}}}|{{{col4_data_max|{{{col4_data1}}}}}}|comment={{#if:{{{col4_comment21|}}}|{{{col4_comment21}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col5_data21|}}}|
{{!!}} {{Bar chart/bar|{{{col5_data21}}}|{{{col5_data_max|{{{col5_data1}}}}}}|comment={{#if:{{{col5_comment21|}}}|{{{col5_comment21}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col6_data21|}}}|
{{!!}} {{Bar chart/bar|{{{col6_data21}}}|{{{col6_data_max|{{{col6_data1}}}}}}|comment={{#if:{{{col6_comment21|}}}|{{{col6_comment21}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col7_data21|}}}|
{{!!}} {{Bar chart/bar|{{{col7_data21}}}|{{{col7_data_max|{{{col7_data1}}}}}}|comment={{#if:{{{col7_comment21|}}}|{{{col7_comment21}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col8_data21|}}}|
{{!!}} {{Bar chart/bar|{{{col8_data21}}}|{{{col8_data_max|{{{col8_data1}}}}}}|comment={{#if:{{{col8_comment21|}}}|{{{col8_comment21}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col9_data21|}}}|
{{!!}} {{Bar chart/bar|{{{col9_data21}}}|{{{col9_data_max|{{{col9_data1}}}}}}|comment={{#if:{{{col9_comment21|}}}|{{{col9_comment21}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }}
|-
{{#if:{{{col1_data22|{{{data22|}}}}}}|
! scope="row" {{!}} {{{label22}}}
{{!}} {{Bar chart/bar|{{{col1_data22|{{{data22}}}}}}|{{{col1_data_max|{{{data_max|{{{col1_data1|{{{data1}}}}}}}}}}}}|comment={{#if:{{{col1_comment22|{{{comment22|}}}}}}|{{{col1_comment22|{{{comment22}}}}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}}
}} {{#if:{{{col2_data22|}}}|
{{!!}} {{Bar chart/bar|{{{col2_data22}}}|{{{col2_data_max|{{{col2_data1}}}}}}|comment={{#if:{{{col2_comment22|}}}|{{{col2_comment22}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col3_data22|}}}|
{{!!}} {{Bar chart/bar|{{{col3_data22}}}|{{{col3_data_max|{{{col3_data1}}}}}}|comment={{#if:{{{col3_comment22|}}}|{{{col3_comment22}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col4_data22|}}}|
{{!!}} {{Bar chart/bar|{{{col4_data22}}}|{{{col4_data_max|{{{col4_data1}}}}}}|comment={{#if:{{{col4_comment22|}}}|{{{col4_comment22}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col5_data22|}}}|
{{!!}} {{Bar chart/bar|{{{col5_data22}}}|{{{col5_data_max|{{{col5_data1}}}}}}|comment={{#if:{{{col5_comment22|}}}|{{{col5_comment22}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col6_data22|}}}|
{{!!}} {{Bar chart/bar|{{{col6_data22}}}|{{{col6_data_max|{{{col6_data1}}}}}}|comment={{#if:{{{col6_comment22|}}}|{{{col6_comment22}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col7_data22|}}}|
{{!!}} {{Bar chart/bar|{{{col7_data22}}}|{{{col7_data_max|{{{col7_data1}}}}}}|comment={{#if:{{{col7_comment22|}}}|{{{col7_comment22}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col8_data22|}}}|
{{!!}} {{Bar chart/bar|{{{col8_data22}}}|{{{col8_data_max|{{{col8_data1}}}}}}|comment={{#if:{{{col8_comment22|}}}|{{{col8_comment22}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col9_data22|}}}|
{{!!}} {{Bar chart/bar|{{{col9_data22}}}|{{{col9_data_max|{{{col9_data1}}}}}}|comment={{#if:{{{col9_comment22|}}}|{{{col9_comment22}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }}
|-
{{#if:{{{col1_data23|{{{data23|}}}}}}|
! scope="row" {{!}} {{{label23}}}
{{!}} {{Bar chart/bar|{{{col1_data23|{{{data23}}}}}}|{{{col1_data_max|{{{data_max|{{{col1_data1|{{{data1}}}}}}}}}}}}|comment={{#if:{{{col1_comment23|{{{comment23|}}}}}}|{{{col1_comment23|{{{comment23}}}}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}}
}} {{#if:{{{col2_data23|}}}|
{{!!}} {{Bar chart/bar|{{{col2_data23}}}|{{{col2_data_max|{{{col2_data1}}}}}}|comment={{#if:{{{col2_comment23|}}}|{{{col2_comment23}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col3_data23|}}}|
{{!!}} {{Bar chart/bar|{{{col3_data23}}}|{{{col3_data_max|{{{col3_data1}}}}}}|comment={{#if:{{{col3_comment23|}}}|{{{col3_comment23}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col4_data23|}}}|
{{!!}} {{Bar chart/bar|{{{col4_data23}}}|{{{col4_data_max|{{{col4_data1}}}}}}|comment={{#if:{{{col4_comment23|}}}|{{{col4_comment23}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col5_data23|}}}|
{{!!}} {{Bar chart/bar|{{{col5_data23}}}|{{{col5_data_max|{{{col5_data1}}}}}}|comment={{#if:{{{col5_comment23|}}}|{{{col5_comment23}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col6_data23|}}}|
{{!!}} {{Bar chart/bar|{{{col6_data23}}}|{{{col6_data_max|{{{col6_data1}}}}}}|comment={{#if:{{{col6_comment23|}}}|{{{col6_comment23}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col7_data23|}}}|
{{!!}} {{Bar chart/bar|{{{col7_data23}}}|{{{col7_data_max|{{{col7_data1}}}}}}|comment={{#if:{{{col7_comment23|}}}|{{{col7_comment23}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col8_data23|}}}|
{{!!}} {{Bar chart/bar|{{{col8_data23}}}|{{{col8_data_max|{{{col8_data1}}}}}}|comment={{#if:{{{col8_comment23|}}}|{{{col8_comment23}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col9_data23|}}}|
{{!!}} {{Bar chart/bar|{{{col9_data23}}}|{{{col9_data_max|{{{col9_data1}}}}}}|comment={{#if:{{{col9_comment23|}}}|{{{col9_comment23}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }}
|-
{{#if:{{{col1_data24|{{{data24|}}}}}}|
! scope="row" {{!}} {{{label24}}}
{{!}} {{Bar chart/bar|{{{col1_data24|{{{data24}}}}}}|{{{col1_data_max|{{{data_max|{{{col1_data1|{{{data1}}}}}}}}}}}}|comment={{#if:{{{col1_comment24|{{{comment24|}}}}}}|{{{col1_comment24|{{{comment24}}}}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}}
}} {{#if:{{{col2_data24|}}}|
{{!!}} {{Bar chart/bar|{{{col2_data24}}}|{{{col2_data_max|{{{col2_data1}}}}}}|comment={{#if:{{{col2_comment24|}}}|{{{col2_comment24}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col3_data24|}}}|
{{!!}} {{Bar chart/bar|{{{col3_data24}}}|{{{col3_data_max|{{{col3_data1}}}}}}|comment={{#if:{{{col3_comment24|}}}|{{{col3_comment24}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col4_data24|}}}|
{{!!}} {{Bar chart/bar|{{{col4_data24}}}|{{{col4_data_max|{{{col4_data1}}}}}}|comment={{#if:{{{col4_comment24|}}}|{{{col4_comment24}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col5_data24|}}}|
{{!!}} {{Bar chart/bar|{{{col5_data24}}}|{{{col5_data_max|{{{col5_data1}}}}}}|comment={{#if:{{{col5_comment24|}}}|{{{col5_comment24}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col6_data24|}}}|
{{!!}} {{Bar chart/bar|{{{col6_data24}}}|{{{col6_data_max|{{{col6_data1}}}}}}|comment={{#if:{{{col6_comment24|}}}|{{{col6_comment24}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col7_data24|}}}|
{{!!}} {{Bar chart/bar|{{{col7_data24}}}|{{{col7_data_max|{{{col7_data1}}}}}}|comment={{#if:{{{col7_comment24|}}}|{{{col7_comment24}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col8_data24|}}}|
{{!!}} {{Bar chart/bar|{{{col8_data24}}}|{{{col8_data_max|{{{col8_data1}}}}}}|comment={{#if:{{{col8_comment24|}}}|{{{col8_comment24}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col9_data24|}}}|
{{!!}} {{Bar chart/bar|{{{col9_data24}}}|{{{col9_data_max|{{{col9_data1}}}}}}|comment={{#if:{{{col9_comment24|}}}|{{{col9_comment24}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }}
|-
{{#if:{{{col1_data25|{{{data25|}}}}}}|
! scope="row" {{!}} {{{label25}}}
{{!}} {{Bar chart/bar|{{{col1_data25|{{{data25}}}}}}|{{{col1_data_max|{{{data_max|{{{col1_data1|{{{data1}}}}}}}}}}}}|comment={{#if:{{{col1_comment25|{{{comment25|}}}}}}|{{{col1_comment25|{{{comment25}}}}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}}
}} {{#if:{{{col2_data25|}}}|
{{!!}} {{Bar chart/bar|{{{col2_data25}}}|{{{col2_data_max|{{{col2_data1}}}}}}|comment={{#if:{{{col2_comment25|}}}|{{{col2_comment25}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col3_data25|}}}|
{{!!}} {{Bar chart/bar|{{{col3_data25}}}|{{{col3_data_max|{{{col3_data1}}}}}}|comment={{#if:{{{col3_comment25|}}}|{{{col3_comment25}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col4_data25|}}}|
{{!!}} {{Bar chart/bar|{{{col4_data25}}}|{{{col4_data_max|{{{col4_data1}}}}}}|comment={{#if:{{{col4_comment25|}}}|{{{col4_comment25}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col5_data25|}}}|
{{!!}} {{Bar chart/bar|{{{col5_data25}}}|{{{col5_data_max|{{{col5_data1}}}}}}|comment={{#if:{{{col5_comment25|}}}|{{{col5_comment25}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col6_data25|}}}|
{{!!}} {{Bar chart/bar|{{{col6_data25}}}|{{{col6_data_max|{{{col6_data1}}}}}}|comment={{#if:{{{col6_comment25|}}}|{{{col6_comment25}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col7_data25|}}}|
{{!!}} {{Bar chart/bar|{{{col7_data25}}}|{{{col7_data_max|{{{col7_data1}}}}}}|comment={{#if:{{{col7_comment25|}}}|{{{col7_comment25}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col8_data25|}}}|
{{!!}} {{Bar chart/bar|{{{col8_data25}}}|{{{col8_data_max|{{{col8_data1}}}}}}|comment={{#if:{{{col8_comment25|}}}|{{{col8_comment25}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col9_data25|}}}|
{{!!}} {{Bar chart/bar|{{{col9_data25}}}|{{{col9_data_max|{{{col9_data1}}}}}}|comment={{#if:{{{col9_comment25|}}}|{{{col9_comment25}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }}
|-
{{#if:{{{col1_data26|{{{data26|}}}}}}|
! scope="row" {{!}} {{{label26}}}
{{!}} {{Bar chart/bar|{{{col1_data26|{{{data26}}}}}}|{{{col1_data_max|{{{data_max|{{{col1_data1|{{{data1}}}}}}}}}}}}|comment={{#if:{{{col1_comment26|{{{comment26|}}}}}}|{{{col1_comment26|{{{comment26}}}}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}}
}} {{#if:{{{col2_data26|}}}|
{{!!}} {{Bar chart/bar|{{{col2_data26}}}|{{{col2_data_max|{{{col2_data1}}}}}}|comment={{#if:{{{col2_comment26|}}}|{{{col2_comment26}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col3_data26|}}}|
{{!!}} {{Bar chart/bar|{{{col3_data26}}}|{{{col3_data_max|{{{col3_data1}}}}}}|comment={{#if:{{{col3_comment26|}}}|{{{col3_comment26}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col4_data26|}}}|
{{!!}} {{Bar chart/bar|{{{col4_data26}}}|{{{col4_data_max|{{{col4_data1}}}}}}|comment={{#if:{{{col4_comment26|}}}|{{{col4_comment26}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col5_data26|}}}|
{{!!}} {{Bar chart/bar|{{{col5_data26}}}|{{{col5_data_max|{{{col5_data1}}}}}}|comment={{#if:{{{col5_comment26|}}}|{{{col5_comment26}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col6_data26|}}}|
{{!!}} {{Bar chart/bar|{{{col6_data26}}}|{{{col6_data_max|{{{col6_data1}}}}}}|comment={{#if:{{{col6_comment26|}}}|{{{col6_comment26}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col7_data26|}}}|
{{!!}} {{Bar chart/bar|{{{col7_data26}}}|{{{col7_data_max|{{{col7_data1}}}}}}|comment={{#if:{{{col7_comment26|}}}|{{{col7_comment26}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col8_data26|}}}|
{{!!}} {{Bar chart/bar|{{{col8_data26}}}|{{{col8_data_max|{{{col8_data1}}}}}}|comment={{#if:{{{col8_comment26|}}}|{{{col8_comment26}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col9_data26|}}}|
{{!!}} {{Bar chart/bar|{{{col9_data26}}}|{{{col9_data_max|{{{col9_data1}}}}}}|comment={{#if:{{{col9_comment26|}}}|{{{col9_comment26}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }}
|-
{{#if:{{{col1_data27|{{{data27|}}}}}}|
! scope="row" {{!}} {{{label27}}}
{{!}} {{Bar chart/bar|{{{col1_data27|{{{data27}}}}}}|{{{col1_data_max|{{{data_max|{{{col1_data1|{{{data1}}}}}}}}}}}}|comment={{#if:{{{col1_comment27|{{{comment27|}}}}}}|{{{col1_comment27|{{{comment27}}}}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}}
}} {{#if:{{{col2_data27|}}}|
{{!!}} {{Bar chart/bar|{{{col2_data27}}}|{{{col2_data_max|{{{col2_data1}}}}}}|comment={{#if:{{{col2_comment27|}}}|{{{col2_comment27}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col3_data27|}}}|
{{!!}} {{Bar chart/bar|{{{col3_data27}}}|{{{col3_data_max|{{{col3_data1}}}}}}|comment={{#if:{{{col3_comment27|}}}|{{{col3_comment27}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col4_data27|}}}|
{{!!}} {{Bar chart/bar|{{{col4_data27}}}|{{{col4_data_max|{{{col4_data1}}}}}}|comment={{#if:{{{col4_comment27|}}}|{{{col4_comment27}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col5_data27|}}}|
{{!!}} {{Bar chart/bar|{{{col5_data27}}}|{{{col5_data_max|{{{col5_data1}}}}}}|comment={{#if:{{{col5_comment27|}}}|{{{col5_comment27}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col6_data27|}}}|
{{!!}} {{Bar chart/bar|{{{col6_data27}}}|{{{col6_data_max|{{{col6_data1}}}}}}|comment={{#if:{{{col6_comment27|}}}|{{{col6_comment27}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col7_data27|}}}|
{{!!}} {{Bar chart/bar|{{{col7_data27}}}|{{{col7_data_max|{{{col7_data1}}}}}}|comment={{#if:{{{col7_comment27|}}}|{{{col7_comment27}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col8_data27|}}}|
{{!!}} {{Bar chart/bar|{{{col8_data27}}}|{{{col8_data_max|{{{col8_data1}}}}}}|comment={{#if:{{{col8_comment27|}}}|{{{col8_comment27}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col9_data27|}}}|
{{!!}} {{Bar chart/bar|{{{col9_data27}}}|{{{col9_data_max|{{{col9_data1}}}}}}|comment={{#if:{{{col9_comment27|}}}|{{{col9_comment27}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }}
|-
{{#if:{{{col1_data28|{{{data28|}}}}}}|
! scope="row" {{!}} {{{label28}}}
{{!}} {{Bar chart/bar|{{{col1_data28|{{{data28}}}}}}|{{{col1_data_max|{{{data_max|{{{col1_data1|{{{data1}}}}}}}}}}}}|comment={{#if:{{{col1_comment28|{{{comment28|}}}}}}|{{{col1_comment28|{{{comment28}}}}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}}
}} {{#if:{{{col2_data28|}}}|
{{!!}} {{Bar chart/bar|{{{col2_data28}}}|{{{col2_data_max|{{{col2_data1}}}}}}|comment={{#if:{{{col2_comment28|}}}|{{{col2_comment28}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col3_data28|}}}|
{{!!}} {{Bar chart/bar|{{{col3_data28}}}|{{{col3_data_max|{{{col3_data1}}}}}}|comment={{#if:{{{col3_comment28|}}}|{{{col3_comment28}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col4_data28|}}}|
{{!!}} {{Bar chart/bar|{{{col4_data28}}}|{{{col4_data_max|{{{col4_data1}}}}}}|comment={{#if:{{{col4_comment28|}}}|{{{col4_comment28}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col5_data28|}}}|
{{!!}} {{Bar chart/bar|{{{col5_data28}}}|{{{col5_data_max|{{{col5_data1}}}}}}|comment={{#if:{{{col5_comment28|}}}|{{{col5_comment28}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col6_data28|}}}|
{{!!}} {{Bar chart/bar|{{{col6_data28}}}|{{{col6_data_max|{{{col6_data1}}}}}}|comment={{#if:{{{col6_comment28|}}}|{{{col6_comment28}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col7_data28|}}}|
{{!!}} {{Bar chart/bar|{{{col7_data28}}}|{{{col7_data_max|{{{col7_data1}}}}}}|comment={{#if:{{{col7_comment28|}}}|{{{col7_comment28}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col8_data28|}}}|
{{!!}} {{Bar chart/bar|{{{col8_data28}}}|{{{col8_data_max|{{{col8_data1}}}}}}|comment={{#if:{{{col8_comment28|}}}|{{{col8_comment28}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col9_data28|}}}|
{{!!}} {{Bar chart/bar|{{{col9_data28}}}|{{{col9_data_max|{{{col9_data1}}}}}}|comment={{#if:{{{col9_comment28|}}}|{{{col9_comment28}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }}
|-
{{#if:{{{col1_data29|{{{data29|}}}}}}|
! scope="row" {{!}} {{{label29}}}
{{!}} {{Bar chart/bar|{{{col1_data29|{{{data29}}}}}}|{{{col1_data_max|{{{data_max|{{{col1_data1|{{{data1}}}}}}}}}}}}|comment={{#if:{{{col1_comment29|{{{comment29|}}}}}}|{{{col1_comment29|{{{comment29}}}}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}}
}} {{#if:{{{col2_data29|}}}|
{{!!}} {{Bar chart/bar|{{{col2_data29}}}|{{{col2_data_max|{{{col2_data1}}}}}}|comment={{#if:{{{col2_comment29|}}}|{{{col2_comment29}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col3_data29|}}}|
{{!!}} {{Bar chart/bar|{{{col3_data29}}}|{{{col3_data_max|{{{col3_data1}}}}}}|comment={{#if:{{{col3_comment29|}}}|{{{col3_comment29}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col4_data29|}}}|
{{!!}} {{Bar chart/bar|{{{col4_data29}}}|{{{col4_data_max|{{{col4_data1}}}}}}|comment={{#if:{{{col4_comment29|}}}|{{{col4_comment29}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col5_data29|}}}|
{{!!}} {{Bar chart/bar|{{{col5_data29}}}|{{{col5_data_max|{{{col5_data1}}}}}}|comment={{#if:{{{col5_comment29|}}}|{{{col5_comment29}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col6_data29|}}}|
{{!!}} {{Bar chart/bar|{{{col6_data29}}}|{{{col6_data_max|{{{col6_data1}}}}}}|comment={{#if:{{{col6_comment29|}}}|{{{col6_comment29}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col7_data29|}}}|
{{!!}} {{Bar chart/bar|{{{col7_data29}}}|{{{col7_data_max|{{{col7_data1}}}}}}|comment={{#if:{{{col7_comment29|}}}|{{{col7_comment29}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col8_data29|}}}|
{{!!}} {{Bar chart/bar|{{{col8_data29}}}|{{{col8_data_max|{{{col8_data1}}}}}}|comment={{#if:{{{col8_comment29|}}}|{{{col8_comment29}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col9_data29|}}}|
{{!!}} {{Bar chart/bar|{{{col9_data29}}}|{{{col9_data_max|{{{col9_data1}}}}}}|comment={{#if:{{{col9_comment29|}}}|{{{col9_comment29}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }}
|-
{{#if:{{{col1_data30|{{{data30|}}}}}}|
! scope="row" {{!}} {{{label30}}}
{{!}} {{Bar chart/bar|{{{col1_data30|{{{data30}}}}}}|{{{col1_data_max|{{{data_max|{{{col1_data1|{{{data1}}}}}}}}}}}}|comment={{#if:{{{col1_comment30|{{{comment30|}}}}}}|{{{col1_comment30|{{{comment30}}}}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}}
}} {{#if:{{{col2_data30|}}}|
{{!!}} {{Bar chart/bar|{{{col2_data30}}}|{{{col2_data_max|{{{col2_data1}}}}}}|comment={{#if:{{{col2_comment30|}}}|{{{col2_comment30}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col3_data30|}}}|
{{!!}} {{Bar chart/bar|{{{col3_data30}}}|{{{col3_data_max|{{{col3_data1}}}}}}|comment={{#if:{{{col3_comment30|}}}|{{{col3_comment30}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col4_data30|}}}|
{{!!}} {{Bar chart/bar|{{{col4_data30}}}|{{{col4_data_max|{{{col4_data1}}}}}}|comment={{#if:{{{col4_comment30|}}}|{{{col4_comment30}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col5_data30|}}}|
{{!!}} {{Bar chart/bar|{{{col5_data30}}}|{{{col5_data_max|{{{col5_data1}}}}}}|comment={{#if:{{{col5_comment30|}}}|{{{col5_comment30}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col6_data30|}}}|
{{!!}} {{Bar chart/bar|{{{col6_data30}}}|{{{col6_data_max|{{{col6_data1}}}}}}|comment={{#if:{{{col6_comment30|}}}|{{{col6_comment30}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col7_data30|}}}|
{{!!}} {{Bar chart/bar|{{{col7_data30}}}|{{{col7_data_max|{{{col7_data1}}}}}}|comment={{#if:{{{col7_comment30|}}}|{{{col7_comment30}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col8_data30|}}}|
{{!!}} {{Bar chart/bar|{{{col8_data30}}}|{{{col8_data_max|{{{col8_data1}}}}}}|comment={{#if:{{{col8_comment30|}}}|{{{col8_comment30}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }} {{#if:{{{col9_data30|}}}|
{{!!}} {{Bar chart/bar|{{{col9_data30}}}|{{{col9_data_max|{{{col9_data1}}}}}}|comment={{#if:{{{col9_comment30|}}}|{{{col9_comment30}}}|}}|width={{#if:{{{bar_width|}}}|{{{bar_width}}}|15}}}} }}
|-
{{#if:{{{total|{{{col1_total|}}}}}}|
! scope="row" class="bar-chart-total" {{!}} Wadarta {{!!}} {{formatnum: {{{total|{{{col1_total}}}}}} }} }} {{#if:{{{col2_total|}}}|
{{!!}} {{formatnum: {{{col2_total}}} }} }}{{#if:{{{col3_total|}}}|
{{!!}} {{formatnum: {{{col3_total}}} }} }}{{#if:{{{col4_total|}}}|
{{!!}} {{formatnum: {{{col4_total}}} }} }}{{#if:{{{col5_total|}}}|
{{!!}} {{formatnum: {{{col5_total}}} }} }}{{#if:{{{col6_total|}}}|
{{!!}} {{formatnum: {{{col6_total}}} }} }}{{#if:{{{col7_total|}}}|
{{!!}} {{formatnum: {{{col7_total}}} }} }}{{#if:{{{col8_total|}}}|
{{!!}} {{formatnum: {{{col8_total}}} }} }}{{#if:{{{col9_total|}}}|
{{!!}} {{formatnum: {{{col9_total}}} }} }}
|-
{{#if:{{{caption|}}}|
{{!}} class="bar-chart-caption" colspan=10 {{!}}
{{{caption}}}
}}
|}<noinclude>
{{documentation}}
</noinclude>
q9le4ulflpkfa3eic1hqhkdjfghzre9
Template:Bar chart/styles.css
10
53339
309762
2026-09-26T17:47:12Z
Isma4l
41797
Bog cusub: /* {{pp-template}} */ .bar-chart { margin: 0.5em; background-color: var(--background-color-neutral-subtle, #f8f9fa); border: 1px solid #c0c0c0; border-spacing:0px; } .bar-chart tbody { display:table; width:100%; } .bar-chart caption { display:block; font-weight: bold; } .bar-chart th, .bar-chart td { padding: 3px; text-align: left; } /* highlight bars on mouseover */ .bar-chart tr:not(:first-child):hover{ background-color: var(--background-color-base, #ffffff); } .ba...
309762
sanitized-css
text/css
/* {{pp-template}} */
.bar-chart {
margin: 0.5em;
background-color: var(--background-color-neutral-subtle, #f8f9fa);
border: 1px solid #c0c0c0;
border-spacing:0px;
}
.bar-chart tbody {
display:table;
width:100%;
}
.bar-chart caption {
display:block;
font-weight: bold;
}
.bar-chart th,
.bar-chart td {
padding: 3px;
text-align: left;
}
/* highlight bars on mouseover */
.bar-chart tr:not(:first-child):hover{
background-color: var(--background-color-base, #ffffff);
}
.bar-chart th[scope="col"]:not(.bar-chart-label-type) {
width: 15em;
}
.bar-chart th[scope="row"]:not(.bar-chart-total) {
font-weight: normal;
}
.bar-chart-bar {
height: 1.25em;
width: 40em;
}
.bar-chart-bar-line {
background-color: #cedff2;
height: 1.25em;
margin: 0 0 0 0;
z-index: 0;
}
.bar-chart-bar-comment {
font-size: 90%;
padding-left: 1em;
}
.bar-chart-bar-numbers {
position: relative;
top: -1.4em;
height: 1.25em;
padding: 0 0 0 2em;
z-index: 10;
width: 40em;
}
.bar-chart-caption {
border-top: 1px solid #aaa;
}
@media (min-width: 720px) {
.bar-chart-left {
float: left;
clear: left;
margin: 0.5em 1em 0.5em 0;
}
.bar-chart-right {
float: right;
clear: right;
margin: 0.5em 0 0.5em 1em;
}
.bar-chart-center {
margin: 0.5em auto;
}
}
/* The CSS below is for situations where the standard background color is not
* visible either because of contrast or because all background colors are
* removed when printing:
*/
/* for dark mode */
@media screen {
html.skin-theme-clientpref-night .bar-chart-bar-line {
background-color: #74497e;
}
}
/* for automatic dark mode */
@media screen and (prefers-color-scheme: dark) {
html.skin-theme-clientpref-os .bar-chart-bar-line {
background-color: #74497e;
}
}
/* for printed copies */
@media print {
.bar-chart-bar-line {
border: dashed 1pt grey;
}
}
omrlvs9n9z5qj0npjodmokwab8aifv4
Template:BrewerColorLegends
10
53340
309763
2026-09-26T17:49:11Z
Isma4l
41797
Bog cusub: <includeonly>{{safesubst:#invoke:BrewerColors|Legends}}</includeonly><noinclude> {{documentation}} </noinclude>
309763
wikitext
text/x-wiki
<includeonly>{{safesubst:#invoke:BrewerColors|Legends}}</includeonly><noinclude>
{{documentation}}
</noinclude>
ezqbzqr6qzgp0hjrbwhgq84usvso5r0
Module:BrewerColors
828
53341
309764
2026-09-26T17:49:54Z
Isma4l
41797
Bog cusub: require('strict') local p = {} local CFCM = require "Module:ComplForColorModules" local TNTT = require "Module:TNTTools" local ARG = require "Module:Arguments" local I18n = 'BrewerColors' --[[ TRANSLATION, in :Commons:Data:I18n/BrewerColors.tab local RS_ColorNumInvalid = 'El nombre de colors ($1) està fora del rang' local RS_ColorNameInvalid = 'El nom del color ($1) no és vàlid' --]] local RS_ColorNumInvalid = 'ColorNumInvalid' local RS_ColorNameInvalid = 'ColorNameInvalid'...
309764
Scribunto
text/plain
require('strict')
local p = {}
local CFCM = require "Module:ComplForColorModules"
local TNTT = require "Module:TNTTools"
local ARG = require "Module:Arguments"
local I18n = 'BrewerColors'
--[[
TRANSLATION, in :Commons:Data:I18n/BrewerColors.tab
local RS_ColorNumInvalid = 'El nombre de colors ($1) està fora del rang'
local RS_ColorNameInvalid = 'El nom del color ($1) no és vàlid'
--]]
local RS_ColorNumInvalid = 'ColorNumInvalid'
local RS_ColorNameInvalid = 'ColorNameInvalid'
local function I18nStr(S, ...)
return TNTT.GetMsgP(I18n, S, {...})
end
-- This product includes ColorName specifications and designs developed by Cynthia Brewer (http://colorbrewer.org/).
local ColorYlGn = {
{"f7fcb9","addd8e","31a354"},
{"ffffcc","c2e699","78c679","238443"},
{"ffffcc","c2e699","78c679","31a354","006837"},
{"ffffcc","d9f0a3","addd8e","78c679","31a354","006837"},
{"ffffcc","d9f0a3","addd8e","78c679","41ab5d","238443","005a32"},
{"ffffe5","f7fcb9","d9f0a3","addd8e","78c679","41ab5d","238443","005a32"},
{"ffffe5","f7fcb9","d9f0a3","addd8e","78c679","41ab5d","238443","006837","004529"},
}
local ColorYlGnBu = {
{"edf8b1","7fcdbb","2c7fb8"},
{"ffffcc","a1dab4","41b6c4","225ea8"},
{"ffffcc","a1dab4","41b6c4","2c7fb8","253494"},
{"ffffcc","c7e9b4","7fcdbb","41b6c4","2c7fb8","253494"},
{"ffffcc","c7e9b4","7fcdbb","41b6c4","1d91c0","225ea8","0c2c84"},
{"ffffd9","edf8b1","c7e9b4","7fcdbb","41b6c4","1d91c0","225ea8","0c2c84"},
{"ffffd9","edf8b1","c7e9b4","7fcdbb","41b6c4","1d91c0","225ea8","253494","081d58"},
}
local ColorGnBu = {
{"e0f3db","a8ddb5","43a2ca"},
{"f0f9e8","bae4bc","7bccc4","2b8cbe"},
{"f0f9e8","bae4bc","7bccc4","43a2ca","0868ac"},
{"f0f9e8","ccebc5","a8ddb5","7bccc4","43a2ca","0868ac"},
{"f0f9e8","ccebc5","a8ddb5","7bccc4","4eb3d3","2b8cbe","08589e"},
{"f7fcf0","e0f3db","ccebc5","a8ddb5","7bccc4","4eb3d3","2b8cbe","08589e"},
{"f7fcf0","e0f3db","ccebc5","a8ddb5","7bccc4","4eb3d3","2b8cbe","0868ac","084081"},
}
local ColorBuGn = {
{"e5f5f9","99d8c9","2ca25f"},
{"edf8fb","b2e2e2","66c2a4","238b45"},
{"edf8fb","b2e2e2","66c2a4","2ca25f","006d2c"},
{"edf8fb","ccece6","99d8c9","66c2a4","2ca25f","006d2c"},
{"edf8fb","ccece6","99d8c9","66c2a4","41ae76","238b45","005824"},
{"f7fcfd","e5f5f9","ccece6","99d8c9","66c2a4","41ae76","238b45","005824"},
{"f7fcfd","e5f5f9","ccece6","99d8c9","66c2a4","41ae76","238b45","006d2c","00441b"},
}
local ColorPuBuGn = {
{"ece2f0","a6bddb","1c9099"},
{"f6eff7","bdc9e1","67a9cf","02818a"},
{"f6eff7","bdc9e1","67a9cf","1c9099","016c59"},
{"f6eff7","d0d1e6","a6bddb","67a9cf","1c9099","016c59"},
{"f6eff7","d0d1e6","a6bddb","67a9cf","3690c0","02818a","016450"},
{"fff7fb","ece2f0","d0d1e6","a6bddb","67a9cf","3690c0","02818a","016450"},
{"fff7fb","ece2f0","d0d1e6","a6bddb","67a9cf","3690c0","02818a","016c59","014636"},
}
local ColorPuBu = {
{"ece7f2","a6bddb","2b8cbe"},
{"f1eef6","bdc9e1","74a9cf","0570b0"},
{"f1eef6","bdc9e1","74a9cf","2b8cbe","045a8d"},
{"f1eef6","d0d1e6","a6bddb","74a9cf","2b8cbe","045a8d"},
{"f1eef6","d0d1e6","a6bddb","74a9cf","3690c0","0570b0","034e7b"},
{"fff7fb","ece7f2","d0d1e6","a6bddb","74a9cf","3690c0","0570b0","034e7b"},
{"fff7fb","ece7f2","d0d1e6","a6bddb","74a9cf","3690c0","0570b0","045a8d","023858"},
}
local ColorBuPu = {
{"e0ecf4","9ebcda","8856a7"},
{"edf8fb","b3cde3","8c96c6","88419d"},
{"edf8fb","b3cde3","8c96c6","8856a7","810f7c"},
{"edf8fb","bfd3e6","9ebcda","8c96c6","8856a7","810f7c"},
{"edf8fb","bfd3e6","9ebcda","8c96c6","8c6bb1","88419d","6e016b"},
{"f7fcfd","e0ecf4","bfd3e6","9ebcda","8c96c6","8c6bb1","88419d","6e016b"},
{"f7fcfd","e0ecf4","bfd3e6","9ebcda","8c96c6","8c6bb1","88419d","810f7c","4d004b"},
}
local ColorRdPu = {
{"fde0dd","fa9fb5","c51b8a"},
{"feebe2","fbb4b9","f768a1","ae017e"},
{"feebe2","fbb4b9","f768a1","c51b8a","7a0177"},
{"feebe2","fcc5c0","fa9fb5","f768a1","c51b8a","7a0177"},
{"feebe2","fcc5c0","fa9fb5","f768a1","dd3497","ae017e","7a0177"},
{"fff7f3","fde0dd","fcc5c0","fa9fb5","f768a1","dd3497","ae017e","7a0177"},
{"fff7f3","fde0dd","fcc5c0","fa9fb5","f768a1","dd3497","ae017e","7a0177","49006a"},
}
local ColorPuRd = {
{"e7e1ef","c994c7","dd1c77"},
{"f1eef6","d7b5d8","df65b0","ce1256"},
{"f1eef6","d7b5d8","df65b0","dd1c77","980043"},
{"f1eef6","d4b9da","c994c7","df65b0","dd1c77","980043"},
{"f1eef6","d4b9da","c994c7","df65b0","e7298a","ce1256","91003f"},
{"f7f4f9","e7e1ef","d4b9da","c994c7","df65b0","e7298a","ce1256","91003f"},
{"f7f4f9","e7e1ef","d4b9da","c994c7","df65b0","e7298a","ce1256","980043","67001f"},
}
local ColorOrRd = {
{"fee8c8","fdbb84","e34a33"},
{"fef0d9","fdcc8a","fc8d59","d7301f"},
{"fef0d9","fdcc8a","fc8d59","e34a33","b30000"},
{"fef0d9","fdd49e","fdbb84","fc8d59","e34a33","b30000"},
{"fef0d9","fdd49e","fdbb84","fc8d59","ef6548","d7301f","990000"},
{"fff7ec","fee8c8","fdd49e","fdbb84","fc8d59","ef6548","d7301f","990000"},
{"fff7ec","fee8c8","fdd49e","fdbb84","fc8d59","ef6548","d7301f","b30000","7f0000"},
}
local ColorYlOrRd = {
{"ffeda0","feb24c","f03b20"},
{"ffffb2","fecc5c","fd8d3c","e31a1c"},
{"ffffb2","fecc5c","fd8d3c","f03b20","bd0026"},
{"ffffb2","fed976","feb24c","fd8d3c","f03b20","bd0026"},
{"ffffb2","fed976","feb24c","fd8d3c","fc4e2a","e31a1c","b10026"},
{"ffffcc","ffeda0","fed976","feb24c","fd8d3c","fc4e2a","e31a1c","b10026"},
{"ffffcc","ffeda0","fed976","feb24c","fd8d3c","fc4e2a","e31a1c","bd0026","800026"},
}
local ColorYlOrBr = {
{"fff7bc","fec44f","d95f0e"},
{"ffffd4","fed98e","fe9929","cc4c02"},
{"ffffd4","fed98e","fe9929","d95f0e","993404"},
{"ffffd4","fee391","fec44f","fe9929","d95f0e","993404"},
{"ffffd4","fee391","fec44f","fe9929","ec7014","cc4c02","8c2d04"},
{"ffffe5","fff7bc","fee391","fec44f","fe9929","ec7014","cc4c02","8c2d04"},
{"ffffe5","fff7bc","fee391","fec44f","fe9929","ec7014","cc4c02","993404","662506"},
}
local ColorPurples = {
{"efedf5","bcbddc","756bb1"},
{"f2f0f7","cbc9e2","9e9ac8","6a51a3"},
{"f2f0f7","cbc9e2","9e9ac8","756bb1","54278f"},
{"f2f0f7","dadaeb","bcbddc","9e9ac8","756bb1","54278f"},
{"f2f0f7","dadaeb","bcbddc","9e9ac8","807dba","6a51a3","4a1486"},
{"fcfbfd","efedf5","dadaeb","bcbddc","9e9ac8","807dba","6a51a3","4a1486"},
{"fcfbfd","efedf5","dadaeb","bcbddc","9e9ac8","807dba","6a51a3","54278f","3f007d"},
}
local ColorBlues = {
{"deebf7","9ecae1","3182bd"},
{"eff3ff","bdd7e7","6baed6","2171b5"},
{"eff3ff","bdd7e7","6baed6","3182bd","08519c"},
{"eff3ff","c6dbef","9ecae1","6baed6","3182bd","08519c"},
{"eff3ff","c6dbef","9ecae1","6baed6","4292c6","2171b5","084594"},
{"f7fbff","deebf7","c6dbef","9ecae1","6baed6","4292c6","2171b5","084594"},
{"f7fbff","deebf7","c6dbef","9ecae1","6baed6","4292c6","2171b5","08519c","08306b"},
}
local ColorGreens = {
{"e5f5e0","a1d99b","31a354"},
{"edf8e9","bae4b3","74c476","238b45"},
{"edf8e9","bae4b3","74c476","31a354","006d2c"},
{"edf8e9","c7e9c0","a1d99b","74c476","31a354","006d2c"},
{"edf8e9","c7e9c0","a1d99b","74c476","41ab5d","238b45","005a32"},
{"f7fcf5","e5f5e0","c7e9c0","a1d99b","74c476","41ab5d","238b45","005a32"},
{"f7fcf5","e5f5e0","c7e9c0","a1d99b","74c476","41ab5d","238b45","006d2c","00441b"},
}
local ColorOranges = {
{"fee6ce","fdae6b","e6550d"},
{"feedde","fdbe85","fd8d3c","d94701"},
{"feedde","fdbe85","fd8d3c","e6550d","a63603"},
{"feedde","fdd0a2","fdae6b","fd8d3c","e6550d","a63603"},
{"feedde","fdd0a2","fdae6b","fd8d3c","f16913","d94801","8c2d04"},
{"fff5eb","fee6ce","fdd0a2","fdae6b","fd8d3c","f16913","d94801","8c2d04"},
{"fff5eb","fee6ce","fdd0a2","fdae6b","fd8d3c","f16913","d94801","a63603","7f2704"},
}
local ColorReds = {
{"fee0d2","fc9272","de2d26"},
{"fee5d9","fcae91","fb6a4a","cb181d"},
{"fee5d9","fcae91","fb6a4a","de2d26","a50f15"},
{"fee5d9","fcbba1","fc9272","fb6a4a","de2d26","a50f15"},
{"fee5d9","fcbba1","fc9272","fb6a4a","ef3b2c","cb181d","99000d"},
{"fff5f0","fee0d2","fcbba1","fc9272","fb6a4a","ef3b2c","cb181d","99000d"},
{"fff5f0","fee0d2","fcbba1","fc9272","fb6a4a","ef3b2c","cb181d","a50f15","67000d"},
}
local ColorGreys = {
{"f0f0f0","bdbdbd","636363"},
{"f7f7f7","cccccc","969696","525252"},
{"f7f7f7","cccccc","969696","636363","252525"},
{"f7f7f7","d9d9d9","bdbdbd","969696","636363","252525"},
{"f7f7f7","d9d9d9","bdbdbd","969696","737373","525252","252525"},
{"ffffff","f0f0f0","d9d9d9","bdbdbd","969696","737373","525252","252525"},
{"ffffff","f0f0f0","d9d9d9","bdbdbd","969696","737373","525252","252525","000000"},
}
local ColorPuOr = {
{"f1a340","f7f7f7","998ec3"},
{"e66101","fdb863","b2abd2","5e3c99"},
{"e66101","fdb863","f7f7f7","b2abd2","5e3c99"},
{"b35806","f1a340","fee0b6","d8daeb","998ec3","542788"},
{"b35806","f1a340","fee0b6","f7f7f7","d8daeb","998ec3","542788"},
{"b35806","e08214","fdb863","fee0b6","d8daeb","b2abd2","8073ac","542788"},
{"b35806","e08214","fdb863","fee0b6","f7f7f7","d8daeb","b2abd2","8073ac","542788"},
{"7f3b08","b35806","e08214","fdb863","fee0b6","d8daeb","b2abd2","8073ac","542788","2d004b"},
{"7f3b08","b35806","e08214","fdb863","fee0b6","f7f7f7","d8daeb","b2abd2","8073ac","542788","2d004b"},
}
local ColorBrBG = {
{"d8b365","f5f5f5","5ab4ac"},
{"a6611a","dfc27d","80cdc1","018571"},
{"a6611a","dfc27d","f5f5f5","80cdc1","018571"},
{"8c510a","d8b365","f6e8c3","c7eae5","5ab4ac","01665e"},
{"8c510a","d8b365","f6e8c3","f5f5f5","c7eae5","5ab4ac","01665e"},
{"8c510a","bf812d","dfc27d","f6e8c3","c7eae5","80cdc1","35978f","01665e"},
{"8c510a","bf812d","dfc27d","f6e8c3","f5f5f5","c7eae5","80cdc1","35978f","01665e"},
{"543005","8c510a","bf812d","dfc27d","f6e8c3","c7eae5","80cdc1","35978f","01665e","003c30"},
{"543005","8c510a","bf812d","dfc27d","f6e8c3","f5f5f5","c7eae5","80cdc1","35978f","01665e","003c30"},
}
local ColorPRGn = {
{"af8dc3","f7f7f7","7fbf7b"},
{"7b3294","c2a5cf","a6dba0","008837"},
{"7b3294","c2a5cf","f7f7f7","a6dba0","008837"},
{"762a83","af8dc3","e7d4e8","d9f0d3","7fbf7b","1b7837"},
{"762a83","af8dc3","e7d4e8","f7f7f7","d9f0d3","7fbf7b","1b7837"},
{"762a83","9970ab","c2a5cf","e7d4e8","d9f0d3","a6dba0","5aae61","1b7837"},
{"762a83","9970ab","c2a5cf","e7d4e8","f7f7f7","d9f0d3","a6dba0","5aae61","1b7837"},
{"40004b","762a83","9970ab","c2a5cf","e7d4e8","d9f0d3","a6dba0","5aae61","1b7837","00441b"},
{"40004b","762a83","9970ab","c2a5cf","e7d4e8","f7f7f7","d9f0d3","a6dba0","5aae61","1b7837","00441b"},
}
local ColorPiYG = {
{"e9a3c9","f7f7f7","a1d76a"},
{"d01c8b","f1b6da","b8e186","4dac26"},
{"d01c8b","f1b6da","f7f7f7","b8e186","4dac26"},
{"c51b7d","e9a3c9","fde0ef","e6f5d0","a1d76a","4d9221"},
{"c51b7d","e9a3c9","fde0ef","f7f7f7","e6f5d0","a1d76a","4d9221"},
{"c51b7d","de77ae","f1b6da","fde0ef","e6f5d0","b8e186","7fbc41","4d9221"},
{"c51b7d","de77ae","f1b6da","fde0ef","f7f7f7","e6f5d0","b8e186","7fbc41","4d9221"},
{"8e0152","c51b7d","de77ae","f1b6da","fde0ef","e6f5d0","b8e186","7fbc41","4d9221","276419"},
{"8e0152","c51b7d","de77ae","f1b6da","fde0ef","f7f7f7","e6f5d0","b8e186","7fbc41","4d9221","276419"},
}
local ColorRdBu = {
{"ef8a62","f7f7f7","67a9cf"},
{"ca0020","f4a582","92c5de","0571b0"},
{"ca0020","f4a582","f7f7f7","92c5de","0571b0"},
{"b2182b","ef8a62","fddbc7","d1e5f0","67a9cf","2166ac"},
{"b2182b","ef8a62","fddbc7","f7f7f7","d1e5f0","67a9cf","2166ac"},
{"b2182b","d6604d","f4a582","fddbc7","d1e5f0","92c5de","4393c3","2166ac"},
{"b2182b","d6604d","f4a582","fddbc7","f7f7f7","d1e5f0","92c5de","4393c3","2166ac"},
{"67001f","b2182b","d6604d","f4a582","fddbc7","d1e5f0","92c5de","4393c3","2166ac","053061"},
{"67001f","b2182b","d6604d","f4a582","fddbc7","f7f7f7","d1e5f0","92c5de","4393c3","2166ac","053061"},
}
local ColorRdGy = {
{"ef8a62","ffffff","999999"},
{"ca0020","f4a582","bababa","404040"},
{"ca0020","f4a582","ffffff","bababa","404040"},
{"b2182b","ef8a62","fddbc7","e0e0e0","999999","4d4d4d"},
{"b2182b","ef8a62","fddbc7","ffffff","e0e0e0","999999","4d4d4d"},
{"b2182b","d6604d","f4a582","fddbc7","e0e0e0","bababa","878787","4d4d4d"},
{"b2182b","d6604d","f4a582","fddbc7","ffffff","e0e0e0","bababa","878787","4d4d4d"},
{"67001f","b2182b","d6604d","f4a582","fddbc7","e0e0e0","bababa","878787","4d4d4d","1a1a1a"},
{"67001f","b2182b","d6604d","f4a582","fddbc7","ffffff","e0e0e0","bababa","878787","4d4d4d","1a1a1a"},
}
local ColorRdYlBu = {
{"fc8d59","ffffbf","91bfdb"},
{"d7191c","fdae61","abd9e9","2c7bb6"},
{"d7191c","fdae61","ffffbf","abd9e9","2c7bb6"},
{"d73027","fc8d59","fee090","e0f3f8","91bfdb","4575b4"},
{"d73027","fc8d59","fee090","ffffbf","e0f3f8","91bfdb","4575b4"},
{"d73027","f46d43","fdae61","fee090","e0f3f8","abd9e9","74add1","4575b4"},
{"d73027","f46d43","fdae61","fee090","ffffbf","e0f3f8","abd9e9","74add1","4575b4"},
{"a50026","d73027","f46d43","fdae61","fee090","e0f3f8","abd9e9","74add1","4575b4","313695"},
{"a50026","d73027","f46d43","fdae61","fee090","ffffbf","e0f3f8","abd9e9","74add1","4575b4","313695"},
}
local ColorSpectral = {
{"fc8d59","ffffbf","99d594"},
{"d7191c","fdae61","abdda4","2b83ba"},
{"d7191c","fdae61","ffffbf","abdda4","2b83ba"},
{"d53e4f","fc8d59","fee08b","e6f598","99d594","3288bd"},
{"d53e4f","fc8d59","fee08b","ffffbf","e6f598","99d594","3288bd"},
{"d53e4f","f46d43","fdae61","fee08b","e6f598","abdda4","66c2a5","3288bd"},
{"d53e4f","f46d43","fdae61","fee08b","ffffbf","e6f598","abdda4","66c2a5","3288bd"},
{"9e0142","d53e4f","f46d43","fdae61","fee08b","e6f598","abdda4","66c2a5","3288bd","5e4fa2"},
{"9e0142","d53e4f","f46d43","fdae61","fee08b","ffffbf","e6f598","abdda4","66c2a5","3288bd","5e4fa2"},
}
local ColorRdYlGn = {
{"fc8d59","ffffbf","91cf60"},
{"d7191c","fdae61","a6d96a","1a9641"},
{"d7191c","fdae61","ffffbf","a6d96a","1a9641"},
{"d73027","fc8d59","fee08b","d9ef8b","91cf60","1a9850"},
{"d73027","fc8d59","fee08b","ffffbf","d9ef8b","91cf60","1a9850"},
{"d73027","f46d43","fdae61","fee08b","d9ef8b","a6d96a","66bd63","1a9850"},
{"d73027","f46d43","fdae61","fee08b","ffffbf","d9ef8b","a6d96a","66bd63","1a9850"},
{"a50026","d73027","f46d43","fdae61","fee08b","d9ef8b","a6d96a","66bd63","1a9850","006837"},
{"a50026","d73027","f46d43","fdae61","fee08b","ffffbf","d9ef8b","a6d96a","66bd63","1a9850","006837"},
}
local ColorAccent = {
{"7fc97f","beaed4","fdc086"},
{"7fc97f","beaed4","fdc086","ffff99"},
{"7fc97f","beaed4","fdc086","ffff99","386cb0"},
{"7fc97f","beaed4","fdc086","ffff99","386cb0","f0027f"},
{"7fc97f","beaed4","fdc086","ffff99","386cb0","f0027f","bf5b17"},
{"7fc97f","beaed4","fdc086","ffff99","386cb0","f0027f","bf5b17","666666"},
}
local ColorDark2 = {
{"1b9e77","d95f02","7570b3"},
{"1b9e77","d95f02","7570b3","e7298a"},
{"1b9e77","d95f02","7570b3","e7298a","66a61e"},
{"1b9e77","d95f02","7570b3","e7298a","66a61e","e6ab02"},
{"1b9e77","d95f02","7570b3","e7298a","66a61e","e6ab02","a6761d"},
{"1b9e77","d95f02","7570b3","e7298a","66a61e","e6ab02","a6761d","666666"},
}
local ColorPaired = {
{"a6cee3","1f78b4","b2df8a"},
{"a6cee3","1f78b4","b2df8a","33a02c"},
{"a6cee3","1f78b4","b2df8a","33a02c","fb9a99"},
{"a6cee3","1f78b4","b2df8a","33a02c","fb9a99","e31a1c"},
{"a6cee3","1f78b4","b2df8a","33a02c","fb9a99","e31a1c","fdbf6f"},
{"a6cee3","1f78b4","b2df8a","33a02c","fb9a99","e31a1c","fdbf6f","ff7f00"},
{"a6cee3","1f78b4","b2df8a","33a02c","fb9a99","e31a1c","fdbf6f","ff7f00","cab2d6"},
{"a6cee3","1f78b4","b2df8a","33a02c","fb9a99","e31a1c","fdbf6f","ff7f00","cab2d6","6a3d9a"},
{"a6cee3","1f78b4","b2df8a","33a02c","fb9a99","e31a1c","fdbf6f","ff7f00","cab2d6","6a3d9a","ffff99"},
{"a6cee3","1f78b4","b2df8a","33a02c","fb9a99","e31a1c","fdbf6f","ff7f00","cab2d6","6a3d9a","ffff99","b15928"},
}
local ColorPastel1 = {
{"fbb4ae","b3cde3","ccebc5"},
{"fbb4ae","b3cde3","ccebc5","decbe4"},
{"fbb4ae","b3cde3","ccebc5","decbe4","fed9a6"},
{"fbb4ae","b3cde3","ccebc5","decbe4","fed9a6","ffffcc"},
{"fbb4ae","b3cde3","ccebc5","decbe4","fed9a6","ffffcc","e5d8bd"},
{"fbb4ae","b3cde3","ccebc5","decbe4","fed9a6","ffffcc","e5d8bd","fddaec"},
{"fbb4ae","b3cde3","ccebc5","decbe4","fed9a6","ffffcc","e5d8bd","fddaec","f2f2f2"},
}
local ColorPastel2 = {
{"b3e2cd","fdcdac","cbd5e8"},
{"b3e2cd","fdcdac","cbd5e8","f4cae4"},
{"b3e2cd","fdcdac","cbd5e8","f4cae4","e6f5c9"},
{"b3e2cd","fdcdac","cbd5e8","f4cae4","e6f5c9","fff2ae"},
{"b3e2cd","fdcdac","cbd5e8","f4cae4","e6f5c9","fff2ae","f1e2cc"},
{"b3e2cd","fdcdac","cbd5e8","f4cae4","e6f5c9","fff2ae","f1e2cc","cccccc"},
}
local ColorSet1 = {
{"e41a1c","377eb8","4daf4a"},
{"e41a1c","377eb8","4daf4a","984ea3"},
{"e41a1c","377eb8","4daf4a","984ea3","ff7f00"},
{"e41a1c","377eb8","4daf4a","984ea3","ff7f00","ffff33"},
{"e41a1c","377eb8","4daf4a","984ea3","ff7f00","ffff33","a65628"},
{"e41a1c","377eb8","4daf4a","984ea3","ff7f00","ffff33","a65628","f781bf"},
{"e41a1c","377eb8","4daf4a","984ea3","ff7f00","ffff33","a65628","f781bf","999999"},
}
local ColorSet2 = {
{"66c2a5","fc8d62","8da0cb"},
{"66c2a5","fc8d62","8da0cb","e78ac3"},
{"66c2a5","fc8d62","8da0cb","e78ac3","a6d854"},
{"66c2a5","fc8d62","8da0cb","e78ac3","a6d854","ffd92f"},
{"66c2a5","fc8d62","8da0cb","e78ac3","a6d854","ffd92f","e5c494"},
{"66c2a5","fc8d62","8da0cb","e78ac3","a6d854","ffd92f","e5c494","b3b3b3"},
}
local ColorSet3 = {
{"8dd3c7","ffffb3","bebada"},
{"8dd3c7","ffffb3","bebada","fb8072"},
{"8dd3c7","ffffb3","bebada","fb8072","80b1d3"},
{"8dd3c7","ffffb3","bebada","fb8072","80b1d3","fdb462"},
{"8dd3c7","ffffb3","bebada","fb8072","80b1d3","fdb462","b3de69"},
{"8dd3c7","ffffb3","bebada","fb8072","80b1d3","fdb462","b3de69","fccde5"},
{"8dd3c7","ffffb3","bebada","fb8072","80b1d3","fdb462","b3de69","fccde5","d9d9d9"},
{"8dd3c7","ffffb3","bebada","fb8072","80b1d3","fdb462","b3de69","fccde5","d9d9d9","bc80bd"},
{"8dd3c7","ffffb3","bebada","fb8072","80b1d3","fdb462","b3de69","fccde5","d9d9d9","bc80bd","ccebc5"},
{"8dd3c7","ffffb3","bebada","fb8072","80b1d3","fdb462","b3de69","fccde5","d9d9d9","bc80bd","ccebc5","ffed6f"},
}
function p.GetColors(ColorName, IsInv, N, CallError)
local ColorFound = {}
local function GetC(ColorSet)
if (N < 3) or (N > (table.getn(ColorSet)+2)) then
if CallError then
error(I18nStr(RS_ColorNumInvalid,tostring(N)), 0)
end
elseif IsInv then
for i = table.getn(ColorSet[N-2]), 1, -1 do
table.insert(ColorFound, '#'..ColorSet[N-2][i])
end
else
for i = 1, table.getn(ColorSet[N-2]) do
table.insert(ColorFound, '#'..ColorSet[N-2][i])
end
end
end
local ColorNameL = string.lower(ColorName)
if ColorNameL == 'ylgn' then GetC(ColorYlGn)
elseif ColorNameL == 'ylgnbu' then GetC(ColorYlGnBu)
elseif ColorNameL == 'gnbu' then GetC(ColorGnBu)
elseif ColorNameL == 'bugn' then GetC(ColorBuGn)
elseif ColorNameL == 'pubugn' then GetC(ColorPuBuGn)
elseif ColorNameL == 'pubu' then GetC(ColorPuBu)
elseif ColorNameL == 'bupu' then GetC(ColorBuPu)
elseif ColorNameL == 'rdpu' then GetC(ColorRdPu)
elseif ColorNameL == 'purd' then GetC(ColorPuRd)
elseif ColorNameL == 'orrd' then GetC(ColorOrRd)
elseif ColorNameL == 'ylorrd' then GetC(ColorYlOrRd)
elseif ColorNameL == 'ylorbr' then GetC(ColorYlOrBr)
elseif ColorNameL == 'purples' then GetC(ColorPurples)
elseif ColorNameL == 'blues' then GetC(ColorBlues)
elseif ColorNameL == 'greens' then GetC(ColorGreens)
elseif ColorNameL == 'oranges' then GetC(ColorOranges)
elseif ColorNameL == 'reds' then GetC(ColorReds)
elseif ColorNameL == 'greys' then GetC(ColorGreys)
elseif ColorNameL == 'puor' then GetC(ColorPuOr)
elseif ColorNameL == 'brbg' then GetC(ColorBrBG)
elseif ColorNameL == 'prgn' then GetC(ColorPRGn)
elseif ColorNameL == 'piyg' then GetC(ColorPiYG)
elseif ColorNameL == 'rdbu' then GetC(ColorRdBu)
elseif ColorNameL == 'rdgy' then GetC(ColorRdGy)
elseif ColorNameL == 'rdylbu' then GetC(ColorRdYlBu)
elseif ColorNameL == 'spectral' then GetC(ColorSpectral)
elseif ColorNameL == 'rdylgn' then GetC(ColorRdYlGn)
elseif ColorNameL == 'accent' then GetC(ColorAccent)
elseif ColorNameL == 'dark2' then GetC(ColorDark2)
elseif ColorNameL == 'paired' then GetC(ColorPaired)
elseif ColorNameL == 'pastel1' then GetC(ColorPastel1)
elseif ColorNameL == 'pastel2' then GetC(ColorPastel2)
elseif ColorNameL == 'set1' then GetC(ColorSet1)
elseif ColorNameL == 'set2' then GetC(ColorSet2)
elseif ColorNameL == 'set3' then GetC(ColorSet3)
elseif CallError then
error(I18nStr(RS_ColorNameInvalid,ColorName), 0)
end
return ColorFound
end
function p.ShowColors(frame)
local args = ARG.getArgs(frame, {
removeBlanks = false
})
local ColorName, IsInv = CFCM.ColorNameInv(args)
local N = tonumber(args[2])
local WriteColor = args[3] or ''
local ColorFound = {}
ColorFound = p.GetColors(ColorName, IsInv, N, true)
local boxes = {}
for i = 1, table.getn(ColorFound) do
table.insert(boxes, CFCM.Box(ColorFound[i],WriteColor))
end
return table.concat(boxes, " ")
end
function p.Legends(frame)
local args = ARG.getArgs(frame, {
removeBlanks = false
})
local ColorName, IsInv = CFCM.ColorNameInv(args)
local N = tonumber(args[2])
local ColWidth = args[3]
local ColorFound = {}
local Labels = {}
local NLabels = 0
local IsTemplate = true
ColorFound = p.GetColors(ColorName, IsInv, N, true)
local Labels, NLabels, OutlineColor = CFCM.GetLabels (args, N, 4)
return CFCM.LegendText(ColorFound, Labels, NLabels, ColWidth, IsTemplate, OutlineColor)
end
return p
s0aq3sg9ivd6mp7fw63luuaul46at3x
Module:ComplForColorModules
828
53342
309765
2026-09-26T17:50:47Z
Isma4l
41797
Bog cusub: local p = {} local TNTT = require "Module:TNTTools" local I18n = 'ComplForColorModules' --local MoreOneNoData = "Found 2 legends of \"Value not assigned\" or \"Data not available\"" --local FoundNLegendsExpectedN = "Found $1 legends, expected $2" --local Color = "Color" --local Legend = "legend" local function I18nStr (S, ...) return TNTT.GetMsgP (I18n, S, {...}) end function p.ColorNameInvFromS0 (S) local IsInv = false local ColorName = '' local Params = {} if S ~= ''...
309765
Scribunto
text/plain
local p = {}
local TNTT = require "Module:TNTTools"
local I18n = 'ComplForColorModules'
--local MoreOneNoData = "Found 2 legends of \"Value not assigned\" or \"Data not available\""
--local FoundNLegendsExpectedN = "Found $1 legends, expected $2"
--local Color = "Color"
--local Legend = "legend"
local function I18nStr (S, ...)
return TNTT.GetMsgP (I18n, S, {...})
end
function p.ColorNameInvFromS0 (S)
local IsInv = false
local ColorName = ''
local Params = {}
if S ~= '' then
for w in S:gmatch("([^_]+)") do
table.insert(Params, w)
end
ColorName = Params[1]
end
local PN = table.getn(Params)
if (PN == 2) and (Params[2]=='i') then
IsInv = true
end
return ColorName, IsInv, Params
end
function p.ColorNameInv (args)
local ColorName, IsInv, Params = p.ColorNameInvFromS0(args[1])
return ColorName, IsInv
end
function p.GetLabels(Args, N, Pos)
local Labels = {}
local index = Pos
while Args[index] do
Labels[#Labels+1] = Args[index]
index = index + 1
end
local NLabels = #Labels
local OutlineColor = Args['outline'] or ''
if (NLabels ~= 0) and (NLabels ~= N) then
local StartUnknown = (string.sub(Labels[1],1,2) == "--")
local EndUnknown = (string.sub(Labels[NLabels],1,2) == "--")
if StartUnknown and EndUnknown then
error (I18nStr ('MoreOneNoData'))
elseif StartUnknown or EndUnknown then
N = N + 1
end
if (NLabels ~= 0) and (NLabels ~= N) then
error (I18nStr ('FoundNLegendsExpectedN', tostring(NLabels), tostring(N)))
end
end
return Labels, NLabels, OutlineColor
end
local function SColor (Color)
if string.sub(Color,1,1) == '#' then --the usual
return string.sub(Color,2,100)
else
return Color
end
end
function p.Box(Color,WriteColor)
if WriteColor == '-' then
WriteColor = Color
elseif WriteColor == 'a' then
WriteColor = Color..'ff' --Alpha channel
end
local TheBox = '<span style="background-color:'..Color..'; border:1px solid gray;" title="'..TNTT.GetStrP(I18n,'Color')..': '..SColor(Color)..'"> </span>'
if WriteColor ~='' then
TheBox = TheBox..' '..WriteColor..' '
end
return TheBox
end
function p.TextWithTooltip (Text, Tooltip)
if Tooltip ~= '' then
return '<span title="'..Tooltip..'">'..Text..'</span>'
else
return Text
end
end
function p.LegendColor(Color, Text, Tooltip)
if Text == '' then
Text = SColor(Color)
end
return '<li style="list-style-type: none; list-style-image: none;"><span style="border:1px solid gray; background:'..Color..'; margin-right:0.3em; vertical-align: middle; webkit-print-color-adjust:exact; color-adjust:exact; display:inline-block; width:1.05em; height:1em;"></span>'..p.TextWithTooltip(Text,Tooltip)..'</li>'
end
local function LegendCode(Color, Text, OutlineColor)
local SOutlineColor = ''
if OutlineColor ~= '' then
SOutlineColor = '|outline='..OutlineColor
end
return '{{'..TNTT.GetStrP(I18n,'Legend')..'|'..Color..'|'..Text..SOutlineColor..'}}'
end
function p.LegendText (AColors, Labels, NLabels, ColWidth, IsTemplate, OutlineColor)
if ColWidth then
ColWidth = mw.text.trim(ColWidth)
if #ColWidth == 0 then
ColWidth = nil
end
end
local Show, Codes = {}, {}
local Text = ''
local WithLabels = NLabels > 0
if WithLabels then
local Gray = '#b3b3b3' -- A 40% gray
if string.sub(Labels[1],1,2) == '--' then
table.insert(AColors, 1, Gray)
Labels[1] = string.sub(Labels[1], 3, 1000)
elseif string.sub(Labels[NLabels],1,2) == '--' then
table.insert(AColors, Gray)
Labels[NLabels] = string.sub(Labels[NLabels], 3, 1000)
end
end
for i=1, table.getn(AColors) do
if WithLabels then Text = Labels[i] end
table.insert(Show, p.LegendColor(AColors[i],Text,''))
end
local SShow = table.concat(Show,"\n")
if ColWidth then
local frame = mw.getCurrentFrame()
SShow = frame:expandTemplate{title="div col",args={colwidth=ColWidth}} .. SShow
SShow = SShow .. frame:expandTemplate{title="div col end"}
end
for i=1, table.getn(AColors) do
if WithLabels then Text = Labels[i] end
table.insert(Codes, ' '..LegendCode(AColors[i],Text,OutlineColor))
end
local SCodes = '<pre>\n'
if ColWidth then
SCodes = SCodes .. require("Module:Template invocation").invocation("div col",{colwidth=ColWidth}) .. "\n"
end
SCodes = SCodes .. table.concat(Codes,"\n")
if ColWidth and #ColWidth ~= 0 then
SCodes = SCodes .. "\n{{div col end}}"
end
SCodes = SCodes .. "\n</pre>"
return SShow..'\n'..SCodes
end
return p
5fdk7vjfpgkk4rd8apgx1nb4wbcpcy8
Module:TNTTools
828
53343
309766
2026-09-26T17:51:27Z
Isma4l
41797
Bog cusub: require('strict') local p = {} local TNT = require('Module:TNT') function p.TNTTabFull (TNTTab) if (string.sub(TNTTab, 1, 5)) ~= 'I18n/' then TNTTab = 'I18n/'..TNTTab end if (string.sub(TNTTab, -4)) ~= '.tab' then TNTTab = TNTTab..'.tab' end return TNTTab end --TNTTabFull function p.TNTTabCommons (TNTTab) return 'Commons:Data:'..p.TNTTabFull(TNTTab) end function p.LnkTNTTab (TNTTab) return '[['..p.TNTTabCommons(TNTTab)..']]' end local function I18nStr (TNTTab,...
309766
Scribunto
text/plain
require('strict')
local p = {}
local TNT = require('Module:TNT')
function p.TNTTabFull (TNTTab)
if (string.sub(TNTTab, 1, 5)) ~= 'I18n/' then
TNTTab = 'I18n/'..TNTTab
end
if (string.sub(TNTTab, -4)) ~= '.tab' then
TNTTab = TNTTab..'.tab'
end
return TNTTab
end --TNTTabFull
function p.TNTTabCommons (TNTTab)
return 'Commons:Data:'..p.TNTTabFull(TNTTab)
end
function p.LnkTNTTab (TNTTab)
return '[['..p.TNTTabCommons(TNTTab)..']]'
end
local function I18nStr (TNTTab, S, IsMsg, params)
TNTTab = p.TNTTabFull (TNTTab)
local SEnd = TNT.format(TNTTab, S, unpack(params)) or ''
if SEnd == '' then
SEnd = TNT.formatInLanguage('en',TNTTab, S, unpack(params))
if IsMsg then
local icon = '[[File:Arbcom ru editing.svg|12px|Not found "'..S..'" in current language. Click here for to edit it.|link='..p.TNTTabCommons(TNTTab)..']]'
SEnd = SEnd..icon
end
end
return SEnd
end --I18nStr
function p.GetMsgP (TNTTab, S, ...)
return I18nStr (TNTTab, S, true, {...})
end
function p.GetStrP (TNTTab, S, ...)
return I18nStr (TNTTab, S, false, {...})
end
function p.TabTransCS (TNTTab, S, CaseSensitive)
CaseSensitive = ((CaseSensitive ~= nil) and (CaseSensitive == true)) or true
local Wds = TNT.format (p.TNTTabFull(TNTTab), S)
if not CaseSensitive then
Wds = string.lower (Wds)
end
return mw.text.split (Wds, '|')
end --TabTransCS
function p.TabTransMT (TNTTab, S, MaxTrans)
local FN = p.TNTTabFull(TNTTab)
local tab = mw.text.split (TNT.format (FN, S), '|')
if #tab > MaxTrans then
error (string.format('Found %s translations for "%s". Search in [[:commons:data:%s]]',#tab,S,FN))
-- Translation not required
end
return tab
end --TabTransMT
function p.SFoundInTNTArr (TNTTab, val, CaseSensitive, S)
if (S == nil) or (S == '') then
error('Not arguments trying to find "'..val..'"') --It doesn't require translation, only for degug
end
local Arr = p.TabTransCS (TNTTab, S, CaseSensitive)
if not CaseSensitive then
val = string.lower (val)
end
for I, W in ipairs(Arr) do
if W == val then
return true
end
end
return false
end --SFoundInTNTArr
function p.IdxFromTabTrans (TNTTab, val, CaseSensitive, ...)
local Arr = unpack(arg)
if Arr == nil then
error('Not arguments trying to find "'..val..'"') --It doesn't require translation, only for degug
end
local Idx = 0
for I, W in ipairs(Arr) do
if p.SFoundInTNTArr (TNTTab, val, CaseSensitive, W) then
Idx = I
break
end
end
return Idx
end --IdxFromTabTrans
return p
3xzzezqpj9rjg5fdhn3qojkztc7v0yu
309767
309766
2026-09-26T17:52:43Z
Isma4l
41797
309767
Scribunto
text/plain
require('strict')
local p = {}
local TNT = require('Module:TNT')
function p.TNTTabFull (TNTTab)
if (string.sub(TNTTab, 1, 5)) ~= 'I18n/' then
TNTTab = 'I18n/'..TNTTab
end
if (string.sub(TNTTab, -4)) ~= '.tab' then
TNTTab = TNTTab..'.tab'
end
return TNTTab
end --TNTTabFull
function p.TNTTabCommons (TNTTab)
return 'Commons:Data:'..p.TNTTabFull(TNTTab)
end
function p.LnkTNTTab (TNTTab)
return '[['..p.TNTTabCommons(TNTTab)..']]'
end
local function I18nStr (TNTTab, S, IsMsg, params)
TNTTab = p.TNTTabFull (TNTTab)
local SEnd = TNT.format(TNTTab, S, unpack(params)) or ''
if SEnd == '' then
SEnd = TNT.formatInLanguage('en',TNTTab, S, unpack(params))
if IsMsg then
local icon = '[[File:Arbcom ru editing.svg|12px|Lama helin "'..S..'" luqaddan. Riix halkan si aad wax uga beddesho.|link='..p.TNTTabCommons(TNTTab)..']]'
SEnd = SEnd..icon
end
end
return SEnd
end --I18nStr
function p.GetMsgP (TNTTab, S, ...)
return I18nStr (TNTTab, S, true, {...})
end
function p.GetStrP (TNTTab, S, ...)
return I18nStr (TNTTab, S, false, {...})
end
function p.TabTransCS (TNTTab, S, CaseSensitive)
if CaseSensitive == nil then
CaseSensitive = true
end
local Wds = TNT.format (p.TNTTabFull(TNTTab), S)
if not CaseSensitive then
Wds = string.lower (Wds)
end
return mw.text.split (Wds, '|')
end --TabTransCS
function p.TabTransMT (TNTTab, S, MaxTrans)
local FN = p.TNTTabFull(TNTTab)
local tab = mw.text.split (TNT.format (FN, S), '|')
if #tab > MaxTrans then
error (string.format('Waxaa la helay %s turjumaadood oo ah "%s". Ka raadi [[:commons:data:%s]]', #tab, S, FN))
-- Turjumaad looma baahna
end
return tab
end --TabTransMT
function p.SFoundInTNTArr (TNTTab, val, CaseSensitive, S)
if (S == nil) or (S == '') then
error('Ma jiro halbeeg lagu raadinayo "'..val..'"') -- Uma baahna turjumaad, waa cabbirid (debug) keliya
end
local Arr = p.TabTransCS (TNTTab, S, CaseSensitive)
if not CaseSensitive then
val = string.lower (val)
end
for I, W in ipairs(Arr) do
if W == val then
return true
end
end
return false
end --SFoundInTNTArr
function p.IdxFromTabTrans (TNTTab, val, CaseSensitive, ...)
local Arr = { ... }
if #Arr == 0 then
error('Ma jiro halbeeg lagu raadinayo "'..val..'"') -- Uma baahna turjumaad, waa cabbirid (debug) keliya
end
local Idx = 0
for I, W in ipairs(Arr) do
if p.SFoundInTNTArr (TNTTab, val, CaseSensitive, W) then
Idx = I
break
end
end
return Idx
end --IdxFromTabTrans
return p
r2fsbeaj01v4n917tcdjn7715tjxilw
309768
309767
2026-09-26T17:54:33Z
Isma4l
41797
309768
Scribunto
text/plain
require('strict')
local p = {}
local TNT = require('Module:TNT')
function p.TNTTabFull (TNTTab)
if (string.sub(TNTTab, 1, 5)) ~= 'I18n/' then
TNTTab = 'I18n/'..TNTTab
end
if (string.sub(TNTTab, -4)) ~= '.tab' then
TNTTab = TNTTab..'.tab'
end
return TNTTab
end --TNTTabFull
function p.TNTTabCommons (TNTTab)
return 'Commons:Data:'..p.TNTTabFull(TNTTab)
end
function p.LnkTNTTab (TNTTab)
return '[['..p.TNTTabCommons(TNTTab)..']]'
end
local function I18nStr (TNTTab, S, IsMsg, params)
TNTTab = p.TNTTabFull (TNTTab)
local SEnd = TNT.format(TNTTab, S, unpack(params)) or ''
if SEnd == '' then
SEnd = TNT.formatInLanguage('so',TNTTab, S, unpack(params))
if IsMsg then
local icon = '[[File:Arbcom ru editing.svg|12px|Lama helin "'..S..'" luqaddan. Riix halkan si aad wax uga beddesho.|link='..p.TNTTabCommons(TNTTab)..']]'
SEnd = SEnd..icon
end
end
return SEnd
end --I18nStr
function p.GetMsgP (TNTTab, S, ...)
return I18nStr (TNTTab, S, true, {...})
end
function p.GetStrP (TNTTab, S, ...)
return I18nStr (TNTTab, S, false, {...})
end
function p.TabTransCS (TNTTab, S, CaseSensitive)
if CaseSensitive == nil then
CaseSensitive = true
end
local Wds = TNT.format (p.TNTTabFull(TNTTab), S)
if not CaseSensitive then
Wds = string.lower (Wds)
end
return mw.text.split (Wds, '|')
end --TabTransCS
function p.TabTransMT (TNTTab, S, MaxTrans)
local FN = p.TNTTabFull(TNTTab)
local tab = mw.text.split (TNT.format (FN, S), '|')
if #tab > MaxTrans then
error (string.format('Waxaa la helay %s turjumaadood oo ah "%s". Ka raadi [[:commons:data:%s]]', #tab, S, FN))
-- Turjumaad looma baahna
end
return tab
end --TabTransMT
function p.SFoundInTNTArr (TNTTab, val, CaseSensitive, S)
if (S == nil) or (S == '') then
error('Ma jiro halbeeg lagu raadinayo "'..val..'"') -- Uma baahna turjumaad, waa cabbirid (debug) keliya
end
local Arr = p.TabTransCS (TNTTab, S, CaseSensitive)
if not CaseSensitive then
val = string.lower (val)
end
for I, W in ipairs(Arr) do
if W == val then
return true
end
end
return false
end --SFoundInTNTArr
function p.IdxFromTabTrans (TNTTab, val, CaseSensitive, ...)
local Arr = { ... }
if #Arr == 0 then
error('Ma jiro halbeeg lagu raadinayo "'..val..'"') -- Uma baahna turjumaad, waa cabbirid (debug) keliya
end
local Idx = 0
for I, W in ipairs(Arr) do
if p.SFoundInTNTArr (TNTTab, val, CaseSensitive, W) then
Idx = I
break
end
end
return Idx
end --IdxFromTabTrans
return p
5bezyl0ai26muravmfr60ltfn60yvkk
309769
309768
2026-09-26T17:57:48Z
Isma4l
41797
309769
Scribunto
text/plain
require('strict')
local p = {}
local TNT = require('Module:TNT')
function p.TNTTabFull (TNTTab)
if (string.sub(TNTTab, 1, 5)) ~= 'I18n/' then
TNTTab = 'I18n/'..TNTTab
end
if (string.sub(TNTTab, -4)) ~= '.tab' then
TNTTab = TNTTab..'.tab'
end
return TNTTab
end --TNTTabFull
function p.TNTTabCommons (TNTTab)
return 'Commons:Data:'..p.TNTTabFull(TNTTab)
end
function p.LnkTNTTab (TNTTab)
return '[['..p.TNTTabCommons(TNTTab)..']]'
end
local function I18nStr (TNTTab, S, IsMsg, params)
TNTTab = p.TNTTabFull (TNTTab)
local SEnd = TNT.format(TNTTab, S, unpack(params)) or ''
if SEnd == '' then
SEnd = TNT.formatInLanguage('so',TNTTab, S, unpack(params))
if IsMsg then
local icon = '[[File:Arbcom ru editing.svg|12px|Lama helin "'..S..'" luqadda hadda jirta. Halkan guji si aad u tafatirto.|link='..p.TNTTabCommons(TNTTab)..']]'
SEnd = SEnd..icon
end
end
return SEnd
end --I18nStr
function p.GetMsgP (TNTTab, S, ...)
return I18nStr (TNTTab, S, true, {...})
end
function p.GetStrP (TNTTab, S, ...)
return I18nStr (TNTTab, S, false, {...})
end
function p.TabTransCS (TNTTab, S, CaseSensitive)
CaseSensitive = ((CaseSensitive ~= nil) and (CaseSensitive == true)) or true
local Wds = TNT.format (p.TNTTabFull(TNTTab), S)
if not CaseSensitive then
Wds = string.lower (Wds)
end
return mw.text.split (Wds, '|')
end --TabTransCS
function p.TabTransMT (TNTTab, S, MaxTrans)
local FN = p.TNTTabFull(TNTTab)
local tab = mw.text.split (TNT.format (FN, S), '|')
if #tab > MaxTrans then
error (string.format('Waxaa la helay %s tarjumaad oo loogu talagalay "%s". Ka raadi [[:commons:data:%s]]',#tab,S,FN))
-- Tarjumaad looma baahna
end
return tab
end --TabTransMT
function p.SFoundInTNTArr (TNTTab, val, CaseSensitive, S)
if (S == nil) or (S == '') then
error('Doodo lama siin iyadoo la isku dayayo in la helo "'..val..'"') --Uma baahna tarjumaad, kaliya khalad-saaris
end
local Arr = p.TabTransCS (TNTTab, S, CaseSensitive)
if not CaseSensitive then
val = string.lower (val)
end
for I, W in ipairs(Arr) do
if W == val then
return true
end
end
return false
end --SFoundInTNTArr
function p.IdxFromTabTrans (TNTTab, val, CaseSensitive, ...)
local Arr = unpack(arg)
if Arr == nil then
error('Doodo lama siin iyadoo la isku dayayo in la helo "'..val..'"') --Uma baahna tarjumaad, kaliya khalad-saaris
end
local Idx = 0
for I, W in ipairs(Arr) do
if p.SFoundInTNTArr (TNTTab, val, CaseSensitive, W) then
Idx = I
break
end
end
return Idx
end --IdxFromTabTrans
return p
4s1r8npazzte2afx52h53a6ee39t9ow
Template:BrewerColors
10
53344
309770
2026-09-26T17:58:37Z
Isma4l
41797
Bog cusub: <includeonly>{{safesubst:#invoke:BrewerColors|ShowColors}}</includeonly><noinclude> {{documentation}} </noinclude>
309770
wikitext
text/x-wiki
<includeonly>{{safesubst:#invoke:BrewerColors|ShowColors}}</includeonly><noinclude>
{{documentation}}
</noinclude>
jwlvkyekkcc1raapzv9kstbcqs3volr
Template:Choropleth map
10
53345
309771
2026-09-26T17:59:08Z
Isma4l
41797
Bog cusub: <includeonly>{{#invoke:ChoroplethMap|main | entities = {{{countries|{{{states|{{{provinces|}}}}}}}}} }}</includeonly><noinclude>{{Documentation}}</noinclude>
309771
wikitext
text/x-wiki
<includeonly>{{#invoke:ChoroplethMap|main
| entities = {{{countries|{{{states|{{{provinces|}}}}}}}}}
}}</includeonly><noinclude>{{Documentation}}</noinclude>
traxz1afooidpnm17gf0nlqxwlpcvb9
Module:ChoroplethMap
828
53346
309772
2026-09-26T17:59:46Z
Isma4l
41797
Bog cusub: -- Module:ChoroplethMap generates colored maps of countries and other entities -- Documentation and master version: https://en.wikipedia.org/wiki/Module:ChoroplethMap -- License: GPL-3.0 (https://www.gnu.org/licenses/gpl-3.0.html) -- Author: User:Sophivorus (https://meta.wikimedia.org/wiki/User:Sophivorus) local ChoroplethMap = {} local lang = mw.getContentLanguage() -- Helper function to get an argument -- Arguments from Lua calls have priority over parent arguments from temp...
309772
Scribunto
text/plain
-- Module:ChoroplethMap generates colored maps of countries and other entities
-- Documentation and master version: https://en.wikipedia.org/wiki/Module:ChoroplethMap
-- License: GPL-3.0 (https://www.gnu.org/licenses/gpl-3.0.html)
-- Author: User:Sophivorus (https://meta.wikimedia.org/wiki/User:Sophivorus)
local ChoroplethMap = {}
local lang = mw.getContentLanguage()
-- Helper function to get an argument
-- Arguments from Lua calls have priority over parent arguments from templates
local function getArg( key, default )
local frame = mw.getCurrentFrame()
local parent = frame:getParent()
for k, value in pairs( parent.args ) do
if k == key and mw.text.trim( value ) ~= '' then
return value
end
end
for k, value in pairs( frame.args ) do
if k == key and mw.text.trim( value ) ~= '' then
return value
end
end
return default
end
-- Get geographical data from Commons
-- and make an index to optimize search
local source = getArg( 'source', 'ChoroplethMap (without Crimea).map' )
local sourceFeatures = mw.ext.data.get( source ).data.features
local sourceIndex = {}
for i = 0, #sourceFeatures do -- don't use ipairs because it starts at 1
local feature = sourceFeatures[ i ]
if feature.properties.wikidata then
sourceIndex[ feature.properties.wikidata ] = i
end
if feature.properties.iso_a2 then
sourceIndex[ feature.properties.iso_a2 ] = i
end
if feature.properties.name then
sourceIndex[ feature.properties.name ] = i
end
end
-- Helper function to get the Wikidata id of an entity
local function getID( entity )
if not entity then
return
end
entity = mw.text.trim( entity )
if entity == '' then
return
end
if string.match( entity, '^Q%d+$' ) then
return entity
end
local index = sourceIndex[ entity ]
if index then
local feature = sourceFeatures[ index ]
return feature.properties.wikidata
end
return mw.wikibase.getEntityIdForTitle( entity )
end
function ChoroplethMap.main( frame )
-- Get the arguments
local entities = getArg( 'entities' )
local color = getArg( 'color', '#f00' )
local view = getArg( 'view', 'Q2' ) -- Q2 is the Wikidata item for the Earth
local latitude = getArg( 'latitude' )
local longitude = getArg( 'longitude' )
local zoom = getArg( 'zoom' )
local width = getArg( 'width', '250' )
local height = getArg( 'height', '200' )
local align = getArg( 'align' )
local frameless = getArg( 'frameless' )
local mapstyle = getArg( 'mapstyle' )
local alt = getArg( 'alt' )
local caption = getArg( 'caption' )
local legends = getArg( 'legends' )
local logarithmicScale = getArg( 'logarithmic-scale' )
local minOpacity = getArg( 'min-opacity', '0' )
-- Parse the entities into a clean data table
local data = {}
if entities then
-- If any color directive is an absolute value
-- we need to figure out what the top value is
-- before we can color any of them
local topValue
for entity in mw.text.gsplit( entities, '[;\n]' ) do
entity = mw.text.trim( entity )
local value = entity:match( '^([0-9.,]-) *: *.+$' )
if value then
value = lang:parseFormattedNumber( value )
if not topValue or value > topValue then
topValue = value
end
end
end
local opacity = .7
local value
local min = lang:parseFormattedNumber( minOpacity )
for entity in mw.text.gsplit( entities, '[;\n]' ) do
entity = mw.text.trim( entity )
if entity ~= '' then
local colorPart, entityPart = entity:match( '^([#0-9A-Za-z .,%%]-) *: *(.+)$' )
if colorPart and entityPart then
if colorPart:match( '^([0-9.,]+) ?%%$' ) then
value = colorPart
local plainValue = lang:parseFormattedNumber( mw.text.trim( value, '%%' ) )
if logarithmicScale then
opacity = min + ( math.log( math.max( plainValue, 1 ) ) / math.log( 100 ) ) * ( 1 - min )
else
opacity = min + ( plainValue / 100 ) * ( 1 - min )
end
elseif colorPart:match( '^[0-9.,]+$' ) then
value = colorPart
local plainValue = lang:parseFormattedNumber( value )
if logarithmicScale then
opacity = min + ( math.log( math.max( plainValue, 1 ) ) / math.log( topValue ) ) * ( 1 - min )
else
opacity = min + ( plainValue / topValue ) * ( 1 - min )
end
else
color = colorPart
value = nil
opacity = .7
end
entity = entityPart
end
local id = getID( entity )
if id then
local title = mw.wikibase.getSitelink( id )
local label = mw.wikibase.getLabel( id )
table.insert( data, { id = id, title = title, label = label, value = value, color = color, opacity = opacity } )
end
end
end
end
-- Make the features
local features = {}
local done = {}
-- Make the view feature
if view ~= 'auto' then
local viewID = getID( view )
local viewIndex = sourceIndex[ viewID ]
local viewFeature
if viewIndex then
viewFeature = sourceFeatures[ viewIndex ]
viewFeature.properties[ 'fill-opacity' ] = 0
viewFeature.properties[ 'stroke-opacity' ] = 0
else
viewFeature = {
[ 'type' ] = 'ExternalData',
[ 'service' ] = 'geoshape',
[ 'ids' ] = viewID,
[ 'properties' ] = {
[ 'fill-opacity' ] = 0,
[ 'stroke-opacity' ] = 0
}
}
end
table.insert( features, viewFeature )
done[ viewID ] = true
end
-- Make the entity features
for _, entity in ipairs( data ) do
if not done[ entity.id ] then
local entityFeature
local entityWikitext = '[[' .. entity.title .. '|' .. entity.label .. ']]' .. ( entity.value and ( '<br>' .. entity.value ) or '' )
local entityIndex = sourceIndex[ entity.id ]
if entityIndex then
entityFeature = sourceFeatures[ entityIndex ]
entityFeature.properties[ 'title' ] = entityWikitext
entityFeature.properties[ 'fill' ] = entity.color
entityFeature.properties[ 'fill-opacity' ] = entity.opacity
entityFeature.properties[ 'stroke-width' ] = 0.1
else
entityFeature = {
[ 'type' ] = 'ExternalData',
[ 'service' ] = 'geoshape',
[ 'ids' ] = entity.id,
[ 'properties' ] = {
[ 'title' ] = entityWikitext,
[ 'fill' ] = entity.color,
[ 'fill-opacity' ] = entity.opacity,
[ 'stroke-width' ] = 0.1
}
}
end
table.insert( features, entityFeature )
done[ entity.id ] = true
end
end
local json = mw.text.jsonEncode( features )
-- Build the automatic legends
if legends then
-- First look for repeated colors
local legendsData = {}
for _, entity in ipairs( data ) do
local repeated
for _, legendData in ipairs( legendsData ) do
if legendData.color == entity.color and legendData.opacity == entity.opacity then
repeated = legendData
break
end
end
if repeated then
repeated.wikitext = repeated.wikitext .. ', [[' .. entity.title .. '|' .. entity.label .. ']]'
else
local legendData = {
[ 'wikitext' ] = '[[' .. entity.title .. '|' .. entity.label .. ']]',
[ 'value' ] = entity.value,
[ 'color' ] = entity.color,
[ 'opacity' ] = entity.opacity
}
table.insert( legendsData, legendData )
end
end
legends = mw.html.create( 'div' )
legends:css( 'column-width', '250px' )
for _, legendData in ipairs( legendsData ) do
local colorBox = mw.html.create( 'span' )
colorBox:css( 'background', legendData.color )
colorBox:css( 'display', 'inline-block' )
colorBox:css( 'margin-right', '.5em' )
colorBox:css( 'opacity', legendData.opacity )
colorBox:css( 'vertical-align', 'middle' )
colorBox:css( 'width', '1em' )
colorBox:css( 'height', '1em' )
local wikitext = legendData.wikitext
if legendData.value then
local message = '$1: $2'
if lang:getCode() == 'fr' then
message = '$1 : $2'
end
wikitext = mw.message.newRawMessage( message, legendData.value, wikitext ):plain()
end
local legend = mw.html.create( 'div' )
legend:node( colorBox )
legend:wikitext( wikitext )
legends:node( legend )
end
legends = tostring( legends )
if caption then
caption = caption .. legends
else
caption = legends
end
end
local attributes = {
[ 'latitude' ] = latitude,
[ 'longitude' ] = longitude,
[ 'zoom' ] = zoom,
[ 'width' ] = width,
[ 'height' ] = height,
[ 'align' ] = align,
[ 'text' ] = caption,
[ 'alt' ] = alt,
[ 'frameless' ] = frameless,
[ 'mapstyle' ] = mapstyle
}
return frame:extensionTag( 'mapframe', json, attributes )
end
return ChoroplethMap
ohmuf97lvz7b53vfzi91zcv5ckispf8
Uğurcan Çakır
0
53347
309773
2026-09-26T20:33:19Z
Dalsoore
5358
Uğurcan Çakır
309773
wikitext
text/x-wiki
{{short description|Turkish footballer (born 1996)}}{{Use dmy dates|date=June 2024}}{{Infobox football biography|name=Uğurcan Çakır|image=Uğurcan Çakır - beIN-Sports-Reklam (2021) (cropped).png|upright=|caption=Çakır with [[Trabzonspor]] in 2021|full_name=|birth_date={{birth date and age|df=yes|1996|04|05}}|birth_place=[[Antalya]], Turkey|height=1.91 m<ref>{{cite web |url=https://www.uefa.com/euro2024/teams/players/250078452--ugurcan-cakir/ |title=Uğurcan Çakır |publisher=[[UEFA]] |access-date=8 June 2024 }}</ref>|position=[[Goalkeeper (association football)|Goalkeeper]]|currentclub=[[Galatasaray S.K. (football)|Galatasaray]]|clubnumber=1|youthyears1=2008–2009|youthclubs1=Çekmeköyspor|youthyears2=2009–2011|youthclubs2=Yamanspor|youthyears3=2011–2012|youthclubs3=[[1461 Trabzon]]|youthyears4=2012–2014|youthclubs4=[[Trabzonspor]]|years1=2014–2025|clubs1=[[Trabzonspor]]|caps1=235|goals1=0|years2=2016|clubs2=→ [[1461 Trabzon]] (loan)|caps2=8|goals2=0|years3=2025–|clubs3=[[Galatasaray S.K. (football)|Galatasaray]]|caps3=25|goals3=0|nationalyears1=2013–2014|nationalteam1=[[Turkey national under-19 football team|Turkey U19]]|nationalcaps1=3|nationalgoals1=0|nationalyears2=2014|nationalteam2=[[Turkey national under-20 football team|Turkey U20]]|nationalcaps2=2|nationalgoals2=0|nationalyears3=2017|nationalteam3=[[Turkey national under-21 football team|Turkey U21]]|nationalcaps3=4|nationalgoals3=0|nationalyears4=2019–|nationalteam4=[[Turkey national football team|Turkey]]|nationalcaps4=42|nationalgoals4=0|club-update=9 May 2026|nationalteam-update=25 June 2026}}
'''Uğurcan Çakır''' (Dhashay 5 April 1996) Waa ciyaaryahan banooni oo u dhashay wadanka [[Turkiga]]. wuxuuna hadda gool haye uga ciyaaraa kooxda [[Galatasaray SK|Galatasaray]] ee ka dhisan dalka [[Istanbuul|Istanbul]] iyo xulka qaranka dalka Turkiga.
lgxa7qehp77aw40sd2ea8ghn5du4i6z