#  Copyright (C) 2010 Leon Ungier <Leon.Ungier@ViewPlus.com>, 
#  Copyright (C) 2010 Mohammed R. Ramadan <mramadan@nattiq.com> 
#  Copyright (C) 2010 Samuel Thibault <samuel.thibault@ens-lyon.org>
#
#  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 3 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/>.

# Maintained by John J. Boyer, director@chpi.org, www.chpi.org
#
# This table is built and maintained by Leon Ungier <Leon.Ungier@ViewPlus.com>
# with help and guidance from Mohammed R. Ramadan <mramadan@nattiq.com>
#
# Converted to liblouis table by Samuel Thibault <samuel.thibault@ens-lyon.org>

# generated by ttbtest
letter	\x0901	3	DEVANAGARI SIGN CANDRABINDU
letter	\x0902	56	DEVANAGARI SIGN ANUSVARA
letter	\x0903	6	DEVANAGARI SIGN VISARGA
letter	\x0905	1	DEVANAGARI LETTER A
letter	\x0906	345	DEVANAGARI LETTER AA
letter	\x0907	24	DEVANAGARI LETTER I
letter	\x0908	35	DEVANAGARI LETTER II
letter	\x0909	136	DEVANAGARI LETTER U
letter	\x090a	1256	DEVANAGARI LETTER UU
letter	\x090d	157	DEVANAGARI LETTER CANDRA E
letter	\x090e	347	DEVANAGARI LETTER SHORT E
letter	\x090f	15	DEVANAGARI LETTER E
letter	\x0910	34	DEVANAGARI LETTER AI
letter	\x0911	1357	DEVANAGARI LETTER CANDRA O
letter	\x0912	2467	DEVANAGARI LETTER SHORT O
letter	\x0913	135	DEVANAGARI LETTER O
letter	\x0914	246	DEVANAGARI LETTER AU
letter	\x0915	13	DEVANAGARI LETTER KA
letter	\x0916	46	DEVANAGARI LETTER KHA
letter	\x0917	1234	DEVANAGARI LETTER GA
letter	\x0918	126	DEVANAGARI LETTER GHA
letter	\x0919	346	DEVANAGARI LETTER NGA
letter	\x091a	14	DEVANAGARI LETTER CA
letter	\x091b	16	DEVANAGARI LETTER CHA
letter	\x091c	245	DEVANAGARI LETTER JA
letter	\x091d	356	DEVANAGARI LETTER JHA
letter	\x091e	25	DEVANAGARI LETTER NYA
letter	\x091f	23456	DEVANAGARI LETTER TTA
letter	\x0920	2456	DEVANAGARI LETTER TTHA
letter	\x0921	1246	DEVANAGARI LETTER DDA
letter	\x0922	123456	DEVANAGARI LETTER DDHA
letter	\x0923	3456	DEVANAGARI LETTER NNA
letter	\x0924	2345	DEVANAGARI LETTER TA
letter	\x0925	1456	DEVANAGARI LETTER THA
letter	\x0926	145	DEVANAGARI LETTER DA
letter	\x0927	2346	DEVANAGARI LETTER DHA
letter	\x0928	1345	DEVANAGARI LETTER NA
letter	\x0929	56	DEVANAGARI LETTER NNNA
letter	\x092a	1234	DEVANAGARI LETTER PA
letter	\x092b	235	DEVANAGARI LETTER PHA
letter	\x092c	12	DEVANAGARI LETTER BA
letter	\x092d	45	DEVANAGARI LETTER BHA
letter	\x092e	134	DEVANAGARI LETTER MA
letter	\x092f	13456	DEVANAGARI LETTER YA
letter	\x0930	1235	DEVANAGARI LETTER RA
letter	\x0931	12357	DEVANAGARI LETTER RRA
letter	\x0932	123	DEVANAGARI LETTER LA
letter	\x0933	1237	DEVANAGARI LETTER LLA
letter	\x0934	12378	DEVANAGARI LETTER LLLA
letter	\x0935	1236	DEVANAGARI LETTER VA
letter	\x0936	146	DEVANAGARI LETTER SHA
letter	\x0937	12346	DEVANAGARI LETTER SSA
letter	\x0938	234	DEVANAGARI LETTER SA
letter	\x0939	125	DEVANAGARI LETTER HA
letter	\x093d	2	DEVANAGARI SIGN AVAGRAHA
letter	\x093e	345	DEVANAGARI VOWEL SIGN AA
letter	\x093f	24	DEVANAGARI VOWEL SIGN I
letter	\x0940	35	DEVANAGARI VOWEL SIGN II
letter	\x0941	136	DEVANAGARI VOWEL SIGN U
letter	\x0942	1256	DEVANAGARI VOWEL SIGN UU
letter	\x0945	157	DEVANAGARI VOWEL SIGN CANDRA E
letter	\x0946	347	DEVANAGARI VOWEL SIGN SHORT E
letter	\x0947	15	DEVANAGARI VOWEL SIGN E
letter	\x0948	34	DEVANAGARI VOWEL SIGN AI
letter	\x0949	1357	DEVANAGARI VOWEL SIGN CANDRA O
letter	\x094a	2467	DEVANAGARI VOWEL SIGN SHORT O
letter	\x094b	135	DEVANAGARI VOWEL SIGN O
letter	\x094c	246	DEVANAGARI VOWEL SIGN AU
letter	\x094d	4	DEVANAGARI SIGN VIRAMA
punctuation	\x0964	256	DEVANAGARI DANDA
letter	\x0966	245	DEVANAGARI DIGIT ZERO
letter	\x0967	1	DEVANAGARI DIGIT ONE
letter	\x0968	12	DEVANAGARI DIGIT TWO
letter	\x0969	14	DEVANAGARI DIGIT THREE
letter	\x096a	145	DEVANAGARI DIGIT FOUR
letter	\x096b	15	DEVANAGARI DIGIT FIVE
letter	\x096c	124	DEVANAGARI DIGIT SIX
letter	\x096d	1245	DEVANAGARI DIGIT SEVEN
letter	\x096e	125	DEVANAGARI DIGIT EIGHT
letter	\x096f	24	DEVANAGARI DIGIT NINE
