# liblouis: U.K. English 8 dot Computer braille table
#
#  Copyright (C) 2013 David Reynolds <dkreynolds@ntlworld.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/>.

space \t 9 tab
space \s 0 blank
space \x00a0 a unbreakable space
sign \x000a 24578 newline
space \x000d 13478 carriage return
include latinLetterDef8Dots.uti
punctuation , 2
punctuation ; 23
punctuation : 25
punctuation . 256
punctuation ! 3456
punctuation " 4
punctuation ' 3
punctuation ( 45
punctuation ) 345
punctuation - 36
sign _ 456
math < 236
math = 2356
math > 356
sign % 46
math + 236
math ~ 14567
sign ` 3457
sign £ 467
sign & 12346
sign $ 34567
punctuation ? 26
punctuation { 123567
punctuation [ 12356
punctuation } 234567
punctuation ] 23456
sign ^ 6
sign @ 2346
sign # 56
sign \\ 167
sign | 468
math / 34
sign * 35
digit 0 123456
include digits6DotsPlusDot6.uti
noback sign \X25CF 35	# 9679 black circle
