1;;; 2;;; Copyright (c) 2003-2013 uim Project https://github.com/uim/uim 3;;; 4;;; All rights reserved. 5;;; 6;;; Redistribution and use in source and binary forms, with or without 7;;; modification, are permitted provided that the following conditions 8;;; are met: 9;;; 1. Redistributions of source code must retain the above copyright 10;;; notice, this list of conditions and the following disclaimer. 11;;; 2. Redistributions in binary form must reproduce the above copyright 12;;; notice, this list of conditions and the following disclaimer in the 13;;; documentation and/or other materials provided with the distribution. 14;;; 3. Neither the name of authors nor the names of its contributors 15;;; may be used to endorse or promote products derived from this software 16;;; without specific prior written permission. 17;;; 18;;; THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' AND 19;;; ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 20;;; IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 21;;; ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE 22;;; FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 23;;; DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 24;;; OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 25;;; HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 26;;; LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 27;;; OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 28;;; SUCH DAMAGE. 29;;;; 30 31;; Charset of this file is UTF-8 32 33(require "util.scm") 34(require "rk.scm") 35(require "generic.scm") 36 37(define-key latin-backspace-key? '("backspace" "<Control>h")) 38(define-key latin-commit-key? "return") 39;;(define-key latin-multi-key? '("<IgnoreShift>Multi_key")) 40 41;; latin-compose-rule is generated from key sequences in 42;; /usr/share/X11/locale/en_US.UTF-8/Compose which uses Multi_key and 43;; deadkeys with only ascii characters. 44 45(define latin-compose-rule '( 46((("dead-tilde" " "))("~")) 47((("dead-tilde" "dead-tilde"))("~")) 48((("dead-acute" " "))("'")) 49((("dead-acute" "dead-acute"))("´")) 50((("dead-grave" " "))("`")) 51((("dead-grave" "dead-grave"))("`")) 52((("dead-circumflex" " "))("^")) 53((("dead-circumflex" "dead-circumflex"))("^")) 54((("dead-abovering" " "))("°")) 55((("dead-abovering" "dead-abovering"))("°")) 56((("dead-macron" " "))("¯")) 57((("dead-macron" "dead-macron"))("¯")) 58((("dead-breve" " "))("˘")) 59((("dead-breve" "dead-breve"))("˘")) 60((("dead-abovedot" " "))("˙")) 61((("dead-abovedot" "dead-abovedot"))("˙")) 62((("dead-diaeresis" "dead-diaeresis"))("¨")) 63((("dead-diaeresis" " "))("\"")) 64((("dead-doubleacute" " "))("˝")) 65((("dead-doubleacute" "dead-doubleacute"))("˝")) 66((("dead-caron" " "))("ˇ")) 67((("dead-caron" "dead-caron"))("ˇ")) 68((("dead-cedilla" " "))("¸")) 69((("dead-cedilla" "dead-cedilla"))("¸")) 70((("dead-ogonek" " "))("˛")) 71((("dead-ogonek" "dead-ogonek"))("˛")) 72((("dead-iota" " "))("ͺ")) 73((("dead-iota" "dead-iota"))("ͺ")) 74((("Multi_key" "+" "+"))("#")) 75((("Multi_key" "'" " "))("'")) 76((("Multi_key" " " "'"))("'")) 77((("Multi_key" "A" "T"))("@")) 78((("Multi_key" "(" "("))("[")) 79((("Multi_key" "/" "/"))("\\")) 80((("Multi_key" "/" "<"))("\\")) 81((("Multi_key" "<" "/"))("\\")) 82((("Multi_key" ")" ")"))("]")) 83((("Multi_key" "^" " "))("^")) 84((("Multi_key" " " "^"))("^")) 85((("Multi_key" ">" " "))("^")) 86((("Multi_key" " " ">"))("^")) 87((("Multi_key" "`" " "))("`")) 88((("Multi_key" " " "`"))("`")) 89((("Multi_key" "," " "))("¸")) 90((("Multi_key" " " ","))("¸")) 91((("Multi_key" "(" "-"))("{")) 92((("Multi_key" "-" "("))("{")) 93((("Multi_key" "/" "^"))("|")) 94((("Multi_key" "^" "/"))("|")) 95((("Multi_key" "V" "L"))("|")) 96((("Multi_key" "L" "V"))("|")) 97((("Multi_key" "v" "l"))("|")) 98((("Multi_key" "l" "v"))("|")) 99((("Multi_key" ")" "-"))("}")) 100((("Multi_key" "-" ")"))("}")) 101((("Multi_key" "~" " "))("~")) 102((("Multi_key" " " "~"))("~")) 103((("Multi_key" "-" " "))("~")) 104((("Multi_key" " " "-"))("~")) 105((("Multi_key" " " " "))(" ")) 106((("Multi_key" " " "."))(" ")) 107((("Multi_key" "o" "c"))("©")) 108((("Multi_key" "o" "C"))("©")) 109((("Multi_key" "O" "c"))("©")) 110((("Multi_key" "O" "C"))("©")) 111((("Multi_key" "o" "r"))("®")) 112((("Multi_key" "o" "R"))("®")) 113((("Multi_key" "O" "r"))("®")) 114((("Multi_key" "O" "R"))("®")) 115((("Multi_key" "." ">"))("›")) 116((("Multi_key" "." "<"))("‹")) 117((("Multi_key" "." "."))("·")) 118((("Multi_key" "!" "^"))("¦")) 119((("Multi_key" "!" "!"))("¡")) 120((("Multi_key" "p" "!"))("¶")) 121((("Multi_key" "P" "!"))("¶")) 122((("Multi_key" "+" "-"))("±")) 123((("Multi_key" "?" "?"))("¿")) 124((("Multi_key" "-" "d"))("đ")) 125((("Multi_key" "-" "D"))("Đ")) 126((("Multi_key" "s" "s"))("ß")) 127((("Multi_key" "o" "e"))("œ")) 128((("Multi_key" "O" "E"))("Œ")) 129((("Multi_key" "a" "e"))("æ")) 130((("Multi_key" "A" "E"))("Æ")) 131((("Multi_key" "o" "o"))("°")) 132((("Multi_key" "\"" "\\"))("〝")) 133((("Multi_key" "\"" "/"))("〞")) 134((("Multi_key" "<" "<"))("«")) 135((("Multi_key" ">" ">"))("»")) 136((("Multi_key" "<" "'"))("‘")) 137((("Multi_key" "'" "<"))("‘")) 138((("Multi_key" ">" "'"))("’")) 139((("Multi_key" "'" ">"))("’")) 140((("Multi_key" "," "'"))("‚")) 141((("Multi_key" "'" ","))("‚")) 142((("Multi_key" "<" "\""))("“")) 143((("Multi_key" "\"" "<"))("“")) 144((("Multi_key" ">" "\""))("”")) 145((("Multi_key" "\"" ">"))("”")) 146((("Multi_key" "," "\""))("„")) 147((("Multi_key" "\"" ","))("„")) 148((("Multi_key" "%" "o"))("‰")) 149((("Multi_key" "C" "E"))("₠")) 150((("Multi_key" "C" "/"))("₡")) 151((("Multi_key" "/" "C"))("₡")) 152((("Multi_key" "C" "r"))("₢")) 153((("Multi_key" "F" "r"))("₣")) 154((("Multi_key" "L" "="))("₤")) 155((("Multi_key" "=" "L"))("₤")) 156((("Multi_key" "m" "/"))("₥")) 157((("Multi_key" "/" "m"))("₥")) 158((("Multi_key" "N" "="))("₦")) 159((("Multi_key" "=" "N"))("₦")) 160((("Multi_key" "P" "t"))("₧")) 161((("Multi_key" "R" "s"))("₨")) 162((("Multi_key" "W" "="))("₩")) 163((("Multi_key" "=" "W"))("₩")) 164((("Multi_key" "d" "-"))("₫")) 165((("Multi_key" "C" "="))("€")) 166((("Multi_key" "=" "C"))("€")) 167((("Multi_key" "c" "="))("€")) 168((("Multi_key" "=" "c"))("€")) 169((("Multi_key" "E" "="))("€")) 170((("Multi_key" "=" "E"))("€")) 171((("Multi_key" "|" "c"))("¢")) 172((("Multi_key" "c" "|"))("¢")) 173((("Multi_key" "c" "/"))("¢")) 174((("Multi_key" "/" "c"))("¢")) 175((("Multi_key" "L" "-"))("£")) 176((("Multi_key" "-" "L"))("£")) 177((("Multi_key" "Y" "="))("¥")) 178((("Multi_key" "=" "Y"))("¥")) 179((("Multi_key" "f" "s"))("ſ")) 180((("Multi_key" "f" "S"))("ſ")) 181((("Multi_key" "-" "-" "."))("–")) 182((("Multi_key" "-" "-" "-"))("—")) 183((("Multi_key" "#" "b"))("♭")) 184((("Multi_key" "#" "f"))("♮")) 185((("Multi_key" "#" "#"))("♯")) 186((("Multi_key" "s" "o"))("§")) 187((("Multi_key" "o" "s"))("§")) 188((("Multi_key" "o" "x"))("¤")) 189((("Multi_key" "x" "o"))("¤")) 190((("Multi_key" "P" "P"))("¶")) 191((("Multi_key" "," "-"))("¬")) 192((("Multi_key" "-" ","))("¬")) 193((("dead-circumflex" "Multi_key" "_" "a"))("ª")) 194((("Multi_key" "^" "_" "a"))("ª")) 195((("dead-circumflex" "2"))("²")) 196((("Multi_key" "^" "2"))("²")) 197((("dead-circumflex" "3"))("³")) 198((("Multi_key" "^" "3"))("³")) 199((("Multi_key" "m" "u"))("µ")) 200((("dead-circumflex" "1"))("¹")) 201((("Multi_key" "^" "1"))("¹")) 202((("dead-circumflex" "Multi_key" "_" "o"))("º")) 203((("Multi_key" "^" "_" "o"))("º")) 204((("Multi_key" "1" "4"))("¼")) 205((("Multi_key" "1" "2"))("½")) 206((("Multi_key" "3" "4"))("¾")) 207((("dead-grave" "A"))("À")) 208((("Multi_key" "`" "A"))("À")) 209((("dead-acute" "A"))("Á")) 210((("Multi_key" "'" "A"))("Á")) 211((("dead-circumflex" "A"))("Â")) 212((("Multi_key" "^" "A"))("Â")) 213((("dead-tilde" "A"))("Ã")) 214((("Multi_key" "~" "A"))("Ã")) 215((("dead-diaeresis" "A"))("Ä")) 216((("Multi_key" "\"" "A"))("Ä")) 217((("dead-abovering" "A"))("Å")) 218((("Multi_key" "o" "A"))("Å")) 219((("dead-cedilla" "C"))("Ç")) 220((("Multi_key" "," "C"))("Ç")) 221((("dead-grave" "E"))("È")) 222((("Multi_key" "`" "E"))("È")) 223((("dead-acute" "E"))("É")) 224((("Multi_key" "'" "E"))("É")) 225((("dead-circumflex" "E"))("Ê")) 226((("Multi_key" "^" "E"))("Ê")) 227((("dead-diaeresis" "E"))("Ë")) 228((("Multi_key" "\"" "E"))("Ë")) 229((("dead-grave" "I"))("Ì")) 230((("Multi_key" "`" "I"))("Ì")) 231((("dead-acute" "I"))("Í")) 232((("Multi_key" "'" "I"))("Í")) 233((("dead-circumflex" "I"))("Î")) 234((("Multi_key" "^" "I"))("Î")) 235((("dead-diaeresis" "I"))("Ï")) 236((("Multi_key" "\"" "I"))("Ï")) 237((("Multi_key" "D" "H"))("Ð")) 238((("dead-tilde" "N"))("Ñ")) 239((("Multi_key" "~" "N"))("Ñ")) 240((("dead-grave" "O"))("Ò")) 241((("Multi_key" "`" "O"))("Ò")) 242((("dead-acute" "O"))("Ó")) 243((("Multi_key" "'" "O"))("Ó")) 244((("dead-circumflex" "O"))("Ô")) 245((("Multi_key" "^" "O"))("Ô")) 246((("dead-tilde" "O"))("Õ")) 247((("Multi_key" "~" "O"))("Õ")) 248((("dead-diaeresis" "O"))("Ö")) 249((("Multi_key" "\"" "O"))("Ö")) 250((("Multi_key" "x" "x"))("×")) 251((("Multi_key" "/" "O"))("Ø")) 252((("dead-grave" "U"))("Ù")) 253((("Multi_key" "`" "U"))("Ù")) 254((("dead-acute" "U"))("Ú")) 255((("Multi_key" "'" "U"))("Ú")) 256((("dead-circumflex" "U"))("Û")) 257((("Multi_key" "^" "U"))("Û")) 258((("dead-diaeresis" "U"))("Ü")) 259((("Multi_key" "\"" "U"))("Ü")) 260((("dead-acute" "Y"))("Ý")) 261((("Multi_key" "'" "Y"))("Ý")) 262((("Multi_key" "T" "H"))("Þ")) 263((("dead-grave" "a"))("à")) 264((("Multi_key" "`" "a"))("à")) 265((("dead-acute" "a"))("á")) 266((("Multi_key" "'" "a"))("á")) 267((("dead-circumflex" "a"))("â")) 268((("Multi_key" "^" "a"))("â")) 269((("dead-tilde" "a"))("ã")) 270((("Multi_key" "~" "a"))("ã")) 271((("dead-diaeresis" "a"))("ä")) 272((("Multi_key" "\"" "a"))("ä")) 273((("dead-abovering" "a"))("å")) 274((("Multi_key" "o" "a"))("å")) 275((("dead-cedilla" "c"))("ç")) 276((("Multi_key" "," "c"))("ç")) 277((("dead-grave" "e"))("è")) 278((("Multi_key" "`" "e"))("è")) 279((("dead-acute" "e"))("é")) 280((("Multi_key" "'" "e"))("é")) 281((("dead-circumflex" "e"))("ê")) 282((("Multi_key" "^" "e"))("ê")) 283((("dead-diaeresis" "e"))("ë")) 284((("Multi_key" "\"" "e"))("ë")) 285((("dead-grave" "i"))("ì")) 286((("Multi_key" "`" "i"))("ì")) 287((("dead-acute" "i"))("í")) 288((("Multi_key" "'" "i"))("í")) 289((("dead-circumflex" "i"))("î")) 290((("Multi_key" "^" "i"))("î")) 291((("dead-diaeresis" "i"))("ï")) 292((("Multi_key" "\"" "i"))("ï")) 293((("Multi_key" "d" "h"))("ð")) 294((("dead-tilde" "n"))("ñ")) 295((("Multi_key" "~" "n"))("ñ")) 296((("dead-grave" "o"))("ò")) 297((("Multi_key" "`" "o"))("ò")) 298((("dead-acute" "o"))("ó")) 299((("Multi_key" "'" "o"))("ó")) 300((("dead-circumflex" "o"))("ô")) 301((("Multi_key" "^" "o"))("ô")) 302((("dead-tilde" "o"))("õ")) 303((("Multi_key" "~" "o"))("õ")) 304((("dead-diaeresis" "o"))("ö")) 305((("Multi_key" "\"" "o"))("ö")) 306((("Multi_key" ":" "-"))("÷")) 307((("Multi_key" "-" ":"))("÷")) 308((("Multi_key" "/" "o"))("ø")) 309((("dead-grave" "u"))("ù")) 310((("Multi_key" "`" "u"))("ù")) 311((("dead-acute" "u"))("ú")) 312((("Multi_key" "'" "u"))("ú")) 313((("dead-circumflex" "u"))("û")) 314((("Multi_key" "^" "u"))("û")) 315((("dead-diaeresis" "u"))("ü")) 316((("Multi_key" "\"" "u"))("ü")) 317((("dead-acute" "y"))("ý")) 318((("Multi_key" "'" "y"))("ý")) 319((("Multi_key" "t" "h"))("þ")) 320((("dead-diaeresis" "y"))("ÿ")) 321((("Multi_key" "\"" "y"))("ÿ")) 322((("dead-macron" "A"))("Ā")) 323((("Multi_key" "_" "A"))("Ā")) 324((("dead-macron" "a"))("ā")) 325((("Multi_key" "_" "a"))("ā")) 326((("dead-breve" "A"))("Ă")) 327((("Multi_key" "U" "A"))("Ă")) 328((("Multi_key" "b" "A"))("Ă")) 329((("dead-breve" "a"))("ă")) 330((("Multi_key" "U" "a"))("ă")) 331((("Multi_key" "b" "a"))("ă")) 332((("dead-ogonek" "A"))("Ą")) 333((("Multi_key" ";" "A"))("Ą")) 334((("dead-ogonek" "a"))("ą")) 335((("Multi_key" ";" "a"))("ą")) 336((("dead-acute" "C"))("Ć")) 337((("Multi_key" "'" "C"))("Ć")) 338((("dead-acute" "c"))("ć")) 339((("Multi_key" "'" "c"))("ć")) 340((("dead-circumflex" "C"))("Ĉ")) 341((("Multi_key" "^" "C"))("Ĉ")) 342((("dead-circumflex" "c"))("ĉ")) 343((("Multi_key" "^" "c"))("ĉ")) 344((("dead-abovedot" "C"))("Ċ")) 345((("Multi_key" "." "C"))("Ċ")) 346((("dead-abovedot" "c"))("ċ")) 347((("Multi_key" "." "c"))("ċ")) 348((("dead-caron" "C"))("Č")) 349((("Multi_key" "c" "C"))("Č")) 350((("dead-caron" "c"))("č")) 351((("Multi_key" "c" "c"))("č")) 352((("dead-caron" "D"))("Ď")) 353((("Multi_key" "c" "D"))("Ď")) 354((("dead-caron" "d"))("ď")) 355((("Multi_key" "c" "d"))("ď")) 356((("Multi_key" "/" "D"))("Đ")) 357((("Multi_key" "/" "d"))("đ")) 358((("dead-macron" "E"))("Ē")) 359((("Multi_key" "_" "E"))("Ē")) 360((("dead-macron" "e"))("ē")) 361((("Multi_key" "_" "e"))("ē")) 362((("dead-breve" "E"))("Ĕ")) 363((("Multi_key" "U" "E"))("Ĕ")) 364((("Multi_key" "b" "E"))("Ĕ")) 365((("dead-breve" "e"))("ĕ")) 366((("Multi_key" "U" "e"))("ĕ")) 367((("Multi_key" "b" "e"))("ĕ")) 368((("dead-abovedot" "E"))("Ė")) 369((("Multi_key" "." "E"))("Ė")) 370((("dead-abovedot" "e"))("ė")) 371((("Multi_key" "." "e"))("ė")) 372((("dead-ogonek" "E"))("Ę")) 373((("Multi_key" ";" "E"))("Ę")) 374((("dead-ogonek" "e"))("ę")) 375((("Multi_key" ";" "e"))("ę")) 376((("dead-caron" "E"))("Ě")) 377((("Multi_key" "c" "E"))("Ě")) 378((("dead-caron" "e"))("ě")) 379((("Multi_key" "c" "e"))("ě")) 380((("dead-circumflex" "G"))("Ĝ")) 381((("Multi_key" "^" "G"))("Ĝ")) 382((("dead-circumflex" "g"))("ĝ")) 383((("Multi_key" "^" "g"))("ĝ")) 384((("dead-breve" "G"))("Ğ")) 385((("Multi_key" "U" "G"))("Ğ")) 386((("Multi_key" "b" "G"))("Ğ")) 387((("dead-breve" "g"))("ğ")) 388((("Multi_key" "U" "g"))("ğ")) 389((("Multi_key" "b" "g"))("ğ")) 390((("dead-abovedot" "G"))("Ġ")) 391((("Multi_key" "." "G"))("Ġ")) 392((("dead-abovedot" "g"))("ġ")) 393((("Multi_key" "." "g"))("ġ")) 394((("dead-cedilla" "G"))("Ģ")) 395((("Multi_key" "," "G"))("Ģ")) 396((("dead-cedilla" "g"))("ģ")) 397((("Multi_key" "," "g"))("ģ")) 398((("dead-circumflex" "H"))("Ĥ")) 399((("Multi_key" "^" "H"))("Ĥ")) 400((("dead-circumflex" "h"))("ĥ")) 401((("Multi_key" "^" "h"))("ĥ")) 402((("Multi_key" "/" "H"))("Ħ")) 403((("Multi_key" "/" "h"))("ħ")) 404((("dead-tilde" "I"))("Ĩ")) 405((("Multi_key" "~" "I"))("Ĩ")) 406((("dead-tilde" "i"))("ĩ")) 407((("Multi_key" "~" "i"))("ĩ")) 408((("dead-macron" "I"))("Ī")) 409((("Multi_key" "_" "I"))("Ī")) 410((("dead-macron" "i"))("ī")) 411((("Multi_key" "_" "i"))("ī")) 412((("dead-breve" "I"))("Ĭ")) 413((("Multi_key" "U" "I"))("Ĭ")) 414((("Multi_key" "b" "I"))("Ĭ")) 415((("dead-breve" "i"))("ĭ")) 416((("Multi_key" "U" "i"))("ĭ")) 417((("Multi_key" "b" "i"))("ĭ")) 418((("dead-ogonek" "I"))("Į")) 419((("Multi_key" ";" "I"))("Į")) 420((("dead-ogonek" "i"))("į")) 421((("Multi_key" ";" "i"))("į")) 422((("dead-abovedot" "I"))("İ")) 423((("Multi_key" "." "I"))("İ")) 424((("dead-abovedot" "i"))("ı")) 425((("Multi_key" "i" "."))("ı")) 426((("dead-circumflex" "J"))("Ĵ")) 427((("Multi_key" "^" "J"))("Ĵ")) 428((("dead-circumflex" "j"))("ĵ")) 429((("Multi_key" "^" "j"))("ĵ")) 430((("dead-cedilla" "K"))("Ķ")) 431((("Multi_key" "," "K"))("Ķ")) 432((("dead-cedilla" "k"))("ķ")) 433((("Multi_key" "," "k"))("ķ")) 434((("Multi_key" "k" "k"))("ĸ")) 435((("dead-acute" "L"))("Ĺ")) 436((("Multi_key" "'" "L"))("Ĺ")) 437((("dead-acute" "l"))("ĺ")) 438((("Multi_key" "'" "l"))("ĺ")) 439((("dead-cedilla" "L"))("Ļ")) 440((("Multi_key" "," "L"))("Ļ")) 441((("dead-cedilla" "l"))("ļ")) 442((("Multi_key" "," "l"))("ļ")) 443((("dead-caron" "L"))("Ľ")) 444((("Multi_key" "c" "L"))("Ľ")) 445((("dead-caron" "l"))("ľ")) 446((("Multi_key" "c" "l"))("ľ")) 447((("Multi_key" "/" "L"))("Ł")) 448((("Multi_key" "/" "l"))("ł")) 449((("dead-acute" "N"))("Ń")) 450((("Multi_key" "'" "N"))("Ń")) 451((("dead-acute" "n"))("ń")) 452((("Multi_key" "'" "n"))("ń")) 453((("dead-cedilla" "N"))("Ņ")) 454((("Multi_key" "," "N"))("Ņ")) 455((("dead-cedilla" "n"))("ņ")) 456((("Multi_key" "," "n"))("ņ")) 457((("dead-caron" "N"))("Ň")) 458((("Multi_key" "c" "N"))("Ň")) 459((("dead-caron" "n"))("ň")) 460((("Multi_key" "c" "n"))("ň")) 461((("Multi_key" "N" "G"))("Ŋ")) 462((("Multi_key" "n" "g"))("ŋ")) 463((("dead-macron" "O"))("Ō")) 464((("Multi_key" "_" "O"))("Ō")) 465((("dead-macron" "o"))("ō")) 466((("Multi_key" "_" "o"))("ō")) 467((("dead-breve" "O"))("Ŏ")) 468((("Multi_key" "U" "O"))("Ŏ")) 469((("Multi_key" "b" "O"))("Ŏ")) 470((("dead-breve" "o"))("ŏ")) 471((("Multi_key" "U" "o"))("ŏ")) 472((("Multi_key" "b" "o"))("ŏ")) 473((("dead-doubleacute" "O"))("Ő")) 474((("Multi_key" "=" "O"))("Ő")) 475((("dead-doubleacute" "o"))("ő")) 476((("Multi_key" "=" "o"))("ő")) 477((("dead-acute" "R"))("Ŕ")) 478((("Multi_key" "'" "R"))("Ŕ")) 479((("dead-acute" "r"))("ŕ")) 480((("Multi_key" "'" "r"))("ŕ")) 481((("dead-cedilla" "R"))("Ŗ")) 482((("Multi_key" "," "R"))("Ŗ")) 483((("dead-cedilla" "r"))("ŗ")) 484((("Multi_key" "," "r"))("ŗ")) 485((("dead-caron" "R"))("Ř")) 486((("Multi_key" "c" "R"))("Ř")) 487((("dead-caron" "r"))("ř")) 488((("Multi_key" "c" "r"))("ř")) 489((("dead-acute" "S"))("Ś")) 490((("Multi_key" "'" "S"))("Ś")) 491((("dead-acute" "s"))("ś")) 492((("Multi_key" "'" "s"))("ś")) 493((("dead-circumflex" "S"))("Ŝ")) 494((("Multi_key" "^" "S"))("Ŝ")) 495((("dead-circumflex" "s"))("ŝ")) 496((("Multi_key" "^" "s"))("ŝ")) 497((("dead-cedilla" "S"))("Ş")) 498((("Multi_key" "," "S"))("Ş")) 499((("dead-cedilla" "s"))("ş")) 500((("Multi_key" "," "s"))("ş")) 501((("dead-caron" "S"))("Š")) 502((("Multi_key" "c" "S"))("Š")) 503((("dead-caron" "s"))("š")) 504((("Multi_key" "c" "s"))("š")) 505((("dead-cedilla" "T"))("Ţ")) 506((("Multi_key" "," "T"))("Ţ")) 507((("dead-cedilla" "t"))("ţ")) 508((("Multi_key" "," "t"))("ţ")) 509((("dead-caron" "T"))("Ť")) 510((("Multi_key" "c" "T"))("Ť")) 511((("dead-caron" "t"))("ť")) 512((("Multi_key" "c" "t"))("ť")) 513((("Multi_key" "/" "T"))("Ŧ")) 514((("Multi_key" "/" "t"))("ŧ")) 515((("dead-tilde" "U"))("Ũ")) 516((("Multi_key" "~" "U"))("Ũ")) 517((("dead-tilde" "u"))("ũ")) 518((("Multi_key" "~" "u"))("ũ")) 519((("dead-macron" "U"))("Ū")) 520((("Multi_key" "_" "U"))("Ū")) 521((("dead-macron" "u"))("ū")) 522((("Multi_key" "_" "u"))("ū")) 523((("dead-breve" "U"))("Ŭ")) 524((("Multi_key" "U" "U"))("Ŭ")) 525((("Multi_key" "b" "U"))("Ŭ")) 526((("dead-breve" "u"))("ŭ")) 527((("Multi_key" "U" "u"))("ŭ")) 528((("Multi_key" "b" "u"))("ŭ")) 529((("dead-abovering" "U"))("Ů")) 530((("Multi_key" "o" "U"))("Ů")) 531((("dead-abovering" "u"))("ů")) 532((("Multi_key" "o" "u"))("ů")) 533((("dead-doubleacute" "U"))("Ű")) 534((("Multi_key" "=" "U"))("Ű")) 535((("dead-doubleacute" "u"))("ű")) 536((("Multi_key" "=" "u"))("ű")) 537((("dead-ogonek" "U"))("Ų")) 538((("Multi_key" ";" "U"))("Ų")) 539((("dead-ogonek" "u"))("ų")) 540((("Multi_key" ";" "u"))("ų")) 541((("dead-circumflex" "W"))("Ŵ")) 542((("Multi_key" "^" "W"))("Ŵ")) 543((("dead-circumflex" "w"))("ŵ")) 544((("Multi_key" "^" "w"))("ŵ")) 545((("dead-circumflex" "Y"))("Ŷ")) 546((("Multi_key" "^" "Y"))("Ŷ")) 547((("dead-circumflex" "y"))("ŷ")) 548((("Multi_key" "^" "y"))("ŷ")) 549((("dead-diaeresis" "Y"))("Ÿ")) 550((("Multi_key" "\"" "Y"))("Ÿ")) 551((("dead-acute" "Z"))("Ź")) 552((("Multi_key" "'" "Z"))("Ź")) 553((("dead-acute" "z"))("ź")) 554((("Multi_key" "'" "z"))("ź")) 555((("dead-abovedot" "Z"))("Ż")) 556((("Multi_key" "." "Z"))("Ż")) 557((("dead-abovedot" "z"))("ż")) 558((("Multi_key" "." "z"))("ż")) 559((("dead-caron" "Z"))("Ž")) 560((("Multi_key" "c" "Z"))("Ž")) 561((("dead-caron" "z"))("ž")) 562((("Multi_key" "c" "z"))("ž")) 563((("Multi_key" "/" "b"))("ƀ")) 564((("Multi_key" "/" "I"))("Ɨ")) 565((("dead-horn" "O"))("Ơ")) 566((("Multi_key" "+" "O"))("Ơ")) 567((("dead-horn" "o"))("ơ")) 568((("Multi_key" "+" "o"))("ơ")) 569((("dead-horn" "U"))("Ư")) 570((("Multi_key" "+" "U"))("Ư")) 571((("dead-horn" "u"))("ư")) 572((("Multi_key" "+" "u"))("ư")) 573((("Multi_key" "/" "Z"))("Ƶ")) 574((("Multi_key" "/" "z"))("ƶ")) 575((("dead-caron" "A"))("Ǎ")) 576((("Multi_key" "c" "A"))("Ǎ")) 577((("dead-caron" "a"))("ǎ")) 578((("Multi_key" "c" "a"))("ǎ")) 579((("dead-caron" "I"))("Ǐ")) 580((("Multi_key" "c" "I"))("Ǐ")) 581((("dead-caron" "i"))("ǐ")) 582((("Multi_key" "c" "i"))("ǐ")) 583((("dead-caron" "O"))("Ǒ")) 584((("Multi_key" "c" "O"))("Ǒ")) 585((("dead-caron" "o"))("ǒ")) 586((("Multi_key" "c" "o"))("ǒ")) 587((("dead-caron" "U"))("Ǔ")) 588((("Multi_key" "c" "U"))("Ǔ")) 589((("dead-caron" "u"))("ǔ")) 590((("Multi_key" "c" "u"))("ǔ")) 591((("dead-macron" "dead-diaeresis" "U"))("Ǖ")) 592((("dead-macron" "Multi_key" "\"" "U"))("Ǖ")) 593((("Multi_key" "_" "dead-diaeresis" "U"))("Ǖ")) 594((("Multi_key" "_" "\"" "U"))("Ǖ")) 595((("dead-macron" "dead-diaeresis" "u"))("ǖ")) 596((("dead-macron" "Multi_key" "\"" "u"))("ǖ")) 597((("Multi_key" "_" "dead-diaeresis" "u"))("ǖ")) 598((("Multi_key" "_" "\"" "u"))("ǖ")) 599((("dead-acute" "dead-diaeresis" "U"))("Ǘ")) 600((("dead-acute" "Multi_key" "\"" "U"))("Ǘ")) 601((("Multi_key" "'" "dead-diaeresis" "U"))("Ǘ")) 602((("Multi_key" "'" "\"" "U"))("Ǘ")) 603((("dead-acute" "dead-diaeresis" "u"))("ǘ")) 604((("dead-acute" "Multi_key" "\"" "u"))("ǘ")) 605((("Multi_key" "'" "dead-diaeresis" "u"))("ǘ")) 606((("Multi_key" "'" "\"" "u"))("ǘ")) 607((("dead-caron" "dead-diaeresis" "U"))("Ǚ")) 608((("dead-caron" "Multi_key" "\"" "U"))("Ǚ")) 609((("Multi_key" "c" "dead-diaeresis" "U"))("Ǚ")) 610((("Multi_key" "c" "\"" "U"))("Ǚ")) 611((("dead-caron" "dead-diaeresis" "u"))("ǚ")) 612((("dead-caron" "Multi_key" "\"" "u"))("ǚ")) 613((("Multi_key" "c" "dead-diaeresis" "u"))("ǚ")) 614((("Multi_key" "c" "\"" "u"))("ǚ")) 615((("dead-grave" "dead-diaeresis" "U"))("Ǜ")) 616((("dead-grave" "Multi_key" "\"" "U"))("Ǜ")) 617((("Multi_key" "`" "dead-diaeresis" "U"))("Ǜ")) 618((("Multi_key" "`" "\"" "U"))("Ǜ")) 619((("dead-grave" "dead-diaeresis" "u"))("ǜ")) 620((("dead-grave" "Multi_key" "\"" "u"))("ǜ")) 621((("Multi_key" "`" "dead-diaeresis" "u"))("ǜ")) 622((("Multi_key" "`" "\"" "u"))("ǜ")) 623((("dead-macron" "dead-diaeresis" "A"))("Ǟ")) 624((("dead-macron" "Multi_key" "\"" "A"))("Ǟ")) 625((("Multi_key" "_" "dead-diaeresis" "A"))("Ǟ")) 626((("Multi_key" "_" "\"" "A"))("Ǟ")) 627((("dead-macron" "dead-diaeresis" "a"))("ǟ")) 628((("dead-macron" "Multi_key" "\"" "a"))("ǟ")) 629((("Multi_key" "_" "dead-diaeresis" "a"))("ǟ")) 630((("Multi_key" "_" "\"" "a"))("ǟ")) 631((("dead-macron" "dead-abovedot" "A"))("Ǡ")) 632((("dead-macron" "Multi_key" "." "A"))("Ǡ")) 633((("Multi_key" "_" "dead-abovedot" "A"))("Ǡ")) 634((("Multi_key" "_" "." "A"))("Ǡ")) 635((("dead-macron" "dead-abovedot" "a"))("ǡ")) 636((("dead-macron" "Multi_key" "." "a"))("ǡ")) 637((("Multi_key" "_" "dead-abovedot" "a"))("ǡ")) 638((("Multi_key" "_" "." "a"))("ǡ")) 639((("Multi_key" "/" "G"))("Ǥ")) 640((("Multi_key" "/" "g"))("ǥ")) 641((("dead-caron" "G"))("Ǧ")) 642((("Multi_key" "c" "G"))("Ǧ")) 643((("dead-caron" "g"))("ǧ")) 644((("Multi_key" "c" "g"))("ǧ")) 645((("dead-caron" "K"))("Ǩ")) 646((("Multi_key" "c" "K"))("Ǩ")) 647((("dead-caron" "k"))("ǩ")) 648((("Multi_key" "c" "k"))("ǩ")) 649((("dead-ogonek" "O"))("Ǫ")) 650((("Multi_key" ";" "O"))("Ǫ")) 651((("dead-ogonek" "o"))("ǫ")) 652((("Multi_key" ";" "o"))("ǫ")) 653((("dead-macron" "dead-ogonek" "O"))("Ǭ")) 654((("dead-macron" "Multi_key" ";" "O"))("Ǭ")) 655((("Multi_key" "_" "dead-ogonek" "O"))("Ǭ")) 656((("Multi_key" "_" ";" "O"))("Ǭ")) 657((("dead-macron" "dead-ogonek" "o"))("ǭ")) 658((("dead-macron" "Multi_key" ";" "o"))("ǭ")) 659((("Multi_key" "_" "dead-ogonek" "o"))("ǭ")) 660((("Multi_key" "_" ";" "o"))("ǭ")) 661((("dead-caron" "j"))("ǰ")) 662((("Multi_key" "c" "j"))("ǰ")) 663((("dead-acute" "G"))("Ǵ")) 664((("Multi_key" "'" "G"))("Ǵ")) 665((("dead-acute" "g"))("ǵ")) 666((("Multi_key" "'" "g"))("ǵ")) 667((("dead-grave" "N"))("Ǹ")) 668((("Multi_key" "`" "N"))("Ǹ")) 669((("dead-grave" "n"))("ǹ")) 670((("Multi_key" "`" "n"))("ǹ")) 671((("dead-acute" "dead-abovering" "A"))("Ǻ")) 672((("dead-acute" "Multi_key" "o" "A"))("Ǻ")) 673((("Multi_key" "'" "dead-abovering" "A"))("Ǻ")) 674((("Multi_key" "o" "'" "A"))("Ǻ")) 675((("dead-acute" "dead-abovering" "a"))("ǻ")) 676((("dead-acute" "Multi_key" "o" "a"))("ǻ")) 677((("Multi_key" "'" "dead-abovering" "a"))("ǻ")) 678((("Multi_key" "o" "'" "a"))("ǻ")) 679((("dead-acute" "Multi_key" "/" "O"))("Ǿ")) 680((("Multi_key" "'" "/" "O"))("Ǿ")) 681((("dead-acute" "Multi_key" "/" "o"))("ǿ")) 682((("Multi_key" "'" "/" "o"))("ǿ")) 683((("dead-caron" "H"))("Ȟ")) 684((("Multi_key" "c" "H"))("Ȟ")) 685((("dead-caron" "h"))("ȟ")) 686((("Multi_key" "c" "h"))("ȟ")) 687((("dead-abovedot" "A"))("Ȧ")) 688((("Multi_key" "." "A"))("Ȧ")) 689((("dead-abovedot" "a"))("ȧ")) 690((("Multi_key" "." "a"))("ȧ")) 691((("dead-cedilla" "E"))("Ȩ")) 692((("Multi_key" "," "E"))("Ȩ")) 693((("dead-cedilla" "e"))("ȩ")) 694((("Multi_key" "," "e"))("ȩ")) 695((("dead-macron" "dead-diaeresis" "O"))("Ȫ")) 696((("dead-macron" "Multi_key" "\"" "O"))("Ȫ")) 697((("Multi_key" "_" "dead-diaeresis" "O"))("Ȫ")) 698((("Multi_key" "_" "\"" "O"))("Ȫ")) 699((("dead-macron" "dead-diaeresis" "o"))("ȫ")) 700((("dead-macron" "Multi_key" "\"" "o"))("ȫ")) 701((("Multi_key" "_" "dead-diaeresis" "o"))("ȫ")) 702((("Multi_key" "_" "\"" "o"))("ȫ")) 703((("dead-macron" "dead-tilde" "O"))("Ȭ")) 704((("dead-macron" "Multi_key" "~" "O"))("Ȭ")) 705((("Multi_key" "_" "dead-tilde" "O"))("Ȭ")) 706((("Multi_key" "_" "~" "O"))("Ȭ")) 707((("dead-macron" "dead-tilde" "o"))("ȭ")) 708((("dead-macron" "Multi_key" "~" "o"))("ȭ")) 709((("Multi_key" "_" "dead-tilde" "o"))("ȭ")) 710((("Multi_key" "_" "~" "o"))("ȭ")) 711((("dead-abovedot" "O"))("Ȯ")) 712((("Multi_key" "." "O"))("Ȯ")) 713((("dead-abovedot" "o"))("ȯ")) 714((("Multi_key" "." "o"))("ȯ")) 715((("dead-macron" "dead-abovedot" "O"))("Ȱ")) 716((("dead-macron" "Multi_key" "." "O"))("Ȱ")) 717((("Multi_key" "_" "dead-abovedot" "O"))("Ȱ")) 718((("Multi_key" "_" "." "O"))("Ȱ")) 719((("dead-macron" "dead-abovedot" "o"))("ȱ")) 720((("dead-macron" "Multi_key" "." "o"))("ȱ")) 721((("Multi_key" "_" "dead-abovedot" "o"))("ȱ")) 722((("Multi_key" "_" "." "o"))("ȱ")) 723((("dead-macron" "Y"))("Ȳ")) 724((("Multi_key" "_" "Y"))("Ȳ")) 725((("dead-macron" "y"))("ȳ")) 726((("Multi_key" "_" "y"))("ȳ")) 727((("Multi_key" "e" "e"))("ə")) 728((("Multi_key" "/" "i"))("ɨ")) 729((("dead-circumflex" "Multi_key" "_" "h"))("ʰ")) 730((("Multi_key" "^" "_" "h"))("ʰ")) 731((("dead-circumflex" "Multi_key" "_" "j"))("ʲ")) 732((("Multi_key" "^" "_" "j"))("ʲ")) 733((("dead-circumflex" "Multi_key" "_" "r"))("ʳ")) 734((("Multi_key" "^" "_" "r"))("ʳ")) 735((("dead-circumflex" "Multi_key" "_" "w"))("ʷ")) 736((("Multi_key" "^" "_" "w"))("ʷ")) 737((("dead-circumflex" "Multi_key" "_" "y"))("ʸ")) 738((("Multi_key" "^" "_" "y"))("ʸ")) 739((("dead-circumflex" "Multi_key" "_" "l"))("ˡ")) 740((("Multi_key" "^" "_" "l"))("ˡ")) 741((("dead-circumflex" "Multi_key" "_" "s"))("ˢ")) 742((("Multi_key" "^" "_" "s"))("ˢ")) 743((("dead-circumflex" "Multi_key" "_" "x"))("ˣ")) 744((("Multi_key" "^" "_" "x"))("ˣ")) 745((("dead-diaeresis" "'"))("̈́")) 746((("Multi_key" "\"" "dead-acute"))("̈́")) 747((("Multi_key" "\"" "'"))("̈́")) 748((("dead-abovedot" "B"))("Ḃ")) 749((("Multi_key" "." "B"))("Ḃ")) 750((("dead-abovedot" "b"))("ḃ")) 751((("Multi_key" "." "b"))("ḃ")) 752((("dead-belowdot" "B"))("Ḅ")) 753((("Multi_key" "!" "B"))("Ḅ")) 754((("dead-belowdot" "b"))("ḅ")) 755((("Multi_key" "!" "b"))("ḅ")) 756((("dead-acute" "dead-cedilla" "C"))("Ḉ")) 757((("dead-acute" "Multi_key" "," "C"))("Ḉ")) 758((("Multi_key" "'" "dead-cedilla" "C"))("Ḉ")) 759((("Multi_key" "'" "," "C"))("Ḉ")) 760((("dead-acute" "dead-cedilla" "c"))("ḉ")) 761((("dead-acute" "Multi_key" "," "c"))("ḉ")) 762((("Multi_key" "'" "dead-cedilla" "c"))("ḉ")) 763((("Multi_key" "'" "," "c"))("ḉ")) 764((("dead-abovedot" "D"))("Ḋ")) 765((("Multi_key" "." "D"))("Ḋ")) 766((("dead-abovedot" "d"))("ḋ")) 767((("Multi_key" "." "d"))("ḋ")) 768((("dead-belowdot" "D"))("Ḍ")) 769((("Multi_key" "!" "D"))("Ḍ")) 770((("dead-belowdot" "d"))("ḍ")) 771((("Multi_key" "!" "d"))("ḍ")) 772((("dead-cedilla" "D"))("Ḑ")) 773((("Multi_key" "," "D"))("Ḑ")) 774((("dead-cedilla" "d"))("ḑ")) 775((("Multi_key" "," "d"))("ḑ")) 776((("dead-grave" "dead-macron" "E"))("Ḕ")) 777((("dead-grave" "Multi_key" "_" "E"))("Ḕ")) 778((("Multi_key" "`" "dead-macron" "E"))("Ḕ")) 779((("Multi_key" "`" "_" "E"))("Ḕ")) 780((("dead-grave" "dead-macron" "e"))("ḕ")) 781((("dead-grave" "Multi_key" "_" "e"))("ḕ")) 782((("Multi_key" "`" "dead-macron" "e"))("ḕ")) 783((("Multi_key" "`" "_" "e"))("ḕ")) 784((("dead-acute" "dead-macron" "E"))("Ḗ")) 785((("dead-acute" "Multi_key" "_" "E"))("Ḗ")) 786((("Multi_key" "'" "dead-macron" "E"))("Ḗ")) 787((("Multi_key" "'" "_" "E"))("Ḗ")) 788((("dead-acute" "dead-macron" "e"))("ḗ")) 789((("dead-acute" "Multi_key" "_" "e"))("ḗ")) 790((("Multi_key" "'" "dead-macron" "e"))("ḗ")) 791((("Multi_key" "'" "_" "e"))("ḗ")) 792((("dead-breve" "dead-cedilla" "E"))("Ḝ")) 793((("dead-breve" "Multi_key" "," "E"))("Ḝ")) 794((("Multi_key" "U" "dead-cedilla" "E"))("Ḝ")) 795((("Multi_key" "U" "," "E"))("Ḝ")) 796((("Multi_key" "b" "dead-cedilla" "E"))("Ḝ")) 797((("Multi_key" "b" "," "E"))("Ḝ")) 798((("dead-breve" "dead-cedilla" "e"))("ḝ")) 799((("dead-breve" "Multi_key" "," "e"))("ḝ")) 800((("Multi_key" "U" "dead-cedilla" "e"))("ḝ")) 801((("Multi_key" "U" "," "e"))("ḝ")) 802((("Multi_key" "b" "dead-cedilla" "e"))("ḝ")) 803((("Multi_key" "b" "," "e"))("ḝ")) 804((("dead-abovedot" "F"))("Ḟ")) 805((("Multi_key" "." "F"))("Ḟ")) 806((("dead-abovedot" "f"))("ḟ")) 807((("Multi_key" "." "f"))("ḟ")) 808((("dead-macron" "G"))("Ḡ")) 809((("Multi_key" "_" "G"))("Ḡ")) 810((("dead-macron" "g"))("ḡ")) 811((("Multi_key" "_" "g"))("ḡ")) 812((("dead-abovedot" "H"))("Ḣ")) 813((("Multi_key" "." "H"))("Ḣ")) 814((("dead-abovedot" "h"))("ḣ")) 815((("Multi_key" "." "h"))("ḣ")) 816((("dead-belowdot" "H"))("Ḥ")) 817((("Multi_key" "!" "H"))("Ḥ")) 818((("dead-belowdot" "h"))("ḥ")) 819((("Multi_key" "!" "h"))("ḥ")) 820((("dead-diaeresis" "H"))("Ḧ")) 821((("Multi_key" "\"" "H"))("Ḧ")) 822((("dead-diaeresis" "h"))("ḧ")) 823((("Multi_key" "\"" "h"))("ḧ")) 824((("dead-cedilla" "H"))("Ḩ")) 825((("Multi_key" "," "H"))("Ḩ")) 826((("dead-cedilla" "h"))("ḩ")) 827((("Multi_key" "," "h"))("ḩ")) 828((("dead-acute" "dead-diaeresis" "I"))("Ḯ")) 829((("dead-acute" "Multi_key" "\"" "I"))("Ḯ")) 830((("Multi_key" "'" "dead-diaeresis" "I"))("Ḯ")) 831((("Multi_key" "'" "\"" "I"))("Ḯ")) 832((("dead-acute" "dead-diaeresis" "i"))("ḯ")) 833((("dead-acute" "Multi_key" "\"" "i"))("ḯ")) 834((("Multi_key" "'" "dead-diaeresis" "i"))("ḯ")) 835((("Multi_key" "'" "\"" "i"))("ḯ")) 836((("dead-acute" "K"))("Ḱ")) 837((("Multi_key" "'" "K"))("Ḱ")) 838((("dead-acute" "k"))("ḱ")) 839((("Multi_key" "'" "k"))("ḱ")) 840((("dead-belowdot" "K"))("Ḳ")) 841((("Multi_key" "!" "K"))("Ḳ")) 842((("dead-belowdot" "k"))("ḳ")) 843((("Multi_key" "!" "k"))("ḳ")) 844((("dead-belowdot" "L"))("Ḷ")) 845((("Multi_key" "!" "L"))("Ḷ")) 846((("dead-belowdot" "l"))("ḷ")) 847((("Multi_key" "!" "l"))("ḷ")) 848((("dead-macron" "dead-belowdot" "L"))("Ḹ")) 849((("dead-macron" "Multi_key" "!" "L"))("Ḹ")) 850((("Multi_key" "_" "dead-belowdot" "L"))("Ḹ")) 851((("Multi_key" "_" "!" "L"))("Ḹ")) 852((("dead-macron" "dead-belowdot" "l"))("ḹ")) 853((("dead-macron" "Multi_key" "!" "l"))("ḹ")) 854((("Multi_key" "_" "dead-belowdot" "l"))("ḹ")) 855((("Multi_key" "_" "!" "l"))("ḹ")) 856((("dead-acute" "M"))("Ḿ")) 857((("Multi_key" "'" "M"))("Ḿ")) 858((("dead-acute" "m"))("ḿ")) 859((("Multi_key" "'" "m"))("ḿ")) 860((("dead-abovedot" "M"))("Ṁ")) 861((("Multi_key" "." "M"))("Ṁ")) 862((("dead-abovedot" "m"))("ṁ")) 863((("Multi_key" "." "m"))("ṁ")) 864((("dead-belowdot" "M"))("Ṃ")) 865((("Multi_key" "!" "M"))("Ṃ")) 866((("dead-belowdot" "m"))("ṃ")) 867((("Multi_key" "!" "m"))("ṃ")) 868((("dead-abovedot" "N"))("Ṅ")) 869((("Multi_key" "." "N"))("Ṅ")) 870((("dead-abovedot" "n"))("ṅ")) 871((("Multi_key" "." "n"))("ṅ")) 872((("dead-belowdot" "N"))("Ṇ")) 873((("Multi_key" "!" "N"))("Ṇ")) 874((("dead-belowdot" "n"))("ṇ")) 875((("Multi_key" "!" "n"))("ṇ")) 876((("dead-acute" "dead-tilde" "O"))("Ṍ")) 877((("dead-acute" "Multi_key" "~" "O"))("Ṍ")) 878((("Multi_key" "'" "dead-tilde" "O"))("Ṍ")) 879((("Multi_key" "'" "~" "O"))("Ṍ")) 880((("dead-acute" "dead-tilde" "o"))("ṍ")) 881((("dead-acute" "Multi_key" "~" "o"))("ṍ")) 882((("Multi_key" "'" "dead-tilde" "o"))("ṍ")) 883((("Multi_key" "'" "~" "o"))("ṍ")) 884((("dead-diaeresis" "dead-tilde" "O"))("Ṏ")) 885((("dead-diaeresis" "Multi_key" "~" "O"))("Ṏ")) 886((("Multi_key" "\"" "dead-tilde" "O"))("Ṏ")) 887((("Multi_key" "\"" "~" "O"))("Ṏ")) 888((("dead-diaeresis" "dead-tilde" "o"))("ṏ")) 889((("dead-diaeresis" "Multi_key" "~" "o"))("ṏ")) 890((("Multi_key" "\"" "dead-tilde" "o"))("ṏ")) 891((("Multi_key" "\"" "~" "o"))("ṏ")) 892((("dead-grave" "dead-macron" "O"))("Ṑ")) 893((("dead-grave" "Multi_key" "_" "O"))("Ṑ")) 894((("Multi_key" "`" "dead-macron" "O"))("Ṑ")) 895((("Multi_key" "`" "_" "O"))("Ṑ")) 896((("dead-grave" "dead-macron" "o"))("ṑ")) 897((("dead-grave" "Multi_key" "_" "o"))("ṑ")) 898((("Multi_key" "`" "dead-macron" "o"))("ṑ")) 899((("Multi_key" "`" "_" "o"))("ṑ")) 900((("dead-acute" "dead-macron" "O"))("Ṓ")) 901((("dead-acute" "Multi_key" "_" "O"))("Ṓ")) 902((("Multi_key" "'" "dead-macron" "O"))("Ṓ")) 903((("Multi_key" "'" "_" "O"))("Ṓ")) 904((("dead-acute" "dead-macron" "o"))("ṓ")) 905((("dead-acute" "Multi_key" "_" "o"))("ṓ")) 906((("Multi_key" "'" "dead-macron" "o"))("ṓ")) 907((("Multi_key" "'" "_" "o"))("ṓ")) 908((("dead-acute" "P"))("Ṕ")) 909((("Multi_key" "'" "P"))("Ṕ")) 910((("dead-acute" "p"))("ṕ")) 911((("Multi_key" "'" "p"))("ṕ")) 912((("dead-abovedot" "P"))("Ṗ")) 913((("Multi_key" "." "P"))("Ṗ")) 914((("dead-abovedot" "p"))("ṗ")) 915((("Multi_key" "." "p"))("ṗ")) 916((("dead-abovedot" "R"))("Ṙ")) 917((("Multi_key" "." "R"))("Ṙ")) 918((("dead-abovedot" "r"))("ṙ")) 919((("Multi_key" "." "r"))("ṙ")) 920((("dead-belowdot" "R"))("Ṛ")) 921((("Multi_key" "!" "R"))("Ṛ")) 922((("dead-belowdot" "r"))("ṛ")) 923((("Multi_key" "!" "r"))("ṛ")) 924((("dead-macron" "dead-belowdot" "R"))("Ṝ")) 925((("dead-macron" "Multi_key" "!" "R"))("Ṝ")) 926((("Multi_key" "_" "dead-belowdot" "R"))("Ṝ")) 927((("Multi_key" "_" "!" "R"))("Ṝ")) 928((("dead-macron" "dead-belowdot" "r"))("ṝ")) 929((("dead-macron" "Multi_key" "!" "r"))("ṝ")) 930((("Multi_key" "_" "dead-belowdot" "r"))("ṝ")) 931((("Multi_key" "_" "!" "r"))("ṝ")) 932((("dead-abovedot" "S"))("Ṡ")) 933((("Multi_key" "." "S"))("Ṡ")) 934((("dead-abovedot" "s"))("ṡ")) 935((("Multi_key" "." "s"))("ṡ")) 936((("dead-belowdot" "S"))("Ṣ")) 937((("Multi_key" "!" "S"))("Ṣ")) 938((("dead-belowdot" "s"))("ṣ")) 939((("Multi_key" "!" "s"))("ṣ")) 940((("dead-abovedot" "dead-acute" "S"))("Ṥ")) 941((("dead-abovedot" "Multi_key" "'" "S"))("Ṥ")) 942((("Multi_key" "." "dead-acute" "S"))("Ṥ")) 943((("Multi_key" "." "'" "S"))("Ṥ")) 944((("dead-abovedot" "dead-acute" "s"))("ṥ")) 945((("dead-abovedot" "Multi_key" "'" "s"))("ṥ")) 946((("Multi_key" "." "dead-acute" "s"))("ṥ")) 947((("Multi_key" "." "'" "s"))("ṥ")) 948((("dead-abovedot" "dead-caron" "S"))("Ṧ")) 949((("dead-abovedot" "Multi_key" "c" "S"))("Ṧ")) 950((("Multi_key" "." "dead-caron" "S"))("Ṧ")) 951((("Multi_key" "." "c" "S"))("Ṧ")) 952((("dead-abovedot" "dead-caron" "s"))("ṧ")) 953((("dead-abovedot" "Multi_key" "c" "s"))("ṧ")) 954((("Multi_key" "." "dead-caron" "s"))("ṧ")) 955((("Multi_key" "." "c" "s"))("ṧ")) 956((("dead-abovedot" "dead-belowdot" "S"))("Ṩ")) 957((("dead-abovedot" "Multi_key" "!" "S"))("Ṩ")) 958((("Multi_key" "." "dead-belowdot" "S"))("Ṩ")) 959((("Multi_key" "." "!" "S"))("Ṩ")) 960((("dead-abovedot" "dead-belowdot" "s"))("ṩ")) 961((("dead-abovedot" "Multi_key" "!" "s"))("ṩ")) 962((("Multi_key" "." "dead-belowdot" "s"))("ṩ")) 963((("Multi_key" "." "!" "s"))("ṩ")) 964((("dead-abovedot" "T"))("Ṫ")) 965((("Multi_key" "." "T"))("Ṫ")) 966((("dead-abovedot" "t"))("ṫ")) 967((("Multi_key" "." "t"))("ṫ")) 968((("dead-belowdot" "T"))("Ṭ")) 969((("Multi_key" "!" "T"))("Ṭ")) 970((("dead-belowdot" "t"))("ṭ")) 971((("Multi_key" "!" "t"))("ṭ")) 972((("dead-acute" "dead-tilde" "U"))("Ṹ")) 973((("dead-acute" "Multi_key" "~" "U"))("Ṹ")) 974((("Multi_key" "'" "dead-tilde" "U"))("Ṹ")) 975((("Multi_key" "'" "~" "U"))("Ṹ")) 976((("dead-acute" "dead-tilde" "u"))("ṹ")) 977((("dead-acute" "Multi_key" "~" "u"))("ṹ")) 978((("Multi_key" "'" "dead-tilde" "u"))("ṹ")) 979((("Multi_key" "'" "~" "u"))("ṹ")) 980((("dead-diaeresis" "dead-macron" "U"))("Ṻ")) 981((("dead-diaeresis" "Multi_key" "_" "U"))("Ṻ")) 982((("Multi_key" "\"" "dead-macron" "U"))("Ṻ")) 983((("Multi_key" "\"" "_" "U"))("Ṻ")) 984((("dead-diaeresis" "dead-macron" "u"))("ṻ")) 985((("dead-diaeresis" "Multi_key" "_" "u"))("ṻ")) 986((("Multi_key" "\"" "dead-macron" "u"))("ṻ")) 987((("Multi_key" "\"" "_" "u"))("ṻ")) 988((("dead-tilde" "V"))("Ṽ")) 989((("Multi_key" "~" "V"))("Ṽ")) 990((("dead-tilde" "v"))("ṽ")) 991((("Multi_key" "~" "v"))("ṽ")) 992((("dead-belowdot" "V"))("Ṿ")) 993((("Multi_key" "!" "V"))("Ṿ")) 994((("dead-belowdot" "v"))("ṿ")) 995((("Multi_key" "!" "v"))("ṿ")) 996((("dead-grave" "W"))("Ẁ")) 997((("Multi_key" "`" "W"))("Ẁ")) 998((("dead-grave" "w"))("ẁ")) 999((("Multi_key" "`" "w"))("ẁ")) 1000((("dead-acute" "W"))("Ẃ")) 1001((("Multi_key" "'" "W"))("Ẃ")) 1002((("dead-acute" "w"))("ẃ")) 1003((("Multi_key" "'" "w"))("ẃ")) 1004((("dead-diaeresis" "W"))("Ẅ")) 1005((("Multi_key" "\"" "W"))("Ẅ")) 1006((("dead-diaeresis" "w"))("ẅ")) 1007((("Multi_key" "\"" "w"))("ẅ")) 1008((("dead-abovedot" "W"))("Ẇ")) 1009((("Multi_key" "." "W"))("Ẇ")) 1010((("dead-abovedot" "w"))("ẇ")) 1011((("Multi_key" "." "w"))("ẇ")) 1012((("dead-belowdot" "W"))("Ẉ")) 1013((("Multi_key" "!" "W"))("Ẉ")) 1014((("dead-belowdot" "w"))("ẉ")) 1015((("Multi_key" "!" "w"))("ẉ")) 1016((("dead-abovedot" "X"))("Ẋ")) 1017((("Multi_key" "." "X"))("Ẋ")) 1018((("dead-abovedot" "x"))("ẋ")) 1019((("Multi_key" "." "x"))("ẋ")) 1020((("dead-diaeresis" "X"))("Ẍ")) 1021((("Multi_key" "\"" "X"))("Ẍ")) 1022((("dead-diaeresis" "x"))("ẍ")) 1023((("Multi_key" "\"" "x"))("ẍ")) 1024((("dead-abovedot" "Y"))("Ẏ")) 1025((("Multi_key" "." "Y"))("Ẏ")) 1026((("dead-abovedot" "y"))("ẏ")) 1027((("Multi_key" "." "y"))("ẏ")) 1028((("dead-circumflex" "Z"))("Ẑ")) 1029((("Multi_key" "^" "Z"))("Ẑ")) 1030((("dead-circumflex" "z"))("ẑ")) 1031((("Multi_key" "^" "z"))("ẑ")) 1032((("dead-belowdot" "Z"))("Ẓ")) 1033((("Multi_key" "!" "Z"))("Ẓ")) 1034((("dead-belowdot" "z"))("ẓ")) 1035((("Multi_key" "!" "z"))("ẓ")) 1036((("dead-diaeresis" "t"))("ẗ")) 1037((("Multi_key" "\"" "t"))("ẗ")) 1038((("dead-abovering" "w"))("ẘ")) 1039((("Multi_key" "o" "w"))("ẘ")) 1040((("dead-abovering" "y"))("ẙ")) 1041((("Multi_key" "o" "y"))("ẙ")) 1042((("dead-belowdot" "A"))("Ạ")) 1043((("Multi_key" "!" "A"))("Ạ")) 1044((("dead-belowdot" "a"))("ạ")) 1045((("Multi_key" "!" "a"))("ạ")) 1046((("dead-hook" "A"))("Ả")) 1047((("Multi_key" "?" "A"))("Ả")) 1048((("dead-hook" "a"))("ả")) 1049((("Multi_key" "?" "a"))("ả")) 1050((("dead-acute" "dead-circumflex" "A"))("Ấ")) 1051((("dead-acute" "Multi_key" "^" "A"))("Ấ")) 1052((("Multi_key" "'" "dead-circumflex" "A"))("Ấ")) 1053((("Multi_key" "'" "^" "A"))("Ấ")) 1054((("dead-acute" "dead-circumflex" "a"))("ấ")) 1055((("dead-acute" "Multi_key" "^" "a"))("ấ")) 1056((("Multi_key" "'" "dead-circumflex" "a"))("ấ")) 1057((("Multi_key" "'" "^" "a"))("ấ")) 1058((("dead-grave" "dead-circumflex" "A"))("Ầ")) 1059((("dead-grave" "Multi_key" "^" "A"))("Ầ")) 1060((("Multi_key" "`" "dead-circumflex" "A"))("Ầ")) 1061((("Multi_key" "`" "^" "A"))("Ầ")) 1062((("dead-grave" "dead-circumflex" "a"))("ầ")) 1063((("dead-grave" "Multi_key" "^" "a"))("ầ")) 1064((("Multi_key" "`" "dead-circumflex" "a"))("ầ")) 1065((("Multi_key" "`" "^" "a"))("ầ")) 1066((("dead-hook" "dead-circumflex" "A"))("Ẩ")) 1067((("dead-hook" "Multi_key" "^" "A"))("Ẩ")) 1068((("Multi_key" "?" "dead-circumflex" "A"))("Ẩ")) 1069((("Multi_key" "?" "^" "A"))("Ẩ")) 1070((("dead-hook" "dead-circumflex" "a"))("ẩ")) 1071((("dead-hook" "Multi_key" "^" "a"))("ẩ")) 1072((("Multi_key" "?" "dead-circumflex" "a"))("ẩ")) 1073((("Multi_key" "?" "^" "a"))("ẩ")) 1074((("dead-tilde" "dead-circumflex" "A"))("Ẫ")) 1075((("dead-tilde" "Multi_key" "^" "A"))("Ẫ")) 1076((("Multi_key" "~" "dead-circumflex" "A"))("Ẫ")) 1077((("Multi_key" "~" "^" "A"))("Ẫ")) 1078((("dead-tilde" "dead-circumflex" "a"))("ẫ")) 1079((("dead-tilde" "Multi_key" "^" "a"))("ẫ")) 1080((("Multi_key" "~" "dead-circumflex" "a"))("ẫ")) 1081((("Multi_key" "~" "^" "a"))("ẫ")) 1082((("dead-circumflex" "dead-belowdot" "A"))("Ậ")) 1083((("dead-circumflex" "Multi_key" "!" "A"))("Ậ")) 1084((("Multi_key" "^" "dead-belowdot" "A"))("Ậ")) 1085((("Multi_key" "^" "!" "A"))("Ậ")) 1086((("dead-circumflex" "dead-belowdot" "a"))("ậ")) 1087((("dead-circumflex" "Multi_key" "!" "a"))("ậ")) 1088((("Multi_key" "^" "dead-belowdot" "a"))("ậ")) 1089((("Multi_key" "^" "!" "a"))("ậ")) 1090((("dead-acute" "dead-breve" "A"))("Ắ")) 1091((("dead-acute" "Multi_key" "U" "A"))("Ắ")) 1092((("dead-acute" "Multi_key" "b" "A"))("Ắ")) 1093((("Multi_key" "'" "dead-breve" "A"))("Ắ")) 1094((("Multi_key" "'" "U" "A"))("Ắ")) 1095((("Multi_key" "'" "b" "A"))("Ắ")) 1096((("dead-acute" "dead-breve" "a"))("ắ")) 1097((("dead-acute" "Multi_key" "U" "a"))("ắ")) 1098((("dead-acute" "Multi_key" "b" "a"))("ắ")) 1099((("Multi_key" "'" "dead-breve" "a"))("ắ")) 1100((("Multi_key" "'" "U" "a"))("ắ")) 1101((("Multi_key" "'" "b" "a"))("ắ")) 1102((("dead-grave" "dead-breve" "A"))("Ằ")) 1103((("dead-grave" "Multi_key" "U" "A"))("Ằ")) 1104((("dead-grave" "Multi_key" "b" "A"))("Ằ")) 1105((("Multi_key" "`" "dead-breve" "A"))("Ằ")) 1106((("Multi_key" "`" "U" "A"))("Ằ")) 1107((("Multi_key" "`" "b" "A"))("Ằ")) 1108((("dead-grave" "dead-breve" "a"))("ằ")) 1109((("dead-grave" "Multi_key" "U" "a"))("ằ")) 1110((("dead-grave" "Multi_key" "b" "a"))("ằ")) 1111((("Multi_key" "`" "dead-breve" "a"))("ằ")) 1112((("Multi_key" "`" "U" "a"))("ằ")) 1113((("Multi_key" "`" "b" "a"))("ằ")) 1114((("dead-hook" "dead-breve" "A"))("Ẳ")) 1115((("dead-hook" "Multi_key" "U" "A"))("Ẳ")) 1116((("dead-hook" "Multi_key" "b" "A"))("Ẳ")) 1117((("Multi_key" "?" "dead-breve" "A"))("Ẳ")) 1118((("Multi_key" "?" "U" "A"))("Ẳ")) 1119((("Multi_key" "?" "b" "A"))("Ẳ")) 1120((("dead-hook" "dead-breve" "a"))("ẳ")) 1121((("dead-hook" "Multi_key" "U" "a"))("ẳ")) 1122((("dead-hook" "Multi_key" "b" "a"))("ẳ")) 1123((("Multi_key" "?" "dead-breve" "a"))("ẳ")) 1124((("Multi_key" "?" "U" "a"))("ẳ")) 1125((("Multi_key" "?" "b" "a"))("ẳ")) 1126((("dead-tilde" "dead-breve" "A"))("Ẵ")) 1127((("dead-tilde" "Multi_key" "U" "A"))("Ẵ")) 1128((("dead-tilde" "Multi_key" "b" "A"))("Ẵ")) 1129((("Multi_key" "~" "dead-breve" "A"))("Ẵ")) 1130((("Multi_key" "~" "U" "A"))("Ẵ")) 1131((("Multi_key" "~" "b" "A"))("Ẵ")) 1132((("dead-tilde" "dead-breve" "a"))("ẵ")) 1133((("dead-tilde" "Multi_key" "U" "a"))("ẵ")) 1134((("dead-tilde" "Multi_key" "b" "a"))("ẵ")) 1135((("Multi_key" "~" "dead-breve" "a"))("ẵ")) 1136((("Multi_key" "~" "U" "a"))("ẵ")) 1137((("Multi_key" "~" "b" "a"))("ẵ")) 1138((("dead-breve" "dead-belowdot" "A"))("Ặ")) 1139((("dead-breve" "Multi_key" "!" "A"))("Ặ")) 1140((("Multi_key" "U" "dead-belowdot" "A"))("Ặ")) 1141((("Multi_key" "U" "!" "A"))("Ặ")) 1142((("Multi_key" "b" "dead-belowdot" "A"))("Ặ")) 1143((("Multi_key" "b" "!" "A"))("Ặ")) 1144((("dead-breve" "dead-belowdot" "a"))("ặ")) 1145((("dead-breve" "Multi_key" "!" "a"))("ặ")) 1146((("Multi_key" "U" "dead-belowdot" "a"))("ặ")) 1147((("Multi_key" "U" "!" "a"))("ặ")) 1148((("Multi_key" "b" "dead-belowdot" "a"))("ặ")) 1149((("Multi_key" "b" "!" "a"))("ặ")) 1150((("dead-belowdot" "E"))("Ẹ")) 1151((("Multi_key" "!" "E"))("Ẹ")) 1152((("dead-belowdot" "e"))("ẹ")) 1153((("Multi_key" "!" "e"))("ẹ")) 1154((("dead-hook" "E"))("Ẻ")) 1155((("Multi_key" "?" "E"))("Ẻ")) 1156((("dead-hook" "e"))("ẻ")) 1157((("Multi_key" "?" "e"))("ẻ")) 1158((("dead-tilde" "E"))("Ẽ")) 1159((("Multi_key" "~" "E"))("Ẽ")) 1160((("dead-tilde" "e"))("ẽ")) 1161((("Multi_key" "~" "e"))("ẽ")) 1162((("dead-acute" "dead-circumflex" "E"))("Ế")) 1163((("dead-acute" "Multi_key" "^" "E"))("Ế")) 1164((("Multi_key" "'" "dead-circumflex" "E"))("Ế")) 1165((("Multi_key" "'" "^" "E"))("Ế")) 1166((("dead-acute" "dead-circumflex" "e"))("ế")) 1167((("dead-acute" "Multi_key" "^" "e"))("ế")) 1168((("Multi_key" "'" "dead-circumflex" "e"))("ế")) 1169((("Multi_key" "'" "^" "e"))("ế")) 1170((("dead-grave" "dead-circumflex" "E"))("Ề")) 1171((("dead-grave" "Multi_key" "^" "E"))("Ề")) 1172((("Multi_key" "`" "dead-circumflex" "E"))("Ề")) 1173((("Multi_key" "`" "^" "E"))("Ề")) 1174((("dead-grave" "dead-circumflex" "e"))("ề")) 1175((("dead-grave" "Multi_key" "^" "e"))("ề")) 1176((("Multi_key" "`" "dead-circumflex" "e"))("ề")) 1177((("Multi_key" "`" "^" "e"))("ề")) 1178((("dead-hook" "dead-circumflex" "E"))("Ể")) 1179((("dead-hook" "Multi_key" "^" "E"))("Ể")) 1180((("Multi_key" "?" "dead-circumflex" "E"))("Ể")) 1181((("Multi_key" "?" "^" "E"))("Ể")) 1182((("dead-hook" "dead-circumflex" "e"))("ể")) 1183((("dead-hook" "Multi_key" "^" "e"))("ể")) 1184((("Multi_key" "?" "dead-circumflex" "e"))("ể")) 1185((("Multi_key" "?" "^" "e"))("ể")) 1186((("dead-tilde" "dead-circumflex" "E"))("Ễ")) 1187((("dead-tilde" "Multi_key" "^" "E"))("Ễ")) 1188((("Multi_key" "~" "dead-circumflex" "E"))("Ễ")) 1189((("Multi_key" "~" "^" "E"))("Ễ")) 1190((("dead-tilde" "dead-circumflex" "e"))("ễ")) 1191((("dead-tilde" "Multi_key" "^" "e"))("ễ")) 1192((("Multi_key" "~" "dead-circumflex" "e"))("ễ")) 1193((("Multi_key" "~" "^" "e"))("ễ")) 1194((("dead-circumflex" "dead-belowdot" "E"))("Ệ")) 1195((("dead-circumflex" "Multi_key" "!" "E"))("Ệ")) 1196((("Multi_key" "^" "dead-belowdot" "E"))("Ệ")) 1197((("Multi_key" "^" "!" "E"))("Ệ")) 1198((("dead-circumflex" "dead-belowdot" "e"))("ệ")) 1199((("dead-circumflex" "Multi_key" "!" "e"))("ệ")) 1200((("Multi_key" "^" "dead-belowdot" "e"))("ệ")) 1201((("Multi_key" "^" "!" "e"))("ệ")) 1202((("dead-hook" "I"))("Ỉ")) 1203((("Multi_key" "?" "I"))("Ỉ")) 1204((("dead-hook" "i"))("ỉ")) 1205((("Multi_key" "?" "i"))("ỉ")) 1206((("dead-belowdot" "I"))("Ị")) 1207((("Multi_key" "!" "I"))("Ị")) 1208((("dead-belowdot" "i"))("ị")) 1209((("Multi_key" "!" "i"))("ị")) 1210((("dead-belowdot" "O"))("Ọ")) 1211((("Multi_key" "!" "O"))("Ọ")) 1212((("dead-belowdot" "o"))("ọ")) 1213((("Multi_key" "!" "o"))("ọ")) 1214((("dead-hook" "O"))("Ỏ")) 1215((("Multi_key" "?" "O"))("Ỏ")) 1216((("dead-hook" "o"))("ỏ")) 1217((("Multi_key" "?" "o"))("ỏ")) 1218((("dead-acute" "dead-circumflex" "O"))("Ố")) 1219((("dead-acute" "Multi_key" "^" "O"))("Ố")) 1220((("Multi_key" "'" "dead-circumflex" "O"))("Ố")) 1221((("Multi_key" "'" "^" "O"))("Ố")) 1222((("dead-acute" "dead-circumflex" "o"))("ố")) 1223((("dead-acute" "Multi_key" "^" "o"))("ố")) 1224((("Multi_key" "'" "dead-circumflex" "o"))("ố")) 1225((("Multi_key" "'" "^" "o"))("ố")) 1226((("dead-grave" "dead-circumflex" "O"))("Ồ")) 1227((("dead-grave" "Multi_key" "^" "O"))("Ồ")) 1228((("Multi_key" "`" "dead-circumflex" "O"))("Ồ")) 1229((("Multi_key" "`" "^" "O"))("Ồ")) 1230((("dead-grave" "dead-circumflex" "o"))("ồ")) 1231((("dead-grave" "Multi_key" "^" "o"))("ồ")) 1232((("Multi_key" "`" "dead-circumflex" "o"))("ồ")) 1233((("Multi_key" "`" "^" "o"))("ồ")) 1234((("dead-hook" "dead-circumflex" "O"))("Ổ")) 1235((("dead-hook" "Multi_key" "^" "O"))("Ổ")) 1236((("Multi_key" "?" "dead-circumflex" "O"))("Ổ")) 1237((("Multi_key" "?" "^" "O"))("Ổ")) 1238((("dead-hook" "dead-circumflex" "o"))("ổ")) 1239((("dead-hook" "Multi_key" "^" "o"))("ổ")) 1240((("Multi_key" "?" "dead-circumflex" "o"))("ổ")) 1241((("Multi_key" "?" "^" "o"))("ổ")) 1242((("dead-tilde" "dead-circumflex" "O"))("Ỗ")) 1243((("dead-tilde" "Multi_key" "^" "O"))("Ỗ")) 1244((("Multi_key" "~" "dead-circumflex" "O"))("Ỗ")) 1245((("Multi_key" "~" "^" "O"))("Ỗ")) 1246((("dead-tilde" "dead-circumflex" "o"))("ỗ")) 1247((("dead-tilde" "Multi_key" "^" "o"))("ỗ")) 1248((("Multi_key" "~" "dead-circumflex" "o"))("ỗ")) 1249((("Multi_key" "~" "^" "o"))("ỗ")) 1250((("dead-circumflex" "dead-belowdot" "O"))("Ộ")) 1251((("dead-circumflex" "Multi_key" "!" "O"))("Ộ")) 1252((("Multi_key" "^" "dead-belowdot" "O"))("Ộ")) 1253((("Multi_key" "^" "!" "O"))("Ộ")) 1254((("dead-circumflex" "dead-belowdot" "o"))("ộ")) 1255((("dead-circumflex" "Multi_key" "!" "o"))("ộ")) 1256((("Multi_key" "^" "dead-belowdot" "o"))("ộ")) 1257((("Multi_key" "^" "!" "o"))("ộ")) 1258((("dead-acute" "dead-horn" "O"))("Ớ")) 1259((("dead-acute" "Multi_key" "+" "O"))("Ớ")) 1260((("Multi_key" "'" "dead-horn" "O"))("Ớ")) 1261((("Multi_key" "'" "+" "O"))("Ớ")) 1262((("dead-acute" "dead-horn" "o"))("ớ")) 1263((("dead-acute" "Multi_key" "+" "o"))("ớ")) 1264((("Multi_key" "'" "dead-horn" "o"))("ớ")) 1265((("Multi_key" "'" "+" "o"))("ớ")) 1266((("dead-grave" "dead-horn" "O"))("Ờ")) 1267((("dead-grave" "Multi_key" "+" "O"))("Ờ")) 1268((("Multi_key" "`" "dead-horn" "O"))("Ờ")) 1269((("Multi_key" "`" "+" "O"))("Ờ")) 1270((("dead-grave" "dead-horn" "o"))("ờ")) 1271((("dead-grave" "Multi_key" "+" "o"))("ờ")) 1272((("Multi_key" "`" "dead-horn" "o"))("ờ")) 1273((("Multi_key" "`" "+" "o"))("ờ")) 1274((("dead-hook" "dead-horn" "O"))("Ở")) 1275((("dead-hook" "Multi_key" "+" "O"))("Ở")) 1276((("Multi_key" "?" "dead-horn" "O"))("Ở")) 1277((("Multi_key" "?" "+" "O"))("Ở")) 1278((("dead-hook" "dead-horn" "o"))("ở")) 1279((("dead-hook" "Multi_key" "+" "o"))("ở")) 1280((("Multi_key" "?" "dead-horn" "o"))("ở")) 1281((("Multi_key" "?" "+" "o"))("ở")) 1282((("dead-tilde" "dead-horn" "O"))("Ỡ")) 1283((("dead-tilde" "Multi_key" "+" "O"))("Ỡ")) 1284((("Multi_key" "~" "dead-horn" "O"))("Ỡ")) 1285((("Multi_key" "~" "+" "O"))("Ỡ")) 1286((("dead-tilde" "dead-horn" "o"))("ỡ")) 1287((("dead-tilde" "Multi_key" "+" "o"))("ỡ")) 1288((("Multi_key" "~" "dead-horn" "o"))("ỡ")) 1289((("Multi_key" "~" "+" "o"))("ỡ")) 1290((("dead-belowdot" "dead-horn" "O"))("Ợ")) 1291((("dead-belowdot" "Multi_key" "+" "O"))("Ợ")) 1292((("Multi_key" "!" "dead-horn" "O"))("Ợ")) 1293((("Multi_key" "!" "+" "O"))("Ợ")) 1294((("dead-belowdot" "dead-horn" "o"))("ợ")) 1295((("dead-belowdot" "Multi_key" "+" "o"))("ợ")) 1296((("Multi_key" "!" "dead-horn" "o"))("ợ")) 1297((("Multi_key" "!" "+" "o"))("ợ")) 1298((("dead-belowdot" "U"))("Ụ")) 1299((("Multi_key" "!" "U"))("Ụ")) 1300((("dead-belowdot" "u"))("ụ")) 1301((("Multi_key" "!" "u"))("ụ")) 1302((("dead-hook" "U"))("Ủ")) 1303((("Multi_key" "?" "U"))("Ủ")) 1304((("dead-hook" "u"))("ủ")) 1305((("Multi_key" "?" "u"))("ủ")) 1306((("dead-acute" "dead-horn" "U"))("Ứ")) 1307((("dead-acute" "Multi_key" "+" "U"))("Ứ")) 1308((("Multi_key" "'" "dead-horn" "U"))("Ứ")) 1309((("Multi_key" "'" "+" "U"))("Ứ")) 1310((("dead-acute" "dead-horn" "u"))("ứ")) 1311((("dead-acute" "Multi_key" "+" "u"))("ứ")) 1312((("Multi_key" "'" "dead-horn" "u"))("ứ")) 1313((("Multi_key" "'" "+" "u"))("ứ")) 1314((("dead-grave" "dead-horn" "U"))("Ừ")) 1315((("dead-grave" "Multi_key" "+" "U"))("Ừ")) 1316((("Multi_key" "`" "dead-horn" "U"))("Ừ")) 1317((("Multi_key" "`" "+" "U"))("Ừ")) 1318((("dead-grave" "dead-horn" "u"))("ừ")) 1319((("dead-grave" "Multi_key" "+" "u"))("ừ")) 1320((("Multi_key" "`" "dead-horn" "u"))("ừ")) 1321((("Multi_key" "`" "+" "u"))("ừ")) 1322((("dead-hook" "dead-horn" "U"))("Ử")) 1323((("dead-hook" "Multi_key" "+" "U"))("Ử")) 1324((("Multi_key" "?" "dead-horn" "U"))("Ử")) 1325((("Multi_key" "?" "+" "U"))("Ử")) 1326((("dead-hook" "dead-horn" "u"))("ử")) 1327((("dead-hook" "Multi_key" "+" "u"))("ử")) 1328((("Multi_key" "?" "dead-horn" "u"))("ử")) 1329((("Multi_key" "?" "+" "u"))("ử")) 1330((("dead-tilde" "dead-horn" "U"))("Ữ")) 1331((("dead-tilde" "Multi_key" "+" "U"))("Ữ")) 1332((("Multi_key" "~" "dead-horn" "U"))("Ữ")) 1333((("Multi_key" "~" "+" "U"))("Ữ")) 1334((("dead-tilde" "dead-horn" "u"))("ữ")) 1335((("dead-tilde" "Multi_key" "+" "u"))("ữ")) 1336((("Multi_key" "~" "dead-horn" "u"))("ữ")) 1337((("Multi_key" "~" "+" "u"))("ữ")) 1338((("dead-belowdot" "dead-horn" "U"))("Ự")) 1339((("dead-belowdot" "Multi_key" "+" "U"))("Ự")) 1340((("Multi_key" "!" "dead-horn" "U"))("Ự")) 1341((("Multi_key" "!" "+" "U"))("Ự")) 1342((("dead-belowdot" "dead-horn" "u"))("ự")) 1343((("dead-belowdot" "Multi_key" "+" "u"))("ự")) 1344((("Multi_key" "!" "dead-horn" "u"))("ự")) 1345((("Multi_key" "!" "+" "u"))("ự")) 1346((("dead-grave" "Y"))("Ỳ")) 1347((("Multi_key" "`" "Y"))("Ỳ")) 1348((("dead-grave" "y"))("ỳ")) 1349((("Multi_key" "`" "y"))("ỳ")) 1350((("dead-belowdot" "Y"))("Ỵ")) 1351((("Multi_key" "!" "Y"))("Ỵ")) 1352((("dead-belowdot" "y"))("ỵ")) 1353((("Multi_key" "!" "y"))("ỵ")) 1354((("dead-hook" "Y"))("Ỷ")) 1355((("Multi_key" "?" "Y"))("Ỷ")) 1356((("dead-hook" "y"))("ỷ")) 1357((("Multi_key" "?" "y"))("ỷ")) 1358((("dead-tilde" "Y"))("Ỹ")) 1359((("Multi_key" "~" "Y"))("Ỹ")) 1360((("dead-tilde" "y"))("ỹ")) 1361((("Multi_key" "~" "y"))("ỹ")) 1362((("dead-circumflex" "0"))("⁰")) 1363((("Multi_key" "^" "0"))("⁰")) 1364((("dead-circumflex" "Multi_key" "_" "i"))("ⁱ")) 1365((("Multi_key" "^" "_" "i"))("ⁱ")) 1366((("dead-circumflex" "4"))("⁴")) 1367((("Multi_key" "^" "4"))("⁴")) 1368((("dead-circumflex" "5"))("⁵")) 1369((("Multi_key" "^" "5"))("⁵")) 1370((("dead-circumflex" "6"))("⁶")) 1371((("Multi_key" "^" "6"))("⁶")) 1372((("dead-circumflex" "7"))("⁷")) 1373((("Multi_key" "^" "7"))("⁷")) 1374((("dead-circumflex" "8"))("⁸")) 1375((("Multi_key" "^" "8"))("⁸")) 1376((("dead-circumflex" "9"))("⁹")) 1377((("Multi_key" "^" "9"))("⁹")) 1378((("dead-circumflex" "+"))("⁺")) 1379((("Multi_key" "^" "+"))("⁺")) 1380((("dead-circumflex" "="))("⁼")) 1381((("Multi_key" "^" "="))("⁼")) 1382((("dead-circumflex" "("))("⁽")) 1383((("Multi_key" "^" "("))("⁽")) 1384((("dead-circumflex" ")"))("⁾")) 1385((("Multi_key" "^" ")"))("⁾")) 1386((("dead-circumflex" "Multi_key" "_" "n"))("ⁿ")) 1387((("Multi_key" "^" "_" "n"))("ⁿ")) 1388((("Multi_key" "_" "0"))("₀")) 1389((("Multi_key" "_" "1"))("₁")) 1390((("Multi_key" "_" "2"))("₂")) 1391((("Multi_key" "_" "3"))("₃")) 1392((("Multi_key" "_" "4"))("₄")) 1393((("Multi_key" "_" "5"))("₅")) 1394((("Multi_key" "_" "6"))("₆")) 1395((("Multi_key" "_" "7"))("₇")) 1396((("Multi_key" "_" "8"))("₈")) 1397((("Multi_key" "_" "9"))("₉")) 1398((("Multi_key" "_" "+"))("₊")) 1399((("Multi_key" "_" "="))("₌")) 1400((("Multi_key" "_" "("))("₍")) 1401((("Multi_key" "_" ")"))("₎")) 1402((("dead-circumflex" "Multi_key" "S" "M"))("℠")) 1403((("Multi_key" "^" "S" "M"))("℠")) 1404((("dead-circumflex" "Multi_key" "T" "M"))("™")) 1405((("Multi_key" "^" "T" "M"))("™")) 1406((("Multi_key" "(" "1" ")"))("①")) 1407((("Multi_key" "(" "2" ")"))("②")) 1408((("Multi_key" "(" "3" ")"))("③")) 1409((("Multi_key" "(" "4" ")"))("④")) 1410((("Multi_key" "(" "5" ")"))("⑤")) 1411((("Multi_key" "(" "6" ")"))("⑥")) 1412((("Multi_key" "(" "7" ")"))("⑦")) 1413((("Multi_key" "(" "8" ")"))("⑧")) 1414((("Multi_key" "(" "9" ")"))("⑨")) 1415((("Multi_key" "(" "1" "0" ")"))("⑩")) 1416((("Multi_key" "(" "1" "1" ")"))("⑪")) 1417((("Multi_key" "(" "1" "2" ")"))("⑫")) 1418((("Multi_key" "(" "1" "3" ")"))("⑬")) 1419((("Multi_key" "(" "1" "4" ")"))("⑭")) 1420((("Multi_key" "(" "1" "5" ")"))("⑮")) 1421((("Multi_key" "(" "1" "6" ")"))("⑯")) 1422((("Multi_key" "(" "1" "7" ")"))("⑰")) 1423((("Multi_key" "(" "1" "8" ")"))("⑱")) 1424((("Multi_key" "(" "1" "9" ")"))("⑲")) 1425((("Multi_key" "(" "2" "0" ")"))("⑳")) 1426((("Multi_key" "(" "A" ")"))("Ⓐ")) 1427((("Multi_key" "(" "B" ")"))("Ⓑ")) 1428((("Multi_key" "(" "C" ")"))("Ⓒ")) 1429((("Multi_key" "(" "D" ")"))("Ⓓ")) 1430((("Multi_key" "(" "E" ")"))("Ⓔ")) 1431((("Multi_key" "(" "F" ")"))("Ⓕ")) 1432((("Multi_key" "(" "G" ")"))("Ⓖ")) 1433((("Multi_key" "(" "H" ")"))("Ⓗ")) 1434((("Multi_key" "(" "I" ")"))("Ⓘ")) 1435((("Multi_key" "(" "J" ")"))("Ⓙ")) 1436((("Multi_key" "(" "K" ")"))("Ⓚ")) 1437((("Multi_key" "(" "L" ")"))("Ⓛ")) 1438((("Multi_key" "(" "M" ")"))("Ⓜ")) 1439((("Multi_key" "(" "N" ")"))("Ⓝ")) 1440((("Multi_key" "(" "O" ")"))("Ⓞ")) 1441((("Multi_key" "(" "P" ")"))("Ⓟ")) 1442((("Multi_key" "(" "Q" ")"))("Ⓠ")) 1443((("Multi_key" "(" "R" ")"))("Ⓡ")) 1444((("Multi_key" "(" "S" ")"))("Ⓢ")) 1445((("Multi_key" "(" "T" ")"))("Ⓣ")) 1446((("Multi_key" "(" "U" ")"))("Ⓤ")) 1447((("Multi_key" "(" "V" ")"))("Ⓥ")) 1448((("Multi_key" "(" "W" ")"))("Ⓦ")) 1449((("Multi_key" "(" "X" ")"))("Ⓧ")) 1450((("Multi_key" "(" "Y" ")"))("Ⓨ")) 1451((("Multi_key" "(" "Z" ")"))("Ⓩ")) 1452((("Multi_key" "(" "a" ")"))("ⓐ")) 1453((("Multi_key" "(" "b" ")"))("ⓑ")) 1454((("Multi_key" "(" "c" ")"))("ⓒ")) 1455((("Multi_key" "(" "d" ")"))("ⓓ")) 1456((("Multi_key" "(" "e" ")"))("ⓔ")) 1457((("Multi_key" "(" "f" ")"))("ⓕ")) 1458((("Multi_key" "(" "g" ")"))("ⓖ")) 1459((("Multi_key" "(" "h" ")"))("ⓗ")) 1460((("Multi_key" "(" "i" ")"))("ⓘ")) 1461((("Multi_key" "(" "j" ")"))("ⓙ")) 1462((("Multi_key" "(" "k" ")"))("ⓚ")) 1463((("Multi_key" "(" "l" ")"))("ⓛ")) 1464((("Multi_key" "(" "m" ")"))("ⓜ")) 1465((("Multi_key" "(" "n" ")"))("ⓝ")) 1466((("Multi_key" "(" "o" ")"))("ⓞ")) 1467((("Multi_key" "(" "p" ")"))("ⓟ")) 1468((("Multi_key" "(" "q" ")"))("ⓠ")) 1469((("Multi_key" "(" "r" ")"))("ⓡ")) 1470((("Multi_key" "(" "s" ")"))("ⓢ")) 1471((("Multi_key" "(" "t" ")"))("ⓣ")) 1472((("Multi_key" "(" "u" ")"))("ⓤ")) 1473((("Multi_key" "(" "v" ")"))("ⓥ")) 1474((("Multi_key" "(" "w" ")"))("ⓦ")) 1475((("Multi_key" "(" "x" ")"))("ⓧ")) 1476((("Multi_key" "(" "y" ")"))("ⓨ")) 1477((("Multi_key" "(" "z" ")"))("ⓩ")) 1478((("Multi_key" "(" "0" ")"))("⓪")) 1479((("Multi_key" "(" "2" "1" ")"))("㉑")) 1480((("Multi_key" "(" "2" "2" ")"))("㉒")) 1481((("Multi_key" "(" "2" "3" ")"))("㉓")) 1482((("Multi_key" "(" "2" "4" ")"))("㉔")) 1483((("Multi_key" "(" "2" "5" ")"))("㉕")) 1484((("Multi_key" "(" "2" "6" ")"))("㉖")) 1485((("Multi_key" "(" "2" "7" ")"))("㉗")) 1486((("Multi_key" "(" "2" "8" ")"))("㉘")) 1487((("Multi_key" "(" "2" "9" ")"))("㉙")) 1488((("Multi_key" "(" "3" "0" ")"))("㉚")) 1489((("Multi_key" "(" "3" "1" ")"))("㉛")) 1490((("Multi_key" "(" "3" "2" ")"))("㉜")) 1491((("Multi_key" "(" "3" "3" ")"))("㉝")) 1492((("Multi_key" "(" "3" "4" ")"))("㉞")) 1493((("Multi_key" "(" "3" "5" ")"))("㉟")) 1494((("Multi_key" "(" "3" "6" ")"))("㊱")) 1495((("Multi_key" "(" "3" "7" ")"))("㊲")) 1496((("Multi_key" "(" "3" "8" ")"))("㊳")) 1497((("Multi_key" "(" "3" "9" ")"))("㊴")) 1498((("Multi_key" "(" "4" "0" ")"))("㊵")) 1499((("Multi_key" "(" "4" "1" ")"))("㊶")) 1500((("Multi_key" "(" "4" "2" ")"))("㊷")) 1501((("Multi_key" "(" "4" "3" ")"))("㊸")) 1502((("Multi_key" "(" "4" "4" ")"))("㊹")) 1503((("Multi_key" "(" "4" "5" ")"))("㊺")) 1504((("Multi_key" "(" "4" "6" ")"))("㊻")) 1505((("Multi_key" "(" "4" "7" ")"))("㊼")) 1506((("Multi_key" "(" "4" "8" ")"))("㊽")) 1507((("Multi_key" "(" "4" "9" ")"))("㊾")) 1508((("Multi_key" "(" "5" "0" ")"))("㊿")) 1509)) 1510 1511(define latin-set-deadkey-representation 1512 (lambda () 1513 (set-symbol-value! 'dead-grave "`") 1514 (set-symbol-value! 'dead-acute "´") 1515 (set-symbol-value! 'dead-circumflex "ˆ") 1516 (set-symbol-value! 'dead-tilde "˜") 1517 (set-symbol-value! 'dead-macron "¯") 1518 (set-symbol-value! 'dead-breve "˘") 1519 (set-symbol-value! 'dead-abovedot "˙") 1520 (set-symbol-value! 'dead-diaeresis "¨") 1521 (set-symbol-value! 'dead-abovering "˚") 1522 (set-symbol-value! 'dead-doubleacute "˝") 1523 (set-symbol-value! 'dead-caron "ˇ") 1524 (set-symbol-value! 'dead-cedilla "¸") 1525 (set-symbol-value! 'dead-ogonek "˛") 1526 (set-symbol-value! 'dead-iota "ͺ") ;; represented with U+037A 1527 ;; no representation chars below 1528 ;(set-symbol-value! 'dead-belowdot "") 1529 ;(set-symbol-value! 'dead-hook "") 1530 ;(set-symbol-value! 'dead-horn "") 1531)) 1532 1533(define latin-im-rule 1534 (append ascii-rule latin-compose-rule)) 1535 1536(define ascii-rule 1537 (map (compose (lambda (entry) 1538 (list (list entry) entry)) 1539 list 1540 charcode->string) 1541 (iota 95 32))) 1542 1543;; widgets and actions 1544 1545;; widgets 1546(define latin-widgets '(widget_latin_input_mode)) 1547 1548;; default activity for each widgets 1549(define default-widget_latin_input_mode 'action_latin_input) 1550 1551;; actions of widget_latin_input_mode 1552(define latin-input-mode-actions 1553 '(action_latin_input)) 1554 1555;;; implementations 1556 1557(register-action 'action_latin_input 1558 (lambda (lc) 1559 (list 1560 'on 1561 "L" 1562 (N_ "Latin compose") 1563 (N_ "Latin Compose Mode"))) 1564 (lambda (lc) 1565 #t) 1566 (lambda (lc) 1567 ;; set deadkey representaion values 1568 (latin-set-deadkey-representation))) 1569 1570;; Update widget definitions based on action configurations. The 1571;; procedure is needed for on-the-fly reconfiguration involving the 1572;; custom API 1573(define latin-configure-widgets 1574 (lambda () 1575 (register-widget 'widget_latin_input_mode 1576 (activity-indicator-new latin-input-mode-actions) 1577 (actions-new latin-input-mode-actions)))) 1578 1579(define latin-context-rec-spec 1580 (append 1581 context-rec-spec 1582 '((rk-context #f) 1583 (composing? #f) 1584 (raw-commit #t)))) 1585 1586(define-record 'latin-context latin-context-rec-spec) 1587(define latin-context-new-internal latin-context-new) 1588 1589(define latin-context-new 1590 (lambda (id im) 1591 (let ((lc (latin-context-new-internal id im)) 1592 (rkc (rk-context-new latin-im-rule #f #f))) 1593 (latin-context-set-widgets! lc latin-widgets) 1594 (latin-context-set-rk-context! lc rkc) 1595 lc))) 1596 1597(define latin-init-handler 1598 (lambda (id im arg) 1599 (latin-context-new id im))) 1600 1601(define latin-context-flush 1602 (lambda (lc) 1603 (rk-flush (latin-context-rk-context lc)) 1604 (latin-context-set-composing?! lc #f))) 1605 1606(define latin-update-preedit 1607 (lambda (lc) 1608 (if (not (latin-context-raw-commit lc)) 1609 (let* ((rkc (latin-context-rk-context lc)) 1610 (cs (rk-current-seq rkc))) 1611 (im-clear-preedit lc) 1612 (im-pushback-preedit lc 1613 preedit-underline 1614 (if cs 1615 (nth 0 (cadr cs)) 1616 (rk-pending rkc))) 1617 (im-pushback-preedit lc 1618 preedit-cursor 1619 "") 1620 (im-update-preedit lc)) 1621 (latin-context-set-raw-commit! lc #f)))) 1622 1623(define latin-commit-raw 1624 (lambda (lc) 1625 (im-commit-raw lc) 1626 (latin-context-set-raw-commit! lc #t))) 1627 1628(define latin-commit 1629 (lambda (lc) 1630 (let* ((rkc (latin-context-rk-context lc)) 1631 (cs (rk-current-seq rkc))) 1632 (if cs 1633 (im-commit lc (car (cadr cs))) 1634 (im-commit lc (rk-pending rkc))) 1635 (latin-context-flush lc)))) 1636 1637(define latin-proc-composing-state 1638 (lambda (lc key state) 1639 (let ((rkc (latin-context-rk-context lc))) 1640 (cond 1641 ((latin-backspace-key? key state) 1642 (if (not (rk-backspace rkc)) 1643 (latin-commit-raw lc) 1644 (if (null? (rk-context-seq rkc)) 1645 (latin-context-flush lc)))) 1646 1647 ((latin-commit-key? key state) 1648 (latin-commit lc)) 1649 1650 ((or (and 1651 (symbol? key) 1652 (not (or (dead-keys? key) 1653 (eq? 'Multi_key key)))) 1654 (and 1655 (eqv? 32 key) ; space 1656 (not (rk-expect-key? rkc " ")))) 1657 (latin-commit lc) 1658 (im-commit-raw lc) 1659 (latin-context-flush lc)) 1660 1661 (else 1662 (let ((res (rk-push-key! rkc (if (symbol? key) 1663 (symbol->string key) 1664 (charcode->string key))))) 1665 (if (not (rk-partial? rkc)) 1666 (let ((cs (rk-current-seq rkc))) 1667 (if (and 1668 (= (length (cadr cs)) 1) 1669 (not (= (length (car (car cs))) 1))) 1670 (latin-commit lc) 1671 ;; reset invalid sequence 1672 (latin-context-flush lc)))) 1673 ;; reset invalid sequence 1674 (if res 1675 (latin-context-flush lc)))))))) 1676 1677(define dead-keys? 1678 (lambda (key) 1679 (if (and 1680 (symbol? key) 1681 (> (string-length (symbol->string key)) 5)) 1682 (let ((keysym-head 1683 (string-list-concat 1684 (list-head (reverse (string-to-list (symbol->string key))) 5)))) 1685 (if (string=? keysym-head "-daed") ;;reverse 1686 #t 1687 #f)) 1688 #f))) 1689 1690(define latin-proc-raw-state 1691 (lambda (lc key state) 1692 (cond 1693 ((or 1694 (eq? 'Multi_key key) 1695 (dead-keys? key)) 1696 (latin-context-set-composing?! lc #t) 1697 (latin-context-set-raw-commit! lc #f) 1698 (latin-proc-composing-state lc key state)) 1699 (else 1700 (latin-commit-raw lc))))) 1701 1702(define latin-press-key-handler 1703 (lambda (lc key state) 1704 (if (ichar-control? key) 1705 (im-commit-raw lc) 1706 (if (latin-context-composing? lc) 1707 (latin-proc-composing-state lc key state) 1708 (latin-proc-raw-state lc key state))) 1709 (latin-update-preedit lc))) 1710 1711(define latin-release-key-handler 1712 (lambda (lc key state) 1713 (if (or (ichar-control? key) 1714 (not (latin-context-composing? lc))) 1715 ;; don't discard key release event for apps 1716 (latin-commit-raw lc)))) 1717 1718(define latin-reset-handler 1719 (lambda (lc) 1720 (latin-context-flush lc))) 1721 1722(define latin-focus-in-handler 1723 (lambda (lc) 1724 #f)) 1725 1726(define latin-focus-out-handler 1727 (lambda (lc) 1728 (latin-context-flush lc) 1729 (im-clear-preedit lc) 1730 (im-update-preedit lc))) 1731 1732(define latin-place-handler 1733 (lambda (lc) 1734 (im-clear-preedit lc) 1735 (im-update-preedit lc))) 1736 1737(define latin-displace-handler 1738 (lambda (lc) 1739 (let* ((rkc (latin-context-rk-context lc)) 1740 (pend (rk-pending rkc))) 1741 (if pend 1742 (im-commit lc pend)) 1743 (latin-context-flush lc)))) 1744 1745(latin-configure-widgets) 1746 1747(register-im 1748 'latin 1749 "" 1750 "UTF-8" 1751 (N_ "Latin characters") 1752 (N_ "Latin characters mainly used for Latin and Germanic languages") 1753 #f 1754 latin-init-handler 1755 #f 1756 context-mode-handler 1757 latin-press-key-handler 1758 latin-release-key-handler 1759 latin-reset-handler 1760 #f 1761 #f 1762 context-prop-activate-handler 1763 #f 1764 latin-focus-in-handler 1765 latin-focus-out-handler 1766 latin-place-handler 1767 latin-displace-handler 1768) 1769