local p = {}

-----------------------------------------------------------------------
-- СЛОВАРЬ РЕЗУЛЬТАТОВ (Замена шаблону РВ/П)
-----------------------------------------------------------------------
local RESULT_TEXT = {
    ["ч"] = "'''ЧЕМПИОН.'''",
    ["ф"] = "'''ФИНАЛ.'''",
    ["б"] = "'''Бронза.'''",
    ["д"] = "'''Дерево.'''",
    ["чф"] = "'''1/4 финала.'''",
    ["в"] = "'''1/8 финала.'''",
    ["2г"] = "2-е место в группе.",
    ["3г"] = "3-е место в группе.",
    ["4г"] = "4-е место в группе.",
    ["5г"] = "5-е место в группе.",
    ["6г"] = "6-е место в группе.",
    ["фпм"] = "'''ФИНАЛ''' ''(переходные матчи ещё не состоялись).''",
    ["фпмв"] = "'''ФИНАЛ''' ''(победа в переходных матчах).''",
    ["фпмп"] = "ФИНАЛ ''(поражение в переходных матчах).''",
    ["бпм"] = "'''Бронза''' ''(переходные матчи ещё не состоялись).''",
    ["бпмв"] = "'''Бронза''' ''(победа в переходных матчах).''",
    ["бпмп"] = "Бронза ''(поражение в переходных матчах).''",
    ["дпм"] = "'''Дерево''' ''(переходные матчи ещё не состоялись).''",
    ["дпмв"] = "'''Дерево''' ''(победа в переходных матчах).''",
    ["дпмп"] = "Дерево ''(поражение в переходных матчах).''",
    ["чфпм"] = "'''1/4 финала''' ''(переходные матчи ещё не состоялись).''",
    ["чфпмв"] = "'''1/4 финала''' ''(победа в переходных матчах).''",
    ["чфпмп"] = "1/4 финала ''(поражение в переходных матчах).''",
    ["пм"] = "'''переходные матчи''' ''(ещё не состоялись)''.",
    ["пмв"] = "'''переходные матчи''' ''(победа).''",
    ["пмп"] = "переходные матчи ''(поражение).''",
    ["5"] = "5-е место.",
    ["6"] = "6-е место.",
    ["7"] = "7-е место.",
    ["8"] = "8-е место.",
    ["ос"] = "''отборочный турнир (стыковые матчи).''",
    ["о3"] = "''отборочный турнир (3-й раунд).''",
    ["о2"] = "''отборочный турнир (2-й раунд).''",
    ["о1"] = "''отборочный турнир (1-й раунд).''",
    ["оп"] = "''отборочный турнир (предварительный раунд).''",
    ["о"] = "''отборочный турнир.''",
    ["по"] = "'''участники плей-офф''' (матч ещё не состоялся).",
    ["уч"] = "'''участники 1/4 финала''' (матч ещё не состоялся).",
    ["пол"] = "'''участники полуфинала''' (матч ещё не состоялся).",
    ["у"] = "участники финального турнира (матчи ещё не состоялись).",
    -- Если нужны коды Дивизионов для будущего, можно добавить их сюда
}

local NOT_PARTICIPATED = "''<span style=\"color:grey\">не принимали участия.</span>''"

-----------------------------------------------------------------------
-- БАЗА ДАННЫХ ЧТМ
-----------------------------------------------------------------------
local db = {}

db["2006"] = {
    ["АСА"]="чф",
    ["АНТ"]="в",
    ["АФГ"]="3г",
    ["БАН"]="3г",
    ["БЕН"]="3г",
    ["БУТ"]="в",
    ["ВОС"]="3г",
    ["ГВА"]="4г",
    ["ГУА"]="в",
    ["ДЖИ"]="3г", 
    ["ДРЕ"]="4г",
    ["КАЙ"]="чф",
    ["КИР"]="в",
    ["МАЛ"]="3г",
    ["МАР"]="4г",
    ["МОЗ"]="4г",
    ["МОН"]="ч",
    ["МНТ"]="4г",
    ["МЬЯ"]="б",
    ["НИГ"]="в", 
    ["ПАП"]="3г",
    ["САМ"]="4г",
    ["САН"]="ф",
    ["СОЛ"]="чф",
    ["СУР"]="3г",
    ["ТАД"]="в",
    ["ТАИ"]="4г",
    ["ТЕР"]="б",
    ["ТУР"]="чф",
    ["ФИД"]="4г", 
    ["ЦАР"]="в",
    ["ШРИ"]="в"
}

db["2010"] = {
    ["АСА"]="в",
    ["АНТ"]="о",
    ["АФГ"]="ч",
    ["БАН"]="о",
    ["БАР"]="о",
    ["БЕЛ"]="о",
    ["БЕН"]="3г",
    ["БРУ"]="о",
    ["БУТ"]="о",
    ["ВАТ"]="4г", 
    ["ВОС"]="о",
    ["ГАЙ"]="о",
    ["ГВА"]="чф",
    ["ГВИ"]="о",
    ["ГИБ"]="о",
    ["ГРЕ"]="о",
    ["ГУА"]="4г",
    ["ДЖИ"]="о",
    ["ДОМ"]="в",
    ["ДРЕ"]="о", 
    ["КАЙ"]="о",
    ["КИР"]="ос",
    ["КРБ"]="о",
    ["КЮР"]="о",
    ["ЛАО"]="о",
    ["МАЛ"]="в",
    ["МАР"]="о",
    ["МОЗ"]="в",
    ["МОН"]="в",
    ["МНТ"]="в", 
    ["МЬЯ"]="б",
    ["НИГ"]="в",
    ["НИК"]="чф",
    ["НОВ"]="о",
    ["ОСТ"]="чф",
    ["ПАК"]="ос",
    ["САМ"]="о",
    ["САН"]="о",
    ["СВА"]="о",
    ["СЕЙ"]="ос", 
    ["СЕН"]="о",
    ["СОЛ"]="чф",
    ["СОМ"]="ос",
    ["СУР"]="4г",
    ["ТАД"]="ф",
    ["ТАИ"]="4г",
    ["ТЕР"]="в",
    ["ТУР"]="4г",
    ["ФИД"]="4г",
    ["ЦАР"]="о", 
    ["ЧАД"]="д",
    ["ШРИ"]="о",
    ["ЭРИ"]="3г",
    ["АОМ"]="о",
    ["АРУ"]="о",
    ["БАГ"]="о",
    ["ГАМ"]="о",
    ["ГРЛ"]="оп",
    ["ЗАС"]="оп",
    ["КОМ"]="о", 
    ["ЛЕС"]="о",
    ["МАВ"]="о",
    ["МИК"]="о",
    ["МРТ"]="о",
    ["НАУ"]="о",
    ["НЕП"]="о",
    ["ОКУ"]="о",
    ["ПАЛ"]="о",
    ["ПУЭ"]="о",
    ["РЕЮ"]="оп", 
    ["ТОН"]="о",
    ["ТУВ"]="о",
    ["ЭКВ"]="о"
}

db["2014"] = {
    ["АСА"]="4г",
    ["АНТ"]="в",
    ["АФГ"]="в",
    ["БАН"]="о",
    ["БАР"]="в",
    ["БЕЛ"]="о",
    ["БЕН"]="3г",
    ["БРУ"]="о",
    ["БУТ"]="о",
    ["ВАТ"]="о", 
    ["ВОС"]="о",
    ["ГАЙ"]="3г",
    ["ГВА"]="чф",
    ["ГВИ"]="о",
    ["ГИБ"]="б",
    ["ГРЕ"]="о",
    ["ГУА"]="о",
    ["ДЖИ"]="оп",
    ["ДОМ"]="ч",
    ["ДРЕ"]="4г", 
    ["КАЙ"]="о",
    ["КИР"]="чф",
    ["КРБ"]="о",
    ["КЮР"]="4г",
    ["ЛАО"]="о",
    ["МАЛ"]="3г",
    ["МАР"]="оп",
    ["МОЗ"]="в",
    ["МОН"]="чф",
    ["МНТ"]="о", 
    ["МЬЯ"]="в",
    ["НИГ"]="3г",
    ["НИК"]="4г",
    ["НОВ"]="оп",
    ["ОСТ"]="д",
    ["ПАК"]="4г",
    ["ПАП"]="оп",
    ["САМ"]="в",
    ["САН"]="3г",
    ["СВА"]="о", 
    ["СЕЙ"]="о",
    ["СЕН"]="о",
    ["СОЛ"]="в",
    ["СОМ"]="в",
    ["СУР"]="4г",
    ["ТАД"]="4г",
    ["ТАИ"]="о",
    ["ТЕР"]="чф",
    ["ТУР"]="3г",
    ["ФИД"]="о", 
    ["ЦАР"]="3г",
    ["ЧАД"]="ф",
    ["ШРИ"]="4г",
    ["ЭРИ"]="3г",
    ["АОМ"]="оп",
    ["АРУ"]="о",
    ["БАГ"]="о",
    ["БЕР"]="о",
    ["ГАМ"]="о",
    ["ГРЛ"]="оп", 
    ["ЗАС"]="о",
    ["КОМ"]="о",
    ["ЛЕС"]="о",
    ["МАВ"]="о",
    ["МРТ"]="о",
    ["МИК"]="оп",
    ["НАУ"]="о",
    ["НЕП"]="о",
    ["НИУ"]="оп",
    ["НОР"]="оп", 
    ["ОКУ"]="оп",
    ["ПАЛ"]="оп",
    ["ПУЭ"]="о",
    ["РЕЮ"]="оп",
    ["ТОН"]="оп",
    ["ТУВ"]="оп",
    ["ФИЛ"]="о",
    ["ФРА"]="оп",
    ["ЭКВ"]="о"
}

db["2018"] = {
    ["АСА"]="о",
    ["АНТ"]="в",
    ["АФГ"]="в",
    ["БАН"]="о",
    ["БАР"]="ос",
    ["БЕЛ"]="о",
    ["БЕН"]="ос",
    ["БРУ"]="4г",
    ["БУТ"]="в",
    ["ВАТ"]="о", 
    ["ВОС"]="оп",
    ["ГАЙ"]="в",
    ["ГВА"]="в",
    ["ГВИ"]="4г",
    ["ГИБ"]="ос",
    ["ГРЕ"]="ос",
    ["ГУА"]="4г",
    ["ДЖИ"]="ос",
    ["ДОМ"]="ф",
    ["ДРЕ"]="3г", 
    ["ИНД"]="оп",
    ["КАЙ"]="4г",
    ["КАМ"]="о",
    ["КИР"]="д",
    ["КРБ"]="о",
    ["КЮР"]="ос",
    ["ЛАО"]="о",
    ["МАЛ"]="3г",
    ["МАР"]="оп",
    ["МОЗ"]="в", 
    ["МОН"]="ч",
    ["МНТ"]="3г",
    ["МЬЯ"]="ос",
    ["НИГ"]="чф",
    ["НИК"]="4г",
    ["НОВ"]="оп",
    ["ОСТ"]="чф",
    ["ПАК"]="в",
    ["ПАП"]="оп",
    ["САМ"]="3г", 
    ["САН"]="3г",
    ["СВА"]="4г",
    ["СЕЙ"]="4г",
    ["СЕН"]="ос",
    ["СОЛ"]="чф",
    ["СОМ"]="в",
    ["СУР"]="о",
    ["ТАД"]="3г",
    ["ТАИ"]="3г",
    ["ТАН"]="4г", 
    ["ТЕР"]="б",
    ["ТУР"]="о",
    ["ФИД"]="о",
    ["ЦАР"]="ос",
    ["ЧАД"]="3г",
    ["ШРИ"]="о",
    ["ЭРИ"]="чф",
    ["АВИ"]="оп",
    ["АОМ"]="ос",
    ["АРУ"]="о", 
    ["БАГ"]="ос",
    ["БЕР"]="о",
    ["БОТ"]="о",
    ["ГАМ"]="о",
    ["ГВБ"]="о",
    ["ГОН"]="оп",
    ["ГРЛ"]="ос",
    ["ЗАС"]="ос",
    ["КИТ"]="о",
    ["КОМ"]="ос", 
    ["ЛЕС"]="о",
    ["ЛИВ"]="о",
    ["МАВ"]="о",
    ["МАД"]="о",
    ["МРТ"]="о",
    ["МЕЛ"]="оп",
    ["МИД"]="оп",
    ["МИК"]="оп",
    ["НАУ"]="о",
    ["НЕП"]="о", 
    ["НИУ"]="о",
    ["НОР"]="оп",
    ["ОКУ"]="оп",
    ["ПАЛ"]="оп",
    ["ПУЭ"]="о",
    ["РЕЮ"]="оп",
    ["СЕУ"]="оп",
    ["СИН"]="о",
    ["СПМ"]="о",
    ["ТОК"]="оп", 
    ["ТОН"]="оп",
    ["ТУВ"]="оп",
    ["УОЛ"]="оп",
    ["ФИЛ"]="о",
    ["ФРА"]="оп",
    ["ШПИ"]="о",
    ["ЭКВ"]="о"
}

db["2022"] = {
    ["АЛЯ"]="о",
    ["АСА"]="в",
    ["АНТ"]="4г",
    ["АФГ"]="в",
    ["БАН"]="3г",
    ["БАР"]="4г",
    ["БЕЛ"]="о",
    ["БЕН"]="ос",
    ["БРУ"]="3г",
    ["БУТ"]="о", 
    ["ВАТ"]="о",
    ["ВОС"]="о",
    ["ГАВ"]="о",
    ["ГАЙ"]="чф",
    ["ГВА"]="3г",
    ["ГВИ"]="о",
    ["ГИБ"]="ф",
    ["ГРЕ"]="о",
    ["ГУА"]="4г",
    ["ДЖИ"]="о1", 
    ["ДОМ"]="в",
    ["ДРЕ"]="ос",
    ["ИНД"]="о",
    ["КАЙ"]="3г",
    ["КАМ"]="о",
    ["КИР"]="б",
    ["КРБ"]="4г",
    ["КЮР"]="о",
    ["ЛАО"]="о",
    ["МАЛ"]="4г", 
    ["МАР"]="о",
    ["МОЗ"]="3г",
    ["МОН"]="ч",
    ["МНТ"]="о",
    ["МЬЯ"]="д",
    ["НИГ"]="в",
    ["НИК"]="о",
    ["НОВ"]="о",
    ["ОСТ"]="в",
    ["ПАК"]="о", 
    ["ПАП"]="о",
    ["САМ"]="3г",
    ["САН"]="чф",
    ["СВА"]="о2",
    ["СЕЙ"]="о2",
    ["СЕН"]="о",
    ["СОЛ"]="в",
    ["СОМ"]="3г",
    ["СУР"]="4г",
    ["ТАД"]="чф", 
    ["ТАИ"]="о",
    ["ТАН"]="о1",
    ["ТЕР"]="чф",
    ["ТУР"]="о",
    ["ФИД"]="3г",
    ["ЦАР"]="4г",
    ["ЧАД"]="в",
    ["ШРИ"]="в",
    ["ЭРИ"]="4г",
    ["АВИ"]="о", 
    ["АНГ"]="о",
    ["АОМ"]="о",
    ["АРУ"]="о",
    ["БАГ"]="о",
    ["БЕР"]="о",
    ["БОТ"]="о1",
    ["БВИ"]="о",
    ["БУР"]="о1",
    ["ГАМ"]="о2",
    ["ГВБ"]="о2", 
    ["ГОН"]="о",
    ["ГРЛ"]="о",
    ["ЗАС"]="о1",
    ["КЕН"]="о1",
    ["КИТ"]="о",
    ["КОМ"]="о2",
    ["ЛЕС"]="о1",
    ["ЛИВ"]="о",
    ["МАВ"]="о1",
    ["МВР"]="о1", 
    ["МАД"]="о2",
    ["МРТ"]="о",
    ["МЕЛ"]="о1",
    ["МИД"]="оп",
    ["МИК"]="оп",
    ["НАУ"]="о",
    ["НЕП"]="о",
    ["НИУ"]="оп",
    ["НОР"]="оп",
    ["ОКУ"]="о", 
    ["ПАЛ"]="о",
    ["ПУЭ"]="о",
    ["РЕЮ"]="о1",
    ["СПМ"]="о",
    ["СВГ"]="о",
    ["СКН"]="о",
    ["СЕУ"]="о1",
    ["СИН"]="о",
    ["СТП"]="о1",
    ["ТОК"]="оп", 
    ["ТОН"]="о",
    ["ТУВ"]="о",
    ["УОЛ"]="о",
    ["ФИЛ"]="о",
    ["ФРА"]="оп",
    ["ШПИ"]="о",
    ["ЭКВ"]="о2",
    ["ЯНМ"]="о"
}

db["2026"] = {
    ["АЛЯ"]="о",
    ["АСА"]="в",
    ["АНТ"]="ос",
    ["АФГ"]="в",
    ["БАН"]="о",
    ["БАР"]="4г",
    ["БЕЛ"]="4г",
    ["БЕН"]="ос",
    ["БРУ"]="3г",
    ["БУТ"]="о", 
    ["ВАТ"]="о",
    ["ВОС"]="о",
    ["ГАВ"]="о",
    ["ГАЙ"]="чф",
    ["ГВА"]="3г",
    ["ГВИ"]="о",
    ["ГИБ"]="в",
    ["ГРЕ"]="4г",
    ["ГУА"]="о",
    ["ДЖИ"]="о1", 
    ["ДОМ"]="ч",
    ["ДРЕ"]="в",
    ["ИНД"]="ос",
    ["КАЙ"]="ос",
    ["КАМ"]="3г",
    ["КИР"]="б",
    ["КРБ"]="4г",
    ["КЮР"]="ос",
    ["ЛАО"]="4г",
    ["МАЛ"]="ос", 
    ["МАР"]="о",
    ["МОЗ"]="чф",
    ["МОН"]="в",
    ["МНТ"]="3г",
    ["МЬЯ"]="чф",
    ["НИГ"]="чф",
    ["НИК"]="ос",
    ["НОВ"]="о",
    ["ОСТ"]="4г",
    ["ПАК"]="о", 
    ["ПАП"]="о",
    ["САМ"]="о",
    ["САН"]="3г",
    ["СВА"]="о2",
    ["СЕЙ"]="о2",
    ["СЕН"]="3г",
    ["СОЛ"]="в",
    ["СОМ"]="3г",
    ["СУР"]="в",
    ["ТАД"]="о", 
    ["ТАИ"]="о",
    ["ТАН"]="о1",
    ["ТЕР"]="4г",
    ["ТУР"]="д",
    ["ФИД"]="ос",
    ["ЦАР"]="ф",
    ["ЧАД"]="3г",
    ["ШРИ"]="4г",
    ["ЭРИ"]="в",
    ["АВИ"]="о", 
    ["АНГ"]="о",
    ["АОМ"]="о",
    ["АРУ"]="о",
    ["БАГ"]="ос",
    ["БЕР"]="о",
    ["БОТ"]="о1",
    ["БВИ"]="о",
    ["БУР"]="о2",
    ["ГАМ"]="о2",
    ["ГВБ"]="о1", 
    ["ГОН"]="о",
    ["ГРЛ"]="о",
    ["ЗАН"]="о1",
    ["ЗАС"]="о1",
    ["ЙЕМ"]="о",
    ["КЕН"]="о1",
    ["КЕР"]="оп",
    ["КИТ"]="о",
    ["КОМ"]="о1",
    ["ЛЕС"]="о1", 
    ["ЛИВ"]="о",
    ["МАВ"]="о2",
    ["МВР"]="о1",
    ["МАД"]="о2",
    ["МЛЗ"]="о",
    ["МРТ"]="о",
    ["МЕЛ"]="о1",
    ["МИД"]="оп",
    ["МИК"]="оп",
    ["НАУ"]="о", 
    ["НЕП"]="о",
    ["НИУ"]="о",
    ["НОР"]="о",
    ["ОВО"]="о1",
    ["ОКУ"]="о",
    ["ПАЛ"]="о",
    ["ПЛС"]="о",
    ["ПУЭ"]="о",
    ["РЕЮ"]="о1",
    ["СПМ"]="о", 
    ["СВГ"]="о",
    ["СКН"]="о",
    ["СЕУ"]="о1",
    ["СИН"]="о",
    ["СТП"]="о1",
    ["ТАС"]="оп",
    ["ТОК"]="оп",
    ["ТОН"]="о",
    ["ТУВ"]="о",
    ["УОЛ"]="о", 
    ["ФИЛ"]="о",
    ["ФРА"]="оп",
    ["ХЁР"]="оп",
    ["ШПИ"]="о",
    ["ЭКВ"]="о2",
    ["ЭФИ"]="о1",
    ["ЯНМ"]="о"
}

db["2030"] = {
    ["АЛЯ"]="3г",
    ["АСА"]="4г",
    ["АНТ"]="о2",
    ["АФГ"]="4г",
    ["БАН"]="о2",
    ["БАР"]="о2",
    ["БЕЛ"]="о2",
    ["БЕН"]="ос",
    ["БРУ"]="о2",
    ["БУТ"]="о1", 
    ["ВАТ"]="о1",
    ["ВОС"]="о1",
    ["ГАВ"]="о1",
    ["ГАЙ"]="4г",
    ["ГВА"]="в",
    ["ГВИ"]="о2",
    ["ГИБ"]="4г",
    ["ГРЕ"]="о2",
    ["ГУА"]="4г",
    ["ДЖИ"]="о1", 
    ["ДОМ"]="в",
    ["ДРЕ"]="чф",
    ["ИНД"]="ф",
    ["КАЙ"]="д",
    ["КАМ"]="о2",
    ["КИР"]="чф",
    ["КРБ"]="ос",
    ["КЮР"]="о2",
    ["ЛАО"]="о2",
    ["МАЛ"]="о2", 
    ["МАР"]="о2",
    ["МОЗ"]="3г",
    ["МОН"]="б",
    ["МНТ"]="4г",
    ["МЬЯ"]="в",
    ["НИГ"]="3г",
    ["НИК"]="о2",
    ["НОВ"]="3г",
    ["ОСТ"]="в",
    ["ПАК"]="4г", 
    ["ПАП"]="о1",
    ["САМ"]="4г",
    ["САН"]="3г",
    ["СВА"]="о2",
    ["СЕЙ"]="о2",
    ["СЕН"]="ч",
    ["СОЛ"]="в",
    ["СОМ"]="3г",
    ["СУР"]="3г",
    ["ТАД"]="в", 
    ["ТАИ"]="о2",
    ["ТАН"]="о2",
    ["ТЕР"]="чф",
    ["ТУР"]="в",
    ["ФИД"]="о2",
    ["ЦАР"]="3г",
    ["ЧАД"]="чф",
    ["ШРИ"]="о2",
    ["ЭРИ"]="в",
    ["АВИ"]="о1", 
    ["АНГ"]="о1",
    ["АОМ"]="о1",
    ["АРУ"]="о1",
    ["АТО"]="о1",
    ["БАГ"]="о1",
    ["БЕР"]="о2",
    ["БОТ"]="о1",
    ["БВИ"]="о1",
    ["БУР"]="о1",
    ["ГАЛ"]="о1", 
    ["ГАМ"]="о2",
    ["ГВБ"]="о1",
    ["ГОН"]="о1",
    ["ГРЛ"]="о1",
    ["ЗАН"]="о1",
    ["ЗАС"]="о1",
    ["ЗФИ"]="о1",
    ["ЙЕМ"]="о1",
    ["КЕН"]="о1",
    ["КЕР"]="о1", 
    ["КРМ"]="о1",
    ["КИТ"]="о1",
    ["КОК"]="о1",
    ["КОМ"]="о2",
    ["ЛЕС"]="о1",
    ["ЛИВ"]="о1",
    ["МАВ"]="о1",
    ["МВР"]="о2",
    ["МАД"]="о2",
    ["МАЙ"]="о1", 
    ["МЛЗ"]="о1",
    ["МРН"]="о1",
    ["МРТ"]="о1",
    ["МЕЛ"]="о1",
    ["МИД"]="о1",
    ["МИК"]="о1",
    ["МНК"]="о1",
    ["НАУ"]="о2",
    ["НЕП"]="о1",
    ["НИУ"]="о2", 
    ["НЗЕ"]="о1",
    ["НОР"]="о1",
    ["ОГН"]="о1",
    ["ОВО"]="о1",
    ["ОЕВ"]="о1",
    ["ОАН"]="о1",
    ["ОКУ"]="о2",
    ["ПАЛ"]="о1",
    ["ПЛС"]="о1",
    ["ПОЛ"]="о1", 
    ["ПУЭ"]="о1",
    ["РЕЮ"]="о1",
    ["СПМ"]="о1",
    ["СВГ"]="о1",
    ["СКН"]="о1",
    ["СЕУ"]="о1",
    ["СИН"]="о2",
    ["СТП"]="о1",
    ["ТАС"]="о1",
    ["ТОК"]="о1", 
    ["ТОН"]="о2",
    ["ТРИ"]="о1",
    ["ТУВ"]="о1",
    ["УОЛ"]="о1",
    ["ФИЛ"]="о1",
    ["ФРА"]="о1",
    ["ХЁР"]="о1",
    ["ШПИ"]="о1",
    ["ЭКВ"]="о2",
    ["ЭФИ"]="ос", 
    ["ЮЖН"]="о1",
    ["ЯНМ"]="о1"
}

db["2034"] = {
    ["АЛЯ"]="в",
    ["АСА"]="4г",
    ["АНТ"]="ос",
    ["АФГ"]="4г",
    ["БАН"]="о3",
    ["БАР"]="о3",
    ["БЕЛ"]="ос",
    ["БЕН"]="в",
    ["БРУ"]="ос",
    ["БУТ"]="о1", 
    ["ВАТ"]="о3",
    ["ВОС"]="о1",
    ["ГАВ"]="о1",
    ["ГАЙ"]="в",
    ["ГВА"]="ч",
    ["ГВИ"]="о3",
    ["ГИБ"]="о3",
    ["ГРЕ"]="в",
    ["ГУА"]="в",
    ["ДЖИ"]="о2", 
    ["ДОМ"]="3г",
    ["ДРЕ"]="ос",
    ["ИНД"]="в",
    ["КАЙ"]="3г",
    ["КАМ"]="4г",
    ["КИР"]="чф",
    ["КРБ"]="о3",
    ["КЮР"]="о3",
    ["ЛАО"]="3г",
    ["МАЛ"]="о3", 
    ["МАР"]="о3",
    ["МОЗ"]="4г",
    ["МОН"]="д",
    ["МНТ"]="о3",
    ["МЬЯ"]="3г",
    ["НИГ"]="чф",
    ["НИК"]="ос",
    ["НОВ"]="о3",
    ["ОСТ"]="3г",
    ["ПАК"]="4г", 
    ["ПАП"]="о2",
    ["САМ"]="о3",
    ["САН"]="ф",
    ["СВА"]="о3",
    ["СЕЙ"]="3г",
    ["СЕН"]="3г",
    ["СОЛ"]="4г",
    ["СОМ"]="в",
    ["СУР"]="в",
    ["ТАД"]="3г", 
    ["ТАИ"]="ос",
    ["ТАН"]="о3",
    ["ТЕР"]="б",
    ["ТУР"]="чф",
    ["ФИД"]="о3",
    ["ЦАР"]="4г",
    ["ЧАД"]="4г",
    ["ШРИ"]="о3",
    ["ЭРИ"]="чф",
    ["АВИ"]="о1", 
    ["АНГ"]="о1",
    ["АОМ"]="о2",
    ["АРУ"]="о3",
    ["АТО"]="о1",
    ["БАГ"]="о3",
    ["БЕР"]="о3",
    ["БОТ"]="о3",
    ["БВИ"]="о1",
    ["БУР"]="о1",
    ["ГАЛ"]="о1", 
    ["ГАМ"]="о2",
    ["ГВБ"]="о1",
    ["ГОН"]="о2",
    ["ГРЛ"]="о1",
    ["ЗАН"]="о2",
    ["ЗАС"]="о1",
    ["ЗФИ"]="о2",
    ["ЙЕМ"]="о1",
    ["КАН"]="о1",
    ["КЕН"]="о1", 
    ["КЕР"]="о1",
    ["КРМ"]="о1",
    ["КИТ"]="о1",
    ["КОК"]="о1",
    ["КОМ"]="о3",
    ["ЛЕС"]="о2",
    ["ЛИВ"]="о1",
    ["МАВ"]="о1",
    ["МВР"]="о3",
    ["МАД"]="о3", 
    ["МАЙ"]="о1",
    ["МЛЗ"]="о1",
    ["МРН"]="о3",
    ["МРТ"]="о2",
    ["МЕЛ"]="о1",
    ["МИД"]="о1",
    ["МИК"]="о1",
    ["МНК"]="о1",
    ["НАУ"]="о3",
    ["НЕП"]="о2", 
    ["НИУ"]="о2",
    ["НЗЕ"]="о1",
    ["НОР"]="о1",
    ["ОГН"]="о1",
    ["ОВО"]="о1",
    ["ОЕВ"]="о1",
    ["ОАН"]="о1",
    ["ОКУ"]="о3",
    ["ПАЛ"]="о2",
    ["ПЛС"]="о1", 
    ["ПОЛ"]="о1",
    ["ПУЭ"]="о3",
    ["РЕЮ"]="о1",
    ["СПМ"]="о1",
    ["СКН"]="о1",
    ["СЕУ"]="о1",
    ["СИН"]="о2",
    ["СТП"]="о1",
    ["ТАС"]="о1",
    ["ТОК"]="о1", 
    ["ТОН"]="о3",
    ["ТРИ"]="о1",
    ["ТУА"]="о1",
    ["ТУВ"]="о1",
    ["УОЛ"]="о1",
    ["ФИЛ"]="о2",
    ["ФРА"]="о1",
    ["ХЁР"]="о1",
    ["ШПИ"]="о1",
    ["ЭКВ"]="о2", 
    ["ЭФИ"]="о3",
    ["ЮЖН"]="о1",
    ["ЯНМ"]="о1"
}

db["2038"] = {
    ["АЛЯ"]="4г",
    ["АСА"]="о3",
    ["АНТ"]="4г",
    ["АФГ"]="в",
    ["БАН"]="о3",
    ["БАР"]="о3",
    ["БЕЛ"]="о3",
    ["БЕН"]="о3",
    ["БРУ"]="о3",
    ["БУТ"]="о2", 
    ["ВАТ"]="о3",
    ["ВОС"]="о1",
    ["ГАВ"]="в",
    ["ГАЙ"]="3г",
    ["ГВА"]="в",
    ["ГВИ"]="о3",
    ["ГИБ"]="4г",
    ["ГРЕ"]="о3",
    ["ГУА"]="о3",
    ["ДЖИ"]="о1", 
    ["ДОМ"]="чф",
    ["ДРЕ"]="ос",
    ["ИНД"]="ф",
    ["КАЙ"]="3г",
    ["КАМ"]="о3",
    ["КИР"]="ч",
    ["КРБ"]="ос",
    ["КЮР"]="о2",
    ["ЛАО"]="о3",
    ["МАЛ"]="4г", 
    ["МАР"]="о3",
    ["МОЗ"]="4г",
    ["МОН"]="3г",
    ["МНТ"]="3г",
    ["МЬЯ"]="3г",
    ["НИГ"]="в",
    ["НИК"]="4г",
    ["НОВ"]="о3",
    ["ОСТ"]="в",
    ["ПАК"]="3г", 
    ["ПАП"]="о3",
    ["САМ"]="чф",
    ["САН"]="в",
    ["СВА"]="о3",
    ["СЕЙ"]="4г",
    ["СЕН"]="б",
    ["СОЛ"]="д",
    ["СОМ"]="4г",
    ["СУР"]="ос",
    ["ТАД"]="ос", 
    ["ТАИ"]="о3",
    ["ТАН"]="ос",
    ["ТЕР"]="чф",
    ["ТУР"]="в",
    ["ФИД"]="3г",
    ["ЦАР"]="чф",
    ["ЧАД"]="в",
    ["ШРИ"]="о3",
    ["ЭРИ"]="3г",
    ["АБХ"]="о1", 
    ["АВИ"]="о1",
    ["АОМ"]="о2",
    ["АРУ"]="о3",
    ["АТО"]="о1",
    ["БАГ"]="о3",
    ["БЕР"]="о3",
    ["БОН"]="о1",
    ["БОТ"]="о2",
    ["БВИ"]="о1",
    ["БУР"]="о3", 
    ["ГАЛ"]="о2",
    ["ГАМ"]="о2",
    ["ГВБ"]="о1",
    ["ГОН"]="о1",
    ["ГРЛ"]="о2",
    ["ЗАН"]="о1",
    ["ЗАС"]="о1",
    ["ЗАП"]="о1",
    ["ЗФИ"]="о1",
    ["ЙЕМ"]="о1", 
    ["КАН"]="о1",
    ["КАШ"]="о1",
    ["КЕН"]="о2",
    ["КЕР"]="о1",
    ["КРМ"]="о1",
    ["КИТ"]="о2",
    ["КОК"]="о2",
    ["КОМ"]="о3",
    ["ЛЕС"]="о1",
    ["ЛИВ"]="о2", 
    ["МАВ"]="о1",
    ["МВР"]="о3",
    ["МАД"]="о3",
    ["МАЙ"]="о1",
    ["МЛЗ"]="о1",
    ["МАО"]="о2",
    ["МРН"]="о3",
    ["МРТ"]="о1",
    ["МЕЛ"]="о1",
    ["МИД"]="о1", 
    ["МИК"]="о1",
    ["МНК"]="о2",
    ["НАУ"]="о3",
    ["НЕП"]="о1",
    ["НИУ"]="о2",
    ["НЗЕ"]="о2",
    ["НОР"]="о1",
    ["ОГН"]="о1",
    ["ОВО"]="о1",
    ["ОЕВ"]="о1", 
    ["ОПП"]="о1",
    ["ОАН"]="о1",
    ["ОКУ"]="о3",
    ["ПАЛ"]="о1",
    ["ПЛС"]="о1",
    ["ПОЛ"]="о1",
    ["ПУЭ"]="о3",
    ["РЕЮ"]="о2",
    ["САБ"]="о2",
    ["СЕВ"]="о1", 
    ["СПМ"]="о1",
    ["СВГ"]="о1",
    ["СКН"]="о1",
    ["СМА"]="о1",
    ["СЭС"]="о1",
    ["СЕУ"]="о1",
    ["СИН"]="о1",
    ["СТП"]="о1",
    ["ТАС"]="о2",
    ["ТОК"]="о2", 
    ["ТОН"]="о2",
    ["ТРИ"]="о1",
    ["ТУА"]="о1",
    ["ТУВ"]="о1",
    ["УОЛ"]="о1",
    ["ФИЛ"]="о2",
    ["ФРА"]="о1",
    ["ХЁР"]="о1",
    ["ШПИ"]="о1",
    ["ЭКВ"]="о3", 
    ["ЭФИ"]="о2",
    ["ЮЖН"]="о1",
    ["ЯНМ"]="о1"
}

db["2042"] = {
    ["АЛЯ"]="чф",
    ["АСА"]="в",
    ["АНТ"]="ос",
    ["АФГ"]="в",
    ["БАН"]="о3",
    ["БАР"]="о3",
    ["БЕЛ"]="о3",
    ["БЕН"]="ос",
    ["БРУ"]="ос",
    ["БУТ"]="о3", 
    ["ВАТ"]="о2",
    ["ВОС"]="о1",
    ["ГАВ"]="о3",
    ["ГАЙ"]="3г",
    ["ГВА"]="в",
    ["ГВИ"]="о3",
    ["ГИБ"]="о3",
    ["ГРЕ"]="о3",
    ["ГУА"]="3г",
    ["ДЖИ"]="о2", 
    ["ДОМ"]="д",
    ["ДРЕ"]="в",
    ["ИНД"]="ч",
    ["КАЙ"]="в",
    ["КАМ"]="4г",
    ["КИР"]="чф",
    ["КРБ"]="4г",
    ["КЮР"]="ос",
    ["ЛАО"]="о3",
    ["МАЛ"]="о3", 
    ["МАР"]="о3",
    ["МОЗ"]="чф",
    ["МОН"]="в",
    ["МНТ"]="4г",
    ["МЬЯ"]="4г",
    ["НИГ"]="3г",
    ["НИК"]="о3",
    ["НОВ"]="о3",
    ["ОСТ"]="в",
    ["ПАК"]="ос", 
    ["ПАП"]="о3",
    ["САМ"]="3г",
    ["САН"]="3г",
    ["СВА"]="в",
    ["СЕЙ"]="о3",
    ["СЕН"]="б",
    ["СОЛ"]="3г",
    ["СОМ"]="чф",
    ["СУР"]="4г",
    ["ТАД"]="ос", 
    ["ТАИ"]="4г",
    ["ТАН"]="о3",
    ["ТЕР"]="ф",
    ["ТУР"]="3г",
    ["ФИД"]="4г",
    ["ЦАР"]="3г",
    ["ЧАД"]="ос",
    ["ШРИ"]="о3",
    ["ЭРИ"]="4г",
    ["АНГ"]="о1", 
    ["АОМ"]="о2",
    ["АРУ"]="о2",
    ["БАГ"]="о3",
    ["БЕР"]="о3",
    ["БОТ"]="о3",
    ["БВИ"]="о1",
    ["БУР"]="о2",
    ["ГАЛ"]="о1",
    ["ГАМ"]="о3",
    ["ГВБ"]="о1", 
    ["ГОН"]="о1",
    ["ГРЛ"]="о3",
    ["ЗАН"]="о2",
    ["ЗАС"]="о2",
    ["ЗФИ"]="о1",
    ["КЕН"]="о1",
    ["КЕР"]="о1",
    ["КИТ"]="о3",
    ["КОК"]="о1",
    ["КОМ"]="о3", 
    ["ЛЕС"]="о2",
    ["ЛИВ"]="о2",
    ["МАВ"]="о3",
    ["МВР"]="о3",
    ["МАД"]="о3",
    ["МЛЗ"]="о1",
    ["МАО"]="о1",
    ["МРН"]="о2",
    ["МРТ"]="о1",
    ["МИК"]="о2", 
    ["МНК"]="о1",
    ["НАУ"]="о3",
    ["НЕП"]="о2",
    ["НИУ"]="о1",
    ["НЗЕ"]="о1",
    ["НОР"]="о2",
    ["ОГН"]="о1",
    ["ОВО"]="о2",
    ["ОПА"]="о2",
    ["ОАН"]="о1", 
    ["ОКУ"]="о2",
    ["ПАЛ"]="о2",
    ["ПЛС"]="о1",
    ["ПУЭ"]="о3",
    ["РЕЮ"]="о1",
    ["САБ"]="о1",
    ["СВГ"]="о1",
    ["СКН"]="о2",
    ["СИН"]="о2",
    ["ТАС"]="о3", 
    ["ТОК"]="о1",
    ["ТОН"]="о1",
    ["ТРИ"]="о1",
    ["ТУВ"]="о2",
    ["ФИЛ"]="о1",
    ["ФРА"]="о2",
    ["ХЁР"]="о1",
    ["ШПИ"]="о1",
    ["ЭКВ"]="о2",
    ["ЭФИ"]="о3"
}

db["2046"] = {
    ["СЕУ"]="о1",
    ["ГВБ"]="о1",
    ["БГН"]="о1",
    ["ЙЕМ"]="о1",
    ["МНК"]="о1",
    ["МЛЗ"]="о1",
    ["АВИ"]="о1",
    ["АТО"]="о1",
    ["ЛАП"]="о1",
    ["СТП"]="о1", 
    ["ЮЖН"]="о1",
    ["ЮТИ"]="о1",
    ["КЕН"]="о1",
    ["СПМ"]="о1",
    ["КАШ"]="о1",
    ["БВИ"]="о1",
    ["ОГН"]="о1",
    ["ГАЛ"]="о1",
    ["КОС"]="о1",
    ["МИД"]="о1", 
    ["КЕР"]="о1",
    ["МЕЛ"]="о1",
    ["ТУА"]="о1",
    ["МАО"]="о1",
    ["ОПА"]="о1",
    ["САБ"]="о1",
    ["МИК"]="о1",
    ["НЗЕ"]="о1",
    ["ОАН"]="о1",
    ["СЭС"]="о1", 
    ["КОК"]="о1",
    ["ПЛС"]="о1",
    ["ТРИ"]="о1",
    ["СМА"]="о1",
    ["РЕЮ"]="о1",
    ["ШПИ"]="о1",
    ["СИН"]="о1",
    ["ГОН"]="о1",
    ["АНГ"]="о1",
    ["ТУВ"]="о1", 
    ["МРН"]="о1",
    ["ФИЛ"]="о2",
    ["ДЖИ"]="о2",
    ["ЗАН"]="о2",
    ["ЛЕС"]="о2",
    ["ХЁР"]="о2",
    ["МВР"]="о2",
    ["ТОК"]="о2",
    ["ВОС"]="о2",
    ["ОВО"]="о2", 
    ["НОР"]="о2",
    ["ТОН"]="о2",
    ["ГВИ"]="о2",
    ["ФРА"]="о2",
    ["ЛИВ"]="о2",
    ["СКН"]="о2",
    ["НЕП"]="о2",
    ["ПУЭ"]="о2",
    ["БУР"]="о2",
    ["АРУ"]="о2", 
    ["ЭКВ"]="о2",
    ["ГРЛ"]="о2",
    ["КОМ"]="о2",
    ["МРТ"]="о2",
    ["ПАЛ"]="о2",
    ["МАВ"]="о2",
    ["БРУ"]="о3",
    ["БЕР"]="о3",
    ["ЛАО"]="о3",
    ["ЗАС"]="о3", 
    ["ВАТ"]="о3",
    ["КЮР"]="о3",
    ["НОВ"]="о3",
    ["БОТ"]="о3",
    ["КРБ"]="о3",
    ["НИУ"]="о3",
    ["ПАП"]="о3",
    ["МАР"]="о3",
    ["АНТ"]="о3",
    ["МАД"]="о3", 
    ["БАГ"]="о3",
    ["ГУА"]="о3",
    ["ТАС"]="о3",
    ["БЕЛ"]="о3",
    ["ДРЕ"]="о3",
    ["КИТ"]="о3",
    ["НИК"]="о3",
    ["ЭФИ"]="о3",
    ["ШРИ"]="о3",
    ["НАУ"]="о3", 
    ["СУР"]="о3",
    ["ОКУ"]="о3",
    ["ФИД"]="о3",
    ["ГАМ"]="о3",
    ["ТАН"]="о3",
    ["АОМ"]="о3",
    ["БАР"]="о3",
    ["БУТ"]="о3",
    ["КАЙ"]="ос",
    ["САМ"]="ос", 
    ["БАН"]="ос",
    ["СЕЙ"]="ос",
    ["ТАИ"]="ос",
    ["ИНД"]="3г",
    ["СВА"]="4г",
    ["ПАК"]="3г",
    ["МОН"]="4г",
    ["НИГ"]="3г",
    ["МНТ"]="4г",
    ["ГРЕ"]="3г",
    ["ДОМ"]="4г", 
    ["БЕН"]="3г",
    ["ТАД"]="4г",
    ["ЦАР"]="3г",
    ["МАЛ"]="4г",
    ["КАМ"]="3г",
    ["АФГ"]="4г",
    ["ГИБ"]="3г",
    ["АЛЯ"]="4г",
    ["ЭРИ"]="в", 
    ["СОМ"]="в",
    ["ГАЙ"]="в",
    ["ОСТ"]="в",
    ["МЬЯ"]="в",
    ["ТЕР"]="в",
    ["ГАВ"]="в",
    ["МОЗ"]="в",
    ["САН"]="чф",
    ["АСА"]="чф",
    ["ГВА"]="чф", 
    ["СОЛ"]="чф",
    ["ЧАД"]="б",
    ["СЕН"]="ф",
    ["КИР"]="ч",
    ["ТУР"]="д"
}

-- Массив с годами турниров по порядку
local YEARS = {"2006", "2010", "2014", "2018", "2022", "2026", "2030", "2034", "2038", "2042", "2046"}

-----------------------------------------------------------------------
-- ГЛАВНАЯ ФУНКЦИЯ ДЛЯ ГЕНЕРАЦИИ СПИСКА ЧТМ
-----------------------------------------------------------------------
function p.RenderList(frame)
    local team_code = frame.args[1] or frame:getParent().args[1]
    
    -- Если код команды не передан, прерываем
    if not team_code or team_code == "" then return "" end

    local lines = {}
    
    -- Перебираем все годы из массива
    for _, year in ipairs(YEARS) do
        -- Ищем короткий код ('ч', 'в', 'о') для этой команды в этом году
        local short_code = db[year][team_code]
        
        local text = ""
        
        -- Если код есть и он описан в словаре
        if short_code and RESULT_TEXT[short_code] then
            text = RESULT_TEXT[short_code]
        else
            -- Если кода нет (команда не участвовала)
            text = NOT_PARTICIPATED
        end
        
        -- Формируем строку: * [[ЧТМ-2006|2006]] — ТЕКСТ
        table.insert(lines, "* [[ЧТМ-" .. year .. "|" .. year .. "]] — " .. text)
    end

    -- Соединяем все строки переносом каретки и возвращаем готовый список
    return table.concat(lines, "\n")
end

-- Оставляем старые функции, чтобы случайно не сломать другие турниры, если они ссылаются сюда напрямую
function p.a (frame) return db["2006"][frame.args[1]] end
function p.b (frame) return db["2010"][frame.args[1]] end
function p.c (frame) return db["2014"][frame.args[1]] end
function p.d (frame) return db["2018"][frame.args[1]] end
function p.e (frame) return db["2022"][frame.args[1]] end
function p.f (frame) return db["2026"][frame.args[1]] end
function p.g (frame) return db["2030"][frame.args[1]] end
function p.h (frame) return db["2034"][frame.args[1]] end
function p.i (frame) return db["2038"][frame.args[1]] end
function p.j (frame) return db["2042"][frame.args[1]] end
function p.k (frame) return db["2046"][frame.args[1]] end

-----------------------------------------------------------------------
-- СЛОВАРЬ ФОРМАТИРОВАНИЯ ТАБЛИЦЫ (Замена шаблону РВ/П2)
-----------------------------------------------------------------------
local TABLE_CELL_FORMAT = {
    ["ч"] = "'''{{DC|gold|Ч}}'''",
    ["ф"] = "'''{{DC|silver|Ф}}'''",
    ["б"] = "'''{{DC|rgb(204,153,102)|Б}}'''",
    ["д"] = "'''{{DC|darkkhaki|Д}}'''",
    ["чф"] = "'''1/4'''",
    ["в"] = "'''1/8'''",
    ["2г"] = "'''2гр'''",
    ["3г"] = "'''3гр'''",
    ["4г"] = "'''4гр'''",
    ["5г"] = "'''5гр'''",
    ["6г"] = "'''6гр'''",
    ["бпм"] = "'''{{DC|rgb(204,153,102)|Б(?)}}'''",
    ["бпмв"] = "'''{{DC|rgb(204,153,102)|Б(+)}}'''",
    ["бпмп"] = "'''{{DC|rgb(204,153,102)|Б(-)}}'''",
    ["дпм"] = "'''{{DC|darkkhaki|Д(?)}}'''",
    ["дпмв"] = "'''{{DC|darkkhaki|Д(+)}}'''",
    ["дпмп"] = "'''{{DC|darkkhaki|Д(-)}}'''",
    ["чфпм"] = "'''1/4(?)'''",
    ["чфпмв"] = "'''1/4(+)'''",
    ["чфпмп"] = "'''1/4(-)'''",
    ["пм"] = "'''пм(?)'''",
    ["пмв"] = "'''ст(+)'''",
    ["пмп"] = "ст(-)",
    ["5"] = "5",
    ["6"] = "6",
    ["7"] = "7",
    ["8"] = "8",
    ["ос"] = "''о(ст)''",
    ["о3"] = "''о(3)''",
    ["о2"] = "''о(2)''",
    ["о1"] = "''о(1)''",
    ["оп"] = "''о(пр)''",
    ["о"] = "''о''",
    ["по"] = "'''по'''",
    ["уч"] = "'''1/4'''",
    ["пол"] = "'''1/2'''",
    ["у"] = "'''фт'''"
}

-- Коды, означающие попадание в финальный турнир
local FINAL_TOURNAMENT_CODES = {
    ["ч"] = true, ["ф"] = true, ["б"] = true, ["д"] = true, 
    ["чф"] = true, ["в"] = true, ["3г"] = true, ["4г"] = true,
    ["по"] = true, ["уч"] = true, ["пол"] = true, ["у"] = true
}

local PREPROCESSED_CACHE = {}

-----------------------------------------------------------------------
-- АБСОЛЮТНО НАГЛЫЙ ГЕНЕРАТОР ПОЛНОЙ ТАБЛИЦЫ ЧТМ
-----------------------------------------------------------------------
function p.RenderFullTable(frame)
    
    -- 1. СОБИРАЕМ ВСЕХ УЧАСТНИКОВ И ПРОВЕРЯЕМ СТАТУС (Финал / Отбор)
    local teams_status = {}
    
    for _, year in ipairs(YEARS) do
        if db[year] then
            for team_code, result_code in pairs(db[year]) do
                -- Если команду видим впервые, добавляем в список
                if not teams_status[team_code] then
                    teams_status[team_code] = { has_final = false }
                end
                
                -- Если результат команды есть в списке "элитных", ставим флажок
                if FINAL_TOURNAMENT_CODES[result_code] then
                    teams_status[team_code].has_final = true
                end
            end
        end
    end

    -- 2. ПЕРЕВОДИМ КОДЫ В НАЗВАНИЯ И РАЗБИВАЕМ НА ДВА МАССИВА
    local final_teams = {}
    local qual_teams = {}
    
    for team_code, info in pairs(teams_status) do
        local country_name = frame:expandTemplate{ title = '3', args = { team_code } }
        local team_data = { code = team_code, name = country_name }
        
        if info.has_final then
            table.insert(final_teams, team_data)
        else
            table.insert(qual_teams, team_data)
        end
    end
    
    -- Сортируем оба массива по строгому алфавиту полного названия
    table.sort(final_teams, function(a, b) return a.name < b.name end)
    table.sort(qual_teams, function(a, b) return a.name < b.name end)

    local lines = {}
    
    -- Количество колонок (Флаг + Имя + количество турниров)
    local cols_count = #YEARS + 2
    local tpl_name = "С" .. tostring(cols_count)
    local header_tpl = "З" .. tostring(cols_count)

    -- 3. ОТКРЫВАЕМ ТАБЛИЦУ
    table.insert(lines, frame:expandTemplate{ title = 'Т', args = { ["ПШТ"] = "да" } })

    -- 4. ГЕНЕРИРУЕМ ШАПКУ
    local header_args = { "Флаг", "Команда" }
    for _, year in ipairs(YEARS) do
        local short_year = "'" .. string.sub(year, 3, 4)
        table.insert(header_args, "[[ЧТМ-" .. year .. "|" .. short_year .. "]]")
    end
    table.insert(lines, frame:expandTemplate{ title = header_tpl, args = header_args })

    -- Вспомогательная функция для генерации строк команд
    local function generate_rows(team_list)
        for _, team_data in ipairs(team_list) do
            local row_args = {
                "[[Файл:" .. team_data.name .. ".jpg|40px]]",
                "[[" .. team_data.name .. "]]"
            }
            
            for _, year in ipairs(YEARS) do
                local short_code = db[year][team_data.code]
                local text = "—"
                
                if short_code then
                    if TABLE_CELL_FORMAT[short_code] then
                        if not PREPROCESSED_CACHE[short_code] then
                            local html = frame:preprocess(TABLE_CELL_FORMAT[short_code])
                            PREPROCESSED_CACHE[short_code] = string.gsub(html, "[\r\n]", "")
                        end
                        text = PREPROCESSED_CACHE[short_code]
                    else
                        text = short_code
                    end
                end
                table.insert(row_args, text)
            end
            table.insert(lines, frame:expandTemplate{ title = tpl_name, args = row_args })
        end
    end

    -- 5. БЛОК ФИНАЛИСТОВ
    table.insert(lines, '|-')
    table.insert(lines, '|colspan="' .. cols_count .. '" align="center"|\'\'\'Участвовали в финальных турнирах:\'\'\'')
    generate_rows(final_teams)

    -- 6. БЛОК ОТБОРОЧНЫХ
    table.insert(lines, '|-')
    table.insert(lines, '|colspan="' .. cols_count .. '" align="center"|\'\'\'Не участвовали в финальных турнирах:\'\'\'')
    generate_rows(qual_teams)

    -- 7. ЗАКРЫВАЕМ ТАБЛИЦУ
    table.insert(lines, "|}")

    return table.concat(lines, "\n")
end

return p