# liblouis: Character definitions for Croatian tables
#
#  Copyright (©) 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/>.

#-------------------------------------------------------------------------------
#
#  Character definitions for Croatian tables
#
#  Version 2017-06-15
# Created and maintained by 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>
#
#-------------------------------------------------------------------------------

space         \x0009 0-0               #9     [CHARACTER TABULATION]
space \x00a0 a
include spaces.uti

# ===== BASIC LATIN - 0000-007F ================================================

punctuation   \x0021 235               #33    ! EXCLAMATION MARK
punctuation   \x0022 2356               #34    " QUOTATION MARK
sign          \x0023 3456            #35    # NUMBER SIGN
sign          \x0024 5-145              #36    $ DOLLAR SIGN
sign          \x0025 3456-245-356          #37    % PERCENT SIGN
sign          \x0026 12346           #38    & AMPERSAND
punctuation   \x0027 256               #39    ' APOSTROPHE APOSTROPHE-QUOTE
punctuation   \x0028 236             #40    ( LEFT PARENTHESIS
punctuation   \x0029 356             #41    ) RIGHT PARENTHESIS
sign          \x002A 35              #42    * ASTERISK
math          \x002B 4-235             #43    + PLUS SIGN
punctuation   \x002C 2               #44    , COMMA
punctuation   \x002D 36              #45    - HYPHEN-MINUS
punctuation   \x002E 3               #46    . FULL STOP PERIOD
sign          \x002F 1256             #47    / SOLIDUS SLASH
include hr-digits.uti

punctuation   \x003A 25              #58    : COLON
punctuation   \x003B 23              #59    ; SEMICOLON
math          \x003C 246-3              #60    < LESS-THAN SIGN
math          \x003D 4-2356            #61    = EQUALS SIGN
math          \x003E 135-2              #62    > GREATER-THAN SIGN
punctuation   \x003F 26              #63    ? QUESTION MARK

include latinLetterDef6Dots.uti

punctuation   \x005B 6-12356          #91    [  LEFT SQUARE BRACKET
sign          \x005C 4-1256            #92    \  REVERSE SOLIDUS
punctuation   \x005D 6-23456          #93    ]  RIGHT SQUARE BRACKET
sign          \x005E 5          #94    ^  CIRCUMFLEX ACCENT
sign          \x005F 456           #95    _  LOW LINE
sign          \x0060 4             #96    `  GRAVE ACCENT
punctuation   \x007B 12356           #123   {  LEFT CURLY BRACKET
sign          \x007C 45              #124   |  VERTICAL LINE
punctuation   \x007D 23456           #125   }  RIGHT CURLY BRACKET
sign          \x007E 56            #126   ~  TILDE
sign          \x007F 456             #127  [DELETE]
sign          \x0040 4-345           #64    @  COMMERCIAL AT
sign          \x2022 6-35           #82226 •
sign          \x2026 3-3-3           #8230 elipsis
sign          \xF0B7 0-0-36           #bullet

# ===== LATIN-1 SUPPLEMENT: 0080-00FF ==========================================

punctuation   \x00A1 0               #161   ¡ INVERTED EXCLAMATION MARK
sign          \x00A2 5-14            #162   ¢ CENT SIGN
sign          \x00A3 5-123           #163   £ POUND SIGN
sign          \x00A4 5-1236               #164   ¤ CURRENCY SIGN
sign          \x00A5 5-13456         #165   ¥ YEN SIGN
sign          \x00A6 56-36     #166   ¦ BROKEN BAR
sign          \x00A7 346           #167   § SECTION SIGN
sign          \x00A8 4               #168   ¨ DIAERESIS
sign          \x00A9 236-45-14-356 #169   © COPYRIGHT SIGN
lowercase     \x00AA 34-1               #170   ª FEMININE ORDINAL INDICATOR
punctuation   \x00AB 2356             #171   « LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
sign          \x00AC 0               #172   ¬ NOT SIGN
sign          \x00AD 36               #173   ­ SOFT HYPHEN
sign          \x00AE 236-45-1235-356   #174 ® REGISTERED SIGN
sign          \x00AF 0               #175   ¯ MACRON
sign          \x00B0 45-356           #176   ° DEGREE SIGN
math          \x00B1 235-36          #177   ± PLUS-MINUS SIGN
sign          \x00B2 34-3456-12               #178   ² SUPERSCRIPT TWO
sign          \x00B3 34-3456-14               #179   ³ SUPERSCRIPT THREE
sign          \x00B4 0               #180   ´ ACUTE ACCENT
sign          \x00B5 5-134          #181   µ MICRO SIGN
sign          \x00B6 346               #182   ¶ PILCROW SIGN
sign          \x00B7 4-236               #183   · MIDDLE DOT
sign          \x00B8 5               #184   ¸ CEDILLA
sign          \x00B9 34-3456-1               #185   ¹ SUPERSCRIPT ONE
lowercase     \x00BA 34-135             #186   º MASCULINE ORDINAL INDICATOR
punctuation   \x00BB 2356             #187   » RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
math          \x00BC 3456-1-1256-3456-145      #188   ¼ VULGAR FRACTION ONE QUARTER
math          \x00BD 3456-1-1256-3456-12       #189   ½ VULGAR FRACTION ONE HALF
math          \x00BE 3456-14-1256-3456-145     #190   ¾ VULGAR FRACTION THREE QUARTERS
punctuation   \x00BF 0               #191   ¿ INVERTED QUESTION MARK
#uplow        \x00C0\x00E0 4-1				#192 #224 LATIN LETTER A WITH GRAVE
#uplow        \x00C8\x00E8 4-15  #200 #232 LATIN LETTER E WITH GRAVE
#uplow        \x00C9\x00E9 4-15				#201 #231 LATIN LETTER E WITH ACUTE
#uplow        \x00CC\x00EC 4-24				#204 #236 LATIN LETTER I WITH GRAVE
#uplow        \x00D2\x00F2 4-135				#210 #242 LATIN LETTER O WITH GRAVE
#uplow        \x00DA\x00FA 4-136				#218 #250 LATIN LETTER U WITH ACUTE
uplow         \x00C4\x00E4  345      #196 #228  Ää LATIN CAPITAL LETTER A WITH DIAERESIS
uplow         \x00D6\x00F6  246      #214 #246  Öö LATIN CAPITAL LETTER O WITH DIAERESIS
math          \x00D7 4-3             #215   × MULTIPLICATION SIGN
uplow         \x00DC\x00FC  1256     #220 #252   Üü LATIN CAPITAL LETTER U WITH DIAERESIS
lowercase     \x00DF 2346            #223   ß LATIN SMALL LETTER SHARP S
math          \x00F7 4-25               #247   ÷ DIVISION SIGN
sign          \x02D8 6     #728 ˘ brevis
sign          \x2122 236-45-2345-356     #8482 trademark mark

# ===== Latin letters with diaresis: =====

uplow         \x010C\x010D 16      #200 #232 Čč LATIN LETTER C WITH CARON
uplow         \x0106\x0107 146      #198 #230 Ćć LATIN LETTER C WITH ACUTE
uplow         \x0110\x0111 1456     #208 #240 Đđ LATIN LETTER D WITH STROKE
uplow         \x0160\x0161 156    #138 #154 Šš LATIN LETTER S WITH CARON
uplow       \x017D\x017E 2346      #142 #158 Žž LATIN LETTER Z WITH CARON
uplow        \x008E\x009E 2346    # Žž LATIN LETTER Z WITH CARON (ASCII)

# ===== GENERAL PUNCTUATION: 2000-206F =========================================

punctuation   \x2013 6-36            #8211          EN DASH
punctuation   \x2014 5-36            #8212          EM DASH
punctuation   \x2018 6-2356           #8216          LEFT SINGLE QUOTATION MARK
punctuation   \x2019 6-2356           #8217          RIGHT SINGLE QUOTATION MARK
punctuation   \x201A 6-2356           #8218          SINGLE LOW-9 QUOTATION MARK
punctuation   \x201B 6-2356           #8219          SINGLE HIGH-REVERSED-9 QUOTATION MARK
punctuation   \x201C 2356             #8220          LEFT DOUBLE QUOTATION MARK
punctuation   \x201D 2356             #8221          RIGHT DOUBLE QUOTATION MARK
punctuation   \x201E 2356             #8222          DOUBLE LOW-9 QUOTATION MARK
punctuation   \x201F 2356             #8223          DOUBLE HIGH-REVERSED-9 QUOTATION MARK
sign          \x2030 3456-245-356-356      #8240    PER MILLE SIGN
sign          \x2031 3456-245-356-356-356  #8241    PER TEN THOUSAND SIGN
sign          \x2032 45-256            #8242          PRIME
sign          \x2033 45-256-256         #8243          DOUBLE PRIME
punctuation   \x2039 2356                          SINGLE LEFT-POINTING ANGLE QUOTATION MARK
punctuation   \x203a 2356                          SINGLE RIGHT-POINTING ANGLE QUOTATION MARK

# ===== CURRENCY SYMBOLS: 20A0-20CF ============================================

sign          \x20A0 5-15                           #8352 ₠ EURO-CURRENCY SIGN
sign          \x20AC 5-15                           #8364 € EURO-CURRENCY SIGN

# ===== NUMBER FORMS: 2150-218F ================================================

math          \x2153 3456-1-1256-3456-14               VULGAR FRACTION ONE THIRD
math          \x2154 3456-12-1256-3456-14              VULGAR FRACTION TWO THIRDS
math          \x2155 3456-1-1256-3456-15               VULGAR FRACTION ONE FIFTH
math          \x2156 3456-12-1256-3456-15              VULGAR FRACTION TWO FIFTHS
math          \x2157 3456-14-1256-3456-15              VULGAR FRACTION THREE FIFTHS
math          \x2158 3456-145-1256-3456-15             VULGAR FRACTION FOUR FIFTHS
math          \x2159 3456-1-1256-3456-124              VULGAR FRACTION ONE SIXTH
math          \x215a 3456-15-1256-3456-124             VULGAR FRACTION FIVE SIXTHS
math          \x215b 3456-1-1256-3456-125              VULGAR FRACTION ONE EIGHTH
math          \x215c 3456-14-1256-3456-125             VULGAR FRACTION THREE EIGHTHS
math          \x215d 3456-15-1256-3456-125             VULGAR FRACTION FIVE EIGHTHS
math          \x215e 3456-1245-1256-3456-125           VULGAR FRACTION SEVEN EIGHTHS

# ===== ARROWS: 2190-21FF ======================================================

sign          \x2190 5-25           LEFTWARDS ARROW
sign          \x2192 25-2           RIGHTWARDS ARROW
sign          \x2194 5-25-2       LEFT RIGHT ARROW

# ===== MATHEMATICAL OPERATORS: 2200-22FF ======================================

math          \x2212 4-36              #8722   MINUS SIGN
math          \x2215 4-25              #8725   DIVISION SLASH
math          \x2217 4-35              #8727   ASTERISK OPERATOR
math          \x223C 4-26           #8764   TILDE OPERATOR
math          \x2245 4-26-26           #8773   APPROXIMATELY EQUAL TO
math          \x2259 26              #8793   ESTIMATES
math          \x2260 4-256-2356         #8800   NOT EQUAL TO
math          \x2261 4-2356-2356       #8801   IDENTICAL TO
math          \x2264 4-246-2356        #8804   LESS-THAN OR EQUAL TO
math          \x2265 4-135-2356        #8805   GREATER-THAN OR EQUAL TO
math          \x2266 4-246-2356-2356        #8806   LESS-THAN OVER EQUAL TO
math          \x2267 4-135-2356-2356        #8807   GREATER-THAN OVER EQUAL TO
math          \x22c5 4-3               #8901   DOT OPERATOR
math          \x22c6 4-3               #8902   STAR OPERATOR

# ===== BRAILLE PATTERNS: 2800-28FF ============================================

space         \x2800 0               #10240  BRAILLE PATTERN BLANK
sign          \x2801 1               #10241  BRAILLE PATTERN DOTS-1
sign          \x2802 2               #10242  BRAILLE PATTERN DOTS-2
sign          \x2803 12              #10243  BRAILLE PATTERN DOTS-12
sign          \x2804 3               #10244  BRAILLE PATTERN DOTS-3
sign          \x2805 13              #10245  BRAILLE PATTERN DOTS-13
sign          \x2806 23              #10246  BRAILLE PATTERN DOTS-23
sign          \x2807 123             #10247  BRAILLE PATTERN DOTS-123
sign          \x2808 4               #10248  BRAILLE PATTERN DOTS-4
sign          \x2809 14              #10249  BRAILLE PATTERN DOTS-14
sign          \x280a 24              #10250  BRAILLE PATTERN DOTS-24
sign          \x280b 124             #10251  BRAILLE PATTERN DOTS-124
sign          \x280c 34              #10252  BRAILLE PATTERN DOTS-34
sign          \x280d 134             #10253  BRAILLE PATTERN DOTS-134
sign          \x280e 234             #10254  BRAILLE PATTERN DOTS-234
sign          \x280f 1234            #10255  BRAILLE PATTERN DOTS-1234
sign          \x2810 5               #10256  BRAILLE PATTERN DOTS-5
sign          \x2811 15              #10257  BRAILLE PATTERN DOTS-15
sign          \x2812 25              #10258  BRAILLE PATTERN DOTS-25
sign          \x2813 125             #10259  BRAILLE PATTERN DOTS-125
sign          \x2814 35              #10260  BRAILLE PATTERN DOTS-35
sign          \x2815 135             #10261  BRAILLE PATTERN DOTS-135
sign          \x2816 235             #10262  BRAILLE PATTERN DOTS-235
sign          \x2817 1235            #10263  BRAILLE PATTERN DOTS-1235
sign          \x2818 45              #10264  BRAILLE PATTERN DOTS-45
sign          \x2819 145             #10265  BRAILLE PATTERN DOTS-145
sign          \x281a 245             #10266  BRAILLE PATTERN DOTS-245
sign          \x281b 1245            #10267  BRAILLE PATTERN DOTS-1245
sign          \x281c 345             #10268  BRAILLE PATTERN DOTS-345
sign          \x281d 1345            #10269  BRAILLE PATTERN DOTS-1345
sign          \x281e 2345            #10270  BRAILLE PATTERN DOTS-2345
sign          \x281f 12345           #10271  BRAILLE PATTERN DOTS-12345
sign          \x2820 6               #10272  BRAILLE PATTERN DOTS-6
sign          \x2821 16              #10273  BRAILLE PATTERN DOTS-16
sign          \x2822 26              #10274  BRAILLE PATTERN DOTS-26
sign          \x2823 126             #10275  BRAILLE PATTERN DOTS-126
sign          \x2824 36              #10276  BRAILLE PATTERN DOTS-36
sign          \x2825 136             #10277  BRAILLE PATTERN DOTS-136
sign          \x2826 236             #10278  BRAILLE PATTERN DOTS-236
sign          \x2827 1236            #10279  BRAILLE PATTERN DOTS-1236
sign          \x2828 46              #10280  BRAILLE PATTERN DOTS-46
sign          \x2829 146             #10281  BRAILLE PATTERN DOTS-146
sign          \x282a 246             #10282  BRAILLE PATTERN DOTS-246
sign          \x282b 1246            #10283  BRAILLE PATTERN DOTS-1246
sign          \x282c 346             #10284  BRAILLE PATTERN DOTS-346
sign          \x282d 1346            #10285  BRAILLE PATTERN DOTS-1346
sign          \x282e 2346            #10286  BRAILLE PATTERN DOTS-2346
sign          \x282f 12346           #10287  BRAILLE PATTERN DOTS-12346
sign          \x2830 56              #10288  BRAILLE PATTERN DOTS-56
sign          \x2831 156             #10289  BRAILLE PATTERN DOTS-156
sign          \x2832 256             #10290  BRAILLE PATTERN DOTS-256
sign          \x2833 1256            #10291  BRAILLE PATTERN DOTS-1256
sign          \x2834 356             #10292  BRAILLE PATTERN DOTS-356
sign          \x2835 1356            #10293  BRAILLE PATTERN DOTS-1356
sign          \x2836 2356            #10294  BRAILLE PATTERN DOTS-2356
sign          \x2837 12356           #10295  BRAILLE PATTERN DOTS-12356
sign          \x2838 456             #10296  BRAILLE PATTERN DOTS-456
sign          \x2839 1456            #10297  BRAILLE PATTERN DOTS-1456
sign          \x283a 2456            #10298  BRAILLE PATTERN DOTS-2456
sign          \x283b 12456           #10299  BRAILLE PATTERN DOTS-12456
sign          \x283c 3456            #10300  BRAILLE PATTERN DOTS-3456
sign          \x283d 13456           #10301  BRAILLE PATTERN DOTS-13456
sign          \x283e 23456           #10302  BRAILLE PATTERN DOTS-23456
sign          \x283f 123456          #10303  BRAILLE PATTERN DOTS-123456
