###############################################################################
# BRLTTY - A background process providing access to the console screen (when in
#          text mode) for a blind person using a refreshable braille display.
#
# Copyright (C) 1995-2023 by The BRLTTY Developers.
#
# BRLTTY comes with ABSOLUTELY NO WARRANTY.
#
# This is free software, placed 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. Please see the file LICENSE-LGPL for details.
#
# Web Page: http://brltty.app/
#
# This software is maintained by Dave Mielke <dave@mielke.cc>.
###############################################################################

# BRLTTY Text Table - Swedish (1989 standard)

# the standard representations for the letters of the Latin alphabet
include ltr-latin.tti

# the standard representations for the Latin control characters
include ctl-latin.tti

# the numbers 0-9 are represented by the letters j,a-i with dot 8 added
include num-dot8.tti

# generated by ttbtest: charset=iso-8859-1
char \x00	(        )  # 00 ⠀   [NULL]
# Latin control characters  # 01-1A
char \x1B	(  345 78)  # 1B ⣜   [ESCAPE]
char \x1C	( 2 4 678)  # 1C ⣪   [INFORMATION SEPARATOR FOUR]
char \x1D	(1    678)  # 1D ⣡   [INFORMATION SEPARATOR THREE]
char \x1E	(   45 78)  # 1E ⣘   [INFORMATION SEPARATOR TWO]
char \x1F	(  3  678)  # 1F ⣤   [INFORMATION SEPARATOR ONE]
char \x20	(        )  # 20 ⠀   [SPACE]
char \x21	( 23 5   )  # 21 ⠖ ! [EXCLAMATION MARK]
char \x22	(    56  )  # 22 ⠰ " [QUOTATION MARK]
char \x23	(  3456  )  # 23 ⠼ # [NUMBER SIGN]
char \x24	( 2  56  )  # 24 ⠲ $ [DOLLAR SIGN]
char \x25	(   4 678)  # 25 ⣨ % [PERCENT SIGN]
char \x26	(  34 6  )  # 26 ⠬ & [AMPERSAND]
char \x27	(    5   )  # 27 ⠐ ' [APOSTROPHE]
char \x28	( 23  678)  # 28 ⣦ ( [LEFT PARENTHESIS]
char \x29	(  3 5678)  # 29 ⣴ ) [RIGHT PARENTHESIS]
char \x2A	(  3 5   )  # 2A ⠔ * [ASTERISK]
char \x2B	( 23 5 7 )  # 2B ⡖ + [PLUS SIGN]
char \x2C	( 2      )  # 2C ⠂ , [COMMA]
char \x2D	(  3  6  )  # 2D ⠤ - [HYPHEN-MINUS]
char \x2E	(  3     )  # 2E ⠄ . [FULL STOP]
char \x2F	(  34    )  # 2F ⠌ / [SOLIDUS]
# Hindu-Arabic numerals     # 30-39
char \x3A	( 2  5   )  # 3A ⠒ : [COLON]
char \x3B	( 23     )  # 3B ⠆ ; [SEMICOLON]
char \x3C	( 2   6 8)  # 3C ⢢ < [LESS-THAN SIGN]
char \x3D	( 23 56  )  # 3D ⠶ = [EQUALS SIGN]
char \x3E	(  3 5 7 )  # 3E ⡔ > [GREATER-THAN SIGN]
char \x3F	( 2   6  )  # 3F ⠢ ? [QUESTION MARK]
char \x40	(   4 67 )  # 40 ⡨ @ [COMMERCIAL AT]
# uppercase Latin alphabet  # 41-5A
char \x5B	( 23 5 78)  # 5B ⣖ [ [LEFT SQUARE BRACKET]
char \x5C	(   4567 )  # 5C ⡸ \ [REVERSE SOLIDUS]
char \x5D	( 2  5678)  # 5D ⣲ ] [RIGHT SQUARE BRACKET]
char \x5E	(   45 7 )  # 5E ⡘ ^ [CIRCUMFLEX ACCENT]
char \x5F	(      78)  # 5F ⣀ _ [LOW LINE]
char \x60	(   4 6  )  # 60 ⠨ ` [GRAVE ACCENT]
# lowercase Latin alphabet  # 61-7A
char \x7B	(  3   78)  # 7B ⣄ { [LEFT CURLY BRACKET]
char \x7C	(       8)  # 7C ⢀ | [VERTICAL LINE]
char \x7D	(     678)  # 7D ⣠ } [RIGHT CURLY BRACKET]
char \x7E	(   45   )  # 7E ⠘ ~ [TILDE]
char \x7F	(   456 8)  # 7F ⢸   [DELETE]
char \x80	(       8)  # 80 ⢀   [<control-0080>]
char \x81	(       8)  # 81 ⢀   [<control-0081>]
char \x82	(       8)  # 82 ⢀   [BREAK PERMITTED HERE]
char \x83	(       8)  # 83 ⢀   [NO BREAK HERE]
char \x84	(       8)  # 84 ⢀   [<control-0084>]
char \x85	(       8)  # 85 ⢀   [NEXT LINE (NEL)]
char \x86	(       8)  # 86 ⢀   [START OF SELECTED AREA]
char \x87	(       8)  # 87 ⢀   [END OF SELECTED AREA]
char \x88	(       8)  # 88 ⢀   [CHARACTER TABULATION SET]
char \x89	(       8)  # 89 ⢀   [CHARACTER TABULATION WITH JUSTIFICATION]
char \x8A	(       8)  # 8A ⢀   [LINE TABULATION SET]
char \x8B	(       8)  # 8B ⢀   [PARTIAL LINE FORWARD]
char \x8C	(       8)  # 8C ⢀   [PARTIAL LINE BACKWARD]
char \x8D	(       8)  # 8D ⢀   [REVERSE LINE FEED]
char \x8E	(       8)  # 8E ⢀   [SINGLE SHIFT TWO]
char \x8F	(       8)  # 8F ⢀   [SINGLE SHIFT THREE]
char \x90	(       8)  # 90 ⢀   [DEVICE CONTROL STRING]
char \x91	(       8)  # 91 ⢀   [PRIVATE USE ONE]
char \x92	(       8)  # 92 ⢀   [PRIVATE USE TWO]
char \x93	(       8)  # 93 ⢀   [SET TRANSMIT STATE]
char \x94	(       8)  # 94 ⢀   [CANCEL CHARACTER]
char \x95	(       8)  # 95 ⢀   [MESSAGE WAITING]
char \x96	(       8)  # 96 ⢀   [START OF GUARDED AREA]
char \x97	(       8)  # 97 ⢀   [END OF GUARDED AREA]
char \x98	(       8)  # 98 ⢀   [START OF STRING]
char \x99	(       8)  # 99 ⢀   [<control-0099>]
char \x9A	(       8)  # 9A ⢀   [SINGLE CHARACTER INTRODUCER]
char \x9B	(       8)  # 9B ⢀   [CONTROL SEQUENCE INTRODUCER]
char \x9C	(       8)  # 9C ⢀   [STRING TERMINATOR]
char \x9D	(       8)  # 9D ⢀   [OPERATING SYSTEM COMMAND]
char \x9E	(       8)  # 9E ⢀   [PRIVACY MESSAGE]
char \x9F	(       8)  # 9F ⢀   [APPLICATION PROGRAM COMMAND]
char \xA1	(       8)  # A1 ⢀ ¡ [INVERTED EXCLAMATION MARK]
char \xA2	(       8)  # A2 ⢀ ¢ [CENT SIGN]
char \xA3	(       8)  # A3 ⢀ £ [POUND SIGN]
char \xA4	(       8)  # A4 ⢀ ¤ [CURRENCY SIGN]
char \xA5	(       8)  # A5 ⢀ ¥ [YEN SIGN]
char \xA6	(       8)  # A6 ⢀ ¦ [BROKEN BAR]
char \xA7	(       8)  # A7 ⢀ § [SECTION SIGN]
char \xA8	(       8)  # A8 ⢀ ¨ [DIAERESIS]
char \xA9	(       8)  # A9 ⢀ © [COPYRIGHT SIGN]
char \xAA	(       8)  # AA ⢀ ª [FEMININE ORDINAL INDICATOR]
char \xAB	(       8)  # AB ⢀ « [LEFT-POINTING DOUBLE ANGLE QUOTATION MARK]
char \xAC	(       8)  # AC ⢀ ¬ [NOT SIGN]
char \xAD	(       8)  # AD ⢀ ­ [SOFT HYPHEN]
char \xAE	(       8)  # AE ⢀ ® [REGISTERED SIGN]
char \xAF	(       8)  # AF ⢀ ¯ [MACRON]
char \xB0	(       8)  # B0 ⢀ ° [DEGREE SIGN]
char \xB1	(       8)  # B1 ⢀ ± [PLUS-MINUS SIGN]
char \xB2	(       8)  # B2 ⢀ ² [SUPERSCRIPT TWO]
char \xB3	(       8)  # B3 ⢀ ³ [SUPERSCRIPT THREE]
char \xB4	(       8)  # B4 ⢀ ´ [ACUTE ACCENT]
char \xB5	(       8)  # B5 ⢀ µ [MICRO SIGN]
char \xB6	(       8)  # B6 ⢀ ¶ [PILCROW SIGN]
char \xB7	(       8)  # B7 ⢀ · [MIDDLE DOT]
char \xB8	(       8)  # B8 ⢀ ¸ [CEDILLA]
char \xB9	(       8)  # B9 ⢀ ¹ [SUPERSCRIPT ONE]
char \xBA	(       8)  # BA ⢀ º [MASCULINE ORDINAL INDICATOR]
char \xBB	(       8)  # BB ⢀ » [RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK]
char \xBC	(       8)  # BC ⢀ ¼ [VULGAR FRACTION ONE QUARTER]
char \xBD	(       8)  # BD ⢀ ½ [VULGAR FRACTION ONE HALF]
char \xBE	(       8)  # BE ⢀ ¾ [VULGAR FRACTION THREE QUARTERS]
char \xBF	( 2   6  )  # BF ⠢ ¿ [INVERTED QUESTION MARK]
char \xC0	(       8)  # C0 ⢀ À [LATIN CAPITAL LETTER A WITH GRAVE]
char \xC1	(       8)  # C1 ⢀ Á [LATIN CAPITAL LETTER A WITH ACUTE]
char \xC2	(       8)  # C2 ⢀ Â [LATIN CAPITAL LETTER A WITH CIRCUMFLEX]
char \xC3	(       8)  # C3 ⢀ Ã [LATIN CAPITAL LETTER A WITH TILDE]
char \xC4	(  345 7 )  # C4 ⡜ Ä [LATIN CAPITAL LETTER A WITH DIAERESIS]
char \xC5	(1    67 )  # C5 ⡡ Å [LATIN CAPITAL LETTER A WITH RING ABOVE]
char \xC6	(  345  8)  # C6 ⢜ Æ [LATIN CAPITAL LETTER AE]
char \xC7	( 2   67 )  # C7 ⡢ Ç [LATIN CAPITAL LETTER C WITH CEDILLA]
char \xC8	(       8)  # C8 ⢀ È [LATIN CAPITAL LETTER E WITH GRAVE]
char \xC9	(1234567 )  # C9 ⡿ É [LATIN CAPITAL LETTER E WITH ACUTE]
char \xCA	(       8)  # CA ⢀ Ê [LATIN CAPITAL LETTER E WITH CIRCUMFLEX]
char \xCB	(       8)  # CB ⢀ Ë [LATIN CAPITAL LETTER E WITH DIAERESIS]
char \xCC	(       8)  # CC ⢀ Ì [LATIN CAPITAL LETTER I WITH GRAVE]
char \xCD	(       8)  # CD ⢀ Í [LATIN CAPITAL LETTER I WITH ACUTE]
char \xCE	(       8)  # CE ⢀ Î [LATIN CAPITAL LETTER I WITH CIRCUMFLEX]
char \xCF	(       8)  # CF ⢀ Ï [LATIN CAPITAL LETTER I WITH DIAERESIS]
char \xD0	(       8)  # D0 ⢀ Ð [LATIN CAPITAL LETTER ETH]
char \xD1	(12 45678)  # D1 ⣻ Ñ [LATIN CAPITAL LETTER N WITH TILDE]
char \xD2	(       8)  # D2 ⢀ Ò [LATIN CAPITAL LETTER O WITH GRAVE]
char \xD3	(1  4567 )  # D3 ⡹ Ó [LATIN CAPITAL LETTER O WITH ACUTE]
char \xD4	(       8)  # D4 ⢀ Ô [LATIN CAPITAL LETTER O WITH CIRCUMFLEX]
char \xD5	(       8)  # D5 ⢀ Õ [LATIN CAPITAL LETTER O WITH TILDE]
char \xD6	( 2 4 67 )  # D6 ⡪ Ö [LATIN CAPITAL LETTER O WITH DIAERESIS]
char \xD7	(       8)  # D7 ⢀ × [MULTIPLICATION SIGN]
char \xD8	( 2 4 6 8)  # D8 ⢪ Ø [LATIN CAPITAL LETTER O WITH STROKE]
char \xD9	(       8)  # D9 ⢀ Ù [LATIN CAPITAL LETTER U WITH GRAVE]
char \xDA	(12 4567 )  # DA ⡻ Ú [LATIN CAPITAL LETTER U WITH ACUTE]
char \xDB	(       8)  # DB ⢀ Û [LATIN CAPITAL LETTER U WITH CIRCUMFLEX]
char \xDC	(12  567 )  # DC ⡳ Ü [LATIN CAPITAL LETTER U WITH DIAERESIS]
char \xDD	(1234 67 )  # DD ⡯ Ý [LATIN CAPITAL LETTER Y WITH ACUTE]
char \xDE	(12 4 6  )  # DE ⠫ Þ [LATIN CAPITAL LETTER THORN]
char \xDF	(       8)  # DF ⢀ ß [LATIN SMALL LETTER SHARP S]
char \xE0	(123 56  )  # E0 ⠷ à [LATIN SMALL LETTER A WITH GRAVE]
char \xE1	(123 56  )  # E1 ⠷ á [LATIN SMALL LETTER A WITH ACUTE]
char \xE2	(1    6  )  # E2 ⠡ â [LATIN SMALL LETTER A WITH CIRCUMFLEX]
char \xE3	(       8)  # E3 ⢀ ã [LATIN SMALL LETTER A WITH TILDE]
char \xE4	(  345   )  # E4 ⠜ ä [LATIN SMALL LETTER A WITH DIAERESIS]
char \xE5	(1    6  )  # E5 ⠡ å [LATIN SMALL LETTER A WITH RING ABOVE]
char \xE6	(    567 )  # E6 ⡰ æ [LATIN SMALL LETTER AE]
char \xE7	(1234 6  )  # E7 ⠯ ç [LATIN SMALL LETTER C WITH CEDILLA]
char \xE8	( 234 6  )  # E8 ⠮ è [LATIN SMALL LETTER E WITH GRAVE]
char \xE9	(123456  )  # E9 ⠿ é [LATIN SMALL LETTER E WITH ACUTE]
char \xEA	(12   6  )  # EA ⠣ ê [LATIN SMALL LETTER E WITH CIRCUMFLEX]
char \xEB	(12 4 6  )  # EB ⠫ ë [LATIN SMALL LETTER E WITH DIAERESIS]
char \xEC	(  34    )  # EC ⠌ ì [LATIN SMALL LETTER I WITH GRAVE]
char \xED	(  34    )  # ED ⠌ í [LATIN SMALL LETTER I WITH ACUTE]
char \xEE	(1  4 6  )  # EE ⠩ î [LATIN SMALL LETTER I WITH CIRCUMFLEX]
char \xEF	(12 456  )  # EF ⠻ ï [LATIN SMALL LETTER I WITH DIAERESIS]
char \xF0	(       8)  # F0 ⢀ ð [LATIN SMALL LETTER ETH]
char \xF1	(12 456  )  # F1 ⠻ ñ [LATIN SMALL LETTER N WITH TILDE]
char \xF2	(  34 6  )  # F2 ⠬ ò [LATIN SMALL LETTER O WITH GRAVE]
char \xF3	(  34 6  )  # F3 ⠬ ó [LATIN SMALL LETTER O WITH ACUTE]
char \xF4	(1  456  )  # F4 ⠹ ô [LATIN SMALL LETTER O WITH CIRCUMFLEX]
char \xF5	(       8)  # F5 ⢀ õ [LATIN SMALL LETTER O WITH TILDE]
char \xF6	( 2 4 6  )  # F6 ⠪ ö [LATIN SMALL LETTER O WITH DIAERESIS]
char \xF7	(       8)  # F7 ⢀ ÷ [DIVISION SIGN]
char \xF8	(  3 5  8)  # F8 ⢔ ø [LATIN SMALL LETTER O WITH STROKE]
char \xF9	( 23456  )  # F9 ⠾ ù [LATIN SMALL LETTER U WITH GRAVE]
char \xFA	( 23456  )  # FA ⠾ ú [LATIN SMALL LETTER U WITH ACUTE]
char \xFB	(1   56  )  # FB ⠱ û [LATIN SMALL LETTER U WITH CIRCUMFLEX]
char \xFC	(12  56  )  # FC ⠳ ü [LATIN SMALL LETTER U WITH DIAERESIS]
char \xFD	(1234 6  )  # FD ⠯ ý [LATIN SMALL LETTER Y WITH ACUTE]
char \xFE	(12 4 67 )  # FE ⡫ þ [LATIN SMALL LETTER THORN]
char \xFF	(       8)  # FF ⢀ ÿ [LATIN SMALL LETTER Y WITH DIAERESIS]

include common.tti
