
--X11/keysym.h

local ffi = require'ffi'
local X = require'xlib_h'

ffi.cdef[[
enum {
	XK_VoidSymbol        = 0xffffff,
	XK_BackSpace         = 0xff08,
	XK_Tab               = 0xff09,
	XK_Linefeed          = 0xff0a,
	XK_Clear             = 0xff0b,
	XK_Return            = 0xff0d,
	XK_Pause             = 0xff13,
	XK_Scroll_Lock       = 0xff14,
	XK_Sys_Req           = 0xff15,
	XK_Escape            = 0xff1b,
	XK_Delete            = 0xffff,
	XK_Multi_key         = 0xff20,
	XK_Codeinput         = 0xff37,
	XK_SingleCandidate   = 0xff3c,
	XK_MultipleCandidate = 0xff3d,
	XK_PreviousCandidate = 0xff3e,
	XK_Kanji             = 0xff21,
	XK_Muhenkan          = 0xff22,
	XK_Henkan_Mode       = 0xff23,
	XK_Henkan            = 0xff23,
	XK_Romaji            = 0xff24,
	XK_Hiragana          = 0xff25,
	XK_Katakana          = 0xff26,
	XK_Hiragana_Katakana = 0xff27,
	XK_Zenkaku           = 0xff28,
	XK_Hankaku           = 0xff29,
	XK_Zenkaku_Hankaku   = 0xff2a,
	XK_Touroku           = 0xff2b,
	XK_Massyo            = 0xff2c,
	XK_Kana_Lock         = 0xff2d,
	XK_Kana_Shift        = 0xff2e,
	XK_Eisu_Shift        = 0xff2f,
	XK_Eisu_toggle       = 0xff30,
	XK_Kanji_Bangou      = 0xff37,
	XK_Zen_Koho          = 0xff3d,
	XK_Mae_Koho          = 0xff3e,
	XK_Home              = 0xff50,
	XK_Left              = 0xff51,
	XK_Up                = 0xff52,
	XK_Right             = 0xff53,
	XK_Down              = 0xff54,
	XK_Prior             = 0xff55,
	XK_Page_Up           = 0xff55,
	XK_Next              = 0xff56,
	XK_Page_Down         = 0xff56,
	XK_End               = 0xff57,
	XK_Begin             = 0xff58,
	XK_Select            = 0xff60,
	XK_Print             = 0xff61,
	XK_Execute           = 0xff62,
	XK_Insert            = 0xff63,
	XK_Undo              = 0xff65,
	XK_Redo              = 0xff66,
	XK_Menu              = 0xff67,
	XK_Find              = 0xff68,
	XK_Cancel            = 0xff69,
	XK_Help              = 0xff6a,
	XK_Break             = 0xff6b,
	XK_Mode_switch       = 0xff7e,
	XK_script_switch     = 0xff7e,
	XK_Num_Lock          = 0xff7f,
	XK_KP_Space          = 0xff80,
	XK_KP_Tab            = 0xff89,
	XK_KP_Enter          = 0xff8d,
	XK_KP_F1             = 0xff91,
	XK_KP_F2             = 0xff92,
	XK_KP_F3             = 0xff93,
	XK_KP_F4             = 0xff94,
	XK_KP_Home           = 0xff95,
	XK_KP_Left           = 0xff96,
	XK_KP_Up             = 0xff97,
	XK_KP_Right          = 0xff98,
	XK_KP_Down           = 0xff99,
	XK_KP_Prior          = 0xff9a,
	XK_KP_Page_Up        = 0xff9a,
	XK_KP_Next           = 0xff9b,
	XK_KP_Page_Down      = 0xff9b,
	XK_KP_End            = 0xff9c,
	XK_KP_Begin          = 0xff9d,
	XK_KP_Insert         = 0xff9e,
	XK_KP_Delete         = 0xff9f,
	XK_KP_Equal          = 0xffbd,
	XK_KP_Multiply       = 0xffaa,
	XK_KP_Add            = 0xffab,
	XK_KP_Separator      = 0xffac,
	XK_KP_Subtract       = 0xffad,
	XK_KP_Decimal        = 0xffae,
	XK_KP_Divide         = 0xffaf,
	XK_KP_0              = 0xffb0,
	XK_KP_1              = 0xffb1,
	XK_KP_2              = 0xffb2,
	XK_KP_3              = 0xffb3,
	XK_KP_4              = 0xffb4,
	XK_KP_5              = 0xffb5,
	XK_KP_6              = 0xffb6,
	XK_KP_7              = 0xffb7,
	XK_KP_8              = 0xffb8,
	XK_KP_9              = 0xffb9,
	XK_F1                = 0xffbe,
	XK_F2                = 0xffbf,
	XK_F3                = 0xffc0,
	XK_F4                = 0xffc1,
	XK_F5                = 0xffc2,
	XK_F6                = 0xffc3,
	XK_F7                = 0xffc4,
	XK_F8                = 0xffc5,
	XK_F9                = 0xffc6,
	XK_F10               = 0xffc7,
	XK_F11               = 0xffc8,
	XK_L1                = 0xffc8,
	XK_F12               = 0xffc9,
	XK_L2                = 0xffc9,
	XK_F13               = 0xffca,
	XK_L3                = 0xffca,
	XK_F14               = 0xffcb,
	XK_L4                = 0xffcb,
	XK_F15               = 0xffcc,
	XK_L5                = 0xffcc,
	XK_F16               = 0xffcd,
	XK_L6                = 0xffcd,
	XK_F17               = 0xffce,
	XK_L7                = 0xffce,
	XK_F18               = 0xffcf,
	XK_L8                = 0xffcf,
	XK_F19               = 0xffd0,
	XK_L9                = 0xffd0,
	XK_F20               = 0xffd1,
	XK_L10               = 0xffd1,
	XK_F21               = 0xffd2,
	XK_R1                = 0xffd2,
	XK_F22               = 0xffd3,
	XK_R2                = 0xffd3,
	XK_F23               = 0xffd4,
	XK_R3                = 0xffd4,
	XK_F24               = 0xffd5,
	XK_R4                = 0xffd5,
	XK_F25               = 0xffd6,
	XK_R5                = 0xffd6,
	XK_F26               = 0xffd7,
	XK_R6                = 0xffd7,
	XK_F27               = 0xffd8,
	XK_R7                = 0xffd8,
	XK_F28               = 0xffd9,
	XK_R8                = 0xffd9,
	XK_F29               = 0xffda,
	XK_R9                = 0xffda,
	XK_F30               = 0xffdb,
	XK_R10               = 0xffdb,
	XK_F31               = 0xffdc,
	XK_R11               = 0xffdc,
	XK_F32               = 0xffdd,
	XK_R12               = 0xffdd,
	XK_F33               = 0xffde,
	XK_R13               = 0xffde,
	XK_F34               = 0xffdf,
	XK_R14               = 0xffdf,
	XK_F35               = 0xffe0,
	XK_R15               = 0xffe0,
	XK_Shift_L           = 0xffe1,
	XK_Shift_R           = 0xffe2,
	XK_Control_L         = 0xffe3,
	XK_Control_R         = 0xffe4,
	XK_Caps_Lock         = 0xffe5,
	XK_Shift_Lock        = 0xffe6,
	XK_Meta_L            = 0xffe7,
	XK_Meta_R            = 0xffe8,
	XK_Alt_L             = 0xffe9,
	XK_Alt_R             = 0xffea,
	XK_Super_L           = 0xffeb,
	XK_Super_R           = 0xffec,
	XK_Hyper_L           = 0xffed,
	XK_Hyper_R           = 0xffee,
	XK_ISO_Lock          = 0xfe01,
	XK_ISO_Level2_Latch  = 0xfe02,
	XK_ISO_Level3_Shift  = 0xfe03,
	XK_ISO_Level3_Latch  = 0xfe04,
	XK_ISO_Level3_Lock   = 0xfe05,
	XK_ISO_Level5_Shift  = 0xfe11,
	XK_ISO_Level5_Latch  = 0xfe12,
	XK_ISO_Level5_Lock   = 0xfe13,
	XK_ISO_Group_Shift   = 0xff7e,
	XK_ISO_Group_Latch   = 0xfe06,
	XK_ISO_Group_Lock    = 0xfe07,
	XK_ISO_Next_Group    = 0xfe08,
	XK_ISO_Next_Group_Lock = 0xfe09,
	XK_ISO_Prev_Group    = 0xfe0a,
	XK_ISO_Prev_Group_Lock = 0xfe0b,
	XK_ISO_First_Group   = 0xfe0c,
	XK_ISO_First_Group_Lock = 0xfe0d,
	XK_ISO_Last_Group    = 0xfe0e,
	XK_ISO_Last_Group_Lock = 0xfe0f,
	XK_ISO_Left_Tab      = 0xfe20,
	XK_ISO_Move_Line_Up  = 0xfe21,
	XK_ISO_Move_Line_Down = 0xfe22,
	XK_ISO_Partial_Line_Up = 0xfe23,
	XK_ISO_Partial_Line_Down = 0xfe24,
	XK_ISO_Partial_Space_Left = 0xfe25,
	XK_ISO_Partial_Space_Right = 0xfe26,
	XK_ISO_Set_Margin_Left = 0xfe27,
	XK_ISO_Set_Margin_Right = 0xfe28,
	XK_ISO_Release_Margin_Left = 0xfe29,
	XK_ISO_Release_Margin_Right = 0xfe2a,
	XK_ISO_Release_Both_Margins = 0xfe2b,
	XK_ISO_Fast_Cursor_Left = 0xfe2c,
	XK_ISO_Fast_Cursor_Right = 0xfe2d,
	XK_ISO_Fast_Cursor_Up = 0xfe2e,
	XK_ISO_Fast_Cursor_Down = 0xfe2f,
	XK_ISO_Continuous_Underline = 0xfe30,
	XK_ISO_Discontinuous_Underline = 0xfe31,
	XK_ISO_Emphasize     = 0xfe32,
	XK_ISO_Center_Object = 0xfe33,
	XK_ISO_Enter         = 0xfe34,
	XK_dead_grave        = 0xfe50,
	XK_dead_acute        = 0xfe51,
	XK_dead_circumflex   = 0xfe52,
	XK_dead_tilde        = 0xfe53,
	XK_dead_perispomeni  = 0xfe53,
	XK_dead_macron       = 0xfe54,
	XK_dead_breve        = 0xfe55,
	XK_dead_abovedot     = 0xfe56,
	XK_dead_diaeresis    = 0xfe57,
	XK_dead_abovering    = 0xfe58,
	XK_dead_doubleacute  = 0xfe59,
	XK_dead_caron        = 0xfe5a,
	XK_dead_cedilla      = 0xfe5b,
	XK_dead_ogonek       = 0xfe5c,
	XK_dead_iota         = 0xfe5d,
	XK_dead_voiced_sound = 0xfe5e,
	XK_dead_semivoiced_sound = 0xfe5f,
	XK_dead_belowdot     = 0xfe60,
	XK_dead_hook         = 0xfe61,
	XK_dead_horn         = 0xfe62,
	XK_dead_stroke       = 0xfe63,
	XK_dead_abovecomma   = 0xfe64,
	XK_dead_psili        = 0xfe64,
	XK_dead_abovereversedcomma = 0xfe65,
	XK_dead_dasia        = 0xfe65,
	XK_dead_doublegrave  = 0xfe66,
	XK_dead_belowring    = 0xfe67,
	XK_dead_belowmacron  = 0xfe68,
	XK_dead_belowcircumflex = 0xfe69,
	XK_dead_belowtilde   = 0xfe6a,
	XK_dead_belowbreve   = 0xfe6b,
	XK_dead_belowdiaeresis = 0xfe6c,
	XK_dead_invertedbreve = 0xfe6d,
	XK_dead_belowcomma   = 0xfe6e,
	XK_dead_currency     = 0xfe6f,
	XK_dead_a            = 0xfe80,
	XK_dead_A            = 0xfe81,
	XK_dead_e            = 0xfe82,
	XK_dead_E            = 0xfe83,
	XK_dead_i            = 0xfe84,
	XK_dead_I            = 0xfe85,
	XK_dead_o            = 0xfe86,
	XK_dead_O            = 0xfe87,
	XK_dead_u            = 0xfe88,
	XK_dead_U            = 0xfe89,
	XK_dead_small_schwa  = 0xfe8a,
	XK_dead_capital_schwa = 0xfe8b,
	XK_First_Virtual_Screen = 0xfed0,
	XK_Prev_Virtual_Screen = 0xfed1,
	XK_Next_Virtual_Screen = 0xfed2,
	XK_Last_Virtual_Screen = 0xfed4,
	XK_Terminate_Server  = 0xfed5,
	XK_AccessX_Enable    = 0xfe70,
	XK_AccessX_Feedback_Enable = 0xfe71,
	XK_RepeatKeys_Enable = 0xfe72,
	XK_SlowKeys_Enable   = 0xfe73,
	XK_BounceKeys_Enable = 0xfe74,
	XK_StickyKeys_Enable = 0xfe75,
	XK_MouseKeys_Enable  = 0xfe76,
	XK_MouseKeys_Accel_Enable = 0xfe77,
	XK_Overlay1_Enable   = 0xfe78,
	XK_Overlay2_Enable   = 0xfe79,
	XK_AudibleBell_Enable = 0xfe7a,
	XK_Pointer_Left      = 0xfee0,
	XK_Pointer_Right     = 0xfee1,
	XK_Pointer_Up        = 0xfee2,
	XK_Pointer_Down      = 0xfee3,
	XK_Pointer_UpLeft    = 0xfee4,
	XK_Pointer_UpRight   = 0xfee5,
	XK_Pointer_DownLeft  = 0xfee6,
	XK_Pointer_DownRight = 0xfee7,
	XK_Pointer_Button_Dflt = 0xfee8,
	XK_Pointer_Button1   = 0xfee9,
	XK_Pointer_Button2   = 0xfeea,
	XK_Pointer_Button3   = 0xfeeb,
	XK_Pointer_Button4   = 0xfeec,
	XK_Pointer_Button5   = 0xfeed,
	XK_Pointer_DblClick_Dflt = 0xfeee,
	XK_Pointer_DblClick1 = 0xfeef,
	XK_Pointer_DblClick2 = 0xfef0,
	XK_Pointer_DblClick3 = 0xfef1,
	XK_Pointer_DblClick4 = 0xfef2,
	XK_Pointer_DblClick5 = 0xfef3,
	XK_Pointer_Drag_Dflt = 0xfef4,
	XK_Pointer_Drag1     = 0xfef5,
	XK_Pointer_Drag2     = 0xfef6,
	XK_Pointer_Drag3     = 0xfef7,
	XK_Pointer_Drag4     = 0xfef8,
	XK_Pointer_Drag5     = 0xfefd,
	XK_Pointer_EnableKeys = 0xfef9,
	XK_Pointer_Accelerate = 0xfefa,
	XK_Pointer_DfltBtnNext = 0xfefb,
	XK_Pointer_DfltBtnPrev = 0xfefc,
	XK_space             = 0x0020,
	XK_exclam            = 0x0021,
	XK_quotedbl          = 0x0022,
	XK_numbersign        = 0x0023,
	XK_dollar            = 0x0024,
	XK_percent           = 0x0025,
	XK_ampersand         = 0x0026,
	XK_apostrophe        = 0x0027,
	XK_quoteright        = 0x0027,
	XK_parenleft         = 0x0028,
	XK_parenright        = 0x0029,
	XK_asterisk          = 0x002a,
	XK_plus              = 0x002b,
	XK_comma             = 0x002c,
	XK_minus             = 0x002d,
	XK_period            = 0x002e,
	XK_slash             = 0x002f,
	XK_0                 = 0x0030,
	XK_1                 = 0x0031,
	XK_2                 = 0x0032,
	XK_3                 = 0x0033,
	XK_4                 = 0x0034,
	XK_5                 = 0x0035,
	XK_6                 = 0x0036,
	XK_7                 = 0x0037,
	XK_8                 = 0x0038,
	XK_9                 = 0x0039,
	XK_colon             = 0x003a,
	XK_semicolon         = 0x003b,
	XK_less              = 0x003c,
	XK_equal             = 0x003d,
	XK_greater           = 0x003e,
	XK_question          = 0x003f,
	XK_at                = 0x0040,
	XK_A                 = 0x0041,
	XK_B                 = 0x0042,
	XK_C                 = 0x0043,
	XK_D                 = 0x0044,
	XK_E                 = 0x0045,
	XK_F                 = 0x0046,
	XK_G                 = 0x0047,
	XK_H                 = 0x0048,
	XK_I                 = 0x0049,
	XK_J                 = 0x004a,
	XK_K                 = 0x004b,
	XK_L                 = 0x004c,
	XK_M                 = 0x004d,
	XK_N                 = 0x004e,
	XK_O                 = 0x004f,
	XK_P                 = 0x0050,
	XK_Q                 = 0x0051,
	XK_R                 = 0x0052,
	XK_S                 = 0x0053,
	XK_T                 = 0x0054,
	XK_U                 = 0x0055,
	XK_V                 = 0x0056,
	XK_W                 = 0x0057,
	XK_X                 = 0x0058,
	XK_Y                 = 0x0059,
	XK_Z                 = 0x005a,
	XK_bracketleft       = 0x005b,
	XK_backslash         = 0x005c,
	XK_bracketright      = 0x005d,
	XK_asciicircum       = 0x005e,
	XK_underscore        = 0x005f,
	XK_grave             = 0x0060,
	XK_quoteleft         = 0x0060,
	XK_a                 = 0x0061,
	XK_b                 = 0x0062,
	XK_c                 = 0x0063,
	XK_d                 = 0x0064,
	XK_e                 = 0x0065,
	XK_f                 = 0x0066,
	XK_g                 = 0x0067,
	XK_h                 = 0x0068,
	XK_i                 = 0x0069,
	XK_j                 = 0x006a,
	XK_k                 = 0x006b,
	XK_l                 = 0x006c,
	XK_m                 = 0x006d,
	XK_n                 = 0x006e,
	XK_o                 = 0x006f,
	XK_p                 = 0x0070,
	XK_q                 = 0x0071,
	XK_r                 = 0x0072,
	XK_s                 = 0x0073,
	XK_t                 = 0x0074,
	XK_u                 = 0x0075,
	XK_v                 = 0x0076,
	XK_w                 = 0x0077,
	XK_x                 = 0x0078,
	XK_y                 = 0x0079,
	XK_z                 = 0x007a,
	XK_braceleft         = 0x007b,
	XK_bar               = 0x007c,
	XK_braceright        = 0x007d,
	XK_asciitilde        = 0x007e,
	XK_nobreakspace      = 0x00a0,
	XK_exclamdown        = 0x00a1,
	XK_cent              = 0x00a2,
	XK_sterling          = 0x00a3,
	XK_currency          = 0x00a4,
	XK_yen               = 0x00a5,
	XK_brokenbar         = 0x00a6,
	XK_section           = 0x00a7,
	XK_diaeresis         = 0x00a8,
	XK_copyright         = 0x00a9,
	XK_ordfeminine       = 0x00aa,
	XK_guillemotleft     = 0x00ab,
	XK_notsign           = 0x00ac,
	XK_hyphen            = 0x00ad,
	XK_registered        = 0x00ae,
	XK_macron            = 0x00af,
	XK_degree            = 0x00b0,
	XK_plusminus         = 0x00b1,
	XK_twosuperior       = 0x00b2,
	XK_threesuperior     = 0x00b3,
	XK_acute             = 0x00b4,
	XK_mu                = 0x00b5,
	XK_paragraph         = 0x00b6,
	XK_periodcentered    = 0x00b7,
	XK_cedilla           = 0x00b8,
	XK_onesuperior       = 0x00b9,
	XK_masculine         = 0x00ba,
	XK_guillemotright    = 0x00bb,
	XK_onequarter        = 0x00bc,
	XK_onehalf           = 0x00bd,
	XK_threequarters     = 0x00be,
	XK_questiondown      = 0x00bf,
	XK_Agrave            = 0x00c0,
	XK_Aacute            = 0x00c1,
	XK_Acircumflex       = 0x00c2,
	XK_Atilde            = 0x00c3,
	XK_Adiaeresis        = 0x00c4,
	XK_Aring             = 0x00c5,
	XK_AE                = 0x00c6,
	XK_Ccedilla          = 0x00c7,
	XK_Egrave            = 0x00c8,
	XK_Eacute            = 0x00c9,
	XK_Ecircumflex       = 0x00ca,
	XK_Ediaeresis        = 0x00cb,
	XK_Igrave            = 0x00cc,
	XK_Iacute            = 0x00cd,
	XK_Icircumflex       = 0x00ce,
	XK_Idiaeresis        = 0x00cf,
	XK_ETH               = 0x00d0,
	XK_Eth               = 0x00d0,
	XK_Ntilde            = 0x00d1,
	XK_Ograve            = 0x00d2,
	XK_Oacute            = 0x00d3,
	XK_Ocircumflex       = 0x00d4,
	XK_Otilde            = 0x00d5,
	XK_Odiaeresis        = 0x00d6,
	XK_multiply          = 0x00d7,
	XK_Oslash            = 0x00d8,
	XK_Ooblique          = 0x00d8,
	XK_Ugrave            = 0x00d9,
	XK_Uacute            = 0x00da,
	XK_Ucircumflex       = 0x00db,
	XK_Udiaeresis        = 0x00dc,
	XK_Yacute            = 0x00dd,
	XK_THORN             = 0x00de,
	XK_Thorn             = 0x00de,
	XK_ssharp            = 0x00df,
	XK_agrave            = 0x00e0,
	XK_aacute            = 0x00e1,
	XK_acircumflex       = 0x00e2,
	XK_atilde            = 0x00e3,
	XK_adiaeresis        = 0x00e4,
	XK_aring             = 0x00e5,
	XK_ae                = 0x00e6,
	XK_ccedilla          = 0x00e7,
	XK_egrave            = 0x00e8,
	XK_eacute            = 0x00e9,
	XK_ecircumflex       = 0x00ea,
	XK_ediaeresis        = 0x00eb,
	XK_igrave            = 0x00ec,
	XK_iacute            = 0x00ed,
	XK_icircumflex       = 0x00ee,
	XK_idiaeresis        = 0x00ef,
	XK_eth               = 0x00f0,
	XK_ntilde            = 0x00f1,
	XK_ograve            = 0x00f2,
	XK_oacute            = 0x00f3,
	XK_ocircumflex       = 0x00f4,
	XK_otilde            = 0x00f5,
	XK_odiaeresis        = 0x00f6,
	XK_division          = 0x00f7,
	XK_oslash            = 0x00f8,
	XK_ooblique          = 0x00f8,
	XK_ugrave            = 0x00f9,
	XK_uacute            = 0x00fa,
	XK_ucircumflex       = 0x00fb,
	XK_udiaeresis        = 0x00fc,
	XK_yacute            = 0x00fd,
	XK_thorn             = 0x00fe,
	XK_ydiaeresis        = 0x00ff,
	XK_Aogonek           = 0x01a1,
	XK_breve             = 0x01a2,
	XK_Lstroke           = 0x01a3,
	XK_Lcaron            = 0x01a5,
	XK_Sacute            = 0x01a6,
	XK_Scaron            = 0x01a9,
	XK_Scedilla          = 0x01aa,
	XK_Tcaron            = 0x01ab,
	XK_Zacute            = 0x01ac,
	XK_Zcaron            = 0x01ae,
	XK_Zabovedot         = 0x01af,
	XK_aogonek           = 0x01b1,
	XK_ogonek            = 0x01b2,
	XK_lstroke           = 0x01b3,
	XK_lcaron            = 0x01b5,
	XK_sacute            = 0x01b6,
	XK_caron             = 0x01b7,
	XK_scaron            = 0x01b9,
	XK_scedilla          = 0x01ba,
	XK_tcaron            = 0x01bb,
	XK_zacute            = 0x01bc,
	XK_doubleacute       = 0x01bd,
	XK_zcaron            = 0x01be,
	XK_zabovedot         = 0x01bf,
	XK_Racute            = 0x01c0,
	XK_Abreve            = 0x01c3,
	XK_Lacute            = 0x01c5,
	XK_Cacute            = 0x01c6,
	XK_Ccaron            = 0x01c8,
	XK_Eogonek           = 0x01ca,
	XK_Ecaron            = 0x01cc,
	XK_Dcaron            = 0x01cf,
	XK_Dstroke           = 0x01d0,
	XK_Nacute            = 0x01d1,
	XK_Ncaron            = 0x01d2,
	XK_Odoubleacute      = 0x01d5,
	XK_Rcaron            = 0x01d8,
	XK_Uring             = 0x01d9,
	XK_Udoubleacute      = 0x01db,
	XK_Tcedilla          = 0x01de,
	XK_racute            = 0x01e0,
	XK_abreve            = 0x01e3,
	XK_lacute            = 0x01e5,
	XK_cacute            = 0x01e6,
	XK_ccaron            = 0x01e8,
	XK_eogonek           = 0x01ea,
	XK_ecaron            = 0x01ec,
	XK_dcaron            = 0x01ef,
	XK_dstroke           = 0x01f0,
	XK_nacute            = 0x01f1,
	XK_ncaron            = 0x01f2,
	XK_odoubleacute      = 0x01f5,
	XK_udoubleacute      = 0x01fb,
	XK_rcaron            = 0x01f8,
	XK_uring             = 0x01f9,
	XK_tcedilla          = 0x01fe,
	XK_abovedot          = 0x01ff,
	XK_Hstroke           = 0x02a1,
	XK_Hcircumflex       = 0x02a6,
	XK_Iabovedot         = 0x02a9,
	XK_Gbreve            = 0x02ab,
	XK_Jcircumflex       = 0x02ac,
	XK_hstroke           = 0x02b1,
	XK_hcircumflex       = 0x02b6,
	XK_idotless          = 0x02b9,
	XK_gbreve            = 0x02bb,
	XK_jcircumflex       = 0x02bc,
	XK_Cabovedot         = 0x02c5,
	XK_Ccircumflex       = 0x02c6,
	XK_Gabovedot         = 0x02d5,
	XK_Gcircumflex       = 0x02d8,
	XK_Ubreve            = 0x02dd,
	XK_Scircumflex       = 0x02de,
	XK_cabovedot         = 0x02e5,
	XK_ccircumflex       = 0x02e6,
	XK_gabovedot         = 0x02f5,
	XK_gcircumflex       = 0x02f8,
	XK_ubreve            = 0x02fd,
	XK_scircumflex       = 0x02fe,
	XK_kra               = 0x03a2,
	XK_kappa             = 0x03a2,
	XK_Rcedilla          = 0x03a3,
	XK_Itilde            = 0x03a5,
	XK_Lcedilla          = 0x03a6,
	XK_Emacron           = 0x03aa,
	XK_Gcedilla          = 0x03ab,
	XK_Tslash            = 0x03ac,
	XK_rcedilla          = 0x03b3,
	XK_itilde            = 0x03b5,
	XK_lcedilla          = 0x03b6,
	XK_emacron           = 0x03ba,
	XK_gcedilla          = 0x03bb,
	XK_tslash            = 0x03bc,
	XK_ENG               = 0x03bd,
	XK_eng               = 0x03bf,
	XK_Amacron           = 0x03c0,
	XK_Iogonek           = 0x03c7,
	XK_Eabovedot         = 0x03cc,
	XK_Imacron           = 0x03cf,
	XK_Ncedilla          = 0x03d1,
	XK_Omacron           = 0x03d2,
	XK_Kcedilla          = 0x03d3,
	XK_Uogonek           = 0x03d9,
	XK_Utilde            = 0x03dd,
	XK_Umacron           = 0x03de,
	XK_amacron           = 0x03e0,
	XK_iogonek           = 0x03e7,
	XK_eabovedot         = 0x03ec,
	XK_imacron           = 0x03ef,
	XK_ncedilla          = 0x03f1,
	XK_omacron           = 0x03f2,
	XK_kcedilla          = 0x03f3,
	XK_uogonek           = 0x03f9,
	XK_utilde            = 0x03fd,
	XK_umacron           = 0x03fe,
	XK_Babovedot         = 0x1001e02,
	XK_babovedot         = 0x1001e03,
	XK_Dabovedot         = 0x1001e0a,
	XK_Wgrave            = 0x1001e80,
	XK_Wacute            = 0x1001e82,
	XK_dabovedot         = 0x1001e0b,
	XK_Ygrave            = 0x1001ef2,
	XK_Fabovedot         = 0x1001e1e,
	XK_fabovedot         = 0x1001e1f,
	XK_Mabovedot         = 0x1001e40,
	XK_mabovedot         = 0x1001e41,
	XK_Pabovedot         = 0x1001e56,
	XK_wgrave            = 0x1001e81,
	XK_pabovedot         = 0x1001e57,
	XK_wacute            = 0x1001e83,
	XK_Sabovedot         = 0x1001e60,
	XK_ygrave            = 0x1001ef3,
	XK_Wdiaeresis        = 0x1001e84,
	XK_wdiaeresis        = 0x1001e85,
	XK_sabovedot         = 0x1001e61,
	XK_Wcircumflex       = 0x1000174,
	XK_Tabovedot         = 0x1001e6a,
	XK_Ycircumflex       = 0x1000176,
	XK_wcircumflex       = 0x1000175,
	XK_tabovedot         = 0x1001e6b,
	XK_ycircumflex       = 0x1000177,
	XK_OE                = 0x13bc,
	XK_oe                = 0x13bd,
	XK_Ydiaeresis        = 0x13be,
	XK_overline          = 0x047e,
	XK_kana_fullstop     = 0x04a1,
	XK_kana_openingbracket = 0x04a2,
	XK_kana_closingbracket = 0x04a3,
	XK_kana_comma        = 0x04a4,
	XK_kana_conjunctive  = 0x04a5,
	XK_kana_middledot    = 0x04a5,
	XK_kana_WO           = 0x04a6,
	XK_kana_a            = 0x04a7,
	XK_kana_i            = 0x04a8,
	XK_kana_u            = 0x04a9,
	XK_kana_e            = 0x04aa,
	XK_kana_o            = 0x04ab,
	XK_kana_ya           = 0x04ac,
	XK_kana_yu           = 0x04ad,
	XK_kana_yo           = 0x04ae,
	XK_kana_tsu          = 0x04af,
	XK_kana_tu           = 0x04af,
	XK_prolongedsound    = 0x04b0,
	XK_kana_A            = 0x04b1,
	XK_kana_I            = 0x04b2,
	XK_kana_U            = 0x04b3,
	XK_kana_E            = 0x04b4,
	XK_kana_O            = 0x04b5,
	XK_kana_KA           = 0x04b6,
	XK_kana_KI           = 0x04b7,
	XK_kana_KU           = 0x04b8,
	XK_kana_KE           = 0x04b9,
	XK_kana_KO           = 0x04ba,
	XK_kana_SA           = 0x04bb,
	XK_kana_SHI          = 0x04bc,
	XK_kana_SU           = 0x04bd,
	XK_kana_SE           = 0x04be,
	XK_kana_SO           = 0x04bf,
	XK_kana_TA           = 0x04c0,
	XK_kana_CHI          = 0x04c1,
	XK_kana_TI           = 0x04c1,
	XK_kana_TSU          = 0x04c2,
	XK_kana_TU           = 0x04c2,
	XK_kana_TE           = 0x04c3,
	XK_kana_TO           = 0x04c4,
	XK_kana_NA           = 0x04c5,
	XK_kana_NI           = 0x04c6,
	XK_kana_NU           = 0x04c7,
	XK_kana_NE           = 0x04c8,
	XK_kana_NO           = 0x04c9,
	XK_kana_HA           = 0x04ca,
	XK_kana_HI           = 0x04cb,
	XK_kana_FU           = 0x04cc,
	XK_kana_HU           = 0x04cc,
	XK_kana_HE           = 0x04cd,
	XK_kana_HO           = 0x04ce,
	XK_kana_MA           = 0x04cf,
	XK_kana_MI           = 0x04d0,
	XK_kana_MU           = 0x04d1,
	XK_kana_ME           = 0x04d2,
	XK_kana_MO           = 0x04d3,
	XK_kana_YA           = 0x04d4,
	XK_kana_YU           = 0x04d5,
	XK_kana_YO           = 0x04d6,
	XK_kana_RA           = 0x04d7,
	XK_kana_RI           = 0x04d8,
	XK_kana_RU           = 0x04d9,
	XK_kana_RE           = 0x04da,
	XK_kana_RO           = 0x04db,
	XK_kana_WA           = 0x04dc,
	XK_kana_N            = 0x04dd,
	XK_voicedsound       = 0x04de,
	XK_semivoicedsound   = 0x04df,
	XK_kana_switch       = 0xff7e,
	XK_Farsi_0           = 0x10006f0,
	XK_Farsi_1           = 0x10006f1,
	XK_Farsi_2           = 0x10006f2,
	XK_Farsi_3           = 0x10006f3,
	XK_Farsi_4           = 0x10006f4,
	XK_Farsi_5           = 0x10006f5,
	XK_Farsi_6           = 0x10006f6,
	XK_Farsi_7           = 0x10006f7,
	XK_Farsi_8           = 0x10006f8,
	XK_Farsi_9           = 0x10006f9,
	XK_Arabic_percent    = 0x100066a,
	XK_Arabic_superscript_alef = 0x1000670,
	XK_Arabic_tteh       = 0x1000679,
	XK_Arabic_peh        = 0x100067e,
	XK_Arabic_tcheh      = 0x1000686,
	XK_Arabic_ddal       = 0x1000688,
	XK_Arabic_rreh       = 0x1000691,
	XK_Arabic_comma      = 0x05ac,
	XK_Arabic_fullstop   = 0x10006d4,
	XK_Arabic_0          = 0x1000660,
	XK_Arabic_1          = 0x1000661,
	XK_Arabic_2          = 0x1000662,
	XK_Arabic_3          = 0x1000663,
	XK_Arabic_4          = 0x1000664,
	XK_Arabic_5          = 0x1000665,
	XK_Arabic_6          = 0x1000666,
	XK_Arabic_7          = 0x1000667,
	XK_Arabic_8          = 0x1000668,
	XK_Arabic_9          = 0x1000669,
	XK_Arabic_semicolon  = 0x05bb,
	XK_Arabic_question_mark = 0x05bf,
	XK_Arabic_hamza      = 0x05c1,
	XK_Arabic_maddaonalef = 0x05c2,
	XK_Arabic_hamzaonalef = 0x05c3,
	XK_Arabic_hamzaonwaw = 0x05c4,
	XK_Arabic_hamzaunderalef = 0x05c5,
	XK_Arabic_hamzaonyeh = 0x05c6,
	XK_Arabic_alef       = 0x05c7,
	XK_Arabic_beh        = 0x05c8,
	XK_Arabic_tehmarbuta = 0x05c9,
	XK_Arabic_teh        = 0x05ca,
	XK_Arabic_theh       = 0x05cb,
	XK_Arabic_jeem       = 0x05cc,
	XK_Arabic_hah        = 0x05cd,
	XK_Arabic_khah       = 0x05ce,
	XK_Arabic_dal        = 0x05cf,
	XK_Arabic_thal       = 0x05d0,
	XK_Arabic_ra         = 0x05d1,
	XK_Arabic_zain       = 0x05d2,
	XK_Arabic_seen       = 0x05d3,
	XK_Arabic_sheen      = 0x05d4,
	XK_Arabic_sad        = 0x05d5,
	XK_Arabic_dad        = 0x05d6,
	XK_Arabic_tah        = 0x05d7,
	XK_Arabic_zah        = 0x05d8,
	XK_Arabic_ain        = 0x05d9,
	XK_Arabic_ghain      = 0x05da,
	XK_Arabic_tatweel    = 0x05e0,
	XK_Arabic_feh        = 0x05e1,
	XK_Arabic_qaf        = 0x05e2,
	XK_Arabic_kaf        = 0x05e3,
	XK_Arabic_lam        = 0x05e4,
	XK_Arabic_meem       = 0x05e5,
	XK_Arabic_noon       = 0x05e6,
	XK_Arabic_ha         = 0x05e7,
	XK_Arabic_heh        = 0x05e7,
	XK_Arabic_waw        = 0x05e8,
	XK_Arabic_alefmaksura = 0x05e9,
	XK_Arabic_yeh        = 0x05ea,
	XK_Arabic_fathatan   = 0x05eb,
	XK_Arabic_dammatan   = 0x05ec,
	XK_Arabic_kasratan   = 0x05ed,
	XK_Arabic_fatha      = 0x05ee,
	XK_Arabic_damma      = 0x05ef,
	XK_Arabic_kasra      = 0x05f0,
	XK_Arabic_shadda     = 0x05f1,
	XK_Arabic_sukun      = 0x05f2,
	XK_Arabic_madda_above = 0x1000653,
	XK_Arabic_hamza_above = 0x1000654,
	XK_Arabic_hamza_below = 0x1000655,
	XK_Arabic_jeh        = 0x1000698,
	XK_Arabic_veh        = 0x10006a4,
	XK_Arabic_keheh      = 0x10006a9,
	XK_Arabic_gaf        = 0x10006af,
	XK_Arabic_noon_ghunna = 0x10006ba,
	XK_Arabic_heh_doachashmee = 0x10006be,
	XK_Farsi_yeh         = 0x10006cc,
	XK_Arabic_farsi_yeh  = 0x10006cc,
	XK_Arabic_yeh_baree  = 0x10006d2,
	XK_Arabic_heh_goal   = 0x10006c1,
	XK_Arabic_switch     = 0xff7e,
	XK_Cyrillic_GHE_bar  = 0x1000492,
	XK_Cyrillic_ghe_bar  = 0x1000493,
	XK_Cyrillic_ZHE_descender = 0x1000496,
	XK_Cyrillic_zhe_descender = 0x1000497,
	XK_Cyrillic_KA_descender = 0x100049a,
	XK_Cyrillic_ka_descender = 0x100049b,
	XK_Cyrillic_KA_vertstroke = 0x100049c,
	XK_Cyrillic_ka_vertstroke = 0x100049d,
	XK_Cyrillic_EN_descender = 0x10004a2,
	XK_Cyrillic_en_descender = 0x10004a3,
	XK_Cyrillic_U_straight = 0x10004ae,
	XK_Cyrillic_u_straight = 0x10004af,
	XK_Cyrillic_U_straight_bar = 0x10004b0,
	XK_Cyrillic_u_straight_bar = 0x10004b1,
	XK_Cyrillic_HA_descender = 0x10004b2,
	XK_Cyrillic_ha_descender = 0x10004b3,
	XK_Cyrillic_CHE_descender = 0x10004b6,
	XK_Cyrillic_che_descender = 0x10004b7,
	XK_Cyrillic_CHE_vertstroke = 0x10004b8,
	XK_Cyrillic_che_vertstroke = 0x10004b9,
	XK_Cyrillic_SHHA     = 0x10004ba,
	XK_Cyrillic_shha     = 0x10004bb,
	XK_Cyrillic_SCHWA    = 0x10004d8,
	XK_Cyrillic_schwa    = 0x10004d9,
	XK_Cyrillic_I_macron = 0x10004e2,
	XK_Cyrillic_i_macron = 0x10004e3,
	XK_Cyrillic_O_bar    = 0x10004e8,
	XK_Cyrillic_o_bar    = 0x10004e9,
	XK_Cyrillic_U_macron = 0x10004ee,
	XK_Cyrillic_u_macron = 0x10004ef,
	XK_Serbian_dje       = 0x06a1,
	XK_Macedonia_gje     = 0x06a2,
	XK_Cyrillic_io       = 0x06a3,
	XK_Ukrainian_ie      = 0x06a4,
	XK_Ukranian_je       = 0x06a4,
	XK_Macedonia_dse     = 0x06a5,
	XK_Ukrainian_i       = 0x06a6,
	XK_Ukranian_i        = 0x06a6,
	XK_Ukrainian_yi      = 0x06a7,
	XK_Ukranian_yi       = 0x06a7,
	XK_Cyrillic_je       = 0x06a8,
	XK_Serbian_je        = 0x06a8,
	XK_Cyrillic_lje      = 0x06a9,
	XK_Serbian_lje       = 0x06a9,
	XK_Cyrillic_nje      = 0x06aa,
	XK_Serbian_nje       = 0x06aa,
	XK_Serbian_tshe      = 0x06ab,
	XK_Macedonia_kje     = 0x06ac,
	XK_Ukrainian_ghe_with_upturn = 0x06ad,
	XK_Byelorussian_shortu = 0x06ae,
	XK_Cyrillic_dzhe     = 0x06af,
	XK_Serbian_dze       = 0x06af,
	XK_numerosign        = 0x06b0,
	XK_Serbian_DJE       = 0x06b1,
	XK_Macedonia_GJE     = 0x06b2,
	XK_Cyrillic_IO       = 0x06b3,
	XK_Ukrainian_IE      = 0x06b4,
	XK_Ukranian_JE       = 0x06b4,
	XK_Macedonia_DSE     = 0x06b5,
	XK_Ukrainian_I       = 0x06b6,
	XK_Ukranian_I        = 0x06b6,
	XK_Ukrainian_YI      = 0x06b7,
	XK_Ukranian_YI       = 0x06b7,
	XK_Cyrillic_JE       = 0x06b8,
	XK_Serbian_JE        = 0x06b8,
	XK_Cyrillic_LJE      = 0x06b9,
	XK_Serbian_LJE       = 0x06b9,
	XK_Cyrillic_NJE      = 0x06ba,
	XK_Serbian_NJE       = 0x06ba,
	XK_Serbian_TSHE      = 0x06bb,
	XK_Macedonia_KJE     = 0x06bc,
	XK_Ukrainian_GHE_WITH_UPTURN = 0x06bd,
	XK_Byelorussian_SHORTU = 0x06be,
	XK_Cyrillic_DZHE     = 0x06bf,
	XK_Serbian_DZE       = 0x06bf,
	XK_Cyrillic_yu       = 0x06c0,
	XK_Cyrillic_a        = 0x06c1,
	XK_Cyrillic_be       = 0x06c2,
	XK_Cyrillic_tse      = 0x06c3,
	XK_Cyrillic_de       = 0x06c4,
	XK_Cyrillic_ie       = 0x06c5,
	XK_Cyrillic_ef       = 0x06c6,
	XK_Cyrillic_ghe      = 0x06c7,
	XK_Cyrillic_ha       = 0x06c8,
	XK_Cyrillic_i        = 0x06c9,
	XK_Cyrillic_shorti   = 0x06ca,
	XK_Cyrillic_ka       = 0x06cb,
	XK_Cyrillic_el       = 0x06cc,
	XK_Cyrillic_em       = 0x06cd,
	XK_Cyrillic_en       = 0x06ce,
	XK_Cyrillic_o        = 0x06cf,
	XK_Cyrillic_pe       = 0x06d0,
	XK_Cyrillic_ya       = 0x06d1,
	XK_Cyrillic_er       = 0x06d2,
	XK_Cyrillic_es       = 0x06d3,
	XK_Cyrillic_te       = 0x06d4,
	XK_Cyrillic_u        = 0x06d5,
	XK_Cyrillic_zhe      = 0x06d6,
	XK_Cyrillic_ve       = 0x06d7,
	XK_Cyrillic_softsign = 0x06d8,
	XK_Cyrillic_yeru     = 0x06d9,
	XK_Cyrillic_ze       = 0x06da,
	XK_Cyrillic_sha      = 0x06db,
	XK_Cyrillic_e        = 0x06dc,
	XK_Cyrillic_shcha    = 0x06dd,
	XK_Cyrillic_che      = 0x06de,
	XK_Cyrillic_hardsign = 0x06df,
	XK_Cyrillic_YU       = 0x06e0,
	XK_Cyrillic_A        = 0x06e1,
	XK_Cyrillic_BE       = 0x06e2,
	XK_Cyrillic_TSE      = 0x06e3,
	XK_Cyrillic_DE       = 0x06e4,
	XK_Cyrillic_IE       = 0x06e5,
	XK_Cyrillic_EF       = 0x06e6,
	XK_Cyrillic_GHE      = 0x06e7,
	XK_Cyrillic_HA       = 0x06e8,
	XK_Cyrillic_I        = 0x06e9,
	XK_Cyrillic_SHORTI   = 0x06ea,
	XK_Cyrillic_KA       = 0x06eb,
	XK_Cyrillic_EL       = 0x06ec,
	XK_Cyrillic_EM       = 0x06ed,
	XK_Cyrillic_EN       = 0x06ee,
	XK_Cyrillic_O        = 0x06ef,
	XK_Cyrillic_PE       = 0x06f0,
	XK_Cyrillic_YA       = 0x06f1,
	XK_Cyrillic_ER       = 0x06f2,
	XK_Cyrillic_ES       = 0x06f3,
	XK_Cyrillic_TE       = 0x06f4,
	XK_Cyrillic_U        = 0x06f5,
	XK_Cyrillic_ZHE      = 0x06f6,
	XK_Cyrillic_VE       = 0x06f7,
	XK_Cyrillic_SOFTSIGN = 0x06f8,
	XK_Cyrillic_YERU     = 0x06f9,
	XK_Cyrillic_ZE       = 0x06fa,
	XK_Cyrillic_SHA      = 0x06fb,
	XK_Cyrillic_E        = 0x06fc,
	XK_Cyrillic_SHCHA    = 0x06fd,
	XK_Cyrillic_CHE      = 0x06fe,
	XK_Cyrillic_HARDSIGN = 0x06ff,
	XK_Greek_ALPHAaccent = 0x07a1,
	XK_Greek_EPSILONaccent = 0x07a2,
	XK_Greek_ETAaccent   = 0x07a3,
	XK_Greek_IOTAaccent  = 0x07a4,
	XK_Greek_IOTAdieresis = 0x07a5,
	XK_Greek_IOTAdiaeresis = 0x07a5,
	XK_Greek_OMICRONaccent = 0x07a7,
	XK_Greek_UPSILONaccent = 0x07a8,
	XK_Greek_UPSILONdieresis = 0x07a9,
	XK_Greek_OMEGAaccent = 0x07ab,
	XK_Greek_accentdieresis = 0x07ae,
	XK_Greek_horizbar    = 0x07af,
	XK_Greek_alphaaccent = 0x07b1,
	XK_Greek_epsilonaccent = 0x07b2,
	XK_Greek_etaaccent   = 0x07b3,
	XK_Greek_iotaaccent  = 0x07b4,
	XK_Greek_iotadieresis = 0x07b5,
	XK_Greek_iotaaccentdieresis = 0x07b6,
	XK_Greek_omicronaccent = 0x07b7,
	XK_Greek_upsilonaccent = 0x07b8,
	XK_Greek_upsilondieresis = 0x07b9,
	XK_Greek_upsilonaccentdieresis = 0x07ba,
	XK_Greek_omegaaccent = 0x07bb,
	XK_Greek_ALPHA       = 0x07c1,
	XK_Greek_BETA        = 0x07c2,
	XK_Greek_GAMMA       = 0x07c3,
	XK_Greek_DELTA       = 0x07c4,
	XK_Greek_EPSILON     = 0x07c5,
	XK_Greek_ZETA        = 0x07c6,
	XK_Greek_ETA         = 0x07c7,
	XK_Greek_THETA       = 0x07c8,
	XK_Greek_IOTA        = 0x07c9,
	XK_Greek_KAPPA       = 0x07ca,
	XK_Greek_LAMDA       = 0x07cb,
	XK_Greek_LAMBDA      = 0x07cb,
	XK_Greek_MU          = 0x07cc,
	XK_Greek_NU          = 0x07cd,
	XK_Greek_XI          = 0x07ce,
	XK_Greek_OMICRON     = 0x07cf,
	XK_Greek_PI          = 0x07d0,
	XK_Greek_RHO         = 0x07d1,
	XK_Greek_SIGMA       = 0x07d2,
	XK_Greek_TAU         = 0x07d4,
	XK_Greek_UPSILON     = 0x07d5,
	XK_Greek_PHI         = 0x07d6,
	XK_Greek_CHI         = 0x07d7,
	XK_Greek_PSI         = 0x07d8,
	XK_Greek_OMEGA       = 0x07d9,
	XK_Greek_alpha       = 0x07e1,
	XK_Greek_beta        = 0x07e2,
	XK_Greek_gamma       = 0x07e3,
	XK_Greek_delta       = 0x07e4,
	XK_Greek_epsilon     = 0x07e5,
	XK_Greek_zeta        = 0x07e6,
	XK_Greek_eta         = 0x07e7,
	XK_Greek_theta       = 0x07e8,
	XK_Greek_iota        = 0x07e9,
	XK_Greek_kappa       = 0x07ea,
	XK_Greek_lamda       = 0x07eb,
	XK_Greek_lambda      = 0x07eb,
	XK_Greek_mu          = 0x07ec,
	XK_Greek_nu          = 0x07ed,
	XK_Greek_xi          = 0x07ee,
	XK_Greek_omicron     = 0x07ef,
	XK_Greek_pi          = 0x07f0,
	XK_Greek_rho         = 0x07f1,
	XK_Greek_sigma       = 0x07f2,
	XK_Greek_finalsmallsigma = 0x07f3,
	XK_Greek_tau         = 0x07f4,
	XK_Greek_upsilon     = 0x07f5,
	XK_Greek_phi         = 0x07f6,
	XK_Greek_chi         = 0x07f7,
	XK_Greek_psi         = 0x07f8,
	XK_Greek_omega       = 0x07f9,
	XK_Greek_switch      = 0xff7e,
	XK_hebrew_doublelowline = 0x0cdf,
	XK_hebrew_aleph      = 0x0ce0,
	XK_hebrew_bet        = 0x0ce1,
	XK_hebrew_beth       = 0x0ce1,
	XK_hebrew_gimel      = 0x0ce2,
	XK_hebrew_gimmel     = 0x0ce2,
	XK_hebrew_dalet      = 0x0ce3,
	XK_hebrew_daleth     = 0x0ce3,
	XK_hebrew_he         = 0x0ce4,
	XK_hebrew_waw        = 0x0ce5,
	XK_hebrew_zain       = 0x0ce6,
	XK_hebrew_zayin      = 0x0ce6,
	XK_hebrew_chet       = 0x0ce7,
	XK_hebrew_het        = 0x0ce7,
	XK_hebrew_tet        = 0x0ce8,
	XK_hebrew_teth       = 0x0ce8,
	XK_hebrew_yod        = 0x0ce9,
	XK_hebrew_finalkaph  = 0x0cea,
	XK_hebrew_kaph       = 0x0ceb,
	XK_hebrew_lamed      = 0x0cec,
	XK_hebrew_finalmem   = 0x0ced,
	XK_hebrew_mem        = 0x0cee,
	XK_hebrew_finalnun   = 0x0cef,
	XK_hebrew_nun        = 0x0cf0,
	XK_hebrew_samech     = 0x0cf1,
	XK_hebrew_samekh     = 0x0cf1,
	XK_hebrew_ayin       = 0x0cf2,
	XK_hebrew_finalpe    = 0x0cf3,
	XK_hebrew_pe         = 0x0cf4,
	XK_hebrew_finalzade  = 0x0cf5,
	XK_hebrew_finalzadi  = 0x0cf5,
	XK_hebrew_zade       = 0x0cf6,
	XK_hebrew_zadi       = 0x0cf6,
	XK_hebrew_qoph       = 0x0cf7,
	XK_hebrew_kuf        = 0x0cf7,
	XK_hebrew_resh       = 0x0cf8,
	XK_hebrew_shin       = 0x0cf9,
	XK_hebrew_taw        = 0x0cfa,
	XK_hebrew_taf        = 0x0cfa,
	XK_Hebrew_switch     = 0xff7e,
	XK_Thai_kokai        = 0x0da1,
	XK_Thai_khokhai      = 0x0da2,
	XK_Thai_khokhuat     = 0x0da3,
	XK_Thai_khokhwai     = 0x0da4,
	XK_Thai_khokhon      = 0x0da5,
	XK_Thai_khorakhang   = 0x0da6,
	XK_Thai_ngongu       = 0x0da7,
	XK_Thai_chochan      = 0x0da8,
	XK_Thai_choching     = 0x0da9,
	XK_Thai_chochang     = 0x0daa,
	XK_Thai_soso         = 0x0dab,
	XK_Thai_chochoe      = 0x0dac,
	XK_Thai_yoying       = 0x0dad,
	XK_Thai_dochada      = 0x0dae,
	XK_Thai_topatak      = 0x0daf,
	XK_Thai_thothan      = 0x0db0,
	XK_Thai_thonangmontho = 0x0db1,
	XK_Thai_thophuthao   = 0x0db2,
	XK_Thai_nonen        = 0x0db3,
	XK_Thai_dodek        = 0x0db4,
	XK_Thai_totao        = 0x0db5,
	XK_Thai_thothung     = 0x0db6,
	XK_Thai_thothahan    = 0x0db7,
	XK_Thai_thothong     = 0x0db8,
	XK_Thai_nonu         = 0x0db9,
	XK_Thai_bobaimai     = 0x0dba,
	XK_Thai_popla        = 0x0dbb,
	XK_Thai_phophung     = 0x0dbc,
	XK_Thai_fofa         = 0x0dbd,
	XK_Thai_phophan      = 0x0dbe,
	XK_Thai_fofan        = 0x0dbf,
	XK_Thai_phosamphao   = 0x0dc0,
	XK_Thai_moma         = 0x0dc1,
	XK_Thai_yoyak        = 0x0dc2,
	XK_Thai_rorua        = 0x0dc3,
	XK_Thai_ru           = 0x0dc4,
	XK_Thai_loling       = 0x0dc5,
	XK_Thai_lu           = 0x0dc6,
	XK_Thai_wowaen       = 0x0dc7,
	XK_Thai_sosala       = 0x0dc8,
	XK_Thai_sorusi       = 0x0dc9,
	XK_Thai_sosua        = 0x0dca,
	XK_Thai_hohip        = 0x0dcb,
	XK_Thai_lochula      = 0x0dcc,
	XK_Thai_oang         = 0x0dcd,
	XK_Thai_honokhuk     = 0x0dce,
	XK_Thai_paiyannoi    = 0x0dcf,
	XK_Thai_saraa        = 0x0dd0,
	XK_Thai_maihanakat   = 0x0dd1,
	XK_Thai_saraaa       = 0x0dd2,
	XK_Thai_saraam       = 0x0dd3,
	XK_Thai_sarai        = 0x0dd4,
	XK_Thai_saraii       = 0x0dd5,
	XK_Thai_saraue       = 0x0dd6,
	XK_Thai_sarauee      = 0x0dd7,
	XK_Thai_sarau        = 0x0dd8,
	XK_Thai_sarauu       = 0x0dd9,
	XK_Thai_phinthu      = 0x0dda,
	XK_Thai_maihanakat_maitho = 0x0dde,
	XK_Thai_baht         = 0x0ddf,
	XK_Thai_sarae        = 0x0de0,
	XK_Thai_saraae       = 0x0de1,
	XK_Thai_sarao        = 0x0de2,
	XK_Thai_saraaimaimuan = 0x0de3,
	XK_Thai_saraaimaimalai = 0x0de4,
	XK_Thai_lakkhangyao  = 0x0de5,
	XK_Thai_maiyamok     = 0x0de6,
	XK_Thai_maitaikhu    = 0x0de7,
	XK_Thai_maiek        = 0x0de8,
	XK_Thai_maitho       = 0x0de9,
	XK_Thai_maitri       = 0x0dea,
	XK_Thai_maichattawa  = 0x0deb,
	XK_Thai_thanthakhat  = 0x0dec,
	XK_Thai_nikhahit     = 0x0ded,
	XK_Thai_leksun       = 0x0df0,
	XK_Thai_leknung      = 0x0df1,
	XK_Thai_leksong      = 0x0df2,
	XK_Thai_leksam       = 0x0df3,
	XK_Thai_leksi        = 0x0df4,
	XK_Thai_lekha        = 0x0df5,
	XK_Thai_lekhok       = 0x0df6,
	XK_Thai_lekchet      = 0x0df7,
	XK_Thai_lekpaet      = 0x0df8,
	XK_Thai_lekkao       = 0x0df9,
	XK_Hangul            = 0xff31,
	XK_Hangul_Start      = 0xff32,
	XK_Hangul_End        = 0xff33,
	XK_Hangul_Hanja      = 0xff34,
	XK_Hangul_Jamo       = 0xff35,
	XK_Hangul_Romaja     = 0xff36,
	XK_Hangul_Codeinput  = 0xff37,
	XK_Hangul_Jeonja     = 0xff38,
	XK_Hangul_Banja      = 0xff39,
	XK_Hangul_PreHanja   = 0xff3a,
	XK_Hangul_PostHanja  = 0xff3b,
	XK_Hangul_SingleCandidate = 0xff3c,
	XK_Hangul_MultipleCandidate = 0xff3d,
	XK_Hangul_PreviousCandidate = 0xff3e,
	XK_Hangul_Special    = 0xff3f,
	XK_Hangul_switch     = 0xff7e,
	XK_Hangul_Kiyeog     = 0x0ea1,
	XK_Hangul_SsangKiyeog = 0x0ea2,
	XK_Hangul_KiyeogSios = 0x0ea3,
	XK_Hangul_Nieun      = 0x0ea4,
	XK_Hangul_NieunJieuj = 0x0ea5,
	XK_Hangul_NieunHieuh = 0x0ea6,
	XK_Hangul_Dikeud     = 0x0ea7,
	XK_Hangul_SsangDikeud = 0x0ea8,
	XK_Hangul_Rieul      = 0x0ea9,
	XK_Hangul_RieulKiyeog = 0x0eaa,
	XK_Hangul_RieulMieum = 0x0eab,
	XK_Hangul_RieulPieub = 0x0eac,
	XK_Hangul_RieulSios  = 0x0ead,
	XK_Hangul_RieulTieut = 0x0eae,
	XK_Hangul_RieulPhieuf = 0x0eaf,
	XK_Hangul_RieulHieuh = 0x0eb0,
	XK_Hangul_Mieum      = 0x0eb1,
	XK_Hangul_Pieub      = 0x0eb2,
	XK_Hangul_SsangPieub = 0x0eb3,
	XK_Hangul_PieubSios  = 0x0eb4,
	XK_Hangul_Sios       = 0x0eb5,
	XK_Hangul_SsangSios  = 0x0eb6,
	XK_Hangul_Ieung      = 0x0eb7,
	XK_Hangul_Jieuj      = 0x0eb8,
	XK_Hangul_SsangJieuj = 0x0eb9,
	XK_Hangul_Cieuc      = 0x0eba,
	XK_Hangul_Khieuq     = 0x0ebb,
	XK_Hangul_Tieut      = 0x0ebc,
	XK_Hangul_Phieuf     = 0x0ebd,
	XK_Hangul_Hieuh      = 0x0ebe,
	XK_Hangul_A          = 0x0ebf,
	XK_Hangul_AE         = 0x0ec0,
	XK_Hangul_YA         = 0x0ec1,
	XK_Hangul_YAE        = 0x0ec2,
	XK_Hangul_EO         = 0x0ec3,
	XK_Hangul_E          = 0x0ec4,
	XK_Hangul_YEO        = 0x0ec5,
	XK_Hangul_YE         = 0x0ec6,
	XK_Hangul_O          = 0x0ec7,
	XK_Hangul_WA         = 0x0ec8,
	XK_Hangul_WAE        = 0x0ec9,
	XK_Hangul_OE         = 0x0eca,
	XK_Hangul_YO         = 0x0ecb,
	XK_Hangul_U          = 0x0ecc,
	XK_Hangul_WEO        = 0x0ecd,
	XK_Hangul_WE         = 0x0ece,
	XK_Hangul_WI         = 0x0ecf,
	XK_Hangul_YU         = 0x0ed0,
	XK_Hangul_EU         = 0x0ed1,
	XK_Hangul_YI         = 0x0ed2,
	XK_Hangul_I          = 0x0ed3,
	XK_Hangul_J_Kiyeog   = 0x0ed4,
	XK_Hangul_J_SsangKiyeog = 0x0ed5,
	XK_Hangul_J_KiyeogSios = 0x0ed6,
	XK_Hangul_J_Nieun    = 0x0ed7,
	XK_Hangul_J_NieunJieuj = 0x0ed8,
	XK_Hangul_J_NieunHieuh = 0x0ed9,
	XK_Hangul_J_Dikeud   = 0x0eda,
	XK_Hangul_J_Rieul    = 0x0edb,
	XK_Hangul_J_RieulKiyeog = 0x0edc,
	XK_Hangul_J_RieulMieum = 0x0edd,
	XK_Hangul_J_RieulPieub = 0x0ede,
	XK_Hangul_J_RieulSios = 0x0edf,
	XK_Hangul_J_RieulTieut = 0x0ee0,
	XK_Hangul_J_RieulPhieuf = 0x0ee1,
	XK_Hangul_J_RieulHieuh = 0x0ee2,
	XK_Hangul_J_Mieum    = 0x0ee3,
	XK_Hangul_J_Pieub    = 0x0ee4,
	XK_Hangul_J_PieubSios = 0x0ee5,
	XK_Hangul_J_Sios     = 0x0ee6,
	XK_Hangul_J_SsangSios = 0x0ee7,
	XK_Hangul_J_Ieung    = 0x0ee8,
	XK_Hangul_J_Jieuj    = 0x0ee9,
	XK_Hangul_J_Cieuc    = 0x0eea,
	XK_Hangul_J_Khieuq   = 0x0eeb,
	XK_Hangul_J_Tieut    = 0x0eec,
	XK_Hangul_J_Phieuf   = 0x0eed,
	XK_Hangul_J_Hieuh    = 0x0eee,
	XK_Hangul_RieulYeorinHieuh = 0x0eef,
	XK_Hangul_SunkyeongeumMieum = 0x0ef0,
	XK_Hangul_SunkyeongeumPieub = 0x0ef1,
	XK_Hangul_PanSios    = 0x0ef2,
	XK_Hangul_KkogjiDalrinIeung = 0x0ef3,
	XK_Hangul_SunkyeongeumPhieuf = 0x0ef4,
	XK_Hangul_YeorinHieuh = 0x0ef5,
	XK_Hangul_AraeA      = 0x0ef6,
	XK_Hangul_AraeAE     = 0x0ef7,
	XK_Hangul_J_PanSios  = 0x0ef8,
	XK_Hangul_J_KkogjiDalrinIeung = 0x0ef9,
	XK_Hangul_J_YeorinHieuh = 0x0efa,
	XK_Korean_Won        = 0x0eff,
	XK_Armenian_ligature_ew = 0x1000587,
	XK_Armenian_full_stop = 0x1000589,
	XK_Armenian_verjaket = 0x1000589,
	XK_Armenian_separation_mark = 0x100055d,
	XK_Armenian_but      = 0x100055d,
	XK_Armenian_hyphen   = 0x100058a,
	XK_Armenian_yentamna = 0x100058a,
	XK_Armenian_exclam   = 0x100055c,
	XK_Armenian_amanak   = 0x100055c,
	XK_Armenian_accent   = 0x100055b,
	XK_Armenian_shesht   = 0x100055b,
	XK_Armenian_question = 0x100055e,
	XK_Armenian_paruyk   = 0x100055e,
	XK_Armenian_AYB      = 0x1000531,
	XK_Armenian_ayb      = 0x1000561,
	XK_Armenian_BEN      = 0x1000532,
	XK_Armenian_ben      = 0x1000562,
	XK_Armenian_GIM      = 0x1000533,
	XK_Armenian_gim      = 0x1000563,
	XK_Armenian_DA       = 0x1000534,
	XK_Armenian_da       = 0x1000564,
	XK_Armenian_YECH     = 0x1000535,
	XK_Armenian_yech     = 0x1000565,
	XK_Armenian_ZA       = 0x1000536,
	XK_Armenian_za       = 0x1000566,
	XK_Armenian_E        = 0x1000537,
	XK_Armenian_e        = 0x1000567,
	XK_Armenian_AT       = 0x1000538,
	XK_Armenian_at       = 0x1000568,
	XK_Armenian_TO       = 0x1000539,
	XK_Armenian_to       = 0x1000569,
	XK_Armenian_ZHE      = 0x100053a,
	XK_Armenian_zhe      = 0x100056a,
	XK_Armenian_INI      = 0x100053b,
	XK_Armenian_ini      = 0x100056b,
	XK_Armenian_LYUN     = 0x100053c,
	XK_Armenian_lyun     = 0x100056c,
	XK_Armenian_KHE      = 0x100053d,
	XK_Armenian_khe      = 0x100056d,
	XK_Armenian_TSA      = 0x100053e,
	XK_Armenian_tsa      = 0x100056e,
	XK_Armenian_KEN      = 0x100053f,
	XK_Armenian_ken      = 0x100056f,
	XK_Armenian_HO       = 0x1000540,
	XK_Armenian_ho       = 0x1000570,
	XK_Armenian_DZA      = 0x1000541,
	XK_Armenian_dza      = 0x1000571,
	XK_Armenian_GHAT     = 0x1000542,
	XK_Armenian_ghat     = 0x1000572,
	XK_Armenian_TCHE     = 0x1000543,
	XK_Armenian_tche     = 0x1000573,
	XK_Armenian_MEN      = 0x1000544,
	XK_Armenian_men      = 0x1000574,
	XK_Armenian_HI       = 0x1000545,
	XK_Armenian_hi       = 0x1000575,
	XK_Armenian_NU       = 0x1000546,
	XK_Armenian_nu       = 0x1000576,
	XK_Armenian_SHA      = 0x1000547,
	XK_Armenian_sha      = 0x1000577,
	XK_Armenian_VO       = 0x1000548,
	XK_Armenian_vo       = 0x1000578,
	XK_Armenian_CHA      = 0x1000549,
	XK_Armenian_cha      = 0x1000579,
	XK_Armenian_PE       = 0x100054a,
	XK_Armenian_pe       = 0x100057a,
	XK_Armenian_JE       = 0x100054b,
	XK_Armenian_je       = 0x100057b,
	XK_Armenian_RA       = 0x100054c,
	XK_Armenian_ra       = 0x100057c,
	XK_Armenian_SE       = 0x100054d,
	XK_Armenian_se       = 0x100057d,
	XK_Armenian_VEV      = 0x100054e,
	XK_Armenian_vev      = 0x100057e,
	XK_Armenian_TYUN     = 0x100054f,
	XK_Armenian_tyun     = 0x100057f,
	XK_Armenian_RE       = 0x1000550,
	XK_Armenian_re       = 0x1000580,
	XK_Armenian_TSO      = 0x1000551,
	XK_Armenian_tso      = 0x1000581,
	XK_Armenian_VYUN     = 0x1000552,
	XK_Armenian_vyun     = 0x1000582,
	XK_Armenian_PYUR     = 0x1000553,
	XK_Armenian_pyur     = 0x1000583,
	XK_Armenian_KE       = 0x1000554,
	XK_Armenian_ke       = 0x1000584,
	XK_Armenian_O        = 0x1000555,
	XK_Armenian_o        = 0x1000585,
	XK_Armenian_FE       = 0x1000556,
	XK_Armenian_fe       = 0x1000586,
	XK_Armenian_apostrophe = 0x100055a,
	XK_Georgian_an       = 0x10010d0,
	XK_Georgian_ban      = 0x10010d1,
	XK_Georgian_gan      = 0x10010d2,
	XK_Georgian_don      = 0x10010d3,
	XK_Georgian_en       = 0x10010d4,
	XK_Georgian_vin      = 0x10010d5,
	XK_Georgian_zen      = 0x10010d6,
	XK_Georgian_tan      = 0x10010d7,
	XK_Georgian_in       = 0x10010d8,
	XK_Georgian_kan      = 0x10010d9,
	XK_Georgian_las      = 0x10010da,
	XK_Georgian_man      = 0x10010db,
	XK_Georgian_nar      = 0x10010dc,
	XK_Georgian_on       = 0x10010dd,
	XK_Georgian_par      = 0x10010de,
	XK_Georgian_zhar     = 0x10010df,
	XK_Georgian_rae      = 0x10010e0,
	XK_Georgian_san      = 0x10010e1,
	XK_Georgian_tar      = 0x10010e2,
	XK_Georgian_un       = 0x10010e3,
	XK_Georgian_phar     = 0x10010e4,
	XK_Georgian_khar     = 0x10010e5,
	XK_Georgian_ghan     = 0x10010e6,
	XK_Georgian_qar      = 0x10010e7,
	XK_Georgian_shin     = 0x10010e8,
	XK_Georgian_chin     = 0x10010e9,
	XK_Georgian_can      = 0x10010ea,
	XK_Georgian_jil      = 0x10010eb,
	XK_Georgian_cil      = 0x10010ec,
	XK_Georgian_char     = 0x10010ed,
	XK_Georgian_xan      = 0x10010ee,
	XK_Georgian_jhan     = 0x10010ef,
	XK_Georgian_hae      = 0x10010f0,
	XK_Georgian_he       = 0x10010f1,
	XK_Georgian_hie      = 0x10010f2,
	XK_Georgian_we       = 0x10010f3,
	XK_Georgian_har      = 0x10010f4,
	XK_Georgian_hoe      = 0x10010f5,
	XK_Georgian_fi       = 0x10010f6,
	XK_Xabovedot         = 0x1001e8a,
	XK_Ibreve            = 0x100012c,
	XK_Zstroke           = 0x10001b5,
	XK_Gcaron            = 0x10001e6,
	XK_Ocaron            = 0x10001d1,
	XK_Obarred           = 0x100019f,
	XK_xabovedot         = 0x1001e8b,
	XK_ibreve            = 0x100012d,
	XK_zstroke           = 0x10001b6,
	XK_gcaron            = 0x10001e7,
	XK_ocaron            = 0x10001d2,
	XK_obarred           = 0x1000275,
	XK_SCHWA             = 0x100018f,
	XK_schwa             = 0x1000259,
	XK_Lbelowdot         = 0x1001e36,
	XK_lbelowdot         = 0x1001e37,
	XK_Abelowdot         = 0x1001ea0,
	XK_abelowdot         = 0x1001ea1,
	XK_Ahook             = 0x1001ea2,
	XK_ahook             = 0x1001ea3,
	XK_Acircumflexacute  = 0x1001ea4,
	XK_acircumflexacute  = 0x1001ea5,
	XK_Acircumflexgrave  = 0x1001ea6,
	XK_acircumflexgrave  = 0x1001ea7,
	XK_Acircumflexhook   = 0x1001ea8,
	XK_acircumflexhook   = 0x1001ea9,
	XK_Acircumflextilde  = 0x1001eaa,
	XK_acircumflextilde  = 0x1001eab,
	XK_Acircumflexbelowdot = 0x1001eac,
	XK_acircumflexbelowdot = 0x1001ead,
	XK_Abreveacute       = 0x1001eae,
	XK_abreveacute       = 0x1001eaf,
	XK_Abrevegrave       = 0x1001eb0,
	XK_abrevegrave       = 0x1001eb1,
	XK_Abrevehook        = 0x1001eb2,
	XK_abrevehook        = 0x1001eb3,
	XK_Abrevetilde       = 0x1001eb4,
	XK_abrevetilde       = 0x1001eb5,
	XK_Abrevebelowdot    = 0x1001eb6,
	XK_abrevebelowdot    = 0x1001eb7,
	XK_Ebelowdot         = 0x1001eb8,
	XK_ebelowdot         = 0x1001eb9,
	XK_Ehook             = 0x1001eba,
	XK_ehook             = 0x1001ebb,
	XK_Etilde            = 0x1001ebc,
	XK_etilde            = 0x1001ebd,
	XK_Ecircumflexacute  = 0x1001ebe,
	XK_ecircumflexacute  = 0x1001ebf,
	XK_Ecircumflexgrave  = 0x1001ec0,
	XK_ecircumflexgrave  = 0x1001ec1,
	XK_Ecircumflexhook   = 0x1001ec2,
	XK_ecircumflexhook   = 0x1001ec3,
	XK_Ecircumflextilde  = 0x1001ec4,
	XK_ecircumflextilde  = 0x1001ec5,
	XK_Ecircumflexbelowdot = 0x1001ec6,
	XK_ecircumflexbelowdot = 0x1001ec7,
	XK_Ihook             = 0x1001ec8,
	XK_ihook             = 0x1001ec9,
	XK_Ibelowdot         = 0x1001eca,
	XK_ibelowdot         = 0x1001ecb,
	XK_Obelowdot         = 0x1001ecc,
	XK_obelowdot         = 0x1001ecd,
	XK_Ohook             = 0x1001ece,
	XK_ohook             = 0x1001ecf,
	XK_Ocircumflexacute  = 0x1001ed0,
	XK_ocircumflexacute  = 0x1001ed1,
	XK_Ocircumflexgrave  = 0x1001ed2,
	XK_ocircumflexgrave  = 0x1001ed3,
	XK_Ocircumflexhook   = 0x1001ed4,
	XK_ocircumflexhook   = 0x1001ed5,
	XK_Ocircumflextilde  = 0x1001ed6,
	XK_ocircumflextilde  = 0x1001ed7,
	XK_Ocircumflexbelowdot = 0x1001ed8,
	XK_ocircumflexbelowdot = 0x1001ed9,
	XK_Ohornacute        = 0x1001eda,
	XK_ohornacute        = 0x1001edb,
	XK_Ohorngrave        = 0x1001edc,
	XK_ohorngrave        = 0x1001edd,
	XK_Ohornhook         = 0x1001ede,
	XK_ohornhook         = 0x1001edf,
	XK_Ohorntilde        = 0x1001ee0,
	XK_ohorntilde        = 0x1001ee1,
	XK_Ohornbelowdot     = 0x1001ee2,
	XK_ohornbelowdot     = 0x1001ee3,
	XK_Ubelowdot         = 0x1001ee4,
	XK_ubelowdot         = 0x1001ee5,
	XK_Uhook             = 0x1001ee6,
	XK_uhook             = 0x1001ee7,
	XK_Uhornacute        = 0x1001ee8,
	XK_uhornacute        = 0x1001ee9,
	XK_Uhorngrave        = 0x1001eea,
	XK_uhorngrave        = 0x1001eeb,
	XK_Uhornhook         = 0x1001eec,
	XK_uhornhook         = 0x1001eed,
	XK_Uhorntilde        = 0x1001eee,
	XK_uhorntilde        = 0x1001eef,
	XK_Uhornbelowdot     = 0x1001ef0,
	XK_uhornbelowdot     = 0x1001ef1,
	XK_Ybelowdot         = 0x1001ef4,
	XK_ybelowdot         = 0x1001ef5,
	XK_Yhook             = 0x1001ef6,
	XK_yhook             = 0x1001ef7,
	XK_Ytilde            = 0x1001ef8,
	XK_ytilde            = 0x1001ef9,
	XK_Ohorn             = 0x10001a0,
	XK_ohorn             = 0x10001a1,
	XK_Uhorn             = 0x10001af,
	XK_uhorn             = 0x10001b0,
	XK_EcuSign           = 0x10020a0,
	XK_ColonSign         = 0x10020a1,
	XK_CruzeiroSign      = 0x10020a2,
	XK_FFrancSign        = 0x10020a3,
	XK_LiraSign          = 0x10020a4,
	XK_MillSign          = 0x10020a5,
	XK_NairaSign         = 0x10020a6,
	XK_PesetaSign        = 0x10020a7,
	XK_RupeeSign         = 0x10020a8,
	XK_WonSign           = 0x10020a9,
	XK_NewSheqelSign     = 0x10020aa,
	XK_DongSign          = 0x10020ab,
	XK_EuroSign          = 0x20ac,
	XK_zerosuperior      = 0x1002070,
	XK_foursuperior      = 0x1002074,
	XK_fivesuperior      = 0x1002075,
	XK_sixsuperior       = 0x1002076,
	XK_sevensuperior     = 0x1002077,
	XK_eightsuperior     = 0x1002078,
	XK_ninesuperior      = 0x1002079,
	XK_zerosubscript     = 0x1002080,
	XK_onesubscript      = 0x1002081,
	XK_twosubscript      = 0x1002082,
	XK_threesubscript    = 0x1002083,
	XK_foursubscript     = 0x1002084,
	XK_fivesubscript     = 0x1002085,
	XK_sixsubscript      = 0x1002086,
	XK_sevensubscript    = 0x1002087,
	XK_eightsubscript    = 0x1002088,
	XK_ninesubscript     = 0x1002089,
	XK_partdifferential  = 0x1002202,
	XK_emptyset          = 0x1002205,
	XK_elementof         = 0x1002208,
	XK_notelementof      = 0x1002209,
	XK_containsas        = 0x100220B,
	XK_squareroot        = 0x100221A,
	XK_cuberoot          = 0x100221B,
	XK_fourthroot        = 0x100221C,
	XK_dintegral         = 0x100222C,
	XK_tintegral         = 0x100222D,
	XK_because           = 0x1002235,
	XK_approxeq          = 0x1002248,
	XK_notapproxeq       = 0x1002247,
	XK_notidentical      = 0x1002262,
	XK_stricteq          = 0x1002263,
	XK_braille_dot_1     = 0xfff1,
	XK_braille_dot_2     = 0xfff2,
	XK_braille_dot_3     = 0xfff3,
	XK_braille_dot_4     = 0xfff4,
	XK_braille_dot_5     = 0xfff5,
	XK_braille_dot_6     = 0xfff6,
	XK_braille_dot_7     = 0xfff7,
	XK_braille_dot_8     = 0xfff8,
	XK_braille_dot_9     = 0xfff9,
	XK_braille_dot_10    = 0xfffa,
	XK_braille_blank     = 0x1002800,
	XK_braille_dots_1    = 0x1002801,
	XK_braille_dots_2    = 0x1002802,
	XK_braille_dots_12   = 0x1002803,
	XK_braille_dots_3    = 0x1002804,
	XK_braille_dots_13   = 0x1002805,
	XK_braille_dots_23   = 0x1002806,
	XK_braille_dots_123  = 0x1002807,
	XK_braille_dots_4    = 0x1002808,
	XK_braille_dots_14   = 0x1002809,
	XK_braille_dots_24   = 0x100280a,
	XK_braille_dots_124  = 0x100280b,
	XK_braille_dots_34   = 0x100280c,
	XK_braille_dots_134  = 0x100280d,
	XK_braille_dots_234  = 0x100280e,
	XK_braille_dots_1234 = 0x100280f,
	XK_braille_dots_5    = 0x1002810,
	XK_braille_dots_15   = 0x1002811,
	XK_braille_dots_25   = 0x1002812,
	XK_braille_dots_125  = 0x1002813,
	XK_braille_dots_35   = 0x1002814,
	XK_braille_dots_135  = 0x1002815,
	XK_braille_dots_235  = 0x1002816,
	XK_braille_dots_1235 = 0x1002817,
	XK_braille_dots_45   = 0x1002818,
	XK_braille_dots_145  = 0x1002819,
	XK_braille_dots_245  = 0x100281a,
	XK_braille_dots_1245 = 0x100281b,
	XK_braille_dots_345  = 0x100281c,
	XK_braille_dots_1345 = 0x100281d,
	XK_braille_dots_2345 = 0x100281e,
	XK_braille_dots_12345 = 0x100281f,
	XK_braille_dots_6    = 0x1002820,
	XK_braille_dots_16   = 0x1002821,
	XK_braille_dots_26   = 0x1002822,
	XK_braille_dots_126  = 0x1002823,
	XK_braille_dots_36   = 0x1002824,
	XK_braille_dots_136  = 0x1002825,
	XK_braille_dots_236  = 0x1002826,
	XK_braille_dots_1236 = 0x1002827,
	XK_braille_dots_46   = 0x1002828,
	XK_braille_dots_146  = 0x1002829,
	XK_braille_dots_246  = 0x100282a,
	XK_braille_dots_1246 = 0x100282b,
	XK_braille_dots_346  = 0x100282c,
	XK_braille_dots_1346 = 0x100282d,
	XK_braille_dots_2346 = 0x100282e,
	XK_braille_dots_12346 = 0x100282f,
	XK_braille_dots_56   = 0x1002830,
	XK_braille_dots_156  = 0x1002831,
	XK_braille_dots_256  = 0x1002832,
	XK_braille_dots_1256 = 0x1002833,
	XK_braille_dots_356  = 0x1002834,
	XK_braille_dots_1356 = 0x1002835,
	XK_braille_dots_2356 = 0x1002836,
	XK_braille_dots_12356 = 0x1002837,
	XK_braille_dots_456  = 0x1002838,
	XK_braille_dots_1456 = 0x1002839,
	XK_braille_dots_2456 = 0x100283a,
	XK_braille_dots_12456 = 0x100283b,
	XK_braille_dots_3456 = 0x100283c,
	XK_braille_dots_13456 = 0x100283d,
	XK_braille_dots_23456 = 0x100283e,
	XK_braille_dots_123456 = 0x100283f,
	XK_braille_dots_7    = 0x1002840,
	XK_braille_dots_17   = 0x1002841,
	XK_braille_dots_27   = 0x1002842,
	XK_braille_dots_127  = 0x1002843,
	XK_braille_dots_37   = 0x1002844,
	XK_braille_dots_137  = 0x1002845,
	XK_braille_dots_237  = 0x1002846,
	XK_braille_dots_1237 = 0x1002847,
	XK_braille_dots_47   = 0x1002848,
	XK_braille_dots_147  = 0x1002849,
	XK_braille_dots_247  = 0x100284a,
	XK_braille_dots_1247 = 0x100284b,
	XK_braille_dots_347  = 0x100284c,
	XK_braille_dots_1347 = 0x100284d,
	XK_braille_dots_2347 = 0x100284e,
	XK_braille_dots_12347 = 0x100284f,
	XK_braille_dots_57   = 0x1002850,
	XK_braille_dots_157  = 0x1002851,
	XK_braille_dots_257  = 0x1002852,
	XK_braille_dots_1257 = 0x1002853,
	XK_braille_dots_357  = 0x1002854,
	XK_braille_dots_1357 = 0x1002855,
	XK_braille_dots_2357 = 0x1002856,
	XK_braille_dots_12357 = 0x1002857,
	XK_braille_dots_457  = 0x1002858,
	XK_braille_dots_1457 = 0x1002859,
	XK_braille_dots_2457 = 0x100285a,
	XK_braille_dots_12457 = 0x100285b,
	XK_braille_dots_3457 = 0x100285c,
	XK_braille_dots_13457 = 0x100285d,
	XK_braille_dots_23457 = 0x100285e,
	XK_braille_dots_123457 = 0x100285f,
	XK_braille_dots_67   = 0x1002860,
	XK_braille_dots_167  = 0x1002861,
	XK_braille_dots_267  = 0x1002862,
	XK_braille_dots_1267 = 0x1002863,
	XK_braille_dots_367  = 0x1002864,
	XK_braille_dots_1367 = 0x1002865,
	XK_braille_dots_2367 = 0x1002866,
	XK_braille_dots_12367 = 0x1002867,
	XK_braille_dots_467  = 0x1002868,
	XK_braille_dots_1467 = 0x1002869,
	XK_braille_dots_2467 = 0x100286a,
	XK_braille_dots_12467 = 0x100286b,
	XK_braille_dots_3467 = 0x100286c,
	XK_braille_dots_13467 = 0x100286d,
	XK_braille_dots_23467 = 0x100286e,
	XK_braille_dots_123467 = 0x100286f,
	XK_braille_dots_567  = 0x1002870,
	XK_braille_dots_1567 = 0x1002871,
	XK_braille_dots_2567 = 0x1002872,
	XK_braille_dots_12567 = 0x1002873,
	XK_braille_dots_3567 = 0x1002874,
	XK_braille_dots_13567 = 0x1002875,
	XK_braille_dots_23567 = 0x1002876,
	XK_braille_dots_123567 = 0x1002877,
	XK_braille_dots_4567 = 0x1002878,
	XK_braille_dots_14567 = 0x1002879,
	XK_braille_dots_24567 = 0x100287a,
	XK_braille_dots_124567 = 0x100287b,
	XK_braille_dots_34567 = 0x100287c,
	XK_braille_dots_134567 = 0x100287d,
	XK_braille_dots_234567 = 0x100287e,
	XK_braille_dots_1234567 = 0x100287f,
	XK_braille_dots_8    = 0x1002880,
	XK_braille_dots_18   = 0x1002881,
	XK_braille_dots_28   = 0x1002882,
	XK_braille_dots_128  = 0x1002883,
	XK_braille_dots_38   = 0x1002884,
	XK_braille_dots_138  = 0x1002885,
	XK_braille_dots_238  = 0x1002886,
	XK_braille_dots_1238 = 0x1002887,
	XK_braille_dots_48   = 0x1002888,
	XK_braille_dots_148  = 0x1002889,
	XK_braille_dots_248  = 0x100288a,
	XK_braille_dots_1248 = 0x100288b,
	XK_braille_dots_348  = 0x100288c,
	XK_braille_dots_1348 = 0x100288d,
	XK_braille_dots_2348 = 0x100288e,
	XK_braille_dots_12348 = 0x100288f,
	XK_braille_dots_58   = 0x1002890,
	XK_braille_dots_158  = 0x1002891,
	XK_braille_dots_258  = 0x1002892,
	XK_braille_dots_1258 = 0x1002893,
	XK_braille_dots_358  = 0x1002894,
	XK_braille_dots_1358 = 0x1002895,
	XK_braille_dots_2358 = 0x1002896,
	XK_braille_dots_12358 = 0x1002897,
	XK_braille_dots_458  = 0x1002898,
	XK_braille_dots_1458 = 0x1002899,
	XK_braille_dots_2458 = 0x100289a,
	XK_braille_dots_12458 = 0x100289b,
	XK_braille_dots_3458 = 0x100289c,
	XK_braille_dots_13458 = 0x100289d,
	XK_braille_dots_23458 = 0x100289e,
	XK_braille_dots_123458 = 0x100289f,
	XK_braille_dots_68   = 0x10028a0,
	XK_braille_dots_168  = 0x10028a1,
	XK_braille_dots_268  = 0x10028a2,
	XK_braille_dots_1268 = 0x10028a3,
	XK_braille_dots_368  = 0x10028a4,
	XK_braille_dots_1368 = 0x10028a5,
	XK_braille_dots_2368 = 0x10028a6,
	XK_braille_dots_12368 = 0x10028a7,
	XK_braille_dots_468  = 0x10028a8,
	XK_braille_dots_1468 = 0x10028a9,
	XK_braille_dots_2468 = 0x10028aa,
	XK_braille_dots_12468 = 0x10028ab,
	XK_braille_dots_3468 = 0x10028ac,
	XK_braille_dots_13468 = 0x10028ad,
	XK_braille_dots_23468 = 0x10028ae,
	XK_braille_dots_123468 = 0x10028af,
	XK_braille_dots_568  = 0x10028b0,
	XK_braille_dots_1568 = 0x10028b1,
	XK_braille_dots_2568 = 0x10028b2,
	XK_braille_dots_12568 = 0x10028b3,
	XK_braille_dots_3568 = 0x10028b4,
	XK_braille_dots_13568 = 0x10028b5,
	XK_braille_dots_23568 = 0x10028b6,
	XK_braille_dots_123568 = 0x10028b7,
	XK_braille_dots_4568 = 0x10028b8,
	XK_braille_dots_14568 = 0x10028b9,
	XK_braille_dots_24568 = 0x10028ba,
	XK_braille_dots_124568 = 0x10028bb,
	XK_braille_dots_34568 = 0x10028bc,
	XK_braille_dots_134568 = 0x10028bd,
	XK_braille_dots_234568 = 0x10028be,
	XK_braille_dots_1234568 = 0x10028bf,
	XK_braille_dots_78   = 0x10028c0,
	XK_braille_dots_178  = 0x10028c1,
	XK_braille_dots_278  = 0x10028c2,
	XK_braille_dots_1278 = 0x10028c3,
	XK_braille_dots_378  = 0x10028c4,
	XK_braille_dots_1378 = 0x10028c5,
	XK_braille_dots_2378 = 0x10028c6,
	XK_braille_dots_12378 = 0x10028c7,
	XK_braille_dots_478  = 0x10028c8,
	XK_braille_dots_1478 = 0x10028c9,
	XK_braille_dots_2478 = 0x10028ca,
	XK_braille_dots_12478 = 0x10028cb,
	XK_braille_dots_3478 = 0x10028cc,
	XK_braille_dots_13478 = 0x10028cd,
	XK_braille_dots_23478 = 0x10028ce,
	XK_braille_dots_123478 = 0x10028cf,
	XK_braille_dots_578  = 0x10028d0,
	XK_braille_dots_1578 = 0x10028d1,
	XK_braille_dots_2578 = 0x10028d2,
	XK_braille_dots_12578 = 0x10028d3,
	XK_braille_dots_3578 = 0x10028d4,
	XK_braille_dots_13578 = 0x10028d5,
	XK_braille_dots_23578 = 0x10028d6,
	XK_braille_dots_123578 = 0x10028d7,
	XK_braille_dots_4578 = 0x10028d8,
	XK_braille_dots_14578 = 0x10028d9,
	XK_braille_dots_24578 = 0x10028da,
	XK_braille_dots_124578 = 0x10028db,
	XK_braille_dots_34578 = 0x10028dc,
	XK_braille_dots_134578 = 0x10028dd,
	XK_braille_dots_234578 = 0x10028de,
	XK_braille_dots_1234578 = 0x10028df,
	XK_braille_dots_678  = 0x10028e0,
	XK_braille_dots_1678 = 0x10028e1,
	XK_braille_dots_2678 = 0x10028e2,
	XK_braille_dots_12678 = 0x10028e3,
	XK_braille_dots_3678 = 0x10028e4,
	XK_braille_dots_13678 = 0x10028e5,
	XK_braille_dots_23678 = 0x10028e6,
	XK_braille_dots_123678 = 0x10028e7,
	XK_braille_dots_4678 = 0x10028e8,
	XK_braille_dots_14678 = 0x10028e9,
	XK_braille_dots_24678 = 0x10028ea,
	XK_braille_dots_124678 = 0x10028eb,
	XK_braille_dots_34678 = 0x10028ec,
	XK_braille_dots_134678 = 0x10028ed,
	XK_braille_dots_234678 = 0x10028ee,
	XK_braille_dots_1234678 = 0x10028ef,
	XK_braille_dots_5678 = 0x10028f0,
	XK_braille_dots_15678 = 0x10028f1,
	XK_braille_dots_25678 = 0x10028f2,
	XK_braille_dots_125678 = 0x10028f3,
	XK_braille_dots_35678 = 0x10028f4,
	XK_braille_dots_135678 = 0x10028f5,
	XK_braille_dots_235678 = 0x10028f6,
	XK_braille_dots_1235678 = 0x10028f7,
	XK_braille_dots_45678 = 0x10028f8,
	XK_braille_dots_145678 = 0x10028f9,
	XK_braille_dots_245678 = 0x10028fa,
	XK_braille_dots_1245678 = 0x10028fb,
	XK_braille_dots_345678 = 0x10028fc,
	XK_braille_dots_1345678 = 0x10028fd,
	XK_braille_dots_2345678 = 0x10028fe,
	XK_braille_dots_12345678 = 0x10028ff,
};
]]

--from X11/Xutil.h

local C = ffi.C
function X.IsKeypadKey(keysym) return keysym >= C.XK_KP_Space and keysym <= C.XK_KP_Equal end
function X.IsPrivateKeypadKey(keysym) return keysym >= 0x11000000 and keysym <= 0x1100FFFF end
function X.IsCursorKey(keysym) return keysym >= C.XK_Home and keysym < C.XK_Select end
function X.IsPFKey(keysym) return keysym >= C.XK_KP_F1 and keysym <= C.XK_KP_F4 end
function X.IsFunctionKey(keysym) return keysym >= C.XK_F1 and keysym <= C.XK_F35 end
function X.IsMiscFunctionKey(keysym) return keysym >= C.XK_Select and keysym <= C.XK_Break end
function X.IsModifierKey(keysym)
	return
		(keysym >= C.XK_Shift_L and keysym <= C.XK_Hyper_R) or
		(keysym >= C.XK_ISO_Lock and keysym <= C.XK_ISO_Last_Group_Lock) or
		keysym == C.XK_Mode_switch or
		keysym == C.XK_Num_Lock
end
