#chr##1#Cherokee Uncontracted#
# liblouis: Cherokee Braille Table
#
# ------------
#-display-name: Cherokee braille
#
#+locale:chr
#+type:literary
#+contraction:no
#+grade:1
#
# TODO: Please correct the metadata above. It is not meant to be
# accurate nor complete. It hasn't been verified by the table
# author yet. It is merely an attempt by the liblouis maintainers
# to get some sensible initial values in place.
# ------------
#
# Based on the Cherokee (ᏣᎳᎩ) syllabary Braille code developed by
# Tamara Johnson Kearney <https://www.cbtbc.org/braille/cherokee/>.
#
# Copyright (C) 2014, Greg Kearney, gkearney@gmail.com
#
# This file is part of liblouis.
#
# liblouis is free software: you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as
# published by the Free Software Foundation, either version 2.1 of
# the License, or (at your option) any later version.
#
# liblouis is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with liblouis. If not, see
# <http://www.gnu.org/licenses/>.

#include text_nabcc.dis All display opcodes

include en-ueb-g1.ctb

# letsign 456 ink letter sign

# The Vowels

letter		\x13A0		1		CHEROKEE LETTER A
letter		\x13A1		15		CHEROKEE LETTER E
letter		\x13A2		24		CHEROKEE LETTER I
letter		\x13A3		135		CHEROKEE LETTER O
letter		\x13A4		136		CHEROKEE LETTER U
letter		\x13A5		1236	CHEROKEE LETTER V

# The Consonants
# G

letter		\x13A6		1245-1		CHEROKEE LETTER GA
letter		\x13A7		13-1		CHEROKEE LETTER KA
letter		\x13A8		1245-15		CHEROKEE LETTER GE
letter		\x13A9		1245-24		CHEROKEE LETTER GI
letter		\x13AA		1245-135	CHEROKEE LETTER GO
letter		\x13AB		1245-136	CHEROKEE LETTER GU
letter		\x13AC		1245-1236	CHEROKEE LETTER GV

# H

letter		\x13AD		125-1		CHEROKEE LETTER HA
letter		\x13AE		125-15		CHEROKEE LETTER HE
letter		\x13AF		125-24		CHEROKEE LETTER HI
letter		\x13B0		125-135		CHEROKEE LETTER HO
letter		\x13B1		125-136		CHEROKEE LETTER HU
letter		\x13B2		125-1236	CHEROKEE LETTER HV

# L

letter		\x13B3		123-1		CHEROKEE LETTER LA
letter		\x13B4		123-15		CHEROKEE LETTER LE
letter		\x13B5		123-24		CHEROKEE LETTER LI
letter		\x13B6		123-135		CHEROKEE LETTER LO
letter		\x13B7		123-136		CHEROKEE LETTER LU
letter		\x13B8		123-1236	CHEROKEE LETTER LV

# M

letter		\x13B9		134-1		CHEROKEE LETTER MA
letter		\x13BA		134-15		CHEROKEE LETTER ME
letter		\x13BB		134-24		CHEROKEE LETTER MI
letter		\x13BC		134-135		CHEROKEE LETTER MO
letter		\x13BD		134-136		CHEROKEE LETTER MU
# SPACE RESERVED FOR CHEROKEE LETTER MV

# N

letter		\x13BE		1345-1		CHEROKEE LETTER NA
letter		\x13BF		12-1		CHEROKEE LETTER HNA
letter		\x13C0		14-1		CHEROKEE LETTER NAH
letter		\x13C1		1345-15		CHEROKEE LETTER NE
letter		\x13C2		1345-24		CHEROKEE LETTER NI
letter		\x13C3		1345-135	CHEROKEE LETTER NO
letter		\x13C4		1345-136	CHEROKEE LETTER NU
letter		\x13C5		1345-1236	CHEROKEE LETTER NV

# Q

letter		\x13C6		12345-1		CHEROKEE LETTER QA
letter		\x13C7		12345-15	CHEROKEE LETTER QE
letter		\x13C8		12345-24	CHEROKEE LETTER QI
letter		\x13C9		12345-135	CHEROKEE LETTER QO
letter		\x13CA		12345-136	CHEROKEE LETTER QU
letter		\x13CB		12345-1236	CHEROKEE LETTER QV

# S

letter		\x13CD		234			CHEROKEE LETTER S
letter		\x13CC		234-1		CHEROKEE LETTER SA
letter		\x13CE		234-15		CHEROKEE LETTER SE
letter		\x13CF		234-24		CHEROKEE LETTER SI
letter		\x13D0		234-135		CHEROKEE LETTER SO
letter		\x13D1		234-136		CHEROKEE LETTER SU
letter		\x13D2		234-1236	CHEROKEE LETTER SV

# D T

letter		\x13D3		145-1		CHEROKEE LETTER DA
letter		\x13D4		2345-1		CHEROKEE LETTER SA
letter		\x13D5		145-15		CHEROKEE LETTER DE
letter		\x13D6		2345-15		CHEROKEE LETTER SE
letter		\x13D7		145-24		CHEROKEE LETTER DI
letter		\x13D8		2345-24		CHEROKEE LETTER SI

letter		\x13D9		145-135		CHEROKEE LETTER DO
letter		\x13DA		145-136		CHEROKEE LETTER DU
letter		\x13DB		145-1236	CHEROKEE LETTER DV

# R F

letter		\x13DC		124-1		CHEROKEE LETTER DLA
letter		\x13DD		1235-1		CHEROKEE LETTER TLA
letter		\x13DE		1235-15		CHEROKEE LETTER TLE
letter		\x13DF		1235-24		CHEROKEE LETTER TLI
letter		\x13E0		1235-135	CHEROKEE LETTER TLO
letter		\x13E1		1235-136	CHEROKEE LETTER TLU
letter		\x13E2		1235-1236	CHEROKEE LETTER TLV


# Z

letter		\x13E3		1356-1		CHEROKEE LETTER TSA
letter		\x13E4		1356-15		CHEROKEE LETTER TSE
letter		\x13E5		1356-24		CHEROKEE LETTER TSI
letter		\x13E6		1356-135	CHEROKEE LETTER TSO
letter		\x13E7		1356-136	CHEROKEE LETTER TSU
letter		\x13E8		1356-1236	CHEROKEE LETTER TSV

# W

letter		\x13E9		2456-1		CHEROKEE LETTER WA
letter		\x13EA		2456-15		CHEROKEE LETTER WE
letter		\x13EB		2456-24		CHEROKEE LETTER WI
letter		\x13EC		2456-135	CHEROKEE LETTER WO
letter		\x13ED		2456-136	CHEROKEE LETTER WU
letter		\x13EE		2456-1236	CHEROKEE LETTER WV

# Y

letter		\x13EF		13456-1		CHEROKEE LETTER YA
letter		\x13F0		13456-15	CHEROKEE LETTER YE
letter		\x13F1		13456-24	CHEROKEE LETTER YI
letter		\x13F2		13456-135	CHEROKEE LETTER YO
letter		\x13F3		13456-136	CHEROKEE LETTER YU
letter		\x13F4		13456-1236	CHEROKEE LETTER YV

letter		\x0323		5			COMBINING DOT BELOW
letter		\x0331		156			COMBINING MACRON BELOW
letter		\x0324		56			COMBINING DIAERESIS BELOW
letter		\x0330		12456		COMBINING TILDE BELOW
