From a8aff4192fd691c0d22bc319cfdb41dcf377e5f3 Mon Sep 17 00:00:00 2001 From: kyak Date: Tue, 21 Sep 2010 16:13:30 +0400 Subject: [PATCH] Added input (typing) and output (viewing) support for cyrillic in console --- ben-cyrillic/Makefile | 51 ++ ben-cyrillic/files/ben-cyrillic.init | 8 + ben-cyrillic/files/ben_ru_uni.map | 771 ++++++++++++++++++ ben-cyrillic/files/ben_ru_uni.trans | 64 ++ ben-cyrillic/files/russian.sh | 4 + ben-cyrillic/files/un-fuzzy-6x10-font_rus.pnm | Bin 0 -> 46133 bytes kbd/Makefile | 1 - kbd/files/ben_ru_uni.map.gz | Bin 4756 -> 0 bytes 8 files changed, 898 insertions(+), 1 deletion(-) create mode 100644 ben-cyrillic/Makefile create mode 100755 ben-cyrillic/files/ben-cyrillic.init create mode 100644 ben-cyrillic/files/ben_ru_uni.map create mode 100644 ben-cyrillic/files/ben_ru_uni.trans create mode 100644 ben-cyrillic/files/russian.sh create mode 100644 ben-cyrillic/files/un-fuzzy-6x10-font_rus.pnm delete mode 100644 kbd/files/ben_ru_uni.map.gz diff --git a/ben-cyrillic/Makefile b/ben-cyrillic/Makefile new file mode 100644 index 0000000..3425910 --- /dev/null +++ b/ben-cyrillic/Makefile @@ -0,0 +1,51 @@ +# +# OpenWrt +# +# This is free software, licensed under the GNU General Public License v2. +# + +include $(TOPDIR)/rules.mk + +PKG_NAME:=ben-cyrillic +PKG_VERSION:=0.0.1 +PKG_RELEASE:=1 + +include $(INCLUDE_DIR)/package.mk + +define Package/ben-cyrillic + SECTION:=utils + CATEGORY:=Utilities + TITLE:=implements cyrillic input/output for Ben + SUBMENU:=Terminal + DEPENDS:=+setfont2 +kbd +endef + +define Build/Compile +endef + +define Package/ben-cyrillic/description + Collection of files and scripts to support cyrillic + input and output for Ben. + Use the "Ben" key to switch between input languages. +endef + +define Package/ben-cyrillic/install + $(INSTALL_DIR) \ + $(1)/usr/share/ben-cyrillic \ + $(1)/usr/sbin \ + $(1)/etc/init.d + + $(INSTALL_BIN) \ + $(FILES_DIR)/russian.sh \ + $(1)/usr/sbin/russian.sh + + $(INSTALL_BIN) \ + $(FILES_DIR)/$(PKG_NAME).init \ + $(1)/etc/init.d/$(PKG_NAME) + + $(INSTALL_DATA) \ + $(FILES_DIR)/{ben_ru_uni.map,ben_ru_uni.trans,un-fuzzy-6x10-font_rus.pnm} \ + $(1)/usr/share/ben-cyrillic/ +endef + +$(eval $(call BuildPackage,ben-cyrillic)) diff --git a/ben-cyrillic/files/ben-cyrillic.init b/ben-cyrillic/files/ben-cyrillic.init new file mode 100755 index 0000000..c813fe9 --- /dev/null +++ b/ben-cyrillic/files/ben-cyrillic.init @@ -0,0 +1,8 @@ +#!/bin/sh /etc/rc.common +# Copyright (C) 2008 OpenWrt.org +START=41 + +start() { + /usr/sbin/russian.sh +} + diff --git a/ben-cyrillic/files/ben_ru_uni.map b/ben-cyrillic/files/ben_ru_uni.map new file mode 100644 index 0000000..e73341c --- /dev/null +++ b/ben-cyrillic/files/ben_ru_uni.map @@ -0,0 +1,771 @@ +keycode 1 = Escape Escape + alt keycode 1 = Meta_Escape +ctrlr keycode 1 = Escape +ctrlr shift keycode 1 = Escape +ctrlr alt keycode 1 = Meta_Escape +keycode 2 = one exclam + alt keycode 2 = Meta_one +keycode 3 = two at at nul nul Meta_two +keycode 4 = three numbersign + control keycode 4 = Escape + alt keycode 4 = Meta_three +keycode 5 = four dollar dollar Control_backslash + alt keycode 5 = Meta_four +keycode 6 = five percent + control keycode 6 = Control_bracketright + alt keycode 6 = Meta_five +keycode 7 = six asciicircum + control keycode 7 = Control_asciicircum + alt keycode 7 = Meta_six +keycode 8 = seven ampersand braceleft Control_underscore + alt keycode 8 = Meta_seven +keycode 9 = eight asterisk bracketleft Delete + alt keycode 9 = Meta_eight +keycode 10 = nine parenleft bracketright + alt keycode 10 = Meta_nine +keycode 11 = zero parenright braceright + alt keycode 11 = Meta_zero +keycode 12 = minus underscore backslash Control_underscore Control_underscore Meta_minus +keycode 13 = equal plus asciitilde + alt keycode 13 = Meta_equal + ctrll keycode 13 = three +ctrlr keycode 13 = U+0431 +ctrlr shift keycode 13 = U+0411 +ctrlr alt keycode 13 = U+044E +ctrlr alt shift keycode 13 = U+042E +ctrlr ctrll keycode 13 = three +ctrlr altgr keycode 13 = asciitilde +keycode 14 = Delete Delete BackSpace + alt keycode 14 = Meta_Delete +ctrlr keycode 14 = Delete +ctrlr shift keycode 14 = Delete +ctrlr altgr keycode 14 = BackSpace +ctrlr alt keycode 14 = Meta_Delete +keycode 15 = Tab Tab + alt keycode 15 = Meta_Tab +ctrlr keycode 15 = Tab +ctrlr alt keycode 15 = Meta_Tab +keycode 16 = +q + shift keycode 16 = +Q + altgr keycode 16 = exclam + control keycode 16 = Control_q + shift control keycode 16 = Control_q + alt keycode 16 = Meta_q + control alt keycode 16 = Meta_Control_q +ctrlr keycode 16 = U+0439 +ctrlr shift keycode 16 = U+0419 +ctrlr altgr keycode 16 = exclam +ctrlr control keycode 16 = Control_q +ctrlr shift control keycode 16 = Control_q +ctrlr alt keycode 16 = Meta_q +ctrlr control alt keycode 16 = Meta_Control_q +keycode 17 = +w + shift keycode 17 = +W + altgr keycode 17 = at + control keycode 17 = Control_w + shift control keycode 17 = Control_w + alt keycode 17 = Meta_w + control alt keycode 17 = Meta_Control_w +ctrlr keycode 17 = U+0446 +ctrlr shift keycode 17 = U+0426 +ctrlr altgr keycode 17 = at +ctrlr control keycode 17 = Control_w +ctrlr shift control keycode 17 = Control_w +ctrlr alt keycode 17 = Meta_w +ctrlr control alt keycode 17 = Meta_Control_w +keycode 18 = +e + shift keycode 18 = +E + altgr keycode 18 = numbersign + control keycode 18 = Control_e + shift control keycode 18 = Control_e + alt keycode 18 = Meta_e + control alt keycode 18 = Meta_Control_e +ctrlr keycode 18 = U+0443 +ctrlr shift keycode 18 = U+0423 +ctrlr altgr keycode 18 = numbersign +ctrlr control keycode 18 = Control_e +ctrlr shift control keycode 18 = Control_e +ctrlr alt keycode 18 = Meta_e +ctrlr control alt keycode 18 = Meta_Control_e +keycode 19 = +r + shift keycode 19 = +R + altgr keycode 19 = dollar + control keycode 19 = Control_r + shift control keycode 19 = Control_r + alt keycode 19 = Meta_r + control alt keycode 19 = Meta_Control_r +ctrlr keycode 19 = U+043A +ctrlr shift keycode 19 = U+041A +ctrlr altgr keycode 19 = dollar +ctrlr control keycode 19 = Control_r +ctrlr shift control keycode 19 = Control_r +ctrlr alt keycode 19 = Meta_r +ctrlr control alt keycode 19 = Meta_Control_r +keycode 20 = +t + shift keycode 20 = +T + altgr keycode 20 = percent + control keycode 20 = Control_t + shift control keycode 20 = Control_t + alt keycode 20 = Meta_t + control alt keycode 20 = Meta_Control_t +ctrlr keycode 20 = U+0435 +ctrlr shift keycode 20 = U+0415 +ctrlr altgr keycode 20 = percent +ctrlr control keycode 20 = Control_t +ctrlr shift control keycode 20 = Control_t +ctrlr alt keycode 20 = Meta_t +ctrlr control alt keycode 20 = Meta_Control_t +keycode 21 = +y + shift keycode 21 = +Y + altgr keycode 21 = asciicircum + control keycode 21 = Control_y + shift control keycode 21 = Control_y + alt keycode 21 = Meta_y + control alt keycode 21 = Meta_Control_y +ctrlr keycode 21 = U+043D +ctrlr shift keycode 21 = U+041D +ctrlr altgr keycode 21 = asciicircum +ctrlr control keycode 21 = Control_y +ctrlr shift control keycode 21 = Control_y +ctrlr alt keycode 21 = Meta_y +ctrlr control alt keycode 21 = Meta_Control_y +keycode 22 = +u +U ampersand Control_u Control_u Meta_u Meta_Control_u seven +ctrlr keycode 22 = U+0433 +ctrlr shift keycode 22 = U+0413 +ctrlr altgr keycode 22 = ampersand +ctrlr control keycode 22 = Control_u +ctrlr shift control keycode 22 = Control_u +ctrlr alt keycode 22 = Meta_u +ctrlr control alt keycode 22 = Meta_Control_u +ctrlr ctrll keycode 22 = seven +keycode 23 = +i +I asterisk Tab Tab Meta_i Meta_Tab eight +ctrlr keycode 23 = U+0448 +ctrlr shift keycode 23 = U+0428 +ctrlr altgr keycode 23 = asterisk +ctrlr control keycode 23 = Tab +ctrlr shift control keycode 23 = Tab +ctrlr alt keycode 23 = Meta_i +ctrlr control alt keycode 23 = Meta_Tab +ctrlr ctrll keycode 23 = eight +keycode 24 = +o +O parenleft Control_o Control_o Meta_o Meta_Control_o nine +ctrlr keycode 24 = U+0449 +ctrlr shift keycode 24 = U+0429 +ctrlr altgr keycode 24 = parenleft +ctrlr control keycode 24 = Control_o +ctrlr shift control keycode 24 = Control_o +ctrlr alt keycode 24 = Meta_o +ctrlr control alt keycode 24 = Meta_Control_o +ctrlr ctrll keycode 24 = nine +keycode 25 = +p + shift keycode 25 = +P + altgr keycode 25 = parenright + control keycode 25 = Control_p + shift control keycode 25 = Control_p + alt keycode 25 = Meta_p + control alt keycode 25 = Meta_Control_p +ctrlr keycode 25 = U+0437 +ctrlr shift keycode 25 = U+0417 +ctrlr altgr keycode 25 = parenright +ctrlr control keycode 25 = Control_p +ctrlr shift control keycode 25 = Control_p +ctrlr alt keycode 25 = Meta_p +ctrlr control alt keycode 25 = Meta_Control_p +keycode 26 = bracketleft braceleft + control keycode 26 = Escape + alt keycode 26 = Meta_bracketleft +keycode 27 = bracketright braceright asciitilde Control_bracketright + alt keycode 27 = Meta_bracketright +keycode 28 = Return + alt keycode 28 = Meta_Control_m +ctrlr keycode 28 = Return +ctrlr alt keycode 28 = Meta_Control_m +keycode 29 = CtrlL +keycode 30 = +a + shift keycode 30 = +A + altgr keycode 30 = degree + control keycode 30 = Control_a + shift control keycode 30 = Control_a + alt keycode 30 = Meta_a + control alt keycode 30 = Meta_Control_a +ctrlr keycode 30 = U+0444 +ctrlr shift keycode 30 = U+0424 +ctrlr altgr keycode 30 = degree +ctrlr control keycode 30 = Control_a +ctrlr shift control keycode 30 = Control_a +ctrlr alt keycode 30 = Meta_a +ctrlr control alt keycode 30 = Meta_Control_a +keycode 31 = +s + shift keycode 31 = +S + altgr keycode 31 = diaeresis + control keycode 31 = Control_s + shift control keycode 31 = Control_s + alt keycode 31 = Meta_s + control alt keycode 31 = Meta_Control_s +ctrlr keycode 31 = U+044B +ctrlr shift keycode 31 = U+042B +ctrlr altgr keycode 31 = diaeresis +ctrlr control keycode 31 = Control_s +ctrlr shift control keycode 31 = Control_s +ctrlr alt keycode 31 = Meta_s +ctrlr control alt keycode 31 = Meta_Control_s +keycode 32 = +d + shift keycode 32 = +D + altgr keycode 32 = currency + control keycode 32 = Control_d + shift control keycode 32 = Control_d + alt keycode 32 = Meta_d + control alt keycode 32 = Meta_Control_d +ctrlr keycode 32 = U+0432 +ctrlr shift keycode 32 = U+0412 +ctrlr altgr keycode 32 = currency +ctrlr control keycode 32 = Control_d +ctrlr shift control keycode 32 = Control_d +ctrlr alt keycode 32 = Meta_d +ctrlr control alt keycode 32 = Meta_Control_d +keycode 33 = +f + shift keycode 33 = +F + altgr keycode 33 = minus + control keycode 33 = Control_f + shift control keycode 33 = Control_f + alt keycode 33 = Meta_f + control alt keycode 33 = Meta_Control_f +ctrlr keycode 33 = U+0430 +ctrlr shift keycode 33 = U+0410 +ctrlr altgr keycode 33 = minus +ctrlr control keycode 33 = Control_f +ctrlr shift control keycode 33 = Control_f +ctrlr alt keycode 33 = Meta_f +ctrlr control alt keycode 33 = Meta_Control_f +keycode 34 = +g + shift keycode 34 = +G + altgr keycode 34 = underscore + control keycode 34 = Control_g + shift control keycode 34 = Control_g + alt keycode 34 = Meta_g + control alt keycode 34 = Meta_Control_g +ctrlr keycode 34 = U+043F +ctrlr shift keycode 34 = U+041F +ctrlr altgr keycode 34 = underscore +ctrlr control keycode 34 = Control_g +ctrlr shift control keycode 34 = Control_g +ctrlr alt keycode 34 = Meta_g +ctrlr control alt keycode 34 = Meta_Control_g +keycode 35 = +h + shift keycode 35 = +H + altgr keycode 35 = braceleft + control keycode 35 = BackSpace + shift control keycode 35 = BackSpace + alt keycode 35 = Meta_h + control alt keycode 35 = Meta_BackSpace +ctrlr keycode 35 = U+0440 +ctrlr shift keycode 35 = U+0420 +ctrlr altgr keycode 35 = braceleft +ctrlr control keycode 35 = BackSpace +ctrlr shift control keycode 35 = BackSpace +ctrlr alt keycode 35 = Meta_h +ctrlr control alt keycode 35 = Meta_BackSpace +keycode 36 = +j +J bracketleft Linefeed Linefeed Meta_j Meta_Linefeed four +ctrlr keycode 36 = U+043E +ctrlr shift keycode 36 = U+041E +ctrlr altgr keycode 36 = bracketleft +ctrlr control keycode 36 = Linefeed +ctrlr shift control keycode 36 = Linefeed +ctrlr alt keycode 36 = Meta_j +ctrlr control alt keycode 36 = Meta_Linefeed +ctrlr ctrll keycode 36 = four +keycode 37 = +k +K bracketright Control_k Control_k Meta_k Meta_Control_k five +ctrlr keycode 37 = U+043B +ctrlr shift keycode 37 = U+041B +ctrlr altgr keycode 37 = bracketright +ctrlr control keycode 37 = Control_k +ctrlr shift control keycode 37 = Control_k +ctrlr alt keycode 37 = Meta_k +ctrlr control alt keycode 37 = Meta_Control_k +ctrlr ctrll keycode 37 = five +keycode 38 = +l +L braceright Control_l Control_l Meta_l Meta_Control_l six +ctrlr keycode 38 = U+0434 +ctrlr shift keycode 38 = U+0414 +ctrlr altgr keycode 38 = braceright +ctrlr control keycode 38 = Control_l +ctrlr shift control keycode 38 = Control_l +ctrlr alt keycode 38 = Meta_l +ctrlr control alt keycode 38 = Meta_Control_l +ctrlr ctrll keycode 38 = six +keycode 39 = semicolon colon + alt keycode 39 = Meta_semicolon +keycode 40 = apostrophe quotedbl + control keycode 40 = Control_g + alt keycode 40 = Meta_apostrophe +keycode 41 = acute grave +ctrlr keycode 41 = U+044A +ctrlr shift keycode 41 = U+042A +ctrlr ctrll keycode 41 = grave +ctrlr alt keycode 41 = acute +keycode 42 = Shift +ctrlr keycode 42 = Uncaps_Shift +keycode 43 = backslash bar + control keycode 43 = Control_backslash + alt keycode 43 = Meta_backslash +ctrlr keycode 43 = U+0445 +ctrlr shift keycode 43 = U+0425 +ctrlr ctrll keycode 43 = bar +ctrlr alt keycode 43 = backslash +ctrlr control keycode 43 = Control_backslash +ctrlr alt keycode 43 = Meta_backslash +keycode 44 = +z + shift keycode 44 = +Z + control keycode 44 = Control_z + shift control keycode 44 = Control_z + alt keycode 44 = Meta_z + control alt keycode 44 = Meta_Control_z +ctrlr keycode 44 = U+044F +ctrlr shift keycode 44 = U+042F +ctrlr control keycode 44 = Control_z +ctrlr shift control keycode 44 = Control_z +ctrlr alt keycode 44 = Meta_z +ctrlr control alt keycode 44 = Meta_Control_z +keycode 45 = +x + shift keycode 45 = +X + control keycode 45 = Control_x + shift control keycode 45 = Control_x + alt keycode 45 = Meta_x + control alt keycode 45 = Meta_Control_x +ctrlr keycode 45 = U+0447 +ctrlr shift keycode 45 = U+0427 +ctrlr control keycode 45 = Control_x +ctrlr shift control keycode 45 = Control_x +ctrlr alt keycode 45 = Meta_x +ctrlr control alt keycode 45 = Meta_Control_x +keycode 46 = +c + shift keycode 46 = +C + altgr keycode 46 = Hex_C + control keycode 46 = Control_c + shift control keycode 46 = Control_c + alt keycode 46 = Meta_c + control alt keycode 46 = Meta_Control_c +ctrlr keycode 46 = U+0441 +ctrlr shift keycode 46 = U+0421 +ctrlr altgr keycode 46 = Hex_C +ctrlr control keycode 46 = Control_c +ctrlr shift control keycode 46 = Control_c +ctrlr alt keycode 46 = Meta_c +ctrlr control alt keycode 46 = Meta_Control_c +keycode 47 = +v + shift keycode 47 = +V + control keycode 47 = Control_v + shift control keycode 47 = Control_v + alt keycode 47 = Meta_v + control alt keycode 47 = Meta_Control_v +ctrlr keycode 47 = U+043C +ctrlr shift keycode 47 = U+041C +ctrlr control keycode 47 = Control_v +ctrlr shift control keycode 47 = Control_v +ctrlr alt keycode 47 = Meta_v +ctrlr control alt keycode 47 = Meta_Control_v +keycode 48 = +b + shift keycode 48 = +B + altgr keycode 48 = Hex_B + control keycode 48 = Control_b + shift control keycode 48 = Control_b + alt keycode 48 = Meta_b + control alt keycode 48 = Meta_Control_b +ctrlr keycode 48 = U+0438 +ctrlr shift keycode 48 = U+0418 +ctrlr altgr keycode 48 = Hex_B +ctrlr control keycode 48 = Control_b +ctrlr shift control keycode 48 = Control_b +ctrlr alt keycode 48 = Meta_b +ctrlr control alt keycode 48 = Meta_Control_b +keycode 49 = +n +N less Control_n Control_n Meta_n Meta_Control_n one +ctrlr keycode 49 = U+0442 +ctrlr shift keycode 49 = U+0422 +ctrlr altgr keycode 49 = less +ctrlr control keycode 49 = Control_n +ctrlr shift control keycode 49 = Control_n +ctrlr alt keycode 49 = Meta_n +ctrlr control alt keycode 49 = Meta_Control_n +ctrlr ctrll keycode 49 = one +keycode 50 = +m +M greater Control_m Control_m Meta_m Meta_Control_m two +ctrlr keycode 50 = U+044C +ctrlr shift keycode 50 = U+042C +ctrlr altgr keycode 50 = greater +ctrlr control keycode 50 = Control_m +ctrlr shift control keycode 50 = Control_m +ctrlr alt keycode 50 = Meta_m +ctrlr control alt keycode 50 = Meta_Control_m +ctrlr ctrll keycode 50 = two +keycode 51 = comma semicolon apostrophe +ctrlr keycode 51 = U+0436 +ctrlr shift keycode 51 = U+0416 +ctrlr altgr keycode 51 = apostrophe +ctrlr alt keycode 51 = comma +ctrlr ctrll keycode 51 = semicolon +keycode 52 = period colon quotedbl Compose +ctrlr keycode 52 = U+044D +ctrlr shift keycode 52 = U+042D +ctrlr altgr keycode 52 = quotedbl +ctrlr alt keycode 52 = period +ctrlr ctrll keycode 52 = colon +keycode 53 = slash question + control keycode 53 = Delete + alt keycode 53 = Meta_slash + ctrll keycode 53 = zero +ctrlr keycode 53 = slash +ctrlr shift keycode 53 = question +ctrlr control keycode 53 = Delete +ctrlr alt keycode 53 = Meta_slash +ctrlr ctrll keycode 53 = zero +keycode 54 = AltGr +keycode 55 = KP_Multiply +keycode 56 = Alt +keycode 57 = space space + control keycode 57 = nul + alt keycode 57 = Meta_space +ctrlr keycode 57 = space +ctrlr shift keycode 57 = space +ctrlr control keycode 57 = nul +ctrlr alt keycode 57 = Meta_space +keycode 58 = Caps_Lock +ctrlr keycode 58 = Shift_Lock +keycode 59 = F1 F11 Console_13 F1 + alt keycode 59 = Console_1 + control alt keycode 59 = Console_1 +ctrlr keycode 59 = F1 +ctrlr shift keycode 59 = F11 +ctrlr altgr keycode 59 = Console_13 +ctrlr control keycode 59 = F1 +ctrlr alt keycode 59 = Console_1 +ctrlr control alt keycode 59 = Console_1 +keycode 60 = F2 F12 Console_14 F2 + alt keycode 60 = Console_2 + control alt keycode 60 = Console_2 +ctrlr keycode 60 = F2 +ctrlr shift keycode 60 = F12 +ctrlr altgr keycode 60 = Console_14 +ctrlr control keycode 60 = F2 +ctrlr alt keycode 60 = Console_2 +ctrlr control alt keycode 60 = Console_2 +keycode 61 = F3 F13 Console_15 F3 + alt keycode 61 = Console_3 + control alt keycode 61 = Console_3 +ctrlr keycode 61 = F3 +ctrlr shift keycode 61 = F13 +ctrlr altgr keycode 61 = Console_15 +ctrlr control keycode 61 = F3 +ctrlr alt keycode 61 = Console_3 +ctrlr control alt keycode 61 = Console_3 +keycode 62 = F4 F14 Console_16 F4 + alt keycode 62 = Console_4 + control alt keycode 62 = Console_4 +ctrlr keycode 62 = F4 +ctrlr shift keycode 62 = F14 +ctrlr altgr keycode 62 = Console_16 +ctrlr control keycode 62 = F4 +ctrlr alt keycode 62 = Console_4 +ctrlr control alt keycode 62 = Console_4 +keycode 63 = F5 F15 Console_17 F5 + alt keycode 63 = Console_5 + control alt keycode 63 = Console_5 +ctrlr keycode 63 = F5 +ctrlr shift keycode 63 = F15 +ctrlr altgr keycode 63 = Console_17 +ctrlr control keycode 63 = F5 +ctrlr alt keycode 63 = Console_5 +ctrlr control alt keycode 63 = Console_5 +keycode 64 = F6 F16 Console_18 F6 + alt keycode 64 = Console_6 + control alt keycode 64 = Console_6 +ctrlr keycode 64 = F6 +ctrlr shift keycode 64 = F16 +ctrlr altgr keycode 64 = Console_18 +ctrlr control keycode 64 = F6 +ctrlr alt keycode 64 = Console_6 +ctrlr control alt keycode 64 = Console_6 +keycode 65 = F7 F17 Console_19 F7 + alt keycode 65 = Console_7 + control alt keycode 65 = Console_7 +ctrlr keycode 65 = F7 +ctrlr shift keycode 65 = F17 +ctrlr altgr keycode 65 = Console_19 +ctrlr control keycode 65 = F7 +ctrlr alt keycode 65 = Console_7 +ctrlr control alt keycode 65 = Console_7 +keycode 66 = F8 F18 Console_20 F8 + alt keycode 66 = Console_8 + control alt keycode 66 = Console_8 +ctrlr keycode 66 = F8 +ctrlr shift keycode 66 = F18 +ctrlr altgr keycode 66 = Console_20 +ctrlr control keycode 66 = F8 +ctrlr alt keycode 66 = Console_8 +ctrlr control alt keycode 66 = Console_8 +keycode 67 = F9 F19 Console_21 F9 + alt keycode 67 = Console_9 + control alt keycode 67 = Console_9 +keycode 68 = F10 F20 Console_22 F10 + alt keycode 68 = Console_10 + control alt keycode 68 = Console_10 +keycode 69 = Num_Lock + shift keycode 69 = Bare_Num_Lock +keycode 70 = Scroll_Lock Show_Memory Show_Registers Show_State + alt keycode 70 = Scroll_Lock +keycode 71 = KP_7 + altgr keycode 71 = Hex_7 + alt keycode 71 = Ascii_7 +keycode 72 = KP_8 + altgr keycode 72 = Hex_8 + alt keycode 72 = Ascii_8 +keycode 73 = KP_9 + altgr keycode 73 = Hex_9 + alt keycode 73 = Ascii_9 +keycode 74 = KP_Subtract +keycode 75 = KP_4 + altgr keycode 75 = Hex_4 + alt keycode 75 = Ascii_4 +keycode 76 = KP_5 + altgr keycode 76 = Hex_5 + alt keycode 76 = Ascii_5 +keycode 77 = KP_6 + altgr keycode 77 = Hex_6 + alt keycode 77 = Ascii_6 +keycode 78 = KP_Add +keycode 79 = KP_1 + altgr keycode 79 = Hex_1 + alt keycode 79 = Ascii_1 +keycode 80 = KP_2 + altgr keycode 80 = Hex_2 + alt keycode 80 = Ascii_2 +keycode 81 = KP_3 + altgr keycode 81 = Hex_3 + alt keycode 81 = Ascii_3 +keycode 82 = KP_0 + altgr keycode 82 = Hex_0 + alt keycode 82 = Ascii_0 +keycode 83 = KP_Period + control alt keycode 83 = Boot +keycode 84 = Last_Console +keycode 85 = +keycode 86 = less greater bar + alt keycode 86 = Meta_less +keycode 87 = F11 Scroll_Backward Prior F11 + alt keycode 87 = Console_11 + control alt keycode 87 = Console_11 +ctrlr keycode 87 = F11 +ctrlr shift keycode 87 = Scroll_Backward +ctrlr altgr keycode 87 = Prior +ctrlr control keycode 87 = F11 +ctrlr alt keycode 87 = Console_11 +ctrlr control alt keycode 87 = Console_11 +keycode 88 = F12 Scroll_Forward Next F12 + alt keycode 88 = Console_12 + control alt keycode 88 = Console_12 +ctrlr keycode 88 = F12 +ctrlr shift keycode 88 = Scroll_Forward +ctrlr altgr keycode 88 = Next +ctrlr control keycode 88 = F12 +ctrlr alt keycode 88 = Console_12 +ctrlr control alt keycode 88 = Console_12 +keycode 89 = +keycode 90 = +keycode 91 = +keycode 92 = +keycode 93 = +keycode 94 = +keycode 95 = +keycode 96 = KP_Enter +keycode 97 = Control +keycode 98 = KP_Divide +keycode 99 = Control_backslash +keycode 100 = AltGr +keycode 101 = Break +keycode 102 = Find +keycode 103 = Up +ctrlr keycode 103 = Up +keycode 104 = Prior + shift keycode 104 = Scroll_Backward +keycode 105 = Left + alt keycode 105 = Decr_Console +ctrlr keycode 105 = Left +ctrlr alt keycode 105 = Decr_Console +keycode 106 = Right + alt keycode 106 = Incr_Console +ctrlr keycode 106 = Right +ctrlr alt keycode 106 = Incr_Console +keycode 107 = Select +keycode 108 = Down +ctrlr keycode 108 = Down +keycode 109 = Next + shift keycode 109 = Scroll_Forward +keycode 110 = Insert +keycode 111 = Remove + control alt keycode 111 = Boot +keycode 112 = Macro +keycode 113 = F13 +keycode 114 = F14 +keycode 115 = Help +keycode 116 = Do +keycode 117 = F17 +keycode 118 = KP_MinPlus +keycode 119 = Pause +keycode 120 = +keycode 121 = +keycode 122 = +keycode 123 = +keycode 124 = +keycode 125 = +keycode 126 = +keycode 127 = +keycode 128 = +keycode 129 = +keycode 130 = +keycode 131 = +keycode 132 = +keycode 133 = +keycode 134 = +keycode 135 = +keycode 136 = +keycode 137 = +keycode 138 = +keycode 139 = +keycode 140 = +keycode 141 = +keycode 142 = +keycode 143 = +keycode 144 = +keycode 145 = +keycode 146 = +keycode 147 = +keycode 148 = +keycode 149 = +keycode 150 = +keycode 151 = +keycode 152 = +keycode 153 = +keycode 154 = +keycode 155 = +keycode 156 = +keycode 157 = +keycode 158 = +keycode 159 = +keycode 160 = +keycode 161 = +keycode 162 = +keycode 163 = +keycode 164 = +keycode 165 = +keycode 166 = +keycode 167 = +keycode 168 = +keycode 169 = +keycode 170 = +keycode 171 = +keycode 172 = +keycode 173 = +keycode 174 = +keycode 175 = +keycode 176 = +keycode 177 = +keycode 178 = +keycode 179 = +keycode 180 = +keycode 181 = +keycode 182 = +keycode 183 = CtrlR_Lock +keycode 184 = +keycode 185 = +keycode 186 = +keycode 187 = +keycode 188 = +keycode 189 = +keycode 190 = +keycode 191 = +keycode 192 = +keycode 193 = +keycode 194 = +keycode 195 = +keycode 196 = +keycode 197 = +keycode 198 = +keycode 199 = +keycode 200 = +keycode 201 = +keycode 202 = +keycode 203 = +keycode 204 = +keycode 205 = +keycode 206 = +keycode 207 = +keycode 208 = +keycode 209 = +keycode 210 = +keycode 211 = +keycode 212 = +keycode 213 = +keycode 214 = +keycode 215 = +keycode 216 = +keycode 217 = +keycode 218 = +keycode 219 = +keycode 220 = +keycode 221 = +keycode 222 = +keycode 223 = +keycode 224 = +keycode 225 = +keycode 226 = +keycode 227 = +keycode 228 = +keycode 229 = +keycode 230 = +keycode 231 = +keycode 232 = +keycode 233 = +keycode 234 = +keycode 235 = +keycode 236 = +keycode 237 = +keycode 238 = +keycode 239 = +keycode 240 = +keycode 241 = +keycode 242 = +keycode 243 = +keycode 244 = +keycode 245 = +keycode 246 = +keycode 247 = +keycode 248 = +keycode 249 = +keycode 250 = +keycode 251 = +keycode 252 = +keycode 253 = +keycode 254 = +keycode 255 = +string F1 = "\033[[A" +string F2 = "\033[[B" +string F3 = "\033[[C" +string F4 = "\033[[D" +string F5 = "\033[[E" +string F6 = "\033[17~" +string F7 = "\033[18~" +string F8 = "\033[19~" +string F9 = "\033[20~" +string F10 = "\033[21~" +string F13 = "\033[25~" +string F14 = "\033[26~" +string F15 = "\033[28~" +string F16 = "\033[29~" +string F17 = "\033[31~" +string F18 = "\033[32~" +string F19 = "\033[33~" +string F20 = "\033[34~" +string Find = "\033[1~" +string Insert = "\033[2~" +string Remove = "\033[3~" +string Select = "\033[4~" +string Prior = "\033[5~" +string Next = "\033[6~" +string Macro = "\033[M" +string Pause = "\033[P" diff --git a/ben-cyrillic/files/ben_ru_uni.trans b/ben-cyrillic/files/ben_ru_uni.trans new file mode 100644 index 0000000..eaacde5 --- /dev/null +++ b/ben-cyrillic/files/ben_ru_uni.trans @@ -0,0 +1,64 @@ +0xa0 U+0410 # CYRILLIC CAPITAL LETTER A +0xa1 U+0411 # CYRILLIC CAPITAL LETTER BE +0xa2 U+0412 # CYRILLIC CAPITAL LETTER VE +0xa3 U+0413 # CYRILLIC CAPITAL LETTER GHE +0xa4 U+0414 # CYRILLIC CAPITAL LETTER DE +0xa5 U+0415 # CYRILLIC CAPITAL LETTER IE +0xa6 U+0416 # CYRILLIC CAPITAL LETTER ZHE +0xa7 U+0417 # CYRILLIC CAPITAL LETTER ZE +0xa8 U+0418 # CYRILLIC CAPITAL LETTER I +0xa9 U+0419 # CYRILLIC CAPITAL LETTER SHORT I +0xaa U+041A # CYRILLIC CAPITAL LETTER KA +0xab U+041B # CYRILLIC CAPITAL LETTER EL +0xac U+041C # CYRILLIC CAPITAL LETTER EM +0xad U+041D # CYRILLIC CAPITAL LETTER EN +0xae U+041E # CYRILLIC CAPITAL LETTER O +0xaf U+041F # CYRILLIC CAPITAL LETTER PE +0xb0 U+0420 # CYRILLIC CAPITAL LETTER ER +0xb1 U+0421 # CYRILLIC CAPITAL LETTER ES +0xb2 U+0422 # CYRILLIC CAPITAL LETTER TE +0xb3 U+0423 # CYRILLIC CAPITAL LETTER U +0xb4 U+0424 # CYRILLIC CAPITAL LETTER EF +0xb5 U+0425 # CYRILLIC CAPITAL LETTER HA +0xb6 U+0426 # CYRILLIC CAPITAL LETTER TSE +0xb7 U+0427 # CYRILLIC CAPITAL LETTER CHE +0xb8 U+0428 # CYRILLIC CAPITAL LETTER SHA +0xb9 U+0429 # CYRILLIC CAPITAL LETTER SHCHA +0xba U+042A # CYRILLIC CAPITAL LETTER HARD SIGN +0xbb U+042B # CYRILLIC CAPITAL LETTER YERU +0xbc U+042C # CYRILLIC CAPITAL LETTER SOFT SIGN +0xbd U+042D # CYRILLIC CAPITAL LETTER E +0xbe U+042E # CYRILLIC CAPITAL LETTER YU +0xbf U+042F # CYRILLIC CAPITAL LETTER YA +0xc0 U+0430 # CYRILLIC SMALL LETTER A +0xc1 U+0431 # CYRILLIC SMALL LETTER BE +0xc2 U+0432 # CYRILLIC SMALL LETTER VE +0xc3 U+0433 # CYRILLIC SMALL LETTER GHE +0xc4 U+0434 # CYRILLIC SMALL LETTER DE +0xc5 U+0435 # CYRILLIC SMALL LETTER IE +0xc6 U+0436 # CYRILLIC SMALL LETTER ZHE +0xc7 U+0437 # CYRILLIC SMALL LETTER ZE +0xc8 U+0438 # CYRILLIC SMALL LETTER I +0xc9 U+0439 # CYRILLIC SMALL LETTER SHORT I +0xca U+043A # CYRILLIC SMALL LETTER KA +0xcb U+043B # CYRILLIC SMALL LETTER EL +0xcc U+043C # CYRILLIC SMALL LETTER EM +0xcd U+043D # CYRILLIC SMALL LETTER EN +0xce U+043E # CYRILLIC SMALL LETTER O +0xcf U+043F # CYRILLIC SMALL LETTER PE +0xd0 U+0440 # CYRILLIC SMALL LETTER ER +0xd1 U+0441 # CYRILLIC SMALL LETTER ES +0xd2 U+0442 # CYRILLIC SMALL LETTER TE +0xd3 U+0443 # CYRILLIC SMALL LETTER U +0xd4 U+0444 # CYRILLIC SMALL LETTER EF +0xd5 U+0445 # CYRILLIC SMALL LETTER HA +0xd6 U+0446 # CYRILLIC SMALL LETTER TSE +0xd7 U+0447 # CYRILLIC SMALL LETTER CHE +0xd8 U+0448 # CYRILLIC SMALL LETTER SHA +0xd9 U+0449 # CYRILLIC SMALL LETTER SHCHA +0xda U+044A # CYRILLIC SMALL LETTER HARD SIGN +0xdb U+044B # CYRILLIC SMALL LETTER YERU +0xdc U+044C # CYRILLIC SMALL LETTER SOFT SIGN +0xdd U+044D # CYRILLIC SMALL LETTER E +0xde U+044E # CYRILLIC SMALL LETTER YU +0xdf U+044F # CYRILLIC SMALL LETTER YA diff --git a/ben-cyrillic/files/russian.sh b/ben-cyrillic/files/russian.sh new file mode 100644 index 0000000..0ec5573 --- /dev/null +++ b/ben-cyrillic/files/russian.sh @@ -0,0 +1,4 @@ +#!/bin/sh +setfont2 /usr/share/ben-cyrillic/un-fuzzy-6x10-font_rus.pnm +loadkeys /usr/share/ben-cyrillic/ben_ru_uni.map +loadunimap /usr/share/ben-cyrillic/ben_ru_uni.trans diff --git a/ben-cyrillic/files/un-fuzzy-6x10-font_rus.pnm b/ben-cyrillic/files/un-fuzzy-6x10-font_rus.pnm new file mode 100644 index 0000000000000000000000000000000000000000..4546e65354525eddf045cbd546c89af763d65d44 GIT binary patch literal 46133 zcmeHP-Hs+V5uIE>qQ#OzWUkq@4o&0Z~yw2Z+~-&HHg%sxU7fDRvN$y(D;vkz zsI7}$8CV%u8CV%u8CV%u8CV%u8CV%u8CV%u8CV%u8CV%u8CV%u8F<1BoKEwG?Sxjl8= z0i0&ZDFZ1Yw^z6Kr9V;l_9^?+>Ger3ci;?)96$q$e7?K#sGLitICrNziGg@`^$t?x z2*)^?0Osc*G8LIxl~awrM;aHxqqM_S7g=w_@^M$%O&lE|L%(bJGC|ip-QPC>m&FA} zEB>n|gz(Kx>6ryKeZcjSO7H*${4Cxp-IzI)dIcWjMp zPgK)-XT2x8O3hY?pt&Ty>G^1mDgaETAUDpjhsCs@E3%l4fJ)6Uu2uGmEimbE_^5+n zcwolhQ8EM&j18f#16^VE0nhZZGoUt)5f@1bM|U;Z38FHo0@LnPlaw=!brFTh2mh!_ zyZ2X^evDMvv}GZ;UT(70ZA?B^&kj_Z2n&wv$`C;~lapo+kxKf5Q*hjx6lG|SGu&l> zqe5gT4l*57AE}y*ux{CRysjA)ddDN%?)>(3e_uyXoqPh8={p3ksIuEJeP#nk{SLH> zRA$2OMAMzHm#dQxS^$g52e~prrK>pi#&XuB6m=A-VDiD7Ryf{l2W8A?=XN-bEEt;! z2bpp^XkzE6^OragMoIUlyMv@;Im5+L+aM`0h@pz1s@}`V$7I|bdbq8LP<(3I0Ckp) ztI2p}g0}e(#U{lD14gS{O4Z2+7%*TfAB*Y879!FDsalp6CLhi%vy*iuVK~wvl&R$P zLent+$ed}FTdeqd#NOOe4 zod0e8L*IA|OjHi<6wS$w8rDBuTUG!Kl1K7viGbkp24=(Iw!48wXGX)}{9~~1>G`X= zmyVC;Dg)Q%6^Mt`rWeSlXu23Ud(U4MT6T?1nZXu)l}c3o9#>bAyz5m?HAJmVj+!1t z4E{Vy_fYsf0@t;~W&1yVn;z$}L-(I^ikr}yE=_4p>wa#*$&DaXhn#2- zcg36BtQ&V}s>)!7RbXU7$grcVBnym*mu+@#`x4oo!9=gM`6qi+8z3noj-bSuiCN|$ z9N|!S4x(}(j8b=C26ccyfHMYX2IKhr1Ez$Jh$;3X;hfnN=^VwZ4jG1kNUA)#3#y72 zibm(vv8LEm>uzAeCsais2M>UnLic27RHh}?h>$4$*$yXOQI#hk$gpTkq1qsv5~mW> zk|e7V0Kd`{lT6ptReF0_8yp%nh|7_iZFcryn2hF6<$y++V+V8enROg}hNxQBA_W&y zO@w9M#bOrq2AeI>ftrxNt?j3d^OMhH9Sk5VDEDaeFqlUt_R^tC(^q+{p3IR7IB^6m z&P>cQ0|zQ*%P+>Bx}0gcdG){{!rA#phKNR6vDvj_UH&w?9zBg#pJR8czaq*Q)oT<& z7Gap!$G*RBZ@ZvyXB?X(GhWCW9ep?aQfnAWC!^U~kXtCLkAyYVkQ;;Pi!o<7E29~v-UH=Ft(c)aJAFOTMsvRf; zU0uN--2sUiQIM@#R8X63f%z6PZ{M0Q3TWO1xJDJTU;l(8TP0JgdrY|3&trp!GsYH& zd!F!AZ>j3Af(AQ01nTY52ZY5J&N0{`BQ2A0DLX0W=}F-1uP)?3)g7HlWbJHkSWj0C z&}sQ2!kTQLw@7PKx*RfUnhDND6^FXCJK)r;ngfHMelN2R0Mcj5!^I&X4K}ZZsg#6Q zWD3tqpjk$+i+I@?K-ZXh2L?;Ke{Bg2DWk{(1P8rUT^U#zc+nZ~XZ&(ELo$Zx$fuQV z58z`=7#A3i^=t@r4t@sIvSe<0ft<~3T#(hR)Xgxx)VcOf`i$_I=5b7P(EAmk*5M=O zzTSsz`B5F(Fg~+p4l|Um*mm-z#}>A8iqHxlT^DP9K-VV)XY^aX{^SC_*8J_s&T;j{ zi+P#LHsVMN%KS#LZszFeL+%e84KCq8Qp^YnR`1b{4F)?>fVSqi!~uw@Y{d>7Mk*P_ zrROi>c$c1ImwQKqKXb|d8q|^2*7KL-iB>W9IP}@V_gq%7BifSX?G}6`%5FyNUDyZK zQFgV4+pItndA4PoVK1fEGS!}g+I)ZSL`>qww0KPG_H;bQ1j_f8YNfBoYc*8gP-?=L#Fp|o`2-mK*)sgyGp)(^1Wqg**2l3 z5l%#|6;l)B;EC@)*W5Dpcx#q2!X(ifcizmJIRnars(!<_TfPPedv+;vmgk4XMEeM5H{Vlx!~i}MfW_cF9HU>_}&d#)$sv7CAKSe)9ko@+Kd zM!S#O(_XtDT*j#hTl9;`K;9GE7{WPW?*yv8RnLGwwXE4H9sq^a~YUtlFK;f?5y_Zm;rv<&+q&h z-({TVn41;T%D~FN%D~o}zK=UA`8MjkzmNMU!`}S04O>I!LI^a9_NeDKyy6_m_);A> z$N`V~Dz9qE=y{^NbQUHPO#Dh)Fc}UBQ?btq9v7FiWJ0kUCr$8Ur21}sw#BHym)3d0 zv)9Gdb7pXBItV&;Q0Ovt<|@_ROY61f>W958-nY15yGLe7^yTQRE-!fDQ=Iyj+KI1&qxY^wN!Rx#lpxwX&R z+yJCe^g@-@fiqgoz#tZWq?#mQHH&y@FBzteA)ryffG1AoJk<~dNIgZ;3`e&iT1nG( zc1EOyOoDymE z8A?_y^N)d+t6URg-l2`GppEDHu9i7WuT9#Ey4F0~%p9uV*tFDplV~z-f`(*{tySGS zkB@fu2u(8w>cjlQs(l0O1p-j?gD2w9!)hH~qs$z_)+TXCn617H9E5?w`6N`*LsbXs z!fXCS4*!ED;^(n&GV|T_f;^K-gh^)Kmc>OY>^}B&Wvct)2aPDhx@DLFfH8AqQwAV2 z;7A50>JMJOGPK*b;{l^(bWjLl%ae9Z5Y31dB$>CI@=8Y{~=>Ja*yg3h9kC zzt1*6HXUkhaiS@ozp8LFMVidVuv-8rV@>^>uz{0W29$+bgiW4Cs2FEBu*D2>T7a5! zfNDh^60SLBji1@UkEWG$hhw|DC6!R@{$>qrTfes922GWgH+>#{kt2k)E28|A-yShE zfmR#(O$@fyBgBB|`#*J;*tHv2zH77Ktf^WV(E8RY*tKLso(**<(Zo|d7W=8Lp7|(Z zqpxOvt~fBl5`ER}SIz@*s6HU;)e@t(DZ{QtTntzNzdKqj$_#h`XFKc3<(qfArdIDrHkfBg+J;Pu5N4K4)%%q$Q<>&yXUJD`v}-50C_|uv<4#5x zoA)4qY`pBX(jA;fGSv{V&_`#EA{1QdsWA?eD(R*vS|h^vscpVZ2P_=d+97 z{yv|Fs^S7KEyc7=9pW>?2S%qZob6v@m-dX`NjdDC48{zY`N=TD7R@>;?j#OEpaD~# z8#Yct`|hF^9>5xp1od{C)?CjWo4v%hCO=Zn*{}A;4~9?Aq|E!aPf6E&Q*Wdk1@a?9 z7EUXw7BXXI&nc}PTaJ(4(?b2GUuD%o1Qa*NtQzO-V~~C3qgU}$oSu%p>;2ShopAI1 zx~v)L6hAD1c-e`^=hoBj+cPI7cdbt=TQ*~n9TlrECMU5&4eU)glRd$XS+gt0hXQ#p zN#pmco6%ho2=m9*iH8q9l_=>oFIF-g+4$I>j7u=8w}owWF+MWB%Vw2-I>}5~5y$2- z1q70!?#eF2eh#}U>?!4Vl1wc^mAm`_g=BpoR@^hg(M;WF1-6wnnG`6L+KPRV)v~s= zJvjfXzrH<`+ihaiQw+P!fR3hxKdlp~T3m~))G90x&pmk2$CXR>%h?p)Z(4q>9ZNCa?XCDfxt)TX$6;z#BQ#86WRoeF0D_DzH)~kWKvB zlem^j0@59wRDgxJWFQFbaG7aYVWiFoCO?Y+p2W*po&klWuLQy8jpW>9ciCH-XD| zLL1b>vRH*E76=+DPeF)ET0#T?EfE+$8KjUp0F%@Q05xej6r$c5aga<~fSkH3d$Ug? zfapS6m*XCL4W&GUZ!W)~hN8Gs@ zLLfI*q(u(ZH2ZnhK%o(Wq`|UMmF@``skC{qsV{0UF8i%gwVqJNm!%cR<0ZRYf|wfs^?z+wnslr&3?^~RNRxVnO;eOXjM*M zcCps#esI(I5-u8dDsUE0%A>A$SZ9}uY`;nQ2fG=_ zsbvMeoXLTg@8!>LLfUxUHdj#+hm$59^E-)Xm!A3g*G;j8sNuIW`*@_AC)c^#wMtA0cD z<*HwAXs^WbVj!-&Z$K%tDp5aPHF%a$?YZJK13UY0q}IT#K-bOt%IyF%K{{XLhtqU& zlU}DP1)-o@K#y|Oi~h{13z9rqSvcQ@$csH|;41k2gAM%;5n+3sf0{_=YrPY`k8m$V zIcmz2zH%(h)z2N<@2DfCTr9xJVh3+5KR(MEs=d)w!)m++%}xD%DlkW6ew6G5K{n$1 zJX+`KVmFh>8Wwl@}}e?B=5$SzUaO2 zdDuMj?AY;7P(_uSstZ)~WA2D*OM*DaxANggS0BW~BO9YomQ7zfrd4+vtQPw|P>B7W~ z#Mtg-{uwx&m(ab;eFR}RUDAoXXrgaG(1{i+5*-WQ0EGNI4;ZWXrL;X61Vo;B@ghsi z+Jq}>D^aKHT0q8oQ5t8jmWa@rbe-laZ{>*@f2og}vaOG4B5^X%08r6QU{`BZ++!Aj zj`j9boou}pL#&rXV-}*<)Q`g^SDw_JAN$OPd~^Vts*grH;0D*5SAf_z&FspYUo1>5 zAc?q$Oy4;X&MK&2zZ#^NKc!;9jSxD|ApG%Gl>e*Tu;PMuRS(90|8_UQI|@v|#LzWw zs36u7h1*^Cfs|KaM)3B_!uCx5XefqafkrQ!;hBE}urqe2D?d<0^SjgsMNm5wd?8A{ zC&AQ>As$o^ioV5|aT+2plP8WHzp%fGr&VOq9;|k{N2?!FZJuq<)6c!d6%iE)O%2P% zFA}=j)g6VLW*8ObYm8$6>fa7u{K-mTZO*V2u@x^^{cZAhvDfX~X+_DJnArg{k6omf zvtT4k=v6g=&Al_;0bTUjy7R`Aw2w2%;hw8_oyQI=XGo&EsK5K@O@xaSkM^W>SQ%hfd{3>Na`{($ zI!Pjo;pg#kj@KBX(J%b9qAlW*IV-`LSEGctfQQ+@dLpZVb zk?^iR1;)*EHG#GJIegA&?k@kkZImqhNAS5<-Jl94x5?}9BT?F@!^`|@#NQ3;_2YU{ zYiT~NhniB46`rf}d&xTOlh_50Acc%i3TZl`(5I&)N`Nq2bN!J+Q| zzF6S;b4)JERoI8`OOf<*Nu1Z9*Z#{$eYNC6#cN-79xA$tqfKpZUJm+b%+$3^O;YVJ zW`z(-FK;mYmLukq?^Oit9LwxcJ;!6QZ!3ZZ!`GYQv_Ks*S;JOy88x}&nHKn-?Zk)QQlyYbr(^UHW4)(dmA-hNnPpiVRP8_oW51Or z$KY4n3^3`}zbyrvfD+qFi{Vib6ES7+#P4GBk~3W?BFTA7B@a+mK3e1 z+Xj1hWgJZA9M)jViah`v5PX|ygY&N}@Q2LE4BV;b>ksTT*BstFl!7~S#O*u=`_2aF zhh3qZK)(&2d&K2NQ?6i1#5v!hG*um-qQ(6l!ryr`#fzCizmq}1?>?y9 zsW8F@Wb?ux#Z(8+FjFlW;hne0bmn@(_(Zc^k=C>70WTEi73@vb_5IK6x#H=K`~>f!&%@xckW;n+cI5C0cO`k@IR}haN3QD?YJPcM3M)Kb&m>r*=#J@cNk>j(^nQ775_6CNX>h5B4c7|LZ?55#DNS z(<4@f=>9Nh(8TNlj20tOUVDFdNnRfJRk|(cYwhSq!1rX>CtX#a;$RnBL^|=R)dGAh zTmONj?vE_w_9??nU}fR;-T(6vo;^-&jQ*4OGi|b!ae%~K^uW^#t6->mf?P7CvgkL#OqL#=W zq_=7QPAxkJQILAoJnvTPk)Kt^LXqVJsfh_)(bL{7Y+g*eX3jEdn?0D}3rIym>pDv| z^vX_IUVLS709na;_kwO8^k2}&WQRSPXR_T7IW#TmWf)!1V!OxVtx(#O0~M%7Gw?L! zBw7?<$(x&-Bw4;Ag}*Q#2$PYQr^mOq#%lt+^$?F@P;{<88+k-9MpvWL&(%(BVwiSAz_}Hkp z&;35fu0GEeDcA%`x3?)=Ew#nH{b-tl!zdAt*skT%-IPA?p8GIj+Q}<_8J(;hRUG_w zUwf9atd4qhcHeC{!76MOLG?{5GjYmLSuZn3KmUkLL_$tY=RW$S_Rm{64Ot}RTX}79 zH-C4@KF4{8qATo%gMl*N4crY5CD%!*jc@wVF z^3A9YnaA{+E%P%XwkUNH6BNGAbnM{dxM=D-ZHgOrdFz zfiJuuFj8XGE?w48iu20X9f{JEtbkBmTl(3?u!^0N?~2Vc`d{hEF=u((?;Dh0Pud}6 zV!N+gwdb9zmqP@Lw>`|!V0YQ%d1;OkyV9S$6AgZ`ygCyd(pR>Pe$A0GDxa|@E7Hf}O03fx+N$4~2A?5{@n7h*(>w-(&u7jZ5QP$M_8UDC!+ z{sUQ(7$yDNqX3tm+}XxIGGknJr+ZZFG(uP8IhoZ?39cdeu&qDcOI4cx^Nf?CKKb|E z99;Cx`v2Y4|H_6G#kG{{ABo5RFE3=b+ZaPk$rZ{&9_e@7`D8{sDL`Py5GeBh3fC&^ zuEXcHcLv%bSgd6)-hpWRF7~iQkP?OUS6qDZ>jzqfA)}jGhQXusIn~Dnw!as(nr?TI zb34lKMbLbKSD3^?CDoYFw0xA+?n-_5F2-Z~&y96Nd1AjOM3Z94%9$|qX-Py^N^)rT zB}hX49ItT`MGibA#v7Ppl@f6_C_f<30u$*3wxqbwDgq=uV5^FSzVRD8Cc)9z`$LH> SSIg(uxB=`cvV!(FIR63WYD5J9