diff options
author | fujiwarat <takao.fujiwara1@gmail.com> | 2013-11-01 11:19:39 +0900 |
---|---|---|
committer | fujiwarat <takao.fujiwara1@gmail.com> | 2013-11-01 11:19:39 +0900 |
commit | e64b25c0ab8fadeae97fe78dcfcbc3a5d0869c6b (patch) | |
tree | 7150775ce4a111e1b1176cff565348e14a70712e /src | |
parent | 9596aea2e2df4cd3ac9b795ad9f354723cf83317 (diff) |
Update en-us compose table and add locale tables for xkb engines.
BUG=RH#1013651
TEST=engine/ibus-engine-simple, src/libibus.so
Review URL: https://codereview.appspot.com/14465046
Diffstat (limited to 'src')
-rw-r--r-- | src/Makefile.am | 19 | ||||
-rw-r--r-- | src/gencomposetable.c | 957 | ||||
-rw-r--r-- | src/gtkimcontextsimpleseqs.h | 309 | ||||
-rw-r--r-- | src/ibuscomposetable.h | 2658 | ||||
-rw-r--r-- | src/ibusenginesimple.c | 48 | ||||
-rw-r--r-- | src/ibusenginesimple.h | 25 | ||||
-rw-r--r-- | src/ibuskeysyms.h | 7 |
7 files changed, 3972 insertions, 51 deletions
diff --git a/src/Makefile.am b/src/Makefile.am index 811d0970..404e1d22 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -159,6 +159,7 @@ ibusinclude_HEADERS = \ $(ibus_public_headers) \ $(NULL) ibus_privite_headers = \ + ibuscomposetable.h \ ibusinternal.h \ keyname-table.h \ gtkimcontextsimpleseqs.h \ @@ -226,6 +227,24 @@ ibusmarshalers.c: ibusmarshalers.h ibusmarshalers.list $(GLIB_GENMARSHAL) --prefix=_ibus_marshal $(srcdir)/ibusmarshalers.list --body --internal) > $@.tmp && \ mv $@.tmp $@ +ibuscomposetable.h: + $(AM_V_GEN) $(builddir)/gencomposetable > $@.tmp && \ + mv $@.tmp $@ + $(NULL) + +noinst_PROGRAMS = gencomposetable + +gencomposetable_SOURCES = \ + gencomposetable.c \ + $(NULL) +gencomposetable_CFLAGS = \ + @GLIB_CFLAGS@ \ + $(NULL) +gencomposetable_LDADD = \ + $(libibus) \ + @GLIB_LIBS@ \ + $(NULL) + EXTRA_DIST = \ ibusversion.h.in \ ibusmarshalers.list \ diff --git a/src/gencomposetable.c b/src/gencomposetable.c new file mode 100644 index 00000000..da929d0d --- /dev/null +++ b/src/gencomposetable.c @@ -0,0 +1,957 @@ +/* -*- mode: C; c-basic-offset: 4; indent-tabs-mode: nil; -*- */ +/* ibus - The Input Bus + * Copyright (C) 2013 Peng Huang <shawn.p.huang@gmail.com> + * Copyright (C) 2013 Takao Fujiwara <takao.fujiwara1@gmail.com> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 + * USA + */ + +#include <glib.h> +#include <glib/gprintf.h> +#include <locale.h> +#include <stdlib.h> +#include <string.h> +#include <strings.h> + +#include "ibuserror.h" +#include "ibuskeys.h" +#include "ibuskeysyms.h" +#include "ibustypes.h" +#include "gtkimcontextsimpleseqs.h" + +#define HEADER \ +"/* -*- mode: C; c-basic-offset: 4; indent-tabs-mode: nil; -*- */\n" \ +"/* vim:set et sts=4: */\n" \ +"/* ibus - The Input Bus\n" \ +" * Copyright (C) 2013 Peng Huang <shawn.p.huang@gmail.com>\n" \ +" * Copyright (C) 2013 Takao Fujiwara <takao.fujiwara1@gmail.com>\n" \ +" *\n" \ +" * This library is free software; you can redistribute it and/or\n" \ +" * modify it under the terms of the GNU Lesser General Public\n" \ +" * License as published by the Free Software Foundation; either\n" \ +" * version 2.1 of the License, or (at your option) any later version.\n" \ +" *\n" \ +" * This library is distributed in the hope that it will be useful,\n" \ +" * but WITHOUT ANY WARRANTY; without even the implied warranty of\n" \ +" * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n" \ +" * Lesser General Public License for more details.\n" \ +" *\n" \ +" * You should have received a copy of the GNU Lesser General Public\n" \ +" * License along with this library; if not, write to the Free Software\n" \ +" * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301\n" \ +" * USA\n" \ +" */\n" \ +"\n" \ +"#ifndef __IBUS_COMPOSETABLE_H_\n" \ +"#define __IBUS_COMPOSETABLE_H_\n" \ +"\n" \ +"/* The table is generated by ibus/src/gencomposetable\n" \ +" *\n" \ +" * if ibus_compose_seqs_a[N - 1] is an outputed compose character,\n" \ +" * ibus_compose_seqs_a[N * 2 - 1] is also an outputed compose character.\n" \ +" * and ibus_compose_seqs_a[0] to ibus_compose_seqs_a[0 + N - 3] are the\n" \ +" * sequences and call ibus_engine_simple_add_table:\n" \ +" * ibus_engine_simple_add_table(engine, ibus_compose_seqs_a,\n" \ +" * N - 2, G_N_ELEMENTS(ibus_compose_seqs_a) / N)\n" \ +" * The compose sequences are allowed within G_MAXUINT16 */\n" \ +"\n" \ +"typedef struct _IBusComposeTable IBusComposeTable;\n" \ +"struct _IBusComposeTable\n" \ +"{\n" \ +" const guint16 *data;\n" \ +" gint max_seq_len;\n" \ +" gint n_seqs;\n" \ +"};\n" \ +"\n" \ +"typedef struct _IBusComposeTableLocaleList IBusComposeTableLocaleList;\n" \ +"struct _IBusComposeTableLocaleList\n" \ +"{\n" \ +" const gchar *locale;\n" \ +" const IBusComposeTable *table;\n" \ +"};\n" \ +"" + +#define FOOTER \ +"#endif" + +#define AM_ET_ARRAY \ +"static const guint16 ibus_compose_seqs_am_et[] = {\n" \ +" /* Not sure if am_ET compose file is useful. It uses ASCII key\n" \ +" * at first but not compose keys.\n" \ +" * Comment out am_compose_seqs until get the request. */\n" \ +" 0\n" \ +"};\n" \ +"\n" \ +"static const IBusComposeTable ibus_compose_table_am_et = {\n" \ +" ibus_compose_seqs_am_et,\n" \ +" 0,\n" \ +" 0\n" \ +"};\n" \ +"" + +#define PRINT_IBUS_COMPOSE_TABLE_LOCALE(locale, len) \ + g_printf ( \ +"static const IBusComposeTable ibus_compose_table_" #locale " = {\n" \ +" ibus_compose_seqs_" #locale ",\n" \ +" %d,\n" \ +" G_N_ELEMENTS (ibus_compose_seqs_" #locale ") / (%d + 2)\n" \ +"};\n" \ +"\n" \ +"", len, len) + +#define PRINT_LOCALE_AND_IBUS_COMPOSE_TABLE(locale) \ + g_printf ( \ +" { \"" #locale "\", &ibus_compose_table_" #locale " },\n") \ + +#define IS_DEAD_KEY(k) \ + ((k) >= IBUS_KEY_dead_grave && (k) <= (IBUS_KEY_dead_dasia + 1)) + +#define GTK_MAX_COMPOSE_LEN 7 + +int MAX_COMPOSE_LEN = 0; +int N_INDEX_STRIDE = 0; + +const gchar *COMPOSE_FILES[] = { + "/usr/share/X11/locale/am_ET.UTF-8/Compose", + "/usr/share/X11/locale/el_GR.UTF-8/Compose", + "/usr/share/X11/locale/fi_FI.UTF-8/Compose", + "/usr/share/X11/locale/pt_BR.UTF-8/Compose", + NULL +}; + +typedef struct _IBusComposeTableCompact IBusComposeTableCompact; +struct _IBusComposeTableCompact +{ + const guint16 *data; + gint max_seq_len; + gint n_index_size; + gint n_index_stride; +}; + +static const IBusComposeTableCompact ibus_compose_table_compact = { + gtk_compose_seqs_compact, + 5, + 25, + 6 +}; + +GHashTable *en_keysym_table = NULL; + +static gboolean +is_codepoint (const gchar *str) +{ + gboolean retval = (strlen (str) > 1 && *str == 'U'); + int i; + + if (!retval) + return FALSE; + + for (i = 1; str[i] != '\0'; i++) { + if (g_ascii_isxdigit (str[i])) + continue; + else + return FALSE; + } + + return TRUE; +} + +static gint +get_codepoint (const gchar *str) +{ + if (g_str_has_prefix (str, "IBUS_KEY_")) + return GPOINTER_TO_INT (g_hash_table_lookup (en_keysym_table, str)); + if (*str == '0' && *(str + 1) == '\0') + return 0; + if (*str == '0' && *(str + 1) == 'x') + return (gint) g_ascii_strtoll (str, NULL, 16); + + g_assert_not_reached (); + return 0; +} + +static GHashTable * +parse_keysym_file (const gchar *keysym_file) +{ + gchar *contents = NULL; + gchar **lines = NULL; + gsize length = 0; + GError *error = NULL; + GHashTable *table = NULL; + int i; + + if (!g_file_get_contents (keysym_file, &contents, &length, &error)) { + g_error ("Specify $IBUS_KEYSYMS for the path of ibuskeysyms.h: %s", + error->message); + g_error_free (error); + } + + table = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL); + + lines = g_strsplit (contents, "\n", -1); + g_free (contents); + + for (i = 0; lines[i] != NULL; i++) { + const gchar *line = lines[i]; + gchar **words; + gint length; + const gchar *key; + gint64 code; + + if (!g_str_has_prefix (line, "#define")) + continue; + + words = g_strsplit (line , " ", -1); + length = g_strv_length (words); + + g_assert (length >= 2); + + key = words[1]; + + /* In case of #define __IBUS_KEYSYMS_H__ */ + if (length == 2) { + g_assert (!g_str_has_prefix (key, "IBUS_KEY")); + continue; + } + + code = g_ascii_strtoll (words[2], NULL, 16); + g_hash_table_insert (table, g_strdup (key), GINT_TO_POINTER (code)); + g_strfreev (words); + } + + g_strfreev (lines); + return table; +} + +static gboolean +parse_compose_value (GArray *array, const gchar *val, GError **error) +{ + gchar **words = g_strsplit (val, "\"", 3); + gchar *result; + gunichar uch; + + g_assert (g_strv_length (words) >= 3); + + uch = g_utf8_get_char (words[1]); + + if (uch == 0) { + g_set_error (error, + IBUS_ERROR, + IBUS_ERROR_FAILED, + "Invalid value: %s", val); + g_strfreev (words); + return FALSE; + } + else if (uch == '\\') { + uch = words[1][1]; + + /* The escaped string "\"" is separated with '\\' and '"'. */ + if (uch == '\0' && words[2][0] == '"') + uch = '"'; + /* The escaped octal */ + else if (uch >= '0' && uch <= '8') + uch = g_ascii_strtoll(words[1] + 1, 0, 8); + /* If we need to handle other escape sequences. */ + else if (uch != '\\') + g_assert_not_reached (); + } + else if (g_utf8_get_char (g_utf8_next_char (words[1])) > 0) { + g_set_error (error, + IBUS_ERROR, + IBUS_ERROR_FAILED, + "GTK+ supports to output one char only: %s", val); + g_strfreev (words); + return FALSE; + } + + + result = g_strdup_printf ("0x%04X", uch); + g_array_append_val (array, result); + + if (uch == '"') + result = g_strdup (g_strstrip (words[2] + 1)); + else + result = g_strdup (g_strstrip (words[2])); + + g_array_append_val (array, result); + g_strfreev (words); + + return TRUE; +} + +static void +parse_compose_sequence (GArray *array, const gchar *seq) +{ + gchar **words = g_strsplit (seq, "<", -1); + gchar *result; + int i; + int n = 0; + + g_assert (g_strv_length (words) >= 2); + + for (i = 1; words[i] != NULL; i++) { + gchar *start = words[i]; + gchar *end = index (words[i], '>'); + gchar *match; + + if (words[i][0] == '\0') + continue; + + g_assert (start != NULL && end != NULL && end > start); + + match = g_strndup (start, end - start); + + if (is_codepoint (match)) { + gint64 code = g_ascii_strtoll (match + 1, NULL, 16); + result = g_strdup_printf ("0x%04X", (unsigned int) code); + } else + result = g_strdup_printf ("IBUS_KEY_%s", match); + + g_free (match); + g_array_append_val (array, result); + n++; + } + + g_strfreev (words); + g_assert (0 < n && n < GTK_MAX_COMPOSE_LEN); + + result = g_strdup ("0"); + g_array_append_val (array, result); +} + +static void +clear_char_array (gpointer data) +{ + gchar **array = data; + g_free (*array); +} + +static void +parse_compose_line (GList **compose_table, const gchar *line) +{ + gchar **components = NULL; + GArray *array; + GError *error = NULL; + + if (line[0] == '\0' || line[0] == '#') + return; + + if (g_str_has_prefix (line, "include ")) + return; + + components = g_strsplit (line, ":", 2); + + if (components[1] == NULL) { + g_warning ("No delimiter ':': %s", line); + g_strfreev (components); + return; + } + + array = g_array_new (TRUE, TRUE, sizeof (gchar *)); + g_array_set_clear_func (array, clear_char_array); + + parse_compose_sequence (array, g_strstrip (components[0])); + + if (!parse_compose_value (array, g_strstrip (components[1]), &error)) { + g_warning ("%s: %s", error->message, line); + g_clear_error (&error); + g_strfreev (components); + g_array_unref (array); + return; + } + + g_strfreev (components); + + *compose_table = g_list_append (*compose_table, array); +} + +static GList * +parse_compose_file (const gchar *compose_file) +{ + gchar *contents = NULL; + gchar **lines = NULL; + gsize length = 0; + GError *error = NULL; + GList *compose_table = NULL; + int i; + + if (!g_file_get_contents (compose_file, &contents, &length, &error)) { + g_error ("%s", error->message); + g_error_free (error); + } + + lines = g_strsplit (contents, "\n", -1); + g_free (contents); + for (i = 0; lines[i] != NULL; i++) + parse_compose_line (&compose_table, lines[i]); + g_strfreev (lines); + + return compose_table; +} + +static int +compare_seq_index (const void *key, const void *value) +{ + const guint *keysyms = key; + const guint16 *seq = value; + + if (keysyms[0] < seq[0]) + return -1; + else if (keysyms[0] > seq[0]) + return 1; + return 0; +} + +static int +compare_seq (const void *key, const void *value) +{ + int i = 0; + const guint *keysyms = key; + const guint16 *seq = value; + + while (keysyms[i]) { + if (keysyms[i] < seq[i]) + return -1; + else if (keysyms[i] > seq[i]) + return 1; + + i++; + } + + return 0; +} + +/* Implement check_compact_table() in ibus/src/ibusenginesimple.c + */ +static gboolean +check_compact_table (const guint *compose_buffer, + const IBusComposeTableCompact *table, + gint n_compose) +{ + gint row_stride; + guint16 *seq_index; + guint16 *seq; + gint i; + + seq_index = bsearch (compose_buffer, + table->data, + table->n_index_size, + sizeof (guint16) * table->n_index_stride, + compare_seq_index); + + if (seq_index == NULL) { + // g_debug ("compact: no\n"); + return FALSE; + } + + seq = NULL; + i = n_compose - 1; + + if (i >= table->max_seq_len) { + return FALSE; + } + + row_stride = i + 1; + + if (seq_index[i + 1] <= seq_index[i]) { + return FALSE; + } + + seq = bsearch (compose_buffer + 1, + table->data + seq_index[i], + (seq_index[i + 1] - seq_index[i]) / row_stride, + sizeof (guint16) * row_stride, + compare_seq); + // g_debug ("seq = %p", seq); + + if (!seq) { + // g_debug ("no\n"); + return FALSE; + } + else { + gunichar value = seq[row_stride - 1]; + // g_debug ("U+%04X\n", value); + if (compose_buffer[n_compose + 1] == value) + return TRUE; + else + return FALSE; + } +} + +static gboolean +check_normalize_nfc (gunichar* combination_buffer, gint n_compose) +{ + gunichar combination_buffer_temp[GTK_MAX_COMPOSE_LEN]; + gchar *combination_utf8_temp = NULL; + gchar *nfc_temp = NULL; + gint n_combinations; + gunichar temp_swap; + gint i; + + n_combinations = 1; + + for (i = 1; i < n_compose; i++ ) + n_combinations *= i; + + if (combination_buffer[0] >= 0x390 && combination_buffer[0] <= 0x3FF) { + for (i = 1; i < n_compose; i++ ) + if (combination_buffer[i] == 0x303) + combination_buffer[i] = 0x342; + } + + memcpy (combination_buffer_temp, combination_buffer, + GTK_MAX_COMPOSE_LEN * sizeof (gunichar) ); + + for (i = 0; i < n_combinations; i++ ) { + g_unicode_canonical_ordering (combination_buffer_temp, n_compose); + combination_utf8_temp = g_ucs4_to_utf8 (combination_buffer_temp, + -1, NULL, NULL, NULL); + nfc_temp = g_utf8_normalize (combination_utf8_temp, -1, + G_NORMALIZE_NFC); + + if (g_utf8_strlen (nfc_temp, -1) == 1) { + memcpy (combination_buffer, + combination_buffer_temp, + GTK_MAX_COMPOSE_LEN * sizeof (gunichar) ); + + g_free (combination_utf8_temp); + g_free (nfc_temp); + + return TRUE; + } + + g_free (combination_utf8_temp); + g_free (nfc_temp); + + if (n_compose > 2) { + temp_swap = combination_buffer_temp[i % (n_compose - 1) + 1]; + combination_buffer_temp[i % (n_compose - 1) + 1] = + combination_buffer_temp[(i+1) % (n_compose - 1) + 1]; + combination_buffer_temp[(i+1) % (n_compose - 1) + 1] = temp_swap; + } + else + break; + } + + return FALSE; +} + +/* Implement check_algorithmically() in ibus/src/ibusenginesimple.c + */ +static gboolean +check_algorithmically (const guint *compose_buffer, + gint n_compose) +{ + int i = 0; + gunichar combination_buffer[GTK_MAX_COMPOSE_LEN]; + gchar *combination_utf8, *nfc; + + if (n_compose >= GTK_MAX_COMPOSE_LEN) + return FALSE; + + for (i = 0; i < n_compose && IS_DEAD_KEY (compose_buffer[i]); i++) + ; + if (i == n_compose) + return FALSE; + + if (i > 0 && i == n_compose - 1) { + combination_buffer[0] = ibus_keyval_to_unicode (compose_buffer[i]); + combination_buffer[n_compose] = 0; + i--; + + while (i >= 0) { + switch (compose_buffer[i]) { +#define CASE(keysym, unicode) \ + case IBUS_KEY_dead_##keysym: combination_buffer[i+1] = unicode; \ + break + + CASE (grave, 0x0300); + CASE (acute, 0x0301); + CASE (circumflex, 0x0302); + CASE (tilde, 0x0303); + CASE (macron, 0x0304); + CASE (breve, 0x0306); + CASE (abovedot, 0x0307); + CASE (diaeresis, 0x0308); + CASE (hook, 0x0309); + CASE (abovering, 0x030A); + CASE (doubleacute, 0x030B); + CASE (caron, 0x030C); + CASE (abovecomma, 0x0313); + CASE (abovereversedcomma, 0x0314); + CASE (horn, 0x031B); + CASE (belowdot, 0x0323); + CASE (cedilla, 0x0327); + CASE (ogonek, 0x0328); + CASE (iota, 0x0345); + CASE (voiced_sound, 0x3099); + CASE (semivoiced_sound, 0x309A); + + /* The following cases are to be removed once xkeyboard-config, + * xorg are fully updated. + */ + /* Workaround for typo in 1.4.x xserver-xorg */ + case 0xfe66: combination_buffer[i+1] = 0x314; break; + /* CASE (dasia, 0x314); */ + /* CASE (perispomeni, 0x342); */ + /* CASE (psili, 0x343); */ +#undef CASE + default: + combination_buffer[i+1] = + ibus_keyval_to_unicode (compose_buffer[i]); + } + i--; + } + + if (check_normalize_nfc (combination_buffer, n_compose)) { + gunichar value; + + combination_utf8 = g_ucs4_to_utf8 (combination_buffer, + -1, NULL, NULL, NULL); + nfc = g_utf8_normalize (combination_utf8, -1, G_NORMALIZE_NFC); + + value = g_utf8_get_char (nfc); + g_free (combination_utf8); + g_free (nfc); + + if (compose_buffer[n_compose + 1] == value) + return TRUE; + } + } + + return FALSE; +} + +static GList * +check_duplicated_compose (GList *compose_table) +{ + GList *table; + GList *removed_table = NULL; + + for (table = compose_table; table != NULL; table = table->next) { + GArray *array = (GArray *) table->data; + static guint keysyms[GTK_MAX_COMPOSE_LEN + 2]; + int i; + int n_compose = 0; + + for (i = 0; i <= GTK_MAX_COMPOSE_LEN + 2; i++) { + keysyms[i] = 0; + } + + for (i = 0; i < array->len; i++) { + const gchar *data = g_array_index (array, const gchar *, i); + guint codepoint = (guint) get_codepoint (data); + + keysyms[i] = codepoint; + + if (codepoint == 0) { + data = g_array_index (array, const gchar *, i + 1); + codepoint = (guint) get_codepoint (data); + keysyms[i + 1] = codepoint; + break; + } + + n_compose++; + } + + if (check_compact_table (keysyms, + &ibus_compose_table_compact, + n_compose)) + removed_table = g_list_append (removed_table, array); + + else if (check_algorithmically (keysyms, n_compose)) + removed_table = g_list_append (removed_table, array); + } + + for (table = removed_table; table != NULL; table = table->next) { + GArray *array = (GArray *) table->data; + compose_table = g_list_remove (compose_table, array); + g_array_unref (array); + } + + g_list_free (removed_table); + + return compose_table; +} + +static GList * +check_uint16 (GList *compose_table) +{ + GList *table; + GList *removed_table = NULL; + + for (table = compose_table; table != NULL; table = table->next) { + GArray *array = (GArray *) table->data; + int i; + + for (i = 0; i < array->len; i++) { + const gchar *data = g_array_index (array, const gchar *, i); + guint codepoint = (guint) get_codepoint (data); + + if (codepoint == 0) + break; + + if (codepoint > 0xffff) { + removed_table = g_list_append (removed_table, array); + break; + } + } + } + + for (table = removed_table; table != NULL; table = table->next) { + GArray *array = (GArray *) table->data; + compose_table = g_list_remove (compose_table, array); + g_array_unref (array); + } + + g_list_free (removed_table); + + return compose_table; +} + +static GList * +format_for_gtk (GList *compose_table) +{ + GList *table; + GList *new_table = NULL; + int i; + int j; + + for (table = compose_table; table != NULL; table = table->next) { + GArray *array = (GArray *) table->data; + + for (i = 0; i < array->len; i++) { + const gchar *data = g_array_index (array, const gchar *, i); + guint codepoint = (guint) get_codepoint (data); + + if (codepoint == 0) { + if (MAX_COMPOSE_LEN < i) + MAX_COMPOSE_LEN = i; + break; + } + } + } + + N_INDEX_STRIDE = MAX_COMPOSE_LEN + 2; + + for (table = compose_table; table != NULL; table = table->next) { + GArray *array = (GArray *) table->data; + for (i = 0; i < array->len; i++) { + const gchar *data = g_array_index (array, const gchar *, i); + guint codepoint = (guint) get_codepoint (data); + + if (codepoint == 0) { + gchar *value = g_strdup (g_array_index (array, const gchar *, + i + 1)); + gchar *comment = g_strdup (g_array_index (array, const gchar *, + i + 2)); + gchar *result; + + g_array_remove_range (array, i, array->len - i); + + for (j = i; j < MAX_COMPOSE_LEN; j++) { + result = g_strdup ("0"); + g_array_append_val (array, result); + } + + codepoint = (guint) get_codepoint (value); + g_free (value); + + if (codepoint > 0xffff) { + result = g_strdup_printf ("0x%04X", codepoint / 0x10000); + g_array_append_val (array, result); + result = g_strdup_printf ("0x%04X", + codepoint - codepoint / 0x10000 * 0x10000); + g_array_append_val (array, result); + } else { + result = g_strdup ("0"); + g_array_append_val (array, result); + result = g_strdup_printf ("0x%04X", codepoint); + g_array_append_val (array, result); + } + + g_array_append_val (array, comment); + new_table = g_list_append (new_table, array); + break; + } + } + } + + return new_table; +} + +static gint +compare_array (gpointer a, gpointer b) +{ + GArray *array_a = (GArray *) a; + GArray *array_b = (GArray *) b; + int i; + for (i = 0; i < MAX_COMPOSE_LEN; i++) { + const gchar *data_a = g_array_index (array_a, const gchar *, i); + const gchar *data_b = g_array_index (array_b, const gchar *, i); + gint code_a = get_codepoint (data_a); + gint code_b = get_codepoint (data_b); + + if (code_a != code_b) + return code_a - code_b; + } + return 0; +} + +static void +print_compose_table (GList *compose_table) +{ + GList *table; + int i; + int TOTAL_SIZE = 0; + + for (table = compose_table; table != NULL; table = table->next) { + GArray *array = (GArray *) table->data; + const gchar *data; + const gchar *upper; + const gchar *lower; + const gchar *comment; + + g_assert (array->len >= MAX_COMPOSE_LEN + 2); + + g_printf (" "); + for (i = 0; i < MAX_COMPOSE_LEN; i++) { + data = g_array_index (array, const gchar *, i); + + if (i == MAX_COMPOSE_LEN -1) + g_printf ("%s,\n", data); + else + g_printf ("%s, ", data); + } + upper = g_array_index (array, const gchar *, i); + lower = g_array_index (array, const gchar *, i + 1); + comment = g_array_index (array, const gchar *, i + 2); + + if (table == g_list_last (compose_table)) + g_printf (" %s, %s /* %s */\n", upper, lower, comment); + else + g_printf (" %s, %s, /* %s */\n", upper, lower, comment); + + TOTAL_SIZE += N_INDEX_STRIDE; + } + + g_printerr ("TOTAL_SIZE: %d\nMAX_COMPOSE_LEN: %d\nN_INDEX_STRIDE: %d\n", + TOTAL_SIZE, MAX_COMPOSE_LEN, N_INDEX_STRIDE); +} + +static void +print_compose_table_locale_list (void) { + int i; + +#define HEADER_IBUS_COMPOSE_TABLE_LOCLE_LIST \ + "static const IBusComposeTableLocaleList ibus_compose_table_locale_list[] = {" + + g_printf ("%s\n", HEADER_IBUS_COMPOSE_TABLE_LOCLE_LIST); + + for (i = 0; COMPOSE_FILES[i] != NULL; i++) { + const gchar *compose_file = COMPOSE_FILES[i]; + + if (g_strstr_len (compose_file, -1, "am_ET") != NULL) + continue; + else if (g_strstr_len (compose_file, -1, "el_GR") != NULL) + PRINT_LOCALE_AND_IBUS_COMPOSE_TABLE (el_gr); + else if (g_strstr_len (compose_file, -1, "fi_FI") != NULL) + PRINT_LOCALE_AND_IBUS_COMPOSE_TABLE (fi_fi); + else if (g_strstr_len (compose_file, -1, "pt_BR") != NULL) + PRINT_LOCALE_AND_IBUS_COMPOSE_TABLE (pt_br); + else + g_assert_not_reached (); + } + + g_printf (" { NULL, NULL }\n};\n\n"); +}; + +int +main (int argc, char *argv[]) +{ + int i; + const gchar *en_keysym_file; + const gchar *compose_file; + GList *compose_table = NULL; + + setlocale (LC_ALL, ""); + + en_keysym_file = g_getenv ("IBUS_KEYSYMS"); + + if (en_keysym_file == NULL) { + en_keysym_file = "ibuskeysyms.h"; + } + + en_keysym_table = parse_keysym_file (en_keysym_file); + + g_printf ("%s\n", HEADER); + + for (i = 0; COMPOSE_FILES[i] != NULL; i++) { + compose_file = COMPOSE_FILES[i]; + + MAX_COMPOSE_LEN = 0; + N_INDEX_STRIDE = 0; + + if (g_strstr_len (compose_file, -1, "am_ET") != NULL) { + g_printf ("%s\n", AM_ET_ARRAY); + continue; + } + else if (g_strstr_len (compose_file, -1, "el_GR") != NULL) { + g_printerr ("Generating ibus_compose_seqs_el_gr ...\n"); + g_printf ("static const guint16 ibus_compose_seqs_el_gr[] = {\n"); + } + else if (g_strstr_len (compose_file, -1, "fi_FI") != NULL) { + g_printerr ("Generating ibus_compose_seqs_fi_fi ...\n"); + g_printf ("static const guint16 ibus_compose_seqs_fi_fi[] = {\n"); + } + else if (g_strstr_len (compose_file, -1, "pt_BR") != NULL) { + g_printerr ("Generating ibus_compose_seqs_pt_br ...\n"); + g_printf ("static const guint16 ibus_compose_seqs_pt_br[] = {\n"); + } + else + g_assert_not_reached (); + + compose_table = parse_compose_file (compose_file); + compose_table = check_duplicated_compose (compose_table); + compose_table = check_uint16 (compose_table); + compose_table = format_for_gtk (compose_table); + compose_table = g_list_sort (compose_table, + (GCompareFunc) compare_array); + + print_compose_table (compose_table); + + g_printf ("};\n\n"); + + if (g_strstr_len (compose_file, -1, "el_GR") != NULL) + PRINT_IBUS_COMPOSE_TABLE_LOCALE (el_gr, MAX_COMPOSE_LEN); + else if (g_strstr_len (compose_file, -1, "fi_FI") != NULL) + PRINT_IBUS_COMPOSE_TABLE_LOCALE (fi_fi, MAX_COMPOSE_LEN); + else if (g_strstr_len (compose_file, -1, "pt_BR") != NULL) + PRINT_IBUS_COMPOSE_TABLE_LOCALE (pt_br, MAX_COMPOSE_LEN); + else + g_assert_not_reached (); + + g_list_free_full (compose_table, (GDestroyNotify) g_array_unref); + } + + print_compose_table_locale_list (); + + g_printf ("%s\n", FOOTER); + + g_hash_table_destroy (en_keysym_table); + + return 0; +} diff --git a/src/gtkimcontextsimpleseqs.h b/src/gtkimcontextsimpleseqs.h index df09defe..4198a3a7 100644 --- a/src/gtkimcontextsimpleseqs.h +++ b/src/gtkimcontextsimpleseqs.h @@ -65,30 +65,31 @@ */ static const guint16 gtk_compose_seqs_compact[] = { -IBUS_KEY_dead_stroke, 144, 232, 241, 241, 241, -IBUS_KEY_Greek_accentdieresis, 241, 245, 245, 245, 245, -IBUS_KEY_dead_grave, 245, 307, 394, 606, 606, -IBUS_KEY_dead_acute, 606, 670, 766, 1042, 1042, -IBUS_KEY_dead_circumflex, 1042, 1166, 1166, 1366, 1366, -IBUS_KEY_dead_tilde, 1366, 1450, 1513, 1653, 1653, -IBUS_KEY_dead_macron, 1653, 1699, 1699, 1771, 1771, -IBUS_KEY_dead_breve, 1771, 1821, 1821, 1845, 1845, -IBUS_KEY_dead_abovedot, 1845, 1875, 1878, 1910, 1910, -IBUS_KEY_dead_diaeresis, 1910, 1998, 2007, 2031, 2031, -IBUS_KEY_dead_abovering, 2031, 2041, 2041, 2041, 2041, -IBUS_KEY_dead_doubleacute, 2041, 2051, 2051, 2051, 2051, -IBUS_KEY_dead_caron, 2051, 2093, 2093, 2101, 2101, -IBUS_KEY_dead_cedilla, 2101, 2113, 2113, 2113, 2113, -IBUS_KEY_dead_ogonek, 2113, 2123, 2123, 2123, 2123, -IBUS_KEY_dead_iota, 2123, 2145, 2244, 2676, 3336, -IBUS_KEY_dead_voiced_sound, 3336, 3382, 3382, 3382, 3382, -IBUS_KEY_dead_semivoiced_sound, 3382, 3392, 3392, 3392, 3392, -IBUS_KEY_dead_belowdot, 3392, 3408, 3408, 3424, 3424, -IBUS_KEY_dead_hook, 3424, 3500, 3500, 3556, 3556, -IBUS_KEY_dead_horn, 3556, 3566, 3566, 3566, 3566, -IBUS_KEY_dead_psili, 3566, 3594, 3594, 3594, 3594, -IBUS_KEY_dead_dasia, 3594, 3626, 3626, 3626, 3626, -IBUS_KEY_Multi_key, 3626, 3626, 9566, 13274, 15139, +IBUS_KEY_dead_stroke, 150, 238, 250, 250, 250, +IBUS_KEY_Greek_accentdieresis, 250, 254, 254, 254, 254, +IBUS_KEY_dead_grave, 254, 316, 403, 615, 615, +IBUS_KEY_dead_acute, 615, 679, 775, 1051, 1051, +IBUS_KEY_dead_circumflex, 1051, 1175, 1175, 1375, 1375, +IBUS_KEY_dead_tilde, 1375, 1459, 1522, 1662, 1662, +IBUS_KEY_dead_macron, 1662, 1708, 1726, 1798, 1798, +IBUS_KEY_dead_breve, 1798, 1848, 1848, 1872, 1872, +IBUS_KEY_dead_abovedot, 1872, 1902, 1905, 1941, 1941, +IBUS_KEY_dead_diaeresis, 1941, 2029, 2038, 2062, 2062, +IBUS_KEY_dead_abovering, 2062, 2072, 2072, 2072, 2072, +IBUS_KEY_dead_doubleacute, 2072, 2082, 2082, 2082, 2082, +IBUS_KEY_dead_caron, 2082, 2124, 2124, 2132, 2132, +IBUS_KEY_dead_cedilla, 2132, 2144, 2144, 2144, 2144, +IBUS_KEY_dead_ogonek, 2144, 2154, 2154, 2154, 2154, +IBUS_KEY_dead_iota, 2154, 2176, 2275, 2707, 3367, +IBUS_KEY_dead_voiced_sound, 3367, 3413, 3413, 3413, 3413, +IBUS_KEY_dead_semivoiced_sound, 3413, 3423, 3423, 3423, 3423, +IBUS_KEY_dead_belowdot, 3423, 3439, 3439, 3455, 3455, +IBUS_KEY_dead_hook, 3455, 3533, 3536, 3592, 3592, +IBUS_KEY_dead_horn, 3592, 3602, 3602, 3602, 3602, +IBUS_KEY_dead_psili, 3602, 3630, 3630, 3630, 3630, +IBUS_KEY_dead_dasia, 3630, 3662, 3662, 3662, 3662, +IBUS_KEY_dead_greek, 3662, 3764, 3788, 3788, 3788, +IBUS_KEY_Multi_key, 3788, 3788, 10241, 13949, 15824, IBUS_KEY_space, 0x002F, IBUS_KEY_2, 0x01BB, IBUS_KEY_A, 0x023A, @@ -136,6 +137,7 @@ IBUS_KEY_greaterthanequal, 0x2271, IBUS_KEY_dead_acute, IBUS_KEY_O, 0x01FE, IBUS_KEY_dead_acute, IBUS_KEY_o, 0x01FF, IBUS_KEY_dead_abovedot, IBUS_KEY_j, 0x025F, +IBUS_KEY_dead_greek, IBUS_KEY_r, 0x03FC, IBUS_KEY_Greek_iota, 0x0390, IBUS_KEY_Greek_upsilon, 0x03B0, IBUS_KEY_space, 0x0060, @@ -617,6 +619,12 @@ IBUS_KEY_Greek_alpha, 0x1FB1, IBUS_KEY_Greek_iota, 0x1FD1, IBUS_KEY_Greek_upsilon, 0x1FE1, IBUS_KEY_dead_macron, 0x00AF, +IBUS_KEY_dead_greek, IBUS_KEY_A, 0x1FB9, +IBUS_KEY_dead_greek, IBUS_KEY_I, 0x1FD9, +IBUS_KEY_dead_greek, IBUS_KEY_U, 0x1FE9, +IBUS_KEY_dead_greek, IBUS_KEY_a, 0x1FB1, +IBUS_KEY_dead_greek, IBUS_KEY_i, 0x1FD1, +IBUS_KEY_dead_greek, IBUS_KEY_u, 0x1FE1, IBUS_KEY_Multi_key, IBUS_KEY_exclam, IBUS_KEY_L, 0x1E38, IBUS_KEY_Multi_key, IBUS_KEY_exclam, IBUS_KEY_R, 0x1E5C, IBUS_KEY_Multi_key, IBUS_KEY_exclam, IBUS_KEY_l, 0x1E39, @@ -688,6 +696,7 @@ IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_S, 0x1E64, IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_s, 0x1E65, IBUS_KEY_Multi_key, IBUS_KEY_c, IBUS_KEY_S, 0x1E66, IBUS_KEY_Multi_key, IBUS_KEY_c, IBUS_KEY_s, 0x1E67, +IBUS_KEY_Multi_key, IBUS_KEY_f, IBUS_KEY_s, 0x1E9B, IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_S, 0x1E64, IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_s, 0x1E65, IBUS_KEY_space, 0x0022, @@ -1136,6 +1145,7 @@ IBUS_KEY_m, 0x0271, IBUS_KEY_n, 0x0272, IBUS_KEY_p, 0x01A5, IBUS_KEY_q, 0x02A0, +IBUS_KEY_r, 0x027C, IBUS_KEY_s, 0x0282, IBUS_KEY_t, 0x01AD, IBUS_KEY_v, 0x028B, @@ -1149,6 +1159,7 @@ IBUS_KEY_abreve, 0x1EB3, 0x025F, 0x0284, 0x0279, 0x027B, IBUS_KEY_dead_hook, 0x0309, +IBUS_KEY_dead_greek, IBUS_KEY_U, 0x03D2, IBUS_KEY_Multi_key, IBUS_KEY_plus, IBUS_KEY_O, 0x1EDE, IBUS_KEY_Multi_key, IBUS_KEY_plus, IBUS_KEY_U, 0x1EEC, IBUS_KEY_Multi_key, IBUS_KEY_plus, IBUS_KEY_o, 0x1EDF, @@ -1198,6 +1209,65 @@ IBUS_KEY_Greek_omicron, 0x1F41, IBUS_KEY_Greek_rho, 0x1FE5, IBUS_KEY_Greek_upsilon, 0x1F51, IBUS_KEY_Greek_omega, 0x1F61, +IBUS_KEY_space, 0x00B5, +IBUS_KEY_A, 0x0391, +IBUS_KEY_B, 0x0392, +IBUS_KEY_D, 0x0394, +IBUS_KEY_E, 0x0395, +IBUS_KEY_F, 0x03A6, +IBUS_KEY_G, 0x0393, +IBUS_KEY_H, 0x0397, +IBUS_KEY_I, 0x0399, +IBUS_KEY_J, 0x0398, +IBUS_KEY_K, 0x039A, +IBUS_KEY_L, 0x039B, +IBUS_KEY_M, 0x039C, +IBUS_KEY_N, 0x039D, +IBUS_KEY_O, 0x039F, +IBUS_KEY_P, 0x03A0, +IBUS_KEY_Q, 0x03A7, +IBUS_KEY_R, 0x03A1, +IBUS_KEY_S, 0x03A3, +IBUS_KEY_T, 0x03A4, +IBUS_KEY_U, 0x03A5, +IBUS_KEY_W, 0x03A9, +IBUS_KEY_X, 0x039E, +IBUS_KEY_Y, 0x03A8, +IBUS_KEY_Z, 0x0396, +IBUS_KEY_a, 0x03B1, +IBUS_KEY_b, 0x03B2, +IBUS_KEY_d, 0x03B4, +IBUS_KEY_e, 0x03B5, +IBUS_KEY_f, 0x03C6, +IBUS_KEY_g, 0x03B3, +IBUS_KEY_h, 0x03B7, +IBUS_KEY_i, 0x03B9, +IBUS_KEY_j, 0x03B8, +IBUS_KEY_k, 0x03BA, +IBUS_KEY_l, 0x03BB, +IBUS_KEY_m, 0x03BC, +IBUS_KEY_n, 0x03BD, +IBUS_KEY_o, 0x03BF, +IBUS_KEY_p, 0x03C0, +IBUS_KEY_q, 0x03C7, +IBUS_KEY_r, 0x03C1, +IBUS_KEY_s, 0x03C3, +IBUS_KEY_t, 0x03C4, +IBUS_KEY_u, 0x03C5, +IBUS_KEY_w, 0x03C9, +IBUS_KEY_x, 0x03BE, +IBUS_KEY_y, 0x03C8, +IBUS_KEY_z, 0x03B6, +IBUS_KEY_nobreakspace, 0x00B5, +IBUS_KEY_dead_greek, 0x00B5, +IBUS_KEY_dead_stroke, IBUS_KEY_r, 0x03FC, +IBUS_KEY_dead_macron, IBUS_KEY_A, 0x1FB9, +IBUS_KEY_dead_macron, IBUS_KEY_I, 0x1FD9, +IBUS_KEY_dead_macron, IBUS_KEY_U, 0x1FE9, +IBUS_KEY_dead_macron, IBUS_KEY_a, 0x1FB1, +IBUS_KEY_dead_macron, IBUS_KEY_i, 0x1FD1, +IBUS_KEY_dead_macron, IBUS_KEY_u, 0x1FE1, +IBUS_KEY_dead_hook, IBUS_KEY_U, 0x03D2, IBUS_KEY_space, IBUS_KEY_space, 0x00A0, IBUS_KEY_space, IBUS_KEY_apostrophe, 0x0027, IBUS_KEY_space, IBUS_KEY_parenleft, 0x02D8, @@ -1255,7 +1325,6 @@ IBUS_KEY_exclam, IBUS_KEY_z, 0x1E93, IBUS_KEY_quotedbl, IBUS_KEY_quotedbl, 0x00A8, IBUS_KEY_quotedbl, IBUS_KEY_apostrophe, 0x0344, IBUS_KEY_quotedbl, IBUS_KEY_comma, 0x201E, -IBUS_KEY_quotedbl, IBUS_KEY_slash, 0x301E, IBUS_KEY_quotedbl, IBUS_KEY_less, 0x201C, IBUS_KEY_quotedbl, IBUS_KEY_greater, 0x201D, IBUS_KEY_quotedbl, IBUS_KEY_A, 0x00C4, @@ -1267,7 +1336,6 @@ IBUS_KEY_quotedbl, IBUS_KEY_U, 0x00DC, IBUS_KEY_quotedbl, IBUS_KEY_W, 0x1E84, IBUS_KEY_quotedbl, IBUS_KEY_X, 0x1E8C, IBUS_KEY_quotedbl, IBUS_KEY_Y, 0x0178, -IBUS_KEY_quotedbl, IBUS_KEY_backslash, 0x301D, IBUS_KEY_quotedbl, IBUS_KEY_a, 0x00E4, IBUS_KEY_quotedbl, IBUS_KEY_e, 0x00EB, IBUS_KEY_quotedbl, IBUS_KEY_h, 0x1E27, @@ -1316,8 +1384,12 @@ IBUS_KEY_quotedbl, IBUS_KEY_Greek_iota, 0x03CA, IBUS_KEY_quotedbl, IBUS_KEY_Greek_upsilon, 0x03CB, IBUS_KEY_quotedbl, IBUS_KEY_dead_acute, 0x0344, IBUS_KEY_numbersign, IBUS_KEY_numbersign, 0x266F, +IBUS_KEY_numbersign, IBUS_KEY_E, 0x266B, +IBUS_KEY_numbersign, IBUS_KEY_S, 0x266C, IBUS_KEY_numbersign, IBUS_KEY_b, 0x266D, +IBUS_KEY_numbersign, IBUS_KEY_e, 0x266A, IBUS_KEY_numbersign, IBUS_KEY_f, 0x266E, +IBUS_KEY_numbersign, IBUS_KEY_q, 0x2669, IBUS_KEY_percent, IBUS_KEY_o, 0x2030, IBUS_KEY_apostrophe, IBUS_KEY_space, 0x0027, IBUS_KEY_apostrophe, IBUS_KEY_apostrophe, 0x00B4, @@ -1433,6 +1505,7 @@ IBUS_KEY_apostrophe, 0x1F60, 0x1F64, IBUS_KEY_apostrophe, 0x1F61, 0x1F65, IBUS_KEY_apostrophe, 0x1F68, 0x1F6C, IBUS_KEY_apostrophe, 0x1F69, 0x1F6D, +IBUS_KEY_apostrophe, 0x2395, 0x235E, IBUS_KEY_parenleft, IBUS_KEY_space, 0x02D8, IBUS_KEY_parenleft, IBUS_KEY_parenleft, 0x005B, IBUS_KEY_parenleft, IBUS_KEY_minus, 0x007B, @@ -1479,6 +1552,8 @@ IBUS_KEY_asterisk, IBUS_KEY_A, 0x00C5, IBUS_KEY_asterisk, IBUS_KEY_U, 0x016E, IBUS_KEY_asterisk, IBUS_KEY_a, 0x00E5, IBUS_KEY_asterisk, IBUS_KEY_u, 0x016F, +IBUS_KEY_asterisk, IBUS_KEY_diaeresis, 0x2363, +IBUS_KEY_asterisk, IBUS_KEY_emopencircle, 0x235F, IBUS_KEY_plus, IBUS_KEY_plus, 0x0023, IBUS_KEY_plus, IBUS_KEY_minus, 0x00B1, IBUS_KEY_plus, IBUS_KEY_O, 0x01A0, @@ -1523,6 +1598,7 @@ IBUS_KEY_minus, IBUS_KEY_parenleft, 0x007B, IBUS_KEY_minus, IBUS_KEY_parenright, 0x007D, IBUS_KEY_minus, IBUS_KEY_plus, 0x00B1, IBUS_KEY_minus, IBUS_KEY_comma, 0x00AC, +IBUS_KEY_minus, IBUS_KEY_slash, 0x233F, IBUS_KEY_minus, IBUS_KEY_colon, 0x00F7, IBUS_KEY_minus, IBUS_KEY_greater, 0x2192, IBUS_KEY_minus, IBUS_KEY_A, 0x00C3, @@ -1534,6 +1610,7 @@ IBUS_KEY_minus, IBUS_KEY_N, 0x00D1, IBUS_KEY_minus, IBUS_KEY_O, 0x00D5, IBUS_KEY_minus, IBUS_KEY_U, 0x016A, IBUS_KEY_minus, IBUS_KEY_Y, 0x00A5, +IBUS_KEY_minus, IBUS_KEY_backslash, 0x2340, IBUS_KEY_minus, IBUS_KEY_asciicircum, 0x00AF, IBUS_KEY_minus, IBUS_KEY_a, 0x0101, IBUS_KEY_minus, IBUS_KEY_d, 0x0111, @@ -1544,8 +1621,12 @@ IBUS_KEY_minus, IBUS_KEY_n, 0x00F1, IBUS_KEY_minus, IBUS_KEY_o, 0x014D, IBUS_KEY_minus, IBUS_KEY_u, 0x016B, IBUS_KEY_minus, IBUS_KEY_y, 0x00A5, +IBUS_KEY_minus, 0x2191, 0x234F, +IBUS_KEY_minus, 0x2193, 0x2356, +IBUS_KEY_minus, IBUS_KEY_emopencircle, 0x2296, IBUS_KEY_period, IBUS_KEY_minus, 0x00B7, IBUS_KEY_period, IBUS_KEY_period, 0x2026, +IBUS_KEY_period, IBUS_KEY_colon, 0x2235, IBUS_KEY_period, IBUS_KEY_less, 0x2039, IBUS_KEY_period, IBUS_KEY_equal, 0x2022, IBUS_KEY_period, IBUS_KEY_greater, 0x203A, @@ -1597,6 +1678,8 @@ IBUS_KEY_period, IBUS_KEY_sacute, 0x1E65, IBUS_KEY_period, IBUS_KEY_scaron, 0x1E67, IBUS_KEY_period, 0x1E62, 0x1E68, IBUS_KEY_period, 0x1E63, 0x1E69, +IBUS_KEY_period, IBUS_KEY_emopencircle, 0x2299, +IBUS_KEY_slash, IBUS_KEY_minus, 0x233F, IBUS_KEY_slash, IBUS_KEY_slash, 0x005C, IBUS_KEY_slash, IBUS_KEY_less, 0x005C, IBUS_KEY_slash, IBUS_KEY_equal, 0x2260, @@ -1622,6 +1705,7 @@ IBUS_KEY_slash, IBUS_KEY_m, 0x20A5, IBUS_KEY_slash, IBUS_KEY_o, 0x00F8, IBUS_KEY_slash, IBUS_KEY_t, 0x0167, IBUS_KEY_slash, IBUS_KEY_u, 0x00B5, +IBUS_KEY_slash, IBUS_KEY_v, 0x221A, IBUS_KEY_slash, IBUS_KEY_z, 0x01B6, IBUS_KEY_slash, 0x0294, 0x02A1, IBUS_KEY_slash, 0x04AE, 0x04B0, @@ -1633,7 +1717,9 @@ IBUS_KEY_slash, IBUS_KEY_Cyrillic_KA, 0x049E, IBUS_KEY_slash, IBUS_KEY_leftarrow, 0x219A, IBUS_KEY_slash, IBUS_KEY_rightarrow, 0x219B, IBUS_KEY_slash, 0x2194, 0x21AE, +IBUS_KEY_slash, 0x2395, 0x2341, IBUS_KEY_0, IBUS_KEY_asterisk, 0x00B0, +IBUS_KEY_0, IBUS_KEY_3, 0x2189, IBUS_KEY_0, IBUS_KEY_C, 0x00A9, IBUS_KEY_0, IBUS_KEY_S, 0x00A7, IBUS_KEY_0, IBUS_KEY_X, 0x00A4, @@ -1641,12 +1727,15 @@ IBUS_KEY_0, IBUS_KEY_asciicircum, 0x00B0, IBUS_KEY_0, IBUS_KEY_c, 0x00A9, IBUS_KEY_0, IBUS_KEY_s, 0x00A7, IBUS_KEY_0, IBUS_KEY_x, 0x00A4, +IBUS_KEY_0, IBUS_KEY_asciitilde, 0x236C, IBUS_KEY_1, IBUS_KEY_2, 0x00BD, IBUS_KEY_1, IBUS_KEY_3, 0x2153, IBUS_KEY_1, IBUS_KEY_4, 0x00BC, IBUS_KEY_1, IBUS_KEY_5, 0x2155, IBUS_KEY_1, IBUS_KEY_6, 0x2159, +IBUS_KEY_1, IBUS_KEY_7, 0x2150, IBUS_KEY_1, IBUS_KEY_8, 0x215B, +IBUS_KEY_1, IBUS_KEY_9, 0x2151, IBUS_KEY_1, IBUS_KEY_S, 0x00B9, IBUS_KEY_1, IBUS_KEY_asciicircum, 0x00B9, IBUS_KEY_1, IBUS_KEY_s, 0x00B9, @@ -1665,14 +1754,18 @@ IBUS_KEY_4, IBUS_KEY_5, 0x2158, IBUS_KEY_5, IBUS_KEY_6, 0x215A, IBUS_KEY_5, IBUS_KEY_8, 0x215D, IBUS_KEY_7, IBUS_KEY_8, 0x215E, +IBUS_KEY_8, IBUS_KEY_8, 0x221E, IBUS_KEY_colon, IBUS_KEY_parenleft, 0x2639, IBUS_KEY_colon, IBUS_KEY_parenright, 0x263A, IBUS_KEY_colon, IBUS_KEY_minus, 0x00F7, +IBUS_KEY_colon, IBUS_KEY_period, 0x2234, +IBUS_KEY_colon, 0x2395, 0x2360, IBUS_KEY_semicolon, IBUS_KEY_A, 0x0104, IBUS_KEY_semicolon, IBUS_KEY_E, 0x0118, IBUS_KEY_semicolon, IBUS_KEY_I, 0x012E, IBUS_KEY_semicolon, IBUS_KEY_O, 0x01EA, IBUS_KEY_semicolon, IBUS_KEY_U, 0x0172, +IBUS_KEY_semicolon, IBUS_KEY_underscore, 0x236E, IBUS_KEY_semicolon, IBUS_KEY_a, 0x0105, IBUS_KEY_semicolon, IBUS_KEY_e, 0x0119, IBUS_KEY_semicolon, IBUS_KEY_i, 0x012F, @@ -1686,6 +1779,7 @@ IBUS_KEY_less, IBUS_KEY_slash, 0x005C, IBUS_KEY_less, IBUS_KEY_3, 0x2665, IBUS_KEY_less, IBUS_KEY_less, 0x00AB, IBUS_KEY_less, IBUS_KEY_equal, 0x2264, +IBUS_KEY_less, IBUS_KEY_greater, 0x22C4, IBUS_KEY_less, IBUS_KEY_C, 0x010C, IBUS_KEY_less, IBUS_KEY_D, 0x010E, IBUS_KEY_less, IBUS_KEY_E, 0x011A, @@ -1695,6 +1789,7 @@ IBUS_KEY_less, IBUS_KEY_R, 0x0158, IBUS_KEY_less, IBUS_KEY_S, 0x0160, IBUS_KEY_less, IBUS_KEY_T, 0x0164, IBUS_KEY_less, IBUS_KEY_Z, 0x017D, +IBUS_KEY_less, IBUS_KEY_underscore, 0x2264, IBUS_KEY_less, IBUS_KEY_c, 0x010D, IBUS_KEY_less, IBUS_KEY_d, 0x010F, IBUS_KEY_less, IBUS_KEY_e, 0x011B, @@ -1705,6 +1800,7 @@ IBUS_KEY_less, IBUS_KEY_s, 0x0161, IBUS_KEY_less, IBUS_KEY_t, 0x0165, IBUS_KEY_less, IBUS_KEY_z, 0x017E, IBUS_KEY_less, 0x0338, 0x226E, +IBUS_KEY_less, 0x2395, 0x2343, IBUS_KEY_equal, IBUS_KEY_slash, 0x2260, IBUS_KEY_equal, IBUS_KEY_C, 0x20AC, IBUS_KEY_equal, IBUS_KEY_E, 0x20AC, @@ -1714,7 +1810,9 @@ IBUS_KEY_equal, IBUS_KEY_O, 0x0150, IBUS_KEY_equal, IBUS_KEY_U, 0x0170, IBUS_KEY_equal, IBUS_KEY_W, 0x20A9, IBUS_KEY_equal, IBUS_KEY_Y, 0x00A5, +IBUS_KEY_equal, IBUS_KEY_underscore, 0x2261, IBUS_KEY_equal, IBUS_KEY_c, 0x20AC, +IBUS_KEY_equal, IBUS_KEY_d, 0x20AB, IBUS_KEY_equal, IBUS_KEY_e, 0x20AC, IBUS_KEY_equal, IBUS_KEY_l, 0x00A3, IBUS_KEY_equal, IBUS_KEY_o, 0x0151, @@ -1725,9 +1823,11 @@ IBUS_KEY_equal, IBUS_KEY_Cyrillic_u, 0x04F3, IBUS_KEY_equal, IBUS_KEY_Cyrillic_IE, 0x20AC, IBUS_KEY_equal, IBUS_KEY_Cyrillic_ES, 0x20AC, IBUS_KEY_equal, IBUS_KEY_Cyrillic_U, 0x04F2, +IBUS_KEY_equal, 0x2395, 0x2338, IBUS_KEY_greater, IBUS_KEY_space, 0x005E, IBUS_KEY_greater, IBUS_KEY_quotedbl, 0x201D, IBUS_KEY_greater, IBUS_KEY_apostrophe, 0x2019, +IBUS_KEY_greater, IBUS_KEY_less, 0x22C4, IBUS_KEY_greater, IBUS_KEY_equal, 0x2265, IBUS_KEY_greater, IBUS_KEY_greater, 0x00BB, IBUS_KEY_greater, IBUS_KEY_A, 0x00C2, @@ -1735,12 +1835,15 @@ IBUS_KEY_greater, IBUS_KEY_E, 0x00CA, IBUS_KEY_greater, IBUS_KEY_I, 0x00CE, IBUS_KEY_greater, IBUS_KEY_O, 0x00D4, IBUS_KEY_greater, IBUS_KEY_U, 0x00DB, +IBUS_KEY_greater, IBUS_KEY_underscore, 0x2265, IBUS_KEY_greater, IBUS_KEY_a, 0x00E2, IBUS_KEY_greater, IBUS_KEY_e, 0x00EA, IBUS_KEY_greater, IBUS_KEY_i, 0x00EE, IBUS_KEY_greater, IBUS_KEY_o, 0x00F4, IBUS_KEY_greater, IBUS_KEY_u, 0x00FB, +IBUS_KEY_greater, IBUS_KEY_diaeresis, 0x2369, IBUS_KEY_greater, 0x0338, 0x226F, +IBUS_KEY_greater, 0x2395, 0x2344, IBUS_KEY_question, IBUS_KEY_exclam, 0x2E18, IBUS_KEY_question, IBUS_KEY_question, 0x00BF, IBUS_KEY_question, IBUS_KEY_A, 0x1EA2, @@ -1763,6 +1866,7 @@ IBUS_KEY_question, IBUS_KEY_ecircumflex, 0x1EC3, IBUS_KEY_question, IBUS_KEY_ocircumflex, 0x1ED5, IBUS_KEY_question, IBUS_KEY_Abreve, 0x1EB2, IBUS_KEY_question, IBUS_KEY_abreve, 0x1EB3, +IBUS_KEY_question, 0x2395, 0x2370, IBUS_KEY_A, IBUS_KEY_quotedbl, 0x00C4, IBUS_KEY_A, IBUS_KEY_apostrophe, 0x00C1, IBUS_KEY_A, IBUS_KEY_parenleft, 0x0102, @@ -1792,6 +1896,7 @@ IBUS_KEY_C, IBUS_KEY_O, 0x00A9, IBUS_KEY_C, IBUS_KEY_o, 0x00A9, IBUS_KEY_C, IBUS_KEY_r, 0x20A2, IBUS_KEY_C, IBUS_KEY_bar, 0x00A2, +IBUS_KEY_D, IBUS_KEY_comma, 0x1E10, IBUS_KEY_D, IBUS_KEY_minus, 0x0110, IBUS_KEY_D, IBUS_KEY_period, 0x1E0A, IBUS_KEY_D, IBUS_KEY_less, 0x010E, @@ -1810,21 +1915,26 @@ IBUS_KEY_E, IBUS_KEY_grave, 0x00C8, IBUS_KEY_E, IBUS_KEY_diaeresis, 0x00CB, IBUS_KEY_E, IBUS_KEY_acute, 0x00C9, IBUS_KEY_F, IBUS_KEY_period, 0x1E1E, +IBUS_KEY_F, IBUS_KEY_i, 0xFB03, +IBUS_KEY_F, IBUS_KEY_l, 0xFB04, IBUS_KEY_F, IBUS_KEY_r, 0x20A3, IBUS_KEY_G, IBUS_KEY_parenleft, 0x011E, IBUS_KEY_G, IBUS_KEY_comma, 0x0122, IBUS_KEY_G, IBUS_KEY_period, 0x0120, IBUS_KEY_G, IBUS_KEY_U, 0x011E, IBUS_KEY_G, IBUS_KEY_breve, 0x011E, +IBUS_KEY_H, IBUS_KEY_comma, 0x1E28, IBUS_KEY_I, IBUS_KEY_quotedbl, 0x00CF, IBUS_KEY_I, IBUS_KEY_apostrophe, 0x00CD, IBUS_KEY_I, IBUS_KEY_comma, 0x012E, IBUS_KEY_I, IBUS_KEY_minus, 0x012A, IBUS_KEY_I, IBUS_KEY_period, 0x0130, IBUS_KEY_I, IBUS_KEY_greater, 0x00CE, +IBUS_KEY_I, IBUS_KEY_J, 0x0132, IBUS_KEY_I, IBUS_KEY_asciicircum, 0x00CE, IBUS_KEY_I, IBUS_KEY_underscore, 0x012A, IBUS_KEY_I, IBUS_KEY_grave, 0x00CC, +IBUS_KEY_I, IBUS_KEY_j, 0x0132, IBUS_KEY_I, IBUS_KEY_asciitilde, 0x0128, IBUS_KEY_I, IBUS_KEY_diaeresis, 0x00CF, IBUS_KEY_I, IBUS_KEY_acute, 0x00CD, @@ -1889,6 +1999,7 @@ IBUS_KEY_S, IBUS_KEY_O, 0x00A7, IBUS_KEY_S, IBUS_KEY_S, 0x1E9E, IBUS_KEY_S, IBUS_KEY_m, 0x2120, IBUS_KEY_S, IBUS_KEY_cedilla, 0x015E, +IBUS_KEY_T, IBUS_KEY_comma, 0x0162, IBUS_KEY_T, IBUS_KEY_minus, 0x0166, IBUS_KEY_T, IBUS_KEY_period, 0x1E6A, IBUS_KEY_T, IBUS_KEY_slash, 0x0166, @@ -1957,6 +2068,11 @@ IBUS_KEY_Y, IBUS_KEY_acute, 0x00DD, IBUS_KEY_Z, IBUS_KEY_apostrophe, 0x0179, IBUS_KEY_Z, IBUS_KEY_period, 0x017B, IBUS_KEY_Z, IBUS_KEY_less, 0x017D, +IBUS_KEY_bracketleft, IBUS_KEY_bracketright, 0x2337, +IBUS_KEY_backslash, IBUS_KEY_minus, 0x2340, +IBUS_KEY_backslash, 0x2395, 0x2342, +IBUS_KEY_backslash, IBUS_KEY_emopencircle, 0x2349, +IBUS_KEY_bracketright, IBUS_KEY_bracketleft, 0x2337, IBUS_KEY_asciicircum, IBUS_KEY_space, 0x005E, IBUS_KEY_asciicircum, IBUS_KEY_parenleft, 0x207D, IBUS_KEY_asciicircum, IBUS_KEY_parenright, 0x207E, @@ -2036,6 +2152,7 @@ IBUS_KEY_asciicircum, IBUS_KEY_KP_7, 0x2077, IBUS_KEY_asciicircum, IBUS_KEY_KP_8, 0x2078, IBUS_KEY_asciicircum, IBUS_KEY_KP_9, 0x2079, IBUS_KEY_asciicircum, IBUS_KEY_KP_Equal, 0x207C, +IBUS_KEY_underscore, IBUS_KEY_apostrophe, 0x2358, IBUS_KEY_underscore, IBUS_KEY_parenleft, 0x208D, IBUS_KEY_underscore, IBUS_KEY_parenright, 0x208E, IBUS_KEY_underscore, IBUS_KEY_plus, 0x208A, @@ -2049,7 +2166,9 @@ IBUS_KEY_underscore, IBUS_KEY_6, 0x2086, IBUS_KEY_underscore, IBUS_KEY_7, 0x2087, IBUS_KEY_underscore, IBUS_KEY_8, 0x2088, IBUS_KEY_underscore, IBUS_KEY_9, 0x2089, +IBUS_KEY_underscore, IBUS_KEY_less, 0x2264, IBUS_KEY_underscore, IBUS_KEY_equal, 0x208C, +IBUS_KEY_underscore, IBUS_KEY_greater, 0x2265, IBUS_KEY_underscore, IBUS_KEY_A, 0x0100, IBUS_KEY_underscore, IBUS_KEY_E, 0x0112, IBUS_KEY_underscore, IBUS_KEY_G, 0x1E20, @@ -2096,7 +2215,19 @@ IBUS_KEY_underscore, 0x1E36, 0x1E38, IBUS_KEY_underscore, 0x1E37, 0x1E39, IBUS_KEY_underscore, 0x1E5A, 0x1E5C, IBUS_KEY_underscore, 0x1E5B, 0x1E5D, +IBUS_KEY_underscore, 0x2206, 0x2359, +IBUS_KEY_underscore, 0x220A, 0x2377, IBUS_KEY_underscore, 0x2212, 0x208B, +IBUS_KEY_underscore, 0x2218, 0x235B, +IBUS_KEY_underscore, 0x2260, 0x2262, +IBUS_KEY_underscore, 0x2282, 0x2286, +IBUS_KEY_underscore, 0x2283, 0x2287, +IBUS_KEY_underscore, IBUS_KEY_downtack, 0x234A, +IBUS_KEY_underscore, 0x22C4, 0x235A, +IBUS_KEY_underscore, 0x2373, 0x2378, +IBUS_KEY_underscore, 0x2375, 0x2379, +IBUS_KEY_underscore, 0x237A, 0x2376, +IBUS_KEY_underscore, IBUS_KEY_emopencircle, 0x235C, IBUS_KEY_underscore, IBUS_KEY_KP_Space, 0x2082, IBUS_KEY_underscore, IBUS_KEY_KP_Add, 0x208A, IBUS_KEY_underscore, IBUS_KEY_KP_0, 0x2080, @@ -2279,12 +2410,13 @@ IBUS_KEY_c, IBUS_KEY_z, 0x017E, IBUS_KEY_c, IBUS_KEY_bar, 0x00A2, IBUS_KEY_c, IBUS_KEY_Udiaeresis, 0x01D9, IBUS_KEY_c, IBUS_KEY_udiaeresis, 0x01DA, -IBUS_KEY_c, 0x01B7, 0x01EE, -IBUS_KEY_c, 0x0292, 0x01EF, -IBUS_KEY_d, IBUS_KEY_minus, 0x20AB, +IBUS_KEY_d, IBUS_KEY_comma, 0x1E11, +IBUS_KEY_d, IBUS_KEY_minus, 0x0111, IBUS_KEY_d, IBUS_KEY_period, 0x1E0B, IBUS_KEY_d, IBUS_KEY_less, 0x010F, +IBUS_KEY_d, IBUS_KEY_equal, 0x20AB, IBUS_KEY_d, IBUS_KEY_h, 0x00F0, +IBUS_KEY_d, IBUS_KEY_i, 0x2300, IBUS_KEY_e, IBUS_KEY_quotedbl, 0x00EB, IBUS_KEY_e, IBUS_KEY_apostrophe, 0x00E9, IBUS_KEY_e, IBUS_KEY_comma, 0x0119, @@ -2301,21 +2433,27 @@ IBUS_KEY_e, IBUS_KEY_diaeresis, 0x00EB, IBUS_KEY_e, IBUS_KEY_acute, 0x00E9, IBUS_KEY_f, IBUS_KEY_period, 0x1E1F, IBUS_KEY_f, IBUS_KEY_S, 0x017F, +IBUS_KEY_f, IBUS_KEY_f, 0xFB00, +IBUS_KEY_f, IBUS_KEY_i, 0xFB01, +IBUS_KEY_f, IBUS_KEY_l, 0xFB02, IBUS_KEY_f, IBUS_KEY_s, 0x017F, IBUS_KEY_g, IBUS_KEY_parenleft, 0x011F, IBUS_KEY_g, IBUS_KEY_comma, 0x0123, IBUS_KEY_g, IBUS_KEY_period, 0x0121, IBUS_KEY_g, IBUS_KEY_U, 0x011F, IBUS_KEY_g, IBUS_KEY_breve, 0x011F, +IBUS_KEY_h, IBUS_KEY_comma, 0x1E29, IBUS_KEY_i, IBUS_KEY_quotedbl, 0x00EF, IBUS_KEY_i, IBUS_KEY_apostrophe, 0x00ED, IBUS_KEY_i, IBUS_KEY_comma, 0x012F, IBUS_KEY_i, IBUS_KEY_minus, 0x012B, IBUS_KEY_i, IBUS_KEY_period, 0x0131, +IBUS_KEY_i, IBUS_KEY_semicolon, 0x012F, IBUS_KEY_i, IBUS_KEY_greater, 0x00EE, IBUS_KEY_i, IBUS_KEY_asciicircum, 0x00EE, IBUS_KEY_i, IBUS_KEY_underscore, 0x012B, IBUS_KEY_i, IBUS_KEY_grave, 0x00EC, +IBUS_KEY_i, IBUS_KEY_j, 0x0133, IBUS_KEY_i, IBUS_KEY_asciitilde, 0x0129, IBUS_KEY_i, IBUS_KEY_diaeresis, 0x00EF, IBUS_KEY_i, IBUS_KEY_acute, 0x00ED, @@ -2382,6 +2520,7 @@ IBUS_KEY_s, IBUS_KEY_m, 0x2120, IBUS_KEY_s, IBUS_KEY_o, 0x00A7, IBUS_KEY_s, IBUS_KEY_s, 0x00DF, IBUS_KEY_s, IBUS_KEY_cedilla, 0x015F, +IBUS_KEY_t, IBUS_KEY_comma, 0x0163, IBUS_KEY_t, IBUS_KEY_minus, 0x0167, IBUS_KEY_t, IBUS_KEY_period, 0x1E6B, IBUS_KEY_t, IBUS_KEY_slash, 0x0167, @@ -2403,6 +2542,7 @@ IBUS_KEY_u, IBUS_KEY_u, 0x016D, IBUS_KEY_u, IBUS_KEY_asciitilde, 0x0169, IBUS_KEY_u, IBUS_KEY_diaeresis, 0x00FC, IBUS_KEY_u, IBUS_KEY_acute, 0x00FA, +IBUS_KEY_v, IBUS_KEY_slash, 0x221A, IBUS_KEY_v, IBUS_KEY_Z, 0x017D, IBUS_KEY_v, IBUS_KEY_l, 0x007C, IBUS_KEY_v, IBUS_KEY_z, 0x017E, @@ -2421,9 +2561,19 @@ IBUS_KEY_y, IBUS_KEY_acute, 0x00FD, IBUS_KEY_z, IBUS_KEY_apostrophe, 0x017A, IBUS_KEY_z, IBUS_KEY_period, 0x017C, IBUS_KEY_z, IBUS_KEY_less, 0x017E, +IBUS_KEY_braceleft, IBUS_KEY_braceright, 0x2205, IBUS_KEY_bar, IBUS_KEY_C, 0x00A2, IBUS_KEY_bar, IBUS_KEY_c, 0x00A2, +IBUS_KEY_bar, IBUS_KEY_asciitilde, 0x236D, +IBUS_KEY_bar, 0x2190, 0x2345, +IBUS_KEY_bar, 0x2192, 0x2346, +IBUS_KEY_bar, 0x2206, 0x234B, +IBUS_KEY_bar, 0x2207, 0x2352, +IBUS_KEY_bar, IBUS_KEY_union, 0x2366, +IBUS_KEY_bar, 0x2282, 0x2367, +IBUS_KEY_bar, IBUS_KEY_emopencircle, 0x233D, IBUS_KEY_asciitilde, IBUS_KEY_space, 0x007E, +IBUS_KEY_asciitilde, IBUS_KEY_0, 0x236C, IBUS_KEY_asciitilde, IBUS_KEY_A, 0x00C3, IBUS_KEY_asciitilde, IBUS_KEY_E, 0x1EBC, IBUS_KEY_asciitilde, IBUS_KEY_I, 0x0128, @@ -2440,6 +2590,8 @@ IBUS_KEY_asciitilde, IBUS_KEY_o, 0x00F5, IBUS_KEY_asciitilde, IBUS_KEY_u, 0x0169, IBUS_KEY_asciitilde, IBUS_KEY_v, 0x1E7D, IBUS_KEY_asciitilde, IBUS_KEY_y, 0x1EF9, +IBUS_KEY_asciitilde, IBUS_KEY_bar, 0x236D, +IBUS_KEY_asciitilde, IBUS_KEY_diaeresis, 0x2368, IBUS_KEY_asciitilde, IBUS_KEY_Acircumflex, 0x1EAA, IBUS_KEY_asciitilde, IBUS_KEY_Ecircumflex, 0x1EC4, IBUS_KEY_asciitilde, IBUS_KEY_Ocircumflex, 0x1ED6, @@ -2474,7 +2626,12 @@ IBUS_KEY_asciitilde, 0x1F60, 0x1F66, IBUS_KEY_asciitilde, 0x1F61, 0x1F67, IBUS_KEY_asciitilde, 0x1F68, 0x1F6E, IBUS_KEY_asciitilde, 0x1F69, 0x1F6F, +IBUS_KEY_asciitilde, 0x2207, 0x236B, +IBUS_KEY_asciitilde, 0x2227, 0x2372, +IBUS_KEY_asciitilde, 0x2228, 0x2371, IBUS_KEY_diaeresis, IBUS_KEY_apostrophe, 0x0385, +IBUS_KEY_diaeresis, IBUS_KEY_asterisk, 0x2363, +IBUS_KEY_diaeresis, IBUS_KEY_greater, 0x2369, IBUS_KEY_diaeresis, IBUS_KEY_A, 0x00C4, IBUS_KEY_diaeresis, IBUS_KEY_E, 0x00CB, IBUS_KEY_diaeresis, IBUS_KEY_I, 0x00CF, @@ -2490,6 +2647,10 @@ IBUS_KEY_diaeresis, IBUS_KEY_u, 0x00FC, IBUS_KEY_diaeresis, IBUS_KEY_y, 0x00FF, IBUS_KEY_diaeresis, IBUS_KEY_asciitilde, 0x1FC1, IBUS_KEY_diaeresis, IBUS_KEY_acute, 0x0385, +IBUS_KEY_diaeresis, 0x2207, 0x2362, +IBUS_KEY_diaeresis, 0x2218, 0x2364, +IBUS_KEY_diaeresis, IBUS_KEY_uptack, 0x2361, +IBUS_KEY_diaeresis, IBUS_KEY_emopencircle, 0x2365, IBUS_KEY_diaeresis, IBUS_KEY_dead_grave, 0x1FED, IBUS_KEY_diaeresis, IBUS_KEY_dead_acute, 0x0385, IBUS_KEY_diaeresis, IBUS_KEY_dead_tilde, 0x1FC1, @@ -2537,6 +2698,7 @@ IBUS_KEY_macron, 0x1E36, 0x1E38, IBUS_KEY_macron, 0x1E37, 0x1E39, IBUS_KEY_macron, 0x1E5A, 0x1E5C, IBUS_KEY_macron, 0x1E5B, 0x1E5D, +IBUS_KEY_macron, IBUS_KEY_uptack, 0x2351, IBUS_KEY_acute, IBUS_KEY_A, 0x00C1, IBUS_KEY_acute, IBUS_KEY_C, 0x0106, IBUS_KEY_acute, IBUS_KEY_E, 0x00C9, @@ -2668,6 +2830,7 @@ IBUS_KEY_cedilla, IBUS_KEY_n, 0x0146, IBUS_KEY_cedilla, IBUS_KEY_r, 0x0157, IBUS_KEY_cedilla, IBUS_KEY_s, 0x015F, IBUS_KEY_cedilla, IBUS_KEY_t, 0x0163, +IBUS_KEY_division, 0x2395, 0x2339, IBUS_KEY_breve, IBUS_KEY_G, 0x011E, IBUS_KEY_breve, IBUS_KEY_g, 0x011F, 0x05B4, IBUS_KEY_hebrew_yod, 0xFB1D, @@ -3121,15 +3284,48 @@ IBUS_KEY_righttack, 0x0338, 0x22AC, 0x1FFE, IBUS_KEY_dead_grave, 0x1FDD, 0x1FFE, IBUS_KEY_dead_acute, 0x1FDE, 0x1FFE, IBUS_KEY_dead_tilde, 0x1FDF, +0x2190, IBUS_KEY_bar, 0x2345, +0x2190, 0x2395, 0x2347, +0x2191, IBUS_KEY_minus, 0x234F, +0x2191, 0x2395, 0x2350, +0x2192, IBUS_KEY_bar, 0x2346, +0x2192, 0x2395, 0x2348, +0x2193, IBUS_KEY_minus, 0x2356, +0x2193, 0x2395, 0x2357, 0x2203, 0x0338, 0x2204, +0x2206, IBUS_KEY_underscore, 0x2359, +0x2206, IBUS_KEY_bar, 0x234B, +0x2206, 0x2395, 0x234D, +0x2207, IBUS_KEY_bar, 0x2352, +0x2207, IBUS_KEY_asciitilde, 0x236B, +0x2207, IBUS_KEY_diaeresis, 0x2362, +0x2207, 0x2395, 0x2354, 0x2208, 0x0338, 0x2209, +0x220A, IBUS_KEY_underscore, 0x2377, 0x220B, 0x0338, 0x220C, +0x2218, IBUS_KEY_underscore, 0x235B, +0x2218, IBUS_KEY_diaeresis, 0x2364, +0x2218, 0x2229, 0x235D, +0x2218, IBUS_KEY_uptack, 0x2355, +0x2218, IBUS_KEY_downtack, 0x234E, +0x2218, 0x2395, 0x233B, +0x2218, IBUS_KEY_emopencircle, 0x233E, 0x2223, 0x0338, 0x2224, 0x2225, 0x0338, 0x2226, +0x2227, IBUS_KEY_asciitilde, 0x2372, +0x2227, 0x2228, 0x22C4, +0x2227, 0x2395, 0x2353, +0x2228, IBUS_KEY_asciitilde, 0x2371, +0x2228, 0x2227, 0x22C4, +0x2228, 0x2395, 0x234C, +0x2229, 0x2218, 0x235D, +IBUS_KEY_union, IBUS_KEY_bar, 0x2366, 0x223C, 0x0338, 0x2241, 0x2243, 0x0338, 0x2244, 0x2248, 0x0338, 0x2249, 0x224D, 0x0338, 0x226D, +0x2260, IBUS_KEY_underscore, 0x2262, +0x2260, 0x2395, 0x236F, 0x2272, 0x0338, 0x2274, 0x2273, 0x0338, 0x2275, 0x2276, 0x0338, 0x2278, @@ -3138,10 +3334,20 @@ IBUS_KEY_righttack, 0x0338, 0x22AC, 0x227B, 0x0338, 0x2281, 0x227C, 0x0338, 0x22E0, 0x227D, 0x0338, 0x22E1, +0x2282, IBUS_KEY_underscore, 0x2286, +0x2282, IBUS_KEY_bar, 0x2367, +0x2283, IBUS_KEY_underscore, 0x2287, 0x2286, 0x0338, 0x2288, 0x2287, 0x0338, 0x2289, 0x2291, 0x0338, 0x22E2, 0x2292, 0x0338, 0x22E3, +IBUS_KEY_uptack, IBUS_KEY_diaeresis, 0x2361, +IBUS_KEY_uptack, IBUS_KEY_macron, 0x2351, +IBUS_KEY_uptack, 0x2218, 0x2355, +IBUS_KEY_uptack, IBUS_KEY_downtack, 0x2336, +IBUS_KEY_downtack, IBUS_KEY_underscore, 0x234A, +IBUS_KEY_downtack, 0x2218, 0x234E, +IBUS_KEY_downtack, IBUS_KEY_uptack, 0x2336, 0x22A8, 0x0338, 0x22AD, 0x22A9, 0x0338, 0x22AE, 0x22AB, 0x0338, 0x22AF, @@ -3149,6 +3355,41 @@ IBUS_KEY_righttack, 0x0338, 0x22AC, 0x22B3, 0x0338, 0x22EB, 0x22B4, 0x0338, 0x22EC, 0x22B5, 0x0338, 0x22ED, +0x22C4, IBUS_KEY_underscore, 0x235A, +0x22C4, 0x2395, 0x233A, +0x2373, IBUS_KEY_underscore, 0x2378, +0x2375, IBUS_KEY_underscore, 0x2379, +0x237A, IBUS_KEY_underscore, 0x2376, +0x2395, IBUS_KEY_apostrophe, 0x235E, +0x2395, IBUS_KEY_slash, 0x2341, +0x2395, IBUS_KEY_colon, 0x2360, +0x2395, IBUS_KEY_less, 0x2343, +0x2395, IBUS_KEY_equal, 0x2338, +0x2395, IBUS_KEY_greater, 0x2344, +0x2395, IBUS_KEY_question, 0x2370, +0x2395, IBUS_KEY_backslash, 0x2342, +0x2395, IBUS_KEY_division, 0x2339, +0x2395, 0x2190, 0x2347, +0x2395, 0x2191, 0x2350, +0x2395, 0x2192, 0x2348, +0x2395, 0x2193, 0x2357, +0x2395, 0x2206, 0x234D, +0x2395, 0x2207, 0x2354, +0x2395, 0x2218, 0x233B, +0x2395, 0x2227, 0x2353, +0x2395, 0x2228, 0x234C, +0x2395, 0x2260, 0x236F, +0x2395, 0x22C4, 0x233A, +0x2395, IBUS_KEY_emopencircle, 0x233C, +IBUS_KEY_emopencircle, IBUS_KEY_asterisk, 0x235F, +IBUS_KEY_emopencircle, IBUS_KEY_minus, 0x2296, +IBUS_KEY_emopencircle, IBUS_KEY_period, 0x2299, +IBUS_KEY_emopencircle, IBUS_KEY_backslash, 0x2349, +IBUS_KEY_emopencircle, IBUS_KEY_underscore, 0x235C, +IBUS_KEY_emopencircle, IBUS_KEY_bar, 0x233D, +IBUS_KEY_emopencircle, IBUS_KEY_diaeresis, 0x2365, +IBUS_KEY_emopencircle, 0x2218, 0x233E, +IBUS_KEY_emopencircle, 0x2395, 0x233C, 0x2ADD, 0x0338, 0x2ADC, IBUS_KEY_KP_Divide, IBUS_KEY_D, 0x0110, IBUS_KEY_KP_Divide, IBUS_KEY_G, 0x01E4, @@ -3503,6 +3744,8 @@ IBUS_KEY_parenleft, IBUS_KEY_KP_6, IBUS_KEY_parenright, 0x2465, IBUS_KEY_parenleft, IBUS_KEY_KP_7, IBUS_KEY_parenright, 0x2466, IBUS_KEY_parenleft, IBUS_KEY_KP_8, IBUS_KEY_parenright, 0x2467, IBUS_KEY_parenleft, IBUS_KEY_KP_9, IBUS_KEY_parenright, 0x2468, +IBUS_KEY_asterisk, IBUS_KEY_apostrophe, IBUS_KEY_A, 0x01FA, +IBUS_KEY_asterisk, IBUS_KEY_apostrophe, IBUS_KEY_a, 0x01FB, IBUS_KEY_minus, IBUS_KEY_minus, IBUS_KEY_space, 0x00AD, IBUS_KEY_minus, IBUS_KEY_minus, IBUS_KEY_minus, 0x2014, IBUS_KEY_minus, IBUS_KEY_minus, IBUS_KEY_period, 0x2013, @@ -3518,6 +3761,7 @@ IBUS_KEY_period, IBUS_KEY_dead_caron, IBUS_KEY_S, 0x1E66, IBUS_KEY_period, IBUS_KEY_dead_caron, IBUS_KEY_s, 0x1E67, IBUS_KEY_period, IBUS_KEY_dead_belowdot, IBUS_KEY_S, 0x1E68, IBUS_KEY_period, IBUS_KEY_dead_belowdot, IBUS_KEY_s, 0x1E69, +IBUS_KEY_1, IBUS_KEY_1, IBUS_KEY_0, 0x2152, IBUS_KEY_question, IBUS_KEY_plus, IBUS_KEY_O, 0x1EDE, IBUS_KEY_question, IBUS_KEY_plus, IBUS_KEY_U, 0x1EEC, IBUS_KEY_question, IBUS_KEY_plus, IBUS_KEY_o, 0x1EDF, @@ -3544,8 +3788,6 @@ IBUS_KEY_question, IBUS_KEY_dead_horn, IBUS_KEY_o, 0x1EDF, IBUS_KEY_question, IBUS_KEY_dead_horn, IBUS_KEY_u, 0x1EED, IBUS_KEY_U, IBUS_KEY_exclam, IBUS_KEY_A, 0x1EB6, IBUS_KEY_U, IBUS_KEY_exclam, IBUS_KEY_a, 0x1EB7, -IBUS_KEY_U, IBUS_KEY_comma, IBUS_KEY_E, 0x1E1C, -IBUS_KEY_U, IBUS_KEY_comma, IBUS_KEY_e, 0x1E1D, IBUS_KEY_U, IBUS_KEY_cedilla, IBUS_KEY_E, 0x1E1C, IBUS_KEY_U, IBUS_KEY_cedilla, IBUS_KEY_e, 0x1E1D, IBUS_KEY_U, IBUS_KEY_dead_cedilla, IBUS_KEY_E, 0x1E1C, @@ -3748,8 +3990,6 @@ IBUS_KEY_c, IBUS_KEY_quotedbl, IBUS_KEY_U, 0x01D9, IBUS_KEY_c, IBUS_KEY_quotedbl, IBUS_KEY_u, 0x01DA, IBUS_KEY_c, IBUS_KEY_dead_diaeresis, IBUS_KEY_U, 0x01D9, IBUS_KEY_c, IBUS_KEY_dead_diaeresis, IBUS_KEY_u, 0x01DA, -IBUS_KEY_o, IBUS_KEY_apostrophe, IBUS_KEY_A, 0x01FA, -IBUS_KEY_o, IBUS_KEY_apostrophe, IBUS_KEY_a, 0x01FB, IBUS_KEY_asciitilde, IBUS_KEY_quotedbl, IBUS_KEY_Greek_iota, 0x1FD7, IBUS_KEY_asciitilde, IBUS_KEY_quotedbl, IBUS_KEY_Greek_upsilon, 0x1FE7, IBUS_KEY_asciitilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_ALPHA, 0x1F0F, @@ -4105,6 +4345,7 @@ IBUS_KEY_Greek_iota, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMEGA, 0x1FA9, IBUS_KEY_Greek_iota, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_alpha, 0x1F81, IBUS_KEY_Greek_iota, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_eta, 0x1F91, IBUS_KEY_Greek_iota, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_omega, 0x1FA1, +IBUS_KEY_dead_abovedot, IBUS_KEY_f, IBUS_KEY_s, 0x1E9B, IBUS_KEY_parenleft, IBUS_KEY_1, IBUS_KEY_0, IBUS_KEY_parenright, 0x2469, IBUS_KEY_parenleft, IBUS_KEY_1, IBUS_KEY_1, IBUS_KEY_parenright, 0x246A, IBUS_KEY_parenleft, IBUS_KEY_1, IBUS_KEY_2, IBUS_KEY_parenright, 0x246B, @@ -4311,6 +4552,8 @@ IBUS_KEY_parenleft, IBUS_KEY_KP_4, IBUS_KEY_KP_8, IBUS_KEY_parenright, 0x32BD, IBUS_KEY_parenleft, IBUS_KEY_KP_4, IBUS_KEY_KP_9, IBUS_KEY_parenright, 0x32BE, IBUS_KEY_parenleft, IBUS_KEY_KP_5, IBUS_KEY_KP_0, IBUS_KEY_parenright, 0x32BF, IBUS_KEY_C, IBUS_KEY_C, IBUS_KEY_C, IBUS_KEY_P, 0x262D, +IBUS_KEY_U, IBUS_KEY_space, IBUS_KEY_comma, IBUS_KEY_E, 0x1E1C, +IBUS_KEY_U, IBUS_KEY_space, IBUS_KEY_comma, IBUS_KEY_e, 0x1E1D, IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, IBUS_KEY_parenleft, IBUS_KEY_Greek_ALPHA, 0x1F8D, IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, IBUS_KEY_parenleft, IBUS_KEY_Greek_ETA, 0x1F9D, IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMEGA, 0x1FAD, diff --git a/src/ibuscomposetable.h b/src/ibuscomposetable.h new file mode 100644 index 00000000..ba8e3efc --- /dev/null +++ b/src/ibuscomposetable.h @@ -0,0 +1,2658 @@ +/* -*- mode: C; c-basic-offset: 4; indent-tabs-mode: nil; -*- */ +/* vim:set et sts=4: */ +/* ibus - The Input Bus + * Copyright (C) 2013 Peng Huang <shawn.p.huang@gmail.com> + * Copyright (C) 2013 Takao Fujiwara <takao.fujiwara1@gmail.com> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 + * USA + */ + +#ifndef __IBUS_COMPOSETABLE_H_ +#define __IBUS_COMPOSETABLE_H_ + +/* The table is generated by ibus/src/gencomposetable + * + * if ibus_compose_seqs_a[N - 1] is an outputed compose character, + * ibus_compose_seqs_a[N * 2 - 1] is also an outputed compose character. + * and ibus_compose_seqs_a[0] to ibus_compose_seqs_a[0 + N - 3] are the + * sequences and call ibus_engine_simple_add_table: + * ibus_engine_simple_add_table(engine, ibus_compose_seqs_a, + * N - 2, G_N_ELEMENTS(ibus_compose_seqs_a) / N) + * The compose sequences are allowed within G_MAXUINT16 */ + +typedef struct _IBusComposeTable IBusComposeTable; +struct _IBusComposeTable +{ + const guint16 *data; + gint max_seq_len; + gint n_seqs; +}; + +typedef struct _IBusComposeTableLocaleList IBusComposeTableLocaleList; +struct _IBusComposeTableLocaleList +{ + const gchar *locale; + const IBusComposeTable *table; +}; + +static const guint16 ibus_compose_seqs_am_et[] = { + /* Not sure if am_ET compose file is useful. It uses ASCII key + * at first but not compose keys. + * Comment out am_compose_seqs until get the request. */ + 0 +}; + +static const IBusComposeTable ibus_compose_table_am_et = { + ibus_compose_seqs_am_et, + 0, + 0 +}; + +static const guint16 ibus_compose_seqs_el_gr[] = { + IBUS_KEY_dead_grave, IBUS_KEY_space, 0, 0, 0, + 0, 0x1FEF, /* U1fef */ + IBUS_KEY_dead_grave, IBUS_KEY_underscore, 0, 0, 0, + 0, 0x0060, /* grave */ + IBUS_KEY_dead_grave, IBUS_KEY_dead_grave, 0, 0, 0, + 0, 0x1FEF, /* U1fef */ + IBUS_KEY_dead_grave, IBUS_KEY_dead_diaeresis, IBUS_KEY_space, 0, 0, + 0, 0x1FED, /* U1fed */ + IBUS_KEY_dead_grave, IBUS_KEY_dead_ogonek, IBUS_KEY_space, 0, 0, + 0, 0x1FDD, /* U1fdd */ + IBUS_KEY_dead_grave, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_ALPHA, 0, 0, + 0, 0x1F0B, /* U1f0b */ + IBUS_KEY_dead_grave, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_EPSILON, 0, 0, + 0, 0x1F1B, /* U1f1b */ + IBUS_KEY_dead_grave, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_ETA, 0, 0, + 0, 0x1F2B, /* U1f2b */ + IBUS_KEY_dead_grave, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_IOTA, 0, 0, + 0, 0x1F3B, /* U1f3b */ + IBUS_KEY_dead_grave, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_OMICRON, 0, 0, + 0, 0x1F4B, /* U1f4b */ + IBUS_KEY_dead_grave, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_UPSILON, 0, 0, + 0, 0x1F5B, /* U1f5b */ + IBUS_KEY_dead_grave, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_OMEGA, 0, 0, + 0, 0x1F6B, /* U1f6b */ + IBUS_KEY_dead_grave, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_alpha, 0, 0, + 0, 0x1F03, /* U1f03 */ + IBUS_KEY_dead_grave, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_epsilon, 0, 0, + 0, 0x1F13, /* U1f13 */ + IBUS_KEY_dead_grave, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_eta, 0, 0, + 0, 0x1F23, /* U1f23 */ + IBUS_KEY_dead_grave, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_iota, 0, 0, + 0, 0x1F33, /* U1f33 */ + IBUS_KEY_dead_grave, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_omicron, 0, 0, + 0, 0x1F43, /* U1f43 */ + IBUS_KEY_dead_grave, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_upsilon, 0, 0, + 0, 0x1F53, /* U1f53 */ + IBUS_KEY_dead_grave, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_omega, 0, 0, + 0, 0x1F63, /* U1f63 */ + IBUS_KEY_dead_grave, IBUS_KEY_dead_ogonek, IBUS_KEY_dead_iota, IBUS_KEY_Greek_ALPHA, 0, + 0, 0x1F8B, /* U1f8b */ + IBUS_KEY_dead_grave, IBUS_KEY_dead_ogonek, IBUS_KEY_dead_iota, IBUS_KEY_Greek_ETA, 0, + 0, 0x1F9B, /* U1f9b */ + IBUS_KEY_dead_grave, IBUS_KEY_dead_ogonek, IBUS_KEY_dead_iota, IBUS_KEY_Greek_OMEGA, 0, + 0, 0x1FAB, /* U1fab */ + IBUS_KEY_dead_grave, IBUS_KEY_dead_ogonek, IBUS_KEY_dead_iota, IBUS_KEY_Greek_alpha, 0, + 0, 0x1F83, /* U1f83 */ + IBUS_KEY_dead_grave, IBUS_KEY_dead_ogonek, IBUS_KEY_dead_iota, IBUS_KEY_Greek_eta, 0, + 0, 0x1F93, /* U1f93 */ + IBUS_KEY_dead_grave, IBUS_KEY_dead_ogonek, IBUS_KEY_dead_iota, IBUS_KEY_Greek_omega, 0, + 0, 0x1FA3, /* U1fa3 */ + IBUS_KEY_dead_grave, IBUS_KEY_dead_iota, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_ALPHA, 0, + 0, 0x1F8B, /* U1f8b */ + IBUS_KEY_dead_grave, IBUS_KEY_dead_iota, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_ETA, 0, + 0, 0x1F9B, /* U1f9b */ + IBUS_KEY_dead_grave, IBUS_KEY_dead_iota, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_OMEGA, 0, + 0, 0x1FAB, /* U1fab */ + IBUS_KEY_dead_grave, IBUS_KEY_dead_iota, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_alpha, 0, + 0, 0x1F83, /* U1f83 */ + IBUS_KEY_dead_grave, IBUS_KEY_dead_iota, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_eta, 0, + 0, 0x1F93, /* U1f93 */ + IBUS_KEY_dead_grave, IBUS_KEY_dead_iota, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_omega, 0, + 0, 0x1FA3, /* U1fa3 */ + IBUS_KEY_dead_grave, IBUS_KEY_dead_iota, IBUS_KEY_dead_horn, IBUS_KEY_Greek_ALPHA, 0, + 0, 0x1F8A, /* U1f8a */ + IBUS_KEY_dead_grave, IBUS_KEY_dead_iota, IBUS_KEY_dead_horn, IBUS_KEY_Greek_ETA, 0, + 0, 0x1F9A, /* U1f9a */ + IBUS_KEY_dead_grave, IBUS_KEY_dead_iota, IBUS_KEY_dead_horn, IBUS_KEY_Greek_OMEGA, 0, + 0, 0x1FAA, /* U1faa */ + IBUS_KEY_dead_grave, IBUS_KEY_dead_iota, IBUS_KEY_dead_horn, IBUS_KEY_Greek_alpha, 0, + 0, 0x1F82, /* U1f82 */ + IBUS_KEY_dead_grave, IBUS_KEY_dead_iota, IBUS_KEY_dead_horn, IBUS_KEY_Greek_eta, 0, + 0, 0x1F92, /* U1f92 */ + IBUS_KEY_dead_grave, IBUS_KEY_dead_iota, IBUS_KEY_dead_horn, IBUS_KEY_Greek_omega, 0, + 0, 0x1FA2, /* U1fa2 */ + IBUS_KEY_dead_grave, IBUS_KEY_dead_horn, IBUS_KEY_space, 0, 0, + 0, 0x1FCD, /* U1fcd */ + IBUS_KEY_dead_grave, IBUS_KEY_dead_horn, IBUS_KEY_Greek_ALPHA, 0, 0, + 0, 0x1F0A, /* U1f0a */ + IBUS_KEY_dead_grave, IBUS_KEY_dead_horn, IBUS_KEY_Greek_EPSILON, 0, 0, + 0, 0x1F1A, /* U1f1a */ + IBUS_KEY_dead_grave, IBUS_KEY_dead_horn, IBUS_KEY_Greek_ETA, 0, 0, + 0, 0x1F2A, /* U1f2a */ + IBUS_KEY_dead_grave, IBUS_KEY_dead_horn, IBUS_KEY_Greek_IOTA, 0, 0, + 0, 0x1F3A, /* U1f3a */ + IBUS_KEY_dead_grave, IBUS_KEY_dead_horn, IBUS_KEY_Greek_OMICRON, 0, 0, + 0, 0x1F4A, /* U1f4a */ + IBUS_KEY_dead_grave, IBUS_KEY_dead_horn, IBUS_KEY_Greek_OMEGA, 0, 0, + 0, 0x1F6A, /* U1f6a */ + IBUS_KEY_dead_grave, IBUS_KEY_dead_horn, IBUS_KEY_Greek_alpha, 0, 0, + 0, 0x1F02, /* U1f02 */ + IBUS_KEY_dead_grave, IBUS_KEY_dead_horn, IBUS_KEY_Greek_epsilon, 0, 0, + 0, 0x1F12, /* U1f12 */ + IBUS_KEY_dead_grave, IBUS_KEY_dead_horn, IBUS_KEY_Greek_eta, 0, 0, + 0, 0x1F22, /* U1f22 */ + IBUS_KEY_dead_grave, IBUS_KEY_dead_horn, IBUS_KEY_Greek_iota, 0, 0, + 0, 0x1F32, /* U1f32 */ + IBUS_KEY_dead_grave, IBUS_KEY_dead_horn, IBUS_KEY_Greek_omicron, 0, 0, + 0, 0x1F42, /* U1f42 */ + IBUS_KEY_dead_grave, IBUS_KEY_dead_horn, IBUS_KEY_Greek_upsilon, 0, 0, + 0, 0x1F52, /* U1f52 */ + IBUS_KEY_dead_grave, IBUS_KEY_dead_horn, IBUS_KEY_Greek_omega, 0, 0, + 0, 0x1F62, /* U1f62 */ + IBUS_KEY_dead_grave, IBUS_KEY_dead_horn, IBUS_KEY_dead_iota, IBUS_KEY_Greek_ALPHA, 0, + 0, 0x1F8A, /* U1f8a */ + IBUS_KEY_dead_grave, IBUS_KEY_dead_horn, IBUS_KEY_dead_iota, IBUS_KEY_Greek_ETA, 0, + 0, 0x1F9A, /* U1f9a */ + IBUS_KEY_dead_grave, IBUS_KEY_dead_horn, IBUS_KEY_dead_iota, IBUS_KEY_Greek_OMEGA, 0, + 0, 0x1FAA, /* U1faa */ + IBUS_KEY_dead_grave, IBUS_KEY_dead_horn, IBUS_KEY_dead_iota, IBUS_KEY_Greek_alpha, 0, + 0, 0x1F82, /* U1f82 */ + IBUS_KEY_dead_grave, IBUS_KEY_dead_horn, IBUS_KEY_dead_iota, IBUS_KEY_Greek_eta, 0, + 0, 0x1F92, /* U1f92 */ + IBUS_KEY_dead_grave, IBUS_KEY_dead_horn, IBUS_KEY_dead_iota, IBUS_KEY_Greek_omega, 0, + 0, 0x1FA2, /* U1fa2 */ + IBUS_KEY_dead_grave, IBUS_KEY_dead_psili, IBUS_KEY_space, 0, 0, + 0, 0x1FCD, /* U1fcd */ + IBUS_KEY_dead_grave, IBUS_KEY_dead_dasia, IBUS_KEY_space, 0, 0, + 0, 0x1FDD, /* U1fdd */ + IBUS_KEY_dead_acute, IBUS_KEY_space, 0, 0, 0, + 0, 0x0384, /* U0384 */ + IBUS_KEY_dead_acute, IBUS_KEY_period, 0, 0, 0, + 0, 0x00B7, /* periodcentered */ + IBUS_KEY_dead_acute, IBUS_KEY_less, 0, 0, 0, + 0, 0x00AB, /* guillemotleft */ + IBUS_KEY_dead_acute, IBUS_KEY_greater, 0, 0, 0, + 0, 0x00BB, /* guillemotright */ + IBUS_KEY_dead_acute, IBUS_KEY_underscore, 0, 0, 0, + 0, 0x00B4, /* acute */ + IBUS_KEY_dead_acute, IBUS_KEY_dead_acute, 0, 0, 0, + 0, 0x0384, /* U0384 */ + IBUS_KEY_dead_acute, IBUS_KEY_dead_ogonek, IBUS_KEY_space, 0, 0, + 0, 0x1FDE, /* U1fde */ + IBUS_KEY_dead_acute, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_ALPHA, 0, 0, + 0, 0x1F0D, /* U1f0d */ + IBUS_KEY_dead_acute, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_EPSILON, 0, 0, + 0, 0x1F1D, /* U1f1d */ + IBUS_KEY_dead_acute, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_ETA, 0, 0, + 0, 0x1F2D, /* U1f2d */ + IBUS_KEY_dead_acute, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_IOTA, 0, 0, + 0, 0x1F3D, /* U1f3d */ + IBUS_KEY_dead_acute, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_OMICRON, 0, 0, + 0, 0x1F4D, /* U1f4d */ + IBUS_KEY_dead_acute, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_UPSILON, 0, 0, + 0, 0x1F5D, /* U1f5d */ + IBUS_KEY_dead_acute, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_OMEGA, 0, 0, + 0, 0x1F6D, /* U1f6d */ + IBUS_KEY_dead_acute, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_alpha, 0, 0, + 0, 0x1F05, /* U1f05 */ + IBUS_KEY_dead_acute, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_epsilon, 0, 0, + 0, 0x1F15, /* U1f15 */ + IBUS_KEY_dead_acute, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_eta, 0, 0, + 0, 0x1F25, /* U1f25 */ + IBUS_KEY_dead_acute, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_iota, 0, 0, + 0, 0x1F35, /* U1f35 */ + IBUS_KEY_dead_acute, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_omicron, 0, 0, + 0, 0x1F45, /* U1f45 */ + IBUS_KEY_dead_acute, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_upsilon, 0, 0, + 0, 0x1F55, /* U1f55 */ + IBUS_KEY_dead_acute, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_omega, 0, 0, + 0, 0x1F65, /* U1f65 */ + IBUS_KEY_dead_acute, IBUS_KEY_dead_ogonek, IBUS_KEY_dead_iota, IBUS_KEY_Greek_ALPHA, 0, + 0, 0x1F8D, /* U1f8d */ + IBUS_KEY_dead_acute, IBUS_KEY_dead_ogonek, IBUS_KEY_dead_iota, IBUS_KEY_Greek_ETA, 0, + 0, 0x1F9D, /* U1f9d */ + IBUS_KEY_dead_acute, IBUS_KEY_dead_ogonek, IBUS_KEY_dead_iota, IBUS_KEY_Greek_OMEGA, 0, + 0, 0x1FAD, /* U1fad */ + IBUS_KEY_dead_acute, IBUS_KEY_dead_ogonek, IBUS_KEY_dead_iota, IBUS_KEY_Greek_alpha, 0, + 0, 0x1F85, /* U1f85 */ + IBUS_KEY_dead_acute, IBUS_KEY_dead_ogonek, IBUS_KEY_dead_iota, IBUS_KEY_Greek_eta, 0, + 0, 0x1F95, /* U1f95 */ + IBUS_KEY_dead_acute, IBUS_KEY_dead_ogonek, IBUS_KEY_dead_iota, IBUS_KEY_Greek_omega, 0, + 0, 0x1FA5, /* U1fa5 */ + IBUS_KEY_dead_acute, IBUS_KEY_dead_iota, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_ALPHA, 0, + 0, 0x1F8D, /* U1f8d */ + IBUS_KEY_dead_acute, IBUS_KEY_dead_iota, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_ETA, 0, + 0, 0x1F9D, /* U1f9d */ + IBUS_KEY_dead_acute, IBUS_KEY_dead_iota, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_OMEGA, 0, + 0, 0x1FAD, /* U1fad */ + IBUS_KEY_dead_acute, IBUS_KEY_dead_iota, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_alpha, 0, + 0, 0x1F85, /* U1f85 */ + IBUS_KEY_dead_acute, IBUS_KEY_dead_iota, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_eta, 0, + 0, 0x1F95, /* U1f95 */ + IBUS_KEY_dead_acute, IBUS_KEY_dead_iota, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_omega, 0, + 0, 0x1FA5, /* U1fa5 */ + IBUS_KEY_dead_acute, IBUS_KEY_dead_iota, IBUS_KEY_dead_horn, IBUS_KEY_Greek_ALPHA, 0, + 0, 0x1F8C, /* U1f8c */ + IBUS_KEY_dead_acute, IBUS_KEY_dead_iota, IBUS_KEY_dead_horn, IBUS_KEY_Greek_ETA, 0, + 0, 0x1F9C, /* U1f9c */ + IBUS_KEY_dead_acute, IBUS_KEY_dead_iota, IBUS_KEY_dead_horn, IBUS_KEY_Greek_OMEGA, 0, + 0, 0x1FAC, /* U1fac */ + IBUS_KEY_dead_acute, IBUS_KEY_dead_iota, IBUS_KEY_dead_horn, IBUS_KEY_Greek_alpha, 0, + 0, 0x1F84, /* U1f84 */ + IBUS_KEY_dead_acute, IBUS_KEY_dead_iota, IBUS_KEY_dead_horn, IBUS_KEY_Greek_eta, 0, + 0, 0x1F94, /* U1f94 */ + IBUS_KEY_dead_acute, IBUS_KEY_dead_iota, IBUS_KEY_dead_horn, IBUS_KEY_Greek_omega, 0, + 0, 0x1FA4, /* U1fa4 */ + IBUS_KEY_dead_acute, IBUS_KEY_dead_horn, IBUS_KEY_space, 0, 0, + 0, 0x1FCE, /* U1fce */ + IBUS_KEY_dead_acute, IBUS_KEY_dead_horn, IBUS_KEY_Greek_ALPHA, 0, 0, + 0, 0x1F0C, /* U1f0c */ + IBUS_KEY_dead_acute, IBUS_KEY_dead_horn, IBUS_KEY_Greek_EPSILON, 0, 0, + 0, 0x1F1C, /* U1f1c */ + IBUS_KEY_dead_acute, IBUS_KEY_dead_horn, IBUS_KEY_Greek_ETA, 0, 0, + 0, 0x1F2C, /* U1f2c */ + IBUS_KEY_dead_acute, IBUS_KEY_dead_horn, IBUS_KEY_Greek_IOTA, 0, 0, + 0, 0x1F3C, /* U1f3c */ + IBUS_KEY_dead_acute, IBUS_KEY_dead_horn, IBUS_KEY_Greek_OMICRON, 0, 0, + 0, 0x1F4C, /* U1f4c */ + IBUS_KEY_dead_acute, IBUS_KEY_dead_horn, IBUS_KEY_Greek_OMEGA, 0, 0, + 0, 0x1F6C, /* U1f6c */ + IBUS_KEY_dead_acute, IBUS_KEY_dead_horn, IBUS_KEY_Greek_alpha, 0, 0, + 0, 0x1F04, /* U1f04 */ + IBUS_KEY_dead_acute, IBUS_KEY_dead_horn, IBUS_KEY_Greek_epsilon, 0, 0, + 0, 0x1F14, /* U1f14 */ + IBUS_KEY_dead_acute, IBUS_KEY_dead_horn, IBUS_KEY_Greek_eta, 0, 0, + 0, 0x1F24, /* U1f24 */ + IBUS_KEY_dead_acute, IBUS_KEY_dead_horn, IBUS_KEY_Greek_iota, 0, 0, + 0, 0x1F34, /* U1f34 */ + IBUS_KEY_dead_acute, IBUS_KEY_dead_horn, IBUS_KEY_Greek_omicron, 0, 0, + 0, 0x1F44, /* U1f44 */ + IBUS_KEY_dead_acute, IBUS_KEY_dead_horn, IBUS_KEY_Greek_upsilon, 0, 0, + 0, 0x1F54, /* U1f54 */ + IBUS_KEY_dead_acute, IBUS_KEY_dead_horn, IBUS_KEY_Greek_omega, 0, 0, + 0, 0x1F64, /* U1f64 */ + IBUS_KEY_dead_acute, IBUS_KEY_dead_horn, IBUS_KEY_dead_iota, IBUS_KEY_Greek_ALPHA, 0, + 0, 0x1F8C, /* U1f8c */ + IBUS_KEY_dead_acute, IBUS_KEY_dead_horn, IBUS_KEY_dead_iota, IBUS_KEY_Greek_ETA, 0, + 0, 0x1F9C, /* U1f9c */ + IBUS_KEY_dead_acute, IBUS_KEY_dead_horn, IBUS_KEY_dead_iota, IBUS_KEY_Greek_OMEGA, 0, + 0, 0x1FAC, /* U1fac */ + IBUS_KEY_dead_acute, IBUS_KEY_dead_horn, IBUS_KEY_dead_iota, IBUS_KEY_Greek_alpha, 0, + 0, 0x1F84, /* U1f84 */ + IBUS_KEY_dead_acute, IBUS_KEY_dead_horn, IBUS_KEY_dead_iota, IBUS_KEY_Greek_eta, 0, + 0, 0x1F94, /* U1f94 */ + IBUS_KEY_dead_acute, IBUS_KEY_dead_horn, IBUS_KEY_dead_iota, IBUS_KEY_Greek_omega, 0, + 0, 0x1FA4, /* U1fa4 */ + IBUS_KEY_dead_acute, IBUS_KEY_dead_psili, IBUS_KEY_space, 0, 0, + 0, 0x1FCE, /* U1fce */ + IBUS_KEY_dead_acute, IBUS_KEY_dead_dasia, IBUS_KEY_space, 0, 0, + 0, 0x1FDE, /* U1fde */ + IBUS_KEY_dead_tilde, IBUS_KEY_space, 0, 0, 0, + 0, 0x1FC0, /* U1fc0 */ + IBUS_KEY_dead_tilde, IBUS_KEY_underscore, 0, 0, 0, + 0, 0x007E, /* asciitilde */ + IBUS_KEY_dead_tilde, IBUS_KEY_dead_tilde, 0, 0, 0, + 0, 0x1FC0, /* U1fc0 */ + IBUS_KEY_dead_tilde, IBUS_KEY_dead_diaeresis, IBUS_KEY_space, 0, 0, + 0, 0x1FC1, /* U1fc1 */ + IBUS_KEY_dead_tilde, IBUS_KEY_dead_ogonek, IBUS_KEY_space, 0, 0, + 0, 0x1FDF, /* U1fdf */ + IBUS_KEY_dead_tilde, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_ALPHA, 0, 0, + 0, 0x1F0F, /* U1f0f */ + IBUS_KEY_dead_tilde, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_ETA, 0, 0, + 0, 0x1F2F, /* U1f2f */ + IBUS_KEY_dead_tilde, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_IOTA, 0, 0, + 0, 0x1F3F, /* U1f3f */ + IBUS_KEY_dead_tilde, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_UPSILON, 0, 0, + 0, 0x1F5F, /* U1f5f */ + IBUS_KEY_dead_tilde, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_OMEGA, 0, 0, + 0, 0x1F6F, /* U1f6f */ + IBUS_KEY_dead_tilde, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_alpha, 0, 0, + 0, 0x1F07, /* U1f07 */ + IBUS_KEY_dead_tilde, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_eta, 0, 0, + 0, 0x1F27, /* U1f27 */ + IBUS_KEY_dead_tilde, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_iota, 0, 0, + 0, 0x1F37, /* U1f37 */ + IBUS_KEY_dead_tilde, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_upsilon, 0, 0, + 0, 0x1F57, /* U1f57 */ + IBUS_KEY_dead_tilde, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_omega, 0, 0, + 0, 0x1F67, /* U1f67 */ + IBUS_KEY_dead_tilde, IBUS_KEY_dead_ogonek, IBUS_KEY_dead_iota, IBUS_KEY_Greek_ALPHA, 0, + 0, 0x1F8F, /* U1f8f */ + IBUS_KEY_dead_tilde, IBUS_KEY_dead_ogonek, IBUS_KEY_dead_iota, IBUS_KEY_Greek_ETA, 0, + 0, 0x1F9F, /* U1f9f */ + IBUS_KEY_dead_tilde, IBUS_KEY_dead_ogonek, IBUS_KEY_dead_iota, IBUS_KEY_Greek_OMEGA, 0, + 0, 0x1FAF, /* U1faf */ + IBUS_KEY_dead_tilde, IBUS_KEY_dead_ogonek, IBUS_KEY_dead_iota, IBUS_KEY_Greek_alpha, 0, + 0, 0x1F87, /* U1f87 */ + IBUS_KEY_dead_tilde, IBUS_KEY_dead_ogonek, IBUS_KEY_dead_iota, IBUS_KEY_Greek_eta, 0, + 0, 0x1F97, /* U1f97 */ + IBUS_KEY_dead_tilde, IBUS_KEY_dead_ogonek, IBUS_KEY_dead_iota, IBUS_KEY_Greek_omega, 0, + 0, 0x1FA7, /* U1fa7 */ + IBUS_KEY_dead_tilde, IBUS_KEY_dead_iota, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_ALPHA, 0, + 0, 0x1F8F, /* U1f8f */ + IBUS_KEY_dead_tilde, IBUS_KEY_dead_iota, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_ETA, 0, + 0, 0x1F9F, /* U1f9f */ + IBUS_KEY_dead_tilde, IBUS_KEY_dead_iota, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_OMEGA, 0, + 0, 0x1FAF, /* U1faf */ + IBUS_KEY_dead_tilde, IBUS_KEY_dead_iota, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_alpha, 0, + 0, 0x1F87, /* U1f87 */ + IBUS_KEY_dead_tilde, IBUS_KEY_dead_iota, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_eta, 0, + 0, 0x1F97, /* U1f97 */ + IBUS_KEY_dead_tilde, IBUS_KEY_dead_iota, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_omega, 0, + 0, 0x1FA7, /* U1fa7 */ + IBUS_KEY_dead_tilde, IBUS_KEY_dead_iota, IBUS_KEY_dead_horn, IBUS_KEY_Greek_ALPHA, 0, + 0, 0x1F8E, /* U1f8e */ + IBUS_KEY_dead_tilde, IBUS_KEY_dead_iota, IBUS_KEY_dead_horn, IBUS_KEY_Greek_ETA, 0, + 0, 0x1F9E, /* U1f9e */ + IBUS_KEY_dead_tilde, IBUS_KEY_dead_iota, IBUS_KEY_dead_horn, IBUS_KEY_Greek_OMEGA, 0, + 0, 0x1FAE, /* U1fae */ + IBUS_KEY_dead_tilde, IBUS_KEY_dead_iota, IBUS_KEY_dead_horn, IBUS_KEY_Greek_alpha, 0, + 0, 0x1F86, /* U1f86 */ + IBUS_KEY_dead_tilde, IBUS_KEY_dead_iota, IBUS_KEY_dead_horn, IBUS_KEY_Greek_eta, 0, + 0, 0x1F96, /* U1f96 */ + IBUS_KEY_dead_tilde, IBUS_KEY_dead_iota, IBUS_KEY_dead_horn, IBUS_KEY_Greek_omega, 0, + 0, 0x1FA6, /* U1fa6 */ + IBUS_KEY_dead_tilde, IBUS_KEY_dead_horn, IBUS_KEY_space, 0, 0, + 0, 0x1FCF, /* U1fcf */ + IBUS_KEY_dead_tilde, IBUS_KEY_dead_horn, IBUS_KEY_Greek_ALPHA, 0, 0, + 0, 0x1F0E, /* U1f0e */ + IBUS_KEY_dead_tilde, IBUS_KEY_dead_horn, IBUS_KEY_Greek_ETA, 0, 0, + 0, 0x1F2E, /* U1f2e */ + IBUS_KEY_dead_tilde, IBUS_KEY_dead_horn, IBUS_KEY_Greek_IOTA, 0, 0, + 0, 0x1F3E, /* U1f3e */ + IBUS_KEY_dead_tilde, IBUS_KEY_dead_horn, IBUS_KEY_Greek_OMEGA, 0, 0, + 0, 0x1F6E, /* U1f6e */ + IBUS_KEY_dead_tilde, IBUS_KEY_dead_horn, IBUS_KEY_Greek_alpha, 0, 0, + 0, 0x1F06, /* U1f06 */ + IBUS_KEY_dead_tilde, IBUS_KEY_dead_horn, IBUS_KEY_Greek_eta, 0, 0, + 0, 0x1F26, /* U1f26 */ + IBUS_KEY_dead_tilde, IBUS_KEY_dead_horn, IBUS_KEY_Greek_iota, 0, 0, + 0, 0x1F36, /* U1f36 */ + IBUS_KEY_dead_tilde, IBUS_KEY_dead_horn, IBUS_KEY_Greek_upsilon, 0, 0, + 0, 0x1F56, /* U1f56 */ + IBUS_KEY_dead_tilde, IBUS_KEY_dead_horn, IBUS_KEY_Greek_omega, 0, 0, + 0, 0x1F66, /* U1f66 */ + IBUS_KEY_dead_tilde, IBUS_KEY_dead_horn, IBUS_KEY_dead_iota, IBUS_KEY_Greek_ALPHA, 0, + 0, 0x1F8E, /* U1f8e */ + IBUS_KEY_dead_tilde, IBUS_KEY_dead_horn, IBUS_KEY_dead_iota, IBUS_KEY_Greek_ETA, 0, + 0, 0x1F9E, /* U1f9e */ + IBUS_KEY_dead_tilde, IBUS_KEY_dead_horn, IBUS_KEY_dead_iota, IBUS_KEY_Greek_OMEGA, 0, + 0, 0x1FAE, /* U1fae */ + IBUS_KEY_dead_tilde, IBUS_KEY_dead_horn, IBUS_KEY_dead_iota, IBUS_KEY_Greek_alpha, 0, + 0, 0x1F86, /* U1f86 */ + IBUS_KEY_dead_tilde, IBUS_KEY_dead_horn, IBUS_KEY_dead_iota, IBUS_KEY_Greek_eta, 0, + 0, 0x1F96, /* U1f96 */ + IBUS_KEY_dead_tilde, IBUS_KEY_dead_horn, IBUS_KEY_dead_iota, IBUS_KEY_Greek_omega, 0, + 0, 0x1FA6, /* U1fa6 */ + IBUS_KEY_dead_tilde, IBUS_KEY_dead_psili, IBUS_KEY_space, 0, 0, + 0, 0x1FCF, /* U1fcf */ + IBUS_KEY_dead_tilde, IBUS_KEY_dead_dasia, IBUS_KEY_space, 0, 0, + 0, 0x1FDF, /* U1fdf */ + IBUS_KEY_dead_diaeresis, IBUS_KEY_space, 0, 0, 0, + 0, 0x00A8, /* diaeresis */ + IBUS_KEY_dead_diaeresis, IBUS_KEY_period, 0, 0, 0, + 0, 0x00B7, /* periodcentered */ + IBUS_KEY_dead_diaeresis, IBUS_KEY_less, 0, 0, 0, + 0, 0x00AB, /* guillemotleft */ + IBUS_KEY_dead_diaeresis, IBUS_KEY_greater, 0, 0, 0, + 0, 0x00BB, /* guillemotright */ + IBUS_KEY_dead_diaeresis, IBUS_KEY_dead_grave, IBUS_KEY_space, 0, 0, + 0, 0x1FED, /* U1fed */ + IBUS_KEY_dead_diaeresis, IBUS_KEY_dead_tilde, IBUS_KEY_space, 0, 0, + 0, 0x1FC1, /* U1fc1 */ + IBUS_KEY_dead_ogonek, IBUS_KEY_space, 0, 0, 0, + 0, 0x1FFE, /* U1ffe */ + IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_ALPHA, 0, 0, 0, + 0, 0x1F09, /* U1f09 */ + IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_EPSILON, 0, 0, 0, + 0, 0x1F19, /* U1f19 */ + IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_ETA, 0, 0, 0, + 0, 0x1F29, /* U1f29 */ + IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_IOTA, 0, 0, 0, + 0, 0x1F39, /* U1f39 */ + IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_OMICRON, 0, 0, 0, + 0, 0x1F49, /* U1f49 */ + IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_RHO, 0, 0, 0, + 0, 0x1FEC, /* U1fec */ + IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_UPSILON, 0, 0, 0, + 0, 0x1F59, /* U1f59 */ + IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_OMEGA, 0, 0, 0, + 0, 0x1F69, /* U1f69 */ + IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_alpha, 0, 0, 0, + 0, 0x1F01, /* U1f01 */ + IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_epsilon, 0, 0, 0, + 0, 0x1F11, /* U1f11 */ + IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_eta, 0, 0, 0, + 0, 0x1F21, /* U1f21 */ + IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_iota, 0, 0, 0, + 0, 0x1F31, /* U1f31 */ + IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_omicron, 0, 0, 0, + 0, 0x1F41, /* U1f41 */ + IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_rho, 0, 0, 0, + 0, 0x1FE5, /* U1fe5 */ + IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_upsilon, 0, 0, 0, + 0, 0x1F51, /* U1f51 */ + IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_omega, 0, 0, 0, + 0, 0x1F61, /* U1f61 */ + IBUS_KEY_dead_ogonek, IBUS_KEY_dead_grave, IBUS_KEY_space, 0, 0, + 0, 0x1FDD, /* U1fdd */ + IBUS_KEY_dead_ogonek, IBUS_KEY_dead_grave, IBUS_KEY_Greek_ALPHA, 0, 0, + 0, 0x1F0B, /* U1f0b */ + IBUS_KEY_dead_ogonek, IBUS_KEY_dead_grave, IBUS_KEY_Greek_EPSILON, 0, 0, + 0, 0x1F1B, /* U1f1b */ + IBUS_KEY_dead_ogonek, IBUS_KEY_dead_grave, IBUS_KEY_Greek_ETA, 0, 0, + 0, 0x1F2B, /* U1f2b */ + IBUS_KEY_dead_ogonek, IBUS_KEY_dead_grave, IBUS_KEY_Greek_IOTA, 0, 0, + 0, 0x1F3B, /* U1f3b */ + IBUS_KEY_dead_ogonek, IBUS_KEY_dead_grave, IBUS_KEY_Greek_OMICRON, 0, 0, + 0, 0x1F4B, /* U1f4b */ + IBUS_KEY_dead_ogonek, IBUS_KEY_dead_grave, IBUS_KEY_Greek_UPSILON, 0, 0, + 0, 0x1F5B, /* U1f5b */ + IBUS_KEY_dead_ogonek, IBUS_KEY_dead_grave, IBUS_KEY_Greek_OMEGA, 0, 0, + 0, 0x1F6B, /* U1f6b */ + IBUS_KEY_dead_ogonek, IBUS_KEY_dead_grave, IBUS_KEY_Greek_alpha, 0, 0, + 0, 0x1F03, /* U1f03 */ + IBUS_KEY_dead_ogonek, IBUS_KEY_dead_grave, IBUS_KEY_Greek_epsilon, 0, 0, + 0, 0x1F13, /* U1f13 */ + IBUS_KEY_dead_ogonek, IBUS_KEY_dead_grave, IBUS_KEY_Greek_eta, 0, 0, + 0, 0x1F23, /* U1f23 */ + IBUS_KEY_dead_ogonek, IBUS_KEY_dead_grave, IBUS_KEY_Greek_iota, 0, 0, + 0, 0x1F33, /* U1f33 */ + IBUS_KEY_dead_ogonek, IBUS_KEY_dead_grave, IBUS_KEY_Greek_omicron, 0, 0, + 0, 0x1F43, /* U1f43 */ + IBUS_KEY_dead_ogonek, IBUS_KEY_dead_grave, IBUS_KEY_Greek_upsilon, 0, 0, + 0, 0x1F53, /* U1f53 */ + IBUS_KEY_dead_ogonek, IBUS_KEY_dead_grave, IBUS_KEY_Greek_omega, 0, 0, + 0, 0x1F63, /* U1f63 */ + IBUS_KEY_dead_ogonek, IBUS_KEY_dead_grave, IBUS_KEY_dead_iota, IBUS_KEY_Greek_ALPHA, 0, + 0, 0x1F8B, /* U1f8b */ + IBUS_KEY_dead_ogonek, IBUS_KEY_dead_grave, IBUS_KEY_dead_iota, IBUS_KEY_Greek_ETA, 0, + 0, 0x1F9B, /* U1f9b */ + IBUS_KEY_dead_ogonek, IBUS_KEY_dead_grave, IBUS_KEY_dead_iota, IBUS_KEY_Greek_OMEGA, 0, + 0, 0x1FAB, /* U1fab */ + IBUS_KEY_dead_ogonek, IBUS_KEY_dead_grave, IBUS_KEY_dead_iota, IBUS_KEY_Greek_alpha, 0, + 0, 0x1F83, /* U1f83 */ + IBUS_KEY_dead_ogonek, IBUS_KEY_dead_grave, IBUS_KEY_dead_iota, IBUS_KEY_Greek_eta, 0, + 0, 0x1F93, /* U1f93 */ + IBUS_KEY_dead_ogonek, IBUS_KEY_dead_grave, IBUS_KEY_dead_iota, IBUS_KEY_Greek_omega, 0, + 0, 0x1FA3, /* U1fa3 */ + IBUS_KEY_dead_ogonek, IBUS_KEY_dead_acute, IBUS_KEY_space, 0, 0, + 0, 0x1FDE, /* U1fde */ + IBUS_KEY_dead_ogonek, IBUS_KEY_dead_acute, IBUS_KEY_Greek_ALPHA, 0, 0, + 0, 0x1F0D, /* U1f0d */ + IBUS_KEY_dead_ogonek, IBUS_KEY_dead_acute, IBUS_KEY_Greek_EPSILON, 0, 0, + 0, 0x1F1D, /* U1f1d */ + IBUS_KEY_dead_ogonek, IBUS_KEY_dead_acute, IBUS_KEY_Greek_ETA, 0, 0, + 0, 0x1F2D, /* U1f2d */ + IBUS_KEY_dead_ogonek, IBUS_KEY_dead_acute, IBUS_KEY_Greek_IOTA, 0, 0, + 0, 0x1F3D, /* U1f3d */ + IBUS_KEY_dead_ogonek, IBUS_KEY_dead_acute, IBUS_KEY_Greek_OMICRON, 0, 0, + 0, 0x1F4D, /* U1f4d */ + IBUS_KEY_dead_ogonek, IBUS_KEY_dead_acute, IBUS_KEY_Greek_UPSILON, 0, 0, + 0, 0x1F5D, /* U1f5d */ + IBUS_KEY_dead_ogonek, IBUS_KEY_dead_acute, IBUS_KEY_Greek_OMEGA, 0, 0, + 0, 0x1F6D, /* U1f6d */ + IBUS_KEY_dead_ogonek, IBUS_KEY_dead_acute, IBUS_KEY_Greek_alpha, 0, 0, + 0, 0x1F05, /* U1f05 */ + IBUS_KEY_dead_ogonek, IBUS_KEY_dead_acute, IBUS_KEY_Greek_epsilon, 0, 0, + 0, 0x1F15, /* U1f15 */ + IBUS_KEY_dead_ogonek, IBUS_KEY_dead_acute, IBUS_KEY_Greek_eta, 0, 0, + 0, 0x1F25, /* U1f25 */ + IBUS_KEY_dead_ogonek, IBUS_KEY_dead_acute, IBUS_KEY_Greek_iota, 0, 0, + 0, 0x1F35, /* U1f35 */ + IBUS_KEY_dead_ogonek, IBUS_KEY_dead_acute, IBUS_KEY_Greek_omicron, 0, 0, + 0, 0x1F45, /* U1f45 */ + IBUS_KEY_dead_ogonek, IBUS_KEY_dead_acute, IBUS_KEY_Greek_upsilon, 0, 0, + 0, 0x1F55, /* U1f55 */ + IBUS_KEY_dead_ogonek, IBUS_KEY_dead_acute, IBUS_KEY_Greek_omega, 0, 0, + 0, 0x1F65, /* U1f65 */ + IBUS_KEY_dead_ogonek, IBUS_KEY_dead_acute, IBUS_KEY_dead_iota, IBUS_KEY_Greek_ALPHA, 0, + 0, 0x1F8D, /* U1f8d */ + IBUS_KEY_dead_ogonek, IBUS_KEY_dead_acute, IBUS_KEY_dead_iota, IBUS_KEY_Greek_ETA, 0, + 0, 0x1F9D, /* U1f9d */ + IBUS_KEY_dead_ogonek, IBUS_KEY_dead_acute, IBUS_KEY_dead_iota, IBUS_KEY_Greek_OMEGA, 0, + 0, 0x1FAD, /* U1fad */ + IBUS_KEY_dead_ogonek, IBUS_KEY_dead_acute, IBUS_KEY_dead_iota, IBUS_KEY_Greek_alpha, 0, + 0, 0x1F85, /* U1f85 */ + IBUS_KEY_dead_ogonek, IBUS_KEY_dead_acute, IBUS_KEY_dead_iota, IBUS_KEY_Greek_eta, 0, + 0, 0x1F95, /* U1f95 */ + IBUS_KEY_dead_ogonek, IBUS_KEY_dead_acute, IBUS_KEY_dead_iota, IBUS_KEY_Greek_omega, 0, + 0, 0x1FA5, /* U1fa5 */ + IBUS_KEY_dead_ogonek, IBUS_KEY_dead_tilde, IBUS_KEY_space, 0, 0, + 0, 0x1FDF, /* U1fdf */ + IBUS_KEY_dead_ogonek, IBUS_KEY_dead_tilde, IBUS_KEY_Greek_ALPHA, 0, 0, + 0, 0x1F0F, /* U1f0f */ + IBUS_KEY_dead_ogonek, IBUS_KEY_dead_tilde, IBUS_KEY_Greek_ETA, 0, 0, + 0, 0x1F2F, /* U1f2f */ + IBUS_KEY_dead_ogonek, IBUS_KEY_dead_tilde, IBUS_KEY_Greek_IOTA, 0, 0, + 0, 0x1F3F, /* U1f3f */ + IBUS_KEY_dead_ogonek, IBUS_KEY_dead_tilde, IBUS_KEY_Greek_UPSILON, 0, 0, + 0, 0x1F5F, /* U1f5f */ + IBUS_KEY_dead_ogonek, IBUS_KEY_dead_tilde, IBUS_KEY_Greek_OMEGA, 0, 0, + 0, 0x1F6F, /* U1f6f */ + IBUS_KEY_dead_ogonek, IBUS_KEY_dead_tilde, IBUS_KEY_Greek_alpha, 0, 0, + 0, 0x1F07, /* U1f07 */ + IBUS_KEY_dead_ogonek, IBUS_KEY_dead_tilde, IBUS_KEY_Greek_eta, 0, 0, + 0, 0x1F27, /* U1f27 */ + IBUS_KEY_dead_ogonek, IBUS_KEY_dead_tilde, IBUS_KEY_Greek_iota, 0, 0, + 0, 0x1F37, /* U1f37 */ + IBUS_KEY_dead_ogonek, IBUS_KEY_dead_tilde, IBUS_KEY_Greek_upsilon, 0, 0, + 0, 0x1F57, /* U1f57 */ + IBUS_KEY_dead_ogonek, IBUS_KEY_dead_tilde, IBUS_KEY_Greek_omega, 0, 0, + 0, 0x1F67, /* U1f67 */ + IBUS_KEY_dead_ogonek, IBUS_KEY_dead_tilde, IBUS_KEY_dead_iota, IBUS_KEY_Greek_ALPHA, 0, + 0, 0x1F8F, /* U1f8f */ + IBUS_KEY_dead_ogonek, IBUS_KEY_dead_tilde, IBUS_KEY_dead_iota, IBUS_KEY_Greek_ETA, 0, + 0, 0x1F9F, /* U1f9f */ + IBUS_KEY_dead_ogonek, IBUS_KEY_dead_tilde, IBUS_KEY_dead_iota, IBUS_KEY_Greek_OMEGA, 0, + 0, 0x1FAF, /* U1faf */ + IBUS_KEY_dead_ogonek, IBUS_KEY_dead_tilde, IBUS_KEY_dead_iota, IBUS_KEY_Greek_alpha, 0, + 0, 0x1F87, /* U1f87 */ + IBUS_KEY_dead_ogonek, IBUS_KEY_dead_tilde, IBUS_KEY_dead_iota, IBUS_KEY_Greek_eta, 0, + 0, 0x1F97, /* U1f97 */ + IBUS_KEY_dead_ogonek, IBUS_KEY_dead_tilde, IBUS_KEY_dead_iota, IBUS_KEY_Greek_omega, 0, + 0, 0x1FA7, /* U1fa7 */ + IBUS_KEY_dead_ogonek, IBUS_KEY_dead_ogonek, 0, 0, 0, + 0, 0x1FFE, /* U1ffe */ + IBUS_KEY_dead_ogonek, IBUS_KEY_dead_iota, IBUS_KEY_Greek_ALPHA, 0, 0, + 0, 0x1F89, /* U1f89 */ + IBUS_KEY_dead_ogonek, IBUS_KEY_dead_iota, IBUS_KEY_Greek_ETA, 0, 0, + 0, 0x1F99, /* U1f99 */ + IBUS_KEY_dead_ogonek, IBUS_KEY_dead_iota, IBUS_KEY_Greek_OMEGA, 0, 0, + 0, 0x1FA9, /* U1fa9 */ + IBUS_KEY_dead_ogonek, IBUS_KEY_dead_iota, IBUS_KEY_Greek_alpha, 0, 0, + 0, 0x1F81, /* U1f81 */ + IBUS_KEY_dead_ogonek, IBUS_KEY_dead_iota, IBUS_KEY_Greek_eta, 0, 0, + 0, 0x1F91, /* U1f91 */ + IBUS_KEY_dead_ogonek, IBUS_KEY_dead_iota, IBUS_KEY_Greek_omega, 0, 0, + 0, 0x1FA1, /* U1fa1 */ + IBUS_KEY_dead_ogonek, IBUS_KEY_dead_iota, IBUS_KEY_dead_grave, IBUS_KEY_Greek_ALPHA, 0, + 0, 0x1F8B, /* U1f8b */ + IBUS_KEY_dead_ogonek, IBUS_KEY_dead_iota, IBUS_KEY_dead_grave, IBUS_KEY_Greek_ETA, 0, + 0, 0x1F9B, /* U1f9b */ + IBUS_KEY_dead_ogonek, IBUS_KEY_dead_iota, IBUS_KEY_dead_grave, IBUS_KEY_Greek_OMEGA, 0, + 0, 0x1FAB, /* U1fab */ + IBUS_KEY_dead_ogonek, IBUS_KEY_dead_iota, IBUS_KEY_dead_grave, IBUS_KEY_Greek_alpha, 0, + 0, 0x1F83, /* U1f83 */ + IBUS_KEY_dead_ogonek, IBUS_KEY_dead_iota, IBUS_KEY_dead_grave, IBUS_KEY_Greek_eta, 0, + 0, 0x1F93, /* U1f93 */ + IBUS_KEY_dead_ogonek, IBUS_KEY_dead_iota, IBUS_KEY_dead_grave, IBUS_KEY_Greek_omega, 0, + 0, 0x1FA3, /* U1fa3 */ + IBUS_KEY_dead_ogonek, IBUS_KEY_dead_iota, IBUS_KEY_dead_acute, IBUS_KEY_Greek_ALPHA, 0, + 0, 0x1F8D, /* U1f8d */ + IBUS_KEY_dead_ogonek, IBUS_KEY_dead_iota, IBUS_KEY_dead_acute, IBUS_KEY_Greek_ETA, 0, + 0, 0x1F9D, /* U1f9d */ + IBUS_KEY_dead_ogonek, IBUS_KEY_dead_iota, IBUS_KEY_dead_acute, IBUS_KEY_Greek_OMEGA, 0, + 0, 0x1FAD, /* U1fad */ + IBUS_KEY_dead_ogonek, IBUS_KEY_dead_iota, IBUS_KEY_dead_acute, IBUS_KEY_Greek_alpha, 0, + 0, 0x1F85, /* U1f85 */ + IBUS_KEY_dead_ogonek, IBUS_KEY_dead_iota, IBUS_KEY_dead_acute, IBUS_KEY_Greek_eta, 0, + 0, 0x1F95, /* U1f95 */ + IBUS_KEY_dead_ogonek, IBUS_KEY_dead_iota, IBUS_KEY_dead_acute, IBUS_KEY_Greek_omega, 0, + 0, 0x1FA5, /* U1fa5 */ + IBUS_KEY_dead_ogonek, IBUS_KEY_dead_iota, IBUS_KEY_dead_tilde, IBUS_KEY_Greek_ALPHA, 0, + 0, 0x1F8F, /* U1f8f */ + IBUS_KEY_dead_ogonek, IBUS_KEY_dead_iota, IBUS_KEY_dead_tilde, IBUS_KEY_Greek_ETA, 0, + 0, 0x1F9F, /* U1f9f */ + IBUS_KEY_dead_ogonek, IBUS_KEY_dead_iota, IBUS_KEY_dead_tilde, IBUS_KEY_Greek_OMEGA, 0, + 0, 0x1FAF, /* U1faf */ + IBUS_KEY_dead_ogonek, IBUS_KEY_dead_iota, IBUS_KEY_dead_tilde, IBUS_KEY_Greek_alpha, 0, + 0, 0x1F87, /* U1f87 */ + IBUS_KEY_dead_ogonek, IBUS_KEY_dead_iota, IBUS_KEY_dead_tilde, IBUS_KEY_Greek_eta, 0, + 0, 0x1F97, /* U1f97 */ + IBUS_KEY_dead_ogonek, IBUS_KEY_dead_iota, IBUS_KEY_dead_tilde, IBUS_KEY_Greek_omega, 0, + 0, 0x1FA7, /* U1fa7 */ + IBUS_KEY_dead_iota, IBUS_KEY_underscore, 0, 0, 0, + 0, 0x1FBE, /* U1fbe */ + IBUS_KEY_dead_iota, IBUS_KEY_dead_grave, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_ALPHA, 0, + 0, 0x1F8B, /* U1f8b */ + IBUS_KEY_dead_iota, IBUS_KEY_dead_grave, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_ETA, 0, + 0, 0x1F9B, /* U1f9b */ + IBUS_KEY_dead_iota, IBUS_KEY_dead_grave, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_OMEGA, 0, + 0, 0x1FAB, /* U1fab */ + IBUS_KEY_dead_iota, IBUS_KEY_dead_grave, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_alpha, 0, + 0, 0x1F83, /* U1f83 */ + IBUS_KEY_dead_iota, IBUS_KEY_dead_grave, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_eta, 0, + 0, 0x1F93, /* U1f93 */ + IBUS_KEY_dead_iota, IBUS_KEY_dead_grave, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_omega, 0, + 0, 0x1FA3, /* U1fa3 */ + IBUS_KEY_dead_iota, IBUS_KEY_dead_grave, IBUS_KEY_dead_horn, IBUS_KEY_Greek_ALPHA, 0, + 0, 0x1F8A, /* U1f8a */ + IBUS_KEY_dead_iota, IBUS_KEY_dead_grave, IBUS_KEY_dead_horn, IBUS_KEY_Greek_ETA, 0, + 0, 0x1F9A, /* U1f9a */ + IBUS_KEY_dead_iota, IBUS_KEY_dead_grave, IBUS_KEY_dead_horn, IBUS_KEY_Greek_OMEGA, 0, + 0, 0x1FAA, /* U1faa */ + IBUS_KEY_dead_iota, IBUS_KEY_dead_grave, IBUS_KEY_dead_horn, IBUS_KEY_Greek_alpha, 0, + 0, 0x1F82, /* U1f82 */ + IBUS_KEY_dead_iota, IBUS_KEY_dead_grave, IBUS_KEY_dead_horn, IBUS_KEY_Greek_eta, 0, + 0, 0x1F92, /* U1f92 */ + IBUS_KEY_dead_iota, IBUS_KEY_dead_grave, IBUS_KEY_dead_horn, IBUS_KEY_Greek_omega, 0, + 0, 0x1FA2, /* U1fa2 */ + IBUS_KEY_dead_iota, IBUS_KEY_dead_acute, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_ALPHA, 0, + 0, 0x1F8D, /* U1f8d */ + IBUS_KEY_dead_iota, IBUS_KEY_dead_acute, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_ETA, 0, + 0, 0x1F9D, /* U1f9d */ + IBUS_KEY_dead_iota, IBUS_KEY_dead_acute, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_OMEGA, 0, + 0, 0x1FAD, /* U1fad */ + IBUS_KEY_dead_iota, IBUS_KEY_dead_acute, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_alpha, 0, + 0, 0x1F85, /* U1f85 */ + IBUS_KEY_dead_iota, IBUS_KEY_dead_acute, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_eta, 0, + 0, 0x1F95, /* U1f95 */ + IBUS_KEY_dead_iota, IBUS_KEY_dead_acute, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_omega, 0, + 0, 0x1FA5, /* U1fa5 */ + IBUS_KEY_dead_iota, IBUS_KEY_dead_acute, IBUS_KEY_dead_horn, IBUS_KEY_Greek_ALPHA, 0, + 0, 0x1F8C, /* U1f8c */ + IBUS_KEY_dead_iota, IBUS_KEY_dead_acute, IBUS_KEY_dead_horn, IBUS_KEY_Greek_ETA, 0, + 0, 0x1F9C, /* U1f9c */ + IBUS_KEY_dead_iota, IBUS_KEY_dead_acute, IBUS_KEY_dead_horn, IBUS_KEY_Greek_OMEGA, 0, + 0, 0x1FAC, /* U1fac */ + IBUS_KEY_dead_iota, IBUS_KEY_dead_acute, IBUS_KEY_dead_horn, IBUS_KEY_Greek_alpha, 0, + 0, 0x1F84, /* U1f84 */ + IBUS_KEY_dead_iota, IBUS_KEY_dead_acute, IBUS_KEY_dead_horn, IBUS_KEY_Greek_eta, 0, + 0, 0x1F94, /* U1f94 */ + IBUS_KEY_dead_iota, IBUS_KEY_dead_acute, IBUS_KEY_dead_horn, IBUS_KEY_Greek_omega, 0, + 0, 0x1FA4, /* U1fa4 */ + IBUS_KEY_dead_iota, IBUS_KEY_dead_tilde, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_ALPHA, 0, + 0, 0x1F8F, /* U1f8f */ + IBUS_KEY_dead_iota, IBUS_KEY_dead_tilde, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_ETA, 0, + 0, 0x1F9F, /* U1f9f */ + IBUS_KEY_dead_iota, IBUS_KEY_dead_tilde, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_OMEGA, 0, + 0, 0x1FAF, /* U1faf */ + IBUS_KEY_dead_iota, IBUS_KEY_dead_tilde, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_alpha, 0, + 0, 0x1F87, /* U1f87 */ + IBUS_KEY_dead_iota, IBUS_KEY_dead_tilde, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_eta, 0, + 0, 0x1F97, /* U1f97 */ + IBUS_KEY_dead_iota, IBUS_KEY_dead_tilde, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_omega, 0, + 0, 0x1FA7, /* U1fa7 */ + IBUS_KEY_dead_iota, IBUS_KEY_dead_tilde, IBUS_KEY_dead_horn, IBUS_KEY_Greek_ALPHA, 0, + 0, 0x1F8E, /* U1f8e */ + IBUS_KEY_dead_iota, IBUS_KEY_dead_tilde, IBUS_KEY_dead_horn, IBUS_KEY_Greek_ETA, 0, + 0, 0x1F9E, /* U1f9e */ + IBUS_KEY_dead_iota, IBUS_KEY_dead_tilde, IBUS_KEY_dead_horn, IBUS_KEY_Greek_OMEGA, 0, + 0, 0x1FAE, /* U1fae */ + IBUS_KEY_dead_iota, IBUS_KEY_dead_tilde, IBUS_KEY_dead_horn, IBUS_KEY_Greek_alpha, 0, + 0, 0x1F86, /* U1f86 */ + IBUS_KEY_dead_iota, IBUS_KEY_dead_tilde, IBUS_KEY_dead_horn, IBUS_KEY_Greek_eta, 0, + 0, 0x1F96, /* U1f96 */ + IBUS_KEY_dead_iota, IBUS_KEY_dead_tilde, IBUS_KEY_dead_horn, IBUS_KEY_Greek_omega, 0, + 0, 0x1FA6, /* U1fa6 */ + IBUS_KEY_dead_iota, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_ALPHA, 0, 0, + 0, 0x1F89, /* U1f89 */ + IBUS_KEY_dead_iota, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_ETA, 0, 0, + 0, 0x1F99, /* U1f99 */ + IBUS_KEY_dead_iota, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_OMEGA, 0, 0, + 0, 0x1FA9, /* U1fa9 */ + IBUS_KEY_dead_iota, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_alpha, 0, 0, + 0, 0x1F81, /* U1f81 */ + IBUS_KEY_dead_iota, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_eta, 0, 0, + 0, 0x1F91, /* U1f91 */ + IBUS_KEY_dead_iota, IBUS_KEY_dead_ogonek, IBUS_KEY_Greek_omega, 0, 0, + 0, 0x1FA1, /* U1fa1 */ + IBUS_KEY_dead_iota, IBUS_KEY_dead_ogonek, IBUS_KEY_dead_grave, IBUS_KEY_Greek_ALPHA, 0, + 0, 0x1F8B, /* U1f8b */ + IBUS_KEY_dead_iota, IBUS_KEY_dead_ogonek, IBUS_KEY_dead_grave, IBUS_KEY_Greek_ETA, 0, + 0, 0x1F9B, /* U1f9b */ + IBUS_KEY_dead_iota, IBUS_KEY_dead_ogonek, IBUS_KEY_dead_grave, IBUS_KEY_Greek_OMEGA, 0, + 0, 0x1FAB, /* U1fab */ + IBUS_KEY_dead_iota, IBUS_KEY_dead_ogonek, IBUS_KEY_dead_grave, IBUS_KEY_Greek_alpha, 0, + 0, 0x1F83, /* U1f83 */ + IBUS_KEY_dead_iota, IBUS_KEY_dead_ogonek, IBUS_KEY_dead_grave, IBUS_KEY_Greek_eta, 0, + 0, 0x1F93, /* U1f93 */ + IBUS_KEY_dead_iota, IBUS_KEY_dead_ogonek, IBUS_KEY_dead_grave, IBUS_KEY_Greek_omega, 0, + 0, 0x1FA3, /* U1fa3 */ + IBUS_KEY_dead_iota, IBUS_KEY_dead_ogonek, IBUS_KEY_dead_acute, IBUS_KEY_Greek_ALPHA, 0, + 0, 0x1F8D, /* U1f8d */ + IBUS_KEY_dead_iota, IBUS_KEY_dead_ogonek, IBUS_KEY_dead_acute, IBUS_KEY_Greek_ETA, 0, + 0, 0x1F9D, /* U1f9d */ + IBUS_KEY_dead_iota, IBUS_KEY_dead_ogonek, IBUS_KEY_dead_acute, IBUS_KEY_Greek_OMEGA, 0, + 0, 0x1FAD, /* U1fad */ + IBUS_KEY_dead_iota, IBUS_KEY_dead_ogonek, IBUS_KEY_dead_acute, IBUS_KEY_Greek_alpha, 0, + 0, 0x1F85, /* U1f85 */ + IBUS_KEY_dead_iota, IBUS_KEY_dead_ogonek, IBUS_KEY_dead_acute, IBUS_KEY_Greek_eta, 0, + 0, 0x1F95, /* U1f95 */ + IBUS_KEY_dead_iota, IBUS_KEY_dead_ogonek, IBUS_KEY_dead_acute, IBUS_KEY_Greek_omega, 0, + 0, 0x1FA5, /* U1fa5 */ + IBUS_KEY_dead_iota, IBUS_KEY_dead_ogonek, IBUS_KEY_dead_tilde, IBUS_KEY_Greek_ALPHA, 0, + 0, 0x1F8F, /* U1f8f */ + IBUS_KEY_dead_iota, IBUS_KEY_dead_ogonek, IBUS_KEY_dead_tilde, IBUS_KEY_Greek_ETA, 0, + 0, 0x1F9F, /* U1f9f */ + IBUS_KEY_dead_iota, IBUS_KEY_dead_ogonek, IBUS_KEY_dead_tilde, IBUS_KEY_Greek_OMEGA, 0, + 0, 0x1FAF, /* U1faf */ + IBUS_KEY_dead_iota, IBUS_KEY_dead_ogonek, IBUS_KEY_dead_tilde, IBUS_KEY_Greek_alpha, 0, + 0, 0x1F87, /* U1f87 */ + IBUS_KEY_dead_iota, IBUS_KEY_dead_ogonek, IBUS_KEY_dead_tilde, IBUS_KEY_Greek_eta, 0, + 0, 0x1F97, /* U1f97 */ + IBUS_KEY_dead_iota, IBUS_KEY_dead_ogonek, IBUS_KEY_dead_tilde, IBUS_KEY_Greek_omega, 0, + 0, 0x1FA7, /* U1fa7 */ + IBUS_KEY_dead_iota, IBUS_KEY_dead_horn, IBUS_KEY_Greek_ALPHA, 0, 0, + 0, 0x1F88, /* U1f88 */ + IBUS_KEY_dead_iota, IBUS_KEY_dead_horn, IBUS_KEY_Greek_ETA, 0, 0, + 0, 0x1F98, /* U1f98 */ + IBUS_KEY_dead_iota, IBUS_KEY_dead_horn, IBUS_KEY_Greek_OMEGA, 0, 0, + 0, 0x1FA8, /* U1fa8 */ + IBUS_KEY_dead_iota, IBUS_KEY_dead_horn, IBUS_KEY_Greek_alpha, 0, 0, + 0, 0x1F80, /* U1f80 */ + IBUS_KEY_dead_iota, IBUS_KEY_dead_horn, IBUS_KEY_Greek_eta, 0, 0, + 0, 0x1F90, /* U1f90 */ + IBUS_KEY_dead_iota, IBUS_KEY_dead_horn, IBUS_KEY_Greek_omega, 0, 0, + 0, 0x1FA0, /* U1fa0 */ + IBUS_KEY_dead_iota, IBUS_KEY_dead_horn, IBUS_KEY_dead_grave, IBUS_KEY_Greek_ALPHA, 0, + 0, 0x1F8A, /* U1f8a */ + IBUS_KEY_dead_iota, IBUS_KEY_dead_horn, IBUS_KEY_dead_grave, IBUS_KEY_Greek_ETA, 0, + 0, 0x1F9A, /* U1f9a */ + IBUS_KEY_dead_iota, IBUS_KEY_dead_horn, IBUS_KEY_dead_grave, IBUS_KEY_Greek_OMEGA, 0, + 0, 0x1FAA, /* U1faa */ + IBUS_KEY_dead_iota, IBUS_KEY_dead_horn, IBUS_KEY_dead_grave, IBUS_KEY_Greek_alpha, 0, + 0, 0x1F82, /* U1f82 */ + IBUS_KEY_dead_iota, IBUS_KEY_dead_horn, IBUS_KEY_dead_grave, IBUS_KEY_Greek_eta, 0, + 0, 0x1F92, /* U1f92 */ + IBUS_KEY_dead_iota, IBUS_KEY_dead_horn, IBUS_KEY_dead_grave, IBUS_KEY_Greek_omega, 0, + 0, 0x1FA2, /* U1fa2 */ + IBUS_KEY_dead_iota, IBUS_KEY_dead_horn, IBUS_KEY_dead_acute, IBUS_KEY_Greek_ALPHA, 0, + 0, 0x1F8C, /* U1f8c */ + IBUS_KEY_dead_iota, IBUS_KEY_dead_horn, IBUS_KEY_dead_acute, IBUS_KEY_Greek_ETA, 0, + 0, 0x1F9C, /* U1f9c */ + IBUS_KEY_dead_iota, IBUS_KEY_dead_horn, IBUS_KEY_dead_acute, IBUS_KEY_Greek_OMEGA, 0, + 0, 0x1FAC, /* U1fac */ + IBUS_KEY_dead_iota, IBUS_KEY_dead_horn, IBUS_KEY_dead_acute, IBUS_KEY_Greek_alpha, 0, + 0, 0x1F84, /* U1f84 */ + IBUS_KEY_dead_iota, IBUS_KEY_dead_horn, IBUS_KEY_dead_acute, IBUS_KEY_Greek_eta, 0, + 0, 0x1F94, /* U1f94 */ + IBUS_KEY_dead_iota, IBUS_KEY_dead_horn, IBUS_KEY_dead_acute, IBUS_KEY_Greek_omega, 0, + 0, 0x1FA4, /* U1fa4 */ + IBUS_KEY_dead_iota, IBUS_KEY_dead_horn, IBUS_KEY_dead_tilde, IBUS_KEY_Greek_ALPHA, 0, + 0, 0x1F8E, /* U1f8e */ + IBUS_KEY_dead_iota, IBUS_KEY_dead_horn, IBUS_KEY_dead_tilde, IBUS_KEY_Greek_ETA, 0, + 0, 0x1F9E, /* U1f9e */ + IBUS_KEY_dead_iota, IBUS_KEY_dead_horn, IBUS_KEY_dead_tilde, IBUS_KEY_Greek_OMEGA, 0, + 0, 0x1FAE, /* U1fae */ + IBUS_KEY_dead_iota, IBUS_KEY_dead_horn, IBUS_KEY_dead_tilde, IBUS_KEY_Greek_alpha, 0, + 0, 0x1F86, /* U1f86 */ + IBUS_KEY_dead_iota, IBUS_KEY_dead_horn, IBUS_KEY_dead_tilde, IBUS_KEY_Greek_eta, 0, + 0, 0x1F96, /* U1f96 */ + IBUS_KEY_dead_iota, IBUS_KEY_dead_horn, IBUS_KEY_dead_tilde, IBUS_KEY_Greek_omega, 0, + 0, 0x1FA6, /* U1fa6 */ + IBUS_KEY_dead_horn, IBUS_KEY_space, 0, 0, 0, + 0, 0x1FBF, /* U1fbf */ + IBUS_KEY_dead_horn, IBUS_KEY_underscore, 0, 0, 0, + 0, 0x1FBD, /* U1fbd */ + IBUS_KEY_dead_horn, IBUS_KEY_Greek_ALPHA, 0, 0, 0, + 0, 0x1F08, /* U1f08 */ + IBUS_KEY_dead_horn, IBUS_KEY_Greek_EPSILON, 0, 0, 0, + 0, 0x1F18, /* U1f18 */ + IBUS_KEY_dead_horn, IBUS_KEY_Greek_ETA, 0, 0, 0, + 0, 0x1F28, /* U1f28 */ + IBUS_KEY_dead_horn, IBUS_KEY_Greek_IOTA, 0, 0, 0, + 0, 0x1F38, /* U1f38 */ + IBUS_KEY_dead_horn, IBUS_KEY_Greek_OMICRON, 0, 0, 0, + 0, 0x1F48, /* U1f48 */ + IBUS_KEY_dead_horn, IBUS_KEY_Greek_OMEGA, 0, 0, 0, + 0, 0x1F68, /* U1f68 */ + IBUS_KEY_dead_horn, IBUS_KEY_Greek_alpha, 0, 0, 0, + 0, 0x1F00, /* U1f00 */ + IBUS_KEY_dead_horn, IBUS_KEY_Greek_epsilon, 0, 0, 0, + 0, 0x1F10, /* U1f10 */ + IBUS_KEY_dead_horn, IBUS_KEY_Greek_eta, 0, 0, 0, + 0, 0x1F20, /* U1f20 */ + IBUS_KEY_dead_horn, IBUS_KEY_Greek_iota, 0, 0, 0, + 0, 0x1F30, /* U1f30 */ + IBUS_KEY_dead_horn, IBUS_KEY_Greek_omicron, 0, 0, 0, + 0, 0x1F40, /* U1f40 */ + IBUS_KEY_dead_horn, IBUS_KEY_Greek_rho, 0, 0, 0, + 0, 0x1FE4, /* U1fe4 */ + IBUS_KEY_dead_horn, IBUS_KEY_Greek_upsilon, 0, 0, 0, + 0, 0x1F50, /* U1f50 */ + IBUS_KEY_dead_horn, IBUS_KEY_Greek_omega, 0, 0, 0, + 0, 0x1F60, /* U1f60 */ + IBUS_KEY_dead_horn, IBUS_KEY_dead_grave, IBUS_KEY_space, 0, 0, + 0, 0x1FCD, /* U1fcd */ + IBUS_KEY_dead_horn, IBUS_KEY_dead_grave, IBUS_KEY_Greek_ALPHA, 0, 0, + 0, 0x1F0A, /* U1f0a */ + IBUS_KEY_dead_horn, IBUS_KEY_dead_grave, IBUS_KEY_Greek_EPSILON, 0, 0, + 0, 0x1F1A, /* U1f1a */ + IBUS_KEY_dead_horn, IBUS_KEY_dead_grave, IBUS_KEY_Greek_ETA, 0, 0, + 0, 0x1F2A, /* U1f2a */ + IBUS_KEY_dead_horn, IBUS_KEY_dead_grave, IBUS_KEY_Greek_IOTA, 0, 0, + 0, 0x1F3A, /* U1f3a */ + IBUS_KEY_dead_horn, IBUS_KEY_dead_grave, IBUS_KEY_Greek_OMICRON, 0, 0, + 0, 0x1F4A, /* U1f4a */ + IBUS_KEY_dead_horn, IBUS_KEY_dead_grave, IBUS_KEY_Greek_OMEGA, 0, 0, + 0, 0x1F6A, /* U1f6a */ + IBUS_KEY_dead_horn, IBUS_KEY_dead_grave, IBUS_KEY_Greek_alpha, 0, 0, + 0, 0x1F02, /* U1f02 */ + IBUS_KEY_dead_horn, IBUS_KEY_dead_grave, IBUS_KEY_Greek_epsilon, 0, 0, + 0, 0x1F12, /* U1f12 */ + IBUS_KEY_dead_horn, IBUS_KEY_dead_grave, IBUS_KEY_Greek_eta, 0, 0, + 0, 0x1F22, /* U1f22 */ + IBUS_KEY_dead_horn, IBUS_KEY_dead_grave, IBUS_KEY_Greek_iota, 0, 0, + 0, 0x1F32, /* U1f32 */ + IBUS_KEY_dead_horn, IBUS_KEY_dead_grave, IBUS_KEY_Greek_omicron, 0, 0, + 0, 0x1F42, /* U1f42 */ + IBUS_KEY_dead_horn, IBUS_KEY_dead_grave, IBUS_KEY_Greek_upsilon, 0, 0, + 0, 0x1F52, /* U1f52 */ + IBUS_KEY_dead_horn, IBUS_KEY_dead_grave, IBUS_KEY_Greek_omega, 0, 0, + 0, 0x1F62, /* U1f62 */ + IBUS_KEY_dead_horn, IBUS_KEY_dead_grave, IBUS_KEY_dead_iota, IBUS_KEY_Greek_ALPHA, 0, + 0, 0x1F8A, /* U1f8a */ + IBUS_KEY_dead_horn, IBUS_KEY_dead_grave, IBUS_KEY_dead_iota, IBUS_KEY_Greek_ETA, 0, + 0, 0x1F9A, /* U1f9a */ + IBUS_KEY_dead_horn, IBUS_KEY_dead_grave, IBUS_KEY_dead_iota, IBUS_KEY_Greek_OMEGA, 0, + 0, 0x1FAA, /* U1faa */ + IBUS_KEY_dead_horn, IBUS_KEY_dead_grave, IBUS_KEY_dead_iota, IBUS_KEY_Greek_alpha, 0, + 0, 0x1F82, /* U1f82 */ + IBUS_KEY_dead_horn, IBUS_KEY_dead_grave, IBUS_KEY_dead_iota, IBUS_KEY_Greek_eta, 0, + 0, 0x1F92, /* U1f92 */ + IBUS_KEY_dead_horn, IBUS_KEY_dead_grave, IBUS_KEY_dead_iota, IBUS_KEY_Greek_omega, 0, + 0, 0x1FA2, /* U1fa2 */ + IBUS_KEY_dead_horn, IBUS_KEY_dead_acute, IBUS_KEY_space, 0, 0, + 0, 0x1FCE, /* U1fce */ + IBUS_KEY_dead_horn, IBUS_KEY_dead_acute, IBUS_KEY_Greek_ALPHA, 0, 0, + 0, 0x1F0C, /* U1f0c */ + IBUS_KEY_dead_horn, IBUS_KEY_dead_acute, IBUS_KEY_Greek_EPSILON, 0, 0, + 0, 0x1F1C, /* U1f1c */ + IBUS_KEY_dead_horn, IBUS_KEY_dead_acute, IBUS_KEY_Greek_ETA, 0, 0, + 0, 0x1F2C, /* U1f2c */ + IBUS_KEY_dead_horn, IBUS_KEY_dead_acute, IBUS_KEY_Greek_IOTA, 0, 0, + 0, 0x1F3C, /* U1f3c */ + IBUS_KEY_dead_horn, IBUS_KEY_dead_acute, IBUS_KEY_Greek_OMICRON, 0, 0, + 0, 0x1F4C, /* U1f4c */ + IBUS_KEY_dead_horn, IBUS_KEY_dead_acute, IBUS_KEY_Greek_OMEGA, 0, 0, + 0, 0x1F6C, /* U1f6c */ + IBUS_KEY_dead_horn, IBUS_KEY_dead_acute, IBUS_KEY_Greek_alpha, 0, 0, + 0, 0x1F04, /* U1f04 */ + IBUS_KEY_dead_horn, IBUS_KEY_dead_acute, IBUS_KEY_Greek_epsilon, 0, 0, + 0, 0x1F14, /* U1f14 */ + IBUS_KEY_dead_horn, IBUS_KEY_dead_acute, IBUS_KEY_Greek_eta, 0, 0, + 0, 0x1F24, /* U1f24 */ + IBUS_KEY_dead_horn, IBUS_KEY_dead_acute, IBUS_KEY_Greek_iota, 0, 0, + 0, 0x1F34, /* U1f34 */ + IBUS_KEY_dead_horn, IBUS_KEY_dead_acute, IBUS_KEY_Greek_omicron, 0, 0, + 0, 0x1F44, /* U1f44 */ + IBUS_KEY_dead_horn, IBUS_KEY_dead_acute, IBUS_KEY_Greek_upsilon, 0, 0, + 0, 0x1F54, /* U1f54 */ + IBUS_KEY_dead_horn, IBUS_KEY_dead_acute, IBUS_KEY_Greek_omega, 0, 0, + 0, 0x1F64, /* U1f64 */ + IBUS_KEY_dead_horn, IBUS_KEY_dead_acute, IBUS_KEY_dead_iota, IBUS_KEY_Greek_ALPHA, 0, + 0, 0x1F8C, /* U1f8c */ + IBUS_KEY_dead_horn, IBUS_KEY_dead_acute, IBUS_KEY_dead_iota, IBUS_KEY_Greek_ETA, 0, + 0, 0x1F9C, /* U1f9c */ + IBUS_KEY_dead_horn, IBUS_KEY_dead_acute, IBUS_KEY_dead_iota, IBUS_KEY_Greek_OMEGA, 0, + 0, 0x1FAC, /* U1fac */ + IBUS_KEY_dead_horn, IBUS_KEY_dead_acute, IBUS_KEY_dead_iota, IBUS_KEY_Greek_alpha, 0, + 0, 0x1F84, /* U1f84 */ + IBUS_KEY_dead_horn, IBUS_KEY_dead_acute, IBUS_KEY_dead_iota, IBUS_KEY_Greek_eta, 0, + 0, 0x1F94, /* U1f94 */ + IBUS_KEY_dead_horn, IBUS_KEY_dead_acute, IBUS_KEY_dead_iota, IBUS_KEY_Greek_omega, 0, + 0, 0x1FA4, /* U1fa4 */ + IBUS_KEY_dead_horn, IBUS_KEY_dead_tilde, IBUS_KEY_space, 0, 0, + 0, 0x1FCF, /* U1fcf */ + IBUS_KEY_dead_horn, IBUS_KEY_dead_tilde, IBUS_KEY_Greek_ALPHA, 0, 0, + 0, 0x1F0E, /* U1f0e */ + IBUS_KEY_dead_horn, IBUS_KEY_dead_tilde, IBUS_KEY_Greek_ETA, 0, 0, + 0, 0x1F2E, /* U1f2e */ + IBUS_KEY_dead_horn, IBUS_KEY_dead_tilde, IBUS_KEY_Greek_IOTA, 0, 0, + 0, 0x1F3E, /* U1f3e */ + IBUS_KEY_dead_horn, IBUS_KEY_dead_tilde, IBUS_KEY_Greek_OMEGA, 0, 0, + 0, 0x1F6E, /* U1f6e */ + IBUS_KEY_dead_horn, IBUS_KEY_dead_tilde, IBUS_KEY_Greek_alpha, 0, 0, + 0, 0x1F06, /* U1f06 */ + IBUS_KEY_dead_horn, IBUS_KEY_dead_tilde, IBUS_KEY_Greek_eta, 0, 0, + 0, 0x1F26, /* U1f26 */ + IBUS_KEY_dead_horn, IBUS_KEY_dead_tilde, IBUS_KEY_Greek_iota, 0, 0, + 0, 0x1F36, /* U1f36 */ + IBUS_KEY_dead_horn, IBUS_KEY_dead_tilde, IBUS_KEY_Greek_upsilon, 0, 0, + 0, 0x1F56, /* U1f56 */ + IBUS_KEY_dead_horn, IBUS_KEY_dead_tilde, IBUS_KEY_Greek_omega, 0, 0, + 0, 0x1F66, /* U1f66 */ + IBUS_KEY_dead_horn, IBUS_KEY_dead_tilde, IBUS_KEY_dead_iota, IBUS_KEY_Greek_ALPHA, 0, + 0, 0x1F8E, /* U1f8e */ + IBUS_KEY_dead_horn, IBUS_KEY_dead_tilde, IBUS_KEY_dead_iota, IBUS_KEY_Greek_ETA, 0, + 0, 0x1F9E, /* U1f9e */ + IBUS_KEY_dead_horn, IBUS_KEY_dead_tilde, IBUS_KEY_dead_iota, IBUS_KEY_Greek_OMEGA, 0, + 0, 0x1FAE, /* U1fae */ + IBUS_KEY_dead_horn, IBUS_KEY_dead_tilde, IBUS_KEY_dead_iota, IBUS_KEY_Greek_alpha, 0, + 0, 0x1F86, /* U1f86 */ + IBUS_KEY_dead_horn, IBUS_KEY_dead_tilde, IBUS_KEY_dead_iota, IBUS_KEY_Greek_eta, 0, + 0, 0x1F96, /* U1f96 */ + IBUS_KEY_dead_horn, IBUS_KEY_dead_tilde, IBUS_KEY_dead_iota, IBUS_KEY_Greek_omega, 0, + 0, 0x1FA6, /* U1fa6 */ + IBUS_KEY_dead_horn, IBUS_KEY_dead_iota, IBUS_KEY_Greek_ALPHA, 0, 0, + 0, 0x1F88, /* U1f88 */ + IBUS_KEY_dead_horn, IBUS_KEY_dead_iota, IBUS_KEY_Greek_ETA, 0, 0, + 0, 0x1F98, /* U1f98 */ + IBUS_KEY_dead_horn, IBUS_KEY_dead_iota, IBUS_KEY_Greek_OMEGA, 0, 0, + 0, 0x1FA8, /* U1fa8 */ + IBUS_KEY_dead_horn, IBUS_KEY_dead_iota, IBUS_KEY_Greek_alpha, 0, 0, + 0, 0x1F80, /* U1f80 */ + IBUS_KEY_dead_horn, IBUS_KEY_dead_iota, IBUS_KEY_Greek_eta, 0, 0, + 0, 0x1F90, /* U1f90 */ + IBUS_KEY_dead_horn, IBUS_KEY_dead_iota, IBUS_KEY_Greek_omega, 0, 0, + 0, 0x1FA0, /* U1fa0 */ + IBUS_KEY_dead_horn, IBUS_KEY_dead_iota, IBUS_KEY_dead_grave, IBUS_KEY_Greek_ALPHA, 0, + 0, 0x1F8A, /* U1f8a */ + IBUS_KEY_dead_horn, IBUS_KEY_dead_iota, IBUS_KEY_dead_grave, IBUS_KEY_Greek_ETA, 0, + 0, 0x1F9A, /* U1f9a */ + IBUS_KEY_dead_horn, IBUS_KEY_dead_iota, IBUS_KEY_dead_grave, IBUS_KEY_Greek_OMEGA, 0, + 0, 0x1FAA, /* U1faa */ + IBUS_KEY_dead_horn, IBUS_KEY_dead_iota, IBUS_KEY_dead_grave, IBUS_KEY_Greek_alpha, 0, + 0, 0x1F82, /* U1f82 */ + IBUS_KEY_dead_horn, IBUS_KEY_dead_iota, IBUS_KEY_dead_grave, IBUS_KEY_Greek_eta, 0, + 0, 0x1F92, /* U1f92 */ + IBUS_KEY_dead_horn, IBUS_KEY_dead_iota, IBUS_KEY_dead_grave, IBUS_KEY_Greek_omega, 0, + 0, 0x1FA2, /* U1fa2 */ + IBUS_KEY_dead_horn, IBUS_KEY_dead_iota, IBUS_KEY_dead_acute, IBUS_KEY_Greek_ALPHA, 0, + 0, 0x1F8C, /* U1f8c */ + IBUS_KEY_dead_horn, IBUS_KEY_dead_iota, IBUS_KEY_dead_acute, IBUS_KEY_Greek_ETA, 0, + 0, 0x1F9C, /* U1f9c */ + IBUS_KEY_dead_horn, IBUS_KEY_dead_iota, IBUS_KEY_dead_acute, IBUS_KEY_Greek_OMEGA, 0, + 0, 0x1FAC, /* U1fac */ + IBUS_KEY_dead_horn, IBUS_KEY_dead_iota, IBUS_KEY_dead_acute, IBUS_KEY_Greek_alpha, 0, + 0, 0x1F84, /* U1f84 */ + IBUS_KEY_dead_horn, IBUS_KEY_dead_iota, IBUS_KEY_dead_acute, IBUS_KEY_Greek_eta, 0, + 0, 0x1F94, /* U1f94 */ + IBUS_KEY_dead_horn, IBUS_KEY_dead_iota, IBUS_KEY_dead_acute, IBUS_KEY_Greek_omega, 0, + 0, 0x1FA4, /* U1fa4 */ + IBUS_KEY_dead_horn, IBUS_KEY_dead_iota, IBUS_KEY_dead_tilde, IBUS_KEY_Greek_ALPHA, 0, + 0, 0x1F8E, /* U1f8e */ + IBUS_KEY_dead_horn, IBUS_KEY_dead_iota, IBUS_KEY_dead_tilde, IBUS_KEY_Greek_ETA, 0, + 0, 0x1F9E, /* U1f9e */ + IBUS_KEY_dead_horn, IBUS_KEY_dead_iota, IBUS_KEY_dead_tilde, IBUS_KEY_Greek_OMEGA, 0, + 0, 0x1FAE, /* U1fae */ + IBUS_KEY_dead_horn, IBUS_KEY_dead_iota, IBUS_KEY_dead_tilde, IBUS_KEY_Greek_alpha, 0, + 0, 0x1F86, /* U1f86 */ + IBUS_KEY_dead_horn, IBUS_KEY_dead_iota, IBUS_KEY_dead_tilde, IBUS_KEY_Greek_eta, 0, + 0, 0x1F96, /* U1f96 */ + IBUS_KEY_dead_horn, IBUS_KEY_dead_iota, IBUS_KEY_dead_tilde, IBUS_KEY_Greek_omega, 0, + 0, 0x1FA6, /* U1fa6 */ + IBUS_KEY_dead_horn, IBUS_KEY_dead_horn, 0, 0, 0, + 0, 0x1FBF, /* U1fbf */ + IBUS_KEY_dead_psili, IBUS_KEY_space, 0, 0, 0, + 0, 0x1FBF, /* U1fbf */ + IBUS_KEY_dead_psili, IBUS_KEY_underscore, 0, 0, 0, + 0, 0x1FBD, /* U1fbd */ + IBUS_KEY_dead_psili, IBUS_KEY_dead_grave, IBUS_KEY_space, 0, 0, + 0, 0x1FCD, /* U1fcd */ + IBUS_KEY_dead_psili, IBUS_KEY_dead_acute, IBUS_KEY_space, 0, 0, + 0, 0x1FCE, /* U1fce */ + IBUS_KEY_dead_psili, IBUS_KEY_dead_tilde, IBUS_KEY_space, 0, 0, + 0, 0x1FCF, /* U1fcf */ + IBUS_KEY_dead_psili, IBUS_KEY_dead_horn, 0, 0, 0, + 0, 0x1FBF, /* U1fbf */ + IBUS_KEY_dead_dasia, IBUS_KEY_space, 0, 0, 0, + 0, 0x1FFE, /* U1ffe */ + IBUS_KEY_dead_dasia, IBUS_KEY_dead_grave, IBUS_KEY_space, 0, 0, + 0, 0x1FDD, /* U1fdd */ + IBUS_KEY_dead_dasia, IBUS_KEY_dead_acute, IBUS_KEY_space, 0, 0, + 0, 0x1FDE, /* U1fde */ + IBUS_KEY_dead_dasia, IBUS_KEY_dead_tilde, IBUS_KEY_space, 0, 0, + 0, 0x1FDF, /* U1fdf */ + IBUS_KEY_dead_dasia, IBUS_KEY_dead_ogonek, 0, 0, 0, + 0, 0x1FFE, /* U1ffe */ + IBUS_KEY_Multi_key, IBUS_KEY_exclam, IBUS_KEY_S, 0, 0, + 0, 0x00A7, /* section */ + IBUS_KEY_Multi_key, IBUS_KEY_exclam, IBUS_KEY_s, 0, 0, + 0, 0x00A7, /* section */ + IBUS_KEY_Multi_key, IBUS_KEY_quotedbl, IBUS_KEY_grave, IBUS_KEY_Greek_iota, 0, + 0, 0x1FD2, /* U1fd2 */ + IBUS_KEY_Multi_key, IBUS_KEY_quotedbl, IBUS_KEY_grave, IBUS_KEY_Greek_upsilon, 0, + 0, 0x1FE2, /* U1fe2 */ + IBUS_KEY_Multi_key, IBUS_KEY_quotedbl, IBUS_KEY_asciitilde, IBUS_KEY_Greek_iota, 0, + 0, 0x1FD7, /* U1fd7 */ + IBUS_KEY_Multi_key, IBUS_KEY_quotedbl, IBUS_KEY_asciitilde, IBUS_KEY_Greek_upsilon, 0, + 0, 0x1FE7, /* U1fe7 */ + IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_less, IBUS_KEY_space, 0, + 0, 0x2018, /* leftsinglequotemark */ + IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_less, IBUS_KEY_bar, IBUS_KEY_Greek_ALPHA, + 0, 0x1F8D, /* U1f8d */ + IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_less, IBUS_KEY_bar, IBUS_KEY_Greek_ETA, + 0, 0x1F9D, /* U1f9d */ + IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_less, IBUS_KEY_bar, IBUS_KEY_Greek_OMEGA, + 0, 0x1FAD, /* U1fad */ + IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_less, IBUS_KEY_bar, IBUS_KEY_Greek_alpha, + 0, 0x1F85, /* U1f85 */ + IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_less, IBUS_KEY_bar, IBUS_KEY_Greek_eta, + 0, 0x1F95, /* U1f95 */ + IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_less, IBUS_KEY_bar, IBUS_KEY_Greek_omega, + 0, 0x1FA5, /* U1fa5 */ + IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_less, IBUS_KEY_Greek_ALPHA, 0, + 0, 0x1F0D, /* U1f0d */ + IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_less, IBUS_KEY_Greek_EPSILON, 0, + 0, 0x1F1D, /* U1f1d */ + IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_less, IBUS_KEY_Greek_ETA, 0, + 0, 0x1F2D, /* U1f2d */ + IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_less, IBUS_KEY_Greek_IOTA, 0, + 0, 0x1F3D, /* U1f3d */ + IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_less, IBUS_KEY_Greek_OMICRON, 0, + 0, 0x1F4D, /* U1f4d */ + IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_less, IBUS_KEY_Greek_UPSILON, 0, + 0, 0x1F5D, /* U1f5d */ + IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_less, IBUS_KEY_Greek_OMEGA, 0, + 0, 0x1F6D, /* U1f6d */ + IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_less, IBUS_KEY_Greek_alpha, 0, + 0, 0x1F05, /* U1f05 */ + IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_less, IBUS_KEY_Greek_epsilon, 0, + 0, 0x1F15, /* U1f15 */ + IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_less, IBUS_KEY_Greek_eta, 0, + 0, 0x1F25, /* U1f25 */ + IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_less, IBUS_KEY_Greek_iota, 0, + 0, 0x1F35, /* U1f35 */ + IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_less, IBUS_KEY_Greek_omicron, 0, + 0, 0x1F45, /* U1f45 */ + IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_less, IBUS_KEY_Greek_upsilon, 0, + 0, 0x1F55, /* U1f55 */ + IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_less, IBUS_KEY_Greek_omega, 0, + 0, 0x1F65, /* U1f65 */ + IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_greater, IBUS_KEY_space, 0, + 0, 0x2019, /* rightsinglequotemark */ + IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_greater, IBUS_KEY_bar, IBUS_KEY_Greek_ALPHA, + 0, 0x1F8C, /* U1f8c */ + IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_greater, IBUS_KEY_bar, IBUS_KEY_Greek_ETA, + 0, 0x1F9C, /* U1f9c */ + IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_greater, IBUS_KEY_bar, IBUS_KEY_Greek_OMEGA, + 0, 0x1FAC, /* U1fac */ + IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_greater, IBUS_KEY_bar, IBUS_KEY_Greek_alpha, + 0, 0x1F84, /* U1f84 */ + IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_greater, IBUS_KEY_bar, IBUS_KEY_Greek_eta, + 0, 0x1F94, /* U1f94 */ + IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_greater, IBUS_KEY_bar, IBUS_KEY_Greek_omega, + 0, 0x1FA4, /* U1fa4 */ + IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_greater, IBUS_KEY_Greek_ALPHA, 0, + 0, 0x1F0C, /* U1f0c */ + IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_greater, IBUS_KEY_Greek_EPSILON, 0, + 0, 0x1F1C, /* U1f1c */ + IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_greater, IBUS_KEY_Greek_ETA, 0, + 0, 0x1F2C, /* U1f2c */ + IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_greater, IBUS_KEY_Greek_IOTA, 0, + 0, 0x1F3C, /* U1f3c */ + IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_greater, IBUS_KEY_Greek_OMICRON, 0, + 0, 0x1F4C, /* U1f4c */ + IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_greater, IBUS_KEY_Greek_OMEGA, 0, + 0, 0x1F6C, /* U1f6c */ + IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_greater, IBUS_KEY_Greek_alpha, 0, + 0, 0x1F04, /* U1f04 */ + IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_greater, IBUS_KEY_Greek_epsilon, 0, + 0, 0x1F14, /* U1f14 */ + IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_greater, IBUS_KEY_Greek_eta, 0, + 0, 0x1F24, /* U1f24 */ + IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_greater, IBUS_KEY_Greek_iota, 0, + 0, 0x1F34, /* U1f34 */ + IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_greater, IBUS_KEY_Greek_omicron, 0, + 0, 0x1F44, /* U1f44 */ + IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_greater, IBUS_KEY_Greek_upsilon, 0, + 0, 0x1F54, /* U1f54 */ + IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_greater, IBUS_KEY_Greek_omega, 0, + 0, 0x1F64, /* U1f64 */ + IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_bar, IBUS_KEY_less, IBUS_KEY_Greek_ALPHA, + 0, 0x1F8D, /* U1f8d */ + IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_bar, IBUS_KEY_less, IBUS_KEY_Greek_ETA, + 0, 0x1F9D, /* U1f9d */ + IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_bar, IBUS_KEY_less, IBUS_KEY_Greek_OMEGA, + 0, 0x1FAD, /* U1fad */ + IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_bar, IBUS_KEY_less, IBUS_KEY_Greek_alpha, + 0, 0x1F85, /* U1f85 */ + IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_bar, IBUS_KEY_less, IBUS_KEY_Greek_eta, + 0, 0x1F95, /* U1f95 */ + IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_bar, IBUS_KEY_less, IBUS_KEY_Greek_omega, + 0, 0x1FA5, /* U1fa5 */ + IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_bar, IBUS_KEY_greater, IBUS_KEY_Greek_ALPHA, + 0, 0x1F8C, /* U1f8c */ + IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_bar, IBUS_KEY_greater, IBUS_KEY_Greek_ETA, + 0, 0x1F9C, /* U1f9c */ + IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_bar, IBUS_KEY_greater, IBUS_KEY_Greek_OMEGA, + 0, 0x1FAC, /* U1fac */ + IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_bar, IBUS_KEY_greater, IBUS_KEY_Greek_alpha, + 0, 0x1F84, /* U1f84 */ + IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_bar, IBUS_KEY_greater, IBUS_KEY_Greek_eta, + 0, 0x1F94, /* U1f94 */ + IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_bar, IBUS_KEY_greater, IBUS_KEY_Greek_omega, + 0, 0x1FA4, /* U1fa4 */ + IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_bar, IBUS_KEY_Greek_alpha, 0, + 0, 0x1FB4, /* U1fb4 */ + IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_bar, IBUS_KEY_Greek_eta, 0, + 0, 0x1FC4, /* U1fc4 */ + IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_bar, IBUS_KEY_Greek_omega, 0, + 0, 0x1FF4, /* U1ff4 */ + IBUS_KEY_Multi_key, IBUS_KEY_minus, IBUS_KEY_minus, 0, 0, + 0, 0x00AD, /* hyphen */ + IBUS_KEY_Multi_key, IBUS_KEY_minus, IBUS_KEY_D, 0, 0, + 0, 0x00D0, /* ETH */ + IBUS_KEY_Multi_key, IBUS_KEY_minus, IBUS_KEY_a, 0, 0, + 0, 0x00E3, /* atilde */ + IBUS_KEY_Multi_key, IBUS_KEY_minus, IBUS_KEY_d, 0, 0, + 0, 0x00F0, /* eth */ + IBUS_KEY_Multi_key, IBUS_KEY_minus, IBUS_KEY_o, 0, 0, + 0, 0x00F5, /* otilde */ + IBUS_KEY_Multi_key, IBUS_KEY_slash, IBUS_KEY_slash, 0, 0, + 0, 0x0374, /* U0374 */ + IBUS_KEY_Multi_key, IBUS_KEY_slash, IBUS_KEY_C, 0, 0, + 0, 0x00A2, /* cent */ + IBUS_KEY_Multi_key, IBUS_KEY_colon, IBUS_KEY_colon, 0, 0, + 0, 0x0387, /* U0387 */ + IBUS_KEY_Multi_key, IBUS_KEY_semicolon, IBUS_KEY_semicolon, 0, 0, + 0, 0x037E, /* U037e */ + IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_apostrophe, IBUS_KEY_space, 0, + 0, 0x2018, /* leftsinglequotemark */ + IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_apostrophe, IBUS_KEY_bar, IBUS_KEY_Greek_ALPHA, + 0, 0x1F8D, /* U1f8d */ + IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_apostrophe, IBUS_KEY_bar, IBUS_KEY_Greek_ETA, + 0, 0x1F9D, /* U1f9d */ + IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_apostrophe, IBUS_KEY_bar, IBUS_KEY_Greek_OMEGA, + 0, 0x1FAD, /* U1fad */ + IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_apostrophe, IBUS_KEY_bar, IBUS_KEY_Greek_alpha, + 0, 0x1F85, /* U1f85 */ + IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_apostrophe, IBUS_KEY_bar, IBUS_KEY_Greek_eta, + 0, 0x1F95, /* U1f95 */ + IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_apostrophe, IBUS_KEY_bar, IBUS_KEY_Greek_omega, + 0, 0x1FA5, /* U1fa5 */ + IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_apostrophe, IBUS_KEY_Greek_ALPHA, 0, + 0, 0x1F0D, /* U1f0d */ + IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_apostrophe, IBUS_KEY_Greek_EPSILON, 0, + 0, 0x1F1D, /* U1f1d */ + IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_apostrophe, IBUS_KEY_Greek_ETA, 0, + 0, 0x1F2D, /* U1f2d */ + IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_apostrophe, IBUS_KEY_Greek_IOTA, 0, + 0, 0x1F3D, /* U1f3d */ + IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_apostrophe, IBUS_KEY_Greek_OMICRON, 0, + 0, 0x1F4D, /* U1f4d */ + IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_apostrophe, IBUS_KEY_Greek_UPSILON, 0, + 0, 0x1F5D, /* U1f5d */ + IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_apostrophe, IBUS_KEY_Greek_OMEGA, 0, + 0, 0x1F6D, /* U1f6d */ + IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_apostrophe, IBUS_KEY_Greek_alpha, 0, + 0, 0x1F05, /* U1f05 */ + IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_apostrophe, IBUS_KEY_Greek_epsilon, 0, + 0, 0x1F15, /* U1f15 */ + IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_apostrophe, IBUS_KEY_Greek_eta, 0, + 0, 0x1F25, /* U1f25 */ + IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_apostrophe, IBUS_KEY_Greek_iota, 0, + 0, 0x1F35, /* U1f35 */ + IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_apostrophe, IBUS_KEY_Greek_omicron, 0, + 0, 0x1F45, /* U1f45 */ + IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_apostrophe, IBUS_KEY_Greek_upsilon, 0, + 0, 0x1F55, /* U1f55 */ + IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_apostrophe, IBUS_KEY_Greek_omega, 0, + 0, 0x1F65, /* U1f65 */ + IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_grave, IBUS_KEY_bar, IBUS_KEY_Greek_ALPHA, + 0, 0x1F8B, /* U1f8b */ + IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_grave, IBUS_KEY_bar, IBUS_KEY_Greek_ETA, + 0, 0x1F9B, /* U1f9b */ + IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_grave, IBUS_KEY_bar, IBUS_KEY_Greek_OMEGA, + 0, 0x1FAB, /* U1fab */ + IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_grave, IBUS_KEY_bar, IBUS_KEY_Greek_alpha, + 0, 0x1F83, /* U1f83 */ + IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_grave, IBUS_KEY_bar, IBUS_KEY_Greek_eta, + 0, 0x1F93, /* U1f93 */ + IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_grave, IBUS_KEY_bar, IBUS_KEY_Greek_omega, + 0, 0x1FA3, /* U1fa3 */ + IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_grave, IBUS_KEY_Greek_ALPHA, 0, + 0, 0x1F0B, /* U1f0b */ + IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_grave, IBUS_KEY_Greek_EPSILON, 0, + 0, 0x1F1B, /* U1f1b */ + IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_grave, IBUS_KEY_Greek_ETA, 0, + 0, 0x1F2B, /* U1f2b */ + IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_grave, IBUS_KEY_Greek_IOTA, 0, + 0, 0x1F3B, /* U1f3b */ + IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_grave, IBUS_KEY_Greek_OMICRON, 0, + 0, 0x1F4B, /* U1f4b */ + IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_grave, IBUS_KEY_Greek_UPSILON, 0, + 0, 0x1F5B, /* U1f5b */ + IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_grave, IBUS_KEY_Greek_OMEGA, 0, + 0, 0x1F6B, /* U1f6b */ + IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_grave, IBUS_KEY_Greek_alpha, 0, + 0, 0x1F03, /* U1f03 */ + IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_grave, IBUS_KEY_Greek_epsilon, 0, + 0, 0x1F13, /* U1f13 */ + IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_grave, IBUS_KEY_Greek_eta, 0, + 0, 0x1F23, /* U1f23 */ + IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_grave, IBUS_KEY_Greek_iota, 0, + 0, 0x1F33, /* U1f33 */ + IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_grave, IBUS_KEY_Greek_omicron, 0, + 0, 0x1F43, /* U1f43 */ + IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_grave, IBUS_KEY_Greek_upsilon, 0, + 0, 0x1F53, /* U1f53 */ + IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_grave, IBUS_KEY_Greek_omega, 0, + 0, 0x1F63, /* U1f63 */ + IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_bar, IBUS_KEY_apostrophe, IBUS_KEY_Greek_ALPHA, + 0, 0x1F8D, /* U1f8d */ + IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_bar, IBUS_KEY_apostrophe, IBUS_KEY_Greek_ETA, + 0, 0x1F9D, /* U1f9d */ + IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_bar, IBUS_KEY_apostrophe, IBUS_KEY_Greek_OMEGA, + 0, 0x1FAD, /* U1fad */ + IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_bar, IBUS_KEY_apostrophe, IBUS_KEY_Greek_alpha, + 0, 0x1F85, /* U1f85 */ + IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_bar, IBUS_KEY_apostrophe, IBUS_KEY_Greek_eta, + 0, 0x1F95, /* U1f95 */ + IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_bar, IBUS_KEY_apostrophe, IBUS_KEY_Greek_omega, + 0, 0x1FA5, /* U1fa5 */ + IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_bar, IBUS_KEY_grave, IBUS_KEY_Greek_ALPHA, + 0, 0x1F8B, /* U1f8b */ + IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_bar, IBUS_KEY_grave, IBUS_KEY_Greek_ETA, + 0, 0x1F9B, /* U1f9b */ + IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_bar, IBUS_KEY_grave, IBUS_KEY_Greek_OMEGA, + 0, 0x1FAB, /* U1fab */ + IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_bar, IBUS_KEY_grave, IBUS_KEY_Greek_alpha, + 0, 0x1F83, /* U1f83 */ + IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_bar, IBUS_KEY_grave, IBUS_KEY_Greek_eta, + 0, 0x1F93, /* U1f93 */ + IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_bar, IBUS_KEY_grave, IBUS_KEY_Greek_omega, + 0, 0x1FA3, /* U1fa3 */ + IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_bar, IBUS_KEY_asciitilde, IBUS_KEY_Greek_ALPHA, + 0, 0x1F8F, /* U1f8f */ + IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_bar, IBUS_KEY_asciitilde, IBUS_KEY_Greek_ETA, + 0, 0x1F9F, /* U1f9f */ + IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_bar, IBUS_KEY_asciitilde, IBUS_KEY_Greek_OMEGA, + 0, 0x1FAF, /* U1faf */ + IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_bar, IBUS_KEY_asciitilde, IBUS_KEY_Greek_alpha, + 0, 0x1F87, /* U1f87 */ + IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_bar, IBUS_KEY_asciitilde, IBUS_KEY_Greek_eta, + 0, 0x1F97, /* U1f97 */ + IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_bar, IBUS_KEY_asciitilde, IBUS_KEY_Greek_omega, + 0, 0x1FA7, /* U1fa7 */ + IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_bar, IBUS_KEY_Greek_ALPHA, 0, + 0, 0x1F89, /* U1f89 */ + IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_bar, IBUS_KEY_Greek_ETA, 0, + 0, 0x1F99, /* U1f99 */ + IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_bar, IBUS_KEY_Greek_OMEGA, 0, + 0, 0x1FA9, /* U1fa9 */ + IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_bar, IBUS_KEY_Greek_alpha, 0, + 0, 0x1F81, /* U1f81 */ + IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_bar, IBUS_KEY_Greek_eta, 0, + 0, 0x1F91, /* U1f91 */ + IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_bar, IBUS_KEY_Greek_omega, 0, + 0, 0x1FA1, /* U1fa1 */ + IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_asciitilde, IBUS_KEY_bar, IBUS_KEY_Greek_ALPHA, + 0, 0x1F8F, /* U1f8f */ + IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_asciitilde, IBUS_KEY_bar, IBUS_KEY_Greek_ETA, + 0, 0x1F9F, /* U1f9f */ + IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_asciitilde, IBUS_KEY_bar, IBUS_KEY_Greek_OMEGA, + 0, 0x1FAF, /* U1faf */ + IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_asciitilde, IBUS_KEY_bar, IBUS_KEY_Greek_alpha, + 0, 0x1F87, /* U1f87 */ + IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_asciitilde, IBUS_KEY_bar, IBUS_KEY_Greek_eta, + 0, 0x1F97, /* U1f97 */ + IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_asciitilde, IBUS_KEY_bar, IBUS_KEY_Greek_omega, + 0, 0x1FA7, /* U1fa7 */ + IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_asciitilde, IBUS_KEY_Greek_ALPHA, 0, + 0, 0x1F0F, /* U1f0f */ + IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_asciitilde, IBUS_KEY_Greek_ETA, 0, + 0, 0x1F2F, /* U1f2f */ + IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_asciitilde, IBUS_KEY_Greek_IOTA, 0, + 0, 0x1F3F, /* U1f3f */ + IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_asciitilde, IBUS_KEY_Greek_UPSILON, 0, + 0, 0x1F5F, /* U1f5f */ + IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_asciitilde, IBUS_KEY_Greek_OMEGA, 0, + 0, 0x1F6F, /* U1f6f */ + IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_asciitilde, IBUS_KEY_Greek_alpha, 0, + 0, 0x1F07, /* U1f07 */ + IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_asciitilde, IBUS_KEY_Greek_eta, 0, + 0, 0x1F27, /* U1f27 */ + IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_asciitilde, IBUS_KEY_Greek_iota, 0, + 0, 0x1F37, /* U1f37 */ + IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_asciitilde, IBUS_KEY_Greek_upsilon, 0, + 0, 0x1F57, /* U1f57 */ + IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_asciitilde, IBUS_KEY_Greek_omega, 0, + 0, 0x1F67, /* U1f67 */ + IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_Greek_ALPHA, 0, 0, + 0, 0x1F09, /* U1f09 */ + IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_Greek_EPSILON, 0, 0, + 0, 0x1F19, /* U1f19 */ + IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_Greek_ETA, 0, 0, + 0, 0x1F29, /* U1f29 */ + IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_Greek_IOTA, 0, 0, + 0, 0x1F39, /* U1f39 */ + IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_Greek_OMICRON, 0, 0, + 0, 0x1F49, /* U1f49 */ + IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_Greek_RHO, 0, 0, + 0, 0x1FEC, /* U1fec */ + IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_Greek_UPSILON, 0, 0, + 0, 0x1F59, /* U1f59 */ + IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_Greek_OMEGA, 0, 0, + 0, 0x1F69, /* U1f69 */ + IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_Greek_alpha, 0, 0, + 0, 0x1F01, /* U1f01 */ + IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_Greek_epsilon, 0, 0, + 0, 0x1F11, /* U1f11 */ + IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_Greek_eta, 0, 0, + 0, 0x1F21, /* U1f21 */ + IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_Greek_iota, 0, 0, + 0, 0x1F31, /* U1f31 */ + IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_Greek_omicron, 0, 0, + 0, 0x1F41, /* U1f41 */ + IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_Greek_rho, 0, 0, + 0, 0x1FE5, /* U1fe5 */ + IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_Greek_upsilon, 0, 0, + 0, 0x1F51, /* U1f51 */ + IBUS_KEY_Multi_key, IBUS_KEY_less, IBUS_KEY_Greek_omega, 0, 0, + 0, 0x1F61, /* U1f61 */ + IBUS_KEY_Multi_key, IBUS_KEY_equal, IBUS_KEY_L, 0, 0, + 0, 0x00A3, /* sterling */ + IBUS_KEY_Multi_key, IBUS_KEY_equal, IBUS_KEY_Greek_EPSILON, 0, 0, + 0, 0x20AC, /* EuroSign */ + IBUS_KEY_Multi_key, IBUS_KEY_equal, IBUS_KEY_Greek_epsilon, 0, 0, + 0, 0x20AC, /* EuroSign */ + IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_apostrophe, IBUS_KEY_space, 0, + 0, 0x2019, /* rightsinglequotemark */ + IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_apostrophe, IBUS_KEY_bar, IBUS_KEY_Greek_ALPHA, + 0, 0x1F8C, /* U1f8c */ + IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_apostrophe, IBUS_KEY_bar, IBUS_KEY_Greek_ETA, + 0, 0x1F9C, /* U1f9c */ + IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_apostrophe, IBUS_KEY_bar, IBUS_KEY_Greek_OMEGA, + 0, 0x1FAC, /* U1fac */ + IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_apostrophe, IBUS_KEY_bar, IBUS_KEY_Greek_alpha, + 0, 0x1F84, /* U1f84 */ + IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_apostrophe, IBUS_KEY_bar, IBUS_KEY_Greek_eta, + 0, 0x1F94, /* U1f94 */ + IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_apostrophe, IBUS_KEY_bar, IBUS_KEY_Greek_omega, + 0, 0x1FA4, /* U1fa4 */ + IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_apostrophe, IBUS_KEY_Greek_ALPHA, 0, + 0, 0x1F0C, /* U1f0c */ + IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_apostrophe, IBUS_KEY_Greek_EPSILON, 0, + 0, 0x1F1C, /* U1f1c */ + IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_apostrophe, IBUS_KEY_Greek_ETA, 0, + 0, 0x1F2C, /* U1f2c */ + IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_apostrophe, IBUS_KEY_Greek_IOTA, 0, + 0, 0x1F3C, /* U1f3c */ + IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_apostrophe, IBUS_KEY_Greek_OMICRON, 0, + 0, 0x1F4C, /* U1f4c */ + IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_apostrophe, IBUS_KEY_Greek_OMEGA, 0, + 0, 0x1F6C, /* U1f6c */ + IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_apostrophe, IBUS_KEY_Greek_alpha, 0, + 0, 0x1F04, /* U1f04 */ + IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_apostrophe, IBUS_KEY_Greek_epsilon, 0, + 0, 0x1F14, /* U1f14 */ + IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_apostrophe, IBUS_KEY_Greek_eta, 0, + 0, 0x1F24, /* U1f24 */ + IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_apostrophe, IBUS_KEY_Greek_iota, 0, + 0, 0x1F34, /* U1f34 */ + IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_apostrophe, IBUS_KEY_Greek_omicron, 0, + 0, 0x1F44, /* U1f44 */ + IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_apostrophe, IBUS_KEY_Greek_upsilon, 0, + 0, 0x1F54, /* U1f54 */ + IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_apostrophe, IBUS_KEY_Greek_omega, 0, + 0, 0x1F64, /* U1f64 */ + IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_grave, IBUS_KEY_bar, IBUS_KEY_Greek_ALPHA, + 0, 0x1F8A, /* U1f8a */ + IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_grave, IBUS_KEY_bar, IBUS_KEY_Greek_ETA, + 0, 0x1F9A, /* U1f9a */ + IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_grave, IBUS_KEY_bar, IBUS_KEY_Greek_OMEGA, + 0, 0x1FAA, /* U1faa */ + IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_grave, IBUS_KEY_bar, IBUS_KEY_Greek_alpha, + 0, 0x1F82, /* U1f82 */ + IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_grave, IBUS_KEY_bar, IBUS_KEY_Greek_eta, + 0, 0x1F92, /* U1f92 */ + IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_grave, IBUS_KEY_bar, IBUS_KEY_Greek_omega, + 0, 0x1FA2, /* U1fa2 */ + IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_grave, IBUS_KEY_Greek_ALPHA, 0, + 0, 0x1F0A, /* U1f0a */ + IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_grave, IBUS_KEY_Greek_EPSILON, 0, + 0, 0x1F1A, /* U1f1a */ + IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_grave, IBUS_KEY_Greek_ETA, 0, + 0, 0x1F2A, /* U1f2a */ + IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_grave, IBUS_KEY_Greek_IOTA, 0, + 0, 0x1F3A, /* U1f3a */ + IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_grave, IBUS_KEY_Greek_OMICRON, 0, + 0, 0x1F4A, /* U1f4a */ + IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_grave, IBUS_KEY_Greek_OMEGA, 0, + 0, 0x1F6A, /* U1f6a */ + IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_grave, IBUS_KEY_Greek_alpha, 0, + 0, 0x1F02, /* U1f02 */ + IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_grave, IBUS_KEY_Greek_epsilon, 0, + 0, 0x1F12, /* U1f12 */ + IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_grave, IBUS_KEY_Greek_eta, 0, + 0, 0x1F22, /* U1f22 */ + IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_grave, IBUS_KEY_Greek_iota, 0, + 0, 0x1F32, /* U1f32 */ + IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_grave, IBUS_KEY_Greek_omicron, 0, + 0, 0x1F42, /* U1f42 */ + IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_grave, IBUS_KEY_Greek_upsilon, 0, + 0, 0x1F52, /* U1f52 */ + IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_grave, IBUS_KEY_Greek_omega, 0, + 0, 0x1F62, /* U1f62 */ + IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_bar, IBUS_KEY_apostrophe, IBUS_KEY_Greek_ALPHA, + 0, 0x1F8C, /* U1f8c */ + IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_bar, IBUS_KEY_apostrophe, IBUS_KEY_Greek_ETA, + 0, 0x1F9C, /* U1f9c */ + IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_bar, IBUS_KEY_apostrophe, IBUS_KEY_Greek_OMEGA, + 0, 0x1FAC, /* U1fac */ + IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_bar, IBUS_KEY_apostrophe, IBUS_KEY_Greek_alpha, + 0, 0x1F84, /* U1f84 */ + IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_bar, IBUS_KEY_apostrophe, IBUS_KEY_Greek_eta, + 0, 0x1F94, /* U1f94 */ + IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_bar, IBUS_KEY_apostrophe, IBUS_KEY_Greek_omega, + 0, 0x1FA4, /* U1fa4 */ + IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_bar, IBUS_KEY_grave, IBUS_KEY_Greek_ALPHA, + 0, 0x1F8A, /* U1f8a */ + IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_bar, IBUS_KEY_grave, IBUS_KEY_Greek_ETA, + 0, 0x1F9A, /* U1f9a */ + IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_bar, IBUS_KEY_grave, IBUS_KEY_Greek_OMEGA, + 0, 0x1FAA, /* U1faa */ + IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_bar, IBUS_KEY_grave, IBUS_KEY_Greek_alpha, + 0, 0x1F82, /* U1f82 */ + IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_bar, IBUS_KEY_grave, IBUS_KEY_Greek_eta, + 0, 0x1F92, /* U1f92 */ + IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_bar, IBUS_KEY_grave, IBUS_KEY_Greek_omega, + 0, 0x1FA2, /* U1fa2 */ + IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_bar, IBUS_KEY_asciitilde, IBUS_KEY_Greek_ALPHA, + 0, 0x1F8E, /* U1f8e */ + IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_bar, IBUS_KEY_asciitilde, IBUS_KEY_Greek_ETA, + 0, 0x1F9E, /* U1f9e */ + IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_bar, IBUS_KEY_asciitilde, IBUS_KEY_Greek_OMEGA, + 0, 0x1FAE, /* U1fae */ + IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_bar, IBUS_KEY_asciitilde, IBUS_KEY_Greek_alpha, + 0, 0x1F86, /* U1f86 */ + IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_bar, IBUS_KEY_asciitilde, IBUS_KEY_Greek_eta, + 0, 0x1F96, /* U1f96 */ + IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_bar, IBUS_KEY_asciitilde, IBUS_KEY_Greek_omega, + 0, 0x1FA6, /* U1fa6 */ + IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_bar, IBUS_KEY_Greek_ALPHA, 0, + 0, 0x1F88, /* U1f88 */ + IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_bar, IBUS_KEY_Greek_ETA, 0, + 0, 0x1F98, /* U1f98 */ + IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_bar, IBUS_KEY_Greek_OMEGA, 0, + 0, 0x1FA8, /* U1fa8 */ + IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_bar, IBUS_KEY_Greek_alpha, 0, + 0, 0x1F80, /* U1f80 */ + IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_bar, IBUS_KEY_Greek_eta, 0, + 0, 0x1F90, /* U1f90 */ + IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_bar, IBUS_KEY_Greek_omega, 0, + 0, 0x1FA0, /* U1fa0 */ + IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_asciitilde, IBUS_KEY_bar, IBUS_KEY_Greek_ALPHA, + 0, 0x1F8E, /* U1f8e */ + IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_asciitilde, IBUS_KEY_bar, IBUS_KEY_Greek_ETA, + 0, 0x1F9E, /* U1f9e */ + IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_asciitilde, IBUS_KEY_bar, IBUS_KEY_Greek_OMEGA, + 0, 0x1FAE, /* U1fae */ + IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_asciitilde, IBUS_KEY_bar, IBUS_KEY_Greek_alpha, + 0, 0x1F86, /* U1f86 */ + IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_asciitilde, IBUS_KEY_bar, IBUS_KEY_Greek_eta, + 0, 0x1F96, /* U1f96 */ + IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_asciitilde, IBUS_KEY_bar, IBUS_KEY_Greek_omega, + 0, 0x1FA6, /* U1fa6 */ + IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_asciitilde, IBUS_KEY_Greek_ALPHA, 0, + 0, 0x1F0E, /* U1f0e */ + IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_asciitilde, IBUS_KEY_Greek_ETA, 0, + 0, 0x1F2E, /* U1f2e */ + IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_asciitilde, IBUS_KEY_Greek_IOTA, 0, + 0, 0x1F3E, /* U1f3e */ + IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_asciitilde, IBUS_KEY_Greek_OMEGA, 0, + 0, 0x1F6E, /* U1f6e */ + IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_asciitilde, IBUS_KEY_Greek_alpha, 0, + 0, 0x1F06, /* U1f06 */ + IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_asciitilde, IBUS_KEY_Greek_eta, 0, + 0, 0x1F26, /* U1f26 */ + IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_asciitilde, IBUS_KEY_Greek_iota, 0, + 0, 0x1F36, /* U1f36 */ + IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_asciitilde, IBUS_KEY_Greek_upsilon, 0, + 0, 0x1F56, /* U1f56 */ + IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_asciitilde, IBUS_KEY_Greek_omega, 0, + 0, 0x1F66, /* U1f66 */ + IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_Greek_ALPHA, 0, 0, + 0, 0x1F08, /* U1f08 */ + IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_Greek_EPSILON, 0, 0, + 0, 0x1F18, /* U1f18 */ + IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_Greek_ETA, 0, 0, + 0, 0x1F28, /* U1f28 */ + IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_Greek_IOTA, 0, 0, + 0, 0x1F38, /* U1f38 */ + IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_Greek_OMICRON, 0, 0, + 0, 0x1F48, /* U1f48 */ + IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_Greek_OMEGA, 0, 0, + 0, 0x1F68, /* U1f68 */ + IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_Greek_alpha, 0, 0, + 0, 0x1F00, /* U1f00 */ + IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_Greek_epsilon, 0, 0, + 0, 0x1F10, /* U1f10 */ + IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_Greek_eta, 0, 0, + 0, 0x1F20, /* U1f20 */ + IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_Greek_iota, 0, 0, + 0, 0x1F30, /* U1f30 */ + IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_Greek_omicron, 0, 0, + 0, 0x1F40, /* U1f40 */ + IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_Greek_rho, 0, 0, + 0, 0x1FE4, /* U1fe4 */ + IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_Greek_upsilon, 0, 0, + 0, 0x1F50, /* U1f50 */ + IBUS_KEY_Multi_key, IBUS_KEY_greater, IBUS_KEY_Greek_omega, 0, 0, + 0, 0x1F60, /* U1f60 */ + IBUS_KEY_Multi_key, IBUS_KEY_question, IBUS_KEY_exclam, 0, 0, + 0, 0x203D, /* U203D # INTERROBANG */ + IBUS_KEY_Multi_key, IBUS_KEY_A, IBUS_KEY_O, 0, 0, + 0, 0x00C5, /* Aring */ + IBUS_KEY_Multi_key, IBUS_KEY_B, IBUS_KEY_V, 0, 0, + 0, 0x00A6, /* brokenbar */ + IBUS_KEY_Multi_key, IBUS_KEY_C, IBUS_KEY_slash, 0, 0, + 0, 0x00A2, /* cent */ + IBUS_KEY_Multi_key, IBUS_KEY_C, IBUS_KEY_cedilla, 0, 0, + 0, 0x00C7, /* Ccedilla */ + IBUS_KEY_Multi_key, IBUS_KEY_D, IBUS_KEY_minus, 0, 0, + 0, 0x00D0, /* ETH */ + IBUS_KEY_Multi_key, IBUS_KEY_V, IBUS_KEY_B, 0, 0, + 0, 0x00A6, /* brokenbar */ + IBUS_KEY_Multi_key, IBUS_KEY_backslash, IBUS_KEY_backslash, 0, 0, + 0, 0x0375, /* U0375 */ + IBUS_KEY_Multi_key, IBUS_KEY_asciicircum, IBUS_KEY_exclam, 0, 0, + 0, 0x00A6, /* brokenbar */ + IBUS_KEY_Multi_key, IBUS_KEY_asciicircum, IBUS_KEY_0, 0, 0, + 0, 0x00B0, /* degree */ + IBUS_KEY_Multi_key, IBUS_KEY_asciicircum, IBUS_KEY_asciicircum, 0, 0, + 0, 0x02D8, /* breve */ + IBUS_KEY_Multi_key, IBUS_KEY_underscore, IBUS_KEY_A, 0, 0, + 0, 0x00AA, /* ordfeminine */ + IBUS_KEY_Multi_key, IBUS_KEY_underscore, IBUS_KEY_O, 0, 0, + 0, 0x00BA, /* masculine */ + IBUS_KEY_Multi_key, IBUS_KEY_underscore, IBUS_KEY_a, 0, 0, + 0, 0x00AA, /* ordfeminine */ + IBUS_KEY_Multi_key, IBUS_KEY_underscore, IBUS_KEY_o, 0, 0, + 0, 0x00BA, /* masculine */ + IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_less, IBUS_KEY_bar, IBUS_KEY_Greek_ALPHA, + 0, 0x1F8B, /* U1f8b */ + IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_less, IBUS_KEY_bar, IBUS_KEY_Greek_ETA, + 0, 0x1F9B, /* U1f9b */ + IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_less, IBUS_KEY_bar, IBUS_KEY_Greek_OMEGA, + 0, 0x1FAB, /* U1fab */ + IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_less, IBUS_KEY_bar, IBUS_KEY_Greek_alpha, + 0, 0x1F83, /* U1f83 */ + IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_less, IBUS_KEY_bar, IBUS_KEY_Greek_eta, + 0, 0x1F93, /* U1f93 */ + IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_less, IBUS_KEY_bar, IBUS_KEY_Greek_omega, + 0, 0x1FA3, /* U1fa3 */ + IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_less, IBUS_KEY_Greek_ALPHA, 0, + 0, 0x1F0B, /* U1f0b */ + IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_less, IBUS_KEY_Greek_EPSILON, 0, + 0, 0x1F1B, /* U1f1b */ + IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_less, IBUS_KEY_Greek_ETA, 0, + 0, 0x1F2B, /* U1f2b */ + IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_less, IBUS_KEY_Greek_IOTA, 0, + 0, 0x1F3B, /* U1f3b */ + IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_less, IBUS_KEY_Greek_OMICRON, 0, + 0, 0x1F4B, /* U1f4b */ + IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_less, IBUS_KEY_Greek_UPSILON, 0, + 0, 0x1F5B, /* U1f5b */ + IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_less, IBUS_KEY_Greek_OMEGA, 0, + 0, 0x1F6B, /* U1f6b */ + IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_less, IBUS_KEY_Greek_alpha, 0, + 0, 0x1F03, /* U1f03 */ + IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_less, IBUS_KEY_Greek_epsilon, 0, + 0, 0x1F13, /* U1f13 */ + IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_less, IBUS_KEY_Greek_eta, 0, + 0, 0x1F23, /* U1f23 */ + IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_less, IBUS_KEY_Greek_iota, 0, + 0, 0x1F33, /* U1f33 */ + IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_less, IBUS_KEY_Greek_omicron, 0, + 0, 0x1F43, /* U1f43 */ + IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_less, IBUS_KEY_Greek_upsilon, 0, + 0, 0x1F53, /* U1f53 */ + IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_less, IBUS_KEY_Greek_omega, 0, + 0, 0x1F63, /* U1f63 */ + IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_greater, IBUS_KEY_bar, IBUS_KEY_Greek_ALPHA, + 0, 0x1F8A, /* U1f8a */ + IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_greater, IBUS_KEY_bar, IBUS_KEY_Greek_ETA, + 0, 0x1F9A, /* U1f9a */ + IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_greater, IBUS_KEY_bar, IBUS_KEY_Greek_OMEGA, + 0, 0x1FAA, /* U1faa */ + IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_greater, IBUS_KEY_bar, IBUS_KEY_Greek_alpha, + 0, 0x1F82, /* U1f82 */ + IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_greater, IBUS_KEY_bar, IBUS_KEY_Greek_eta, + 0, 0x1F92, /* U1f92 */ + IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_greater, IBUS_KEY_bar, IBUS_KEY_Greek_omega, + 0, 0x1FA2, /* U1fa2 */ + IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_greater, IBUS_KEY_Greek_ALPHA, 0, + 0, 0x1F0A, /* U1f0a */ + IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_greater, IBUS_KEY_Greek_EPSILON, 0, + 0, 0x1F1A, /* U1f1a */ + IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_greater, IBUS_KEY_Greek_ETA, 0, + 0, 0x1F2A, /* U1f2a */ + IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_greater, IBUS_KEY_Greek_IOTA, 0, + 0, 0x1F3A, /* U1f3a */ + IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_greater, IBUS_KEY_Greek_OMICRON, 0, + 0, 0x1F4A, /* U1f4a */ + IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_greater, IBUS_KEY_Greek_OMEGA, 0, + 0, 0x1F6A, /* U1f6a */ + IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_greater, IBUS_KEY_Greek_alpha, 0, + 0, 0x1F02, /* U1f02 */ + IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_greater, IBUS_KEY_Greek_epsilon, 0, + 0, 0x1F12, /* U1f12 */ + IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_greater, IBUS_KEY_Greek_eta, 0, + 0, 0x1F22, /* U1f22 */ + IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_greater, IBUS_KEY_Greek_iota, 0, + 0, 0x1F32, /* U1f32 */ + IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_greater, IBUS_KEY_Greek_omicron, 0, + 0, 0x1F42, /* U1f42 */ + IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_greater, IBUS_KEY_Greek_upsilon, 0, + 0, 0x1F52, /* U1f52 */ + IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_greater, IBUS_KEY_Greek_omega, 0, + 0, 0x1F62, /* U1f62 */ + IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_bar, IBUS_KEY_less, IBUS_KEY_Greek_ALPHA, + 0, 0x1F8B, /* U1f8b */ + IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_bar, IBUS_KEY_less, IBUS_KEY_Greek_ETA, + 0, 0x1F9B, /* U1f9b */ + IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_bar, IBUS_KEY_less, IBUS_KEY_Greek_OMEGA, + 0, 0x1FAB, /* U1fab */ + IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_bar, IBUS_KEY_less, IBUS_KEY_Greek_alpha, + 0, 0x1F83, /* U1f83 */ + IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_bar, IBUS_KEY_less, IBUS_KEY_Greek_eta, + 0, 0x1F93, /* U1f93 */ + IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_bar, IBUS_KEY_less, IBUS_KEY_Greek_omega, + 0, 0x1FA3, /* U1fa3 */ + IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_bar, IBUS_KEY_greater, IBUS_KEY_Greek_ALPHA, + 0, 0x1F8A, /* U1f8a */ + IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_bar, IBUS_KEY_greater, IBUS_KEY_Greek_ETA, + 0, 0x1F9A, /* U1f9a */ + IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_bar, IBUS_KEY_greater, IBUS_KEY_Greek_OMEGA, + 0, 0x1FAA, /* U1faa */ + IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_bar, IBUS_KEY_greater, IBUS_KEY_Greek_alpha, + 0, 0x1F82, /* U1f82 */ + IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_bar, IBUS_KEY_greater, IBUS_KEY_Greek_eta, + 0, 0x1F92, /* U1f92 */ + IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_bar, IBUS_KEY_greater, IBUS_KEY_Greek_omega, + 0, 0x1FA2, /* U1fa2 */ + IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_bar, IBUS_KEY_Greek_alpha, 0, + 0, 0x1FB2, /* U1fb2 */ + IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_bar, IBUS_KEY_Greek_eta, 0, + 0, 0x1FC2, /* U1fc2 */ + IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_bar, IBUS_KEY_Greek_omega, 0, + 0, 0x1FF2, /* U1ff2 */ + IBUS_KEY_Multi_key, IBUS_KEY_a, IBUS_KEY_minus, 0, 0, + 0, 0x00E3, /* atilde */ + IBUS_KEY_Multi_key, IBUS_KEY_a, IBUS_KEY_o, 0, 0, + 0, 0x00E5, /* aring */ + IBUS_KEY_Multi_key, IBUS_KEY_b, IBUS_KEY_v, 0, 0, + 0, 0x00A6, /* brokenbar */ + IBUS_KEY_Multi_key, IBUS_KEY_c, IBUS_KEY_O, 0, 0, + 0, 0x00A9, /* copyright */ + IBUS_KEY_Multi_key, IBUS_KEY_c, IBUS_KEY_o, 0, 0, + 0, 0x00A9, /* copyright */ + IBUS_KEY_Multi_key, IBUS_KEY_c, IBUS_KEY_cedilla, 0, 0, + 0, 0x00E7, /* ccedilla */ + IBUS_KEY_Multi_key, IBUS_KEY_d, IBUS_KEY_minus, 0, 0, + 0, 0x00F0, /* eth */ + IBUS_KEY_Multi_key, IBUS_KEY_o, IBUS_KEY_minus, 0, 0, + 0, 0x00F5, /* otilde */ + IBUS_KEY_Multi_key, IBUS_KEY_v, IBUS_KEY_b, 0, 0, + 0, 0x00A6, /* brokenbar */ + IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_apostrophe, IBUS_KEY_less, IBUS_KEY_Greek_ALPHA, + 0, 0x1F8D, /* U1f8d */ + IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_apostrophe, IBUS_KEY_less, IBUS_KEY_Greek_ETA, + 0, 0x1F9D, /* U1f9d */ + IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_apostrophe, IBUS_KEY_less, IBUS_KEY_Greek_OMEGA, + 0, 0x1FAD, /* U1fad */ + IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_apostrophe, IBUS_KEY_less, IBUS_KEY_Greek_alpha, + 0, 0x1F85, /* U1f85 */ + IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_apostrophe, IBUS_KEY_less, IBUS_KEY_Greek_eta, + 0, 0x1F95, /* U1f95 */ + IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_apostrophe, IBUS_KEY_less, IBUS_KEY_Greek_omega, + 0, 0x1FA5, /* U1fa5 */ + IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_apostrophe, IBUS_KEY_greater, IBUS_KEY_Greek_ALPHA, + 0, 0x1F8C, /* U1f8c */ + IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_apostrophe, IBUS_KEY_greater, IBUS_KEY_Greek_ETA, + 0, 0x1F9C, /* U1f9c */ + IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_apostrophe, IBUS_KEY_greater, IBUS_KEY_Greek_OMEGA, + 0, 0x1FAC, /* U1fac */ + IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_apostrophe, IBUS_KEY_greater, IBUS_KEY_Greek_alpha, + 0, 0x1F84, /* U1f84 */ + IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_apostrophe, IBUS_KEY_greater, IBUS_KEY_Greek_eta, + 0, 0x1F94, /* U1f94 */ + IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_apostrophe, IBUS_KEY_greater, IBUS_KEY_Greek_omega, + 0, 0x1FA4, /* U1fa4 */ + IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_apostrophe, IBUS_KEY_Greek_alpha, 0, + 0, 0x1FB4, /* U1fb4 */ + IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_apostrophe, IBUS_KEY_Greek_eta, 0, + 0, 0x1FC4, /* U1fc4 */ + IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_apostrophe, IBUS_KEY_Greek_omega, 0, + 0, 0x1FF4, /* U1ff4 */ + IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_less, IBUS_KEY_apostrophe, IBUS_KEY_Greek_ALPHA, + 0, 0x1F8D, /* U1f8d */ + IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_less, IBUS_KEY_apostrophe, IBUS_KEY_Greek_ETA, + 0, 0x1F9D, /* U1f9d */ + IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_less, IBUS_KEY_apostrophe, IBUS_KEY_Greek_OMEGA, + 0, 0x1FAD, /* U1fad */ + IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_less, IBUS_KEY_apostrophe, IBUS_KEY_Greek_alpha, + 0, 0x1F85, /* U1f85 */ + IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_less, IBUS_KEY_apostrophe, IBUS_KEY_Greek_eta, + 0, 0x1F95, /* U1f95 */ + IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_less, IBUS_KEY_apostrophe, IBUS_KEY_Greek_omega, + 0, 0x1FA5, /* U1fa5 */ + IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_less, IBUS_KEY_grave, IBUS_KEY_Greek_ALPHA, + 0, 0x1F8B, /* U1f8b */ + IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_less, IBUS_KEY_grave, IBUS_KEY_Greek_ETA, + 0, 0x1F9B, /* U1f9b */ + IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_less, IBUS_KEY_grave, IBUS_KEY_Greek_OMEGA, + 0, 0x1FAB, /* U1fab */ + IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_less, IBUS_KEY_grave, IBUS_KEY_Greek_alpha, + 0, 0x1F83, /* U1f83 */ + IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_less, IBUS_KEY_grave, IBUS_KEY_Greek_eta, + 0, 0x1F93, /* U1f93 */ + IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_less, IBUS_KEY_grave, IBUS_KEY_Greek_omega, + 0, 0x1FA3, /* U1fa3 */ + IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_less, IBUS_KEY_asciitilde, IBUS_KEY_Greek_ALPHA, + 0, 0x1F8F, /* U1f8f */ + IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_less, IBUS_KEY_asciitilde, IBUS_KEY_Greek_ETA, + 0, 0x1F9F, /* U1f9f */ + IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_less, IBUS_KEY_asciitilde, IBUS_KEY_Greek_OMEGA, + 0, 0x1FAF, /* U1faf */ + IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_less, IBUS_KEY_asciitilde, IBUS_KEY_Greek_alpha, + 0, 0x1F87, /* U1f87 */ + IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_less, IBUS_KEY_asciitilde, IBUS_KEY_Greek_eta, + 0, 0x1F97, /* U1f97 */ + IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_less, IBUS_KEY_asciitilde, IBUS_KEY_Greek_omega, + 0, 0x1FA7, /* U1fa7 */ + IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_less, IBUS_KEY_Greek_ALPHA, 0, + 0, 0x1F89, /* U1f89 */ + IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_less, IBUS_KEY_Greek_ETA, 0, + 0, 0x1F99, /* U1f99 */ + IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_less, IBUS_KEY_Greek_OMEGA, 0, + 0, 0x1FA9, /* U1fa9 */ + IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_less, IBUS_KEY_Greek_alpha, 0, + 0, 0x1F81, /* U1f81 */ + IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_less, IBUS_KEY_Greek_eta, 0, + 0, 0x1F91, /* U1f91 */ + IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_less, IBUS_KEY_Greek_omega, 0, + 0, 0x1FA1, /* U1fa1 */ + IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_greater, IBUS_KEY_apostrophe, IBUS_KEY_Greek_ALPHA, + 0, 0x1F8C, /* U1f8c */ + IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_greater, IBUS_KEY_apostrophe, IBUS_KEY_Greek_ETA, + 0, 0x1F9C, /* U1f9c */ + IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_greater, IBUS_KEY_apostrophe, IBUS_KEY_Greek_OMEGA, + 0, 0x1FAC, /* U1fac */ + IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_greater, IBUS_KEY_apostrophe, IBUS_KEY_Greek_alpha, + 0, 0x1F84, /* U1f84 */ + IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_greater, IBUS_KEY_apostrophe, IBUS_KEY_Greek_eta, + 0, 0x1F94, /* U1f94 */ + IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_greater, IBUS_KEY_apostrophe, IBUS_KEY_Greek_omega, + 0, 0x1FA4, /* U1fa4 */ + IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_greater, IBUS_KEY_grave, IBUS_KEY_Greek_ALPHA, + 0, 0x1F8A, /* U1f8a */ + IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_greater, IBUS_KEY_grave, IBUS_KEY_Greek_ETA, + 0, 0x1F9A, /* U1f9a */ + IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_greater, IBUS_KEY_grave, IBUS_KEY_Greek_OMEGA, + 0, 0x1FAA, /* U1faa */ + IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_greater, IBUS_KEY_grave, IBUS_KEY_Greek_alpha, + 0, 0x1F82, /* U1f82 */ + IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_greater, IBUS_KEY_grave, IBUS_KEY_Greek_eta, + 0, 0x1F92, /* U1f92 */ + IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_greater, IBUS_KEY_grave, IBUS_KEY_Greek_omega, + 0, 0x1FA2, /* U1fa2 */ + IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_greater, IBUS_KEY_asciitilde, IBUS_KEY_Greek_ALPHA, + 0, 0x1F8E, /* U1f8e */ + IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_greater, IBUS_KEY_asciitilde, IBUS_KEY_Greek_ETA, + 0, 0x1F9E, /* U1f9e */ + IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_greater, IBUS_KEY_asciitilde, IBUS_KEY_Greek_OMEGA, + 0, 0x1FAE, /* U1fae */ + IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_greater, IBUS_KEY_asciitilde, IBUS_KEY_Greek_alpha, + 0, 0x1F86, /* U1f86 */ + IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_greater, IBUS_KEY_asciitilde, IBUS_KEY_Greek_eta, + 0, 0x1F96, /* U1f96 */ + IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_greater, IBUS_KEY_asciitilde, IBUS_KEY_Greek_omega, + 0, 0x1FA6, /* U1fa6 */ + IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_greater, IBUS_KEY_Greek_ALPHA, 0, + 0, 0x1F88, /* U1f88 */ + IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_greater, IBUS_KEY_Greek_ETA, 0, + 0, 0x1F98, /* U1f98 */ + IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_greater, IBUS_KEY_Greek_OMEGA, 0, + 0, 0x1FA8, /* U1fa8 */ + IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_greater, IBUS_KEY_Greek_alpha, 0, + 0, 0x1F80, /* U1f80 */ + IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_greater, IBUS_KEY_Greek_eta, 0, + 0, 0x1F90, /* U1f90 */ + IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_greater, IBUS_KEY_Greek_omega, 0, + 0, 0x1FA0, /* U1fa0 */ + IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_grave, IBUS_KEY_less, IBUS_KEY_Greek_ALPHA, + 0, 0x1F8B, /* U1f8b */ + IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_grave, IBUS_KEY_less, IBUS_KEY_Greek_ETA, + 0, 0x1F9B, /* U1f9b */ + IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_grave, IBUS_KEY_less, IBUS_KEY_Greek_OMEGA, + 0, 0x1FAB, /* U1fab */ + IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_grave, IBUS_KEY_less, IBUS_KEY_Greek_alpha, + 0, 0x1F83, /* U1f83 */ + IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_grave, IBUS_KEY_less, IBUS_KEY_Greek_eta, + 0, 0x1F93, /* U1f93 */ + IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_grave, IBUS_KEY_less, IBUS_KEY_Greek_omega, + 0, 0x1FA3, /* U1fa3 */ + IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_grave, IBUS_KEY_greater, IBUS_KEY_Greek_ALPHA, + 0, 0x1F8A, /* U1f8a */ + IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_grave, IBUS_KEY_greater, IBUS_KEY_Greek_ETA, + 0, 0x1F9A, /* U1f9a */ + IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_grave, IBUS_KEY_greater, IBUS_KEY_Greek_OMEGA, + 0, 0x1FAA, /* U1faa */ + IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_grave, IBUS_KEY_greater, IBUS_KEY_Greek_alpha, + 0, 0x1F82, /* U1f82 */ + IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_grave, IBUS_KEY_greater, IBUS_KEY_Greek_eta, + 0, 0x1F92, /* U1f92 */ + IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_grave, IBUS_KEY_greater, IBUS_KEY_Greek_omega, + 0, 0x1FA2, /* U1fa2 */ + IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_grave, IBUS_KEY_Greek_alpha, 0, + 0, 0x1FB2, /* U1fb2 */ + IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_grave, IBUS_KEY_Greek_eta, 0, + 0, 0x1FC2, /* U1fc2 */ + IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_grave, IBUS_KEY_Greek_omega, 0, + 0, 0x1FF2, /* U1ff2 */ + IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_bar, 0, 0, + 0, 0x00A6, /* brokenbar */ + IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_asciitilde, IBUS_KEY_less, IBUS_KEY_Greek_ALPHA, + 0, 0x1F8F, /* U1f8f */ + IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_asciitilde, IBUS_KEY_less, IBUS_KEY_Greek_ETA, + 0, 0x1F9F, /* U1f9f */ + IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_asciitilde, IBUS_KEY_less, IBUS_KEY_Greek_OMEGA, + 0, 0x1FAF, /* U1faf */ + IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_asciitilde, IBUS_KEY_less, IBUS_KEY_Greek_alpha, + 0, 0x1F87, /* U1f87 */ + IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_asciitilde, IBUS_KEY_less, IBUS_KEY_Greek_eta, + 0, 0x1F97, /* U1f97 */ + IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_asciitilde, IBUS_KEY_less, IBUS_KEY_Greek_omega, + 0, 0x1FA7, /* U1fa7 */ + IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_asciitilde, IBUS_KEY_greater, IBUS_KEY_Greek_ALPHA, + 0, 0x1F8E, /* U1f8e */ + IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_asciitilde, IBUS_KEY_greater, IBUS_KEY_Greek_ETA, + 0, 0x1F9E, /* U1f9e */ + IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_asciitilde, IBUS_KEY_greater, IBUS_KEY_Greek_OMEGA, + 0, 0x1FAE, /* U1fae */ + IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_asciitilde, IBUS_KEY_greater, IBUS_KEY_Greek_alpha, + 0, 0x1F86, /* U1f86 */ + IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_asciitilde, IBUS_KEY_greater, IBUS_KEY_Greek_eta, + 0, 0x1F96, /* U1f96 */ + IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_asciitilde, IBUS_KEY_greater, IBUS_KEY_Greek_omega, + 0, 0x1FA6, /* U1fa6 */ + IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_asciitilde, IBUS_KEY_Greek_alpha, 0, + 0, 0x1FB7, /* U1fb7 */ + IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_asciitilde, IBUS_KEY_Greek_eta, 0, + 0, 0x1FC7, /* U1fc7 */ + IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_asciitilde, IBUS_KEY_Greek_omega, 0, + 0, 0x1FF7, /* U1ff7 */ + IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_Greek_ALPHA, 0, 0, + 0, 0x1FBC, /* U1fbc */ + IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_Greek_ETA, 0, 0, + 0, 0x1FCC, /* U1fcc */ + IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_Greek_OMEGA, 0, 0, + 0, 0x1FFC, /* U1ffc */ + IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_Greek_alpha, 0, 0, + 0, 0x1FB3, /* U1fb3 */ + IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_Greek_eta, 0, 0, + 0, 0x1FC3, /* U1fc3 */ + IBUS_KEY_Multi_key, IBUS_KEY_bar, IBUS_KEY_Greek_omega, 0, 0, + 0, 0x1FF3, /* U1ff3 */ + IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_less, IBUS_KEY_bar, IBUS_KEY_Greek_ALPHA, + 0, 0x1F8F, /* U1f8f */ + IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_less, IBUS_KEY_bar, IBUS_KEY_Greek_ETA, + 0, 0x1F9F, /* U1f9f */ + IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_less, IBUS_KEY_bar, IBUS_KEY_Greek_OMEGA, + 0, 0x1FAF, /* U1faf */ + IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_less, IBUS_KEY_bar, IBUS_KEY_Greek_alpha, + 0, 0x1F87, /* U1f87 */ + IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_less, IBUS_KEY_bar, IBUS_KEY_Greek_eta, + 0, 0x1F97, /* U1f97 */ + IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_less, IBUS_KEY_bar, IBUS_KEY_Greek_omega, + 0, 0x1FA7, /* U1fa7 */ + IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_less, IBUS_KEY_Greek_ALPHA, 0, + 0, 0x1F0F, /* U1f0f */ + IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_less, IBUS_KEY_Greek_ETA, 0, + 0, 0x1F2F, /* U1f2f */ + IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_less, IBUS_KEY_Greek_IOTA, 0, + 0, 0x1F3F, /* U1f3f */ + IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_less, IBUS_KEY_Greek_UPSILON, 0, + 0, 0x1F5F, /* U1f5f */ + IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_less, IBUS_KEY_Greek_OMEGA, 0, + 0, 0x1F6F, /* U1f6f */ + IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_less, IBUS_KEY_Greek_alpha, 0, + 0, 0x1F07, /* U1f07 */ + IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_less, IBUS_KEY_Greek_eta, 0, + 0, 0x1F27, /* U1f27 */ + IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_less, IBUS_KEY_Greek_iota, 0, + 0, 0x1F37, /* U1f37 */ + IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_less, IBUS_KEY_Greek_upsilon, 0, + 0, 0x1F57, /* U1f57 */ + IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_less, IBUS_KEY_Greek_omega, 0, + 0, 0x1F67, /* U1f67 */ + IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_greater, IBUS_KEY_bar, IBUS_KEY_Greek_ALPHA, + 0, 0x1F8E, /* U1f8e */ + IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_greater, IBUS_KEY_bar, IBUS_KEY_Greek_ETA, + 0, 0x1F9E, /* U1f9e */ + IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_greater, IBUS_KEY_bar, IBUS_KEY_Greek_OMEGA, + 0, 0x1FAE, /* U1fae */ + IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_greater, IBUS_KEY_bar, IBUS_KEY_Greek_alpha, + 0, 0x1F86, /* U1f86 */ + IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_greater, IBUS_KEY_bar, IBUS_KEY_Greek_eta, + 0, 0x1F96, /* U1f96 */ + IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_greater, IBUS_KEY_bar, IBUS_KEY_Greek_omega, + 0, 0x1FA6, /* U1fa6 */ + IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_greater, IBUS_KEY_Greek_ALPHA, 0, + 0, 0x1F0E, /* U1f0e */ + IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_greater, IBUS_KEY_Greek_ETA, 0, + 0, 0x1F2E, /* U1f2e */ + IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_greater, IBUS_KEY_Greek_IOTA, 0, + 0, 0x1F3E, /* U1f3e */ + IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_greater, IBUS_KEY_Greek_OMEGA, 0, + 0, 0x1F6E, /* U1f6e */ + IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_greater, IBUS_KEY_Greek_alpha, 0, + 0, 0x1F06, /* U1f06 */ + IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_greater, IBUS_KEY_Greek_eta, 0, + 0, 0x1F26, /* U1f26 */ + IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_greater, IBUS_KEY_Greek_iota, 0, + 0, 0x1F36, /* U1f36 */ + IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_greater, IBUS_KEY_Greek_upsilon, 0, + 0, 0x1F56, /* U1f56 */ + IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_greater, IBUS_KEY_Greek_omega, 0, + 0, 0x1F66, /* U1f66 */ + IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_bar, IBUS_KEY_less, IBUS_KEY_Greek_ALPHA, + 0, 0x1F8F, /* U1f8f */ + IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_bar, IBUS_KEY_less, IBUS_KEY_Greek_ETA, + 0, 0x1F9F, /* U1f9f */ + IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_bar, IBUS_KEY_less, IBUS_KEY_Greek_OMEGA, + 0, 0x1FAF, /* U1faf */ + IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_bar, IBUS_KEY_less, IBUS_KEY_Greek_alpha, + 0, 0x1F87, /* U1f87 */ + IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_bar, IBUS_KEY_less, IBUS_KEY_Greek_eta, + 0, 0x1F97, /* U1f97 */ + IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_bar, IBUS_KEY_less, IBUS_KEY_Greek_omega, + 0, 0x1FA7, /* U1fa7 */ + IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_bar, IBUS_KEY_greater, IBUS_KEY_Greek_ALPHA, + 0, 0x1F8E, /* U1f8e */ + IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_bar, IBUS_KEY_greater, IBUS_KEY_Greek_ETA, + 0, 0x1F9E, /* U1f9e */ + IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_bar, IBUS_KEY_greater, IBUS_KEY_Greek_OMEGA, + 0, 0x1FAE, /* U1fae */ + IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_bar, IBUS_KEY_greater, IBUS_KEY_Greek_alpha, + 0, 0x1F86, /* U1f86 */ + IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_bar, IBUS_KEY_greater, IBUS_KEY_Greek_eta, + 0, 0x1F96, /* U1f96 */ + IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_bar, IBUS_KEY_greater, IBUS_KEY_Greek_omega, + 0, 0x1FA6, /* U1fa6 */ + IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_bar, IBUS_KEY_Greek_alpha, 0, + 0, 0x1FB7, /* U1fb7 */ + IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_bar, IBUS_KEY_Greek_eta, 0, + 0, 0x1FC7, /* U1fc7 */ + IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_bar, IBUS_KEY_Greek_omega, 0, + 0, 0x1FF7, /* U1ff7 */ + IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_asciitilde, 0, 0, + 0, 0x2015, /* Greek_horizbar */ + IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_C, 0, 0, + 0, 0x00C7, /* Ccedilla */ + IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_c, 0, 0, + 0, 0x00E7, /* ccedilla */ + IBUS_KEY_Multi_key, IBUS_KEY_Greek_DELTA, IBUS_KEY_Greek_RHO, 0, 0, + 0, 0x20AF, /* U20af */ + IBUS_KEY_Multi_key, IBUS_KEY_Greek_DELTA, IBUS_KEY_Greek_rho, 0, 0, + 0, 0x20AF, /* U20af */ + IBUS_KEY_Multi_key, IBUS_KEY_Greek_EPSILON, IBUS_KEY_equal, 0, 0, + 0, 0x20AC, /* EuroSign */ + IBUS_KEY_Multi_key, IBUS_KEY_Greek_delta, IBUS_KEY_Greek_RHO, 0, 0, + 0, 0x20AF, /* U20af */ + IBUS_KEY_Multi_key, IBUS_KEY_Greek_delta, IBUS_KEY_Greek_rho, 0, 0, + 0, 0x20AF, /* U20af */ + IBUS_KEY_Multi_key, IBUS_KEY_Greek_epsilon, IBUS_KEY_equal, 0, 0, + 0, 0x20AC /* EuroSign */ +}; + +static const IBusComposeTable ibus_compose_table_el_gr = { + ibus_compose_seqs_el_gr, + 5, + G_N_ELEMENTS (ibus_compose_seqs_el_gr) / (5 + 2) +}; + +static const guint16 ibus_compose_seqs_fi_fi[] = { + IBUS_KEY_dead_acute, IBUS_KEY_space, 0, 0, + 0, 0x00B4, /* # ACUTE ACCENT */ + IBUS_KEY_dead_acute, IBUS_KEY_dead_circumflex, IBUS_KEY_E, 0, + 0, 0x1EC6, /* # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE */ + IBUS_KEY_dead_diaeresis, IBUS_KEY_space, 0, 0, + 0, 0x00A8, /* # DIAERESIS */ + IBUS_KEY_dead_hook, IBUS_KEY_dead_horn, IBUS_KEY_o, 0, + 0, 0x1EDD, /* # LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE */ + IBUS_KEY_dead_stroke, IBUS_KEY_D, 0, 0, + 0, 0x0110, /* # LATIN CAPITAL LETTER D WITH STROKE */ + IBUS_KEY_dead_stroke, IBUS_KEY_G, 0, 0, + 0, 0x01E4, /* # LATIN CAPITAL LETTER G WITH STROKE */ + IBUS_KEY_dead_stroke, IBUS_KEY_H, 0, 0, + 0, 0x0126, /* # LATIN CAPITAL LETTER H WITH STROKE */ + IBUS_KEY_dead_stroke, IBUS_KEY_L, 0, 0, + 0, 0x0141, /* # LATIN CAPITAL LETTER L WITH STROKE */ + IBUS_KEY_dead_stroke, IBUS_KEY_O, 0, 0, + 0, 0x00D8, /* # LATIN CAPITAL LETTER O WITH STROKE */ + IBUS_KEY_dead_stroke, IBUS_KEY_T, 0, 0, + 0, 0x0166, /* # LATIN CAPITAL LETTER T WITH STROKE */ + IBUS_KEY_dead_stroke, IBUS_KEY_d, 0, 0, + 0, 0x0111, /* # LATIN SMALL LETTER D WITH STROKE */ + IBUS_KEY_dead_stroke, IBUS_KEY_g, 0, 0, + 0, 0x01E5, /* # LATIN SMALL LETTER G WITH STROKE */ + IBUS_KEY_dead_stroke, IBUS_KEY_h, 0, 0, + 0, 0x0127, /* # LATIN SMALL LETTER H WITH STROKE */ + IBUS_KEY_dead_stroke, IBUS_KEY_l, 0, 0, + 0, 0x0142, /* # LATIN SMALL LETTER L WITH STROKE */ + IBUS_KEY_dead_stroke, IBUS_KEY_o, 0, 0, + 0, 0x00F8, /* # LATIN SMALL LETTER O WITH STROKE */ + IBUS_KEY_dead_stroke, IBUS_KEY_t, 0, 0, + 0, 0x0167, /* # LATIN SMALL LETTER T WITH STROKE */ + IBUS_KEY_dead_belowcomma, IBUS_KEY_S, 0, 0, + 0, 0x0218, /* # LATIN CAPITAL LETTER S WITH COMMA BELOW */ + IBUS_KEY_dead_belowcomma, IBUS_KEY_T, 0, 0, + 0, 0x021A, /* # LATIN CAPITAL LETTER T WITH COMMA BELOW */ + IBUS_KEY_dead_belowcomma, IBUS_KEY_s, 0, 0, + 0, 0x0219, /* # LATIN SMALL LETTER S WITH COMMA BELOW */ + IBUS_KEY_dead_belowcomma, IBUS_KEY_t, 0, 0, + 0, 0x021B, /* # LATIN SMALL LETTER T WITH COMMA BELOW */ + IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_space, IBUS_KEY_n, + 0, 0x0149 /* # LATIN SMALL LETTER N PRECEDED BY APOSTROPHE */ +}; + +static const IBusComposeTable ibus_compose_table_fi_fi = { + ibus_compose_seqs_fi_fi, + 4, + G_N_ELEMENTS (ibus_compose_seqs_fi_fi) / (4 + 2) +}; + +static const guint16 ibus_compose_seqs_pt_br[] = { + IBUS_KEY_dead_grave, 0x1F00, 0, 0, 0, + 0, 0x1F02, /* U1F02 # GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA */ + IBUS_KEY_dead_grave, 0x1F01, 0, 0, 0, + 0, 0x1F03, /* U1F03 # GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA */ + IBUS_KEY_dead_grave, 0x1F08, 0, 0, 0, + 0, 0x1F0A, /* U1F0A # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA */ + IBUS_KEY_dead_grave, 0x1F09, 0, 0, 0, + 0, 0x1F0B, /* U1F0B # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA */ + IBUS_KEY_dead_grave, 0x1F10, 0, 0, 0, + 0, 0x1F12, /* U1F12 # GREEK SMALL LETTER EPSILON WITH PSILI AND VARIA */ + IBUS_KEY_dead_grave, 0x1F11, 0, 0, 0, + 0, 0x1F13, /* U1F13 # GREEK SMALL LETTER EPSILON WITH DASIA AND VARIA */ + IBUS_KEY_dead_grave, 0x1F18, 0, 0, 0, + 0, 0x1F1A, /* U1F1A # GREEK CAPITAL LETTER EPSILON WITH PSILI AND VARIA */ + IBUS_KEY_dead_grave, 0x1F19, 0, 0, 0, + 0, 0x1F1B, /* U1F1B # GREEK CAPITAL LETTER EPSILON WITH DASIA AND VARIA */ + IBUS_KEY_dead_grave, 0x1F20, 0, 0, 0, + 0, 0x1F22, /* U1F22 # GREEK SMALL LETTER ETA WITH PSILI AND VARIA */ + IBUS_KEY_dead_grave, 0x1F21, 0, 0, 0, + 0, 0x1F23, /* U1F23 # GREEK SMALL LETTER ETA WITH DASIA AND VARIA */ + IBUS_KEY_dead_grave, 0x1F28, 0, 0, 0, + 0, 0x1F2A, /* U1F2A # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA */ + IBUS_KEY_dead_grave, 0x1F29, 0, 0, 0, + 0, 0x1F2B, /* U1F2B # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA */ + IBUS_KEY_dead_grave, 0x1F30, 0, 0, 0, + 0, 0x1F32, /* U1F32 # GREEK SMALL LETTER IOTA WITH PSILI AND VARIA */ + IBUS_KEY_dead_grave, 0x1F31, 0, 0, 0, + 0, 0x1F33, /* U1F33 # GREEK SMALL LETTER IOTA WITH DASIA AND VARIA */ + IBUS_KEY_dead_grave, 0x1F38, 0, 0, 0, + 0, 0x1F3A, /* U1F3A # GREEK CAPITAL LETTER IOTA WITH PSILI AND VARIA */ + IBUS_KEY_dead_grave, 0x1F39, 0, 0, 0, + 0, 0x1F3B, /* U1F3B # GREEK CAPITAL LETTER IOTA WITH DASIA AND VARIA */ + IBUS_KEY_dead_grave, 0x1F40, 0, 0, 0, + 0, 0x1F42, /* U1F42 # GREEK SMALL LETTER OMICRON WITH PSILI AND VARIA */ + IBUS_KEY_dead_grave, 0x1F41, 0, 0, 0, + 0, 0x1F43, /* U1F43 # GREEK SMALL LETTER OMICRON WITH DASIA AND VARIA */ + IBUS_KEY_dead_grave, 0x1F48, 0, 0, 0, + 0, 0x1F4A, /* U1F4A # GREEK CAPITAL LETTER OMICRON WITH PSILI AND VARIA */ + IBUS_KEY_dead_grave, 0x1F49, 0, 0, 0, + 0, 0x1F4B, /* U1F4B # GREEK CAPITAL LETTER OMICRON WITH DASIA AND VARIA */ + IBUS_KEY_dead_grave, 0x1F50, 0, 0, 0, + 0, 0x1F52, /* U1F52 # GREEK SMALL LETTER UPSILON WITH PSILI AND VARIA */ + IBUS_KEY_dead_grave, 0x1F51, 0, 0, 0, + 0, 0x1F53, /* U1F53 # GREEK SMALL LETTER UPSILON WITH DASIA AND VARIA */ + IBUS_KEY_dead_grave, 0x1F59, 0, 0, 0, + 0, 0x1F5B, /* U1F5B # GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA */ + IBUS_KEY_dead_grave, 0x1F60, 0, 0, 0, + 0, 0x1F62, /* U1F62 # GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA */ + IBUS_KEY_dead_grave, 0x1F61, 0, 0, 0, + 0, 0x1F63, /* U1F63 # GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA */ + IBUS_KEY_dead_grave, 0x1F68, 0, 0, 0, + 0, 0x1F6A, /* U1F6A # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA */ + IBUS_KEY_dead_grave, 0x1F69, 0, 0, 0, + 0, 0x1F6B, /* U1F6B # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA */ + IBUS_KEY_dead_acute, IBUS_KEY_C, 0, 0, 0, + 0, 0x00C7, /* Ccedilla # LATIN CAPITAL LETTER C WITH CEDILLA */ + IBUS_KEY_dead_acute, IBUS_KEY_c, 0, 0, 0, + 0, 0x00E7, /* ccedilla # LATIN SMALL LETTER C WITH CEDILLA */ + IBUS_KEY_dead_acute, 0x1F00, 0, 0, 0, + 0, 0x1F04, /* U1F04 # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA */ + IBUS_KEY_dead_acute, 0x1F01, 0, 0, 0, + 0, 0x1F05, /* U1F05 # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA */ + IBUS_KEY_dead_acute, 0x1F08, 0, 0, 0, + 0, 0x1F0C, /* U1F0C # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA */ + IBUS_KEY_dead_acute, 0x1F09, 0, 0, 0, + 0, 0x1F0D, /* U1F0D # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA */ + IBUS_KEY_dead_acute, 0x1F10, 0, 0, 0, + 0, 0x1F14, /* U1F14 # GREEK SMALL LETTER EPSILON WITH PSILI AND OXIA */ + IBUS_KEY_dead_acute, 0x1F11, 0, 0, 0, + 0, 0x1F15, /* U1F15 # GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA */ + IBUS_KEY_dead_acute, 0x1F18, 0, 0, 0, + 0, 0x1F1C, /* U1F1C # GREEK CAPITAL LETTER EPSILON WITH PSILI AND OXIA */ + IBUS_KEY_dead_acute, 0x1F19, 0, 0, 0, + 0, 0x1F1D, /* U1F1D # GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA */ + IBUS_KEY_dead_acute, 0x1F20, 0, 0, 0, + 0, 0x1F24, /* U1F24 # GREEK SMALL LETTER ETA WITH PSILI AND OXIA */ + IBUS_KEY_dead_acute, 0x1F21, 0, 0, 0, + 0, 0x1F25, /* U1F25 # GREEK SMALL LETTER ETA WITH DASIA AND OXIA */ + IBUS_KEY_dead_acute, 0x1F28, 0, 0, 0, + 0, 0x1F2C, /* U1F2C # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA */ + IBUS_KEY_dead_acute, 0x1F29, 0, 0, 0, + 0, 0x1F2D, /* U1F2D # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA */ + IBUS_KEY_dead_acute, 0x1F30, 0, 0, 0, + 0, 0x1F34, /* U1F34 # GREEK SMALL LETTER IOTA WITH PSILI AND OXIA */ + IBUS_KEY_dead_acute, 0x1F31, 0, 0, 0, + 0, 0x1F35, /* U1F35 # GREEK SMALL LETTER IOTA WITH DASIA AND OXIA */ + IBUS_KEY_dead_acute, 0x1F38, 0, 0, 0, + 0, 0x1F3C, /* U1F3C # GREEK CAPITAL LETTER IOTA WITH PSILI AND OXIA */ + IBUS_KEY_dead_acute, 0x1F39, 0, 0, 0, + 0, 0x1F3D, /* U1F3D # GREEK CAPITAL LETTER IOTA WITH DASIA AND OXIA */ + IBUS_KEY_dead_acute, 0x1F40, 0, 0, 0, + 0, 0x1F44, /* U1F44 # GREEK SMALL LETTER OMICRON WITH PSILI AND OXIA */ + IBUS_KEY_dead_acute, 0x1F41, 0, 0, 0, + 0, 0x1F45, /* U1F45 # GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA */ + IBUS_KEY_dead_acute, 0x1F48, 0, 0, 0, + 0, 0x1F4C, /* U1F4C # GREEK CAPITAL LETTER OMICRON WITH PSILI AND OXIA */ + IBUS_KEY_dead_acute, 0x1F49, 0, 0, 0, + 0, 0x1F4D, /* U1F4D # GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA */ + IBUS_KEY_dead_acute, 0x1F50, 0, 0, 0, + 0, 0x1F54, /* U1F54 # GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA */ + IBUS_KEY_dead_acute, 0x1F51, 0, 0, 0, + 0, 0x1F55, /* U1F55 # GREEK SMALL LETTER UPSILON WITH DASIA AND OXIA */ + IBUS_KEY_dead_acute, 0x1F59, 0, 0, 0, + 0, 0x1F5D, /* U1F5D # GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA */ + IBUS_KEY_dead_acute, 0x1F60, 0, 0, 0, + 0, 0x1F64, /* U1F64 # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA */ + IBUS_KEY_dead_acute, 0x1F61, 0, 0, 0, + 0, 0x1F65, /* U1F65 # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA */ + IBUS_KEY_dead_acute, 0x1F68, 0, 0, 0, + 0, 0x1F6C, /* U1F6C # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA */ + IBUS_KEY_dead_acute, 0x1F69, 0, 0, 0, + 0, 0x1F6D, /* U1F6D # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA */ + IBUS_KEY_dead_circumflex, 0x1EA0, 0, 0, 0, + 0, 0x1EAC, /* U1EAC # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW */ + IBUS_KEY_dead_circumflex, 0x1EA1, 0, 0, 0, + 0, 0x1EAD, /* U1EAD # LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW */ + IBUS_KEY_dead_circumflex, 0x1EB8, 0, 0, 0, + 0, 0x1EC6, /* U1EC6 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW */ + IBUS_KEY_dead_circumflex, 0x1EB9, 0, 0, 0, + 0, 0x1EC7, /* U1EC7 # LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW */ + IBUS_KEY_dead_circumflex, 0x1ECC, 0, 0, 0, + 0, 0x1ED8, /* U1ED8 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW */ + IBUS_KEY_dead_circumflex, 0x1ECD, 0, 0, 0, + 0, 0x1ED9, /* U1ED9 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW */ + IBUS_KEY_dead_macron, 0x01EA, 0, 0, 0, + 0, 0x01EC, /* U01EC # LATIN CAPITAL LETTER O WITH OGONEK AND MACRON */ + IBUS_KEY_dead_macron, 0x01EB, 0, 0, 0, + 0, 0x01ED, /* U01ED # LATIN SMALL LETTER O WITH OGONEK AND MACRON */ + IBUS_KEY_dead_macron, 0x0226, 0, 0, 0, + 0, 0x01E0, /* U01E0 # LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON */ + IBUS_KEY_dead_macron, 0x0227, 0, 0, 0, + 0, 0x01E1, /* U01E1 # LATIN SMALL LETTER A WITH DOT ABOVE AND MACRON */ + IBUS_KEY_dead_macron, 0x022E, 0, 0, 0, + 0, 0x0230, /* U0230 # LATIN CAPITAL LETTER O WITH DOT ABOVE AND MACRON */ + IBUS_KEY_dead_macron, 0x022F, 0, 0, 0, + 0, 0x0231, /* U0231 # LATIN SMALL LETTER O WITH DOT ABOVE AND MACRON */ + IBUS_KEY_dead_macron, 0x1E36, 0, 0, 0, + 0, 0x1E38, /* U1E38 # LATIN CAPITAL LETTER L WITH DOT BELOW AND MACRON */ + IBUS_KEY_dead_macron, 0x1E37, 0, 0, 0, + 0, 0x1E39, /* U1E39 # LATIN SMALL LETTER L WITH DOT BELOW AND MACRON */ + IBUS_KEY_dead_macron, 0x1E5A, 0, 0, 0, + 0, 0x1E5C, /* U1E5C # LATIN CAPITAL LETTER R WITH DOT BELOW AND MACRON */ + IBUS_KEY_dead_macron, 0x1E5B, 0, 0, 0, + 0, 0x1E5D, /* U1E5D # LATIN SMALL LETTER R WITH DOT BELOW AND MACRON */ + IBUS_KEY_dead_macron, IBUS_KEY_dead_diaeresis, IBUS_KEY_U, 0, 0, + 0, 0x01D5, /* U01D5 # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON */ + IBUS_KEY_dead_macron, IBUS_KEY_dead_diaeresis, IBUS_KEY_u, 0, 0, + 0, 0x01D6, /* U01D6 # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON */ + IBUS_KEY_dead_breve, 0x0228, 0, 0, 0, + 0, 0x1E1C, /* U1E1C # LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE */ + IBUS_KEY_dead_breve, 0x0229, 0, 0, 0, + 0, 0x1E1D, /* U1E1D # LATIN SMALL LETTER E WITH CEDILLA AND BREVE */ + IBUS_KEY_dead_breve, 0x1EA0, 0, 0, 0, + 0, 0x1EB6, /* U1EB6 # LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW */ + IBUS_KEY_dead_breve, 0x1EA1, 0, 0, 0, + 0, 0x1EB7, /* U1EB7 # LATIN SMALL LETTER A WITH BREVE AND DOT BELOW */ + IBUS_KEY_dead_abovedot, 0x017F, 0, 0, 0, + 0, 0x1E9B, /* U1E9B # LATIN SMALL LETTER LONG S WITH DOT ABOVE */ + IBUS_KEY_dead_abovedot, 0x1E62, 0, 0, 0, + 0, 0x1E68, /* U1E68 # LATIN CAPITAL LETTER S WITH DOT BELOW AND DOT ABOVE */ + IBUS_KEY_dead_abovedot, 0x1E63, 0, 0, 0, + 0, 0x1E69, /* U1E69 # LATIN SMALL LETTER S WITH DOT BELOW AND DOT ABOVE */ + IBUS_KEY_dead_diaeresis, 0x04D8, 0, 0, 0, + 0, 0x04DA, /* U04DA # CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS */ + IBUS_KEY_dead_diaeresis, 0x04D9, 0, 0, 0, + 0, 0x04DB, /* U04DB # CYRILLIC SMALL LETTER SCHWA WITH DIAERESIS */ + IBUS_KEY_dead_diaeresis, 0x04E8, 0, 0, 0, + 0, 0x04EA, /* U04EA # CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS */ + IBUS_KEY_dead_diaeresis, 0x04E9, 0, 0, 0, + 0, 0x04EB, /* U04EB # CYRILLIC SMALL LETTER BARRED O WITH DIAERESIS */ + IBUS_KEY_dead_diaeresis, IBUS_KEY_dead_macron, IBUS_KEY_U, 0, 0, + 0, 0x1E7A, /* U1E7A # LATIN CAPITAL LETTER U WITH MACRON AND DIAERESIS */ + IBUS_KEY_dead_diaeresis, IBUS_KEY_dead_macron, IBUS_KEY_u, 0, 0, + 0, 0x1E7B, /* U1E7B # LATIN SMALL LETTER U WITH MACRON AND DIAERESIS */ + IBUS_KEY_dead_iota, 0x1F00, 0, 0, 0, + 0, 0x1F80, /* U1F80 # GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI */ + IBUS_KEY_dead_iota, 0x1F01, 0, 0, 0, + 0, 0x1F81, /* U1F81 # GREEK SMALL LETTER ALPHA WITH DASIA AND YPOGEGRAMMENI */ + IBUS_KEY_dead_iota, 0x1F02, 0, 0, 0, + 0, 0x1F82, /* U1F82 # GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI */ + IBUS_KEY_dead_iota, 0x1F03, 0, 0, 0, + 0, 0x1F83, /* U1F83 # GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI */ + IBUS_KEY_dead_iota, 0x1F04, 0, 0, 0, + 0, 0x1F84, /* U1F84 # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI */ + IBUS_KEY_dead_iota, 0x1F05, 0, 0, 0, + 0, 0x1F85, /* U1F85 # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI */ + IBUS_KEY_dead_iota, 0x1F06, 0, 0, 0, + 0, 0x1F86, /* U1F86 # GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI */ + IBUS_KEY_dead_iota, 0x1F07, 0, 0, 0, + 0, 0x1F87, /* U1F87 # GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI */ + IBUS_KEY_dead_iota, 0x1F08, 0, 0, 0, + 0, 0x1F88, /* U1F88 # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PROSGEGRAMMENI */ + IBUS_KEY_dead_iota, 0x1F09, 0, 0, 0, + 0, 0x1F89, /* U1F89 # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PROSGEGRAMMENI */ + IBUS_KEY_dead_iota, 0x1F0A, 0, 0, 0, + 0, 0x1F8A, /* U1F8A # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI */ + IBUS_KEY_dead_iota, 0x1F0B, 0, 0, 0, + 0, 0x1F8B, /* U1F8B # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI */ + IBUS_KEY_dead_iota, 0x1F0C, 0, 0, 0, + 0, 0x1F8C, /* U1F8C # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI */ + IBUS_KEY_dead_iota, 0x1F0D, 0, 0, 0, + 0, 0x1F8D, /* U1F8D # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI */ + IBUS_KEY_dead_iota, 0x1F0E, 0, 0, 0, + 0, 0x1F8E, /* U1F8E # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI */ + IBUS_KEY_dead_iota, 0x1F0F, 0, 0, 0, + 0, 0x1F8F, /* U1F8F # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI */ + IBUS_KEY_dead_iota, 0x1F20, 0, 0, 0, + 0, 0x1F90, /* U1F90 # GREEK SMALL LETTER ETA WITH PSILI AND YPOGEGRAMMENI */ + IBUS_KEY_dead_iota, 0x1F21, 0, 0, 0, + 0, 0x1F91, /* U1F91 # GREEK SMALL LETTER ETA WITH DASIA AND YPOGEGRAMMENI */ + IBUS_KEY_dead_iota, 0x1F22, 0, 0, 0, + 0, 0x1F92, /* U1F92 # GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI */ + IBUS_KEY_dead_iota, 0x1F23, 0, 0, 0, + 0, 0x1F93, /* U1F93 # GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI */ + IBUS_KEY_dead_iota, 0x1F24, 0, 0, 0, + 0, 0x1F94, /* U1F94 # GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI */ + IBUS_KEY_dead_iota, 0x1F25, 0, 0, 0, + 0, 0x1F95, /* U1F95 # GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI */ + IBUS_KEY_dead_iota, 0x1F26, 0, 0, 0, + 0, 0x1F96, /* U1F96 # GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI */ + IBUS_KEY_dead_iota, 0x1F27, 0, 0, 0, + 0, 0x1F97, /* U1F97 # GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI */ + IBUS_KEY_dead_iota, 0x1F28, 0, 0, 0, + 0, 0x1F98, /* U1F98 # GREEK CAPITAL LETTER ETA WITH PSILI AND PROSGEGRAMMENI */ + IBUS_KEY_dead_iota, 0x1F29, 0, 0, 0, + 0, 0x1F99, /* U1F99 # GREEK CAPITAL LETTER ETA WITH DASIA AND PROSGEGRAMMENI */ + IBUS_KEY_dead_iota, 0x1F2A, 0, 0, 0, + 0, 0x1F9A, /* U1F9A # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI */ + IBUS_KEY_dead_iota, 0x1F2B, 0, 0, 0, + 0, 0x1F9B, /* U1F9B # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI */ + IBUS_KEY_dead_iota, 0x1F2C, 0, 0, 0, + 0, 0x1F9C, /* U1F9C # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI */ + IBUS_KEY_dead_iota, 0x1F2D, 0, 0, 0, + 0, 0x1F9D, /* U1F9D # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI */ + IBUS_KEY_dead_iota, 0x1F2E, 0, 0, 0, + 0, 0x1F9E, /* U1F9E # GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI */ + IBUS_KEY_dead_iota, 0x1F2F, 0, 0, 0, + 0, 0x1F9F, /* U1F9F # GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI */ + IBUS_KEY_dead_iota, 0x1F60, 0, 0, 0, + 0, 0x1FA0, /* U1FA0 # GREEK SMALL LETTER OMEGA WITH PSILI AND YPOGEGRAMMENI */ + IBUS_KEY_dead_iota, 0x1F61, 0, 0, 0, + 0, 0x1FA1, /* U1FA1 # GREEK SMALL LETTER OMEGA WITH DASIA AND YPOGEGRAMMENI */ + IBUS_KEY_dead_iota, 0x1F62, 0, 0, 0, + 0, 0x1FA2, /* U1FA2 # GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI */ + IBUS_KEY_dead_iota, 0x1F63, 0, 0, 0, + 0, 0x1FA3, /* U1FA3 # GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI */ + IBUS_KEY_dead_iota, 0x1F64, 0, 0, 0, + 0, 0x1FA4, /* U1FA4 # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI */ + IBUS_KEY_dead_iota, 0x1F65, 0, 0, 0, + 0, 0x1FA5, /* U1FA5 # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI */ + IBUS_KEY_dead_iota, 0x1F66, 0, 0, 0, + 0, 0x1FA6, /* U1FA6 # GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI */ + IBUS_KEY_dead_iota, 0x1F67, 0, 0, 0, + 0, 0x1FA7, /* U1FA7 # GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI */ + IBUS_KEY_dead_iota, 0x1F68, 0, 0, 0, + 0, 0x1FA8, /* U1FA8 # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI */ + IBUS_KEY_dead_iota, 0x1F69, 0, 0, 0, + 0, 0x1FA9, /* U1FA9 # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PROSGEGRAMMENI */ + IBUS_KEY_dead_iota, 0x1F6A, 0, 0, 0, + 0, 0x1FAA, /* U1FAA # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI */ + IBUS_KEY_dead_iota, 0x1F6B, 0, 0, 0, + 0, 0x1FAB, /* U1FAB # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI */ + IBUS_KEY_dead_iota, 0x1F6C, 0, 0, 0, + 0, 0x1FAC, /* U1FAC # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI */ + IBUS_KEY_dead_iota, 0x1F6D, 0, 0, 0, + 0, 0x1FAD, /* U1FAD # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI */ + IBUS_KEY_dead_iota, 0x1F6E, 0, 0, 0, + 0, 0x1FAE, /* U1FAE # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI */ + IBUS_KEY_dead_iota, 0x1F6F, 0, 0, 0, + 0, 0x1FAF, /* U1FAF # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI */ + IBUS_KEY_dead_iota, 0x1F70, 0, 0, 0, + 0, 0x1FB2, /* U1FB2 # GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI */ + IBUS_KEY_dead_iota, 0x1F74, 0, 0, 0, + 0, 0x1FC2, /* U1FC2 # GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI */ + IBUS_KEY_dead_iota, 0x1F7C, 0, 0, 0, + 0, 0x1FF2, /* U1FF2 # GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI */ + IBUS_KEY_dead_iota, 0x1FB6, 0, 0, 0, + 0, 0x1FB7, /* U1FB7 # GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI */ + IBUS_KEY_dead_iota, 0x1FC6, 0, 0, 0, + 0, 0x1FC7, /* U1FC7 # GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI */ + IBUS_KEY_dead_iota, 0x1FF6, 0, 0, 0, + 0, 0x1FF7, /* U1FF7 # GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI */ + IBUS_KEY_dead_iota, IBUS_KEY_dead_grave, 0x1F00, 0, 0, + 0, 0x1F82, /* U1F82 # GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI */ + IBUS_KEY_dead_iota, IBUS_KEY_dead_grave, 0x1F01, 0, 0, + 0, 0x1F83, /* U1F83 # GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI */ + IBUS_KEY_dead_iota, IBUS_KEY_dead_grave, 0x1F08, 0, 0, + 0, 0x1F8A, /* U1F8A # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI */ + IBUS_KEY_dead_iota, IBUS_KEY_dead_grave, 0x1F09, 0, 0, + 0, 0x1F8B, /* U1F8B # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI */ + IBUS_KEY_dead_iota, IBUS_KEY_dead_grave, 0x1F20, 0, 0, + 0, 0x1F92, /* U1F92 # GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI */ + IBUS_KEY_dead_iota, IBUS_KEY_dead_grave, 0x1F21, 0, 0, + 0, 0x1F93, /* U1F93 # GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI */ + IBUS_KEY_dead_iota, IBUS_KEY_dead_grave, 0x1F28, 0, 0, + 0, 0x1F9A, /* U1F9A # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI */ + IBUS_KEY_dead_iota, IBUS_KEY_dead_grave, 0x1F29, 0, 0, + 0, 0x1F9B, /* U1F9B # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI */ + IBUS_KEY_dead_iota, IBUS_KEY_dead_grave, 0x1F60, 0, 0, + 0, 0x1FA2, /* U1FA2 # GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI */ + IBUS_KEY_dead_iota, IBUS_KEY_dead_grave, 0x1F61, 0, 0, + 0, 0x1FA3, /* U1FA3 # GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI */ + IBUS_KEY_dead_iota, IBUS_KEY_dead_grave, 0x1F68, 0, 0, + 0, 0x1FAA, /* U1FAA # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI */ + IBUS_KEY_dead_iota, IBUS_KEY_dead_grave, 0x1F69, 0, 0, + 0, 0x1FAB, /* U1FAB # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI */ + IBUS_KEY_dead_iota, IBUS_KEY_dead_acute, 0x1F00, 0, 0, + 0, 0x1F84, /* U1F84 # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI */ + IBUS_KEY_dead_iota, IBUS_KEY_dead_acute, 0x1F01, 0, 0, + 0, 0x1F85, /* U1F85 # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI */ + IBUS_KEY_dead_iota, IBUS_KEY_dead_acute, 0x1F08, 0, 0, + 0, 0x1F8C, /* U1F8C # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI */ + IBUS_KEY_dead_iota, IBUS_KEY_dead_acute, 0x1F09, 0, 0, + 0, 0x1F8D, /* U1F8D # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI */ + IBUS_KEY_dead_iota, IBUS_KEY_dead_acute, 0x1F20, 0, 0, + 0, 0x1F94, /* U1F94 # GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI */ + IBUS_KEY_dead_iota, IBUS_KEY_dead_acute, 0x1F21, 0, 0, + 0, 0x1F95, /* U1F95 # GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI */ + IBUS_KEY_dead_iota, IBUS_KEY_dead_acute, 0x1F28, 0, 0, + 0, 0x1F9C, /* U1F9C # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI */ + IBUS_KEY_dead_iota, IBUS_KEY_dead_acute, 0x1F29, 0, 0, + 0, 0x1F9D, /* U1F9D # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI */ + IBUS_KEY_dead_iota, IBUS_KEY_dead_acute, 0x1F60, 0, 0, + 0, 0x1FA4, /* U1FA4 # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI */ + IBUS_KEY_dead_iota, IBUS_KEY_dead_acute, 0x1F61, 0, 0, + 0, 0x1FA5, /* U1FA5 # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI */ + IBUS_KEY_dead_iota, IBUS_KEY_dead_acute, 0x1F68, 0, 0, + 0, 0x1FAC, /* U1FAC # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI */ + IBUS_KEY_dead_iota, IBUS_KEY_dead_acute, 0x1F69, 0, 0, + 0, 0x1FAD, /* U1FAD # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI */ + IBUS_KEY_dead_voiced_sound, 0x3046, 0, 0, 0, + 0, 0x3094, /* U3094 # HIRAGANA LETTER VU */ + IBUS_KEY_dead_voiced_sound, 0x304B, 0, 0, 0, + 0, 0x304C, /* U304C # HIRAGANA LETTER GA */ + IBUS_KEY_dead_voiced_sound, 0x304D, 0, 0, 0, + 0, 0x304E, /* U304E # HIRAGANA LETTER GI */ + IBUS_KEY_dead_voiced_sound, 0x304F, 0, 0, 0, + 0, 0x3050, /* U3050 # HIRAGANA LETTER GU */ + IBUS_KEY_dead_voiced_sound, 0x3051, 0, 0, 0, + 0, 0x3052, /* U3052 # HIRAGANA LETTER GE */ + IBUS_KEY_dead_voiced_sound, 0x3053, 0, 0, 0, + 0, 0x3054, /* U3054 # HIRAGANA LETTER GO */ + IBUS_KEY_dead_voiced_sound, 0x3055, 0, 0, 0, + 0, 0x3056, /* U3056 # HIRAGANA LETTER ZA */ + IBUS_KEY_dead_voiced_sound, 0x3057, 0, 0, 0, + 0, 0x3058, /* U3058 # HIRAGANA LETTER ZI */ + IBUS_KEY_dead_voiced_sound, 0x3059, 0, 0, 0, + 0, 0x305A, /* U305A # HIRAGANA LETTER ZU */ + IBUS_KEY_dead_voiced_sound, 0x305B, 0, 0, 0, + 0, 0x305C, /* U305C # HIRAGANA LETTER ZE */ + IBUS_KEY_dead_voiced_sound, 0x305D, 0, 0, 0, + 0, 0x305E, /* U305E # HIRAGANA LETTER ZO */ + IBUS_KEY_dead_voiced_sound, 0x305F, 0, 0, 0, + 0, 0x3060, /* U3060 # HIRAGANA LETTER DA */ + IBUS_KEY_dead_voiced_sound, 0x3061, 0, 0, 0, + 0, 0x3062, /* U3062 # HIRAGANA LETTER DI */ + IBUS_KEY_dead_voiced_sound, 0x3064, 0, 0, 0, + 0, 0x3065, /* U3065 # HIRAGANA LETTER DU */ + IBUS_KEY_dead_voiced_sound, 0x3066, 0, 0, 0, + 0, 0x3067, /* U3067 # HIRAGANA LETTER DE */ + IBUS_KEY_dead_voiced_sound, 0x3068, 0, 0, 0, + 0, 0x3069, /* U3069 # HIRAGANA LETTER DO */ + IBUS_KEY_dead_voiced_sound, 0x306F, 0, 0, 0, + 0, 0x3070, /* U3070 # HIRAGANA LETTER BA */ + IBUS_KEY_dead_voiced_sound, 0x3072, 0, 0, 0, + 0, 0x3073, /* U3073 # HIRAGANA LETTER BI */ + IBUS_KEY_dead_voiced_sound, 0x3075, 0, 0, 0, + 0, 0x3076, /* U3076 # HIRAGANA LETTER BU */ + IBUS_KEY_dead_voiced_sound, 0x3078, 0, 0, 0, + 0, 0x3079, /* U3079 # HIRAGANA LETTER BE */ + IBUS_KEY_dead_voiced_sound, 0x307B, 0, 0, 0, + 0, 0x307C, /* U307C # HIRAGANA LETTER BO */ + IBUS_KEY_dead_voiced_sound, 0x309D, 0, 0, 0, + 0, 0x309E, /* U309E # HIRAGANA VOICED ITERATION MARK */ + IBUS_KEY_dead_voiced_sound, 0x30F0, 0, 0, 0, + 0, 0x30F8, /* U30F8 # KATAKANA LETTER VI */ + IBUS_KEY_dead_voiced_sound, 0x30F1, 0, 0, 0, + 0, 0x30F9, /* U30F9 # KATAKANA LETTER VE */ + IBUS_KEY_dead_voiced_sound, 0x30FD, 0, 0, 0, + 0, 0x30FE, /* U30FE # KATAKANA VOICED ITERATION MARK */ + IBUS_KEY_dead_semivoiced_sound, 0x306F, 0, 0, 0, + 0, 0x3071, /* U3071 # HIRAGANA LETTER PA */ + IBUS_KEY_dead_semivoiced_sound, 0x3072, 0, 0, 0, + 0, 0x3074, /* U3074 # HIRAGANA LETTER PI */ + IBUS_KEY_dead_semivoiced_sound, 0x3075, 0, 0, 0, + 0, 0x3077, /* U3077 # HIRAGANA LETTER PU */ + IBUS_KEY_dead_semivoiced_sound, 0x3078, 0, 0, 0, + 0, 0x307A, /* U307A # HIRAGANA LETTER PE */ + IBUS_KEY_dead_semivoiced_sound, 0x307B, 0, 0, 0, + 0, 0x307D, /* U307D # HIRAGANA LETTER PO */ + IBUS_KEY_dead_doublegrave, IBUS_KEY_A, 0, 0, 0, + 0, 0x0200, /* U0200 # LATIN CAPITAL LETTER A WITH DOUBLE GRAVE */ + IBUS_KEY_dead_doublegrave, IBUS_KEY_E, 0, 0, 0, + 0, 0x0204, /* U0204 # LATIN CAPITAL LETTER E WITH DOUBLE GRAVE */ + IBUS_KEY_dead_doublegrave, IBUS_KEY_I, 0, 0, 0, + 0, 0x0208, /* U0208 # LATIN CAPITAL LETTER I WITH DOUBLE GRAVE */ + IBUS_KEY_dead_doublegrave, IBUS_KEY_O, 0, 0, 0, + 0, 0x020C, /* U020C # LATIN CAPITAL LETTER O WITH DOUBLE GRAVE */ + IBUS_KEY_dead_doublegrave, IBUS_KEY_R, 0, 0, 0, + 0, 0x0210, /* U0210 # LATIN CAPITAL LETTER R WITH DOUBLE GRAVE */ + IBUS_KEY_dead_doublegrave, IBUS_KEY_U, 0, 0, 0, + 0, 0x0214, /* U0214 # LATIN CAPITAL LETTER U WITH DOUBLE GRAVE */ + IBUS_KEY_dead_doublegrave, IBUS_KEY_a, 0, 0, 0, + 0, 0x0201, /* U0201 # LATIN SMALL LETTER A WITH DOUBLE GRAVE */ + IBUS_KEY_dead_doublegrave, IBUS_KEY_e, 0, 0, 0, + 0, 0x0205, /* U0205 # LATIN SMALL LETTER E WITH DOUBLE GRAVE */ + IBUS_KEY_dead_doublegrave, IBUS_KEY_i, 0, 0, 0, + 0, 0x0209, /* U0209 # LATIN SMALL LETTER I WITH DOUBLE GRAVE */ + IBUS_KEY_dead_doublegrave, IBUS_KEY_o, 0, 0, 0, + 0, 0x020D, /* U020D # LATIN SMALL LETTER O WITH DOUBLE GRAVE */ + IBUS_KEY_dead_doublegrave, IBUS_KEY_r, 0, 0, 0, + 0, 0x0211, /* U0211 # LATIN SMALL LETTER R WITH DOUBLE GRAVE */ + IBUS_KEY_dead_doublegrave, IBUS_KEY_u, 0, 0, 0, + 0, 0x0215, /* U0215 # LATIN SMALL LETTER U WITH DOUBLE GRAVE */ + IBUS_KEY_dead_doublegrave, 0x0474, 0, 0, 0, + 0, 0x0476, /* U0476 # CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT */ + IBUS_KEY_dead_doublegrave, 0x0475, 0, 0, 0, + 0, 0x0477, /* U0477 # CYRILLIC SMALL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT */ + IBUS_KEY_dead_belowring, IBUS_KEY_A, 0, 0, 0, + 0, 0x1E00, /* U1E00 # LATIN CAPITAL LETTER A WITH RING BELOW */ + IBUS_KEY_dead_belowring, IBUS_KEY_a, 0, 0, 0, + 0, 0x1E01, /* U1E01 # LATIN SMALL LETTER A WITH RING BELOW */ + IBUS_KEY_dead_belowmacron, IBUS_KEY_B, 0, 0, 0, + 0, 0x1E06, /* U1E06 # LATIN CAPITAL LETTER B WITH LINE BELOW */ + IBUS_KEY_dead_belowmacron, IBUS_KEY_D, 0, 0, 0, + 0, 0x1E0E, /* U1E0E # LATIN CAPITAL LETTER D WITH LINE BELOW */ + IBUS_KEY_dead_belowmacron, IBUS_KEY_K, 0, 0, 0, + 0, 0x1E34, /* U1E34 # LATIN CAPITAL LETTER K WITH LINE BELOW */ + IBUS_KEY_dead_belowmacron, IBUS_KEY_L, 0, 0, 0, + 0, 0x1E3A, /* U1E3A # LATIN CAPITAL LETTER L WITH LINE BELOW */ + IBUS_KEY_dead_belowmacron, IBUS_KEY_N, 0, 0, 0, + 0, 0x1E48, /* U1E48 # LATIN CAPITAL LETTER N WITH LINE BELOW */ + IBUS_KEY_dead_belowmacron, IBUS_KEY_R, 0, 0, 0, + 0, 0x1E5E, /* U1E5E # LATIN CAPITAL LETTER R WITH LINE BELOW */ + IBUS_KEY_dead_belowmacron, IBUS_KEY_T, 0, 0, 0, + 0, 0x1E6E, /* U1E6E # LATIN CAPITAL LETTER T WITH LINE BELOW */ + IBUS_KEY_dead_belowmacron, IBUS_KEY_Z, 0, 0, 0, + 0, 0x1E94, /* U1E94 # LATIN CAPITAL LETTER Z WITH LINE BELOW */ + IBUS_KEY_dead_belowmacron, IBUS_KEY_b, 0, 0, 0, + 0, 0x1E07, /* U1E07 # LATIN SMALL LETTER B WITH LINE BELOW */ + IBUS_KEY_dead_belowmacron, IBUS_KEY_d, 0, 0, 0, + 0, 0x1E0F, /* U1E0F # LATIN SMALL LETTER D WITH LINE BELOW */ + IBUS_KEY_dead_belowmacron, IBUS_KEY_h, 0, 0, 0, + 0, 0x1E96, /* U1E96 # LATIN SMALL LETTER H WITH LINE BELOW */ + IBUS_KEY_dead_belowmacron, IBUS_KEY_k, 0, 0, 0, + 0, 0x1E35, /* U1E35 # LATIN SMALL LETTER K WITH LINE BELOW */ + IBUS_KEY_dead_belowmacron, IBUS_KEY_l, 0, 0, 0, + 0, 0x1E3B, /* U1E3B # LATIN SMALL LETTER L WITH LINE BELOW */ + IBUS_KEY_dead_belowmacron, IBUS_KEY_n, 0, 0, 0, + 0, 0x1E49, /* U1E49 # LATIN SMALL LETTER N WITH LINE BELOW */ + IBUS_KEY_dead_belowmacron, IBUS_KEY_r, 0, 0, 0, + 0, 0x1E5F, /* U1E5F # LATIN SMALL LETTER R WITH LINE BELOW */ + IBUS_KEY_dead_belowmacron, IBUS_KEY_t, 0, 0, 0, + 0, 0x1E6F, /* U1E6F # LATIN SMALL LETTER T WITH LINE BELOW */ + IBUS_KEY_dead_belowmacron, IBUS_KEY_z, 0, 0, 0, + 0, 0x1E95, /* U1E95 # LATIN SMALL LETTER Z WITH LINE BELOW */ + IBUS_KEY_dead_belowcircumflex, IBUS_KEY_D, 0, 0, 0, + 0, 0x1E12, /* U1E12 # LATIN CAPITAL LETTER D WITH CIRCUMFLEX BELOW */ + IBUS_KEY_dead_belowcircumflex, IBUS_KEY_E, 0, 0, 0, + 0, 0x1E18, /* U1E18 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX BELOW */ + IBUS_KEY_dead_belowcircumflex, IBUS_KEY_L, 0, 0, 0, + 0, 0x1E3C, /* U1E3C # LATIN CAPITAL LETTER L WITH CIRCUMFLEX BELOW */ + IBUS_KEY_dead_belowcircumflex, IBUS_KEY_N, 0, 0, 0, + 0, 0x1E4A, /* U1E4A # LATIN CAPITAL LETTER N WITH CIRCUMFLEX BELOW */ + IBUS_KEY_dead_belowcircumflex, IBUS_KEY_T, 0, 0, 0, + 0, 0x1E70, /* U1E70 # LATIN CAPITAL LETTER T WITH CIRCUMFLEX BELOW */ + IBUS_KEY_dead_belowcircumflex, IBUS_KEY_U, 0, 0, 0, + 0, 0x1E76, /* U1E76 # LATIN CAPITAL LETTER U WITH CIRCUMFLEX BELOW */ + IBUS_KEY_dead_belowcircumflex, IBUS_KEY_d, 0, 0, 0, + 0, 0x1E13, /* U1E13 # LATIN SMALL LETTER D WITH CIRCUMFLEX BELOW */ + IBUS_KEY_dead_belowcircumflex, IBUS_KEY_e, 0, 0, 0, + 0, 0x1E19, /* U1E19 # LATIN SMALL LETTER E WITH CIRCUMFLEX BELOW */ + IBUS_KEY_dead_belowcircumflex, IBUS_KEY_l, 0, 0, 0, + 0, 0x1E3D, /* U1E3D # LATIN SMALL LETTER L WITH CIRCUMFLEX BELOW */ + IBUS_KEY_dead_belowcircumflex, IBUS_KEY_n, 0, 0, 0, + 0, 0x1E4B, /* U1E4B # LATIN SMALL LETTER N WITH CIRCUMFLEX BELOW */ + IBUS_KEY_dead_belowcircumflex, IBUS_KEY_t, 0, 0, 0, + 0, 0x1E71, /* U1E71 # LATIN SMALL LETTER T WITH CIRCUMFLEX BELOW */ + IBUS_KEY_dead_belowcircumflex, IBUS_KEY_u, 0, 0, 0, + 0, 0x1E77, /* U1E77 # LATIN SMALL LETTER U WITH CIRCUMFLEX BELOW */ + IBUS_KEY_dead_belowtilde, IBUS_KEY_E, 0, 0, 0, + 0, 0x1E1A, /* U1E1A # LATIN CAPITAL LETTER E WITH TILDE BELOW */ + IBUS_KEY_dead_belowtilde, IBUS_KEY_I, 0, 0, 0, + 0, 0x1E2C, /* U1E2C # LATIN CAPITAL LETTER I WITH TILDE BELOW */ + IBUS_KEY_dead_belowtilde, IBUS_KEY_U, 0, 0, 0, + 0, 0x1E74, /* U1E74 # LATIN CAPITAL LETTER U WITH TILDE BELOW */ + IBUS_KEY_dead_belowtilde, IBUS_KEY_e, 0, 0, 0, + 0, 0x1E1B, /* U1E1B # LATIN SMALL LETTER E WITH TILDE BELOW */ + IBUS_KEY_dead_belowtilde, IBUS_KEY_i, 0, 0, 0, + 0, 0x1E2D, /* U1E2D # LATIN SMALL LETTER I WITH TILDE BELOW */ + IBUS_KEY_dead_belowtilde, IBUS_KEY_u, 0, 0, 0, + 0, 0x1E75, /* U1E75 # LATIN SMALL LETTER U WITH TILDE BELOW */ + IBUS_KEY_dead_belowbreve, IBUS_KEY_H, 0, 0, 0, + 0, 0x1E2A, /* U1E2A # LATIN CAPITAL LETTER H WITH BREVE BELOW */ + IBUS_KEY_dead_belowbreve, IBUS_KEY_h, 0, 0, 0, + 0, 0x1E2B, /* U1E2B # LATIN SMALL LETTER H WITH BREVE BELOW */ + IBUS_KEY_dead_belowdiaeresis, IBUS_KEY_U, 0, 0, 0, + 0, 0x1E72, /* U1E72 # LATIN CAPITAL LETTER U WITH DIAERESIS BELOW */ + IBUS_KEY_dead_belowdiaeresis, IBUS_KEY_u, 0, 0, 0, + 0, 0x1E73, /* U1E73 # LATIN SMALL LETTER U WITH DIAERESIS BELOW */ + IBUS_KEY_dead_invertedbreve, IBUS_KEY_A, 0, 0, 0, + 0, 0x0202, /* U0202 # LATIN CAPITAL LETTER A WITH INVERTED BREVE */ + IBUS_KEY_dead_invertedbreve, IBUS_KEY_E, 0, 0, 0, + 0, 0x0206, /* U0206 # LATIN CAPITAL LETTER E WITH INVERTED BREVE */ + IBUS_KEY_dead_invertedbreve, IBUS_KEY_I, 0, 0, 0, + 0, 0x020A, /* U020A # LATIN CAPITAL LETTER I WITH INVERTED BREVE */ + IBUS_KEY_dead_invertedbreve, IBUS_KEY_O, 0, 0, 0, + 0, 0x020E, /* U020E # LATIN CAPITAL LETTER O WITH INVERTED BREVE */ + IBUS_KEY_dead_invertedbreve, IBUS_KEY_R, 0, 0, 0, + 0, 0x0212, /* U0212 # LATIN CAPITAL LETTER R WITH INVERTED BREVE */ + IBUS_KEY_dead_invertedbreve, IBUS_KEY_U, 0, 0, 0, + 0, 0x0216, /* U0216 # LATIN CAPITAL LETTER U WITH INVERTED BREVE */ + IBUS_KEY_dead_invertedbreve, IBUS_KEY_a, 0, 0, 0, + 0, 0x0203, /* U0203 # LATIN SMALL LETTER A WITH INVERTED BREVE */ + IBUS_KEY_dead_invertedbreve, IBUS_KEY_e, 0, 0, 0, + 0, 0x0207, /* U0207 # LATIN SMALL LETTER E WITH INVERTED BREVE */ + IBUS_KEY_dead_invertedbreve, IBUS_KEY_i, 0, 0, 0, + 0, 0x020B, /* U020B # LATIN SMALL LETTER I WITH INVERTED BREVE */ + IBUS_KEY_dead_invertedbreve, IBUS_KEY_o, 0, 0, 0, + 0, 0x020F, /* U020F # LATIN SMALL LETTER O WITH INVERTED BREVE */ + IBUS_KEY_dead_invertedbreve, IBUS_KEY_r, 0, 0, 0, + 0, 0x0213, /* U0213 # LATIN SMALL LETTER R WITH INVERTED BREVE */ + IBUS_KEY_dead_invertedbreve, IBUS_KEY_u, 0, 0, 0, + 0, 0x0217, /* U0217 # LATIN SMALL LETTER U WITH INVERTED BREVE */ + IBUS_KEY_dead_belowcomma, IBUS_KEY_S, 0, 0, 0, + 0, 0x0218, /* U0218 # LATIN CAPITAL LETTER S WITH COMMA BELOW */ + IBUS_KEY_dead_belowcomma, IBUS_KEY_T, 0, 0, 0, + 0, 0x021A, /* U021A # LATIN CAPITAL LETTER T WITH COMMA BELOW */ + IBUS_KEY_dead_belowcomma, IBUS_KEY_s, 0, 0, 0, + 0, 0x0219, /* U0219 # LATIN SMALL LETTER S WITH COMMA BELOW */ + IBUS_KEY_dead_belowcomma, IBUS_KEY_t, 0, 0, 0, + 0, 0x021B, /* U021B # LATIN SMALL LETTER T WITH COMMA BELOW */ + IBUS_KEY_Multi_key, IBUS_KEY_quotedbl, IBUS_KEY_slash, 0, 0, + 0, 0x301E, /* U301e # DOUBLE PRIME QUOTATION MARK */ + IBUS_KEY_Multi_key, IBUS_KEY_quotedbl, IBUS_KEY_backslash, 0, 0, + 0, 0x301D, /* U301d # REVERSED DOUBLE PRIME QUOTATION MARK */ + IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, 0x03D2, 0, 0, + 0, 0x03D3, /* U03D3 # GREEK UPSILON WITH ACUTE AND HOOK SYMBOL */ + IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_5, IBUS_KEY_0, IBUS_KEY_parenright, + 0, 0x32BF, /* U32BF # CIRCLED NUMBER FIFTY */ + IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_KP_5, IBUS_KEY_0, IBUS_KEY_parenright, + 0, 0x32BF, /* U32BF # CIRCLED NUMBER FIFTY */ + IBUS_KEY_Multi_key, IBUS_KEY_comma, IBUS_KEY_E, 0, 0, + 0, 0x0228, /* U0228 # LATIN CAPITAL LETTER E WITH CEDILLA */ + IBUS_KEY_Multi_key, IBUS_KEY_comma, IBUS_KEY_e, 0, 0, + 0, 0x0229, /* U0229 # LATIN SMALL LETTER E WITH CEDILLA */ + IBUS_KEY_Multi_key, IBUS_KEY_period, 0x1E63, 0, 0, + 0, 0x1E69, /* U1E69 # LATIN SMALL LETTER S WITH DOT BELOW AND DOT ABOVE */ + IBUS_KEY_Multi_key, IBUS_KEY_question, IBUS_KEY_exclam, 0, 0, + 0, 0x203D, /* U203D # INTERROBANG */ + IBUS_KEY_Multi_key, IBUS_KEY_L, IBUS_KEY_equal, 0, 0, + 0, 0x20A4, /* U20a4 # LIRA SIGN */ + IBUS_KEY_Multi_key, IBUS_KEY_U, IBUS_KEY_comma, IBUS_KEY_E, 0, + 0, 0x1E1C, /* U1E1C # LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE */ + IBUS_KEY_Multi_key, IBUS_KEY_U, IBUS_KEY_comma, IBUS_KEY_e, 0, + 0, 0x1E1D, /* U1E1D # LATIN SMALL LETTER E WITH CEDILLA AND BREVE */ + IBUS_KEY_Multi_key, IBUS_KEY_d, IBUS_KEY_minus, 0, 0, + 0, 0x20AB, /* U20ab # DONG SIGN */ + IBUS_KEY_Multi_key, IBUS_KEY_e, IBUS_KEY_e, 0, 0, + 0, 0x018F, /* U018f */ + IBUS_KEY_Multi_key, IBUS_KEY_acute, 0x03D2, 0, 0, + 0, 0x03D3, /* U03D3 # GREEK UPSILON WITH ACUTE AND HOOK SYMBOL */ + IBUS_KEY_Multi_key, 0x2203, 0x0338, 0, 0, + 0, 0x2204, /* U2204 # THERE DOES NOT EXIST */ + IBUS_KEY_Multi_key, 0x2208, 0x0338, 0, 0, + 0, 0x2209, /* U2209 # NOT AN ELEMENT OF */ + IBUS_KEY_Multi_key, 0x220B, 0x0338, 0, 0, + 0, 0x220C, /* U220C # DOES NOT CONTAIN AS MEMBER */ + IBUS_KEY_Multi_key, 0x2223, 0x0338, 0, 0, + 0, 0x2224, /* U2224 # DOES NOT DIVIDE */ + IBUS_KEY_Multi_key, 0x2225, 0x0338, 0, 0, + 0, 0x2226, /* U2226 # NOT PARALLEL TO */ + IBUS_KEY_Multi_key, 0x2286, 0x0338, 0, 0, + 0, 0x2288, /* U2288 # NEITHER A SUBSET OF NOR EQUAL TO */ + IBUS_KEY_Multi_key, 0x2287, 0x0338, 0, 0, + 0, 0x2289, /* U2289 # NEITHER A SUPERSET OF NOR EQUAL TO */ + IBUS_KEY_Multi_key, 0x2291, 0x0338, 0, 0, + 0, 0x22E2, /* U22E2 # NOT SQUARE IMAGE OF OR EQUAL TO */ + IBUS_KEY_Multi_key, 0x2292, 0x0338, 0, 0, + 0, 0x22E3, /* U22E3 # NOT SQUARE ORIGINAL OF OR EQUAL TO */ + IBUS_KEY_Multi_key, 0x22B4, 0x0338, 0, 0, + 0, 0x22EC, /* U22EC # NOT NORMAL SUBGROUP OF OR EQUAL TO */ + IBUS_KEY_Multi_key, 0x22B5, 0x0338, 0, 0, + 0, 0x22ED /* U22ED # DOES NOT CONTAIN AS NORMAL SUBGROUP OR EQUAL */ +}; + +static const IBusComposeTable ibus_compose_table_pt_br = { + ibus_compose_seqs_pt_br, + 5, + G_N_ELEMENTS (ibus_compose_seqs_pt_br) / (5 + 2) +}; + +static const IBusComposeTableLocaleList ibus_compose_table_locale_list[] = { + { "el_gr", &ibus_compose_table_el_gr }, + { "fi_fi", &ibus_compose_table_fi_fi }, + { "pt_br", &ibus_compose_table_pt_br }, + { NULL, NULL } +}; + +#endif diff --git a/src/ibusenginesimple.c b/src/ibusenginesimple.c index 84004e55..8c076ac5 100644 --- a/src/ibusenginesimple.c +++ b/src/ibusenginesimple.c @@ -29,20 +29,18 @@ #include "ibuskeys.h" #include "ibuskeysyms.h" -#include <stdlib.h> +#include "ibuscomposetable.h" + +#ifdef HAVE_LOCALE_H +#include <locale.h> +#endif + #include <memory.h> +#include <stdlib.h> #define IBUS_ENGINE_SIMPLE_GET_PRIVATE(o) \ (G_TYPE_INSTANCE_GET_PRIVATE ((o), IBUS_TYPE_ENGINE_SIMPLE, IBusEngineSimplePrivate)) -typedef struct _IBusComposeTable IBusComposeTable; -struct _IBusComposeTable -{ - const guint16 *data; - gint max_seq_len; - gint n_seqs; -}; - typedef struct _IBusComposeTableCompact IBusComposeTableCompact; struct _IBusComposeTableCompact { @@ -76,7 +74,7 @@ struct _IBusEngineSimplePrivate { static const IBusComposeTableCompact ibus_compose_table_compact = { gtk_compose_seqs_compact, 5, - 24, + 25, 6 }; @@ -930,3 +928,33 @@ ibus_engine_simple_add_table (IBusEngineSimple *simple, priv->tables = g_slist_prepend (priv->tables, table); } + +gboolean +ibus_engine_simple_add_table_by_locale (IBusEngineSimple *simple, + const gchar *locale) +{ + int i; + + if (locale == NULL) { +#ifdef HAVE_LOCALE_H + locale = setlocale (LC_CTYPE, NULL); +#endif + if (locale == NULL) + locale = "C"; + } + + for (i = 0; ibus_compose_table_locale_list[i].locale != NULL; i++) { + const gchar *locale2 = ibus_compose_table_locale_list[i].locale; + const IBusComposeTable *table = ibus_compose_table_locale_list[i].table; + + if (g_ascii_strncasecmp (locale, locale2 , strlen (locale2)) == 0) { + ibus_engine_simple_add_table (simple, + table->data, + table->max_seq_len, + table->n_seqs); + return TRUE; + } + } + + return FALSE; +} diff --git a/src/ibusenginesimple.h b/src/ibusenginesimple.h index 41384306..0c839d48 100644 --- a/src/ibusenginesimple.h +++ b/src/ibusenginesimple.h @@ -24,6 +24,9 @@ #error "Only <ibus.h> can be included directly" #endif +#ifndef __IBUS_ENGINE_SIMPLE_H__ +#define __IBUS_ENGINE_SIMPLE_H__ + /** * SECTION: ibussimpleengine * @short_description: Input method engine supporting table-based input method @@ -34,8 +37,6 @@ * * see_also: #IBusEngine */ -#ifndef __IBUS_ENGINE_SIMPLE_H__ -#define __IBUS_ENGINE_SIMPLE_H__ #include "ibusengine.h" @@ -110,11 +111,23 @@ GType ibus_engine_simple_get_type (void); * The table must be sorted in dictionary order on the numeric value of the key * symbol fields. (Values beyond the length of the sequence should be zero.) */ -void ibus_engine_simple_add_table (IBusEngineSimple *simple, - const guint16 *data, - gint max_seq_len, - gint n_seqs); +void ibus_engine_simple_add_table (IBusEngineSimple *simple, + const guint16 *data, + gint max_seq_len, + gint n_seqs); +/** + * ibus_engine_simple_add_table_by_locale: + * @simple: An IBusEngineSimple. + * @locale: (allow-none): The locale name. If the locale is %NULL, + * the current locale is used. + * @returns: %TRUE if the @locale is matched to the table. + * + * Call ibus_engine_simple_add_table() internally by locale. + */ +gboolean ibus_engine_simple_add_table_by_locale + (IBusEngineSimple *simple, + const gchar *locale); G_END_DECLS #endif // __IBUS_ENGINE_SIMPLE_H__ diff --git a/src/ibuskeysyms.h b/src/ibuskeysyms.h index cf55f0cf..d35eb4a7 100644 --- a/src/ibuskeysyms.h +++ b/src/ibuskeysyms.h @@ -1,8 +1,8 @@ /* -*- mode: C; c-basic-offset: 4; indent-tabs-mode: nil; -*- */ /* vim:set et sts=4: */ /* ibus - The Input Bus - * Copyright (C) 2008-2010 Peng Huang <shawn.p.huang@gmail.com> - * Copyright (C) 2008-2010 Red Hat, Inc. + * Copyright (C) 2008-2013 Peng Huang <shawn.p.huang@gmail.com> + * Copyright (C) 2008-2013 Red Hat, Inc. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -286,6 +286,7 @@ #define IBUS_KEY_dead_U 0xfe89 #define IBUS_KEY_dead_small_schwa 0xfe8a #define IBUS_KEY_dead_capital_schwa 0xfe8b +#define IBUS_KEY_dead_greek 0xfe8c #define IBUS_KEY_First_Virtual_Screen 0xfed0 #define IBUS_KEY_Prev_Virtual_Screen 0xfed1 #define IBUS_KEY_Next_Virtual_Screen 0xfed2 @@ -1632,7 +1633,9 @@ #define IBUS_KEY_ocaron 0x10001d2 #define IBUS_KEY_obarred 0x1000275 #define IBUS_KEY_SCHWA 0x100018f +#define IBUS_KEY_EZH 0x10001b7 #define IBUS_KEY_schwa 0x1000259 +#define IBUS_KEY_ezh 0x1000292 #define IBUS_KEY_Lbelowdot 0x1001e36 #define IBUS_KEY_lbelowdot 0x1001e37 #define IBUS_KEY_Abelowdot 0x1001ea0 |