Initial revision

This commit is contained in:
Kenichi Handa 1997-07-08 01:48:20 +00:00
parent 697654edd9
commit 24b31c8829
22 changed files with 40284 additions and 0 deletions

232
leim/Makefile.in Normal file
View file

@ -0,0 +1,232 @@
# Makefile for leim subdirectory in GNU Emacs.
# Copyright (C) 1997 Electrotechnical Laboratory, JAPAN.
# Licensed to the Free Software Foundation.
# This file is part of GNU Emacs.
# GNU Emacs is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# GNU Emacs 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 General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with GNU Emacs; see the file COPYING. If not, write to the
# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.
# Avoid trouble on systems where the `SHELL' variable might be
# inherited from the environment.
SHELL = /bin/sh
# Here are the things that we expect ../configure to edit.
version=@version@
prefix=@prefix@
datadir=@datadir@
lispdir=@lispdir@
srcdir=@srcdir@
INSTALLDIR=${datadir}/emacs/${version}/leim
EMACS=../src/emacs
TAR=tar
CP=cp
SUBDIRS=quail skk
CHINESE-GB=\
quail/tit/CTLau.elc \
quail/tit/CCDOSPY.elc \
quail/tit/Punct.elc \
quail/tit/PY.elc \
quail/tit/QJ.elc \
quail/tit/SW.elc \
quail/tit/TONEPY.elc \
quail/tit/ZIRANMA.elc
CHINESE-BIG5=\
quail/tit/4Corner.elc \
quail/tit/ARRAY30.elc \
quail/tit/CTLauB.elc \
quail/tit/ECDICT.elc \
quail/tit/ETZY.elc \
quail/tit/Punct-b5.elc \
quail/tit/PY-b5.elc \
quail/tit/QJ-b5.elc \
quail/tit/ZOZY.elc \
quail/quick-b5.elc \
quail/tsangchi-b5.elc
CHINESE-CNS=\
quail/quick-cns.elc \
quail/tsangchi-cns.elc
JAPANESE=quail/japanese.elc skk/skkdic.elc
KOREAN=\
quail/hangul.elc \
quail/hangul3.elc \
quail/hanja.elc \
quail/hanja-jis.elc \
quail/symbol-ksc.elc
THAI=quail/thai.elc
VIETNAMESE=quail/viqr.elc
LAO=quail/lao.elc quail/lrt.elc
INDIAN=quail/devanagari.elc
TIBETAN=quail/tibetan.elc
LATIN=quail/latin-pre.elc quail/latin-post.elc
GREEK=quail/greek.elc
RUSSIAN=quail/cyrillic.elc
MISC=quail/ethiopic.elc quail/ipa.elc
CHINESE=${CHINESE-GB} ${CHINESE-BIG5} ${CHINESE-CNS}
EASTASIA=${CHINESE} ${JAPANESE} ${KOREAN}
ASIA=${EASTASIA} ${THAI} ${VIETNAMESE} ${LAO} ${INDIAN}
EUROPEAN=${LATIN} ${GREEK} ${RUSSIAN}
WORLD=${ASIA} ${EUROPEAN} ${MISC}
all: ${SUBDIRS} ${WORLD} leim-list.el
quail:
mkdir quail
ln -s . quail/tit
ln -s ${srcdir}/quail/*.el quail
skk:
mkdir skk
ln -s ${srcdir}/skk/* skk
quail/tit/%.el: ${srcdir}/CXTERM-DIC/%.tit
$(EMACS) -batch -l titdic-cnv -f batch-titdic-convert\
-dir quail `dirname $<`
quail/tit/%.elc: quail/tit/%.el
$(EMACS) -batch --eval '(byte-recompile-directory "quail" 0)'
quail/%.el:
for f in ${srcdir}/quail/*.el; do \
[ -f quail/`basename $$f` ] || (cd quail; ln -s $$f .); \
done
quail/%.elc: quail/%.el
$(EMACS) -batch --eval '(byte-recompile-directory "quail" 0)'
skk/%.el:
ln -s ${srcdir}/$@ $@
skk/%.elc: skk/%.el
$(EMACS) -batch -l skkdic-cnv -f batch-byte-compile $<
leim-list.el: ${WORLD}
$(EMACS) -batch --eval "(update-leim-list-file \".\")"
# install -- all languages supported by LEIM
# install-asia -- all Asian languages
# install-eastasia -- all Each Asian languages
# install-chinese -- all Chinese Languages
# install-chinese-gb -- Chinese (GB)
# install-chinese-big5 -- Chinese (BIG5)
# install-chinese-cns -- Chinese (CNS)
# install-japanese -- Japanese
# install-korean -- Korean (hangul and hanja)
# install-thai -- Thai
# install-vietnamese -- Vietnamese
# install-lao -- Lao
# install-indian -- Indian (Devanagari script)
# install-tibetan -- Tibetan (Devanagari)
# install-european -- all European languages
# install-latin -- all Latin scripts
# install-greek -- Greek
# install-russian -- Russian (cyrillic)
# install-misc -- Ethiopic and IPA
install: all
ELC=`echo ${WORLD} | sed 's,tit/,,g'`; \
EL=`echo $$ELC | sed 's/\.elc/.el/g'`; \
$(TAR) -cf - $$EL $$ELC | (cd ${INSTALLDIR}; $(TAR) -xvf -)
$(EMACS) -batch --eval "(update-leim-list-file \"${INSTALLDIR}\")"
install-asia: ${ASIA}
ELSRC=`echo ${ASIA} | sed 's/\.elc/.el/g'`; \
$(TAR) -cf - $$ELSRC ${ASIA} | (cd ${INSTALLDIR}; $(TAR) -xvf -)
$(EMACS) -batch --eval "(update-leim-list-file \"${INSTALLDIR}\")"
install-eastasia: ${EASTASIA}
ELSRC=`echo ${EASTASIA} | sed 's/\.elc/.el/g'`; \
$(TAR) -cf - $$ELSRC ${EASTASIA} | (cd ${INSTALLDIR}; $(TAR) -xvf -)
$(EMACS) -batch --eval "(update-leim-list-file \"${INSTALLDIR}\")"
install-chinese: install-chinese-gb install-chinese-big5 install-chinese-cns
install-chinese-gb: ${CHINESE-GB}
ELSRC=`echo $^ | sed 's/\.elc/.el/g'`; \
$(CP) -fp $$ELSRC $^ ${INSTALLDIR}/quail
$(EMACS) -batch --eval "(update-leim-list-file \"${INSTALLDIR}\")"
install-chinese-big5: ${CHINESE-BIG5}
ELSRC=`echo $^ | sed 's/\.elc/.el/g'`; \
$(CP) -fp $$ELSRC $^ ${INSTALLDIR}/quail
$(EMACS) -batch --eval "(update-leim-list-file \"${INSTALLDIR}\")"
install-chinese-cns: ${CHINESE-CNS}
ELSRC=`echo ${CHINESE-CNS} | sed 's/\.elc/.el/g'`; \
$(TAR) cf - $$ELSRC ${CHINESE-CNS} | (cd ${INSTALLDIR}; $(TAR) xfBp -)
install-japanese: ${JAPANESE}
ELSRC=`echo ${JAPANESE} | sed 's/\.elc/.el/g'`; \
$(TAR) cf - $$ELSRC ${JAPANESE} | (cd ${INSTALLDIR}; $(TAR) xfBp -)
install-korean: ${KOREAN}
ELSRC=`echo ${KOREAN} | sed 's/\.elc/.el/g'`; \
$(TAR) cf - $$ELSRC ${KOREAN} | (cd ${INSTALLDIR}; $(TAR) xfBp -)
install-thai: ${THAI}
ELSRC=`echo ${THAI} | sed 's/\.elc/.el/g'`; \
$(TAR) cf - $$ELSRC ${THAI} | (cd ${INSTALLDIR}; $(TAR) xfBp -)
install-vietnamese: ${VIETNAMESE}
ELSRC=`echo ${VIETNAMESE} | sed 's/\.elc/.el/g'`; \
$(TAR) cf - $$ELSRC ${VIETNAMESE} | (cd ${INSTALLDIR}; $(TAR) xfBp -)
install-lao: ${LAO}
ELSRC=`echo ${LAO} | sed 's/\.elc/.el/g'`; \
$(TAR) cf - $$ELSRC ${LAO} | (cd ${INSTALLDIR}; $(TAR) xfBp -)
install-indian: ${INSTALLDIR} ${INDIAN}
ELSRC=`echo ${INDIAN} | sed 's/\.elc/.el/g'`; \
$(TAR) cf - $$ELSRC ${INDIAN} | (cd ${INSTALLDIR}; $(TAR) xfBp -)
install-tibetan: ${INSTALLDIR} ${TIBETAN}
ELSRC=`echo ${INDIAN} | sed 's/\.elc/.el/g'`; \
$(TAR) cf - $$ELSRC ${INDIAN} | (cd ${INSTALLDIR}; $(TAR) xfBp -)
install-european: install-latin install-greek install-russian
install-latin: ${LATIN}
ELSRC=`echo ${LATIN} | sed 's/\.elc/.el/g'`; \
$(TAR) cf - $$ELSRC ${LATIN} | (cd ${INSTALLDIR}; $(TAR) xfBp -)
install-greek: ${GREEK}
ELSRC=`echo ${GREEK} | sed 's/\.elc/.el/g'`; \
$(TAR) cf - $$ELSRC ${GREEK} | (cd ${INSTALLDIR}; $(TAR) xfBp -)
install-russian: ${RUSSIAN}
ELSRC=`echo ${RUSSIAN} | sed 's/\.elc/.el/g'`; \
$(TAR) cf - $$ELSRC ${RUSSIAN} | (cd ${INSTALLDIR}; $(TAR) xfBp -)
install-misc: ${MISC}
ELSRC=`echo $^ | sed 's/\.elc/.el/g'`; \
$(CP) -fp $$ELSRC $^ ${INSTALLDIR}/quail
$(EMACS) -batch --eval "(update-leim-list-file \"${INSTALLDIR}\")"

831
leim/quail/cyrillic.el Normal file
View file

@ -0,0 +1,831 @@
;;; quail/cyrillic.el -- Quail package for inputting Cyrillic characters
;; Copyright (C) 1997 Electrotechnical Laboratory, JAPAN.
;; Licensed to the Free Software Foundation.
;; Keywords: multilingual, input method, Cyrillic
;; This file is part of GNU Emacs.
;; GNU Emacs is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation; either version 2, or (at your option)
;; any later version.
;; GNU Emacs 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 General Public License for more details.
;; You should have received a copy of the GNU General Public License
;; along with GNU Emacs; see the file COPYING. If not, write to the
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
;; Boston, MA 02111-1307, USA.
;;; Code:
(require 'quail)
(quail-define-package
"cyrillic-jcuken" "Cyrillic" ",L69(B" nil
",L9FC:5=(B keyboard layout widely used in Russia (ISO 8859-5 encoding)"
nil t t t t)
;; 1! 2@ 3# 4" 5: 6, 7. 8* 9( 0) -_ =+ ,L!(B
;; ,L9(B ,LF(B ,LC(B ,L:(B ,L5(B ,L=(B ,L3(B ,LH(B ,LI(B ,L7(B ,LE(B ,Lj(B
;; ,LD(B ,LK(B ,L2(B ,L0(B ,L?(B ,L@(B ,L>(B ,L;(B ,L4(B ,L6(B ,LM(B
;; ,LO(B ,LG(B ,LA(B ,L<(B ,L8(B ,LB(B ,LL(B ,L1(B ,LN(B /?
(quail-define-rules
("1" ?1)
("2" ?2)
("3" ?3)
("4" ?4)
("5" ?5)
("6" ?6)
("7" ?7)
("8" ?8)
("9" ?9)
("0" ?0)
("-" ?-)
("=" ?=)
("`" ?,Lq(B)
("q" ?,LY(B)
("w" ?,Lf(B)
("e" ?,Lc(B)
("r" ?,LZ(B)
("t" ?,LU(B)
("y" ?,L](B)
("u" ?,LS(B)
("i" ?,Lh(B)
("o" ?,Li(B)
("p" ?,LW(B)
("[" ?,Le(B)
("]" ?,Lj(B)
("a" ?,Ld(B)
("s" ?,Lk(B)
("d" ?,LR(B)
("f" ?,LP(B)
("g" ?,L_(B)
("h" ?,L`(B)
("j" ?,L^(B)
("k" ?,L[(B)
("l" ?,LT(B)
(";" ?,LV(B)
("'" ?,Lm(B)
("\\" ?\\)
("z" ?,Lo(B)
("x" ?,Lg(B)
("c" ?,La(B)
("v" ?,L\(B)
("b" ?,LX(B)
("n" ?,Lb(B)
("m" ?,Ll(B)
("," ?,LQ(B)
("." ?,Ln(B)
("/" ?/)
("!" ?!)
("@" ?@)
("#" ?#)
("$" ?\")
("%" ?:)
("^" ?,)
("&" ?.)
("*" ?*)
("(" ?()
(")" ?))
("_" ?_)
("+" ?+)
("~" ?,L!(B)
("Q" ?,L9(B)
("W" ?,LF(B)
("E" ?,LC(B)
("R" ?,L:(B)
("T" ?,L5(B)
("Y" ?,L=(B)
("U" ?,L3(B)
("I" ?,LH(B)
("O" ?,LI(B)
("P" ?,L7(B)
("{" ?,LE(B)
("}" ?,LJ(B)
("A" ?,LD(B)
("S" ?,LK(B)
("D" ?,L2(B)
("F" ?,L0(B)
("G" ?,L?(B)
("H" ?,L@(B)
("J" ?,L>(B)
("K" ?,L;(B)
("L" ?,L4(B)
(":" ?,L6(B)
("\"" ?,LM(B)
("|" ?|)
("Z" ?,LO(B)
("X" ?,LG(B)
("C" ?,LA(B)
("V" ?,L<(B)
("B" ?,L8(B)
("N" ?,LB(B)
("M" ?,LL(B)
("<" ?,L1(B)
(">" ?,LN(B)
("?" ??))
;;
(quail-define-package
"cyrillic-jis-russian" "Cyrillic" "$B'('+(B" nil
"$B'+'8'5','&'/(B keyboard layout same as JCUKEN (JIS X0208.1983 encoding)"
nil t t t t)
;; 1! 2@ 3# 4" 5: 6, 7. 8* 9( 0) -_ =+ ,L!(B
;; ,L9(B ,LF(B ,LC(B ,L:(B ,L5(B ,L=(B ,L3(B ,LH(B ,LI(B ,L7(B ,LE(B ,Lj(B
;; ,LD(B ,LK(B ,L2(B ,L0(B ,L?(B ,L@(B ,L>(B ,L;(B ,L4(B ,L6(B ,LM(B
;; ,LO(B ,LG(B ,LA(B ,L<(B ,L8(B ,LB(B ,LL(B ,L1(B ,LN(B /?
(quail-define-rules
("1" ?$B#1(B)
("2" ?$B#2(B)
("3" ?$B#3(B)
("4" ?$B#4(B)
("5" ?$B#5(B)
("6" ?$B#6(B)
("7" ?$B#7(B)
("8" ?$B#8(B)
("9" ?$B#9(B)
("0" ?$B#0(B)
("-" ?$B!](B)
("=" ?$B!a(B)
("`" ?$B'W(B)
("q" ?$B'[(B)
("w" ?$B'h(B)
("e" ?$B'e(B)
("r" ?$B'\(B)
("t" ?$B'V(B)
("y" ?$B'_(B)
("u" ?$B'T(B)
("i" ?$B'j(B)
("o" ?$B'k(B)
("p" ?$B'Y(B)
("[" ?$B'g(B)
("]" ?$B'l(B)
("a" ?$B'f(B)
("s" ?$B'm(B)
("d" ?$B'S(B)
("f" ?$B'Q(B)
("g" ?$B'a(B)
("h" ?$B'b(B)
("j" ?$B'`(B)
("k" ?$B'](B)
("l" ?$B'U(B)
(";" ?$B'X(B)
("'" ?$B'o(B)
("\\" ?$B!@(B)
("z" ?$B'q(B)
("x" ?$B'i(B)
("c" ?$B'c(B)
("v" ?$B'^(B)
("b" ?$B'Z(B)
("n" ?$B'd(B)
("m" ?$B'n(B)
("," ?$B'R(B)
("." ?$B'p(B)
("/" ?$B!?(B)
("!" ?$B!*(B)
("@" ?$B!w(B)
("#" ?$B!t(B)
("$" ?$B!I(B)
("%" ?$B!'(B)
("^" ?$B!$(B)
("&" ?$B!%(B)
("*" ?$B!v(B)
("(" ?$B!J(B)
(")" ?$B!K(B)
("_" ?$B!2(B)
("+" ?$B!\(B)
("~" ?$B''(B)
("Q" ?$B'+(B)
("W" ?$B'8(B)
("E" ?$B'5(B)
("R" ?$B',(B)
("T" ?$B'&(B)
("Y" ?$B'/(B)
("U" ?$B'$(B)
("I" ?$B':(B)
("O" ?$B';(B)
("P" ?$B')(B)
("{" ?$B'7(B)
("}" ?$B'<(B)
("A" ?$B'6(B)
("S" ?$B'=(B)
("D" ?$B'#(B)
("F" ?$B'!(B)
("G" ?$B'1(B)
("H" ?$B'2(B)
("J" ?$B'0(B)
("K" ?$B'-(B)
("L" ?$B'%(B)
(":" ?$B'((B)
("\"" ?$B'?(B)
("|" ?$B!C(B)
("Z" ?$B'A(B)
("X" ?$B'9(B)
("C" ?$B'3(B)
("V" ?$B'.(B)
("B" ?$B'*(B)
("N" ?$B'4(B)
("M" ?$B'>(B)
("<" ?$B'"(B)
(">" ?$B'@(B)
("?" ?$B!)(B))
;;
(quail-define-package
"cyrillic-macedonian" "Cyrillic" ",L6(BM" nil
",L)*5@B7(B-,L#,(B keyboard layout based on JUS.I.K1.004 (ISO 8859-5 encoding)"
nil t t t t)
;; 1! 2" 3# 4$ 5% 6& 7' 8( 9) 0= /? +* <>
;; ,L)(B ,L*(B ,L5(B ,L@(B ,LB(B ,L7(B ,LC(B ,L8(B ,L>(B ,L?(B ,LH(B ,L#(B
;; ,L0(B ,LA(B ,L4(B ,LD(B ,L3(B ,LE(B ,L((B ,L:(B ,L;(B ,LG(B ,L,(B ,L6(B
;; ,L%(B ,L/(B ,LF(B ,L2(B ,L1(B ,L=(B ,L<(B ,; .: -_
(quail-define-rules
("1" ?1)
("2" ?2)
("3" ?3)
("4" ?4)
("5" ?5)
("6" ?6)
("7" ?7)
("8" ?8)
("9" ?9)
("0" ?0)
("-" ?/)
("=" ?+)
("`" ?<)
("q" ?,Ly(B)
("w" ?,Lz(B)
("e" ?,LU(B)
("r" ?,L`(B)
("t" ?,Lb(B)
("y" ?,LW(B)
("u" ?,Lc(B)
("i" ?,LX(B)
("o" ?,L^(B)
("p" ?,L_(B)
("[" ?,Lh(B)
("]" ?,Ls(B)
("a" ?,LP(B)
("s" ?,La(B)
("d" ?,LT(B)
("f" ?,Ld(B)
("g" ?,LS(B)
("h" ?,Le(B)
("j" ?,Lx(B)
("k" ?,LZ(B)
("l" ?,L[(B)
(";" ?,Lg(B)
("'" ?,L|(B)
("\\" ?,LV(B)
("z" ?,Lu(B)
("x" ?,L(B)
("c" ?,Lf(B)
("v" ?,LR(B)
("b" ?,LQ(B)
("n" ?,L](B)
("m" ?,L\(B)
("," ?,)
("." ?.)
("/" ?-)
("!" ?!)
("@" ?\")
("#" ?#)
("$" ?$)
("%" ?%)
("^" ?&)
("&" ?')
("*" ?\()
("(" ?\))
(")" ?=)
("_" ??)
("+" ?*)
("~" ?>)
("Q" ?,L)(B)
("W" ?,L*(B)
("E" ?,L5(B)
("R" ?,L@(B)
("T" ?,LB(B)
("Y" ?,L7(B)
("U" ?,LC(B)
("I" ?,L8(B)
("O" ?,L>(B)
("P" ?,L?(B)
("{" ?,LH(B)
("}" ?,L#(B)
("A" ?,L0(B)
("S" ?,LA(B)
("D" ?,L4(B)
("F" ?,LD(B)
("G" ?,L3(B)
("H" ?,LE(B)
("J" ?,L((B)
("K" ?,L:(B)
("L" ?,L;(B)
(":" ?,LG(B)
("\"" ?,L,(B)
("|" ?,L6(B)
("Z" ?,L%(B)
("X" ?,L/(B)
("C" ?,LF(B)
("V" ?,L2(B)
("B" ?,L1(B)
("N" ?,L=(B)
("M" ?,L<(B)
("<" ?\;)
(">" ?:)
("?" ?_))
;;
(quail-define-package
"cyrillic-serbian" "Cyrillic" ",L6(BS" nil
",L)*5@B7(B-,L"+(B keyboard layout based on JUS.I.K1.005 (ISO 8859-5 encoding)"
nil t t t t)
;; 1! 2" 3# 4$ 5% 6& 7' 8( 9) 0= /? +* <>
;; ,L)(B ,L*(B ,L5(B ,L@(B ,LB(B ,L7(B ,LC(B ,L8(B ,L>(B ,L?(B ,LH(B ,L"(B
;; ,L0(B ,LA(B ,L4(B ,LD(B ,L3(B ,LE(B ,L((B ,L:(B ,L;(B ,LG(B ,L+(B ,L6(B
;; ,L%(B ,L/(B ,LF(B ,L2(B ,L1(B ,L=(B ,L<(B ,; .: -_
(quail-define-rules
("1" ?1)
("2" ?2)
("3" ?3)
("4" ?4)
("5" ?5)
("6" ?6)
("7" ?7)
("8" ?8)
("9" ?9)
("0" ?0)
("-" ?/)
("=" ?+)
("`" ?<)
("q" ?,Ly(B)
("w" ?,Lz(B)
("e" ?,LU(B)
("r" ?,L`(B)
("t" ?,Lb(B)
("y" ?,LW(B)
("u" ?,Lc(B)
("i" ?,LX(B)
("o" ?,L^(B)
("p" ?,L_(B)
("[" ?,Lh(B)
("]" ?,Lr(B)
("a" ?,LP(B)
("s" ?,La(B)
("d" ?,LT(B)
("f" ?,Ld(B)
("g" ?,LS(B)
("h" ?,Le(B)
("j" ?,Lx(B)
("k" ?,LZ(B)
("l" ?,L[(B)
(";" ?,Lg(B)
("'" ?,L{(B)
("\\" ?,LV(B)
("z" ?,Lu(B)
("x" ?,L(B)
("c" ?,Lf(B)
("v" ?,LR(B)
("b" ?,LQ(B)
("n" ?,L](B)
("m" ?,L\(B)
("," ?,)
("." ?.)
("/" ?-)
("!" ?!)
("@" ?\")
("#" ?#)
("$" ?$)
("%" ?%)
("^" ?&)
("&" ?')
("*" ?\()
("(" ?\))
(")" ?=)
("_" ??)
("+" ?*)
("~" ?>)
("Q" ?,L)(B)
("W" ?,L*(B)
("E" ?,L5(B)
("R" ?,L@(B)
("T" ?,LB(B)
("Y" ?,L7(B)
("U" ?,LC(B)
("I" ?,L8(B)
("O" ?,L>(B)
("P" ?,L?(B)
("{" ?,LH(B)
("}" ?,L"(B)
("A" ?,L0(B)
("S" ?,LA(B)
("D" ?,L4(B)
("F" ?,LD(B)
("G" ?,L3(B)
("H" ?,LE(B)
("J" ?,L((B)
("K" ?,L:(B)
("L" ?,L;(B)
(":" ?,LG(B)
("\"" ?,L+(B)
("|" ?,L6(B)
("Z" ?,L%(B)
("X" ?,L/(B)
("C" ?,LF(B)
("V" ?,L2(B)
("B" ?,L1(B)
("N" ?,L=(B)
("M" ?,L<(B)
("<" ?\;)
(">" ?:)
("?" ?_))
;;
(quail-define-package
"cyrillic-beylorussian" "Cyrillic" ",L6(BB" nil
",L)*5@B7(B-,L&.(B BEYLORUSSIAN (ISO 8859-5 encoding)"
nil t t t t)
;; 1! 2" 3# 4$ 5% 6& 7' 8( 9) 0= /? +* <>
;; ,L)(B ,L*(B ,L5(B ,L@(B ,LB(B ,L7(B ,LC(B ,L8(B ,L>(B ,L?(B ,LH(B ,L&(B
;; ,L0(B ,LA(B ,L4(B ,LD(B ,L3(B ,LE(B ,L((B ,L:(B ,L;(B ,LG(B ,L.(B ,L6(B
;; ,L%(B ,L/(B ,LF(B ,L2(B ,L1(B ,L=(B ,L<(B ,; .: -_
(quail-define-rules
("1" ?1)
("2" ?2)
("3" ?3)
("4" ?4)
("5" ?5)
("6" ?6)
("7" ?7)
("8" ?8)
("9" ?9)
("0" ?0)
("-" ?/)
("=" ?+)
("`" ?<)
("q" ?,Ly(B)
("w" ?,Lz(B)
("e" ?,LU(B)
("r" ?,L`(B)
("t" ?,Lb(B)
("y" ?,LW(B)
("u" ?,Lc(B)
("i" ?,LX(B)
("o" ?,L^(B)
("p" ?,L_(B)
("[" ?,Lh(B)
("]" ?,Lv(B)
("a" ?,LP(B)
("s" ?,La(B)
("d" ?,LT(B)
("f" ?,Ld(B)
("g" ?,LS(B)
("h" ?,Le(B)
("j" ?,Lx(B)
("k" ?,LZ(B)
("l" ?,L[(B)
(";" ?,Lg(B)
("'" ?,L~(B)
("\\" ?,LV(B)
("z" ?,Lu(B)
("x" ?,L(B)
("c" ?,Lf(B)
("v" ?,LR(B)
("b" ?,LQ(B)
("n" ?,L](B)
("m" ?,L\(B)
("," ?,)
("." ?.)
("/" ?-)
("!" ?!)
("@" ?\")
("#" ?#)
("$" ?$)
("%" ?%)
("^" ?&)
("&" ?')
("*" ?\()
("(" ?\))
(")" ?=)
("_" ??)
("+" ?*)
("~" ?>)
("Q" ?,L)(B)
("W" ?,L*(B)
("E" ?,L5(B)
("R" ?,L@(B)
("T" ?,LB(B)
("Y" ?,L7(B)
("U" ?,LC(B)
("I" ?,L8(B)
("O" ?,L>(B)
("P" ?,L?(B)
("{" ?,LH(B)
("}" ?,L&(B)
("A" ?,L0(B)
("S" ?,LA(B)
("D" ?,L4(B)
("F" ?,LD(B)
("G" ?,L3(B)
("H" ?,LE(B)
("J" ?,L((B)
("K" ?,L:(B)
("L" ?,L;(B)
(":" ?,LG(B)
("\"" ?,L.(B)
("|" ?,L6(B)
("Z" ?,L%(B)
("X" ?,L/(B)
("C" ?,LF(B)
("V" ?,L2(B)
("B" ?,L1(B)
("N" ?,L=(B)
("M" ?,L<(B)
("<" ?\;)
(">" ?:)
("?" ?_))
;;
(quail-define-package
"cyrillic-ukrainian" "Cyrillic" ",L6(BU" nil
",L$'5@B7(B-,L&.(B UKRAINIAN (ISO 8859-5 encoding)
Sorry, but 'ghe with upturn' is not included in ISO 8859-5"
nil t t t t)
;; 1! 2" 3# 4$ 5% 6& 7' 8( 9) 0= /? +* <>
;; ,L$(B ,L'(B ,L5(B ,L@(B ,LB(B ,L7(B ,LC(B ,L8(B ,L>(B ,L?(B ,LH(B ,L&(B
;; ,L0(B ,LA(B ,L4(B ,LD(B ,L3(B ,LE(B ,L((B ,L:(B ,L;(B ,LG(B ,L.(B ,L6(B
;; ,L%(B ,L/(B ,LF(B ,L2(B ,L1(B ,L=(B ,L<(B ,; .: -_
(quail-define-rules
("1" ?1)
("2" ?2)
("3" ?3)
("4" ?4)
("5" ?5)
("6" ?6)
("7" ?7)
("8" ?8)
("9" ?9)
("0" ?0)
("-" ?/)
("=" ?+)
("`" ?<)
("q" ?,Lt(B)
("w" ?,Lw(B)
("e" ?,LU(B)
("r" ?,L`(B)
("t" ?,Lb(B)
("y" ?,LW(B)
("u" ?,Lc(B)
("i" ?,LX(B)
("o" ?,L^(B)
("p" ?,L_(B)
("[" ?,Lh(B)
("]" ?,Lv(B)
("a" ?,LP(B)
("s" ?,La(B)
("d" ?,LT(B)
("f" ?,Ld(B)
("g" ?,LS(B)
("h" ?,Le(B)
("j" ?,Lx(B)
("k" ?,LZ(B)
("l" ?,L[(B)
(";" ?,Lg(B)
("'" ?,L~(B)
("\\" ?,LV(B)
("z" ?,Lu(B)
("x" ?,L(B)
("c" ?,Lf(B)
("v" ?,LR(B)
("b" ?,LQ(B)
("n" ?,L](B)
("m" ?,L\(B)
("," ?,)
("." ?.)
("/" ?-)
("!" ?!)
("@" ?\")
("#" ?#)
("$" ?$)
("%" ?%)
("^" ?&)
("&" ?')
("*" ?\()
("(" ?\))
(")" ?=)
("_" ??)
("+" ?*)
("~" ?>)
("Q" ?,L$(B)
("W" ?,L'(B)
("E" ?,L5(B)
("R" ?,L@(B)
("T" ?,LB(B)
("Y" ?,L7(B)
("U" ?,LC(B)
("I" ?,L8(B)
("O" ?,L>(B)
("P" ?,L?(B)
("{" ?,LH(B)
("}" ?,L&(B)
("A" ?,L0(B)
("S" ?,LA(B)
("D" ?,L4(B)
("F" ?,LD(B)
("G" ?,L3(B)
("H" ?,LE(B)
("J" ?,L((B)
("K" ?,L:(B)
("L" ?,L;(B)
(":" ?,LG(B)
("\"" ?,L.(B)
("|" ?,L6(B)
("Z" ?,L%(B)
("X" ?,L/(B)
("C" ?,LF(B)
("V" ?,L2(B)
("B" ?,L1(B)
("N" ?,L=(B)
("M" ?,L<(B)
("<" ?\;)
(">" ?:)
("?" ?_))
;;
(quail-define-package
"cyrillic-yawerty" "Cyrillic" ",L6O(B" nil
",LO25@BK(B Roman transcription (ISO 8859-5 encoding)
This layout is based on Roman transcription.
When preceded by a '/', the second and the third rows (number key row) change
as follows.
keytop | Q W E R T Y U I O P A S D
--------+---------------------------------------
input | ,L"(B ,L#(B ,L$(B ,L%(B ,L&(B ,L'(B ,L((B ,L)(B ,L*(B ,L+(B ,L,(B ,L.(B ,L/(B"
nil t t t t)
;; 1! 2,Lq(B 3,Lj(B 4,L!(B 5% 6^ 7& 8* 9( 0) -_ ,LG(B ,LN(B
;; ,LO(B ,L2(B ,L5(B ,L@(B ,LB(B ,LK(B ,LC(B ,L8(B ,L>(B ,L?(B ,LH(B ,LI(B
;; ,L0(B ,LA(B ,L4(B ,LD(B ,L3(B ,LE(B ,L9(B ,L:(B ,L;(B ;: '" ,LM(B
;; ,L7(B ,LL(B ,LF(B ,L6(B ,L1(B ,L=(B ,L<(B ,< .> /?
;; 1! 2,Lq(B 3,Lj(B 4,L!(B 5% 6^ 7& 8* 9( 0) -_ ,LG(B ,LN(B
;; ,L"(B ,L#(B ,L$(B ,L%(B ,L&(B ,L'(B ,L((B ,L)(B ,L*(B ,L+(B ,LH(B ,LI(B
;; ,L,(B ,L.(B ,L/(B ,LD(B ,L3(B ,LE(B ,L9(B ,L:(B ,L;(B ;: '" ,LM(B
;; ,L7(B ,LL(B ,LF(B ,L6(B ,L1(B ,L=(B ,L<(B ,< .> /?
(quail-define-rules
("1" ?1)
("2" ?2)
("3" ?3)
("4" ?4)
("5" ?5)
("6" ?6)
("7" ?7)
("8" ?8)
("9" ?9)
("0" ?0)
("-" ?-)
("=" ?,Lg(B)
("`" ?,Ln(B)
("q" ?,Lo(B)
("w" ?,LR(B)
("e" ?,LU(B)
("r" ?,L`(B)
("t" ?,Lb(B)
("y" ?,Lk(B)
("u" ?,Lc(B)
("i" ?,LX(B)
("o" ?,L^(B)
("p" ?,L_(B)
("[" ?,Lh(B)
("]" ?,Li(B)
("a" ?,LP(B)
("s" ?,La(B)
("d" ?,LT(B)
("f" ?,Ld(B)
("g" ?,LS(B)
("h" ?,Le(B)
("j" ?,LY(B)
("k" ?,LZ(B)
("l" ?,L[(B)
(";" ?\;)
("'" ?')
("\\" ?,Lm(B)
("z" ?,LW(B)
("x" ?,Ll(B)
("c" ?,Lf(B)
("v" ?,LV(B)
("b" ?,LQ(B)
("n" ?,L](B)
("m" ?,L\(B)
("," ?,)
("." ?.)
("/" ?/)
("!" ?!)
("@" ?,Lq(B)
("#" ?,Lj(B)
("$" ?,L!(B)
("%" ?%)
("^" ?^)
("&" ?&)
("*" ?*)
("(" ?\()
(")" ?\))
("_" ?_)
("+" ?,LG(B)
("~" ?,LN(B)
("Q" ?,LO(B)
("W" ?,L2(B)
("E" ?,L5(B)
("R" ?,L@(B)
("T" ?,LB(B)
("Y" ?,LK(B)
("U" ?,LC(B)
("I" ?,L8(B)
("O" ?,L>(B)
("P" ?,L?(B)
("{" ?,LH(B)
("}" ?,LI(B)
("A" ?,L0(B)
("S" ?,LA(B)
("D" ?,L4(B)
("F" ?,LD(B)
("G" ?,L3(B)
("H" ?,LE(B)
("J" ?,L9(B)
("K" ?,L:(B)
("L" ?,L;(B)
(":" ?:)
("\"" ?\")
("|" ?,LM(B)
("Z" ?,L7(B)
("X" ?,LL(B)
("C" ?,LF(B)
("V" ?,L6(B)
("B" ?,L1(B)
("N" ?,L=(B)
("M" ?,L<(B)
("<" ?<)
(">" ?>)
("?" ??)
("/q" ?,Lr(B)
("/w" ?,Ls(B)
("/e" ?,Lt(B)
("/r" ?,Lu(B)
("/t" ?,Lv(B)
("/y" ?,Lw(B)
("/u" ?,Lx(B)
("/i" ?,Ly(B)
("/o" ?,Lz(B)
("/p" ?,L{(B)
("/a" ?,L|(B)
("/s" ?,L~(B)
("/d" ?,L(B)
("/Q" ?,L"(B)
("/W" ?,L#(B)
("/E" ?,L$(B)
("/R" ?,L%(B)
("/T" ?,L&(B)
("/Y" ?,L'(B)
("/U" ?,L((B)
("/I" ?,L)(B)
("/O" ?,L*(B)
("/P" ?,L+(B)
("/A" ?,L,(B)
("/S" ?,L.(B)
("/D" ?,L/(B))

681
leim/quail/devanagari.el Normal file
View file

@ -0,0 +1,681 @@
;; quail/devanagari.el -- Quail packages for inputting Devanagari
;; Copyright (C) 1997 Free Software Foundation, Inc.
;; Author: KAWABATA, Taichi <kawabata@is.s.u-tokyo.ac.jp>
;; Keywords: multilingual, input method, Indian, Devanagari
;; This file is part of GNU Emacs.
;; GNU Emacs is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation; either version 2, or (at your option)
;; any later version.
;; GNU Emacs 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 General Public License for more details.
;; You should have received a copy of the GNU General Public License
;; along with GNU Emacs; see the file COPYING. If not, write to the
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
;; Boston, MA 02111-1307, USA.
;;; Commentary:
;; History:
;; 1996.10.10 written by KAWABATA, Taichi <kawabata@is.s.u-tokyo.ac.jp>
;; 1997.03.21 fixed by KAWABATA, Taichi
;; I'm not sure if this keyboard layout is REALLY an ISCII keyboard layout.
;; Please let me know if it is not.
;;; Code:
(require 'quail)
(require 'devan-util)
;; This function does nothing for now. For future use.
(defun quail-devanagari-update-translation (control-flag)
(cond ((eq control-flag t) ; terminate translation with the whole key.
(insert quail-current-str)
(quail-terminate-translation))
((null control-flag) ; proceed translation with more keys.
(insert (or quail-current-str quail-current-key)))
(t ; control-flag is the number of keys to be translated.
(insert (aref quail-current-key 0))
(setq unread-command-events
(list (aref quail-current-key control-flag))))))
(defun quail-devanagari-compose-characters ()
(interactive)
(if (quail-point-in-conversion-region)
(let* ((from (overlay-start quail-conv-overlay))
(to (overlay-end quail-conv-overlay))
(dstr (buffer-substring from to)))
(delete-overlay quail-overlay)
(delete-overlay quail-conv-overlay)
(save-restriction
(narrow-to-region from to)
(goto-char (point-min))
(delete-region (point-min) (point-max))
(insert (devanagari-compose-string dstr 'sanskrit))
(goto-char (point-max)))
(move-overlay quail-conv-overlay from (point))
(setq unread-command-events (list last-command-event))
(throw 'exit nil))
(setq unread-command-events (list last-command-event))
(throw 'exit nil)))
(quail-define-package
"devanagari-keyboard-a" "Devanagari" "DevK" t
"Devanagari input method with ISCII format
`$(5!\(B !$(5!.(B @$(5!c(B #x $x %x ^x &$(5")(B *$(5"((B ( ) _$(5!#(B +$(5!*(B
~$(5!/(B 1$(5!r(B 2$(5!s(B 3$(5!t(B 4$(5!u(B 5$(5!v(B 6$(5!w(B 7$(5!x(B 8$(5!y(B 9$(5!z(B 0$(5!q(B - =$(5!_(B
Q$(5!f(B W$(5!-(B E$(5!%(B R$(5!'(B T$(5!)(B Y$(5!K(B U$(5!7(B I$(5!E(B O$(5!C(B P$(5!;(B {$(5!@(B }$(5!<(B |$(5!2(B
q$(5!f(B w$(5!b(B e$(5!Z(B r$(5!\(B t$(5!^(B y$(5!J(B u$(5!X(B i$(5!5(B o$(5!D(B p$(5!:(B [$(5!?(B ]$(5!i(B \\$(5!g(B
A$(5!0(B S$(5!,(B D$(5!$(B F$(5!&(B G$(5!((B H$(5!I(B J$(5!P(B K$(5!4(B l$(5!C(B :$(5!8(B \"$(5!>(B
a$(5!e(B s$(5!a(B d$(5!h(B f$(5![(B g$(5!](B h$(5!H(B j$(5!O(B k$(5!3(B l$(5!B(B ;$(5!9(B '$(5!=(B
Z$(5!+(B X$(5!!(B C$(5!A(B V$(5!G(B B$(5!S(B N$(5!R(B M$(5!U(B <$(5!V(B >$(5!j(B ?$(5!N(B
z$(5!`(B x$(5!"(B c$(5!L(B v$(5!F(B b$(5!T(B n$(5!Q(B m$(5!W(B , . /$(5!M(B
"
nil t t nil nil nil nil nil
;;'quail-devanagari-update-translation
nil
'((" " . quail-devanagari-compose-characters)
("-" . quail-devanagari-compose-characters)
("," . quail-devanagari-compose-characters)
("\C-m" . quail-devanagari-compose-characters)
([return] . quail-devanagari-compose-characters))
)
;; ..... (not prepared yet)
;; I forgot where I got this keymap from.
;; Please let me know if you know what this keymap is.
(quail-define-rules
("`" ?$(5!\(B)
("~" ?$(5!/(B)
("1" ?$(5!r(B)
("!" ?$(5!.(B)
("2" ?$(5!s(B)
("@" ?$(5!c(B)
("3" ?$(5!t(B)
("#" ?# ) ; following "r" in keymap...
("4" ?$(5!u(B)
("$" ?$ ) ; preceding "r" in keymap...
("5" ?$(5!v(B)
("%" ?x ) ; ??
("6" ?$(5!w(B)
("^" ?x ) ; %tra
("7" ?$(5!x(B)
("&" ?$(5")(B) ; % special
("8" ?$(5!y(B)
("*" ?$(5"((B) ; % special
("9" ?$(5!z(B)
("(" ?\()
("0" ?$(5!q(B)
(")" ?\))
("-" ?-)
("_" ?$(5!#(B)
("=" ?$(5!_(B)
("+" ?$(5!*(B)
("q" ?$(5!f(B)
("Q" ?$(5!1(B)
("w" ?$(5!b(B)
("W" ?$(5!-(B)
("e" ?$(5!Z(B)
("E" ?$(5!%(B)
("r" ?$(5!\(B)
("R" ?$(5!'(B)
("t" ?$(5!^(B)
("T" ?$(5!)(B)
("y" ?$(5!J(B)
("Y" ?$(5!K(B)
("u" ?$(5!X(B)
("U" ?$(5!7(B)
("i" ?$(5!5(B)
("I" ?$(5!E(B)
("o" ?$(5!D(B)
("O" ?$(5!C(B)
("p" ?$(5!:(B)
("P" ?$(5!;(B)
("[" ?$(5!?(B)
("{" ?$(5!@(B)
("]" ?$(5!i(B)
("}" ?$(5!<(B)
("\\" ?$(5!g(B)
("|" ?$(5!2(B)
("a" ?$(5!e(B)
("A" ?$(5!0(B)
("s" ?$(5!a(B)
("S" ?$(5!,(B)
("d" ?$(5!h(B)
("D" ?$(5!$(B)
("f" ?$(5![(B)
("F" ?$(5!&(B)
("g" ?$(5!](B)
("G" ?$(5!((B)
("h" ?$(5!H(B)
("H" ?$(5!I(B)
("j" ?$(5!O(B)
("J" ?$(5!P(B)
("k" ?$(5!3(B)
("K" ?$(5!4(B)
("l" ?$(5!B(B)
("L" ?$(5!C(B)
(";" ?$(5!8(B)
(":" ?$(5!9(B)
("'" ?$(5!=(B)
("\"" ?$(5!>(B)
("z" ?$(5!`(B)
("Z" ?$(5!+(B)
("x" ?$(5!"(B)
("X" ?$(5!!(B)
("c" ?$(5!L(B)
("C" ?$(5!A(B)
("v" ?$(5!F(B)
("V" ?$(5!G(B)
("b" ?$(5!T(B)
("B" ?$(5!S(B)
("n" ?$(5!Q(B)
("N" ?$(5!R(B)
("m" ?$(5!W(B)
("M" ?$(5!U(B)
;; ("," ?,)
("<" ?$(5!V(B)
;; ("." ?.)
(">" ?$(5!j(B)
("/" ?$(5!M(B)
("?" ?$(5!N(B)
)
;;
;; Quail Devanagari Input By Transliteration
;;
(eval-when-compile
(defvar devanagari-consonant-transliteration-alist
'(
; GUTTURALS
("k" . "$(5!3(B")
("k." . "$(5!3!i(B")
("kh" . "$(5!4(B")
("kh." . "$(5!4!i(B")
("g" . "$(5!5(B")
("g." . "$(5!5!i(B")
("gh" . "$(5!6(B")
("G" . "$(5!7(B")
; PALATALS
("c" . "$(5!8(B")
("ch" . "$(5!9(B")
("j" . "$(5!:(B")
("j." . "$(5!:!i(B")
("Z" . "$(5!:!i(B")
("jh" . "$(5!;(B")
("J" . "$(5!<(B")
; CEREBRALS
("T" . "$(5!=(B")
("Th" . "$(5!>(B")
("D" . "$(5!?(B")
("D." . "$(5!?!i(B")
("Dh" . "$(5!@(B")
("Dh." . "$(5!@!i(B")
("N" . "$(5!A(B")
; DENTALS
("t" . "$(5!B(B")
("th" . "$(5!C(B")
("d" . "$(5!D(B")
("dh" . "$(5!E(B")
("n" . "$(5!F(B")
("N." . "$(5!G(B")
; LABIALS
("p" . "$(5!H(B")
("ph" . "$(5!I(B")
("ph." . "$(5!I!i(B")
("f" . "$(5!I(B")
("f." . "$(5!I!i(B")
("b" . "$(5!J(B")
("bh" . "$(5!K(B")
("m" . "$(5!L(B")
; SEMIVOWELS
("y" . "$(5!M(B")
("y." . "$(5!N(B")
("Y" . "$(5!N(B")
("r" . "$(5!O(B")
("r." . "$(5!P(B")
("l" . "$(5!Q(B")
("W" . "$(5!R(B")
("W." . "$(5!S(B")
("v" . "$(5!T(B")
("w" . "$(5!T(B")
; SIBILANTS
("z" . "$(5!U(B")
("S" . "$(5!V(B")
("s" . "$(5!W(B")
("h" . "$(5!X(B")
))
(defvar devanagari-vowel-transliteration-alist
'(
;; Special treatment unique to IS 13194 Transliteration
("" . "$(5!h(B")
("a" . "")
; Matra (Vowel Sign)
("A" . "$(5!Z(B")
("i" . "$(5![(B")
("I" . "$(5!\(B")
("u" . "$(5!](B")
("U" . "$(5!^(B")
("R" . "$(5!_(B")
;; ("RR" . "x") ; not specified in ordinary IS 13194.(but in Unicode??)
("q" . "$(5#K(B") ; "$(5#K(B" = "$(5!_!i(B" in IS 13194.
("L" . "$(5#L(B") ; "$(5#L(B" = "$(5![!i(B" in IS 13194.
("E" . "$(5#M(B") ; "$(5#M(B" = "$(5!\!i(B" in IS 13194.
("E" . "$(5!`(B") ; only for transcription of other scripts.
("e" . "$(5!a(B")
("ai" . "$(5!b(B")
("ae" . "$(5!b(B") ; variation of transliteration.
("EE" . "$(5!c(B") ; only for transcription of other scripts. (Candra E)
("O" . "$(5!d(B") ; only for transcription of other scripts.
("o" . "$(5!e(B")
("au" . "$(5!f(B")
("ao" . "$(5!f(B") ; variation of transliteration.
("OO" . "$(5!g(B") ; only for transcription of other scripts. (Candra O)
))
;;
;; Independent vowels and other signs.
;;
(defvar devanagari-other-letters-alist
'(
("a" . "$(5!$(B")
("A" . "$(5!%(B")
("i" . "$(5!&(B")
("I" . "$(5!'(B")
("u" . "$(5!((B")
("U" . "$(5!)(B")
("R" . "$(5!*(B")
;; ("RR" . "x") ; not specified in IS 13194. (but in Unicode??)
("q" . "$(5#*(B") ; "$(5#*(B" = "$(5!*!i(B" in IS 13194.
("L" . "$(5#&(B") ; "$(5#&(B" = "$(5!&!i(B" in IS 13194.
("E" . "$(5#'(B") ; "$(5#'(B" = "$(5!'!i(B" in IS 13194.
("Ex" . "$(5!+(B") ; only for transcription of other scripts.
("e" . "$(5!,(B")
("ai" . "$(5!-(B")
("EE" . "$(5!.(B") ; only for transcription of other scripts. (Candra E)
("O" . "$(5!/(B") ; only for transcription of other scripts.
("o" . "$(5!0(B")
("au" . "$(5!1(B")
("ao" . "$(5!1(B") ; variation of transliteration.
("OO" . "$(5!2(B") ; only for transcription of other scripts. (Candra O)
("'" . "$(5#J(B") ; avagraha
("@" . "$(5#!(B") ; OM
("/" . "$(5!j(B")
("M" . "$(5!"(B")
("&" . "$(5!!(B")
("H" . "$(5!#(B")
("." . "$(5!i(B") ; Nukta
("0" . "$(5!q(B")
("1" . "$(5!r(B")
("2" . "$(5!s(B")
("3" . "$(5!t(B")
("4" . "$(5!u(B")
("5" . "$(5!v(B")
("6" . "$(5!w(B")
("7" . "$(5!x(B")
("8" . "$(5!y(B")
("9" . "$(5!z(B")
))
)
(defmacro devanagari-transliteration-quail-define-rules ()
(cons 'quail-define-rules
(let ((cl devanagari-consonant-transliteration-alist)
(ml devanagari-other-letters-alist) rules)
(while cl
(let ((vl devanagari-vowel-transliteration-alist))
(while vl
(setq rules
(cons (list (concat (car (car cl)) (car (car vl)))
(make-vector 1
(concat (cdr (car cl)) (cdr (car vl)))))
rules))
(setq vl (cdr vl))))
(setq cl (cdr cl)))
(while ml
(setq rules (cons (list (car (car ml))
(make-vector 1 (cdr (car ml))))
rules))
(setq ml (cdr ml)))
rules)))
(quail-define-package
"devanagari-transliteration" "Devanagari" "DEVt" t
"Devanagari input method by transliteration
VOWELS : a $(5!$(B A $(5!%(B i $(5!&(B I $(5!'(B u $(5!((B U $(5!)(B
R $(5!*(B q $(5#*(B L $(5#&(B E $(5#'(B Ex $(5!+(B e $(5!,(B
ai $(5!-(B EE $(5!.(B O $(5!/(B o $(5!0(B au $(5!1(B OO $(5!2(B
GRUTTALS : k $(5!3(B kh $(5!4(B g $(5!5(B gh $(5!6(B G $(5!7(B
PALATALS : c $(5!8(B ch $(5!9(B j $(5!:(B jh $(5!;(B J $(5!<(B (Z $(5!:!i(B)
CEREBRALS : T $(5!=(B Th $(5!>(B D $(5!?(B Dh $(5!@(B N $(5!A(B
DENTALS : t $(5!B(B th $(5!C(B d $(5!D(B dh $(5!E(B n $(5!F(B (Nq $(5!G(B)
LABIALS : p $(5!H(B ph $(5!I(B b $(5!J(B bh $(5!K(B m $(5!L(B (f $(5!I(B)
SEMIVOWELS : y $(5!M(B Y $(5!N(B r $(5!O(B Rq $(5!P(B
l $(5!Q(B W $(5!R(B W. $(5!S(B v $(5!T(B w $(5!T(B
SIBILANTS : z $(5!U(B S $(5!V(B s $(5!W(B h $(5!X(B
Specials : Anuswar M $(5!"(B Visarg H $(5!#(B
Chandrabindu & $(5!!(B Nukta . $(5!i(B
Danda / $(5!j(B Avagrah ' $(5#J(B
OM @ $(5#!(B
"
nil t t nil nil nil nil nil
;; 'quail-devanagari-update-translation
nil
'((" " . quail-devanagari-compose-characters)
("-" . quail-devanagari-compose-characters)
("," . quail-devanagari-compose-characters)
("\C-m" . quail-devanagari-compose-characters)
([return] . quail-devanagari-compose-characters))
)
(devanagari-transliteration-quail-define-rules)
;;
;; ITRANS - Indian Script Translation
;;
(eval-and-compile
(defun rule-indian-to-devanagari (alist)
(if (null alist) nil
(cons (cons (car (car alist))
(indian-to-devanagari-string (cdr (car alist))))
(rule-indian-to-devanagari (cdr alist)))))
)
(eval-when-compile
(defvar devanagari-consonant-itrans-alist
(rule-indian-to-devanagari indian-itrans-consonant-alist))
(defvar devanagari-vowel-itrans-alist
(rule-indian-to-devanagari indian-itrans-vowel-sign-alist))
(defvar devanagari-other-letters-itrans-alist
(rule-indian-to-devanagari indian-itrans-other-letters-alist))
)
(defmacro devanagari-itrans-quail-define-rules ()
(cons 'quail-define-rules
(let ((cl devanagari-consonant-itrans-alist)
(ml devanagari-other-letters-itrans-alist) rules)
(while cl
(let ((vl devanagari-vowel-itrans-alist))
(while vl
(setq rules
(cons (list (concat (car (car cl)) (car (car vl)))
(make-vector 1
(concat (cdr (car cl)) (cdr (car vl)))))
rules))
(setq vl (cdr vl))))
(setq cl (cdr cl)))
(while ml
(setq rules (cons (list (car (car ml))
(make-vector 1 (cdr (car ml))))
rules))
(setq ml (cdr ml)))
rules)))
(quail-define-package
"devanagari-itrans" "Devanagari" "DEVi" t
"Devanagari input method by ITRANS
Special Keys : Anuswar n'
Chandrabindu nn'
Visarg nh
Nukta type capital letter for first character.
$(5!7(B(ng) $(5!<(B(ny) $(5!A(B(nn) $(5!F(B(n) $(5!G(B(nnn)
"
nil t t nil nil nil nil nil
;; 'quail-devanagari-update-translation
nil
'((" " . quail-devanagari-compose-characters)
("-" . quail-devanagari-compose-characters)
("," . quail-devanagari-compose-characters)
("\C-m" . quail-devanagari-compose-characters)
([return] . quail-devanagari-compose-characters))
)
(devanagari-itrans-quail-define-rules)
;;
;; Quail Hindi Input By Transliteration
;;
(defun quail-devanagari-hindi-compose-characters ()
(interactive)
(if (quail-point-in-conversion-region)
(let* ((from (overlay-start quail-conv-overlay))
(to (overlay-end quail-conv-overlay))
(dstr (buffer-substring from to)))
(delete-overlay quail-overlay)
(delete-overlay quail-conv-overlay)
(save-restriction
(narrow-to-region from to)
(goto-char (point-min))
(delete-region (point-min) (point-max))
(insert (devanagari-compose-string dstr))
(goto-char (point-max)))
(move-overlay quail-conv-overlay from (point))
(setq unread-command-events (list last-command-event))
(throw 'exit nil))
(setq unread-command-events (list last-command-event))
(throw 'exit nil)))
(eval-when-compile
(defvar devanagari-hindi-consonant-transliteration-alist
'(
; GUTTURALS
("k" . "$(5!3(B")
("ks" . "$(5$.(B")
("k." . "$(5!3!i(B")
("kh" . "$(5!4(B")
("kh." . "$(5!4!i(B")
("g" . "$(5!5(B")
("g." . "$(5!5!i(B")
("gh" . "$(5!6(B")
("G" . "$(5!7(B")
; PALATALS
("ch" . "$(5!8(B")
("chh" . "$(5!9(B")
("j" . "$(5!:(B")
("j." . "$(5!:!i(B")
("z" . "$(5!:!i(B")
("jh" . "$(5!;(B")
("J" . "$(5!<(B")
; CEREBRALS
("T" . "$(5!=(B")
("Th" . "$(5!>(B")
("D" . "$(5!?(B")
("D." . "$(5!?!i(B")
("Dh" . "$(5!@(B")
("Dh." . "$(5!@!i(B")
("N" . "$(5!A(B")
; DENTALS
("t" . "$(5!B(B")
("th" . "$(5!C(B")
("d" . "$(5!D(B")
("dh" . "$(5!E(B")
("n" . "$(5!F(B")
("N." . "$(5!G(B")
; LABIALS
("p" . "$(5!H(B")
("ph" . "$(5!I(B")
("ph." . "$(5!I!i(B")
("f" . "$(5!I(B")
("f." . "$(5!I!i(B")
("b" . "$(5!J(B")
("bh" . "$(5!K(B")
("m" . "$(5!L(B")
; SEMIVOWELS
("y" . "$(5!M(B")
("y." . "$(5!N(B")
("Y" . "$(5!N(B")
("r" . "$(5!O(B")
("r." . "$(5!P(B")
("l" . "$(5!Q(B")
("W" . "$(5!R(B")
("W." . "$(5!S(B")
("v" . "$(5!T(B")
("w" . "$(5!T(B")
; SIBILANTS
("sh" . "$(5!U(B")
("S" . "$(5!V(B")
("s" . "$(5!W(B")
("h" . "$(5!X(B")
; Special for Hindi
("ks" . "$(5$.(B")
("tr" . "$(5"%(B")
("xn" . "$(5$E(B")
))
(defvar devanagari-hindi-vowel-transliteration-alist
'(
; In hindi, halant sign is rarely used so should explicity typed in.
("" . "")
("~" . "$(5!h(B")
; Matra (Vowel Sign)
("a" . "$(5!Z(B")
("i" . "$(5![(B")
("I" . "$(5!\(B")
("u" . "$(5!](B")
("U" . "$(5!^(B")
("R" . "$(5!_(B")
;; ("RR" . "x") ; not specified in ordinary IS 13194.(but in Unicode??)
("q" . "$(5#K(B") ; "$(5#K(B" = "$(5!_!i(B" in IS 13194.
("L" . "$(5#L(B") ; "$(5#L(B" = "$(5![!i(B" in IS 13194.
("E" . "$(5#M(B") ; "$(5#M(B" = "$(5!\!i(B" in IS 13194.
("E" . "$(5!`(B") ; only for transcription of other scripts.
("e" . "$(5!a(B")
("ai" . "$(5!b(B")
("ae" . "$(5!b(B") ; variation of transliteration.
("EE" . "$(5!c(B") ; only for transcription of other scripts. (Candra E)
("O" . "$(5!d(B") ; only for transcription of other scripts.
("o" . "$(5!e(B")
("au" . "$(5!f(B")
("ao" . "$(5!f(B") ; variation of transliteration.
("OO" . "$(5!g(B") ; only for transcription of other scripts. (Candra O)
))
;;
;; Independent vowels and other signs.
;;
(defvar devanagari-hindi-other-letters-alist
'(
("a" . "$(5!$(B")
("A" . "$(5!%(B")
("i" . "$(5!&(B")
("I" . "$(5!'(B")
("u" . "$(5!((B")
("U" . "$(5!)(B")
("R" . "$(5!*(B")
;; ("RR" . "x") ; not specified in IS 13194. (but in Unicode??)
("q" . "$(5#*(B") ; "$(5#*(B" = "$(5!*!i(B" in IS 13194.
("L" . "$(5#&(B") ; "$(5#&(B" = "$(5!&!i(B" in IS 13194.
("E" . "$(5#'(B") ; "$(5#'(B" = "$(5!'!i(B" in IS 13194.
("Ex" . "$(5!+(B") ; only for transcription of other scripts.
("e" . "$(5!,(B")
("ai" . "$(5!-(B")
("EE" . "$(5!.(B") ; only for transcription of other scripts. (Candra E)
("O" . "$(5!/(B") ; only for transcription of other scripts.
("o" . "$(5!0(B")
("au" . "$(5!1(B")
("ao" . "$(5!1(B") ; variation of transliteration.
("OO" . "$(5!2(B") ; only for transcription of other scripts. (Candra O)
("'" . "$(5#J(B") ; avagraha
("@" . "$(5#!(B") ; OM
("/" . "$(5!j(B")
("M" . "$(5!"(B")
("&" . "$(5!!(B")
("H" . "$(5!#(B")
("." . "$(5!i(B") ; Nukta
("0" . "$(5!q(B")
("1" . "$(5!r(B")
("2" . "$(5!s(B")
("3" . "$(5!t(B")
("4" . "$(5!u(B")
("5" . "$(5!v(B")
("6" . "$(5!w(B")
("7" . "$(5!x(B")
("8" . "$(5!y(B")
("9" . "$(5!z(B")
))
)
(defmacro devanagari-hindi-transliteration-quail-define-rules ()
(cons 'quail-define-rules
(let ((cl devanagari-hindi-consonant-transliteration-alist)
(ml devanagari-hindi-other-letters-alist) rules)
(while cl
(let ((vl devanagari-hindi-vowel-transliteration-alist))
(while vl
(setq rules
(cons (list (concat (car (car cl)) (car (car vl)))
(make-vector 1
(concat (cdr (car cl)) (cdr (car vl)))))
rules))
(setq vl (cdr vl))))
(setq cl (cdr cl)))
(while ml
(setq rules (cons (list (car (car ml))
(make-vector 1 (cdr (car ml))))
rules))
(setq ml (cdr ml)))
rules)))
(quail-define-package
"devanagari-hindi-transliteration" "Hindi" "HINt" t
"Devanagari-Hindi input method by transliteration
VOWELS : a $(5!$(B A $(5!%(B i $(5!&(B I $(5!'(B u $(5!((B U $(5!)(B
R $(5!*(B q $(5#*(B L $(5#&(B E $(5#'(B Ex $(5!+(B e $(5!,(B
ai $(5!-(B EE $(5!.(B O $(5!/(B o $(5!0(B au $(5!1(B OO $(5!2(B
GRUTTALS : k $(5!3(B kh $(5!4(B g $(5!5(B gh $(5!6(B G $(5!7(B
PALATALS : c $(5!8(B ch $(5!9(B j $(5!:(B jh $(5!;(B J $(5!<(B z $(5!:!i(B
CEREBRALS : T $(5!=(B Th $(5!>(B D $(5!?(B Dh $(5!@(B N $(5!A(B
DENTALS : t $(5!B(B th $(5!C(B d $(5!D(B dh $(5!E(B n $(5!F(B (Nq $(5!G(B)
LABIALS : p $(5!H(B ph $(5!I(B b $(5!J(B bh $(5!K(B m $(5!L(B (f $(5!I(B)
SEMIVOWELS : y $(5!M(B Y $(5!N(B r $(5!O(B Rq $(5!P(B
l $(5!Q(B W $(5!R(B W. $(5!S(B v $(5!T(B w $(5!T(B
SIBILANTS : sh $(5!U(B S $(5!V(B s $(5!W(B h $(5!X(B
OTHERS : ks $(5$.(B tr $(5"%(B xn $(5$E(B
Specials : Anuswar M $(5!"(B Visarg H $(5!#(B
Chandrabindu & $(5!!(B Nukta . $(5!i(B
Danda / $(5!j(B Avagrah ' $(5#J(B
OM @ $(5#!(B Halant ~ $(5!h(B
"
nil t t nil nil nil nil nil
;; 'quail-devanagari-update-translation
nil
'((" " . quail-devanagari-hindi-compose-characters)
("-" . quail-devanagari-hindi-compose-characters)
("," . quail-devanagari-hindi-compose-characters)
("\C-m" . quail-devanagari-hindi-compose-characters)
([return] . quail-devanagari-hindi-compose-characters))
)
(devanagari-hindi-transliteration-quail-define-rules)

1104
leim/quail/ethiopic.el Normal file

File diff suppressed because it is too large Load diff

272
leim/quail/greek.el Normal file
View file

@ -0,0 +1,272 @@
;;; quail/greek.el -- Quail package for inputting Greek
;; Copyright (C) 1997 Electrotechnical Laboratory, JAPAN.
;; Licensed to the Free Software Foundation.
;; Keywords: multilingual, input method, Greek
;; This file is part of GNU Emacs.
;; GNU Emacs is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation; either version 2, or (at your option)
;; any later version.
;; GNU Emacs 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 General Public License for more details.
;; You should have received a copy of the GNU General Public License
;; along with GNU Emacs; see the file COPYING. If not, write to the
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
;; Boston, MA 02111-1307, USA.
;;; Code:
(require 'quail)
(quail-define-package
"greek-jis" "Greek" "$B&8(B" nil
"$B&%&K&K&G&M&I&J&A(B: Greek keyboard layout (JIS X0208.1983)
The layout is same as greek, but uses JIS characters.
Sorry, accents and terminal sigma are not supported in JIS."
nil t t t t)
(quail-define-rules
("1" ?$B#1(B)
("2" ?$B#2(B)
("3" ?$B#3(B)
("4" ?$B#4(B)
("5" ?$B#5(B)
("6" ?$B#6(B)
("7" ?$B#7(B)
("8" ?$B#8(B)
("9" ?$B#9(B)
("0" ?$B#0(B)
("-" ?$B!](B)
("=" ?$B!a(B)
("`" ?$B!F(B)
("q" ?$B!&(B)
("w" ?$B&R(B)
("e" ?$B&E(B)
("r" ?$B&Q(B)
("t" ?$B&S(B)
("y" ?$B&T(B)
("u" ?$B&H(B)
("i" ?$B&I(B)
("o" ?$B&O(B)
("p" ?$B&P(B)
("[" ?\$B!N(B)
("]" ?\$B!O(B)
("a" ?$B&A(B)
("s" ?$B&R(B)
("d" ?$B&D(B)
("f" ?$B&U(B)
("g" ?$B&C(B)
("h" ?$B&G(B)
("j" ?$B&N(B)
("k" ?$B&J(B)
("l" ?$B&K(B)
(";" ?$B!G(B)
("'" ?$B!G(B)
("\\" ?$B!@(B)
("z" ?$B&F(B)
("x" ?$B&V(B)
("c" ?$B&W(B)
("v" ?$B&X(B)
("b" ?$B&B(B)
("n" ?$B&M(B)
("m" ?$B&L(B)
("," ?, )
("." ?. )
("/" ?$B!?(B)
("!" ?$B!*(B)
("@" ?$B!w(B)
("#" ?$B!t(B)
("$" ?$B!t(B)
("%" ?$B!s(B)
("^" ?$B!0(B)
("&" ?$B!u(B)
("*" ?$B!v(B)
("(" ?\$B!J(B)
(")" ?\$B!K(B)
("_" ?$B!2(B)
("+" ?$B!\(B)
("~" ?$B!1(B)
("Q" ?$B!](B)
("W" ?$B&2(B)
("E" ?$B&%(B)
("R" ?$B&1(B)
("T" ?$B&3(B)
("Y" ?$B&4(B)
("U" ?$B&((B)
("I" ?$B&)(B)
("O" ?$B&/(B)
("P" ?$B&1(B)
("{" ?\$B!P(B)
("}" ?\$B!Q(B)
("A" ?$B&!(B)
("S" ?$B&2(B)
("D" ?$B&$(B)
("F" ?$B&5(B)
("G" ?$B&#(B)
("H" ?$B&'(B)
("J" ?$B&.(B)
("K" ?$B&*(B)
("L" ?$B&+(B)
(":" ?$B!I(B)
("\"" ?$B!I(B)
("|" ?$B!C(B)
("Z" ?$B&&(B)
("X" ?$B&6(B)
("C" ?$B&7(B)
("V" ?$B&8(B)
("B" ?$B&"(B)
("N" ?$B&-(B)
("M" ?$B&,(B)
("<" ?$B!((B)
(">" ?$B!'(B)
("?" ?$B!)(B))
;;
(quail-define-package
"greek" "Greek" ",FY(B" nil
",FEkkgmij\(B: Greek keyboard layout (ISO 8859-7)
--------------
In the right of ,Fk(B key is a combination key, where
,F4(B acute
,F((B diaresis
e.g.
,Fa(B + ,F4(B -> ,F\(B
,Fi(B + ,F((B -> ,Fz(B
,Fi(B + ,F((B + ,F4(B -> ,F@(B"
nil t t t t)
;; 1! 2@ 3# 4$ 5% 6^ 7& 8* 9( 0) -_ =+ `~
;; ,F7/(B ,FrS(B ,FeE(B ,FqQ(B ,FtT(B ,FuU(B ,FhH(B ,FiI(B ,FoO(B ,FpP(B [{ ]}
;; ,FaA(B ,FsS(B ,FdD(B ,FvV(B ,FcC(B ,FgG(B ,FnN(B ,FjJ(B ,FkK(B ,F4((B '" \|
;; ,FfF(B ,FwW(B ,FxX(B ,FyY(B ,FbB(B ,FmM(B ,FlL(B ,; .: /?
(quail-define-rules
("1" ?1)
("2" ?2)
("3" ?3)
("4" ?4)
("5" ?5)
("6" ?6)
("7" ?7)
("8" ?8)
("9" ?9)
("0" ?0)
("-" ?-)
("=" ?=)
("`" ?`)
("q" ?,F7(B)
("w" ?,Fr(B)
("e" ?,Fe(B)
("r" ?,Fq(B)
("t" ?,Ft(B)
("y" ?,Fu(B)
("u" ?,Fh(B)
("i" ?,Fi(B)
("o" ?,Fo(B)
("p" ?,Fp(B)
("[" ?\[)
("]" ?\])
("a" ?,Fa(B)
("s" ?,Fs(B)
("d" ?,Fd(B)
("f" ?,Fv(B)
("g" ?,Fc(B)
("h" ?,Fg(B)
("j" ?,Fn(B)
("k" ?,Fj(B)
("l" ?,Fk(B)
(";" ?,F4(B)
("'" ?')
("\\" ?\\)
("z" ?,Ff(B)
("x" ?,Fw(B)
("c" ?,Fx(B)
("v" ?,Fy(B)
("b" ?,Fb(B)
("n" ?,Fm(B)
("m" ?,Fl(B)
("," ?,)
("." ?.)
("/" ?/)
("!" ?!)
("@" ?@)
("#" ?#)
("$" ?$)
("%" ?%)
("^" ?^)
("&" ?&)
("*" ?*)
("(" ?\()
(")" ?\))
("_" ?_)
("+" ?+)
("~" ?~)
("Q" ?,F/(B)
("W" ?,FS(B)
("E" ?,FE(B)
("R" ?,FQ(B)
("T" ?,FT(B)
("Y" ?,FU(B)
("U" ?,FH(B)
("I" ?,FI(B)
("O" ?,FO(B)
("P" ?,FP(B)
("{" ?{)
("}" ?})
("A" ?,FA(B)
("S" ?,FS(B)
("D" ?,FD(B)
("F" ?,FV(B)
("G" ?,FC(B)
("H" ?,FG(B)
("J" ?,FN(B)
("K" ?,FJ(B)
("L" ?,FK(B)
(":" ?,F((B)
("\"" ?\")
("|" ?|)
("Z" ?,FF(B)
("X" ?,FW(B)
("C" ?,FX(B)
("V" ?,FY(B)
("B" ?,FB(B)
("N" ?,FM(B)
("M" ?,FL(B)
("<" ?\;)
(">" ?:)
("?" ??)
("a;" ?,F\(B)
("e;" ?,F](B)
("h;" ?,F^(B)
("i;" ?,F_(B)
("o;" ?,F|(B)
("y;" ?,F}(B)
("v;" ?,F~(B)
("A;" ?,F6(B)
("E;" ?,F8(B)
("H;" ?,F9(B)
("I;" ?,F:(B)
("O;" ?,F<(B)
("Y;" ?,F>(B)
("V;" ?,F?(B)
("i:" ?,Fz(B)
("y:" ?,F{(B)
("I:" ?,FZ(B)
("Y:" ?,F[(B)
("i:;" ?,F@(B)
("y:;" ?,F`(B))

2614
leim/quail/hangul.el Normal file

File diff suppressed because it is too large Load diff

2893
leim/quail/hangul3.el Normal file

File diff suppressed because it is too large Load diff

523
leim/quail/hanja-jis.el Normal file
View file

@ -0,0 +1,523 @@
;;; quail/hanja-jis.el -- Quail package for inputting Korean Hanja (JISX0208)
;; Copyright (C) 1997 Electrotechnical Laboratory, JAPAN.
;; Licensed to the Free Software Foundation.
;; Keywords: multilingual, input method, Korean, Hangul
;; This file is part of GNU Emacs.
;; GNU Emacs is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation; either version 2, or (at your option)
;; any later version.
;; GNU Emacs 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 General Public License for more details.
;; You should have received a copy of the GNU General Public License
;; along with GNU Emacs; see the file COPYING. If not, write to the
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
;; Boston, MA 02111-1307, USA.
;;; Code:
(require 'quail)
(quail-define-package
"korean-hanja-jis" "Korean" "$(C9z$B4A(B" t
"2$(C9z=D(BJIS$B4A;z(B: $B3:aD$(CGO4B(B $B4A;z$(C@G(B $B1$$(C@;(B $(CGQ1[(B2$(C9z$B<0$(C@87N(B $B8F=P$(CGO?)(B $BA*Z$(B"
nil nil nil nil nil nil t)
(quail-define-rules
("rk" "$B1]2>2@2A2B2C2D2E2G2H2K2M2N2Q2T2W2X2`2o3976P$PqQ+RjS'[H[I`]aPcwgWhSkEkhlKlhmF(B")
("rkr" "$B3F3J3L3P3Q3S3U5Q5S9oH9RJS>T=WmXBZ([d]W`Bk4l;r((B")
("rks" "$B064%4&4)4/43444B4G4H4J4N4V:&:):1?{U!XLYc[8[K[Y[e`CarcCecgek]s*su(B")
("rkf" "$B2p3e3i3k3l7GP"[+brcqf;iypbpv(B")
("rka" "$B4*4.46484:4;4E4F4U7g848::0QaT,T0VHY"Y~\m]>^@aQbWeHiTm^nGoHs|(B")
("rkq" "$B2!389C9gL(R:b5fpo^(B")
("rkd" "$B2,3`6/607D9/959>9G9K9P9V9]9_9dFzP6Q,S3U*V>XMY,[:[|aEbee,eZf5i(jvlora(B")
("ro" "$B2B2U2p2r2~3'3)3+3,3.313435383;8DP"P$PCQsXAXhYb\4^taNb5k;(B")
("ror" "$B5RS=(B")
("rod" "$B9#99dkf=f>o3(B")
("ri" "$B2X(B")
("rir" "$BnS(B")
("rj" "$B5n5o5p5q5r5t5w5x<V?x?~P`PbTRZ!Z)Z*]0_Yc@d(gplwn1nSnj(B")
("rjs" "$B4%6R7o7r7z80X4Ykg'iJkim!qZ(B")
("rjf" "$B3i7G7f8pC4KqPu[?[\]ccq(B")
("rja" "$B4;7p7u8!84Q-QxQyQzQ{\}b[g@sX(B")
("rjq" "$B5h619e=&Qg(B")
("rp" "$B7F7GPuX\br(B")
("rur" "$B2>3J3V3W7b7cPqYH\|g-h#k.ojqnr/rps&(B")
("rus" "$B3_3o7x8#8$8(8*8+8/G{KzLzPWVtWz[G`Fa+d*f0l$s$(B")
("ruf" "$B5K7@7h7i7k7mLRQSY1YIYMe~r!(B")
("rua" "$B3y7s8,XDY:]>d/heni(B")
("ruq" "$B3fKKXDnw(B")
("rud" "$B5~6%6*6-6@6C797B7D7I7J7P7T7U7Y7Z7[7_9.999<9E9L:"P7Q?QDQHQmR&R'S+WMX]\{_i`{a9a[b~e%e4e;fVfzh3krmKmtpopts](B")
("rP" "$B2|3#3&3,5(787<7@7K7L7N7O7Q7R7W7\:fFOU|W@X)[G^da8b#c4d"e;eki)kSl0r!s1(B")
("rh" "$B6l8E8G8H8I8K8N8O8S8T8V8Z8[8\8]9F9M9Q9b9i9p;)<J?,C!ONPFQYQjRmZ?ZJZ^[W[][^\I\_]xa`b(bPb\cLd2f*f6fxiVjCk8kFkUlKmcn~pQrurzsi(B")
("rhr" "$B6J9p9r9s9tC+H#S-ZO[g\`mXq~(B")
("rhs" "$B:$:%:+:-:.TgVBW}[~^xhBjnrArJs.(B")
("rhf" "$B3j9|\K]qs3(B")
("rhd" "$B6!6&62636u8x8y9&9)95969WPeW0YJ[}\Jd3iOi^i_lop_(B")
("rhk" "$B1;2I2J2L2[2]2a8S8X8YFiTFTnTrXyfxhTixjglvpy(B")
("rhkr" "$B3G3TZ2Z<[v\Zayb_oWp9(B")
("rhks" "$B4'4142474=4>4C4I4P4Q4S4X4[4\6z?{P%QN]Y^ub9eEeGf%k7oQopsA(B")
("rhkf" "$B3g3hH&I0Qi[XfZ(B")
("rhkd" "$B3H6)688w9-9[9\T]W"Z2[%[&[Z^+bhc~d!e&e-fykToJ(B")
("rho" "$B3]757SS%XyYL[Jjh(B")
("rhl" "$B2q2t2u2x2z2}3!P*PzTUW_XC\G`skK(B")
("rhlr" "$Bg2qE(B")
("rhld" "$B9(9I9O9l^3mDo)(B")
("ry" "$B3I3P3S3z5j6#6+6,65666:6>8r8s9'9*9;9J9Y9Z;->7R{UHYxZJ\r_$`Db)c#c\fKg1i`m]n[q-qaqb(B")
("rn" "$B11192$2%2*3C555V5W5X5_5a5d5e5f5l5q6e6f6g6h6i6j6k6m6n6o6p6q7)8{8}9$949=9B9XC!G#H7KUP}QJR"R?RkSRU=UBUdVOV}V~WaW|XvY+Yl[M[N]?]X]\a.aLbZc`d@gOgQgqhgiUjMjdk2kMkpmsn)n9nlplq'qDq\r-szs}(B")
("rnr" "$B5E5F5G6I9m9qSxT"[xdxkqlr(B")
("rns" "$B7/727374[ub0b1c[f:je(B")
("rnf" "$B6~7!7"KYPcRPVA(B")
("rnd" "$B5\5]5gcVm;(B")
("rnjs" "$B4+4,5s7q7t7w7}7~8"R%R0RKT!X+[{\^bGe<ipq"(B")
("rnjf" "$B7!OOP-RP`Um,om(B")
("rnp" "$B4y5"50B|DYQ\R<[z]$]Eb'dOgLkLlnm,q9q?(B")
("rnl" "$B5"5.5455S@[z]Eb's}(B")
("rnlr" "$BDOVn(B")
("rb" "$B0*1.5,5j6+6e7=7>:"DPTwYdYw\\b#bkcad}eYj_lbm|oaqDr-(B")
("rbs" "$B556Q6]d0nbsKs}(B")
("rbf" "$B5L(B")
("rmr" "$B2D3W6K7`7a7d9nP4QnUqV![yh{n<(B")
("rms" "$B6O6P6R6T6Z6\6`6a:,Xi\]`wbbhAk3ncq<(B")
("rmf" "$B7@k?(B")
("rma" "$B6S6W6X6Y6^6_6b8i:#SaZ"jPsX(B")
("rmq" "$B075Z5^5b5h5i5kV)(B")
("rmd" "$B919NOJOKQ>Wqbb(B")
("rl" "$B0k4k4l4o4p4q4s4t4v4w4z4{4|4}4~5!5$5%5&5'5*5-5/5253585;5=5@5o778J8k8p:j:k:l<(B6H)IIL'P4PXQCQpSOSZT-TtV?W1YVZ\Zz[.[9[L[w\H]c]f]k^?aCc2cEe:f3f4fMk+k1kxl1leq@qVqgr?sJ(B")
("rlr" "$B5J(B")
("rls" "$B6[(B")
("rlf" "$B5H5K5MPKYI(B")
("rla" "$B6b(B")
("Rlr" "$B5J(B")
("sk" "$BF`FaFqQ5U1XoY.Y<Y=[kdy(B")
("skr" "$BBz(B")
("sks" "$BCHFqZ:_kl_(B")
("skf" "$BFhYT^:(B")
("ska" "$BCKFnFoSGU3n((B")
("skq" "$BG<jU(B")
("skd" "$BG9L<[((B")
("so" "$BBQF`FbFwG5G6G=mr(B")
("sid" "$B>nUP(B")
("su" "$B=wY<Y=h'(B")
("sus" "$BG/G2bzmY(B")
("suf" "$BYT^:(B")
("sua" "$BG0WwY@\,(B")
("suq" "$B@]G1Ypm:oR(B")
("sud" "$BG+Sf_?`Xfd(B")
("sP" "$BG)Zc(B")
("sh" "$BEXE[E\G>RsUWVfW8`obug*gBqN(B")
("shd" "$BG;G?G@Q/(B")
("shk" "$B<6(B")
("shl" "$BG:G>X=g*q/(B")
("sy" "$BE.G"U>Yz\vo?o_r)(B")
("sn" "$BfU(B")
("sns" "$BUD(B")
("snf" "$BRefmkD(B")
("sb" "$BI3WY`=nf(B")
("sbr" "$BWYjHjI(B")
("smd" "$BG=(B")
("sl" "$BE%FtG)G*Wb_>_Pg7(B")
("slr" "$BE.F?(B")
("slf" "$BFtWbZc(B")
("sla" "$BDBWl(B")
("ek" "$BB?BgCcTl(B")
("eks" "$B1_C"C0C1C4C6C;C<C=C@CACCCDCECGCICJFNFXP9SET%WAXIXUZR\g^Z`NaUeKh[iijXj{j|nBs((B")
("ekf" "$BC#RtU'WeZ%_}`\m}orpZpg(B")
("eka" "$BC4C8C9C?CLF^S7S8T`XkY?]__,_8abb>g<i!k)k}q5(B")
("ekq" "$B7#EkEzF'Quh)(B")
("ekd" "$BE^EbEdEvE|F2F5Q8Vq[c\+^oaDbUc'j0j;j}oFs^(B")
("eo" "$B10BPBRBSBTBWB^B_BbBcBeBgFXT2UtVhZ,Z-`^gJi7o>p0(B")
("ejr" "$BFAW\(B")
("eh" "$B0p?^D)D7EHEIEKELEOEQERESETEUEYE]EaEgEhEiEmEnEpEqEsExE~F(F+F3F:F;R[T&V:Y[Y\YqZ.[7[m\*]%]9^9^mbQcKe6eBeCe{h8h9k/lum%mmokpkqC(B")
("ehr" "$B<3FBFDFEFFFGFHFI`1`9`We{l&qqsb(B")
("ehs" "$B=cFUFWFXFYFZF[F\Z}_wa&n,q+(B")
("ehf" "$BFMF\Rt[S(B")
("ehd" "$B4R6ME_E`ElEoF!F/F0F1F4F6F7F8F9F<Q*\u_.aVdig^gtr<s)sj(B")
("en" "$B1%3u?`EMENEZEwF&F,FIP5Y5ceflh:iQjEjFl&nFr((B")
("ens" "$BFVF[F\F_g=n,(B")
("emr" "$BF@(B")
("emd" "$BEPEtEuEyF#F%F*F-VS\t^naVc$d[d\eX(B")
("fk" "$B;IMeMfMgSIXqapaziGn6oUozq`(B")
("fkr" "$B3J3ZMlMmMnMoS>\[_``8`dqQ(B")
("fks" "$BMpMqMsMvP,UO]3_Q_s`%k&oVolsB(B")
("fkf" "$BQoSIT?T@dzme(B")
("fka" "$BMrMtMuMwQ0U:Z0]4dWeqe|k"k5nN(B")
("fkq" "$B@"O9YG[VgDgEoM(B")
("fkd" "$BBlBmO-O/O1O2O5O:[-`f`gh>j'lplt(B")
("fo" "$BPTWR(B")
("fod" "$BNd(B")
("fir" "$BN+N,Z6a@(B")
("fid" "$BL:N+N<N>NBNCNHNINJNLPoQ@QZSJdmdnjllpltmQmRr4(B")
("fu" "$B023BEWK{N7N8N9NeNoO$O?Q6R/S:W*[q]-`4`5avbjdze8eFg0gFh-i<iCiZjBoLocqfqk(B")
("fur" "$BNONqNrV'[6]+],]._Ma|c*m`mapNr/(B")
("fus" "$BNgNmNxNyNzN{N}N~O!O"O#SXXxYcZ;\Bf_gHmSo:rY(B")
("fuf" "$BNsNtNuNvQXY`^0(B")
("fua" "$B3yNwN|R=T~ZL_2_R(B")
("fuq" "$BND`Zr'(B")
("fud" "$BNNNaNbNfNgNhNjNkNmNnNpSz]2_:f9fYiYpMryst(B")
("fP" "$BK-NcNiNlc9h-nTp1rg(B")
("fh" "$B02:mH'IyN:O%O&O'O(O)O*O+O4O7R)S$Y}[E_#_3_I_N`$atb:gbgcgdiCmJmboNoOq!qfrisC(B")
("fhr" "$B3Q9w</C+NPO<O=O?[rbqc3m\(B")
("fhs" "$BO@^M(B")
("fhd" "$BBlBmN5N6O.O6O8S/T;Tb[0\Y`|dFiDp/(B")
("fhl" "$B@%MjMkN]O(Q4T^Z']*azb}d]f#fPi2iAkQlO(B")
("fy" "$BN;N=N@NANENFNKUlW!Y|["_yegfXhznRoAs>(B")
("fyd" "$BN5N6iD(B")
("fn" "$B<HN^N_O,O0O3Q$\l`4`5aqdMe_e`j3jzo;o{qp(B")
("fnl" "$BN^^%(B")
("fb" "$BI5LxN-N.N/N0N1N2N\N]N_N`R-ShT^W!ZX\X^%_H`eaneYe`g{nvo9pEq:(B")
("fbr" "$BN&O;R-Y$hz(B")
("fbs" "$BNQNXO@PUVFVG\2^MeE(B")
("fbf" "$B7*N'N(N*XKdE(B")
("fbd" "$BN4VWcc(B")
("fmr" "$BO>P>pU(B")
("fma" "$BQ[W)XnhR(B")
("fmd" "$B0=I)KSN?NGNMVE\AhQi3(B")
("fl" "$B3=8qA8C,DsKiMxMyMzM{M|M}M~N!N"N#N$N%NRNoP]P^X&Xm_"`4`5crdaf@h.h=imjBkJl>nZqkr5rEsW(B")
("fls" "$BNUNYNZN[RgX'iBm8m9nC(B")
("fla" "$BNSNTNVNWaepC(B")
("flq" "$B3^N)N3g~(B")
("ak" "$BGMGOK`KaKbKcSWU@Vw`uadb{j1j2(B")
("akr" "$BGyG|KFKkKlLNUki8(B")
("aks" "$B17HTHUHZJZK|K}K~L!L"OQRDRXV]VoW>W?Xp^`_TbVe\h_jGktm*mNo8q=r#(B")
("akf" "$BKuKvKwbFcBg}k$p\pi(B")
("akd" "$BK4K:K;K>LQLVX1f&f(gjh+hOj<j=nzr3(B")
("ao" "$BGMG^G_G`GaGcGdJrK?KdKeKfKgKhL%Ug`pgugvlNn2pJ(B")
("aor" "$BG|G~I4L.`Sfwl=lBoyq^sN(B")
("aod" "$B0:K(LALTLUQ3]ba0hNsf(B")
("aur" "$BQLQQVm]qf2k,(B")
("aus" "$BJYL2LHLILJLKLLLMP[QKU_^^b@bTeDsQ(B")
("auf" "$BJNLG(B")
("aud" "$B;.L=L>L?L@LCLDZy\U^rbTh,j&nIsf(B")
("aP" "$BjV(B")
("ah" "$B18243}G|InJgJhJiJkJlK9K?KAKEKFKHKlL0L6L7LNLOLSLWU(ZV`S`pa(b&bHcjdwfNfnhOkuqxr|(B")
("ahr" "$BI$KRKTLZL\Q^[7]teYg|s/(B")
("ahf" "$BKWL^]G]s(B")
("ahd" "$BL4LXQOTm[$[/](_Bb^ga(B")
("ay" "$B1,@&G-I@IAICIDIEJhL/ZbZe^]b?eMg{i8(B")
("an" "$B@&I5IoIpIqIsJjJlK4K?KEKGL3L5L6L7L8L9LPU(V`W'XcXlYEZ[\>bHeYhOj]kX(B")
("anr" "$BKAKOK|L[`Tfn(B")
("ans" "$B2cJ-J8J9JZLHLdLfLgLhPnQfX$XpY_e$(B")
("anf" "$BJ*L^(B")
("al" "$B3aFfHxHyH}H~JFL#L$LBLoU;VKW9W=_>_Pdve[i/m?sHsSs`(B")
("als" "$BIRL1LeV1X>XbZa^#eNf+o\sf(B")
("alf" "$BL)L*\ikm(B")
("qkr" "$B9}GmGnGoGqGsGtGuGvGwGzG}JmKPKQP8YsYv\w^p`a`yg.p;qPr0rX(B")
("qks" "$BH<H>H?H@HBHCHIHJHKHLHRHSHWHXJ1JVJ[YBZ5\Q_/amcme+fvj6k'm*(B")
("qkf" "$BH-H.H/H0H1H4KVUVX#Y6Y{^_b"b$cAlmq{r1(B")
("qkd" "$BJoJ|J}K'K,K.K5K7K8K<K@KBKCKIR9RMUxVsWEWGZU[D\V^qb|cmg/gVhpiSkno%qwr7(B")
("qo" "$BGPGRGSGUGVGXGZG[G\G]GeGfGrKLT/WQX`YA^\_d`jfujj(B")
("qor" "$B3|GFGlGoGpGrGuI4PQVg[1`aa)cndjr0(B")
("qjs" "$BH(H?HKHMHQHVHYK]ZYZZ\h_/_xc)effLg8j[o@s=(B")
("qjf" "$BH2H3H5H6f/(B")
("qja" "$BHAHEHFHHHOK^[p^"c{gw(B")
("qjq" "$BK!`k(B")
("qur" "$BI{I}JHJIJJJKQ|Z&]!`za2i0j~m2mdospH(B")
("qus" "$BHPJQJTJUJXJ[MhQ~RFY(Y7ZN]repg&jokfmgn4n5qX(B")
("quf" "$BHcJDJLJMP(Z~sh(B")
("qud" "$BIBIMISJ:J;J<JAJBL_V"Vu[D\V_[c=cme3m~q6qX(B")
("qh" "$BD=F>IVIaIcIhJ]JbJcJdJeJnJsJuTHUoUph^jppfse(B")
("qhr" "$BIzI{I|I}I~J!J"J#J$KMKNKPR6Z=Z>\w]M_Ad9h*hyiui}j`m.mUmVqFrX(B")
("qhs" "$BK\TqlL(B")
("qhd" "$B0)HFIuJpJtJvJwJ{K%K)K*K/K1K@^"_bcsdK(B")
("qn" "$B3x4L<C@lG]H]ITIUIVIWIXIYIZI\I^I_I`IbIcIdIeIfIgIiIjIkIlImIoItIzI{I|J#J$JmJsK6P=PZPmP|RuS_T4UUU[Y8YC[T[U[o\T]M^pf)g%gYgxijk>lRlgmUn>n]rjrksOsPse(B")
("qnr" "$BKL(B")
("qns" "$BBNHRH[J,J.J/J0J1J2J3J4J5J6J7K[K_RfW][C]d]p_9`6a'a=cic|gnlL(B")
("qnf" "$BITJ&J'J(J)PGWJWgYD[,`Ac1q|sd(B")
("qnd" "$BC*J+JxJ~K2TDW:boe^(B")
("qmr" "$BR6(B")
("ql" "$B7%H[H\H]H^H_HaHbHcHeHfHgHjHkHlHnHpHqHsHtHwHzH{H|I!J(JOP#PlR8SgU&U9U{X`[,\R`Aa]acbNbgc0c>dDdcdue#f1fGg#g$g>hKhoitjkl"l@lAlLl]nAp)pBp[pfqorL(B")
("qls" "$BIFIKILINIOIPIQLFUMZ/]']R_@eoi@p~r&(B")
("qld" "$BI9QRQVQ_U2Xaf[qHqU(B")
("tk" "$B278%:3:6:;:=:>:?:@:p;E;G;H;J;K;L;M;N;U;W;[;`;b;d;e;l;r;t;v;w;{<%<-<K<L<M<N<O<P<R<S<U<X<Y?)?ZFcGAL&L,LcP/PXQPRSSNTzU0UmWP[O[h\L]y^/^V_C_S`:`[aBc+c,codAdBdCe/fSfhgRh5iImfnanmqJqKrBr^sM(B")
("tkr" "$B:o:s:w?tSVZK\N`#oK(B")
("tks" "$B;1;3;5;6;9;:;;;@IGQh[<]haMedlioYo[(B")
("tkf" "$B;&;';5hq(B")
("tka" "$B;0;2?9?yRTWD^zdsexf.glhujN(B")
("tkq" "$B07=BA^Yg]=_'_(p@q%(B")
("tkd" "$B7,8~=}=~>&>(>0>2>E>M>X>\>]>^>e>o>uAPASAVA[AjAzA|BlBmErF=FKH"MMRVUCURVyV{XS\k]O`.a3fFjak<ksrh(B")
("to" "$B:I<%^/_Sg(lPp{rT(B")
("tor" "$B:I:p:w?'T'XG\ecQi,(B")
("tod" "$B1y>J@7@8`Ocy(B")
("tid" "$Bq.(B")
("tj" "$B5P:T=k=l=n=o=p=q=r=s=v=x=y=z={?p@3@4@>@@@BAMD)L;P0ScTPTfVYY3ZFZGd.e1fTf]fqsUsk(B")
("tjr" "$B3c<.<M<a<b@J@K@N@O@P@YM<^Hb,hnirj.jinYnq(B")
("tjs" "$B4T@f@g@h@k@p@q@v@z@{@~A"A#A%A*A-A/A1A5A6A7C1OKQ"SEUIUvX:^/`!a}c8e@fAgUiElqpG(B")
("tjf" "$B1L6}7@@^@_@b@c@eC-FQSwYM\8]u^Xe(e2eJi-jxsv(B")
("tja" "$BA!A.UQZ{]@]S]Tcxeyezj9k~lXnu(B")
("tjq" "$B=&>D@"@]RYSqXRXwYpfcm:oRq#(B")
("tjd" "$B>J>k@+@-@.@1@9@;@<@?@CX9Zp`Od-fag)(B")
("tp" "$B:P:Y:{@$@*@G@b@vLcWB^/ih(B")
("th" "$B037+:i<D=j>$>%>,>.>/><>?>B>C>F>K>P>R>S>dA:AAABAGAIAJALA]A_AcAgA{B}I%R#SbU?XG[`\f][]{^j_O_va4d,dTg[hvi+i?l!lsmvn:n[nyp<ppq[rCrM(B")
("thr" "$B0@B+B.B/B0B3V$etkll^(B")
("ths" "$B;AB9B;B=C'(B")
("thf" "$BN(j+(B")
("thd" "$B>>>YAWAwW~[@^DcpgNiOkVo1psr"(B")
("thkf" "$B:~(B")
("tho" "$B:?:U:~;&;/^/_S`tbl(B")
("thl" "$B?h?jTj(B")
("tn" "$B<i<j<l<m<s<u<w<x<y<z<{<|<}=$=%=(=+=/=2=7=C=I?\?b?c?e?g?k?o?p?q?tA\AiB5C(C/D\JfLyM"N(RWS4SUSVT1ThU?V-X{YSZ@ZK]U]z^,^l^{_|`Yc.cOdXdoe5e7elf7f{g!g;h%h5hki.j-l(l3n.nHnsnxo5p$p+qrr$(B")
("tnr" "$B=G=H=I=J=L=M=N=OPhUY`GfihChr(B")
("tns" "$B=V=X=Y=[=\=]=^=_=b=c=d=f=gFkWNWv^-d#d$f|h&hsh|kNkYo>s((B")
("tnf" "$B=Q=RN(WuX|[2(B")
("tnd" "$B?r?shE(B")
("tnl" "$BPfPg^C(B")
("tmf" "$BI(`niMi|(B")
("tmq" "$B<>=&=,=1_<jyp.(B")
("tmd" "$B>!>#>5>:>g>h>jANFlGhP+QtR4[Fejj$o~(B")
("tl" "$B0;3A:|;&;H;O;S;T;\;k;m;n;x;{;~<(<,<E<F@'DsLpRQSASOS]UyU}W#W6WtYy`JfBg(gShahikkl5l9p{(B")
("tlr" "$B6t<0<1>}>~?!?"?#?)?*B)Uf_omHq3(B")
("tls" "$B:g?-?.?1?5?7?=?@?B?C?E?H?I?U?V?WC$GjH8RqS"UbXFY;Zo_~iglYpur`(B")
("tlf" "$B<:<<<=<BUi\Cj)(B")
("tla" "$B;2?3?4?<?D?R?SRTWZ\;]n_)_Dh~o=(B")
("tlq" "$B=&=:===BDTRARB_'_(a#cgdb(B")
("Tkd" "$BAPRV(B")
("Tl" "$B;a(B")
("dk" "$B0!0"0$2d2e2f2g2j2k2m2n368f;yP3Q;S(U.U4V6[s`Ha^h0jKk(kCn{o<rms!s"(B")
("dkr" "$B0!0-0.0/3Y3Z3\DWOLP3RxTAVVVjX(X3\[hUhVh`k`n?s-sys{(B")
("dks" "$B0B0D0F0H4_4c4f4g4i8APtZg]Vpzr=rnro(B")
("dkf" "$B060D1ZX~Y!]"]1]Fk@mBn!odpK(B")
("dka" "$B0C0E0G1^264`4b4dVIV^h?k^pws_sa(B")
("dkq" "$B0(052!3{R}TZ`@(B")
("dkd" "$B1{6D97Wi]J]vc?pYrs(B")
("do" "$B0%0&0'3336373eS1SNS`T<V=[#]7b-bJbYbvc(ghi=oup'pKpOq>(B")
("dor" "$B1U3[LkLqY/YUf~mCoup'(B")
("dod" "$BSm]/f"rts@(B")
("di" "$B<M<P<Y<c<fG8LiLjLkLlLmLnYh\?s,(B")
("dir" "$B0s<c<eLsLtLvU>Ynd`h`hji;oPs4s~(B")
("did" "$B>\>m>n>w>y>zMHMLMMMNMSM[M\PSTaUPWyZ7ZfZx\k_!_G_laZagaxc:cUjwl*nVqh(B")
("dj" "$B1w5y5z5{8f8lS0S}S~^Kq,qGrNsw(B")
("djr" "$B2/21225?M^\z(B")
("djs" "$B1a8@8AGgI'PpUA_adN(B")
("djf" "$B]"]1(B")
("dja" "$B1b1f264`4d8387Q7RLSnV^Vx^;f,ofqd(B")
("djq" "$B6H(B")
("dp" "$BWk]P(B")
("du" "$BFrG!M=M>M?M@MAMBP.]C^.aBe1gMgPh'i1ikl%q1(B")
("dur" "$B0W0h1V1X5U<MKrLrLuXdehinl#o`ogp?qcrH(B")
("dus" "$B0v1c1d1h1i1l1m1o1t8&8'<!A3FPFpG3J%RdSkU+U/WzYPYa\=])^'^2^7^=_]d'gCh/icj@l'(B")
("duf" "$B0v1Y1\@bG.ReSYsv(B")
("dua" "$B1^1j1k1p1v@wL-QG\ygfgroeqyr6rPsEsa(B")
("duq" "$B1^MUSq[!pT(B")
("dud" "$B1D1E1F1G1I1J1K1M1N1O1P1Q1S7J7^RiS[TJU$U%Zu\3\F^s_J`r`}`~ewj>lWn;pD(B")
("dP" "$B0e1C1H1L1T4"7X7];y<IM@MBP)P.PdQ;Q<St[*]u`IbKbOcRfJghi"i#i:iRjcl%l?p?rIsL(B")
("dh" "$B0-1(1*1w1x1|2(8^8`8a8b8c8d8g8h8mP~S*SKSSTITTT|U<UhWXX(XeZDZm_4_r_z`3`iiej(n+o2rbsg(B")
("dhr" "$B0$206L9vM`(B")
("dhs" "$B292:X2aicSi%i>jrr[r\(B")
("dhf" "$BQ:\Eg,(B")
("dhd" "$B2'MJTYW+a%a1a~c<hcp6s0(B")
("dhk" "$B0#122i3?4$7&RwSyc]hbiwkBkw(B")
("dhks" "$B08404K4P4X4a4e4hOPOROSU6^1_5iol2op(B")
("dhkf" "$B[)(B")
("dhkd" "$B1}2"2&9DUwWH[>]j(B")
("dho" "$B0#3?OARwbdiw(B")
("dhl" "$B0Z307(VLV[`Pbvi'r>(B")
("dy" "$B1z3Z6F9x>qD8F+LsMEMIMKMRMTMWMXMZQ'TpU-UKULVRVvWTWUY9YjYz\[\v]H_$`"`vcXc_eeh}j4kon-n3qAs8t!t#t$(B")
("dyr" "$B?+C+M]M_MaV;^ieUhljs(B")
("dyd" "$B23B{M&M/M0MCMFMGMOMPMQMVMYP\XJXY\Wa5f`gNill}o0ps(B")
("dn" "$B0r1&1'1)1*1+2$2%5m6h6r6s6v6w6x6y?uKtL`M$M%M'M+M4M9P2P}R^R_VJ\d]?]XaOb3c;c<d~foi9kpsIsz(B")
("dnr" "$B000jR(TT_4_z(B")
("dns" "$B0w1$1>1?1@Zt]N_pe"fQp(pq(B")
("dnf" "$B080S1516]5_q(B")
("dnd" "$B7'M:(B")
("dnjs" "$B080w1!1`1e1g1n1q1r1s1u3@4j85868;I2QMT$T(U6UcXE^S`)gkiojOkdmWn|ovp((B")
("dnjf" "$B1[7nXz[)denh(B")
("dnl" "$B010L0N0O0Q0R0S0V0Y0^0_0`0b0c161R4m56OAQ&S@SxT#Vk^O`*a_eOh<ivjLm{pjr2(B")
("db" "$B0T0]0d:y<t=@D\FSFjFyF}G(KnL{L|L}L~M!M"M#M(M)M*M-M.M1M2M3M5M6M7MDPRQASHS|U^ViXoYfYiZA\@^a^b`qahdre7g+gLhPi$iXj!j"j@k!k0kglzl|n'nXo+pds[sl(B")
("dbr" "$B0i4!FyS|]Zdx(B")
("dbs" "$B0t0}1<=aUzlVnJ(B")
("dbf" "$Bffrr(B")
("dbd" "$B=?M;e0(B")
("dms" "$B1#286dRaT-T7X@X[]V`;p,su(B")
("dmf" "$B255?(B")
("dma" "$B0{0|0~1"2;5?6cR_U5V@];pF(B")
("dmq" "$B5cM,M8X%(B")
("dmd" "$B1~5?6EBkGhXfg?j$m@mA(B")
("dml" "$B0M0U0X0a365#57595<5?5A5B5C5DODPaV=VTVXXt]:_q`Hbcc&ePg_nPq>(B")
("dl" "$B0;0J0K0P0W0[0\1B;\<$<)<*<X?)BBBfCPFRFsFvP1U)UuVaW3W4W^^&`ba-aXfggokHlFlHlIm_mnp0(B")
("dlr" "$B1WMbMcVXW5[;fDkjs2(B")
("dls" "$B0u0v0x0y0z1l?M?N?O?YFRG&G'LbP@PAQ9QcTEUTW.]e^P_]h!h;iNpW(B")
("dlf" "$B0l0m0n0oF|P!PETejRn_o-(B")
("dla" "$B1A?QDBG$G%L-U,WljSjT(B")
("dlq" "$B9~F{F~R]T)rl(B")
("dld" "$B>jP;QtUT(B")
("wk" "$B040q:4:8:::^:n;F;I;P;Q;R;Z;g;p;q;s;z;|<"<'<+<Q<T@F@QDSI&PwQ}RoR~UZWs^h_Ua*aSbDbEdggsh$hti4i5k9lGlZl`r8s:sn(B")
("wkr" "$B:n:r<[<]<^<_<`?]?}SpU"UeZQ[P_Zd+e?ginLs'(B")
("wks" "$B;7;DV#X}\"]L_%b7(B")
("wka" "$B;=;C@xC9V*_*_+d>dQjDlQo4(B")
("wkq" "$B;(AYA^C}SrYgd4p7p8(B")
("wkd" "$B>">)>->1>8>@>O>Q>U>_>c>f>l>s>uATAqArAuB!B"D"D%D2D9F5P?TGTVTcTyT}U#UrVQW2\u\~^J^y`-`/`R`xaog6gGgIg`h7hIi,i6jfl[l\o6rc(B")
("wo" "$B:F:H:K:M:R:X:[:\:_:`:b<F@FB8^hc7eRexl9lZsn(B")
("wod" "$BA9AdAhAyVDVl`'bUd7d8kZo#(B")
("wj" "$B093n5O<Q=m=s=t={=|A;A@CtCuCvCwCxCyDcDlDqE!EKGgH$LYPJRrW7Y3[A[R\:]|_L`2aTbicle*f8fTgsiWk:kIl7m0p3sr(B")
("wjr" "$B2.<Z<d@Q@R@S@V@W@XB1C`CdD$D_E&E(E)E*E+E,E-LvR*W/_U`?a{c!d{gii4k6mlmqmx(B")
("wjs" "$B<2=W@o@r@s@y@}A'A,A0A4B7C.DQE5E6E8E;E>E?EAEBECEDEEG{H*KjMdQ#QrR4RdSsT{UsV\W%X"X}Y%ZBZS]a^!_E`0a/aYaub!c"d%d5d?euf?fHg"lcm7mYm[nonto"oCp4pSp|q4qBs6s7t"(B")
("wjf" "$B=`@Z@[@^@`@a@dCbLERERGRzY#ZqZr^6cffOlkmE(B")
("wja" "$B0>@jA2E9E@FQG4V3dRpAsVsZ(B")
("wjq" "$B@\D3XR\&\7\D]~^XfcrW(B")
("wjd" "$B0f;*>=>Z>`>p>t>{@,@/@0@5@:@EBGCzD.D:DbDdDeDgDhDjDmDnDrDuDvDwDxDzD{E"E#E$FTKoLwMdP'RZVlY]ZW[l^F^[a6aKbMcWf^hGj:mwn&nDnKoFp=pP(B")
("wp" "$B1-:O:Q:W:]:^=t=|@)@=@F@^BhBiBjDiDkDoDpDsDtD}P_Q1Q}Z+Zq_;bDbEbIgAi5lZm3pIpmpnsn(B")
("wh" "$B3v7+:x;4<D=u><>H>[>rA;A<ADAEAFAHAKA`AaAbAeAfAgAlAtAxB$BdC{C|D$D&D+D,D/D4D7D8D;DUD^D_D`FXGBH%POPYS^SdWIXNXTXjY2Y4Zj[j[t\'\*_6`,bic/cGcZc^cud|e6f-fTfrg]iskGkPl!ldm/oXp:qt(B")
("whr" "$BB-B2dHhwo7(B")
("whs" "$BB:YO(B")
("whf" "$B@[B4OHR@`L(B")
("whd" "$B<o<p=!=*=>=D>a>bAnI"P:WOXQ\#\$\b^JdpeTj*l{m'm)oG(B")
("whk" "$B:4:8:A:B:C(B")
("whl" "$B:a(B")
("wy" "$Bn[(B")
("wn" "$B3t:n<g<k<n<r<v<~=#='=.=5=;=K?_AUAvB-B2ChCkClCmCpCqCrCsD4D]I*L+P&PMPvQ2QISUW$ZlaFaGcGdVdZe!eBfthwiakOlam4mTn$oIsG(B")
("wnr" "$B4!C]dx(B")
("wns" "$B1==S=T=W=Y=`=c=eFVH;KpQ.RETSWvX"X6^4_=b/jAm-mu(B")
("wnd" "$B=0=ECfCg(B")
("wmr" "$BB(B1(B")
("wmf" "$B6{(B")
("wma" "$BWc(B")
("wmq" "$B=4=AIxM,\7eI(B")
("wmd" "$B3(9y>I>Z>xA9A=A>A}A~B#D'YN\t__kz(B")
("wl" "$B4t5@;V;X;Y;];^;_;c;f;h;i;j;o;}<1<A<G?%B~CNCOCRCSCXCYDRDlDqEVG7S!T.TMVcW7Yu[L]ma\c-fMfsgSk:lDlSlflym5mIn/owr?s9(B")
("wlr" "$B?%?&D>SDcFcM(B")
("wls" "$B?0?6?8?:?>???A?G?J?L?P?T?XC$DADCDDDEE6FxKyPVSQZi]I_~`_a+a;b8bCbSeVgKhmjWlcmGo/(B")
("wlf" "$B<8<;<@<ACaCbE3IHLEPERzSDT9Ve[_fOg4g5lDlkmE(B")
("wla" "$BD?ZPnErq(B")
("wlq" "$B<9=4=8=AeI(B")
("wld" "$B@!D'D(_-(B")
("ck" "$B3n:!:5:7:9:<<V<W<ZOMPNSMV+VMY-Ym[3\Lbxd4gsm"n`(B")
("ckr" "$B:q:u:x@NB*ByCeCxY'eSm0oXsqsx(B")
("cks" "$B;8;<;>;?;A@qRUZ9`&cbdlesl-lUo4oSoTqB(B")
("ckf" "$B;!;";$;%QkY)`\e'(B")
("cka" "$B;2;4;BA2Q(Q)RTTOVPVZXNXOXPXrXs\ackk{k|l)l+q](B")
("ckd" "$B>'>+>3>4>;>T?zAOARAdAkAsD*D1H+PiQlRRX0XHYoZHZd^E^k^}`KalcYgZm#r.(B")
("co" "$B:9:D:L:N:S:V:W:Z<F@UMi\Me=hql8n`pV(B")
("cor" "$B:p:t:u:v:}@UA<QFSTY>[Pbyd)dG(B")
("cj" "$B:J=h@(A@Q]X.^Ge1hF(B")
("cjr" "$B;I<\@I@L@M@TD=QqRhWFZ3^~akinljm$m(m6p"s5(B")
("cjs" "$B0+6N6z6|;=@i@n@q@t@u@|A$A&A(A)A+C)E7PBPjQdSCV_Z#[a\9^I^Y_Ea$chh(lMlxoqotph(B")
("cjf" "$BDVE/E0E1E2E4FLFmS5V%YZmPnno$oDoEq8(B")
("cja" "$B84@mE:E<Q!W[Ww\a\y]~b]dSdUd^d_j9k-k[k~(B")
("cjq" "$B>*>9>vC}D!D-D5E=aHaIaJbLjymLmM(B")
("cjd" "$B;*;,@2@6@A@DD#D0W,W-fehGiq(B")
("cp" "$B@ZBNBXBZBaDVDfDyD|D~FeFmSFSiSjYZ\<^8^|bIbfh\hxjim<m=n*pLqsqv(B")
("ch" "$B7-=i>%>6>7>A>G>K>L>S>V>d?]A?ACApD6D8ICQvR#R+V%V9X!X7X^[B\%^W_VcDggkWl:mknLndqzs<ss(B")
("chr" "$B<q>|?$?(?tB%B0SvV$ZKb`badHifk=m1o7qq(B")
("chs" "$B1%@#B<WVn7(B")
("chd" "$B=>=FAQAZAmAoC~DMF4G,N5N6P:PxR2WOWdX;eAeTfb(B")
("chl" "$B:E:GVCYt\c^/(B")
("cn" "$B0,1/3b<h<q="=%=)=-=6=9=P?[?d?m?n?u?v?wAFC\CjDFDGDHDIDJGkOISBU7U9VdX/YXYY\6\d^Wa,b2cTd6dHeWf\gmhZn@p%p2pcqWqerUsF(B")
("cnr" "$B1/<3<4=3=K=LC[C\C^C_C`M.\egXm&(B")
("cns" "$B=UDXrV(B")
("cnf" "$B=P[2sY(B")
("cnd" "$B2-=<=F>WCiCnCoMCQU`>g^j5(B")
("cnp" "$BX,X-X8aahDlT(B")
("cnl" "$B<h<q="=-?a?f?i?l@HOIS\U8X8Ye\r]^aafCf\g9hDk9nMqe(B")
("cmr" "$BB&B'B,D=P<X<Z`(B")
("cms" "$Bsp(B")
("cma" "$Boo(B")
("cmd" "$BA=A>AX(B")
("cl" "$B:7:9;u<#<&>}?"?%CMCQCTCUCVCWCZD'D>FePLRHRNSPTiV5VbVpVz[i_ua7a?awbtcPcze#e>eLfWiPjul8lemOo!p5r5rKrvrwscso(B")
("clr" "$BB'B,D<R,RNVzX<ZE(B")
("cls" "$B?Fk%sp(B")
("clf" "$B<7<?(B")
("cla" "$B5N?/?2?;?KC9D@KmUjWZZP\;o*o,ooqT(B")
("clq" "$Bj/(B")
("cld" "$B>NGicJjYqU(B")
("cho" "$B2wTo`V(B")
("xk" "$B<XB>BBBCBDBEBFBGBHBIBJBKBLBMCSOMPIS#TXU`YYYe[4\s]}g!m>qLrx(B")
("xkr" "$BBnBoBqBsBtBuBvBwBxByE'EYPkS6Y>[Q_7ner0(B")
("xks" "$BBMC2C3C7C:C>CBCFF]FgW<X_Z:]QjX(B")
("xkf" "$BC%C&(B")
("xka" "$BC5C?b>lE(B")
("xkq" "$BEcEkYr\PpaperW(B")
("xkd" "$BEfErE|F"Vfb;j#(B")
("xo" "$B@GB@BABUBVBYB[B]BaBfBgG=KXLaQ<\(cze)ihkHq&qM(B")
("xor" "$BBpBrBtZ$_7(B")
("xh" "$BEFEGEQEZEeF$Q=h9(B")
("xhs" "$Bjt(B")
("xhd" "$B23DKDLE{E}HuWxXV(B")
("xhl" "$B?dBOB\B`DHDIDJFXjtpx(B")
("xn" "$BEJEjF)F.L{Pye5o+qmr,(B")
("xmr" "$BB_FCXW(B")
("vk" "$B?|GCGDGEGGGHGIGJGKGLGNHmHvT3WfZ4[1`(``bncvfRg8hJh]jZllox(B")
("vks" "$B:d:eH=HDHGHNR!]ra"ng(B")
("vkf" "$B;+H,R\[5n\(B")
("vo" "$B143-GIGTGWGXG\GbH4HmI#PPUVX#Y6ZT[1]o`cp>(B")
("vod" "$BC*K#K5KDW:WEZU_0b|e^(B")
("vir" "$BX?(B")
("vus" "$BJ?JPJRJSJTJWJXJ\Y(fIgyi~jokfqY(B")
("vua" "$BlJ(B")
("vud" "$BDZI>IMJ?Wh^$bogyhLr9(B")
("vP" "$B3AGQGYJ>J@JCJDJEKJUJVrW&ZIZMasi0qo(B")
("vh" "$B1:3s3wGxGzI[I]IrJ^J_J`JaJqJyJzK"K$K&K+K0K=R1R5R7RvS.T5YF[T_F_\aWb.f}gTgzj\jqmynppRq0q}r:rDsR(B")
("vhr" "$BGxGzI}K=_F(B")
("vy" "$B<]I6I7I8I:I;I<I=I?QwUEXX]Ke]q(q)q*q_qjqurd(B")
("vns" "$BJ,(B")
("vna" "$BIJcHcI(B")
("vnd" "$BIvIwK-afkel4q$qH(B")
("vb" "$BI7(B")
("vl" "$BH`HdHhHiHmHoHrllmdox(B")
("vlf" "$B2^HfHgI$I%I+I,I-I.J'J)PGYDdJkvm+s+(B")
("vlq" "$BI/I}K3^"(B")
("gk" "$B2<2?2F2O2Y2\2b2l3E<6ROR`V|^Q`leKf!kEl.n"o(rQ(B")
("gkr" "$B2)3X5TDaT[U\U]^A`Bajkbl;s?(B")
("gks" "$B4(4@4A4M4W4Z8B:(UFUGW{Y*YRZ][e_K`Cb*f'n8qSqlsm(B")
("gkf" "$B323d3e3mR$bRiys\(B")
("gka" "$B4O4Y4^H!MtQbRyS2S?VH]#^>eHh1n8nro|pwq2rRsD(B")
("gkq" "$B389^9gH:RnR}^eb4b5b6hdonr{(B")
("gkd" "$B7e9+91939:9A9R9T9_9`FzP6PDRbWqe}fjobprr*(B")
("go" "$B0g2r3#3$3*3/31323:3<:zPsT6TnTxUXW(Xh\4i&j7k;k_n0nOqO(B")
("gor" "$B3/3Kbkk*mJ(B")
("god" "$B0I8v9,9Te.jbr}(B")
("gid" "$B5}6?6A6B8~9aSlq.(B")
("gj" "$B135u5vTR[[]A^w(B")
("gjs" "$B7{8%8.YW`[(B")
("gjf" "$B]<iyj8(B")
("gja" "$B8183VUp*qd(B")
("gur" "$B3E3R3W7CTu^)r+(B")
("gus" "$B0<7|8)8+8-82898<8=8>8?9`JGPWRl^-aRbAeQidjJnkp}(B")
("guf" "$B7j7l>iJGLRUSk#pv(B")
("gua" "$B7y(B")
("guq" "$B0A3p6"6(6.64696<KKOFTsV7XDYQ^5`Ed)d:h2nwo}p!(B")
("gud" "$B3>5|7:7;7?7A7U7V7e9UTk_W_X`rfzj%mj(B")
("gP" "$B7E7RQBR>TxWBX*b=c4l~nQp^(B")
("gh" "$B3O8C8F8L8M8P8Q8R8U8W8[8_8c8j8n8o9%9@9f9h9j9k:c;)<JD[QTTdW`Y&Z_Zn\5]]]l^v^w`7`ha!b(b+hYhfiHiKizn=o.q7(B")
("ghr" "$B0?9s9tOGUeZO(B")
("ghs" "$B:':*:+:.:2[~\!^U^g_c`m(B")
("ghf" "$B3K9z9{]Gcts3(B")
("ghq" "$B3f(B")
("ghd" "$B909?9H9cR|]g]wkAobr*(B")
("ghk" "$B2=2P2R2S2V2Z2_2h3q3r7$CtOBOCS;V<aAdqo&(B")
("ghkr" "$B3H3M3N3OZ2Z<ayb_j?p9(B")
("ghks" "$B4-45494<4?4D4T4]88OKT(TvUaUnXu]D^R^S_eb*bAbbl,l6oBqir%r](B")
("ghkf" "$B1[3h3j;#`Qbwi]l/ohoi(B")
("ghkd" "$B2+677;92989D9SKZQWQ`WSWrX5Zh^T^f_jd;dPfki{n#p&rS(B")
("gho" "$B2h7S`VaA(B")
("ghl" "$B2q2s2u2v2y2z2{3"3%=ZI0OEPrQER;TUWKXg[X\G^Neig:h"i'i\kKkRmorf(B")
("ghlr" "$B2h3D3MaA(B")
("ghld" "$B2#909U9li*mDo)sT(B")
("gy" "$B6G8s8z9;9Z:hP{S,SeSoZCZ|[f^B_^`+qaqb(B")
("gn" "$B0r5`8e8t8u8|9!9"PHRcSLSR^A_h`Md<kMmp(B")
("gns" "$B7.7071FkR._m_nhXnU(B")
("gnd" "$Bi*(B")
("gnjs" "$B3~7vCHX:Zwh@kcl,(B")
("gnp" "$BCnRCS<TL_{(B")
("gnl" "$B4x5+51WCY&Zv]`ka(B")
("gb" "$B5Y7H7MC\Z8_^iLl<(B")
("gbr" "$BC\(B")
("gbf" "$BWukys;(B")
("gbd" "$B6$6'6;R3Wo^((B")
("gmr" "$B9un^(B")
("gms" "$B6U:/WLWWYWnW(B")
("gmf" "$B5%5IKxV(k?(B")
("gma" "$B6V7g(B")
("gmq" "$B5[]@^*b%fE(B")
("gmd" "$B6=Fz(B")
("gml" "$B4n4r4u5)5:5>I1Q%RzS)S`XAXZY&Zk[']8_f_g_t`!`:c6f<nZrF(B")
("glf" "$B5Merk#pvs\(B")
("unknown" "$B4#<5DNFJFdFuJ=KsL]QeRIRpS&S9SuS{T*T+T8T:T>TBTCTKTNTQTWT\T_UNU~V&V,V-V.V/V0V2V4V8VNW;WjWnWpY0YKY^Z1Zs[=[b[n\)\-\.\/\0\1\O\S\j\n\o\p\q\x]&]6]B]i^<^L^c_&_1`<a:a<a>b<bBbXbmbpbsc%c5cNcdc}d&d1d=dIdLdYdddfdhdte9eaebemenevf$g3g\h4h6hHhMhWhhiFi[ibj,jQj^jmk\lCmZmhmimzn%n}o'oZo]p#p-pXp]p`q;qIqRr;r@rGrOrZr_rer~s#s%(B"))

516
leim/quail/hanja.el Normal file
View file

@ -0,0 +1,516 @@
;;; quail/hanja-ksc.el --- Quail-package for Korean Hanja (KSC5601)
;; Copyright (C) 1997 Electrotechnical Laboratory, JAPAN.
;; Licensed to the Free Software Foundation.
;; Keywords: multilingual, input method, Korean, Hanja
;; This file is part of GNU Emacs.
;; GNU Emacs is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation; either version 2, or (at your option)
;; any later version.
;; GNU Emacs 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 General Public License for more details.
;; You should have received a copy of the GNU General Public License
;; along with GNU Emacs; see the file COPYING. If not, write to the
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
;; Boston, MA 02111-1307, USA.
;;; Code:
(require 'quail)
(defun quail-hanja-switch-to-symbol-ksc (&rest ignore)
"Swith to `korean-symbol' package."
(quail-delete-region)
(select-input-method "korean-symbol")
(throw 'quail-tag nil))
(quail-define-package
"korean-hanja" "Korean" "$(C9zyS(B" t
"2$(C9z=D(BKSC$(CySm.(B: $(Cz1SWGO4B(B $(CySm.@G(B $(Cj$@;(B $(CGQ1[(B2$(C9zcR@87N(B $(C{<usGO?)(B $(C`TwI(B"
nil nil nil nil nil nil t)
(quail-define-rules
("\\" quail-hanja-switch-to-symbol-ksc)
("rk" "$(CJ!J"J#J$J%J&J'J(J)J*J+J,J-J.J/J0J1J2J3J4J5J6J7J8J9J:J;J<J=(B")
("rkr" "$(CJ>J?J@JAJBJCJDJEJFJGJH(B")
("rks" "$(CJIJJJKJLJMJNJOJPJQJRJSJTJUJVJWJXJYJZJ[J\J]J^J_J`(B")
("rkf" "$(CJaJbJcJdJeJfJgJhJiJj(B")
("rka" "$(CJkJlJmJnJoJpJqJrJsJtJuJvJwJxJyJzJ{J|J}J~(B")
("rkq" "$(CK!K"K#K$K%K&(B")
("rkd" "$(CK'K(K)K*K+K,K-K.K/K0K1K2K3K4K5K6K7K8K9K:K;K<K=K>(B")
("ro" "$(CK?K@KAKBKCKDKEKFKGKHKIKJKKKLKMKNKOKPKQKR(B")
("ror" "$(CKSKT(B")
("rod" "$(CKUKVKWKX(B")
("rir" "$(CKY(B")
("rj" "$(CKZK[K\K]K^K_K`KaKbKcKdKeKfKgKhKiKj(B")
("rjs" "$(CKkKlKmKnKoKpKqKrKsKtKuKv(B")
("rjf" "$(CKwKxKyKz(B")
("rja" "$(CK{K|K}K~L!L"L#(B")
("rjq" "$(CL$L%L&(B")
("rp" "$(CL'L(L)(B")
("rur" "$(CL*L+L,L-L.L/L0(B")
("rus" "$(CL1L2L3L4L5L6L7L8L9L:L;(B")
("ruf" "$(CL<L=L>L?L@LA(B")
("rua" "$(CLBLCLDLELFLG(B")
("rud" "$(CLHLILJLKLLLMLNLOLPLQLRLSLTLULVLWLXLYLZL[L\L]L^L_L`LaLbLcLdLeLfLgLhLiLjLkLlLmLnLoLpLqLrLsLt(B")
("rP" "$(CLuLvLwLxLyLzL{L|L}L~M!M"M#M$M%M&M'M(M)M*M+M,M-M.(B")
("rh" "$(CM/M0M1M2M3M4M5M6M7M8M9M:M;M<M=M>M?M@MAMBMCMDMEMFMGMHMIMJMKMLMMMNMOMPMQMRMSMTMU(B")
("rhr" "$(CMVMWMXMYMZM[M\(B")
("rhs" "$(CM]M^M_M`MaMbMcMdMeMf(B")
("rhf" "$(CMgMhMi(B")
("rhd" "$(CMjMkMlMmMnMoMpMqMrMsMtMuMvMwMxMy(B")
("rhw" "$(CMz(B")
("rhk" "$(CM{M|M}M~N!N"N#N$N%N&N'N((B")
("rhkr" "$(CN)N*N+N,(B")
("rhks" "$(CN-N.N/N0N1N2N3N4N5N6N7N8N9N:N;N<N=(B")
("rhkf" "$(CN>N?N@NA(B")
("rhkd" "$(CNBNCNDNENFNGNHNINJNKNLNMNN(B")
("rho" "$(CNONPNQ(B")
("rhl" "$(CNRNSNTNUNVNWNXNYNZ(B")
("rhld" "$(CN[N\N]N^(B")
("ry" "$(CN_N`NaNbNcNdNeNfNgNhNiNjNkNlNmNnNoNpNqNrNsNtNuNvNw(B")
("rn" "$(CNxNyNzN{N|N}N~O!O"O#O$O%O&O'O(O)O*O+O,O-O.O/O0O1O2O3O4O5O6O7O8O9O:O;O<O=O>O?O@OAOBOCODOEOFOGOHOIOJOKOLOMONOO(B")
("rnr" "$(COPOQOROSOTOU(B")
("rns" "$(COVOWOXOYOZO[(B")
("rnf" "$(CO\O]O^O_(B")
("rnd" "$(CO`OaObOcOdOe(B")
("rnjs" "$(COfOgOhOiOjOkOlOmOnOo(B")
("rnjf" "$(COpOqOrOsOt(B")
("rnp" "$(COuOvOwOxOyOz(B")
("rnl" "$(CO{O|O}O~P!P"(B")
("rb" "$(CP#P$P%P&P'P(P)P*P+P,P-P.P/P0P1(B")
("rbs" "$(CP2P3P4P5P6P7P8(B")
("rbf" "$(CP9(B")
("rmr" "$(CP:P;P<P=P>P?P@(B")
("rms" "$(CPAPBPCPDPEPFPGPHPIPJPKPLPMPNPO(B")
("rmf" "$(CPP(B")
("rma" "$(CPQPRPSPTPUPVPWPXPYPZP[P\P]P^(B")
("rmq" "$(CP_P`PaPbPcPdPe(B")
("rmd" "$(CPfPgPhPi(B")
("rl" "$(CPjPkPlPmPnPoPpPqPrPsPtPuPvPwPxPyPzP{P|P}P~Q!Q"Q#Q$Q%Q&Q'Q(Q)Q*Q+Q,Q-Q.Q/Q0Q1Q2Q3Q4Q5Q6Q7Q8Q9Q:Q;Q<Q=Q>Q?Q@QAQBQCQDQEQFQGQHQIQJQK(B")
("rls" "$(CQL(B")
("rlf" "$(CQMQNQOQP(B")
("rla" "$(CQQ(B")
("Rlr" "$(CQR(B")
("sk" "$(CQSQTQUQVQWQXQYQZQ[Q\Q]Q^Q_Q`Qa(B")
("skr" "$(CQbQcQdQeQfQgQhQi(B")
("sks" "$(CQjQkQlQmQnQoQpQqQr(B")
("skf" "$(CQsQt(B")
("ska" "$(CQuQvQwQxQyQzQ{Q|Q}(B")
("skq" "$(CQ~R!R"R#R$(B")
("skd" "$(CR%R&R'R(R)R*R+(B")
("so" "$(CR,R-R.R/R0R1(B")
("sod" "$(CR2(B")
("su" "$(CR3(B")
("sus" "$(CR4R5R6(B")
("sua" "$(CR7R8R9R:(B")
("sud" "$(CR;R<(B")
("sh" "$(CR=R>R?R@RARBRCRDRERFRGRHRIRJRKRLRMRN(B")
("shr" "$(CRORPRQRRRSRT(B")
("shs" "$(CRU(B")
("shd" "$(CRVRWRXRYRZR[R\(B")
("shl" "$(CR]R^R_R`RaRb(B")
("sy" "$(CRc(B")
("sn" "$(CRdReRfRgRhRiRjRk(B")
("sns" "$(CRl(B")
("snf" "$(CRm(B")
("sb" "$(CRnRo(B")
("smr" "$(CRpRq(B")
("sma" "$(CRr(B")
("smd" "$(CRsRtRuRvRwRx(B")
("sl" "$(CRyRz(B")
("slr" "$(CR{R|(B")
("ek" "$(CR}R~(B")
("eks" "$(CS!S"S#S$S%S&S'S(S)S*S+S,S-S.S/S0S1S2S3S4(B")
("ekf" "$(CS5S6S7S8S9(B")
("eka" "$(CS:S;S<S=S>S?S@SASBSCSDSESFSGSHSISJ(B")
("ekq" "$(CSKSLSMSNSO(B")
("ekd" "$(CSPSQSRSSSTSUSVSWSXSYSZ(B")
("eo" "$(CS[S\S]S^S_S`SaSbScSdSeSfSgShSiSj(B")
("eor" "$(CSk(B")
("ejr" "$(CSlSm(B")
("eh" "$(CSnSoSpSqSrSsStSuSvSwSxSySzS{S|S}S~T!T"T#T$T%T&T'T(T)T*T+T,T-T.T/T0T1T2T3T4T5T6T7(B")
("ehr" "$(CT8T9T:T;T<T=T>T?T@TA(B")
("ehs" "$(CTBTCTDTETFTGTHTITJTK(B")
("ehf" "$(CTLTM(B")
("ehd" "$(CTNTOTPTQTRTSTTTUTVTWTXTYTZT[T\T]T^(B")
("en" "$(CT_T`TaTbTcTdTeTfTgThTi(B")
("ens" "$(CTjTkTlTmTnTo(B")
("emr" "$(CTp(B")
("emd" "$(CTqTrTsTtTuTvTwTxTy(B")
("fk" "$(CTzT{T|T}T~U!U"U#U$(B")
("fkr" "$(CU%U&U'U(U)U*U+U,U-(B")
("fks" "$(CU.U/U0U1U2U3U4U5U6(B")
("fkf" "$(CU7U8(B")
("fka" "$(CU9U:U;U<U=U>U?U@UAUB(B")
("fkq" "$(CUCUDUE(B")
("fkd" "$(CUFUGUHUIUJUKULUM(B")
("fo" "$(CUNUOUPUQ(B")
("fod" "$(CUR(B")
("fir" "$(CUSUT(B")
("fid" "$(CUUUVUWUXUYUZU[U\U]U^U_U`Ua(B")
("fu" "$(CUbUcUdUeUfUgUhUiUjUkUlUmUnUoUpUqUrUs(B")
("fur" "$(CUtUuUvUwUxUyUz(B")
("fus" "$(CU{U|U}U~V!V"V#V$V%V&V'V((B")
("fuf" "$(CV)V*V+V,V-V.(B")
("fua" "$(CV/V0V1V2V3(B")
("fuq" "$(CV4(B")
("fud" "$(CV5V6V7V8V9V:V;V<V=V>V?V@VAVBVCVDVEVF(B")
("fP" "$(CVGVHVIVJVK(B")
("fh" "$(CVLVMVNVOVPVQVRVSVTVUVVVWVXVYVZV[V\V](B")
("fhr" "$(CV^V_V`VaVbVcVd(B")
("fhs" "$(CVe(B")
("fhd" "$(CVfVgVhViVjVkVl(B")
("fhl" "$(CVmVnVoVpVqVrVsVt(B")
("fy" "$(CVuVvVwVxVyVzV{V|V}V~W!W"(B")
("fyd" "$(CW#(B")
("fn" "$(CW$W%W&W'W(W)W*W+W,W-W.W/W0(B")
("fb" "$(CW1W2W3W4W5W6W7W8W9W:W;W<W=W>(B")
("fbr" "$(CW?W@WA(B")
("fbs" "$(CWBWCWDWEWFWG(B")
("fbf" "$(CWHWIWJWK(B")
("fbd" "$(CWL(B")
("fmr" "$(CWMWN(B")
("fma" "$(CWO(B")
("fmd" "$(CWPWQWRWSWTWU(B")
("fl" "$(CWVWWWXWYWZW[W\W]W^W_W`WaWbWcWdWeWfWgWhWiWjWkWlWmWnWo(B")
("fls" "$(CWpWqWrWsWtWuWvWwWx(B")
("fla" "$(CWyWzW{W|W}(B")
("flq" "$(CW~X!X"X#(B")
("ak" "$(CX$X%X&X'X(X)X*X+(B")
("akr" "$(CX,X-X.X/X0X1(B")
("aks" "$(CX2X3X4X5X6X7X8X9X:X;X<X=X>X?X@XAXBXCXD(B")
("akf" "$(CXEXFXGXHXIXJXK(B")
("akd" "$(CXLXMXNXOXPXQXRXSXTXUXVXW(B")
("ao" "$(CXXXYXZX[X\X]X^X_X`XaXbXcXdXe(B")
("aor" "$(CXfXgXhXiXj(B")
("aod" "$(CXkXlXmXnXoXp(B")
("aur" "$(CXqXr(B")
("aus" "$(CXsXtXuXvXwXxXyXzX{X|X}(B")
("auf" "$(CX~Y!(B")
("aud" "$(CY"Y#Y$Y%Y&Y'Y(Y)Y*Y+Y,Y-Y.Y/Y0(B")
("aP" "$(CY1(B")
("ah" "$(CY2Y3Y4Y5Y6Y7Y8Y9Y:Y;Y<Y=Y>Y?Y@YAYBYCYDYEYFYGYHYI(B")
("ahr" "$(CYJYKYLYMYNYOYP(B")
("ahf" "$(CYQYR(B")
("ahd" "$(CYSYTYU(B")
("ay" "$(CYVYWYXYYYZY[Y\Y]Y^Y_Y`Ya(B")
("an" "$(CYbYcYdYeYfYgYhYiYjYkYlYmYnYoYpYqYrYsYtYuYvYw(B")
("anr" "$(CYxYy(B")
("ans" "$(CYzY{Y|Y}Y~Z!Z"Z#Z$Z%Z&Z'(B")
("anf" "$(CZ(Z)Z*(B")
("al" "$(CZ+Z,Z-Z.Z/Z0Z1Z2Z3Z4Z5Z6Z7Z8Z9Z:Z;Z<Z=(B")
("als" "$(CZ>Z?Z@ZAZBZCZDZEZFZGZHZIZJ(B")
("alf" "$(CZKZLZM(B")
("qkr" "$(CZNZOZPZQZRZSZTZUZVZWZXZYZZZ[Z\Z]Z^Z_Z`(B")
("qks" "$(CZaZbZcZdZeZfZgZhZiZjZkZlZmZnZoZpZqZrZsZtZuZvZwZxZy(B")
("qkf" "$(CZzZ{Z|Z}Z~[!["[#[$[%[&(B")
("qkd" "$(C['[([)[*[+[,[-[.[/[0[1[2[3[4[5[6[7[8[9[:[;[<[=[>[?[@[A[B(B")
("qo" "$(C[C[D[E[F[G[H[I[J[K[L[M[N[O[P[Q[R[S[T[U[V(B")
("qor" "$(C[W[X[Y[Z[[[\[][^(B")
("qjs" "$(C[_[`[a[b[c[d[e[f[g[h(B")
("qjf" "$(C[i[j[k[l(B")
("qja" "$(C[m[n[o[p[q[r[s[t[u(B")
("qjq" "$(C[v[w(B")
("qur" "$(C[x[y[z[{[|[}[~\!\"\#\$(B")
("qus" "$(C\%\&\'\(\)\*\+(B")
("quf" "$(C\,\-\.\/(B")
("qud" "$(C\0\1\2\3\4\5\6\7\8\9\:\;\<\=\>\?\@(B")
("qh" "$(C\A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P(B")
("qhr" "$(C\Q\R\S\T\U\V\W\X\Y\Z\[\\\]\^\_\`\a(B")
("qhs" "$(C\b(B")
("qhf" "$(C\c(B")
("qhd" "$(C\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s(B")
("qn" "$(C\t\u\v\w\x\y\z\{\|\}\~]!]"]#]$]%]&]'](])]*]+],]-].]/]0]1]2]3]4]5]6]7]8]9]:];]<]=]>]?]@(B")
("qnr" "$(C]A(B")
("qns" "$(C]B]C]D]E]F]G]H]I]J]K]L]M]N]O]P]Q]R]S]T(B")
("qnf" "$(C]U]V]W]X]Y(B")
("qnd" "$(C]Z][]\]]]^]_(B")
("ql" "$(C]`]a]b]c]d]e]f]g]h]i]j]k]l]m]n]o]p]q]r]s]t]u]v]w]x]y]z]{]|]}]~^!^"^#^$^%^&^'^(^)^*^+^,(B")
("qls" "$(C^-^.^/^0^1^2^3^4^5^6^7^8^9^:(B")
("qld" "$(C^;^<^=^>(B")
("tk" "$(C^?^@^A^B^C^D^E^F^G^H^I^J^K^L^M^N^O^P^Q^R^S^T^U^V^W^X^Y^Z^[^\^]^^^_^`^a^b^c^d^e^f^g^h^i^j^k^l^m^n^o^p^q^r^s^t^u^v^w^x^y^z(B")
("tkr" "$(C^{^|^}^~(B")
("tks" "$(C_!_"_#_$_%_&_'_(_)_*_+_,(B")
("tkf" "$(C_-_._/_0_1(B")
("tka" "$(C_2_3_4_5_6_7_8_9(B")
("tkq" "$(C_:_;_<_=(B")
("tkd" "$(C_>_?_@_A_B_C_D_E_F_G_H_I_J_K_L_M_N_O_P_Q_R_S_T_U_V_W_X_Y_Z_[_\(B")
("to" "$(C_]_^__(B")
("tor" "$(C_`_a_b_c_d(B")
("tod" "$(C_e_f_g_h_i(B")
("tj" "$(C_j_k_l_m_n_o_p_q_r_s_t_u_v_w_x_y_z_{_|_}_~`!`"`#`$`%`&`'`(`)(B")
("tjr" "$(C`*`+`,`-`.`/`0`1`2`3`4`5`6`7`8(B")
("tjs" "$(C`9`:`;`<`=`>`?`@`A`B`C`D`E`F`G`H`I`J`K`L`M`N`O`P`Q`R`S`T`U`V`W`X(B")
("tjf" "$(C`Y`Z`[`\`]`^`_```a`b`c`d`e(B")
("tja" "$(C`f`g`h`i`j`k`l`m(B")
("tjq" "$(C`n`o`p`q(B")
("tjd" "$(C`r`s`t`u`v`w`x`y`z`{`|`}`~a!a"a#a$a%(B")
("tp" "$(Ca&a'a(a)a*a+a,a-a.(B")
("th" "$(Ca/a0a1a2a3a4a5a6a7a8a9a:a;a<a=a>a?a@aAaBaCaDaEaFaGaHaIaJaKaLaMaNaOaPaQaRaS(B")
("thr" "$(CaTaUaVaWaXaYaZa[a\(B")
("ths" "$(Ca]a^a_a`aaab(B")
("thf" "$(Cac(B")
("thd" "$(Cadaeafagahaiajak(B")
("tho" "$(Calamanaoap(B")
("thl" "$(Caqar(B")
("tn" "$(Casatauavawaxayaza{a|a}a~b!b"b#b$b%b&b'b(b)b*b+b,b-b.b/b0b1b2b3b4b5b6b7b8b9b:b;b<b=b>b?b@bAbBbCbDbEbFbGbHbIbJbKbLbMbNbObPbQ(B")
("tnr" "$(CbRbSbTbUbVbWbXbYbZb[b\b](B")
("tns" "$(Cb^b_b`babbbcbdbebfbgbhbibjbkblbmbnbobpbqbrbsbtbubvbwbx(B")
("tnf" "$(Cbybzb{b|(B")
("tnd" "$(Cb}b~c!(B")
("tmf" "$(Cc"c#c$(B")
("tmq" "$(Cc%c&c'c(c)(B")
("tmd" "$(Cc*c+c,c-c.c/c0c1c2c3(B")
("tl" "$(Cc4c5c6c7c8c9c:c;c<c=c>c?c@cAcBcCcDcEcFcGcHcIcJcKcLcMcNcO(B")
("tlr" "$(CcPcQcRcScTcUcVcWcXcYcZc[c\c]c^(B")
("tls" "$(Cc_c`cacbcccdcecfcgchcicjckclcmcncocpcqcrcsctcucv(B")
("tlf" "$(Ccwcxcycz(B")
("tla" "$(Cc{c|c}c~d!d"d#d$d%d&(B")
("tlq" "$(Cd'd(d)(B")
("Tkd" "$(Cd*(B")
("Tl" "$(Cd+(B")
("dk" "$(Cd,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=(B")
("dkr" "$(Cd>d?d@dAdBdCdDdEdFdGdHdIdJdK(B")
("dks" "$(CdLdMdNdOdPdQdRdSdTdU(B")
("dkf" "$(CdVdWdXdY(B")
("dka" "$(CdZd[d\d]d^d_d`da(B")
("dkq" "$(Cdbdcddde(B")
("dkd" "$(Cdfdgdhdidjdkdl(B")
("do" "$(Cdmdndodpdqdrdsdtdudvdw(B")
("dor" "$(Cdxdydzd{d|d}d~(B")
("dod" "$(Ce!e"e#e$(B")
("di" "$(Ce%e&e'e(e)e*e+e,e-e.e/(B")
("dir" "$(Ce0e1e2e3e4e5e6e7e8(B")
("did" "$(Ce9e:e;e<e=e>e?e@eAeBeCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeW(B")
("dj" "$(CeXeYeZe[e\e]e^e_e`ea(B")
("djr" "$(Cebecedeeef(B")
("djs" "$(Cegeheiejekel(B")
("djf" "$(Cemen(B")
("dja" "$(Ceoepeqereset(B")
("djq" "$(Ceuev(B")
("dps" "$(Cew(B")
("du" "$(Cexeyeze{e|e}e~f!f"f#f$f%f&f'f(f)f*f+f,f-f.f/f0f1(B")
("dur" "$(Cf2f3f4f5f6f7f8f9f:f;f<f=f>(B")
("dus" "$(Cf?f@fAfBfCfDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWfXfYfZf[f\f]f^f_f`fafbfcfdfefffgfhfi(B")
("duf" "$(Cfjfkflfmfnfofpfqfrfs(B")
("dua" "$(Cftfufvfwfxfyfzf{f|f}f~g!g"g#g$(B")
("duq" "$(Cg%g&g'g((B")
("dud" "$(Cg)g*g+g,g-g.g/g0g1g2g3g4g5g6g7g8g9g:g;g<g=g>g?g@gAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgP(B")
("dP" "$(CgQgRgSgTgUgVgWgXgYgZg[g\g]g^g_g`gagbgcgdgegfgggh(B")
("dh" "$(Cgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzg{g|g}g~h!h"h#h$h%h&h'h((B")
("dhr" "$(Ch)h*h+h,h-(B")
("dhs" "$(Ch.h/h0h1h2h3(B")
("dhf" "$(Ch4(B")
("dhd" "$(Ch5h6h7h8h9h:h;h<h=(B")
("dhk" "$(Ch>h?h@hAhBhChDhE(B")
("dhks" "$(ChFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhW(B")
("dhkf" "$(ChX(B")
("dhkd" "$(ChYhZh[h\h](B")
("dho" "$(Ch^h_h`ha(B")
("dhl" "$(Chbhchdhehf(B")
("dy" "$(Chghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhzh{h|h}h~i!i"i#i$i%i&i'i(i)i*i+i,i-i.(B")
("dyr" "$(Ci/i0i1i2i3i4(B")
("dyd" "$(Ci5i6i7i8i9i:i;i<i=i>i?i@iAiBiCiDiEiFiGiHiIiJiKiL(B")
("dn" "$(CiMiNiOiPiQiRiSiTiUiViWiXiYiZi[i\i]i^i_i`iaibicidieifigihiiijikil(B")
("dnr" "$(Ciminioipiqirisitiu(B")
("dns" "$(Civiwixiyizi{i|i}i~j!j"j#j$(B")
("dnf" "$(Cj%j&j'(B")
("dnd" "$(Cj(j)(B")
("dnjs" "$(Cj*j+j,j-j.j/j0j1j2j3j4j5j6j7j8j9j:j;j<j=j>j?j@jAjBjCjD(B")
("dnjf" "$(CjEjFjG(B")
("dnl" "$(CjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj[j\j]j^j_j`(B")
("db" "$(Cjajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzj{j|j}j~k!k"k#k$k%k&k'k(k)k*k+k,k-k.k/k0k1k2k3k4k5k6k7k8k9k:(B")
("dbr" "$(Ck;k<k=k>k?k@kA(B")
("dbs" "$(CkBkCkDkEkFkGkHkIkJkKkLkMkN(B")
("dbf" "$(CkOkPkQkRkS(B")
("dbd" "$(CkTkUkVkWkX(B")
("dms" "$(CkYkZk[k\k]k^k_(B")
("dmf" "$(Ck`(B")
("dma" "$(Ckakbkckdkekf(B")
("dmq" "$(Ckgkhki(B")
("dmd" "$(Ckjkkklkm(B")
("dml" "$(Cknkokpkqkrksktkukvkwkxkykzk{k|k}k~l!l"(B")
("dl" "$(Cl#l$l%l&l'l(l)l*l+l,l-l.l/l0l1l2l3l4l5l6l7l8l9l:l;l<l=l>l?l@lAlBlClDlElFlGlH(B")
("dlr" "$(ClIlJlKlLlMlNlOlP(B")
("dls" "$(ClQlRlSlTlUlVlWlXlYlZl[l\l]l^l_l`lalblcldlelflglh(B")
("dlf" "$(Cliljlklllmlnlolplq(B")
("dla" "$(Clrlsltlulvlwlxlylzl{l|(B")
("dlq" "$(Cl}l~m!m"m#(B")
("dld" "$(Cm$m%m&m'(B")
("wk" "$(Cm(m)m*m+m,m-m.m/m0m1m2m3m4m5m6m7m8m9m:m;m<m=m>m?m@mA(B")
("wkr" "$(CmBmCmDmEmFmGmHmImJmKmLmMmN(B")
("wks" "$(CmOmPmQmRmS(B")
("wka" "$(CmTmUmVmWmXmY(B")
("wkq" "$(CmZ(B")
("wkd" "$(Cm[m\m]m^m_m`mambmcmdmemfmgmhmimjmkmlmmmnmompmqmrmsmtmumvmwmxmymzm{m|m}m~n!(B")
("Od" "$(Cn3n4n5n6(B")
("wo" "$(Cn"n#n$n%n&n'n(n)n*n+n,n-n.n/n0n1n2(B")
("wj" "$(Cn7n8n9n:n;n<n=n>n?n@nAnBnCnDnEnFnGnHnInJnKnLnMnNnOnPnQnR(B")
("wjr" "$(CnSnTnUnVnWnXnYnZn[n\n]n^n_n`nanbncndnenfngnhninjnk(B")
("wjs" "$(Cnlnmnnnonpnqnrnsntnunvnwnxnynzn{n|n}n~o!o"o#o$o%o&o'o(o)o*o+o,o-o.o/o0o1o2o3o4o5o6(B")
("wjf" "$(Co7o8o9o:o;o<o=o>(B")
("wja" "$(Co?o@oAoBoCoDoEoFoG(B")
("wjq" "$(CoHoIoJ(B")
("wjd" "$(CoKoLoMoNoOoPoQoRoSoToUoVoWoXoYoZo[o\o]o^o_o`oaobocodoeofogohoiojokolomonooopoqorosotouovowoxoyozo{o|o}o~p!p"p#(B")
("wp" "$(Cp$p%p&p'p(p)p*p+p,p-p.p/p0p1p2p3p4p5p6p7p8p9p:(B")
("wh" "$(Cp;p<p=p>p?p@pApBpCpDpEpFpGpHpIpJpKpLpMpNpOpPpQpRpSpTpUpVpWpXpYpZp[p\p]p^p_p`papbpcpdpepfpgph(B")
("whr" "$(Cpipjpkpl(B")
("whs" "$(Cpmpn(B")
("whf" "$(Cpopppq(B")
("whd" "$(Cprpsptpupvpwpxpypzp{p|p}p~q!q"q#q$(B")
("whk" "$(Cq%q&q'q(q)(B")
("whl" "$(Cq*(B")
("wn" "$(Cq+q,q-q.q/q0q1q2q3q4q5q6q7q8q9q:q;q<q=q>q?q@qAqBqCqDqEqFqGqHqIqJqKqLqMqNqOqPqQqR(B")
("wnr" "$(CqSqT(B")
("wns" "$(CqUqVqWqXqYqZq[q\q]q^q_q`qaqbqcqdqeqfqg(B")
("wnf" "$(Cqh(B")
("wnd" "$(Cqiqjqkql(B")
("wmr" "$(Cqm(B")
("wmf" "$(Cqn(B")
("wmq" "$(Cqoqpqq(B")
("wmd" "$(Cqrqsqtquqvqwqxqyqzq{q|(B")
("wl" "$(Cq}q~r!r"r#r$r%r&r'r(r)r*r+r,r-r.r/r0r1r2r3r4r5r6r7r8r9r:r;r<r=r>r?r@(B")
("wlr" "$(CrArBrCrDrE(B")
("wls" "$(CrFrGrHrIrJrKrLrMrNrOrPrQrRrSrTrUrVrWrXrYrZr[r\r]r^r_r`rarbrcrdrerfrgrh(B")
("wlf" "$(Crirjrkrlrmrnrorprqrrrsrtrurvrw(B")
("wla" "$(Crxry(B")
("wlq" "$(Crzr{r|r}r~s!s"(B")
("wld" "$(Cs#s$s%(B")
("ck" "$(Cs&s's(s)s*s+s,s-s.s/s0s1s2s3s4(B")
("ckr" "$(Cs5s6s7s8s9s:s;(B")
("cks" "$(Cs<s=s>s?s@sAsBsCsDsEsFsGsHsIsJ(B")
("ckf" "$(CsKsLsMsNsO(B")
("cka" "$(CsPsQsRsSsTsUsVsWsXsY(B")
("ckd" "$(CsZs[s\s]s^s_s`sasbscsdsesfsgshsisjskslsmsnso(B")
("co" "$(Cspsqsrssstsusvswsxsyszs{(B")
("cor" "$(Cs|s}s~t!(B")
("cj" "$(Ct"t#t$t%(B")
("cjr" "$(Ct&t't(t)t*t+t,t-t.t/t0t1t2t3t4(B")
("cjs" "$(Ct5t6t7t8t9t:t;t<t=t>t?t@tAtBtCtDtEtFtG(B")
("cjf" "$(CtHtItJtKtLtMtNtOtPtQ(B")
("cja" "$(CtRtStTtUtVtWtXtYtZt[(B")
("cjq" "$(Ct\t]t^t_t`tatbtctdte(B")
("cjd" "$(Ctftgthtitjtktltm(B")
("cp" "$(Ctntotptqtrtstttutvtw(B")
("ch" "$(Ctxtytzt{t|t}t~u!u"u#u$u%u&u'u(u)u*u+u,u-u.u/u0u1u2u3u4(B")
("chr" "$(Cu5u6u7u8u9u:(B")
("chs" "$(Cu;u<u=u>(B")
("chd" "$(Cu?u@uAuBuCuDuEuFuGuH(B")
("chkf" "$(CuI(B")
("chl" "$(CuJuKuL(B")
("cn" "$(CuMuNuOuPuQuRuSuTuUuVuWuXuYuZu[u\u]u^u_u`uaubuc(B")
("cnr" "$(Cudueufuguhuiujukulumunuo(B")
("cns" "$(Cupuqur(B")
("cnf" "$(Cusutuu(B")
("cnd" "$(Cuvuwuxuyuzu{(B")
("cnp" "$(Cu|u}u~v!(B")
("cnl" "$(Cv"v#v$v%v&v'v(v)v*v+v,v-v.v/(B")
("cmr" "$(Cv0v1v2v3v4(B")
("cmd" "$(Cv5(B")
("cl" "$(Cv6v7v8v9v:v;v<v=v>v?v@vAvBvCvDvEvFvGvHvIvJvKvLvM(B")
("clr" "$(CvNvOvP(B")
("cls" "$(CvQ(B")
("clf" "$(CvRvSvT(B")
("cla" "$(CvUvVvWvXvYvZv[v\v](B")
("clq" "$(Cv^(B")
("cld" "$(Cv_v`(B")
("zho" "$(Cva(B")
("xk" "$(Cvbvcvdvevfvgvhvivjvkvlvmvnvo(B")
("xkr" "$(Cvpvqvrvsvtvuvvvwvxvyvzv{v|v}v~w!(B")
("xks" "$(Cw"w#w$w%w&w'w(w)w*w+(B")
("xkf" "$(Cw,w-(B")
("xka" "$(Cw.w/w0w1(B")
("xkq" "$(Cw2w3w4(B")
("xkd" "$(Cw5w6w7w8w9(B")
("xo" "$(Cw:w;w<w=w>w?w@wAwBwCwDwEwFwG(B")
("xor" "$(CwHwIwJ(B")
("xod" "$(CwK(B")
("xj" "$(CwL(B")
("xh" "$(CwMwNwOwP(B")
("xhd" "$(CwQwRwSwTwUwVwW(B")
("xhl" "$(CwXwYwZw[w\w](B")
("xn" "$(Cw^w_w`wawbwc(B")
("xmr" "$(Cwdwe(B")
("xma" "$(Cwf(B")
("vk" "$(Cwgwhwiwjwkwlwmwnwowpwqwrwswtwuwv(B")
("vks" "$(Cwwwxwywzw{w|w}w~x!(B")
("vkf" "$(Cx"x#x$(B")
("vo" "$(Cx%x&x'x(x)x*x+x,x-x.x/(B")
("vod" "$(Cx0x1x2x3(B")
("vir" "$(Cx4(B")
("vus" "$(Cx5x6x7x8x9x:x;x<x=x>(B")
("vua" "$(Cx?(B")
("vud" "$(Cx@xAxBxCxD(B")
("vP" "$(CxExFxGxHxIxJxKxLxMxN(B")
("vh" "$(CxOxPxQxRxSxTxUxVxWxXxYxZx[x\x]x^x_x`xaxbxcxdxexfxgxhxixj(B")
("vhr" "$(Cxkxlxmxnxoxp(B")
("vy" "$(Cxqxrxsxtxuxvxwxxxyxzx{x|x}x~(B")
("vna" "$(Cy!y"(B")
("vnd" "$(Cy#y$y%y&y'(B")
("vl" "$(Cy(y)y*y+y,y-y.(B")
("vlf" "$(Cy/y0y1y2y3y4y5y6y7y8(B")
("vlq" "$(Cy9y:(B")
("gk" "$(Cy;y<y=y>y?y@yAyByCyDyEyFyGyH(B")
("gkr" "$(CyIyJyKyLyM(B")
("gks" "$(CyNyOyPyQyRySyTyUyVyWyXyYyZy[(B")
("gkf" "$(Cy\y](B")
("gka" "$(Cy^y_y`yaybycydyeyfygyhyi(B")
("gkq" "$(Cyjykylymynyoyp(B")
("gkd" "$(Cyqyrysytyuyvywyxyyyzy{y|y}y~z!z"z#(B")
("go" "$(Cz$z%z&z'z(z)z*z+z,z-z.z/z0z1z2z3z4z5(B")
("gor" "$(Cz6z7(B")
("god" "$(Cz8z9z:z;z<(B")
("gid" "$(Cz=z>z?z@zAzBzCzDzE(B")
("gj" "$(CzFzGzHzI(B")
("gjs" "$(CzJzKzLzM(B")
("gjf" "$(CzN(B")
("gja" "$(CzOzP(B")
("gur" "$(CzQzRzSzT(B")
("gus" "$(CzUzVzWzXzYzZz[z\z]z^z_z`zazbzczdzezfzgzhzi(B")
("guf" "$(Czjzkzlzm(B")
("gua" "$(Czn(B")
("guq" "$(Czozpzqzrzsztzuzvzwzxzyzz(B")
("gud" "$(Cz{z|z}z~{!{"{#{${%{&{'{({){*{+{,{-{.{/{0(B")
("gP" "$(C{1{2{3{4{5{6{7{8{9(B")
("gh" "$(C{:{;{<{={>{?{@{A{B{C{D{E{F{G{H{I{J{K{L{M{N{O{P{Q{R{S{T{U{V{W{X{Y{Z{[{\{]{^{_{`{a{b(B")
("ghr" "$(C{c{d{e(B")
("ghs" "$(C{f{g{h{i{j{k(B")
("ghf" "$(C{l{m{n(B")
("ghd" "$(C{o{p{q{r{s{t{u{v{w{x(B")
("ghk" "$(C{y{z{{{|{}{~|!|"|#|$|%|&|'|((B")
("ghkr" "$(C|)|*|+|,|-|.(B")
("ghks" "$(C|/|0|1|2|3|4|5|6|7|8|9|:|;|<|=|>|?(B")
("ghkf" "$(C|@|A|B|C|D(B")
("ghkd" "$(C|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z|[|\(B")
("ghl" "$(C|]|^|_|`|a|b|c|d|e|f|g|h|i|j|k|l|m|n|o|p(B")
("ghlr" "$(C|q|r(B")
("ghld" "$(C|s|t|u(B")
("gy" "$(C|v|w|x|y|z|{|||}|~}!}"}#}$(B")
("gn" "$(C}%}&}'}(})}*}+},}-}.}/}0}1(B")
("gns" "$(C}2}3}4}5}6}7}8}9}:};(B")
("gnd" "$(C}<(B")
("gnjs" "$(C}=}>}?}@(B")
("gnp" "$(C}A}B}C(B")
("gnl" "$(C}D}E}F}G}H}I}J}K(B")
("gb" "$(C}L}M}N}O}P(B")
("gbf" "$(C}Q}R}S(B")
("gbd" "$(C}T}U}V}W}X(B")
("gmr" "$(C}Y(B")
("gms" "$(C}Z}[}\}](B")
("gmf" "$(C}^}_}`}a(B")
("gma" "$(C}b}c}d(B")
("gmq" "$(C}e}f}g}h(B")
("gmd" "$(C}i(B")
("gml" "$(C}j}k}l}m}n}o}p}q}r}s}t}u}v}w}x}y}z}{}|}}(B")
("glf" "$(C}~(B"))

107
leim/quail/ipa.el Normal file
View file

@ -0,0 +1,107 @@
;;; quail/ipa.el -- Quail package for inputting IPA characters
;; Copyright (C) 1997 Electrotechnical Laboratory, JAPAN.
;; Licensed to the Free Software Foundation.
;; Keywords: multilingual, input method, IPA
;; This file is part of GNU Emacs.
;; GNU Emacs is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation; either version 2, or (at your option)
;; any later version.
;; GNU Emacs 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 General Public License for more details.
;; You should have received a copy of the GNU General Public License
;; along with GNU Emacs; see the file COPYING. If not, write to the
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
;; Boston, MA 02111-1307, USA.
;;; Code:
(require 'quail)
(quail-define-package
"ipa" "IPA" "IPA" t
"International Phonetic Alphabet for English, French, German and Italian
Upside-down characters are obtained by a preceding slash (/)."
nil t)
(quail-define-rules
("i" ?,0 (B)
("I" ?,0!(B)
("e" ?,0"(B)
("/3" ?,0#(B)
("E" ?,0#(B)
("ae" ?,0$(B)
("a" ?,0%(B)
("i-" ?,0&(B)
("/e" ?,0'(B)
("/a" ?,0((B)
("/m" ?,0)(B)
("&" ?,0*(B)
("/v" ?,0+(B)
("A" ?,0,(B)
("o|" ?,0,(B)
("y" ?,0-(B)
("Y" ?,0.(B)
("o/" ?,0/(B)
("oe" ?,00(B)
("OE" ?,01(B)
("u-" ?,02(B)
("o-" ?,03(B)
("u" ?,04(B)
("U" ?,05(B)
("o" ?,06(B)
("/c" ?,07(B)
("/A" ?,08(B)
("|o" ?,08(B)
("e-" ?,0:(B)
("e|" ?,0:(B)
("/3~" ?,0;(B)
("E~" ?,0;(B)
("A~" ?,0<(B)
("oe~" ?,0=(B)
("/c~" ?,0>(B)
("p" ?,0@(B)
("b" ?,0A(B)
("t" ?,0B(B)
("d" ?,0C(B)
("k" ?,0D(B)
("g" ?,0E(B)
("f" ?,0F(B)
("v" ?,0G(B)
("th" ?,0H(B)
("dh" ?,0I(B)
("s" ?,0J(B)
("z" ?,0K(B)
("sh" ?,0L(B)
("zh" ?,0M(B)
("3" ?,0M(B)
("c," ?,0N(B)
("x" ?,0O(B)
("/R" ?,0P(B)
("h" ?,0Q(B)
("m" ?,0R(B)
("n" ?,0S(B)
("gn" ?,0T(B)
("ng" ?,0U(B)
("r" ?,0V(B)
("R" ?,0W(B)
("/r" ?,0X(B)
("j" ?,0Y(B)
("l" ?,0Z(B)
("/y" ?,0[(B)
("L" ?,0\(B)
("/h" ?,0](B)
("w" ?,0^(B)
("M" ?,0_(B)
("'" ?,0p(B)
("`" ?,0q(B)
(":" ?,0r(B))

392
leim/quail/japanese.el Normal file
View file

@ -0,0 +1,392 @@
;;; quail/japanese.el --- Quail package for inputting Japanese
;; Copyright (C) 1997 Electrotechnical Laboratory, JAPAN.
;; Licensed to the Free Software Foundation.
;; Keywords: multilingual, input method, Japanese
;; This file is part of GNU Emacs.
;; GNU Emacs is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation; either version 2, or (at your option)
;; any later version.
;; GNU Emacs 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 General Public License for more details.
;; You should have received a copy of the GNU General Public License
;; along with GNU Emacs; see the file COPYING. If not, write to the
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
;; Boston, MA 02111-1307, USA.
;;; Code:
(require 'quail)
(require 'kkc)
;; Update Quail translation region for Japanese bizarre translation
;; rules.
(defun quail-japanese-update-translation (control-flag)
(cond ((eq control-flag t)
(insert quail-current-str)
(quail-terminate-translation))
((null control-flag)
(if (/= (aref quail-current-key 0) ?q)
(insert (or quail-current-str quail-current-key))))
(t ; i.e. (numberp control-flag)
(cond ((= (aref quail-current-key 0) ?n)
(insert ?$B$s(B))
((= (aref quail-current-key 0) (aref quail-current-key 1))
(insert ?$B$C(B))
(t
(insert (aref quail-current-key 0))))
(setq unread-command-events
(list (aref quail-current-key control-flag)))
(quail-terminate-translation))))
;; Flag to control the behavior of `quail-japanese-toggle-kana'.
(defvar quail-japanese-kana-state nil)
(make-variable-buffer-local 'quail-japanese-kana-state)
;; Convert Hiragana <-> Katakana in the current translation region.
(defun quail-japanese-toggle-kana ()
(interactive)
(if (quail-point-in-conversion-region)
(let ((start (overlay-start quail-conv-overlay))
(end (overlay-end quail-conv-overlay)))
(setq quail-japanese-kana-state
(if (eq last-command this-command)
(not quail-japanese-kana-state)))
(if quail-japanese-kana-state
(japanese-hiragana-region start end)
(japanese-katakana-region start end))
(goto-char (overlay-end quail-conv-overlay))
(setq quail-exit-conversion-mode t))
;; When this command is invoked, the point is not in a valid
;; region. Try the event which invoked this command again out of
;; conversion mode.
(setq unread-command-events (list last-command-event))
(throw 'exit nil)))
;; Convert Hiragana in the current translation region to Kanji by KKC
;; (Kana Kanji Converter) utility.
(defun quail-japanese-kanji-kkc ()
(interactive)
(if (quail-point-in-conversion-region)
(let ((from (overlay-start quail-conv-overlay))
(to (overlay-end quail-conv-overlay))
newfrom)
(delete-overlay quail-overlay)
(delete-overlay quail-conv-overlay)
(unwind-protect
(setq newfrom (kkc-region from to))
;; Activate the original (or shrinked) conversion region
;; again.
(if newfrom
;; `kkc-region' is canceled.
(move-overlay quail-conv-overlay newfrom (point))
;; `kkc-region' is terminated normally.
(move-overlay quail-conv-overlay from (point))
(throw 'exit nil))))
;; When this command is invoked, the point is not in a valid
;; region. Try the event which invoked this command again out of
;; conversion mode.
(setq unread-command-events (list last-command-event))
(throw 'exit nil)))
(defun quail-japanese-self-insert-and-switch-to-alpha (key idx)
(quail-delete-region)
(setq unread-command-events (list (aref key (1- idx))))
(quail-japanese-switch-package "q" 1))
(defvar quail-japanese-switch-table
'((?z . "japanese-zenkaku")
(?k . "japanese-hankaku-kana")
(?h . "japanese")
(?q . ("japanese-ascii"))))
(defvar quail-japanese-package-saved nil)
(make-variable-buffer-local 'quail-japanese-package-saved)
(put 'quail-japanese-package-saved 'permanent-local t)
(defun quail-japanese-switch-package (key idx)
(let ((pkg (cdr (assq (aref key (1- idx)) quail-japanese-switch-table))))
(if (null pkg)
(error "No package to be switched")
(quail-delete-region)
(if (stringp pkg)
(select-input-method pkg)
(if (string= (car pkg) current-input-method)
(if quail-japanese-package-saved
(select-input-method quail-japanese-package-saved))
(setq quail-japanese-package-saved current-input-method)
(select-input-method (car pkg))))
(throw 'quail-tag nil))))
(quail-define-package
"japanese" "Japanese" "A$B$"(B"
nil
"Romaji -> Hiragana -> Kanji&Kana
---- Special key bindings ----
qq: toggle between input methods `japanese' and `japanese-ascii'
qz: use `japanese-zenkaku' package, \"qh\" puts you back to `japanese'
K: convert to Katakana
SPC: convert to Kanji&Kana
z: insert one Japanese symbol according to a key which follows
"
nil t t nil nil nil nil nil
'quail-japanese-update-translation
'(("K" . quail-japanese-toggle-kana)
(" " . quail-japanese-kanji-kkc)
("\C-m" . quail-no-conversion)
([return] . quail-no-conversion))
)
(quail-define-rules
( "a" "$B$"(B") ( "i" "$B$$(B") ( "u" "$B$&(B") ( "e" "$B$((B") ( "o" "$B$*(B")
("ka" "$B$+(B") ("ki" "$B$-(B") ("ku" "$B$/(B") ("ke" "$B$1(B") ("ko" "$B$3(B")
("sa" "$B$5(B") ("si" "$B$7(B") ("su" "$B$9(B") ("se" "$B$;(B") ("so" "$B$=(B")
("ta" "$B$?(B") ("ti" "$B$A(B") ("tu" "$B$D(B") ("te" "$B$F(B") ("to" "$B$H(B")
("na" "$B$J(B") ("ni" "$B$K(B") ("nu" "$B$L(B") ("ne" "$B$M(B") ("no" "$B$N(B")
("ha" "$B$O(B") ("hi" "$B$R(B") ("hu" "$B$U(B") ("he" "$B$X(B") ("ho" "$B$[(B")
("ma" "$B$^(B") ("mi" "$B$_(B") ("mu" "$B$`(B") ("me" "$B$a(B") ("mo" "$B$b(B")
("ya" "$B$d(B") ("yu" "$B$f(B") ("yo" "$B$h(B")
("ra" "$B$i(B") ("ri" "$B$j(B") ("ru" "$B$k(B") ("re" "$B$l(B") ("ro" "$B$m(B")
("la" "$B$i(B") ("li" "$B$j(B") ("lu" "$B$k(B") ("le" "$B$l(B") ("lo" "$B$m(B")
("wa" "$B$o(B") ("wi" "$B$p(B") ("wu" "$B$&(B") ("we" "$B$q(B") ("wo" "$B$r(B")
("n'" "$B$s(B")
("ga" "$B$,(B") ("gi" "$B$.(B") ("gu" "$B$0(B") ("ge" "$B$2(B") ("go" "$B$4(B")
("za" "$B$6(B") ("zi" "$B$8(B") ("zu" "$B$:(B") ("ze" "$B$<(B") ("zo" "$B$>(B")
("da" "$B$@(B") ("di" "$B$B(B") ("du" "$B$E(B") ("de" "$B$G(B") ("do" "$B$I(B")
("ba" "$B$P(B") ("bi" "$B$S(B") ("bu" "$B$V(B") ("be" "$B$Y(B") ("bo" "$B$\(B")
("pa" "$B$Q(B") ("pi" "$B$T(B") ("pu" "$B$W(B") ("pe" "$B$Z(B") ("po" "$B$](B")
("kya" ["$B$-$c(B"]) ("kyu" ["$B$-$e(B"]) ("kye" ["$B$-$'(B"]) ("kyo" ["$B$-$g(B"])
("sya" ["$B$7$c(B"]) ("syu" ["$B$7$e(B"]) ("sye" ["$B$7$'(B"]) ("syo" ["$B$7$g(B"])
("sha" ["$B$7$c(B"]) ("shu" ["$B$7$e(B"]) ("she" ["$B$7$'(B"]) ("sho" ["$B$7$g(B"])
("cha" ["$B$A$c(B"]) ("chu" ["$B$A$e(B"]) ("che" ["$B$A$'(B"]) ("cho" ["$B$A$g(B"])
("tya" ["$B$A$c(B"]) ("tyu" ["$B$A$e(B"]) ("tye" ["$B$A$'(B"]) ("tyo" ["$B$A$g(B"])
("nya" ["$B$K$c(B"]) ("nyu" ["$B$K$e(B"]) ("nye" ["$B$K$'(B"]) ("nyo" ["$B$K$g(B"])
("hya" ["$B$R$c(B"]) ("hyu" ["$B$R$e(B"]) ("hye" ["$B$R$'(B"]) ("hyo" ["$B$R$g(B"])
("mya" ["$B$_$c(B"]) ("myu" ["$B$_$e(B"]) ("mye" ["$B$_$'(B"]) ("myo" ["$B$_$g(B"])
("rya" ["$B$j$c(B"]) ("ryu" ["$B$j$e(B"]) ("rye" ["$B$j$'(B"]) ("ryo" ["$B$j$g(B"])
("lya" ["$B$j$c(B"]) ("lyu" ["$B$j$e(B"]) ("lye" ["$B$j$'(B"]) ("lyo" ["$B$j$g(B"])
("gya" ["$B$.$c(B"]) ("gyu" ["$B$.$e(B"]) ("gye" ["$B$.$'(B"]) ("gyo" ["$B$.$g(B"])
("zya" ["$B$8$c(B"]) ("zyu" ["$B$8$e(B"]) ("zye" ["$B$8$'(B"]) ("zyo" ["$B$8$g(B"])
("jya" ["$B$8$c(B"]) ("jyu" ["$B$8$e(B"]) ("jye" ["$B$8$'(B"]) ("jyo" ["$B$8$g(B"])
( "ja" ["$B$8$c(B"]) ( "ju" ["$B$8$e(B"]) ( "je" ["$B$8$'(B"]) ( "jo" ["$B$8$g(B"])
("bya" ["$B$S$c(B"]) ("byu" ["$B$S$e(B"]) ("bye" ["$B$S$'(B"]) ("byo" ["$B$S$g(B"])
("pya" ["$B$T$c(B"]) ("pyu" ["$B$T$e(B"]) ("pye" ["$B$T$'(B"]) ("pyo" ["$B$T$g(B"])
("kwa" ["$B$/$n(B"]) ("kwi" ["$B$/$#(B"]) ("kwe" ["$B$/$'(B"]) ("kwo" ["$B$/$)(B"])
("tsa" ["$B$D$!(B"]) ("tsi" ["$B$D$#(B"]) ("tse" ["$B$D$'(B"]) ("tso" ["$B$D$)(B"])
( "fa" ["$B$U$!(B"]) ( "fi" ["$B$U$#(B"]) ( "fe" ["$B$U$'(B"]) ( "fo" ["$B$U$)(B"])
("gwa" ["$B$0$n(B"]) ("gwi" ["$B$0$#(B"]) ("gwe" ["$B$0$'(B"]) ("gwo" ["$B$0$)(B"])
("dyi" ["$B$G$#(B"]) ("dyu" ["$B$I$%(B"]) ("dye" ["$B$G$'(B"]) ("dyo" ["$B$I$)(B"])
("xwi" ["$B$&$#(B"]) ("xwe" ["$B$&$'(B"]) ("xwo" ["$B$&$)(B"])
("shi" "$B$7(B") ("tyi" ["$B$F$#(B"]) ("chi" "$B$A(B") ("tsu" "$B$D(B") ("ji" "$B$8(B")
("fu" "$B$U(B")
("ye" ["$B$$$'(B"])
("va" ["$B%t$!(B"]) ("vi" ["$B%t$#(B"]) ("vu" "$B%t(B") ("ve" ["$B%t$'(B"]) ("vo" ["$B%t$)(B"])
("xa" "$B$!(B") ("xi" "$B$#(B") ("xu" "$B$%(B") ("xe" "$B$'(B") ("xo" "$B$)(B")
("xtu" "$B$C(B") ("xya" "$B$c(B") ("xyu" "$B$e(B") ("xyo" "$B$g(B") ("xwa" "$B$n(B")
("xka" "$B%u(B") ("xke" "$B%v(B")
("1" "$B#1(B") ("2" "$B#2(B") ("3" "$B#3(B") ("4" "$B#4(B") ("5" "$B#5(B")
("6" "$B#6(B") ("7" "$B#7(B") ("8" "$B#8(B") ("9" "$B#9(B") ("0" "$B#0(B")
("!" "$B!*(B") ("@" "$B!w(B") ("#" "$B!t(B") ("$" "$B!p(B") ("%" "$B!s(B")
("^" "$B!0(B") ("&" "$B!u(B") ("*" "$B!v(B") ("(" "$B!J(B") (")" "$B!K(B")
("-" "$B!<(B") ("=" "$B!a(B") ("`" "$B!.(B") ("\\" "$B!o(B") ("|" "$B!C(B")
("_" "$B!2(B") ("+" "$B!\(B") ("~" "$B!1(B") ("[" "$B!V(B") ("]" "$B!W(B")
("{" "$B!P(B") ("}" "$B!Q(B") (":" "$B!'(B") (";" "$B!((B") ("\"" "$B!I(B")
("'" "$B!G(B") ("." "$B!#(B") ("," "$B!"(B") ("<" "$B!c(B") (">" "$B!d(B")
("?" "$B!)(B") ("/" "$B!?(B")
("z1" "$B!{(B") ("z!" "$B!|(B")
("z2" "$B"&(B") ("z@" "$B"'(B")
("z3" "$B"$(B") ("z#" "$B"%(B")
("z4" "$B""(B") ("z$" "$B"#(B")
("z5" "$B!~(B") ("z%" "$B"!(B")
("z6" "$B!y(B") ("z^" "$B!z(B")
("z7" "$B!}(B") ("z&" "$B!r(B")
("z8" "$B!q(B") ("z*" "$B!_(B")
("z9" "$B!i(B") ("z(" "$B!Z(B")
("z0" "$B!j(B") ("z)" "$B![(B")
("z-" "$B!A(B") ("z_" "$B!h(B")
("z=" "$B!b(B") ("z+" "$B!^(B")
("z\\" "$B!@(B") ("z|" "$B!B(B")
("z`" "$B!-(B") ("z~" "$B!/(B")
("zq" "$B!T(B") ("zQ" "$B!R(B")
("zw" "$B!U(B") ("zW" "$B!S(B")
("zr" "$B!9(B") ("zR" "$B!8(B")
("zt" "$B!:(B") ("zT" "$B!x(B")
("zp" "$B")(B") ("zP" "$B",(B")
("z[" "$B!X(B") ("z{" "$B!L(B")
("z]" "$B!Y(B") ("z}" "$B!M(B")
("zs" "$B!3(B") ("zS" "$B!4(B")
("zd" "$B!5(B") ("zD" "$B!6(B")
("zf" "$B!7(B") ("zF" "$B"*(B")
("zg" "$B!>(B") ("zG" "$B!=(B")
("zh" "$B"+(B")
("zj" "$B"-(B")
("zk" "$B",(B")
("zl" "$B"*(B")
("z;" "$B!+(B") ("z:" "$B!,(B")
("z\'" "$B!F(B") ("z\"" "$B!H(B")
("zx" ":-") ("zX" ":-)")
("zc" "$B!;(B") ("zC" "$B!n(B")
("zv" "$B"((B") ("zV" "$B!`(B")
("zb" "$B!k(B") ("zB" "$B"+(B")
("zn" "$B!l(B") ("zN" "$B"-(B")
("zm" "$B!m(B") ("zM" "$B".(B")
("z," "$B!E(B") ("z<" "$B!e(B")
("z." "$B!D(B") ("z>" "$B!f(B")
("z/" "$B!&(B") ("z?" "$B!g(B")
("\\\\" quail-japanese-self-insert-and-switch-to-alpha)
("{{" quail-japanese-self-insert-and-switch-to-alpha)
("}}" quail-japanese-self-insert-and-switch-to-alpha)
("qq" quail-japanese-switch-package)
("qz" quail-japanese-switch-package)
)
(quail-define-package
"japanese-ascii" "Japanese" "Aa"
nil
"Temporary ASCII input mode while using Quail package `japanese'
Type \"qq\" to go back to previous package."
nil t t)
(quail-define-rules ("qq" quail-japanese-switch-package))
(quail-define-package
"japanese-zenkaku" "Japanese" "$B#A(B"
nil
"Japanese zenkaku alpha numeric character input method
---- Special key bindings ----
qq: toggle between `japanese-zenkaku' and `japanese-ascii'
qh: use `japanese' package, \"qz\" puts you back to `japanese-zenkaku'
"
nil t t)
(quail-define-rules
(" " "$B!!(B") ("!" "$B!*(B") ("\"" "$B!m(B") ("#" "$B!t(B")
("$" "$B!p(B") ("%" "$B!s(B") ("&" "$B!u(B") ("'" "$B!l(B")
("(" "$B!J(B") (")" "$B!K(B") ("*" "$B!v(B") ("+" "$B!\(B")
("," "$B!$(B") ("-" "$B!](B") ("." "$B!%(B") ("/" "$B!?(B")
("0" "$B#0(B") ("1" "$B#1(B") ("2" "$B#2(B") ("3" "$B#3(B")
("4" "$B#4(B") ("5" "$B#5(B") ("6" "$B#6(B") ("7" "$B#7(B")
("8" "$B#8(B") ("9" "$B#9(B") (":" "$B!'(B") (";" "$B!((B")
("<" "$B!c(B") ("=" "$B!a(B") (">" "$B!d(B") ("?" "$B!)(B")
("@" "$B!w(B") ("A" "$B#A(B") ("B" "$B#B(B") ("C" "$B#C(B")
("D" "$B#D(B") ("E" "$B#E(B") ("F" "$B#F(B") ("G" "$B#G(B")
("H" "$B#H(B") ("I" "$B#I(B") ("J" "$B#J(B") ("K" "$B#K(B")
("L" "$B#L(B") ("M" "$B#M(B") ("N" "$B#N(B") ("O" "$B#O(B")
("P" "$B#P(B") ("Q" "$B#Q(B") ("R" "$B#R(B") ("S" "$B#S(B")
("T" "$B#T(B") ("U" "$B#U(B") ("V" "$B#V(B") ("W" "$B#W(B")
("X" "$B#X(B") ("Y" "$B#Y(B") ("Z" "$B#Z(B") ("[" "$B!N(B")
("\\" "$B!o(B") ("]" "$B!O(B") ("^" "$B!0(B") ("_" "$B!2(B")
("`" "$B!F(B") ("a" "$B#a(B") ("b" "$B#b(B") ("c" "$B#c(B")
("d" "$B#d(B") ("e" "$B#e(B") ("f" "$B#f(B") ("g" "$B#g(B")
("h" "$B#h(B") ("i" "$B#i(B") ("j" "$B#j(B") ("k" "$B#k(B")
("l" "$B#l(B") ("m" "$B#m(B") ("n" "$B#n(B") ("o" "$B#o(B")
("p" "$B#p(B") ("q" "$B#q(B") ("r" "$B#r(B") ("s" "$B#s(B")
("t" "$B#t(B") ("u" "$B#u(B") ("v" "$B#v(B") ("w" "$B#w(B")
("x" "$B#x(B") ("y" "$B#y(B") ("z" "$B#z(B") ("{" "$B!P(B")
("|" "$B!C(B") ("}" "$B!Q(B") ("~" "$B!A(B")
("qq" quail-japanese-switch-package)
("qh" quail-japanese-switch-package)
)
(defun quail-japanese-hankaku-update-translation (control-flag)
(cond ((eq control-flag t)
(insert (japanese-hankaku quail-current-str))
(quail-terminate-translation))
((null control-flag)
(insert (if quail-current-str
(japanese-hankaku quail-current-str)
quail-current-key)))
(t ; i.e. (numberp control-flag)
(cond ((= (aref quail-current-key 0) ?n)
(insert ?(I](B))
((= (aref quail-current-key 0) (aref quail-current-key 1))
(insert ?(I/(B))
(t
(insert (aref quail-current-key 0))))
(setq unread-command-events
(list (aref quail-current-key control-flag)))
(quail-terminate-translation))))
(quail-define-package
"japanese-hankaku-kana"
"Japanese" "(I1(B"
nil
"Japanese hankaku katakana input method by Roman transliteration
---- Special key bindings ----
qq: toggle between `japanese-hankaku-kana' and `japanese-ascii'
"
nil t t nil nil nil nil nil
'quail-japanese-hankaku-update-translation)
;; Use the same map as that of `japanese'.
(setcar (cdr (cdr quail-current-package))
(nth 2 (assoc "japanese" quail-package-alist)))
(quail-define-package
"japanese-hiragana" "Japanese" "$B$"(B"
nil
"Japanese hiragana input method by Roman transliteration"
nil t t nil nil nil nil nil
'quail-japanese-update-translation)
;; Use the same map as that of `japanese'.
(setcar (cdr (cdr quail-current-package))
(nth 2 (assoc "japanese" quail-package-alist)))
;; Update Quail translation region while converting Hiragana to Katakana.
(defun quail-japanese-katakana-update-translation (control-flag)
(cond ((eq control-flag t)
(insert (japanese-katakana quail-current-str))
(quail-terminate-translation))
((null control-flag)
(insert (if quail-current-str
(japanese-katakana quail-current-str)
quail-current-key)))
(t ; i.e. (numberp control-flag)
(cond ((= (aref quail-current-key 0) ?n)
(insert ?$B%s(B))
((= (aref quail-current-key 0) (aref quail-current-key 1))
(insert ?$B%C(B))
(t
(insert (aref quail-current-key 0))))
(setq unread-command-events
(list (aref quail-current-key control-flag)))
(quail-terminate-translation))))
(quail-define-package
"japanese-katakana" "Japanese" "$B%"(B"
nil
"Japanese katakana input method by Roman transliteration"
nil t t nil nil nil nil nil
'quail-japanese-katakana-update-translation)
;; Use the same map as that of `japanese'.
(setcar (cdr (cdr quail-current-package))
(nth 2 (assoc "japanese" quail-package-alist)))

266
leim/quail/lao.el Normal file
View file

@ -0,0 +1,266 @@
;;; quail/lao.el --- Quail package for inputting Lao characters
;; Copyright (C) 1997 Electrotechnical Laboratory, JAPAN.
;; Licensed to the Free Software Foundation.
;; Keywords: multilingual, input method, Lao
;; This file is part of GNU Emacs.
;; GNU Emacs is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation; either version 2, or (at your option)
;; any later version.
;; GNU Emacs 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 General Public License for more details.
;; You should have received a copy of the GNU General Public License
;; along with GNU Emacs; see the file COPYING. If not, write to the
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
;; Boston, MA 02111-1307, USA.
;;; Code:
(require 'quail)
(require 'lao-util)
(eval-and-compile
(defconst lao-keyboard-mapping
[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ; control codes
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ; control codes
0 "1" "=" "3" "4" "(1l(B" "5" "(1'(B" ; SPC .. '
"7" "8" "6" "(1mh(B" "(1A(B" "9" "(1c(B" "(1=(B" ; ( .. /
"(1"(B" "(1B(B" "(1?(B" "(1b(B" "(16(B" "(1X(B" "(1Y(B" "(1$(B" ; 0 .. 7
"(15(B" "(1((B" "%" "(1G(B" "(1}(B" "(1m(B" ">" "\)" ; 8 .. ?
"2" "(1Qi(B" "(1Vi(B" "(1O(B" "." "(1Si(B" "," ":" ; @ .. G
"(1j(B" "(1N(B" "(1k(B" "!" "?" "(1f(B" "(1Wi(B" "(1|(B" ; H .. O
"(1](B" "(1[i(B" "_" ";" "+" "(1Ui(B" "x" "0" ; P .. W
"\(" "(1Ti(B" "\"" "(1:(B" 0 "(1E(B" "(1\(B" "(1*(B" ; X .. _
"(1'(B" "(1Q(B" "(1V(B" "(1a(B" "(1!(B" "(1S(B" "(14(B" "(1`(B" ; ` .. g
"(1i(B" "(1C(B" "(1h(B" "(1R(B" "(1J(B" "(17(B" "(1W(B" "(19(B" ; h .. o
"(1-(B" "(1[(B" "(1>(B" "(1K(B" "(1P(B" "(1U(B" "(1M(B" "(1d(B" ; p .. w
"(1;(B" "(1T(B" "(1<(B" "-" "(1K\(B" "/" "~" 0] ; x .. DEL
"A table which maps ASCII key codes to corresponding Lao characters."
)
)
;; Template of a cdr part of a Quail map when a consonant is entered.
(defvar lao-consonant-alist nil)
;; Template of a cdr part of a Quail map when a vowel upper is entered.
(defvar lao-vowel-upper-alist nil)
;; Template of a cdr part of a Quail map when a vowel lower is entered.
(defvar lao-vowel-lower-alist nil)
;; Template of a cdr part of a Quail map when a semivowel lower is entered.
(defvar lao-semivowel-lower-alist nil)
;; Return a Quail map corresponding to KEY of length LEN.
;; The car part of the map is a translation generated automatically.
;; The cdr part of the map is a copy of ALIST.
(defun lao-generate-quail-map (key len alist)
(let ((str "")
(idx 0))
(while (< idx len)
(setq str (concat str (aref lao-keyboard-mapping (aref key idx)))
idx (1+ idx)))
(cons (string-to-char (compose-string str)) (copy-alist alist))))
;; Return a Quail map corresponding to KEY of length LEN when Lao
;; tone mark is entered.
(defun lao-tone-input (key len)
(lao-generate-quail-map key len nil))
;; Return a Quail map corresponding to KEY of length LEN when Lao
;; vowel upper is entered.
(defun lao-vowel-upper-input (key len)
(lao-generate-quail-map key len lao-vowel-upper-alist))
;; Return a Quail map corresponding to KEY of length LEN when Lao
;; vowel lower is entered.
(defun lao-vowel-lower-input (key len)
(lao-generate-quail-map key len lao-vowel-lower-alist))
;; Return a Quail map corresponding to KEY of length LEN when Lao
;; semivowel lower is entered.
(defun lao-semivowel-lower-input (key len)
(lao-generate-quail-map key len lao-semivowel-lower-alist))
;; Return an alist which can be a cdr part of a Quail map
;; corresponding to the current key when Lao consonant is entered.
(defun lao-consonant-input (key len)
(copy-alist lao-consonant-alist))
(quail-define-package
"lao" "Lao" "(1"(B" t
"Lao input method simulating Lao keyboard layout based on Thai TIS620"
nil t t t t)
(defmacro lao-quail-define-rules (&rest rules)
(let ((l rules)
consonant-alist
vowel-upper-alist
vowel-lower-alist
semivowel-lower-alist
rule trans ch c-set)
(while l
(setq rule (car l))
(setq trans (nth 1 rule))
(if (consp trans)
(setq trans (car trans)))
(setq c-set (char-category-set (string-to-char trans)))
(cond ((aref c-set ?2) ; vowel upper
(setq consonant-alist
(cons (cons (string-to-char (car rule))
'lao-vowel-upper-input)
consonant-alist)))
((aref c-set ?3) ; vowel lower
(setq consonant-alist
(cons (cons (string-to-char (car rule))
'lao-vowel-lower-input)
consonant-alist)
semivowel-lower-alist
(cons (cons (string-to-char (car rule))
'lao-vowel-lower-input)
semivowel-lower-alist)))
((aref c-set ?4) ; tone
(setq consonant-alist
(cons (cons (string-to-char (car rule))
'lao-tone-input)
consonant-alist)
vowel-upper-alist
(cons (cons (string-to-char (car rule))
'lao-tone-input)
vowel-upper-alist)
vowel-lower-alist
(cons (cons (string-to-char (car rule))
'lao-tone-input)
vowel-lower-alist)))
((aref c-set ?9) ; semivowel lower
(setq consonant-alist
(cons (cons (string-to-char (car rule))
'lao-semivowel-lower-input)
consonant-alist)
vowel-upper-alist
(cons (cons (string-to-char (car rule))
'lao-semivowel-lower-input)
vowel-upper-alist))))
(setq l (cdr l)))
(list 'progn
(cons 'quail-define-rules rules)
`(setq lao-consonant-alist ',consonant-alist
lao-vowel-upper-alist ',vowel-upper-alist
lao-vowel-lower-alist ',vowel-lower-alist
lao-semivowel-lower-alist ',semivowel-lower-alist))))
(lao-quail-define-rules
("!" "1")
("\"" "=")
("#" "3")
("$" "4")
("&" "5")
("%" "(1l(B")
("'" ("(1'(B" . lao-consonant-input))
("(" "7")
(")" "8")
("*" "6")
("+" "0(1mh1(B")
("," ("(1A(B" . lao-consonant-input))
("-" "9")
("." "(1c(B")
("/" ("(1=(B" . lao-consonant-input))
("0" ("(1"(B" . lao-consonant-input))
("1" ("(1B(B" . lao-consonant-input))
("2" ("(1?(B" . lao-consonant-input))
("3" "(1b(B")
("4" ("(16(B" . lao-consonant-input))
("5" "(1X(B")
("6" "(1Y(B")
("7" ("(1$(B" . lao-consonant-input))
("8" ("(15(B" . lao-consonant-input))
("9" ("(1((B" . lao-consonant-input))
(":" "%")
(";" ("(1G(B" . lao-consonant-input))
("<" ("(1}(B" . lao-consonant-input))
("=" "(1m(B")
(">" ">")
("?" ")")
("@" "2")
("A" "0(1Qi1(B")
("B" "0(1Vi1(B")
("C" "(1O(B")
("D" ".")
("E" "0(1Si1(B")
("F" ",")
("G" ":")
("H" "(1j(B")
("I" ("(1N(B" . lao-consonant-input))
("J" "(1k(B")
("K" "!")
("L" "?")
("M" "(1f(B")
("N" "0(1Wi1(B")
("O" ("(1|(B" . lao-consonant-input))
("P" "(1](B")
("Q" "0(1[i1(B")
("R" "_")
("S" ";")
("T" "+")
("U" "0(1Ui1(B")
("V" "x")
("W" "0")
("X" "(")
("Y" "0(1Ti1(B")
("Z" "\"")
("[" ("(1:(B" . lao-consonant-input))
("]" ("(1E(B" . lao-consonant-input))
("^" "(1\(B")
("_" ("(1*(B" . lao-consonant-input))
("`" ("(1'(B" . lao-consonant-input))
("a" "(1Q(B")
("b" "(1V(B")
("c" "(1a(B")
("d" ("(1!(B" . lao-consonant-input))
("e" "(1S(B")
("f" ("(14(B" . lao-consonant-input))
("g" "(1`(B")
("h" "(1i(B")
("i" ("(1C(B" . lao-consonant-input))
("j" "(1h(B")
("k" "(1R(B")
("l" ("(1J(B" . lao-consonant-input))
("m" ("(17(B" . lao-consonant-input))
("n" "(1W(B")
("o" ("(19(B" . lao-consonant-input))
("p" ("(1-(B" . lao-consonant-input))
("q" "(1[(B")
("r" ("(1>(B" . lao-consonant-input))
("s" ("(1K(B" . lao-consonant-input))
("t" "(1P(B")
("u" "(1U(B")
("v" ("(1M(B" . lao-consonant-input))
("w" "(1d(B")
("x" ("(1;(B" . lao-consonant-input))
("y" "(1T(B")
("z" ("(1<(B" . lao-consonant-input))
("{" "-")
("|" ("0(1K\1(B" . lao-consonant-input))
("}" "/")
("~" "(1l(B")
("\\0" "(1p(B")
("\\1" "(1q(B")
("\\2" "(1r(B")
("\\3" "(1s(B")
("\\4" "(1t(B")
("\\5" "(1u(B")
("\\6" "(1v(B")
("\\7" "(1w(B")
("\\8" "(1x(B")
("\\9" "(1y(B")
)
;;; quail/lao.el ends here

1491
leim/quail/latin-post.el Normal file

File diff suppressed because it is too large Load diff

612
leim/quail/latin-pre.el Normal file
View file

@ -0,0 +1,612 @@
;;; latin-pre.el -- Quail packages for inputting various European characters.
;; Copyright (C) 1997 Electrotechnical Laboratory, JAPAN.
;; Licensed to the Free Software Foundation.
;; Keywords: mule, multilingual, latin, input method
;; This file is part of GNU Emacs.
;; GNU Emacs is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation; either version 2, or (at your option)
;; any later version.
;; GNU Emacs 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 General Public License for more details.
;; You should have received a copy of the GNU General Public License
;; along with GNU Emacs; see the file COPYING. If not, write to the
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
;; Boston, MA 02111-1307, USA.
;;; Commentary:
;; All key translation maps are copied from iso-acc.el.
;;; Code:
(require 'quail)
(quail-define-package
"latin-1-prefix" "Latin-1" "1" t
"Latin-1 characters input method with prefix modifiers
effect | prefix | examples
------------+--------+----------
acute | ' | 'a -> ,Aa(B, '' -> ,A4(B
grave | ` | `a -> ,A`(B
circumflex | ^ | ^a -> ,Ab(B
diaeresis | \" | \"a -> ,Ad(B, \"\" -> ,A((B
tilde | ~ | ~a -> ,Ac(B
cedilla | ~ | ~c -> ,Ag(B
misc | ---- | \"s -> ,A_(B, ~d -> ,Ap(B, ~t -> ,A~(B, /a -> ,Ae(B, /e -> ,Af(B, /o -> ,Ax(B
symbol | ~ | ~> -> ,A;(B, ~< -> ,A+(B, ~! -> ,A!(B, ~? -> ,A?(B, ~~ -> ,A8(B
" nil t)
(quail-define-rules
("'A" ?,AA(B)
("'E" ?,AI(B)
("'I" ?,AM(B)
("'O" ?,AS(B)
("'U" ?,AZ(B)
("'Y" ?,A](B)
("'a" ?,Aa(B)
("'e" ?,Ai(B)
("'i" ?,Am(B)
("'o" ?,As(B)
("'u" ?,Az(B)
("'y" ?,A}(B)
("''" ?,A4(B)
("' " ?')
("`A" ?,A@(B)
("`E" ?,AH(B)
("`I" ?,AL(B)
("`O" ?,AR(B)
("`U" ?,AY(B)
("`a" ?,A`(B)
("`e" ?,Ah(B)
("`i" ?,Al(B)
("`o" ?,Ar(B)
("`u" ?,Ay(B)
("``" ?`)
("` " ?`)
("^A" ?,AB(B)
("^E" ?,AJ(B)
("^I" ?,AN(B)
("^O" ?,AT(B)
("^U" ?,A[(B)
("^a" ?,Ab(B)
("^e" ?,Aj(B)
("^i" ?,An(B)
("^o" ?,At(B)
("^u" ?,A{(B)
("^^" ?^)
("^ " ?^)
("\"A" ?,AD(B)
("\"E" ?,AK(B)
("\"I" ?,AO(B)
("\"O" ?,AV(B)
("\"U" ?,A\(B)
("\"a" ?,Ad(B)
("\"e" ?,Ak(B)
("\"i" ?,Ao(B)
("\"o" ?,Av(B)
("\"s" ?,A_(B)
("\"u" ?,A|(B)
("\"y" ?,A(B)
("\"\"" ?,A((B)
("\" " ?\")
("~A" ?,AC(B)
("~C" ?,AG(B)
("~D" ?,AP(B)
("~N" ?,AQ(B)
("~O" ?,AU(B)
("~T" ?,A^(B)
("~a" ?,Ac(B)
("~c" ?,Ag(B)
("~d" ?,Ap(B)
("~n" ?,Aq(B)
("~o" ?,Au(B)
("~t" ?,A~(B)
("~>" ?\,A;(B)
("~<" ?\,A+(B)
("~!" ?,A!(B)
("~?" ?,A?(B)
("~~" ?,A8(B)
("~ " ?~)
("/A" ?,AE(B)
("/E" ?,AF(B)
("/O" ?,AX(B)
("/a" ?,Ae(B)
("/e" ?,Af(B)
("/o" ?,Ax(B)
("//" ?,A0(B)
("/ " ? )
)
(quail-define-package
"catalan-prefix" "Latin-1" "CA" t
"Catalan and Spanish input method with prefix modifiers
effect | prefix | examples
------------+--------+----------
acute | ' | 'a -> ,Aa(B, '' -> ,A4(B
grave | ` | `a -> ,A`(B
diaeresis | \" | \"i -> ,Ao(B, \"\" -> ,A((B
tilde | ~ | ~n -> ,Aq(B
cedilla | ~ | ~c -> ,Ag(B
symbol | ~ | ~> -> ,A;(B, ~< -> ,A+(B, ~! -> ,A!(B, ~? -> ,A?(B
" nil t)
(quail-define-rules
("'A" ?,AA(B)
("'E" ?,AI(B)
("'I" ?,AM(B)
("'O" ?,AS(B)
("'U" ?,AZ(B)
("'a" ?,Aa(B)
("'e" ?,Ai(B)
("'i" ?,Am(B)
("'o" ?,As(B)
("'u" ?,Az(B)
("' " ?')
("`A" ?,A@(B)
("`E" ?,AH(B)
("`O" ?,AR(B)
("`a" ?,A`(B)
("`e" ?,Ah(B)
("`o" ?,Ar(B)
("` " ?`)
("\"I" ?,AO(B)
("\"U" ?,A\(B)
("\"i" ?,Ao(B)
("\"u" ?,A|(B)
("\" " ?\")
("~C" ?,AG(B)
("~N" ?,AQ(B)
("~c" ?,Ag(B)
("~n" ?,Aq(B)
("~>" ?\,A;(B)
("~<" ?\,A+(B)
("~!" ?,A!(B)
("~?" ?,A?(B)
("~ " ?~)
)
(quail-define-package
"esperanto-prefix" "Latin-1" "EO" t
"Esperanto input method with prefix modifiers
Key translation rules are:
^H -> ?,A&(B, ^J -> ?,A,(B, ^h -> ?,A6(B, ^j -> ?,A<(B, ^C -> ?,AF(B, ^G -> ?,AX(B,
^S -> ?,A^(B, ^c -> ?,Af(B, ^g -> ?,Ax(B, ^s -> ?,A~(B, ~U -> ?,A](B, ~u -> ?,A}(B
" nil t)
(quail-define-rules
("^H" ?,A&(B)
("^J" ?,A,(B)
("^h" ?,A6(B)
("^j" ?,A<(B)
("^C" ?,AF(B)
("^G" ?,AX(B)
("^S" ?,A^(B)
("^c" ?,Af(B)
("^g" ?,Ax(B)
("^s" ?,A~(B)
("^^" ?^)
("^ " ?^)
("~U" ?,A](B)
("~u" ?,A}(B)
("~ " ?~)
)
(quail-define-package
"french-prefix" "Latin-1" "FR" t
"French (Fran,Ag(Bais) input method with prefix modifiers
effect | prefix | examples
------------+--------+----------
acute | ' | 'e -> ,Ai(B
grave | ` | `a -> ,A`(B
circumflex | ^ | ^a -> ,Ab(B
diaeresis | \" | \"i -> ,Ao(B
cedilla | ~ or , | ~c -> ,Ag(B, ,c -> ,Ag(B
symbol | ~ | ~> -> ,A;(B, ~< -> ,A+(B
" nil t)
(quail-define-rules
("'E" ?,AI(B)
("'C" ?,AG(B)
("'e" ?,Ai(B)
("'c" ?,Ag(B)
("' " ?')
("`A" ?,A@(B)
("`E" ?,AH(B)
("`U" ?,AY(B)
("`a" ?,A`(B)
("`e" ?,Ah(B)
("`u" ?,Ay(B)
("` " ?`)
("^A" ?,AB(B)
("^E" ?,AJ(B)
("^I" ?,AN(B)
("^O" ?,AT(B)
("^U" ?,A[(B)
("^a" ?,Ab(B)
("^e" ?,Aj(B)
("^i" ?,An(B)
("^o" ?,At(B)
("^u" ?,A{(B)
("^ " ?^)
("\"E" ?,AK(B)
("\"I" ?,AO(B)
("\"e" ?,Ak(B)
("\"i" ?,Ao(B)
("\" " ?\")
("~<" ?\,A+(B)
("~>" ?\,A;(B)
("~C" ?,AG(B)
("~c" ?,Ag(B)
("~," ?,)
(",C" ?,AG(B)
(",c" ?,Ag(B)
(", " ?~)
)
(quail-define-package
"german-prefix" "Latin-1" "DE" t
"German (Deutsch) input method with prefix modifiers
Key translation rules are:
\"A -> ,AD(B -> \"O -> ,AV(B, \"U -> ,A\(B, \"s -> ?,A_(B
" nil t)
(quail-define-rules
("\"A" ?,AD(B)
("\"O" ?,AV(B)
("\"U" ?,A\(B)
("\"a" ?,Ad(B)
("\"o" ?,Av(B)
("\"u" ?,A|(B)
("\"s" ?,A_(B)
("\" " ?\")
)
(quail-define-package
"irish-prefix" "Latin-1" "GA" t
"Irish input method with prefix modifiers
Key translation rules are:
'A -> ,AA(B, 'E -> ,AI(B, 'I -> ,AM(B, 'O -> ,AS(B, 'U -> ,AZ(B
" nil t)
(quail-define-rules
("'A" ?,AA(B)
("'E" ?,AI(B)
("'I" ?,AM(B)
("'O" ?,AS(B)
("'U" ?,AZ(B)
("'a" ?,Aa(B)
("'e" ?,Ai(B)
("'i" ?,Am(B)
("'o" ?,As(B)
("'u" ?,Az(B)
("' " ?')
)
(quail-define-package
"portuguese-prefix" "Latin-1" "PT" t
"Portuguese input method with prefix modifiers
effect | prefix | examples
------------+--------+----------
acute | ' | 'a -> ,Aa(B, '' -> ,A4(B
grave | ` | `a -> ,A`(B
circumflex | ^ | ^a -> ,Ab(B
diaeresis | \" | \"u -> ,A|(B
tilde | ~ | ~a -> ,Ac(B
cedilla | ' or , | 'c -> ,Ag(B, ,c -> ,Ag(B
" nil t)
(quail-define-rules
("'A" ?,AA(B)
("'E" ?,AI(B)
("'I" ?,AM(B)
("'O" ?,AS(B)
("'U" ?,AZ(B)
("'C" ?,AG(B)
("'a" ?,Aa(B)
("'e" ?,Ai(B)
("'i" ?,Am(B)
("'o" ?,As(B)
("'u" ?,Az(B)
("'c" ?,Ag(B)
("' " ?')
("`A" ?,A@(B)
("`a" ?,A`(B)
("` " ?`)
("^A" ?,AB(B)
("^E" ?,AJ(B)
("^O" ?,AT(B)
("^a" ?,Ab(B)
("^e" ?,Aj(B)
("^o" ?,At(B)
("^ " ?^)
("\"U" ?,A\(B)
("\"u" ?,A|(B)
("\" " ?\")
("~A" ?,AC(B)
("~O" ?,AU(B)
("~a" ?,Ac(B)
("~o" ?,Au(B)
("~ " ?~)
(",c" ?,Ag(B)
(",C" ?,AG(B)
(",," ?,)
)
(quail-define-package
"spanish-prefix" "Latin-1" "ES" t
"Spanish (Espa,Aq(Bol) input method with prefix modifiers
effect | prefix | examples
------------+--------+----------
acute | ' | 'a -> ,Aa(B
diaeresis | \" | \"u -> ,A|(B
tilde | ~ | ~n -> ,Aq(B
symbol | ~ | ~> -> ,A;(B, ~< -> ,A+(B, ~! -> ,A!(B, ~? -> ,A?(B
" nil t)
(quail-define-rules
("'A" ?,AA(B)
("'E" ?,AI(B)
("'I" ?,AM(B)
("'O" ?,AS(B)
("'U" ?,AZ(B)
("'a" ?,Aa(B)
("'e" ?,Ai(B)
("'i" ?,Am(B)
("'o" ?,As(B)
("'u" ?,Az(B)
("' " ?')
("\"U" ?,A\(B)
("\"u" ?,A|(B)
("\" " ?\")
("~N" ?,AQ(B)
("~n" ?,Aq(B)
("~>" ?\,A;(B)
("~<" ?\,A+(B)
("~!" ?,A!(B)
("~?" ?,A?(B)
("~ " ?~)
)
(quail-define-package
"latin-2-prefix" "Latin-2" "2" t
"Latin-2 characters input method with prefix modifiers
effect | prefix | examples
------------+--------+----------
acute | ' | 'a -> ,Ba(B, '' -> ?,B4(B
circumflex | ^ | ^a -> ,Bb(B
diaeresis | \" | \"a -> ,Bd(B, \"\" -> ,B((B
breve | ~ | ~a -> ,Bc(B
caron | ~ | ~c -> ,Bh(B
cedilla | ` | `c -> ,Bg(B, `e -> ?,Bj(B
misc | ---- | 'd -> ,Bp(B, `l -> ,B3(B, `z -> ,B?(B, ~o -> ,Bu(B, ~u -> ,B{(B
symbol | ~ | `. -> ,B(B, ~~ -> ,B"(B, ~. -> ?,B8(B
" nil t)
(quail-define-rules
("'A" ?,BA(B)
("'C" ?,BF(B)
("'D" ?,BP(B)
("'E" ?,BI(B)
("'I" ?,BM(B)
("'L" ?,BE(B)
("'N" ?,BQ(B)
("'O" ?,BS(B)
("'R" ?,B@(B)
("'S" ?,B&(B)
("'U" ?,BZ(B)
("'Y" ?,B](B)
("'Z" ?,B,(B)
("'a" ?,Ba(B)
("'c" ?,Bf(B)
("'d" ?,Bp(B)
("'e" ?,Bi(B)
("'i" ?,Bm(B)
("'l" ?,Be(B)
("'n" ?,Bq(B)
("'o" ?,Bs(B)
("'r" ?,B`(B)
("'s" ?,B6(B)
("'u" ?,Bz(B)
("'y" ?,B}(B)
("'z" ?,B<(B)
("''" ?,B4(B)
("' " ?')
("`A" ?,B!(B)
("`C" ?,BG(B)
("`E" ?,BJ(B)
("`L" ?,B#(B)
("`S" ?,B*(B)
("`T" ?,B^(B)
("`Z" ?,B/(B)
("`a" ?,B1(B)
("`l" ?,B3(B)
("`c" ?,Bg(B)
("`e" ?,Bj(B)
("`s" ?,B:(B)
("`t" ?,B~(B)
("`z" ?,B?(B)
("``" ?,B*(B)
("`." ?,B(B)
("` " ?`)
("^A" ?,BB(B)
("^I" ?,BN(B)
("^O" ?,BT(B)
("^a" ?,Bb(B)
("^i" ?,Bn(B)
("^o" ?,Bt(B)
("^^" ?^)
("^ " ?^)
("\"A" ?,BD(B)
("\"E" ?,BK(B)
("\"O" ?,BV(B)
("\"U" ?,B\(B)
("\"a" ?,Bd(B)
("\"e" ?,Bk(B)
("\"o" ?,Bv(B)
("\"s" ?,B_(B)
("\"u" ?,B|(B)
("\"\"" ?,B((B)
("\" " ?\")
("~A" ?,BC(B)
("~C" ?,BH(B)
("~D" ?,BO(B)
("~L" ?,B%(B)
("~N" ?,BR(B)
("~O" ?,BU(B)
("~R" ?,BX(B)
("~S" ?,B)(B)
("~T" ?,B+(B)
("~U" ?,B[(B)
("~Z" ?,B.(B)
("~a" ?,Bc(B)
("~c" ?,Bh(B)
("~d" ?,Bo(B)
("~l" ?,B5(B)
("~n" ?,Br(B)
("~o" ?,Bu(B)
("~r" ?,Bx(B)
("~s" ?,B9(B)
("~t" ?,B;(B)
("~u" ?,B{(B)
("~z" ?,B>(B)
("~v" ?,B"(B)
("~~" ?,B"(B)
("~." ?,B8(B)
("~ " ?~)
)
(quail-define-package
"latin-3-prefix" "Latin-3" "3" t
"Latin-3 characters input method with prefix modifiers
effect | prefix | examples
------------+--------+----------
acute | ' | 'a -> ,Ca(B, '' -> ?,C4(B
grave | ` | `a -> ,C`(B
circumflex | ^ | ^a -> ,Cb(B
diaeresis | \" | \"a -> ,Cd(B, \"\" -> ,C((B
cedilla | ~ | ~c -> ,Cg(B, ~s -> ,C:(B, ~~ -> ,C8(B
dot above | ~ / . | ~o -> ,Cu(B, /o -> ,Cu(B, .o -> ,Cu(B
misc | ---- | \"s -> ,C_(B, ~g -> ,C;(B, ~u -> ,C}(B, /h -> ,C1(B, /i -> ,C9(B
symbol | ~ | ~` -> ,C"(B, /# -> ,C#(B, /$ -> ,C$(B, // -> ,C0(B
" nil t)
(quail-define-rules
("'A" ?,CA(B)
("'E" ?,CI(B)
("'I" ?,CM(B)
("'O" ?,CS(B)
("'U" ?,CZ(B)
("'a" ?,Ca(B)
("'e" ?,Ci(B)
("'i" ?,Cm(B)
("'o" ?,Cs(B)
("'u" ?,Cz(B)
("''" ?,C4(B)
("' " ?')
("`A" ?,C@(B)
("`E" ?,CH(B)
("`I" ?,CL(B)
("`O" ?,CR(B)
("`U" ?,CY(B)
("`a" ?,C`(B)
("`e" ?,Ch(B)
("`i" ?,Cl(B)
("`o" ?,Cr(B)
("`u" ?,Cy(B)
("``" ?`)
("` " ?`)
("^A" ?,CB(B)
("^C" ?,CF(B)
("^E" ?,CJ(B)
("^G" ?,CX(B)
("^H" ?,C&(B)
("^I" ?,CN(B)
("^J" ?,C,(B)
("^O" ?,CT(B)
("^S" ?,C^(B)
("^U" ?,C[(B)
("^a" ?,Cb(B)
("^c" ?,Cf(B)
("^e" ?,Cj(B)
("^g" ?,Cx(B)
("^h" ?,C6(B)
("^i" ?,Cn(B)
("^j" ?,C<(B)
("^o" ?,Ct(B)
("^s" ?,C~(B)
("^u" ?,C{(B)
("^^" ?^)
("^ " ?^)
("\"A" ?,CD(B)
("\"E" ?,CK(B)
("\"I" ?,CO(B)
("\"O" ?,CV(B)
("\"U" ?,C\(B)
("\"a" ?,Cd(B)
("\"e" ?,Ck(B)
("\"i" ?,Co(B)
("\"o" ?,Cv(B)
("\"u" ?,C|(B)
("\"s" ?,C_(B)
("\"\"" ?,C((B)
("\" " ?\")
("~A" ?,CC(B)
("~C" ?,CG(B)
("~D" ?,CP(B)
("~N" ?,CQ(B)
("~O" ?,CU(B)
("~a" ?,Cc(B)
("~c" ?,Cg(B)
("~d" ?,Cp(B)
("~n" ?,Cq(B)
("~o" ?,Cu(B)
("~$" ?,C%(B)
("~S" ?,C*(B)
("~s" ?,C:(B)
("~G" ?,C+(B)
("~g" ?,C;(B)
("~U" ?,C](B)
("~u" ?,C}(B)
("~`" ?,C"(B)
("~~" ?,C8(B)
("~ " ?~)
("/C" ?,CE(B)
("/G" ?,CU(B)
("/H" ?,C!(B)
("/I" ?,C)(B)
("/Z" ?,C/(B)
("/c" ?,Ce(B)
("/g" ?,Cu(B)
("/h" ?,C1(B)
("/i" ?,C9(B)
("/z" ?,C?(B)
("/r" ?,C.(B)
("/." ?,C(B)
("/#" ?,C#(B)
("/$" ?,C$(B)
("//" ?,C0(B)
("/ " ?/)
(".C" ?,CE(B)
(".G" ?,CU(B)
(".I" ?,C)(B)
(".Z" ?,C/(B)
(".c" ?,Ce(B)
(".g" ?,Cu(B)
(".z" ?,C?(B)
)

383
leim/quail/lrt.el Normal file
View file

@ -0,0 +1,383 @@
;;; quail/lrt.el --- Quail package for inputting Lao characters by LRT method
;; Copyright (C) 1997 Electrotechnical Laboratory, JAPAN.
;; Licensed to the Free Software Foundation.
;; Keywords: multilingual, input method, Lao, LRT.
;; This file is part of GNU Emacs.
;; GNU Emacs is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation; either version 2, or (at your option)
;; any later version.
;; GNU Emacs 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 General Public License for more details.
;; You should have received a copy of the GNU General Public License
;; along with GNU Emacs; see the file COPYING. If not, write to the
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
;; Boston, MA 02111-1307, USA.
;;; Code:
(require 'quail)
(require 'lao-util)
;; LRT (Lao Roman Transcription) input method accepts the following
;; key sequence:
;; consonant [+ semi-vowel-sign-lo ] + vowel [+ maa-sakod ] [+ tone-mark ]
(eval-and-compile
;; Upper vowels and tone-marks are put on the letter.
;; Semi-vowel-sign-lo and lower vowels are put under the letter.
(defconst lrt-single-consonant-table
'(("k" . ?(1!(B)
("kh" . ?(1"(B)
("qh" . ?(1$(B)
("ng" . ?(1'(B)
("j" . ?(1((B)
("s" . ?(1J(B)
("x" . ?(1*(B)
("y" . ?(1-(B)
("d" . ?(14(B)
("t" . ?(15(B)
("th" . ?(16(B)
("dh" . ?(17(B)
("n" . ?(19(B)
("b" . ?(1:(B)
("p" . ?(1;(B)
("hp" . ?(1<(B)
("fh" . ?(1=(B)
("ph" . ?(1>(B)
("f" . ?(1?(B)
("m" . ?(1A(B)
("gn" . ?(1B(B)
("l" . ?(1E(B)
("r" . ?(1C(B)
("v" . ?(1G(B)
("w" . ?(1G(B)
("hh" . ?(1K(B)
("O" . ?(1M(B)
("h" . ?(1N(B)
("nh" . ?(1|(B)
("mh" . ?(1}(B)
("lh" . ?0(1K\1(B)
))
;; Semi-vowel-sign-lo is put under the first letter.
;; Lower vowels are put under the last letter.
;; Upper vowels and tone-marks are put on the last letter.
(defconst lrt-double-consonant-table
'(("ngh" . "(1K'(B")
("yh" . "(1K](B")
("wh" . "(1KG(B")
("hl" . "(1KE(B")
("hy" . "(1K-(B")
("hn" . "(1K9(B")
("hm" . "(1KA(B")
))
(defconst lrt-semi-vowel-sign-lo
'("r" . ?(1\(B))
(defconst lrt-vowel-table
'(("a" "(1P(B" (0 ?(1P(B) (0 ?(1Q(B))
("ar" "(1R(B" (0 ?(1R(B))
("i" "(1T(B" (0 ?(1T(B))
("ii" "(1U(B" (0 ?(1U(B))
("eu" "(1V(B" (0 ?(1V(B))
("ur" "(1W(B" (0 ?(1W(B))
("u" "(1X(B" (0 ?(1X(B))
("uu" "(1Y(B" (0 ?(1Y(B))
("e" "(1`(B (1P(B" (?(1`(B 0 ?(1P(B) (?(1`(B 0 ?(1Q(B))
("ee" "(1`(B" (?(1`(B 0))
("ae" "(1a(B (1P(B" (?(1a(B 0 ?(1P(B) (?(1a(B 0 ?(1Q(B))
("aa" "(1a(B" (?(1a(B 0))
("o" "(1b(B (1P(B" (?(1b(B 0 ?(1P(B) (0 ?(1[(B) (?(1-(B ?(1b(B 0 ?(1Q(B) (?(1G(B ?(1b(B 0 ?(1Q(B))
("oo" "(1b(B" (?(1b(B 0))
("oe" "(1`(B (1RP(B" (?(1`(B 0 ?(1R(B ?(1P(B) (0 ?(1Q(B ?(1M(B))
("or" "(1m(B" (0 ?(1m(B) (0 ?(1M(B))
("er" "(1`(B (1T(B" (?(1`(B 0 ?(1T(B))
("ir" "(1`(B (1U(B" (?(1`(B 0 ?(1U(B))
("oua" "(1[GP(B" (0 ?(1[(B ?(1G(B ?(1P(B) (0 ?(1Q(B ?(1G(B))
("ua" "(1[G(B" (0 ?(1[(B ?(1G(B) (0 ?(1G(B))
("ie" "(1`Q]P(B" (?(1`(B 0 ?(1Q(B ?(1](B ?(1P(B) (0 ?(1Q(B ?(1](B))
("ia" "(1`Q](B" (?(1`(B 0 ?(1Q(B ?(1](B) (0 ?(1](B))
("eua" "(1`VM(B" (?(1`(B 0 ?(1V(B ?(1M(B))
("ea" "(1`WM(B" (?(1`(B 0 ?(1W(B ?(1M(B))
("ai" "(1d(B" (?(1d(B 0))
("ei" "(1c(B" (?(1c(B 0))
("ow" "(1`[R(B" (?(1`(B 0 ?(1[(B ?(1R(B))
("am" "(1S(B" (?(1S(B 0))))
;; Maa-sakod is put at the tail.
(defconst lrt-maa-sakod-table
'((?k . ?(1!(B)
(?g . ?(1'(B)
(?y . ?(1-(B)
(?d . ?(14(B)
(?n . ?(19(B)
(?b . ?(1:(B)
(?m . ?(1A(B)
(?v . ?(1G(B)
(?w . ?(1G(B)
))
(defconst lrt-tone-mark-table
'(("'" . ?(1h(B)
("\"" . ?(1i(B)
("^" . ?(1j(B)
("+" . ?(1k(B)
("~" . ?(1l(B)))
;; Return list of composing patterns for normal (without maa-sakod)
;; key sequence and with-maa-sakod key sequence starting with single
;; consonant C and optional SEMI-VOWEL.
(defun lrt-composing-pattern-single-c (c semi-vowel vowel-pattern)
(let* ((patterns (copy-sequence vowel-pattern))
(tail patterns)
place)
;; Embed C and SEMI-VOWEL (if any) at the place of 0.
(while tail
;; At first, make a copy.
(setcar tail (copy-sequence (car tail)))
;; Then, do embedding.
(setq place (memq 0 (car tail)))
(setcar place c)
(if semi-vowel
(setcdr place (cons semi-vowel (cdr place))))
(setq tail (cdr tail)))
patterns))
;; Return list of composing patterns for normal (without maa-sakod)
;; key sequence and with-maa-sakod key sequence starting with double
;; consonant STR and optional SEMI-VOWEL.
(defun lrt-composing-pattern-double-c (str semi-vowel vowel-pattern)
(let* ((patterns (copy-sequence vowel-pattern))
(tail patterns)
(chars (string-to-list str))
place)
;; Embed C and SEMI-VOWEL (if any) at the place of 0.
(while tail
;; At first, make a copy.
(setcar tail (copy-sequence (car tail)))
;; Then, do embedding.
(setq place (memq 0 (car tail)))
(setcar place (car chars))
(setcdr place (cons (nth 1 chars) (cdr place)))
(if semi-vowel
;; Embed SEMI-VOWEL in between CHARS.
(setcdr place (cons semi-vowel (cdr place))))
(setq tail (cdr tail)))
patterns))
;; Return a string made of characters in CHAR-LIST while composing
;; such characters as vowel-upper, vowel-lower, semi-vowel(lower),
;; and tone-mark with the preceding base character.
(defun lrt-compose-string (char-list)
;; Make a copy because the following work alters it.
(setq char-list (copy-sequence char-list))
(let ((i -1)
(l char-list))
(while l
(if (memq (get-char-code-property (car l) 'phonetic-type)
'(vowel-upper vowel-lower semivowel-lower tone))
(let (composed-char)
(if (< i 0)
;; No preceding base character.
(error "Invalid CHAR-LIST: %s" char-list))
(setq composed-char
(string-to-char (compose-chars (nth i char-list) (car l))))
(setcar (nthcdr i char-list) composed-char)
(setq l (cdr l))
(setcdr (nthcdr i char-list) l))
(setq l (cdr l))
(setq i (1+ i))))
(concat (apply 'vector char-list))))
(defun lrt-compose-c-s-v (consonant semi-vowel vowel-pattern)
(let ((pattern-list
(if (integerp consonant)
(lrt-composing-pattern-single-c
consonant semi-vowel vowel-pattern)
(lrt-composing-pattern-double-c
consonant semi-vowel vowel-pattern))))
(cons (vector (lrt-compose-string (car pattern-list)))
(cons t pattern-list))))
)
(defun lrt-handle-maa-sakod ()
(interactive)
(if (= (length quail-current-key) 0)
(quail-self-insert-command)
(if (not (and quail-current-data (car quail-current-data)))
(progn
(setq quail-current-data nil)
(setq unread-command-events
(cons last-command-event unread-command-events))
(quail-terminate-translation))
(if (not (integerp last-command-event))
(error "Bogus calling sequence"))
(let* ((maa-sakod (cdr (assq last-command-event lrt-maa-sakod-table)))
(maa-sakod-pattern (append
(or (cdr (assq maa-sakod
(nthcdr 3 quail-current-data)))
(nth 2 quail-current-data)
(nth 1 quail-current-data))
(list maa-sakod))))
(quail-delete-region)
(setq quail-current-str (lrt-compose-string maa-sakod-pattern))
(insert quail-current-str)
(setq quail-current-key " ")
(quail-show-translations)
(setq quail-current-data (list nil maa-sakod-pattern))))))
(defun lrt-handle-tone-mark ()
(interactive)
(if (= (length quail-current-key) 0)
(quail-self-insert-command)
(if (not quail-current-data)
(progn
(setq unread-command-events
(cons last-command-event unread-command-events))
(quail-terminate-translation))
(if (not (integerp last-command-event))
(error "Bogus calling sequence"))
(let* ((tone-mark (cdr (assoc (char-to-string last-command-event)
lrt-tone-mark-table)))
(tone-mark-pattern
(if (car quail-current-data)
(copy-sequence (nth 1 quail-current-data))
;; No need of copy because lrt-handle-maa-sakod should
;; have already done it.
(nth 1 quail-current-data)))
(tail tone-mark-pattern)
place)
;; Find a place to embed TONE-MARK. It should be after a
;; single or double consonant.
(while (and tail (not place))
(if (and
;; Skip `(1K(B', the first letter of double consonant.
(/= (car tail) ?(1K(B)
(eq (get-char-code-property (car tail) 'phonetic-type)
'consonant))
(progn
(setq place tail)
(setq tail (cdr tail))
(while (and tail
(memq (get-char-code-property (car tail)
'phonetic-type)
'(vowel-upper vowel-lower semivowel-lower)))
(setq place tail tail (cdr tail))))
(setq tail (cdr tail))))
;; Embed TONE-MARK.
(setcdr place (cons tone-mark (cdr place)))
(quail-delete-region)
(insert (lrt-compose-string tone-mark-pattern))
(setq quail-current-data nil)
(quail-terminate-translation)))))
(defmacro lrt-generate-quail-map ()
`(quail-install-map
',(let ((map (list nil))
(semi-vowel-key (car lrt-semi-vowel-sign-lo))
(semi-vowel-char (cdr lrt-semi-vowel-sign-lo))
l1 e1 l2 e2 pattern key)
;; Single consonants.
(setq l1 lrt-single-consonant-table)
(while l1
(setq e1 (car l1))
(quail-defrule-internal (car e1) (cdr e1) map)
(quail-defrule-internal
(concat (car e1) semi-vowel-key)
(compose-string (format "%c%c" (cdr e1) semi-vowel-char))
map)
(setq l2 lrt-vowel-table)
(while l2
(setq e2 (car l2))
(setq key (concat (car e1) (car e2))
pattern (lrt-compose-c-s-v (cdr e1) nil (nthcdr 2 e2)))
(quail-defrule-internal key pattern map)
(quail-defrule-internal
(concat key " ")
(vector (concat (aref (car pattern) 0) " ")) map)
(setq key (concat (car e1) semi-vowel-key (car e2))
pattern (lrt-compose-c-s-v (cdr e1) semi-vowel-char
(nthcdr 2 e2)))
(quail-defrule-internal key pattern map)
(quail-defrule-internal
(concat key " ")
(vector (concat (aref (car pattern) 0) " ")) map)
(setq l2 (cdr l2)))
(setq l1 (cdr l1)))
;; Double consonants.
(setq l1 lrt-double-consonant-table)
(while l1
(setq e1 (car l1))
(quail-defrule-internal (car e1) (vector (cdr e1)) map)
(quail-defrule-internal
(concat (car e1) semi-vowel-key)
(vector (concat (compose-string
(format "%c%c" (sref (cdr e1) 0) semi-vowel-char))
(substring (cdr e1) (charset-bytes 'lao))))
map)
(setq l2 lrt-vowel-table)
(while l2
(setq e2 (car l2))
(setq key (concat (car e1) (car e2))
pattern (lrt-compose-c-s-v (cdr e1) nil (nthcdr 2 e2)))
(quail-defrule-internal key pattern map)
(quail-defrule-internal
(concat key " ")
(vector (concat (aref (car pattern) 0) " ")) map)
(setq key (concat (car e1) semi-vowel-key (car e2))
pattern (lrt-compose-c-s-v (cdr e1) semi-vowel-char
(nthcdr 2 e2)))
(quail-defrule-internal key pattern map)
(quail-defrule-internal
(concat key " ")
(vector (concat (aref (car pattern) 0) " ")) map)
(setq l2 (cdr l2)))
(setq l1 (cdr l1)))
;; Vowels.
(setq l1 lrt-vowel-table)
(while l1
(setq e1 (car l1) l1 (cdr l1))
(quail-defrule-internal (car e1) (vector (nth 1 e1)) map))
;; Tone-marks.
(setq l1 lrt-tone-mark-table)
(while l1
(setq e1 (car l1) l1 (cdr l1))
(quail-defrule-internal (car e1) (cdr e1) map))
map)))
(quail-define-package
"lao-lrt" "Lao" "(1"(BR" t
"Lao input method using LRT (Lao Roman Transcription)"
'(("k" . lrt-handle-maa-sakod)
("g" . lrt-handle-maa-sakod)
("y" . lrt-handle-maa-sakod)
("d" . lrt-handle-maa-sakod)
("n" . lrt-handle-maa-sakod)
("b" . lrt-handle-maa-sakod)
("m" . lrt-handle-maa-sakod)
("v" . lrt-handle-maa-sakod)
("w" . lrt-handle-maa-sakod)
("'" . lrt-handle-tone-mark)
("\"" . lrt-handle-tone-mark)
("^" . lrt-handle-tone-mark)
("+" . lrt-handle-tone-mark)
("~" . lrt-handle-tone-mark))
'forget-last-selection 'deterministic 'kbd-translate 'show-layout)
(lrt-generate-quail-map)

707
leim/quail/quick-b5.el Normal file
View file

@ -0,0 +1,707 @@
(require 'quail)
;; # HANYU input table for mule
;; AUTHOR: Chue Chi To ($(07C,6Fq(B)
;; DATE: 28 NOV 1994
;; ENCODE: BIG5
;; MULTICHOICE: YES
;; PROMPT: $(0&d'GTT&,!JX|/y!K(B
;; # define keys
;; VALIDINPUTKEY: abcdefghijklmnopqrstuvwxyz/?;:'"\|[{]}`~!@#$%^&*()-_=+
;; SELECTKEY: 1\040
;; SELECTKEY: 2
;; SELECTKEY: 3
;; SELECTKEY: 4
;; SELECTKEY: 5
;; SELECTKEY: 6
;; SELECTKEY: 7
;; SELECTKEY: 8
;; SELECTKEY: 9
;; SELECTKEY: 0
;; BACKSPACE: \010\177
;; DELETEALL: \015\025
;; MOVERIGHT: .>
;; MOVELEFT: ,<
;; REPEATKEY: \020\022
;; # the following line must not be removed
;; BEGINDICTIONARY
(quail-define-package
"chinese-b5-quick" "Chinese-BIG5" "$(0X|(BB"
t
"$(0&d'GTT&,!JX|/y!K(BBIG5
$(0KHM$X|/yTT&,WoOu(B
[Q $(0'D(B] [W $(0(q(B] [E $(0'V(B] [R $(0&H(B] [T $(0'>(B] [Y $(0&4(B] [U $(0&U(B] [I $(0'B(B] [O $(0&*(B] [P $(0'A(B]
[A $(0'K(B] [S $(0&T(B] [D $(0'N(B] [F $(0'W(B] [G $(0&I(B] [H $(0*M(B] [J $(0&3(B] [L $(0&d(B]
[Z ] [X $(0[E(B] [C $(01[(B] [V $(0&M(B] [B $(0'M(B] [N $(0&_(B] [M $(0&"(B]
"
'(
("." . quail-next-translation-block)
("," . quail-prev-translation-block)
)
nil nil)
(quail-define-rules
;; #
("a" "$(0'K'L(B")
("aa" "$(0A_AaDgF=/zUp$(1`<'.CL[S[W[Z(B")
("ab" "$(0=*A^Dh$(1*v5mJ`$(0/}$(1PqeYai(B")
("ac" "$(0YaYoZ:]C^P$(1<LCKWA$(0K&$(1jU(B")
("ad" "$(03RDf$(1$;$(00<$(1.#d=CFUQ(B")
("ae" "$(0@3F?FAO3Uq;8Z;$(1`@'('/*y5o[X(B")
("af" "$(0AcFzF}RsW|Y`$(1's'z<J=kCHDiPnWE\1ahi!k!k4$(0A`$(1k5p:m+nkp"p#(B")
("ag" "$(0DYDdM\XL$(1.N/V$(0/w$(1:ki"<IURW>[Y`>gg(B")
("ah" "$(0?qFC/yN`$(1HU')'2*q5p<KBR(B")
("ai" "$(07mDiM]M_3WRr$(1Pp$<*nB|(B")
("aj" "$(0,UF>F@LMRq\P]=$(1$::,<G$(0*/$(1CMWFHXPoWB(B")
("ak" "$(03QDcW{$(1$='''+=s$(00#$(1CGp;CNPrW?[V\~`?jT(B")
("al" "$(0/|0"+<A]$(1WC$(0IQ$(1*r*x@yNY(B")
("am" "$(0/~3T5o7sFBK%$(1:+J_$(0(Z$(1WGjV[Td;(B")
("an" "$(06L$(1"N$(01]$(1'1AB*o(B")
("ao" "$(03S$(1au$(03X7t:aFYM[Yb$(1','K*tPlPmag(B")
("ap" "$(0;3A-/{^;$(1h~*p(B")
("aq" "$(0W}$(1CIl[WDdQ(B")
("ar" "$(07r;C='AdM^M`O43PQe$(1_X$(0WzW~$(1*u/YHVTH(B")
("as" "$(0=,3U[r$(1AA'&'**z/W/X3q(B")
("at" "$(03VDeGBY_0$[C$(1d<HWJaW@(B")
("au" "$(02$3N4`7p;)=&QfRo'<$(1#fgf$>'0*s5l5n<F<H<MACD'D)K5[U`=(B")
("av" "$(07o=(*cFD$(1l\$(0\p$(1UP(B")
("aw" "$(07q$(1l](B")
("ax" "$(0Tp$(1US(B")
("ay" "$(0=)$(1[R(B")
("b" "$(0'M(B")
("ba" "$(09\$(1bC$(0GHHoQ/W'[%$(1-'7Q?2EGF;YTZb]j(B")
("bb" "$(011:m>iGCHtLSR70&SQ$(1js$(0WU^U$(1(Q9V>B>E>FEHFAM2XcZ]]i^[bkf*(B")
("bc" "$(0.'6DCPOyOzSyWSWVY-]v^E$(1,{$(0-K$(1@MpdN>TTXbYW[f]kdUf)gviDlClp(B")
("bd" "$(00i1Z>jB{GJGKOwYy$(1%N(:-"12$(0+x$(13&bB7M8PF>GbTX^X(B")
("be" "$(00%13154<?JEyH)H*MtOZPN$(1,F5r8L8T$(0.@$(1?4qyEDEFFCFEL+N=RFU|Z\^WbldCiEiG(B")
("bf" "$(0>CBT0gM6$(1q*$(0PQSRSmVKVL[\\W]P_F$(1ECL.M.TYV:XkYCYYY\Y]]l^Fbme$f+fPhVhWibk*k3k7m,(B")
("bg" "$(0>;GEGNH(M2PLRKSPTtVGV~XmYg$(1217N$(0-?$(18No<8Q8R?6B.EEF@H]S)S/WHY_iakomt(B")
("bh" "$(04c4d:A:C<4<5H$POQ2,0Sz$(1cc$y%%-(-)18>A(B")
("bi" "$(0142&6C8y:BCMLTQ-V;WW^W_0_4$(1$u$x,D$(0-=$(1,xl6,z-&/28O>GHqM|S+S.Z3^YfOfsgzju(B")
("bj" "$(0-<5]CQ-9GL$(1g9$(0Hq[0$(1(;(O3%7P>D?8EAF?HpS*TRTSXiYXZa]h]mdfg6(B")
("bk" "$(07w9_9b<vCLKtPMVI$(1"i,!,|-*$(06s$(17Lq+COEIF<L,Xj[v_b`qc_g7iz(B")
("bl" "$(0H'Ip$(1(P,J,}15$(050$(120Y^3=3?@v@|@}H-N?ODV>(B")
("bm" "$(0->5+54CKH%KvQ,$(1!*,H-$$(0'c$(113jt8M@P@RFHG`M&RIS,^U(B")
("bn" "$(0)I*[+5-22-6M9]&~D2$(1f'$(0Ms$(1!h!~#/$w(<(M(N,y11233p7O7V8U9WFFL0Z^(B")
("bo" "$(08|>=?ICTD;GDGFHxU1W&XMXoZT$(1-!-+/Z/[162/228KFDL-$(06E$(1Xf^V]n(B")
("bp" "$(0H&U_V}[m[s\{$(1?7M1Xh[x$(08{$(1_c(B")
("bq" "$(05)><CVH"(oVJ$(1]g7UGaYU(B")
("br" "$(0.S519`9cD1D3D5HpHwOvQ*R!SxU2W%WNWQXn\F$(1#,)L*|-%191<7R?3EJFIM0TUZc$(0)R$(1c^lAh0(B")
("bs" "$(0*Z+8199h@:LQ]/]q$(1,E,I-#17[y^Z$(0'z$(1iF(B")
("bt" "$(0(x9g>nOxVH\0'v^)$(1lB$(0^V$(1G[M-M/[w_d(B")
("bu" "$(0(y-E-g/&12164^(p52$(1p*$(09[9a>l?=CJCRE+GMM3\.$(1'4*{,C,G,~3O8J8S>@>C>H?1@N@OE@EBFGL4N0SiXdYVY[Z__Gg$mWnS(B")
("bv" "$(01-9d>:>o+uCO$(1c`$(0H#LUM5Q.UPW$Zi]I$(1(9142.7S?5BAFBS-Xe(B")
("bw" "$(0KsH+TJ$(1YZF=(B")
("bx" "$(09kY,(B")
("by" "$(0CS&f$(18V(B")
("c" "$(01[(B")
("ca" "$(0Ae$(1j>$(0IITd$(1A;Ny[0[F[J[N_~j:(B")
("cb" "$(0ICQZQ[TkYZY\[6_-$(1A>H8HLHQNgU9$(0D]$(1[.qc[>[G[L[O`.d0gOjBjOlUn9n?(B")
("cc" "$(0?OIdIeQbYVYY]6_>$(1GZH<[D$(0:_$(1[IpZ`6`Ud#g\j@jDjKlSn8o[(B")
("cd" "$(0TiYX^M$(1:%:(HRNaNzN~O"$(0MT$(1UCn>[+[6`0`2d*d1gVjNjQlTlW(B")
("ce" "$(0INThWlWvWw[;^N$(1A3A<NtU0U3U6$(0Db$(1UIr2[4[A[C`#`&`'d+gYg]jJlYn:o](B")
("cf" "$(0WuYW[=[>^L$(1'{A,$(0Wp$(1V8r0[-[2[<d%d2d|e(gSg^j?jGm8(B")
("cg" "$(0MVQ`QcTjWt[:[A\M]8_@$(1#L$(0D[$(1:'qfH7NhNvO#U;[B`(`3gXqd(B")
("ch" "$(0,/DZILQYTgWx$(1:#:)A?UK`9$(0'"$(1c\rHgTgcj7jMlX(B")
("ci" "$(0?k?m?pIJIKTe[?];]|$(19R:"A/A6A:H9HF$(0&}$(1HMr:O!U.U:U>_;_yd$d&gUg`gbj;jHnAqCqF(B")
("cj" "$(0QXQaQd[9]:_6$(19|A7$(0:]$(1Ndo\Nf[:[K`/d7gaj<jC(B")
("ck" "$(0IBMPWmWq[8$(1'#5j9~A1HENiU7`)g3gWj8$(0'Y$(1j=r1(B")
("cl" "$(0/u24?nG&IDIP$(1"?$(0&:$(1%-_{3BA0A4NrU!UE(B")
("cm" "$(09S?o$(1qE$(0D^IAWs[7$(1H:HBHDHPNuNxTPUG[/[;`-d(d/gQ(B")
("cn" "$(08W:\:^D`$(1,;-b3F3H$(02($(1:!n<A8NbNlNsUJ[7]]`"(B")
("co" "$(0B$DaT`$(1A5HGHTNjU4[1`%d"gPgZjEjP$(0=D$(1lOqGlQlZ(B")
("cp" "$(0NlTm$(19}A+A.H6H?HKNeU5UDW.[H`$$(0/D$(1a\p[d,d8g_jLlNoToZ(B")
("cq" "$(19SHI$(0Wo$(1N}lR`1j9(B")
("cr" "$(0?lI@IFIHMRMSMUQ^TbTlTnWrYTY]Y^$(1H;H@HAHHHJHN$(0-H$(1N:p\NcNmNnNoNwU2U<U?UBUL[*[5[8[E`!`7`8d'd.gRjR(B")
("cs" "$(0D\IMQ\Q]WyYU]<$(13G:&A*NpN{jIlV$(0&|$(1qe(B")
("ct" "$(0MYTcY[]}^p$(1#r$(04Z$(1A-n@U1[3d)d4jA(B")
("cu" "$(0,&0jD_IGMZQ_Tf+,[5$(1d6$(0\N$(1-c0#A2A9A=H>HCNkN|UAUH[,[=[?[M`:d5(B")
("cv" "$(0MXTa[@_,$(1:$H=N`U/$(0MQ$(1U8o^UF[@_z_}`4`5d3lP(B")
("cw" "$(0IOIETo$(1qD$(0Wn]7]9$(1d-jF(B")
("cx" "$(1[9$(0\O$(1_|n=(B")
("cy" "$(0:`$(1U=HOHS(B")
("d" "$(0'N(B")
("da" "$(03jA~FIO;Uv0,Z?$(1eZ/o/u<[<zCVE=JkK'K,P~WIWLWYam(B")
("db" "$(03d=0=4Al3YAm$(1mU$(0A|A}K*K-RyR|R~$(1"U';+,/f/j6165<h<sC^CiCkCoCtCyJrJtPsPtP{Q,Q8]'],alaqgq(B")
("dc" "$(0FPK,MjRxTKXNXPZ=$(1"W+/+1+:/e60<S<aJhJ~K&Q.TWWMWNWW]&areeo1$(0Aw$(1pb(B")
("dd" "$(0008.=5ApAqK.OCUy$(1$?$E$F+4/h6#6*6869<b<c<r<u<v<|CRCXC\C]JyQ'WbWd]#$(0,X$(1`Oi*dRdSe`(B")
("de" "$(00/03=;=CAvAzO5X"$(1'G'H+'5z6($(0(w$(1<VmV<Y<_<wC`CdCgJpQ#Q$]+ase[e\(B")
("df" "$(0023^>UAjBPFVG\O:OBS"$(1+867<U<oCfJ}K#K$K%K)PyQ5WTWZhO$(001$(1h_q$k,nqp<pt(B")
("dg" "$(0043[7|8!80=9A{K/XSXU]c$(1':/k45$(0,\$(15uo35|6!6&636:CuCzK!Q3Q7WJWf]%mT(B")
("dh" "$(0,Z,_0;3f<3=/FO_I$(1'8'@*~$(0&`$(16)]564<mCpQ!Q&We(B")
("di" "$(0,[,b05=2ArDzFSK3K5RtRzS#XTZ<$(1$D$H'=$(0&Q$(1'Bq&+6+D91JnJuMzPwQ0WR]$]7k]k_l5nCq#(B")
("dj" "$(0,`07093m=1=3(^As$(1la$(0FJFQK1O6Rv$(1(8+"/s66<f<pCSJzK*O3PzQ%Q4WPWQWX](andPgs(B")
("dk" "$(0087y<z=7FKO<O>R{Ut$(1!<$B$(0,]$(1+.W^+</]>!CUChCvJgJsJxO4Q1(B")
("dl" "$(0063l3n=<FFFMO7Uw$(1"S+@/c/i/q5{6,$(0,W$(16/\C9p9q<{@z(B")
("dm" "$(0,a3e3h3o7}8#AyFLK0RmUr$(1'C'E+%+++?/a$(0(\$(16-r,8C<O<W<Z<eCPCZCeJiPvP|Q"Q6]2i%k^(B")
("dn" "$(00'0:./2+$(1]3$(08182FUXR$(1!L"P"Q"T$G'J+*/b/g5}<lCQCrC{W`(B")
("do" "$(03b7z8-FHOARuR}UuXO$(1'7'>+3+7+B/r$(0-u$(15vef6;<\<]<d<qCcI%PxP}WS]"]/]4ao(B")
("dp" "$(00.Ax$(1i#$(0ExUa[_^<$(1"V$A'A'I*}+)/`;n<g<~CxW%Wc]!(B")
("dq" "$(0AtZ8$(1'F+!C>$(05v$(1C[k`CwFJWKWU])(B")
("dr" "$(03`3c3i8"8*8,=6AiAnFXK)K4,YK6$(1i)$(0O9U{Z>\!\s$(1+&+(+=+>/n5x5y6%6'6.62<P<^<t<y<}C_CnCsJfJoU^W]akape^(B")
("ds" "$(00(3kFRK'K($(1"R$@'?+#+-+A+E/_/t5~PuW_$(0*6$(1]*e_(B")
("dt" "$(0=8FTRwXQ$(1'5+$+;$(03a$(1/\i&5t6+JmJvK"Q*gr(B")
("du" "$(0(_$(1ed$(0,^0)0-4_8$8/8u=>=BFNFWK9S!S$[t_$$(1$C'6'9'<'D+0+2+5/l6$<T<`CjJ{K+Q+Q-Q9]0(B")
("dv" "$(0;cAu7~O=$(1ka$(0\q$(1/^5s5w6"<Q<XCYCaCbCqJeJlK(WOWa`Pati$(B")
("dw" "$(03gAoK2UsUx\r$(1/d<iCTCW$(00*$(1E.q%Q2Wg]1e](B")
("dx" "$(0[I$(1Jw$(0O8$(1WVi'aj(B")
("dy" "$(03p==$(1+C/m$(0*7$(1<R]6<xJq(B")
("e" "$(0'V(B")
("ea" "$(00]40=`BJKPOQOX$(1$T'P6U$(0,s$(16\b$6d=/=;=VDIKJQ`QaQjX%(B")
("eb" "$(04,8>8@8D8K=S=e=iB:B<B@F`FeFmK@KAKF,mKI$(1kd$(0KJOROSV-[v^a$(1$V060;6W=0=A=H=SD-D6DQDRKDKOKRKUKWQNQVW|X.]>b!b&eoi5(B")
("ec" "$(03|=T=nFfK>KEOVO\S(S3V$X\ZBZE$(1!a'Q'W070E6I6S=E$(00V$(1D0qqD1DMQHQIQMQeU@X'`*`+`;axb#epergui,i.i7m[p?q](B")
("ed" "$(0*B,p0^3Z3q8'8G=.=K=U=f=hB-B3FsGlKXOUS*_3$(1+W+[0.050@0C0I6]6c6h=8=UD4D9DNDO$(0*@$(1KKb%KVQQQYX0X1(B")
("ee" "$(0,x0E0M8A8H=W=aB/BLKCKKKQOLS)V.X^$(1$[$(0,u$(1$\i9'e6K6V<;=.DADFK8K9K>Q[Qk]=]Ea}b"en(B")
("ef" "$(0=L=J=N$(1pl$(0FdFgKGKRKVOMONO]S>V/X1XYZ!$(1'U+e=3=6=9=K=MD2D5DJKYK`QRQUQXQ_QdX*]FayelhRi3i8(B")
("eg" "$(00D8E8N=V=c=gB4B;BM,nBN$(1mX$(0EVFjOJOWV*V1\u]f$(1!P+R+T+d.S0:6`:w=XB8D@DHKPKZK]WtX-aza|emkekfkg(B")
("eh" "$(0,y0G8=8FB>BAKWOT$(1$Q$(0,h$(1$XrB'`'c0LKEKLKaX!X)(B")
("ei" "$(0*C*G*H,q0O0P0b:*=R=YBFFh&GKY$(1pe$(0O[S-V(X]$(1"]"_$O$S'R'_0+0M6a=OD8D:D>DBDKKAKFQJQbWzX(]B]Sa~eui1i4p=(B")
("ej" "$(0*?*F0N4"=l(eBC$(1o5$(0BEFaFnK=KOOPS,$(1$]'T086J6T=<=>=YDDK;KGQSQgWvWx]?]Gkc(B")
("ek" "$(0,w,|0X4(=M=bB2BHFrFtKDKSS/S0[w$(1"\$R'Y+P+^+a+h$(0,o$(1+lW~020?0A0D0H6b=4===@=F=R=\D?K@KQKXK\QKQTQ^Qh(B")
("el" "$(0-"0a3{8C=]=^BIKM$(1"`$Y+f0)0-046RK<QLWy$(0,t$(1X#]D(B")
("em" "$(0,}0U0`4+8?=IB0B5FkS2V+ZCZD$(1$U'V'j$(0*A$(1'mmZ'o6H6L6O6g=I=ZD3DCK=K^QOQ\eqi2(B")
("en" "$(0,v,{0Q4!8P=XB.BBBDV#(fX_$(1i0$(0Z@_%$(1!b"^'f'g+S+j+n..0=6Y=1KCK[(B")
("eo" "$(00\4/8M=mKBKHKLV&V'V0$(1'^'a09$(00W$(16Eeg6N=$=GD+D<KNKSKTQWWuW}X"X2(B")
("ep" "$(0-!0F0H,i0_$(1es$(04.8L=Q=\XBX[]e$(1$Z$^+X6Z6^;^DPK?KIQcX&X+X/]C]HaTek(B")
("eq" "$(03~$(1'S+]+i0,5K$(03z$(1=?X$=WDLQFQfQi(B")
("er" "$(00J0K0L0Y0Z4#4%4&4)8I8J=O=[=kB6B=FbFpKT0IS1$(1i-#F'[']'h'k'l+Y+Z+\+b+m0/030J6F6_6i6k=2=5=:=C=D=L=N>SD.D7DEESKBQZW{(B")
("es" "$(0,~B1B9Fc$(1!c$L$(0*E$(1'ZQG'i'p+U+c0G6f(B")
("et" "$(00R42BzF_FiFlOKS.V)VFZF$(1$M$N$(00C$(1+QrA016P7K=P=QD=KM]@]Ab'kbkh(B")
("eu" "$(0*D,j,k,l,r0T0[3}4$(g4-$(1p@$(0418O=Z=dB,B8BGBKKUOOS4V,$(1"[$P$W'n+k0*000<0>0F6G6Q6X6e6j=+=B=T=]D;K7K_eji6o6(B")
("ev" "$(04'6t8<;h=_B7B?HNK?KNS+S5$(1"Z'X+`0K=J$(0*>$(1D,q'DGKHa{eti+i/(B")
("ew" "$(0:Y=jFoOYXZ[u$(1'\$(00S$(1+Vp>+g6M=7=[D/WwX,(B")
("ex" "$(0V%ZAFq$(16[QP(B")
("ey" "$(08B=P,z$(1'bmY+_(B")
("f" "$(0'W(B")
("fa" "$(0J*>QS6$(1f;$(0V9Va$(1=h>oQpRkX6(B")
("fb" "$(0459f-:<'$(1ku$(0=sJ]L5P6Xc\($(1*40X6t6x=iD\DdDfKbKkM3QsQuRjX>XBY3]Mkj(B")
("fc" "$(0FwQ+V_[K$(10`KcKd$(08R$(1O5qIX5XA]L`Wd9ewkw(B")
("fd" "$(04wAkFxK+*NV5$(1b+$(0V6ZH$(1$`'w6r=_DVDWKgLhRiX<(B")
("fe" "$(0G#G%V4V8V]26ZG$(1]N1l6q<?K6Q|(B")
("ff" "$(0FyK_L4S=0dS@$(1pA$(0SgSkX`\^]N^+$(1=c>yDhQnRXX:XCexm0no(B")
("fg" "$(0;Y?{E_FvF~OfX}\/-#$(1'vrL+o0O0]1p6|DaDgE|GIQvb)e{m](B")
("fh" "$(0.-0e9@F|Vc'8$(1"ar71r6m6w=m(B")
("fi" "$(043T.-$V7$(1qv$(0\)$(1'y+w,iX7X=Y4Y6]K^<_=b,kim\(B")
("fj" "$(0=q=rL3QB7j$(1't]I(I,g,k8&=^=`DSDZD_LjQqX4X8X9(B")
("fk" "$(07i<rAUG!GmS7V:V`){$(1'qY5'u+u,j=gDeR!X@(B")
("fl" "$(0QP$(19m'r1o(B")
("fm" "$(0K\$(1$_+p+t0N0V$(0>P$(16pr-=a=fDbY7bh(B")
("fn" "$(00c2)Jd+3$(1*>]\,f.*0\E*QyR7Rl(B")
("fo" "$(0HnV2$(1!=0P$(00f$(10Ucq6v="=bQm(B")
("fp" "$(0K^S?Uo$(10T$(0BV$(1PCa7QtQz]J(B")
("fq" "$(07U8QA@Kb(%S8$(1U_0dC!DUD^(B")
("fr" "$(0/!$(1_W$(0474;8TBOKZShV3Vb$(10Y0^6o6u6y6z8%>pDTD`DcKiKlQo(B")
("fs" "$(04649)J8S$(1i;$(0@9$(18$(B")
("ft" "$(0F{Jc>OS:$(1iY$(0Xa[x$(10[8'=jKfKjQwb((B")
("fu" "$(0.;4:4]>8S'S9SS$(1'x+q."0Z1m1q6n=eAWDYE}$(0)=$(1Keq(QrT9YK_Ic(cwmD(B")
("fv" "$(0Lw$(1,h6lBDDX$(0G$$(1I\kkLgLiQxZA(B")
("fw" "$(0\v$(1>nD]$(0G6$(1X;qs_u(B")
("fx" "$(0BR$(1X?i:(B")
("fy" "$(1+v6{0W(B")
("g" "$(0&I(B")
("ga" "$(0NAQ5;Z\U$(1j\:d(B")
("gb" "$(06l6oM8'uUZ$(1o4$(0^_$(1.X494<4C:h:qB/B4B5I?ICIFIJ\Vg=(B")
("gc" "$(0EYM7NBQ1QoX>YD$(14IB*$(0-L$(1B,q`T]UMZdcbeFg;g[gdlb(B")
("gd" "$(0)h$(1%z)Y.Q41424J4M4N:fB6$(0)c$(1Ghj&GkQ(T[VT(B")
("ge" "$(0.\?P@_B'IqP'Q7W_$(1&$.Y484F4L$(0+d$(1Awm&BiD%IDJjQ]RHW<Y=Ze_K_^iB(B")
("gf" "$(0E]+fO_$(1np$(0O`S<UOXb$(14@:mIMX3^Ka(g<hLlmlnnc(B")
("gg" "$(06m;UJ=LX$(1%~)U)_.O.R4H:e:s:u$(0)e$(1IPpyN@OzT\lD(B")
("gh" "$(0A&D@$(1#N$(0@\$(14;IG9Y@U(B")
("gi" "$(0)z2m;[E\E^JAW<$(1"+%y&#.P444O:t$(0(+$(1;=p+GdI@OsO|Z:\W_5_6(B")
("gj" "$(0/2;V;WM9VxVy]T$(1$I.V3(4AIIOvTZVW$(0.Z$(1dL(B")
("gk" "$(06n<s?Q@bJ@NE$(1%w$(06k$(1)[o$9X:gIOR"VUVX(B")
("gl" "$(0)b$(1m?$(0+g.^5[:W$(1-Z-[.ZIK(B")
("gm" "$(0+b.[.]2Q;R@dEZN@RLY(Z0$(1%s%{$(0+`$(1%|i_464>4E9Z:c:j@TB1B7B:GmIA(B")
("gn" "$(1!O"*#K%R%t.W.[:vGj$(0+_$(1Gl]_IB(B")
("go" "$(0-M2U@]B"EWUL$(1)W$(0+c$(1/yZgE'GfGnOwVVWk(B")
("gp" "$(0]a,6$(1#JPE%u&")S/"B+ILJ,(B")
("gq" "$(0Nx$(1&!)T$(0N?$(1)\PW4BDoPV(B")
("gr" "$(0.Y2R;\@F@aD?EFEUEXJ.Q6SV$(1%v%x)V)^4G4K:pB2GgGiO{_ecTcU$(0)P$(1c[p6e@m>(B")
("gs" "$(0+7+^2S2TE=$(1%V%}-T:rB3IN$(0)f$(1IR(B")
("gt" "$(08w@cE[$(1)aB-$(0.X$(1Ouhp\X\Y]feE(B")
("gu" "$(0:E@ZJ;VuWXXl^~$(1!:")#M)X)].U3)43$(0)g$(147n$4:4P:o@VAXGeN/Ote0e1g:(B")
("gv" "$(0:1@G@[@^D>Z.2P[g$(1m@)R.M:iIEJb(B")
("gw" "$(0NF$(1rJ4D:nB0Zf(B")
("gx" "$(14=eG(B")
("gy" "$(0.:+a._Z*5Z(B")
("h" "$(0*M(B")
("ha" "$(00!3%5~>sC2L.L0P(XyX|\'$(1'-*wEfRE$(0(v$(1Wsr#\j];^-^^eiiR(B")
("hb" "$(0172v7<C"C&C-KaL#P%P2S_SeXWY}]K^A$(1*58WBcEhEq$(0/0$(1Erp'FLKpLOLQL[L]RBS6XFY&Y2^#^9^_`vbYf"f7f:m6mA(B")
("hc" "$(0D<$(1q{$(0D}L)LYQ3SYS|U&WaX)XxX{ZJZY[&]B]n_2_L$(11Q=r??E`HhR\RgUgY,Y.\/^"^*`T`VbWdnf5h!hMiQiXkGn-p,q.(B")
("hd" "$(0'h(~$(1iA$(0*8*9-)-^.x4v7C9j=@=AGdI$JNK8L/R%RQSaV\$(10b1Y<n=o>^>_EdEgEwFMFOL\LbR`S2Y(Y*[le&(B")
("he" "$(0,3/?3&3u3y4X6S859o9p=GA'E)F[G_P)R.S}YwZWZ[[N\|'1$(1!@qr#u1g7y7};[>`DlLPLdOGS4WoWp]<e)e}hwmln{pKq)ql(B")
("hf" "$(04r8V@%B(MzSXSbZ'Z(\-^y_G$(12r54;v?>KhM!M4Q{XyY/YE\3\4\:]O]}$(0-8$(1^,qRa,a-a.a0a6bUe%e,eze|h@hYh[h\h]i@iPk9k:k=kElclvm.m/m5m7nmozp%pvpw(B")
("hg" "$(0-(/<4W5n;*A)C$C/DwG`H-L"MeP3_&_'$(1)`.T0c2s$(0'2$(17ko>9M>h>jE_EtS5V[XEY#Y%]|^;bndohZiTiVi{kHmj(B")
("hh" "$(00m4q9:>JS[S]XsYr_+$(1(R+{,`1U1f7#7{>]ASHiO;RdX{^5aAbOjb$(0-O$(1nF(B")
("hi" "$(0&>)$)i*b+=,=-40|3"4n5z7-8X:q<6>K>rC,C4L*R&SdVYY|ZZ\%$(1"@#t$(0&<$(1$apo&X(1+}1/2l7|8\>>@$L3RfT(\|]~^+_<bQfQg{hei?l7memimmnXo@pC(B")
("hj" "$(0.91^394p4u8t9495C#C5L2MvVZV|X9Xz\L$(1#P$r&r0'<B@'DnEcExFNLeRD^0$(0&F$(1bSnzbZf6gplImk(B")
("hk" "$(0+Z/T0l969?9i<w>4E`EsGgJfNbP5R+U\VW^]$(1"(1e>dBjDmEuJ*L/Q@ReV%W"W;\i^7a?a@b?bXe3ksnb$(0'6$(1nxp-nyoq(B")
("hl" "$(0())N.=/U1'1W6P<:DTGhM|QS$(1!8,]-^-`-a26$(0'I$(13ApH7p8"8Z9r9t>eA#H1H2H3LaNZOHU&^6^8n7(B")
("hm" "$(0(c$(1qW$(0(n/=1+2N4=4?7B7T97>(>H>LGiL+L-P4PJScSuY)^?$(1&W&Y,e--1$1S1V1j7$7x=pEaEeLXYb^'^)^1dme5icnW(B")
("hn" "$(0*h+4.1.2.3/>5Q9m:F>D?5@8CzHMMWN,P-PlPmR:T0^i$(1-M$(0&.$(11bq^1k7s96@(@)AUE)EzHuK}K~L!L^LcR6RbT,Uh\D^3hfiUkR(B")
("ho" "$(0'X'g(C(k0=1<7A99<7<8<;GjP&P1V[XVZ\$(1!-0~1h;\>f?:C~Ep$(0&-$(1K.o=K/LZL_LfRa^.^4^:bNboiWidn4(B")
("hp" "$(0*K-1-f/@3,6!7K9l<?>qE{F'GbJgLZNaNkRWSfU7VUZ4ZX]m$(1!((E,\,_1W$(0'U$(11de~7J7h7tD*O<^(dXeN(B")
("hq" "$(03$3'=vA?C.F^LOW)$(1"f$(0']$(1'|m^;]?@C"DkJBLRPBY0(B")
("hr" "$(0)X)\*`+@+L.P.V3#4><<>M>t@SBXBxC0C1GaL(L1MmP$P0QAQrS~X4YKZ]\_].$(1*T$(0)W$(1*Un*1T53557"7%7i7q7r7u7v7w7z8!8X=*>g>i>kEbEsEyKoLWO6Rc^2bIbTe4e6f0f9hghoj#(B")
("hs" "$(0'f,2-5/S9n;0>NBjC3ErGnH,R;\w$(1"b#2(H)61R8[?AEvI-Y$YabPfS$(0'C$(1gDq-(B")
("ht" "$(0*g38>GL,L\OsOuSO\&\1$(1101c$(0'+$(125mu7I7~EoY'Yc^/bRbVh"h^mn(B")
("hu" "$(0(*)@*]-6.$0h1(4a4b56779>;(<T@xA('TBw$(1pz$(0C%GkP.P/\=$(1"g$(*',^0$1!1:1i272[7o8#:F=,=n=q>lBkEmFKGDKqLNL`O7RCRhS1S3T;VqVuY+Y-Y1Y`^!`cm2p.(B")
("hv" "$(03!HUIrL|S`VXXtY~^1$(1,d/3;5$(0.h$(1>\rEBEEnP$V$ZEZs^]f!hvmhp/r*(B")
("hw" "$(0>IBmI?XrZ+Z^^@$(1*@+|0&1X$(08i$(18YleLM]ef8fRkt(B")
("hx" "$(0P*Xw*_$(1-,ief4(B")
("hy" "$(0(Y'w<9$(1e7$(0A>Qk$(1LYY)`d(B")
("i" "$(0'B(B")
("ia" "$(1*m5-bMJ"V~(B")
("ib" "$(07;7x<,N[W!-.$(1!gmg.%I~LBf3iO(B")
("ic" "$(0@)D4En([GZ$(1pG$(0HrK}N]Q4[<[]$(1.)3'@SJ!J$RZdVj_p&pF(B")
("id" "$(0N)V^X3$(1(C*<+9.(.x/v$(0,,$(17bm:7j>mClE[LEVzXz\=(B")
("ie" "$(0)D,f2z6G<+A$ByEoG[NYNc$(1#m$(0(d$(1,YkB.z5,>ZBgLLhc(B")
("if" "$(0<-<RE&K]My^/^z$(1+r>{BeP=$(044$(1P@o7RURVV<VE\6^Ja1d~hIm#nf(B")
("ig" "$(06H7>7?J9$(1"=*93l:2AkB9IHLDP>ZJ$(01$$(1\;kZ(B")
("ih" "$(09+;7Jb(T$(1#^LH#o.{(B")
("ii" "$(0+1/5M{NZZV]J]R$(1&q(D*8$(0*)$(1.lo(1J1KBfJ#Z;]{_4ld(B")
("ij" "$(07=VT$(150@p$(0*'$(1E]kALJV|]z(B")
("ik" "$(0-34j<tN^O/$(1!d#-$(0'^$(1,Ze.1N=tJ%LC(B")
("il" "$(01&4l5i90A!JaLWMJN\)}$(1#qcx(x,X,[-\39@wI)NS(B")
("im" "$(0*(/6/Q4k9/92$(1!{.~7`I}RYXx$(0*#$(1\<px(B")
("in" "$(0,*.*>'A"Io)G$(1#pkQ%T1#3mAo(B")
("io" "$(0*:/3&g</$(1bL$(0LPR8YE$(1![*;/|1P5.5/6>7aLGLKP?(B")
("ip" "$(0,+3*4m7E9e@'A*EwJiNiRVU]Z2_#$(1!Z#v*:*AHvI|LIPSmO$(0&^$(1rC(B")
("iq" "$(02y>ANw*J^\$(1huLFQ}V}(B")
("ir" "$(0+0/4292<6I6U9,9-(;L!$(1k@$(0STVS$(1%P.'1L1M1O7e:G>[E\ha(B")
("is" "$(093**$(1$s,W(B")
("it" "$(0,<>7GAXqZ3$(1*7>?>X$(0(P$(1Bd(B")
("iu" "$(0'9/71%91<.A#D!&yR-$(1hb#n%O7cE^QBRWa9(B")
("iv" "$(02]2eHR]l-A$(1!]ht.&7d>YJ&Uie-(B")
("iw" "$(08hK~6F$(1.yV{Bh(B")
("ix" "$(1qT(B")
("iy" "$(0[H(B")
("j" "$(0&3(B")
("ja" "$(09T10;o$(1LS$(0O2(B")
("jb" "$(02l5/7*@pAhM;QCQG[/^>$(1!>1[9c;<NP$(0/,$(1TrnvTvZw(B")
("jc" "$(08z;lD6JSM4UcWTYm[B[M[k)!\#$(1n;;;@fBPG~HgR^TVU``RgE(B")
("jd" "$(0)t)v+v+y+{7{8(@qGf(]JT$(1n6$(0K7[`$(1(G4v7l>aIfQ)TuW\Y!Zu\d]-_lcueagG(B")
("je" "$(0;k;nJUQD$(19d;:$(0'F$(1BOe2I5K4QETsZx(B")
("jf" "$(09FBUJWNNNQP+U8Z_\V$(1;6TqV4X~a%d}gFhGhKk(k-k>m"m(m)m3ng$(0.y$(1qN(B")
("jg" "$(0>ECGESI(J>JqL$YS$(17n9e?;$(02j$(1@qd?H#K:VZ(B")
("jh" "$(0JQJR4s$(1&9ct@nAl(B")
("ji" "$(0+|:H;r@(@<A=LnNOYL^h$(1(F3.?y@j@lPUTtW:Z,\>c:ft$(0)w$(1j*lH(B")
("jj" "$(0-P237%:GDLEmI&&]K!$(1j/$(0TS]3$(1@cEiR]cv(B")
("jk" "$(0)Q3K4t<uC(&8I%$(1LT$(0JOTUXvYM$(1#\,b3-7m@d@h(B")
("jl" "$(0<~?h\]$(1.i$(02i$(11^Y"3;9nH!NV(B")
("jm" "$(0.|1!1)2h9R&JI'$(1oX$(0M=StVV^d$(1@kEjM(bi(B")
("jn" "$(0-h1*2,5^6K:r@5JPP,-7TT$(1OO!S!T"h.+9f@mAmLU(B")
("jo" "$(07'>F?UDKR,$(1(6)y1Z1_4u;9?/$(0.z$(1@ogHBQG|L#R_Wi\e^$_kcreV(B")
("jp" "$(0)x*SA.QJRUZ1$(19b;_;`$(0(G$(1X}j,cs(B")
("jq" "$(0J{OcUe-'X'$(1a:$(0[.$(1>2(B")
("jr" "$(0.{2;2k7&7)7+;mC'C)DIJVL%WPW]$(1&:,s.j@e@i@rH"IhNONQTwXr$(0(-$(1Zy_V(B")
("js" "$(0.7209;9<$(1)5.k$(0*T$(1Vh(B")
("jt" "$(1;7G}$(0(&$(1_mr<lGoW(B")
("ju" "$(0+-+z.~1R5$:I;p?TGeJ!M<M>S^$(1#],a1\1]1`9`9a;8@gNNQCTxZz\?^%^&$(0&%$(1fHn%(B")
("jv" "$(0.g7(7,C{QIRRW^W`)yXu$(1j.$(0][$(1I^IgX|Z?Zvj-(B")
("jw" "$(0@oDJNP.}QH$(1n5$(0TR$(1BzZtgIj+(B")
("jx" "$(1Ek(B")
("jy" "$(0@n$(1H$(B")
("k" "$(0&L$(1!!(B")
("ka" "$(0;^*2=y$(1b;$(0NG$(1"OE0E8L$XM(B")
("kb" "$(0*5(M,)$(1r=$(0188]8k9^<(=wBoG)G+OlSLSMXjZR$(1!/0i7.7D=v=~>7>:BSE:R&R+]P]Q]di>(B")
("kc" "$(0D8G;U!XdZL\z^c$(1'}1):4E9$(08[$(1R)knR@(B")
("kd" "$(03_=z={G@)u$(10jE;=w>6Dv(B")
("ke" "$(04P8m=EBtOpOrV>$(10k<9<:=)=x$(0'/$(1=}o:DtKuL'R<]bb-b8m_(B")
("kf" "$(0-*.c4SG9InQ|VD[[$(1'~DqDrF,R%$(0*I$(1R(qSXXX]X_\8]Ra)e!e'e*hNnhos(B")
("kg" "$(0-+2Y8\>2Du)d]g$(1o;$(0^b$(1#_$d$h0g1';>>;E<R#R:kl(B")
("kh" "$(0Km$(1$c0e$(08q$(1>5X[>9XG(B")
("ki" "$(0'54@6q&;>/$(1R>$(0JEKnSB$(1!9"6((7E=|DpR;(B")
("kj" "$(0G=KdSKXi$(1"c,#,w7&7,$(0G:$(1]co%(B")
("kk" "$(04B8j=tB\KcKp[|$(1=uL%L)R*XKXWX\b<$(0'Z$(1o9(B")
("kl" "$(00o4R5j$(1",$e&%0h$(0+}$(13<o83@9vE5ISKtb9(B")
("km" "$(00p8l8n8o8sB]BqEpKl$(1("(&('(7,%2($(0(K$(17-]aJAR9XZ(B")
("kn" "$(0'$)k0z2'>3BnKoV=$(1!e"d$g$(0&'$(1$pL&%S($)c.-0l1,7*7G>1E6(B")
("ko" "$(00r0{8Z>%OeZS+i$(1,(`A1.6=7B=!={E1E7R'R?XLX^(B")
("kp" "$(0BpN/Xk]j$(1$q(%,$,?$(0>1$(1,@XY577)R=RA(B")
("kq" "$(1,q$(0]k$(17CXJ(B")
("kr" "$(0(..b0q8rBsG?JFOmOq$(1(#,",&-R.<0f1(1+7'7/7F7H=y>8Du$(0'|$(1E/b>E3E4L(L*(B")
("ks" "$(0)lVC&1$(1!R1*"!(B")
("kt" "$(0.e=x$(11-$(0>5BrOnUT$(1,'(B")
("ku" "$(0(h.d&S0y$(1R$$(04Q4T;2VE$(1$f+M.r2Z7(7+:6D&DsE2Ks(B")
("kv" "$(08Y>0?7B[G*G>4AXe$(1md$(0[{$(1"3(!)x=zXHXIb:i=(B")
("kw" "$(0OoBZRN$(1b=(B")
("kx" "$(1f((B")
("ky" "$(08p$(1><$(0G8G<$(1$b(B")
("l" "$(0&d(B")
("la" "$(07uL~NW//WB$(1l;2n2u5*9B@%@,MaMeN&Sq_+c;f}l0(B")
("lb" "$(02%5-5.HBHQLoObPbPhPsR$\;]%$(1.v2e2w9)939>G3$(0&[$(1G4pOG9GBMwN#SvS|T"T-T3Z/Z8ZG_'_(_/_?c4cAcGiy(B")
("lc" "$(0D7D9D|QpR6T,U5ZI$(198;YB`BaIyMd$(0@|$(1P9oLT$T)Z`_&c*c/c2c7fifuirl8l9(B")
("ld" "$(0G'L{PcPq$(1-N-O2a9@<k@-@/$(0Cv$(1G5itG8G<M^MkMmSkSuT0VvZ+ZH_2c?fvg!(B")
("le" "$(0?8J`PePo$(1&P'd2`2y3!95G-Mh$(00k$(1Miq_MvN*N+S~T!T#T6_1cBiwl:(B")
("lf" "$(0T-R)U9$(1ou$(0W>Zw$(1JcN!P;P<SnZ-Z5_)_-_Bc0c3c6nl(B")
("lg" "$(0<*?,CsCtHCHTNVPiW9:3$(1;XpNG.G=MqT+_>fliupM(B")
("lh" "$(05R:.K$Lr$(1(j2j2{9DG0I{N'Sy_0_F$(01P$(1c,(B")
("li" "$(0*f:-?4HGT3Y:Zq])$(1-K-P5+9$9,999;=l$(0)~$(1G7quMfM{Z7\g_CaRaSc1c8cFfpf{l2q:q;(B")
("lj" "$(0:,BWHIJ\L}PjQET2W7W8Y9$(1-HMtP:T'T._@c-$(0:($(1cCfzfo(B")
("lk" "$(0(B:':2AZCrC}HDO0W;Zx$(1&O2c2h$(0(9$(14QnU9&9<@!@.IzMxStT*T8Z)Z2Z6_D(B")
("ll" "$(0'[(t*l1Y:)LqPa$(1%*(i$(0&V$(12fix2k2v@~G2MuN,SsU#Vy_,(B")
("lm" "$(05w=%?-?0?3?9BlJ_LKW?$(12p2x9-$(05N$(194oN9C9HG1McMrSjZ<ZI_.fjfwoJ(B")
("ln" "$(0:oHLJ#PkPr$(1!Y#.(h(k-J./2\2i2z?x?{$(0(R$(1DjT&(B")
("lo" "$(0Zs\:$(1&Q2]2b2t9+9/9?B_G/G6$(0)?$(1GAivM`SxS}T4T5\h_Ec5cDcEfxf~(B")
("lp" "$(0*4/A:4<>?+A,W@]*$(1-I2_2q97Z4Z>_*_3c.eMm|$(0("$(1n#q9(B")
("lq" "$(01/@}$(1+y9:$(0*X$(1?vq<@&@0MlT2(B")
("lr" "$(0?.?/CuCwCyHPHVLsLvM!/.Pf$(1f|$(0T5Zu$(1*3+z9'9(929=9A?z@*@1@2@3MgN%VwZ(Z*ZFc+(B")
("ls" "$(0T+$(1$o9%90$(0?2$(19Ic)Kn(B")
("lt" "$(08xKqLpW:\<^H4\$(1*2pP?wG;Z0Z1Z=m~(B")
("lu" "$(053?;@{ElHHHKHXLmLuT4Y8Zr]s$(1!6#k#l.w2^2d2g2m2o2~8]?~@+$(0&+$(1G>r5M_MoMsM~N$QASmSwSzZ9_Ac@dk(B")
("lv" "$(0;`<)LyPnT1W=WD]($(14^?}@6G+$(05O$(1G,oKG:MnN"SpSrS{T1Z.`XfnfyoH(B")
("lw" "$(0?:@zCx(rNX$(1oM$(0PdY;Zv$(1%29*MbSlT/fml1(B")
("lx" "$(1Bb$(0CI$(1Mpm}is(B")
("ly" "$(01g$(1So$(0Lx$(19.N((B")
("m" "$(0&"(B")
("ma" "$(04H6R7n84*LQ)$(1gj$(0QVRn$(10s<N='>.>=E"EOH5XQ[)][]p(B")
("mb" "$(0)C0w8a9">k'`B}$(1mc$(0G-G0GVN0OhQg[~]>$(1"p,60w747=D}EUEYL5L=N;N\N_Q>R.RKUXXOXpXu[&[']yb/c{dlf#f-lM(B")
("mc" "$(0:D@"B_D{GQGSHsIaIcKfK{SCSWU"U%VOXX[L5y[}$(1pE$(0]w^=$(10n7::K>/ARK0KxNqQ<RLRM_]`Fb.b0dEehf1g5gkiIiNj](B")
("md" "$(0258%838b>?B`BgC6DXKxMLMOQTS{TwVB\"$(1$j(B.h0x3E6A$(0&A$(17?pW:J>+>P>WEPEREXH_K{K|R2R5RPRTU+UY]W]t]u_qecf$(B")
("me" "$(00@4*4E6p9$>!?HG.GTMMNhTIVAX%Y<ZN[3$(1,P,Q,V1A6@9x=%>(>)D|E&L;L?U)U*_tb1eH$(0,g$(1h5qHp^(B")
("mf" "$(0(}6Q8U=p>BKgKzP#R*SFVR[4[Y]5$(10_>">$OLQ?V2V3V6V9XmXn__`~a*a2b*c|e"iMk+krm'm*mboYot$(0&c$(1o~r@qOqn(B")
("mg" "$(0*^0t2O8_8c;T>"AYDsDtGXOjO}QhTxUM[F'_^"$(1p_%[)<)Z1D73767^>R?<ALN]U-XTXo_skpm`(B")
("mh" "$(0,14G4f4hG/OF$(1!%"%'M(*(-):+I,*$(0'\$(1,Nlu,R,u719y>MANDzD~GCH^J)L8R/XqXv]Yd!gm(B")
("mi" "$(0'Q(j(l1#4F5%5P9#:J:[<SB%B^DyHJI\KhKwMwSDSUT/VQWkZM\R^g^x&j$(1!fpY$k,.1E1H1I3D7>>&>Q@#EVJ?KyMjN^R4RQU(XSXw[_bJc>f/gliJl3l^(B")
("mj" "$(0(N8~C~G2GPGWOg&\QU$(1j6$(0Qn]?$(1$i()(0(=)9);,/0o3C>UR-TQWn]X]w]xb4bGgMgo(B")
("mk" "$(0,S,V0u0v3J3s55<{?iAWB~DxG4J&K`\Q_=$(1#Q$9'L(,$(0'3$(1,tq,0m0z>-E%HaK2LAR3ROXlXt]Z]v_a`IbHf%g"l_pB(B")
("ml" "$(0-Y-Z3L5t9%:p=~G,I<Mf]{^O$(1!'!2"r"s"t$l%,(.(u(w,-,5,9,S-]37383::x$(0*U$(1@xj1H.H/NTNUcze>gi(B")
("mm" "$(0&6&W&l&m'b(`)(-]-j0>1h3r9&9(?|B&BkDWGYOiO{S&SvT_\t^q&)^r$(1q|#6#j$m(>+H,0,40y1@3#3t6C>ND$DwE$ENH`KwL7L:Q=]9^S_wbF(B")
("mn" "$(0'{)E)F.05m;,>$>@BeE9G5J$Kj$(1!)!|"e(2(@)3.00t1B1F$(0&$$(17<`E@LE!L>[^(B")
("mo" "$(0,(-,-J.&4i9'@=BaK;SGSHU~V?XpZU$(1(l,M0r3$6B757;9J>LC}D{ELG]GzN<O'R,R1[(]Tc]$(0&w$(1dGj4f2gN(B")
("mp" "$(04I7GA+BcBiJh[^[z$(1#w(+(A,O/#0q1=$(0*<$(1A%qbR0W$a8j3p`(B")
("mq" "$(0SEVN$(1/~0u$(04K$(10vDy7Y>%B~(B")
("mr" "$(0(|+A+B3t4C6Y6f8d9!BfBhGUI=I>KiKyMNO~R?TvWi]@$(1,+,,,3,70}1?1G7278797W7\7_=(>'>*>,>VA&A'A)DxEMEQH4I/KvKzL@RJRSU'UW]V]r`G`H$(0(,$(1bDpXc}(B")
("ms" "$(0'}(J219)?}O|UE[G&b$(1!&_v!.#777?=A(AMXs(B")
("mt" "$(0-I0}4D4[,.4g$(1jX$(0P"VPWj\K$(1"<,10!1>9TK1RNWmXR[%_`_r_xb3b5c~f.g4(B")
("mu" "$(0&x'.0s8`9*:Z>#>>BbBdC!G1GRIZI[KeQ'QWTyT}X$Xg$(1!+!?%Z(?)8,2,80p0{6?7[9U9w9{=&>#B^E#EWN-N.RRU,WlZ%]qa>mf$(0&C$(1nB(B")
("mv" "$(05&5S=}C|K|P!QiTuV@Yv\x\y^Q^o^s$(1!$)w7Z>K>O$(0-R$(1G^jWL6L9[]\bdFj5(B")
("mw" "$(0G3IYYh$(17XXP]U$(0*j$(1]siKbEbKf&(B")
("mx" "$(0^!$(1b2(B")
("my" "$(01eQjTz$(1(/$(0&7$(1,UET.30|>0(B")
("n" "$(0&_(B")
("na" "$(0DkR([U]L$(1:-$(05r$(1EKqKT=`xk$n`ndpk(B")
("nb" "$(0DlDnISTrUSU[5*X/$(1qj$(0[V$(1(}-e.}2452:1V*`Ddqdzh9j|k%lxl~nVojopq=(B")
("nc" "$(0&R$(1qL$(05YITI`JD$(1HYPAUTUe[g`,`ShDjSlyn[(B")
("nd" "$(0(F*$3\8+:gS\$(1"4"w-i:0Cm$(0&N$(1\#qi].a"d{hBhFjzk"n&napi(B")
("ne" "$(0-c.+1c?s?zBv]M]t^.$(1!;!`&S,A9L$(0'0$(1N1okN3PiV/dyh6h7j}o)(B")
("nf" "$(07#@$G"MaMcSAU<Z%[Q[T\[]Q^--&$(1"5ov0Q4t51ONU{`C`zhUjrk1k<neoO(B")
("ng" "$(0,--F:e:i?uDpNCNDX0Z"$(1:l$(0&a$(1AGr;AIGEOyhCk'n](B")
("nh" "$(0DmY>$(13J$(0(z$(1HrdwV)V+\"(B")
("ni" "$(0(Q)j.#/91O1b<1?1?vPgV!Zt\>$(1&T(yB{B}GLH\M}OJT%\$\)_7_8l{man\ogoh$(0&K$(1qh(B")
("nj" "$(02}:c<}?wMb*kN_$(1nY$(0^,$(1"xJ(dMg%(B")
("nk" "$(0+w2Z4UX.$(19KAE$(0&5$(1O%lzPfV,[[dtj~(B")
("nl" "$(0'@QRZ#$(1-Q-f$(0'?$(19sj2@{N2V?\&`y(B")
("nm" "$(0)#/81a7@:hDoDqRTZQ$(1%0&U$(0&O$(1(|pf.|4s?+@:@<HZO&OKV(\%\-l|nZol(B")
("nn" "$(0&i-d4eA%C7J"&($(1"ye<-hAHI*V&b6(B")
("no" "$(0&P'O(u.w/:/V2g5{:d:fD0DjDrTHTqTs^Z$(1-d3I$(0&=$(1=#oo@;\'`|h8j{n_(B")
("np" "$(03+3-<=X![D\Z$(1%.J;OIV.\!d>$(01_$(1h:r?h=(B")
("nq" "$(0--2{5sHY*aX-$(1k#$(0^Y$(1!1_J(B")
("nr" "$(01`;]?rHj[W^X_A$(1&R(z:.>IGHJ'T<\*\+\,\.`w`{`}a$$(0)Y$(1cZqkdrdxh;k&lw(B")
("ns" "$(0-`2.2/5T;.$(1!i({-gV'\($(0&&$(1n^(B")
("nt" "$(0.v4YBuIR-b_B$(1pg,BH[\c(B")
("nu" "$(0'7)O*d+.-a:b>.?xR'U6U@$(1!Q"v#s%/%1&7*11;$(0&#$(1GFphGGL1P8T>UUV-Wq[!a#dpdsdudvh<l}on(B")
("nv" "$(05q<0D~$(1&5:|$(05p$(1ADpjAFW!hAjy(B")
("nw" "$(0?t$(1omh>m!(B")
("nx" "$(1"$`Boi$(0?y$(1qM(B")
("ny" "$(1:/$(0(A$(1hE(B")
("o" "$(0&*(B")
("oa" "$(0-w6.67:s:~Ab+%FE$(1qp$(0IsIwN&UD$(1%A3d3fA]I']oj[(B")
("ob" "$(0+*-z-}.!1p1q6*6,6@:|;$>m@-E,G^IiI{I~R1U-VM$(1!t!y'O))-x3W3[3]3i:;=-AcH~S0Ul$(0&z$(1`ZaC(B")
("oc" "$(0-s66;!?M?ND=E-E1HvI}MkN$QqR4U$UB+/$(1!5r"#*-p.!3b:9:?AgH{I#\Fd:jejfjgkPnE(B")
("od" "$(0'm)3+(-~1r1u86=?@.DvQv$(1+F/w$(0'k$(13Sn~:AH|I!UkWh^NdZjh(B")
("oe" "$(01l1w:j:vB*E"E4UAYeYt[O$(1!j"Y$(0)<$(1)!f,)b-o-v.\/Q:<AaOWUo[i\Hev(B")
("of" "$(0+$1|:tB)BQBSGtIxU;Vn).X2$(1r6$(0X8Z$]O]Y$(1!U!w#'-j-m-t-{0R0S3^6~:=:>A[A^AeAiD[I$OROSV7VD[h\9\Ea/a3e;h`m1o!oyo{(B")
("og" "$(0)7)A*o+e-p."1d1}@`E!E2IW'lIt$(1p]$(0I|\d^e$(1%<)+)-)1-z3U3`3a:8>JAJOPUVVA[\`_g|kOmooQ(B")
("oh" "$(0)%):0B6<E3&,E6$(1lg!v"zHj\J`\(B")
("oi" "$(0'p'r)&)2+',e-o1{6&@,@/E/LtN!QtR3U*YuZ,\T_/'j$(1!pd[!s"}#()2-r-}3c3kHyJ@(B")
("oj" "$(0'*($6+6?<|@1MpN"Y'$(1!m$(0&p$(1"{`Y%:-k-u3K3h:EAZA\I"[a(B")
("ok" "$(0({)/)4,T-q1m1n1v6%698:9O'n:y$(1g~$(0;%<x<y@2E.MnUn]X$(1#$%4)&,L3P3g:C<=ATAjO9OTOY`[``(B")
("ol" "$(0)5)8*{.<.U1X5k;'$(1!_!q!x$(0&v$(1!z[$"X$K%K+N,KA"A$HkU%Un(B")
("om" "$(0'd)1);*w&o+!$(1lf$(0+&1~5!6(6-=H>`>dB+CFE0N#[P$(1!F!G!H!J"~#")"-|3_:::@F8OQ`QaF(B")
("on" "$(0&q&s&u)-*p*t-t-y1z2!3x6061:k:u;"&@;#$(1`a$(0@7CUN-N.$(1!4!B!I!o!}#!%7%8)/)4-s1"3LI+V@VC]^(B")
("oo" "$(0*Y*~++-{1o1s89@*E$IyIzN'S%$(1!l%5$(0)0$(1%6nH(L-n/{3ZAfAhD"H}NKO[VB[k]8`^(B")
("op" "$(0'o)9*q-r/C<@<A'(E5$(1n}$(0E|M~RXU+\c$(1!r%3%>%J&[*B*O-~.n/$3X58:5AdOZ\GaDiH(B")
("oq" "$(0*"*s+"-m6)7W)687$(1i<$(0:z:{L[$(1%G+~I&(B")
("or" "$(0)Z*u$(1jd$(0*v*x*y*z*}+)+W1"1=1k1t1x2"6#6$6/65686:6A:x;H@0IfIgIvMqU)$(1#&%9%?%@%D%H%L%M)$).-y4(:7?%A`O8O:OXQ:g}(B")
("os" "$(0),*=+#8}@+&tE%$(1Hz$(0IV$(1!3"|%;)((B")
("ot" "$(0-x*n-|$(1mr$(0>6B|K<MoR2$(1#)%E*=3V?$UmXadYjc(B")
("ou" "$(0*P-v/*/+6'62646>E#F]IhIuT7\S$(1!K!X!k!n!u$(0'q$(1#+aE$J%B%C)%)')*),-l-w.u3j6D:B:DA_BZD(HxOV(B")
("ov" "$(0-n5|636=88:w:};&?<GON%QuX*$(1%=%I&6(~)#)0-q$(0*r$(12}qJ3R3T3YAbOU[j\I`]e:(B")
("ow" "$(0N(UCYs$(10($(0*|$(13QI(3e7A9z>4(B")
("ox" "$(0R5U,$(13\(B")
("oy" "$(01y6;$(1##$(0&r$(1#%+O%F(B")
("p" "$(0'A(B")
("pa" "$(0*1/K4V<INp$(1'3*I*M5D;dJ1J6$(0*0$(1PL(B")
("pb" "$(0227L<FA3A5JpU`$(1&_/'$(0/I$(1/)PR/,5J;lBqBrJ3PGPPPQ(B")
("pc" "$(0@#E}IbJlNsSZZ6$(1&g$(0/H$(15IeO@QBnBvBwPOQDQl^AaVa[(B")
("pd" "$(07S<O<QF!F#RY$(1%W*Q/+//1n5>5B;i;kPN$(0&?$(1W(W[(B")
("pe" "$(0JjJkOt$(1#{$!&l$(0A8$(1/-o,5@;m;uBuaWaY(B")
("pf" "$(0A;NqNtNu$(1$&+s5:5=$(031$(15Fo+BoJ2OAPMV5\5bchTk/m-(B")
("pg" "$(0/J<NA9IXNmU^Yf\k$(1#O*H*S/*/0J0$(0,:$(1J9l<Oxk[(B")
("ph" "$(0''(S7Q<LJo'#$(1!\PI&\+K;jJ5(B")
("pi" "$(0'&*&&E,;$(1aX$(0/G33F%$(1&p5?BpJ/PT\q(B")
("pj" "$(0<C<G<JNr\l$(1"C$(07O$(1#3W*#~&];e;hJ.PJ(B")
("pk" "$(0)K,9/ENo(!R\$(1\r"A$$*C*N5EBxJ7J=W,(B")
("pl" "$(0I:Jn$(1#}$(07N$(1$%;r(t*k-_(B")
("pm" "$(0/F/M/P32A1'%[n$(1rK&e&n59;oJ4J>(B")
("pn" "$(0+6/OA4A:$(1!"!7$(0)H$(1"BaZ$'*E*L:I\n(B")
("po" "$(0Kk$(1$"&h*K$(0A/$(1+G\s;sW&W-\p(B")
("pp" "$(0/B/N<PRZR['S$(1$#PK&`*F5G5H;a(B")
("pq" "$(0NnH!R]$(1,<&m(B")
("pr" "$(0/L3/3435367M<D<MF$$(1&^&b&c&j*J*P*R-S/15;$(0(<$(15AW+:H;pJ:J<(B")
("ps" "$(0A0A2Jm$(1&i&k3r$(0+:$(1I,(B")
("pt" "$(037F"'aF($(1/&*D(B")
("pu" "$(0'~,83.7R';9q$(1W'$(0<BA6E~Z7$(1#z#|%X&d&o'N.2/(/.5<@7BsPFPH(B")
("pv" "$(030<E<H<KA<Z5$(1&a/%2|;g;q;t$(0*%$(1J8hxW)a](B")
("pw" "$(0;1A7$(1&f$(0-0$(1*GBm;f(B")
("px" "$(1Bt\o(B")
("py" "$(07P$(15C#y(B")
("q" "$(0'D(B")
("qa" "$(03A3O<^ACAfJx$(1$.$(0/j$(15qad<,C,C/JCJMJVM*(B")
("qb" "$(07X7[7a<b<fAHATF-F9JsPKRjRl\n$(1$4&w&~*e/9$(01f$(15[a^5_5a5e;{<*<8C&C-C3C9JDP_PbPdYR\u(B")
("qc" "$(03B?KF5N~XDXJ$(1/H5P5\$(0(W$(15gmSC)C.C?JQP[P`UNUf\t(B")
("qd" "$(0/o7]98<Y<h<i<jADF0RhT|$(1"D"G*Y,v/7/?/O$(0*V$(1/phy5i<'<0C@CAJ\Q/W7a`(B")
("qe" "$(0,I,N/_8;<gAOF1F3O!O&,AUm$(1k~$(0XF^9$(1$//8/D0B5U5X5dJR(B")
("qf" "$(0<U<qABAPJ|O$O(O)Ui$(1$-*g5Q7!<!>zC0C:CBJJ$(09E$(1JKq2JPV1achJo-o.(B")
("qg" "$(0/Y3G3I7`7d<_<eAJJzNzR`Ul]b$(1*[*h/E$(0,D$(1/JmP</<6C%GJP^eS(B")
("qh" "$(0,M/gASJ},>$(1&zJ[/M2+JN(B")
("qi" "$(0/i/s3>,G3v$(1p9$(09UF2F4HEO+Sw[q]&$(1"K"L$+&v&y/>?|JGPYP]W3\v(B")
("qj" "$(0,@/\/d7f<aAKAMJtO,QFRfXG&e\m$(1W/"E"H*f/F/N5O5^<2C*JSJZPa(B")
("qk" "$(0,Q/a2W2X7e<X<oAE,CAF$(1\w$(0AQJrJuJvO%XI$(1"J$5'!*W/G/K<"PXW2W4W9(B")
("ql" "$(0,P-[/f7cO#XE$(1$8%+$(0,L$(1&}cy*X/<9u<%JHW8\x(B")
("qm" "$(0,K/k3=3D7^<2<VANF+JyR_$(1&u&|/I$(0*,$(15Sh{5T5b;z;}C2C4C<(B")
("qn" "$(0,?,J/[3:7g<dUh(U$(1"IeR$7*`*a5W;|;~<.(B")
("qo" "$(0,B,O3H7Y7_<[<mAIN{O-RdRiT{Uj$(1$0&x'"5c<+JLJU$(0'4$(1NJh|PZ\y(B")
("qp" "$(0,H/Z3@<nNdRcXHZ9$(1$1&{*c/!565R5h<3Bl$(0*-$(1C5mRJEJTPDa_eP(B")
("qq" "$(0/X7V<\N}.aRb$(1Pc;x;y<(JW(B")
("qr" "$(0/^/`/c/n/r3?*+3E$(1Pe$(03F6Z7\<p>fF.F/F6M(RkUk$(1*^*_,T/:/;/B5M5N5V5Z8E8F<5>TC(C;JIJO(B")
("qs" "$(0/]/b/p3CE>F,N|Re$(1!^*Z*]8DC$$(0(V$(1F:YQJF(B")
("qt" "$(0/l3<9VAR$(1&t$(0/W$(1<-eUC'C+C6P\(B")
("qu" "$(0,E,F/h/m7b'E9W$(1UZ$(09X<W<]<`<l?>F7F8O"O*]W^:^`$(1"F"M$*$,$2$3$6&s/6/=/A/L5L5]<)<7C8C=JXJYO((B")
("qv" "$(03;1Q7Z$(1q!$(0<ZALJw[o$(1*\*b*d/@5`5f<$<&<4C1G@I]W0W1W6^TaaabeQeThzk\(B")
("qw" "$(0AAO'Ra/eRg$(1C#$(0[p$(1<#<1(B")
("qx" "$(0AG>pUg$(1C75Y(B")
("qy" "$(0/q<c<k(X$(1$)mQ/C(B")
("r" "$(0&H(B")
("ra" "$(0;:;A$(1qA$(0EEJ4Q<UHX<[)$(1)Q3~:L:T:YCJObOgTeVOZh\Rceclg>(B")
("rb" "$(0+R6T6W6\6h;?@A@D@NJ(N4N6R<TLTPUIYFYG$(1$v%`%e%m3}:WApAtAvB&NFNGOeOqTp$(0)S$(1ZolEZp\O_icfcmgC(B")
("rc" "$(0(=2D5\6`@yHyJ)J2N;Q8RAUJYIYp]y$(1%f.8.=4+AqAuAxAzI=OjOkOpTf_faKcjeDgA$(0(8$(1kTqamI(B")
("rd" "$(0+E.A.L2B2I6b@JEBH~I#Q:Q=RBTO\H)U^5$(1n1"&)E.B.J3,3x4.A{A}A~I<NDTlZk(B")
("re" "$(0+V.O6[;IDGRFTM$(1.;3u9\9^:NAyB#CCNIOm$(0+O$(1Tgr/TiTn\P\QaGaIg@pSqz(B")
("rf" "$(0@UECEDEKEPMxN3N5R@Z&Z-^{$(1#=$(0;B$(1#?ow:Q:XI1I2I7OoZr\2\Lcgk6nt(B")
("rg" "$(0+H2?6^;E@H@TTQX#]1)T]\$(1qB$(0_<$(1#>)@.@.I4-:Z@XGqGsGxI:TdTmVH\UaHcnkSkUn/(B")
("rh" "$(0+K+N+Q+UJ5Q;(2$(1%\Zn.4.::O@`NMVL(B")
("ri" "$(0)].M6d@PEIF*J0N>Q9R^[([f\I\f]0]Z^^$(1#8#;%]%n%p$(0)V$(1.En.3*@aB!GrOaOiVMcohnmG(B")
("rj" "$(0@K@MEOJ6N7YJ\e_*$(1#@%j)>)J$(0;F$(1.Dck3y4$4*<AI;I>OlOnTaTj\T(B")
("rk" "$(0+S272:2A2L6_6a6g;L@Q@V@WDCEM+GI"$(1j($(0J'J1RHW\ZK[e$(1#9#<)H*j9]I4OfVKVN(B")
("rl" "$(0(6+Y.G.H6c6e:X;KDSJ3MI(1N<$(1[#$(0]x$(1#E.93>:P:\:_H0PjU$["(B")
("rm" "$(0.D(3.F$(1n3$(0;=?R@@@L@OE@ELN8WYWZ$(1#C%^%d%l%o)=4%@_I3I8ZleA(B")
("rn" "$(0)[+2+?+X.J2=2K6X@I@RUG(0$(1#0Zq%_%a)I.H3+4"B%GpGwI6O\(B")
("ro" "$(0+M-N.N2>+C;<$(1j'$(0?S@XDFH}J+J-N:RERGUFUKYH['[*$(1)D.6.?.C3v3|4,NCNLOhTcVPVQZmcp(B")
("rp" "$(0(b)^.R;GDAEJF&R=[b$(1#:%k)N)O@\GtGu$(0(:$(1NEoVOdToch(B")
("rq" "$(0\J$(1#A)F)P$(02J$(13{lF:`@WVIg?(B")
("rr" "$(0.B.C.E2C2E2F6V6];@;M@?@BDHEHENH|J,M:N2Q>Q@RC\g$(1%b%g%i)?)B)G.A.G4'$(0+I$(1:UaJ:a@Y@[@]@^AsA|GyI9L<T_TbTh_j(B")
("rs" "$(0(>.T@;DBH{(7N1$(1B'$(0TN$(1%c%h)M(B")
("rt" "$(0DD;;EG$(1eB$(0N9[+$(1#B.59[:[@ZArB"Go\N\S(B")
("ru" "$(0't+D&Z+F$(1qV$(0+P+T-X.I.K2H;D;JDEHAI!Q?[,[-$(1#D.>3z4!4#4&9_:M:];KB$B(GvHwI0L2NBO`OcT^]:aLe?n0p5(B")
("rv" "$(0@EHzJ/RDRI[c[d^&$(1)A.F3w:S:^NAT`TkVJZj_ggJmHn2pTp~$(0@C$(1q@(B")
("rw" "$(0R>$(1.7:V$(02@$(1G{pVZi_hgB(B")
("rx" "$(0N=W[;N]2$(1eC:R\Mci(B")
("ry" "$(0;>EA.Q$(14)NH@b(B")
("s" "$(0&T(B")
("sa" "$(0>eNRY*$(1O>h2jvlinJnT$(0;t$(1of(B")
("sb" "$(0/-7.;6CNR#W"W#[R[S^'(#$(1)zr48HVxYP`m`raOdjh4lrnN(B")
("sc" "$(02GJ%Q0QyU'Vw]~^*^w_9$(1&;Ud[P[ebjcacd$(0')$(1d\q}j`jwjxp8pc(B")
("sd" "$(07$@mIjUz$(1!M<j$(02n$(1P,r&[|`od_f<h%nM(B")
("se" "$(0.>,"70$(1ls$(0E'F\NSOHX,$(18>O@PgS#V"`jd`h)h,jm(B")
("sf" "$(0:lK[9ZL<$(1r>$(0OaYz\Y]F]H^0$(16s=dHtM)OMV;XD^La5aPe#e+fEgehPhQk0ninrnsp)puqPqg(B")
("sg" "$(0/$2q;SE?G|LLQxRJ$(1Jd$(0)L$(1VYr3[p[t`sdcghh.hlob(B")
("sh" "$(0N+$(1""2)3M8B$(0&/$(1UpltUzV!`idill(B")
("si" "$(0;q>h@sNvQ~XCXfY{\X&D\i$(1jo2,HnMyUwXN_9gxja(B")
("sj" "$(0I)LJY+^S$(1.m?,HlI.S$Uq[n[o[z$(0*W$(1^RnQ`e`l`ujiljlonKnO(B")
("sk" "$(0,RIkMrQzR"$(18A:*O=$(0&h$(1OCnRS!S([m[q`ph'jklq(B")
("sl" "$(0*\+;-\1V5(:V>gDVIlWh$(1"u#52*9o?-?9$(0)M$(1NWq"OBU"^\`h(B")
("sm" "$(0*RVv$(1,r8GM+M,$(0&0$(1UsocUtU}YSjqlhnP(B")
("sn" "$(0..$(1i`$(0SI$(1!V"#%Q(K2-3n3sS'`tb7h#h1h3(B")
("so" "$(01;LNODU.^T^v$(18?A@F9IiS&[rav$(0':$(1d]j)h(h*(B")
("sp" "$(0,!,5,72p7FNfNjQwU4Vz]p_H(H$(1Hmlk\ld^jl(B")
("sq" "$(0G{G~UfBY]!$(1nI;wQ~h&(B")
("sr" "$(0(4(5+J+~/#;4;5CHQ}U0U3W(Yx\@(/]E$(1h-%Y4w8@?.EZUvUxUyU~[u[{`kdddefNh+(B")
("ss" "$(0.5G}X+(I$(1#1Ur8IOE(B")
("st" "$(05#;u>c2oKr$(1bA$(0Q(U/V{^}_8$(1">8=HoVF`g(B")
("su" "$(0&Y'x,#.%/"9YImMu]+&X^($(1r%$t0"0%@9O?OFS"UOV#[s`ndbdhjnqo(B")
("sv" "$(07/;_JYUUWEZy_1$(1"-)74rBN$(01\$(1I_r'M'VcZB`fh$h/jjodoer$(B")
("sw" "$(1&<$(0YQ$(1Uujp[}(B")
("sx" "$(1nL(B")
("sy" "$(06O;v$(1da(B")
("t" "$(0'>(B")
("ta" "$(0:"=+A\CbO1P_/xW1$(1mw$(0Y3Zp$(1?\F}G!G&MB^|`Lf^(B")
("tb" "$(05A7v?'AgC^CeG]H.H4H:J^L^L_LcT~Zm1L$(1([my-B.$2A8k8n8{?f?gAVFsFvM@MDMEMLMQS9SKSQS_YeYkYqYvYw[`^`^tc&c'fXhdi^ijl/(B")
("tc" "$(0-e.(.)6BE(\7_E$(1?T?eFqM;M?S;UcYiYl$(0)B$(1Yoq~Y~^d^e^f^h^lbfbxfZf\gtiij^oEpa(B")
("td" "$(03]9w9~:#>x?&@lB!CfCiCmFGH5H>U|X&YiZo[j\2\8]"$(1%!2M8l8v?Z?pFTF~J|M6MAMJO.SVS^YdYt$(0-C$(1dNl'l#(B")
("te" "$(01KC[C`CgCoH=PXP`T*X;Zn\h$(1(`(e2&888a8t8w?O?R?Y?^E>$(01C$(1F7o_FlFuG'G)HdMMM[M\O1S8S<S\SfY{Z"^g^q^u_#fWfbfcink}(B")
("tf" "$(09Q?%FuLdLfLgPRP[S;T'T)Y4Y7Yj[Z]G^F^R_7_J$(1(c-@?LFVF\FnL~MGMXR}SDSFSPSXS]YOYx$(01J$(1Y|qQZ$a'a+brbyc$c%eyfYh?ipk2k;k?l-m$m%njoFo`oro}p!p$q6(B")
("tg" "$(0:%;X>a>~ETH;J<QmY6[E\5^G$(1${->2=2E2V8p8q8u?bAKFtM=SLS[YfZ#^w^~$(09{$(1a;q7b{c"d@igl&mxmzoA(B")
("th" "$(01F595?;+>uT%$(1"l(_-0$(01B$(12'r88f?aMTSOScYu\B^j^n(B")
("ti" "$(01I5I9|>b@rCpF)GyJXLiPTPWPYPZW,Z`Zk$(1!E%#%$%U(f-?-A-E2N2X8r?W?d@"AQFXFzM<MCMFMKO,SCSESHSTYhYn^p^s^}_!bvc!c=fU$(0-D$(1fqr!frl4l`m{oI(B")
("tj" "$(05@5u9v9x>wCXCZC_F;H/PUP]T#W.W2$(1%"-12;$(0',$(12?ik8x?(?cAOFeFiG"H%J^MYO*S@SYW=Yr`MfT(B")
("tk" "$(0*e$(1l.$(05"5C9y>|@eAXF:G(H2MhPSW3YkZgZl$(1(S(X(Y(^-2292J2O?UFRG(M9MNMZS?SB^y^{a=b}fh(B")
("tl" "$(01D1G$(1lK$(05LA[MKQQT^W+$(1(v-Y2U2W<C?VA!HbHcNXPkS:SISbT~Y}^o_pgKgLimjY(B")
("tm" "$(01M5K5l7:>zCEH1LlMgW/Y0Zf^$$(1(g-9-C282@4?8:8b9!?E$(0(m$(1?JpL?Q?kF6FmFoFyM>MIMOO/S%SASNSSSWYm^i`J`bill(oB(B")
("tn" "$(0579u>&?"JCSJW5$(1"k"m$}(T(Z(](b-4.,2<2C2L2Q898;8~:3?)?S?X?tFSFWFfFhHeMPR~Ygbpbwb~fV$(02*$(1fdl*io(B")
("to" "$(01@:$>yB#CcCdCjGzK:LaOET$\G]d$(1(a,p-:-;-=2:8e8g8y?*?F?N?nD#MUMWSGSMS`SaSg_$bsbtbzdIfKf[$(01?$(1l)q5pU(B")
("tp" "$(01H7D7IEvEzI^NgP^T!T"W4$(1$|(W-3-D2>2H8_8j$(01E$(1;bo*?[?uFkG$J+MRMVS>Yp\k\m^b^caUf_faffifl%(B")
("tq" "$(0H3NyUd]$^#$(1/42Y?MFw$(0*Q$(1MSfeO)Ys^m^z_"bqdH(B")
("tr" "$(05<5=5>5F5J9z9}:!>}?$CDCWC\H0H9L]LhLj\4\A$(1)C-5-72I2K2P2R8h8i?D?h?j?mFQFYFaFpM8M:MHO-R|SJ$(05;$(1TJrGU[U]^r^x`NdKf]fggnihl$q8(B")
("ts" "$(05:9t;-;/?#E:E<H8SsY/[a$(1"n-<-G$(01>$(12DSR8s8z8|8}?lF[FcFjFrG%M7O2O^(B")
("tt" "$(0*!8v>{H6LbLeY1\6\9&k$(1!Nmv-/2T8c?P?sFPG*G\O+^a`Kb|dO(B")
("tu" "$(01A2t585D5E5G5H5}9s>v?(CaClH<I_PVY2Y=^t_)$(1$~(U(V(\(d-62G$(01.$(18^r.8o?B?G?I?K?_?rAPF5F`FdFgF{O0S7SUSeXgYjZ![b^v_Hawiqq[(B")
("tv" "$(02[4J9rC]CkCnH7I*LkPIQlQsW*\3$(12F2S8`8m?H?]FZF^F_FbFxF|G#M5S=SZU\Yy^kbuc#dJ$(0-B$(1jZoGl"l+oC(B")
("tw" "$(05BL`P\T&W-W0Zj]#$(1-82B8d?i?o?qFUF]ShYzbg$(0*3$(1f`l,(B")
("tx" "$(0Y.T(Y5$(1?`(B")
("ty" "$(0CYCh$(1$z-F$(0?!$(1SdoD(B")
("u" "$(0&U(B")
("ua" "$(1*!5$&LImP5IvP0(B")
("ub" "$(0;~<"71<#$(1kX$(0Ej$(1*/.o4z;G;PIlP4dAdB(B")
("uc" "$(0UWYq]^$(1&>$(0UV$(15(mN;RIxgw(B")
("ud" "$(0UY$(14x;JBWBX$(0;|$(1Vpmpi((B")
("ue" "$(0,'73$(1#c&K4{$(0,$$(1;H(B")
("uf" "$(09.;w48$(1B[P7P3(B")
("ug" "$(0<!$(1)}*$;T;VIqIr$(0;{$(1kYq/(B")
("uh" "$(1#b#d$(0&2$(1;@It;EIn(B")
("ui" "$(02x75:+<$@v[l\j$(1"9&F;A;UBY$(02r$(1Isn"IwP/ViVtaQgyhs(B")
("uj" "$(076$(1.s4y5#$(0/'$(15&Vs;NH&IjVl(B")
("uk" "$(0UX^6$(1#g&D$(0'!$(1J]o'Kr(B")
("ul" "$(0JZ$(1!,#h#i&C*+$(05'$(1lJlL(B")
("um" "$(0Ek$(1&A$(0;x$(1&BIu)|(B")
("un" "$(0,%@4@6$(1#e&H$(0)|$(1*"An*)3o;I;M;Q(B")
("uo" "$(078@uNUWR$(1){4~$(072$(15!\f;SD!IpP6Vo(B")
("up" "$(0;}$(1&=**3N;L$(0/%$(1BVeL(B")
("uq" "$(1;OP-Vn(B")
("ur" "$(02s74;yJ[$(1&@&E&G&I*%*&*,*-.p.q4}5)$(0/($(1;WhrBTBUB](B")
("us" "$(1&?&J&M*0;DIk!WP.Vr(B")
("ut" "$(0NTYC:@_D$(1&N#`(B")
("uu" "$(0)>79;z<%WF^m'y$(1"7P1"8":"j#a)~*#-.5";C?C(B")
("uv" "$(1*(*..t5';B;FIo$(0@w$(1VjmMVk(B")
("uw" "$(14|5%$(0/)$(1;?P2B\(B")
("uy" "$(1Vm(B")
("v" "$(0&M(B")
("va" "$(0;gCALFSpVdX~;eY%$(1o0$(0Zc]A$(14g;->}P&Rr(B")
("vb" "$(06w9L;b@hEd/1Gp$(1rM$(0JGJHLBLDNLP7P>SnVi$(1#T&+)p)t*64U4q;";$;.;3F&F)IaLoM$P"RsY?\Z\^^=b_bbiZkVpI(B")
("vc" "$(0SjSoUQVeVt\+\~_?$(14W4l$(0Ec$(1;2q1B;P'P)VeY@b`eJkvkx(B")
("vd" "$(0)q.i4~<&@iEqGqLCNIO?O@Vm]]$(1&3&8)i4Z4n80:{$(0)p$(1;%o2;,?!BHF#F/IZLkLsVfYHYIf@(B")
("ve" "$(0+s9J@jEhL:L;L=LHOIP@PAPBVr$(1&V$(0(D$(14Xky4f4k;0F$F%IYIbLrRyV_^HbekW(B")
("vf" "$(0*O-%$(1m4$(0.sC=C>EeJKJLJML8NKP8Q{VhVpY#^[_K$(11u4a4c4e6}:yB<BII`LmM#P!P#Y>YJ\7^Ga4eKfChXi\k8(B")
("vg" "$(0+m+t2`2b7!9HCBLE\}$(1&&)v.d1t4]4h8*;4>t?"F'IQRz$(0+h$(1Vgq3\[\a^EdDkz(B")
("vh" "$(0.q6|9B9NPEVfVs+o$(1#WLv&..c82;!E~F*IX(B")
("vi" "$(0.l/R4x4{4}6~9K;s>S@~SlURVq\,]'^D)s_($(1qw#S#X&-&4,m1w4j8+86B?BCBGIVY<\`^@_:b[c<p7(B")
("vj" "$(0;fC:L9NJP=PDVjZa$(1"2#R&')g1|4V$(0)n$(14\ba4m;/BKITLlL|O~P*RmY9^?^C^M(B")
("vk" "$(0+p0n2^*.2f$(1o&$(06r6x9C>_C8EbJIOdP:Ze^I$(1#Y&),n.].`1v85;)>wB>F!I[L}RnRvRwVa^Bb]eImJ(B")
("vl" "$(06v6z>ZDUGrP<XK$(1!##V#[&2'$,l.b1x1{$(01,$(1:zN[>|F"(B")
("vm" "$(0.p4y>[GoPC^C$(1!C!D"/&(&*&/)f.^$(0.m$(14Yhq8,84;(;+B=LtL{O}RoV\V`Y8b^f>(B")
("vn" "$(0/;2_4|6N>W@fE7]`$(1#U$(0+r$(1(Jo")l.g1y1z8(;';*?#Rx\]aN(B")
("vo" "$(0.t2cEaL6P?PFVl$(1*?._4T4b8/:~$(0'i$(1>qq4>r>~IcIdLpVbXV^>^D^If?i](B")
("vp" "$(0.j2a3(7H9I9MEgEiVk^7$(1".$(0+n$(14pq08);Z>xIWLuRuVdb\f=mK(B")
("vq" "$(0>RCCP9Vo^8.u$(1)rfF*V/50abdfD(B")
("vr" "$(0.k.o;d>V@kC9C?C@JJL7L@LANHP;X=Y!]z$(1&,&1)d)e)m)n)q)s)u+x.a1C4R4[4_$(0)r$(14di[4i8-8183;#>vBFF+F.IeKmLzP%RtYDYF(B")
("vs" "$(0(E(O+9+k+l'=7"$(1YG$(09AE;$(1&0)hIU(B")
("vt" "$(0+q.n$(1mq$(02\>^EfSiXA$(1;&>sE?P(YA\_iC(B")
("vu" "$(04z6y)o6}$(1pD$(09G:U;a>T>X@gC;L?NMSqY"Zb[h]__:$(1"1#Z)j)k.e1s1}4S4`:}>uB@BBF(F-LnLyM"RqY;(B")
("vv" "$(02d6u6{;iGsHSL>ROVg[i]D^B+j$(1"0o?)o.f4oBJLqLxV^Y:fAfBmL(B")
("vw" "$(0>YLG.rOk$(1V]$(0V<X@Y&YR$(1(58.;1BMP+Rp(B")
("vx" "$(0Y$$(1BLYB(B")
("vy" "$(0>]$(1Lw(B")
("w" "$(0(q(B")
("wa" "$(0Gx]S$(1^P(B")
("wb" "$(02M$(1fI$(05,6i$(1#H4/40:b?&(B")
("wc" "$(0>-(??L$(1nw$(0D:ERX(_C$(1OrdW(B")
("wd" "$(0+[0+$(1%q?'F2YNeb$(0)a$(1q\(B")
("we" "$(11&<<,>>3\{E-F4(B")
("wf" "$(0E*PGU:^f$(1,o$(0>\$(1fJqmkCk{nuoxpJpqpr(B")
("wg" "$(0>+J?R/SrX?-_Zd$(1o#1~87L"^Om;(B")
("wh" "$(0+]$(11%p(2"(B")
("wi" "$(04oHFJ7(aZP$(1YL%r7@(B")
("wj" "$(0'R$(1YM$(0;Q>,GIGv$(1!AVS(B")
("wk" "$(04N4OU=$(1\z$(0)_$(1aM(B")
("wl" "$(00x(s4M$(1(4(B")
("wm" "$(0Gu]i$(1,=2!2$$(0;P$(1F0fMa<(B")
("wn" "$(0JBLIU>?j$(1#Ie/$n^Q(B")
("wo" "$(0>9(@U}$(12%.L/z(B")
("wp" "$(03w7JEtPH$(1#G+L$(03)$(12#V=J-M%(B")
("wq" "$(08e@Y$(1]`(B")
("wr" "$(0.W6j9P>*G7X5)`Z)$(1qU.K@GiLms(B")
("ws" "$(0X7-/$(1\\(B")
("wt" "$(1B)m=(B")
("wu" "$(0;O+\X6$(1k|E,F3\@\AkDkF(B")
("wv" "$(0EQ4L$(1"'m<(3@5RGVR(B")
("ww" "$(1R8$(0J8$(1R{(B")
("wy" "$(0Gw$(1F1(B")
("xf" "$(1rXrWrYr_rZr[r\r]r^(B")
("xh" "$(1rarbrcrdr`rerhrfrg(B")
("xl" "$(1ri(B")
("xm" "$(1rj(B")
("xo" "$(1rkrlrnrm(B")
("xr" "$(1rOrNrPrVrQrRrSrTrU(B")
("y" "$(0&4(B")
("ya" "$(05e$(1p2$(05xHbHgPzQNT>TEZ{Z|$(132TFTOcMcNeXg+(B")
("yb" "$(0-;-@1:2u2w?B?W?XI3I6I]L'LRLVM"M/M0MAPPPyQ"QKT8TBWJ(LWe$(1p|$(0YBYN[!_"$(1/R367g9hCDCEGXH)R[TzZPZVZZZ|[~_LcHcIg-g/(B")
("yc" "$(0)*5X5_HuK"TZT]U#WIYn[J]u^%^4^n_._5$(1@?GcH*HfM]O$T@UaUb[Q$(0&{$(1_[qYcWg,g8h}j$kKmBnDoU(B")
("yd" "$(0-S-T-k3M5f8&8):>:?:M=:?eGcHeI,,cPw$(1n|$(0P{Q#T<T=WG\C$(1*l9#ElE{GTN9TL_QcP(B")
("ye" "$(0.?0?$(1p1$(01T?DC+D#D/DMI2J~MGOGTG]-$(1*i+J/P9i9l@uK3T?TDVGX`_N_R_Sb@cQiSj%j0n)oa(B")
("yf" "$(09D=o?cC<HaMBO^PuPvQLT:T\X:[$[X_;$(17fHsV0\0\}_Za!a&cVcXe8g.$(0-l$(1hHr)hSk)k.mEnnoPo|pmpnppqtr((B")
("yg" "$(0=-?_?dC*D"DNDQHhI7IUJ:M.MdQ!RM'eRp$(1q?$(0UNYcYdYlZ/^K_!$(1(nGKGNGOTyZMZ[(B")
("yh" "$(02~?*?@D-FZJeT9,dYA$(1p{(o,)9"9P9gH(_%hi(B")
("yi" "$(08^:7;j?E@&DPH^MlRSTCTXUbWM["(i\?$(1n!$(0\b^k$(1,c/}3"5k>c@EByTATBZ&g&l>(B")
("yj" "$(0-Q-U.6.85U:6'H::$(1q>$(0=|?C?Z?b?~D$I+Q$TVTWWbZOZzZ~\*\B]4]o^u$(1(r@tTIT|ZLZOZY[d_McLg0hm(B")
("yk" "$(0)).`/t2V7h:&:K=!?AAVH?HmM)O.QMWgY?[y$(1(q(s9Q<>@@N7PhT}$(0'G$(1_OqxdTg'g)kN(B")
("yl" "$(01U5h:<?G?[?\?f?gF<I;1SM?$(1hk"q%(%)/U>bGMH,NRhj(B")
("ym" "$(0'P-i5M:8=#>)?^CqD&&9D)$(1p0$(0D+H]MFPtPxY@\`^l$(1!08<<@@JAYE+GPN5ZKZQZU[c_Y_ncOfLi|l?m9mFn'o/oS(B")
("yn" "$(0*m-V.,1i5V6J:=?)E8I8N*R9RPTDXh&nZh$(1ps$(0\E$(1'%(m,:3/33E(GVO]XUcYe9fkkml!(B")
("yo" "$(05d8f:Q="?]H[I.M%M1Q&R0WcYO]h^3^|$(1/x6<<D?0@DC|GSG_$(0)+$(1K-l@Q;TCTMT{WjZS_oaec9eWj"l=(B")
("yp" "$(0,40A6":;=$?FEuHZM#M&NeU?]U^J$(1"o#x&Z-V;c@HGQ$(0*;$(1N6rFTGW#ZTaBcSg*mCn,pQr+(B")
("yq" "$(0H\I/I1T;=uTY$(1W5$(0T[Wf$(134@I(B")
("yr" "$(0+>-G5`5a5c5g9=:P:R:S:n;9?V?`@>D%D'D(D.DOHOH_HdHiHkHlI5K#M$M+MCMiP~T?T@[#\D\\\a],^2$(1)K-X1a3031357]9j@A@B@F@sGRGYH+ZN_TcKg2$(0(($(1kJr9kLkqoRp3(B")
("ys" "$(0.47k???aD*H@H`HcM-W6WH[1$(1#4%&-W.19k@=@KO_ZR\K$(0'J$(1cJp}e=(B")
("yt" "$(02|:T?YM'SNWOZ}$(1-L-U$(0)"$(1@>qXGWLVZWZ~_\dghhkI(B")
("yu" "$(0)'0~1N1j2#:5:9:L=F@!@tGGHfI-I9KuM*MDMEQOT6V"WKWLYP\$$(1";%'(p/T7T9N9O<E@8@CGUT:TE$(0's$(1TNrDWrZ'Z{Z}_P_UfGg#g(i~kMp4qZ(B")
("yv" "$(0)m*i-W.f287l:/:0:N?6DRHWI4L&LzM@PpP|TATFU(WAWCWd[2]V]r^j$(1709E9F9G@4G?N)$(0&B$(1N4rIN8T7TKUjZ@ZCZDcRi}j!nG(B")
("yw" "$(08g:OI0MH\o$(1H'ZXafg1n($(05b$(1n+pR(B")
("yx" "$(0M}P}(B")
("yy" "$(0('/v'-5W$(1/S$(0D,M,Q%(B")
;v "z\," "$(0!"!#!.!/(B")
;v "z\." "$(0!%!$!&!0!1(B")
("z\;" "$(0!'!2!"!#!.!/(B")
("z\:" "$(0!(!+!3!%!$!&!0!1(B")
("z\'" "$(0!e!d(B")
("z\"" "$(0!g!f!h!i!q(B")
("z\\" "$(0"`"b#M(B")
("z\|" "$(0!6!8!:"^(B")
("z\/" "$(0"_"a#L(B")
("z\?" "$(0!)!4(B")
("z\<" "$(0!R"6"A!T"H(B")
("z\>" "$(0!S"7"B!U(B")
("z\[" "$(0!F!J!b!H!L!V!Z!X!\(B")
("z\]" "$(0!G!K!c!I!M!W![!Y!](B")
("z\{" "$(0!B!`!D(B ")
("z\}" "$(0!C!a!E(B")
("z\`" "$(0!j!k(B")
("z\~" "$(0"D"+",!<!=(B")
("z\!" "$(0!*!5(B")
("z\@" "$(0"i"n(B")
("z\#" "$(0!l"-(B")
("z\$" "$(0"c"l(B")
("z\%" "$(0"h"m(B")
("z\&" "$(0!m".(B")
("z\*" "$(0!n"/!o!w!x(B")
("z\(" "$(0!>!^!@(B")
("z\)" "$(0!?!_!A(B")
("z\-" "$(0!7!9"#"$"1"@(B")
("z\_" "$(0"%"&(B")
("z\=" "$(0"8"C(B")
("z\+" "$(0"0"?(B")
)

707
leim/quail/quick-cns.el Normal file
View file

@ -0,0 +1,707 @@
(require 'quail)
;; # HANYU input table for mule
;; AUTHOR: Chue Chi To ($(GUAJ5dp(B)
;; DATE: 28 NOV 1994
;; ENCODE: BIG5
;; MULTICHOICE: YES
;; PROMPT: $(GDcEFrSD+!Jv|Mx!K(B
;; # define keys
;; VALIDINPUTKEY: abcdefghijklmnopqrstuvwxyz/?;:'"\|[{]}`~!@#$%^&*()-_=+
;; SELECTKEY: 1\040
;; SELECTKEY: 2
;; SELECTKEY: 3
;; SELECTKEY: 4
;; SELECTKEY: 5
;; SELECTKEY: 6
;; SELECTKEY: 7
;; SELECTKEY: 8
;; SELECTKEY: 9
;; SELECTKEY: 0
;; BACKSPACE: \010\177
;; DELETEALL: \015\025
;; MOVERIGHT: .>
;; MOVELEFT: ,<
;; REPEATKEY: \020\022
;; # the following line must not be removed
;; BEGINDICTIONARY
(quail-define-package
"chinese-cns-quick" "Chinese-CNS" "$(Gv|(BC"
t
"$(GDcEFrSD+!Jv|Mx!K(BCNS
$(GiGk#v|MxrSD+uomu(B
[Q $(GEC(B] [W $(GFp(B] [E $(GEU(B] [R $(GDG(B] [T $(GE=(B] [Y $(GD3(B] [U $(GDT(B] [I $(GEA(B] [O $(GD)(B] [P $(GE@(B]
[A $(GEJ(B] [S $(GDS(B] [D $(GEM(B] [F $(GEV(B] [G $(GDH(B] [H $(GHL(B] [J $(GD2(B] [L $(GDc(B]
[Z ] [X $(GyE(B] [C $(GOZ(B] [V $(GDL(B] [B $(GEL(B] [N $(GD^(B] [M $(GD!(B]
"
'(
("." . quail-next-translation-block)
("," . quail-prev-translation-block)
)
nil nil)
(quail-define-rules
;; #
("a" "$(GEJEK(B")
("aa" "$(G_^_`bfd<Myso$(H`;'-CK[S[W[Z(B")
("ab" "$(G[)_]bg$(H*u5lJ^$(GM|$(HPoeVah(B")
("ac" "$(Gw`wnx:{B|O$(H<JCJWA$(Gi%$(HjT(B")
("ad" "$(GQQbe$(H$:$(GN;$(H."d:CEUP(B")
("ae" "$(G^2d>d@m3spY7x;$(H`?'''.*x5n[X(B")
("af" "$(G_bdyd|pru|w_$(H'r'y<H=iCGDgPlWE\1agh}j~k3$(G__$(Hk4p8m)nio~p!(B")
("ag" "$(GbXbck\vL$(H.M/U$(GMv$(H:ih~<GUQW>[Y`=ge(B")
("ah" "$(G]pdBMxl`$(HHS'('1*p5o<IBQ(B")
("ai" "$(GUkbhk]k_QVpq$(HPn$;*mB{(B")
("aj" "$(GJTd=d?jLppzO{<$(H$9:*<E$(GH.$(HCLWFHVPmWB(B")
("ak" "$(GQPbbu{$(H$<'&'*=q$(GN"$(HCFp9CMPpW?[V\}`>jS(B")
("al" "$(GM{N!I;_\$(HWC$(GgP$(H*q*w@xNW(B")
("am" "$(GM}QSSmUqdAi$$(H:)J]$(GFY$(HWGjU[Td8(B")
("an" "$(GTJ$(H"N$(GO\$(H'0AA*n(B")
("ao" "$(GQR$(Hat$(GQWUrX`dXk[wa$(H'+'J*sPjPkaf(B")
("ap" "$(GY2_,Mz|:$(Hh|*o(B")
("aq" "$(Gu}$(HCHlYWDdN(B")
("ar" "$(GUpYB[&_ck^k`m4QOod$(H_X$(Guzu~$(H*t/XHTTF(B")
("as" "$(G[+QTyq$(HA@'%')*y/V/W3p(B")
("at" "$(GQUbdeAw^N#yC$(Hd9HUJ_W@(B")
("au" "$(GP#QMR_UnY([%oepnE;$(H#fgd$='/*r5k5m<D<F<KABD%D'K3[U`<(B")
("av" "$(GUm['HbdC$(HlZ$(Gzo$(HUO(B")
("aw" "$(GUo$(Hl[(B")
("ax" "$(Gro$(HUR(B")
("ay" "$(G[($(H[R(B")
("b" "$(GEL(B")
("ba" "$(GW[$(HbB$(GeGfno/u&y%$(H-&7P?0EEF9YTZc]i(B")
("bb" "$(GO0Xl\heBfsjRp6N%qP$(Hjr$(GuU|T$(H(P9T>@>C>DEFF?M0XcZ^]h^[bif&(B")
("bc" "$(GL&TBaOmymzqxuSuVw-{u|D$(H,z$(GKJ$(H@LpbN<TRXbYW[f]jdRf%gtiClBln(B")
("bd" "$(GNhOY\i`zeIeJmwwx$(H%M(9-!11$(GIw$(H3%bA7L8OF<G`TV^X(B")
("be" "$(GN$O2O4R;]Icxf(f)ktmZnN$(H,E5q8K8S$(GL?$(H?2qxEBEDFAFCL)N;RDU{Z]^Wbjd@iDiF(B")
("bf" "$(G\B`SNfk5$(Hq($(GnQqQqltJtKy\zV{O}E$(HEAL,M,TWV9XkYCYYY\Y]]k^Fbke!f'fLhThUiak)k2k6m*(B")
("bg" "$(G\:eDeMf'k1nLpJqOrstFt}vmwf$(H207M$(GK>$(H8Mo:8P8Q?4B-ECF>H[S'S-WHY_i`knmr(B")
("bh" "$(GRbRcX@XBZ3Z4f#nOo2J/qy$(Hc`$x%$-'-(17>?(B")
("bi" "$(GO3P%TAVwXAaLjSo-t:uW|V}/}3$(H$t$w,C$(GK<$(H,wl5,y-%/18N>EHoMzS)S,Z4^YfKfpgxjt(B")
("bj" "$(GK;S[aPK8eK$(Hg6$(Gfpy0$(H(:(N3$7O>B?6E?F=HnS(TPTQXiYXZb]g]ldcg3(B")
("bk" "$(GUuW^WaZuaKisnMtH$(H"i+~,{-)$(GTq$(H7Kq)CNEGF:L*Xj[v_b`pc\g4ix(B")
("bl" "$(Gf&go$(H(O,I,|14$(GS.$(H2/Y^3<3>@u@{@|H+N=OBV=(B")
("bm" "$(GK=S)S2aJf$iuo,$(H!*,G-#$(GEb$(H12js8L@O@QFFG^M$RGS*^U(B")
("bn" "$(GGHHZI4K1P,TKW\D}b1$(Hf#$(Gks$(H!h!}#/$v(;(L(M,x10223o7N7U8T9UFDL.Z_(B")
("bo" "$(GVz\<]HaSb:eCeEfws0u%vMvoxT$(H,~-*/Y/Z152.218JFBL+$(GTC$(HXf^V]m(B")
("bp" "$(Gf%s^t|ylyrzz$(H?5M/Xh[x$(GVy$(H_c(B")
("bq" "$(GS'\;aUf!FntI$(H]f7TG_YU(B")
("br" "$(GLRS/W_Wbb0b2b4fofvmvo*o~qws1u$uNuQvnzE$(H#,)K*{-$181;7Q?1EHFGM.TSZd$(GGQ$(Hc[l@h.(B")
("bs" "$(GHYI7O8Wg^9jP{.{p$(H,D,H-"16[y^Z$(GEy$(HiE(B")
("bt" "$(GFwWf\mmxtGz/Eu|($(HlA$(G|U$(HGYM+M-[w_d(B")
("bu" "$(GFxKDKfM%O1O5R]FoS0$(Hp($(GWZW`\k]<aIaQc*eLk2z-$(H'3*z,B,F,}3N8I8R>>>A>F?/@M@NE>E@FEL2N.SgXdYVY[Z`_Gg!mUnQ(B")
("bv" "$(GO,Wc\9\nItaN$(Hc]$(Gf"jTk4o.sOu#xi{H$(H(8132-7R?3B@F@S+Xe(B")
("bw" "$(Girf*rI$(HYZF;(B")
("bx" "$(GWjw,(B")
("by" "$(GaRDe$(H8U(B")
("c" "$(GOZ(B")
("ca" "$(G_d$(Hj<$(GgHrc$(HA:Nw[1[F[J[N_~j8(B")
("cb" "$(GgBoZo[rjwYw[y6},$(HA=H6HJHONeU7$(Gb\$(H[/qaUK[G[L[O`.d-gLj@jNlSn7n=(B")
("cc" "$(G]NgcgdoawUwX{5}=$(HGXH:[D$(GX^$(H[IpX`6`Tc~gYj>jBjIjKn6oY(B")
("cd" "$(GrhwW|L$(H:#:&HPN_NxN|N~$(GkT$(HUAn<[,[7`0`2d'd.gSjMjPlRlU(B")
("ce" "$(GgMrguluvuwy;|M$(HA2A;NrU.U1U4$(Gba$(HUGr1[5[A[C`#`&`'d(gVgZjHlWn8o[(B")
("cf" "$(GuuwVy=y>|K$(H'zA+$(Gup$(HV7r/[.[3[=d"d0dye%gPg[j=jEm6(B")
("cg" "$(GkVo_obriuty:yAzL{7}?$(H#L$(GbZ$(H:%qdH5NfNtO!U9[B`(`3gUqb(B")
("ch" "$(GJ.bYgKoYrfux$(H:!:'A>UId/$(GE!$(HcY'"gQg`j5jLlV(B")
("ci" "$(G]j]l]ogIgJrdy?{:{{$(H9P9~A.A5A9H7HD$(GD|$(HHKr7N}U,U8U<_;_yd!d#gRg]g_j9jFn?qAqD(B")
("cj" "$(GoXo`ocy9{9}5$(H9zA6$(GX\$(HNboZNd[;[K`/d5g^j:jA(B")
("ck" "$(GgAkOumuqy8$(H'"5i9|A0HCNgU5`)g0gTj6$(GEX$(Hj;r0(B")
("cl" "$(GMtP3]me%gCgO$(H">$(GD9$(H%,_{3AA/A3NpT}UC(B")
("cm" "$(GWQ]n$(HqC$(Gb]g@usy7$(HH8H@HBHNNsNvTNUE[0[<`-d%d,gN(B")
("cn" "$(GVUX[X]b_$(H,:-a3E3G$(GP'$(H9}n:A7N`NjNqUH[8]\`"(B")
("co" "$(G`#b`r_$(HA4HEHRNhU2[2`%c}gMgWjCjO$(G[C$(HlNqElPlX(B")
("cp" "$(Gllrl$(H9{A*A-H4H=HINcU3UBW.[H`$$(GMC$(Ha[pYd)d6g\jJlMoRoX(B")
("cq" "$(H9QHG$(Guo$(HN{lQ`1j7(B")
("cr" "$(G]kg?gEgGkRkSkUo]rarkrmurwSw\w]$(HH9H>H?HFHHHL$(GKG$(HN8pZNaNkNlNmNuU0U:U=U@UJ[+[6[9[E`!`7`8d$d+gOjQ(B")
("cs" "$(Gb[gLkPo\uywT{;$(H3F:$A)NnNyjGlT$(GD{$(Hqc(B")
("ct" "$(GkYrbwZ{||o$(H#r$(GRY$(HA,n>U/[4d&d2j?(B")
("cu" "$(GJ%Nib^gFkZo^reI+y5$(Hd4$(GzM$(H-b0"A1A8A<H<HANiNzU?UF[-[>[?[M`9d3(B")
("cv" "$(GkXr`y@}+$(H:"H;N^U-$(GkQ$(HU6o\UD[@_z_}`4`5d1lO(B")
("cw" "$(GgNgDrn$(HqB$(Gun{6{8$(Hd*jD(B")
("cx" "$(H[:$(GzN$(H_|n;(B")
("cy" "$(GX_$(HU;HMHQ(B")
("d" "$(GEM(B")
("da" "$(GQi_}dHm;suN+x?$(HeW/n/t<Y<xCUE;JiK%K*P|WIWLWYal(B")
("db" "$(GQc[/[3_kQX_l$(HmS$(G_{_|i)i,pxp{p}$(H"U':++/e/i6064<f<qC]ChCjCnCsCxJpJrPqPrPyQ*Q6]&]+akapgo(B")
("dc" "$(GdOi+kjpwrJvNvPx=$(H"W+.+0+9/d6/<Q<_JfJ|K$Q,TUWMWNWW]%aqebo/$(G_v$(Hp`(B")
("dd" "$(GN/V,[4_o_pi-mCsx$(H$>$D$E+3/g6"6)6768<`<a<p<s<t<zCQCWC[C\JwQ%WbWd]"$(GJW$(H`Ni(dOdPe](B")
("de" "$(GN.N2[:[B_u_ym5v"$(H'F'G+&5y6'$(GFv$(H<TmT<W<]<uC_CcCfJnQ!Q"]*areXeY(B")
("df" "$(GN1Q]\T_i`OdUe[m:mBq!$(H+766<S<mCeJ{K!K"K#K'PwQ3WTWZhM$(GN0$(Hh]q"k+nop:pr(B")
("dg" "$(GN3QZUzU}V.[8_zi.vSvU{b$(H'9/j44$(GJ[$(H5to15{5~6%6269CtCyJ}Q1Q5WJWf]$mR(B")
("dh" "$(GJYJ^N:QeZ2[.dN}H$(H'7'?*}$(GD_$(H6(]463<kCoP}Q$We(B")
("di" "$(GJZJaN4[1_qbydRi2i4pspyq"vTx<$(H$C$G'<$(GDP$(H'Aq$+5+C9/JlJsMxPuQ.WR]#]6k\k^l4nAq!(B")
("dj" "$(GJ_N6N8Ql[0[2F]_r$(Hl_$(GdIdPi0m6pu$(H(7+!/r65<d<nCRJxK(O1PxQ#Q2WPWQWX]'amdMgq(B")
("dk" "$(GN7UwZy[6dJm<m>pzss$(H!;$A$(GJ\$(H+-W^+;/\=}CTCgCuJeJqJvO2Q/(B")
("dl" "$(GN5QkQm[;dEdLm7sv$(H"S+?/b/h/p5z6+$(GJV$(H6.\C9n9o<y@y(B")
("dm" "$(GJ`QdQgQnU{V!_xdKi/plsq$(H'B'D+$+*+>/`$(GF[$(H6,r+8B<M<U<X<cCOCYCdJgPtPzP~Q4]1i#k](B")
("dn" "$(GN&N9L.P*$(H]2$(GV/V0dTvR$(H!K"P"Q"T$F'I+)/a/f5|<jCPCqCzW`(B")
("do" "$(GQaUxV+dGmAptp|stvO$(H'6'=+2+6+A/q$(GKt$(H5uec6:<Z<[<b<oCbI#PvP{WS]!].]3an(B")
("dp" "$(GN-_w$(Hi!$(Gcws`y_|;$(H"V$@'@'H*|+(/_;l<e<|CwW%Wc\~(B")
("dq" "$(G_sx8$(H'E*~C=$(GSt$(HCZk_CvFHWKWU]((B")
("dr" "$(GQ_QbQhU~V(V*[5_h_mdWi(i3JXi5$(Hi'$(Gm9szx>y~zr$(H+%+'+<+=/m5w5x6$6&6-61<N<\<r<w<{C^CmCrJdJmU]W]ajaoe[(B")
("ds" "$(GN'QjdQi&i'$(H"R$?'>+"+,+@+D/^/s5}PsW_$(GH5$(H])e\(B")
("dt" "$(G[7dSpvvQ$(H'4+#+:$(GQ`$(H/[i$5s6*JkJtJ~Q(gp(B")
("du" "$(GF^$(Hea$(GJ]N(N,R^V"V-Vs[=[AdMdVi8p~q#ys}#$(H$B'5'8';'C+/+1+4/k6#<R<^CiJyK)Q)Q+Q7]/(B")
("dv" "$(GYb_tU|m=$(Hk`$(Gzp$(H/]5r5v6!<O<VCXC`CaCpJcJjK&WOWa`Oasi"(B")
("dw" "$(GQf_ni1srswzq$(H/c<gCSCV$(GN)$(HE,q#Q0Wg]0eZ(B")
("dx" "$(GyI$(HJu$(Gm8$(HWVi%ai(B")
("dy" "$(GQo[<$(H+B/l$(GH6$(H<P]5<vJo(B")
("e" "$(GEU(B")
("ea" "$(GN\R/[_`IiOmQmX$(H$S'O6T$(GJr$(H6[b#6c=-=9=TDGKHQ^Q_QhX%(B")
("eb" "$(GR+V<V>VBVI[R[d[h`9`;`?d_dddli?i@iEJliH$(Hkc$(GiImRmSt,yu|`$(H$U050:6V=.=?=F=QD+D4DODPKBKMKPKSKUQLQTW|X.]=a~b%eli3(B")
("ec" "$(GQ{[S[mdei=iDmVm\q'q2t#v\xBxE$(H!a'P'V060D6H6R=C$(GNU$(HD.qpD/DKQFQGQKQcU>X'`*`+`:awb"emeogsi*i,i6mYp=q[(B")
("ed" "$(GHAJoN]QYQpV%VE[-[J[T[e[g`,`2drekiWmUq)}2$(H+V+Z0-040?0B0H6\6b6g=6=SD2D7DLDM$(GH?$(HKIb$KTQOQWX0X1(B")
("ee" "$(GJwNDNLV?VF[V[``.`KiBiJiPmLq(t-v^$(H$Z$(GJt$(H$[i8'd6J6U<9=,D?DDK6K7K<QYQi]<]Da|b!ek(B")
("ef" "$(G[K[I[M$(Hpj$(GdcdfiFiQiUmMmNm]q=t.v1vYw~$(H'T+d=1=4=7=I=KD0D3DHKWK^QPQSQVQ]QbX*]EaxeihPi1i7(B")
("eg" "$(GNCVCVL[U[b[f`3`:`LJm`M$(HmV$(GcUdimJmWt)t0zt{e$(H!P+Q+S+c.R096_:u=VB7D>DFKNKXK[WtX-aya{ejkdkekf(B")
("eh" "$(GJxNFV;VD`=`@iVmT$(H$P$(GJg$(H$Wr?'_'b0KKCKJK_X!X)(B")
("ei" "$(GHBHFHGJpNNNONaX)[Q[X`EdgDFiX$(Hpc$(Gm[q,t'v]$(H"]"_$N$R'Q'^0*0L6`=MD6D8D<D@DIK?KDQHQ`WzX(]A]Ra}eri/i2p;(B")
("ej" "$(GH>HENMR![kFd`B$(Ho3$(G`Dd`dmi<iNmPq+$(H$\'S076I6S=:=<=WDBK9KEQQQeWvWx]>]Fkb(B")
("ek" "$(GJvJ{NWR'[L[a`1`GdqdsiCiRq.q/yv$(H"\$Q'X+O+]+`+g$(GJn$(H+kW~010>0@0C0G6a=2=;=>=D=P=ZD=K>KOKVKZQIQRQ\Qf(B")
("el" "$(GK!N`QzVA[\[]`HiL$(H"`$X+e0(0,036QK:QJWy$(GJs$(HX#]C(B")
("em" "$(GJ|NTN_R*V=[H`/`4djq1t*xCxD$(H$T'U'i$(GH@$(H'lmX'n6G6K6N6f=G=XD1DAK;K\QMQZeni0(B")
("en" "$(GJuJzNPQ~VN[W`-`A`Ct"Fev_$(Hi.$(Gx@}$$(H!b"^'e'f+R+i+m.-0<6X=/KAKY(B")
("eo" "$(GN[R.VK[liAiGiKt%t&t/$(H']'`08$(GNV$(H6Ded6M="=ED)D:KLKQKRQUWuW}X"X2(B")
("ep" "$(GJ~NENGJhN^$(Hep$(GR-VJ[P[[vBv[{d$(H$Y$]+W6Y6];\DNK=KGQaX&X+X/]B]GaSeh(B")
("eq" "$(GQ}$(H'R+\+h0+5J$(GQy$(H==X$=UDJQDQdQg(B")
("er" "$(GNINJNKNXNYR"R$R%R(VGVH[N[Z[j`5`<dadoiSNHq0$(Hi+#F'Z'\'g'j'k+X+Y+[+a+l0.020I6E6^6h6j=0=3=8=A=B=J=L>QD,D5DCEQK@QXW{(B")
("es" "$(GJ}`0`8db$(H!c$K$(GHD$(H'YQE'h'o+T+b0F6e(B")
("et" "$(GNQR1`yd^dhdkmKq-t(tExF$(H$L$M$(GNB$(H+Pr>006O7J=N=OD;KK]?]@b&kakg(B")
("eu" "$(GHCJiJjJkJqNSNZQ|R#FfR,$(Hp>$(GR0VM[Y[c`+`7`F`JiTmOq3t+$(H"[$O$V'm+j0)0/0;0=0E6F6P6W6d6i=)=@=R=[D9K5K]egi5o4(B")
("ev" "$(GR&TrV:Yg[^`6`>fMi>iMq*q4$(H"Z'W+_0J=H$(GH=$(HD*q%DEKFazeqi)i-(B")
("ew" "$(GXX[idnmYvZyt$(H'[$(GNR$(H+Up<+f6L=5=YD-WwX,(B")
("ex" "$(Gt$xAdp$(H6ZQN(B")
("ey" "$(GV@[OJy$(H'amW+^(B")
("f" "$(GEV(B")
("fa" "$(Gh)\Pq5$(Hf7$(Gt8t`$(H=f>mQnRiX6(B")
("fb" "$(GR4WeK9Z&$(Hkt$(G[rh\j4n6vcz'$(H*30W6s6w=gDZDbDdK`KiM1QqQsRhX>XBY3]Lki(B")
("fc" "$(Gdvo+t^yK$(H0_KaKb$(GVP$(HO3qGX5XA]K`Vd7eskv(B")
("fd" "$(GRv_jdwi*HMt4$(Hb*$(Gt5xH$(H$_'v6q=]DTDUKeLfRgX<(B")
("fe" "$(Ge"e$t3t7t\P5xG$(H]M1k6p<=K4Qz(B")
("ff" "$(Gdxi^j3q<Ncq?$(Hp?$(Gqfqjv`z]{M|*$(H=a>wDfQlRVX:XCetm.nm(B")
("fg" "$(GYX]zc^dud}mfv}z.K"$(H'u'&+n0N0\1o6{D_DeEzGGQtb(ewm[(B")
("fh" "$(GL,NdW>d{tbE7$(H"ar@1q6l6v=k(B")
("fi" "$(GR2r-K#t6$(Hqu$(Gz($(H'x+v,hX7X=Y4Y6]J^<_=b+khmZ(B")
("fj" "$(G[p[qj2oBUh$(H's]H(H,f,j8%=\=^DQDXD]LhQoX4X8X9(B")
("fk" "$(GUgZq_Td~elq6t9t_Gz$(H'pY5't+t,i=eDcQ}X@(B")
("fl" "$(GoP$(H9k'q1n(B")
("fm" "$(Gi[$(H$^+o+s0M0U$(G\O$(H6or,=_=dD`Y7bf(B")
("fn" "$(GNbP(hcI2$(H*=][,e.)0[E(QwR5Rj(B")
("fo" "$(Gfmt1$(H!<0O$(GNe$(H0Tcn6u<~=`Qk(B")
("fp" "$(Gi]q>sn$(H0S$(G`U$(HPAa6QrQx]I(B")
("fq" "$(GUSVO_?iaF$q7$(HU^0cB~DSD\(B")
("fr" "$(GL~$(H_W$(GR6R:VR`NiYqgt2ta$(H0X0]6n6t6x6y8$>nDRD^DaKgKjQm(B")
("fs" "$(GR5R8GIVQ$(Hi:$(G^8$(H8#(B")
("ft" "$(Gdzhb\Nq9$(HiX$(Gvayw$(H0Z8&=hKdKhQub'(B")
("fu" "$(GL:R9R\\7q&q8qR$(H'w+p.!0Y1l1p6m=cAVDWE{$(GG<$(HKcq&QpT7YK_Ic&ctmB(B")
("fv" "$(Gjv$(H,g6kBCDV$(Ge#$(HIZkjLeLgQvZB(B")
("fw" "$(Gzu$(H>lD[$(Ge5$(HX;qr_u(B")
("fx" "$(G`Q$(HX?i9(B")
("fy" "$(H+u6z0V(B")
("g" "$(GDH(B")
("ga" "$(GlAo5YYzT$(Hj[:b(B")
("gb" "$(GTjTmk7EtsY$(Ho2$(G|^$(H.W484;4B:f:oB.B3B4I=IAIDIH\Vg:(B")
("gc" "$(GcXk6lBo1onv>wC$(H4HB)$(GKK$(HB+q^T[ULZec_eCg8gXgbl`(B")
("gd" "$(GGg$(H%y)X.P40414I4L4M:dB5$(GGb$(HGfj$GiQ&TYVS(B")
("ge" "$(GL[]O^^`&gpn'o7u_$(H&#.X474E4K$(GIc$(HAvm$Bh?~IBJhQ[RFW<Y=Zf_K_^iA(B")
("gf" "$(Gc\Iem_$(Hnn$(Gm`q;sNvb$(H4?:kIKX3^Ka'g9hJlkllna(B")
("gg" "$(GTkYTh<jW$(H%})T)^.N.Q4G:c:q:s$(GGd$(HINpwN>OxTZlC(B")
("gh" "$(G_%b?$(H#N$(G^[$(H4:IE9W@T(B")
("gi" "$(GGyPlYZc[c]h@u<$(H"*%x&".O434N:r$(GF*$(H;;p)GbI>OqOzZ;\W_5_6(B")
("gj" "$(GM1YUYVk8twtx{S$(H$H.U3'4@IGOtTXVV$(GLY$(HdI(B")
("gk" "$(GTlZr]P^ah?lE$(H%v$(GTi$(H)Zo"9V:eIMQ~VTVW(B")
("gl" "$(GGa$(Hm=$(GIfL]SYXV$(H-Y-Z.YII(B")
("gm" "$(GIaLZL\PPYQ^ccYl@pKw(x0$(H%r%z$(GI_$(H%{i^454=4D9X:a:h@SB0B6B9GkI?(B")
("gn" "$(H!O")#K%Q%s.V.Z:tGh$(GI^$(HGj]^I@(B")
("go" "$(GKLPT^\`!cVsK$(H)V$(GIb$(H/xZhE%GdGlOuVUWk(B")
("gp" "$(G{`J5$(H#JPC%t&!)R/!B*IJJ*(B")
("gq" "$(Glx$(H%~)S$(Gl?$(H)[PU4ADmPT(B")
("gr" "$(GLXPQY[^E^`b>cEcTcWh-o6qU$(H%u%w)U)]4F4J:nB1GeGgOy_ecQcR$(GGO$(HcXp4e=m<(B")
("gs" "$(GI6I]PRPSc<$(H%U%|-S:pB2IL$(GGe$(HIP(B")
("gt" "$(GVu^bcZ$(H)`B,$(GLW$(HOshn\X\Y]eeB(B")
("gu" "$(GXD^Yh:ttuXvl|}$(H!9"(#M)W)\.T3(42$(GGf$(H46n"494O:m@UAWGcN-Ore-e.g7(B")
("gv" "$(GX0^F^Z^]b=x.POyf$(Hm>)Q.L:gICJ`(B")
("gw" "$(GlF$(H'$4C:lB/Zg(B")
("gx" "$(H4<eD(B")
("gy" "$(GL9I`L^x)SX(B")
("h" "$(GHL(B")
("ha" "$(GM~Q$S|\ra1j-j/n(vyv|z&$(H',*vEdRC$(GFu$(HWsr"W"]:^-^^efiQ(B")
("hb" "$(GO6PuU:a!a%a,i`j"n%n2q^qdvWw|{J|@$(H*48VBbEfEo$(GM/$(HEpp%FJKnLMLOLYL[R@S4XFY&Y2^#^9^_`ubWe|f3f6m4m?(B")
("hc" "$(Gb;$(Hqz$(Gb|j(jXo3qXq{s%uav)vxv{xJxYy&{A{m}1}K$(H1P=p?=E^HfRZReUfY,Y.\/^"^*`S`UbUdkf1g}hKiPiWkFn+p*q,(B")
("hd" "$(GEgF}$(Hi@$(GH7H8K(K]LwRuUAWi[?[@ecg#hMi7j.p$pPq`t[$(H0a1X<l=m>\>]EbEeEuFKFMLZL`R^S0Y(Y*[le#(B")
("he" "$(GJ2M>Q%QtQxRWTQV3WnWo[F_&c(dZe^n)p-q|wvxWx[yNz{E0$(H!?qq#u1f7x7|;Y>^DjLNLbOES2WoWp];e&eyhumjnypIq'qk(B")
("hf" "$(GRqVT^$`'kzqWqax&x'z,|x}F$(H2q53;t?<KfL}M2QyXyY/YE\3\4\:]N]}$(GK7$(H^,qPa+a,a-a/a5bSe"e)evexh>hWhYhZh[i?iOk8k9k<kDlaltm,m-m3m5nkoxp#ptpu(B")
("hg" "$(GK'M;RVSlY)_(a#a.bve_f,j!ken3}%}&$(H)_.S0b2r$(GE1$(H7jo<9K>f>hE]ErS3VZXEY#Y%]|^;bldlhXiSiUiykGmh(B")
("hh" "$(GNlRpW8\IqZq\vswq}*$(H(Q+z,_1T1e7"7z>[ARHgO9RbX{^5a@bMja$(GKN$(HnD(B")
("hi" "$(GD=G#GhHaI<J<K3N{Q!RmSxU+VVXpZ5\J\qa+a3j)p%qctXw{xZz$$(H"?#t$(GD;$(H$`pm&W(0+|1.2k7{8[><@#L1RdT&\{]~^+_<bOfNgyhci>l6mcmgmknVo>pA(B")
("hj" "$(GL8O]Q8RoRtVrW2W3a"a4j1kvtYt{v9vzzK$(H#P$q&q0&<@@&DlEaEvFLLcRB^0$(GDE$(HbQnxbXf2gnlHmi(B")
("hk" "$(GIYMSNkW4W=WhZv\3c_crefhelbn5p*s[tV|\$(H"'1d>bBiDkEsJ(L-Q>RcV$W!W;\i^7a>a?b>bVe0krn`$(GE5$(Hnvp+nwoo(B")
("hl" "$(GF(GML<MTO&OVTNZ9bSegk|oS$(H!7,\-]-_-`25$(GEH$(H3@pF>c8!8Y9p9r7oA"H/H0H1L_NXOFU$^6^8n5(B")
("hm" "$(GFb$(HqU$(GFmM<O*PMR<R>U@URW5\'\G\Kehj*j,n4nJqbqtw)|>$(H&V&X,d-,1#1R1U1i7#7w=nE_EcLVYb^'^)^1dje2fMnU(B")
("hn" "$(GHgI3L0L1L2M=SOWlXE\C]4^7ayfLkWl,n-nlnmp9r/|h$(H-L$(GD-$(H1aq\1j7r94@'@(ATE'ExHsK{K|K}L\LaR4R`T*Ug\D^3hdiTkQ(B")
("ho" "$(GEWEfFBFjN<O;U?W7Z6Z7Z:ein&n1tZvVx\$(H!,0}1g;Z>d?8C}En$(GD,$(HK,o;K-LXL]LdR_^.^4^:bLbmiVibn2(B")
("hp" "$(GHJK0KeM?Q+S}UIWkZ>\pczd&eahfjYlalkpVqes6tTx4xX{l$(H!((D,[,^1V$(GET$(H1cez7I7g7sD(O:^(dUeK(B")
("hq" "$(GQ#Q&[u_>a-d]jNu($(H"f$(GE\$(H'{m\;[?>C!DiJ@LPP@Y0(B")
("hr" "$(GGWG[H_I?IKLOLUQ"R=Z;\L\s^R`W`wa/a0e`j'j0kmn$n0oAoqq}v4wJx]z^{-$(H*S$(GGV$(H*Tn(1S52547!7$7h7p7q7t7u7v7y7~8W=(>e>g>iE`EqEwKmLUO4Ra^2bGbRe1e3f,f5hehmj!(B")
("hs" "$(GEeJ1K4MRWmY/\M`ia2cqemf+p:zv$(H"b#2(G)51Q8Z??EtI+Y$YabNfP$(GEB$(HgAq+(B")
("ht" "$(GHfQ7\Fj+j[msmuqNz%z0$(H1/1b$(GE*$(H24ms7H7}EmY'Yc^/bPbTg~h\ml(B")
("hu" "$(GF)G?H\K5L#NgO'R`RaS4U5W<Y'ZS^w_'ES`v$(Hpx$(Ga$ejn.n/z<$(H"g$(*&,]0#0~191h262Z7n8":D=*=l=o>jBjEkFIGBKoLLL^O5RARfS/S1T9VpVtY+Y-Y1Y`^!`bm0p,(B")
("hv" "$(GP~fTgqj{q_tWvtw}|0$(H,c/2;3$(GLg$(H>ZrCBDElP"V#ZFZt^]e{htmfp-r)(B")
("hw" "$(G\H`lg>vrx*x^|?$(H*?+{0%1W$(GVg$(H8XlcLK]df4fOks(B")
("hx" "$(Gn*vwH^$(H-+icf0(B")
("hy" "$(GFXEvZ8$(He4$(G_=oj$(HLWY)`c(B")
("i" "$(GEA(B")
("ia" "$(H*l5,bKI~V}(B")
("ib" "$(GU9UvZ+l[t~K-$(H!gme.$I|L@f/iN(B")
("ic" "$(G^(b3cmFZeY$(HpE$(Gfqi|l]o4y<y]$(H.(3&@RI}J"RXdSj^p$pD(B")
("id" "$(Gl)t]v3$(H(B*;+8.'.w/u$(GJ+$(H7am87i>kCkEYLCVyXz\=(B")
("ie" "$(GGCJePyTEZ*_#`xcneZlYlc$(H#m$(GFc$(H,XkA.y5+>XBfLJha(B")
("if" "$(GZ,ZQc%i\ky|.|y$(H+q>yBdP;$(GR3$(HP>o5RSRTV;VD\6^Ja0d{hGm!nd(B")
("ig" "$(GTFU<U=h8$(H"<*83k:0AjB8IFLBP<ZK$(GO#$(H\;kY(B")
("ih" "$(GW)Y6haFS$(H#^LF#o.z(B")
("ii" "$(GI0M4k{lZxV{I{Q$(H&p(C*7$(GH($(H.ko&1I1JBeJ!Z<]{_4lb(B")
("ij" "$(GU;tS$(H5/@o$(GH&$(HE[k@LHV{]z(B")
("ik" "$(GK2RiZsl^m/$(H!d#-$(GE]$(H,Ye+1M=rJ#LA(B")
("il" "$(GO%RkSgW.^~h`jVkIl\G|$(H#qcu(w,W,Z-[38@vI'NQ(B")
("im" "$(GH'M5MPRjW-W0$(H!{.}7_I{RWXx$(GH"$(H\<pv(B")
("in" "$(GJ)L)\&_!gnGF$(H#pkP%S1"3lAn(B")
("io" "$(GH9M2DfZ.$(HbJ$(GjOp7wD$(H![*:/{1O5-5.6=7`LELIP=(B")
("ip" "$(GJ*Q)RlUCWd^&_)cvhhlipUs\x2}"$(H!Z#v*9*@HtIzLGPQmM$(GD]$(HrA(B")
("iq" "$(GPx\@lwHI|[$(HhsLDQ{V|(B")
("ir" "$(GI/M3P8P;TGTSW*W+F:i~$(Hk?$(GqStR$(H%O.&1K1L1N7d:E>YEZh_(B")
("is" "$(GW1H)$(H$r,V(B")
("it" "$(GJ;\6e@vqx3$(H*6>=>V$(GFO$(HBc(B")
("iu" "$(GE8M6O$W/Z-_"a~Dxp,$(Hh`#n%N7bE\Q@RUa8(B")
("iv" "$(GP\PdfQ{kK@$(H!]hr.%7c>WJ$Uhe*(B")
("iw" "$(GVfi}TD$(H.xVzBg(B")
("ix" "$(HqR(B")
("iy" "$(GyH(B")
("j" "$(GD2(B")
("ja" "$(GWRO/Yn$(HLQ$(Gm2(B")
("jb" "$(GPkS-U(^o_gk:oCoGy/|=$(H!=1Z9a;:NN$(GM+$(HTpntTtZx(B")
("jc" "$(GVxYkb5hRk3sbuTwlyByMyjF~z"$(Hn9;9@eBOG|HeR\TTU_`QgB(B")
("jd" "$(GGsGuIuIxIzUyV&^peeF\hS$(Hn4$(Gi6y`$(H(F4u7k>_IdQ'TsW\Y!Zv\d],_lcre^gD(B")
("je" "$(GYjYmhToD$(H9b;8$(GEE$(HBNe/I3K2QCTqZy(B")
("jf" "$(GWD`ThVlNlQn+s7x_zU$(H;4ToV3X~a$dzgChEhIk'k,k=l~m&m'm1ne$(GLx$(HqL(B")
("jg" "$(G\DaFcRg'h=hpj#wR$(H7m9c?9$(GPi$(H@pd<H!K8VY(B")
("jh" "$(GhPhQRr$(H&8cq@mAk(B")
("ji" "$(GI{XGYq^'^;_<jmlOwK|g$(H(E3-?x@i@kPSTrW:Z-\>c7fq$(GGv$(Hj(lG(B")
("jj" "$(GKOP2U#XFbKclg%D\h~$(Hj-$(GrR{2$(H@bEgR[cs(B")
("jk" "$(GGPQJRsZta'D7g$$(HLR$(GhNrTvvwL$(H#\,a3,7l@c@g(B")
("jl" "$(GZ}]gz\$(H.h$(GPh$(H1]Y"3:9lG}NT(B")
("jm" "$(GL{N~O(PgWPDIg&$(HoV$(Gk<qstU|c$(H@jEhM&bg(B")
("jn" "$(GKgO)P+S\TIXq^4hOn,K6rS$(HOM!S!T"h.*9d@lAlLS(B")
("jo" "$(GU%\E]TbJp+$(H(5)x1Y1^4t;7?-$(GLy$(H@ngEBPGzL!R]Wi\e^$_kcoeS(B")
("jp" "$(GGwHR_-oJpTx1$(H9`;];^$(GFF$(HX}j*cp(B")
("jq" "$(GhzmcsdK&v'$(Ha9$(Gy.$(H>0(B")
("jr" "$(GLzP:PjU$U'U)Yla&a(bHhUj$uPu]$(H&9,r.i@d@h@qG~IfNMNOTuXr$(GF,$(HZz_V(B")
("js" "$(GL6P/W9W:$(H)4.j$(GHS$(HVg(B")
("jt" "$(H;5G{$(GF%$(H_mr9lFoU(B")
("ju" "$(GI,IyL}OQWSXHYo]Sedg~k;k=q]$(H#],`1[1\1_9^9_;6@fNLQATvZ{\?^%^&$(GD$$(HfDn#(B")
("jv" "$(GLfU&U*azoIpQu^u`Gxvu$(Hj,$(G{Z$(HI\IeX|Z@Zwj+(B")
("jw" "$(G^nbIlPL|oH$(Hn3$(GrQ$(HByZugFj)(B")
("jx" "$(HEi(B")
("jy" "$(G^m$(HH"(B")
("k" "$(GDK$(H!!(B")
("ka" "$(GY]H1[x$(Hb:$(GlG$(H"OE.E6L"XM(B")
("kb" "$(GH4FLJ($(Hr:$(GO7V[ViW]Z'[v`ne(e*mlqKqLvjxR$(H!.0h7-7C=t=|>5>8BRE8R$R)]O]P]ci=(B")
("kc" "$(Gb7e:r~vdxLzy|b$(H'|1(:2E7$(GVY$(HR'kmR>(B")
("kd" "$(GQ^[y[ze?Gt$(H0iE9=u>4Dt(B")
("ke" "$(GROVk[D`smpmrt=$(H0j<7<8='=v$(GE.$(H={o8DrKsL%R:]ab,b7m](B")
("kf" "$(GK)LbRRe8gmo{tCy[$(H'}DoDpF*R#$(GHH$(HR&qQXXX]X_\8]Qa(d|e$e'hLnfoq(B")
("kg" "$(GK*PXVZ\1btGc{f$(Ho9$(G|a$(H#_$c$g0f1&;<>9E:R!R8kk(B")
("kh" "$(Gil$(H$b0d$(GVo$(H>3X[>7XG(B")
("ki" "$(GE4R?ToD:\.$(HR<$(GhDimqA$(H!8"5('7D=zDnR9(B")
("kj" "$(Ge<icqJvi$(H"c,",v7%7+$(Ge9$(H]bo#(B")
("kk" "$(GRAVh[s`[ibioy{$(H=sL#L'R(XKXWX\b;$(GEY$(Ho7(B")
("kl" "$(GNnRQSh$(H"+$d&$0g$(GI|$(H3;o63?9tE3IQKrb8(B")
("km" "$(GNoVjVlVmVq`\`pcoik$(H(!(%(&(6,$2'$(GFJ$(H7,]`J?R7XZ(B")
("kn" "$(GE#GjNyP&\2`mint<$(H!e"d$f$(GD&$(H$oL$%R(#)b.,0k1+7)7F>/E4(B")
("ko" "$(GNqNzVX\$mexSIh$(H,'`@1-6<7A<}=yE/E5R%R=XLX^(B")
("kp" "$(G`ol/vk{i$(H$p($,#,>$(G\0$(H,?XY567(R;R?(B")
("kq" "$(H,p$(G{j$(H7BXJ(B")
("kr" "$(GF-LaNpVp`re>hEmmmq$(H(",!,%-Q.;0e1'1*7&7.7E7G=w>6Ds$(GE{$(HE-b=E1E2L&L((B")
("ks" "$(GGktBD0$(H!R1)!~(B")
("kt" "$(GLd[w$(H1,$(G\4`qmnsS$(H,&(B")
("ku" "$(GFgLcDRNx$(HR"$(GRPRSY1tD$(H$e+L.q2Y7'7*:4D$DqE0Kq(B")
("kv" "$(GVW\/]6`Ze)e=R@ve$(Hmb$(Gyz$(H"2'~)w=xXHXIb9i<(B")
("kw" "$(Gmo`YpM$(Hb<(B")
("kx" "$(Hf$(B")
("ky" "$(GVn$(H>:$(Ge7e;$(H$a(B")
("l" "$(GDc(B")
("la" "$(GUsj}lWM.uB$(Hl:2m2t5)9@@$@+M_McN$So_+c8fzl/(B")
("lb" "$(GP$S+S,fAfPjnmbnbnhnsp#z:{$$(H.u2d2v9'919<G1$(GDZ$(HG2pMG7G@MuN!StSzS~T+T1Z0Z9ZH_'_(_/_?c2c>cDiw(B")
("lc" "$(Gb6b8b{oop5r+s4xI$(H96;WB_B`IwMb$(G^{$(HP7oJT"T'Za_&c(c-c0c5fffripl7l8(B")
("ld" "$(Ge&jzncnq$(H-M-N2`9><i@,@.$(Gau$(HG3irG6G:M\MiMkSiSsT.VuZ,ZI_2c<fsf|(B")
("le" "$(G]7h_neno$(H&O'c2_2x2~93G+Mf$(GNj$(HMgq]MtN(N)S|S}T!T4_1c?iul9(B")
("lf" "$(Gr,p(s8$(Hos$(Gu>xw$(HJaM}P9P:SlZ.Z6_)_-_Bc.c1c4nj(B")
("lg" "$(GZ)]+arasfBfSlVniu9X2$(H;VpLG,G;MoT)_>fiispK(B")
("lh" "$(GSPX-i#jq$(H(i2i2z9BG.IyN%Sw_0_F$(GOO$(Hc*(B")
("li" "$(GHeX,]3fFr2w9xq{($(H-J-O5*9"9*9799=j$(GG}$(HG5qtMdMyZ8\g_CaQaRc/c6cCfmfxl1q8q9(B")
("lj" "$(GX+`VfHh[j|njoEr1u7u8w8$(H-GMrP8T%T,_@c+$(GX'$(Hc@fwfl(B")
("lk" "$(GFAX&X1_Yaqa|fCm0u;xx$(H&N2b2g$(GF8$(H4PnS9$9:?~@-IxMvSrT(T6Z*Z3Z7_D(B")
("ll" "$(GEZFsHkOXX(jpna$(H%)(h$(GDU$(H2eiv2j2u@}G0MsN*SqU!Vx_,(B")
("lm" "$(GSu[$],]/]2]8`kh^jJu?$(H2o2w9+$(GSL$(H92oL9A9FG/MaMpShZ=ZJ_.fgftoH(B")
("ln" "$(GXnfKh"nknr$(H!Y#.(g(j-I..2[2h2y?w?z$(GFQ$(HDhT$(B")
("lo" "$(Gxsz9$(H&P2\2a2s9)9-9=B^G-G4$(GG>$(HG?itM^SvS{T2T3\h_Ec3cAcBfuf{(B")
("lp" "$(GH3M@X3Z=]*_+u@{)$(H-H2^2p95Z5Z?_*_3c,eJmz$(GF!$(Hn!q7(B")
("lq" "$(GO.^|$(H+x98$(GHW$(H?uq:@%@/MjT0(B")
("lr" "$(G]-].atavaxfOfUjrjuj~M-nf$(Hfy$(Gr4xu$(H*2+y9%9&909;9??y@)@0@1@2MeN#VvZ)Z+ZGc)(B")
("ls" "$(Gr*$(H$n9#9.$(G]1$(H9Gc'Kl(B")
("lt" "$(GVvipjou:z;|GR[$(H*1pN?vG9Z1Z2Z>m|(B")
("lu" "$(GS1]:^zckfGfJfWjljtr3w7xr{r$(H!5#k#l.v2]2c2f2l2n2}8\?}@*$(GD*$(HG<qfM]MmMqM|N"Q?SkSuSxZ:_Ac=dh(B")
("lv" "$(GY_Z(jxnnr0u=uD{'$(H4]?|@5G)$(GSM$(HG*oIG8MlM~SnSpSyT/Z/`WfkfvoF(B")
("lw" "$(G]9^yawFqlX$(HoK$(Gndw:xv$(H%19(M`SjT-fjl0(B")
("lx" "$(HBa$(GaH$(HMnm{iq(B")
("ly" "$(GOf$(HSm$(Gjw$(H9,N&(B")
("m" "$(GD!(B")
("ma" "$(GRGTPUlV2HKo)$(Hgh$(GoVpm$(H0r<L=%>,>;D~EMH3XQ[*]Z]o(B")
("mb" "$(GGBNvV_V~\jE_`|$(Hma$(Ge,e/eUl0mhofy}{=$(H"p,50v737<D{ESEWL3L;N9NZN]Q<R,RIUWXOXpXu['[(]yb.cxdie}f)lL(B")
("mc" "$(GXC^!`^bzePeRfrg`gbieizqBqVs!s$tNvXyLSwy|$(HpC$(G{v|<$(H0m79:I>-AQK.KvNoQ:RJRK_]`Eb-b/dBeef-g2giiHiMj\(B")
("md" "$(GP4V#V1V`\>`_`fa5bWiwkKkNoTqzrvtAz!$(H$i(A.g0w3D6@$(GD@$(H7>pU:H>)>N>UENEPEVH]KyKzR0R3RNRRU)UX]V]s]u_qe`e~(B")
("me" "$(GN?R)RDTnW"[~]Ge-eSkLlhrHt@v%w;xNy3$(H,O,P,U1@6?9v=#>&>'DzE$L9L=U'U(_tb0eE$(GJf$(Hh3qFp\(B")
("mf" "$(GF|TOVS[o\Aifiyn#p)qEtQy4yY{4$(H0^=~>"OJQ=V1V2V5V8XmXn__`}a)a1b)cyd}iLk*kqm%m(m`oWor$(GDb$(Ho|r=qMqm(B")
("mg" "$(GH]NsPNV]VaYS\!_XbrbseWmjm}ogrwsLyFE^|!$(Hp]%Z);)Y1C72757]>P?:AKN[U+XTXo_skom^(B")
("mh" "$(GJ0RFReRge.mF$(H!%"$'L()(,)9+H,)$(GE[$(H,Mls,Q,t709w>KAMDxD|GAH\J'L6R-XqXv]Xc|gk(B")
("mi" "$(GEPFiFkO"RES#SNW!XIXZZR`$`]bxfIg[igivkwqCqTr.tPukxMzQ|f|wDi$(H!fpW$j,-1D1G1H3C7=>$>O@"ETJ=KwMhN\R2ROU&XSXw[_bHc;f+gjiIl2l\(B")
("mj" "$(GFMV|a}e1eOeVmgD[oU$(Hj4$(Gom{>$(H$h(((/(<)8):,.0n3B>SR+TOWn]W]w]xb3bEgJgm(B")
("mk" "$(GJRJUNtNuQIQrS3Zz]h_V`}bwe3h%i_zP}<$(H#Q"M'K(+$(GE2$(H,sq*0l0y>+E#H_K0L?R1RMXlXt]Y]v_a`HbFf!f}l]p@(B")
("ml" "$(GKXKYQKSrW#Xo[}e+g;kf{z|N$(H!'!1"r"s"t$k%+(-(t(v,,,4,8,R-\363739:v$(GHT$(H@wj/H,H-NRNScwe;gg(B")
("mm" "$(GD5DVDkDlEaF_G'K\KiN=OgQqW$W&]{`%`jbVeXmim{q%qur^zs|pD(|q$(Hq{#6#j$l(=+G,/,30x1?3"3s6B>LD#DuE"ELH^KuL5L8Q;]8^S_wbD(B")
("mn" "$(GEzGDGEL/SkY+\#\?`dc8e4h#ii$(H!)!|"e(1(?)2./0s1A1E$(GD#$(H7;`D@KD}L<[^(B")
("mo" "$(GJ'K+KIL%RhW%^<``i:qFqGs}t>vpxU$(H(k,L0q3#6A747:9H>JC|DyEJG[GxN:O%R*R/[)]ScZ$(GDv$(HdDj2f.gK(B")
("mp" "$(GRHUE_*`b`hhgy^yy$(H#w(*(@,N/"0p1<$(GH;$(HA$q`R.W$a7j1p^(B")
("mq" "$(GqDtM$(H/}0t$(GRJ$(H0uDw7X>#B}(B")
("mr" "$(GF{I@IAQsRBTWTdVbV}`e`geTg<g=ihixkMm~p>ruui{?$(H,*,+,2,60|1>1F7177787V7[7^=&>%>(>*>TA%A&A(DvEKEOH2I-KtKxL>RHRQU%UV]U]q`F`G$(GF+$(H]tpVcz(B")
("ms" "$(GE|FIP0W']|m|sDyGDa$(H!&_v!-#776?;A'ALXs(B")
("mt" "$(GKHN|RCRZJ-Rf$(HjW$(Gn"tOujzJ$(H";,0/~1=9RK/RLWmXR[&_`_r_xb2b4c{f*g1(B")
("mu" "$(GDwE-NrV^W(XY\"\=`a`c`~e0eQgYgZido'oWrxr|v$vg$(H?}!>%Y(>)7,1,70o0z6>7Z9S9u9y=$>!B]E!EUN+N,RPU*WlZ%]pa=md$(GDB$(Hn@(B")
("mv" "$(GS$SQ[|a{i{n!ohrtt?wuzwzx|P|n|r$(H!$)v7Y>I>M$(GKQ$(HG\jVL4L7[]\bdCj3(B")
("mw" "$(Ge2gXwg$(H7WXP]T$(GHi$(H]riJbCbIf"(B")
("mx" "$(G{~$(Hb1(B")
("my" "$(GOdoiry$(H(.$(GD6$(H,TER.20{>.(B")
("n" "$(GD^(B")
("na" "$(Gbjp'yU{K$(H:+$(GSp$(HEIqIT;`wk#n^nbpi(B")
("nb" "$(GbkbmgRrqsRsZS(v/$(Hqi$(GyV$(H(|-d.|2351:/V)`Cdndwh7j{k$lvl|nTohonq;(B")
("nc" "$(GDQ$(HqJ$(GSWgSg_hC$(HHWP?USUd[g`,`RhBjRlwnY(B")
("nd" "$(GFEH#Q[V)Xfq[$(H"3"w-h:.Cl$(GDM$(H\#qh]-a!dxh@hDjyk!n$n_pg(B")
("ne" "$(GKbL*Ob]r]y`u{L{s|-$(H!:!`&R,@9J$(GE/$(HN/oiN1PgV.dvh4h5j|o'(B")
("nf" "$(GU!^#e!kakcq@s;x$yQyTzZ{P|,K%$(H"4ot0P4s50OLUz`B`yhSjqk0k;ncoM(B")
("ng" "$(GJ,KEXdXh]tbolClDv0x!$(H:j$(GD`$(HAFr8AHGCOwhAk&n[(B")
("nh" "$(Gblw=$(H3I$(GFy$(HHpdtV(V*\"(B")
("ni" "$(GFPGiL"M8ONOaZ0]0]ungs~xtz=$(H&S(xBzB|GJHZM{OHT#\$\)_7_8lym_nZoeof$(GDJ$(Hqg(B")
("nj" "$(GP|XbZ|]vkbHjl_$(HnW$(G|+$(H"xJ&dJg"(B")
("nk" "$(GIvPYRTv.$(H9IAD$(GD4$(HO#lxPdV+[[dqj}(B")
("nl" "$(GE?oRx"$(H-P-e$(GE>$(H9qj0@zN0V>\&`x(B")
("nm" "$(GG"M7O`U>XgbnbppSxQ$(H%/&T$(GDN$(H({pd.{4r?)@9@;HXO$OIV'\%\-lznXoj(B")
("nn" "$(GDhKcRd_$a6h!D'$(H"ye9-gAGI(V%b5(B")
("no" "$(GDOENFtLvM9MUPfSyXcXeb/bibqrGrprr|Y$(H-c3H$(GD<$(H=!om@:\'`{h6jzn](B")
("np" "$(GQ*Q,Z<v!yDzY$(H%-J9OGV-\!d;$(GO^$(Hh8r<h;(B")
("nq" "$(GK,PzSqfXH`v-$(Hk"$(G|X$(H!0_J(B")
("nr" "$(GO_Y\]qfiyW|W}@$(H&Q(y:,>GGFJ%T:\*\+\,\.`v`z`|a#$(GGX$(HcWqjdoduh9k%lu(B")
("ns" "$(GK_P-P.SRY-$(H!i(z-fV&\($(GD%$(Hn\(B")
("nt" "$(GLuRX`tgQKa}A$(Hpe,AHY\c(B")
("nu" "$(GE6GNHcI-K`Xa\-]wp&s5s?$(H!Q"v#s%.%0&6*01:$(GD"$(HGDpfGEL/P6T<UTV,Wq["a"dmdpdrdsh:l{ol(B")
("nv" "$(GSoZ/b}$(H&4:z$(GSn$(HACphAEV~h?jx(B")
("nw" "$(G]s$(Hokh<l}(B")
("nx" "$(H"#`Aog$(G]x$(HqK(B")
("ny" "$(H:-$(GF@$(HhC(B")
("o" "$(GD)(B")
("oa" "$(GKvT,T5XrX}_aI$dD$(Hqo$(Ggrgvl&sC$(H%@3c3eA\I%]njZ(B")
("ob" "$(GI)KyK|K~OoOpT(T*T>X{Y#\l^,c+e]ghgzg}p0s,tL$(H!t!y'N)(-w3V3Z3\3h:9=+AbH|S.Uk$(GDy$(H`YaB(B")
("oc" "$(GKrT4X~]L]Mb<c,c0fug|kkl$opp3s#sAI.$(H!4r!#*-o-~3a:7:=AfHyI!\FgajdjejfkOnC(B")
("od" "$(GElG2I'K}OqOtV4[>^-buou$(H+E/v$(GEj$(H3Rn|:?HzH}UjWh^NdWjg(B")
("oe" "$(GOkOvXiXu`)c!c3s@wdwsyO$(H!j"Y$(GG;$(H(~f()a-n-u.[/P::A`OUUn[i\Hi4(B")
("of" "$(GI#O{Xs`(`P`Resgws:tmG-v2$(Hr4$(Gv8x#{N{X$(H!U!w#'-i-l-s-z0Q0R3]6}:;:<AZA]AdAhDYI"OPOQV6VC[h\9\Ea.a2e8h^m/n}owoy(B")
("og" "$(GG6G@HnIdKoL!OcO|^_b~c1gVEkgs$(Hp[$(Gg{zc|d$(H%;)*),)0-y3T3_3`:6>HAIONUUV@[\`^gzkNmmoO(B")
("oh" "$(GG$G9NAT:c2D+c5$(Hle!v"zHh\J`[(B")
("oi" "$(GEoEqG%G1I&JdKnOzT$^+^.c.jsl!osp2s)wtx+zS}.Ei$(H!pdX!s"}#()1-q-|3b3jHwJ>(B")
("oj" "$(GE)F#T)T=Z{^0kpl"w'$(H!m$(GDo$(H"{`X%9-j-t3J3g:CAYA[H~[a(B")
("ok" "$(GFzG.G3JSKpOlOmOuT#T7V8WMEmXx$(Hg|$(GY$ZwZx^1c-knsm{W$(H#$%3)%,K3O3f:A<;ASAiO7OROW`Z`_(B")
("ol" "$(GG4G7HzL;LTOWSiY&$(H!_!q!x$(GDu$(H!z[%"X$J%J+M,JA!A#HiU#Um(B")
("om" "$(GEcG0G:HvDnH~$(Hld$(GI%O}R~T&T+[G\_\c`*aEc/l#yP$(H!E!F!G!I"~#")!-{3^:8:>F6OO`PaE(B")
("on" "$(GDpDrDtG,HoHsKsKxOyO~QwT.T/XjXtY!D?Y"$(H``$(G^6aTl-l.$(H!3!A!H!o!L#!%6%7).)3-r1!3KI)V?VB]](B")
("oo" "$(GHXH}I*KzOnOrV7^)c#gxgyl'q$$(H!l%4$(GG/$(H%5nF(K-m/z3YAeAgD!H{NIOYVA[k]7`](B")
("op" "$(GEnG8HpKqMBZ?Z@E'c4$(Hn{$(Gc{k~pWs*zb$(H!r%2%=%I&Z*A*N-}.m/#3W57:3AcOX\GaCiG(B")
("oq" "$(GH!HrI!KlT'UUG5V5$(Hi;$(GXyXzjZ$(H%F+}I$(B")
("or" "$(GGYHt$(Hjc$(GHuHwHxHyH|I(IVO!O<OjOsOwP!T!T"T-T3T6T8T?XwYG^/gegfgukqs($(H#&%8%>%?%C%G%K%L)#)--x4':5?#A_O6O8OVQ8g{(B")
("os" "$(GG+H<I"V{^*Dsc$$(HHx$(GgU$(H!2"|%:)'(B")
("ot" "$(GKwHmK{$(Hmp$(G\5`{i;kop1$(H#)%D*<3U?"UlXadVjb(B")
("ou" "$(GHOKuM)M*T%T0T2T<c"d\gggtr6zR$(H!J!X!k!n!u$(GEp$(H#+aD$I%A%B)$)&)))+-k-v.t3i6C:@:BA^BYD&HvOT(B")
("ov" "$(GKmSzT1T;V6XvX|Y%];eNl%otv*$(H%<%H&5(})")/-p$(GHq$(H2|qH3Q3S3XAaOS[j\I`\e7(B")
("ow" "$(Gl(sBwr$(H0'$(GH{$(H3PI&3d7@9x>2(B")
("ox" "$(Gp4s+$(H3[(B")
("oy" "$(GOxT9$(H##$(GDq$(H#%+N%E(B")
("p" "$(GE@(B")
("pa" "$(GH0MJRUZHlp$(H'2*H*L5C;bJ/J4$(GH/$(HPJ(B")
("pb" "$(GP1UJZE_2_4hos_$(H&^/&$(GMH$(H/(PP/+5I;jBpBqJ1PEPNPO(B")
("pc" "$(G^"c|gahklsqYx6$(H&f$(GMG$(H5HeL@PBmBuBvPMQBQj^AaUaZ(B")
("pd" "$(GUQZNZPc~d"pX$(H%V*P/*/.1m5=5A;g;iPL$(GD>$(HW(W[(B")
("pe" "$(Ghihjmt$(H#{$!&k$(G_7$(H/,o*5?;k;sBtaVaX(B")
("pf" "$(G_:lqltlu$(H$&+r595<$(GQ0$(H5Eo)BnJ0O?PKV4\5bahRk.m+(B")
("pg" "$(GMIZM_8gWlms]wezj$(H#O*G*R/)//J.$(GJ9$(HJ7l;OvkZ(B")
("ph" "$(GE&FRUOZKhnE"$(H!\PG&[+J;hJ3(B")
("pi" "$(GE%H%DDJ:$(HaW$(GMFQ2d$$(H&o5>BoJ-PR\p(B")
("pj" "$(GZBZFZIlrzk$(H"B$(GUM$(H#3W*#~&\;c;fJ,PH(B")
("pk" "$(GGJJ8MDloE~p[$(H\q"@$$*B*M5DBwJ5J;W,(B")
("pl" "$(Gg9hm$(H#}$(GUL$(H$%;p(s*j-^(B")
("pm" "$(GMEMLMOQ1_0E$ym$(H'%&d&m58;mJ2J<(B")
("pn" "$(GI5MN_3_9$(H!"!6$(GGG$(H"AaY$'*D*K:G\m(B")
("po" "$(Gij$(H$"&g*J$(G_.$(H+F\r;qW&W-\o(B")
("pp" "$(GMAMMZOpYpZER$(H$#PI&_*E5F5G;_(B")
("pq" "$(Glne~p\$(H,;&l(B")
("pr" "$(GMKQ.Q3Q4Q5UKZCZLd#$(H&]&a&b&i*I*O*Q-R/05:$(GF;$(H5@W+:F;nJ8J:(B")
("ps" "$(G_/_1hl$(H&h&j3q$(GI9$(HI*(B")
("pt" "$(GQ6d!E`d'$(H/%*C(B")
("pu" "$(GE}J7Q-UPE:Wp$(HW'$(GZA_5c}x7$(H#z#|%W&c&n'M.1/'/-5;@6BrPDPF(B")
("pv" "$(GQ/ZDZGZJ_;x5$(H&`/$2{;e;o;r$(GH$$(HJ6hvW)a\(B")
("pw" "$(GY0_6$(H&e$(GK/$(H*FBl;d(B")
("px" "$(HBs\n(B")
("py" "$(GUN$(H5B#y(B")
("q" "$(GEC(B")
("qa" "$(GQ@QNZ]_B_ehw$(H$.$(GMi$(H5pac<*C+C.JAJKJTM((B")
("qb" "$(GUVUYU_ZaZe_G_Sd,d8hrnKpipkzm$(H$4&v&}*d/8$(GOe$(H5Za]5^5`5d;y<(<6C%C,C2C8JBP]P`PbYR\t(B")
("qc" "$(GQA]Jd4l~vDvJ$(H/G5O5[$(GFV$(H5fmQC(C-C>JOPYP^UMUe\s(B")
("qd" "$(GMnU[W6ZXZgZhZi_Cd/pgr{$(H"C"F*X,u/6/>/N$(GHU$(H/ohw5h<%<.C?C@JZQ-W7a_(B")
("qe" "$(GJHJMM^V9Zf_Nd0d2m!m&J@sl$(Hk}$(GvF|8$(H$//7/C0A5T5W5cJP(B")
("qf" "$(GZTZp_A_Oh{m$m(m)sh$(H$-*f5P6~;}>xC/C9CAJH$(GWC$(HJIq0JNV0abhHo+o,(B")
("qg" "$(GMXQFQHU^UbZ^Zd_Ihylzp_sk{a$(H*Z*g/D$(GJC$(H/ImN<-<4C$GHP\eP(B")
("qh" "$(GJLMf_Rh|J=$(H&yJY/L2*JL(B")
("qi" "$(GMhMrQ=JFQu$(Hp7$(GWTd1d3fDm+qvyp{%$(H"J"K$+&u&x/=?{JEPWP[W3\u(B")
("qj" "$(GJ?M[McUdZ`_J_Lhsm,oFpevGDdzl$(HW/"D"G*e/E/M5N5]<0C)JQJXP_(B")
("qk" "$(GJPM`PVPWUcZWZn_DJB_E$(H\v$(G_Phqhthum%vI$(H"I$5&~*V/F/J;~PVW2W4W9(B")
("ql" "$(GJOKZMeUam#vE$(H$8%*$(GJK$(H&|cv*W/;9s<#JFW8\w(B")
("qm" "$(GJJMjQ<QCU\Z1ZU_Md*hxp^$(H&t&{/H$(GH+$(H5Rhy5S5a;x;{C1C3C;(B")
("qn" "$(GJ>JIMZQ9UeZcsgFT$(H"HeO$7*_*`5V;z;|<,(B")
("qo" "$(GJAJNQGUWU]ZZZl_Hl{m-pcphrzsi$(H$0&w'!5b<)JJJS$(GE3$(HNHhzPX\x(B")
("qp" "$(GJGMYQ?ZmldpbvHx9$(H$1&z*b.~555Q5g<1Bk$(GH,$(HC4mPJCJRPBa^eM(B")
("qq" "$(GMWUTZ[l}L`pa$(HPa;v;w<&JU(B")
("qr" "$(GM]M_MbMmMqQ>H*QD$(HPc$(GQETXUZZo\ed-d.d5k'pjsj$(H*]*^,S/9/:/A5L5M5U5Y8D8E<3>RC'C:JGJM(B")
("qs" "$(GM\MaMoQBc=d+l|pd$(H!^*Y*\8CC#$(GFU$(HF8YQJD(B")
("qt" "$(GMkQ;WU_Q$(H&s$(GMV$(H<+eRC&C*C5PZ(B")
("qu" "$(GJDJEMgMlU`EDWV$(HUY$(GWWZVZ\Z_Zk]=d6d7m"m*{V|9|_$(H"E"L$*$,$2$3$6&r/5/</@/K5K5\<'<5C7C<JVJWO&(B")
("qv" "$(GQ:OPUX$(Hp}$(GZY_Khvyn$(H*[*a*c/?5_5e<"<$<2C0G>I[W0W1W6^Ta`aaeNeQhxk[(B")
("qw" "$(G_@m'p`Mdpf$(HC"$(Gyo$(H<!</(B")
("qx" "$(G_F\osf$(HC65X(B")
("qy" "$(GMpZbZjFW$(H$)mO/B(B")
("r" "$(GDG(B")
("ra" "$(GY9Y@$(Hq?$(GcDh3o<sGv<y)$(H)P3}:J:R:WCIO`OeTcVNZi\Rcbcig;(B")
("rb" "$(GIQTRTUTZTfY>^@^C^Mh'l4l6p;rKrOsHwEwF$(H$u%_%d%l3|:UAoAsAuB%NDNEOcOoTn$(GGR$(HZplDZq\O_icccjg@(B")
("rc" "$(GF<PCSZT^^xfxh(h1l;o8p@sIwHwo{x$(H%e.7.<4*ApAtAwAyI;OhOiOnTd_faJcgeAg>$(GF7$(HkSq_mG(B")
("rd" "$(GIDL@LKPAPHT`^IcAf}g"o:o=pArNzGGT|4$(Hn/"%)D.A.I3+3w4-AzA|A}I:NBTjZl(B")
("re" "$(GIULNTYYHbFpErL$(H.:3t9Z9\:LAxB"CBNGOk$(GIN$(HTer.TgTl\P\QaFaHg=pQqy(B")
("rf" "$(G^TcBcCcJcOkxl3l5p?x%x,|z$(H#=$(GYA$(H#?ou:O:VI/I0I5OmZs\2\Lcdk5nr(B")
("rg" "$(GIGP>T\YD^G^SrPv#{0GS{[$(Hq@$(G};$(H#>)?.?.H4,:X@WGoGqGvI8TbTkVG\UaGckkRkTn-(B")
("rh" "$(GIJIMIPITh4o;F1$(H%[Zo.3.9:M@_NKVK(B")
("ri" "$(GG\LLTb^OcHd)h/l>o9p]y(yezHze{/{Y|]$(H#8#;%\%m%o$(GGU$(H.Dn,3)@`A~GpO_OgVLclhlmE(B")
("rj" "$(G^J^LcNh5l7wIzd})$(H#@%i)=)I$(GYE$(H.Cch3x4#4)<?I9I<OjOlT_Th\T(B")
("rk" "$(GIRP6P9P@PKT]T_TeYK^P^U^VbBcLIFg!$(Hj&$(Gh&h0pGu\xKyd$(H#9#<)G*i9[I2OdVJVM(B")
("rl" "$(GF5IXLFLGTaTcXWYJbRh2kHF0l<$(H[$$(G{w$(H#E.83=:N:Z:]H.PhU"[#(B")
("rm" "$(GLCF2LE$(Hn1$(GY<]Q^?^K^Nc?cKl8uYuZ$(H#C%]%c%k%n)<4$@^I1I6Zme>(B")
("rn" "$(GGZI1I>IWLIP<PJTV^H^QsFF/$(H#0Zr%^%`)H.G3*4!B$GnGuI4OZ(B")
("ro" "$(GILKMLMP=IBY;$(Hj%$(G]R^WbEf|h*h,l:pDpFsEsJwGy'y*$(H)C.5.>.B3u3{4+NANJOfTaVOVPZncm(B")
("rp" "$(GFaG]LQYFb@cId%p<x-$(H#:%j)M)N@[GrGs$(GF9$(HNCoTObTmce(B")
("rq" "$(GzI$(H#A)E)O$(GPI$(H3zlE:^@VVHg<(B")
("rr" "$(GLALBLDPBPDPETTT[Y?YL^>^AbGcGcMf{h+k9l2o>o@pBzf$(H%a%f%h)>)A)F.@.F4&$(GIH$(H:SaI:_@X@Z@\@]ArA{GwI7L:T]T`Tf_j(B")
("rs" "$(GF=LS^:bAfzF6l1$(HB&$(GrM$(H%b%g)L(B")
("rt" "$(GbCY:cF$(He?$(Gl9y+$(H#B.49Y:Y@YAqB!Gm\N\S(B")
("ru" "$(GEsICDYIE$(HqT$(GIOISKWLHLJPGYCYIbDf@f~o?y,y-$(H#D.=3y3~4"4%9]:K:[;IB#B'GtHuI.L0N@O^OaT\]9aKe<n.p3(B")
("rv" "$(G^Dfyh.pCpHybyc|%$(H)@.E3v:Q:\N?T^TiVIZk_ggGmFn0pRp|$(G^B$(Hq>(B")
("rw" "$(Gp=$(H.6:T$(GP?$(HGypTZj_hg?(B")
("rx" "$(Gl=u[YM{1$(He@:P\Mcf(B")
("ry" "$(GY=c@LP$(H4(NF@a(B")
("s" "$(GDS(B")
("sa" "$(G\dlRw*$(HO<h0julgnHnR$(GYs$(Hod(B")
("sb" "$(GM,U,Y5aMp"u!u"yRyS|&F"$(H)yr38GVwYP`l`qaNdgh2lpnL(B")
("sc" "$(GPFh$o0oxs&tv{}|)|v}8$(H&:Uc[P[ebhc^ca$(GE($(HdYq|j_jvjwp6pa(B")
("sd" "$(GU"^lgisy$(H!M<h$(GPm$(HP*r%[|`nd\f8h#nK(B")
("se" "$(GL=J!U.$(Hlq$(Gc&d[lSmHv,$(H8=O>PeS!V!`id]h'h*jl(B")
("sf" "$(GXkiZWYj;$(Hr;$(GmawyzX{E{G|/$(H6r=bHrM'OKV:XD^La4aOd~e(fAgchNhOk/ngnpnqp'psqNqe(B")
("sg" "$(GM#PpYRc>e{jKowpI$(HJb$(GGK$(HVXr2[p[t`rd`gfh,hjo`(B")
("sh" "$(Gl+$(H"!2(3L8A$(GD.$(HUolrUyU~`hdflj(B")
("si" "$(GYp\g^rlvo}vCvfwzzWDCzh$(Hjn2+HlMwUvXN_9gvj`(B")
("sj" "$(Gg(jIw+|R$(H.l?*HjI,S"Up[n[o[z$(GHV$(H^RnO`d`k`tjhlhlmnInM(B")
("sk" "$(GJQgjkroyp!$(H8@:(O;$(GDg$(HOAnPR}S&[m[q`oh%jjlo(B")
("sl" "$(GH[I:K[OUS&XU\fbUgkuh$(H"u#52)9m?+?7$(GGL$(HNUp~O@T~^\`g(B")
("sm" "$(GHQtu$(H,q8FM)M*$(GD/$(HUroaUsU|YSjplfnN(B")
("sn" "$(GL-$(Hi_$(GqH$(H!V""%P(J2,3m3rS%`sb6h!h/h1(B")
("so" "$(GO:jMmDs-|S|u$(H8>A?F7IgS$[rau$(GE9$(HdZj'h&h((B")
("sp" "$(GI~J4J6PoUDlfljovs3ty{o}GFG$(HHkli\kd[jk(B")
("sq" "$(Geze}se`Xz~$(HnG;uQ|h$(B")
("sr" "$(GF3F4III}M"Y3Y4aGo|s/s2u'wwz?F.{D$(Hh+%X4v8??,EXUuUwUxU}[u[{`jdadbfJh)(B")
("ss" "$(GL4e|v+FH$(H#1Uq8HOC(B")
("st" "$(GS"Yt\bPniq$(Hb@$(Go(s.tz||}7$(H"=8<HmVE`f(B")
("su" "$(GDXEwJ"L$M!WXglku{*DW|'$(Hr$$s0!0$@8O=ODR~UNV"[s`md_dejmqn(B")
("sv" "$(GU-Y^hXsTuExy}0$(H",)64qBM$(GO[$(HI]r&M%VbZC`eh"h-jiobocr#(B")
("sw" "$(H&;$(GwP$(HUtjo[}(B")
("sx" "$(HnJ(B")
("sy" "$(GTMYu$(Hd^(B")
("t" "$(GE=(B")
("ta" "$(GX![*_[aam1n_Mwu0$(Hmu$(Gw3xp$(H?ZF{F}G$M@^|`Kf[(B")
("tb" "$(GS?Ut]&_fa]ade\f-f3f9h]j]j^jbr}xmOK$(H(Zmw-A.#2@8j8m8z?d?eAUFqFtM>MBMCMJMOS7SISOS]YeYkYqYvYw[`^`^tc$c%fUhbi]ihl.(B")
("tc" "$(GKdL'L(T@c'z6}D$(H?R?cFoM9M=S9UbYiYl$(GGA$(HYoq}Y~^d^e^f^h^lbdbvfWfYgrigj]oCp_(B")
("td" "$(GQ\WvW}X"\w]%^k_~aeahaldFf4f=s{v&whxoyiz1z7{!$(H$~2L8k8u?X?oFRF|JzM4M?MHO,STS\YdYt$(GKB$(HdKl&l"(B")
("te" "$(GOJaZa_afanf<nXn`r)v;xnzg$(H(_(d2%878`8s8v?M?P?W?\E<$(GOB$(HF5o]FjFsG%G'HbMKMYMZO/S6S:SZSdY{Z"^g^q^u_#fTf_f`ilk|(B")
("tf" "$(GWO]$dtjcjejfnRn[q:r&r(w4u5wiyZ{F|E|Q}6}I$(H(b-??JFTFZFlL|MEMVR{SBSDSNSVS[YOYx$(GOI$(HY|qOZ$a&a*bpbwc"c#eufVh=ink1k:k>l,m"m#nhoDo^opo{o}p"q4(B")
("tg" "$(GX$YW\`\}cSf:h;olw6yEz4|F$(H$z-=2<2D2U8o8p8t?`AJFrM;SJSYYfZ#^w^~$(GWz$(Ha:q5byb~d=iel%mvmxo?(B")
("th" "$(GOES7S=Y*\tr$$(H"l(^-/$(GOA$(H2&r58e?_MRSMSaYu\B^j^n(B")
("ti" "$(GOHSGW{\a^qaod(exhWjhnTnWnYnZu+x`xk$(H!D%"%#%T(e->-@-D2M2W8q?U?b@!APFVFxM:MAMDMIO*SASCSFSRYhYn^p^s^}_!btb}c:fR$(GKC$(Hfnq~fol3l^myoG(B")
("tj" "$(GS>SsWuWw\vaWaYa^d:f.nUn]r"u-u1$(H%!-02:$(GE+$(H2>ii8w?&?aANFcFgF~H#J\MWO(S>SWW=Yr`LfQ(B")
("tk" "$(GHd$(Hl-$(GS!SAWx\{^d_Wd9e'f1khnSu2wjxgxl$(H(R(W(X(]-1282I2N?SFPG&M7MLMXS=S@^y^{a<b{fe(B")
("tl" "$(GOCOF$(HlJ$(GSJ_ZkJoQr]u*$(H(u-X2T2V<A?T@~H`HaNVPiS8SGS`T|Y}^o_pgHgIikjX(B")
("tm" "$(GOLSISjU8\yaDf0jkkgu.w0xf|#$(H(f-8-B272?4>898a?j?C$(GFl$(H?HpJ?O?iF4FkFmFwM<MGMMO-S#S?SLSQSUYm^i`I`aijl'o@(B")
("tn" "$(GS5Wt\%]!hBqIu4$(H"k"m$|(S(Y(\(a-3.+2;2B2K2P888:8}:1?'?Q?V?sFQFUFdFfHcMNR|Ygbnbub|fS$(GP)$(Hfal)im(B")
("to" "$(GO?X#\x`"abacaieyi9j`mEr#zF{c$(H(`,o-9-:-<298d8f8x?(?D?L?mD"MSMUSESKS^S_Se_$bqbrbxdFfGfX$(GO>$(Hl(q3pS(B")
("tp" "$(GOGUBUGcucyg]lgn^q~r!u3$(H${(V-2-C2=2G8^8i$(GOD$(H;`o(?Y?tFiG"J)MPMTS<Yp\j\l^b^caTf\f^fcidl$(B")
("tq" "$(Gf2lysc{#|"$(H/32X?KFu$(GHP$(HMQfbO'Ys^m^z_"bodE(B")
("tr" "$(GS:S;S<SDSHWyW|W~\|]#aCaVa[f/f8j\jgjiz3z@$(H)B-4-62H2J2O2Q8g8h?B?f?h?lFOFWF_FnM6M8MFO+RzSH$(GS9$(HTH'!UZU\^r^x`MdHfZfdglifl#q6(B")
("ts" "$(GS8WsY,Y.]"c9c;f7qrw/ya$(H"n-;-F$(GO=$(H2CSP8r8y8{8|?kFYFaFhFpG#M5O0O\(B")
("tt" "$(GG~Vt\zf5jajdw1z5z8Dj$(H!Nmt-.2S8b?N?rFNG(GZO)^a`JbzdL(B")
("tu" "$(GO@PsS6SBSCSESFS{Wr\u]'a`akf;g^nVw2w<|s}($(H$}(T(U([(c-52F$(GO-$(H8]r-8n?@?E?G?I?]?qAOF3F^FbFeFyO.S5SSScXgYjZ![b^v_HavioqY(B")
("tv" "$(GPZRIWqa\ajamf6g)jjnIokoru)z2$(H2E2R8_8l?F?[FXF\F]F`FvFzG!M3S;SXU[Yy^kbsc!dG$(GKA$(HjYoEl!l*oA(B")
("tw" "$(GS@j_n\r%u,u/xj{"$(H-72A8c?g?n?pFSF[SfYzbe$(GH2$(Hf]l+(B")
("tx" "$(Gw.r'w5$(H?^(B")
("ty" "$(GaXag$(H$y-E$(G\~$(HSboB(B")
("u" "$(GDT(B")
("ua" "$(H)~5#&KIkP3ItP.(B")
("ub" "$(GY}Z!U/Z"$(HkW$(Gci$(H*..n4y;E;NIjP2d>d?(B")
("uc" "$(GsVwp{]$(H&=$(GsU$(H5'mL;PIvgu(B")
("ud" "$(GsX$(H4w;HBVBW$(GY{$(HVomni&(B")
("ue" "$(GJ&U1$(H#c&J4z$(GJ#$(H;F(B")
("uf" "$(GW,YvR7$(HBZP5P1(B")
("ug" "$(GY~$(H)|*#;R;TIoIp$(GYz$(HkXq-(B")
("uh" "$(H#b#d$(GD1$(H;>Ir;CIl(B")
("ui" "$(GPwU3X*Z#^uykzi$(H"8&E;?;SBX$(GPq$(HIqm~IuP-VhVsaPgwhq(B")
("uj" "$(GU4$(H.r4x5"$(GM&$(H5%Vr;LH$IhVk(B")
("uk" "$(GsW|5$(H#g&C$(GD~$(HJ[o%Kp(B")
("ul" "$(GhY$(H!+#h#i&B**$(GS%$(HlIlK(B")
("um" "$(Gcj$(H&@$(GYw$(H&AIs){(B")
("un" "$(GJ$^3^5$(H#e&G$(GG{$(H*!Am*(3n;G;K;O(B")
("uo" "$(GU6^tlUuR$(H)z4}$(GU0$(H4~\f;QC~InP4Vn(B")
("up" "$(GY|$(H&<*)3M;J$(GM$$(HBUeI(B")
("uq" "$(H;MP+Vm(B")
("ur" "$(GPrU2YxhZ$(H&?&D&F&H*$*%*+*,.o.p4|5($(GM'$(H;UhpBSBTB\(B")
("us" "$(H&>&I&L*/;BIi!WP,Vq(B")
("ut" "$(GlTwBX?}C$(H&M#`(B")
("uu" "$(GG=U7YyZ$uF|lEx$(H"6P/"7"9"j#a)}*"--5!;A?A(B")
("uv" "$(H*'*-.s5&;@;DIm$(G^v$(HVimKVj(B")
("uw" "$(H4{5$$(GM($(H;=P0B[(B")
("uy" "$(HVl(B")
("v" "$(GDL(B")
("va" "$(GYfa@jEqotcv~Ydw%$(Ho.$(Gxc{@$(H4f;+>{P$Rp(B")
("vb" "$(GTuWJYa^gccM0eo$(H''$(GhFhGjAjClLn7n>qmth$(H#T&*)o)s*54T4p:~;";,;1F$F'I_LmM"O~RqY?\Z\^^=b]b`iYkUpG(B")
("vc" "$(GqiqnsPtdtsz*z}}>$(H4V4k$(Gcb$(H;0q/B:P%P'VdY@b^eGkukw(B")
("vd" "$(GGpLhR}Z%^hcpepjBlIm?m@tl{\$(H&2&7)h4Y4m8/:y$(GGo$(H;#o0;*>}BGF!F-IXLiLqVeYHYIf<(B")
("ve" "$(GIrWH^icgj9j:j<jGmIn@nAnBtq$(H&U$(GFC$(H4Wkx4e4j;.F"F#IWI`LpRwV^^HbckV(B")
("vf" "$(GHNK$$(Hm2$(GLra<a=cdhJhKhLj7lKn8oztgtow#|Z}J$(H1t4`4b4d6|:wB;BHI^LkM!O}P!Y>YJ\7^Ga3eHf?hVi[k7(B")
("vg" "$(GIlIsP_PaT}WFaAjDz|$(H&%)u.c1s4\4g8);2>r>~F%IORx$(GIg$(HVfq1\[\a^EdAky(B")
("vh" "$(GLpTzW@WLnEtetrIn$(H#WLt&-.b81:}E|F(IV(B")
("vi" "$(GLkMQRwRzR|T|WIYr\R^}qksQtpz+{&|CGr}'$(Hqv#S#X&,&3,l1v4i8*85B>BBBFITY<\`^@_:bYc9p5(B")
("vj" "$(GYea9j8lJn=nDtixa$(H"1#R&&)f1{4U$(GGm$(H4[b_4l;-BJIRLjLzO|P(RkY9^?^C^M(B")
("vk" "$(GIoNmP]H-Pe$(Ho$$(GTpTvWA\^a7cahHmdn:xd|H$(H#Y&(,m.\._1u84;'>uB=E}IYL{RlRtRuV`^Bb[eFmH(B")
("vl" "$(GTtTx\YbTeqn<vK$(H!##V#[&1'#,k.a1w1z$(GO+$(H:xNY>zE~(B")
("vm" "$(GLoRx\ZennC|B$(H!B!C".&'&)&.)e.]$(GLl$(H4Xho8+83;&;)B<LrLyO{RmV[V_Y8b\f:(B")
("vn" "$(GM:P^R{TL\V^ec6{_$(H#U$(GIq$(H(In~)k.f1x1y8';%;(?!Rv\]aM(B")
("vo" "$(GLsPbc`j5n?nFtk$(H*>.^4S4a8.:|$(GEh$(H>oq2>p>|IaIbLnVaXV^>^D^If;i\(B")
("vp" "$(GLiP`Q'UFWGWKcfchtj|6$(H"-$(GIm$(H4oq.8(;X>vIULsRsVcbZf9mI(B")
("vq" "$(G\QaBn9tn|7Lt$(H)qfB*U/40`bbf@(B")
("vr" "$(GLjLnYc\U^ja8a>a?hIj6j?j@lHn;v=w!{y$(H&+&0)c)d)l)m)p)r)t+w.`1B4Q4Z4^$(GGq$(H4ciZ4h8,8082;!>tBEF)F,IcKkLxP#RrYDYF(B")
("vs" "$(GFDFNI8IjIkE<T~$(HYG$(GW?c:$(H&/)gIS(B")
("vt" "$(GIpLm$(Hmo$(GP[\]ceqhvA$(H;$>qE=P&YA\_iB(B")
("vu" "$(GRyTwGnT{$(HpB$(GWEXTY`\S\W^fa:j>lMqpw"xbyg{^}9$(H"0#Z)i)j.d1r1|4R4_:{>sB?BAF&F+LlLwL~RoY;(B")
("vv" "$(GPcTsTyYherfRj=pNtfyh{C|AIi$(H"/o=)n.e4nBILoLvV]Y:f=f>mJ(B")
("vw" "$(G\XjFLqmk$(HV\$(Gt;v@w&wQ$(H(48-;/BLP)Rn(B")
("vx" "$(Gw$$(HBKYB(B")
("vy" "$(G\\$(HLu(B")
("w" "$(GFp(B")
("wa" "$(Gew{R$(H^P(B")
("wb" "$(GPL$(HfE$(GS*Tg$(H#H4.4/:`?$(B")
("wc" "$(G\,F>]K$(Hnu$(Gb9cQv(}B$(HOpdT(B")
("wd" "$(GIZN*$(H%p?%F0YNe_$(GG`$(HqZ(B")
("we" "$(H1%<:,=>1\zE+F2(B")
("wf" "$(Gc)nGs9|e$(H,n$(G\[$(HfFqlkBkznsovpHpopp(B")
("wg" "$(G\*h>p.qqv?K^xe$(Ho!1}86K~^Om9(B")
("wh" "$(GI\$(H1$p&2!(B")
("wi" "$(GRnfEh6F`xP$(HYL%q7?(B")
("wj" "$(GEQ$(HYM$(GYP\+eHeu$(H!@VR(B")
("wk" "$(GRMRNs<$(H\y$(GG^$(HaL(B")
("wl" "$(GNwFrRL$(H(3(B")
("wm" "$(Get{h$(H,<1~2#$(GYO$(HF.fIa;(B")
("wn" "$(GhAjHs=]i$(H#Ie,$m^Q(B")
("wo" "$(G\8F?s|$(H2$.K/y(B")
("wp" "$(GQvUHcsnH$(H#G+K$(GQ($(H2"V<J+M#(B")
("wq" "$(GVc^X$(H]_(B")
("wr" "$(GLVThWN\)e6v5G_x($(HqS.J@FiKmq(B")
("ws" "$(Gv7K.$(H\\(B")
("wt" "$(HB(m;(B")
("wu" "$(GYNI[v6$(Hk{E*F1\@\AkCkE(B")
("wv" "$(GcPRK$(H"&m:(2@4REVQ(B")
("ww" "$(HR6$(Gh7$(HRy(B")
("wy" "$(Gev$(HF/(B")
("xf" "$(H'2'1'3'9'4'5'6'7'8(B")
("xh" "$(H';'<'='>':'?'B'@'A(B")
("xl" "$(H'C(B")
("xm" "$(H'D(B")
("xo" "$(H'E'F'H'G(B")
("xr" "$(H')'('*'0'+','-'.'/(B")
("y" "$(GD3(B")
("ya" "$(GSc$(Hp0$(GSvfaffnzoNr=rDx{x|$(H31TDTMcJcKeUg((B")
("yb" "$(GK:K?O9PtPv]A]V]Wg2g5g\j&jQjUk!k.k/k@nPnyo"oKr7rAuJFKue$(Hpz$(GwAwMy!}!$(H/Q357f9fCCCDGVH'RYTxZQZWZ[Z}[~_LcEcFg*g,(B")
("yc" "$(GG)SVS]fti!rYr\s"uIwmyJ{t|$|3|m}-}4$(H@>GaH(HdM[O"T>U`Ua[Q$(GDz$(H_[qWcTg)g5h{j"kJm@nBoS(B")
("yd" "$(GKRKSKjQLSdV$V'X=X>XL[9]debfdg+Jbnw$(Hnz$(Gn{o#r;r<uGzB$(H*k9!EjEyGRN7TJ_QcM(B")
("ye" "$(GL>N>$(Hp/$(GOS]Ca*b"b.bLg1h}kFmGrF{,$(H*h+I/O9g9j@tK1T=TBVFX`_N_R_Sb?cNiRj#j.n'o_(B")
("yf" "$(GWB[n]ba;f`kAm^nunvoLr9r[v:y$yX}:$(H7eHqV/\0\|_Z`~a%cScUe5g+$(GKk$(HhFr(hQk(k-mCnloNozpkplpnqsr'(B")
("yg" "$(G[,]^]ca)b!bMbPfgg6gTh9k-kdo!pLEdpo$(Hq=$(GsMwbwcwkx/|J|~$(H(mGIGLGMTwZNZ\(B")
("yh" "$(GP}])]?b,dYhdr8Jcw@$(Hpy(n,(8~9N9eH&_%hg(B")
("yi" "$(GV\X6Yi]D^%bOf]klpRrBrWsauMy"Fhz>$(Hm}$(Gza|j$(H,b/|3!5j>a@DBxT?T@Z&g#l=(B")
("yj" "$(GKPKTL5L7SSX5EGX9$(Hq<$(G[{]B]Y]a]}b#g*o$rUrVubxOxzx~z)zA{3{n|t$(H(q@sTGTzZMZPZZ[d_McIg-hk(B")
("yk" "$(GG(L_MsPUUfX%XJZ~]@_Uf>flk(m.oMugw>yx$(H(p(r9O<<@?N5PfT{$(GEF$(H_OqwdQg$g&kM(B")
("yl" "$(GOTSfX;]F]Z][]e]fd;g:ORk>$(Hhi"q%'%(/T>`GKH*NPhh(B")
("ym" "$(GEOKhSKX7["\(]]apb%D8b($(Hp.$(Gb*f\kEntnxw?z_|k$(H!/8;<>@IAXE)GNN3ZLZRZV[c_Y_ncLfHizl>m7mDn%o-oQ(B")
("yn" "$(GHlKUL+OhSTTHX<](c7g7l*p8pOrCvhDmxh$(Hpq$(GzD$(H'$(l,93.32E&GTO[XUcVe6fhklk~(B")
("yo" "$(GSbVdXP[!]\fZg-k$k0o&p/ucwN{g|2|{$(H/w6;<B?.@CC{GQG]$(GG*$(HK+l?Q9TATKTyWjZT_oadZ(eTi~l<(B")
("yp" "$(GJ3N@S~X:[#]EctfYk"k%les>{T|I$(H"o#x&Y-U;a@GGO$(GH:$(HN4rDTEW#ZUaAcPg'mAn*pOr*(B")
("yq" "$(Gf[g.g0r:[trX$(HW5$(GrZuf$(H33@H(B")
("yr" "$(GI=KFS^S_SaSeW;XOXQXRXmY8]U]_^=b$b&b'b-bNfNf^fcfhfjfkg4i"k#k*kBkin~r>r?y#zCz[z`{+|1$(H)J-W1`3/30347\9h@@@A@E@rGPGWH)ZO_TcHg/$(GF'$(HkIr6kKkpoPp1(B")
("ys" "$(GL3Ui]>]`b)f?f_fbk,u6uHy1$(H#4%%-V.09i@<@JO]ZS\K$(GEI$(HcGp{e:(B")
("yt" "$(GP{XS]Xk&qMuOx}$(H-K-T$(GG!$(H@=qVGULTZX[!_\ddhfkH(B")
("yu" "$(GG&N}OMOiP"X4X8XK[E]~^seFfeg,g8itk)kCkDoOr5t!uKuLwOz#$(H":%&(o/S7S9L9M<C@7@BGST8TC$(GEr$(HTLrBWrZ'Z|Z~_P_UfCf~g%i|kLp2qX(B")
("yv" "$(GGlHhKVLeP7UjX.X/XM]5bQfVg3j%jyk?npn|r@rEs'uAuCudy2{U{q|i$(H7/9C9D9E@3G=N'$(GDA$(HN2'#N6T5TIUiZAZDZEcOi{i}nE(B")
("yw" "$(GVeXNg/kGzn$(HH%ZYaeg.n&$(GS`$(Hn)pP(B")
("yx" "$(Gk}n}(B")
("yy" "$(GF&MuE,SU$(H/R$(Gb+k+o%(B")
;v "z\," "$(G!"!#!.!/(B")
;v "z\." "$(G!%!$!&!0!1(B")
("z\;" "$(G!'!2!"!#!.!/(B")
("z\:" "$(G!(!+!3!%!$!&!0!1(B")
("z\'" "$(G!e!d(B")
("z\"" "$(G!g!f!h!i!q(B")
("z\\" "$(G"`"b#M(B")
("z\|" "$(G!6!8!:"^(B")
("z\/" "$(G"_"a#L(B")
("z\?" "$(G!)!4(B")
("z\<" "$(G!R"6"A!T"H(B")
("z\>" "$(G!S"7"B!U(B")
("z\[" "$(G!F!J!b!H!L!V!Z!X!\(B")
("z\]" "$(G!G!K!c!I!M!W![!Y!](B")
("z\{" "$(G!B!`!D(B ")
("z\}" "$(G!C!a!E(B")
("z\`" "$(G!j!k(B")
("z\~" "$(G"D"+",!<!=(B")
("z\!" "$(G!*!5(B")
("z\@" "$(G"i"n(B")
("z\#" "$(G!l"-(B")
("z\$" "$(G"c"l(B")
("z\%" "$(G"h"m(B")
("z\&" "$(G!m".(B")
("z\*" "$(G!n"/!o!w!x(B")
("z\(" "$(G!>!^!@(B")
("z\)" "$(G!?!_!A(B")
("z\-" "$(G!7!9"#"$"1"@(B")
("z\_" "$(G"%"&(B")
("z\=" "$(G"8"C(B")
("z\+" "$(G"0"?(B")
)

206
leim/quail/symbol-ksc.el Normal file
View file

@ -0,0 +1,206 @@
;;; quail/symbol-ksc.el --- Quail-package for Korean Symbol (KSC5601)
;; Copyright (C) 1997 Electrotechnical Laboratory, JAPAN.
;; Licensed to the Free Software Foundation.
;; Keywords: multilingual, input method, Korean, Hangul
;; This file is part of GNU Emacs.
;; GNU Emacs is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation; either version 2, or (at your option)
;; any later version.
;; GNU Emacs 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 General Public License for more details.
;; You should have received a copy of the GNU General Public License
;; along with GNU Emacs; see the file COPYING. If not, write to the
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
;; Boston, MA 02111-1307, USA.
;;; 94.10.24 Written for Mule Ver.2.0 (koaunghi.un@zdv.uni-tuebingen.de)
;;; 94.11.04 Updated for Mule Ver.2.1 (koaunghi.un@zdv.uni-tuebingen.de)
;;; 96.09.23 Updated for emacs-19.33-beta (koaunghi.un@zdv.uni-tuebingen.de)
;;; Code:
(require 'quail)
(defun quail-hangul-switch-back (key idx)
(if (not previous-input-method)
(toggle-input-method t)
(quail-delete-region)
(select-input-method previous-input-method))
(throw 'quail-tag nil))
(quail-define-package
"korean-symbol" "Korean" "$(CGQ1[=I9z@T7BG%(B" t
"$(CGQ1[=I9z@T7BG%(B:
$(C!<(B($(C!=0}H#?-1b!<(Barrow$(C!=H-;l!<(Bsex$(C!=!N!O!<(Bindex$(C!=C7@Z(B $(C!<(Baccent$(C!=>G<>F.(B
$(C!<(B)$(C!=0}H#4]1b!<(Bmusic$(C!=@=>G!<(Bdot$(C!=A!(B $(C!<(Bquote$(C!=5{?HG%!<(Bxtext$(C!=!W!X"R"."/(B
$(C!<(BUnit$(C!=!I!J!K"5!<(Bmath$(C!=<vGP1bH#!<(Bpic$(C!=;sG|9.@Z!<(Bline$(C!=<19.@Z(B
$(C!<(Bunit$(C!=4\@'(B $(C!<(Bfrac$(C!=:P<v(B $(C!<(Btextline$(C!=!)!*!+!,!-(B
$(C!<(Bwn$(C!="_!<(Bks$(C!="^!<(BNo$(C!="`!<"a!="a(B $(C!<(Bdag$(C!="S(B $(C!<(Bddag$(C!="T!<(Bpercent$(C!="6(B
$(C!<(Bam$(C!="c!<(Bpm$(C!="d!<"b!="b!<(BTel$(C!="e!<(Bwon$(C!=#\(B $(C!<(Byen$(C!=!M(B $(C!<(Bpound$(C!=!L(B
$(C!<(BEng$(C!=#A#B#C!&(B $(C!<(Benum$(C!=#0#1#2!&(B $(C!<(BRuss$(C!=,",#,$!&!<(BGreek$(C!=%A%B%C!&(B
$(C!<(Beng$(C!=#a#b#c!&(B $(C!<(Beasc$(C!=?5>n(BASCII$(C!<(Bruss$(C!=,Q,R,S!&!<(Bgreek$(C!=%a%b%c!&(B
$(C!<(BRom$(C!=%0%1%2!&(B $(C!<(BScan$(C!=("(#($!&(B $(C!<(Bhira$(C!=*"*#*$(B
$(C!<(Brom$(C!=%!%"%#!&(B $(C!<(Bscan$(C!=)")#)$!&(B $(C!<(Bkata$(C!=+"+#+$(B
$(C!<(Bojaso$(C!=(1!-(>!<(Bpjaso$(C!=)1!-)>!<(Boeng$(C!=(M!-(f!<(Bpeng$(C!=)M!-)f(B
$(C!<(Bogana$(C!=(?!-(L!<(Bpgana$(C!=)?!-)L!<(Bonum$(C!=(g!-(u!<(Bpnum$(C!=)g!-)u(B
$(C!<@Z<R!=(B2$(C9z=D(B + $(C$U(B(S) $(C$o(B(t_) $(C$p(B(DD) $(C$q(B(D) $(C$v(B(G) $(C$u(B(GG) $(C$}(B(uk)")
(quail-define-rules
("\\" quail-hangul-switch-back)
("(" "$(C!2!4!6!8!:!<(B")
(")" "$(C!3!5!7!9!;!=(B")
("math" "$(C!>!?!@!A!B!C!D!E!P!Q!R!S!T!U!V!k!l!m!n!o!p!q!r!s!t!u!v!w!x!y!z!{!|!}!~"""#"$"1"2"3(B")
("pic" "$(C!Y![!Z!\!]!^!_!`!a!b!c!d!e"7"8"9":";"<"=">"?"@"A"B"C"D"E"F"G"H"I"J"K"L"M"N"O"P"Q"4(B")
("arrow" "$(C!f!g!h!i!j"U"V"W"X"Y(B")
("music" "$(C"["Z"\"](B")
("won" "$(C#\(B")
("yen" "$(C!M(B")
("pound" "$(C!L(B")
("xtext" "$(C!W!X"R"."/(B")
("dot" "$(C!$!%!&!'"0(B")
("quote" "$(C!"!#!(!.!/!0!1!F!G!H"%")(B")
("textline" "$(C!)!*!+!,!-(B")
("Unit" "$(C!I!J!K"5(B")
("sex" "$(C!N!O(B")
("accent" "$(C"&"'"("*"+","-(B")
("percent" "$(C"6(B")
("dag" "$(C"S(B")
("ddag" "$(C"T(B")
("wn" "$(C"_(B")
("ks" "$(C"^(B")
("No" "$(C"`(B")
("Co" "$(C"a(B")
("TM" "$(C"b(B")
("am" "$(C"c(B")
("pm" "$(C"d(B")
("Tel" "$(C"e(B")
("easc" "$(C#"###$#%#&#'#(#)#*#+#,#-#.#/#:#;#<#=#>#?#@#[#]#^#_#`#{#|#}#~(B")
("enum" "$(C#0#1#2#3#4#5#6#7#8#9(B")
("Eng" "$(C#A#B#C#D#E#F#G#H#I#J#K#L#M#N#O#P#Q#R#S#T#U#V#W#X#Y#Z(B")
("eng" "$(C#a#b#c#d#e#f#g#h#i#j#k#l#m#n#o#p#q#r#s#t#u#v#w#x#y#z(B")
("r" "$(C$!(B")
("R" "$(C$"(B")
("rt" "$(C$#(B")
("s" "$(C$$(B")
("sw" "$(C$%(B")
("sg" "$(C$&(B")
("e" "$(C$'(B")
("E" "$(C$((B")
("f" "$(C$)(B")
("fr" "$(C$*(B")
("fa" "$(C$+(B")
("fq" "$(C$,(B")
("ft" "$(C$-(B")
("fx" "$(C$.(B")
("fv" "$(C$/(B")
("fg" "$(C$0(B")
("a" "$(C$1(B")
("q" "$(C$2(B")
("Q" "$(C$3(B")
("qt" "$(C$4(B")
("t" "$(C$5(B")
("T" "$(C$6(B")
("d" "$(C$7(B")
("w" "$(C$8(B")
("W" "$(C$9(B")
("c" "$(C$:(B")
("z" "$(C$;(B")
("x" "$(C$<(B")
("v" "$(C$=(B")
("g" "$(C$>(B")
("k" "$(C$?(B")
("o" "$(C$@(B")
("i" "$(C$A(B")
("I" "$(C$B(B")
("j" "$(C$C(B")
("p" "$(C$D(B")
("u" "$(C$E(B")
("P" "$(C$F(B")
("h" "$(C$G(B")
("hk" "$(C$H(B")
("ho" "$(C$I(B")
("hl" "$(C$J(B")
("y" "$(C$K(B")
("n" "$(C$L(B")
("nh" "$(C$M(B")
("np" "$(C$N(B")
("nl" "$(C$O(B")
("b" "$(C$P(B")
("m" "$(C$Q(B")
("ml" "$(C$R(B")
("l" "$(C$S(B")
("S" "$(C$U(B")
("se" "$(C$V(B")
("st" "$(C$W(B")
("st_" "$(C$X(B")
("frt" "$(C$Y(B")
("fqt" "$(C$[(B")
("fe" "$(C$Z(B")
("ft_" "$(C$\(B")
("fG" "$(C$](B")
("aq" "$(C$^(B")
("at" "$(C$_(B")
("at_" "$(C$`(B")
("aD" "$(C$a(B")
("qr" "$(C$b(B")
("qe" "$(C$c(B")
("qtr" "$(C$d(B")
("qte" "$(C$e(B")
("qw" "$(C$f(B")
("qx" "$(C$g(B")
("qD" "$(C$h(B")
("QD" "$(C$i(B")
("tr" "$(C$j(B")
("ts" "$(C$k(B")
("te" "$(C$l(B")
("tq" "$(C$m(B")
("tw" "$(C$n(B")
("t_" "$(C$o(B")
("DD" "$(C$p(B")
("D" "$(C$q(B")
("Dw" "$(C$r(B")
("Dt_" "$(C$s(B")
("vD" "$(C$t(B")
("GG" "$(C$u(B")
("G" "$(C$v(B")
("yi" "$(C$w(B")
("yO" "$(C$x(B")
("yl" "$(C$y(B")
("bu" "$(C$z(B")
("bP" "$(C${(B")
("bl" "$(C$|(B")
("uk" "$(C$}(B")
("ukl" "$(C$~(B")
("Rom" "$(C%0%1%2%3%4%5%6%7%8%9(B")
("rom" "$(C%!%"%#%$%%%&%'%(%)%*(B")
("Greek" "$(C%A%B%C%D%E%F%G%H%I%J%K%L%M%N%O%P%Q%R%S%T%U%V%W%X(B")
("greek" "$(C%a%b%c%d%e%f%g%h%i%j%k%l%m%n%o%p%q%r%s%t%u%v%w%x(B")
("line" "$(C&"&#&$&%&&&'&(&)&*&+&,&-&.&/&0&1&2&3&4&5&6&7&8&9&:&;&<&=&>&?&@&A&B&C&D&E&F&G&H&I&J&K&L&M&N&O&P&Q&R&S&T&U&V&W&X&Y&[&Z&\&]&^&_&`&a&b&c&d(B")
("unit" "$(C'"'#'$'%'&'''(')'*'+','-'.'/'0'1'2'3'4'5'6'7'8'9':';'<'='>'?'@'A'B'C'D'E'F'G'H'I'J'K'L'M'N'O'P'Q'R'S'T'U'V'W'X'Y'['Z'\']'^'_'`'a'b'c'd'e'f'g'h'i'j'k'l'm'n'o(B")
("Scan" "$(C("(#($(&((()(*(+(,(-(.(/(B")
("ojaso" "$(C(1(2(3(4(5(6(7(8(9(:(;(<(=(>(B")
("ogana" "$(C(?(@(A(B(C(D(E(F(G(H(I(J(K(L(B")
("oeng" "$(C(M(N(O(P(Q(R(S(T(U(V(W(X(Y(Z([(\(](^(_(`(a(b(c(d(e(f(B")
("onum" "$(C(g(h(i(j(k(l(m(n(o(p(q(r(s(t(u(B")
("frac" "$(C(v(w(x(y(z({(|(}(~(B")
("scan" "$(C)")#)$)%)&)')()))*)+),)-).)/)0(B")
("pjaso" "$(C)1)2)3)4)5)6)7)8)9):);)<)=)>(B>")
("pgana" "$(C)?)@)A)B)C)D)E)F)G)H)I)J)K)L(B")
("peng" "$(C)M)N)O)P)Q)R)S)T)U)V)W)X)Y)Z)[)\)])^)_)`)a)b)c)d)e)f(B")
("pnum" "$(C)g)h)i)j)k)l)m)n)o)p)q)r)s)t)u(B")
("index" "$(C)v)w)x)y)z){)|)})~(B")
("hira" "$(C*"*#*$*%*&*'*(*)***+*,*-*.*/*0*1*2*3*4*5*6*7*8*9*:*;*<*=*>*?*@*A*B*C*D*E*F*G*H*I*J*K*L*M*N*O*P*Q*R*S*T*U*V*W*X*Y*[*Z*\*]*^*_*`*a*b*c*d*e*f*g*h*i*j*k*l*m*n*o*p*q*r*s(B")
("kata" "$(C+"+#+$+%+&+'+(+)+*+++,+-+.+/+0+1+2+3+4+5+6+7+8+9+:+;+<+=+>+?+@+A+B+C+D+E+F+G+H+I+J+K+L+M+N+O+P+Q+R+S+T+U+V+W+X+Y+[+Z+\+]+^+_+`+a+b+c+d+e+f+g+h+i+j+k+l+m+n+o+p+q+r+s+t+u+v(B")
("Russ" "$(C,",#,$,%,&,',(,),*,+,,,-,.,/,0,1,2,3,4,5,6,7,8,9,:,;,<,=,>,?,@,A(B")
("russ" "$(C,Q,R,S,T,U,V,W,X,Y,[,Z,\,],^,_,`,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q(B"))

400
leim/quail/thai.el Normal file
View file

@ -0,0 +1,400 @@
;;; quail/thai.el --- Quail package for inputting Thai characters
;; Copyright (C) 1995 Electrotechnical Laboratory, JAPAN.
;; Licensed to the Free Software Foundation.
;; Keywords: multilingual, input method, Thai
;; This file is part of GNU Emacs.
;; GNU Emacs is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation; either version 2, or (at your option)
;; any later version.
;; GNU Emacs 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 General Public License for more details.
;; You should have received a copy of the GNU General Public License
;; along with GNU Emacs; see the file COPYING. If not, write to the
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
;; Boston, MA 02111-1307, USA.
;;; Code:
(require 'quail)
(require 'thai-util)
(eval-and-compile
(defvar thai-keyboard-mapping-alist
'((kesmanee
[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ; control codes
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ; control codes
0 "#" ",TF(B" ",Tr(B" ",Ts(B" ",Tt(B" "0,TQi1(B" ",T'(B" ; SPC .. '
",Tv(B" ",Tw(B" ",Tu(B" ",Ty(B" ",TA(B" ",T"(B" ",Tc(B" ",T=(B" ; ( .. /
",T((B" ",TE(B" "/" "_" ",T@(B" ",T6(B" ",TX(B" ",TV(B" ; 0 .. 7
",T$(B" ",T5(B" ",T+(B" ",TG(B" ",T2(B" ",T*(B" ",TL(B" ",TF(B" ; 8 .. ?
",Tq(B" ",TD(B" ",TZ(B" ",T)(B" ",T/(B" ",T.(B" ",Tb(B" ",T,(B" ; @ .. G
",Tg(B" ",T3(B" ",Tk(B" ",TI(B" ",TH(B" ",Tn(B" ",Tl(B" ",TO(B" ; H .. O
",T-(B" ",Tp(B" ",T1(B" ",T&(B" ",T8(B" ",Tj(B" ",TN(B" "\"" ; P .. W
")" ",Tm(B" "(" ",T:(B" ",T_(B" ",TE(B" ",TY(B" ",Tx(B" ; X .. _
",T#(B" ",T?(B" ",TT(B" ",Ta(B" ",T!(B" ",TS(B" ",T4(B" ",T`(B" ; ` .. g
",Ti(B" ",TC(B" ",Th(B" ",TR(B" ",TJ(B" ",T7(B" ",TW(B" ",T9(B" ; h .. o
",TB(B" ",Tf(B" ",T>(B" ",TK(B" ",TP(B" ",TU(B" ",TM(B" ",Td(B" ; p .. w
",T;(B" ",TQ(B" ",T<(B" ",T0(B" ",To(B" "." ",T%(B" 0] ; x .. DEL
nil nil)
(pattachote
[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ; control codes
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ; control codes
0 "+" ",T1(B" "/" "," "?" "_" ",T"(B" ; SPC .. '
"(" ")" "." "%" ",TP(B" ",Tq(B" ",T((B" ",T>(B" ; ( .. /
",Tp(B" "=" ",Tr(B" ",Ts(B" ",Tt(B" ",Tu(B" ",TY(B" ",Tw(B" ; 0 .. 7
",Tx(B" ",Ty(B" ",T&(B" ",Td(B" ",T?(B" ",Tv(B" ",T2(B" ",TL(B" ; 8 .. ?
"\"" ",Tk(B" ",TQ(B" ",T0(B" 0 ",Tf(B" ",T3(B" ",Tl(B" ; @ .. G
",TW(B" ",T+(B" ",T<(B" ",T*(B" ",Tb(B" ",TN(B" ",TH(B" ",T6(B" ; H .. O
",T2(B" ",Tj(B" ",T-(B" ",TS(B" ",TI(B" ",T=(B" ",T@(B" ",T8(B" ; P .. W
",T.(B" ",TV(B" ",T.(B" ",Tc(B" ",TZ(B" ",T2(B" ",TX(B" "-" ; X .. _
",T#(B" ",Ti(B" ",TT(B" ",TE(B" 0 ",TB(B" ",T!(B" ",TQ(B" ; ` .. g
",TU(B" ",TA(B" ",TR(B" ",T9(B" ",T`(B" ",TJ(B" ",T$(B" ",TG(B" ; h .. o
",Ta(B" ",Tg(B" ",TM(B" ",T'(B" ",TC(B" ",T4(B" ",TK(B" ",T7(B" ; p .. w
",T;(B" ",Th(B" ",T:(B" ",TO(B" ",Tm(B" ",TF(B" ",T%(B" 0] ; x .. DEL
nil nil)
)
"Alist of Thai keyboard types vs. corresponding mapping tables.
Each element is a list of:
KEYBOARD-TYPE, ASCII-THAI-TABLE, CONSONANT-MAP-TEMPLATE,
and VOWEL-UPPER-LOWER-TEMPLATE.
KEYBOARD-TYPE is a symbol, one of kesmanee or pattachote.
ASCII-THAI-TABLE is a vector indexed by an ASCII key code
and the value is the one-char string of Thai character
assigned at the location of ASCII key on the specific Thai keyboard.
The value is 0 if no Thai character is assigned at the location.
CONSONANT-MAP-TEMPLATE is a template of a cdr part of a Quail map when
a consonant is entered.
VOWEL-UPPER-LOWER-TEMPLATE is a template of a cdr part of a Quail map
when a vowel upper or a vowel lower is entered.")
(defmacro thai-keyboard-info (keyboard-type)
`(assq ,keyboard-type thai-keyboard-mapping-alist))
)
(defvar thai-current-keyboard-type nil
"Thai Keyboard type which Quail is assuming currently.
This variable is used in Quail internally only.")
;; Template of a cdr part of a Quail map when a consonant is entered.
(defvar thai-consonant-alist nil)
;; Template of a cdr part of a Quail map when a vowel upper or a vowel
;; lower is entered.
(defvar thai-vowel-upper-lower-alist nil)
;; Return a Quail map corresponding to KEY of length LEN.
;; The car part of the map is a translation generated automatically.
;; The cdr part of the map is a copy of ALIST.
(defun thai-generate-quail-map (key len alist)
(let ((str "")
(idx 0))
(while (< idx len)
(setq str (concat str (aref (nth 1 (thai-keyboard-info
thai-current-keyboard-type))
(aref key idx)))
idx (1+ idx)))
(cons (string-to-char (compose-string str)) (copy-alist alist))))
;; Return a Quail map corresponding to KEY of length LEN when Thai
;; tone mark is entered.
(defun thai-tone-input (key len)
(thai-generate-quail-map key len nil))
;; Return a Quail map corresponding to KEY of length LEN when Thai
;; vowel upper or vowel lower is entered.
(defun thai-vowel-upper-lower-input (key len)
(thai-generate-quail-map
key len
(nth 3 (thai-keyboard-info thai-current-keyboard-type))))
;; Define RULES in Quail map. In addition, create
;; `thai-consonant-alist-KEYBOARD-TYPE' and
;; `thai-vowel-upper-lower-alist-KEYBOARD-TYPE'.
;; The general composing rules are as follows:
;;
;; T
;; V T V T
;; CV -> C, CT -> C, CVT -> C, Cv -> C, CvT -> C
;; v v
;;
;; where C: consonant, V: vowel upper, v: vowel lower, T: tone mark.
(defmacro thai-quail-define-rules (keyboard-type &rest rules)
(let ((l rules)
consonant-alist
vowel-upper-lower-alist
rule trans ch c-set)
(while l
(setq rule (car l))
(setq trans (nth 1 rule))
(if (consp trans)
(setq trans (car trans)))
(setq c-set (char-category-set (string-to-char trans)))
(cond ((or (aref c-set ?2)
(aref c-set ?3))
(setq consonant-alist
(cons (cons (string-to-char (car rule))
'thai-vowel-upper-lower-input)
consonant-alist)))
((aref c-set ?4)
(setq consonant-alist
(cons (cons (string-to-char (car rule))
'thai-tone-input)
consonant-alist)
vowel-upper-lower-alist
(cons (cons (string-to-char (car rule))
'thai-tone-input)
vowel-upper-lower-alist))))
(setq l (cdr l)))
`(progn
(quail-define-rules ,@rules)
(setcar (nthcdr 2 (thai-keyboard-info ,keyboard-type))
',consonant-alist)
(setcar (nthcdr 3 (thai-keyboard-info ,keyboard-type))
',vowel-upper-lower-alist))))
;; Return an alist which can be a cdr part of a Quail map
;; corresponding to the current key when Thai consonant is entered.
(defun thai-consonant-input (key len)
(let ((quail-package-name (quail-name)))
(setq thai-current-keyboard-type
(cond ((string= quail-package-name "thai-pattachote") 'pattachote)
(t (string= quail-package-name "thai-kesmanee") 'kesmanee)))
(copy-alist (nth 2 (thai-keyboard-info thai-current-keyboard-type)))))
;; Thai Kesmanee keyboard support.
(quail-define-package
"thai-kesmanee" "Thai" ",T!!(B>" t
"Thai Kesmanee input method with TIS620 keyboard layout
The difference from the ordinal Thai keyboard:
',T_(B' and ',To(B' are assigned to '\\' and '|' respectively,
',T#(B' and ',T%(B' are assigned to '`' and '~' respectively,
Don't know where to assign characters ',Tz(B' and ',T{(B'."
nil t t nil t)
(thai-quail-define-rules 'kesmanee
("1" (",TE(B" . thai-consonant-input))
("!" "#")
("2" "/")
("@" ",Tq(B")
("3" "_")
("#" ",Tr(B")
("4" (",T@(B" . thai-consonant-input))
("$" ",Ts(B")
("5" (",T6(B" . thai-consonant-input))
("%" ",Tt(B")
("6" ",TX(B")
("^" ",TY(B")
("7" ",TV(B")
("&" "0,TQi1(B")
("8" (",T$(B" . thai-consonant-input))
("*" ",Tu(B")
("9" (",T5(B" . thai-consonant-input))
("\(" ",Tv(B")
("0" (",T((B" . thai-consonant-input))
("\)" ",Tw(B")
("-" (",T"(B" . thai-consonant-input))
("_" ",Tx(B")
("=" (",T*(B" . thai-consonant-input))
("+" ",Ty(B")
("\\" ",T_(B")
("|" ",To(B")
("`" (",T#(B" . thai-consonant-input))
("~" (",T%(B" . thai-consonant-input))
("q" ",Tf(B")
("Q" ",Tp(B")
("w" ",Td(B")
("W" "\"")
("e" ",TS(B")
("E" (",T.(B" . thai-consonant-input))
("r" (",T>(B" . thai-consonant-input))
("R" (",T1(B" . thai-consonant-input))
("t" ",TP(B")
("T" (",T8(B" . thai-consonant-input))
("y" ",TQ(B")
("Y" ",Tm(B")
("u" ",TU(B")
("U" ",Tj(B")
("i" (",TC(B" . thai-consonant-input))
("I" (",T3(B" . thai-consonant-input))
("o" (",T9(B" . thai-consonant-input))
("O" ",TO(B")
("p" (",TB(B" . thai-consonant-input))
("P" (",T-(B" . thai-consonant-input))
("\[" (",T:(B" . thai-consonant-input))
("{" (",T0(B" . thai-consonant-input))
("\]" (",TE(B" . thai-consonant-input))
("}" ",")
("a" (",T?(B" . thai-consonant-input))
("A" ",TD(B")
("s" (",TK(B" . thai-consonant-input))
("S" (",T&(B" . thai-consonant-input))
("d" (",T!(B" . thai-consonant-input))
("D" (",T/(B" . thai-consonant-input))
("f" (",T4(B" . thai-consonant-input))
("F" ",Tb(B")
("g" ",T`(B")
("G" (",T,(B" . thai-consonant-input))
("h" ",Ti(B")
("H" ",Tg(B")
("j" ",Th(B")
("J" ",Tk(B")
("k" ",TR(B")
("K" (",TI(B" . thai-consonant-input))
("l" (",TJ(B" . thai-consonant-input))
("L" (",TH(B" . thai-consonant-input))
("\;" (",TG(B" . thai-consonant-input))
(":" (",T+(B" . thai-consonant-input))
("'" (",T'(B" . thai-consonant-input))
("\"" ".")
("z" (",T<(B" . thai-consonant-input))
("Z" "(")
("x" (",T;(B" . thai-consonant-input))
("X" ")")
("c" ",Ta(B")
("C" (",T)(B" . thai-consonant-input))
("v" (",TM(B" . thai-consonant-input))
("V" (",TN(B" . thai-consonant-input))
("b" ",TT(B")
("B" ",TZ(B")
("n" ",TW(B")
("N" ",Tl(B")
("m" (",T7(B" . thai-consonant-input))
("M" ",Tn(B")
("," (",TA(B" . thai-consonant-input))
("<" (",T2(B" . thai-consonant-input))
("." ",Tc(B")
(">" (",TL(B" . thai-consonant-input))
("/" (",T=(B" . thai-consonant-input))
("?" ",TF(B")
)
;; Thai Pattachote keyboard support.
(quail-define-package
"thai-pattachote" "Thai" ",T!;(B>" t
"Thai Pattachote input method with TIS620 keyboard layout"
nil t t nil t)
(thai-quail-define-rules 'pattachote
("1" "=")
("!" "+")
("2" ",Tr(B")
("@" "\"")
("3" ",Ts(B")
("#" "/")
("4" ",Tt(B")
("$" ",")
("5" ",Tu(B")
("%" "?")
("6" ",TY(B")
("^" ",TX(B")
("7" ",Tw(B")
("&" "_")
("8" ",Tx(B")
("*" ".")
("9" ",Ty(B")
("(" "(")
("0" ",Tp(B")
(")" ")")
("-" ",Tq(B")
("_" "-")
("=" ",Tv(B")
("+" "%")
("\\" ",TZ(B")
("|" ",Tm(B")
("`" (",T#(B" . thai-consonant-input))
("~" (",T%(B" . thai-consonant-input))
("q" ",Tg(B")
("Q" ",Tj(B")
("w" (",T5(B" . thai-consonant-input))
("W" ",TD(B")
("e" (",TB(B" . thai-consonant-input))
("E" ",Tf(B")
("r" (",TM(B" . thai-consonant-input))
("R" (",T-(B" . thai-consonant-input))
("t" (",TC(B" . thai-consonant-input))
("T" (",TI(B" . thai-consonant-input))
("y" ",Th(B")
("Y" ",TV(B")
("u" (",T4(B" . thai-consonant-input))
("U" (",T=(B" . thai-consonant-input))
("i" (",TA(B" . thai-consonant-input))
("I" (",T+(B" . thai-consonant-input))
("o" (",TG(B" . thai-consonant-input))
("O" (",T6(B" . thai-consonant-input))
("p" ",Ta(B")
("P" (",T2(B" . thai-consonant-input))
("\[" ",Tc(B")
("{" ",TO(B")
("\]" (",T2(B" . thai-consonant-input))
("}" ",TF(B")
("a" ",Ti(B")
("A" ",Tk(B")
("s" (",T7(B" . thai-consonant-input))
("S" (",T8(B" . thai-consonant-input))
("d" (",T'(B" . thai-consonant-input))
("D" ",TS(B")
("f" (",T!(B" . thai-consonant-input))
("F" (",T3(B" . thai-consonant-input))
("g" ",TQ(B")
("G" ",Tl(B")
("h" ",TU(B")
("H" ",TW(B")
("j" ",TR(B")
("J" (",T<(B" . thai-consonant-input))
("k" (",T9(B" . thai-consonant-input))
("K" (",T*(B" . thai-consonant-input))
("l" ",T`(B")
("L" ",Tb(B")
(";" ",Td(B")
(":" (",T&(B" . thai-consonant-input))
("'" (",T"(B" . thai-consonant-input))
("\"" (",T1(B" . thai-consonant-input))
("z" (",T:(B" . thai-consonant-input))
("Z" (",T.(B" . thai-consonant-input))
("x" (",T;(B" . thai-consonant-input))
("X" (",T.(B" . thai-consonant-input))
("c" (",TE(B" . thai-consonant-input))
("C" (",T0(B" . thai-consonant-input))
("v" (",TK(B" . thai-consonant-input))
("V" (",T@(B" . thai-consonant-input))
("b" ",TT(B")
("B" ",TQ(B")
("n" (",T$(B" . thai-consonant-input))
("N" (",TH(B" . thai-consonant-input))
("m" (",TJ(B" . thai-consonant-input))
("M" (",TN(B" . thai-consonant-input))
("," ",TP(B")
("<" (",T?(B" . thai-consonant-input))
("." (",T((B" . thai-consonant-input))
(">" (",T2(B" . thai-consonant-input))
("/" (",T>(B" . thai-consonant-input))
("?" (",TL(B" . thai-consonant-input))
)
;;; quail/thai.el ends here

12639
leim/quail/tsang-b5.el Normal file

File diff suppressed because it is too large Load diff

12639
leim/quail/tsang-cns.el Normal file

File diff suppressed because it is too large Load diff

69
leim/quail/viqr.el Normal file
View file

@ -0,0 +1,69 @@
;; quail/viqr.el -- Quail packages for inputting Vietnamese with VIQR system
;; Copyright (C) 1997 Electrotechnical Laboratory, JAPAN.
;; Licensed to the Free Software Foundation.
;; Keywords: multilingual, input method, latin
;; This file is part of GNU Emacs.
;; GNU Emacs is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation; either version 2, or (at your option)
;; any later version.
;; GNU Emacs 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 General Public License for more details.
;; You should have received a copy of the GNU General Public License
;; along with GNU Emacs; see the file COPYING. If not, write to the
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
;; Boston, MA 02111-1307, USA.
;;; Code:
(require 'quail)
(require 'viet-util)
;; `viet-viqr-alist' is an alist of Vietnamese characters vs
;; corresponding VIQR strings. We create Quail map which maps VIQR
;; strings to corresponding Vietnamese characters.
(defmacro viet-quail-define-rules ()
(cons 'quail-define-rules
(let ((l viet-viqr-alist)
rules)
(while l
(setq rules (cons (list (cdr (car l)) (car (car l))) rules))
(setq l (cdr l)))
rules)))
(quail-define-package
"vietnamese-viqr" "Vietnamese" "VQ" t
"Vietnamese input method with VIQR mnemonic system
effect | postfix | examples
------------+---------+----------
breve | ( | a( -> ,1e(B
circumflex | ^ | a^ -> ,1b(B
horn | + | o+ -> ,1=(B
------------+---------+----------
acute | ' | a' -> ,1a(B
grave | ` | a` -> ,1`(B
hook above | ? | a? -> ,1d(B
tilde | ~ | a~ -> ,1c(B
dot below | . | a. -> ,1U(B
------------+---------+----------
d bar | dd | dd -> ,1p(B
------------+---------+----------
no compose | \ | a\. -> a.
------------+---------+----------
combination| (~ | a(~ -> ,1G(B
" nil t t nil nil t)
(viet-quail-define-rules)
;;; quail/viqr.el ends here