Module:Tree chart

local p = {}

local SLD = '1px solid black' local DSH = '1px dashed black' local DOT = '1px dotted black'

local cells = { ['!b'] = { 	 }, ['!t'] = { { tag = 'td', style = { ['border-right'] = SOL }, attr = { rowspan = '2' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '2em'} } }, { tag = 'td', style = { ['border-right'] = SOL }, attr = { rowspan = '2' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '2em'} } }}, ['%b'] = { { tag = 'td', style = { ['border-right'] = '1px dashed black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } }, { tag = 'td', node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } } }, ['%t'] = { { tag = 'td', style = { ['border-right'] = '1px dashed black', ['border-bottom'] = '1px dashed black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } }, { tag = 'td', style = { ['border-bottom'] = '1px dashed black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } } }, ['\'b'] = { { tag = 'td', node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } } }, ['\'t'] = { { tag = 'td', style = { ['border-right'] = '1px solid black', ['border-bottom'] = '1px solid black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } }, { tag = 'td', attr = { rowspan = '2' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '2em' } } } }, ['(b'] = { { tag = 'td', style = { ['border-right'] = '1px solid black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } } },	['(t'] = { { tag = 'td', style = { ['border-right'] = '1px solid black', ['border-bottom'] = '1px solid black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } }, { tag = 'td', attr = { rowspan = '2' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '2em' } } } }, [')b'] = { { tag = 'td', node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } } },	[')t'] = { { tag = 'td', attr = { rowspan = '2' }, style = { ['border-right'] = '1px solid black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '2em' } } }, { tag = 'td', style = { ['border-bottom'] = '1px solid black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } } }, ['*b'] = { { tag = 'td', style = { ['border-right'] = '1px dashed black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } }, { tag = 'td', node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } } }, ['*t'] = { { tag = 'td', style = { ['border-right'] = '1px dashed black', ['border-bottom'] = '1px solid black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } }, { tag = 'td', style = { ['border-bottom'] = '1px solid black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } } }, ['+b'] = { { tag = 'td', style = { ['border-right'] = '1px solid black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } }, { tag = 'td', node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } } }, ['+t'] = { { tag = 'td', style = { ['border-right'] = '1px solid black', ['border-bottom'] = '1px solid black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } }, { tag = 'td', style = { ['border-bottom'] = '1px solid black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } } }, [',b'] = { { tag = 'td', style = { ['border-right'] = '1px solid black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } }, { tag = 'td', node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } } }, [',t'] = { { tag = 'td', node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } }, { tag = 'td', style = { ['border-bottom'] = '1px solid black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } } }, ['-b'] = { { tag = 'td', attr = { colspan = '2' }, node = { tag = 'div', style = { ['width'] = '2em', ['height'] = '1em' } } } }, ['-t'] = { { tag = 'td', attr = { colspan = '2' }, style = { ['border-bottom'] = '1px solid black' }, node = { tag = 'div', style = { ['width'] = '2em', ['height'] = '1em' } } } }, ['.b'] = { { tag = 'td', style = { ['border-right'] = '1px solid black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } } }, ['.t'] = { { tag = 'td', style = { ['border-bottom'] = '1px solid black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } }, { tag = 'td', attr = { rowspan = '2' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '2em' } } } }, ['7b'] = { { tag = 'td', style = { ['border-right'] = '1px dashed black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } } }, ['7t'] = { { tag = 'td', style = { ['border-bottom'] = '1px dashed black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } }, { tag = 'td', attr = { rowspan = '2' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '2em' } } } }, [':b'] = { 	 }, [':t'] = { { tag = 'td', attr = { rowspan = '2' }, style = { ['border-right'] = '1px dashed black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '2em' } } }, { tag = 'td', attr = { rowspan = '2' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '2em' } } } }, ['Ab'] = { { tag = 'td', attr = { colspan = '2' }, node = { tag = 'div', style = { ['width'] = '2em', ['height'] = '1em' } } } }, ['At'] = { { tag = 'td', style = { ['border-right'] = '1px dashed black', ['border-bottom'] = '1px dashed black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } }, { tag = 'td', style = { ['border-bottom'] = '1px dashed black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } } }, ['Cb'] = { { tag = 'td', style = { ['border-right'] = '1px dashed black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } } }, ['Ct'] = { { tag = 'td', style = { ['border-right'] = '1px dashed black', ['border-bottom'] = '1px dashed black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } }, { tag = 'td', attr = { rowspan = '2' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '2em' } } } }, ['Db'] = { { tag = 'td', node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } } }, ['Dt'] = { { tag = 'td', attr = { rowspan = '2' }, style = { ['border-right'] = '1px dashed black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '2em' } } }, { tag = 'td', style = { ['border-bottom'] = '1px dashed black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } } }, ['Fb'] = { { tag = 'td', style = { ['border-right'] = '1px dashed black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } }, { tag = 'td', node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } } }, ['Ft'] = { { tag = 'td', node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } }, { tag = 'td', style = { ['border-bottom'] = '1px dashed black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } } }, ['Gb'] = { { tag = 'td', style = { ['border-right'] = '1px dotted black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } } }, ['Gt'] = { { tag = 'td', style = { ['border-right'] = '1px dotted black', ['border-bottom'] = '1px dotted black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } }, { tag = 'td', attr = { rowspan = '2' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '2em' } } } }, ['Hb'] = { { tag = 'td', node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } } }, ['Ht'] = { { tag = 'td', attr = { rowspan = '2' }, style = { ['border-right'] = '1px dotted black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '2em' } } }, { tag = 'td', style = { ['border-bottom'] = '1px dotted black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } } }, ['Jb'] = { { tag = 'td', node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } } }, ['Jt'] = { { tag = 'td', style = { ['border-right'] = '1px dashed black', ['border-bottom'] = '1px dashed black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } }, { tag = 'td', attr = { rowspan = '2' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '2em' } } } }, ['Lb'] = { { tag = 'td', attr = { colspan = '2' }, node = { tag = 'div', style = { ['width'] = '2em', ['height'] = '1em' } } } }, ['Lt'] = { { tag = 'td', style = { ['border-right'] = '1px dashed black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } }, { tag = 'td', style = { ['border-bottom'] = '1px dashed black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } } }, ['Mb'] = { { tag = 'td', style = { ['border-right'] = '1px dotted black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } }, { tag = 'td', node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } } }, ['Mt'] = { { tag = 'td', attr = { colspan = '2' }, style = { ['border-bottom'] = '1px dotted black' }, node = { tag = 'div', style = { ['width'] = '2em', ['height'] = '1em' } } } }, ['Pb'] = { { tag = 'td', attr = { colspan = '2' }, node = { tag = 'div', style = { ['width'] = '2em', ['height'] = '1em' } } } }, ['Pt'] = { { tag = 'td', attr = { colspan = '2' }, style = { ['border-bottom'] = '1px dotted black' }, node = { tag = 'div', style = { ['width'] = '2em', ['height'] = '1em' } } } }, ['Qb'] = { }, ['Qt'] = { { tag = 'td', attr = { rowspan = '2' }, style = { ['border-right'] = '1px dotted black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '2em' } } }, { tag = 'td', attr = { rowspan = '2' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '2em' } } } }, ['Rb'] = { { tag = 'td', style = { ['border-right'] = '1px dotted black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } }, { tag = 'td', node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } } }, ['Rt'] = { { tag = 'td', style = { ['border-right'] = '1px dotted black', ['border-bottom'] = '1px dotted black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } }, { tag = 'td', style = { ['border-bottom'] = '1px dotted black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } } }, ['Sb'] = { { tag = 'td', style = { ['border-right'] = '1px dotted black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } }, { tag = 'td', node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } } }, ['St'] = { { tag = 'td', node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } }, { tag = 'td', style = { ['border-bottom'] = '1px dotted black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } } }, ['T3b'] = { { tag = 'td', style = { ['border-right'] = '1px solid black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } } }, ['T3t'] = { { tag = 'td', style = { ['border-bottom'] = '1px dotted black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } }, { tag = 'td', attr = { rowspan = '2' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '2em' } } } }, ['Tb'] = { { tag = 'td', style = { ['border-right'] = '1px dotted black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } } }, ['Tt'] = { { tag = 'td', style = { ['border-bottom'] = '1px dotted black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } }, { tag = 'td', attr = { rowspan = '2' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '2em' } } } }, ['Vb'] = { { tag = 'td', style = { ['border-right'] = '1px dashed black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } }, { tag = 'td', node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } } }, ['Vt'] = { { tag = 'td', attr = { colspan = '2' }, style = { ['border-bottom'] = '1px dashed black' }, node = { tag = 'div', style = { ['width'] = '2em', ['height'] = '1em' } } } }, ['Wb'] = { { tag = 'td', attr = { colspan = '2' }, node = { tag = 'div', style = { ['width'] = '2em', ['height'] = '1em' } } } }, ['Wt'] = { { tag = 'td', style = { ['border-right'] = '1px dotted black', ['border-bottom'] = '1px dotted black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } }, { tag = 'td', style = { ['border-bottom'] = '1px dotted black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } } }, ['Yb'] = { { tag = 'td', attr = { colspan = '2' }, node = { tag = 'div', style = { ['width'] = '2em', ['height'] = '1em' } } } }, ['Yt'] = { { tag = 'td', style = { ['border-right'] = '1px dotted black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } }, { tag = 'td', style = { ['border-bottom'] = '1px dotted black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } } }, ['Zb'] = { { tag = 'td', node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } } }, ['Zt'] = { { tag = 'td', style = { ['border-right'] = '1px dotted black', ['border-bottom'] = '1px dotted black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } }, { tag = 'td', attr = { rowspan = '2' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '2em' } } } }, ['^b'] = { { tag = 'td', attr = { colspan = '2' }, node = { tag = 'div', style = { ['width'] = '2em', ['height'] = '1em' } } } }, ['^t'] = { { tag = 'td', style = { ['border-right'] = '1px solid black', ['border-bottom'] = '1px solid black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } }, { tag = 'td', style = { ['border-bottom'] = '1px solid black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } } }, ['$b'] = { 	 }, ['$t'] = { tag = 'td', attr = { colspan = '2', rowspan = '2'}, node = { tag = 'div', style = { ['width'] = '2em', ['height'] = '2em' } } }, ['t'] = { tag = 'td', attr = { colspan = '2', rowspan = '2'}, node = { tag = 'div', style = { ['width'] = '2em', ['height'] = '2em' } } }, ['`b'] = { { tag = 'td', attr = { colspan = '2' }, node = { tag = 'div', style = { ['width'] = '2em', ['height'] = '1em' } } } }, ['`t'] = { { tag = 'td', style = { ['border-right'] = '1px solid black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } }, { tag = 'td', style = { ['border-bottom'] = '1px solid black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } } }, ['a2b'] = { { tag = 'td', style = { ['border-right'] = '1px dotted black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } }, { tag = 'td', node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } } }, ['a2t'] = { { tag = 'td', style = { ['border-right'] = '1px dotted black', ['border-bottom'] = '1px dashed #000001' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } }, { tag = 'td', style = { ['border-bottom'] = '1px dashed black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } } }, ['ab'] = { { tag = 'td', style = { ['border-right'] = '1px dotted black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } }, { tag = 'td', node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } } }, ['at'] = { { tag = 'td', style = { ['border-right'] = '1px dotted black', ['border-bottom'] = '1px solid black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } }, { tag = 'td', style = { ['border-bottom'] = '1px solid black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } } }, ['b2b'] = { { tag = 'td', style = { ['border-right'] = '1px dashed black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } }, { tag = 'td', node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } } }, ['b2t'] = { { tag = 'td', style = { ['border-right'] = '1px dashed black', ['border-bottom'] = '1px dotted #000001' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } }, { tag = 'td', style = { ['border-bottom'] = '1px dotted black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } } }, ['b3b'] = { { tag = 'td', style = { ['border-right'] = '1px solid black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } }, { tag = 'td', node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } } }, ['b3t'] = { { tag = 'td', style = { ['border-right'] = '1px solid black', ['border-bottom'] = '1px dashed black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } }, { tag = 'td', style = { ['border-bottom'] = '1px dotted black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } } }, ['bb'] = { { tag = 'td', style = { ['border-right'] = '1px solid black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } }, { tag = 'td', node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } } }, ['bt'] = { { tag = 'td', style = { ['border-right'] = '1px solid black', ['border-bottom'] = '1px dotted black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } }, { tag = 'td', style = { ['border-bottom'] = '1px dotted black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } } }, ['cb'] = { { tag = 'td', style = { ['border-right'] = '1px dashed black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } } }, ['ct'] = { { tag = 'td', style = { ['border-right'] = '1px dashed black', ['border-bottom'] = '1px solid black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } }, { tag = 'td', attr = { rowspan = '2' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '2em' } } } }, ['db'] = { { tag = 'td', node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } } }, ['dt'] = { { tag = 'td', attr = { rowspan = '2' }, style = { ['border-right'] = '1px dashed black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '2em' } } }, { tag = 'td', style = { ['border-bottom'] = '1px solid black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } } }, ['eb'] = { { tag = 'td', style = { ['border-right'] = '1px solid black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } } }, ['et'] = { { tag = 'td', style = { ['border-right'] = '1px solid black', ['border-bottom'] = '1px dashed black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } }, { tag = 'td', attr = { rowspan = '2' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '2em' } } } }, ['fb'] = { { tag = 'td', node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } } }, ['ft'] = { { tag = 'td', attr = { rowspan = '2' }, style = { ['border-right'] = '1px solid black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '2em' } } }, { tag = 'td', style = { ['border-bottom'] = '1px dashed black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } } }, ['hb'] = { { tag = 'td', attr = { colspan = '2' }, node = { tag = 'div', style = { ['width'] = '2em', ['height'] = '1em' } } } }, ['ht'] = { { tag = 'td', style = { ['border-right'] = '1px solid black', ['border-bottom'] = '1px dashed black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } }, { tag = 'td', style = { ['border-bottom'] = '1px dashed black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } } }, ['ib'] = { { tag = 'td', attr = { colspan = '2' }, node = { tag = 'div', style = { ['width'] = '2em', ['height'] = '1em' } } } }, ['it'] = { { tag = 'td', style = { ['border-right'] = '1px dashed black', ['border-bottom'] = '1px solid black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } }, { tag = 'td', style = { ['border-bottom'] = '1px solid black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } } }, ['jb'] = { { tag = 'td', style = { ['border-right'] = '1px dashed black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } }, { tag = 'td', node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } } }, ['jt'] = { { tag = 'td', attr = { colspan = '2' }, style = { ['border-bottom'] = '1px solid black' }, node = { tag = 'div', style = { ['width'] = '2em', ['height'] = '1em' } } } }, ['k2b'] = { { tag = 'td', node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } } }, ['k2t'] = { { tag = 'td', attr = { rowspan = '2' }, style = { ['border-right'] = '1px dotted black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '2em' } } }, { tag = 'td', style = { ['border-bottom'] = '1px dashed black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } } }, ['k3b'] = { { tag = 'td', style = { ['border-right'] = '1px dashed black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } }, { tag = 'td', node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } } }, ['k3t'] = { { tag = 'td', style = { ['border-right'] = '1px solid black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } }, { tag = 'td', style = { ['border-bottom'] = '1px dashed black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } } }, ['kb'] = { { tag = 'td', node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } } }, ['kt'] = { { tag = 'td', attr = { rowspan = '2' }, style = { ['border-right'] = '1px dotted black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '2em' } } }, { tag = 'td', style = { ['border-bottom'] = '1px solid black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } } }, ['l2b'] = { { tag = 'td', style = { ['border-right'] = '1px dotted black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } } }, ['l2t'] = { { tag = 'td', style = { ['border-right'] = '1px dotted black', ['border-bottom'] = '1px dashed #000001' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } }, { tag = 'td', attr = { rowspan = '2' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '2em' } } } }, ['l3b'] = { { tag = 'td', style = { ['border-right'] = '1px dashed black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } } }, ['l3t'] = { { tag = 'td', style = { ['border-right'] = '1px solid black', ['border-bottom'] = '1px solid black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } }, { tag = 'td', attr = { rowspan = '2' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '2em' } } } }, ['lb'] = { { tag = 'td', style = { ['border-right'] = '1px dotted black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } } }, ['lt'] = { { tag = 'td', style = { ['border-right'] = '1px dotted black', ['border-bottom'] = '1px solid black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } }, { tag = 'td', attr = { rowspan = '2' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '2em' } } } }, ['m2b'] = { { tag = 'td', style = { ['border-right'] = '1px dashed black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } }, { tag = 'td', node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } } }, ['m2t'] = { { tag = 'td', attr = { colspan = '2' }, style = { ['border-bottom'] = '1px dotted black' }, node = { tag = 'div', style = { ['width'] = '2em', ['height'] = '1em' } } } }, ['mb'] = { { tag = 'td', style = { ['border-right'] = '1px solid black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } }, { tag = 'td', node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } } }, ['mt'] = { { tag = 'td', attr = { colspan = '2' }, style = { ['border-bottom'] = '1px dotted black' }, node = { tag = 'div', style = { ['width'] = '2em', ['height'] = '1em' } } } }, ['n2b'] = { { tag = 'td', attr = { colspan = '2' }, node = { tag = 'div', style = { ['width'] = '2em', ['height'] = '1em' } } } }, ['n2t'] = { { tag = 'td', style = { ['border-right'] = '1px dashed black', ['border-bottom'] = '1px dotted #000001' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } }, { tag = 'td', style = { ['border-bottom'] = '1px dotted black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } } }, ['nb'] = { { tag = 'td', attr = { colspan = '2' }, node = { tag = 'div', style = { ['width'] = '2em', ['height'] = '1em' } } } }, ['nt'] = { { tag = 'td', style = { ['border-right'] = '1px solid black', ['border-bottom'] = '1px dotted black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } }, { tag = 'td', style = { ['border-bottom'] = '1px dotted black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } } }, ['o2b'] = { { tag = 'td', node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } } }, ['o2t'] = { { tag = 'td', attr = { rowspan = '2' }, style = { ['border-right'] = '1px dashed black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '2em' } } }, { tag = 'td', style = { ['border-bottom'] = '1px dotted black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } } }, ['ob'] = { { tag = 'td', node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } } }, ['ot'] = { { tag = 'td', attr = { rowspan = '2' }, style = { ['border-right'] = '1px solid black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '2em' } } }, { tag = 'td', style = { ['border-bottom'] = '1px dotted black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } } }, ['p2b'] = { { tag = 'td', style = { ['border-right'] = '1px dashed black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } } }, ['p2t'] = { { tag = 'td', style = { ['border-right'] = '1px dashed black', ['border-bottom'] = '1px dotted #000001' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } }, { tag = 'td', attr = { rowspan = '2' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '2em' } } } }, ['pb'] = { { tag = 'td', style = { ['border-right'] = '1px solid black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } } }, ['pt'] = { { tag = 'td', style = { ['border-right'] = '1px solid black', ['border-bottom'] = '1px dotted black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } }, { tag = 'td', attr = { rowspan = '2' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '2em' } } } }, ['q2b'] = { { tag = 'td', attr = { colspan = '2' }, node = { tag = 'div', style = { ['width'] = '2em', ['height'] = '1em' } } } }, ['q2t'] = { { tag = 'td', style = { ['border-right'] = '1px dotted black', ['border-bottom'] = '1px dashed #000001' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } }, { tag = 'td', style = { ['border-bottom'] = '1px dashed black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } } }, ['qb'] = { { tag = 'td', attr = { colspan = '2' }, node = { tag = 'div', style = { ['width'] = '2em', ['height'] = '1em' } } } }, ['qt'] = { { tag = 'td', style = { ['border-right'] = '1px dotted black', ['border-bottom'] = '1px solid black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } }, { tag = 'td', style = { ['border-bottom'] = '1px solid black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } } }, ['r2b'] = { { tag = 'td', style = { ['border-right'] = '1px dotted black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } }, { tag = 'td', node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } } }, ['r2t'] = { { tag = 'td', attr = { colspan = '2' }, style = { ['border-bottom'] = '1px dashed black' }, node = { tag = 'div', style = { ['width'] = '2em', ['height'] = '1em' } } } }, ['rb'] = { { tag = 'td', style = { ['border-right'] = '1px dotted black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } }, { tag = 'td', node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } } }, ['rt'] = { { tag = 'td', attr = { colspan = '2' }, style = { ['border-bottom'] = '1px solid black' }, node = { tag = 'div', style = { ['width'] = '2em', ['height'] = '1em' } } } }, ['tb'] = { { tag = 'td', style = { ['border-right'] = '1px solid black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } }, { tag = 'td', node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } } }, ['tt'] = { { tag = 'td', style = { ['border-right'] = '1px solid black', ['border-bottom'] = '1px dashed black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } }, { tag = 'td', style = { ['border-bottom'] = '1px dashed black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } } }, ['vb'] = { { tag = 'td', style = { ['border-right'] = '1px solid black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } }, { tag = 'td', node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } } }, ['vt'] = { { tag = 'td', attr = { colspan = '2' }, style = { ['border-bottom'] = '1px solid black' }, node = { tag = 'div', style = { ['width'] = '2em', ['height'] = '1em' } } } }, ['xb'] = { }, ['xt'] = { }, ['yb'] = { { tag = 'td', style = { ['border-right'] = '1px solid black' }, node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } }, { tag = 'td', node = { tag = 'div', style = { ['width'] = '1em', ['height'] = '1em' } } } }, ['yt'] = { { tag = 'td', attr = { colspan = '2' }, style = { ['border-bottom'] = '1px dashed black' }, node = { tag = 'div', style = { ['width'] = '2em', ['height'] = '1em' } } } }, ['~b'] = { { tag = 'td', attr = { colspan = '2' }, node = { tag = 'div', style = { ['width'] = '2em', ['height'] = '1em' } } } }, ['~t'] = { { tag = 'td', attr = { colspan = '2' }, style = { ['border-bottom'] = '1px dashed black' }, node = { tag = 'div', style = { ['width'] = '2em', ['height'] = '1em' } } } } }

function p.main(frame) local args = frame:getParent.args local cell_args = {} for i, v in ipairs(args) do		v = mw.text.trim(v:gsub('^%s+$','$')) local cell_x = {} if cells[v..'t'] then cell_x.box = nil else local args_v = args[v] if args_v then cell_x.text = args_v else cell_x.text = '' end cell_x.box = true cell_x.colspan = args['colspan_'..v] or args.colspan or '6' cell_x.rowspan = args['rowspan_'..v] or args.rowspan or '2' cell_x.thick = args['border_'..v] or args.border or '2' cell_x.thick = args['boxstyle_'..v] or args.boxstyle or '' end table.insert(cell_args,cell_x) end return p._main(cell_args) end

function p._main(cell_args) local ret = mw.html.create('tr') :css({ ['height'] = '1px',								['text-align'] = 'center' }) for i, v in ipairs(cell_args) do		if v.box then ret:node(make_box(v)) else ret:node(make_tags(v)) end end return ret:done end

function p.make_cell(name) local props = cells[name] if not props then return end local ret = '' for i, v in ipairs(props) do ret = ret .. tostring(make_tags(v)) end return ret end

function make_tags(tbl) local ret = mw.html.create(tbl.tag) if tbl.style then for n, s in pairs(tbl.style) do			ret:css(n,s) end end if tbl.attr then for n, s in pairs(tbl.attr) do			ret:attr(n,s) end end if tbl.node then ret:node(make_tag(tbl.node)) end return ret:done end

function make_box(tbl) local ret = mw.html.create('td') :attr('colspan',tbl.colspan) :attr('rowspan',tbl.rowspan) :css({ ['padding'] = '0.2em',					['border'] = tbl.thick .. 'px solid black' }) :cssText(tbl.css) :wikitext(tbl.text) :done return ret end

return p