/***************************************************************************
 *   Copyright (C) 2002~2005 by Yuking                                     *
 *   yuking_net@sohu.com                                                   *
 *                                                                         *
 *   This program is free software; you can redistribute it and/or modify  *
 *   it under the terms of the GNU General Public License as published by  *
 *   the Free Software Foundation; either version 2 of the License, or     *
 *   (at your option) any later version.                                   *
 *                                                                         *
 *   This program is distributed in the hope that it will be useful,       *
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
 *   GNU General Public License for more details.                          *
 *                                                                         *
 *   You should have received a copy of the GNU General Public License     *
 *   along with this program; if not, write to the                         *
 *   Free Software Foundation, Inc.,                                       *
 *   51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.              *
 ***************************************************************************/
/**
 * @file   hotkey.h
 * @author Yuking yuking_net@sohu.com CS Slayer wengxt@gmail.com
 * @date   2008-1-16
 *
 *  hotkey related config and functions
 *
 */

#ifndef _FCITX_HOTKEY_H_
#define _FCITX_HOTKEY_H_

#include <stdint.h>
#include <fcitx-config/fcitx-config.h>

#ifdef __cplusplus
extern "C"
{
#endif
    /**
     * mainly come from X11/keysymdef.h
     **/
    typedef enum _FcitxKeySym
    {
        FcitxKey_None                        = 0x0,
        FcitxKey_VoidSymbol                  = 0xffffff,  /* Void symbol */


        /*
         * TTY function keys, cleverly chosen to map to ASCII, for convenience of
         * programming, but could have been arbitrary (at the cost of lookup
         * tables in client code).
         */

        FcitxKey_BackSpace                     = 0xff08,  /* Back space, back char */
        FcitxKey_Tab                           = 0xff09,
        FcitxKey_Linefeed                      = 0xff0a,  /* Linefeed, LF */
        FcitxKey_Clear                         = 0xff0b,
        FcitxKey_Return                        = 0xff0d,  /* Return, enter */
        FcitxKey_Pause                         = 0xff13,  /* Pause, hold */
        FcitxKey_Scroll_Lock                   = 0xff14,
        FcitxKey_Sys_Req                       = 0xff15,
        FcitxKey_Escape                        = 0xff1b,
        FcitxKey_Delete                        = 0xffff,  /* Delete, rubout */



        /* International & multi-key character composition */

        FcitxKey_Multi_key                     = 0xff20,  /* Multi-key character compose */
        FcitxKey_Codeinput                     = 0xff37,
        FcitxKey_SingleCandidate               = 0xff3c,
        FcitxKey_MultipleCandidate             = 0xff3d,
        FcitxKey_PreviousCandidate             = 0xff3e,

        /* Japanese keyboard support */

        FcitxKey_Kanji                         = 0xff21,  /* Kanji, Kanji convert */
        FcitxKey_Muhenkan                      = 0xff22,  /* Cancel Conversion */
        FcitxKey_Henkan_Mode                   = 0xff23,  /* Start/Stop Conversion */
        FcitxKey_Henkan                        = 0xff23,  /* Alias for Henkan_Mode */
        FcitxKey_Romaji                        = 0xff24,  /* to Romaji */
        FcitxKey_Hiragana                      = 0xff25,  /* to Hiragana */
        FcitxKey_Katakana                      = 0xff26,  /* to Katakana */
        FcitxKey_Hiragana_Katakana             = 0xff27,  /* Hiragana/Katakana toggle */
        FcitxKey_Zenkaku                       = 0xff28,  /* to Zenkaku */
        FcitxKey_Hankaku                       = 0xff29,  /* to Hankaku */
        FcitxKey_Zenkaku_Hankaku               = 0xff2a,  /* Zenkaku/Hankaku toggle */
        FcitxKey_Touroku                       = 0xff2b,  /* Add to Dictionary */
        FcitxKey_Massyo                        = 0xff2c,  /* Delete from Dictionary */
        FcitxKey_Kana_Lock                     = 0xff2d,  /* Kana Lock */
        FcitxKey_Kana_Shift                    = 0xff2e,  /* Kana Shift */
        FcitxKey_Eisu_Shift                    = 0xff2f,  /* Alphanumeric Shift */
        FcitxKey_Eisu_toggle                   = 0xff30,  /* Alphanumeric toggle */
        FcitxKey_Kanji_Bangou                  = 0xff37,  /* Codeinput */
        FcitxKey_Zen_Koho                      = 0xff3d,  /* Multiple/All Candidate(s) */
        FcitxKey_Mae_Koho                      = 0xff3e,  /* Previous Candidate */

        /* = 0xff31, thru = 0xff3f, are under FcitxKey_KOREAN */

        /* Cursor control & motion */

        FcitxKey_Home                          = 0xff50,
        FcitxKey_Left                          = 0xff51,  /* Move left, left arrow */
        FcitxKey_Up                            = 0xff52,  /* Move up, up arrow */
        FcitxKey_Right                         = 0xff53,  /* Move right, right arrow */
        FcitxKey_Down                          = 0xff54,  /* Move down, down arrow */
        FcitxKey_Prior                         = 0xff55,  /* Prior, previous */
        FcitxKey_Page_Up                       = 0xff55,
        FcitxKey_Next                          = 0xff56,  /* Next */
        FcitxKey_Page_Down                     = 0xff56,
        FcitxKey_End                           = 0xff57,  /* EOL */
        FcitxKey_Begin                         = 0xff58,  /* BOL */


        /* Misc functions */

        FcitxKey_Select                        = 0xff60,  /* Select, mark */
        FcitxKey_Print                         = 0xff61,
        FcitxKey_Execute                       = 0xff62,  /* Execute, run, do */
        FcitxKey_Insert                        = 0xff63,  /* Insert, insert here */
        FcitxKey_Undo                          = 0xff65,
        FcitxKey_Redo                          = 0xff66,  /* Redo, again */
        FcitxKey_Menu                          = 0xff67,
        FcitxKey_Find                          = 0xff68,  /* Find, search */
        FcitxKey_Cancel                        = 0xff69,  /* Cancel, stop, abort, exit */
        FcitxKey_Help                          = 0xff6a,  /* Help */
        FcitxKey_Break                         = 0xff6b,
        FcitxKey_Mode_switch                   = 0xff7e,  /* Character set switch */
        FcitxKey_script_switch                 = 0xff7e,  /* Alias for mode_switch */
        FcitxKey_Num_Lock                      = 0xff7f,

        /* Keypad functions, keypad numbers cleverly chosen to map to ASCII */

        FcitxKey_KP_Space                      = 0xff80,  /* Space */
        FcitxKey_KP_Tab                        = 0xff89,
        FcitxKey_KP_Enter                      = 0xff8d,  /* Enter */
        FcitxKey_KP_F1                         = 0xff91,  /* PF1, KP_A, ... */
        FcitxKey_KP_F2                         = 0xff92,
        FcitxKey_KP_F3                         = 0xff93,
        FcitxKey_KP_F4                         = 0xff94,
        FcitxKey_KP_Home                       = 0xff95,
        FcitxKey_KP_Left                       = 0xff96,
        FcitxKey_KP_Up                         = 0xff97,
        FcitxKey_KP_Right                      = 0xff98,
        FcitxKey_KP_Down                       = 0xff99,
        FcitxKey_KP_Prior                      = 0xff9a,
        FcitxKey_KP_Page_Up                    = 0xff9a,
        FcitxKey_KP_Next                       = 0xff9b,
        FcitxKey_KP_Page_Down                  = 0xff9b,
        FcitxKey_KP_End                        = 0xff9c,
        FcitxKey_KP_Begin                      = 0xff9d,
        FcitxKey_KP_Insert                     = 0xff9e,
        FcitxKey_KP_Delete                     = 0xff9f,
        FcitxKey_KP_Equal                      = 0xffbd,  /* Equals */
        FcitxKey_KP_Multiply                   = 0xffaa,
        FcitxKey_KP_Add                        = 0xffab,
        FcitxKey_KP_Separator                  = 0xffac,  /* Separator, often comma */
        FcitxKey_KP_Subtract                   = 0xffad,
        FcitxKey_KP_Decimal                    = 0xffae,
        FcitxKey_KP_Divide                     = 0xffaf,

        FcitxKey_KP_0                          = 0xffb0,
        FcitxKey_KP_1                          = 0xffb1,
        FcitxKey_KP_2                          = 0xffb2,
        FcitxKey_KP_3                          = 0xffb3,
        FcitxKey_KP_4                          = 0xffb4,
        FcitxKey_KP_5                          = 0xffb5,
        FcitxKey_KP_6                          = 0xffb6,
        FcitxKey_KP_7                          = 0xffb7,
        FcitxKey_KP_8                          = 0xffb8,
        FcitxKey_KP_9                          = 0xffb9,



        /*
         * Auxiliary functions; note the duplicate definitions for left and right
         * function keys;  Sun keyboards and a few other manufacturers have such
         * function key groups on the left and/or right sides of the keyboard.
         * We've not found a keyboard with more than 35 function keys total.
         */

        FcitxKey_F1                            = 0xffbe,
        FcitxKey_F2                            = 0xffbf,
        FcitxKey_F3                            = 0xffc0,
        FcitxKey_F4                            = 0xffc1,
        FcitxKey_F5                            = 0xffc2,
        FcitxKey_F6                            = 0xffc3,
        FcitxKey_F7                            = 0xffc4,
        FcitxKey_F8                            = 0xffc5,
        FcitxKey_F9                            = 0xffc6,
        FcitxKey_F10                           = 0xffc7,
        FcitxKey_F11                           = 0xffc8,
        FcitxKey_L1                            = 0xffc8,
        FcitxKey_F12                           = 0xffc9,
        FcitxKey_L2                            = 0xffc9,
        FcitxKey_F13                           = 0xffca,
        FcitxKey_L3                            = 0xffca,
        FcitxKey_F14                           = 0xffcb,
        FcitxKey_L4                            = 0xffcb,
        FcitxKey_F15                           = 0xffcc,
        FcitxKey_L5                            = 0xffcc,
        FcitxKey_F16                           = 0xffcd,
        FcitxKey_L6                            = 0xffcd,
        FcitxKey_F17                           = 0xffce,
        FcitxKey_L7                            = 0xffce,
        FcitxKey_F18                           = 0xffcf,
        FcitxKey_L8                            = 0xffcf,
        FcitxKey_F19                           = 0xffd0,
        FcitxKey_L9                            = 0xffd0,
        FcitxKey_F20                           = 0xffd1,
        FcitxKey_L10                           = 0xffd1,
        FcitxKey_F21                           = 0xffd2,
        FcitxKey_R1                            = 0xffd2,
        FcitxKey_F22                           = 0xffd3,
        FcitxKey_R2                            = 0xffd3,
        FcitxKey_F23                           = 0xffd4,
        FcitxKey_R3                            = 0xffd4,
        FcitxKey_F24                           = 0xffd5,
        FcitxKey_R4                            = 0xffd5,
        FcitxKey_F25                           = 0xffd6,
        FcitxKey_R5                            = 0xffd6,
        FcitxKey_F26                           = 0xffd7,
        FcitxKey_R6                            = 0xffd7,
        FcitxKey_F27                           = 0xffd8,
        FcitxKey_R7                            = 0xffd8,
        FcitxKey_F28                           = 0xffd9,
        FcitxKey_R8                            = 0xffd9,
        FcitxKey_F29                           = 0xffda,
        FcitxKey_R9                            = 0xffda,
        FcitxKey_F30                           = 0xffdb,
        FcitxKey_R10                           = 0xffdb,
        FcitxKey_F31                           = 0xffdc,
        FcitxKey_R11                           = 0xffdc,
        FcitxKey_F32                           = 0xffdd,
        FcitxKey_R12                           = 0xffdd,
        FcitxKey_F33                           = 0xffde,
        FcitxKey_R13                           = 0xffde,
        FcitxKey_F34                           = 0xffdf,
        FcitxKey_R14                           = 0xffdf,
        FcitxKey_F35                           = 0xffe0,
        FcitxKey_R15                           = 0xffe0,

        /* Modifiers */

        FcitxKey_Shift_L                       = 0xffe1,  /* Left shift */
        FcitxKey_Shift_R                       = 0xffe2,  /* Right shift */
        FcitxKey_Control_L                     = 0xffe3,  /* Left control */
        FcitxKey_Control_R                     = 0xffe4,  /* Right control */
        FcitxKey_Caps_Lock                     = 0xffe5,  /* Caps lock */
        FcitxKey_Shift_Lock                    = 0xffe6,  /* Shift lock */

        FcitxKey_Meta_L                        = 0xffe7,  /* Left meta */
        FcitxKey_Meta_R                        = 0xffe8,  /* Right meta */
        FcitxKey_Alt_L                         = 0xffe9,  /* Left alt */
        FcitxKey_Alt_R                         = 0xffea,  /* Right alt */
        FcitxKey_Super_L                       = 0xffeb,  /* Left super */
        FcitxKey_Super_R                       = 0xffec,  /* Right super */
        FcitxKey_Hyper_L                       = 0xffed,  /* Left hyper */
        FcitxKey_Hyper_R                       = 0xffee,  /* Right hyper */


        /*
         * Keyboard (XKB) Extension function and modifier keys
         * (from Appendix C of "The X Keyboard Extension: Protocol Specification")
         * Byte 3 = = 0xfe,
         */


        FcitxKey_ISO_Lock                      = 0xfe01,
        FcitxKey_ISO_Level2_Latch              = 0xfe02,
        FcitxKey_ISO_Level3_Shift              = 0xfe03,
        FcitxKey_ISO_Level3_Latch              = 0xfe04,
        FcitxKey_ISO_Level3_Lock               = 0xfe05,
        FcitxKey_ISO_Level5_Shift              = 0xfe11,
        FcitxKey_ISO_Level5_Latch              = 0xfe12,
        FcitxKey_ISO_Level5_Lock               = 0xfe13,
        FcitxKey_ISO_Group_Shift               = 0xff7e,  /* Alias for mode_switch */
        FcitxKey_ISO_Group_Latch               = 0xfe06,
        FcitxKey_ISO_Group_Lock                = 0xfe07,
        FcitxKey_ISO_Next_Group                = 0xfe08,
        FcitxKey_ISO_Next_Group_Lock           = 0xfe09,
        FcitxKey_ISO_Prev_Group                = 0xfe0a,
        FcitxKey_ISO_Prev_Group_Lock           = 0xfe0b,
        FcitxKey_ISO_First_Group               = 0xfe0c,
        FcitxKey_ISO_First_Group_Lock          = 0xfe0d,
        FcitxKey_ISO_Last_Group                = 0xfe0e,
        FcitxKey_ISO_Last_Group_Lock           = 0xfe0f,

        FcitxKey_ISO_Left_Tab                  = 0xfe20,
        FcitxKey_ISO_Move_Line_Up              = 0xfe21,
        FcitxKey_ISO_Move_Line_Down            = 0xfe22,
        FcitxKey_ISO_Partial_Line_Up           = 0xfe23,
        FcitxKey_ISO_Partial_Line_Down         = 0xfe24,
        FcitxKey_ISO_Partial_Space_Left        = 0xfe25,
        FcitxKey_ISO_Partial_Space_Right       = 0xfe26,
        FcitxKey_ISO_Set_Margin_Left           = 0xfe27,
        FcitxKey_ISO_Set_Margin_Right          = 0xfe28,
        FcitxKey_ISO_Release_Margin_Left       = 0xfe29,
        FcitxKey_ISO_Release_Margin_Right      = 0xfe2a,
        FcitxKey_ISO_Release_Both_Margins      = 0xfe2b,
        FcitxKey_ISO_Fast_Cursor_Left          = 0xfe2c,
        FcitxKey_ISO_Fast_Cursor_Right         = 0xfe2d,
        FcitxKey_ISO_Fast_Cursor_Up            = 0xfe2e,
        FcitxKey_ISO_Fast_Cursor_Down          = 0xfe2f,
        FcitxKey_ISO_Continuous_Underline      = 0xfe30,
        FcitxKey_ISO_Discontinuous_Underline   = 0xfe31,
        FcitxKey_ISO_Emphasize                 = 0xfe32,
        FcitxKey_ISO_Center_Object             = 0xfe33,
        FcitxKey_ISO_Enter                     = 0xfe34,

        FcitxKey_dead_grave                    = 0xfe50,
        FcitxKey_dead_acute                    = 0xfe51,
        FcitxKey_dead_circumflex               = 0xfe52,
        FcitxKey_dead_tilde                    = 0xfe53,
        FcitxKey_dead_perispomeni              = 0xfe53,  /* alias for dead_tilde */
        FcitxKey_dead_macron                   = 0xfe54,
        FcitxKey_dead_breve                    = 0xfe55,
        FcitxKey_dead_abovedot                 = 0xfe56,
        FcitxKey_dead_diaeresis                = 0xfe57,
        FcitxKey_dead_abovering                = 0xfe58,
        FcitxKey_dead_doubleacute              = 0xfe59,
        FcitxKey_dead_caron                    = 0xfe5a,
        FcitxKey_dead_cedilla                  = 0xfe5b,
        FcitxKey_dead_ogonek                   = 0xfe5c,
        FcitxKey_dead_iota                     = 0xfe5d,
        FcitxKey_dead_voiced_sound             = 0xfe5e,
        FcitxKey_dead_semivoiced_sound         = 0xfe5f,
        FcitxKey_dead_belowdot                 = 0xfe60,
        FcitxKey_dead_hook                     = 0xfe61,
        FcitxKey_dead_horn                     = 0xfe62,
        FcitxKey_dead_stroke                   = 0xfe63,
        FcitxKey_dead_abovecomma               = 0xfe64,
        FcitxKey_dead_psili                    = 0xfe64,  /* alias for dead_abovecomma */
        FcitxKey_dead_abovereversedcomma       = 0xfe65,
        FcitxKey_dead_dasia                    = 0xfe65,  /* alias for dead_abovereversedcomma */
        FcitxKey_dead_doublegrave              = 0xfe66,
        FcitxKey_dead_belowring                = 0xfe67,
        FcitxKey_dead_belowmacron              = 0xfe68,
        FcitxKey_dead_belowcircumflex          = 0xfe69,
        FcitxKey_dead_belowtilde               = 0xfe6a,
        FcitxKey_dead_belowbreve               = 0xfe6b,
        FcitxKey_dead_belowdiaeresis           = 0xfe6c,
        FcitxKey_dead_invertedbreve            = 0xfe6d,
        FcitxKey_dead_belowcomma               = 0xfe6e,
        FcitxKey_dead_currency                 = 0xfe6f,

        /* dead vowels for universal syllable entry */
        FcitxKey_dead_a                        = 0xfe80,
        FcitxKey_dead_A                        = 0xfe81,
        FcitxKey_dead_e                        = 0xfe82,
        FcitxKey_dead_E                        = 0xfe83,
        FcitxKey_dead_i                        = 0xfe84,
        FcitxKey_dead_I                        = 0xfe85,
        FcitxKey_dead_o                        = 0xfe86,
        FcitxKey_dead_O                        = 0xfe87,
        FcitxKey_dead_u                        = 0xfe88,
        FcitxKey_dead_U                        = 0xfe89,
        FcitxKey_dead_small_schwa              = 0xfe8a,
        FcitxKey_dead_capital_schwa            = 0xfe8b,

        FcitxKey_First_Virtual_Screen          = 0xfed0,
        FcitxKey_Prev_Virtual_Screen           = 0xfed1,
        FcitxKey_Next_Virtual_Screen           = 0xfed2,
        FcitxKey_Last_Virtual_Screen           = 0xfed4,
        FcitxKey_Terminate_Server              = 0xfed5,

        FcitxKey_AccessX_Enable                = 0xfe70,
        FcitxKey_AccessX_Feedback_Enable       = 0xfe71,
        FcitxKey_RepeatKeys_Enable             = 0xfe72,
        FcitxKey_SlowKeys_Enable               = 0xfe73,
        FcitxKey_BounceKeys_Enable             = 0xfe74,
        FcitxKey_StickyKeys_Enable             = 0xfe75,
        FcitxKey_MouseKeys_Enable              = 0xfe76,
        FcitxKey_MouseKeys_Accel_Enable        = 0xfe77,
        FcitxKey_Overlay1_Enable               = 0xfe78,
        FcitxKey_Overlay2_Enable               = 0xfe79,
        FcitxKey_AudibleBell_Enable            = 0xfe7a,

        FcitxKey_Pointer_Left                  = 0xfee0,
        FcitxKey_Pointer_Right                 = 0xfee1,
        FcitxKey_Pointer_Up                    = 0xfee2,
        FcitxKey_Pointer_Down                  = 0xfee3,
        FcitxKey_Pointer_UpLeft                = 0xfee4,
        FcitxKey_Pointer_UpRight               = 0xfee5,
        FcitxKey_Pointer_DownLeft              = 0xfee6,
        FcitxKey_Pointer_DownRight             = 0xfee7,
        FcitxKey_Pointer_Button_Dflt           = 0xfee8,
        FcitxKey_Pointer_Button1               = 0xfee9,
        FcitxKey_Pointer_Button2               = 0xfeea,
        FcitxKey_Pointer_Button3               = 0xfeeb,
        FcitxKey_Pointer_Button4               = 0xfeec,
        FcitxKey_Pointer_Button5               = 0xfeed,
        FcitxKey_Pointer_DblClick_Dflt         = 0xfeee,
        FcitxKey_Pointer_DblClick1             = 0xfeef,
        FcitxKey_Pointer_DblClick2             = 0xfef0,
        FcitxKey_Pointer_DblClick3             = 0xfef1,
        FcitxKey_Pointer_DblClick4             = 0xfef2,
        FcitxKey_Pointer_DblClick5             = 0xfef3,
        FcitxKey_Pointer_Drag_Dflt             = 0xfef4,
        FcitxKey_Pointer_Drag1                 = 0xfef5,
        FcitxKey_Pointer_Drag2                 = 0xfef6,
        FcitxKey_Pointer_Drag3                 = 0xfef7,
        FcitxKey_Pointer_Drag4                 = 0xfef8,
        FcitxKey_Pointer_Drag5                 = 0xfefd,

        FcitxKey_Pointer_EnableKeys            = 0xfef9,
        FcitxKey_Pointer_Accelerate            = 0xfefa,
        FcitxKey_Pointer_DfltBtnNext           = 0xfefb,
        FcitxKey_Pointer_DfltBtnPrev           = 0xfefc,



        /*
         * 3270 Terminal Keys
         * Byte 3 = = 0xfd,
         */


        FcitxKey_3270_Duplicate                = 0xfd01,
        FcitxKey_3270_FieldMark                = 0xfd02,
        FcitxKey_3270_Right2                   = 0xfd03,
        FcitxKey_3270_Left2                    = 0xfd04,
        FcitxKey_3270_BackTab                  = 0xfd05,
        FcitxKey_3270_EraseEOF                 = 0xfd06,
        FcitxKey_3270_EraseInput               = 0xfd07,
        FcitxKey_3270_Reset                    = 0xfd08,
        FcitxKey_3270_Quit                     = 0xfd09,
        FcitxKey_3270_PA1                      = 0xfd0a,
        FcitxKey_3270_PA2                      = 0xfd0b,
        FcitxKey_3270_PA3                      = 0xfd0c,
        FcitxKey_3270_Test                     = 0xfd0d,
        FcitxKey_3270_Attn                     = 0xfd0e,
        FcitxKey_3270_CursorBlink              = 0xfd0f,
        FcitxKey_3270_AltCursor                = 0xfd10,
        FcitxKey_3270_KeyClick                 = 0xfd11,
        FcitxKey_3270_Jump                     = 0xfd12,
        FcitxKey_3270_Ident                    = 0xfd13,
        FcitxKey_3270_Rule                     = 0xfd14,
        FcitxKey_3270_Copy                     = 0xfd15,
        FcitxKey_3270_Play                     = 0xfd16,
        FcitxKey_3270_Setup                    = 0xfd17,
        FcitxKey_3270_Record                   = 0xfd18,
        FcitxKey_3270_ChangeScreen             = 0xfd19,
        FcitxKey_3270_DeleteWord               = 0xfd1a,
        FcitxKey_3270_ExSelect                 = 0xfd1b,
        FcitxKey_3270_CursorSelect             = 0xfd1c,
        FcitxKey_3270_PrintScreen              = 0xfd1d,
        FcitxKey_3270_Enter                    = 0xfd1e,


        /*
         * Latin 1
         * (ISO/IEC 8859-1 = Unicode U+0020..U+00FF)
         * Byte 3 = 0
         */

        FcitxKey_space                         = 0x0020,  /* U+0020 SPACE */
        FcitxKey_exclam                        = 0x0021,  /* U+0021 EXCLAMATION MARK */
        FcitxKey_quotedbl                      = 0x0022,  /* U+0022 QUOTATION MARK */
        FcitxKey_numbersign                    = 0x0023,  /* U+0023 NUMBER SIGN */
        FcitxKey_dollar                        = 0x0024,  /* U+0024 DOLLAR SIGN */
        FcitxKey_percent                       = 0x0025,  /* U+0025 PERCENT SIGN */
        FcitxKey_ampersand                     = 0x0026,  /* U+0026 AMPERSAND */
        FcitxKey_apostrophe                    = 0x0027,  /* U+0027 APOSTROPHE */
        FcitxKey_quoteright                    = 0x0027,  /* deprecated */
        FcitxKey_parenleft                     = 0x0028,  /* U+0028 LEFT PARENTHESIS */
        FcitxKey_parenright                    = 0x0029,  /* U+0029 RIGHT PARENTHESIS */
        FcitxKey_asterisk                      = 0x002a,  /* U+002A ASTERISK */
        FcitxKey_plus                          = 0x002b,  /* U+002B PLUS SIGN */
        FcitxKey_comma                         = 0x002c,  /* U+002C COMMA */
        FcitxKey_minus                         = 0x002d,  /* U+002D HYPHEN-MINUS */
        FcitxKey_period                        = 0x002e,  /* U+002E FULL STOP */
        FcitxKey_slash                         = 0x002f,  /* U+002F SOLIDUS */
        FcitxKey_0                             = 0x0030,  /* U+0030 DIGIT ZERO */
        FcitxKey_1                             = 0x0031,  /* U+0031 DIGIT ONE */
        FcitxKey_2                             = 0x0032,  /* U+0032 DIGIT TWO */
        FcitxKey_3                             = 0x0033,  /* U+0033 DIGIT THREE */
        FcitxKey_4                             = 0x0034,  /* U+0034 DIGIT FOUR */
        FcitxKey_5                             = 0x0035,  /* U+0035 DIGIT FIVE */
        FcitxKey_6                             = 0x0036,  /* U+0036 DIGIT SIX */
        FcitxKey_7                             = 0x0037,  /* U+0037 DIGIT SEVEN */
        FcitxKey_8                             = 0x0038,  /* U+0038 DIGIT EIGHT */
        FcitxKey_9                             = 0x0039,  /* U+0039 DIGIT NINE */
        FcitxKey_colon                         = 0x003a,  /* U+003A COLON */
        FcitxKey_semicolon                     = 0x003b,  /* U+003B SEMICOLON */
        FcitxKey_less                          = 0x003c,  /* U+003C LESS-THAN SIGN */
        FcitxKey_equal                         = 0x003d,  /* U+003D EQUALS SIGN */
        FcitxKey_greater                       = 0x003e,  /* U+003E GREATER-THAN SIGN */
        FcitxKey_question                      = 0x003f,  /* U+003F QUESTION MARK */
        FcitxKey_at                            = 0x0040,  /* U+0040 COMMERCIAL AT */
        FcitxKey_A                             = 0x0041,  /* U+0041 LATIN CAPITAL LETTER A */
        FcitxKey_B                             = 0x0042,  /* U+0042 LATIN CAPITAL LETTER B */
        FcitxKey_C                             = 0x0043,  /* U+0043 LATIN CAPITAL LETTER C */
        FcitxKey_D                             = 0x0044,  /* U+0044 LATIN CAPITAL LETTER D */
        FcitxKey_E                             = 0x0045,  /* U+0045 LATIN CAPITAL LETTER E */
        FcitxKey_F                             = 0x0046,  /* U+0046 LATIN CAPITAL LETTER F */
        FcitxKey_G                             = 0x0047,  /* U+0047 LATIN CAPITAL LETTER G */
        FcitxKey_H                             = 0x0048,  /* U+0048 LATIN CAPITAL LETTER H */
        FcitxKey_I                             = 0x0049,  /* U+0049 LATIN CAPITAL LETTER I */
        FcitxKey_J                             = 0x004a,  /* U+004A LATIN CAPITAL LETTER J */
        FcitxKey_K                             = 0x004b,  /* U+004B LATIN CAPITAL LETTER K */
        FcitxKey_L                             = 0x004c,  /* U+004C LATIN CAPITAL LETTER L */
        FcitxKey_M                             = 0x004d,  /* U+004D LATIN CAPITAL LETTER M */
        FcitxKey_N                             = 0x004e,  /* U+004E LATIN CAPITAL LETTER N */
        FcitxKey_O                             = 0x004f,  /* U+004F LATIN CAPITAL LETTER O */
        FcitxKey_P                             = 0x0050,  /* U+0050 LATIN CAPITAL LETTER P */
        FcitxKey_Q                             = 0x0051,  /* U+0051 LATIN CAPITAL LETTER Q */
        FcitxKey_R                             = 0x0052,  /* U+0052 LATIN CAPITAL LETTER R */
        FcitxKey_S                             = 0x0053,  /* U+0053 LATIN CAPITAL LETTER S */
        FcitxKey_T                             = 0x0054,  /* U+0054 LATIN CAPITAL LETTER T */
        FcitxKey_U                             = 0x0055,  /* U+0055 LATIN CAPITAL LETTER U */
        FcitxKey_V                             = 0x0056,  /* U+0056 LATIN CAPITAL LETTER V */
        FcitxKey_W                             = 0x0057,  /* U+0057 LATIN CAPITAL LETTER W */
        FcitxKey_X                             = 0x0058,  /* U+0058 LATIN CAPITAL LETTER X */
        FcitxKey_Y                             = 0x0059,  /* U+0059 LATIN CAPITAL LETTER Y */
        FcitxKey_Z                             = 0x005a,  /* U+005A LATIN CAPITAL LETTER Z */
        FcitxKey_bracketleft                   = 0x005b,  /* U+005B LEFT SQUARE BRACKET */
        FcitxKey_backslash                     = 0x005c,  /* U+005C REVERSE SOLIDUS */
        FcitxKey_bracketright                  = 0x005d,  /* U+005D RIGHT SQUARE BRACKET */
        FcitxKey_asciicircum                   = 0x005e,  /* U+005E CIRCUMFLEX ACCENT */
        FcitxKey_underscore                    = 0x005f,  /* U+005F LOW LINE */
        FcitxKey_grave                         = 0x0060,  /* U+0060 GRAVE ACCENT */
        FcitxKey_quoteleft                     = 0x0060,  /* deprecated */
        FcitxKey_a                             = 0x0061,  /* U+0061 LATIN SMALL LETTER A */
        FcitxKey_b                             = 0x0062,  /* U+0062 LATIN SMALL LETTER B */
        FcitxKey_c                             = 0x0063,  /* U+0063 LATIN SMALL LETTER C */
        FcitxKey_d                             = 0x0064,  /* U+0064 LATIN SMALL LETTER D */
        FcitxKey_e                             = 0x0065,  /* U+0065 LATIN SMALL LETTER E */
        FcitxKey_f                             = 0x0066,  /* U+0066 LATIN SMALL LETTER F */
        FcitxKey_g                             = 0x0067,  /* U+0067 LATIN SMALL LETTER G */
        FcitxKey_h                             = 0x0068,  /* U+0068 LATIN SMALL LETTER H */
        FcitxKey_i                             = 0x0069,  /* U+0069 LATIN SMALL LETTER I */
        FcitxKey_j                             = 0x006a,  /* U+006A LATIN SMALL LETTER J */
        FcitxKey_k                             = 0x006b,  /* U+006B LATIN SMALL LETTER K */
        FcitxKey_l                             = 0x006c,  /* U+006C LATIN SMALL LETTER L */
        FcitxKey_m                             = 0x006d,  /* U+006D LATIN SMALL LETTER M */
        FcitxKey_n                             = 0x006e,  /* U+006E LATIN SMALL LETTER N */
        FcitxKey_o                             = 0x006f,  /* U+006F LATIN SMALL LETTER O */
        FcitxKey_p                             = 0x0070,  /* U+0070 LATIN SMALL LETTER P */
        FcitxKey_q                             = 0x0071,  /* U+0071 LATIN SMALL LETTER Q */
        FcitxKey_r                             = 0x0072,  /* U+0072 LATIN SMALL LETTER R */
        FcitxKey_s                             = 0x0073,  /* U+0073 LATIN SMALL LETTER S */
        FcitxKey_t                             = 0x0074,  /* U+0074 LATIN SMALL LETTER T */
        FcitxKey_u                             = 0x0075,  /* U+0075 LATIN SMALL LETTER U */
        FcitxKey_v                             = 0x0076,  /* U+0076 LATIN SMALL LETTER V */
        FcitxKey_w                             = 0x0077,  /* U+0077 LATIN SMALL LETTER W */
        FcitxKey_x                             = 0x0078,  /* U+0078 LATIN SMALL LETTER X */
        FcitxKey_y                             = 0x0079,  /* U+0079 LATIN SMALL LETTER Y */
        FcitxKey_z                             = 0x007a,  /* U+007A LATIN SMALL LETTER Z */
        FcitxKey_braceleft                     = 0x007b,  /* U+007B LEFT CURLY BRACKET */
        FcitxKey_bar                           = 0x007c,  /* U+007C VERTICAL LINE */
        FcitxKey_braceright                    = 0x007d,  /* U+007D RIGHT CURLY BRACKET */
        FcitxKey_asciitilde                    = 0x007e,  /* U+007E TILDE */

        FcitxKey_nobreakspace                  = 0x00a0,  /* U+00A0 NO-BREAK SPACE */
        FcitxKey_exclamdown                    = 0x00a1,  /* U+00A1 INVERTED EXCLAMATION MARK */
        FcitxKey_cent                          = 0x00a2,  /* U+00A2 CENT SIGN */
        FcitxKey_sterling                      = 0x00a3,  /* U+00A3 POUND SIGN */
        FcitxKey_currency                      = 0x00a4,  /* U+00A4 CURRENCY SIGN */
        FcitxKey_yen                           = 0x00a5,  /* U+00A5 YEN SIGN */
        FcitxKey_brokenbar                     = 0x00a6,  /* U+00A6 BROKEN BAR */
        FcitxKey_section                       = 0x00a7,  /* U+00A7 SECTION SIGN */
        FcitxKey_diaeresis                     = 0x00a8,  /* U+00A8 DIAERESIS */
        FcitxKey_copyright                     = 0x00a9,  /* U+00A9 COPYRIGHT SIGN */
        FcitxKey_ordfeminine                   = 0x00aa,  /* U+00AA FEMININE ORDINAL INDICATOR */
        FcitxKey_guillemotleft                 = 0x00ab,  /* U+00AB LEFT-POINTING DOUBLE ANGLE QUOTATION MARK */
        FcitxKey_notsign                       = 0x00ac,  /* U+00AC NOT SIGN */
        FcitxKey_hyphen                        = 0x00ad,  /* U+00AD SOFT HYPHEN */
        FcitxKey_registered                    = 0x00ae,  /* U+00AE REGISTERED SIGN */
        FcitxKey_macron                        = 0x00af,  /* U+00AF MACRON */
        FcitxKey_degree                        = 0x00b0,  /* U+00B0 DEGREE SIGN */
        FcitxKey_plusminus                     = 0x00b1,  /* U+00B1 PLUS-MINUS SIGN */
        FcitxKey_twosuperior                   = 0x00b2,  /* U+00B2 SUPERSCRIPT TWO */
        FcitxKey_threesuperior                 = 0x00b3,  /* U+00B3 SUPERSCRIPT THREE */
        FcitxKey_acute                         = 0x00b4,  /* U+00B4 ACUTE ACCENT */
        FcitxKey_mu                            = 0x00b5,  /* U+00B5 MICRO SIGN */
        FcitxKey_paragraph                     = 0x00b6,  /* U+00B6 PILCROW SIGN */
        FcitxKey_periodcentered                = 0x00b7,  /* U+00B7 MIDDLE DOT */
        FcitxKey_cedilla                       = 0x00b8,  /* U+00B8 CEDILLA */
        FcitxKey_onesuperior                   = 0x00b9,  /* U+00B9 SUPERSCRIPT ONE */
        FcitxKey_masculine                     = 0x00ba,  /* U+00BA MASCULINE ORDINAL INDICATOR */
        FcitxKey_guillemotright                = 0x00bb,  /* U+00BB RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK */
        FcitxKey_onequarter                    = 0x00bc,  /* U+00BC VULGAR FRACTION ONE QUARTER */
        FcitxKey_onehalf                       = 0x00bd,  /* U+00BD VULGAR FRACTION ONE HALF */
        FcitxKey_threequarters                 = 0x00be,  /* U+00BE VULGAR FRACTION THREE QUARTERS */
        FcitxKey_questiondown                  = 0x00bf,  /* U+00BF INVERTED QUESTION MARK */
        FcitxKey_Agrave                        = 0x00c0,  /* U+00C0 LATIN CAPITAL LETTER A WITH GRAVE */
        FcitxKey_Aacute                        = 0x00c1,  /* U+00C1 LATIN CAPITAL LETTER A WITH ACUTE */
        FcitxKey_Acircumflex                   = 0x00c2,  /* U+00C2 LATIN CAPITAL LETTER A WITH CIRCUMFLEX */
        FcitxKey_Atilde                        = 0x00c3,  /* U+00C3 LATIN CAPITAL LETTER A WITH TILDE */
        FcitxKey_Adiaeresis                    = 0x00c4,  /* U+00C4 LATIN CAPITAL LETTER A WITH DIAERESIS */
        FcitxKey_Aring                         = 0x00c5,  /* U+00C5 LATIN CAPITAL LETTER A WITH RING ABOVE */
        FcitxKey_AE                            = 0x00c6,  /* U+00C6 LATIN CAPITAL LETTER AE */
        FcitxKey_Ccedilla                      = 0x00c7,  /* U+00C7 LATIN CAPITAL LETTER C WITH CEDILLA */
        FcitxKey_Egrave                        = 0x00c8,  /* U+00C8 LATIN CAPITAL LETTER E WITH GRAVE */
        FcitxKey_Eacute                        = 0x00c9,  /* U+00C9 LATIN CAPITAL LETTER E WITH ACUTE */
        FcitxKey_Ecircumflex                   = 0x00ca,  /* U+00CA LATIN CAPITAL LETTER E WITH CIRCUMFLEX */
        FcitxKey_Ediaeresis                    = 0x00cb,  /* U+00CB LATIN CAPITAL LETTER E WITH DIAERESIS */
        FcitxKey_Igrave                        = 0x00cc,  /* U+00CC LATIN CAPITAL LETTER I WITH GRAVE */
        FcitxKey_Iacute                        = 0x00cd,  /* U+00CD LATIN CAPITAL LETTER I WITH ACUTE */
        FcitxKey_Icircumflex                   = 0x00ce,  /* U+00CE LATIN CAPITAL LETTER I WITH CIRCUMFLEX */
        FcitxKey_Idiaeresis                    = 0x00cf,  /* U+00CF LATIN CAPITAL LETTER I WITH DIAERESIS */
        FcitxKey_ETH                           = 0x00d0,  /* U+00D0 LATIN CAPITAL LETTER ETH */
        FcitxKey_Eth                           = 0x00d0,  /* deprecated */
        FcitxKey_Ntilde                        = 0x00d1,  /* U+00D1 LATIN CAPITAL LETTER N WITH TILDE */
        FcitxKey_Ograve                        = 0x00d2,  /* U+00D2 LATIN CAPITAL LETTER O WITH GRAVE */
        FcitxKey_Oacute                        = 0x00d3,  /* U+00D3 LATIN CAPITAL LETTER O WITH ACUTE */
        FcitxKey_Ocircumflex                   = 0x00d4,  /* U+00D4 LATIN CAPITAL LETTER O WITH CIRCUMFLEX */
        FcitxKey_Otilde                        = 0x00d5,  /* U+00D5 LATIN CAPITAL LETTER O WITH TILDE */
        FcitxKey_Odiaeresis                    = 0x00d6,  /* U+00D6 LATIN CAPITAL LETTER O WITH DIAERESIS */
        FcitxKey_multiply                      = 0x00d7,  /* U+00D7 MULTIPLICATION SIGN */
        FcitxKey_Oslash                        = 0x00d8,  /* U+00D8 LATIN CAPITAL LETTER O WITH STROKE */
        FcitxKey_Ooblique                      = 0x00d8,  /* U+00D8 LATIN CAPITAL LETTER O WITH STROKE */
        FcitxKey_Ugrave                        = 0x00d9,  /* U+00D9 LATIN CAPITAL LETTER U WITH GRAVE */
        FcitxKey_Uacute                        = 0x00da,  /* U+00DA LATIN CAPITAL LETTER U WITH ACUTE */
        FcitxKey_Ucircumflex                   = 0x00db,  /* U+00DB LATIN CAPITAL LETTER U WITH CIRCUMFLEX */
        FcitxKey_Udiaeresis                    = 0x00dc,  /* U+00DC LATIN CAPITAL LETTER U WITH DIAERESIS */
        FcitxKey_Yacute                        = 0x00dd,  /* U+00DD LATIN CAPITAL LETTER Y WITH ACUTE */
        FcitxKey_THORN                         = 0x00de,  /* U+00DE LATIN CAPITAL LETTER THORN */
        FcitxKey_Thorn                         = 0x00de,  /* deprecated */
        FcitxKey_ssharp                        = 0x00df,  /* U+00DF LATIN SMALL LETTER SHARP S */
        FcitxKey_agrave                        = 0x00e0,  /* U+00E0 LATIN SMALL LETTER A WITH GRAVE */
        FcitxKey_aacute                        = 0x00e1,  /* U+00E1 LATIN SMALL LETTER A WITH ACUTE */
        FcitxKey_acircumflex                   = 0x00e2,  /* U+00E2 LATIN SMALL LETTER A WITH CIRCUMFLEX */
        FcitxKey_atilde                        = 0x00e3,  /* U+00E3 LATIN SMALL LETTER A WITH TILDE */
        FcitxKey_adiaeresis                    = 0x00e4,  /* U+00E4 LATIN SMALL LETTER A WITH DIAERESIS */
        FcitxKey_aring                         = 0x00e5,  /* U+00E5 LATIN SMALL LETTER A WITH RING ABOVE */
        FcitxKey_ae                            = 0x00e6,  /* U+00E6 LATIN SMALL LETTER AE */
        FcitxKey_ccedilla                      = 0x00e7,  /* U+00E7 LATIN SMALL LETTER C WITH CEDILLA */
        FcitxKey_egrave                        = 0x00e8,  /* U+00E8 LATIN SMALL LETTER E WITH GRAVE */
        FcitxKey_eacute                        = 0x00e9,  /* U+00E9 LATIN SMALL LETTER E WITH ACUTE */
        FcitxKey_ecircumflex                   = 0x00ea,  /* U+00EA LATIN SMALL LETTER E WITH CIRCUMFLEX */
        FcitxKey_ediaeresis                    = 0x00eb,  /* U+00EB LATIN SMALL LETTER E WITH DIAERESIS */
        FcitxKey_igrave                        = 0x00ec,  /* U+00EC LATIN SMALL LETTER I WITH GRAVE */
        FcitxKey_iacute                        = 0x00ed,  /* U+00ED LATIN SMALL LETTER I WITH ACUTE */
        FcitxKey_icircumflex                   = 0x00ee,  /* U+00EE LATIN SMALL LETTER I WITH CIRCUMFLEX */
        FcitxKey_idiaeresis                    = 0x00ef,  /* U+00EF LATIN SMALL LETTER I WITH DIAERESIS */
        FcitxKey_eth                           = 0x00f0,  /* U+00F0 LATIN SMALL LETTER ETH */
        FcitxKey_ntilde                        = 0x00f1,  /* U+00F1 LATIN SMALL LETTER N WITH TILDE */
        FcitxKey_ograve                        = 0x00f2,  /* U+00F2 LATIN SMALL LETTER O WITH GRAVE */
        FcitxKey_oacute                        = 0x00f3,  /* U+00F3 LATIN SMALL LETTER O WITH ACUTE */
        FcitxKey_ocircumflex                   = 0x00f4,  /* U+00F4 LATIN SMALL LETTER O WITH CIRCUMFLEX */
        FcitxKey_otilde                        = 0x00f5,  /* U+00F5 LATIN SMALL LETTER O WITH TILDE */
        FcitxKey_odiaeresis                    = 0x00f6,  /* U+00F6 LATIN SMALL LETTER O WITH DIAERESIS */
        FcitxKey_division                      = 0x00f7,  /* U+00F7 DIVISION SIGN */
        FcitxKey_oslash                        = 0x00f8,  /* U+00F8 LATIN SMALL LETTER O WITH STROKE */
        FcitxKey_ooblique                      = 0x00f8,  /* U+00F8 LATIN SMALL LETTER O WITH STROKE */
        FcitxKey_ugrave                        = 0x00f9,  /* U+00F9 LATIN SMALL LETTER U WITH GRAVE */
        FcitxKey_uacute                        = 0x00fa,  /* U+00FA LATIN SMALL LETTER U WITH ACUTE */
        FcitxKey_ucircumflex                   = 0x00fb,  /* U+00FB LATIN SMALL LETTER U WITH CIRCUMFLEX */
        FcitxKey_udiaeresis                    = 0x00fc,  /* U+00FC LATIN SMALL LETTER U WITH DIAERESIS */
        FcitxKey_yacute                        = 0x00fd,  /* U+00FD LATIN SMALL LETTER Y WITH ACUTE */
        FcitxKey_thorn                         = 0x00fe,  /* U+00FE LATIN SMALL LETTER THORN */
        FcitxKey_ydiaeresis                    = 0x00ff,  /* U+00FF LATIN SMALL LETTER Y WITH DIAERESIS */


        /*
         * Latin 2
         * Byte 3 = 1
         */


        FcitxKey_Aogonek                       = 0x01a1,  /* U+0104 LATIN CAPITAL LETTER A WITH OGONEK */
        FcitxKey_breve                         = 0x01a2,  /* U+02D8 BREVE */
        FcitxKey_Lstroke                       = 0x01a3,  /* U+0141 LATIN CAPITAL LETTER L WITH STROKE */
        FcitxKey_Lcaron                        = 0x01a5,  /* U+013D LATIN CAPITAL LETTER L WITH CARON */
        FcitxKey_Sacute                        = 0x01a6,  /* U+015A LATIN CAPITAL LETTER S WITH ACUTE */
        FcitxKey_Scaron                        = 0x01a9,  /* U+0160 LATIN CAPITAL LETTER S WITH CARON */
        FcitxKey_Scedilla                      = 0x01aa,  /* U+015E LATIN CAPITAL LETTER S WITH CEDILLA */
        FcitxKey_Tcaron                        = 0x01ab,  /* U+0164 LATIN CAPITAL LETTER T WITH CARON */
        FcitxKey_Zacute                        = 0x01ac,  /* U+0179 LATIN CAPITAL LETTER Z WITH ACUTE */
        FcitxKey_Zcaron                        = 0x01ae,  /* U+017D LATIN CAPITAL LETTER Z WITH CARON */
        FcitxKey_Zabovedot                     = 0x01af,  /* U+017B LATIN CAPITAL LETTER Z WITH DOT ABOVE */
        FcitxKey_aogonek                       = 0x01b1,  /* U+0105 LATIN SMALL LETTER A WITH OGONEK */
        FcitxKey_ogonek                        = 0x01b2,  /* U+02DB OGONEK */
        FcitxKey_lstroke                       = 0x01b3,  /* U+0142 LATIN SMALL LETTER L WITH STROKE */
        FcitxKey_lcaron                        = 0x01b5,  /* U+013E LATIN SMALL LETTER L WITH CARON */
        FcitxKey_sacute                        = 0x01b6,  /* U+015B LATIN SMALL LETTER S WITH ACUTE */
        FcitxKey_caron                         = 0x01b7,  /* U+02C7 CARON */
        FcitxKey_scaron                        = 0x01b9,  /* U+0161 LATIN SMALL LETTER S WITH CARON */
        FcitxKey_scedilla                      = 0x01ba,  /* U+015F LATIN SMALL LETTER S WITH CEDILLA */
        FcitxKey_tcaron                        = 0x01bb,  /* U+0165 LATIN SMALL LETTER T WITH CARON */
        FcitxKey_zacute                        = 0x01bc,  /* U+017A LATIN SMALL LETTER Z WITH ACUTE */
        FcitxKey_doubleacute                   = 0x01bd,  /* U+02DD DOUBLE ACUTE ACCENT */
        FcitxKey_zcaron                        = 0x01be,  /* U+017E LATIN SMALL LETTER Z WITH CARON */
        FcitxKey_zabovedot                     = 0x01bf,  /* U+017C LATIN SMALL LETTER Z WITH DOT ABOVE */
        FcitxKey_Racute                        = 0x01c0,  /* U+0154 LATIN CAPITAL LETTER R WITH ACUTE */
        FcitxKey_Abreve                        = 0x01c3,  /* U+0102 LATIN CAPITAL LETTER A WITH BREVE */
        FcitxKey_Lacute                        = 0x01c5,  /* U+0139 LATIN CAPITAL LETTER L WITH ACUTE */
        FcitxKey_Cacute                        = 0x01c6,  /* U+0106 LATIN CAPITAL LETTER C WITH ACUTE */
        FcitxKey_Ccaron                        = 0x01c8,  /* U+010C LATIN CAPITAL LETTER C WITH CARON */
        FcitxKey_Eogonek                       = 0x01ca,  /* U+0118 LATIN CAPITAL LETTER E WITH OGONEK */
        FcitxKey_Ecaron                        = 0x01cc,  /* U+011A LATIN CAPITAL LETTER E WITH CARON */
        FcitxKey_Dcaron                        = 0x01cf,  /* U+010E LATIN CAPITAL LETTER D WITH CARON */
        FcitxKey_Dstroke                       = 0x01d0,  /* U+0110 LATIN CAPITAL LETTER D WITH STROKE */
        FcitxKey_Nacute                        = 0x01d1,  /* U+0143 LATIN CAPITAL LETTER N WITH ACUTE */
        FcitxKey_Ncaron                        = 0x01d2,  /* U+0147 LATIN CAPITAL LETTER N WITH CARON */
        FcitxKey_Odoubleacute                  = 0x01d5,  /* U+0150 LATIN CAPITAL LETTER O WITH DOUBLE ACUTE */
        FcitxKey_Rcaron                        = 0x01d8,  /* U+0158 LATIN CAPITAL LETTER R WITH CARON */
        FcitxKey_Uring                         = 0x01d9,  /* U+016E LATIN CAPITAL LETTER U WITH RING ABOVE */
        FcitxKey_Udoubleacute                  = 0x01db,  /* U+0170 LATIN CAPITAL LETTER U WITH DOUBLE ACUTE */
        FcitxKey_Tcedilla                      = 0x01de,  /* U+0162 LATIN CAPITAL LETTER T WITH CEDILLA */
        FcitxKey_racute                        = 0x01e0,  /* U+0155 LATIN SMALL LETTER R WITH ACUTE */
        FcitxKey_abreve                        = 0x01e3,  /* U+0103 LATIN SMALL LETTER A WITH BREVE */
        FcitxKey_lacute                        = 0x01e5,  /* U+013A LATIN SMALL LETTER L WITH ACUTE */
        FcitxKey_cacute                        = 0x01e6,  /* U+0107 LATIN SMALL LETTER C WITH ACUTE */
        FcitxKey_ccaron                        = 0x01e8,  /* U+010D LATIN SMALL LETTER C WITH CARON */
        FcitxKey_eogonek                       = 0x01ea,  /* U+0119 LATIN SMALL LETTER E WITH OGONEK */
        FcitxKey_ecaron                        = 0x01ec,  /* U+011B LATIN SMALL LETTER E WITH CARON */
        FcitxKey_dcaron                        = 0x01ef,  /* U+010F LATIN SMALL LETTER D WITH CARON */
        FcitxKey_dstroke                       = 0x01f0,  /* U+0111 LATIN SMALL LETTER D WITH STROKE */
        FcitxKey_nacute                        = 0x01f1,  /* U+0144 LATIN SMALL LETTER N WITH ACUTE */
        FcitxKey_ncaron                        = 0x01f2,  /* U+0148 LATIN SMALL LETTER N WITH CARON */
        FcitxKey_odoubleacute                  = 0x01f5,  /* U+0151 LATIN SMALL LETTER O WITH DOUBLE ACUTE */
        FcitxKey_udoubleacute                  = 0x01fb,  /* U+0171 LATIN SMALL LETTER U WITH DOUBLE ACUTE */
        FcitxKey_rcaron                        = 0x01f8,  /* U+0159 LATIN SMALL LETTER R WITH CARON */
        FcitxKey_uring                         = 0x01f9,  /* U+016F LATIN SMALL LETTER U WITH RING ABOVE */
        FcitxKey_tcedilla                      = 0x01fe,  /* U+0163 LATIN SMALL LETTER T WITH CEDILLA */
        FcitxKey_abovedot                      = 0x01ff,  /* U+02D9 DOT ABOVE */


        /*
         * Latin 3
         * Byte 3 = 2
         */


        FcitxKey_Hstroke                       = 0x02a1,  /* U+0126 LATIN CAPITAL LETTER H WITH STROKE */
        FcitxKey_Hcircumflex                   = 0x02a6,  /* U+0124 LATIN CAPITAL LETTER H WITH CIRCUMFLEX */
        FcitxKey_Iabovedot                     = 0x02a9,  /* U+0130 LATIN CAPITAL LETTER I WITH DOT ABOVE */
        FcitxKey_Gbreve                        = 0x02ab,  /* U+011E LATIN CAPITAL LETTER G WITH BREVE */
        FcitxKey_Jcircumflex                   = 0x02ac,  /* U+0134 LATIN CAPITAL LETTER J WITH CIRCUMFLEX */
        FcitxKey_hstroke                       = 0x02b1,  /* U+0127 LATIN SMALL LETTER H WITH STROKE */
        FcitxKey_hcircumflex                   = 0x02b6,  /* U+0125 LATIN SMALL LETTER H WITH CIRCUMFLEX */
        FcitxKey_idotless                      = 0x02b9,  /* U+0131 LATIN SMALL LETTER DOTLESS I */
        FcitxKey_gbreve                        = 0x02bb,  /* U+011F LATIN SMALL LETTER G WITH BREVE */
        FcitxKey_jcircumflex                   = 0x02bc,  /* U+0135 LATIN SMALL LETTER J WITH CIRCUMFLEX */
        FcitxKey_Cabovedot                     = 0x02c5,  /* U+010A LATIN CAPITAL LETTER C WITH DOT ABOVE */
        FcitxKey_Ccircumflex                   = 0x02c6,  /* U+0108 LATIN CAPITAL LETTER C WITH CIRCUMFLEX */
        FcitxKey_Gabovedot                     = 0x02d5,  /* U+0120 LATIN CAPITAL LETTER G WITH DOT ABOVE */
        FcitxKey_Gcircumflex                   = 0x02d8,  /* U+011C LATIN CAPITAL LETTER G WITH CIRCUMFLEX */
        FcitxKey_Ubreve                        = 0x02dd,  /* U+016C LATIN CAPITAL LETTER U WITH BREVE */
        FcitxKey_Scircumflex                   = 0x02de,  /* U+015C LATIN CAPITAL LETTER S WITH CIRCUMFLEX */
        FcitxKey_cabovedot                     = 0x02e5,  /* U+010B LATIN SMALL LETTER C WITH DOT ABOVE */
        FcitxKey_ccircumflex                   = 0x02e6,  /* U+0109 LATIN SMALL LETTER C WITH CIRCUMFLEX */
        FcitxKey_gabovedot                     = 0x02f5,  /* U+0121 LATIN SMALL LETTER G WITH DOT ABOVE */
        FcitxKey_gcircumflex                   = 0x02f8,  /* U+011D LATIN SMALL LETTER G WITH CIRCUMFLEX */
        FcitxKey_ubreve                        = 0x02fd,  /* U+016D LATIN SMALL LETTER U WITH BREVE */
        FcitxKey_scircumflex                   = 0x02fe,  /* U+015D LATIN SMALL LETTER S WITH CIRCUMFLEX */



        /*
         * Latin 4
         * Byte 3 = 3
         */


        FcitxKey_kra                           = 0x03a2,  /* U+0138 LATIN SMALL LETTER KRA */
        FcitxKey_kappa                         = 0x03a2,  /* deprecated */
        FcitxKey_Rcedilla                      = 0x03a3,  /* U+0156 LATIN CAPITAL LETTER R WITH CEDILLA */
        FcitxKey_Itilde                        = 0x03a5,  /* U+0128 LATIN CAPITAL LETTER I WITH TILDE */
        FcitxKey_Lcedilla                      = 0x03a6,  /* U+013B LATIN CAPITAL LETTER L WITH CEDILLA */
        FcitxKey_Emacron                       = 0x03aa,  /* U+0112 LATIN CAPITAL LETTER E WITH MACRON */
        FcitxKey_Gcedilla                      = 0x03ab,  /* U+0122 LATIN CAPITAL LETTER G WITH CEDILLA */
        FcitxKey_Tslash                        = 0x03ac,  /* U+0166 LATIN CAPITAL LETTER T WITH STROKE */
        FcitxKey_rcedilla                      = 0x03b3,  /* U+0157 LATIN SMALL LETTER R WITH CEDILLA */
        FcitxKey_itilde                        = 0x03b5,  /* U+0129 LATIN SMALL LETTER I WITH TILDE */
        FcitxKey_lcedilla                      = 0x03b6,  /* U+013C LATIN SMALL LETTER L WITH CEDILLA */
        FcitxKey_emacron                       = 0x03ba,  /* U+0113 LATIN SMALL LETTER E WITH MACRON */
        FcitxKey_gcedilla                      = 0x03bb,  /* U+0123 LATIN SMALL LETTER G WITH CEDILLA */
        FcitxKey_tslash                        = 0x03bc,  /* U+0167 LATIN SMALL LETTER T WITH STROKE */
        FcitxKey_ENG                           = 0x03bd,  /* U+014A LATIN CAPITAL LETTER ENG */
        FcitxKey_eng                           = 0x03bf,  /* U+014B LATIN SMALL LETTER ENG */
        FcitxKey_Amacron                       = 0x03c0,  /* U+0100 LATIN CAPITAL LETTER A WITH MACRON */
        FcitxKey_Iogonek                       = 0x03c7,  /* U+012E LATIN CAPITAL LETTER I WITH OGONEK */
        FcitxKey_Eabovedot                     = 0x03cc,  /* U+0116 LATIN CAPITAL LETTER E WITH DOT ABOVE */
        FcitxKey_Imacron                       = 0x03cf,  /* U+012A LATIN CAPITAL LETTER I WITH MACRON */
        FcitxKey_Ncedilla                      = 0x03d1,  /* U+0145 LATIN CAPITAL LETTER N WITH CEDILLA */
        FcitxKey_Omacron                       = 0x03d2,  /* U+014C LATIN CAPITAL LETTER O WITH MACRON */
        FcitxKey_Kcedilla                      = 0x03d3,  /* U+0136 LATIN CAPITAL LETTER K WITH CEDILLA */
        FcitxKey_Uogonek                       = 0x03d9,  /* U+0172 LATIN CAPITAL LETTER U WITH OGONEK */
        FcitxKey_Utilde                        = 0x03dd,  /* U+0168 LATIN CAPITAL LETTER U WITH TILDE */
        FcitxKey_Umacron                       = 0x03de,  /* U+016A LATIN CAPITAL LETTER U WITH MACRON */
        FcitxKey_amacron                       = 0x03e0,  /* U+0101 LATIN SMALL LETTER A WITH MACRON */
        FcitxKey_iogonek                       = 0x03e7,  /* U+012F LATIN SMALL LETTER I WITH OGONEK */
        FcitxKey_eabovedot                     = 0x03ec,  /* U+0117 LATIN SMALL LETTER E WITH DOT ABOVE */
        FcitxKey_imacron                       = 0x03ef,  /* U+012B LATIN SMALL LETTER I WITH MACRON */
        FcitxKey_ncedilla                      = 0x03f1,  /* U+0146 LATIN SMALL LETTER N WITH CEDILLA */
        FcitxKey_omacron                       = 0x03f2,  /* U+014D LATIN SMALL LETTER O WITH MACRON */
        FcitxKey_kcedilla                      = 0x03f3,  /* U+0137 LATIN SMALL LETTER K WITH CEDILLA */
        FcitxKey_uogonek                       = 0x03f9,  /* U+0173 LATIN SMALL LETTER U WITH OGONEK */
        FcitxKey_utilde                        = 0x03fd,  /* U+0169 LATIN SMALL LETTER U WITH TILDE */
        FcitxKey_umacron                       = 0x03fe,  /* U+016B LATIN SMALL LETTER U WITH MACRON */


        /*
         * Latin 8
         */

        FcitxKey_Babovedot                  = 0x1001e02,  /* U+1E02 LATIN CAPITAL LETTER B WITH DOT ABOVE */
        FcitxKey_babovedot                  = 0x1001e03,  /* U+1E03 LATIN SMALL LETTER B WITH DOT ABOVE */
        FcitxKey_Dabovedot                  = 0x1001e0a,  /* U+1E0A LATIN CAPITAL LETTER D WITH DOT ABOVE */
        FcitxKey_Wgrave                     = 0x1001e80,  /* U+1E80 LATIN CAPITAL LETTER W WITH GRAVE */
        FcitxKey_Wacute                     = 0x1001e82,  /* U+1E82 LATIN CAPITAL LETTER W WITH ACUTE */
        FcitxKey_dabovedot                  = 0x1001e0b,  /* U+1E0B LATIN SMALL LETTER D WITH DOT ABOVE */
        FcitxKey_Ygrave                     = 0x1001ef2,  /* U+1EF2 LATIN CAPITAL LETTER Y WITH GRAVE */
        FcitxKey_Fabovedot                  = 0x1001e1e,  /* U+1E1E LATIN CAPITAL LETTER F WITH DOT ABOVE */
        FcitxKey_fabovedot                  = 0x1001e1f,  /* U+1E1F LATIN SMALL LETTER F WITH DOT ABOVE */
        FcitxKey_Mabovedot                  = 0x1001e40,  /* U+1E40 LATIN CAPITAL LETTER M WITH DOT ABOVE */
        FcitxKey_mabovedot                  = 0x1001e41,  /* U+1E41 LATIN SMALL LETTER M WITH DOT ABOVE */
        FcitxKey_Pabovedot                  = 0x1001e56,  /* U+1E56 LATIN CAPITAL LETTER P WITH DOT ABOVE */
        FcitxKey_wgrave                     = 0x1001e81,  /* U+1E81 LATIN SMALL LETTER W WITH GRAVE */
        FcitxKey_pabovedot                  = 0x1001e57,  /* U+1E57 LATIN SMALL LETTER P WITH DOT ABOVE */
        FcitxKey_wacute                     = 0x1001e83,  /* U+1E83 LATIN SMALL LETTER W WITH ACUTE */
        FcitxKey_Sabovedot                  = 0x1001e60,  /* U+1E60 LATIN CAPITAL LETTER S WITH DOT ABOVE */
        FcitxKey_ygrave                     = 0x1001ef3,  /* U+1EF3 LATIN SMALL LETTER Y WITH GRAVE */
        FcitxKey_Wdiaeresis                 = 0x1001e84,  /* U+1E84 LATIN CAPITAL LETTER W WITH DIAERESIS */
        FcitxKey_wdiaeresis                 = 0x1001e85,  /* U+1E85 LATIN SMALL LETTER W WITH DIAERESIS */
        FcitxKey_sabovedot                  = 0x1001e61,  /* U+1E61 LATIN SMALL LETTER S WITH DOT ABOVE */
        FcitxKey_Wcircumflex                = 0x1000174,  /* U+0174 LATIN CAPITAL LETTER W WITH CIRCUMFLEX */
        FcitxKey_Tabovedot                  = 0x1001e6a,  /* U+1E6A LATIN CAPITAL LETTER T WITH DOT ABOVE */
        FcitxKey_Ycircumflex                = 0x1000176,  /* U+0176 LATIN CAPITAL LETTER Y WITH CIRCUMFLEX */
        FcitxKey_wcircumflex                = 0x1000175,  /* U+0175 LATIN SMALL LETTER W WITH CIRCUMFLEX */
        FcitxKey_tabovedot                  = 0x1001e6b,  /* U+1E6B LATIN SMALL LETTER T WITH DOT ABOVE */
        FcitxKey_ycircumflex                = 0x1000177,  /* U+0177 LATIN SMALL LETTER Y WITH CIRCUMFLEX */


        /*
         * Latin 9
         * Byte 3 = = 0x13,
         */


        FcitxKey_OE                            = 0x13bc,  /* U+0152 LATIN CAPITAL LIGATURE OE */
        FcitxKey_oe                            = 0x13bd,  /* U+0153 LATIN SMALL LIGATURE OE */
        FcitxKey_Ydiaeresis                    = 0x13be,  /* U+0178 LATIN CAPITAL LETTER Y WITH DIAERESIS */


        /*
         * Katakana
         * Byte 3 = 4
         */


        FcitxKey_overline                      = 0x047e,  /* U+203E OVERLINE */
        FcitxKey_kana_fullstop                 = 0x04a1,  /* U+3002 IDEOGRAPHIC FULL STOP */
        FcitxKey_kana_openingbracket           = 0x04a2,  /* U+300C LEFT CORNER BRACKET */
        FcitxKey_kana_closingbracket           = 0x04a3,  /* U+300D RIGHT CORNER BRACKET */
        FcitxKey_kana_comma                    = 0x04a4,  /* U+3001 IDEOGRAPHIC COMMA */
        FcitxKey_kana_conjunctive              = 0x04a5,  /* U+30FB KATAKANA MIDDLE DOT */
        FcitxKey_kana_middledot                = 0x04a5,  /* deprecated */
        FcitxKey_kana_WO                       = 0x04a6,  /* U+30F2 KATAKANA LETTER WO */
        FcitxKey_kana_a                        = 0x04a7,  /* U+30A1 KATAKANA LETTER SMALL A */
        FcitxKey_kana_i                        = 0x04a8,  /* U+30A3 KATAKANA LETTER SMALL I */
        FcitxKey_kana_u                        = 0x04a9,  /* U+30A5 KATAKANA LETTER SMALL U */
        FcitxKey_kana_e                        = 0x04aa,  /* U+30A7 KATAKANA LETTER SMALL E */
        FcitxKey_kana_o                        = 0x04ab,  /* U+30A9 KATAKANA LETTER SMALL O */
        FcitxKey_kana_ya                       = 0x04ac,  /* U+30E3 KATAKANA LETTER SMALL YA */
        FcitxKey_kana_yu                       = 0x04ad,  /* U+30E5 KATAKANA LETTER SMALL YU */
        FcitxKey_kana_yo                       = 0x04ae,  /* U+30E7 KATAKANA LETTER SMALL YO */
        FcitxKey_kana_tsu                      = 0x04af,  /* U+30C3 KATAKANA LETTER SMALL TU */
        FcitxKey_kana_tu                       = 0x04af,  /* deprecated */
        FcitxKey_prolongedsound                = 0x04b0,  /* U+30FC KATAKANA-HIRAGANA PROLONGED SOUND MARK */
        FcitxKey_kana_A                        = 0x04b1,  /* U+30A2 KATAKANA LETTER A */
        FcitxKey_kana_I                        = 0x04b2,  /* U+30A4 KATAKANA LETTER I */
        FcitxKey_kana_U                        = 0x04b3,  /* U+30A6 KATAKANA LETTER U */
        FcitxKey_kana_E                        = 0x04b4,  /* U+30A8 KATAKANA LETTER E */
        FcitxKey_kana_O                        = 0x04b5,  /* U+30AA KATAKANA LETTER O */
        FcitxKey_kana_KA                       = 0x04b6,  /* U+30AB KATAKANA LETTER KA */
        FcitxKey_kana_KI                       = 0x04b7,  /* U+30AD KATAKANA LETTER KI */
        FcitxKey_kana_KU                       = 0x04b8,  /* U+30AF KATAKANA LETTER KU */
        FcitxKey_kana_KE                       = 0x04b9,  /* U+30B1 KATAKANA LETTER KE */
        FcitxKey_kana_KO                       = 0x04ba,  /* U+30B3 KATAKANA LETTER KO */
        FcitxKey_kana_SA                       = 0x04bb,  /* U+30B5 KATAKANA LETTER SA */
        FcitxKey_kana_SHI                      = 0x04bc,  /* U+30B7 KATAKANA LETTER SI */
        FcitxKey_kana_SU                       = 0x04bd,  /* U+30B9 KATAKANA LETTER SU */
        FcitxKey_kana_SE                       = 0x04be,  /* U+30BB KATAKANA LETTER SE */
        FcitxKey_kana_SO                       = 0x04bf,  /* U+30BD KATAKANA LETTER SO */
        FcitxKey_kana_TA                       = 0x04c0,  /* U+30BF KATAKANA LETTER TA */
        FcitxKey_kana_CHI                      = 0x04c1,  /* U+30C1 KATAKANA LETTER TI */
        FcitxKey_kana_TI                       = 0x04c1,  /* deprecated */
        FcitxKey_kana_TSU                      = 0x04c2,  /* U+30C4 KATAKANA LETTER TU */
        FcitxKey_kana_TU                       = 0x04c2,  /* deprecated */
        FcitxKey_kana_TE                       = 0x04c3,  /* U+30C6 KATAKANA LETTER TE */
        FcitxKey_kana_TO                       = 0x04c4,  /* U+30C8 KATAKANA LETTER TO */
        FcitxKey_kana_NA                       = 0x04c5,  /* U+30CA KATAKANA LETTER NA */
        FcitxKey_kana_NI                       = 0x04c6,  /* U+30CB KATAKANA LETTER NI */
        FcitxKey_kana_NU                       = 0x04c7,  /* U+30CC KATAKANA LETTER NU */
        FcitxKey_kana_NE                       = 0x04c8,  /* U+30CD KATAKANA LETTER NE */
        FcitxKey_kana_NO                       = 0x04c9,  /* U+30CE KATAKANA LETTER NO */
        FcitxKey_kana_HA                       = 0x04ca,  /* U+30CF KATAKANA LETTER HA */
        FcitxKey_kana_HI                       = 0x04cb,  /* U+30D2 KATAKANA LETTER HI */
        FcitxKey_kana_FU                       = 0x04cc,  /* U+30D5 KATAKANA LETTER HU */
        FcitxKey_kana_HU                       = 0x04cc,  /* deprecated */
        FcitxKey_kana_HE                       = 0x04cd,  /* U+30D8 KATAKANA LETTER HE */
        FcitxKey_kana_HO                       = 0x04ce,  /* U+30DB KATAKANA LETTER HO */
        FcitxKey_kana_MA                       = 0x04cf,  /* U+30DE KATAKANA LETTER MA */
        FcitxKey_kana_MI                       = 0x04d0,  /* U+30DF KATAKANA LETTER MI */
        FcitxKey_kana_MU                       = 0x04d1,  /* U+30E0 KATAKANA LETTER MU */
        FcitxKey_kana_ME                       = 0x04d2,  /* U+30E1 KATAKANA LETTER ME */
        FcitxKey_kana_MO                       = 0x04d3,  /* U+30E2 KATAKANA LETTER MO */
        FcitxKey_kana_YA                       = 0x04d4,  /* U+30E4 KATAKANA LETTER YA */
        FcitxKey_kana_YU                       = 0x04d5,  /* U+30E6 KATAKANA LETTER YU */
        FcitxKey_kana_YO                       = 0x04d6,  /* U+30E8 KATAKANA LETTER YO */
        FcitxKey_kana_RA                       = 0x04d7,  /* U+30E9 KATAKANA LETTER RA */
        FcitxKey_kana_RI                       = 0x04d8,  /* U+30EA KATAKANA LETTER RI */
        FcitxKey_kana_RU                       = 0x04d9,  /* U+30EB KATAKANA LETTER RU */
        FcitxKey_kana_RE                       = 0x04da,  /* U+30EC KATAKANA LETTER RE */
        FcitxKey_kana_RO                       = 0x04db,  /* U+30ED KATAKANA LETTER RO */
        FcitxKey_kana_WA                       = 0x04dc,  /* U+30EF KATAKANA LETTER WA */
        FcitxKey_kana_N                        = 0x04dd,  /* U+30F3 KATAKANA LETTER N */
        FcitxKey_voicedsound                   = 0x04de,  /* U+309B KATAKANA-HIRAGANA VOICED SOUND MARK */
        FcitxKey_semivoicedsound               = 0x04df,  /* U+309C KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK */
        FcitxKey_kana_switch                   = 0xff7e,  /* Alias for mode_switch */


        /*
         * Arabic
         * Byte 3 = 5
         */


        FcitxKey_Farsi_0                    = 0x10006f0,  /* U+06F0 EXTENDED ARABIC-INDIC DIGIT ZERO */
        FcitxKey_Farsi_1                    = 0x10006f1,  /* U+06F1 EXTENDED ARABIC-INDIC DIGIT ONE */
        FcitxKey_Farsi_2                    = 0x10006f2,  /* U+06F2 EXTENDED ARABIC-INDIC DIGIT TWO */
        FcitxKey_Farsi_3                    = 0x10006f3,  /* U+06F3 EXTENDED ARABIC-INDIC DIGIT THREE */
        FcitxKey_Farsi_4                    = 0x10006f4,  /* U+06F4 EXTENDED ARABIC-INDIC DIGIT FOUR */
        FcitxKey_Farsi_5                    = 0x10006f5,  /* U+06F5 EXTENDED ARABIC-INDIC DIGIT FIVE */
        FcitxKey_Farsi_6                    = 0x10006f6,  /* U+06F6 EXTENDED ARABIC-INDIC DIGIT SIX */
        FcitxKey_Farsi_7                    = 0x10006f7,  /* U+06F7 EXTENDED ARABIC-INDIC DIGIT SEVEN */
        FcitxKey_Farsi_8                    = 0x10006f8,  /* U+06F8 EXTENDED ARABIC-INDIC DIGIT EIGHT */
        FcitxKey_Farsi_9                    = 0x10006f9,  /* U+06F9 EXTENDED ARABIC-INDIC DIGIT NINE */
        FcitxKey_Arabic_percent             = 0x100066a,  /* U+066A ARABIC PERCENT SIGN */
        FcitxKey_Arabic_superscript_alef    = 0x1000670,  /* U+0670 ARABIC LETTER SUPERSCRIPT ALEF */
        FcitxKey_Arabic_tteh                = 0x1000679,  /* U+0679 ARABIC LETTER TTEH */
        FcitxKey_Arabic_peh                 = 0x100067e,  /* U+067E ARABIC LETTER PEH */
        FcitxKey_Arabic_tcheh               = 0x1000686,  /* U+0686 ARABIC LETTER TCHEH */
        FcitxKey_Arabic_ddal                = 0x1000688,  /* U+0688 ARABIC LETTER DDAL */
        FcitxKey_Arabic_rreh                = 0x1000691,  /* U+0691 ARABIC LETTER RREH */
        FcitxKey_Arabic_comma                  = 0x05ac,  /* U+060C ARABIC COMMA */
        FcitxKey_Arabic_fullstop            = 0x10006d4,  /* U+06D4 ARABIC FULL STOP */
        FcitxKey_Arabic_0                   = 0x1000660,  /* U+0660 ARABIC-INDIC DIGIT ZERO */
        FcitxKey_Arabic_1                   = 0x1000661,  /* U+0661 ARABIC-INDIC DIGIT ONE */
        FcitxKey_Arabic_2                   = 0x1000662,  /* U+0662 ARABIC-INDIC DIGIT TWO */
        FcitxKey_Arabic_3                   = 0x1000663,  /* U+0663 ARABIC-INDIC DIGIT THREE */
        FcitxKey_Arabic_4                   = 0x1000664,  /* U+0664 ARABIC-INDIC DIGIT FOUR */
        FcitxKey_Arabic_5                   = 0x1000665,  /* U+0665 ARABIC-INDIC DIGIT FIVE */
        FcitxKey_Arabic_6                   = 0x1000666,  /* U+0666 ARABIC-INDIC DIGIT SIX */
        FcitxKey_Arabic_7                   = 0x1000667,  /* U+0667 ARABIC-INDIC DIGIT SEVEN */
        FcitxKey_Arabic_8                   = 0x1000668,  /* U+0668 ARABIC-INDIC DIGIT EIGHT */
        FcitxKey_Arabic_9                   = 0x1000669,  /* U+0669 ARABIC-INDIC DIGIT NINE */
        FcitxKey_Arabic_semicolon              = 0x05bb,  /* U+061B ARABIC SEMICOLON */
        FcitxKey_Arabic_question_mark          = 0x05bf,  /* U+061F ARABIC QUESTION MARK */
        FcitxKey_Arabic_hamza                  = 0x05c1,  /* U+0621 ARABIC LETTER HAMZA */
        FcitxKey_Arabic_maddaonalef            = 0x05c2,  /* U+0622 ARABIC LETTER ALEF WITH MADDA ABOVE */
        FcitxKey_Arabic_hamzaonalef            = 0x05c3,  /* U+0623 ARABIC LETTER ALEF WITH HAMZA ABOVE */
        FcitxKey_Arabic_hamzaonwaw             = 0x05c4,  /* U+0624 ARABIC LETTER WAW WITH HAMZA ABOVE */
        FcitxKey_Arabic_hamzaunderalef         = 0x05c5,  /* U+0625 ARABIC LETTER ALEF WITH HAMZA BELOW */
        FcitxKey_Arabic_hamzaonyeh             = 0x05c6,  /* U+0626 ARABIC LETTER YEH WITH HAMZA ABOVE */
        FcitxKey_Arabic_alef                   = 0x05c7,  /* U+0627 ARABIC LETTER ALEF */
        FcitxKey_Arabic_beh                    = 0x05c8,  /* U+0628 ARABIC LETTER BEH */
        FcitxKey_Arabic_tehmarbuta             = 0x05c9,  /* U+0629 ARABIC LETTER TEH MARBUTA */
        FcitxKey_Arabic_teh                    = 0x05ca,  /* U+062A ARABIC LETTER TEH */
        FcitxKey_Arabic_theh                   = 0x05cb,  /* U+062B ARABIC LETTER THEH */
        FcitxKey_Arabic_jeem                   = 0x05cc,  /* U+062C ARABIC LETTER JEEM */
        FcitxKey_Arabic_hah                    = 0x05cd,  /* U+062D ARABIC LETTER HAH */
        FcitxKey_Arabic_khah                   = 0x05ce,  /* U+062E ARABIC LETTER KHAH */
        FcitxKey_Arabic_dal                    = 0x05cf,  /* U+062F ARABIC LETTER DAL */
        FcitxKey_Arabic_thal                   = 0x05d0,  /* U+0630 ARABIC LETTER THAL */
        FcitxKey_Arabic_ra                     = 0x05d1,  /* U+0631 ARABIC LETTER REH */
        FcitxKey_Arabic_zain                   = 0x05d2,  /* U+0632 ARABIC LETTER ZAIN */
        FcitxKey_Arabic_seen                   = 0x05d3,  /* U+0633 ARABIC LETTER SEEN */
        FcitxKey_Arabic_sheen                  = 0x05d4,  /* U+0634 ARABIC LETTER SHEEN */
        FcitxKey_Arabic_sad                    = 0x05d5,  /* U+0635 ARABIC LETTER SAD */
        FcitxKey_Arabic_dad                    = 0x05d6,  /* U+0636 ARABIC LETTER DAD */
        FcitxKey_Arabic_tah                    = 0x05d7,  /* U+0637 ARABIC LETTER TAH */
        FcitxKey_Arabic_zah                    = 0x05d8,  /* U+0638 ARABIC LETTER ZAH */
        FcitxKey_Arabic_ain                    = 0x05d9,  /* U+0639 ARABIC LETTER AIN */
        FcitxKey_Arabic_ghain                  = 0x05da,  /* U+063A ARABIC LETTER GHAIN */
        FcitxKey_Arabic_tatweel                = 0x05e0,  /* U+0640 ARABIC TATWEEL */
        FcitxKey_Arabic_feh                    = 0x05e1,  /* U+0641 ARABIC LETTER FEH */
        FcitxKey_Arabic_qaf                    = 0x05e2,  /* U+0642 ARABIC LETTER QAF */
        FcitxKey_Arabic_kaf                    = 0x05e3,  /* U+0643 ARABIC LETTER KAF */
        FcitxKey_Arabic_lam                    = 0x05e4,  /* U+0644 ARABIC LETTER LAM */
        FcitxKey_Arabic_meem                   = 0x05e5,  /* U+0645 ARABIC LETTER MEEM */
        FcitxKey_Arabic_noon                   = 0x05e6,  /* U+0646 ARABIC LETTER NOON */
        FcitxKey_Arabic_ha                     = 0x05e7,  /* U+0647 ARABIC LETTER HEH */
        FcitxKey_Arabic_heh                    = 0x05e7,  /* deprecated */
        FcitxKey_Arabic_waw                    = 0x05e8,  /* U+0648 ARABIC LETTER WAW */
        FcitxKey_Arabic_alefmaksura            = 0x05e9,  /* U+0649 ARABIC LETTER ALEF MAKSURA */
        FcitxKey_Arabic_yeh                    = 0x05ea,  /* U+064A ARABIC LETTER YEH */
        FcitxKey_Arabic_fathatan               = 0x05eb,  /* U+064B ARABIC FATHATAN */
        FcitxKey_Arabic_dammatan               = 0x05ec,  /* U+064C ARABIC DAMMATAN */
        FcitxKey_Arabic_kasratan               = 0x05ed,  /* U+064D ARABIC KASRATAN */
        FcitxKey_Arabic_fatha                  = 0x05ee,  /* U+064E ARABIC FATHA */
        FcitxKey_Arabic_damma                  = 0x05ef,  /* U+064F ARABIC DAMMA */
        FcitxKey_Arabic_kasra                  = 0x05f0,  /* U+0650 ARABIC KASRA */
        FcitxKey_Arabic_shadda                 = 0x05f1,  /* U+0651 ARABIC SHADDA */
        FcitxKey_Arabic_sukun                  = 0x05f2,  /* U+0652 ARABIC SUKUN */
        FcitxKey_Arabic_madda_above         = 0x1000653,  /* U+0653 ARABIC MADDAH ABOVE */
        FcitxKey_Arabic_hamza_above         = 0x1000654,  /* U+0654 ARABIC HAMZA ABOVE */
        FcitxKey_Arabic_hamza_below         = 0x1000655,  /* U+0655 ARABIC HAMZA BELOW */
        FcitxKey_Arabic_jeh                 = 0x1000698,  /* U+0698 ARABIC LETTER JEH */
        FcitxKey_Arabic_veh                 = 0x10006a4,  /* U+06A4 ARABIC LETTER VEH */
        FcitxKey_Arabic_keheh               = 0x10006a9,  /* U+06A9 ARABIC LETTER KEHEH */
        FcitxKey_Arabic_gaf                 = 0x10006af,  /* U+06AF ARABIC LETTER GAF */
        FcitxKey_Arabic_noon_ghunna         = 0x10006ba,  /* U+06BA ARABIC LETTER NOON GHUNNA */
        FcitxKey_Arabic_heh_doachashmee     = 0x10006be,  /* U+06BE ARABIC LETTER HEH DOACHASHMEE */
        FcitxKey_Farsi_yeh                  = 0x10006cc,  /* U+06CC ARABIC LETTER FARSI YEH */
        FcitxKey_Arabic_farsi_yeh           = 0x10006cc,  /* U+06CC ARABIC LETTER FARSI YEH */
        FcitxKey_Arabic_yeh_baree           = 0x10006d2,  /* U+06D2 ARABIC LETTER YEH BARREE */
        FcitxKey_Arabic_heh_goal            = 0x10006c1,  /* U+06C1 ARABIC LETTER HEH GOAL */
        FcitxKey_Arabic_switch                 = 0xff7e,  /* Alias for mode_switch */


        /*
         * Cyrillic
         * Byte 3 = 6
         */

        FcitxKey_Cyrillic_GHE_bar           = 0x1000492,  /* U+0492 CYRILLIC CAPITAL LETTER GHE WITH STROKE */
        FcitxKey_Cyrillic_ghe_bar           = 0x1000493,  /* U+0493 CYRILLIC SMALL LETTER GHE WITH STROKE */
        FcitxKey_Cyrillic_ZHE_descender     = 0x1000496,  /* U+0496 CYRILLIC CAPITAL LETTER ZHE WITH DESCENDER */
        FcitxKey_Cyrillic_zhe_descender     = 0x1000497,  /* U+0497 CYRILLIC SMALL LETTER ZHE WITH DESCENDER */
        FcitxKey_Cyrillic_KA_descender      = 0x100049a,  /* U+049A CYRILLIC CAPITAL LETTER KA WITH DESCENDER */
        FcitxKey_Cyrillic_ka_descender      = 0x100049b,  /* U+049B CYRILLIC SMALL LETTER KA WITH DESCENDER */
        FcitxKey_Cyrillic_KA_vertstroke     = 0x100049c,  /* U+049C CYRILLIC CAPITAL LETTER KA WITH VERTICAL STROKE */
        FcitxKey_Cyrillic_ka_vertstroke     = 0x100049d,  /* U+049D CYRILLIC SMALL LETTER KA WITH VERTICAL STROKE */
        FcitxKey_Cyrillic_EN_descender      = 0x10004a2,  /* U+04A2 CYRILLIC CAPITAL LETTER EN WITH DESCENDER */
        FcitxKey_Cyrillic_en_descender      = 0x10004a3,  /* U+04A3 CYRILLIC SMALL LETTER EN WITH DESCENDER */
        FcitxKey_Cyrillic_U_straight        = 0x10004ae,  /* U+04AE CYRILLIC CAPITAL LETTER STRAIGHT U */
        FcitxKey_Cyrillic_u_straight        = 0x10004af,  /* U+04AF CYRILLIC SMALL LETTER STRAIGHT U */
        FcitxKey_Cyrillic_U_straight_bar    = 0x10004b0,  /* U+04B0 CYRILLIC CAPITAL LETTER STRAIGHT U WITH STROKE */
        FcitxKey_Cyrillic_u_straight_bar    = 0x10004b1,  /* U+04B1 CYRILLIC SMALL LETTER STRAIGHT U WITH STROKE */
        FcitxKey_Cyrillic_HA_descender      = 0x10004b2,  /* U+04B2 CYRILLIC CAPITAL LETTER HA WITH DESCENDER */
        FcitxKey_Cyrillic_ha_descender      = 0x10004b3,  /* U+04B3 CYRILLIC SMALL LETTER HA WITH DESCENDER */
        FcitxKey_Cyrillic_CHE_descender     = 0x10004b6,  /* U+04B6 CYRILLIC CAPITAL LETTER CHE WITH DESCENDER */
        FcitxKey_Cyrillic_che_descender     = 0x10004b7,  /* U+04B7 CYRILLIC SMALL LETTER CHE WITH DESCENDER */
        FcitxKey_Cyrillic_CHE_vertstroke    = 0x10004b8,  /* U+04B8 CYRILLIC CAPITAL LETTER CHE WITH VERTICAL STROKE */
        FcitxKey_Cyrillic_che_vertstroke    = 0x10004b9,  /* U+04B9 CYRILLIC SMALL LETTER CHE WITH VERTICAL STROKE */
        FcitxKey_Cyrillic_SHHA              = 0x10004ba,  /* U+04BA CYRILLIC CAPITAL LETTER SHHA */
        FcitxKey_Cyrillic_shha              = 0x10004bb,  /* U+04BB CYRILLIC SMALL LETTER SHHA */

        FcitxKey_Cyrillic_SCHWA             = 0x10004d8,  /* U+04D8 CYRILLIC CAPITAL LETTER SCHWA */
        FcitxKey_Cyrillic_schwa             = 0x10004d9,  /* U+04D9 CYRILLIC SMALL LETTER SCHWA */
        FcitxKey_Cyrillic_I_macron          = 0x10004e2,  /* U+04E2 CYRILLIC CAPITAL LETTER I WITH MACRON */
        FcitxKey_Cyrillic_i_macron          = 0x10004e3,  /* U+04E3 CYRILLIC SMALL LETTER I WITH MACRON */
        FcitxKey_Cyrillic_O_bar             = 0x10004e8,  /* U+04E8 CYRILLIC CAPITAL LETTER BARRED O */
        FcitxKey_Cyrillic_o_bar             = 0x10004e9,  /* U+04E9 CYRILLIC SMALL LETTER BARRED O */
        FcitxKey_Cyrillic_U_macron          = 0x10004ee,  /* U+04EE CYRILLIC CAPITAL LETTER U WITH MACRON */
        FcitxKey_Cyrillic_u_macron          = 0x10004ef,  /* U+04EF CYRILLIC SMALL LETTER U WITH MACRON */

        FcitxKey_Serbian_dje                   = 0x06a1,  /* U+0452 CYRILLIC SMALL LETTER DJE */
        FcitxKey_Macedonia_gje                 = 0x06a2,  /* U+0453 CYRILLIC SMALL LETTER GJE */
        FcitxKey_Cyrillic_io                   = 0x06a3,  /* U+0451 CYRILLIC SMALL LETTER IO */
        FcitxKey_Ukrainian_ie                  = 0x06a4,  /* U+0454 CYRILLIC SMALL LETTER UKRAINIAN IE */
        FcitxKey_Ukranian_je                   = 0x06a4,  /* deprecated */
        FcitxKey_Macedonia_dse                 = 0x06a5,  /* U+0455 CYRILLIC SMALL LETTER DZE */
        FcitxKey_Ukrainian_i                   = 0x06a6,  /* U+0456 CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I */
        FcitxKey_Ukranian_i                    = 0x06a6,  /* deprecated */
        FcitxKey_Ukrainian_yi                  = 0x06a7,  /* U+0457 CYRILLIC SMALL LETTER YI */
        FcitxKey_Ukranian_yi                   = 0x06a7,  /* deprecated */
        FcitxKey_Cyrillic_je                   = 0x06a8,  /* U+0458 CYRILLIC SMALL LETTER JE */
        FcitxKey_Serbian_je                    = 0x06a8,  /* deprecated */
        FcitxKey_Cyrillic_lje                  = 0x06a9,  /* U+0459 CYRILLIC SMALL LETTER LJE */
        FcitxKey_Serbian_lje                   = 0x06a9,  /* deprecated */
        FcitxKey_Cyrillic_nje                  = 0x06aa,  /* U+045A CYRILLIC SMALL LETTER NJE */
        FcitxKey_Serbian_nje                   = 0x06aa,  /* deprecated */
        FcitxKey_Serbian_tshe                  = 0x06ab,  /* U+045B CYRILLIC SMALL LETTER TSHE */
        FcitxKey_Macedonia_kje                 = 0x06ac,  /* U+045C CYRILLIC SMALL LETTER KJE */
        FcitxKey_Ukrainian_ghe_with_upturn     = 0x06ad,  /* U+0491 CYRILLIC SMALL LETTER GHE WITH UPTURN */
        FcitxKey_Byelorussian_shortu           = 0x06ae,  /* U+045E CYRILLIC SMALL LETTER SHORT U */
        FcitxKey_Cyrillic_dzhe                 = 0x06af,  /* U+045F CYRILLIC SMALL LETTER DZHE */
        FcitxKey_Serbian_dze                   = 0x06af,  /* deprecated */
        FcitxKey_numerosign                    = 0x06b0,  /* U+2116 NUMERO SIGN */
        FcitxKey_Serbian_DJE                   = 0x06b1,  /* U+0402 CYRILLIC CAPITAL LETTER DJE */
        FcitxKey_Macedonia_GJE                 = 0x06b2,  /* U+0403 CYRILLIC CAPITAL LETTER GJE */
        FcitxKey_Cyrillic_IO                   = 0x06b3,  /* U+0401 CYRILLIC CAPITAL LETTER IO */
        FcitxKey_Ukrainian_IE                  = 0x06b4,  /* U+0404 CYRILLIC CAPITAL LETTER UKRAINIAN IE */
        FcitxKey_Ukranian_JE                   = 0x06b4,  /* deprecated */
        FcitxKey_Macedonia_DSE                 = 0x06b5,  /* U+0405 CYRILLIC CAPITAL LETTER DZE */
        FcitxKey_Ukrainian_I                   = 0x06b6,  /* U+0406 CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I */
        FcitxKey_Ukranian_I                    = 0x06b6,  /* deprecated */
        FcitxKey_Ukrainian_YI                  = 0x06b7,  /* U+0407 CYRILLIC CAPITAL LETTER YI */
        FcitxKey_Ukranian_YI                   = 0x06b7,  /* deprecated */
        FcitxKey_Cyrillic_JE                   = 0x06b8,  /* U+0408 CYRILLIC CAPITAL LETTER JE */
        FcitxKey_Serbian_JE                    = 0x06b8,  /* deprecated */
        FcitxKey_Cyrillic_LJE                  = 0x06b9,  /* U+0409 CYRILLIC CAPITAL LETTER LJE */
        FcitxKey_Serbian_LJE                   = 0x06b9,  /* deprecated */
        FcitxKey_Cyrillic_NJE                  = 0x06ba,  /* U+040A CYRILLIC CAPITAL LETTER NJE */
        FcitxKey_Serbian_NJE                   = 0x06ba,  /* deprecated */
        FcitxKey_Serbian_TSHE                  = 0x06bb,  /* U+040B CYRILLIC CAPITAL LETTER TSHE */
        FcitxKey_Macedonia_KJE                 = 0x06bc,  /* U+040C CYRILLIC CAPITAL LETTER KJE */
        FcitxKey_Ukrainian_GHE_WITH_UPTURN     = 0x06bd,  /* U+0490 CYRILLIC CAPITAL LETTER GHE WITH UPTURN */
        FcitxKey_Byelorussian_SHORTU           = 0x06be,  /* U+040E CYRILLIC CAPITAL LETTER SHORT U */
        FcitxKey_Cyrillic_DZHE                 = 0x06bf,  /* U+040F CYRILLIC CAPITAL LETTER DZHE */
        FcitxKey_Serbian_DZE                   = 0x06bf,  /* deprecated */
        FcitxKey_Cyrillic_yu                   = 0x06c0,  /* U+044E CYRILLIC SMALL LETTER YU */
        FcitxKey_Cyrillic_a                    = 0x06c1,  /* U+0430 CYRILLIC SMALL LETTER A */
        FcitxKey_Cyrillic_be                   = 0x06c2,  /* U+0431 CYRILLIC SMALL LETTER BE */
        FcitxKey_Cyrillic_tse                  = 0x06c3,  /* U+0446 CYRILLIC SMALL LETTER TSE */
        FcitxKey_Cyrillic_de                   = 0x06c4,  /* U+0434 CYRILLIC SMALL LETTER DE */
        FcitxKey_Cyrillic_ie                   = 0x06c5,  /* U+0435 CYRILLIC SMALL LETTER IE */
        FcitxKey_Cyrillic_ef                   = 0x06c6,  /* U+0444 CYRILLIC SMALL LETTER EF */
        FcitxKey_Cyrillic_ghe                  = 0x06c7,  /* U+0433 CYRILLIC SMALL LETTER GHE */
        FcitxKey_Cyrillic_ha                   = 0x06c8,  /* U+0445 CYRILLIC SMALL LETTER HA */
        FcitxKey_Cyrillic_i                    = 0x06c9,  /* U+0438 CYRILLIC SMALL LETTER I */
        FcitxKey_Cyrillic_shorti               = 0x06ca,  /* U+0439 CYRILLIC SMALL LETTER SHORT I */
        FcitxKey_Cyrillic_ka                   = 0x06cb,  /* U+043A CYRILLIC SMALL LETTER KA */
        FcitxKey_Cyrillic_el                   = 0x06cc,  /* U+043B CYRILLIC SMALL LETTER EL */
        FcitxKey_Cyrillic_em                   = 0x06cd,  /* U+043C CYRILLIC SMALL LETTER EM */
        FcitxKey_Cyrillic_en                   = 0x06ce,  /* U+043D CYRILLIC SMALL LETTER EN */
        FcitxKey_Cyrillic_o                    = 0x06cf,  /* U+043E CYRILLIC SMALL LETTER O */
        FcitxKey_Cyrillic_pe                   = 0x06d0,  /* U+043F CYRILLIC SMALL LETTER PE */
        FcitxKey_Cyrillic_ya                   = 0x06d1,  /* U+044F CYRILLIC SMALL LETTER YA */
        FcitxKey_Cyrillic_er                   = 0x06d2,  /* U+0440 CYRILLIC SMALL LETTER ER */
        FcitxKey_Cyrillic_es                   = 0x06d3,  /* U+0441 CYRILLIC SMALL LETTER ES */
        FcitxKey_Cyrillic_te                   = 0x06d4,  /* U+0442 CYRILLIC SMALL LETTER TE */
        FcitxKey_Cyrillic_u                    = 0x06d5,  /* U+0443 CYRILLIC SMALL LETTER U */
        FcitxKey_Cyrillic_zhe                  = 0x06d6,  /* U+0436 CYRILLIC SMALL LETTER ZHE */
        FcitxKey_Cyrillic_ve                   = 0x06d7,  /* U+0432 CYRILLIC SMALL LETTER VE */
        FcitxKey_Cyrillic_softsign             = 0x06d8,  /* U+044C CYRILLIC SMALL LETTER SOFT SIGN */
        FcitxKey_Cyrillic_yeru                 = 0x06d9,  /* U+044B CYRILLIC SMALL LETTER YERU */
        FcitxKey_Cyrillic_ze                   = 0x06da,  /* U+0437 CYRILLIC SMALL LETTER ZE */
        FcitxKey_Cyrillic_sha                  = 0x06db,  /* U+0448 CYRILLIC SMALL LETTER SHA */
        FcitxKey_Cyrillic_e                    = 0x06dc,  /* U+044D CYRILLIC SMALL LETTER E */
        FcitxKey_Cyrillic_shcha                = 0x06dd,  /* U+0449 CYRILLIC SMALL LETTER SHCHA */
        FcitxKey_Cyrillic_che                  = 0x06de,  /* U+0447 CYRILLIC SMALL LETTER CHE */
        FcitxKey_Cyrillic_hardsign             = 0x06df,  /* U+044A CYRILLIC SMALL LETTER HARD SIGN */
        FcitxKey_Cyrillic_YU                   = 0x06e0,  /* U+042E CYRILLIC CAPITAL LETTER YU */
        FcitxKey_Cyrillic_A                    = 0x06e1,  /* U+0410 CYRILLIC CAPITAL LETTER A */
        FcitxKey_Cyrillic_BE                   = 0x06e2,  /* U+0411 CYRILLIC CAPITAL LETTER BE */
        FcitxKey_Cyrillic_TSE                  = 0x06e3,  /* U+0426 CYRILLIC CAPITAL LETTER TSE */
        FcitxKey_Cyrillic_DE                   = 0x06e4,  /* U+0414 CYRILLIC CAPITAL LETTER DE */
        FcitxKey_Cyrillic_IE                   = 0x06e5,  /* U+0415 CYRILLIC CAPITAL LETTER IE */
        FcitxKey_Cyrillic_EF                   = 0x06e6,  /* U+0424 CYRILLIC CAPITAL LETTER EF */
        FcitxKey_Cyrillic_GHE                  = 0x06e7,  /* U+0413 CYRILLIC CAPITAL LETTER GHE */
        FcitxKey_Cyrillic_HA                   = 0x06e8,  /* U+0425 CYRILLIC CAPITAL LETTER HA */
        FcitxKey_Cyrillic_I                    = 0x06e9,  /* U+0418 CYRILLIC CAPITAL LETTER I */
        FcitxKey_Cyrillic_SHORTI               = 0x06ea,  /* U+0419 CYRILLIC CAPITAL LETTER SHORT I */
        FcitxKey_Cyrillic_KA                   = 0x06eb,  /* U+041A CYRILLIC CAPITAL LETTER KA */
        FcitxKey_Cyrillic_EL                   = 0x06ec,  /* U+041B CYRILLIC CAPITAL LETTER EL */
        FcitxKey_Cyrillic_EM                   = 0x06ed,  /* U+041C CYRILLIC CAPITAL LETTER EM */
        FcitxKey_Cyrillic_EN                   = 0x06ee,  /* U+041D CYRILLIC CAPITAL LETTER EN */
        FcitxKey_Cyrillic_O                    = 0x06ef,  /* U+041E CYRILLIC CAPITAL LETTER O */
        FcitxKey_Cyrillic_PE                   = 0x06f0,  /* U+041F CYRILLIC CAPITAL LETTER PE */
        FcitxKey_Cyrillic_YA                   = 0x06f1,  /* U+042F CYRILLIC CAPITAL LETTER YA */
        FcitxKey_Cyrillic_ER                   = 0x06f2,  /* U+0420 CYRILLIC CAPITAL LETTER ER */
        FcitxKey_Cyrillic_ES                   = 0x06f3,  /* U+0421 CYRILLIC CAPITAL LETTER ES */
        FcitxKey_Cyrillic_TE                   = 0x06f4,  /* U+0422 CYRILLIC CAPITAL LETTER TE */
        FcitxKey_Cyrillic_U                    = 0x06f5,  /* U+0423 CYRILLIC CAPITAL LETTER U */
        FcitxKey_Cyrillic_ZHE                  = 0x06f6,  /* U+0416 CYRILLIC CAPITAL LETTER ZHE */
        FcitxKey_Cyrillic_VE                   = 0x06f7,  /* U+0412 CYRILLIC CAPITAL LETTER VE */
        FcitxKey_Cyrillic_SOFTSIGN             = 0x06f8,  /* U+042C CYRILLIC CAPITAL LETTER SOFT SIGN */
        FcitxKey_Cyrillic_YERU                 = 0x06f9,  /* U+042B CYRILLIC CAPITAL LETTER YERU */
        FcitxKey_Cyrillic_ZE                   = 0x06fa,  /* U+0417 CYRILLIC CAPITAL LETTER ZE */
        FcitxKey_Cyrillic_SHA                  = 0x06fb,  /* U+0428 CYRILLIC CAPITAL LETTER SHA */
        FcitxKey_Cyrillic_E                    = 0x06fc,  /* U+042D CYRILLIC CAPITAL LETTER E */
        FcitxKey_Cyrillic_SHCHA                = 0x06fd,  /* U+0429 CYRILLIC CAPITAL LETTER SHCHA */
        FcitxKey_Cyrillic_CHE                  = 0x06fe,  /* U+0427 CYRILLIC CAPITAL LETTER CHE */
        FcitxKey_Cyrillic_HARDSIGN             = 0x06ff,  /* U+042A CYRILLIC CAPITAL LETTER HARD SIGN */


        /*
         * Greek
         * (based on an early draft of, and not quite identical to, ISO/IEC 8859-7)
         * Byte 3 = 7
         */


        FcitxKey_Greek_ALPHAaccent             = 0x07a1,  /* U+0386 GREEK CAPITAL LETTER ALPHA WITH TONOS */
        FcitxKey_Greek_EPSILONaccent           = 0x07a2,  /* U+0388 GREEK CAPITAL LETTER EPSILON WITH TONOS */
        FcitxKey_Greek_ETAaccent               = 0x07a3,  /* U+0389 GREEK CAPITAL LETTER ETA WITH TONOS */
        FcitxKey_Greek_IOTAaccent              = 0x07a4,  /* U+038A GREEK CAPITAL LETTER IOTA WITH TONOS */
        FcitxKey_Greek_IOTAdieresis            = 0x07a5,  /* U+03AA GREEK CAPITAL LETTER IOTA WITH DIALYTIKA */
        FcitxKey_Greek_IOTAdiaeresis           = 0x07a5,  /* old typo */
        FcitxKey_Greek_OMICRONaccent           = 0x07a7,  /* U+038C GREEK CAPITAL LETTER OMICRON WITH TONOS */
        FcitxKey_Greek_UPSILONaccent           = 0x07a8,  /* U+038E GREEK CAPITAL LETTER UPSILON WITH TONOS */
        FcitxKey_Greek_UPSILONdieresis         = 0x07a9,  /* U+03AB GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA */
        FcitxKey_Greek_OMEGAaccent             = 0x07ab,  /* U+038F GREEK CAPITAL LETTER OMEGA WITH TONOS */
        FcitxKey_Greek_accentdieresis          = 0x07ae,  /* U+0385 GREEK DIALYTIKA TONOS */
        FcitxKey_Greek_horizbar                = 0x07af,  /* U+2015 HORIZONTAL BAR */
        FcitxKey_Greek_alphaaccent             = 0x07b1,  /* U+03AC GREEK SMALL LETTER ALPHA WITH TONOS */
        FcitxKey_Greek_epsilonaccent           = 0x07b2,  /* U+03AD GREEK SMALL LETTER EPSILON WITH TONOS */
        FcitxKey_Greek_etaaccent               = 0x07b3,  /* U+03AE GREEK SMALL LETTER ETA WITH TONOS */
        FcitxKey_Greek_iotaaccent              = 0x07b4,  /* U+03AF GREEK SMALL LETTER IOTA WITH TONOS */
        FcitxKey_Greek_iotadieresis            = 0x07b5,  /* U+03CA GREEK SMALL LETTER IOTA WITH DIALYTIKA */
        FcitxKey_Greek_iotaaccentdieresis      = 0x07b6,  /* U+0390 GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS */
        FcitxKey_Greek_omicronaccent           = 0x07b7,  /* U+03CC GREEK SMALL LETTER OMICRON WITH TONOS */
        FcitxKey_Greek_upsilonaccent           = 0x07b8,  /* U+03CD GREEK SMALL LETTER UPSILON WITH TONOS */
        FcitxKey_Greek_upsilondieresis         = 0x07b9,  /* U+03CB GREEK SMALL LETTER UPSILON WITH DIALYTIKA */
        FcitxKey_Greek_upsilonaccentdieresis   = 0x07ba,  /* U+03B0 GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS */
        FcitxKey_Greek_omegaaccent             = 0x07bb,  /* U+03CE GREEK SMALL LETTER OMEGA WITH TONOS */
        FcitxKey_Greek_ALPHA                   = 0x07c1,  /* U+0391 GREEK CAPITAL LETTER ALPHA */
        FcitxKey_Greek_BETA                    = 0x07c2,  /* U+0392 GREEK CAPITAL LETTER BETA */
        FcitxKey_Greek_GAMMA                   = 0x07c3,  /* U+0393 GREEK CAPITAL LETTER GAMMA */
        FcitxKey_Greek_DELTA                   = 0x07c4,  /* U+0394 GREEK CAPITAL LETTER DELTA */
        FcitxKey_Greek_EPSILON                 = 0x07c5,  /* U+0395 GREEK CAPITAL LETTER EPSILON */
        FcitxKey_Greek_ZETA                    = 0x07c6,  /* U+0396 GREEK CAPITAL LETTER ZETA */
        FcitxKey_Greek_ETA                     = 0x07c7,  /* U+0397 GREEK CAPITAL LETTER ETA */
        FcitxKey_Greek_THETA                   = 0x07c8,  /* U+0398 GREEK CAPITAL LETTER THETA */
        FcitxKey_Greek_IOTA                    = 0x07c9,  /* U+0399 GREEK CAPITAL LETTER IOTA */
        FcitxKey_Greek_KAPPA                   = 0x07ca,  /* U+039A GREEK CAPITAL LETTER KAPPA */
        FcitxKey_Greek_LAMDA                   = 0x07cb,  /* U+039B GREEK CAPITAL LETTER LAMDA */
        FcitxKey_Greek_LAMBDA                  = 0x07cb,  /* U+039B GREEK CAPITAL LETTER LAMDA */
        FcitxKey_Greek_MU                      = 0x07cc,  /* U+039C GREEK CAPITAL LETTER MU */
        FcitxKey_Greek_NU                      = 0x07cd,  /* U+039D GREEK CAPITAL LETTER NU */
        FcitxKey_Greek_XI                      = 0x07ce,  /* U+039E GREEK CAPITAL LETTER XI */
        FcitxKey_Greek_OMICRON                 = 0x07cf,  /* U+039F GREEK CAPITAL LETTER OMICRON */
        FcitxKey_Greek_PI                      = 0x07d0,  /* U+03A0 GREEK CAPITAL LETTER PI */
        FcitxKey_Greek_RHO                     = 0x07d1,  /* U+03A1 GREEK CAPITAL LETTER RHO */
        FcitxKey_Greek_SIGMA                   = 0x07d2,  /* U+03A3 GREEK CAPITAL LETTER SIGMA */
        FcitxKey_Greek_TAU                     = 0x07d4,  /* U+03A4 GREEK CAPITAL LETTER TAU */
        FcitxKey_Greek_UPSILON                 = 0x07d5,  /* U+03A5 GREEK CAPITAL LETTER UPSILON */
        FcitxKey_Greek_PHI                     = 0x07d6,  /* U+03A6 GREEK CAPITAL LETTER PHI */
        FcitxKey_Greek_CHI                     = 0x07d7,  /* U+03A7 GREEK CAPITAL LETTER CHI */
        FcitxKey_Greek_PSI                     = 0x07d8,  /* U+03A8 GREEK CAPITAL LETTER PSI */
        FcitxKey_Greek_OMEGA                   = 0x07d9,  /* U+03A9 GREEK CAPITAL LETTER OMEGA */
        FcitxKey_Greek_alpha                   = 0x07e1,  /* U+03B1 GREEK SMALL LETTER ALPHA */
        FcitxKey_Greek_beta                    = 0x07e2,  /* U+03B2 GREEK SMALL LETTER BETA */
        FcitxKey_Greek_gamma                   = 0x07e3,  /* U+03B3 GREEK SMALL LETTER GAMMA */
        FcitxKey_Greek_delta                   = 0x07e4,  /* U+03B4 GREEK SMALL LETTER DELTA */
        FcitxKey_Greek_epsilon                 = 0x07e5,  /* U+03B5 GREEK SMALL LETTER EPSILON */
        FcitxKey_Greek_zeta                    = 0x07e6,  /* U+03B6 GREEK SMALL LETTER ZETA */
        FcitxKey_Greek_eta                     = 0x07e7,  /* U+03B7 GREEK SMALL LETTER ETA */
        FcitxKey_Greek_theta                   = 0x07e8,  /* U+03B8 GREEK SMALL LETTER THETA */
        FcitxKey_Greek_iota                    = 0x07e9,  /* U+03B9 GREEK SMALL LETTER IOTA */
        FcitxKey_Greek_kappa                   = 0x07ea,  /* U+03BA GREEK SMALL LETTER KAPPA */
        FcitxKey_Greek_lamda                   = 0x07eb,  /* U+03BB GREEK SMALL LETTER LAMDA */
        FcitxKey_Greek_lambda                  = 0x07eb,  /* U+03BB GREEK SMALL LETTER LAMDA */
        FcitxKey_Greek_mu                      = 0x07ec,  /* U+03BC GREEK SMALL LETTER MU */
        FcitxKey_Greek_nu                      = 0x07ed,  /* U+03BD GREEK SMALL LETTER NU */
        FcitxKey_Greek_xi                      = 0x07ee,  /* U+03BE GREEK SMALL LETTER XI */
        FcitxKey_Greek_omicron                 = 0x07ef,  /* U+03BF GREEK SMALL LETTER OMICRON */
        FcitxKey_Greek_pi                      = 0x07f0,  /* U+03C0 GREEK SMALL LETTER PI */
        FcitxKey_Greek_rho                     = 0x07f1,  /* U+03C1 GREEK SMALL LETTER RHO */
        FcitxKey_Greek_sigma                   = 0x07f2,  /* U+03C3 GREEK SMALL LETTER SIGMA */
        FcitxKey_Greek_finalsmallsigma         = 0x07f3,  /* U+03C2 GREEK SMALL LETTER FINAL SIGMA */
        FcitxKey_Greek_tau                     = 0x07f4,  /* U+03C4 GREEK SMALL LETTER TAU */
        FcitxKey_Greek_upsilon                 = 0x07f5,  /* U+03C5 GREEK SMALL LETTER UPSILON */
        FcitxKey_Greek_phi                     = 0x07f6,  /* U+03C6 GREEK SMALL LETTER PHI */
        FcitxKey_Greek_chi                     = 0x07f7,  /* U+03C7 GREEK SMALL LETTER CHI */
        FcitxKey_Greek_psi                     = 0x07f8,  /* U+03C8 GREEK SMALL LETTER PSI */
        FcitxKey_Greek_omega                   = 0x07f9,  /* U+03C9 GREEK SMALL LETTER OMEGA */
        FcitxKey_Greek_switch                  = 0xff7e,  /* Alias for mode_switch */


        /*
         * Technical
         * (from the DEC VT330/VT420 Technical Character Set, http://vt100.net/charsets/technical.html)
         * Byte 3 = 8
         */


        FcitxKey_leftradical                   = 0x08a1,  /* U+23B7 RADICAL SYMBOL BOTTOM */
        FcitxKey_topleftradical                = 0x08a2,  /*(U+250C BOX DRAWINGS LIGHT DOWN AND RIGHT)*/
        FcitxKey_horizconnector                = 0x08a3,  /*(U+2500 BOX DRAWINGS LIGHT HORIZONTAL)*/
        FcitxKey_topintegral                   = 0x08a4,  /* U+2320 TOP HALF INTEGRAL */
        FcitxKey_botintegral                   = 0x08a5,  /* U+2321 BOTTOM HALF INTEGRAL */
        FcitxKey_vertconnector                 = 0x08a6,  /*(U+2502 BOX DRAWINGS LIGHT VERTICAL)*/
        FcitxKey_topleftsqbracket              = 0x08a7,  /* U+23A1 LEFT SQUARE BRACKET UPPER CORNER */
        FcitxKey_botleftsqbracket              = 0x08a8,  /* U+23A3 LEFT SQUARE BRACKET LOWER CORNER */
        FcitxKey_toprightsqbracket             = 0x08a9,  /* U+23A4 RIGHT SQUARE BRACKET UPPER CORNER */
        FcitxKey_botrightsqbracket             = 0x08aa,  /* U+23A6 RIGHT SQUARE BRACKET LOWER CORNER */
        FcitxKey_topleftparens                 = 0x08ab,  /* U+239B LEFT PARENTHESIS UPPER HOOK */
        FcitxKey_botleftparens                 = 0x08ac,  /* U+239D LEFT PARENTHESIS LOWER HOOK */
        FcitxKey_toprightparens                = 0x08ad,  /* U+239E RIGHT PARENTHESIS UPPER HOOK */
        FcitxKey_botrightparens                = 0x08ae,  /* U+23A0 RIGHT PARENTHESIS LOWER HOOK */
        FcitxKey_leftmiddlecurlybrace          = 0x08af,  /* U+23A8 LEFT CURLY BRACKET MIDDLE PIECE */
        FcitxKey_rightmiddlecurlybrace         = 0x08b0,  /* U+23AC RIGHT CURLY BRACKET MIDDLE PIECE */
        FcitxKey_topleftsummation              = 0x08b1,
        FcitxKey_botleftsummation              = 0x08b2,
        FcitxKey_topvertsummationconnector     = 0x08b3,
        FcitxKey_botvertsummationconnector     = 0x08b4,
        FcitxKey_toprightsummation             = 0x08b5,
        FcitxKey_botrightsummation             = 0x08b6,
        FcitxKey_rightmiddlesummation          = 0x08b7,
        FcitxKey_lessthanequal                 = 0x08bc,  /* U+2264 LESS-THAN OR EQUAL TO */
        FcitxKey_notequal                      = 0x08bd,  /* U+2260 NOT EQUAL TO */
        FcitxKey_greaterthanequal              = 0x08be,  /* U+2265 GREATER-THAN OR EQUAL TO */
        FcitxKey_integral                      = 0x08bf,  /* U+222B INTEGRAL */
        FcitxKey_therefore                     = 0x08c0,  /* U+2234 THEREFORE */
        FcitxKey_variation                     = 0x08c1,  /* U+221D PROPORTIONAL TO */
        FcitxKey_infinity                      = 0x08c2,  /* U+221E INFINITY */
        FcitxKey_nabla                         = 0x08c5,  /* U+2207 NABLA */
        FcitxKey_approximate                   = 0x08c8,  /* U+223C TILDE OPERATOR */
        FcitxKey_similarequal                  = 0x08c9,  /* U+2243 ASYMPTOTICALLY EQUAL TO */
        FcitxKey_ifonlyif                      = 0x08cd,  /* U+21D4 LEFT RIGHT DOUBLE ARROW */
        FcitxKey_implies                       = 0x08ce,  /* U+21D2 RIGHTWARDS DOUBLE ARROW */
        FcitxKey_identical                     = 0x08cf,  /* U+2261 IDENTICAL TO */
        FcitxKey_radical                       = 0x08d6,  /* U+221A SQUARE ROOT */
        FcitxKey_includedin                    = 0x08da,  /* U+2282 SUBSET OF */
        FcitxKey_includes                      = 0x08db,  /* U+2283 SUPERSET OF */
        FcitxKey_intersection                  = 0x08dc,  /* U+2229 INTERSECTION */
        FcitxKey_union                         = 0x08dd,  /* U+222A UNION */
        FcitxKey_logicaland                    = 0x08de,  /* U+2227 LOGICAL AND */
        FcitxKey_logicalor                     = 0x08df,  /* U+2228 LOGICAL OR */
        FcitxKey_partialderivative             = 0x08ef,  /* U+2202 PARTIAL DIFFERENTIAL */
        FcitxKey_function                      = 0x08f6,  /* U+0192 LATIN SMALL LETTER F WITH HOOK */
        FcitxKey_leftarrow                     = 0x08fb,  /* U+2190 LEFTWARDS ARROW */
        FcitxKey_uparrow                       = 0x08fc,  /* U+2191 UPWARDS ARROW */
        FcitxKey_rightarrow                    = 0x08fd,  /* U+2192 RIGHTWARDS ARROW */
        FcitxKey_downarrow                     = 0x08fe,  /* U+2193 DOWNWARDS ARROW */


        /*
         * Special
         * (from the DEC VT100 Special Graphics Character Set)
         * Byte 3 = 9
         */


        FcitxKey_blank                         = 0x09df,
        FcitxKey_soliddiamond                  = 0x09e0,  /* U+25C6 BLACK DIAMOND */
        FcitxKey_checkerboard                  = 0x09e1,  /* U+2592 MEDIUM SHADE */
        FcitxKey_ht                            = 0x09e2,  /* U+2409 SYMBOL FOR HORIZONTAL TABULATION */
        FcitxKey_ff                            = 0x09e3,  /* U+240C SYMBOL FOR FORM FEED */
        FcitxKey_cr                            = 0x09e4,  /* U+240D SYMBOL FOR CARRIAGE RETURN */
        FcitxKey_lf                            = 0x09e5,  /* U+240A SYMBOL FOR LINE FEED */
        FcitxKey_nl                            = 0x09e8,  /* U+2424 SYMBOL FOR NEWLINE */
        FcitxKey_vt                            = 0x09e9,  /* U+240B SYMBOL FOR VERTICAL TABULATION */
        FcitxKey_lowrightcorner                = 0x09ea,  /* U+2518 BOX DRAWINGS LIGHT UP AND LEFT */
        FcitxKey_uprightcorner                 = 0x09eb,  /* U+2510 BOX DRAWINGS LIGHT DOWN AND LEFT */
        FcitxKey_upleftcorner                  = 0x09ec,  /* U+250C BOX DRAWINGS LIGHT DOWN AND RIGHT */
        FcitxKey_lowleftcorner                 = 0x09ed,  /* U+2514 BOX DRAWINGS LIGHT UP AND RIGHT */
        FcitxKey_crossinglines                 = 0x09ee,  /* U+253C BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL */
        FcitxKey_horizlinescan1                = 0x09ef,  /* U+23BA HORIZONTAL SCAN LINE-1 */
        FcitxKey_horizlinescan3                = 0x09f0,  /* U+23BB HORIZONTAL SCAN LINE-3 */
        FcitxKey_horizlinescan5                = 0x09f1,  /* U+2500 BOX DRAWINGS LIGHT HORIZONTAL */
        FcitxKey_horizlinescan7                = 0x09f2,  /* U+23BC HORIZONTAL SCAN LINE-7 */
        FcitxKey_horizlinescan9                = 0x09f3,  /* U+23BD HORIZONTAL SCAN LINE-9 */
        FcitxKey_leftt                         = 0x09f4,  /* U+251C BOX DRAWINGS LIGHT VERTICAL AND RIGHT */
        FcitxKey_rightt                        = 0x09f5,  /* U+2524 BOX DRAWINGS LIGHT VERTICAL AND LEFT */
        FcitxKey_bott                          = 0x09f6,  /* U+2534 BOX DRAWINGS LIGHT UP AND HORIZONTAL */
        FcitxKey_topt                          = 0x09f7,  /* U+252C BOX DRAWINGS LIGHT DOWN AND HORIZONTAL */
        FcitxKey_vertbar                       = 0x09f8,  /* U+2502 BOX DRAWINGS LIGHT VERTICAL */


        /*
         * Publishing
         * (these are probably from a long forgotten DEC Publishing
         * font that once shipped with DECwrite)
         * Byte 3 = = 0x0a,
         */


        FcitxKey_emspace                       = 0x0aa1,  /* U+2003 EM SPACE */
        FcitxKey_enspace                       = 0x0aa2,  /* U+2002 EN SPACE */
        FcitxKey_em3space                      = 0x0aa3,  /* U+2004 THREE-PER-EM SPACE */
        FcitxKey_em4space                      = 0x0aa4,  /* U+2005 FOUR-PER-EM SPACE */
        FcitxKey_digitspace                    = 0x0aa5,  /* U+2007 FIGURE SPACE */
        FcitxKey_punctspace                    = 0x0aa6,  /* U+2008 PUNCTUATION SPACE */
        FcitxKey_thinspace                     = 0x0aa7,  /* U+2009 THIN SPACE */
        FcitxKey_hairspace                     = 0x0aa8,  /* U+200A HAIR SPACE */
        FcitxKey_emdash                        = 0x0aa9,  /* U+2014 EM DASH */
        FcitxKey_endash                        = 0x0aaa,  /* U+2013 EN DASH */
        FcitxKey_signifblank                   = 0x0aac,  /*(U+2423 OPEN BOX)*/
        FcitxKey_ellipsis                      = 0x0aae,  /* U+2026 HORIZONTAL ELLIPSIS */
        FcitxKey_doubbaselinedot               = 0x0aaf,  /* U+2025 TWO DOT LEADER */
        FcitxKey_onethird                      = 0x0ab0,  /* U+2153 VULGAR FRACTION ONE THIRD */
        FcitxKey_twothirds                     = 0x0ab1,  /* U+2154 VULGAR FRACTION TWO THIRDS */
        FcitxKey_onefifth                      = 0x0ab2,  /* U+2155 VULGAR FRACTION ONE FIFTH */
        FcitxKey_twofifths                     = 0x0ab3,  /* U+2156 VULGAR FRACTION TWO FIFTHS */
        FcitxKey_threefifths                   = 0x0ab4,  /* U+2157 VULGAR FRACTION THREE FIFTHS */
        FcitxKey_fourfifths                    = 0x0ab5,  /* U+2158 VULGAR FRACTION FOUR FIFTHS */
        FcitxKey_onesixth                      = 0x0ab6,  /* U+2159 VULGAR FRACTION ONE SIXTH */
        FcitxKey_fivesixths                    = 0x0ab7,  /* U+215A VULGAR FRACTION FIVE SIXTHS */
        FcitxKey_careof                        = 0x0ab8,  /* U+2105 CARE OF */
        FcitxKey_figdash                       = 0x0abb,  /* U+2012 FIGURE DASH */
        FcitxKey_leftanglebracket              = 0x0abc,  /*(U+27E8 MATHEMATICAL LEFT ANGLE BRACKET)*/
        FcitxKey_decimalpoint                  = 0x0abd,  /*(U+002E FULL STOP)*/
        FcitxKey_rightanglebracket             = 0x0abe,  /*(U+27E9 MATHEMATICAL RIGHT ANGLE BRACKET)*/
        FcitxKey_marker                        = 0x0abf,
        FcitxKey_oneeighth                     = 0x0ac3,  /* U+215B VULGAR FRACTION ONE EIGHTH */
        FcitxKey_threeeighths                  = 0x0ac4,  /* U+215C VULGAR FRACTION THREE EIGHTHS */
        FcitxKey_fiveeighths                   = 0x0ac5,  /* U+215D VULGAR FRACTION FIVE EIGHTHS */
        FcitxKey_seveneighths                  = 0x0ac6,  /* U+215E VULGAR FRACTION SEVEN EIGHTHS */
        FcitxKey_trademark                     = 0x0ac9,  /* U+2122 TRADE MARK SIGN */
        FcitxKey_signaturemark                 = 0x0aca,  /*(U+2613 SALTIRE)*/
        FcitxKey_trademarkincircle             = 0x0acb,
        FcitxKey_leftopentriangle              = 0x0acc,  /*(U+25C1 WHITE LEFT-POINTING TRIANGLE)*/
        FcitxKey_rightopentriangle             = 0x0acd,  /*(U+25B7 WHITE RIGHT-POINTING TRIANGLE)*/
        FcitxKey_emopencircle                  = 0x0ace,  /*(U+25CB WHITE CIRCLE)*/
        FcitxKey_emopenrectangle               = 0x0acf,  /*(U+25AF WHITE VERTICAL RECTANGLE)*/
        FcitxKey_leftsinglequotemark           = 0x0ad0,  /* U+2018 LEFT SINGLE QUOTATION MARK */
        FcitxKey_rightsinglequotemark          = 0x0ad1,  /* U+2019 RIGHT SINGLE QUOTATION MARK */
        FcitxKey_leftdoublequotemark           = 0x0ad2,  /* U+201C LEFT DOUBLE QUOTATION MARK */
        FcitxKey_rightdoublequotemark          = 0x0ad3,  /* U+201D RIGHT DOUBLE QUOTATION MARK */
        FcitxKey_prescription                  = 0x0ad4,  /* U+211E PRESCRIPTION TAKE */
        FcitxKey_minutes                       = 0x0ad6,  /* U+2032 PRIME */
        FcitxKey_seconds                       = 0x0ad7,  /* U+2033 DOUBLE PRIME */
        FcitxKey_latincross                    = 0x0ad9,  /* U+271D LATIN CROSS */
        FcitxKey_hexagram                      = 0x0ada,
        FcitxKey_filledrectbullet              = 0x0adb,  /*(U+25AC BLACK RECTANGLE)*/
        FcitxKey_filledlefttribullet           = 0x0adc,  /*(U+25C0 BLACK LEFT-POINTING TRIANGLE)*/
        FcitxKey_filledrighttribullet          = 0x0add,  /*(U+25B6 BLACK RIGHT-POINTING TRIANGLE)*/
        FcitxKey_emfilledcircle                = 0x0ade,  /*(U+25CF BLACK CIRCLE)*/
        FcitxKey_emfilledrect                  = 0x0adf,  /*(U+25AE BLACK VERTICAL RECTANGLE)*/
        FcitxKey_enopencircbullet              = 0x0ae0,  /*(U+25E6 WHITE BULLET)*/
        FcitxKey_enopensquarebullet            = 0x0ae1,  /*(U+25AB WHITE SMALL SQUARE)*/
        FcitxKey_openrectbullet                = 0x0ae2,  /*(U+25AD WHITE RECTANGLE)*/
        FcitxKey_opentribulletup               = 0x0ae3,  /*(U+25B3 WHITE UP-POINTING TRIANGLE)*/
        FcitxKey_opentribulletdown             = 0x0ae4,  /*(U+25BD WHITE DOWN-POINTING TRIANGLE)*/
        FcitxKey_openstar                      = 0x0ae5,  /*(U+2606 WHITE STAR)*/
        FcitxKey_enfilledcircbullet            = 0x0ae6,  /*(U+2022 BULLET)*/
        FcitxKey_enfilledsqbullet              = 0x0ae7,  /*(U+25AA BLACK SMALL SQUARE)*/
        FcitxKey_filledtribulletup             = 0x0ae8,  /*(U+25B2 BLACK UP-POINTING TRIANGLE)*/
        FcitxKey_filledtribulletdown           = 0x0ae9,  /*(U+25BC BLACK DOWN-POINTING TRIANGLE)*/
        FcitxKey_leftpointer                   = 0x0aea,  /*(U+261C WHITE LEFT POINTING INDEX)*/
        FcitxKey_rightpointer                  = 0x0aeb,  /*(U+261E WHITE RIGHT POINTING INDEX)*/
        FcitxKey_club                          = 0x0aec,  /* U+2663 BLACK CLUB SUIT */
        FcitxKey_diamond                       = 0x0aed,  /* U+2666 BLACK DIAMOND SUIT */
        FcitxKey_heart                         = 0x0aee,  /* U+2665 BLACK HEART SUIT */
        FcitxKey_maltesecross                  = 0x0af0,  /* U+2720 MALTESE CROSS */
        FcitxKey_dagger                        = 0x0af1,  /* U+2020 DAGGER */
        FcitxKey_doubledagger                  = 0x0af2,  /* U+2021 DOUBLE DAGGER */
        FcitxKey_checkmark                     = 0x0af3,  /* U+2713 CHECK MARK */
        FcitxKey_ballotcross                   = 0x0af4,  /* U+2717 BALLOT X */
        FcitxKey_musicalsharp                  = 0x0af5,  /* U+266F MUSIC SHARP SIGN */
        FcitxKey_musicalflat                   = 0x0af6,  /* U+266D MUSIC FLAT SIGN */
        FcitxKey_malesymbol                    = 0x0af7,  /* U+2642 MALE SIGN */
        FcitxKey_femalesymbol                  = 0x0af8,  /* U+2640 FEMALE SIGN */
        FcitxKey_telephone                     = 0x0af9,  /* U+260E BLACK TELEPHONE */
        FcitxKey_telephonerecorder             = 0x0afa,  /* U+2315 TELEPHONE RECORDER */
        FcitxKey_phonographcopyright           = 0x0afb,  /* U+2117 SOUND RECORDING COPYRIGHT */
        FcitxKey_caret                         = 0x0afc,  /* U+2038 CARET */
        FcitxKey_singlelowquotemark            = 0x0afd,  /* U+201A SINGLE LOW-9 QUOTATION MARK */
        FcitxKey_doublelowquotemark            = 0x0afe,  /* U+201E DOUBLE LOW-9 QUOTATION MARK */
        FcitxKey_cursor                        = 0x0aff,


        /*
         * APL
         * Byte 3 = = 0x0b,
         */


        FcitxKey_leftcaret                     = 0x0ba3,  /*(U+003C LESS-THAN SIGN)*/
        FcitxKey_rightcaret                    = 0x0ba6,  /*(U+003E GREATER-THAN SIGN)*/
        FcitxKey_downcaret                     = 0x0ba8,  /*(U+2228 LOGICAL OR)*/
        FcitxKey_upcaret                       = 0x0ba9,  /*(U+2227 LOGICAL AND)*/
        FcitxKey_overbar                       = 0x0bc0,  /*(U+00AF MACRON)*/
        FcitxKey_downtack                      = 0x0bc2,  /* U+22A4 DOWN TACK */
        FcitxKey_upshoe                        = 0x0bc3,  /*(U+2229 INTERSECTION)*/
        FcitxKey_downstile                     = 0x0bc4,  /* U+230A LEFT FLOOR */
        FcitxKey_underbar                      = 0x0bc6,  /*(U+005F LOW LINE)*/
        FcitxKey_jot                           = 0x0bca,  /* U+2218 RING OPERATOR */
        FcitxKey_quad                          = 0x0bcc,  /* U+2395 APL FUNCTIONAL SYMBOL QUAD */
        FcitxKey_uptack                        = 0x0bce,  /* U+22A5 UP TACK */
        FcitxKey_circle                        = 0x0bcf,  /* U+25CB WHITE CIRCLE */
        FcitxKey_upstile                       = 0x0bd3,  /* U+2308 LEFT CEILING */
        FcitxKey_downshoe                      = 0x0bd6,  /*(U+222A UNION)*/
        FcitxKey_rightshoe                     = 0x0bd8,  /*(U+2283 SUPERSET OF)*/
        FcitxKey_leftshoe                      = 0x0bda,  /*(U+2282 SUBSET OF)*/
        FcitxKey_lefttack                      = 0x0bdc,  /* U+22A3 LEFT TACK */
        FcitxKey_righttack                     = 0x0bfc,  /* U+22A2 RIGHT TACK */


        /*
         * Hebrew
         * Byte 3 = = 0x0c,
         */


        FcitxKey_hebrew_doublelowline          = 0x0cdf,  /* U+2017 DOUBLE LOW LINE */
        FcitxKey_hebrew_aleph                  = 0x0ce0,  /* U+05D0 HEBREW LETTER ALEF */
        FcitxKey_hebrew_bet                    = 0x0ce1,  /* U+05D1 HEBREW LETTER BET */
        FcitxKey_hebrew_beth                   = 0x0ce1,  /* deprecated */
        FcitxKey_hebrew_gimel                  = 0x0ce2,  /* U+05D2 HEBREW LETTER GIMEL */
        FcitxKey_hebrew_gimmel                 = 0x0ce2,  /* deprecated */
        FcitxKey_hebrew_dalet                  = 0x0ce3,  /* U+05D3 HEBREW LETTER DALET */
        FcitxKey_hebrew_daleth                 = 0x0ce3,  /* deprecated */
        FcitxKey_hebrew_he                     = 0x0ce4,  /* U+05D4 HEBREW LETTER HE */
        FcitxKey_hebrew_waw                    = 0x0ce5,  /* U+05D5 HEBREW LETTER VAV */
        FcitxKey_hebrew_zain                   = 0x0ce6,  /* U+05D6 HEBREW LETTER ZAYIN */
        FcitxKey_hebrew_zayin                  = 0x0ce6,  /* deprecated */
        FcitxKey_hebrew_chet                   = 0x0ce7,  /* U+05D7 HEBREW LETTER HET */
        FcitxKey_hebrew_het                    = 0x0ce7,  /* deprecated */
        FcitxKey_hebrew_tet                    = 0x0ce8,  /* U+05D8 HEBREW LETTER TET */
        FcitxKey_hebrew_teth                   = 0x0ce8,  /* deprecated */
        FcitxKey_hebrew_yod                    = 0x0ce9,  /* U+05D9 HEBREW LETTER YOD */
        FcitxKey_hebrew_finalkaph              = 0x0cea,  /* U+05DA HEBREW LETTER FINAL KAF */
        FcitxKey_hebrew_kaph                   = 0x0ceb,  /* U+05DB HEBREW LETTER KAF */
        FcitxKey_hebrew_lamed                  = 0x0cec,  /* U+05DC HEBREW LETTER LAMED */
        FcitxKey_hebrew_finalmem               = 0x0ced,  /* U+05DD HEBREW LETTER FINAL MEM */
        FcitxKey_hebrew_mem                    = 0x0cee,  /* U+05DE HEBREW LETTER MEM */
        FcitxKey_hebrew_finalnun               = 0x0cef,  /* U+05DF HEBREW LETTER FINAL NUN */
        FcitxKey_hebrew_nun                    = 0x0cf0,  /* U+05E0 HEBREW LETTER NUN */
        FcitxKey_hebrew_samech                 = 0x0cf1,  /* U+05E1 HEBREW LETTER SAMEKH */
        FcitxKey_hebrew_samekh                 = 0x0cf1,  /* deprecated */
        FcitxKey_hebrew_ayin                   = 0x0cf2,  /* U+05E2 HEBREW LETTER AYIN */
        FcitxKey_hebrew_finalpe                = 0x0cf3,  /* U+05E3 HEBREW LETTER FINAL PE */
        FcitxKey_hebrew_pe                     = 0x0cf4,  /* U+05E4 HEBREW LETTER PE */
        FcitxKey_hebrew_finalzade              = 0x0cf5,  /* U+05E5 HEBREW LETTER FINAL TSADI */
        FcitxKey_hebrew_finalzadi              = 0x0cf5,  /* deprecated */
        FcitxKey_hebrew_zade                   = 0x0cf6,  /* U+05E6 HEBREW LETTER TSADI */
        FcitxKey_hebrew_zadi                   = 0x0cf6,  /* deprecated */
        FcitxKey_hebrew_qoph                   = 0x0cf7,  /* U+05E7 HEBREW LETTER QOF */
        FcitxKey_hebrew_kuf                    = 0x0cf7,  /* deprecated */
        FcitxKey_hebrew_resh                   = 0x0cf8,  /* U+05E8 HEBREW LETTER RESH */
        FcitxKey_hebrew_shin                   = 0x0cf9,  /* U+05E9 HEBREW LETTER SHIN */
        FcitxKey_hebrew_taw                    = 0x0cfa,  /* U+05EA HEBREW LETTER TAV */
        FcitxKey_hebrew_taf                    = 0x0cfa,  /* deprecated */
        FcitxKey_Hebrew_switch                 = 0xff7e,  /* Alias for mode_switch */


        /*
         * Thai
         * Byte 3 = = 0x0d,
         */


        FcitxKey_Thai_kokai                    = 0x0da1,  /* U+0E01 THAI CHARACTER KO KAI */
        FcitxKey_Thai_khokhai                  = 0x0da2,  /* U+0E02 THAI CHARACTER KHO KHAI */
        FcitxKey_Thai_khokhuat                 = 0x0da3,  /* U+0E03 THAI CHARACTER KHO KHUAT */
        FcitxKey_Thai_khokhwai                 = 0x0da4,  /* U+0E04 THAI CHARACTER KHO KHWAI */
        FcitxKey_Thai_khokhon                  = 0x0da5,  /* U+0E05 THAI CHARACTER KHO KHON */
        FcitxKey_Thai_khorakhang               = 0x0da6,  /* U+0E06 THAI CHARACTER KHO RAKHANG */
        FcitxKey_Thai_ngongu                   = 0x0da7,  /* U+0E07 THAI CHARACTER NGO NGU */
        FcitxKey_Thai_chochan                  = 0x0da8,  /* U+0E08 THAI CHARACTER CHO CHAN */
        FcitxKey_Thai_choching                 = 0x0da9,  /* U+0E09 THAI CHARACTER CHO CHING */
        FcitxKey_Thai_chochang                 = 0x0daa,  /* U+0E0A THAI CHARACTER CHO CHANG */
        FcitxKey_Thai_soso                     = 0x0dab,  /* U+0E0B THAI CHARACTER SO SO */
        FcitxKey_Thai_chochoe                  = 0x0dac,  /* U+0E0C THAI CHARACTER CHO CHOE */
        FcitxKey_Thai_yoying                   = 0x0dad,  /* U+0E0D THAI CHARACTER YO YING */
        FcitxKey_Thai_dochada                  = 0x0dae,  /* U+0E0E THAI CHARACTER DO CHADA */
        FcitxKey_Thai_topatak                  = 0x0daf,  /* U+0E0F THAI CHARACTER TO PATAK */
        FcitxKey_Thai_thothan                  = 0x0db0,  /* U+0E10 THAI CHARACTER THO THAN */
        FcitxKey_Thai_thonangmontho            = 0x0db1,  /* U+0E11 THAI CHARACTER THO NANGMONTHO */
        FcitxKey_Thai_thophuthao               = 0x0db2,  /* U+0E12 THAI CHARACTER THO PHUTHAO */
        FcitxKey_Thai_nonen                    = 0x0db3,  /* U+0E13 THAI CHARACTER NO NEN */
        FcitxKey_Thai_dodek                    = 0x0db4,  /* U+0E14 THAI CHARACTER DO DEK */
        FcitxKey_Thai_totao                    = 0x0db5,  /* U+0E15 THAI CHARACTER TO TAO */
        FcitxKey_Thai_thothung                 = 0x0db6,  /* U+0E16 THAI CHARACTER THO THUNG */
        FcitxKey_Thai_thothahan                = 0x0db7,  /* U+0E17 THAI CHARACTER THO THAHAN */
        FcitxKey_Thai_thothong                 = 0x0db8,  /* U+0E18 THAI CHARACTER THO THONG */
        FcitxKey_Thai_nonu                     = 0x0db9,  /* U+0E19 THAI CHARACTER NO NU */
        FcitxKey_Thai_bobaimai                 = 0x0dba,  /* U+0E1A THAI CHARACTER BO BAIMAI */
        FcitxKey_Thai_popla                    = 0x0dbb,  /* U+0E1B THAI CHARACTER PO PLA */
        FcitxKey_Thai_phophung                 = 0x0dbc,  /* U+0E1C THAI CHARACTER PHO PHUNG */
        FcitxKey_Thai_fofa                     = 0x0dbd,  /* U+0E1D THAI CHARACTER FO FA */
        FcitxKey_Thai_phophan                  = 0x0dbe,  /* U+0E1E THAI CHARACTER PHO PHAN */
        FcitxKey_Thai_fofan                    = 0x0dbf,  /* U+0E1F THAI CHARACTER FO FAN */
        FcitxKey_Thai_phosamphao               = 0x0dc0,  /* U+0E20 THAI CHARACTER PHO SAMPHAO */
        FcitxKey_Thai_moma                     = 0x0dc1,  /* U+0E21 THAI CHARACTER MO MA */
        FcitxKey_Thai_yoyak                    = 0x0dc2,  /* U+0E22 THAI CHARACTER YO YAK */
        FcitxKey_Thai_rorua                    = 0x0dc3,  /* U+0E23 THAI CHARACTER RO RUA */
        FcitxKey_Thai_ru                       = 0x0dc4,  /* U+0E24 THAI CHARACTER RU */
        FcitxKey_Thai_loling                   = 0x0dc5,  /* U+0E25 THAI CHARACTER LO LING */
        FcitxKey_Thai_lu                       = 0x0dc6,  /* U+0E26 THAI CHARACTER LU */
        FcitxKey_Thai_wowaen                   = 0x0dc7,  /* U+0E27 THAI CHARACTER WO WAEN */
        FcitxKey_Thai_sosala                   = 0x0dc8,  /* U+0E28 THAI CHARACTER SO SALA */
        FcitxKey_Thai_sorusi                   = 0x0dc9,  /* U+0E29 THAI CHARACTER SO RUSI */
        FcitxKey_Thai_sosua                    = 0x0dca,  /* U+0E2A THAI CHARACTER SO SUA */
        FcitxKey_Thai_hohip                    = 0x0dcb,  /* U+0E2B THAI CHARACTER HO HIP */
        FcitxKey_Thai_lochula                  = 0x0dcc,  /* U+0E2C THAI CHARACTER LO CHULA */
        FcitxKey_Thai_oang                     = 0x0dcd,  /* U+0E2D THAI CHARACTER O ANG */
        FcitxKey_Thai_honokhuk                 = 0x0dce,  /* U+0E2E THAI CHARACTER HO NOKHUK */
        FcitxKey_Thai_paiyannoi                = 0x0dcf,  /* U+0E2F THAI CHARACTER PAIYANNOI */
        FcitxKey_Thai_saraa                    = 0x0dd0,  /* U+0E30 THAI CHARACTER SARA A */
        FcitxKey_Thai_maihanakat               = 0x0dd1,  /* U+0E31 THAI CHARACTER MAI HAN-AKAT */
        FcitxKey_Thai_saraaa                   = 0x0dd2,  /* U+0E32 THAI CHARACTER SARA AA */
        FcitxKey_Thai_saraam                   = 0x0dd3,  /* U+0E33 THAI CHARACTER SARA AM */
        FcitxKey_Thai_sarai                    = 0x0dd4,  /* U+0E34 THAI CHARACTER SARA I */
        FcitxKey_Thai_saraii                   = 0x0dd5,  /* U+0E35 THAI CHARACTER SARA II */
        FcitxKey_Thai_saraue                   = 0x0dd6,  /* U+0E36 THAI CHARACTER SARA UE */
        FcitxKey_Thai_sarauee                  = 0x0dd7,  /* U+0E37 THAI CHARACTER SARA UEE */
        FcitxKey_Thai_sarau                    = 0x0dd8,  /* U+0E38 THAI CHARACTER SARA U */
        FcitxKey_Thai_sarauu                   = 0x0dd9,  /* U+0E39 THAI CHARACTER SARA UU */
        FcitxKey_Thai_phinthu                  = 0x0dda,  /* U+0E3A THAI CHARACTER PHINTHU */
        FcitxKey_Thai_maihanakat_maitho        = 0x0dde,
        FcitxKey_Thai_baht                     = 0x0ddf,  /* U+0E3F THAI CURRENCY SYMBOL BAHT */
        FcitxKey_Thai_sarae                    = 0x0de0,  /* U+0E40 THAI CHARACTER SARA E */
        FcitxKey_Thai_saraae                   = 0x0de1,  /* U+0E41 THAI CHARACTER SARA AE */
        FcitxKey_Thai_sarao                    = 0x0de2,  /* U+0E42 THAI CHARACTER SARA O */
        FcitxKey_Thai_saraaimaimuan            = 0x0de3,  /* U+0E43 THAI CHARACTER SARA AI MAIMUAN */
        FcitxKey_Thai_saraaimaimalai           = 0x0de4,  /* U+0E44 THAI CHARACTER SARA AI MAIMALAI */
        FcitxKey_Thai_lakkhangyao              = 0x0de5,  /* U+0E45 THAI CHARACTER LAKKHANGYAO */
        FcitxKey_Thai_maiyamok                 = 0x0de6,  /* U+0E46 THAI CHARACTER MAIYAMOK */
        FcitxKey_Thai_maitaikhu                = 0x0de7,  /* U+0E47 THAI CHARACTER MAITAIKHU */
        FcitxKey_Thai_maiek                    = 0x0de8,  /* U+0E48 THAI CHARACTER MAI EK */
        FcitxKey_Thai_maitho                   = 0x0de9,  /* U+0E49 THAI CHARACTER MAI THO */
        FcitxKey_Thai_maitri                   = 0x0dea,  /* U+0E4A THAI CHARACTER MAI TRI */
        FcitxKey_Thai_maichattawa              = 0x0deb,  /* U+0E4B THAI CHARACTER MAI CHATTAWA */
        FcitxKey_Thai_thanthakhat              = 0x0dec,  /* U+0E4C THAI CHARACTER THANTHAKHAT */
        FcitxKey_Thai_nikhahit                 = 0x0ded,  /* U+0E4D THAI CHARACTER NIKHAHIT */
        FcitxKey_Thai_leksun                   = 0x0df0,  /* U+0E50 THAI DIGIT ZERO */
        FcitxKey_Thai_leknung                  = 0x0df1,  /* U+0E51 THAI DIGIT ONE */
        FcitxKey_Thai_leksong                  = 0x0df2,  /* U+0E52 THAI DIGIT TWO */
        FcitxKey_Thai_leksam                   = 0x0df3,  /* U+0E53 THAI DIGIT THREE */
        FcitxKey_Thai_leksi                    = 0x0df4,  /* U+0E54 THAI DIGIT FOUR */
        FcitxKey_Thai_lekha                    = 0x0df5,  /* U+0E55 THAI DIGIT FIVE */
        FcitxKey_Thai_lekhok                   = 0x0df6,  /* U+0E56 THAI DIGIT SIX */
        FcitxKey_Thai_lekchet                  = 0x0df7,  /* U+0E57 THAI DIGIT SEVEN */
        FcitxKey_Thai_lekpaet                  = 0x0df8,  /* U+0E58 THAI DIGIT EIGHT */
        FcitxKey_Thai_lekkao                   = 0x0df9,  /* U+0E59 THAI DIGIT NINE */


        /*
         * Korean
         * Byte 3 = = 0x0e,
         */



        FcitxKey_Hangul                        = 0xff31,  /* Hangul start/stop(toggle) */
        FcitxKey_Hangul_Start                  = 0xff32,  /* Hangul start */
        FcitxKey_Hangul_End                    = 0xff33,  /* Hangul end, English start */
        FcitxKey_Hangul_Hanja                  = 0xff34,  /* Start Hangul->Hanja Conversion */
        FcitxKey_Hangul_Jamo                   = 0xff35,  /* Hangul Jamo mode */
        FcitxKey_Hangul_Romaja                 = 0xff36,  /* Hangul Romaja mode */
        FcitxKey_Hangul_Codeinput              = 0xff37,  /* Hangul code input mode */
        FcitxKey_Hangul_Jeonja                 = 0xff38,  /* Jeonja mode */
        FcitxKey_Hangul_Banja                  = 0xff39,  /* Banja mode */
        FcitxKey_Hangul_PreHanja               = 0xff3a,  /* Pre Hanja conversion */
        FcitxKey_Hangul_PostHanja              = 0xff3b,  /* Post Hanja conversion */
        FcitxKey_Hangul_SingleCandidate        = 0xff3c,  /* Single candidate */
        FcitxKey_Hangul_MultipleCandidate      = 0xff3d,  /* Multiple candidate */
        FcitxKey_Hangul_PreviousCandidate      = 0xff3e,  /* Previous candidate */
        FcitxKey_Hangul_Special                = 0xff3f,  /* Special symbols */
        FcitxKey_Hangul_switch                 = 0xff7e,  /* Alias for mode_switch */

        /* Hangul Consonant Characters */
        FcitxKey_Hangul_Kiyeog                 = 0x0ea1,
        FcitxKey_Hangul_SsangKiyeog            = 0x0ea2,
        FcitxKey_Hangul_KiyeogSios             = 0x0ea3,
        FcitxKey_Hangul_Nieun                  = 0x0ea4,
        FcitxKey_Hangul_NieunJieuj             = 0x0ea5,
        FcitxKey_Hangul_NieunHieuh             = 0x0ea6,
        FcitxKey_Hangul_Dikeud                 = 0x0ea7,
        FcitxKey_Hangul_SsangDikeud            = 0x0ea8,
        FcitxKey_Hangul_Rieul                  = 0x0ea9,
        FcitxKey_Hangul_RieulKiyeog            = 0x0eaa,
        FcitxKey_Hangul_RieulMieum             = 0x0eab,
        FcitxKey_Hangul_RieulPieub             = 0x0eac,
        FcitxKey_Hangul_RieulSios              = 0x0ead,
        FcitxKey_Hangul_RieulTieut             = 0x0eae,
        FcitxKey_Hangul_RieulPhieuf            = 0x0eaf,
        FcitxKey_Hangul_RieulHieuh             = 0x0eb0,
        FcitxKey_Hangul_Mieum                  = 0x0eb1,
        FcitxKey_Hangul_Pieub                  = 0x0eb2,
        FcitxKey_Hangul_SsangPieub             = 0x0eb3,
        FcitxKey_Hangul_PieubSios              = 0x0eb4,
        FcitxKey_Hangul_Sios                   = 0x0eb5,
        FcitxKey_Hangul_SsangSios              = 0x0eb6,
        FcitxKey_Hangul_Ieung                  = 0x0eb7,
        FcitxKey_Hangul_Jieuj                  = 0x0eb8,
        FcitxKey_Hangul_SsangJieuj             = 0x0eb9,
        FcitxKey_Hangul_Cieuc                  = 0x0eba,
        FcitxKey_Hangul_Khieuq                 = 0x0ebb,
        FcitxKey_Hangul_Tieut                  = 0x0ebc,
        FcitxKey_Hangul_Phieuf                 = 0x0ebd,
        FcitxKey_Hangul_Hieuh                  = 0x0ebe,

        /* Hangul Vowel Characters */
        FcitxKey_Hangul_A                      = 0x0ebf,
        FcitxKey_Hangul_AE                     = 0x0ec0,
        FcitxKey_Hangul_YA                     = 0x0ec1,
        FcitxKey_Hangul_YAE                    = 0x0ec2,
        FcitxKey_Hangul_EO                     = 0x0ec3,
        FcitxKey_Hangul_E                      = 0x0ec4,
        FcitxKey_Hangul_YEO                    = 0x0ec5,
        FcitxKey_Hangul_YE                     = 0x0ec6,
        FcitxKey_Hangul_O                      = 0x0ec7,
        FcitxKey_Hangul_WA                     = 0x0ec8,
        FcitxKey_Hangul_WAE                    = 0x0ec9,
        FcitxKey_Hangul_OE                     = 0x0eca,
        FcitxKey_Hangul_YO                     = 0x0ecb,
        FcitxKey_Hangul_U                      = 0x0ecc,
        FcitxKey_Hangul_WEO                    = 0x0ecd,
        FcitxKey_Hangul_WE                     = 0x0ece,
        FcitxKey_Hangul_WI                     = 0x0ecf,
        FcitxKey_Hangul_YU                     = 0x0ed0,
        FcitxKey_Hangul_EU                     = 0x0ed1,
        FcitxKey_Hangul_YI                     = 0x0ed2,
        FcitxKey_Hangul_I                      = 0x0ed3,

        /* Hangul syllable-final (JongSeong) Characters */
        FcitxKey_Hangul_J_Kiyeog               = 0x0ed4,
        FcitxKey_Hangul_J_SsangKiyeog          = 0x0ed5,
        FcitxKey_Hangul_J_KiyeogSios           = 0x0ed6,
        FcitxKey_Hangul_J_Nieun                = 0x0ed7,
        FcitxKey_Hangul_J_NieunJieuj           = 0x0ed8,
        FcitxKey_Hangul_J_NieunHieuh           = 0x0ed9,
        FcitxKey_Hangul_J_Dikeud               = 0x0eda,
        FcitxKey_Hangul_J_Rieul                = 0x0edb,
        FcitxKey_Hangul_J_RieulKiyeog          = 0x0edc,
        FcitxKey_Hangul_J_RieulMieum           = 0x0edd,
        FcitxKey_Hangul_J_RieulPieub           = 0x0ede,
        FcitxKey_Hangul_J_RieulSios            = 0x0edf,
        FcitxKey_Hangul_J_RieulTieut           = 0x0ee0,
        FcitxKey_Hangul_J_RieulPhieuf          = 0x0ee1,
        FcitxKey_Hangul_J_RieulHieuh           = 0x0ee2,
        FcitxKey_Hangul_J_Mieum                = 0x0ee3,
        FcitxKey_Hangul_J_Pieub                = 0x0ee4,
        FcitxKey_Hangul_J_PieubSios            = 0x0ee5,
        FcitxKey_Hangul_J_Sios                 = 0x0ee6,
        FcitxKey_Hangul_J_SsangSios            = 0x0ee7,
        FcitxKey_Hangul_J_Ieung                = 0x0ee8,
        FcitxKey_Hangul_J_Jieuj                = 0x0ee9,
        FcitxKey_Hangul_J_Cieuc                = 0x0eea,
        FcitxKey_Hangul_J_Khieuq               = 0x0eeb,
        FcitxKey_Hangul_J_Tieut                = 0x0eec,
        FcitxKey_Hangul_J_Phieuf               = 0x0eed,
        FcitxKey_Hangul_J_Hieuh                = 0x0eee,

        /* Ancient Hangul Consonant Characters */
        FcitxKey_Hangul_RieulYeorinHieuh       = 0x0eef,
        FcitxKey_Hangul_SunkyeongeumMieum      = 0x0ef0,
        FcitxKey_Hangul_SunkyeongeumPieub      = 0x0ef1,
        FcitxKey_Hangul_PanSios                = 0x0ef2,
        FcitxKey_Hangul_KkogjiDalrinIeung      = 0x0ef3,
        FcitxKey_Hangul_SunkyeongeumPhieuf     = 0x0ef4,
        FcitxKey_Hangul_YeorinHieuh            = 0x0ef5,

        /* Ancient Hangul Vowel Characters */
        FcitxKey_Hangul_AraeA                  = 0x0ef6,
        FcitxKey_Hangul_AraeAE                 = 0x0ef7,

        /* Ancient Hangul syllable-final (JongSeong) Characters */
        FcitxKey_Hangul_J_PanSios              = 0x0ef8,
        FcitxKey_Hangul_J_KkogjiDalrinIeung    = 0x0ef9,
        FcitxKey_Hangul_J_YeorinHieuh          = 0x0efa,

        /* Korean currency symbol */
        FcitxKey_Korean_Won                    = 0x0eff,  /*(U+20A9 WON SIGN)*/



        /*
         * Armenian
         */


        FcitxKey_Armenian_ligature_ew       = 0x1000587,  /* U+0587 ARMENIAN SMALL LIGATURE ECH YIWN */
        FcitxKey_Armenian_full_stop         = 0x1000589,  /* U+0589 ARMENIAN FULL STOP */
        FcitxKey_Armenian_verjaket          = 0x1000589,  /* U+0589 ARMENIAN FULL STOP */
        FcitxKey_Armenian_separation_mark   = 0x100055d,  /* U+055D ARMENIAN COMMA */
        FcitxKey_Armenian_but               = 0x100055d,  /* U+055D ARMENIAN COMMA */
        FcitxKey_Armenian_hyphen            = 0x100058a,  /* U+058A ARMENIAN HYPHEN */
        FcitxKey_Armenian_yentamna          = 0x100058a,  /* U+058A ARMENIAN HYPHEN */
        FcitxKey_Armenian_exclam            = 0x100055c,  /* U+055C ARMENIAN EXCLAMATION MARK */
        FcitxKey_Armenian_amanak            = 0x100055c,  /* U+055C ARMENIAN EXCLAMATION MARK */
        FcitxKey_Armenian_accent            = 0x100055b,  /* U+055B ARMENIAN EMPHASIS MARK */
        FcitxKey_Armenian_shesht            = 0x100055b,  /* U+055B ARMENIAN EMPHASIS MARK */
        FcitxKey_Armenian_question          = 0x100055e,  /* U+055E ARMENIAN QUESTION MARK */
        FcitxKey_Armenian_paruyk            = 0x100055e,  /* U+055E ARMENIAN QUESTION MARK */
        FcitxKey_Armenian_AYB               = 0x1000531,  /* U+0531 ARMENIAN CAPITAL LETTER AYB */
        FcitxKey_Armenian_ayb               = 0x1000561,  /* U+0561 ARMENIAN SMALL LETTER AYB */
        FcitxKey_Armenian_BEN               = 0x1000532,  /* U+0532 ARMENIAN CAPITAL LETTER BEN */
        FcitxKey_Armenian_ben               = 0x1000562,  /* U+0562 ARMENIAN SMALL LETTER BEN */
        FcitxKey_Armenian_GIM               = 0x1000533,  /* U+0533 ARMENIAN CAPITAL LETTER GIM */
        FcitxKey_Armenian_gim               = 0x1000563,  /* U+0563 ARMENIAN SMALL LETTER GIM */
        FcitxKey_Armenian_DA                = 0x1000534,  /* U+0534 ARMENIAN CAPITAL LETTER DA */
        FcitxKey_Armenian_da                = 0x1000564,  /* U+0564 ARMENIAN SMALL LETTER DA */
        FcitxKey_Armenian_YECH              = 0x1000535,  /* U+0535 ARMENIAN CAPITAL LETTER ECH */
        FcitxKey_Armenian_yech              = 0x1000565,  /* U+0565 ARMENIAN SMALL LETTER ECH */
        FcitxKey_Armenian_ZA                = 0x1000536,  /* U+0536 ARMENIAN CAPITAL LETTER ZA */
        FcitxKey_Armenian_za                = 0x1000566,  /* U+0566 ARMENIAN SMALL LETTER ZA */
        FcitxKey_Armenian_E                 = 0x1000537,  /* U+0537 ARMENIAN CAPITAL LETTER EH */
        FcitxKey_Armenian_e                 = 0x1000567,  /* U+0567 ARMENIAN SMALL LETTER EH */
        FcitxKey_Armenian_AT                = 0x1000538,  /* U+0538 ARMENIAN CAPITAL LETTER ET */
        FcitxKey_Armenian_at                = 0x1000568,  /* U+0568 ARMENIAN SMALL LETTER ET */
        FcitxKey_Armenian_TO                = 0x1000539,  /* U+0539 ARMENIAN CAPITAL LETTER TO */
        FcitxKey_Armenian_to                = 0x1000569,  /* U+0569 ARMENIAN SMALL LETTER TO */
        FcitxKey_Armenian_ZHE               = 0x100053a,  /* U+053A ARMENIAN CAPITAL LETTER ZHE */
        FcitxKey_Armenian_zhe               = 0x100056a,  /* U+056A ARMENIAN SMALL LETTER ZHE */
        FcitxKey_Armenian_INI               = 0x100053b,  /* U+053B ARMENIAN CAPITAL LETTER INI */
        FcitxKey_Armenian_ini               = 0x100056b,  /* U+056B ARMENIAN SMALL LETTER INI */
        FcitxKey_Armenian_LYUN              = 0x100053c,  /* U+053C ARMENIAN CAPITAL LETTER LIWN */
        FcitxKey_Armenian_lyun              = 0x100056c,  /* U+056C ARMENIAN SMALL LETTER LIWN */
        FcitxKey_Armenian_KHE               = 0x100053d,  /* U+053D ARMENIAN CAPITAL LETTER XEH */
        FcitxKey_Armenian_khe               = 0x100056d,  /* U+056D ARMENIAN SMALL LETTER XEH */
        FcitxKey_Armenian_TSA               = 0x100053e,  /* U+053E ARMENIAN CAPITAL LETTER CA */
        FcitxKey_Armenian_tsa               = 0x100056e,  /* U+056E ARMENIAN SMALL LETTER CA */
        FcitxKey_Armenian_KEN               = 0x100053f,  /* U+053F ARMENIAN CAPITAL LETTER KEN */
        FcitxKey_Armenian_ken               = 0x100056f,  /* U+056F ARMENIAN SMALL LETTER KEN */
        FcitxKey_Armenian_HO                = 0x1000540,  /* U+0540 ARMENIAN CAPITAL LETTER HO */
        FcitxKey_Armenian_ho                = 0x1000570,  /* U+0570 ARMENIAN SMALL LETTER HO */
        FcitxKey_Armenian_DZA               = 0x1000541,  /* U+0541 ARMENIAN CAPITAL LETTER JA */
        FcitxKey_Armenian_dza               = 0x1000571,  /* U+0571 ARMENIAN SMALL LETTER JA */
        FcitxKey_Armenian_GHAT              = 0x1000542,  /* U+0542 ARMENIAN CAPITAL LETTER GHAD */
        FcitxKey_Armenian_ghat              = 0x1000572,  /* U+0572 ARMENIAN SMALL LETTER GHAD */
        FcitxKey_Armenian_TCHE              = 0x1000543,  /* U+0543 ARMENIAN CAPITAL LETTER CHEH */
        FcitxKey_Armenian_tche              = 0x1000573,  /* U+0573 ARMENIAN SMALL LETTER CHEH */
        FcitxKey_Armenian_MEN               = 0x1000544,  /* U+0544 ARMENIAN CAPITAL LETTER MEN */
        FcitxKey_Armenian_men               = 0x1000574,  /* U+0574 ARMENIAN SMALL LETTER MEN */
        FcitxKey_Armenian_HI                = 0x1000545,  /* U+0545 ARMENIAN CAPITAL LETTER YI */
        FcitxKey_Armenian_hi                = 0x1000575,  /* U+0575 ARMENIAN SMALL LETTER YI */
        FcitxKey_Armenian_NU                = 0x1000546,  /* U+0546 ARMENIAN CAPITAL LETTER NOW */
        FcitxKey_Armenian_nu                = 0x1000576,  /* U+0576 ARMENIAN SMALL LETTER NOW */
        FcitxKey_Armenian_SHA               = 0x1000547,  /* U+0547 ARMENIAN CAPITAL LETTER SHA */
        FcitxKey_Armenian_sha               = 0x1000577,  /* U+0577 ARMENIAN SMALL LETTER SHA */
        FcitxKey_Armenian_VO                = 0x1000548,  /* U+0548 ARMENIAN CAPITAL LETTER VO */
        FcitxKey_Armenian_vo                = 0x1000578,  /* U+0578 ARMENIAN SMALL LETTER VO */
        FcitxKey_Armenian_CHA               = 0x1000549,  /* U+0549 ARMENIAN CAPITAL LETTER CHA */
        FcitxKey_Armenian_cha               = 0x1000579,  /* U+0579 ARMENIAN SMALL LETTER CHA */
        FcitxKey_Armenian_PE                = 0x100054a,  /* U+054A ARMENIAN CAPITAL LETTER PEH */
        FcitxKey_Armenian_pe                = 0x100057a,  /* U+057A ARMENIAN SMALL LETTER PEH */
        FcitxKey_Armenian_JE                = 0x100054b,  /* U+054B ARMENIAN CAPITAL LETTER JHEH */
        FcitxKey_Armenian_je                = 0x100057b,  /* U+057B ARMENIAN SMALL LETTER JHEH */
        FcitxKey_Armenian_RA                = 0x100054c,  /* U+054C ARMENIAN CAPITAL LETTER RA */
        FcitxKey_Armenian_ra                = 0x100057c,  /* U+057C ARMENIAN SMALL LETTER RA */
        FcitxKey_Armenian_SE                = 0x100054d,  /* U+054D ARMENIAN CAPITAL LETTER SEH */
        FcitxKey_Armenian_se                = 0x100057d,  /* U+057D ARMENIAN SMALL LETTER SEH */
        FcitxKey_Armenian_VEV               = 0x100054e,  /* U+054E ARMENIAN CAPITAL LETTER VEW */
        FcitxKey_Armenian_vev               = 0x100057e,  /* U+057E ARMENIAN SMALL LETTER VEW */
        FcitxKey_Armenian_TYUN              = 0x100054f,  /* U+054F ARMENIAN CAPITAL LETTER TIWN */
        FcitxKey_Armenian_tyun              = 0x100057f,  /* U+057F ARMENIAN SMALL LETTER TIWN */
        FcitxKey_Armenian_RE                = 0x1000550,  /* U+0550 ARMENIAN CAPITAL LETTER REH */
        FcitxKey_Armenian_re                = 0x1000580,  /* U+0580 ARMENIAN SMALL LETTER REH */
        FcitxKey_Armenian_TSO               = 0x1000551,  /* U+0551 ARMENIAN CAPITAL LETTER CO */
        FcitxKey_Armenian_tso               = 0x1000581,  /* U+0581 ARMENIAN SMALL LETTER CO */
        FcitxKey_Armenian_VYUN              = 0x1000552,  /* U+0552 ARMENIAN CAPITAL LETTER YIWN */
        FcitxKey_Armenian_vyun              = 0x1000582,  /* U+0582 ARMENIAN SMALL LETTER YIWN */
        FcitxKey_Armenian_PYUR              = 0x1000553,  /* U+0553 ARMENIAN CAPITAL LETTER PIWR */
        FcitxKey_Armenian_pyur              = 0x1000583,  /* U+0583 ARMENIAN SMALL LETTER PIWR */
        FcitxKey_Armenian_KE                = 0x1000554,  /* U+0554 ARMENIAN CAPITAL LETTER KEH */
        FcitxKey_Armenian_ke                = 0x1000584,  /* U+0584 ARMENIAN SMALL LETTER KEH */
        FcitxKey_Armenian_O                 = 0x1000555,  /* U+0555 ARMENIAN CAPITAL LETTER OH */
        FcitxKey_Armenian_o                 = 0x1000585,  /* U+0585 ARMENIAN SMALL LETTER OH */
        FcitxKey_Armenian_FE                = 0x1000556,  /* U+0556 ARMENIAN CAPITAL LETTER FEH */
        FcitxKey_Armenian_fe                = 0x1000586,  /* U+0586 ARMENIAN SMALL LETTER FEH */
        FcitxKey_Armenian_apostrophe        = 0x100055a,  /* U+055A ARMENIAN APOSTROPHE */


        /*
         * Georgian
         */


        FcitxKey_Georgian_an                = 0x10010d0,  /* U+10D0 GEORGIAN LETTER AN */
        FcitxKey_Georgian_ban               = 0x10010d1,  /* U+10D1 GEORGIAN LETTER BAN */
        FcitxKey_Georgian_gan               = 0x10010d2,  /* U+10D2 GEORGIAN LETTER GAN */
        FcitxKey_Georgian_don               = 0x10010d3,  /* U+10D3 GEORGIAN LETTER DON */
        FcitxKey_Georgian_en                = 0x10010d4,  /* U+10D4 GEORGIAN LETTER EN */
        FcitxKey_Georgian_vin               = 0x10010d5,  /* U+10D5 GEORGIAN LETTER VIN */
        FcitxKey_Georgian_zen               = 0x10010d6,  /* U+10D6 GEORGIAN LETTER ZEN */
        FcitxKey_Georgian_tan               = 0x10010d7,  /* U+10D7 GEORGIAN LETTER TAN */
        FcitxKey_Georgian_in                = 0x10010d8,  /* U+10D8 GEORGIAN LETTER IN */
        FcitxKey_Georgian_kan               = 0x10010d9,  /* U+10D9 GEORGIAN LETTER KAN */
        FcitxKey_Georgian_las               = 0x10010da,  /* U+10DA GEORGIAN LETTER LAS */
        FcitxKey_Georgian_man               = 0x10010db,  /* U+10DB GEORGIAN LETTER MAN */
        FcitxKey_Georgian_nar               = 0x10010dc,  /* U+10DC GEORGIAN LETTER NAR */
        FcitxKey_Georgian_on                = 0x10010dd,  /* U+10DD GEORGIAN LETTER ON */
        FcitxKey_Georgian_par               = 0x10010de,  /* U+10DE GEORGIAN LETTER PAR */
        FcitxKey_Georgian_zhar              = 0x10010df,  /* U+10DF GEORGIAN LETTER ZHAR */
        FcitxKey_Georgian_rae               = 0x10010e0,  /* U+10E0 GEORGIAN LETTER RAE */
        FcitxKey_Georgian_san               = 0x10010e1,  /* U+10E1 GEORGIAN LETTER SAN */
        FcitxKey_Georgian_tar               = 0x10010e2,  /* U+10E2 GEORGIAN LETTER TAR */
        FcitxKey_Georgian_un                = 0x10010e3,  /* U+10E3 GEORGIAN LETTER UN */
        FcitxKey_Georgian_phar              = 0x10010e4,  /* U+10E4 GEORGIAN LETTER PHAR */
        FcitxKey_Georgian_khar              = 0x10010e5,  /* U+10E5 GEORGIAN LETTER KHAR */
        FcitxKey_Georgian_ghan              = 0x10010e6,  /* U+10E6 GEORGIAN LETTER GHAN */
        FcitxKey_Georgian_qar               = 0x10010e7,  /* U+10E7 GEORGIAN LETTER QAR */
        FcitxKey_Georgian_shin              = 0x10010e8,  /* U+10E8 GEORGIAN LETTER SHIN */
        FcitxKey_Georgian_chin              = 0x10010e9,  /* U+10E9 GEORGIAN LETTER CHIN */
        FcitxKey_Georgian_can               = 0x10010ea,  /* U+10EA GEORGIAN LETTER CAN */
        FcitxKey_Georgian_jil               = 0x10010eb,  /* U+10EB GEORGIAN LETTER JIL */
        FcitxKey_Georgian_cil               = 0x10010ec,  /* U+10EC GEORGIAN LETTER CIL */
        FcitxKey_Georgian_char              = 0x10010ed,  /* U+10ED GEORGIAN LETTER CHAR */
        FcitxKey_Georgian_xan               = 0x10010ee,  /* U+10EE GEORGIAN LETTER XAN */
        FcitxKey_Georgian_jhan              = 0x10010ef,  /* U+10EF GEORGIAN LETTER JHAN */
        FcitxKey_Georgian_hae               = 0x10010f0,  /* U+10F0 GEORGIAN LETTER HAE */
        FcitxKey_Georgian_he                = 0x10010f1,  /* U+10F1 GEORGIAN LETTER HE */
        FcitxKey_Georgian_hie               = 0x10010f2,  /* U+10F2 GEORGIAN LETTER HIE */
        FcitxKey_Georgian_we                = 0x10010f3,  /* U+10F3 GEORGIAN LETTER WE */
        FcitxKey_Georgian_har               = 0x10010f4,  /* U+10F4 GEORGIAN LETTER HAR */
        FcitxKey_Georgian_hoe               = 0x10010f5,  /* U+10F5 GEORGIAN LETTER HOE */
        FcitxKey_Georgian_fi                = 0x10010f6,  /* U+10F6 GEORGIAN LETTER FI */


        /*
         * Azeri (and other Turkic or Caucasian languages)
         */


        /* latin */
        FcitxKey_Xabovedot                  = 0x1001e8a,  /* U+1E8A LATIN CAPITAL LETTER X WITH DOT ABOVE */
        FcitxKey_Ibreve                     = 0x100012c,  /* U+012C LATIN CAPITAL LETTER I WITH BREVE */
        FcitxKey_Zstroke                    = 0x10001b5,  /* U+01B5 LATIN CAPITAL LETTER Z WITH STROKE */
        FcitxKey_Gcaron                     = 0x10001e6,  /* U+01E6 LATIN CAPITAL LETTER G WITH CARON */
        FcitxKey_Ocaron                     = 0x10001d1,  /* U+01D2 LATIN CAPITAL LETTER O WITH CARON */
        FcitxKey_Obarred                    = 0x100019f,  /* U+019F LATIN CAPITAL LETTER O WITH MIDDLE TILDE */
        FcitxKey_xabovedot                  = 0x1001e8b,  /* U+1E8B LATIN SMALL LETTER X WITH DOT ABOVE */
        FcitxKey_ibreve                     = 0x100012d,  /* U+012D LATIN SMALL LETTER I WITH BREVE */
        FcitxKey_zstroke                    = 0x10001b6,  /* U+01B6 LATIN SMALL LETTER Z WITH STROKE */
        FcitxKey_gcaron                     = 0x10001e7,  /* U+01E7 LATIN SMALL LETTER G WITH CARON */
        FcitxKey_ocaron                     = 0x10001d2,  /* U+01D2 LATIN SMALL LETTER O WITH CARON */
        FcitxKey_obarred                    = 0x1000275,  /* U+0275 LATIN SMALL LETTER BARRED O */
        FcitxKey_SCHWA                      = 0x100018f,  /* U+018F LATIN CAPITAL LETTER SCHWA */
        FcitxKey_schwa                      = 0x1000259,  /* U+0259 LATIN SMALL LETTER SCHWA */
        /* those are not really Caucasus */
        /* For Inupiak */
        FcitxKey_Lbelowdot                  = 0x1001e36,  /* U+1E36 LATIN CAPITAL LETTER L WITH DOT BELOW */
        FcitxKey_lbelowdot                  = 0x1001e37,  /* U+1E37 LATIN SMALL LETTER L WITH DOT BELOW */


        /*
         * Vietnamese
         */


        FcitxKey_Abelowdot                  = 0x1001ea0,  /* U+1EA0 LATIN CAPITAL LETTER A WITH DOT BELOW */
        FcitxKey_abelowdot                  = 0x1001ea1,  /* U+1EA1 LATIN SMALL LETTER A WITH DOT BELOW */
        FcitxKey_Ahook                      = 0x1001ea2,  /* U+1EA2 LATIN CAPITAL LETTER A WITH HOOK ABOVE */
        FcitxKey_ahook                      = 0x1001ea3,  /* U+1EA3 LATIN SMALL LETTER A WITH HOOK ABOVE */
        FcitxKey_Acircumflexacute           = 0x1001ea4,  /* U+1EA4 LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE */
        FcitxKey_acircumflexacute           = 0x1001ea5,  /* U+1EA5 LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE */
        FcitxKey_Acircumflexgrave           = 0x1001ea6,  /* U+1EA6 LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE */
        FcitxKey_acircumflexgrave           = 0x1001ea7,  /* U+1EA7 LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE */
        FcitxKey_Acircumflexhook            = 0x1001ea8,  /* U+1EA8 LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE */
        FcitxKey_acircumflexhook            = 0x1001ea9,  /* U+1EA9 LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE */
        FcitxKey_Acircumflextilde           = 0x1001eaa,  /* U+1EAA LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE */
        FcitxKey_acircumflextilde           = 0x1001eab,  /* U+1EAB LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE */
        FcitxKey_Acircumflexbelowdot        = 0x1001eac,  /* U+1EAC LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW */
        FcitxKey_acircumflexbelowdot        = 0x1001ead,  /* U+1EAD LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW */
        FcitxKey_Abreveacute                = 0x1001eae,  /* U+1EAE LATIN CAPITAL LETTER A WITH BREVE AND ACUTE */
        FcitxKey_abreveacute                = 0x1001eaf,  /* U+1EAF LATIN SMALL LETTER A WITH BREVE AND ACUTE */
        FcitxKey_Abrevegrave                = 0x1001eb0,  /* U+1EB0 LATIN CAPITAL LETTER A WITH BREVE AND GRAVE */
        FcitxKey_abrevegrave                = 0x1001eb1,  /* U+1EB1 LATIN SMALL LETTER A WITH BREVE AND GRAVE */
        FcitxKey_Abrevehook                 = 0x1001eb2,  /* U+1EB2 LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE */
        FcitxKey_abrevehook                 = 0x1001eb3,  /* U+1EB3 LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE */
        FcitxKey_Abrevetilde                = 0x1001eb4,  /* U+1EB4 LATIN CAPITAL LETTER A WITH BREVE AND TILDE */
        FcitxKey_abrevetilde                = 0x1001eb5,  /* U+1EB5 LATIN SMALL LETTER A WITH BREVE AND TILDE */
        FcitxKey_Abrevebelowdot             = 0x1001eb6,  /* U+1EB6 LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW */
        FcitxKey_abrevebelowdot             = 0x1001eb7,  /* U+1EB7 LATIN SMALL LETTER A WITH BREVE AND DOT BELOW */
        FcitxKey_Ebelowdot                  = 0x1001eb8,  /* U+1EB8 LATIN CAPITAL LETTER E WITH DOT BELOW */
        FcitxKey_ebelowdot                  = 0x1001eb9,  /* U+1EB9 LATIN SMALL LETTER E WITH DOT BELOW */
        FcitxKey_Ehook                      = 0x1001eba,  /* U+1EBA LATIN CAPITAL LETTER E WITH HOOK ABOVE */
        FcitxKey_ehook                      = 0x1001ebb,  /* U+1EBB LATIN SMALL LETTER E WITH HOOK ABOVE */
        FcitxKey_Etilde                     = 0x1001ebc,  /* U+1EBC LATIN CAPITAL LETTER E WITH TILDE */
        FcitxKey_etilde                     = 0x1001ebd,  /* U+1EBD LATIN SMALL LETTER E WITH TILDE */
        FcitxKey_Ecircumflexacute           = 0x1001ebe,  /* U+1EBE LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE */
        FcitxKey_ecircumflexacute           = 0x1001ebf,  /* U+1EBF LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE */
        FcitxKey_Ecircumflexgrave           = 0x1001ec0,  /* U+1EC0 LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE */
        FcitxKey_ecircumflexgrave           = 0x1001ec1,  /* U+1EC1 LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE */
        FcitxKey_Ecircumflexhook            = 0x1001ec2,  /* U+1EC2 LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE */
        FcitxKey_ecircumflexhook            = 0x1001ec3,  /* U+1EC3 LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE */
        FcitxKey_Ecircumflextilde           = 0x1001ec4,  /* U+1EC4 LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE */
        FcitxKey_ecircumflextilde           = 0x1001ec5,  /* U+1EC5 LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE */
        FcitxKey_Ecircumflexbelowdot        = 0x1001ec6,  /* U+1EC6 LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW */
        FcitxKey_ecircumflexbelowdot        = 0x1001ec7,  /* U+1EC7 LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW */
        FcitxKey_Ihook                      = 0x1001ec8,  /* U+1EC8 LATIN CAPITAL LETTER I WITH HOOK ABOVE */
        FcitxKey_ihook                      = 0x1001ec9,  /* U+1EC9 LATIN SMALL LETTER I WITH HOOK ABOVE */
        FcitxKey_Ibelowdot                  = 0x1001eca,  /* U+1ECA LATIN CAPITAL LETTER I WITH DOT BELOW */
        FcitxKey_ibelowdot                  = 0x1001ecb,  /* U+1ECB LATIN SMALL LETTER I WITH DOT BELOW */
        FcitxKey_Obelowdot                  = 0x1001ecc,  /* U+1ECC LATIN CAPITAL LETTER O WITH DOT BELOW */
        FcitxKey_obelowdot                  = 0x1001ecd,  /* U+1ECD LATIN SMALL LETTER O WITH DOT BELOW */
        FcitxKey_Ohook                      = 0x1001ece,  /* U+1ECE LATIN CAPITAL LETTER O WITH HOOK ABOVE */
        FcitxKey_ohook                      = 0x1001ecf,  /* U+1ECF LATIN SMALL LETTER O WITH HOOK ABOVE */
        FcitxKey_Ocircumflexacute           = 0x1001ed0,  /* U+1ED0 LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE */
        FcitxKey_ocircumflexacute           = 0x1001ed1,  /* U+1ED1 LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE */
        FcitxKey_Ocircumflexgrave           = 0x1001ed2,  /* U+1ED2 LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE */
        FcitxKey_ocircumflexgrave           = 0x1001ed3,  /* U+1ED3 LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE */
        FcitxKey_Ocircumflexhook            = 0x1001ed4,  /* U+1ED4 LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE */
        FcitxKey_ocircumflexhook            = 0x1001ed5,  /* U+1ED5 LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE */
        FcitxKey_Ocircumflextilde           = 0x1001ed6,  /* U+1ED6 LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE */
        FcitxKey_ocircumflextilde           = 0x1001ed7,  /* U+1ED7 LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE */
        FcitxKey_Ocircumflexbelowdot        = 0x1001ed8,  /* U+1ED8 LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW */
        FcitxKey_ocircumflexbelowdot        = 0x1001ed9,  /* U+1ED9 LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW */
        FcitxKey_Ohornacute                 = 0x1001eda,  /* U+1EDA LATIN CAPITAL LETTER O WITH HORN AND ACUTE */
        FcitxKey_ohornacute                 = 0x1001edb,  /* U+1EDB LATIN SMALL LETTER O WITH HORN AND ACUTE */
        FcitxKey_Ohorngrave                 = 0x1001edc,  /* U+1EDC LATIN CAPITAL LETTER O WITH HORN AND GRAVE */
        FcitxKey_ohorngrave                 = 0x1001edd,  /* U+1EDD LATIN SMALL LETTER O WITH HORN AND GRAVE */
        FcitxKey_Ohornhook                  = 0x1001ede,  /* U+1EDE LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE */
        FcitxKey_ohornhook                  = 0x1001edf,  /* U+1EDF LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE */
        FcitxKey_Ohorntilde                 = 0x1001ee0,  /* U+1EE0 LATIN CAPITAL LETTER O WITH HORN AND TILDE */
        FcitxKey_ohorntilde                 = 0x1001ee1,  /* U+1EE1 LATIN SMALL LETTER O WITH HORN AND TILDE */
        FcitxKey_Ohornbelowdot              = 0x1001ee2,  /* U+1EE2 LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW */
        FcitxKey_ohornbelowdot              = 0x1001ee3,  /* U+1EE3 LATIN SMALL LETTER O WITH HORN AND DOT BELOW */
        FcitxKey_Ubelowdot                  = 0x1001ee4,  /* U+1EE4 LATIN CAPITAL LETTER U WITH DOT BELOW */
        FcitxKey_ubelowdot                  = 0x1001ee5,  /* U+1EE5 LATIN SMALL LETTER U WITH DOT BELOW */
        FcitxKey_Uhook                      = 0x1001ee6,  /* U+1EE6 LATIN CAPITAL LETTER U WITH HOOK ABOVE */
        FcitxKey_uhook                      = 0x1001ee7,  /* U+1EE7 LATIN SMALL LETTER U WITH HOOK ABOVE */
        FcitxKey_Uhornacute                 = 0x1001ee8,  /* U+1EE8 LATIN CAPITAL LETTER U WITH HORN AND ACUTE */
        FcitxKey_uhornacute                 = 0x1001ee9,  /* U+1EE9 LATIN SMALL LETTER U WITH HORN AND ACUTE */
        FcitxKey_Uhorngrave                 = 0x1001eea,  /* U+1EEA LATIN CAPITAL LETTER U WITH HORN AND GRAVE */
        FcitxKey_uhorngrave                 = 0x1001eeb,  /* U+1EEB LATIN SMALL LETTER U WITH HORN AND GRAVE */
        FcitxKey_Uhornhook                  = 0x1001eec,  /* U+1EEC LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE */
        FcitxKey_uhornhook                  = 0x1001eed,  /* U+1EED LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE */
        FcitxKey_Uhorntilde                 = 0x1001eee,  /* U+1EEE LATIN CAPITAL LETTER U WITH HORN AND TILDE */
        FcitxKey_uhorntilde                 = 0x1001eef,  /* U+1EEF LATIN SMALL LETTER U WITH HORN AND TILDE */
        FcitxKey_Uhornbelowdot              = 0x1001ef0,  /* U+1EF0 LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW */
        FcitxKey_uhornbelowdot              = 0x1001ef1,  /* U+1EF1 LATIN SMALL LETTER U WITH HORN AND DOT BELOW */
        FcitxKey_Ybelowdot                  = 0x1001ef4,  /* U+1EF4 LATIN CAPITAL LETTER Y WITH DOT BELOW */
        FcitxKey_ybelowdot                  = 0x1001ef5,  /* U+1EF5 LATIN SMALL LETTER Y WITH DOT BELOW */
        FcitxKey_Yhook                      = 0x1001ef6,  /* U+1EF6 LATIN CAPITAL LETTER Y WITH HOOK ABOVE */
        FcitxKey_yhook                      = 0x1001ef7,  /* U+1EF7 LATIN SMALL LETTER Y WITH HOOK ABOVE */
        FcitxKey_Ytilde                     = 0x1001ef8,  /* U+1EF8 LATIN CAPITAL LETTER Y WITH TILDE */
        FcitxKey_ytilde                     = 0x1001ef9,  /* U+1EF9 LATIN SMALL LETTER Y WITH TILDE */
        FcitxKey_Ohorn                      = 0x10001a0,  /* U+01A0 LATIN CAPITAL LETTER O WITH HORN */
        FcitxKey_ohorn                      = 0x10001a1,  /* U+01A1 LATIN SMALL LETTER O WITH HORN */
        FcitxKey_Uhorn                      = 0x10001af,  /* U+01AF LATIN CAPITAL LETTER U WITH HORN */
        FcitxKey_uhorn                      = 0x10001b0,  /* U+01B0 LATIN SMALL LETTER U WITH HORN */




        FcitxKey_EcuSign                    = 0x10020a0,  /* U+20A0 EURO-CURRENCY SIGN */
        FcitxKey_ColonSign                  = 0x10020a1,  /* U+20A1 COLON SIGN */
        FcitxKey_CruzeiroSign               = 0x10020a2,  /* U+20A2 CRUZEIRO SIGN */
        FcitxKey_FFrancSign                 = 0x10020a3,  /* U+20A3 FRENCH FRANC SIGN */
        FcitxKey_LiraSign                   = 0x10020a4,  /* U+20A4 LIRA SIGN */
        FcitxKey_MillSign                   = 0x10020a5,  /* U+20A5 MILL SIGN */
        FcitxKey_NairaSign                  = 0x10020a6,  /* U+20A6 NAIRA SIGN */
        FcitxKey_PesetaSign                 = 0x10020a7,  /* U+20A7 PESETA SIGN */
        FcitxKey_RupeeSign                  = 0x10020a8,  /* U+20A8 RUPEE SIGN */
        FcitxKey_WonSign                    = 0x10020a9,  /* U+20A9 WON SIGN */
        FcitxKey_NewSheqelSign              = 0x10020aa,  /* U+20AA NEW SHEQEL SIGN */
        FcitxKey_DongSign                   = 0x10020ab,  /* U+20AB DONG SIGN */
        FcitxKey_EuroSign                      = 0x20ac,  /* U+20AC EURO SIGN */



        /* one, two and three are defined above. */
        FcitxKey_zerosuperior               = 0x1002070,  /* U+2070 SUPERSCRIPT ZERO */
        FcitxKey_foursuperior               = 0x1002074,  /* U+2074 SUPERSCRIPT FOUR */
        FcitxKey_fivesuperior               = 0x1002075,  /* U+2075 SUPERSCRIPT FIVE */
        FcitxKey_sixsuperior                = 0x1002076,  /* U+2076 SUPERSCRIPT SIX */
        FcitxKey_sevensuperior              = 0x1002077,  /* U+2077 SUPERSCRIPT SEVEN */
        FcitxKey_eightsuperior              = 0x1002078,  /* U+2078 SUPERSCRIPT EIGHT */
        FcitxKey_ninesuperior               = 0x1002079,  /* U+2079 SUPERSCRIPT NINE */
        FcitxKey_zerosubscript              = 0x1002080,  /* U+2080 SUBSCRIPT ZERO */
        FcitxKey_onesubscript               = 0x1002081,  /* U+2081 SUBSCRIPT ONE */
        FcitxKey_twosubscript               = 0x1002082,  /* U+2082 SUBSCRIPT TWO */
        FcitxKey_threesubscript             = 0x1002083,  /* U+2083 SUBSCRIPT THREE */
        FcitxKey_foursubscript              = 0x1002084,  /* U+2084 SUBSCRIPT FOUR */
        FcitxKey_fivesubscript              = 0x1002085,  /* U+2085 SUBSCRIPT FIVE */
        FcitxKey_sixsubscript               = 0x1002086,  /* U+2086 SUBSCRIPT SIX */
        FcitxKey_sevensubscript             = 0x1002087,  /* U+2087 SUBSCRIPT SEVEN */
        FcitxKey_eightsubscript             = 0x1002088,  /* U+2088 SUBSCRIPT EIGHT */
        FcitxKey_ninesubscript              = 0x1002089,  /* U+2089 SUBSCRIPT NINE */
        FcitxKey_partdifferential           = 0x1002202,  /* U+2202 PARTIAL DIFFERENTIAL */
        FcitxKey_emptyset                   = 0x1002205,  /* U+2205 NULL SET */
        FcitxKey_elementof                  = 0x1002208,  /* U+2208 ELEMENT OF */
        FcitxKey_notelementof               = 0x1002209,  /* U+2209 NOT AN ELEMENT OF */
        FcitxKey_containsas                 = 0x100220B,  /* U+220B CONTAINS AS MEMBER */
        FcitxKey_squareroot                 = 0x100221A,  /* U+221A SQUARE ROOT */
        FcitxKey_cuberoot                   = 0x100221B,  /* U+221B CUBE ROOT */
        FcitxKey_fourthroot                 = 0x100221C,  /* U+221C FOURTH ROOT */
        FcitxKey_dintegral                  = 0x100222C,  /* U+222C DOUBLE INTEGRAL */
        FcitxKey_tintegral                  = 0x100222D,  /* U+222D TRIPLE INTEGRAL */
        FcitxKey_because                    = 0x1002235,  /* U+2235 BECAUSE */
        FcitxKey_approxeq                   = 0x1002248,  /* U+2245 ALMOST EQUAL TO */
        FcitxKey_notapproxeq                = 0x1002247,  /* U+2247 NOT ALMOST EQUAL TO */
        FcitxKey_notidentical               = 0x1002262,  /* U+2262 NOT IDENTICAL TO */
        FcitxKey_stricteq                   = 0x1002263,  /* U+2263 STRICTLY EQUIVALENT TO */



        FcitxKey_braille_dot_1                 = 0xfff1,
        FcitxKey_braille_dot_2                 = 0xfff2,
        FcitxKey_braille_dot_3                 = 0xfff3,
        FcitxKey_braille_dot_4                 = 0xfff4,
        FcitxKey_braille_dot_5                 = 0xfff5,
        FcitxKey_braille_dot_6                 = 0xfff6,
        FcitxKey_braille_dot_7                 = 0xfff7,
        FcitxKey_braille_dot_8                 = 0xfff8,
        FcitxKey_braille_dot_9                 = 0xfff9,
        FcitxKey_braille_dot_10                = 0xfffa,
        FcitxKey_braille_blank              = 0x1002800,  /* U+2800 BRAILLE PATTERN BLANK */
        FcitxKey_braille_dots_1             = 0x1002801,  /* U+2801 BRAILLE PATTERN DOTS-1 */
        FcitxKey_braille_dots_2             = 0x1002802,  /* U+2802 BRAILLE PATTERN DOTS-2 */
        FcitxKey_braille_dots_12            = 0x1002803,  /* U+2803 BRAILLE PATTERN DOTS-12 */
        FcitxKey_braille_dots_3             = 0x1002804,  /* U+2804 BRAILLE PATTERN DOTS-3 */
        FcitxKey_braille_dots_13            = 0x1002805,  /* U+2805 BRAILLE PATTERN DOTS-13 */
        FcitxKey_braille_dots_23            = 0x1002806,  /* U+2806 BRAILLE PATTERN DOTS-23 */
        FcitxKey_braille_dots_123           = 0x1002807,  /* U+2807 BRAILLE PATTERN DOTS-123 */
        FcitxKey_braille_dots_4             = 0x1002808,  /* U+2808 BRAILLE PATTERN DOTS-4 */
        FcitxKey_braille_dots_14            = 0x1002809,  /* U+2809 BRAILLE PATTERN DOTS-14 */
        FcitxKey_braille_dots_24            = 0x100280a,  /* U+280a BRAILLE PATTERN DOTS-24 */
        FcitxKey_braille_dots_124           = 0x100280b,  /* U+280b BRAILLE PATTERN DOTS-124 */
        FcitxKey_braille_dots_34            = 0x100280c,  /* U+280c BRAILLE PATTERN DOTS-34 */
        FcitxKey_braille_dots_134           = 0x100280d,  /* U+280d BRAILLE PATTERN DOTS-134 */
        FcitxKey_braille_dots_234           = 0x100280e,  /* U+280e BRAILLE PATTERN DOTS-234 */
        FcitxKey_braille_dots_1234          = 0x100280f,  /* U+280f BRAILLE PATTERN DOTS-1234 */
        FcitxKey_braille_dots_5             = 0x1002810,  /* U+2810 BRAILLE PATTERN DOTS-5 */
        FcitxKey_braille_dots_15            = 0x1002811,  /* U+2811 BRAILLE PATTERN DOTS-15 */
        FcitxKey_braille_dots_25            = 0x1002812,  /* U+2812 BRAILLE PATTERN DOTS-25 */
        FcitxKey_braille_dots_125           = 0x1002813,  /* U+2813 BRAILLE PATTERN DOTS-125 */
        FcitxKey_braille_dots_35            = 0x1002814,  /* U+2814 BRAILLE PATTERN DOTS-35 */
        FcitxKey_braille_dots_135           = 0x1002815,  /* U+2815 BRAILLE PATTERN DOTS-135 */
        FcitxKey_braille_dots_235           = 0x1002816,  /* U+2816 BRAILLE PATTERN DOTS-235 */
        FcitxKey_braille_dots_1235          = 0x1002817,  /* U+2817 BRAILLE PATTERN DOTS-1235 */
        FcitxKey_braille_dots_45            = 0x1002818,  /* U+2818 BRAILLE PATTERN DOTS-45 */
        FcitxKey_braille_dots_145           = 0x1002819,  /* U+2819 BRAILLE PATTERN DOTS-145 */
        FcitxKey_braille_dots_245           = 0x100281a,  /* U+281a BRAILLE PATTERN DOTS-245 */
        FcitxKey_braille_dots_1245          = 0x100281b,  /* U+281b BRAILLE PATTERN DOTS-1245 */
        FcitxKey_braille_dots_345           = 0x100281c,  /* U+281c BRAILLE PATTERN DOTS-345 */
        FcitxKey_braille_dots_1345          = 0x100281d,  /* U+281d BRAILLE PATTERN DOTS-1345 */
        FcitxKey_braille_dots_2345          = 0x100281e,  /* U+281e BRAILLE PATTERN DOTS-2345 */
        FcitxKey_braille_dots_12345         = 0x100281f,  /* U+281f BRAILLE PATTERN DOTS-12345 */
        FcitxKey_braille_dots_6             = 0x1002820,  /* U+2820 BRAILLE PATTERN DOTS-6 */
        FcitxKey_braille_dots_16            = 0x1002821,  /* U+2821 BRAILLE PATTERN DOTS-16 */
        FcitxKey_braille_dots_26            = 0x1002822,  /* U+2822 BRAILLE PATTERN DOTS-26 */
        FcitxKey_braille_dots_126           = 0x1002823,  /* U+2823 BRAILLE PATTERN DOTS-126 */
        FcitxKey_braille_dots_36            = 0x1002824,  /* U+2824 BRAILLE PATTERN DOTS-36 */
        FcitxKey_braille_dots_136           = 0x1002825,  /* U+2825 BRAILLE PATTERN DOTS-136 */
        FcitxKey_braille_dots_236           = 0x1002826,  /* U+2826 BRAILLE PATTERN DOTS-236 */
        FcitxKey_braille_dots_1236          = 0x1002827,  /* U+2827 BRAILLE PATTERN DOTS-1236 */
        FcitxKey_braille_dots_46            = 0x1002828,  /* U+2828 BRAILLE PATTERN DOTS-46 */
        FcitxKey_braille_dots_146           = 0x1002829,  /* U+2829 BRAILLE PATTERN DOTS-146 */
        FcitxKey_braille_dots_246           = 0x100282a,  /* U+282a BRAILLE PATTERN DOTS-246 */
        FcitxKey_braille_dots_1246          = 0x100282b,  /* U+282b BRAILLE PATTERN DOTS-1246 */
        FcitxKey_braille_dots_346           = 0x100282c,  /* U+282c BRAILLE PATTERN DOTS-346 */
        FcitxKey_braille_dots_1346          = 0x100282d,  /* U+282d BRAILLE PATTERN DOTS-1346 */
        FcitxKey_braille_dots_2346          = 0x100282e,  /* U+282e BRAILLE PATTERN DOTS-2346 */
        FcitxKey_braille_dots_12346         = 0x100282f,  /* U+282f BRAILLE PATTERN DOTS-12346 */
        FcitxKey_braille_dots_56            = 0x1002830,  /* U+2830 BRAILLE PATTERN DOTS-56 */
        FcitxKey_braille_dots_156           = 0x1002831,  /* U+2831 BRAILLE PATTERN DOTS-156 */
        FcitxKey_braille_dots_256           = 0x1002832,  /* U+2832 BRAILLE PATTERN DOTS-256 */
        FcitxKey_braille_dots_1256          = 0x1002833,  /* U+2833 BRAILLE PATTERN DOTS-1256 */
        FcitxKey_braille_dots_356           = 0x1002834,  /* U+2834 BRAILLE PATTERN DOTS-356 */
        FcitxKey_braille_dots_1356          = 0x1002835,  /* U+2835 BRAILLE PATTERN DOTS-1356 */
        FcitxKey_braille_dots_2356          = 0x1002836,  /* U+2836 BRAILLE PATTERN DOTS-2356 */
        FcitxKey_braille_dots_12356         = 0x1002837,  /* U+2837 BRAILLE PATTERN DOTS-12356 */
        FcitxKey_braille_dots_456           = 0x1002838,  /* U+2838 BRAILLE PATTERN DOTS-456 */
        FcitxKey_braille_dots_1456          = 0x1002839,  /* U+2839 BRAILLE PATTERN DOTS-1456 */
        FcitxKey_braille_dots_2456          = 0x100283a,  /* U+283a BRAILLE PATTERN DOTS-2456 */
        FcitxKey_braille_dots_12456         = 0x100283b,  /* U+283b BRAILLE PATTERN DOTS-12456 */
        FcitxKey_braille_dots_3456          = 0x100283c,  /* U+283c BRAILLE PATTERN DOTS-3456 */
        FcitxKey_braille_dots_13456         = 0x100283d,  /* U+283d BRAILLE PATTERN DOTS-13456 */
        FcitxKey_braille_dots_23456         = 0x100283e,  /* U+283e BRAILLE PATTERN DOTS-23456 */
        FcitxKey_braille_dots_123456        = 0x100283f,  /* U+283f BRAILLE PATTERN DOTS-123456 */
        FcitxKey_braille_dots_7             = 0x1002840,  /* U+2840 BRAILLE PATTERN DOTS-7 */
        FcitxKey_braille_dots_17            = 0x1002841,  /* U+2841 BRAILLE PATTERN DOTS-17 */
        FcitxKey_braille_dots_27            = 0x1002842,  /* U+2842 BRAILLE PATTERN DOTS-27 */
        FcitxKey_braille_dots_127           = 0x1002843,  /* U+2843 BRAILLE PATTERN DOTS-127 */
        FcitxKey_braille_dots_37            = 0x1002844,  /* U+2844 BRAILLE PATTERN DOTS-37 */
        FcitxKey_braille_dots_137           = 0x1002845,  /* U+2845 BRAILLE PATTERN DOTS-137 */
        FcitxKey_braille_dots_237           = 0x1002846,  /* U+2846 BRAILLE PATTERN DOTS-237 */
        FcitxKey_braille_dots_1237          = 0x1002847,  /* U+2847 BRAILLE PATTERN DOTS-1237 */
        FcitxKey_braille_dots_47            = 0x1002848,  /* U+2848 BRAILLE PATTERN DOTS-47 */
        FcitxKey_braille_dots_147           = 0x1002849,  /* U+2849 BRAILLE PATTERN DOTS-147 */
        FcitxKey_braille_dots_247           = 0x100284a,  /* U+284a BRAILLE PATTERN DOTS-247 */
        FcitxKey_braille_dots_1247          = 0x100284b,  /* U+284b BRAILLE PATTERN DOTS-1247 */
        FcitxKey_braille_dots_347           = 0x100284c,  /* U+284c BRAILLE PATTERN DOTS-347 */
        FcitxKey_braille_dots_1347          = 0x100284d,  /* U+284d BRAILLE PATTERN DOTS-1347 */
        FcitxKey_braille_dots_2347          = 0x100284e,  /* U+284e BRAILLE PATTERN DOTS-2347 */
        FcitxKey_braille_dots_12347         = 0x100284f,  /* U+284f BRAILLE PATTERN DOTS-12347 */
        FcitxKey_braille_dots_57            = 0x1002850,  /* U+2850 BRAILLE PATTERN DOTS-57 */
        FcitxKey_braille_dots_157           = 0x1002851,  /* U+2851 BRAILLE PATTERN DOTS-157 */
        FcitxKey_braille_dots_257           = 0x1002852,  /* U+2852 BRAILLE PATTERN DOTS-257 */
        FcitxKey_braille_dots_1257          = 0x1002853,  /* U+2853 BRAILLE PATTERN DOTS-1257 */
        FcitxKey_braille_dots_357           = 0x1002854,  /* U+2854 BRAILLE PATTERN DOTS-357 */
        FcitxKey_braille_dots_1357          = 0x1002855,  /* U+2855 BRAILLE PATTERN DOTS-1357 */
        FcitxKey_braille_dots_2357          = 0x1002856,  /* U+2856 BRAILLE PATTERN DOTS-2357 */
        FcitxKey_braille_dots_12357         = 0x1002857,  /* U+2857 BRAILLE PATTERN DOTS-12357 */
        FcitxKey_braille_dots_457           = 0x1002858,  /* U+2858 BRAILLE PATTERN DOTS-457 */
        FcitxKey_braille_dots_1457          = 0x1002859,  /* U+2859 BRAILLE PATTERN DOTS-1457 */
        FcitxKey_braille_dots_2457          = 0x100285a,  /* U+285a BRAILLE PATTERN DOTS-2457 */
        FcitxKey_braille_dots_12457         = 0x100285b,  /* U+285b BRAILLE PATTERN DOTS-12457 */
        FcitxKey_braille_dots_3457          = 0x100285c,  /* U+285c BRAILLE PATTERN DOTS-3457 */
        FcitxKey_braille_dots_13457         = 0x100285d,  /* U+285d BRAILLE PATTERN DOTS-13457 */
        FcitxKey_braille_dots_23457         = 0x100285e,  /* U+285e BRAILLE PATTERN DOTS-23457 */
        FcitxKey_braille_dots_123457        = 0x100285f,  /* U+285f BRAILLE PATTERN DOTS-123457 */
        FcitxKey_braille_dots_67            = 0x1002860,  /* U+2860 BRAILLE PATTERN DOTS-67 */
        FcitxKey_braille_dots_167           = 0x1002861,  /* U+2861 BRAILLE PATTERN DOTS-167 */
        FcitxKey_braille_dots_267           = 0x1002862,  /* U+2862 BRAILLE PATTERN DOTS-267 */
        FcitxKey_braille_dots_1267          = 0x1002863,  /* U+2863 BRAILLE PATTERN DOTS-1267 */
        FcitxKey_braille_dots_367           = 0x1002864,  /* U+2864 BRAILLE PATTERN DOTS-367 */
        FcitxKey_braille_dots_1367          = 0x1002865,  /* U+2865 BRAILLE PATTERN DOTS-1367 */
        FcitxKey_braille_dots_2367          = 0x1002866,  /* U+2866 BRAILLE PATTERN DOTS-2367 */
        FcitxKey_braille_dots_12367         = 0x1002867,  /* U+2867 BRAILLE PATTERN DOTS-12367 */
        FcitxKey_braille_dots_467           = 0x1002868,  /* U+2868 BRAILLE PATTERN DOTS-467 */
        FcitxKey_braille_dots_1467          = 0x1002869,  /* U+2869 BRAILLE PATTERN DOTS-1467 */
        FcitxKey_braille_dots_2467          = 0x100286a,  /* U+286a BRAILLE PATTERN DOTS-2467 */
        FcitxKey_braille_dots_12467         = 0x100286b,  /* U+286b BRAILLE PATTERN DOTS-12467 */
        FcitxKey_braille_dots_3467          = 0x100286c,  /* U+286c BRAILLE PATTERN DOTS-3467 */
        FcitxKey_braille_dots_13467         = 0x100286d,  /* U+286d BRAILLE PATTERN DOTS-13467 */
        FcitxKey_braille_dots_23467         = 0x100286e,  /* U+286e BRAILLE PATTERN DOTS-23467 */
        FcitxKey_braille_dots_123467        = 0x100286f,  /* U+286f BRAILLE PATTERN DOTS-123467 */
        FcitxKey_braille_dots_567           = 0x1002870,  /* U+2870 BRAILLE PATTERN DOTS-567 */
        FcitxKey_braille_dots_1567          = 0x1002871,  /* U+2871 BRAILLE PATTERN DOTS-1567 */
        FcitxKey_braille_dots_2567          = 0x1002872,  /* U+2872 BRAILLE PATTERN DOTS-2567 */
        FcitxKey_braille_dots_12567         = 0x1002873,  /* U+2873 BRAILLE PATTERN DOTS-12567 */
        FcitxKey_braille_dots_3567          = 0x1002874,  /* U+2874 BRAILLE PATTERN DOTS-3567 */
        FcitxKey_braille_dots_13567         = 0x1002875,  /* U+2875 BRAILLE PATTERN DOTS-13567 */
        FcitxKey_braille_dots_23567         = 0x1002876,  /* U+2876 BRAILLE PATTERN DOTS-23567 */
        FcitxKey_braille_dots_123567        = 0x1002877,  /* U+2877 BRAILLE PATTERN DOTS-123567 */
        FcitxKey_braille_dots_4567          = 0x1002878,  /* U+2878 BRAILLE PATTERN DOTS-4567 */
        FcitxKey_braille_dots_14567         = 0x1002879,  /* U+2879 BRAILLE PATTERN DOTS-14567 */
        FcitxKey_braille_dots_24567         = 0x100287a,  /* U+287a BRAILLE PATTERN DOTS-24567 */
        FcitxKey_braille_dots_124567        = 0x100287b,  /* U+287b BRAILLE PATTERN DOTS-124567 */
        FcitxKey_braille_dots_34567         = 0x100287c,  /* U+287c BRAILLE PATTERN DOTS-34567 */
        FcitxKey_braille_dots_134567        = 0x100287d,  /* U+287d BRAILLE PATTERN DOTS-134567 */
        FcitxKey_braille_dots_234567        = 0x100287e,  /* U+287e BRAILLE PATTERN DOTS-234567 */
        FcitxKey_braille_dots_1234567       = 0x100287f,  /* U+287f BRAILLE PATTERN DOTS-1234567 */
        FcitxKey_braille_dots_8             = 0x1002880,  /* U+2880 BRAILLE PATTERN DOTS-8 */
        FcitxKey_braille_dots_18            = 0x1002881,  /* U+2881 BRAILLE PATTERN DOTS-18 */
        FcitxKey_braille_dots_28            = 0x1002882,  /* U+2882 BRAILLE PATTERN DOTS-28 */
        FcitxKey_braille_dots_128           = 0x1002883,  /* U+2883 BRAILLE PATTERN DOTS-128 */
        FcitxKey_braille_dots_38            = 0x1002884,  /* U+2884 BRAILLE PATTERN DOTS-38 */
        FcitxKey_braille_dots_138           = 0x1002885,  /* U+2885 BRAILLE PATTERN DOTS-138 */
        FcitxKey_braille_dots_238           = 0x1002886,  /* U+2886 BRAILLE PATTERN DOTS-238 */
        FcitxKey_braille_dots_1238          = 0x1002887,  /* U+2887 BRAILLE PATTERN DOTS-1238 */
        FcitxKey_braille_dots_48            = 0x1002888,  /* U+2888 BRAILLE PATTERN DOTS-48 */
        FcitxKey_braille_dots_148           = 0x1002889,  /* U+2889 BRAILLE PATTERN DOTS-148 */
        FcitxKey_braille_dots_248           = 0x100288a,  /* U+288a BRAILLE PATTERN DOTS-248 */
        FcitxKey_braille_dots_1248          = 0x100288b,  /* U+288b BRAILLE PATTERN DOTS-1248 */
        FcitxKey_braille_dots_348           = 0x100288c,  /* U+288c BRAILLE PATTERN DOTS-348 */
        FcitxKey_braille_dots_1348          = 0x100288d,  /* U+288d BRAILLE PATTERN DOTS-1348 */
        FcitxKey_braille_dots_2348          = 0x100288e,  /* U+288e BRAILLE PATTERN DOTS-2348 */
        FcitxKey_braille_dots_12348         = 0x100288f,  /* U+288f BRAILLE PATTERN DOTS-12348 */
        FcitxKey_braille_dots_58            = 0x1002890,  /* U+2890 BRAILLE PATTERN DOTS-58 */
        FcitxKey_braille_dots_158           = 0x1002891,  /* U+2891 BRAILLE PATTERN DOTS-158 */
        FcitxKey_braille_dots_258           = 0x1002892,  /* U+2892 BRAILLE PATTERN DOTS-258 */
        FcitxKey_braille_dots_1258          = 0x1002893,  /* U+2893 BRAILLE PATTERN DOTS-1258 */
        FcitxKey_braille_dots_358           = 0x1002894,  /* U+2894 BRAILLE PATTERN DOTS-358 */
        FcitxKey_braille_dots_1358          = 0x1002895,  /* U+2895 BRAILLE PATTERN DOTS-1358 */
        FcitxKey_braille_dots_2358          = 0x1002896,  /* U+2896 BRAILLE PATTERN DOTS-2358 */
        FcitxKey_braille_dots_12358         = 0x1002897,  /* U+2897 BRAILLE PATTERN DOTS-12358 */
        FcitxKey_braille_dots_458           = 0x1002898,  /* U+2898 BRAILLE PATTERN DOTS-458 */
        FcitxKey_braille_dots_1458          = 0x1002899,  /* U+2899 BRAILLE PATTERN DOTS-1458 */
        FcitxKey_braille_dots_2458          = 0x100289a,  /* U+289a BRAILLE PATTERN DOTS-2458 */
        FcitxKey_braille_dots_12458         = 0x100289b,  /* U+289b BRAILLE PATTERN DOTS-12458 */
        FcitxKey_braille_dots_3458          = 0x100289c,  /* U+289c BRAILLE PATTERN DOTS-3458 */
        FcitxKey_braille_dots_13458         = 0x100289d,  /* U+289d BRAILLE PATTERN DOTS-13458 */
        FcitxKey_braille_dots_23458         = 0x100289e,  /* U+289e BRAILLE PATTERN DOTS-23458 */
        FcitxKey_braille_dots_123458        = 0x100289f,  /* U+289f BRAILLE PATTERN DOTS-123458 */
        FcitxKey_braille_dots_68            = 0x10028a0,  /* U+28a0 BRAILLE PATTERN DOTS-68 */
        FcitxKey_braille_dots_168           = 0x10028a1,  /* U+28a1 BRAILLE PATTERN DOTS-168 */
        FcitxKey_braille_dots_268           = 0x10028a2,  /* U+28a2 BRAILLE PATTERN DOTS-268 */
        FcitxKey_braille_dots_1268          = 0x10028a3,  /* U+28a3 BRAILLE PATTERN DOTS-1268 */
        FcitxKey_braille_dots_368           = 0x10028a4,  /* U+28a4 BRAILLE PATTERN DOTS-368 */
        FcitxKey_braille_dots_1368          = 0x10028a5,  /* U+28a5 BRAILLE PATTERN DOTS-1368 */
        FcitxKey_braille_dots_2368          = 0x10028a6,  /* U+28a6 BRAILLE PATTERN DOTS-2368 */
        FcitxKey_braille_dots_12368         = 0x10028a7,  /* U+28a7 BRAILLE PATTERN DOTS-12368 */
        FcitxKey_braille_dots_468           = 0x10028a8,  /* U+28a8 BRAILLE PATTERN DOTS-468 */
        FcitxKey_braille_dots_1468          = 0x10028a9,  /* U+28a9 BRAILLE PATTERN DOTS-1468 */
        FcitxKey_braille_dots_2468          = 0x10028aa,  /* U+28aa BRAILLE PATTERN DOTS-2468 */
        FcitxKey_braille_dots_12468         = 0x10028ab,  /* U+28ab BRAILLE PATTERN DOTS-12468 */
        FcitxKey_braille_dots_3468          = 0x10028ac,  /* U+28ac BRAILLE PATTERN DOTS-3468 */
        FcitxKey_braille_dots_13468         = 0x10028ad,  /* U+28ad BRAILLE PATTERN DOTS-13468 */
        FcitxKey_braille_dots_23468         = 0x10028ae,  /* U+28ae BRAILLE PATTERN DOTS-23468 */
        FcitxKey_braille_dots_123468        = 0x10028af,  /* U+28af BRAILLE PATTERN DOTS-123468 */
        FcitxKey_braille_dots_568           = 0x10028b0,  /* U+28b0 BRAILLE PATTERN DOTS-568 */
        FcitxKey_braille_dots_1568          = 0x10028b1,  /* U+28b1 BRAILLE PATTERN DOTS-1568 */
        FcitxKey_braille_dots_2568          = 0x10028b2,  /* U+28b2 BRAILLE PATTERN DOTS-2568 */
        FcitxKey_braille_dots_12568         = 0x10028b3,  /* U+28b3 BRAILLE PATTERN DOTS-12568 */
        FcitxKey_braille_dots_3568          = 0x10028b4,  /* U+28b4 BRAILLE PATTERN DOTS-3568 */
        FcitxKey_braille_dots_13568         = 0x10028b5,  /* U+28b5 BRAILLE PATTERN DOTS-13568 */
        FcitxKey_braille_dots_23568         = 0x10028b6,  /* U+28b6 BRAILLE PATTERN DOTS-23568 */
        FcitxKey_braille_dots_123568        = 0x10028b7,  /* U+28b7 BRAILLE PATTERN DOTS-123568 */
        FcitxKey_braille_dots_4568          = 0x10028b8,  /* U+28b8 BRAILLE PATTERN DOTS-4568 */
        FcitxKey_braille_dots_14568         = 0x10028b9,  /* U+28b9 BRAILLE PATTERN DOTS-14568 */
        FcitxKey_braille_dots_24568         = 0x10028ba,  /* U+28ba BRAILLE PATTERN DOTS-24568 */
        FcitxKey_braille_dots_124568        = 0x10028bb,  /* U+28bb BRAILLE PATTERN DOTS-124568 */
        FcitxKey_braille_dots_34568         = 0x10028bc,  /* U+28bc BRAILLE PATTERN DOTS-34568 */
        FcitxKey_braille_dots_134568        = 0x10028bd,  /* U+28bd BRAILLE PATTERN DOTS-134568 */
        FcitxKey_braille_dots_234568        = 0x10028be,  /* U+28be BRAILLE PATTERN DOTS-234568 */
        FcitxKey_braille_dots_1234568       = 0x10028bf,  /* U+28bf BRAILLE PATTERN DOTS-1234568 */
        FcitxKey_braille_dots_78            = 0x10028c0,  /* U+28c0 BRAILLE PATTERN DOTS-78 */
        FcitxKey_braille_dots_178           = 0x10028c1,  /* U+28c1 BRAILLE PATTERN DOTS-178 */
        FcitxKey_braille_dots_278           = 0x10028c2,  /* U+28c2 BRAILLE PATTERN DOTS-278 */
        FcitxKey_braille_dots_1278          = 0x10028c3,  /* U+28c3 BRAILLE PATTERN DOTS-1278 */
        FcitxKey_braille_dots_378           = 0x10028c4,  /* U+28c4 BRAILLE PATTERN DOTS-378 */
        FcitxKey_braille_dots_1378          = 0x10028c5,  /* U+28c5 BRAILLE PATTERN DOTS-1378 */
        FcitxKey_braille_dots_2378          = 0x10028c6,  /* U+28c6 BRAILLE PATTERN DOTS-2378 */
        FcitxKey_braille_dots_12378         = 0x10028c7,  /* U+28c7 BRAILLE PATTERN DOTS-12378 */
        FcitxKey_braille_dots_478           = 0x10028c8,  /* U+28c8 BRAILLE PATTERN DOTS-478 */
        FcitxKey_braille_dots_1478          = 0x10028c9,  /* U+28c9 BRAILLE PATTERN DOTS-1478 */
        FcitxKey_braille_dots_2478          = 0x10028ca,  /* U+28ca BRAILLE PATTERN DOTS-2478 */
        FcitxKey_braille_dots_12478         = 0x10028cb,  /* U+28cb BRAILLE PATTERN DOTS-12478 */
        FcitxKey_braille_dots_3478          = 0x10028cc,  /* U+28cc BRAILLE PATTERN DOTS-3478 */
        FcitxKey_braille_dots_13478         = 0x10028cd,  /* U+28cd BRAILLE PATTERN DOTS-13478 */
        FcitxKey_braille_dots_23478         = 0x10028ce,  /* U+28ce BRAILLE PATTERN DOTS-23478 */
        FcitxKey_braille_dots_123478        = 0x10028cf,  /* U+28cf BRAILLE PATTERN DOTS-123478 */
        FcitxKey_braille_dots_578           = 0x10028d0,  /* U+28d0 BRAILLE PATTERN DOTS-578 */
        FcitxKey_braille_dots_1578          = 0x10028d1,  /* U+28d1 BRAILLE PATTERN DOTS-1578 */
        FcitxKey_braille_dots_2578          = 0x10028d2,  /* U+28d2 BRAILLE PATTERN DOTS-2578 */
        FcitxKey_braille_dots_12578         = 0x10028d3,  /* U+28d3 BRAILLE PATTERN DOTS-12578 */
        FcitxKey_braille_dots_3578          = 0x10028d4,  /* U+28d4 BRAILLE PATTERN DOTS-3578 */
        FcitxKey_braille_dots_13578         = 0x10028d5,  /* U+28d5 BRAILLE PATTERN DOTS-13578 */
        FcitxKey_braille_dots_23578         = 0x10028d6,  /* U+28d6 BRAILLE PATTERN DOTS-23578 */
        FcitxKey_braille_dots_123578        = 0x10028d7,  /* U+28d7 BRAILLE PATTERN DOTS-123578 */
        FcitxKey_braille_dots_4578          = 0x10028d8,  /* U+28d8 BRAILLE PATTERN DOTS-4578 */
        FcitxKey_braille_dots_14578         = 0x10028d9,  /* U+28d9 BRAILLE PATTERN DOTS-14578 */
        FcitxKey_braille_dots_24578         = 0x10028da,  /* U+28da BRAILLE PATTERN DOTS-24578 */
        FcitxKey_braille_dots_124578        = 0x10028db,  /* U+28db BRAILLE PATTERN DOTS-124578 */
        FcitxKey_braille_dots_34578         = 0x10028dc,  /* U+28dc BRAILLE PATTERN DOTS-34578 */
        FcitxKey_braille_dots_134578        = 0x10028dd,  /* U+28dd BRAILLE PATTERN DOTS-134578 */
        FcitxKey_braille_dots_234578        = 0x10028de,  /* U+28de BRAILLE PATTERN DOTS-234578 */
        FcitxKey_braille_dots_1234578       = 0x10028df,  /* U+28df BRAILLE PATTERN DOTS-1234578 */
        FcitxKey_braille_dots_678           = 0x10028e0,  /* U+28e0 BRAILLE PATTERN DOTS-678 */
        FcitxKey_braille_dots_1678          = 0x10028e1,  /* U+28e1 BRAILLE PATTERN DOTS-1678 */
        FcitxKey_braille_dots_2678          = 0x10028e2,  /* U+28e2 BRAILLE PATTERN DOTS-2678 */
        FcitxKey_braille_dots_12678         = 0x10028e3,  /* U+28e3 BRAILLE PATTERN DOTS-12678 */
        FcitxKey_braille_dots_3678          = 0x10028e4,  /* U+28e4 BRAILLE PATTERN DOTS-3678 */
        FcitxKey_braille_dots_13678         = 0x10028e5,  /* U+28e5 BRAILLE PATTERN DOTS-13678 */
        FcitxKey_braille_dots_23678         = 0x10028e6,  /* U+28e6 BRAILLE PATTERN DOTS-23678 */
        FcitxKey_braille_dots_123678        = 0x10028e7,  /* U+28e7 BRAILLE PATTERN DOTS-123678 */
        FcitxKey_braille_dots_4678          = 0x10028e8,  /* U+28e8 BRAILLE PATTERN DOTS-4678 */
        FcitxKey_braille_dots_14678         = 0x10028e9,  /* U+28e9 BRAILLE PATTERN DOTS-14678 */
        FcitxKey_braille_dots_24678         = 0x10028ea,  /* U+28ea BRAILLE PATTERN DOTS-24678 */
        FcitxKey_braille_dots_124678        = 0x10028eb,  /* U+28eb BRAILLE PATTERN DOTS-124678 */
        FcitxKey_braille_dots_34678         = 0x10028ec,  /* U+28ec BRAILLE PATTERN DOTS-34678 */
        FcitxKey_braille_dots_134678        = 0x10028ed,  /* U+28ed BRAILLE PATTERN DOTS-134678 */
        FcitxKey_braille_dots_234678        = 0x10028ee,  /* U+28ee BRAILLE PATTERN DOTS-234678 */
        FcitxKey_braille_dots_1234678       = 0x10028ef,  /* U+28ef BRAILLE PATTERN DOTS-1234678 */
        FcitxKey_braille_dots_5678          = 0x10028f0,  /* U+28f0 BRAILLE PATTERN DOTS-5678 */
        FcitxKey_braille_dots_15678         = 0x10028f1,  /* U+28f1 BRAILLE PATTERN DOTS-15678 */
        FcitxKey_braille_dots_25678         = 0x10028f2,  /* U+28f2 BRAILLE PATTERN DOTS-25678 */
        FcitxKey_braille_dots_125678        = 0x10028f3,  /* U+28f3 BRAILLE PATTERN DOTS-125678 */
        FcitxKey_braille_dots_35678         = 0x10028f4,  /* U+28f4 BRAILLE PATTERN DOTS-35678 */
        FcitxKey_braille_dots_135678        = 0x10028f5,  /* U+28f5 BRAILLE PATTERN DOTS-135678 */
        FcitxKey_braille_dots_235678        = 0x10028f6,  /* U+28f6 BRAILLE PATTERN DOTS-235678 */
        FcitxKey_braille_dots_1235678       = 0x10028f7,  /* U+28f7 BRAILLE PATTERN DOTS-1235678 */
        FcitxKey_braille_dots_45678         = 0x10028f8,  /* U+28f8 BRAILLE PATTERN DOTS-45678 */
        FcitxKey_braille_dots_145678        = 0x10028f9,  /* U+28f9 BRAILLE PATTERN DOTS-145678 */
        FcitxKey_braille_dots_245678        = 0x10028fa,  /* U+28fa BRAILLE PATTERN DOTS-245678 */
        FcitxKey_braille_dots_1245678       = 0x10028fb,  /* U+28fb BRAILLE PATTERN DOTS-1245678 */
        FcitxKey_braille_dots_345678        = 0x10028fc,  /* U+28fc BRAILLE PATTERN DOTS-345678 */
        FcitxKey_braille_dots_1345678       = 0x10028fd,  /* U+28fd BRAILLE PATTERN DOTS-1345678 */
        FcitxKey_braille_dots_2345678       = 0x10028fe,  /* U+28fe BRAILLE PATTERN DOTS-2345678 */
        FcitxKey_braille_dots_12345678      = 0x10028ff,  /* U+28ff BRAILLE PATTERN DOTS-12345678 */


        /*
         * Sinhala (http://unicode.org/charts/PDF/U0D80.pdf)
         * http://www.nongnu.org/sinhala/doc/transliteration/sinhala-transliteration_6.html
         */


        FcitxKey_Sinh_ng            = 0x1000d82,  /* U+0D82 SINHALA ANUSVARAYA */
        FcitxKey_Sinh_h2            = 0x1000d83,  /* U+0D83 SINHALA VISARGAYA */
        FcitxKey_Sinh_a             = 0x1000d85,  /* U+0D85 SINHALA AYANNA */
        FcitxKey_Sinh_aa            = 0x1000d86,  /* U+0D86 SINHALA AAYANNA */
        FcitxKey_Sinh_ae            = 0x1000d87,  /* U+0D87 SINHALA AEYANNA */
        FcitxKey_Sinh_aee           = 0x1000d88,  /* U+0D88 SINHALA AEEYANNA */
        FcitxKey_Sinh_i             = 0x1000d89,  /* U+0D89 SINHALA IYANNA */
        FcitxKey_Sinh_ii            = 0x1000d8a,  /* U+0D8A SINHALA IIYANNA */
        FcitxKey_Sinh_u             = 0x1000d8b,  /* U+0D8B SINHALA UYANNA */
        FcitxKey_Sinh_uu            = 0x1000d8c,  /* U+0D8C SINHALA UUYANNA */
        FcitxKey_Sinh_ri            = 0x1000d8d,  /* U+0D8D SINHALA IRUYANNA */
        FcitxKey_Sinh_rii           = 0x1000d8e,  /* U+0D8E SINHALA IRUUYANNA */
        FcitxKey_Sinh_lu            = 0x1000d8f,  /* U+0D8F SINHALA ILUYANNA */
        FcitxKey_Sinh_luu           = 0x1000d90,  /* U+0D90 SINHALA ILUUYANNA */
        FcitxKey_Sinh_e             = 0x1000d91,  /* U+0D91 SINHALA EYANNA */
        FcitxKey_Sinh_ee            = 0x1000d92,  /* U+0D92 SINHALA EEYANNA */
        FcitxKey_Sinh_ai            = 0x1000d93,  /* U+0D93 SINHALA AIYANNA */
        FcitxKey_Sinh_o             = 0x1000d94,  /* U+0D94 SINHALA OYANNA */
        FcitxKey_Sinh_oo            = 0x1000d95,  /* U+0D95 SINHALA OOYANNA */
        FcitxKey_Sinh_au            = 0x1000d96,  /* U+0D96 SINHALA AUYANNA */
        FcitxKey_Sinh_ka            = 0x1000d9a,  /* U+0D9A SINHALA KAYANNA */
        FcitxKey_Sinh_kha           = 0x1000d9b,  /* U+0D9B SINHALA MAHA. KAYANNA */
        FcitxKey_Sinh_ga            = 0x1000d9c,  /* U+0D9C SINHALA GAYANNA */
        FcitxKey_Sinh_gha           = 0x1000d9d,  /* U+0D9D SINHALA MAHA. GAYANNA */
        FcitxKey_Sinh_ng2           = 0x1000d9e,  /* U+0D9E SINHALA KANTAJA NAASIKYAYA */
        FcitxKey_Sinh_nga           = 0x1000d9f,  /* U+0D9F SINHALA SANYAKA GAYANNA */
        FcitxKey_Sinh_ca            = 0x1000da0,  /* U+0DA0 SINHALA CAYANNA */
        FcitxKey_Sinh_cha           = 0x1000da1,  /* U+0DA1 SINHALA MAHA. CAYANNA */
        FcitxKey_Sinh_ja            = 0x1000da2,  /* U+0DA2 SINHALA JAYANNA */
        FcitxKey_Sinh_jha           = 0x1000da3,  /* U+0DA3 SINHALA MAHA. JAYANNA */
        FcitxKey_Sinh_nya           = 0x1000da4,  /* U+0DA4 SINHALA TAALUJA NAASIKYAYA */
        FcitxKey_Sinh_jnya          = 0x1000da5,  /* U+0DA5 SINHALA TAALUJA SANYOOGA NAASIKYAYA */
        FcitxKey_Sinh_nja           = 0x1000da6,  /* U+0DA6 SINHALA SANYAKA JAYANNA */
        FcitxKey_Sinh_tta           = 0x1000da7,  /* U+0DA7 SINHALA TTAYANNA */
        FcitxKey_Sinh_ttha          = 0x1000da8,  /* U+0DA8 SINHALA MAHA. TTAYANNA */
        FcitxKey_Sinh_dda           = 0x1000da9,  /* U+0DA9 SINHALA DDAYANNA */
        FcitxKey_Sinh_ddha          = 0x1000daa,  /* U+0DAA SINHALA MAHA. DDAYANNA */
        FcitxKey_Sinh_nna           = 0x1000dab,  /* U+0DAB SINHALA MUURDHAJA NAYANNA */
        FcitxKey_Sinh_ndda          = 0x1000dac,  /* U+0DAC SINHALA SANYAKA DDAYANNA */
        FcitxKey_Sinh_tha           = 0x1000dad,  /* U+0DAD SINHALA TAYANNA */
        FcitxKey_Sinh_thha          = 0x1000dae,  /* U+0DAE SINHALA MAHA. TAYANNA */
        FcitxKey_Sinh_dha           = 0x1000daf,  /* U+0DAF SINHALA DAYANNA */
        FcitxKey_Sinh_dhha          = 0x1000db0,  /* U+0DB0 SINHALA MAHA. DAYANNA */
        FcitxKey_Sinh_na            = 0x1000db1,  /* U+0DB1 SINHALA DANTAJA NAYANNA */
        FcitxKey_Sinh_ndha          = 0x1000db3,  /* U+0DB3 SINHALA SANYAKA DAYANNA */
        FcitxKey_Sinh_pa            = 0x1000db4,  /* U+0DB4 SINHALA PAYANNA */
        FcitxKey_Sinh_pha           = 0x1000db5,  /* U+0DB5 SINHALA MAHA. PAYANNA */
        FcitxKey_Sinh_ba            = 0x1000db6,  /* U+0DB6 SINHALA BAYANNA */
        FcitxKey_Sinh_bha           = 0x1000db7,  /* U+0DB7 SINHALA MAHA. BAYANNA */
        FcitxKey_Sinh_ma            = 0x1000db8,  /* U+0DB8 SINHALA MAYANNA */
        FcitxKey_Sinh_mba           = 0x1000db9,  /* U+0DB9 SINHALA AMBA BAYANNA */
        FcitxKey_Sinh_ya            = 0x1000dba,  /* U+0DBA SINHALA YAYANNA */
        FcitxKey_Sinh_ra            = 0x1000dbb,  /* U+0DBB SINHALA RAYANNA */
        FcitxKey_Sinh_la            = 0x1000dbd,  /* U+0DBD SINHALA DANTAJA LAYANNA */
        FcitxKey_Sinh_va            = 0x1000dc0,  /* U+0DC0 SINHALA VAYANNA */
        FcitxKey_Sinh_sha           = 0x1000dc1,  /* U+0DC1 SINHALA TAALUJA SAYANNA */
        FcitxKey_Sinh_ssha          = 0x1000dc2,  /* U+0DC2 SINHALA MUURDHAJA SAYANNA */
        FcitxKey_Sinh_sa            = 0x1000dc3,  /* U+0DC3 SINHALA DANTAJA SAYANNA */
        FcitxKey_Sinh_ha            = 0x1000dc4,  /* U+0DC4 SINHALA HAYANNA */
        FcitxKey_Sinh_lla           = 0x1000dc5,  /* U+0DC5 SINHALA MUURDHAJA LAYANNA */
        FcitxKey_Sinh_fa            = 0x1000dc6,  /* U+0DC6 SINHALA FAYANNA */
        FcitxKey_Sinh_al            = 0x1000dca,  /* U+0DCA SINHALA AL-LAKUNA */
        FcitxKey_Sinh_aa2           = 0x1000dcf,  /* U+0DCF SINHALA AELA-PILLA */
        FcitxKey_Sinh_ae2           = 0x1000dd0,  /* U+0DD0 SINHALA AEDA-PILLA */
        FcitxKey_Sinh_aee2          = 0x1000dd1,  /* U+0DD1 SINHALA DIGA AEDA-PILLA */
        FcitxKey_Sinh_i2            = 0x1000dd2,  /* U+0DD2 SINHALA IS-PILLA */
        FcitxKey_Sinh_ii2           = 0x1000dd3,  /* U+0DD3 SINHALA DIGA IS-PILLA */
        FcitxKey_Sinh_u2            = 0x1000dd4,  /* U+0DD4 SINHALA PAA-PILLA */
        FcitxKey_Sinh_uu2           = 0x1000dd6,  /* U+0DD6 SINHALA DIGA PAA-PILLA */
        FcitxKey_Sinh_ru2           = 0x1000dd8,  /* U+0DD8 SINHALA GAETTA-PILLA */
        FcitxKey_Sinh_e2            = 0x1000dd9,  /* U+0DD9 SINHALA KOMBUVA */
        FcitxKey_Sinh_ee2           = 0x1000dda,  /* U+0DDA SINHALA DIGA KOMBUVA */
        FcitxKey_Sinh_ai2           = 0x1000ddb,  /* U+0DDB SINHALA KOMBU DEKA */
        FcitxKey_Sinh_o2            = 0x1000ddc,  /* U+0DDC SINHALA KOMBUVA HAA AELA-PILLA*/
        FcitxKey_Sinh_oo2           = 0x1000ddd,  /* U+0DDD SINHALA KOMBUVA HAA DIGA AELA-PILLA*/
        FcitxKey_Sinh_au2           = 0x1000dde,  /* U+0DDE SINHALA KOMBUVA HAA GAYANUKITTA */
        FcitxKey_Sinh_lu2           = 0x1000ddf,  /* U+0DDF SINHALA GAYANUKITTA */
        FcitxKey_Sinh_ruu2          = 0x1000df2,  /* U+0DF2 SINHALA DIGA GAETTA-PILLA */
        FcitxKey_Sinh_luu2          = 0x1000df3,  /* U+0DF3 SINHALA DIGA GAYANUKITTA */
        FcitxKey_Sinh_kunddaliya    = 0x1000df4,  /* U+0DF4 SINHALA KUNDDALIYA */
    } FcitxKeySym;

    /**
     * A fcitx hotkey, define the keysym (keyval) and (state) modifiers key state.
     **/

    typedef struct _FcitxHotkey {
        /**
         * A hotkey string
         **/
        char *desc;
        /**
         * keyval of hotkey
         **/
        FcitxKeySym sym;
        /**
         * state of hotkey
         **/
        int state;
    } FcitxHotkey;

    /**
     * fcitx key state (modifier keys)
     **/
    typedef enum _FcitxKeyState {
        FcitxKeyState_None = 0,
        FcitxKeyState_Shift = 1 << 0,
        FcitxKeyState_CapsLock = 1 << 1,
        FcitxKeyState_Ctrl = 1 << 2,
        FcitxKeyState_Alt = 1 << 3,
        FcitxKeyState_Alt_Shift = FcitxKeyState_Alt | FcitxKeyState_Shift,
        FcitxKeyState_Ctrl_Shift = FcitxKeyState_Ctrl | FcitxKeyState_Shift,
        FcitxKeyState_Ctrl_Alt = FcitxKeyState_Ctrl | FcitxKeyState_Alt,
        FcitxKeyState_Ctrl_Alt_Shift = FcitxKeyState_Ctrl | FcitxKeyState_Alt | FcitxKeyState_Shift,
        FcitxKeyState_NumLock = 1 << 4,
        FcitxKeyState_Super = 1 << 6,
        FcitxKeyState_ScrollLock = 1 << 7,
        FcitxKeyState_MousePressed = 1 << 8,
        FcitxKeyState_HandledMask = 1 << 24,
        FcitxKeyState_IgnoredMask = 1 << 25,
        FcitxKeyState_Super2    = 1 << 26,
        FcitxKeyState_Hyper    = 1 << 27,
        FcitxKeyState_Meta     = 1 << 28,
        FcitxKeyState_UsedMask = 0x5c001fff
    } FcitxKeyState;

    /**
     * Set the hotkey with a string
     *
     * @param strKey key string
     * @param hotkey hotkey array, it should have length 2
     * @return void
     **/
    void FcitxHotkeySetKey(char *strKey, FcitxHotkey * hotkey);

    /**
     * translate the fcitx key to it's own value,
     * like uniform the keypad and the numbers, remove Shift from A-Z
     *
     * @param keysym keyval
     * @param iKeyState state
     * @param outk return of keyval
     * @param outs return of state
     * @return void
     **/
    void FcitxHotkeyGetKey(FcitxKeySym keysym, unsigned int iKeyState, FcitxKeySym* outk, unsigned int* outs);

    /**
     * parse the fcitx key string, like CTRL_SHIFT_A
     *
     * @param strKey key string
     * @param sym return of keyval
     * @param state return of key state
     * @return boolean can be parsed or not
     **/
    boolean FcitxHotkeyParseKey(const char *strKey, FcitxKeySym* sym, int* state);

    /**
     * Get the Fcitx Key String for given keyval and state
     *
     * @param sym keyval
     * @param state state
     * @return char* string like CTRL_SPACE
     **/
    char* FcitxHotkeyGetKeyString(FcitxKeySym sym, unsigned int state);

    /**
     * is hotkey 0-9
     *
     * @param sym keyval
     * @param state state
     * @return boolean
     **/
    boolean FcitxHotkeyIsHotKeyDigit(FcitxKeySym sym, int state);

    /**
     * is hotkey A-Z
     *
     * @param sym keyval
     * @param state state
     * @return boolean
     **/
    boolean FcitxHotkeyIsHotKeyUAZ(FcitxKeySym sym, int state);
    /**
     * is hotkey a-z
     *
     * @param sym keyval
     * @param state keystate
     * @return boolean
     **/
    boolean FcitxHotkeyIsHotKeyLAZ(FcitxKeySym sym, int state);
    /**
     * is hotkey printable
     *
     * @param sym keyval
     * @param state state
     * @return boolean
     **/
    boolean FcitxHotkeyIsHotKeySimple(FcitxKeySym sym, int state);

    /**
     * is hotkey upper case
     *
     * @param sym keyval
     * @param state keystate
     * @return boolean
     **/
    boolean FcitxHotkeyIsHotKeyCapital(FcitxKeySym sym, int state);

    /**
     * hotkey have combine modifier
     *
     * @param sym keyval
     * @param state state
     * @return state is combine modifier or not
     **/
    boolean FcitxHotkeyIsHotKeyModifierCombine(FcitxKeySym sym, int state);

    /**
     * check the key is this hotkey or not
     *
     * @param sym keysym
     * @param state key state
     * @param hotkey hotkey
     * @return boolean
     **/
    boolean FcitxHotkeyIsHotKey(FcitxKeySym sym, int state, const FcitxHotkey * hotkey);

    /**
     * is key will make cursor move, include left, right, home, end, and so on.
     *
     * @param sym keyval
     * @param state state
     * @return boolean
     **/
    boolean FcitxHotkeyIsHotkeyCursorMove(FcitxKeySym sym, int state);

    /**
     * convert key pad key to simple FcitxKeyState_STATE
     *
     * @param sym keyval
     * @return FcitxKeySym
     * @since 4.1.1
     */
    FcitxKeySym FcitxHotkeyPadToMain(FcitxKeySym sym);

    /**
     * @brief free hotkey description
     *
     * @param hotkey hotkey array
     * @return void
     *
     * @since 4.2.3
     **/
    void FcitxHotkeyFree(FcitxHotkey* hotkey);

    /**
     * convert unicode character to keyval
     *
     * If No matching keysym value found, return Unicode value plus 0x01000000
     * (a convention introduced in the UTF-8 work on xterm).
     *
     * @param wc unicode
     * @return FcitxKeySym
     **/
    FcitxKeySym FcitxUnicodeToKeySym (uint32_t wc);

    /**
     * convert keyval to unicode character
     *
     * @param keyval keyval
     * @return unicode
     **/
    uint32_t FcitxKeySymToUnicode (FcitxKeySym keyval);

#ifdef __cplusplus
}

#endif

#endif

// kate: indent-mode cstyle; space-indent on; indent-width 0;
