Documentation for this module may be created at Module:yy/τεκμηρίωση

-- [[Module:yy]] -- [[Module:yy/param]] -- [[Module:yy/functions]] -- [[Template:yy]]
-- ## 2023.05.01. TEST [[Module:el-nouns-decl]] for params 
-- [[:Κατηγορία:Σελίδες με σφάλματα δέσμης ενεργειών]]

export = {}


local m_functions = require("Module:yy/functions")

--------------------------------------------------------------------------
-- 1. STEM PRODUCTION, REQUIRED MODULES / ΔΗΜΙΟΥΡΓΙΑ ΘΕΜΑΤΩΝ, MODULES   --
--------------------------------------------------------------------------
local languages = mw.loadData("Module:Languages") -- see LANGUAGES / only el used for lang_name = languages[lang_iso]['name']
	-- possibly also for some dialects

-- do not name 'local': it does not work for Module:el-nouns-decl/functions
m_stems = require("Module:grk-stems") -- stem production: 
	--functions:
		--word0 =  no accent, word1 = accent on ultima,  word2 = accent on penultima
		--hasaccent = tells us if it has an accent
-- how to use [[Module:el-articles]]		
	-- DO NOT use m_art = require.... 
	-- USE DIRECTLY -- require ('Module:el-articles').articles (args)  instead of ARTICLES section.		
	--DO NOT USE: m_art = require("Module:el-articles") -- all args for articles
	--DO NOT USE: m_art = require ('Module:el-articles').articles (args)

tinti = require("Module:tin") --tinti function:tin
	-- chooses the correct acc.singular feminine article την (tin) or τη (ti)



--------------------------------------------------------------------------
--             2. links & styles / σύνδεσμοι & στυλ                     --
--------------------------------------------------------------------------

-- =========== standard colours (BLUE) and styles
-- borders
c_border = '#a1bdea' -- same as c_1 previously #AAAACC
c_bord = '#eaf0fa' -- or '#eeeeee' -- inner lighter borders
c_bordR = '' -- right border: if there are more columns, it is soft c_bord. If it is the end, it is c_border
-- background colours
c_extra = '#b0c4de' -- for extratitle
c_1 = '#a1bdea' -- ROW title1 MAIN, and border for title2 if it exists
c_2 = '#c1d3f1' -- title2 (e.g. genders of adjectives) and border for title1
c_3 = '#d5e2f6' -- title3, all the subtitles --previously  #BED9ED
c_4 = '#eaf0fa' -- background for notes - also test: #f8f8ff - previously #d9ebff
-- font colours
c_ending = '#EB0000'  -- former DeepPink
c_stem = '#002000'
c_black = '#000000'
c_cccccc = '#cccccc'
c_green = '#008000'

-- styles
font_cell = "" -- ?? find out what the default family is
fontsize_cell = "" -- the default is ??

--  apply colours - εφαρμογή χρωμάτων
ending_color = function(suffix)
    return '<span style="color:' .. c_ending ..'; font-weight:normal;">' .. suffix .. '</span>'
end

stem_color = function(thema)
    return '<span style="color:' .. c_stem ..'; font-weight:normal;">' .. thema .. '</span>'
end

infix_color = function(infix) -- this is not an inifix. It is part of 2nd stem.
    return '<span style="color:' .. c_stem ..'; font-weight:normal;">' .. infix .. '</span>'
end

-- for subtitles:
black_color = function(black_thing)
    return '<span style="color:' .. c_black ..'; font-weight:normal;">' .. black_thing .. '</span>'
end

-- not used:
cccccc_color = function(cccccc_thing)
    return '<span style="color:' .. c_cccccc ..'; font-weight:normal;">' .. cccccc_thing .. '</span>'
end
green_color = function(green_thing)
    return '<span style="color:' .. c_green ..'; font-weight:normal;">' .. green_thing .. '</span>'
end


-- ====================== Links for the words in the table
-- create_link = function(page, text) -- see at /param page
-- ====================== Links
create_link = function(page, text)
	if text then
		return '[[' .. page .. '|' .. text .. ']]'
	else
		return '[[' .. page .. ']]'
	end
end

-- it controls stem (thema) and ending (suffix)
linkcontrol2 = function(thema, suffix)
	thema = thema or ''
	suffix = suffix or ''
	return create_link(thema .. suffix, stem_color(thema) ..  ending_color(suffix))
end

--- it controls stem (thema), infix and ending (suffix)
linkcontrol3 = function(thema, infix, suffix)
	thema = thema or ''
	infix = infix or ''
	suffix = suffix or ''
	return create_link(thema .. infix .. suffix, stem_color(thema) ..  infix_color(infix) .. ending_color(suffix))
end

-- Errors -- use it with writing: if blahblah then return errorhere('xxxxxx') end
errorhere = function(errstring)
    return '<div class="error">' .. errstring .. '</div>[[Κατηγορία:Σελίδες με σφάλματα στο τεστ ουσιαστικών (νέα ελληνικά)]]'
end


--------------------------------------------------------------------------
--                        3. TABLE / ΠΙΝΙΚΑΣ                            --
--------------------------------------------------------------------------

fulltable = function(args)
	
-- table: -- note: in some browsers, border is not visible. Need border="1"
local float = args['float'] or ''
	if args['float'] == 'left' then
table_style1 = 'style="clear:left; float:left; position:relative; margin: 0px 1.5em 0.5em 0px; background:#ffffff; border:1px solid' .. c_border ..'; text-align:left;" rules="none" border="1" cellpadding="3" cellspacing="0"'
	elseif args['float'] == 'center' then
table_style1 = 'style="margin-left:auto; margin-right:auto; margin-bottom:0.5em; background:#ffffff; border:1px solid' .. c_border ..'; text-align:center;" rules="none" border="1" cellpadding="3" cellspacing="0"'	
	else
table_style1 = 'style="clear:right; float:right; margin-left:0.5em; margin-bottom:0.5em;background:#ffffff; border:1px solid' .. c_border ..'; text-align:right;" rules="none" border="1" cellpadding="3" cellspacing="0"'
	end

-- titles (title from module + extra title)
	extratitle_str = args['mod-τίτλος'] or '' 
	if args['lang_title'] ~= '' and args['lang_title'] ~=  nil then
		args['mod-τίτλος'] = args['lang_title'] .. '<br>' .. args['mod-τίτλος']
	end

-- =============== LANGUAGES for categories and notes 
-- see /param page

-- =============== OTHER PARAMs
-- OTHER
	local columns = args['cols'] or ''		-- number of columns: 1+2 if only one number, 1+4 if 2 numbers 1+6 if double plural or double singular, 1+8 double sing & double pl	
	cat_pos = args['μέρος λόγου'] or 'Ουσιαστικά' -- pos: Part of Speech
-- typos, klisi
--	cat = args['κατ'] or ''
		-- this does not work from here -- must be stated in functions
		-- if args['κατ'] ~= '' and args['κατ'] ~= nil then cat = args['τύπος'] end
	typos = args['τύπος'] or ''	-- at the moment, coincides with as_in, but may differ -- example Surnmes όπως+
	local klisi = args['κλίση'] or ''		-- the subpages of Appendix -- see notes and Categories
		if args['αρσ'] == '1' then klisi = 'αρσενικά' end
		if args['θηλ'] == '1' then klisi = 'θηλυκά' end
		if args['ουδ'] == '1' then klisi = 'ουδέτερα' end
		if args['αθ'] == '1' then klisi = 'κοινά' end
		if args[1] == 'επ' or args[1] == 'επ+' or args[1] == 'επ-ον' then klisi = 'επώνυμα' end
		if args['ανώμαλο'] == '1' then klisi = 'ανώμαλα' end	-- example?

	local stem_line = ''
	local stem_cell = ''

-- row for subtitles (gender of numbers if different)  ([[πλούτος]])
	local subtitle = ''
	local subtitle_sg = args['υπότιτλος-εν'] or '' 
		
		if args['υπότιτλος-εν'] == 'αθ' then args['υπότιτλος-εν'] = 'κοινού γένους'
			args['αοε'] = "αθ"	args['αγε'] = "αθ"	args['ααε'] = "αθ"
	elseif args['υπότιτλος-εν'] == 'αρσ' then args['υπότιτλος-εν'] = '[[αρσενικό|' .. black_color('αρσενικό') .. ']]'
			args['αοε'] = "αρσ"	args['αγε'] = "αρσ"	args['ααε'] = "αρσ"
	elseif args['υπότιτλος-εν'] == 'θηλ' then args['υπότιτλος-εν'] = '[[θηλυκό|' .. black_color('θηλυκό') .. ']]'
			args['αοε'] = "θηλ"	args['αγε'] = "θηλ"	args['ααε'] = "θηλ"
	elseif args['υπότιτλος-εν'] == 'ουδ' then args['υπότιτλος-εν'] = '[[ουδέτερο|' .. black_color('ουδέτερο') .. ']]'
			args['αοε'] = "ουδ"	args['αγε'] = "ουδ"	args['ααε'] = "ουδ"
	elseif args['υπότιτλος-εν'] ~= 'αρσ' and args['υπότιτλος-εν'] ~= 'θηλ' and args['υπότιτλος-εν'] ~= 'ουδ' and args['υπότιτλος-εν'] ~= 'αθ' then
		args['υπότιτλος-εν'] = args['υπότιτλος-εν'] or ''
	end

	local subtitle_sg2 = args['υπότιτλος-εν2'] or '' -- δεύτερος ενικός
		if args['υπότιτλος-εν2'] == 'αθ' then args['υπότιτλος-εν2'] = 'κοινού γένους'
			args['αοε2'] = "αθ"	args['αγε2'] = "αθ"	args['ααε2'] = "αθ"
	elseif args['υπότιτλος-εν2'] == 'αρσ' then args['υπότιτλος-εν2'] = '[[αρσενικό|' .. black_color('αρσενικό') .. ']]'
			args['αοε2'] = "αρσ"	args['αγε2'] = "αρσ"	args['ααε2'] = "αρσ"
	elseif args['υπότιτλος-εν2'] == 'θηλ' then args['υπότιτλος-εν2'] = '[[θηλυκό|' .. black_color('θηλυκό') .. ']]'
			args['αοε2'] = "θηλ"	args['αγε2'] = "θηλ"	args['ααε2'] = "θηλ"
	elseif args['υπότιτλος-εν2'] == 'ουδ' then args['υπότιτλος-εν2'] = '[[ουδέτερο|' .. black_color('ουδέτερο') .. ']]'
			args['αοε2'] = "ουδ"	args['αγε2'] = "ουδ"	args['ααε2'] = "ουδ"
	else
		args['υπότιτλος-εν2'] = args['υπότιτλος-εν2'] or ''
	end

	local subtitle_pl = args['υπότιτλος-πλ'] or ''
		if args['υπότιτλος-πλ'] == 'αθ' then args['υπότιτλος-πλ'] = 'κοινού γένους'
			args['αοπ'] = "αθ"	args['αγπ'] = "αθ"	args['ααπ'] = "αθ"
	elseif args['υπότιτλος-πλ'] == 'αρσ' then args['υπότιτλος-πλ'] = '[[αρσενικό|' .. black_color('αρσενικό') .. ']]'
			args['αοπ'] = "αρσ"	args['αγπ'] = "αρσ"	args['ααπ'] = "αρσ"
	elseif args['υπότιτλος-πλ'] == 'θηλ' then args['υπότιτλος-πλ'] = '[[θηλυκό|' .. black_color('θηλυκό') .. ']]'
			args['αοπ'] = "θηλ"	args['αγπ'] = "θηλ"	args['ααπ'] = "θηλ"
	elseif args['υπότιτλος-πλ'] == 'ουδ' then args['υπότιτλος-πλ'] = '[[ουδέτερο|' .. black_color('ουδέτερο') .. ']]'
			args['αοπ'] = "ουδ"	args['αγπ'] = "ουδ"	args['ααπ'] = "ουδ"
	elseif args['υπότιτλος-πλ'] ~= 'αρσ' and args['υπότιτλος-πλ'] ~= 'θηλ' and args['υπότιτλος-πλ'] ~= 'ουδ' and args['υπότιτλος-πλ'] ~= 'αθ' then
		args['υπότιτλος-πλ'] = args['υπότιτλος-πλ'] or '' 
	end

	local subtitle_pl2 = args['υπότιτλος-πλ2'] or ''	-- 2ος πληθυντικός
		if args['υπότιτλος-πλ2'] == 'αθ' then args['υπότιτλος-πλ2'] = 'κοινού γένους'
			args['αοπ2'] = "αθ"	args['αγπ2'] = "αθ"	args['ααπ2'] = "αθ"
	elseif args['υπότιτλος-πλ2'] == 'αρσ' then args['υπότιτλος-πλ2'] = '[[αρσενικό|' .. black_color('αρσενικό') .. ']]'
			args['αοπ2'] = "αρσ"	args['αγπ2'] = "αρσ"	args['ααπ2'] = "αρσ"
	elseif args['υπότιτλος-πλ2'] == 'θηλ' then args['υπότιτλος-πλ2'] = '[[θηλυκό|' .. black_color('θηλυκό') .. ']]'
			args['αοπ2'] = "θηλ"	args['αγπ2'] = "θηλ"	args['ααπ2'] = "θηλ"
	elseif args['υπότιτλος-πλ2'] == 'ουδ' then args['υπότιτλος-πλ2'] = '[[ουδέτερο|' .. black_color('ουδέτερο') .. ']]'
			args['αοπ2'] = "ουδ"	args['αγπ2'] = "ουδ"	args['ααπ2'] = "ουδ"
	else
		args['υπότιτλος-πλ2'] = args['υπότιτλος-πλ2'] or ''
	end

-- Σημείωση: οι παράμετρες .... = '' χρειάζονται αν ΔΕΝ υπάρχει το /param
-- =============== string parameters
	-- numbers
	local sg_title_str = '' -- singularis title string / ἑνικός
	local sg2_title_str = '' -- 2nd singular column NOT USED in this module
    local pl_title_str = '' -- pluralis  title / πληθυντικός
    local pl2_title_str = '' -- 2nd plural title / 2ος πληθυντικός αν υπάρχει  like [[βράχος]]
    -- cases
    local nom_sg_str = '' -- nominativus singularis / ονομαστική ενικός
    local nom_sg2_str = ''
    local nom_pl_str = ''
    local nom_pl2_str = ''
    local gen_sg_str = '' -- genitivus / γενική
    local gen_sg2_str = ''
    local gen_pl_str = ''
    local gen_pl2_str = ''
    local acc_sg_str = '' -- accusativus / αιτιατική
    local acc_sg2_str = ''
    local acc_pl_str = ''
    local acc_pl2_str = ''
    local voc_sg_str = '' -- vocativus / κλητική
    local voc_sg2_str = ''
    local voc_pl_str = ''
    local voc_pl2_str = ''
	-- articles
    local a_nom_sg_str = ''
    local a_nom_sg2_str = ''
    local a_nom_pl_str = ''
    local a_nom_pl2_str = ''
    local a_gen_sg_str = ''
    local a_gen_sg2_str = ''
    local a_gen_pl_str = ''
    local a_gen_pl2_str = ''
    local a_acc_sg_str = ''
    local a_acc_sg2_str = ''
    local a_acc_pl_str = ''
    local a_acc_pl2_str = ''
    local a_voc_sg_str = ''
    local a_voc_sg2_str = ''
    local a_voc_pl_str = ''
    local a_voc_pl2_str = ''

   
-- άρθρα - ARTICLES ===========================================================
require ('Module:el-articles').articles (args)

-- Αριθμοί - NUMBERS ==========================================================
	local hassingular = true		-- (args['εν'] ~= nil)
	local hasplural = true			-- (args['πλ'] ~= nil)

    if args['α'] == "πλ" or args['α2'] == "πλ" then hassingular = false end		
    	-- α= Ουσιαστικά ΧΩΡΙΣ ενικό / singular does not exist
    	-- α2 = Ουσιαστικά στον πληθυντικό (υπάρχει και ενικός) / but singular exists elsewhere
    if args['α'] == "εν" or args['α2'] == "εν" then hasplural = false end

if args['α'] == 'εν' or  args['α2'] == 'εν' then args['υπότιτλος-πλ'] = '' args['υπότιτλος-πλ2'] = '' end
if args['α'] == 'πλ' or  args['α2'] == 'πλ' then args['υπότιτλος-εν'] = '' args['υπότιτλος-εν2'] = '' end

-- number of columns for full rows πτώσεις column + article+word
-- may write e.g. columns = '10' and it is ok ?!?
	-- 1+2 (only one number)
	if (args['α'] == 'εν' or args['α2'] == 'εν') or (args['α'] == 'πλ' or args['α2'] == 'πλ')
	and (args['υπότιτλος-εν2'] == '' or args['υπότιτλος-εν2'] == nil) and (args['υπότιτλος-πλ2'] == '' or args['υπότιτλος-πλ2'] == nil)
		then columns = '3'
	
	-- 1+6 en-en2-pl
	elseif (args['α'] ~= 'εν' and args['α2'] ~= 'εν') and (args['α'] ~= 'πλ' and args['α2'] ~= 'πλ')
	and	(args['υπότιτλος-εν2'] ~= '' and args['υπότιτλος-εν2'] ~= nil) 
	and (args['υπότιτλος-πλ2'] == '' or args['υπότιτλος-πλ2'] == nil)
		then columns = '7'
	
	-- 1+6 en-pl-pl2
	elseif (args['α'] ~= 'εν' and args['α2'] ~= 'εν') and (args['α'] ~= 'πλ' and args['α2'] ~= 'πλ')
	and	(args['υπότιτλος-εν2'] == '' or args['υπότιτλος-εν2'] == nil) 
	and (args['υπότιτλος-πλ2'] ~= '' and args['υπότιτλος-πλ2'] ~= nil)
		then columns = '7'	
    
    -- 1+8 --en-en2-pl-pl2
	elseif (args['α'] ~= 'εν' and args['α2'] ~= 'εν') and (args['α'] ~= 'πλ' and args['α2'] ~= 'πλ')
	and args['υπότιτλος-εν2'] ~= '' and args['υπότιτλος-εν2'] ~= nil and args['υπότιτλος-πλ2'] ~= '' and args['υπότιτλος-πλ2'] ~= nil
		then columns = '9'
--[=[
	-- 1+4 for en-en2 --??????? does not work
	elseif (args['α'] == 'εν' or args['α2'] == 'εν')
	and (args['υπότιτλος-εν2'] ~= '' and args['υπότιτλος-εν2'] ~= nil)
	and (args['υπότιτλος-πλ2'] == '' or args['υπότιτλος-πλ2'] == nil)
		then columns = '5'

	-- 1+4 for pl-pl2
	elseif (args['α'] == 'πλ' or args['α2'] == 'πλ')
	and (args['υπότιτλος-εν2'] == '' or args['υπότιτλος-εν2'] == nil)
	and (args['υπότιτλος-πλ2'] ~= '' and args['υπότιτλος-πλ2'] ~= nil)
		then columns = '5'
]=]--			
	-- 1+4 sg + pl, normal ... hope it covers all other combinations
	else
        columns = '5'
    
	end




-- σημειώσεις - NOTES  ========================================================
    local paratirisi = args['παρατήρηση'] or ''	 -- notes by editor
    local note = args['mod-σημ'] or  ''	-- standard notes by Template
    local appendix = ''					-- standard link to the Appendix [[Παράρτημα:Ουσιαστικά (νέα ελληνικά)]]
    local append = ''				-- link to Appendix at specific paradigm
    local as_in = args['όπως'] or ''    	-- editor must add: e.g.  ασημόσκονη
-- exceptions:
	local as_in_show = args['όπως+'] or ''  -- π.χ. όπως=Γιάμαλος όπως+ = Γιάμαλος (κλίση:αντίλαλος)
		if args['όπως+'] == '' or args['όπως+'] == nil then as_in_show = as_in end	
		-- added here for the (lang_name)
			lang_iso = lang_iso or 'el'
			lang_link = languages[lang_iso]['link'] or ''
			lang_name = languages[lang_iso]['name'] or ''
    	cat_pos = args['μέρος λόγου'] or 'Ουσιαστικά'
    	klisi = klisi or ''	-- the subpages /αρσενικά, θηλυκά etc
    	typos = args['τύπος'] or args['κατ'] or '' -- ALSO κατ= to override expected Category
    	if as_in == '' or as_in == nil then append = '' else
    		if typos == '-' or typos == '' or typos == nil then
    		append = "όπως «[[Παράρτημα:Ουσιαστικά (νέα ελληνικά)/" .. klisi .. '#' .. as_in .. '|' .. as_in_show .. ']]» - '
    		else
    		append = '[[:Κατηγορία:' .. cat_pos .. " που κλίνονται όπως το '" .. typos .. "' (" .. lang_name .. ")|Κατηγορία]]  όπως «[[Παράρτημα:Ουσιαστικά (νέα ελληνικά)/" 
    		.. klisi .. '#' .. as_in .. '|' .. as_in_show .. ']]» - '
    		end
    	end


-- ============== note lines / σημείωση παρατήρηση  π.χ. στο [[χάλυβας]]

-- ### adding this, BECAUSE en-en2 does not work for notes
if (args['α'] == 'εν' or args['α2'] == 'εν')
and (args['υπότιτλος-εν2'] ~= '' and args['υπότιτλος-εν2'] ~= nil)
and (args['υπότιτλος-πλ2'] == '' or args['υπότιτλος-πλ2'] == nil)
then


	if args['mod-σημ'] ~= '' or args['mod-σημ'] ~= nil then					-- pre-edited notes όπως στο ίδης: [[Πρότυπο:el-κλίση-'ίδης']]
    	if not (args['παρατήρηση'] == nil or mw.ustring.len(args['παρατήρηση']) < 1) then
        paratirisi = '|-' .. "\n" .. [=[| colspan="]=] .. columns .. [=[" align="left" style="background:]=] .. c_4 .. [=[; font-size:80%; line-height:100%;" | ]=]
        paratirisi = paratirisi .. note .. '<br>' .. args['παρατήρηση'] .. "\n"
    	else
        paratirisi = '|-' .. "\n" .. [=[| colspan="]=] .. columns .. [=[" align="left" style="background:]=] .. c_4 .. [=[; font-size:80%; line-height:100%;" | ]=]
        paratirisi = paratirisi .. note .. "\n"
    	end
    end
	if args['mod-σημ'] == '' or args['mod-σημ'] == nil then
    	if not (args['παρατήρηση'] == nil or mw.ustring.len(args['παρατήρηση']) < 1) then
        paratirisi = '|-' .. "\n" .. [=[| colspan="5" align="left" style="background:]=] .. c_4 .. [=[; font-size:80%; line-height:100%;" | ]=]
        paratirisi = paratirisi .. args['παρατήρηση'] .. "\n"
    	else
    	paratirisi = ''
    	end
	end
	if args['παράρτημα'] == '-' then appendix = ''
		cat_pos = args['μέρος λόγου'] or 'Ουσιαστικά'
	elseif args['μέρος λόγου'] == 'Επώνυμα' or args[1] == "επ+" or args[1] == "επ-ον" then	-- check [[Οικονόμου]] (επ-ον check --- )
        appendix = '|-' .. "\n" .. [=[| colspan="5" align="right" style="text-align:right; background:]=] .. c_4 .. [=[; font-size:70%; line-height:100%;" | ]=]
        appendix = appendix .. '[[Παράρτημα:Ονόματα και επώνυμα στα ελληνικά|Ονοματεπώνυμα]] -'
        .. append ..  '[[Παράρτημα:Ουσιαστικά (νέα ελληνικά)|<span title="Παράρτημα:Ουσιαστικά">Παράρτημα:Ουσιαστικά</span>]]' .. "\n"
	elseif args['παράρτημα'] ~= '-'  and args['παράρτημα'] ~= '' and args['παράρτημα'] ~= nil  then
		appendix = '|-' .. "\n" .. [=[| colspan="5" align="right" style="text-align:right; background:]=] .. c_4 .. [=[; font-size:70%; line-height:100%;" | ]=]
		appendix = appendix .. append .. args['παράρτημα'] .. "\n"
	else
		appendix = '|-' .. "\n" .. [=[| colspan="5" align="right" style="text-align:right; background:]=] .. c_4 .. [=[; font-size:70%; line-height:100%;" | ]=]
		appendix = appendix .. append .. '[[Παράρτημα:Ουσιαστικά (νέα ελληνικά)|<span title="Παράρτημα:Ουσιαστικά">Παράρτημα:Ουσιαστικά</span>]]' .. "\n"
	end
			
-- ##end of addition !!!!!!!! I have no idea why...			
else -- NOT α=εν		
	if args['mod-σημ'] ~= '' or args['mod-σημ'] ~= nil then
		if not (args['παρατήρηση'] == nil or mw.ustring.len(args['παρατήρηση']) < 1) then
		paratirisi = '|-' .. "\n" .. [=[| colspan="]=] .. columns .. [=[" align="left" style="background:]=] .. c_4 .. [=[; font-size:80%; line-height:100%;" | ]=]
		paratirisi = paratirisi .. note .. '<br>' .. args['παρατήρηση'] .. "\n"
		else
		paratirisi = '|-' .. "\n" .. [=[| colspan="]=] .. columns .. [=[" align="left" style="background:]=] .. c_4 .. [=[; font-size:80%; line-height:100%;" | ]=]
		paratirisi = paratirisi .. note .. "\n"
		end
	end
	if args['mod-σημ'] == '' or args['mod-σημ'] == nil then
		if not (args['παρατήρηση'] == nil or mw.ustring.len(args['παρατήρηση']) < 1) then
		paratirisi = '|-' .. "\n" .. [=[| colspan="]=] .. columns .. [=[" align="left" style="background:]=] .. c_4 .. [=[; font-size:80%; line-height:100%;" | ]=]
		paratirisi = paratirisi .. args['παρατήρηση'] .. "\n"
		else
		paratirisi = ''
		end
	end
	-- appendix
	if args['παράρτημα'] == '-' then appendix = ''
		cat_pos = args['μέρος λόγου'] or 'Ουσιαστικά'
	elseif args['μέρος λόγου'] == 'Επώνυμα' or args[1] == "επ+" or args[1] == "επ-ον" then	-- check [[Οικονόμου]] (επ-ον check --- )
        appendix = '|-' .. "\n" .. [=[| colspan="]=] .. columns .. [=[" align="right" style="text-align:right; background:]=] .. c_4 .. [=[; font-size:70%; line-height:100%;" | ]=]
        appendix = appendix .. '[[Παράρτημα:Ονόματα και επώνυμα στα ελληνικά|Ονοματεπώνυμα]] -'
        .. append ..  '[[Παράρτημα:Ουσιαστικά (νέα ελληνικά)|<span title="Παράρτημα:Ουσιαστικά">Παράρτημα:Ουσιαστικά</span>]]' .. "\n"
	elseif args['παράρτημα'] ~= '-'  and args['παράρτημα'] ~= '' and args['παράρτημα'] ~= nil  then
		appendix = '|-' .. "\n" .. [=[| colspan="]=] .. columns .. [=[" align="right" style="text-align:right; background:]=] .. c_4 .. [=[; font-size:70%; line-height:100%;" | ]=]
		appendix = appendix .. append .. args['παράρτημα'] .. "\n"
	else
		appendix = '|-' .. "\n" .. [=[| colspan="]=] .. columns .. [=[" align="right" style="text-align:right; background:]=] .. c_4 .. [=[; font-size:70%; line-height:100%;" | ]=]
		appendix = appendix .. append .. '[[Παράρτημα:Ουσιαστικά (νέα ελληνικά)|<span title="Παράρτημα:Ουσιαστικά">Παράρτημα:Ουσιαστικά</span>]]' .. "\n"
	end
end -- close ## addition


-- ========== CELLS  ===============================================    
-- extra title string
	if args['mod-τίτλος'] ~= '' and args['mod-τίτλος'] ~= nil then
		extratitle_str =  args['mod-τίτλος'] .. "\n"
	end

-- columns (spaces added for good copy-paste result)
if hassingular then
   	-- make c_border, if not 5 columns (table_style1's border does not apply) check [[γιόκας]]
   	if args['α'] == 'εν' or args['α2'] == 'εν' then
   		c_bordR = c_border
	else -- different right border
		c_bordR = c_bord -- soft right border if more columns follow
   	end

		sg_title_str =  [=[! style="background:]=] .. c_1 .. [=[; border-right:1px solid ]=] .. c_border ..
		[=[;" colspan="2" align="center"| &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[[ενικός|<span title="ενικός αριθμός" style="color:black;">'''''ενικός'''''</span>]]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]=] .. "\n"

		subtitle_sg = [=[| style="background:]=] .. c_2 .. [=[; border-right:1px solid ]=] .. c_border ..
		[=[; font-size:70%; font-style:italic; line-height:100%;" colspan="2" align="center"| ]=] .. args['υπότιτλος-εν'] .. "\n"


        a_nom_sg_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[; ]=] .. font_cell .. fontsize_cell ..
        [=[;" align="center" | ]=] .. args['αοε'] ..  "\n"
        nom_sg_str =  [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[; border-right:1px solid ]=] .. c_bordR .. [=[; ]=] .. font_cell .. fontsize_cell ..
        [=[;" align="left" | ]=] .. args['οεΛ'] ..  "\n"
        a_gen_sg_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[; ]=] .. font_cell .. fontsize_cell ..
        [=[" align="center" | ]=] .. args['αγε'] ..  "\n"
        gen_sg_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[; border-right:1px solid ]=] .. c_bordR .. [=[; ]=] .. font_cell .. fontsize_cell ..
        [=[" align="left" | ]=] .. args['γεΛ'] ..  "\n"
        a_acc_sg_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[; ]=] .. font_cell .. fontsize_cell ..
        [=[" align="center" | ]=] .. args['ααε'] ..  "\n"
        acc_sg_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[; border-right:1px solid ]=] .. c_bordR .. [=[; ]=] .. font_cell .. fontsize_cell ..
        [=[" align="left" | ]=] .. args['αεΛ'] ..  "\n"
        a_voc_sg_str = [=[| style="]=] .. font_cell .. fontsize_cell ..  [=[" align="center" | ]=] .. args['ακε'] ..  "\n"
        voc_sg_str = [=[| style="border-right:1px solid ]=] .. c_bordR .. [=[; ]=] .. font_cell .. fontsize_cell ..
        [=[" align="left" | ]=] .. args['κεΛ'] ..  "\n"

end -- close hassingular

if hasplural then
	if args['υπότιτλος-πλ2'] ~= '' and args['υπότιτλος-πλ2'] ~= nil then	-- if 2nd plural follows, right borders are soft		

        pl_title_str = [=[! style="background:]=] .. c_1 .. [=[; border-right:1px solid ]=] .. c_2 ..
        [=[;" colspan="2" align="center"| &nbsp;&nbsp;[[πληθυντικός|<span title="πληθυντικός ἀριθμός" style="color:black;">'''''πληθυντικός'''''</span>]]&nbsp;&nbsp;]=] .. "\n"

        subtitle_pl = [=[| style="background:]=] .. c_2 .. [=[; border-right:1px solid ]=] .. c_1 .. 
        [=[; font-size:70%; font-style:italic; line-height:100%;" colspan="2" align="center"| ]=] .. args['υπότιτλος-πλ'] .. "\n"
        
        a_nom_pl_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[; ]=] .. font_cell .. fontsize_cell ..
        [=[" align="center" | ]=] .. args['αοπ'] ..  "\n"
        nom_pl_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[; border-right:1px solid ]=] .. c_bord .. [=[; ]=] .. font_cell .. fontsize_cell ..
        [=[" align="left" | ]=] .. args['οπΛ'] ..  "\n"
        a_gen_pl_str =  [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[; ]=] .. font_cell .. fontsize_cell ..
        [=[" align="center" | ]=] .. args['αγπ'] ..  "\n"
        gen_pl_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[; border-right:1px solid ]=] .. c_bord .. [=[; ]=] .. font_cell .. fontsize_cell ..
        [=[" align="left" | ]=] .. args['γπΛ'] ..  "\n"
        a_acc_pl_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[; ]=] .. font_cell .. fontsize_cell ..
        [=[" align="center" | ]=] .. args['ααπ'] ..  "\n"
        acc_pl_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[; border-right:1px solid ]=] .. c_bord .. [=[; ]=] .. font_cell .. fontsize_cell ..
        [=[" align="left" | ]=] .. args['απΛ'] ..  "\n"
        a_voc_pl_str = [=[| style="]=] .. font_cell .. fontsize_cell ..
        [=[" align="center" | ]=] .. args['ακπ'] ..  "\n"
        voc_pl_str = [=[| style="border-right:1px solid ]=] .. c_bord .. [=[; ]=] .. font_cell .. fontsize_cell ..
        [=[" align="left" | ]=] .. args['κπΛ'] ..  "\n"
        
	else -- if 2nd plural does not follow we need strong right borders

        pl_title_str = [=[! style="background:]=] .. c_1 .. [=[; border-right:1px solid ]=] .. c_border ..
        [=[;" colspan="2" align="center"| &nbsp;&nbsp;[[πληθυντικός|<span title="πληθυντικός ἀριθμός" style="color:black;">'''''πληθυντικός'''''</span>]]&nbsp;&nbsp;]=] .. "\n"

        subtitle_pl = [=[| style="background:]=] .. c_2 .. [=[; border-right:1px solid ]=] .. c_border .. 
        [=[; font-size:70%; font-style:italic; line-height:100%;" colspan="2" align="center"| ]=] .. args['υπότιτλος-πλ'] .. "\n"
        
        a_nom_pl_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[; ]=] .. font_cell .. fontsize_cell ..
        [=[" align="center" | ]=] .. args['αοπ'] ..  "\n"
        nom_pl_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[; border-right:1px solid ]=] .. c_border .. [=[; ]=] .. font_cell .. fontsize_cell ..
        [=[" align="left" | ]=] .. args['οπΛ'] ..  "\n"
        a_gen_pl_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[; ]=] .. font_cell .. fontsize_cell ..
        [=[" align="center" | ]=] .. args['αγπ'] ..  "\n"
        gen_pl_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[; border-right:1px solid ]=] .. c_border .. [=[; ]=] .. font_cell .. fontsize_cell ..
        [=[" align="left" | ]=] .. args['γπΛ'] ..  "\n"
        a_acc_pl_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[; ]=] .. font_cell .. fontsize_cell ..
        [=[" align="center" | ]=] .. args['ααπ'] ..  "\n"
        acc_pl_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[; border-right:1px solid ]=] .. c_border .. [=[; ]=] .. font_cell .. fontsize_cell ..
        [=[" align="left" | ]=] .. args['απΛ'] ..  "\n"
        a_voc_pl_str = [=[| style="]=] .. font_cell .. fontsize_cell ..
        [=[" align="center" | ]=] .. args['ακπ'] ..  "\n"
        voc_pl_str = [=[| style="border-right:1px solid ]=] .. c_border .. [=[; ]=] .. font_cell .. fontsize_cell ..
        [=[" align="left" | ]=] .. args['κπΛ'] ..  "\n"
        
	end -- close if 2nd plural
        
end -- close hasplural

-- 2nd singular - 2ος ενικός
    if args['υπότιτλος-εν2'] ~= '' and args['υπότιτλος-εν2'] ~= nil then
		args['αοε2'] = args['αοε2'] or ''
		args['αγε2'] = args['αγε2'] or ''
		args['ααε2'] = args['ααε2'] or ''
		args['οεΛ2'] = args['οεΛ2'] or ''
		args['γεΛ2'] = args['γεΛ2'] or ''
		args['αεΛ2'] = args['αεΛ2'] or ''
		args['κεΛ2'] = args['κεΛ2'] or ''

        sg2_title_str = [=[! style="background:]=] .. c_1 ..
        [=[;" colspan="2" align="center"| &nbsp;&nbsp;[[ενικός|<span title="ενικός αριθμός" style="color:black;">'''''ενικός'''''</span>]]&nbsp;&nbsp;]=] .. "\n"

        subtitle_sg2 = [=[| style="background:]=] .. c_2 ..
        [=[; border-right:1px solid ]=] .. c_1 .. [=[; font-size:70%; font-style:italic; line-height:100%;" colspan="2" align="center"| ]=] .. args['υπότιτλος-εν2'] .. "\n"
        
        a_nom_sg2_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[; ]=] .. font_cell .. fontsize_cell ..
        [=[" align="center" | ]=] .. args['αοε2'] ..  "\n"
        nom_sg2_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[; border-right:1px solid ]=] .. c_border .. [=[; ]=] .. font_cell .. fontsize_cell ..
        [=[" align="left" | ]=] .. args['οεΛ2'] ..  "\n"
        a_gen_sg2_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[; ]=] .. font_cell .. fontsize_cell ..
        [=[" align="center" | ]=] .. args['αγε2'] ..  "\n"
        gen_sg2_str = [=[| style="border-bottom:1px solid ]=] .. c_bord  .. [=[; border-right:1px solid ]=] .. c_border .. [=[; ]=] .. font_cell .. fontsize_cell ..
        [=[" align="left" | ]=] .. args['γεΛ2'] ..  "\n"
        a_acc_sg2_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[; ]=] .. font_cell .. fontsize_cell ..
        [=[" align="center" | ]=] .. args['ααε2'] ..  "\n"
        acc_sg2_str = [=[| style="border-bottom:1px solid ]=] .. c_bord  .. [=[; border-right:1px solid ]=] .. c_border .. [=[; ]=] .. font_cell .. fontsize_cell ..
        [=[" align="left" | ]=] .. args['αεΛ2'] ..  "\n"
        a_voc_sg2_str = [=[| style="]=] .. font_cell .. fontsize_cell ..
        [=[" align="center" | ]=] .. args['ακε2'] ..  "\n"
        voc_sg2_str = [=[| style="border-right:1px solid ]=] .. c_border .. [=[; ]=] .. font_cell .. fontsize_cell ..
        [=[" align="left" | ]=] .. args['κεΛ2'] ..  "\n"
	end	-- close sg2 exists


-- 2nd plural - 2ος πληθυντικός όπως [[Πρότυπο:el-κλίση'βράχος']]
	if args['υπότιτλος-πλ2'] ~= '' and args['υπότιτλος-πλ2'] ~= nil then	-- write free text
		args['αοπ2'] = args['αοπ2'] or ''
		args['αγπ2'] = args['αγπ2'] or ''
		args['ααπ2'] = args['ααπ2'] or ''
		args['οπΛ2'] = args['οπΛ2'] or ''
		args['γπΛ2'] = args['γπΛ2'] or ''
		args['απΛ2'] = args['απΛ2'] or ''
		args['κπΛ2'] = args['κπΛ2'] or ''

        pl2_title_str = [=[! style="background:]=] .. c_1 ..
        [=[;" colspan="2" align="center"| &nbsp;&nbsp;[[πληθυντικός|<span title="πληθυντικός αριθμός" style="color:black;">'''''πληθυντικός'''''</span>]]&nbsp;&nbsp;]=] .. "\n"

        subtitle_pl2 = [=[| style="background:]=] .. c_2 ..
        [=[; border-right:1px solid ]=] .. c_1 .. [=[; font-size:70%; font-style:italic; line-height:100%;" colspan="2" align="center"| ]=] .. args['υπότιτλος-πλ2'] .. "\n"
        
        a_nom_pl2_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[; ]=] .. font_cell .. fontsize_cell ..
        [=[" align="center" | ]=] .. args['αοπ2'] ..  "\n"
        nom_pl2_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[; border-right:1px solid ]=] .. c_border .. [=[; ]=] .. font_cell .. fontsize_cell ..
        [=[" align="left" | ]=] .. args['οπΛ2'] ..  "\n"
        a_gen_pl2_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[; ]=] .. font_cell .. fontsize_cell ..
        [=[" align="center" | ]=] .. args['αγπ2'] ..  "\n"
        gen_pl2_str = [=[| style="border-bottom:1px solid ]=] .. c_bord  .. [=[; border-right:1px solid ]=] .. c_border .. [=[; ]=] .. font_cell .. fontsize_cell ..
        [=[" align="left" | ]=] .. args['γπΛ2'] ..  "\n"
        a_acc_pl2_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[; ]=] .. font_cell .. fontsize_cell ..
        [=[" align="center" | ]=] .. args['ααπ2'] ..  "\n"
        acc_pl2_str = [=[| style="border-bottom:1px solid ]=] .. c_bord  .. [=[; border-right:1px solid ]=] .. c_border .. [=[; ]=] .. font_cell .. fontsize_cell ..
        [=[" align="left" | ]=] .. args['απΛ2'] ..  "\n"
        a_voc_pl2_str = [=[| style="]=] .. font_cell .. fontsize_cell ..
        [=[" align="center" | ]=] .. args['ακπ2'] ..  "\n"
        voc_pl2_str = [=[| style="border-right:1px solid ]=] .. c_border .. [=[; ]=] .. font_cell .. fontsize_cell ..
        [=[" align="left" | ]=] .. args['κπΛ2'] ..  "\n"
	end	-- close pl2 exists


-- ============================= ROWS
-- extra title
	if args['mod-τίτλος'] ~= '' and args['mod-τίτλος'] ~= nil then extratitle =
'|-' .. extratitle_str .. "\n" ..   [=[|-]=]
	end


-- row for genders if different in number ([[πλούτος]])
-- subtitle line
	-- sg, pl have different number
	if (args['υπότιτλος-εν'] ~= '' and args['υπότιτλος-εν'] ~= nil) and (args['υπότιτλος-πλ'] ~= '' and args['υπότιτλος-πλ'] ~= nil) then subtitle =
'|-' .. "\n" .. [=[| style="background:]=] .. c_2 .. [=[; border-right:1px solid ]=] .. c_1 ..
[=[; text-align:center; font-size:70%; line-height:100%;" align="center"|  ]=] .. "\n" .. subtitle_sg .. subtitle_pl .. [=[|-]=]
end
	-- 2 singulars alone (args['α'] = 'εν'
	if (args['υπότιτλος-εν'] ~= '' and args['υπότιτλος-εν'] ~= nil) 
	and (args['υπότιτλος-πλ'] == '' or args['υπότιτλος-πλ'] == nil) then subtitle =
'|-' .. "\n" .. [=[| style="background:]=] .. c_2 .. [=[; border-right:1px solid ]=] .. c_1 ..
[=[; text-align:center; font-size:70%; line-height:100%;" align="center"|  ]=] .. "\n" .. subtitle_sg .. subtitle_sg2 .. [=[|-]=]
end	
	-- 2 singulars, pl
	if (args['υπότιτλος-εν'] ~= '' and args['υπότιτλος-εν'] ~= nil) and (args['υπότιτλος-εν2'] ~= '' and args['υπότιτλος-εν2'] ~= nil) 
	and (args['υπότιτλος-πλ'] ~= '' and args['υπότιτλος-πλ'] ~= nil)
	then subtitle =
'|-' .. "\n" .. [=[| style="background:]=] .. c_2 .. [=[; border-right:1px solid ]=] .. c_1 ..
[=[; text-align:center; font-size:70%; line-height:100%;" align="center"|  ]=] .. "\n" .. subtitle_sg .. subtitle_sg2 .. subtitle_pl .. [=[|-]=]
	end
	-- sg, 2 plurals
	if (args['υπότιτλος-εν'] ~= '' and args['υπότιτλος-εν'] ~= nil) 
	and (args['υπότιτλος-πλ'] ~= '' and args['υπότιτλος-πλ'] ~= nil) and (args['υπότιτλος-πλ2'] ~= '' and args['υπότιτλος-πλ2'] ~= nil) then subtitle =
'|-' .. "\n" .. [=[| style="background:]=] .. c_2 .. [=[; border-right:1px solid ]=] .. c_1 ..
[=[; text-align:center; font-size:70%; line-height:100%;" align="center"|  ]=] .. "\n" .. subtitle_sg .. subtitle_pl .. subtitle_pl2 .. [=[|-]=]
	end
	-- 2 singulars + 2 plurals
	if (args['υπότιτλος-εν'] ~= '' and args['υπότιτλος-εν'] ~= nil) and (args['υπότιτλος-εν2'] ~= '' and args['υπότιτλος-εν2'] ~= nil)
	and (args['υπότιτλος-πλ'] ~= '' and args['υπότιτλος-πλ'] ~= nil) and (args['υπότιτλος-πλ2'] ~= '' and args['υπότιτλος-πλ2'] ~= nil) then subtitle =
'|-' .. "\n" .. [=[| style="background:]=] .. c_2 .. [=[; border-right:1px solid ]=] .. c_1 ..
[=[; text-align:center; font-size:70%; line-height:100%;" align="center"|  ]=] .. "\n" .. subtitle_sg .. subtitle_sg2 .. subtitle_pl .. subtitle_pl2 .. [=[|-]=]
	end	



	-- + extratitle_str	
	if args['mod-τίτλος'] ~= '' and args['mod-τίτλος'] ~= nil then
		
    output = [=[{| ]=] .. table_style1 .. [=[
|-
| style="background:]=] .. c_extra .. [=[; border-right:1px solid ]=] .. c_extra ..
	[=[; text-align:center; line-height:100%;" align="center" colspan="9" |  ]=] .. extratitle_str ..
	   [=[|-
| style="background:]=] .. c_1 .. [=[; border-right:1px solid ]=] .. c_2 ..
	[=[; text-align:center; font-size:90%;" align="center"| &darr;&nbsp;''πτώσεις'' ]=] ..
	"\n" .. sg_title_str.. sg2_title_str .. pl_title_str .. pl2_title_str .. subtitle .. [=[|-
| style="background:]=] .. c_3 .. [=[; border-bottom:1px solid ]=] .. c_4 ..
	[=[; text-align:right; font-size:90%;"| [[ονομαστική|<span title="ονομαστική πτώση" style="color:black;">'''''ονομαστική'''''</span>]]]=] ..
	"\n" .. a_nom_sg_str .. nom_sg_str .. a_nom_sg2_str .. nom_sg2_str .. a_nom_pl_str .. nom_pl_str .. a_nom_pl2_str .. nom_pl2_str .. [=[|-
| style="background:]=] .. c_3 .. [=[; border-bottom:1px solid ]=] .. c_4 ..
	[=[; text-align:right; font-size:90%;"| &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[[γενική|<span title="γενική πτώση" style="color:black;">'''''γενική'''''</span>]]]=] ..
	"\n" .. a_gen_sg_str .. gen_sg_str .. a_gen_sg2_str .. gen_sg2_str .. a_gen_pl_str .. gen_pl_str .. a_gen_pl2_str .. gen_pl2_str .. [=[|-
| style="background:]=] .. c_3 .. [=[; border-bottom:1px solid ]=] .. c_4 ..
	[=[; text-align:right; font-size:90%;"| &nbsp;&nbsp;&nbsp;&nbsp;[[αιτιατική|<span title="αιτιατική πτώση" style="color:black;">'''''αιτιατική'''''</span>]]]=] ..
	"\n" .. a_acc_sg_str .. acc_sg_str .. a_acc_sg2_str .. acc_sg2_str .. a_acc_pl_str .. acc_pl_str .. a_acc_pl2_str .. acc_pl2_str .. [=[|-
| style="background:]=] .. c_3 ..
	[=[; text-align:right;"| &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[[κλητική|<span title="κλητική πτώση" style="color:black; font-size:90%;">'''''κλητική'''''</span>]]]=] ..
	"\n" .. a_voc_sg_str .. voc_sg_str .. a_voc_sg2_str .. voc_sg2_str .. a_voc_pl_str .. voc_pl_str .. a_voc_pl2_str .. voc_pl2_str .. paratirisi .. appendix .. [=[|}]=]
	
	else -- no extratitle_str
		
    output = [=[{| ]=] .. table_style1 .. [=[
|-
| style="background:]=] .. c_1 .. [=[; border-right:1px solid ]=] .. c_2 ..
	[=[; text-align:center; font-size:90%;" align="center"| &darr;&nbsp;''πτώσεις'' ]=] ..
	"\n" .. sg_title_str.. sg2_title_str .. pl_title_str .. pl2_title_str .. subtitle .. [=[|-
| style="background:]=] .. c_3 .. [=[; border-bottom:1px solid ]=] .. c_4 ..
	[=[; text-align:right; font-size:90%;"| [[ονομαστική|<span title="ονομαστική πτώση" style="color:black;">'''''ονομαστική'''''</span>]]]=] ..
	"\n" .. a_nom_sg_str .. nom_sg_str .. a_nom_sg2_str .. nom_sg2_str .. a_nom_pl_str .. nom_pl_str .. a_nom_pl2_str .. nom_pl2_str .. [=[|-
| style="background:]=] .. c_3 .. [=[; border-bottom:1px solid ]=] .. c_4 ..
	[=[; text-align:right; font-size:90%;"| &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[[γενική|<span title="γενική πτώση" style="color:black;">'''''γενική'''''</span>]]]=] ..
	"\n" .. a_gen_sg_str .. gen_sg_str .. a_gen_sg2_str .. gen_sg2_str .. a_gen_pl_str .. gen_pl_str .. a_gen_pl2_str .. gen_pl2_str .. [=[|-
| style="background:]=] .. c_3 .. [=[; border-bottom:1px solid ]=] .. c_4 ..
	[=[; text-align:right; font-size:90%;"| &nbsp;&nbsp;&nbsp;&nbsp;[[αιτιατική|<span title="αιτιατική πτώση" style="color:black;">'''''αιτιατική'''''</span>]]]=] ..
	"\n" .. a_acc_sg_str .. acc_sg_str .. a_acc_sg2_str .. acc_sg2_str .. a_acc_pl_str .. acc_pl_str .. a_acc_pl2_str .. acc_pl2_str .. [=[|-
| style="background:]=] .. c_3 ..
	[=[; text-align:right;"| &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[[κλητική|<span title="κλητική πτώση" style="color:black; font-size:90%;">'''''κλητική'''''</span>]]]=] ..
	"\n" .. a_voc_sg_str .. voc_sg_str .. a_voc_sg2_str .. voc_sg2_str .. a_voc_pl_str .. voc_pl_str .. a_voc_pl2_str .. voc_pl2_str .. paratirisi .. appendix .. [=[|}]=]
	end -- close extratitle_str

	--αφαιρείται, δίπλα από τη λέξη κλητική το: ([[ε|<span title="κλητικό επιφώνημα">ε</span>]]!)


--------------------------------------------------------------------------
--                   4. Categories / Κατηγορίες                         --
--------------------------------------------------------------------------

-- μέρος λόγου = the PartOfSpeech (plus as ProperNouns, Surnames etc)
-- τύπος = the catchword of the category in quotation marks
-- κατ = overrides τύπος
-- and FREE categories
	local page = mw.title.getCurrentTitle()
    page.name = page.text:match( "^%s*(.-)%s*$" )
    if page.namespace == 0 then
-- nocat e.g.  [[-ανός]]
if (args['nocat'] ~= '' and args['nocat'] ~= nil) or (args['00'] ~= '' and args['00'] ~= nil) then
	output = output
else
    	if args['κατηγορία'] ~= '' and args['κατηγορία'] ~= nil then -- free text for Category
    		output = output .. '[[Κατηγορία:' .. args['κατηγορία'] .. ' (' .. lang_name .. ')]]'
    	else

    			-- param κατ= για δημιουργία κατηγοριών που συμπληρώνει ο συντάκτης - editor creates Categories ad libitum
    			-- Υπερισχύει του 'τύπος' - It overrides 'τύπος'
    			cat_pos = args['μέρος λόγου'] or 'Ουσιαστικά'
    			typos = args['τύπος'] or args['κατ'] or ''
    			if args['τύπος'] == '-' then output = output -- check [[πλους]] & control category:  Κατηγορία:Ουσιαστικά που κλίνονται όπως το ''
    			else
    				
    			if args['κατ'] ~= '' and args ['κατ'] ~= nil then
    				typos = args['κατ']		-- check ?
					output = output .. '[[Κατηγορία:' .. cat_pos .. " που κλίνονται όπως το '" .. typos .. "' (" .. lang_name .. ")]]"
   				-- αν χρειαστούν ΔΥΟ παρόμοια, όπως στο [[σπετζοφάι]], μπορούμε να χρησιμοποιήσουμε free categories
   					else
   					typos = args['τύπος']
-- Υπο-Κατηγορίες για α, α2 / make subcategories for numbers
cat_pos = args['μέρος λόγου'] or 'Ουσιαστικά'
-- SUPPRESS declensins in one number BY DEFAULT (from the functions) e.g. [[αιδώς]]
	if args['α'] == 'εν' and (args['κατ'] == '' or args['κατ'] == nil) then
		if args['sg-default'] == '1' then	-- default at function for all the declension
		output = output .. '[[Κατηγορία:' .. cat_pos .. " που κλίνονται όπως το '" .. typos .. "' (" .. lang_name .. ')]]'
		else
		output = output .. '[[Κατηγορία:' .. cat_pos .. " που κλίνονται όπως το '" .. typos .. "' χωρίς πληθυντικό (" .. lang_name .. ')]]'
		end
	elseif args['α'] == 'πλ' and (args['κατ'] == '' or args['κατ'] == nil)  then
		if args['pl-default'] == '1' then	-- default at function for all the declension
		output = output .. '[[Κατηγορία:' .. cat_pos .. " που κλίνονται όπως το '" .. typos .. "' (" .. lang_name .. ')]]'
		else
		output = output .. '[[Κατηγορία:' .. cat_pos .. " που κλίνονται όπως το '" .. typos .. "' χωρίς ενικό (" .. lang_name .. ')]]'
		end
	elseif args['α2'] == 'εν' and (args['κατ'] == '' or args['κατ'] == nil)  then
		if args['sg-default'] == '1' then	-- default at function for all the declension
		output = output .. '[[Κατηγορία:' .. cat_pos .. " που κλίνονται όπως το '" .. typos .. "' (" .. lang_name .. ')]]'
		else
		output = output .. '[[Κατηγορία:' .. cat_pos .. " που κλίνονται όπως το '" .. typos .. "' στον ενικό (" .. lang_name .. ')]]'
		end
	elseif args['α2'] == 'πλ' and (args['κατ'] == '' or args['κατ'] == nil)  then
		if args['pl-default'] == '1' then	-- default at function for all the declension
		output = output .. '[[Κατηγορία:' .. cat_pos .. " που κλίνονται όπως το '" .. typos .. "' (" .. lang_name .. ')]]'
		else	
		output = output .. '[[Κατηγορία:' .. cat_pos .. " που κλίνονται όπως το '" .. typos .. "' στον πληθυντικό (" .. lang_name .. ')]]'
		end
--
	elseif (args['γε0'] ~= '' and  args['γε0'] ~= nil) then output = output .. '[[Κατηγορία:' .. cat_pos .. " που κλίνονται όπως το '" .. typos .. "' με δύσχρηστη γενική ενικού (" .. lang_name .. ')]]'
	elseif (args['γπ0'] ~= '' and  args['γπ0'] ~= nil) then output = output .. '[[Κατηγορία:' .. cat_pos .. " που κλίνονται όπως το '" .. typos .. "' με δύσχρηστη γενική πληθυντικού (" .. lang_name .. ')]]'
	elseif args['γε'] == '-' then output = output .. '[[Κατηγορία:' .. cat_pos .. " που κλίνονται όπως το '" .. typos .. "' χωρίς γενική ενικού (" .. lang_name .. ')]]'
	elseif args['γπ'] == '-' then output = output .. '[[Κατηγορία:' .. cat_pos .. " που κλίνονται όπως το '" .. typos .. "' χωρίς γενική πληθυντικού (" .. lang_name .. ')]]'

	else
        		--η γλώσσα στην κατηγορία θα είναι απαραίτητη αν υπάρχουν ίδιοι "τύποι" σε διαφορετικές γλώσσες.
            		output = output .. '[[Κατηγορία:' .. cat_pos .. " που κλίνονται όπως το '" .. typos .. "' (" .. lang_name .. ')]]'
            		
        end -- close if typos=-
end -- close subcategories

            	end -- close 'κατ'
    		
    	end -- close free text κατηγορία
    	

-- genders / Κατηγορίες για γένη
	if args['αρσ'] == '1' then output = output .. '[[Κατηγορία:' .. cat_pos .. ' αρσενικά (' .. lang_name .. ')]]' end
	if args['θηλ'] == '1' then output = output .. '[[Κατηγορία:' .. cat_pos .. ' θηλυκά (' .. lang_name .. ')]]' end
	if args['αθ'] == '1' then output = output .. '[[Κατηγορία:' .. cat_pos .. ' κοινού γένους (' .. lang_name .. ')]]' end
	if args['ουδ'] == '1' then output = output .. '[[Κατηγορία:' .. cat_pos .. ' ουδέτερα (' .. lang_name .. ')]]' end
-- έξτρα: υποθετικό 
	-- + and args['υποκατ'] == '' βλ. [[τάρταρος]] 
	-- + when subgenders  υπότιτλος-εν, βλ [[Οικονόμου]]
	if args['αρσ'] ~= '1' and args['θηλ'] ~= '1' and args['αθ'] ~= '1' and args['ουδ'] ~= '1' and args['υποκατ'] == '' and (args['υπότιτλος-εν']  == '' or args['υπότιτλος-πλ']  == '' or args['υπότιτλος-εν']  == '')  then
		output = output .. '[[Κατηγορία:' .. cat_pos .. ' χωρίς γένος (' .. lang_name .. ')]]'
	end

-- numbers / Κατηγορίες για τον αριθμό
	if args['α'] == 'εν' then output = output .. '[[Κατηγορία:' .. cat_pos .. ' χωρίς πληθυντικό (' .. lang_name .. ')]]' end		-- singularia tanutm
	if args['α'] == 'πλ' then output = output .. '[[Κατηγορία:' .. cat_pos .. ' χωρίς ενικό (' .. lang_name .. ')]]' end			-- pluralia tantum
	if args['α2'] == 'εν' then output = output .. '[[Κατηγορία:' .. cat_pos .. ' στον ενικό (' .. lang_name .. ')]]' end			-- mostly in the singular
	if args['α2'] == 'πλ' then output = output .. '[[Κατηγορία:' .. cat_pos .. ' στον πληθυντικό (' .. lang_name .. ')]]' end		-- mostly in the plural

-- κοινό
	args['κοινό'] = args['κοινό'] or ''
	if args['κοινό'] ~= '' and args['κοινό'] ~= nil then 
		args['κοινό'] = ' ' .. args['κοινό']
		output = output .. '[[Κατηγορία:Πολυλεκτικοί όροι με ένα κλιτό (' .. lang_name .. ')]]' end
	if args['κοινό'] ~= '' and args['κοινό'] ~= nil and args['αρσ'] == '1' then
		output = output .. '[[Κατηγορία:Κλίση αρσενικών πολυλεκτικών όρων με ένα κλιτό (' .. lang_name .. ')]]' end
	if args['κοινό'] ~= '' and args['κοινό'] ~= nil and args['θηλ'] == '1' then
		output = output .. '[[Κατηγορία:Κλίση θηλυκών πολυλεκτικών όρων με ένα κλιτό (' .. lang_name .. ')]]' end
	if args['κοινό'] ~= '' and args['κοινό'] ~= nil and args['ουδ'] == '1' then
		output = output .. '[[Κατηγορία:Κλίση ουδέτερων πολυλεκτικών όρων με ένα κλιτό (' .. lang_name .. ')]]' end


-- γενικές: αν εμφανίζεται ΜΟΝΟ στον αντίθετο αριθμό, να μην εισάγεται στην Κατηγορία
-- βλ. και επιμέρους functions όπου υπάρχει αυτή η σύμβαση (π.χ. όνομα, παιδάκι)
-- όπως (...)
	if args['γε'] == '-' then
		if args['α'] ~= 'πλ' and args['α2'] ~= 'πλ' then
			output = output .. '[[Κατηγορία:' .. cat_pos .. ' χωρίς γενική ενικού (' .. lang_name .. ')]]'
		end
	end
-- όπως [[χειροπέδη]] μόνο στον ενικό. Αν όμως εξακολουθεί να υπάρχει γπ2, να μην μπαίνει στην κατηγορία (όπως [[μπαγάσας]])
	if args['γπ'] == '-' and args['γπ2'] == nil then 
		if args['α'] ~= 'εν' and args['α2'] ~= 'εν' then
			output = output .. '[[Κατηγορία:' .. cat_pos .. ' χωρίς γενική πληθυντικού (' .. lang_name .. ')]]'
		end
	end
-- δύσχρηστη γενική ενικού όπως [[λιοστάσι]]
	if args['γε0'] ~= '' and args['γε0'] ~= nil then
		if args['α'] ~= 'πλ' and args['α2'] ~= 'πλ' then
			output = output .. '[[Κατηγορία:' .. cat_pos .. ' με δύσχρηστη γενική ενικού (' .. lang_name .. ')]]'
		end
	end
-- δύχρηστη γενική πληθυντικού όπως [[σκόνη]], [[νότα]]
	if args['γπ0'] ~= '' and args['γπ0'] ~= nil then
		if args['α'] ~= 'εν' and args['α2'] ~= 'εν' then
			output = output .. '[[Κατηγορία:' .. cat_pos .. ' με δύσχρηστη γενική πληθυντικού (' .. lang_name .. ')]]'
		end
	end
-- ΑΛΛΕΣ ΚΑΤΗΓΟΡΙΕΣ
	-- ανώμαλα (irregulars) --perhaps no needed
	if args['ανώμ'] == '1' then
		output = output .. '[[Κατηγορία:' .. cat_pos .. ' ανώμαλα (' .. lang_name .. ')]]'
	end
	-- plus exceptions  -- check [[μουσταλευριά]]
	if args['εξ'] == '1' or args['εξαίρεση'] == '1' then
		output = output .. '[[Κατηγορία:' .. cat_pos .. " που κλίνονται όπως το '" .. typos .. "' εξαιρέσεις (" .. lang_name .. ")]]"
	end
-- check [[πλούτος]], (για πολυλεκτικούς όρους [[Πρότυπο:el-κλίση-όροι]])
	
-- ======= EXTRA CATEGORIES: zero is reserved for the module ONLY, not for editor
-- free category, ελεύθερη κατηγορία +part of speech + language
	if args['υποκατ'] ~= '' and args ['υποκατ'] ~= nil then
		output = output .. '[[Κατηγορία:' .. cat_pos .. ' ' .. args['υποκατ'] .. ' (' .. lang_name .. ')]]'
	end
	if args['υποκατ1'] ~= '' and args ['υποκατ1'] ~= nil then
		output = output .. '[[Κατηγορία:' .. cat_pos .. ' ' .. args['υποκατ1'] .. ' (' .. lang_name .. ')]]'
	end
	if args['υποκατ2'] ~= '' and args ['υποκατ2'] ~= nil then
		output = output .. '[[Κατηγορία:' .. cat_pos .. ' ' .. args['υποκατ2'] .. ' (' .. lang_name .. ')]]'
	end
	-- for Module use ONLY 
	if args['υποκατ0'] ~= '' and args ['υποκατ0'] ~= nil then
		output = output .. '[[Κατηγορία:' .. cat_pos .. ' ' .. args['υποκατ0'] .. ' (' .. lang_name .. ')]]'
	end
	if args['υποκατ01'] ~= '' and args ['υποκατ01'] ~= nil then
		output = output .. '[[Κατηγορία:' .. cat_pos .. ' ' .. args['υποκατ01'] .. ' (' .. lang_name .. ')]]'
	end
	if args['υποκατ02'] ~= '' and args ['υποκατ02'] ~= nil then
		output = output .. '[[Κατηγορία:' .. cat_pos .. ' ' .. args['υποκατ02'] .. ' (' .. lang_name .. ')]]'
	end
	if args['υποκατ03'] ~= '' and args ['υποκατ03'] ~= nil then
		output = output .. '[[Κατηγορία:' .. cat_pos .. ' ' .. args['υποκατ03'] .. ' (' .. lang_name .. ')]]'
	end
	if args['υποκατ04'] ~= '' and args ['υποκατ04'] ~= nil then
		output = output .. '[[Κατηγορία:' .. cat_pos .. ' ' .. args['υποκατ04'] .. ' (' .. lang_name .. ')]]'
	end
-- free category, ελεύθερη κατηγορία + language
	if args['κατηγ0'] ~= '' and args['κατηγ0'] ~= nil then
			output = output .. '[[Κατηγορία:' .. args['κατηγ0'] .. ' (' .. lang_name .. ')]]'
	end

	if args['κατηγ'] ~= '' and args['κατηγ'] ~= nil then
			output = output .. '[[Κατηγορία:' .. args['κατηγ'] .. ' (' .. lang_name .. ')]]'
	end
	if args['κατηγ1'] ~= '' and args['κατηγ1'] ~= nil then
			output = output .. '[[Κατηγορία:' .. args['κατηγ1'] .. ' (' .. lang_name .. ')]]'
	end
	if args['κατηγ2'] ~= '' and args['κατηγ2'] ~= nil then
			output = output .. '[[Κατηγορία:' .. args['κατηγ2'] .. ' (' .. lang_name .. ')]]'
	end

-- free category, ελεύθερη κατηγορία NO LANGUAGE no restrictions, write free text -- -- test Template [[λύσας]]
	if args['cat-extra0'] ~= '' and args['cat-extra0'] ~= nil then
			output = output .. '[[Κατηγορία:' .. args['cat-extra0'] .. ']]'
	end
	if args['cat-extra'] ~= '' and args['cat-extra'] ~= nil then
			output = output .. '[[Κατηγορία:' .. args['cat-extra'] .. ']]'
	end
	if args['cat-extra1'] ~= '' and args['cat-extra1'] ~= nil then
			output = output .. '[[Κατηγορία:' .. args['cat-extra1'] .. ']]'
	end
	if args['cat-extra2'] ~= '' and args['cat-extra2'] ~= nil then
			output = output .. '[[Κατηγορία:' .. args['cat-extra2'] .. ']]'
	end

end -- close nocat
end -- close 'if namespace'


return output -- close fulltable

end


--------------------------------------------------------------------------
--           GENERAL DECLENSIONS  / ΓΕΝΙΚΕΣ ΚΛΙΣΕΙΣ                     --
--------------------------------------------------------------------------


--------------------------------------------------------------------------
--               5.   klisi1 - the basic function                       --
--------------------------------------------------------------------------
-- by Flyax and Xoristzatziki (2015-2018)
-- alterations of command names: 2020

klisi1 = function(args)
-- lemma
	local lemma = args['λήμμα'] or ''
	PAGENAME = mw.title.getCurrentTitle().text
	if lemma  == '' then args['λήμμα'] = PAGENAME:match( "^%s*(.-)%s*$" ) 
		else lemma = args['λήμμα']
	end 	
-- stems if lemma is in plural number (οπ = nom.pl)
    local stemnumber = 0
    if args['α'] ~= "πλ" or args['α2'] ~= "πλ" then
        stemnumber = tonumber(mw.ustring.len(args['οε']))
    end
    if args['α'] == "πλ" or args['α2'] == "πλ" then
        stemnumber = tonumber(mw.ustring.len(args['οπ']))	-- but if λήμμα= it MUST be the plural
    end
-- stems
    local stem = {}
    stem["θ"] = mw.ustring.sub(args['λήμμα'],1,-stemnumber-1)
    stem["θ0"] = m_stems.word0(stem["θ"])
    if stem["θ0"] == nil then return stem["θ"] end
    stem["θ1"] = m_stems.word1(stem["θ0"])
    stem["θ2"] = m_stems.word2(stem["θ0"])	-- για τον πληθ  -ούμενες, -όμεν-ες του [[κατηγορουμένη]] -- [[Πρότυπο:el-κλίση-'κατηγορουμένη']]
-- συνδυασμοί
    for  i, ptwsi in ipairs({'οε', 'γε', 'γε2', 'αε', 'κε', 'κε2', 'κε0', 'οπ', 'οπ2', 'γπ', 'γπ0', 'γπ2', 'απ', 'απ2'}) do
       if args[ptwsi .. 'θ'] == nil then args[ptwsi .. 'θ'] = "θ" end
    end
    for  i, ptwsi in ipairs({'γε', 'γε2', 'γπ', 'γπ0', 'γπ2'}) do
       if args[ptwsi] ~= nil then
          if m_stems.hasaccent(args[ptwsi]) then args[ptwsi .. 'θ'] = "θ0" end
       end
    end
    if args['οπ'] == "άδες" then
    args['οπθ'] = "θ0"
    args['απθ'] = "θ0"
    end
    if args['οπ2'] == "άδες" or args['οπ2'] == "αίοι" then
    args['οπ2θ'] = "θ0"
    args['απ2θ'] = "θ0"
    end
    if args['απ'] == nil then
       args['απ'] = args['οπ']
       args['απθ'] = args['οπθ']
    end
    if args['απ2'] == nil then
       args['απ2'] = args['οπ2']
       args['απθ2'] = args['οπθ2']
    end
    if args['κε'] == nil then args['κε'] = args['αε'] end

-- ---------- Χτίσιμο των τύπων - Generate forms ----------------- --
	---- ονομαστική ενικού
    args['οεΛ'] = linkcontrol2(stem[args['οεθ']], args['οε'])
    
    ---- γενική ενικού
    if (args['γε'] == "-" or args['γε'] == "" or args['γε'] == nil) then
    	args['αγε'] = '-'
        args['γεΛ'] = '<span style="color:#dddddd;">&mdash;</span>'
    else
        args['γεΛ'] = linkcontrol2(stem[args['γεθ']], args['γε'])
    end
    if args['γε0'] ~= nil then
        args['γεΛ'] = '(' .. linkcontrol2(stem[args['γε0θ']], args['γε0']) .. ')' -- όπως στο [[λιοστάσι]]
    end
    if args['γε2'] ~=nil and args['γε2'] ~= "" and args['γε2'] ~= "-" then
    	-- 2 γενικές, 2 άρθρα για μερικά κοινού γένους. Δεν θέλω το &
    	if args['α2γε'] ~= '' and args['α2γε'] ~= nil then
    		args['γε2Λ'] = "<br />" .. linkcontrol2(stem[args['γε2θ']], args['γε2']) -- όπως στο [[συγγραφέας]] και τα κοινού γένους με ΔΕΥΤΕΡΟ άρθρο δίπλα τους
    	else
        args['γε2Λ'] = "<br />&&nbsp;" .. linkcontrol2(stem[args['γε2θ']], args['γε2']) -- όπως στο [[λύση]]
        end
    else 
        args['γε2Λ'] = ''
    end
    args['γεΛ'] = args['γεΛ'] .. args['γε2Λ']   
    
	---- αιτιατική ενικού
    args['αεΛ'] = linkcontrol2(stem[args['αεθ']], args['αε'])
    if args['αε2'] ~= '' and args['αε2'] ~= nil then		-- όπως τον κατάπλουν στο [[κατάπλους]], function 'απόπλους'
        args['αε2Λ'] = "<br />&&nbsp;" .. linkcontrol2(stem[args['αεθ']], args['αε2'])
    else
        args['αε2Λ'] = "" -- πρόβλημα 
    end

    args['αεΛ'] = args['αεΛ'] .. args['αε2Λ']

    ---- κλητική ενικού
    if args['κε0'] ~= nil then
        args['κεΛ'] = '(' .. linkcontrol2(stem[args['κε0θ']], args['κε0']) .. ')' -- όπως στο [[έρημος]]
    else
    args['κεΛ'] = linkcontrol2(stem[args['κεθ']], args['κε'])
    end
    if args['κε2'] ~= nil and args['κε2'] ~= "" and args['κε2'] ~= "-" then
    	if args['κε2'] == "0" then
    		args['κε2Λ'] = " (" .. create_link((stem['θ']), (stem_color(stem['θ']))) .. ')' -- όπως θε! στο [[θεός]]
    	else
        	args['κε2Λ'] = "<br />(" .. linkcontrol2(stem[args['κε2θ']], args['κε2']) .. ')' -- σε παρένθεση, όχι με αστερίσκο
        end
    else
        args['κε2Λ'] = ""
    end
    args['κεΛ'] = args['κεΛ'] .. args['κε2Λ']

    ---- ΟΝΟΜΑΣΤΙΚΗ ΠΛΗΘΥΝΤΙΚΟΥ
    if args['οπΛ'] == '-' then args['οπΛ'] = '<span style="color:#dddddd;">&mdash;</span>' else		-- function θάλασσα for [[Αθήνα]]
    	args['οπΛ'] = linkcontrol2(stem[args['οπθ']], args['οπ'])
    end
    if args['οπ2'] ~= nil and args['οπ2'] ~= "" and args['οπ2'] ~= "-" then
        args['οπ2Λ'] = "<br />&&nbsp;" .. linkcontrol2(stem[args['οπ2θ']], args['οπ2']) -- όπως στο [[πραματευτής]]
    else
        args['οπ2Λ'] = ''
    end
    args['οπΛ'] = args['οπΛ'] .. args['οπ2Λ']
    args['κπΛ'] = args['οπΛ']

    ---- ΓΕΝΙΚΗ ΠΛΗΘΥΝΤΙΚΟΥ
    -- Προσοχή: Να μην εξαφανίζει το άρθρο όταν υπάρχει γπ0 αντί για γπ όπως [[νότα]]
    -- Προσοχή: Να μην εξαφανίζει το άρθρο όταν υπάρχει γπ2 με γπ=- όπως 
    if args['γπ'] == "-"  and (args['γπ2'] == '' or args['γπ2'] == nil) then	
    	args['αγπ'] = '-'
        args['γπΛ'] = '<span style="color:#dddddd;">&mdash;</span>'
    elseif args['γπ'] == "-"  and (args['γπ2'] ~= '' or args['γπ2'] ~= nil) then
        args['γπΛ'] = '<span style="color:#dddddd;">&mdash;</span>'
    else
        args['γπΛ'] = linkcontrol2(stem[args['γπθ']], args['γπ'])
    end
    if args['γπ0'] ~= nil then
        args['γπΛ'] = '(' .. linkcontrol2(stem[args['γπ0θ']], args['γπ0']) .. ')' -- όπως στο [[σκόνη]]
    end
    if args['γπ2'] ~= '' and args['γπ2'] ~= nil and args['γπ2'] ~= "-" then
        args['γπ2Λ'] = linkcontrol2(stem[args['γπ2θ']], args['γπ2'])  -- όπως στο [[καρδινάλιος]]
        if args['γπΛ'] ~= "" then
            args['γπ2Λ'] = "<br />&&nbsp;" .. args['γπ2Λ']
        end
    else
        args['γπ2Λ'] = ""
    end

    args['γπΛ'] = args['γπΛ'] .. args['γπ2Λ']

    ---- ΑΙΤΙΑΤΙΚΗ ΠΛΗΘΥΝΤΙΚΟΥ
    if args['απΛ'] == '-' then args['απΛ'] = '<span style="color:#dddddd;">&mdash;</span>' else		-- function θάλασσα for [[Αθήνα]]
    	args['απΛ'] = linkcontrol2(stem[args['απθ']], args['απ'])
    end
    if args['απ2'] ~=nil and args['απ2'] ~= "" and args['απ2'] ~= "-" then
    	-- 2 αιτιατ. πληθ, 2 άρθρα για μερικά κοινού γένους [[βιομήχανος]]. Δεν θέλω το &
    	if args['α2απ'] ~= '' and args['α2απ'] ~= nil then
    		args['απ2Λ'] = "<br />" .. linkcontrol2(stem[args['απ2θ']], args['απ2']) -- όπως στο [[βιομήχανος]] και τα κοινού γένους με ΔΕΥΤΕΡΟ άρθρο δίπλα τους
    	else
        args['απ2Λ'] = "<br />&&nbsp;" .. linkcontrol2(stem[args['απ2θ']], args['απ2']) -- όπως στο [[καρδινάλιος]]
        end
    else
        args['απ2Λ'] = ''
    end
    args['απΛ'] = args['απΛ'] .. args['απ2Λ']
    
    ---- ΚΛΗΤΙΚΗ ΠΛΗΘΥΝΤΙΚΟΥ
    -- όπως η αιτιατική πληθυντικού

    return fulltable(args)
end

--------------------------------------------------------------------------
--             6. klisi2 - double stems (infix added)                   --
--------------------------------------------------------------------------
-- by Flyax and Xoristzatziki (2015-2018)
-- alterations: 2020


--κλίση ουδετέρων ουσιαστικών που παίρνουν επιπλέον σύμφωνο στο «θέμα», τσάι, προϊόν, μέλλον
klisi2 = function(args)
-- lemma
	local lemma = args['λήμμα'] or ''
	PAGENAME = mw.title.getCurrentTitle().text
	if lemma  == '' then args['λήμμα'] = PAGENAME:match( "^%s*(.-)%s*$" ) 
		else lemma = args['λήμμα']
	end 	
-- stems if lemma is in plural number (οπ = nom.pl)
    local stemnumber = 0
    if args['α'] ~= "πλ" or args['α2'] ~= "πλ" then
        stemnumber = tonumber(mw.ustring.len(args['οε']))
    end
    if args['α'] == "πλ" or args['α2'] == "πλ" then
        stemnumber = tonumber(mw.ustring.len(args['οπ']))	-- but if λήμμα= it MUST be the plural
    end
    local stem = {}
    stem["θ"] = mw.ustring.sub(args['λήμμα'],1,-stemnumber-1)
    stem["θ0"] = m_stems.word0(stem["θ"])
    stem["θ1"] = m_stems.word1(stem["θ0"])

    args['οεΛ'] = linkcontrol2(stem[args['οεθ']], args['οε'])
-- γε=- όπως στο [[σπετζοφάι]]
    if (args['γε'] == "-" or args['γε'] == "" or args['γε'] == nil) then
    	args['αγε'] = '-'
        args['γεΛ'] = '<span style="color:#dddddd;">&mdash;</span>'
    else
        args['γεΛ'] = linkcontrol3(stem[args['γεθ']], args['πρόσφ'], args['γε'])
    end
    args['αεΛ'] = args['οεΛ']
    args['κεΛ'] = args['οεΛ']
    args['οπΛ'] = linkcontrol3(stem[args['οπθ']], args['πρόσφ'], args['οπ'])
-- γπ==ιών όπως στο [[μπόι]]
    if args['γπ0'] ~= "" and args['γπ0'] ~= nil then
    	args['γπΛ'] = '(' .. linkcontrol3(stem[args['γπθ']], args['πρόσφ'], args['γπ0']) .. ')'
-- γπ=- όπως στο [[σπετζοφάι]]
    elseif (args['γπ'] == "-" or args['γπ'] == "" or args['γπ'] == nil) then
    	args['αγπ'] = '-'
        args['γπΛ'] = '<span style="color:#dddddd;">&mdash;</span>'
    else
        args['γπΛ'] = linkcontrol3(stem[args['γπθ']], args['πρόσφ'], args['γπ'])
    end
    args['απΛ'] = args['οπΛ']
    args['κπΛ'] = args['οπΛ']

    return fulltable(args)
end


--------------------------------------------------------------------------
--       7.  FREE TABLE whole words or stems, endings, etc              --
--------------------------------------------------------------------------
-- by Sarri.greek 2020
-- [[Πρότυπο:el-nouns-decl]]
--[=[
* για τους κωδικούς καταλήξεων με μηδέν (οε0=, γε0=, αε0=...) θεωρούμε, ότι το θέμα παραμένει όπως οε8, γε8, αε8, ...
	Αν είναι αλλιώτικο, τότε χρησιμοποιούμε παράμετρο για ολόκληρη τη λέξη. Π.χ. γεΛ=([[....]])
]=]--

export.free = function(frame)
--local args = frame:getParent().args	-- for Templates
local args = frame.args		-- invoke

-- lemma. This is needed, to define the feminine accusative singular article (required Module:tin)
	local lemma = args['λήμμα'] or ''
	PAGENAME = mw.title.getCurrentTitle().text
	if lemma  == '' then args['λήμμα'] = PAGENAME:match( "^%s*(.-)%s*$" ) 
		else lemma = args['λήμμα']
	end 	
-- stems
    local stem = {}
    minusletters = args['μείον'] or ''
    if args['μείον'] == '' and args['μείον'] == nil then args['μείον'] = 2 end
    stem["θ"] = mw.ustring.sub(args['λήμμα'],1,-(minusletters+1))
    stem["θ0"] = m_stems.word0(stem["θ"])
    stem["θ1"] = m_stems.word1(stem["θ0"])
    stem["θ2"] = m_stems.word2(stem["θ0"])

--
	args['οεΛ'] = args['οεΛ'] or ''
	args['γεΛ'] = args['γεΛ'] or ''
	args['αεΛ'] = args['αεΛ'] or ''
	args['κεΛ'] = args['κεΛ'] or ''
	args['οπΛ'] = args['οπΛ'] or ''
	args['γπΛ'] = args['γπΛ'] or ''
	args['απΛ'] = args['απΛ'] or ''
	args['κπΛ'] = args['κπΛ'] or ''
--
	args['οε2Λ'] = args['οε2Λ'] or ''
	args['γε2Λ'] = args['γε2Λ'] or ''
	args['αε2Λ'] = args['αε2Λ'] or ''
	args['κε2Λ'] = args['κε2Λ'] or ''
	args['οπ2Λ'] = args['οπ2Λ'] or ''
	args['γπ2Λ'] = args['γπ2Λ'] or ''
	args['απ2Λ'] = args['απ2Λ'] or ''
	args['κπ2Λ'] = args['κπ2Λ'] or ''
-- για γε, οπ, γπ, απ, κπ
	args['πρόσφ'] = args['πρόσφ'] or ''
	args['πρόσφ2'] = args['πρόσφ2'] or ''
	args['κοινό1'] = args['κοινό1'] or ''
	args['κοινό'] = args['κοινό'] or ''


-- ονομαστική ενικού PLUS stem only, ending='0' όπως [[πυρ]]
	args['οεΛκειμ'] = args['οεΛκειμ'] or ''
	args['οε2Λκειμ'] = args['οε2Λκειμ'] or ''
	
	if args['οεθ'] == '' or args['οεθ'] == nil then
		args['οεθ'] = stem["θ"]
	else args['οεθ'] = args['οεθ']
	end

	if args['οε'] == '0' then	-- το πυρ
	args['οεΛ'] = args['κοινό1'] .. create_link((args['οεθ']), (stem_color(args['οεθ']))) .. args['κοινό'] .. args['οεΛκειμ']
	end

	if args['οε'] ~= '-' and args['οε'] ~= '0' and args['οε'] ~= '' and args['οε'] ~= nil then
   	args['οεΛ'] = args['κοινό1'] .. create_link((args['οεθ'] .. args['οε']), (stem_color(args['οεθ']) .. ending_color(args['οε']))) .. args['κοινό'] .. args['οεΛκειμ']
   	elseif args['οε'] == '-' then
   		args['οεΛ'] = '<span style="text-align:center; color:#dddddd;">&mdash;</span>' .. args['οεΛκειμ']
   	end
   	
   	if args['οε2'] ~= '-' and args['οε2'] ~= '' and args['οε2'] ~= nil then
	args['οε2Λ'] = '<br />&&nbsp;' .. create_link((args['οε2θ'] .. args['οε2']), (stem_color(args['οε2θ']) .. ending_color(args['οε2']))) .. args['οε2Λκειμ']
   	elseif args['οε2'] == '-' then
   		args['οε2Λ'] = '<span style="text-align:center; color:#dddddd;">&mdash;</span>' .. args['οε2Λκειμ']
   	end

	if args['οε0'] ~= '' and args['οε0'] ~= nil then
	args['οεΛ'] = '(' .. args['κοινό1'] .. create_link((args['οεθ'] .. args['οε0']), (stem_color(args['οεθ']) .. ending_color(args['οε0']))) .. args['κοινό'] .. ')' .. args['οεΛκειμ']
	end
   
    args['οεΛ'] = args['οεΛ'] .. args['οε2Λ']   


-- γενική ενικού PLUS infix, PLUS stem only, ending='0' όπως [[νους]] του νου
	args['γεΛκειμ'] = args['γεΛκειμ'] or ''
	args['γε2Λκειμ'] = args['γε2Λκειμ'] or ''
	
	if args['γεθ'] == '' or args['γεθ'] == nil then
		args['γεθ'] = stem["θ"]
	else args['γεθ'] = args['γεθ']
	end

	if args['γε'] == '0' then	-- ο [[νους]], του νου
	args['γεΛ'] = args['κοινό1'] .. create_link((args['γεθ']), (stem_color(args['γεθ']))) .. args['κοινό'] .. args['γεΛκειμ']
	end

	if args['γε'] ~= '-' and args['γε'] ~= '0' and args['γε'] ~= '' and args['γε'] ~= nil then
   	args['γεΛ'] = args['κοινό1'] .. create_link((args['γεθ'] .. args['πρόσφ'] .. args['γε']), (stem_color(args['γεθ']) .. infix_color(args['πρόσφ']) .. ending_color(args['γε']))) .. args['κοινό'] .. args['γεΛκειμ']
   	elseif args['γε'] == '-' then
   		args['γεΛ'] = '<span style="text-align:center; color:#dddddd;">&mdash;</span>' .. args['γεΛκειμ']
   	end
   	
   	if args['γε2'] ~= '-' and args['γε2'] ~= '' and args['γε2'] ~= nil then
-- δεύτερη γραμμή άρθρου για κοινού γένους ([[συγγραφέας]]) με 2 άρθρα, δεν θέλω το &
		if args['α2γε'] ~= '' and args['α2γε'] ~= nil then
	args['γε2Λ'] = '<br />' .. create_link((args['γε2θ'] .. args['πρόσφ2'] .. args['γε2']), (stem_color(args['γε2θ']) .. infix_color(args['πρόσφ2']) .. ending_color(args['γε2']))) .. args['γε2Λκειμ']
   		else
	args['γε2Λ'] = '<br />&&nbsp;' .. create_link((args['γε2θ'] .. args['πρόσφ2'] .. args['γε2']), (stem_color(args['γε2θ']) .. infix_color(args['πρόσφ2']) .. ending_color(args['γε2']))) .. args['γε2Λκειμ']
   		end
   	elseif args['γε2'] == '-' then
   		args['γε2Λ'] = '<span style="text-align:center; color:#dddddd;">&mdash;</span>' .. args['γε2Λκειμ']
   	end

	if args['γε0'] ~= '' and args['γε0'] ~= nil then
	args['γεΛ'] = '(' .. args['κοινό1'] .. create_link((args['γεθ'] .. args['πρόσφ'] .. args['γε0']), (stem_color(args['γεθ']) .. infix_color(args['πρόσφ']) .. ending_color(args['γε0']))) .. args['κοινό'] .. ')' .. args['γεΛκειμ']
	end
   
    args['γεΛ'] = args['γεΛ'] .. args['γε2Λ']   


-- αιτιατική ενικού PLUS stem only, ending='0' όπως [[ισχύς]], την ισχύ
	args['αεΛκειμ'] = args['αεΛκειμ'] or ''
	args['αε2Λκειμ'] = args['αε2Λκειμ'] or ''
	
	if args['αεθ'] == '' or args['αεθ'] == nil then
		args['αεθ'] = stem["θ"]
	else args['αεθ'] = args['αεθ']
	end

	if args['αε'] == '0' then	-- την ισχύ, τον ιχθύ
	args['αεΛ'] = args['κοινό1'] .. create_link((args['αεθ']), (stem_color(args['αεθ']))) .. args['κοινό'] .. args['αεΛκειμ']
	end
	
	if args['αε'] ~= '-' and args['αε'] ~= '0' and args['αε'] ~= '' and args['αε'] ~= nil then
   	args['αεΛ'] = args['κοινό1'] .. create_link((args['αεθ'] .. args['αε']), (stem_color(args['αεθ']) .. ending_color(args['αε']))) .. args['κοινό'] .. args['αεΛκειμ']
   	elseif args['αε'] == '-' then
   		args['αεΛ'] = '<span style="text-align:center; color:#dddddd;">&mdash;</span>' .. args['αεΛκειμ']
   	end

   	if args['αε2'] ~= '-' and args['αε2'] ~= '' and args['αε2'] ~= nil then
	args['αε2Λ'] = '<br />&&nbsp;' .. create_link((args['αε2θ'] .. args['αε2']), (stem_color(args['αε2θ']) .. ending_color(args['αε2']))) .. args['αε2Λκειμ']
   	elseif args['αε2'] == '-' then
   		args['αε2Λ'] = '<span style="text-align:center; color:#dddddd;">&mdash;</span>' .. args['αε2Λκειμ']
   	end

	if args['αε0'] ~= '' and args['αε0'] ~= nil then
	args['αεΛ'] = '(' .. args['κοινό1'] .. create_link((args['αεθ'] .. args['αε0']), (stem_color(args['αεθ']) .. ending_color(args['αε0']))) .. args['κοινό'] .. ')' .. args['αεΛκειμ']
	end
   
    args['αεΛ'] = args['αεΛ'] .. args['αε2Λ']   



-- κλητική ενικού PLUS stem only, ending='0' όπως [[ισχύς]], ω ισχύ!
	args['κεΛκειμ'] = args['κεΛκειμ'] or ''
	args['κε2Λκειμ'] = args['κε2Λκειμ'] or ''
	
	if args['κεθ'] == '' or args['κεθ'] == nil then
		args['κεθ'] = stem["θ"]
	else args['κεθ'] = args['κεθ']
	end

	if args['κε'] == '0' then	-- ω ισχύ, ω ιχθύ
	args['κεΛ'] = args['κοινό1'] .. create_link((args['κεθ']), (stem_color(args['κεθ']))) .. args['κοινό'] .. args['κεΛκειμ']
	end
	
	if args['κε'] ~= '-'  and args['κε'] ~= '0' and args['κε'] ~= '' and args['κε'] ~= nil then
   	args['κεΛ'] = args['κοινό1'] .. create_link((args['κεθ'] .. args['κε']), (stem_color(args['κεθ']) .. ending_color(args['κε']))) .. args['κοινό'] .. args['κεΛκειμ']
   	elseif args['κε'] == '-' then
   		args['κεΛ'] = '<span style="text-align:center; color:#dddddd;">&mdash;</span>' .. args['κεΛκειμ']
   	end
   	
   	if args['κε2'] ~= '-' and args['κε2'] ~= '' and args['κε2'] ~= nil then
	args['κε2Λ'] = '<br />&&nbsp;' .. create_link((args['κε2θ'] .. args['κε2']), (stem_color(args['κε2θ']) .. ending_color(args['κε2']))) .. args['κε2Λκειμ']
   	elseif args['κε2'] == '-' then
   		args['κε2Λ'] = '<span style="text-align:center; color:#dddddd;">&mdash;</span>' .. args['κε2Λκειμ']
   	end

	if args['κε0'] ~= '' and args['κε0'] ~= nil then
	args['κεΛ'] = '(' .. args['κοινό1'] .. create_link((args['κεθ'] .. args['κε0']), (stem_color(args['κεθ']) .. ending_color(args['κε0']))) .. args['κοινό'] .. ')' .. args['κεΛκειμ']
	end
   
    args['κεΛ'] = args['κεΛ'] .. args['κε2Λ']  



-- ΟΝΟΜΑΣΤΙΚΗ ΠΛΗΘΥΝΤΙΚΟΥ PLUS infix
	args['οπΛκειμ'] = args['οπΛκειμ'] or ''
	args['οπ2Λκειμ'] = args['οπ2Λκειμ'] or ''
	
	if args['οπθ'] == '' or args['οπθ'] == nil then
		args['οπθ'] = stem["θ"]
	else args['οπθ'] = args['οπθ']
	end

	if args['οπ'] ~= '-' and args['οπ'] ~= '' and args['οπ'] ~= nil then
   	args['οπΛ'] = args['κοινό1'] .. create_link((args['οπθ'] .. args['πρόσφ'] .. args['οπ']), (stem_color(args['οπθ']) .. infix_color(args['πρόσφ']) .. ending_color(args['οπ']))) .. args['κοινό'] .. args['οπΛκειμ']
   	elseif args['οπ'] == '-' then
   		args['οπΛ'] = '<span style="text-align:center; color:#dddddd;">&mdash;</span>' .. args['οπΛκειμ']
   	end
   	
   	if args['οπ2'] ~= '-' and args['οπ2'] ~= '' and args['οπ2'] ~= nil then
	args['οπ2Λ'] = '<br />&&nbsp;' .. create_link((args['οπ2θ'] .. args['πρόσφ2'] .. args['οπ2']), (stem_color(args['οπ2θ']) .. infix_color(args['πρόσφ2']) .. ending_color(args['οπ2']))) .. args['οπ2Λκειμ']
   	elseif args['οπ2'] == '-' then
   		args['οπ2Λ'] = '<span style="text-align:center; color:#dddddd;">&mdash;</span>' .. args['οπ2Λκειμ']
   	end

	if args['οπ0'] ~= '' and args['οπ0'] ~= nil then
	args['οπΛ'] = '(' .. args['κοινό1'] .. create_link((args['οπθ'] .. args['πρόσφ'] .. args['οπ0']), (stem_color(args['οπθ']) .. infix_color(args['πρόσφ']) .. ending_color(args['οπ0']))) .. args['κοινό'] .. ')' .. args['οπΛκειμ']
	end
   
    args['οπΛ'] = args['οπΛ'] .. args['οπ2Λ']   


-- ΓΕΝΙΚΗ ΠΛΗΘΥΝΤΙΚΟΥ PLUS infix  Check [[κανάγιας]]
	args['γπΛκειμ'] = args['γπΛκειμ'] or ''
	args['γπ2Λκειμ'] = args['γπ2Λκειμ'] or ''
	
	if args['γπθ'] == '' or args['γπθ'] == nil then
		args['γπθ'] = stem["θ"]
	else args['γπθ'] = args['γπθ']
	end

	-- όπως [[κανάγιας]], των -  + check [[ναύλος]]
	if args['γπ'] ~= '-' and args['γπ'] ~= '' and args['γπ'] ~= nil then
   	args['γπΛ'] = args['κοινό1'] .. create_link((args['γπθ'] .. args['πρόσφ'] .. args['γπ']), (stem_color(args['γπθ']) .. infix_color(args['πρόσφ']) .. ending_color(args['γπ']))) .. args['κοινό'] .. args['γπΛκειμ']
   	elseif args['γπ'] == '-' then
   		args['γπΛ'] = '<span style="text-align:center; color:#dddddd;">&mdash;</span>' .. args['γπΛκειμ']
   	end
   	
   	if args['γπ2'] ~= '-' and args['γπ2'] ~= '' and args['γπ2'] ~= nil then
	args['γπ2Λ'] = '<br />&&nbsp;' .. create_link((args['γπ2θ'] .. args['πρόσφ2'] .. args['γπ2']), (stem_color(args['γπ2θ']) .. infix_color(args['πρόσφ2']) .. ending_color(args['γπ2']))) .. args['γπ2Λκειμ']
   	elseif args['γπ2'] == '-' then
   		args['γπ2Λ'] = '<span style="text-align:center; color:#dddddd;">&mdash;</span>' .. args['γπ2Λκειμ']
   	end

	if args['γπ0'] ~= '' and args['γπ0'] ~= nil then
	args['γπΛ'] = '(' .. args['κοινό1'] .. create_link((args['γπθ'] .. args['πρόσφ'] .. args['γπ0']), (stem_color(args['γπθ']) .. infix_color(args['πρόσφ']) .. ending_color(args['γπ0']))) .. args['κοινό'] .. ')' .. args['γπΛκειμ']
	end

    args['γπΛ'] = args['γπΛ'] .. args['γπ2Λ']   


-- ΑΙΤΙΑΤΙΚΗ ΠΛΗΘΥΝΤΙΚΟΥ PLUS infix
	args['απΛκειμ'] = args['απΛκειμ'] or ''
	args['απ2Λκειμ'] = args['απ2Λκειμ'] or ''
	
	if args['απθ'] == '' or args['απθ'] == nil then
		args['απθ'] = stem["θ"]
	else args['απθ'] = args['απθ']
	end

	if args['απ'] ~= '-' and args['απ'] ~= '' and args['απ'] ~= nil then
   	args['απΛ'] = args['κοινό1'] .. create_link((args['απθ'] .. args['πρόσφ'] .. args['απ']), (stem_color(args['απθ']) .. infix_color(args['πρόσφ']) .. ending_color(args['απ']))) .. args['κοινό'] .. args['απΛκειμ']
   	elseif args['απ'] == '-' then
   		args['απΛ'] = '<span style="text-align:center; color:#dddddd;">&mdash;</span>' .. args['απΛκειμ']
   	end
   	
   	if args['απ2'] ~= '-' and args['απ2'] ~= '' and args['απ2'] ~= nil then
    	-- 2 αιτιατ. πληθ, 2 άρθρα για μερικά κοινού γένους [[βιομήχανος]]. Δεν θέλω το &
    	if args['α2απ'] ~= '' and args['α2απ'] ~= nil then
		args['απ2Λ'] = '<br />' .. create_link((args['απ2θ'] .. args['πρόσφ2'] .. args['απ2']), (stem_color(args['απ2θ']) .. infix_color(args['πρόσφ2']) .. ending_color(args['απ2']))) .. args['απ2Λκειμ']
    	else
        args['απ2Λ'] = '<br />&&nbsp;' .. create_link((args['απ2θ'] .. args['πρόσφ2'] .. args['απ2']), (stem_color(args['απ2θ']) .. infix_color(args['πρόσφ2']) .. ending_color(args['απ2']))) .. args['απ2Λκειμ']
        end
   	elseif args['απ2'] == '-' then
   		args['απ2Λ'] = '<span style="text-align:center; color:#dddddd;">&mdash;</span>' .. args['απ2Λκειμ']
   	end

	if args['απ0'] ~= '' and args['απ0'] ~= nil then
	args['απΛ'] = '(' .. args['κοινό1'] .. create_link((args['απθ'] .. args['πρόσφ'] .. args['απ0']), (stem_color(args['απθ']) .. infix_color(args['πρόσφ']) .. ending_color(args['απ0']))) .. args['κοινό'] .. ')' .. args['απΛκειμ']
	end
   
    args['απΛ'] = args['απΛ'] .. args['απ2Λ']   


-- ΚΛΗΤΙΚΗ ΠΛΗΘΥΝΤΙΚΟΥ PLUS infix
	args['κπΛκειμ'] = args['κπΛκειμ'] or ''
	args['κπ2Λκειμ'] = args['κπ2Λκειμ'] or ''
	
	if args['κπθ'] == '' or args['κπθ'] == nil then
		args['κπθ'] = stem["θ"]
	else args['κπθ'] = args['κπθ']
	end

	if args['κπ'] ~= '-' and args['κπ'] ~= '' and args['κπ'] ~= nil then
   	args['κπΛ'] = args['κοινό1'] .. create_link((args['κπθ'] .. args['πρόσφ'] .. args['κπ']), (stem_color(args['κπθ']) .. infix_color(args['πρόσφ']) .. ending_color(args['κπ']))) .. args['κοινό'] .. args['κπΛκειμ']
   	elseif args['κπ'] == '-' then
   		args['κπΛ'] = '<span style="text-align:center; color:#dddddd;">&mdash;</span>' .. args['κπΛκειμ']
   	end
   	
   	if args['κπ2'] ~= '-' and args['κπ2'] ~= '' and args['κπ2'] ~= nil then
	args['κπ2Λ'] = '<br />&&nbsp;' .. create_link((args['κπ2θ'] .. args['πρόσφ2'] .. args['κπ2']), (stem_color(args['κπ2θ']) .. infix_color(args['πρόσφ2']) .. ending_color(args['κπ2']))) .. args['κπ2Λκειμ']
   	elseif args['κπ2'] == '-' then
   		args['κπ2Λ'] = '<span style="text-align:center; color:#dddddd;">&mdash;</span>' .. args['κπ2Λκειμ']
   	end

	if args['κπ0'] ~= '' and args['κπ0'] ~= nil then
	args['κπΛ'] = '(' .. args['κοινό1'] .. create_link((args['κπθ'] .. args['πρόσφ'] .. args['κπ0']), (stem_color(args['κπθ']) .. infix_color(args['πρόσφ']) .. ending_color(args['κπ0']))) .. args['κοινό'] .. ')' .. args['κπΛκειμ']
	end
   
    args['κπΛ'] = args['κπΛ'] .. args['κπ2Λ']   


-- 2ος πληθυντικός	
	args['οπΛ2'] = args['οπΛ2'] or ''
	args['γπΛ2'] = args['γπΛ2'] or ''
	args['απΛ2'] = args['απΛ2'] or ''
	args['κπΛ2'] = args['κπΛ2'] or ''
return fulltable(args)
end


-------------------------------- DECL--------------------------------------
-- decl - it creates functions for specific declensions at the function pages
-- otherwise, it is EXACTLY like free
-----------------------------------------------------------------------------
decl = function(args)	-- creates functions at the /function page

-- all the declension parameters & functions: ======================
require ('Module:yy/param').param (args)

------------
return fulltable(args)
end


--------------------------------------------------------------------------
--          8. SPECIFIC TEMPLAGES / ΕΠΙΜΕΡΟΥΣ ΠΡΟΤΥΠΑ                   --
--------------------------------------------------------------------------
-- =================== α...ω ======================= --

-- see [[Module:el-nouns-decl/functions]]

return export