#
# Copyright (C) 1995-2008 by The BRLTTY Developers.
#
#  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/>.

# BRLTTY Text Table - Armenian
#
# Samuel Thibault <samuel.thibault@ens-lyon.org>
# 
# This table is based on the Unesco report on the progress of unification of
# braille writing « L'ÉCRITURE BRAILLE DANS LE MONDE », by Sir Clutha
# MACKENZIE: http://unesdoc.unesco.org/images/0013/001352/135251fo.pdf
# The document is dated 1954, so this table may be quite outdated.

# generated by ttbtest
space \s 0		SPACE
punctuation ! 235		EXCLAMATION MARK
punctuation " 2356		QUOTATION MARK
punctuation ' 3		APOSTROPHE
punctuation ( 236		LEFT PARENTHESIS
punctuation ) 356		RIGHT PARENTHESIS
punctuation , 2		COMMA
punctuation - 36		HYPHEN-MINUS
punctuation . 256		FULL STOP
include digits8Dots.uti
punctuation : 25		COLON
punctuation ; 23		SEMICOLON
punctuation ? 236		QUESTION MARK
punctuation \x00a0 0		NO-BREAK SPACE
uppercase \x0531 17		ARMENIAN CAPITAL LETTER AYB
uppercase \x0532 12347		ARMENIAN CAPITAL LETTER BEN
uppercase \x0533 123457		ARMENIAN CAPITAL LETTER GIM
uppercase \x0534 14567		ARMENIAN CAPITAL LETTER DA
uppercase \x0535 134567		ARMENIAN CAPITAL LETTER ECH
uppercase \x0536 13567		ARMENIAN CAPITAL LETTER ZA
uppercase \x0537 157		ARMENIAN CAPITAL LETTER EH
uppercase \x0538 1367		ARMENIAN CAPITAL LETTER ET
uppercase \x0539 23457		ARMENIAN CAPITAL LETTER TO
uppercase \x053a 3457		ARMENIAN CAPITAL LETTER ZHE
uppercase \x053b 247		ARMENIAN CAPITAL LETTER INI
uppercase \x053c 1237		ARMENIAN CAPITAL LETTER LIWN
uppercase \x053d 13467		ARMENIAN CAPITAL LETTER XEH
uppercase \x053e 347		ARMENIAN CAPITAL LETTER CA
uppercase \x053f 12457		ARMENIAN CAPITAL LETTER KEN
uppercase \x0540 1257		ARMENIAN CAPITAL LETTER HO
uppercase \x0541 3467		ARMENIAN CAPITAL LETTER JA
uppercase \x0542 1267		ARMENIAN CAPITAL LETTER GHAD
uppercase \x0543 2457		ARMENIAN CAPITAL LETTER CHEH
uppercase \x0544 1347		ARMENIAN CAPITAL LETTER MEN
uppercase \x0545 1567		ARMENIAN CAPITAL LETTER YI
uppercase \x0546 13457		ARMENIAN CAPITAL LETTER NOW
uppercase \x0547 1467		ARMENIAN CAPITAL LETTER SHA
uppercase \x0548 2467		ARMENIAN CAPITAL LETTER VO
uppercase \x0549 167		ARMENIAN CAPITAL LETTER CHA
uppercase \x054a 127		ARMENIAN CAPITAL LETTER PEH
uppercase \x054b 147		ARMENIAN CAPITAL LETTER JHEH
uppercase \x054c 124567		ARMENIAN CAPITAL LETTER RA
uppercase \x054d 2347		ARMENIAN CAPITAL LETTER SEH
uppercase \x054e 12367		ARMENIAN CAPITAL LETTER VEW
uppercase \x054f 1457		ARMENIAN CAPITAL LETTER TIWN
uppercase \x0550 12357		ARMENIAN CAPITAL LETTER REH
uppercase \x0551 23467		ARMENIAN CAPITAL LETTER CO
uppercase \x0552 24567		ARMENIAN CAPITAL LETTER YIWN
uppercase \x0553 12467		ARMENIAN CAPITAL LETTER PIWR
uppercase \x0554 137		ARMENIAN CAPITAL LETTER KEH
uppercase \x0555 1357		ARMENIAN CAPITAL LETTER OH
uppercase \x0556 1247		ARMENIAN CAPITAL LETTER FEH
punctuation \x055d 6		ARMENIAN COMMA
lowercase \x0561 1		ARMENIAN SMALL LETTER AYB
lowercase \x0562 1234		ARMENIAN SMALL LETTER BEN
lowercase \x0563 12345		ARMENIAN SMALL LETTER GIM
lowercase \x0564 1456		ARMENIAN SMALL LETTER DA
lowercase \x0565 13456		ARMENIAN SMALL LETTER ECH
lowercase \x0566 1356		ARMENIAN SMALL LETTER ZA
lowercase \x0567 15		ARMENIAN SMALL LETTER EH
lowercase \x0568 136		ARMENIAN SMALL LETTER ET
lowercase \x0569 2345		ARMENIAN SMALL LETTER TO
lowercase \x056a 345		ARMENIAN SMALL LETTER ZHE
lowercase \x056b 24		ARMENIAN SMALL LETTER INI
lowercase \x056c 123		ARMENIAN SMALL LETTER LIWN
lowercase \x056d 1346		ARMENIAN SMALL LETTER XEH
lowercase \x056e 34		ARMENIAN SMALL LETTER CA
lowercase \x056f 1245		ARMENIAN SMALL LETTER KEN
lowercase \x0570 125		ARMENIAN SMALL LETTER HO
lowercase \x0571 346		ARMENIAN SMALL LETTER JA
lowercase \x0572 126		ARMENIAN SMALL LETTER GHAD
lowercase \x0573 245		ARMENIAN SMALL LETTER CHEH
lowercase \x0574 134		ARMENIAN SMALL LETTER MEN
lowercase \x0575 156		ARMENIAN SMALL LETTER YI
lowercase \x0576 1345		ARMENIAN SMALL LETTER NOW
lowercase \x0577 146		ARMENIAN SMALL LETTER SHA
lowercase \x0578 246		ARMENIAN SMALL LETTER VO
lowercase \x0579 16		ARMENIAN SMALL LETTER CHA
lowercase \x057a 12		ARMENIAN SMALL LETTER PEH
lowercase \x057b 14		ARMENIAN SMALL LETTER JHEH
lowercase \x057c 12456		ARMENIAN SMALL LETTER RA
lowercase \x057d 234		ARMENIAN SMALL LETTER SEH
lowercase \x057e 1236		ARMENIAN SMALL LETTER VEW
lowercase \x057f 145		ARMENIAN SMALL LETTER TIWN
lowercase \x0580 1235		ARMENIAN SMALL LETTER REH
lowercase \x0581 2346		ARMENIAN SMALL LETTER CO
lowercase \x0582 2456		ARMENIAN SMALL LETTER YIWN
lowercase \x0583 1246		ARMENIAN SMALL LETTER PIWR
lowercase \x0584 13		ARMENIAN SMALL LETTER KEH
lowercase \x0585 135		ARMENIAN SMALL LETTER OH
lowercase \x0586 124		ARMENIAN SMALL LETTER FEH
letter \x0587 12346		ARMENIAN SMALL LIGATURE ECH YIWN
