Module:grc-nouns-decl : param : κλίση1 - κλίση2 - κλίση3 - ανώμαλα : τεκμηρίωση
Κατηγορία:Πρότυπα κλίσης ουσιαστικών (αρχαία ελληνικά) - Κατηγορία:Έλεγχος κλίσης - manual
Παράρτημα:Ουσιαστικά (αρχαία ελληνικά) :  :  :  : ανώμαλα - Κατηγορία:Ουσιαστικά (αρχαία ελληνικά)
Βοήθεια:Πρότυπα κλίσης ουσιαστικών (αρχαία ελληνικά) - Module:grc-articles - Module:grk-stems



-- αρχαία ελληνικά ουσιαστικά - Declension of nouns for Ancient Greek, Hellenistic Koine with |grc-koi=1
-- It includes dative case. Also can be used for Mediaeval Greek |gkm=1
	-- and other polytonic versions of Greek (καθαρεύουσα |kath=1).
-- Editors can suppress the module parameters (mod-xx=) by writing xx= (see /param page)
-- Κάθε κλίση έχει το Πρότυπό της / Each declension-function has its Template
--[=[
* previously by Flyax (2015-2018)
* additions & /param page: 2021, Sarri.greek
INSTRUCTIONS for modules see bottom of page /  ΟΔΗΓΙΕΣ γι' αυτό το module, βλ. τέλος σελίδας
	-- check https://en.wiktionary.org/wiki/Module:grc-decl/decl/staticdata/paradigms
Instructions for editors / Οδηγίες για συντάκτες: [[:Κατηγορία:Πρότυπα κλίσης ουσιαστικών (αρχαία ελληνικά)/οδηγίες]]
EDITOR_MUST_DEFINE extra parameters at the following templates:
	* δίχρ= (for dubious dichrona) #1χώρα #1νεανίας #1γνώμη #1στρατιώτης #3γείτων #3γέρων #3γίγας #3γυψ #3κτήτωρ
	* χαρ= (last letter of stem) #3φύλαξ #3γύψ
	* προπαροξ= (for the bug: capital+spirit+τόνος) #3φύλαξ #3γύψ
	* θέμα= (for second stem) = #3γυψ, #3φύλαξ
	* τύπος=  (for dubious pluralia tantum) #3βέλος #κτήμα
EXTERNAL_LINKS in args['mod-σημ'] at 3#βασιλεύς#αλιεύς 3#πατρίς(cf Adjectives 3#εύελπις)
]=]--

--[=[
STRUCTURE: 
	1. required modules, stem production
	2. links and style
	3. line 185: the TABLE
	4. line 1035: Categories
	5. line 1580: decl links to /param page (basic function for declensions in the functionpages)
	6. and: free links to /param page (invoke from pages)
	notes at bottom
]=]--

--[=[
PROBLEMS
* after 2021.12. changes, μείον= does not work (default stems) CHECK [[πῦρ]] [[Σουσάννα]]
* Fixed BUG for capital+spirit+tonos omits tonos when converted -- the stem['θ'] MUST BE REPEATED
	e.g.  3#πόλις [[Ἄλπεις]] 3#βέλος [[Ἄργος]]  
	3#φύλαξ  [[Ἶσις]] does not convert to Ἴσιδ (psile+okseia) it MUST BE handled separately
TO DO ΕΚΚΡΕΜΟΤΗΤΕΣ
* CORRECT θ2 with accent2syn_i (which recognizes diphthongs) --------####
* make doric articles and doric, epic declensions
* special flag for attested forms when they have a quotation at their page??
* auto articles CHECK [[κόρυμβος]]
]=]--



export = {} -- DO NOT write local export. It does not work.

--------------------------------------------------------------------------
-- 1. STEM PRODUCTION, REQUIRED MODULES / ΔΗΜΙΟΥΡΓΙΑ ΘΕΜΑΤΩΝ, MODULES   --
--------------------------------------------------------------------------

-- ==================== REQUIRED ======================= --
languages = mw.loadData("Module:Languages") -- to choose grc, gkm, kath, greek languages with same script

module_path = 'Module:grc-nouns-decl'

m_1 = require(module_path .. "/1") 
-- cannot call all subpages directly from here. Each one will call the next:
-- here we call m_1 = require(module_path .. "/1") -- 1st declension functions
		-- m_1 calls: m_2 = require(module_path .. "/2") -- 2nd declension functions
			-- m_2 calls m_3 and so forth

-- do not name 'local': it does not work for module subpages
m_stems = require("Module:grk-stems") -- stem production: 
	--functions:
		--word-3 subtracts 3 letters from end, word-2, word-1 etc
		--word0 = no accent, word1 = accent on ultima,  word2 = accent on penultima
		--hasaccent = tells us if it has an accent

m_data = require("Module:grk-stems/data") -- for finding vowels, vowels+tonos etc
-- m_data.vowel_perispomeni = '[ᾶᾷἆᾆἇᾇῆῇἦᾖἧᾗῖἶἷῗῦὖὗῧῶῷὦᾦὧᾧἎᾎἏᾏἮᾞἯᾟἾἿὟὮᾮὯᾯ]' -- vowel+perispomeni
-- m_data.brachy_oxeia = '[έὲἔἒἕἓόὸὄὂὅὃΈῈἜἚἝἛΌῸὌὊὍὋ]' -- brachy+okseia or vareia
-- m_data.macron_oxeia = '[ήῄὴῂἤᾔἢᾒἥᾕἣᾓώῴὼῲὤᾤὢᾢὥᾥὣᾣΉῊἬᾜἪᾚᾚἭᾝἫᾛῺὬᾬὪᾪὭᾭὫᾫ]' -- macron+okseia or vareia
-- m_data.dichronon_oxeia = '[άᾴὰᾲἄᾄἂᾂἅᾅἃᾃίὶἴἲἵἳΐῒύὺὔὒὕὓΰῢΆᾺἌᾌἊᾊᾊἍᾍἋᾋΊῚἼἺἽἻΎῪὝὛ]' -- dichronon+okseia or vareia
-- m_data.diphthong_tonos = '[αΑεΕηΗοΟ][ίὶῖἴἲἶἵἳἷΊῚἼἺἾἽἻἿύὺῦὔὒὖὑὕὓὗΎῪὝὛὟ]' -- diphthong+tonos (okseia, vareia, perispomeni) NOT dialytics ΐῒῗΰῢῧ 

-- articles: USE at ARTICLES section: require ('Module:grc-articles').articles (args)
	-- DO NOT USE here,  m_art = require ('Module:grc-articles').articles (args)
	-- and DO NOT change at all any args for articles

-- call the page /param (it has all parameters) at bottom of this page


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

-- =========== standard colours for grc: LightSteelBlue =  #b0c4de 70%-75%-GREY-95%)  GREY c3
-- borders
c_border = '#c9d7e8' -- same as c3 or stronger: same as c_1
c_bord = '#f4f4f4' -- 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 = '#93aed2' -- ROW title1 MAIN, number names, and border for title2 if it exists
c_2 = '#a5bcd9' -- title2 subtitles, genders of adjectives and border for title1
c_3 = '#e3e5e8' -- = from Grey --Lightsteelblue was '#c9d7e8' -- title3, all the subtitles 
c_4 = '#edf2f7' -- background for notes 
-- also, see below, at languages, special colours for different lang iso

-- font colours
c_ending = '#eb0000'			-- is DeepPink. For wikitext, template [[Πρότυπο:χκ]], never bold
c_stem = '#002000'			-- For wikitext, template [[Πρότυπο:χθ]], never bold
c_black = '#000000'			-- for subtitles
c_cccccc = '#cccccc'			-- not used here (possible for dubious forms)
c_green = '#008000'			-- not used here (possibly for infix)

-- =============== styles
-- for table style, cf. the beginning of fulltable

font_cell = "font-family:; letter-spacing:1px;"				-- tested, rejected: Palatino linotype; font-family:Times; 
fontsize_cell = "font-size:110%;"		-- tested: font-size:130%; (too big)

--  ============== apply font 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 exactly an inifix. It is extra letters of a 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:
--black_word = function(black_word)
--    return '<span style="color:' .. c_black ..'; font-weight:;">' .. black_word .. '</span>'
--end
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

-- 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, infixed letters and ending
linkcontrol3 = function(thema, infix, suffix)
	thema = thema or ''
	infix = infix or '' -- need for ὀστοῦν function
	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

-- if ambiguous dichrona vowels are not specified as macron or as brachy or as ?
-- όταν τα δίχρονα δεν έχουν προσωδία δίχρ=μ ή δίχρ=β ή δίχρ=?
-- use it with: if blahblah then return error_dichr end
error_dichr = function(errordichrstring)
	page = mw.title.getCurrentTitle()
	page.name = page.text:match( "^%s*(.-)%s*$" )
	if page.namespace == 0 then	-- Categories work only in MAIN namespace	
	return '<div style="font-size:15px; color:red;">* Κλίση: Θα πρέπει να ορίσουμε το δίχρονο φωνήεν με |δίχρ=β (βραχύ) ή |δίχρ=μ (μακρό).<br>Αν δεν υπάρχουν πληροφορίες, |δίχρ=?</div>'
	.. '[[Κατηγορία:Λήμματα χωρίς προσωδία σε δίχρονο φωνήεν (αρχαία ελληνικά)]]'	
	else
	return '<div style="font-size:15px; color:red;">* Κλίση: Θα πρέπει να ορίσουμε το δίχρονο φωνήεν με |δίχρ=β (βραχύ) ή |δίχρ=μ (μακρό).<br>Αν δεν υπάρχουν πληροφορίες, |δίχρ=?</div>'
	end
end



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

fulltable = function(args)

-- table: DEFAULT at RIGHT for el.wikt  -- for some browsers need border="1"
local float = args['float'] or ''
	if args['float'] == 'right' then
table_style1 = 'style="clear:right; float:right; margin-left:0.5em; margin-bottom:0.5em;'
	.. 'background:#ffffff; color:#000000; border:1px solid' .. c_border ..'; text-align:right;"'
	.. '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; color:#000000; border:1px solid' .. c_border ..'; text-align:center;"'
	.. 'rules="none" border="1" cellpadding="3" cellspacing="0"'	
	elseif args['float'] == 'left' then
table_style1 = 'style="clear:left; float:left; position:relative; margin:0px 1.5em 0.5em 0px;'
	.. 'background:#ffffff; color:#000000; border:1px solid' .. c_border ..'; text-align:left;"'
	.. 'rules="none" border="1" cellpadding="3" cellspacing="0"'
	else -- DEFAULT IS right
table_style1 = 'style="clear:right; float:right; margin-left:0.5em; margin-bottom:0.5em;'
	.. 'background:#ffffff; color:#000000; border:1px solid' .. c_border ..'; text-align:right;"'
	.. 'rules="none" border="1" cellpadding="3" cellspacing="0"'		
	end


-- titles (title from module + extra title) check [[Βαβυλωνίς]] Control: [[Λεβαδία]] (only mod-title, [[Βαβυλωνεύς]] (no title)) [[κρίνον]] (only editor's 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
	local dichr = args['δίχρ'] or ''		-- for dichronous (either macron or brachy δίχρ=β is brachy)

	cat_pos = args['μέρος λόγου'] or 'Ουσιαστικά' -- pos: Part of Speech
	if args['τόπος'] == '1' or args['όνομα'] == '1' or args['πατρωνυμικό'] == '1' or args['κύριο'] == '1' then
		cat_pos = 'Κύρια ονόματα'
--		output = output .. '[[Κατηγορία:' .. 'Κύρια ονόματα' .. " της κλίσης '" .. typos .. "' (" .. lang_name .. ")]]"
	end

-- typos, klisi
--	cat = args['κατ'] or ''
		-- this does not work from here
		-- if args['κατ'] ~= '' and args['κατ'] ~= nil then cat = args['τύπος'] end
	typos = args['τύπος'] or ''
	local klisi = args['κλίση'] or ''		-- also see notes and Categories
		if args['κλίση'] == '1' then klisi = '1' end
		if args['κλίση'] == '2' then klisi = '2' end
		if args['κλίση'] == '2αττ' then klisi = '2αττ' end
		if args['κλίση'] == '3' then klisi = '3' end
		if args['κλίση'] == 'ανώμαλα' then klisi = 'ανώμαλα' end 
		if args['κλίση'] == '0' then klisi = 'ανώμαλα' end

	local stem_line = ''
	local stem_cell = ''

-- row for subtitles (dialects or gender of numbers if different) 
	-- [[λάτρις]] [[Ἑρμῆς]]  [[Περσείδης]]
	-- ἑτερογενῆ =  ὁ λύχνος - τὰ λύχνα, ὁ σῖτος - τὰ σῖτα , ὁ δεσμὸς - οἱ δεσμοὶ καὶ τὰ δεσμά, τὸ στάδιον - τὰ στάδια καὶ οἱ στάδιοι
	-- also see an exceptional singular + optional column for extra plurals, articles optional at [[αἰδώς]] function page/3
	local subtitle = ''
	local subtitle_sg = args['υπότιτλος-εν'] or '' 
		
		if args['υπότιτλος-εν'] == 'αθ' then args['υπότιτλος-εν'] = 'κοινού γένους'
	elseif args['υπότιτλος-εν'] == 'αρσ' then args['υπότιτλος-εν'] = '[[αρσενικό|' .. black_color('αρσενικό') .. ']]'
			-- check [[λύχνος]]
			args['αοε'] = "αρσ"	args['αγε'] = "αρσ"	args['αδε'] = "αρσ"	args['ααε'] = "αρσ"		args['αοδ'] = "αρσ"	args['αγδ'] = "αρσ"
	elseif args['υπότιτλος-εν'] == 'θηλ' then args['υπότιτλος-εν'] = '[[θηλυκό|' .. black_color('θηλυκό') .. ']]'
	elseif args['υπότιτλος-εν'] == 'ουδ' then args['υπότιτλος-εν'] = '[[ουδέτερο|' .. black_color('ουδέτερο') .. ']]'
	elseif args['υπότιτλος-εν'] == 'θο' then args['υπότιτλος-εν'] = '[[θηλυκό|' .. black_color('θηλυκό') .. ']] ή [[ουδέτερο' .. black_color('ουδέτερο') .. ']]'
	elseif args['υπότιτλος-εν'] ~= 'αρσ' and args['υπότιτλος-εν'] ~= 'θηλ' and args['υπότιτλος-εν'] ~= 'ουδ' and args['υπότιτλος-εν'] ~= 'αθ' and args['υπότιτλος-εν'] ~= 'θο' then
		args['υπότιτλος-εν'] = args['υπότιτλος-εν'] or ''
	end
--  need subtitle_sg2 for ὁ [[ζυγός]] τό [[ζυγόν]] / text [[Αἰνείας]]
	local subtitle_sg2 = args['υπότιτλος-εν2'] or '' -- δεύτερος ενικός
		if args['υπότιτλος-εν2'] == 'αρσ' then args['υπότιτλος-εν2'] = '[[αρσενικό|' .. black_color('αρσενικό') .. ']]'
	elseif args['υπότιτλος-εν2'] == 'θηλ' then args['υπότιτλος-εν2'] = '[[θηλυκό|' .. black_color('θηλυκό') .. ']]'
	elseif args['υπότιτλος-εν2'] == 'ουδ' then args['υπότιτλος-εν2'] = '[[ουδέτερο|' .. black_color('ουδέτερο') .. ']]'
	elseif args['υπότιτλος-εν2'] == 'αθ' then args['υπότιτλος-εν2'] = 'κοινού γένους'
	elseif args['υπότιτλος-εν2'] == 'θο' then args['υπότιτλος-εν2'] = '[[θηλυκό|' .. black_color('θηλυκό') .. ']] ή [[ουδέτερο' .. black_color('ουδέτερο') .. ']]'
	else
		args['υπότιτλος-εν2'] = args['υπότιτλος-εν2'] or ''
	end

	local subtitle_pl = args['υπότιτλος-πλ'] or ''
		if args['υπότιτλος-πλ'] == 'αρσ' then args['υπότιτλος-πλ'] = '[[αρσενικό|' .. black_color('αρσενικό') .. ']]'
	elseif args['υπότιτλος-πλ'] == 'θηλ' then args['υπότιτλος-πλ'] = '[[θηλυκό|' .. black_color('θηλυκό') .. ']]'
	elseif args['υπότιτλος-πλ'] == 'ουδ' then args['υπότιτλος-πλ'] = '[[ουδέτερο|' .. black_color('ουδέτερο') .. ']]'
			-- check [[λύχνος]]
			args['αοπ'] = "ουδ"	args['αγπ'] = "ουδ"	args['αδπ'] = "ουδ"	args['ααπ'] = "ουδ"		args['αοδ'] = "αρσ"	args['αγδ'] = "αρσ"
	elseif args['υπότιτλος-πλ'] == 'αθ' then args['υπότιτλος-πλ'] = 'κοινού γένους'
	elseif args['υπότιτλος-πλ'] == 'θο' then args['υπότιτλος-πλ'] = '[[θηλυκό|' .. black_color('θηλυκό') .. ']] ή [[ουδέτερο' .. black_color('ουδέτερο') .. ']]'
	elseif args['υπότιτλος-πλ'] ~= 'αρσ' and args['υπότιτλος-πλ'] ~= 'θηλ' and args['υπότιτλος-πλ'] ~= 'ουδ' and args['υπότιτλος-πλ'] ~= 'αθ' and args['υπότιτλος-πλ'] ~= 'θο' then
		args['υπότιτλος-πλ'] = args['υπότιτλος-πλ'] or '' 
	end
-- check [[λάτρις]]
	local subtitle_pl2 = args['υπότιτλος-πλ2'] or ''	-- 2ος πληθυντικός
	-- and see ΚΑΤΗΓΟΡΙΕΣ for Κατηγορία:Ο με διαλεκτικούς τύπους
		if args['υπότιτλος-πλ2'] == 'αρσ' then args['υπότιτλος-πλ2'] = '[[αρσενικό|' .. black_color('αρσενικό') .. ']]'
	elseif args['υπότιτλος-πλ2'] == 'θηλ' then args['υπότιτλος-πλ2'] = '[[θηλυκό|' .. black_color('θηλυκό') .. ']]'
	elseif args['υπότιτλος-πλ2'] == 'ουδ' then args['υπότιτλος-πλ2'] = '[[ουδέτερο|' .. black_color('ουδέτερο') .. ']]'
	elseif args['υπότιτλος-πλ2'] == 'αθ' then args['υπότιτλος-πλ2'] = 'κοινού γένους'
	elseif args['υπότιτλος-πλ2'] == 'θο' then args['υπότιτλος-πλ2'] = '[[θηλυκό|' .. black_color('θηλυκό') .. ']] ή [[ουδέτερο' .. black_color('ουδέτερο') .. ']]'
-- withdraw (see above))
--	elseif args['υπότιτλος-πλ2'] ~= 'αρσ' and args['υπότιτλος-πλ2'] ~= 'θηλ' and args['υπότιτλος-πλ2'] ~= 'ουδ' and args['υπότιτλος-πλ2'] ~= 'αθ' and args['υπότιτλος-πλ2'] ~= 'θο'
--		and args['υπότιτλος-πλ2'] ~= '' and args['υπότιτλος-πλ2'] ~= nil
--		then
--		args['υπότιτλος-πλ2'] = args['υπότιτλος-πλ2'] .. '[[Κατηγορία:' .. cat_pos .. ' με διαλεκτικούς τύπους στον πίνακα κλίσης (' .. lang_name .. ')]]'
	else
		args['υπότιτλος-πλ2'] = args['υπότιτλος-πλ2'] or ''
	end

-- Σημείωση: οι παράμετρες .... = '' χρειάζονται αν ΔΕΝ υπάρχει το /param

	-- numbers
	local sg_title_str = ''			-- singularis title string / ἑνικός
	local sg2_title_str = ''		-- 2nd singualr title / 2ος ενικός αν υπάρχει
	local pl_title_str = ''			-- pluralis  title / πληθυντικός
	local pl2_title_str = ''		-- 2nd plural title / 2ος πληθυντικός αν υπάρχει
	local dualrow = ''				-- not always
	local du_title_str = ''			-- dualis title / δυϊκός
	-- cases
	local nom_sg_str = ''			-- nominativus singularis / ὀνομαστική ἑνικός
	local nom_sg2_str = ''
	local nom_pl_str = ''
	local nom_pl2_str = ''
	local nom_du_str = ''
	local gen_sg_str = ''			-- genitivus / γενική
	local gen_sg2_str = ''
	local gen_pl_str = ''
	local gen_pl2_str = ''
	local gen_du_str = ''
	local dat_sg_str = ''			-- dativus / δοτική
	local dat_sg2_str = ''
	local dat_pl_str = ''
	local dat_pl2_str = ''
	local dat_du_str = ''
	local acc_sg_str = ''			-- accusativus / αἰτιατική
	local acc_sg2_str = ''
	local acc_pl_str = ''
	local acc_pl2_str = ''
	local acc_du_str = ''
	local voc_sg_str = ''			-- vocativus / κλητική
	local voc_sg2_str = ''
	local voc_pl_str = ''
	local voc_pl2_str = ''
	local voc_du_str = ''
	-- articles / ἄρθρα (see [[Module:grc-articles]] (Also parameter άρθρα=0 to omit all articles)
	local a_nom_sg_str = ''
	local a_nom_sg2_str = ''
	local a_nom_pl_str = ''
	local a_nom_pl2_str = ''
	local a_nom_du_str = ''
	local a_gen_sg_str = ''
	local a_gen_sg2_str = ''
	local a_gen_pl_str = ''
	local a_gen_pl2_str = ''
	local a_gen_du_str = ''
	local a_dat_sg_str = ''
	local a_dat_sg2_str = ''
	local a_dat_pl_str = ''
	local a_dat_pl2_str = ''
	local a_dat_du_str = ''
	local a_acc_sg_str = ''
	local a_acc_sg2_str = ''
	local a_acc_pl_str = ''
	local a_acc_pl2_str = ''
	local a_acc_du_str = ''
	local a_voc_sg_str = ''
	local a_voc_sg2_str = ''
	local a_voc_pl_str = ''
	local a_voc_pl2_str = ''
	local a_voc_du_str = ''

-- ARTICLES ===========================================================
	-- also see an exceptional singular + optional column for extra plurals, articles optional at [[αἰδώς]] function page/3
require ('Module:grc-articles').articles (args)

-- NUMBERS ================================================================
	local hassingular = true		-- (args['εν'] ~= nil)
	local hasplural = true			-- (args['πλ'] ~= nil)
	local hasdual = true			-- (args['δυ'] ~= '-')

	-- α = Ουσιαστικά ΧΩΡΙΣ τον άλλο αριθμό / the other number does not exist. For pluralia and singularia tantum
	-- α2 = Υπάρχει γραμματικά και ο άλλος αριθμός / The other number grammatically exists (not used)
	-- ενδ = yes dual together with singular
	-- πλδ = yes dual together with plural
	if args['α'] == "πλδ" or args['α2'] == "πλδ" then hassingular = false end	-- get plural and dual
	if args['α'] == "πλ" or args['α2'] == "πλ" then								-- get plural only
		hassingular = false
		hasdual = false
	end

	if args['α'] == "ενδ" or args['α2'] == "ενδ" then hasplural = false end	-- get singular and dual
	if args['α'] == "εν" or args['α2'] == "εν" then							-- get singular only
		hasplural = false
		hasdual = false
	end
  
-- number of columns for full rows ?????? may write e.g. columns = '10' and it is ok
	-- also see an exceptional singular + optional column for extra plurals, articles optional at [[αἰδώς]] function page/3
	-- 1+2 (only one number)
	if (args['α'] == 'εν' or args['α2'] == 'εν' or args['α'] == 'ενδ' or args['α2'] == 'ενδ') or (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['α'] ~= 'πλ' 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['α'] ~= 'πλ' 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['α'] ~= 'πλ' 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'] == 'εν') or (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'] == 'πλ') or (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 & whole LINES ================================================================
    local paratirisi = args['παρατήρηση'] or ''	 -- notes by editor
    local note = args['mod-σημ'] or  ''	-- standard notes by Template
    local appendix = ''				-- standard link for [[Παράρτημα:Ουσιαστικά (αρχαία ελληνικά)]]

    local append = ''				-- link to gourp, category and specific paradigm at Appendix

-- group is a super-umbrella category if needed for similar declensions
    local group = args['ομάδα'] or ''    	-- at functions
    if args['ομάδα'] ~= '' and args['ομάδα'] ~= nil then
    	if args['ομάδα'] == 'συγκοπτόμενα' then
		group = "[[:Κατηγορία:" .. "Ουσιαστικά συγκοπτόμενα (αρχαία ελληνικά)|συγκοπτόμενα]]," 
		else
    	-- make the group standard index, as cat_decl is
    	group = "[[:Κατηγορία:" .. 'Ουσιαστικά' .. " που κλίνονται όπως η ομάδα '" .. group .. "' (" .. 'αρχαία ελληνικά' .. ")|ομάδα '" .. group .. "']]," 
		end
		-- NEED to WRITE AGAIN at CATEGORIES under if mainspace and under nocat
    end
    
-- cat_decl does ONE umbrella category for all the 'typos' categories in it, whatever PoS, whatever language (grc, koine)
    local cat_decl = args['κατηγορία κλίσης']	or ''    	--  at functions 
	if args['gkm'] ~= '' and args['gkm'] ~= nil then
   	-- in neuter singular
			cat_decl_str = " [[:Κατηγορία:" .. 'Ουσιαστικά' .. " με κλίση όπως το '" .. cat_decl .. "' (" .. 'μεσαιωνικά ελληνικά' .. ")|Κατηγορία '" .. cat_decl .. "']]"
		
	else -- all grc, grc-koi, grc-dor, etc UNDER αρχαία ελληνικά
    
		if args['κατηγορία κλίσης'] == "-" or args['κατηγορία κλίσης'] == '' or args['κατηγορία κλίσης'] == nil then 
		cat_decl_str = '' -- control cat:
		
		elseif args['κατηγορία κλίσης'] ~= "-" and args['κατηγορία κλίσης'] ~= '' and args['κατηγορία κλίσης'] ~= nil then 

		
    		--write it aτ notes & add the category at ΚΑΤΗΓΟΡΙΕΣ under mainspace and uner nocat
    		-- all the neuter plurals:
    	if args['κατηγορία κλίσης'] == 'ανώμαλα' or args['κατηγορία κλίσης'] == 'ιδιόκλιτα' then
		  	cat_decl_str = " [[:Κατηγορία:Ουσιαστικά ανώμαλα (αρχαία ελληνικά)|Κατηγορία '" .. cat_decl .. "']]"
		elseif args['κατηγορία κλίσης'] == 'ελλειπτικά' then
	   		cat_decl_str = " [[:Κατηγορία:Ουσιαστικά ελλειπτικά (αρχαία ελληνικά)|Κατηγορία '" .. cat_decl .. "']]"
		elseif args['κατηγορία κλίσης'] == 'ετερόκλιτα' then
	   		cat_decl_str = " [[:Κατηγορία:Ουσιαστικά ετερόκλιτα (αρχαία ελληνικά)|Κατηγορία '" .. cat_decl .. "']]"
		elseif args['κατηγορία κλίσης'] == 'μεταπλαστά' then
	   		cat_decl_str = " [[:Κατηγορία:Ουσιαστικά μεταπλαστά (αρχαία ελληνικά)|Κατηγορία '" .. cat_decl .. "']]"
    	elseif args['κατηγορία κλίσης'] == 'συγκοπτόμενα' then
		   	cat_decl_str = " [[:Κατηγορία:" .. 'Ουσιαστικά' .. " με κλίση όπως τα " .. cat_decl .. " (" .. 'αρχαία ελληνικά' .. ")|Κατηγορία '" .. cat_decl .. "']]"
    	elseif args['κατηγορία κλίσης'] == 'μονοσύλλαβα με εξαιρέσεις' then
		   	cat_decl_str = " [[:Κατηγορία:Ουσιαστικά μονοσύλλαβα με εξαιρέσεις (αρχαία ελληνικά)|Κατηγορία 'μονοσύλλαβα']]"
    	else
    	-- in neuter singular
			cat_decl_str = " [[:Κατηγορία:" .. 'Ουσιαστικά' .. " με κλίση όπως το '" .. cat_decl .. "' (" .. 'αρχαία ελληνικά' .. ")|Κατηγορία '" .. cat_decl .. "']]"
    	end
    	
    end -- close if gkm
    end
    	
-- όπως = a link to Appendix's clitic paradigm
    local as_in = args['όπως'] or ''
    if as_in ~= '' and as_in ~= nil then
    	if args['gkm'] == '2' then
    		as_in = ' όπως «[[Παράρτημα:Γραμματική (μεσαιωνικά ελληνικά)#' .. as_in .. '|' .. as_in .. ']]»'
    	else -- all grc, grc-koi, gkm=1 etc
    		if args['κλίση'] == 'ανώμαλα' or args['κλίση'] == '0' then
    		as_in = ' όπως «[[Παράρτημα:Ουσιαστικά (αρχαία ελληνικά)/ανώμαλα#' .. as_in .. '|' .. as_in .. ']]»'
    		elseif args['κλίση'] == '2αττ' then
    		as_in = ' όπως «[[Παράρτημα:Ουσιαστικά (αρχαία ελληνικά)/2#' .. as_in .. '|' .. as_in .. ']]»'
    		else -- klisi 1, 2, 3
    		as_in = ' όπως «[[Παράρτημα:Ουσιαστικά (αρχαία ελληνικά)/' .. klisi .. '#' .. as_in .. '|' .. as_in .. ']]»'
    		end
    	end -- close if gkm=2
    end
    
-- append WRITE the first part of the appendix line
	if args['κλίση'] == 'ανώμαλα' or args['κλίση'] == '0' then
		append = '[[Παράρτημα:Ουσιαστικά (αρχαία ελληνικά)/ανώμαλα|ανώμαλη κλίση]], ' .. group .. cat_decl_str .. as_in .. ' - '
	elseif args['κλίση'] == '2αττ' then
		append = '[[Παράρτημα:Ουσιαστικά (αρχαία ελληνικά)/2#αττικόκλιτα|2η κλίση - αττικόκλιτα]], ' .. group .. cat_decl_str .. as_in .. ' - '
	elseif args['κλίση'] == '1' or args['κλίση'] == '2' or args['κλίση'] == '3' then
		append = '[[Παράρτημα:Ουσιαστικά (αρχαία ελληνικά)/' .. klisi .. '|' .. klisi .. 'η κλίση]], ' .. group .. cat_decl_str .. as_in .. ' - '
	end

-- stem line MUST be placed at Section Rows
    
-- ============== note lines / σημείωση παρατήρηση

-- ### adding this, BECAUSE en-en2 does not work for notes
if (args['α'] == 'εν' or args['α2'] == 'εν') or (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
		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
	-- appendix
	if args['παράρτημα'] == '-' then appendix = ''
	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['παράρτημα'] .. about .. "\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>]]' 
		.. about .. "\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 = ''
	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['παράρτημα'] .. about .. "\n"
	else
		if args['gkm'] == '2' then
		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>]]'
		.. about .. "\n"
		else -- all grc, grc-koi, gkm=1 etc
		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>]]'
		.. about .. "\n"
		end -- close if gkm=2
	end
end -- close ## addition
    
    
-- ========== CELLS  ===============================================    
-- extra title string
	if args['mod-τίτλος'] ~= '' and args['mod-τίτλος'] ~= nil then
		extratitle_str =  args['mod-τίτλος'] .. "\n"
	end
    
-- stem_cell --this is a full row, but it does not come first, it goes UNDER last row
	if args['θέματα'] ~= '' and args['θέματα'] ~= nil then
		-- colspan as in columms

		stem_cell = [=[| style="background:]=] .. c_3 .. [=[; border-right:1px solid ]=] .. c_border .. [=[; ]=] .. font_cell .. fontsize_cell ..
		[=["  colspan="]=] .. columns .. [=[" align="left" | ]=] .. args['θέματα'] .. "\n"
 
	end -- close stem_cell


-- (spaces added for good copy-paste result)
if hassingular then
	-- for 2 columns only (table_style1's border does not apply)
	if args['α'] == 'εν' or args['α2'] == 'εν' or args['α'] == 'ενδ' or args['α2'] == 'ενδ' then
		c_bordR = c_border
    	
        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"
	else -- different right border
		c_bordR = c_bord -- soft right border if more columns follow
		
        sg_title_str =  [=[! style="background:]=] .. c_1 .. [=[; border-right:1px solid ]=] .. c_2 ..
        [=[;" 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_1 ..
        [=[; font-size:70%; font-style:italic; line-height:100%;" colspan="2" align="center"| ]=] .. args['υπότιτλος-εν'] .. "\n"	
	end	
        a_nom_sg_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[; ]=] .. font_cell .. fontsize_cell ..
        [=[" align="center" | ]=] .. args['αοε'] ..  "\n" --DO NOT TEST m_art(args['αοε'])
        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_dat_sg_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[; ]=] .. font_cell .. fontsize_cell ..
        [=[" align="center" | ]=] .. args['αδε'] ..  "\n"
        dat_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
		-- also see an exceptional singular + optional column for extra plurals, articles optional at [[αἰδώς]] function page/3
		
	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_dat_pl_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[; ]=] .. font_cell .. fontsize_cell ..
        [=[" align="center" | ]=] .. args['αδπ'] ..  "\n"
        dat_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_dat_pl_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[; ]=] .. font_cell .. fontsize_cell ..
        [=[" align="center" | ]=] .. args['αδπ'] ..  "\n"
        dat_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	-- 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 ''
		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_dat_sg2_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[; ]=] .. font_cell .. fontsize_cell ..
        [=[" align="center" | ]=] .. args['αδε2'] ..  "\n"
        dat_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ος πληθυντικός
	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 ''
		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_dat_pl2_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[; ]=] .. font_cell .. fontsize_cell ..
        [=[" align="center" | ]=] .. args['αδπ2'] ..  "\n"
        dat_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

if hasdual then -- need lines only for nom, gen
-- yes dual

-- 2 cols	ενδ ΟΡ πλδ	
	if (args['α'] == 'ενδ' or args['α2'] == 'ενδ' or args['α'] == 'πλδ' or args['α2'] == 'πλδ') and args['δυ'] ~= '-'
	and (args['υπότιτλος-εν2'] == '' or args['υπότιτλος-εν2'] == nil)
	and (args['υπότιτλος-πλ2'] == '' or args['υπότιτλος-πλ2'] == nil)
	then
    	
        du_title_str =  [=[! style="background:]=] .. c_2 .. [=[; border-right:1px solid ]=] .. c_border ..
        [=[; font-size:80%; line-height:100%;" colspan="2" align="center" | [[δυϊκός|<span title="δυϊκός ἀριθμός" style="color:black;">'''''δυϊκός'''''</span>]]]=] .. "\n"
        
        a_nom_du_str = [=[| style="border-bottom:1px solid ]=] .. c_bord ..
        [=[; font-size:90%; line-height:100%;" align="center" colspan="1" | ]=] .. args['αοδ'] .. "\n"
        nom_du_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[; border-right:1px solid ]=] .. c_border .. [=[; ]=] .. font_cell ..
        [=[; font-size:90%; line-height:100%;" align="left" colspan="1" | ]=] .. args['οδΛ'] .. "\n"
        a_gen_du_str = [=[| style="border-bottom:1px solid ]=] .. c_bord ..
        [=[; font-size:90%; line-height:100%;" align="center" colspan="1" | ]=] .. args['αγδ'] .. "\n"
        gen_du_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[; border-right:1px solid ]=] .. c_border .. [=[; ]=] .. font_cell ..
        [=[; font-size:90%; line-height:100%;" align="left" colspan="1" | ]=] .. args['γδΛ'] .. "\n"
    
-- 4 cols 
	elseif (args['α'] ~= 'ενδ' and args['α2'] ~= 'ενδ' and args['α'] ~= 'πλδ' and args['α2'] ~= 'πλδ') and args['δυ'] ~= '-'
	and (args['υπότιτλος-εν2'] == '' or args['υπότιτλος-εν2'] == nil)
	and (args['υπότιτλος-πλ2'] == '' or args['υπότιτλος-πλ2'] == nil)
	then
        du_title_str =  [=[! style="background:]=] .. c_2 .. [=[; border-right:1px solid ]=] .. c_border ..
        [=[; font-size:80%; line-height:100%;" colspan="4" align="center" | [[δυϊκός|<span title="δυϊκός ἀριθμός" style="color:black;">'''''δυϊκός'''''</span>]]]=] .. "\n"
        
        a_nom_du_str = [=[| style="border-bottom:1px solid ]=] .. c_bord ..
        [=[; font-size:90%; line-height:100%; text-align:right;" align="right" colspan="2" | ]=] .. args['αοδ'] .. '&nbsp;' .. "\n"
        nom_du_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[; border-right:1px solid ]=] .. c_border .. [=[; ]=] .. font_cell ..
        [=[; font-size:90%; line-height:100%;" align="left" colspan="2" | ]=] .. args['οδΛ'] .. "\n"
        a_gen_du_str = [=[| style="border-bottom:1px solid ]=] .. c_bord ..
        [=[; font-size:90%; line-height:100%; text-align:right;" align="right" colspan="2" | ]=] .. args['αγδ'] .. '&nbsp;' .. "\n"
        gen_du_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[; border-right:1px solid ]=] .. c_border .. [=[; ]=] .. font_cell ..
        [=[; font-size:90%; line-height:100%;" align="left" colspan="2" | ]=] .. args['γδΛ'] .. "\n"
        
-- 6 cols for  en en2 pl
	elseif (args['α'] ~= 'ενδ' and args['α2'] ~= 'ενδ' and args['α'] ~= 'πλδ' and args['α2'] ~= 'πλδ') and args['δυ'] ~= '-'
	and (args['υπότιτλος-εν2'] ~= '' and args['υπότιτλος-εν2'] ~= nil)
	and (args['υπότιτλος-πλ2'] == '' or args['υπότιτλος-πλ2'] == nil)
	then
        du_title_str =  [=[! style="background:]=] .. c_2 .. [=[; border-right:1px solid ]=] .. c_border ..
        [=[; font-size:80%; line-height:100%;" colspan="6" align="center" | [[δυϊκός|<span title="δυϊκός ἀριθμός" style="color:black;">'''''δυϊκός'''''</span>]]]=] .. "\n"
        
        a_nom_du_str = [=[| style="border-bottom:1px solid ]=] .. c_bord ..
        [=[; font-size:90%; line-height:100%; text-align:right;" align="right" colspan="3" | ]=] .. args['αοδ'] .. '&nbsp;' .. "\n"
        nom_du_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[; border-right:1px solid ]=] .. c_border .. [=[; ]=] .. font_cell ..
        [=[; font-size:90%; line-height:100%;" align="left" colspan="3" | ]=] .. args['οδΛ'] .. "\n"
        a_gen_du_str = [=[| style="border-bottom:1px solid ]=] .. c_bord ..
        [=[; font-size:90%; line-height:100%; text-align:right;" align="right" colspan="3" | ]=] .. args['αγδ'] .. '&nbsp;' .. "\n"
        gen_du_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[; border-right:1px solid ]=] .. c_border .. [=[; ]=] .. font_cell ..
        [=[; font-size:90%; line-height:100%;" align="left" colspan="3" | ]=] .. args['γδΛ'] .. "\n"
        
       
-- 6 cols for  en pl pl2
	elseif (args['α'] ~= 'ενδ' and args['α2'] ~= 'ενδ' and args['α'] ~= 'πλδ' and args['α2'] ~= 'πλδ') and args['δυ'] ~= '-'
	and (args['υπότιτλος-εν2'] == '' or args['υπότιτλος-εν2'] == nil)
	and (args['υπότιτλος-πλ2'] ~= '' and args['υπότιτλος-πλ2'] ~= nil)
	then
        du_title_str =  [=[! style="background:]=] .. c_2 .. [=[; border-right:1px solid ]=] .. c_border ..
        [=[; font-size:80%; line-height:100%;" colspan="6" align="center" | [[δυϊκός|<span title="δυϊκός ἀριθμός" style="color:black;">'''''δυϊκός'''''</span>]]]=] .. "\n"
        
        a_nom_du_str = [=[| style="border-bottom:1px solid ]=] .. c_bord ..
        [=[; font-size:90%; line-height:100%; text-align:right;" align="right" colspan="3" | ]=] .. args['αοδ'] .. '&nbsp;' .. "\n"
        nom_du_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[; border-right:1px solid ]=] .. c_border .. [=[; ]=] .. font_cell ..
        [=[; font-size:90%; line-height:100%;" align="left" colspan="3" | ]=] .. args['οδΛ'] .. "\n"
        a_gen_du_str = [=[| style="border-bottom:1px solid ]=] .. c_bord ..
        [=[; font-size:90%; line-height:100%; text-align:right;" align="right" colspan="3" | ]=] .. args['αγδ'] .. '&nbsp;' .. "\n"
        gen_du_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[; border-right:1px solid ]=] .. c_border .. [=[; ]=] .. font_cell ..
        [=[; font-size:90%; line-height:100%;" align="left" colspan="3" | ]=] .. args['γδΛ'] .. "\n"
        
       
-- 8 cols for  en en2 pl pl2
	elseif (args['α'] ~= 'ενδ' and args['α2'] ~= 'ενδ' and args['α'] ~= 'πλδ' and args['α2'] ~= 'πλδ') and args['δυ'] ~= '-'
	and (args['υπότιτλος-εν2'] ~= '' and args['υπότιτλος-εν2'] ~= nil)
	and (args['υπότιτλος-πλ2'] ~= '' and args['υπότιτλος-πλ2'] ~= nil)
	then
        du_title_str =  [=[! style="background:]=] .. c_2 .. [=[; border-right:1px solid ]=] .. c_border ..
        [=[; font-size:80%; line-height:100%;" colspan="8" align="center" | [[δυϊκός|<span title="δυϊκός ἀριθμός" style="color:black;">'''''δυϊκός'''''</span>]]]=] .. "\n"
        
        a_nom_du_str = [=[| style="border-bottom:1px solid ]=] .. c_bord ..
        [=[; font-size:90%; line-height:100%; text-align:right;" align="right" colspan="4" | ]=] .. args['αοδ'] .. '&nbsp;' .. "\n"
        nom_du_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[; border-right:1px solid ]=] .. c_border .. [=[; ]=] .. font_cell ..
        [=[; font-size:90%; line-height:100%;" align="left" colspan="4" | ]=] .. args['οδΛ'] .. "\n"
        a_gen_du_str = [=[| style="border-bottom:1px solid ]=] .. c_bord ..
        [=[; font-size:90%; line-height:100%; text-align:right;" align="right" colspan="4" | ]=] .. args['αγδ'] .. '&nbsp;' .. "\n"
        gen_du_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[; border-right:1px solid ]=] .. c_border .. [=[; ]=] .. font_cell ..
        [=[; font-size:90%; line-height:100%;" align="left" colspan="4" | ]=] .. args['γδΛ'] .. "\n"

-- 4 cols  for other combinations........ hope it is ok
	else
        du_title_str =  [=[! style="background:]=] .. c_2 .. [=[; border-right:1px solid ]=] .. c_border ..
        [=[; font-size:80%; line-height:100%;" colspan="4" align="center" | [[δυϊκός|<span title="δυϊκός ἀριθμός" style="color:black;">'''''δυϊκός'''''</span>]]]=] .. "\n"
        
        a_nom_du_str = [=[| style="border-bottom:1px solid ]=] .. c_bord ..
        [=[; font-size:90%; line-height:100%; text-align:right;" align="right" colspan="2" | ]=] .. args['αοδ'] .. '&nbsp;' .. "\n"
        nom_du_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[; border-right:1px solid ]=] .. c_border .. [=[; ]=] .. font_cell ..
        [=[; font-size:90%; line-height:100%;" align="left" colspan="2" | ]=] .. args['οδΛ'] .. "\n"
        a_gen_du_str = [=[| style="border-bottom:1px solid ]=] .. c_bord ..
        [=[; font-size:90%; line-height:100%; text-align:right;" align="right" colspan="2" | ]=] .. args['αγδ'] .. '&nbsp;' .. "\n"
        gen_du_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[; border-right:1px solid ]=] .. c_border .. [=[; ]=] .. font_cell ..
        [=[; font-size:90%; line-height:100%;" align="left" colspan="2" | ]=] .. args['γδΛ'] .. "\n"

	end -- close if ... numbers exist
end -- close dual


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

-- stem_line
	if args['θέματα'] ~= '' and args['θέματα'] ~= nil then stem_line =
'|-' .. "\n" .. [=[| style="background:]=] .. c_3 .. [=[; border-bottom:1px solid ]=] .. c_4 .. [=[; line-height:100%;" align="left"|  ]=] .. "\n" .. stem_cell .. [=[|-]=]
	end


-- subtitle line
	-- sg, pl have different number
	if (args['υπότιτλος-εν'] ~= '' or args['υπότιτλος-πλ'] ~= '') 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, pl
	if 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 .. [=[|-]=]
	end
	-- sg, 2 plurals
	if 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 plurasl
	if args['υπότιτλος-εν2'] ~= '' and args['υπότιτλος-εν2'] ~= 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	
	
	
	-- ouput WIHTOUT dual
	if args['α'] == 'εν' or args['α2'] == 'εν' or args['α'] == 'πλ' or args['α2'] == 'πλ' or args['δυ'] == '-' or args['καθ'] == '1' or args['kath'] == '1' then
	
	-- + extratitle_str	
	if args['mod-τίτλος'] ~= '' and args['mod-τίτλος'] ~= nil then
			-- FOR mediaeval GKM output without datives - test [[παλληκάριον]]
			if args['δοτ'] == '-' or args['dat'] == '-' 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 .. stem_line .. 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>]] [[ὦ|<span style="color:black;">ὦ</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 --yes datives (when no dual, yes extratitles)
    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 .. stem_line .. 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;&nbsp;&nbsp;[[δοτική|<span title="πτῶσις δοτική" style="color:black;">'''''δοτική'''''</span>]]]=] ..
	"\n" .. a_dat_sg_str .. dat_sg_str .. a_dat_sg2_str .. dat_sg2_str .. a_dat_pl_str .. dat_pl_str .. a_dat_pl2_str .. dat_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>]] [[ὦ|<span style="color:black;">ὦ</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 if dat=-
	else -- no extratitle_str
			-- FOR mediaeval GKM output without datives when no dual, no extratitles - test [[παλληκάριον]]
			if args['δοτ'] == '-' or args['dat'] == '-' then
		
    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 .. stem_line .. 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>]] [[ὦ|<span style="color:black;">ὦ</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 --yes datives (when no dual, no extratitles)

		
    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 .. stem_line .. 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;&nbsp;&nbsp;[[δοτική|<span title="πτῶσις δοτική" style="color:black;">'''''δοτική'''''</span>]]]=] ..
	"\n" .. a_dat_sg_str .. dat_sg_str .. a_dat_sg2_str .. dat_sg2_str .. a_dat_pl_str .. dat_pl_str .. a_dat_pl2_str .. dat_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>]] [[ὦ|<span style="color:black;">ὦ</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 if dat=-

	end -- close extratitle_str
		
		
	else -- WITH dual
	
	-- + 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 .. stem_line .. 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;&nbsp;&nbsp;[[δοτική|<span title="πτῶσις δοτική" style="color:black;">'''''δοτική'''''</span>]]]=] ..
	"\n" .. a_dat_sg_str .. dat_sg_str .. a_dat_sg2_str .. dat_sg2_str .. a_dat_pl_str .. dat_pl_str .. a_dat_pl2_str .. dat_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>]] [[ὦ|<span style="color:black;">ὦ</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 .. [=[|-
! style="background:]=] .. c_3 .. [=[; border-top:1px solid ]=] .. c_4 .. [=[; border-bottom:1px solid ]=] .. c_4 ..
	[=[; text-align:center; font-size:90%; line-height:100%;" align="center"| &nbsp; ]=] ..
	"\n" .. du_title_str .. [=[|-
| style="background:]=] .. c_3 .. [=[; border-bottom:1px solid ]=] .. c_4 ..
	[=[; text-align:right; font-size:85%; line-height:100%;"|  <span title="πτώσεις ὀνομαστικὴ, αἰτιατική καὶ κλητική" style="color:black;">''ονομ-αιτ-κλ''</span>]=] ..
	"\n" .. a_nom_du_str .. nom_du_str .. [=[|-
| style="background:]=] .. c_3 .. [=[; border-bottom:1px solid ]=] .. c_4 ..
	[=[; text-align:right; font-size:85%; line-height:100%;"| <span title="πτώσεις γενικὴ καὶ δοτική" style="color:black;">''γεν-δοτ''</span>]=] ..
	"\n" .. a_gen_du_str .. gen_du_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 .. stem_line .. 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;&nbsp;&nbsp;[[δοτική|<span title="πτῶσις δοτική" style="color:black;">'''''δοτική'''''</span>]]]=] ..
	"\n" .. a_dat_sg_str .. dat_sg_str .. a_dat_sg2_str .. dat_sg2_str .. a_dat_pl_str .. dat_pl_str .. a_dat_pl2_str .. dat_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>]] [[ὦ|<span style="color:black;">ὦ</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 .. [=[|-
! style="background:]=] .. c_3 .. [=[; border-top:1px solid ]=] .. c_4 .. [=[; border-bottom:1px solid ]=] .. c_4 ..
	[=[; text-align:center; font-size:90%; line-height:100%;" align="center"| &nbsp; ]=] ..
	"\n" .. du_title_str .. [=[|-
| style="background:]=] .. c_3 .. [=[; border-bottom:1px solid ]=] .. c_4 ..
	[=[; text-align:right; font-size:85%; line-height:100%;"|  <span title="πτώσεις ὀνομαστικὴ, αἰτιατική καὶ κλητική" style="color:black;">''ονομ-αιτ-κλ''</span>]=] ..
	"\n" .. a_nom_du_str .. nom_du_str .. [=[|-
| style="background:]=] .. c_3 .. [=[; border-bottom:1px solid ]=] .. c_4 ..
	[=[; text-align:right; font-size:85%; line-height:100%;"| <span title="πτώσεις γενικὴ καὶ δοτική" style="color:black;">''γεν-δοτ''</span>]=] ..
	"\n" .. a_gen_du_str .. gen_du_str .. paratirisi .. appendix .. [=[|}]=]
	end -- close extratitle_str

	end -- close output if dual exists



--------------------------------------------------------------------------
--                   4. Categories / Κατηγορίες                         --
-- DO NOTTT do anything with cat_decl here. Only typos categories
-- μέρος λόγου = the PartOfSpeech (plus as ProperNouns, Surnames etc) -- see above, if όνομα=1, then pos = κύρια...
-- τύπος = the catchword of the category in quotation marks
	-- may be τύπος=-
-- κατ = overrides τύπος
-- and free categories
--------------------------------------------------------------------------
-- Categories only in mainspace
local page = mw.title.getCurrentTitle()
page.name = page.text:match( "^%s*(.-)%s*$" )
if page.namespace == 0 then	-- Categories work only in MAIN namespace

-- nocat= 1
if (args['nocat'] ~= '' and args['nocat'] ~= nil) or (args['00'] ~= '' and args['00'] ~= nil) then
	output = output
else
	-- κατηγορία= overrides everything
	if args['κατηγορία'] ~= '' and args['κατηγορία'] ~= nil then -- free text for Category
		output = output .. '[[Κατηγορία:' .. args['κατηγορία'] .. ']]'
	else
		
		local group = args['ομάδα']	or ''	-- need to write it AGAIN HERE
		if args['ομάδα'] ~= '' and args['ομάδα'] ~= nil then
		-- see above the appendix line
			if args['ομάδα'] == 'συγκοπτόμενα' then
		output = output .. "[[Κατηγορία:" .. "Ουσιαστικά συγκοπτόμενα (αρχαία ελληνικά)]]"
			else
		output = output .. "[[Κατηγορία:" .. 'Ουσιαστικά' .. " που κλίνονται όπως η ομάδα '" .. group .. "' (" .. 'αρχαία ελληνικά' .. ")]]"
--    	output = output .. "[[Κατηγορία:" .. cat_pos .. " που κλίνονται όπως η ομάδα '" .. group .. "' (" .. lang_name .. ")]]"
			end
		end
--	if args['κατηγορία κλίσης'] ~= "-" and args['κατηγορία κλίσης'] ~= '' and args['κατηγορία κλίσης'] ~= nil then 
    	-- see above the appendix line
    	-- SEE notes & add the category at ΚΑΤΗΓΟΡΙΕΣ under mainspace and uner nocat
    	-- all the neuter plurals:
    if args['gkm'] == '2' then
		output = output .. "[[Κατηγορία:" .. 'Ουσιαστικά' .. " με κλίση όπως το '" .. cat_decl .. "' (" .. 'μεσαιωνικά ελληνικά' .. ")]]"
	else
		-- all grc, grc-koi, grc-... UNDER αρχαία ελληνικά
    	
    	if args['κατηγορία κλίσης'] == 'ανώμαλα' or args['κατηγορία κλίσης'] == 'ιδιόκλιτα'
    	 or args['κατηγορία κλίσης'] == 'ελλειπτικά' or args['κατηγορία κλίσης'] == 'ετερόκλιτα'
    	or args['κατηγορία κλίσης'] == 'μεταπλαστά' or args['κατηγορία κλίσης'] == 'συγκοπτόμενα'
    	or args['κατηγορία κλίσης'] == 'μονοσύλλαβα με εξαιρέσεις'
    	then
    		if args['gkm'] == '2' then
     	output = output .. "[[Κατηγορία:" .. 'Ουσιαστικά' ..  ' ' .. cat_decl .. " (" .. 'μεσαιωνικά ελληνικά' .. ")]]"
     		else -- all grc, grc-koi, gkm=1
    	output = output .. "[[Κατηγορία:" .. 'Ουσιαστικά' ..  ' ' .. cat_decl .. " (" .. 'αρχαία ελληνικά' .. ")]]"
    		end
    	else
    	-- in neuter singular
    		if args['gkm'] == '2' then
    	output = output .. "[[Κατηγορία:" .. 'Ουσιαστικά' .. " με κλίση όπως το '" .. cat_decl .. "' (" .. 'μεσαιωνικά ελληνικά' .. ")]]" 
    		else -- all grc, grc-koi, gkm=1
    	output = output .. "[[Κατηγορία:" .. 'Ουσιαστικά' .. " με κλίση όπως το '" .. cat_decl .. "' (" .. 'αρχαία ελληνικά' .. ")]]"
    		end
    	end
    end -- close if gkm
--	end		
		
		
		-- special categories (irregulars) override all categories for declensions, etc.
		-- ignore PoS Κύρια ονόματα
		if args['ανώμ'] == '1' or args['κλίση'] == 'ανώμαλα' or args['κλίση'] == '0' then -- βλ. και ανώμ+
			output = output .. '[[Κατηγορία:Ουσιαστικά ανώμαλα (' .. lang_name ..')]]'
			if args['αρσ'] == '1' and (args['ανώμ'] == '1' or args['κλίση'] == 'ανώμαλα' or args['κλίση'] == '0') then
			output = output .. '[[Κατηγορία:Ουσιαστικά ανώμαλα αρσενικά (' .. lang_name ..')]]'
			elseif args['θηλ'] == '1' and (args['ανώμ'] == '1' or args['κλίση'] == 'ανώμαλα' or args['κλίση'] == '0') then
			output = output .. '[[Κατηγορία:Ουσιαστικά ανώμαλα θηλυκά (' .. lang_name ..')]]'
			elseif args['ουδ'] == '1' and (args['ανώμ'] == '1' or args['κλίση'] == 'ανώμαλα' or args['κλίση'] == '0') then
			output = output .. '[[Κατηγορία:Ουσιαστικά ανώμαλα ουδέτερα (' .. lang_name ..')]]'
			elseif args['αθ'] == '1' and (args['ανώμ'] == '1' or args['κλίση'] == 'ανώμαλα' or args['κλίση'] == '0') then
			output = output .. '[[Κατηγορία:Ουσιαστικά ανώμαλα κοινού γένους (' .. lang_name ..')]]'	
			elseif args['α-θ'] == '1' and (args['ανώμ'] == '1' or args['κλίση'] == 'ανώμαλα' or args['κλίση'] == '0') then
			output = output .. '[[Κατηγορία:Ουσιαστικά ανώμαλα αρσενικά ή θηλυκά (' .. lang_name ..')]]'	
			elseif args['α-θ'] == '1' and (args['ανώμ'] == '1' or args['κλίση'] == 'ανώμαλα' or args['κλίση'] == '0') then
			output = output .. '[[Κατηγορία:Ουσιαστικά ανώμαλα θηλυκά ή αρσενικά (' .. lang_name ..')]]'	
			end
-- DO NOT add 'else' here. Irregulars also form categories of their own
--		else -- not irregular
		end -- close irregulars here



		--typos = args['τύπος'] or args['κατ'] or ''
		-- if irregular, assume typos = ['-'] to avoid  control category:  [[:Κατηγορία:Ουσιαστικά που κλίνονται όπως το '' (' .. lang_name ..')]]'
		-- but see NOTESQ  if typos is added then a Cateogry is added there too	
			if args['τύπος'] == '-' --or args['κατ'] == '-'
			then output = output		-- control category:  [[:Κατηγορία:Ουσιαστικά που κλίνονται όπως το '' (' .. lang_name ..')]]'
			else -- when τύπος is NOT '-'
				-- 'κατ'=
--				if args['κατ'] ~= '' and args ['κατ'] ~= nil and args ['κατ'] ~= '-' then
--				typos = args['κατ']
--				output = output .. '[[Κατηγορία:' .. cat_pos .. " που κλίνονται όπως το '" .. typos .. "' (" .. lang_name .. ")]]"

--				else -- NOT 'κατ'=
				typos = args['τύπος']

	
   	if args['κλίση'] == 'ανώμαλα' or args['κλίση'] == '0' then -- but not ανώμ=1, this is ONLY for categories
   	-- ανώμαλα: ... όπως τα 'μεταπλαστά' 'ετερόκλιτα' κλπ
   	cat_decl_str = ' [[:Κατηγορία:' .. 'Ουσιαστικά' .. " με κλίση όπως τα '" .. cat_decl .. "' (" .. 'αρχαία ελληνικά' .. ')|Κατηγορία]]'
   	.. '[[Κατηγορία:' .. 'Ουσιαστικά' .. " με κλίση όπως τα '" .. cat_decl .. "' (" .. 'αρχαία ελληνικά' .. ')]]'
	elseif args['κλίση'] == '2αττ' then
	cat_decl_str = ' [[:Κατηγορία:' .. 'Ουσιαστικά' .. " με κλίση όπως το '" .. cat_decl .. "' (" .. 'αρχαία ελληνικά' .. ')|Κατηγορία]]' 
	.. '[[Κατηγορία:' .. 'Ουσιαστικά' .. " με κλίση όπως το '" .. cat_decl .. "' (" .. 'αρχαία ελληνικά' .. ')]]'
	else -- klisi 1, 2, 3
	cat_decl_str = ' [[:Κατηγορία:' .. 'Ουσιαστικά' .. " με κλίση όπως το '" .. cat_decl .. "' (" .. 'αρχαία ελληνικά' .. ')|Κατηγορία]]'
	.. '[[Κατηγορία:' .. 'Ουσιαστικά' .. " με κλίση όπως το '" .. cat_decl .. "' (" .. 'αρχαία ελληνικά' .. ')]]'
	end

				
-- Υπο-Κατηγορίες για α, α2 / make subcategories for numbers
-- CONTROL e.g. τέκνον 
-- SUPPRESS declensins in one number BY DEFAULT (from the functions) e.g. [[Νεκῶς]] [[Νεκώς]]
	-- εν =  νέκταρ ενDEFAULT = καμινώ εν+εξ = 
	if args['α'] == 'εν' or args['α'] == 'ενδ' 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
	end
	-- πλ = δίδακτρα Διονύσια πλDEF = no example  πλ+εξ = ἐτησίαι
	if args['α'] == 'πλ' or args['α'] == 'πλδ' 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
	end
	-- α2 εν ᾨδεῖον α2εν+εξ=
	if args['α2'] == 'εν' or args['α2'] == 'ενδ' 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
	end	
	-- α2πλ = Πεισιστρατίδαι  α2πλ+εξ
	if args['α2'] == 'πλ' or args['α2'] == 'πλδ' 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
	end	
	-- εξ=1 σκέτο δεσπότης
		if args['εξ'] == '1' or args['εξαίρεση'] == '1' then -- check [[δεσπότης]] [[Σουσάννα]]
		output = output .. '[[Κατηγορία:' .. cat_pos .. " που κλίνονται όπως το '" .. typos .. "' εξαιρέσεις (" .. lang_name .. ")]]"
		end
-- if nothing of the above, then the general 'που κλίνονται όπως το 'τύπος'
	if args['α'] ~= 'εν' and args['α'] ~= 'ενδ' and args['α'] ~= 'πλ' and args['α'] ~= 'πλδ'
	and args['α2'] ~= 'εν' and args['α2'] ~= 'ενδ' and args['α2'] ~= 'πλ' and args['α2'] ~= 'πλδ'
	and args['εξ'] ~= '1'
	then
		output = output .. '[[Κατηγορία:' .. cat_pos .. " που κλίνονται όπως το '" .. typos .. "' (" .. lang_name .. ")]]"
	end
--[=[
	if args['α'] == 'εν' or args['α'] == 'ενδ' then -- and (args['κατ'] == '' or args['κατ'] == nil) then
		output = output .. '[[Κατηγορία:' .. cat_pos .. " που κλίνονται όπως το '" .. typos .. "' χωρίς πληθυντικό (" .. lang_name .. ")]]"
		if args['εξ'] == '1' or args['εξαίρεση'] == '1' then -- check [[δεσπότης]] [[Σουσάννα]]
		output = output .. '[[Κατηγορία:' .. cat_pos .. " που κλίνονται όπως το '" .. typos .. "' εξαιρέσεις (" .. lang_name .. ")]]"
		else
		output = output .. '[[Κατηγορία:' .. cat_pos .. " που κλίνονται όπως το '" .. typos .. "' (" .. lang_name .. ")]]"
		end
		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['α'] == 'πλ' or args['α'] == 'πλδ' then -- and (args['κατ'] == '' or args['κατ'] == nil)  then
		if args['εξ'] == '1' or args['εξαίρεση'] == '1' then -- check [[δεσπότης]] [[Σουσάννα]]
		output = output .. '[[Κατηγορία:' .. cat_pos .. " που κλίνονται όπως το '" .. typos .. "' εξαιρέσεις (" .. lang_name .. ")]]"
		else
		output = output .. '[[Κατηγορία:' .. cat_pos .. " που κλίνονται όπως το '" .. typos .. "' (" .. lang_name .. ")]]"
		end
		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'] == 'εν' or args['α2'] == 'ενδ' then -- and (args['κατ'] == '' or args['κατ'] == nil)  then
		if args['εξ'] == '1' or args['εξαίρεση'] == '1' then -- check [[δεσπότης]] [[Σουσάννα]]
		output = output .. '[[Κατηγορία:' .. cat_pos .. " που κλίνονται όπως το '" .. typos .. "' εξαιρέσεις (" .. lang_name .. ")]]"
		else
		output = output .. '[[Κατηγορία:' .. cat_pos .. " που κλίνονται όπως το '" .. typos .. "' (" .. lang_name .. ")]]"
		end
		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'] == 'πλ' or args['α2'] == 'πλδ' then --  and (args['κατ'] == '' or args['κατ'] == nil)  then
		if args['εξ'] == '1' or args['εξαίρεση'] == '1' then -- check [[δεσπότης]] [[Σουσάννα]]
		output = output .. '[[Κατηγορία:' .. cat_pos .. " που κλίνονται όπως το '" .. typos .. "' εξαιρέσεις (" .. lang_name .. ")]]"
		else
		output = output .. '[[Κατηγορία:' .. cat_pos .. " που κλίνονται όπως το '" .. typos .. "' (" .. lang_name .. ")]]"
		end	
		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
	else
		-- SUPPRESS που κλίνονται όπως το.. when εξ=1 (exceptions), but keep the above.
		if args['εξ'] == '1' or args['εξαίρεση'] == '1' then -- check [[δεσπότης]] [[Σουσάννα]]
		output = output .. '[[Κατηγορία:' .. cat_pos .. " που κλίνονται όπως το '" .. typos .. "' εξαιρέσεις (" .. lang_name .. ")]]"
		else
		output = output .. '[[Κατηγορία:' .. cat_pos .. " που κλίνονται όπως το '" .. typos .. "' (" .. lang_name .. ")]]"
		end

	end -- close Υπο-Κατηγορίες για α, α2 / make subcategories for numbers
]=]--
--				end -- close 'κατ'=

			end -- close if = '-'
        	
-- κλίσεις 1, 2, 3 & βλ. ανώμ=1 & ανώμ+
	if args['κλίση'] == '1' then output = output .. '[[Κατηγορία:' .. cat_pos .. ' 1ης κλίσης (' .. lang_name .. ')]]' end
	if args['κλίση'] == '2' then output = output .. '[[Κατηγορία:' .. cat_pos .. ' 2ης κλίσης (' .. lang_name .. ')]]' end
	if args['κλίση'] == '2αττ' then output = output .. '[[Κατηγορία:' .. cat_pos .. ' 2ης κλίσης αττικόκλιτα (' .. lang_name .. ')]]' end
	if args['κλίση'] == '3' then output = output .. '[[Κατηγορία:' .. cat_pos .. ' 3ης κλίσης (' .. lang_name .. ')]]' end
-- κλίσεις + αριθμός-- check [[ἐτησίαι]]
	if args['κλίση'] == '1' and (args['α'] == 'εν' or args['α'] == 'ενδ') then output = output 
		.. '[[Κατηγορία:' .. cat_pos .. ' 1ης κλίσης χωρίς πληθυντικό (' .. lang_name .. ')]]' end
	if args['κλίση'] == '1' and (args['α'] == 'εν' or args['α'] == 'ενδ') then output = output 
		.. '[[Κατηγορία:' .. cat_pos .. ' 1ης κλίσης χωρίς πληθυντικό (' .. lang_name .. ')]]' end
	if args['κλίση'] == '2' and (args['α'] == 'εν' or args['α'] == 'ενδ') then output = output 
		.. '[[Κατηγορία:' .. cat_pos .. ' 2ης κλίσης χωρίς πληθυντικό (' .. lang_name .. ')]]' end
	if args['κλίση'] == '2' and (args['α'] == 'εν' or args['α'] == 'ενδ') then output = output 
		.. '[[Κατηγορία:' .. cat_pos .. ' 2ης κλίσης χωρίς πληθυντικό (' .. lang_name .. ')]]' end
	if args['κλίση'] == '2' and (args['α'] == 'εν' or args['α'] == 'ενδ') then output = output 
		.. '[[Κατηγορία:' .. cat_pos .. ' 2ης κλίσης χωρίς πληθυντικό (' .. lang_name .. ')]]' end
	if args['κλίση'] == '2αττ' and (args['α'] == 'εν' or args['α'] == 'ενδ') then output = output 
		.. '[[Κατηγορία:' .. cat_pos .. ' 2ης κλίσης αττικόκλιτα χωρίς πληθυντικό (' .. lang_name .. ')]]' end
	if args['κλίση'] == '2αττ' and (args['α'] == 'εν' or args['α'] == 'ενδ') then output = output 
		.. '[[Κατηγορία:' .. cat_pos .. ' 2ης κλίσης αττικόκλιτα χωρίς πληθυντικό (' .. lang_name .. ')]]' end
	if args['κλίση'] == '2αττ' and (args['α'] == 'εν' or args['α'] == 'ενδ') then output = output 
		.. '[[Κατηγορία:' .. cat_pos .. ' 2ης κλίσης αττικόκλιτα χωρίς πληθυντικό (' .. lang_name .. ')]]' end
	if args['κλίση'] == '3' and (args['α'] == 'εν' or args['α'] == 'ενδ') then output = output 
		.. '[[Κατηγορία:' .. cat_pos .. ' 3ης κλίσης χωρίς πληθυντικό (' .. lang_name .. ')]]' end
	if args['κλίση'] == '3' and (args['α'] == 'εν' or args['α'] == 'ενδ') then output = output 
		.. '[[Κατηγορία:' .. cat_pos .. ' 3ης κλίσης χωρίς πληθυντικό (' .. lang_name .. ')]]' end
	if args['κλίση'] == '3' and (args['α'] == 'εν' or args['α'] == 'ενδ') then output = output 
		.. '[[Κατηγορία:' .. cat_pos .. ' 3ης κλίσης χωρίς πληθυντικό (' .. lang_name .. ')]]' end

	if args['κλίση'] == '1' and (args['α'] == 'πλ' or args['α'] == 'πλδ') then output = output 
		.. '[[Κατηγορία:' .. cat_pos .. ' 1ης κλίσης χωρίς ενικό (' .. lang_name .. ')]]' end
	if args['κλίση'] == '1' and (args['α'] == 'πλ' or args['α'] == 'πλδ') then output = output 
		.. '[[Κατηγορία:' .. cat_pos .. ' 1ης κλίσης χωρίς ενικό (' .. lang_name .. ')]]' end
	if args['κλίση'] == '2' and (args['α'] == 'πλ' or args['α'] == 'πλδ') then output = output 
		.. '[[Κατηγορία:' .. cat_pos .. ' 2ης κλίσης χωρίς ενικό (' .. lang_name .. ')]]' end
	if args['κλίση'] == '2' and (args['α'] == 'πλ' or args['α'] == 'πλδ') then output = output 
		.. '[[Κατηγορία:' .. cat_pos .. ' 2ης κλίσης χωρίς ενικό (' .. lang_name .. ')]]' end
	if args['κλίση'] == '2' and (args['α'] == 'πλ' or args['α'] == 'πλδ') then output = output 
		.. '[[Κατηγορία:' .. cat_pos .. ' 2ης κλίσης χωρίς ενικό (' .. lang_name .. ')]]' end
	if args['κλίση'] == '2αττ' and (args['α'] == 'πλ' or args['α'] == 'πλδ') then output = output 
		.. '[[Κατηγορία:' .. cat_pos .. ' 2ης κλίσης αττικόκλιτα χωρίς ενικό (' .. lang_name .. ')]]' end
	if args['κλίση'] == '2αττ' and (args['α'] == 'πλ' or args['α'] == 'πλδ') then output = output 
		.. '[[Κατηγορία:' .. cat_pos .. ' 2ης κλίσης αττικόκλιτα χωρίς ενικό (' .. lang_name .. ')]]' end
	if args['κλίση'] == '2αττ' and (args['α'] == 'πλ' or args['α'] == 'πλδ') then output = output 
		.. '[[Κατηγορία:' .. cat_pos .. ' 2ης κλίσης αττικόκλιτα χωρίς ενικό (' .. lang_name .. ')]]' end
	if args['κλίση'] == '3' and (args['α'] == 'πλ' or args['α'] == 'πλδ') then output = output 
		.. '[[Κατηγορία:' .. cat_pos .. ' 3ης κλίσης χωρίς ενικό (' .. lang_name .. ')]]' end
	if args['κλίση'] == '3' and (args['α'] == 'πλ' or args['α'] == 'πλδ') then output = output 
		.. '[[Κατηγορία:' .. cat_pos .. ' 3ης κλίσης χωρίς ενικό (' .. lang_name .. ')]]' end
	if args['κλίση'] == '3' and (args['α'] == 'πλ' or args['α'] == 'πλδ') then output = output 
		.. '[[Κατηγορία:' .. cat_pos .. ' 3ης κλίσης χωρίς ενικό (' .. lang_name .. ')]]' end	
-- γένος + κλίση  //  και κοινού γένους (τα διπλού γένους ο/η άνθρωπος) + πολλαπλά γένη 
	if args['αρσ'] == '1' and args['κλίση'] == '1' then output = output .. '[[Κατηγορία:' .. cat_pos .. ' 1ης κλίσης αρσενικά (' .. lang_name .. ')]]' end
	if args['θηλ'] == '1' and args['κλίση'] == '1' then output = output .. '[[Κατηγορία:' .. cat_pos .. ' 1ης κλίσης θηλυκά (' .. lang_name .. ')]]' end
	if args['αθ'] == '1' and args['κλίση'] == '1' then output = output .. '[[Κατηγορία:' .. cat_pos .. ' 1ης κλίσης κοινού γένους (' .. lang_name .. ')]]' end
	if args['α-θ'] == '1' and args['κλίση'] == '1' then output = output .. '[[Κατηγορία:' .. cat_pos .. ' 1ης κλίσης αρσενικά ή θηλυκά (' .. lang_name .. ')]]' end
	if args['θ-α'] == '1' and args['κλίση'] == '1' then output = output .. '[[Κατηγορία:' .. cat_pos .. ' 1ης κλίσης θηλυκά ή αρσενικά (' .. lang_name .. ')]]' end
	if args['αρσ'] == '1' and args['κλίση'] == '2' then output = output .. '[[Κατηγορία:' .. cat_pos .. ' 2ης κλίσης αρσενικά (' .. lang_name .. ')]]' end
	if args['θηλ'] == '1' and args['κλίση'] == '2' then output = output .. '[[Κατηγορία:' .. cat_pos .. ' 2ης κλίσης θηλυκά (' .. lang_name .. ')]]' end
	if args['ουδ'] == '1' and args['κλίση'] == '2' then output = output .. '[[Κατηγορία:' .. cat_pos .. ' 2ης κλίσης ουδέτερα (' .. lang_name .. ')]]' end
	if args['αθ'] == '1' and args['κλίση'] == '2' then output = output .. '[[Κατηγορία:' .. cat_pos .. ' 2ης κλίσης κοινού γένους (' .. lang_name .. ')]]' end
	if args['α-θ'] == '1' and args['κλίση'] == '2' then output = output .. '[[Κατηγορία:' .. cat_pos .. ' 2ης κλίσης αρσενικά ή θηλυκά (' .. lang_name .. ')]]' end
	if args['θ-α'] == '1' and args['κλίση'] == '2' then output = output .. '[[Κατηγορία:' .. cat_pos .. ' 2ης κλίσης θηλυκά ή αρσενικά (' .. lang_name .. ')]]' end
	if args['θο'] == '1' and args['κλίση'] == '2' then output = output .. '[[Κατηγορία:' .. cat_pos .. ' 2ης κλίσης θηλυκά ή ουδέτερα (' .. lang_name .. ')]]' end
	if args['αρσ'] == '1' and args['κλίση'] == '2αττ' then output = output .. '[[Κατηγορία:' .. cat_pos .. ' 2ης κλίσης αρσενικά αττικόκλιτα (' .. lang_name .. ')]]' end
	if args['θηλ'] == '1' and args['κλίση'] == '2αττ' then output = output .. '[[Κατηγορία:' .. cat_pos .. ' 2ης κλίσης θηλυκά αττικόκλιτα (' .. lang_name .. ')]]' end
	if args['ουδ'] == '1' and args['κλίση'] == '2αττ' then output = output .. '[[Κατηγορία:' .. cat_pos .. ' 2ης κλίσης ουδέτερα αττικόκλιτα (' .. lang_name .. ')]]' end
	if args['αθ'] == '1' and args['κλίση'] == '2αττ' then output = output .. '[[Κατηγορία:' .. cat_pos .. ' 2ης κλίσης κοινού γένους αττικόκλιτα (' .. lang_name .. ')]]' end
	-- α-θ θ-α
	if args['αρσ'] == '1' and args['κλίση'] == '3' then output = output .. '[[Κατηγορία:' .. cat_pos .. ' 3ης κλίσης αρσενικά (' .. lang_name .. ')]]' end
	if args['θηλ'] == '1' and args['κλίση'] == '3' then output = output .. '[[Κατηγορία:' .. cat_pos .. ' 3ης κλίσης θηλυκά (' .. lang_name .. ')]]' end
	if args['ουδ'] == '1' and args['κλίση'] == '3' then output = output .. '[[Κατηγορία:' .. cat_pos .. ' 3ης κλίσης ουδέτερα (' .. lang_name .. ')]]' end
	if args['αθ'] == '1' and args['κλίση'] == '3' then output = output .. '[[Κατηγορία:' .. cat_pos .. ' 3ης κλίσης κοινού γένους (' .. lang_name .. ')]]' end
	if args['α-θ'] == '1' and args['κλίση'] == '3' then output = output .. '[[Κατηγορία:' .. cat_pos .. ' 3ης κλίσης αρσενικά ή θηλυκά (' .. lang_name .. ')]]' end
	if args['θ-α'] == '1' and args['κλίση'] == '3' then output = output .. '[[Κατηγορία:' .. cat_pos .. ' 3ης κλίσης θηλυκά ή αρσενικά (' .. lang_name .. ')]]' end
-- γένος + κλίση + αριθμός -- check [[ἐτησίαι]]
	if args['αρσ'] == '1' and args['κλίση'] == '1' and (args['α'] == 'εν' or args['α'] == 'ενδ') then output = output 
		.. '[[Κατηγορία:' .. cat_pos .. ' 1ης κλίσης αρσενικά χωρίς πληθυντικό (' .. lang_name .. ')]]' end
	if args['θηλ'] == '1' and args['κλίση'] == '1' and (args['α'] == 'εν' or args['α'] == 'ενδ') then output = output 
		.. '[[Κατηγορία:' .. cat_pos .. ' 1ης κλίσης θηλυκά χωρίς πληθυντικό (' .. lang_name .. ')]]' end
	if args['αρσ'] == '1' and args['κλίση'] == '2' and (args['α'] == 'εν' or args['α'] == 'ενδ') then output = output 
		.. '[[Κατηγορία:' .. cat_pos .. ' 2ης κλίσης αρσενικά χωρίς πληθυντικό (' .. lang_name .. ')]]' end
	if args['θηλ'] == '1' and args['κλίση'] == '2' and (args['α'] == 'εν' or args['α'] == 'ενδ') then output = output 
		.. '[[Κατηγορία:' .. cat_pos .. ' 2ης κλίσης θηλυκά χωρίς πληθυντικό (' .. lang_name .. ')]]' end
	if args['ουδ'] == '1' and args['κλίση'] == '2' and (args['α'] == 'εν' or args['α'] == 'ενδ') then output = output 
		.. '[[Κατηγορία:' .. cat_pos .. ' 2ης κλίσης ουδέτερα χωρίς πληθυντικό (' .. lang_name .. ')]]' end
	if args['αθ'] == '1' and args['κλίση'] == '2' and (args['α'] == 'εν' or args['α'] == 'ενδ') then output = output 
		.. '[[Κατηγορία:' .. cat_pos .. ' 2ης κλίσης κοινού γένους χωρίς πληθυντικό (' .. lang_name .. ')]]' end
	if args['α-θ'] == '1' and args['κλίση'] == '2' and (args['α'] == 'εν' or args['α'] == 'ενδ') then output = output 
		.. '[[Κατηγορία:' .. cat_pos .. ' 2ης κλίσης αρσενικά ή θηλυκά χωρίς πληθυντικό (' .. lang_name .. ')]]' end
	if args['θ-α'] == '1' and args['κλίση'] == '2' and (args['α'] == 'εν' or args['α'] == 'ενδ') then output = output 
		.. '[[Κατηγορία:' .. cat_pos .. ' 2ης κλίσης θηλυκά ή αρσενικά χωρίς πληθυντικό (' .. lang_name .. ')]]' end	
	if args['θο'] == '1' and args['κλίση'] == '2' and (args['α'] == 'εν' or args['α'] == 'ενδ') then output = output 
		.. '[[Κατηγορία:' .. cat_pos .. ' 2ης κλίσης θηλυκά ή ουδέτερα χωρίς πληθυντικό (' .. lang_name .. ')]]' end
	if args['αρσ'] == '1' and args['κλίση'] == '2αττ' and (args['α'] == 'εν' or args['α'] == 'ενδ') then output = output 
		.. '[[Κατηγορία:' .. cat_pos .. ' 2ης κλίσης αρσενικά αττικόκλιτα χωρίς πληθυντικό (' .. lang_name .. ')]]' end
	if args['θηλ'] == '1' and args['κλίση'] == '2αττ' and (args['α'] == 'εν' or args['α'] == 'ενδ') then output = output 
		.. '[[Κατηγορία:' .. cat_pos .. ' 2ης κλίσης θηλυκά αττικόκλιτα χωρίς πληθυντικό (' .. lang_name .. ')]]' end
	if args['ουδ'] == '1' and args['κλίση'] == '2αττ' and (args['α'] == 'εν' or args['α'] == 'ενδ') then output = output 
		.. '[[Κατηγορία:' .. cat_pos .. ' 2ης κλίσης ουδέτερα αττικόκλιτα χωρίς πληθυντικό (' .. lang_name .. ')]]' end
	if args['αθ'] == '1' and args['κλίση'] == '2αττ' and (args['α'] == 'εν' or args['α'] == 'ενδ') then output = output 
		.. '[[Κατηγορία:' .. cat_pos .. ' 2ης κλίσης κοινού γένους αττικόκλιτα χωρίς πληθυντικό (' .. lang_name .. ')]]' end
	-- α-θ θ-α
	if args['αρσ'] == '1' and args['κλίση'] == '3' and (args['α'] == 'εν' or args['α'] == 'ενδ') then output = output 
		.. '[[Κατηγορία:' .. cat_pos .. ' 3ης κλίσης αρσενικά χωρίς πληθυντικό (' .. lang_name .. ')]]' end
	if args['θηλ'] == '1' and args['κλίση'] == '3' and (args['α'] == 'εν' or args['α'] == 'ενδ') then output = output 
		.. '[[Κατηγορία:' .. cat_pos .. ' 3ης κλίσης θηλυκά χωρίς πληθυντικό (' .. lang_name .. ')]]' end
	if args['ουδ'] == '1' and args['κλίση'] == '3' and (args['α'] == 'εν' or args['α'] == 'ενδ') then output = output 
		.. '[[Κατηγορία:' .. cat_pos .. ' 3ης κλίσης ουδέτερα χωρίς πληθυντικό (' .. lang_name .. ')]]' end
	if args['αθ'] == '1' and args['κλίση'] == '3' and (args['α'] == 'εν' or args['α'] == 'ενδ') then output = output 
		.. '[[Κατηγορία:' .. cat_pos .. ' 3ης κλίσης κοινού γένους χωρίς πληθυντικό (' .. lang_name .. ')]]' end
	if args['α-θ'] == '1' and args['κλίση'] == '3' and (args['α'] == 'εν' or args['α'] == 'ενδ') then output = output 
		.. '[[Κατηγορία:' .. cat_pos .. ' 3ης κλίσης αρσενικά ή θηλυκά χωρίς πληθυντικό (' .. lang_name .. ')]]' end
	if args['θ-α'] == '1' and args['κλίση'] == '3' and (args['α'] == 'εν' or args['α'] == 'ενδ') then output = output 
		.. '[[Κατηγορία:' .. cat_pos .. ' 3ης κλίσης θηλυκά ή αρσενικά χωρίς πληθυντικό (' .. lang_name .. ')]]' end	

	if args['αρσ'] == '1' and args['κλίση'] == '1' and (args['α'] == 'πλ' or args['α'] == 'πλδ') then output = output 
		.. '[[Κατηγορία:' .. cat_pos .. ' 1ης κλίσης αρσενικά χωρίς ενικό (' .. lang_name .. ')]]' end
	if args['θηλ'] == '1' and args['κλίση'] == '1' and (args['α'] == 'πλ' or args['α'] == 'πλδ') then output = output 
		.. '[[Κατηγορία:' .. cat_pos .. ' 1ης κλίσης θηλυκά χωρίς ενικό (' .. lang_name .. ')]]' end
	if args['αρσ'] == '1' and args['κλίση'] == '2' and (args['α'] == 'πλ' or args['α'] == 'πλδ') then output = output 
		.. '[[Κατηγορία:' .. cat_pos .. ' 2ης κλίσης αρσενικά χωρίς ενικό (' .. lang_name .. ')]]' end
	if args['θηλ'] == '1' and args['κλίση'] == '2' and (args['α'] == 'πλ' or args['α'] == 'πλδ') then output = output 
		.. '[[Κατηγορία:' .. cat_pos .. ' 2ης κλίσης θηλυκά χωρίς ενικό (' .. lang_name .. ')]]' end
	if args['ουδ'] == '1' and args['κλίση'] == '2' and (args['α'] == 'πλ' or args['α'] == 'πλδ') then output = output 
		.. '[[Κατηγορία:' .. cat_pos .. ' 2ης κλίσης ουδέτερα χωρίς ενικό (' .. lang_name .. ')]]' end
	if args['αθ'] == '1' and args['κλίση'] == '2' and (args['α'] == 'πλ' or args['α'] == 'πλδ') then output = output 
		.. '[[Κατηγορία:' .. cat_pos .. ' 2ης κλίσης κοινού γένους χωρίς ενικό (' .. lang_name .. ')]]' end
	if args['α-θ'] == '1' and args['κλίση'] == '2' and (args['α'] == 'πλ' or args['α'] == 'πλδ') then output = output 
		.. '[[Κατηγορία:' .. cat_pos .. ' 2ης κλίσης αρσενικά ή θηλυκά χωρίς ενικό (' .. lang_name .. ')]]' end
	if args['θ-α'] == '1' and args['κλίση'] == '2' and (args['α'] == 'πλ' or args['α'] == 'πλδ') then output = output 
		.. '[[Κατηγορία:' .. cat_pos .. ' 2ης κλίσης θηλυκά ή αρσενικά χωρίς ενικό (' .. lang_name .. ')]]' end	
	if args['θο'] == '1' and args['κλίση'] == '2' and (args['α'] == 'πλ' or args['α'] == 'πλδ') then output = output 
		.. '[[Κατηγορία:' .. cat_pos .. ' 2ης κλίσης θηλυκά ή ουδέτερα χωρίς ενικό (' .. lang_name .. ')]]' end
	if args['αρσ'] == '1' and args['κλίση'] == '2αττ' and (args['α'] == 'πλ' or args['α'] == 'πλδ') then output = output 
		.. '[[Κατηγορία:' .. cat_pos .. ' 2ης κλίσης αρσενικά αττικόκλιτα χωρίς ενικό (' .. lang_name .. ')]]' end
	if args['θηλ'] == '1' and args['κλίση'] == '2αττ' and (args['α'] == 'πλ' or args['α'] == 'πλδ') then output = output 
		.. '[[Κατηγορία:' .. cat_pos .. ' 2ης κλίσης θηλυκά αττικόκλιτα χωρίς ενικό (' .. lang_name .. ')]]' end
	if args['ουδ'] == '1' and args['κλίση'] == '2αττ' and (args['α'] == 'πλ' or args['α'] == 'πλδ') then output = output 
		.. '[[Κατηγορία:' .. cat_pos .. ' 2ης κλίσης ουδέτερα αττικόκλιτα χωρίς ενικό (' .. lang_name .. ')]]' end
	if args['αθ'] == '1' and args['κλίση'] == '2αττ' and (args['α'] == 'πλ' or args['α'] == 'πλδ') then output = output 
		.. '[[Κατηγορία:' .. cat_pos .. ' 2ης κλίσης κοινού γένους αττικόκλιτα χωρίς ενικό (' .. lang_name .. ')]]' end
	-- α-θ θ-α
	if args['αρσ'] == '1' and args['κλίση'] == '3' and (args['α'] == 'πλ' or args['α'] == 'πλδ') then output = output 
		.. '[[Κατηγορία:' .. cat_pos .. ' 3ης κλίσης αρσενικά χωρίς ενικό (' .. lang_name .. ')]]' end
	if args['θηλ'] == '1' and args['κλίση'] == '3' and (args['α'] == 'πλ' or args['α'] == 'πλδ') then output = output 
		.. '[[Κατηγορία:' .. cat_pos .. ' 3ης κλίσης θηλυκά χωρίς ενικό (' .. lang_name .. ')]]' end
	if args['ουδ'] == '1' and args['κλίση'] == '3' and (args['α'] == 'πλ' or args['α'] == 'πλδ') then output = output 
		.. '[[Κατηγορία:' .. cat_pos .. ' 3ης κλίσης ουδέτερα χωρίς ενικό (' .. lang_name .. ')]]' end	
	if args['αθ'] == '1' and args['κλίση'] == '3' and (args['α'] == 'πλ' or args['α'] == 'πλδ') then output = output 
		.. '[[Κατηγορία:' .. cat_pos .. ' 3ης κλίσης κοινού γένους χωρίς ενικό (' .. lang_name .. ')]]' end	
	if args['α-θ'] == '1' and args['κλίση'] == '3' and (args['α'] == 'πλ' or args['α'] == 'πλδ') then output = output 
		.. '[[Κατηγορία:' .. cat_pos .. ' 3ης κλίσης αρσενικά ή θηλυκά χωρίς ενικό (' .. lang_name .. ')]]' end
	if args['θ-α'] == '1' and args['κλίση'] == '3' and (args['α'] == 'πλ' or args['α'] == 'πλδ') then output = output 
		.. '[[Κατηγορία:' .. cat_pos .. ' 3ης κλίσης θηλυκά ή αρσενικά χωρίς ενικό (' .. lang_name .. ')]]' end	

--		end -- close irregulars CANCELLED, ignor this
	end -- close κατηγορία
    	

-- subtitles / Κατηγορίες για γένη
	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
	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

	
-- γένος + αριθμός -- check [[ἐτησίαι]]
	if args['αρσ'] == '1' and (args['α'] == 'εν' or args['α'] == 'ενδ') then output = output .. '[[Κατηγορία:' .. cat_pos .. ' αρσενικά χωρίς πληθυντικό (' .. lang_name .. ')]]' end
	if args['θηλ'] == '1' and (args['α'] == 'εν' or args['α'] == 'ενδ') then output = output .. '[[Κατηγορία:' .. cat_pos .. ' θηλυκά χωρίς πληθυντικό (' .. lang_name .. ')]]' end
	if args['ουδ'] == '1' and (args['α'] == 'εν' or args['α'] == 'ενδ') then output = output .. '[[Κατηγορία:' .. cat_pos .. ' ουδέτερα χωρίς πληθυντικό (' .. lang_name .. ')]]' end
	if args['αθ'] == '1' and (args['α'] == 'εν' or args['α'] == 'ενδ') then output = output .. '[[Κατηγορία:' .. cat_pos .. ' κοινού γένους χωρίς πληθυντικό (' .. lang_name .. ')]]' end
	if args['α-θ'] == '1' and (args['α'] == 'εν' or args['α'] == 'ενδ') then output = output .. '[[Κατηγορία:' .. cat_pos .. ' αρσενικά ή θηλυκά χωρίς πληθυντικό (' .. lang_name .. ')]]' end
	if args['θ-α'] == '1' and (args['α'] == 'εν' or args['α'] == 'ενδ') then output = output .. '[[Κατηγορία:' .. cat_pos .. ' θηλυκά ή αρσενικά χωρίς πληθυντικό (' .. lang_name .. ')]]' end
	if args['θο'] == '1' and (args['α'] == 'εν' or args['α'] == 'ενδ') then output = output .. '[[Κατηγορία:' .. cat_pos .. ' θηλυκά ή ουδέτερα χωρίς πληθυντικό (' .. lang_name .. ')]]' end
	if args['αρσ'] == '1' and (args['α'] == 'πλ' or args['α'] == 'πλδ') then output = output .. '[[Κατηγορία:' .. cat_pos .. ' αρσενικά χωρίς ενικό (' .. lang_name .. ')]]' end
	if args['θηλ'] == '1' and (args['α'] == 'πλ' or args['α'] == 'πλδ') then output = output .. '[[Κατηγορία:' .. cat_pos .. ' θηλυκά χωρίς ενικό (' .. lang_name .. ')]]' end
	if args['ουδ'] == '1' and (args['α'] == 'πλ' or args['α'] == 'πλδ') then output = output .. '[[Κατηγορία:' .. cat_pos .. ' ουδέτερα χωρίς ενικό (' .. lang_name .. ')]]' end
	if args['αθ'] == '1' and (args['α'] == 'πλ' or args['α'] == 'πλδ') then output = output .. '[[Κατηγορία:' .. cat_pos .. ' κοινού γένους χωρίς ενικό (' .. lang_name .. ')]]' end
	if args['θο'] == '1' and (args['α'] == 'πλ' or args['α'] == 'πλδ') then output = output .. '[[Κατηγορία:' .. cat_pos .. ' θηλυκά ή ουδέτερα χωρίς ενικό (' .. lang_name .. ')]]' end

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

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

-- γενικές: αν εμφανίζεται ΜΟΝΟ στον αντίθετο αριθμό, να μην εισάγεται στην Κατηγορία
-- βλ. και επιμέρους functions όπου υπάρχει αυτή η σύμβαση
-- όπως (...) ΜΑΛΛΟΝ μόνον για νέα ελληνικά
--[=[ MODERN GREEK ONLY
	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
]=]--
	
-- plus, see above,  args['εξ'] == '1' creates Κατηγορία:..... εξαιρέσεις
		-- IF exception, then 

-- plus, if second column is added for a) second declension or b) for dialectal forms
	-- see above

-- free EXTRA category for nouns of other irregulara
	if args['ανώμ+'] == '1' then -- βλ. και ανώμ -- [[αἶρα]]
			output = output .. '[[Κατηγορία:Ουσιαστικά ανώμαλα (' .. lang_name ..')]]'
			if args['αρσ'] == '1' and args['ανώμ+'] == '1' then
				output = output .. '[[Κατηγορία:Ουσιαστικά ανώμαλα αρσενικά (' .. lang_name ..')]]'
			elseif args['θηλ'] == '1' and args['ανώμ+'] == '1' then
				output = output .. '[[Κατηγορία:Ουσιαστικά ανώμαλα θηλυκά (' .. lang_name ..')]]'
			elseif args['ουδ'] == '1' and args['ανώμ+'] == '1' then
				output = output .. '[[Κατηγορία:Ουσιαστικά ανώμαλα ουδέτερα (' .. lang_name ..')]]'
			elseif args['αθ'] == '1' and args['ανώμ+'] == '1' then
				output = output .. '[[Κατηγορία:Ουσιαστικά ανώμαλα κοινού γένους (' .. lang_name ..')]]'	
			end
	end
	
-- ======= EXTRA CATEGORIES: zero is reserved for the module ONLY, not for editors
-- 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
	if args['υποκατ3'] ~= '' and args ['υποκατ3'] ~= nil then
		output = output .. '[[Κατηγορία:' .. cat_pos .. ' ' .. args['υποκατ3'] .. ' (' .. 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['κατηγ'] ~= '' 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
	if args['κατηγ3'] ~= '' and args['κατηγ3'] ~= nil then
			output = output .. '[[Κατηγορία:' .. args['κατηγ3'] .. ' (' .. lang_name .. ')]]'
	end
	-- for Module use ONLY 
	if args['κατηγ0'] ~= '' and args['κατηγ0'] ~= nil then
			output = output .. '[[Κατηγορία:' .. args['κατηγ0'] .. ' (' .. lang_name .. ')]]'
	end
	if args['κατηγ01'] ~= '' and args['κατηγ01'] ~= nil then
			output = output .. '[[Κατηγορία:' .. args['κατηγ01'] .. ' (' .. lang_name .. ')]]'
	end
	if args['κατηγ02'] ~= '' and args['κατηγ02'] ~= nil then
			output = output .. '[[Κατηγορία:' .. args['κατηγ02'] .. ' (' .. lang_name .. ')]]'
	end
	if args['κατηγ03'] ~= '' and args['κατηγ03'] ~= nil then
			output = output .. '[[Κατηγορία:' .. args['κατηγ03'] .. ' (' .. lang_name .. ')]]'
	end
	if args['κατηγ04'] ~= '' and args['κατηγ04'] ~= nil then
			output = output .. '[[Κατηγορία:' .. args['κατηγ04'] .. ' (' .. lang_name .. ')]]'
	end
	
-- free category, ελεύθερη κατηγορία NO LANGUAGE no restrictions, write free text
	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
	if args['cat-extra3'] ~= '' and args['cat-extra3'] ~= nil then
			output = output .. '[[Κατηγορία:' .. args['cat-extra3'] .. ']]'
	end
	-- for Module use ONLY 
	if args['cat-extra0'] ~= '' and args['cat-extra0'] ~= nil then
			output = output .. '[[Κατηγορία:' .. args['cat-extra0'] .. ']]'
	end
	if args['cat-extra01'] ~= '' and args['cat-extra01'] ~= nil then
			output = output .. '[[Κατηγορία:' .. args['cat-extra01'] .. ']]'
	end
	if args['cat-extra02'] ~= '' and args['cat-extra02'] ~= nil then
			output = output .. '[[Κατηγορία:' .. args['cat-extra02'] .. ']]'
	end
	if args['cat-extra03'] ~= '' and args['cat-extra03'] ~= nil then
			output = output .. '[[Κατηγορία:' .. args['cat-extra03'] .. ']]'
	end
	if args['cat-extra04'] ~= '' and args['cat-extra04'] ~= nil then
			output = output .. '[[Κατηγορία:' .. args['cat-extra04'] .. ']]'
	end
	
end -- close nocat	
end -- close 'if namespace'


return output -- close fulltable

end



----------------------------------------------------------------------------------------
--    GENERAL PATTERNS of DECLENSIONS  / ΜΗΤΡΙΚΕΣ ΛΕΙΤΟΥΡΓΙΕΣ ΚΛΙΣΕΩΝ
-----------------------------------------------------------------------------------------

--------------------------------5. 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:grc-nouns-decl/param').param (args)

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




--------------------------------------------------------------------------
--            CREATE a DECLENSION TABLE directly at lemma page          --
--------------------------------------------------------------------------
-- invoke directly from pages -- use with caution; better created a function

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

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

------------
return fulltable(args) .. '[[Κατηγορία:grc-nouns-decl-manual]]'
end


--------------------------------------------------------------------------
--           SPECIFIC TEMPLAGES / ΕΠΙΜΕΡΟΥΣ ΠΡΟΤΥΠΑ                     --
--------------------------------------------------------------------------
-- =============== declensions 1-2-3 and 4=irregulars ================= --

-- see pages /1, /2, /3, /4

return export


--[=[ EXPLANATIONS
* monosyllable Template-catchwords, have no accents or diacritics for easytype. (αλς μην Τρως)
Abbreviations 
* cases: initial greek letters for case + number e.g. οε= nominative.singular. γε= gen.sg. γπ= gen.plural.
	and Λ = Λέξη (word) for whole words and the whole string e.g. οεΛ= word nom.sg.
	and θ = stem for this case, e.g. οεθ= stem for nom.sg.
	and + = WITH prosody e.g. οε+=
* mod- Prefix for params defined IN the module at function pages
	Without it, are the editor's choices at the lemma-page
STEM formation: (default stem is lemma minus 2 letters from the end)
	stem['θ'] = stem as found in lemma 
	θοξ = convert perispomeni to okseia, or let okseia be
	θπ = convert okseia to perispomeni, or let persipomeni be
	θ1 = stem with accent okseia on its last syllble θ1οξ = with okseia θ1π = with perispomeni
	θ2 = stem with accent (always okseia) on its 2nd syllable from the end
	Stem is defined in functions, when singular, and when plural if different from singular (pluarlia tantum)
For pluralia tantum by DEFAULT in functions with args['α'] = 'εν':
	suppress the Cat. Ουσιαστικά που κλίνονται όπως το 'ΧΧ' χωρίς πληθυντικό (see ΚΑΤΗΓΟΡΙΕΣ)
	with args['sg-default'] = '1'
	Similarly, for pl-default
]=]--

--[=[ HELP for modules
See all parameters at the /param page.
STEMS: default stem is minus 2 letters from the end (stemnumber 3) args['μείον'] = 2 
		-- otherwise stems should be written out
		If special features are needed (brackets, etc), then the full line should be written, 
		with create_link, as in /param page or function linkcontrol
	Examples:
	local stem = {}
	stem["θ"] = mw.ustring.sub(args['λήμμα'],1,-3)		-- stem as found in lemma 
				-- start from 1st letter of lemma, stop at 3rd from the end (minus 2 letters, stemnumber=3)
	stem["θ0"] = m_stems.word0(stem["θ"])			-- remove accent
	stem["θ1"] = m_stems.word1(stem["θ0"])			-- accent on 1st syllable from the end 
				--(Accent is tonos or oksia. Used mainly for monotonic script)
	stem["θο"] = m_stems.PerispomeniToOxia(stem["θ"])	-- convert perispomeni to okseia -- also named θ1ο
	stem["θπ"] = m_stems.OxiaToPerispomeni(stem["θ"])	-- convert okseia to perispomeni -- also named θ1π
	stem["θ2"] = m_stems.word2(stem["θ0"])			-- accent okseia on 2nd syllable from the end
EXAMPLES find in lemma: all letter strings at [[User:Sarri.greek/fonts-greek]]
if the lemma is (plus pluralia)
	if args["λήμμα"] == 'σφραγίς' or args["λήμμα"] == 'σφραγῖδες'
find in lemma
	if mw.ustring.find(args['λήμμα'], m_data.vowel_perispomeni) -- '[ᾶᾷἆᾆἇᾇῆῇἦᾖἧᾗῖἶἷῗῦὖὗῧῶῷὦᾦὧᾧἎᾎἏᾏἮᾞἯᾟἾἿὟὮᾮὯᾯ]') -- any vowel with perispomeni
	then
letters at end of word
	if mw.ustring.find(args['λήμμα'], 'υς$') or mw.ustring.find(args['λήμμα'], 'υνς$')

EXAMPLES for links
	args['γπΛ2'] = 	linkcontrol3((stem["θ1"]), "δ", "ων")
	args['δπΛ2'] = create_link(stem["θ"] .. "σι", stem_color(stem["θ"]) .. ending_color("σῐ")) .. '(' .. create_link(stem["θ"] .. "σιν", ending_color("ν")) .. ')'
	args['απΛ2'] = create_link(stem["θ"] .. "δ" .. "ας", stem_color(stem["θ"]) .. infix_color("δ") .. ending_color("ᾰς"))
κατηγ0 = Λέξεις οξύτονες
κατηγ01 = Ουσιαστικά που κλίνονται όπως το ...
κατηγ02 = Λέξεις με άγνωστη προσωδία
κατηγ03 = Ουσιαστικά με κλίση όπως το cat_decl με άγνωστη προσωδία
cat-extra0= Ουσιαστικά με κλίση όπως το cat_decl με άγνωστη προσωδία (αρχαία ελληνικά)
υποκατ0 = οξύτονα
υποκατ01 = γένος
υποκατ02 = γένος οξύτονα
υποκατ03 = που κλίνονται όπως to 'χχ' αρσενικά/θηλυκά κλπ
υποκατ04 = που κλίνονται όπως to 'χχ' προπερισπώμενα κλπ
]=]--