# liblouis: Croatian grade 1 Braille
#
# Copyright (C) 2017. Zlatko Sobočan <zlatko.sobocan@tifloglobus.hr>
# by company Tiflo globus d.o.o. <http://www.tifloglobus.hr>
#
#  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/>.

#-------------------------------------------------------------------------------
#
#  Croatian grade 1 Braille
#  Version: 2017-06-15
# Created and maintained: Zlatko Sobočan <zlatko.sobocan@tifloglobus.hr>
# by company Tiflo globus d.o.o. <http://www.tifloglobus.hr>
# Especially thanks Arend Arends <arend.arends@hccnet.nl> by TactileView for testing.
# If you found bugs with Croatian grade1 table, report it with following address:
# Zlatko Sobočan <zlatko.sobocan@tifloglobus.hr>
#
#-------------------------------------------------------------------------------

include text_nabcc.dis
include hr-chardefs.cti
include hr-translation.cti
