+kll_hid_lookup_dictionary = dict()
+kll_hid_lookup_dictionary['USBCode'] = dict([
+ # USB HID Keyboard Codes
+ ( 'A', ('USB', 0x04) ),
+ ( 'B', ('USB', 0x05) ),
+ ( 'C', ('USB', 0x06) ),
+ ( 'D', ('USB', 0x07) ),
+ ( 'E', ('USB', 0x08) ),
+ ( 'F', ('USB', 0x09) ),
+ ( 'G', ('USB', 0x0A) ),
+ ( 'H', ('USB', 0x0B) ),
+ ( 'I', ('USB', 0x0C) ),
+ ( 'J', ('USB', 0x0D) ),
+ ( 'K', ('USB', 0x0E) ),
+ ( 'L', ('USB', 0x0F) ),
+ ( 'M', ('USB', 0x10) ),
+ ( 'N', ('USB', 0x11) ),
+ ( 'O', ('USB', 0x12) ),
+ ( 'P', ('USB', 0x13) ),
+ ( 'Q', ('USB', 0x14) ),
+ ( 'R', ('USB', 0x15) ),
+ ( 'S', ('USB', 0x16) ),
+ ( 'T', ('USB', 0x17) ),
+ ( 'U', ('USB', 0x18) ),
+ ( 'V', ('USB', 0x19) ),
+ ( 'W', ('USB', 0x1A) ),
+ ( 'X', ('USB', 0x1B) ),
+ ( 'Y', ('USB', 0x1C) ),
+ ( 'Z', ('USB', 0x1D) ),
+ ( '1', ('USB', 0x1E) ),
+ ( '2', ('USB', 0x1F) ),
+ ( '3', ('USB', 0x20) ),
+ ( '4', ('USB', 0x21) ),
+ ( '5', ('USB', 0x22) ),
+ ( '6', ('USB', 0x23) ),
+ ( '7', ('USB', 0x24) ),
+ ( '8', ('USB', 0x25) ),
+ ( '9', ('USB', 0x26) ),
+ ( '0', ('USB', 0x27) ),
+ ( 'ENTER', ('USB', 0x28) ),
+ ( 'ESC', ('USB', 0x29) ), ( 'ESCAPE', ('USB', 0x29) ),
+ ( 'BACKSPACE', ('USB', 0x2A) ),
+ ( 'TAB', ('USB', 0x2B) ),
+ ( 'SPACE', ('USB', 0x2C) ), ( 'SPACEBAR', ('USB', 0x2C) ),
+ ( '-', ('USB', 0x2D) ), ( 'MINUS', ('USB', 0x2D) ),
+ ( '=', ('USB', 0x2E) ), ( 'EQUALS', ('USB', 0x2E) ), ( 'EQUAL', ('USB', 0x2E) ),
+ ( '[', ('USB', 0x2F) ), ( 'LEFT BRACKET', ('USB', 0x2F) ), ( 'LBRACKET', ('USB', 0x2F) ), ( 'LEFT BRACE', ('USB', 0x2F) ), ( 'LBRACE', ('USB', 0x2F) ),
+ ( ']', ('USB', 0x30) ), ( 'RIGHT BRACKET', ('USB', 0x30) ), ( 'RBRACKET', ('USB', 0x30) ), ( 'RIGHT BRACE', ('USB', 0x30) ), ( 'RBRACE', ('USB', 0x30) ),
+ ( '\\', ('USB', 0x31) ), ( 'BACKSLASH', ('USB', 0x31) ),
+ ( '#', ('USB', 0x32) ), ( 'NUMBER', ('USB', 0x32) ), ( 'HASH', ('USB', 0x32) ),
+ ( ';', ('USB', 0x33) ), ( 'SEMICOLON', ('USB', 0x33) ),
+ ( "'", ('USB', 0x34) ), ( 'QUOTE', ('USB', 0x34) ), ( 'SINGLE QUOTE', ('USB', 0x34) ),
+ ( '`', ('USB', 0x35) ), ( 'BACKTICK', ('USB', 0x35) ),
+ ( ',', ('USB', 0x36) ), ( 'COMMA', ('USB', 0x36) ),
+ ( '.', ('USB', 0x37) ), ( 'PERIOD', ('USB', 0x37) ),
+ ( '/', ('USB', 0x38) ), ( 'SLASH', ('USB', 0x38) ),
+ ( 'CAPSLOCK', ('USB', 0x39) ), { 'CAPS LOCK', ('USB', 0x39) },
+ ( 'F1', ('USB', 0x3A) ),
+ ( 'F2', ('USB', 0x3B) ),
+ ( 'F3', ('USB', 0x3C) ),
+ ( 'F4', ('USB', 0x3D) ),
+ ( 'F5', ('USB', 0x3E) ),
+ ( 'F6', ('USB', 0x3F) ),
+ ( 'F7', ('USB', 0x40) ),
+ ( 'F8', ('USB', 0x41) ),
+ ( 'F9', ('USB', 0x42) ),
+ ( 'F10', ('USB', 0x43) ),
+ ( 'F11', ('USB', 0x44) ),
+ ( 'F12', ('USB', 0x45) ),
+ ( 'PRINTSCREEN', ('USB', 0x46) ), ( 'PRINT SCREEN', ('USB', 0x46) ),
+ ( 'SCROLLLOCK', ('USB', 0x47) ), ( 'SCROLL LOCK', ('USB', 0x47) ),
+ ( 'PAUSE', ('USB', 0x48) ),
+ ( 'INSERT', ('USB', 0x49) ),
+ ( 'HOME', ('USB', 0x4A) ),
+ ( 'PAGEUP', ('USB', 0x4B) ), ( 'PAGE UP', ('USB', 0x4B) ),
+ ( 'DELETE', ('USB', 0x4C) ),
+ ( 'END', ('USB', 0x4D) ),
+ ( 'PAGEDOWN', ('USB', 0x4E) ), ( 'PAGE DOWN', ('USB', 0x4E) ),
+ ( 'RIGHT', ('USB', 0x4F) ),
+ ( 'LEFT', ('USB', 0x50) ),
+ ( 'DOWN', ('USB', 0x51) ),
+ ( 'UP', ('USB', 0x52) ),
+ ( 'NUMLOCK', ('USB', 0x53) ), ( 'NUM LOCK', ('USB', 0x53) ),
+ ( 'P/', ('USB', 0x54) ), ( 'KEYPAD SLASH', ('USB', 0x54) ),
+ ( 'P*', ('USB', 0x55) ), ( 'KEYPAD ASTERIX', ('USB', 0x55) ), ( 'KEYPAD ASTERISK', ('USB', 0x55) ),
+ ( 'P-', ('USB', 0x56) ), ( 'KEYPAD MINUS', ('USB', 0x56) ),
+ ( 'P+', ('USB', 0x57) ), ( 'KEYPAD PLUS', ('USB', 0x57) ),
+ ( 'PENTER', ('USB', 0x58) ), ( 'KEYPAD ENTER', ('USB', 0x58) ),
+ ( 'P1', ('USB', 0x59) ), ( 'KEYPAD 1', ('USB', 0x59) ),
+ ( 'P2', ('USB', 0x5A) ), ( 'KEYPAD 2', ('USB', 0x5A) ),
+ ( 'P3', ('USB', 0x5B) ), ( 'KEYPAD 3', ('USB', 0x5B) ),
+ ( 'P4', ('USB', 0x5C) ), ( 'KEYPAD 4', ('USB', 0x5C) ),
+ ( 'P5', ('USB', 0x5D) ), ( 'KEYPAD 5', ('USB', 0x5D) ),
+ ( 'P6', ('USB', 0x5E) ), ( 'KEYPAD 6', ('USB', 0x5E) ),
+ ( 'P7', ('USB', 0x5F) ), ( 'KEYPAD 7', ('USB', 0x5F) ),
+ ( 'P8', ('USB', 0x60) ), ( 'KEYPAD 8', ('USB', 0x60) ),
+ ( 'P9', ('USB', 0x61) ), ( 'KEYPAD 9', ('USB', 0x61) ),
+ ( 'P0', ('USB', 0x62) ), ( 'KEYPAD 0', ('USB', 0x62) ),
+ ( 'P.', ('USB', 0x63) ), ( 'KEYPAD PERIOD', ('USB', 0x63) ),
+ ( 'ISO/', ('USB', 0x64) ), ( 'ISO SLASH', ('USB', 0x64) ),
+ ( 'APP', ('USB', 0x65) ),
+
+ ( 'P=', ('USB', 0x67) ), ( 'KEYPAD EQUAL', ('USB', 0x67) ),
+ ( 'F13', ('USB', 0x68) ),
+ ( 'F14', ('USB', 0x69) ),
+ ( 'F15', ('USB', 0x6A) ),
+ ( 'F16', ('USB', 0x6B) ),
+ ( 'F17', ('USB', 0x6C) ),
+ ( 'F18', ('USB', 0x6D) ),
+ ( 'F19', ('USB', 0x6E) ),
+ ( 'F20', ('USB', 0x6F) ),
+ ( 'F21', ('USB', 0x70) ),
+ ( 'F22', ('USB', 0x71) ),
+ ( 'F23', ('USB', 0x72) ),
+ ( 'F24', ('USB', 0x73) ),
+ ( 'EXEC', ('USB', 0x74) ),
+ ( 'HELP', ('USB', 0x75) ),
+ ( 'MENU', ('USB', 0x76) ),
+ ( 'SELECT', ('USB', 0x77) ),
+ ( 'STOP', ('USB', 0x78) ),
+ ( 'AGAIN', ('USB', 0x79) ),
+ ( 'UNDO', ('USB', 0x7A) ),
+ ( 'CUT', ('USB', 0x7B) ),
+ ( 'COPY', ('USB', 0x7C) ),
+ ( 'PASTE', ('USB', 0x7D) ),
+ ( 'FIND', ('USB', 0x7E) ),
+ ( 'MUTE', ('USB', 0x7F) ),
+ ( 'VOLUMEUP', ('USB', 0x80) ), ( 'VOLUME UP', ('USB', 0x80) ),
+ ( 'VOLUMEDOWN', ('USB', 0x81) ), ( 'VOLUME DOWN', ('USB', 0x81) ),
+ ( 'CAPSTOGGLELOCK', ('USB', 0x82) ), ( 'CAPS TOGGLE LOCK', ('USB', 0x82) ),
+ ( 'NUMTOGGLELOCK', ('USB', 0x83) ), ( 'NUM TOGGLE LOCK', ('USB', 0x83) ),
+ ( 'SCROLLTOGGLELOCK', ('USB', 0x84) ), ( 'SCROLL TOGGLE LOCK', ('USB', 0x84) ),
+ ( 'P,', ('USB', 0x85) ),
+ ( 'KEYPAD AS400 EQUAL', ('USB', 0x86) ),
+ ( 'INTER1', ('USB', 0x87) ), ( 'KANJI1', ('USB', 0x87) ),
+ ( 'INTER2', ('USB', 0x88) ), ( 'KANJI2', ('USB', 0x88) ), ( 'KANA', ('USB', 0x88) ), ( 'カナ', ('USB', 0x88) ),
+ ( 'INTER3', ('USB', 0x89) ), ( 'KANJI3', ('USB', 0x89) ), ( 'YEN', ('USB', 0x89) ), ( '¥', ('USB', 0x89) ),
+ ( 'INTER4', ('USB', 0x8A) ), ( 'KANJI4', ('USB', 0x8A) ), ( 'HENKAN', ('USB', 0x8A) ), ( '変換', ('USB', 0x8A) ),
+ ( 'INTER5', ('USB', 0x8B) ), ( 'KANJI5', ('USB', 0x8B) ), ( 'MUHENKAN', ('USB', 0x8B) ), ( '無変換', ('USB', 0x8B) ),
+ ( 'INTER6', ('USB', 0x8C) ), ( 'KANJI6', ('USB', 0x8C) ),
+ ( 'INTER7', ('USB', 0x8D) ), ( 'KANJI7', ('USB', 0x8D) ), ( 'BYTETOGGLE', ('USB', 0x8D) ),
+ ( 'INTER8', ('USB', 0x8E) ), ( 'KANJI8', ('USB', 0x8E) ),
+ ( 'INTER9', ('USB', 0x8F) ), ( 'KANJI9', ('USB', 0x8F) ),
+ ( 'LANG1', ('USB', 0x90) ), ( 'HANGULENGLISH', ('USB', 0x90) ), ( 'HANGUL ENGLISH', ('USB', 0x90) ), ( '한/영', ('USB', 0x90) ),
+ ( 'LANG2', ('USB', 0x91) ), ( 'HANJA', ('USB', 0x91) ), ( 'EISU', ('USB', 0x91) ), ( '英数/한자', ('USB', 0x91) ),
+ ( 'LANG3', ('USB', 0x92) ), ( 'KATAKANA', ('USB', 0x92) ), ( 'カタカナ', ('USB', 0x92) ),
+ ( 'LANG4', ('USB', 0x93) ), ( 'HIRAGANA', ('USB', 0x93) ), ( 'ひらがな', ('USB', 0x92) ),
+ ( 'LANG5', ('USB', 0x94) ), ( 'ZENKAKUHANKAKU', ('USB', 0x94) ), ( 'ZENKAKU HANKAKU', ('USB', 0x94) ), ( '半角/全角', ('USB', 0x94) ),
+ ( 'LANG6', ('USB', 0x95) ),
+ ( 'LANG7', ('USB', 0x96) ),
+ ( 'LANG8', ('USB', 0x97) ),
+ ( 'LANG9', ('USB', 0x98) ),
+ ( 'ALTERASE', ('USB', 0x99) ), ( 'ALT ERASE', ('USB', 0x99) ),
+ ( 'SYSREQATT', ('USB', 0x9A) ), ( 'SYSREQ', ('USB', 0x9A) ), ( 'SYSTEM REQUEST', ('USB', 0x9A) ),
+ ( 'CANCEL', ('USB', 0x9B) ),
+ ( 'CLEAR', ('USB', 0x9C) ),
+ ( 'PRIOR', ('USB', 0x9D) ),
+ ( 'RETURN', ('USB', 0x9E) ),
+ ( 'SEP', ('USB', 0x9F) ), ( 'SEPARATOR', ('USB', 0x9F) ),
+ ( 'OUT', ('USB', 0xA0) ),
+ ( 'OPER', ('USB', 0xA1) ),
+ ( 'CLEAR AGAIN', ('USB', 0xA2) ),
+ ( 'CRSEL PROPS', ('USB', 0xA3) ),
+ ( 'EXSEL', ('USB', 0xA4) ),
+
+ ( 'P00', ('USB', 0xB0) ), ( 'KEYPAD 00', ('USB', 0xB0) ),
+ ( 'P000', ('USB', 0xB1) ), ( 'KEYPAD 000', ('USB', 0xB1) ),
+ ( '1000SEP', ('USB', 0xB2) ), ( 'THOUSANDSEPARATOR', ('USB', 0xB2) ), ( 'THOUSAND SEPARATOR', ('USB', 0xB2) ),
+ ( 'DECIMALSEP', ('USB', 0xB3) ), ( 'DECIMALSEPARATOR', ('USB', 0xB3) ), ( 'DECIMAL SEPARATOR', ('USB', 0xB3) ),
+ ( 'CURRENCY', ('USB', 0xB4) ), ( 'CURRENCYUNIT', ('USB', 0xB4) ), ( 'CURRENCY UNIT', ('USB', 0xB4) ),
+ ( 'CURRENCYSUB', ('USB', 0xB5) ), ( 'CURRENCYSUBUNIT', ('USB', 0xB5) ), ( 'CURRENCY SUB UNIT', ('USB', 0xB5) ),
+ ( 'P(', ('USB', 0xB6) ), ( 'KEYPAD LEFT PARENTHESES', ('USB', 0xB6) ),
+ ( 'P)', ('USB', 0xB7) ), ( 'KEYPAD RIGHT PARENTHESES', ('USB', 0xB7) ),
+ ( 'P{', ('USB', 0xB8) ), ( 'KEYPAD LEFT BRACE', ('USB', 0xB8) ),
+ ( 'P}', ('USB', 0xB9) ), ( 'KEYPAD RIGHT BRACE', ('USB', 0xB9) ),
+ ( 'PTAB', ('USB', 0xBA) ), ( 'KEYPAD TAB', ('USB', 0xBA) ),
+ ( 'PBACKSPACE', ('USB', 0xBB) ), ( 'KEYPAD BACKSPACE', ('USB', 0xBB) ),
+ ( 'PA', ('USB', 0xBC) ), ( 'KEYPAD A', ('USB', 0xBC) ),
+ ( 'PB', ('USB', 0xBD) ), ( 'KEYPAD B', ('USB', 0xBD) ),
+ ( 'PC', ('USB', 0xBE) ), ( 'KEYPAD C', ('USB', 0xBE) ),
+ ( 'PD', ('USB', 0xBF) ), ( 'KEYPAD D', ('USB', 0xBF) ),
+ ( 'PE', ('USB', 0xC0) ), ( 'KEYPAD E', ('USB', 0xC0) ),
+ ( 'PF', ('USB', 0xC1) ), ( 'KEYPAD F', ('USB', 0xC1) ),
+ ( 'PXOR', ('USB', 0xC2) ), ( 'KEYPAD XOR', ('USB', 0xC2) ),
+ ( 'P^', ('USB', 0xC3) ), ( 'KEYPAD CHEVRON', ('USB', 0xC3) ),
+ ( 'P%', ('USB', 0xC4) ), ( 'KEYPAD PERCENT', ('USB', 0xC4) ),
+ ( 'P<', ('USB', 0xC5) ), ( 'KEYPAD LESSTHAN', ('USB', 0xC5) ), ( 'KEYPAD LESS THAN', ('USB', 0xC5) ),
+ ( 'P>', ('USB', 0xC6) ), ( 'KEYPAD GREATERTHAN', ('USB', 0xC6) ), ( 'KEYPAD GREATER THAN', ('USB', 0xC6) ),
+ ( 'P&', ('USB', 0xC7) ), ( 'KEYPAD BITAND', ('USB', 0xC7) ), ( 'KEYPAD BIT AND', ('USB', 0xC7) ),
+ ( 'P&&', ('USB', 0xC8) ), ( 'KEYPAD AND', ('USB', 0xC8) ),
+ ( 'P|', ('USB', 0xC9) ), ( 'KEYPAD BITOR', ('USB', 0xC9) ), ( 'KEYPAD BIT OR', ('USB', 0xC9) ),
+ ( 'P||', ('USB', 0xCA) ), ( 'KEYPAD OR', ('USB', 0xCA) ),
+ ( 'P:', ('USB', 0xCB) ), ( 'KEYPAD COLON', ('USB', 0xCB) ),
+ ( 'P#', ('USB', 0xCC) ), ( 'KEYPAD NUMBER', ('USB', 0xCC) ), ( 'KEYPAD HASH', ('USB', 0xCC) ),
+ ( 'PSPACE', ('USB', 0xCD) ), ( 'KEYPAD SPACE', ('USB', 0xCD) ),
+ ( 'P@', ('USB', 0xCE) ), ( 'KEYPAD AT', ('USB', 0xCE) ),
+ ( 'P!', ('USB', 0xCF) ), ( 'KEYPAD EXCLAIM', ('USB', 0xCF) ),
+ ( 'PMEMSTORE', ('USB', 0xD0) ), ( 'KEYPAD MEMSTORE', ('USB', 0xD0) ), ( 'KEYPAD MEMORY STORE', ('USB', 0xD0) ),
+ ( 'PMEMRECALL', ('USB', 0xD1) ), ( 'KEYPAD MEMRECALL', ('USB', 0xD1) ), ( 'KEYPAD MEMORY RECALL', ('USB', 0xD1) ),
+ ( 'PMEMCLEAR', ('USB', 0xD2) ), ( 'KEYPAD MEMCLEAR', ('USB', 0xD2) ), ( 'KEYPAD MEMORY CLEAR', ('USB', 0xD2) ),
+ ( 'PMEMADD', ('USB', 0xD3) ), ( 'KEYPAD MEMADD', ('USB', 0xD3) ), ( 'KEYPAD MEMORY ADD', ('USB', 0xD3) ),
+ ( 'PMEMSUB', ('USB', 0xD4) ), ( 'KEYPAD MEMSUB', ('USB', 0xD4) ), ( 'KEYPAD MEMORY SUB', ('USB', 0xD4) ),
+ ( 'PMEMMULT', ('USB', 0xD5) ), ( 'KEYPAD MEMMULT', ('USB', 0xD5) ), ( 'KEYPAD MEMORY MULTIPLY', ('USB', 0xD5) ),
+ ( 'PMEMDIV', ('USB', 0xD6) ), ( 'KEYPAD MEMDIV', ('USB', 0xD6) ), ( 'KEYPAD MEMORY DIVIDE', ('USB', 0xD6) ),
+ ( 'P+/-', ('USB', 0xD7) ), ( 'KEYPAD PLUSMINUS', ('USB', 0xD7) ), ( 'KEYPAD PLUS MINUS', ('USB', 0xD7) ),
+ ( 'PCLEAR', ('USB', 0xD8) ), ( 'KEYPAD CLEAR', ('USB', 0xD8) ),
+ ( 'PCLEARENTRY', ('USB', 0xD9) ), ( 'KEYPAD CLEARENTRY', ('USB', 0xD9) ), ( 'KEYPAD CLEAR ENTRY', ('USB', 0xD9) ),
+ ( 'PBINARY', ('USB', 0xDA) ), ( 'KEYPAD BINARY', ('USB', 0xDA) ),
+ ( 'POCTAL', ('USB', 0xDB) ), ( 'KEYPAD OCTAL', ('USB', 0xDB) ),
+ ( 'PDECIMAL', ('USB', 0xDC) ), ( 'KEYPAD DECIMAL', ('USB', 0xDC) ),
+ ( 'PHEX', ('USB', 0xDD) ), ( 'KEYPAD HEX', ('USB', 0xDD) ),
+
+ ( 'LCTRL', ('USB', 0xE0) ), ( 'LEFT CTRL', ('USB', 0xE0) ), ( 'CTRL', ('USB', 0xE0) ), ( 'CONTROL', ('USB', 0xE0) ), ( 'LEFT CONTROL', ('USB', 0xE0) ),
+ ( 'LSHIFT', ('USB', 0xE1) ), ( 'LEFT SHIFT', ('USB', 0xE1) ), ( 'SHIFT', ('USB', 0xE1) ),
+ ( 'LALT', ('USB', 0xE2) ), ( 'LEFT ALT', ('USB', 0xE2) ), ( 'ALT', ('USB', 0xE2) ), ( 'ALTERNATE', ('USB', 0xE2) ), ( 'LEFT ALTERNATE', ('USB', 0xE2) ),
+ ( 'LGUI', ('USB', 0xE3) ), ( 'LEFT GUI', ('USB', 0xE3) ), ( 'GUI', ('USB', 0xE3) ), ( 'SUPER', ('USB', 0xE3) ), ( 'LEFT SUPER', ('USB', 0xE3) ), ( 'WINDOWS', ('USB', 0xE3) ), ( 'LEFT WINDOWS', ('USB', 0xE3) ), ( 'WIN', ('USB', 0xE3) ), ( 'LEFT WIN', ('USB', 0xE3) ),
+ ( 'RCTRL', ('USB', 0xE4) ), ( 'RIGHT CTRL', ('USB', 0xE4) ), ( 'RIGHT CONTROL', ('USB', 0xE4) ),
+ ( 'RSHIFT', ('USB', 0xE5) ), ( 'RIGHT SHIFT', ('USB', 0xE5) ),
+ ( 'RALT', ('USB', 0xE6) ), ( 'RIGHT ALT', ('USB', 0xE6) ), ( 'RIGHT ALTERNATE', ('USB', 0xE6) ),
+ ( 'RGUI', ('USB', 0xE7) ), ( 'RIGHT GUI', ('USB', 0xE7) ), ( 'RIGHT SUPER', ('USB', 0xE7) ), ( 'RIGHT WINDOWS', ('USB', 0xE7) ), ( 'RIGHT WIN', ('USB', 0xE7) ),
+
+# Special Function Shift/Lock/Latch symbolic names (not part of the USB HID spec)
+ ( 'FUN1', ('USB', 0xF0) ), ( 'FUNCTION1', ('USB', 0xF0) ), ( 'FUN', ('USB', 0xF0) ),
+ ( 'FUN2', ('USB', 0xF1) ), ( 'FUNCTION2', ('USB', 0xF1) ),
+ ( 'FUN3', ('USB', 0xF2) ), ( 'FUNCTION3', ('USB', 0xF2) ),
+ ( 'FUN4', ('USB', 0xF3) ), ( 'FUNCTION4', ('USB', 0xF3) ),
+ ( 'FUN5', ('USB', 0xF4) ), ( 'FUNCTION5', ('USB', 0xF4) ),
+ ( 'FUN6', ('USB', 0xF5) ), ( 'FUNCTION6', ('USB', 0xF5) ),
+ ( 'FUN7', ('USB', 0xF6) ), ( 'FUNCTION7', ('USB', 0xF6) ),
+ ( 'FUN8', ('USB', 0xF7) ), ( 'FUNCTION8', ('USB', 0xF7) ),
+ ( 'FUN9', ('USB', 0xF8) ), ( 'FUNCTION9', ('USB', 0xF8) ),
+ ( 'FUN10', ('USB', 0xF9) ), ( 'FUNCTION10', ('USB', 0xF9) ),
+ ( 'FUN11', ('USB', 0xFA) ), ( 'FUNCTION11', ('USB', 0xFA) ),
+ ( 'FUN12', ('USB', 0xFB) ), ( 'FUNCTION12', ('USB', 0xFB) ),
+ ( 'FUN13', ('USB', 0xFC) ), ( 'FUNCTION13', ('USB', 0xFC) ),
+ ( 'FUN14', ('USB', 0xFD) ), ( 'FUNCTION14', ('USB', 0xFD) ),
+ ( 'FUN15', ('USB', 0xFE) ), ( 'FUNCTION15', ('USB', 0xFE) ),
+ ( 'FUN16', ('USB', 0xFF) ), ( 'FUNCTION16', ('USB', 0xFF) ),
+ ( 'LCK1', ('USB', 0x100) ), ( 'LOCK1', ('USB', 0x100) ), ( 'LCK', ('USB', 0x100) ),
+ ( 'LCK2', ('USB', 0x101) ), ( 'LOCK2', ('USB', 0x101) ),
+ ( 'LCK3', ('USB', 0x102) ), ( 'LOCK3', ('USB', 0x102) ),
+ ( 'LCK4', ('USB', 0x103) ), ( 'LOCK4', ('USB', 0x103) ),
+ ( 'LCK5', ('USB', 0x104) ), ( 'LOCK5', ('USB', 0x104) ),
+ ( 'LCK6', ('USB', 0x105) ), ( 'LOCK6', ('USB', 0x105) ),
+ ( 'LCK7', ('USB', 0x106) ), ( 'LOCK7', ('USB', 0x106) ),
+ ( 'LCK8', ('USB', 0x107) ), ( 'LOCK8', ('USB', 0x107) ),
+ ( 'LCK9', ('USB', 0x108) ), ( 'LOCK9', ('USB', 0x108) ),
+ ( 'LCK10', ('USB', 0x109) ), ( 'LOCK10', ('USB', 0x109) ),
+ ( 'LCK11', ('USB', 0x10A) ), ( 'LOCK11', ('USB', 0x10A) ),
+ ( 'LCK12', ('USB', 0x10B) ), ( 'LOCK12', ('USB', 0x10B) ),
+ ( 'LCK13', ('USB', 0x10C) ), ( 'LOCK13', ('USB', 0x10C) ),
+ ( 'LCK14', ('USB', 0x10D) ), ( 'LOCK14', ('USB', 0x10D) ),
+ ( 'LCK15', ('USB', 0x10E) ), ( 'LOCK15', ('USB', 0x10E) ),
+ ( 'LCK16', ('USB', 0x10F) ), ( 'LOCK16', ('USB', 0x10F) ),
+ ( 'LAT1', ('USB', 0x110) ), ( 'LATCH1', ('USB', 0x110) ), ( 'LAT', ('USB', 0x110) ),
+ ( 'LAT2', ('USB', 0x111) ), ( 'LATCH2', ('USB', 0x111) ),
+ ( 'LAT3', ('USB', 0x112) ), ( 'LATCH3', ('USB', 0x112) ),
+ ( 'LAT4', ('USB', 0x113) ), ( 'LATCH4', ('USB', 0x113) ),
+ ( 'LAT5', ('USB', 0x114) ), ( 'LATCH5', ('USB', 0x114) ),
+ ( 'LAT6', ('USB', 0x115) ), ( 'LATCH6', ('USB', 0x115) ),
+ ( 'LAT7', ('USB', 0x116) ), ( 'LATCH7', ('USB', 0x116) ),
+ ( 'LAT8', ('USB', 0x117) ), ( 'LATCH8', ('USB', 0x117) ),
+ ( 'LAT9', ('USB', 0x118) ), ( 'LATCH9', ('USB', 0x118) ),
+ ( 'LAT10', ('USB', 0x119) ), ( 'LATCH10', ('USB', 0x119) ),
+ ( 'LAT11', ('USB', 0x11A) ), ( 'LATCH11', ('USB', 0x11A) ),
+ ( 'LAT12', ('USB', 0x11B) ), ( 'LATCH12', ('USB', 0x11B) ),
+ ( 'LAT13', ('USB', 0x11C) ), ( 'LATCH13', ('USB', 0x11C) ),
+ ( 'LAT14', ('USB', 0x11D) ), ( 'LATCH14', ('USB', 0x11D) ),
+ ( 'LAT15', ('USB', 0x11E) ), ( 'LATCH15', ('USB', 0x11E) ),
+ ( 'LAT16', ('USB', 0x11F) ), ( 'LATCH16', ('USB', 0x11F) ),
+ ( 'NLAYER', ('USB', 0x120) ), ( 'NEXT LAYER', ('USB', 0x120) ),
+ ( 'PLAYER', ('USB', 0x121) ), ( 'PREV LAYER', ('USB', 0x121) ),
+])
+
+
+ # USB HID LED Codes
+kll_hid_lookup_dictionary['LEDCode'] = dict([
+ ( 'UNDEFINED', ('LED', 0x00) ),
+ ( 'NUMLOCK', ('LED', 0x01) ),
+ ( 'CAPSLOCK', ('LED', 0x02) ),
+ ( 'SCROLLLOCK', ('LED', 0x03) ),
+ ( 'COMPOSE', ('LED', 0x04) ),
+ ( 'KANA', ('LED', 0x05) ),
+ ( 'POWER', ('LED', 0x06) ),
+ ( 'SHIFT', ('LED', 0x07) ),
+ ( 'DONOT_DISTURB', ('LED', 0x08) ),
+ ( 'MUTE', ('LED', 0x09) ),
+ ( 'TONEENABLE', ('LED', 0x0A) ),
+ ( 'HIGHCUTFILTER', ('LED', 0x0B) ),
+ ( 'LOWCUTFILTER', ('LED', 0x0C) ),
+ ( 'EQLENABLE', ('LED', 0x0D) ),
+ ( 'SNDFLD_ON', ('LED', 0x0E) ),
+ ( 'SURROUNDON', ('LED', 0x0F) ),
+ ( 'REPEAT', ('LED', 0x10) ),
+ ( 'STEREO', ('LED', 0x11) ),
+ ( 'SAMPLERT_DET', ('LED', 0x12) ),
+ ( 'SPINNING', ('LED', 0x13) ),
+ ( 'CAV', ('LED', 0x14) ),
+ ( 'CLV', ('LED', 0x15) ),
+ ( 'RECFMT_DET', ('LED', 0x16) ),
+ ( 'OFFHOOK', ('LED', 0x17) ),
+ ( 'RING', ('LED', 0x18) ),
+ ( 'MSGWAITING', ('LED', 0x19) ),
+ ( 'DATAMODE', ('LED', 0x1A) ),
+ ( 'BATOPERATION', ('LED', 0x1B) ),
+ ( 'BATOK', ('LED', 0x1C) ),
+ ( 'BATLOW', ('LED', 0x1D) ),
+ ( 'SPEAKER', ('LED', 0x1E) ),
+ ( 'HEADSET', ('LED', 0x1F) ),
+ ( 'HOLD', ('LED', 0x20) ),
+ ( 'MICROPHONE', ('LED', 0x21) ),
+ ( 'COVERAGE', ('LED', 0x22) ),
+ ( 'NIGHTMODE', ('LED', 0x23) ),
+ ( 'SENDCALLS', ('LED', 0x24) ),
+ ( 'CALLPICKUP', ('LED', 0x25) ),
+ ( 'CONFERENCE', ('LED', 0x26) ),
+ ( 'STANDBY', ('LED', 0x27) ),
+ ( 'CAMERAON', ('LED', 0x28) ),
+ ( 'CAMERAOFF', ('LED', 0x29) ),
+ ( 'ONLINE', ('LED', 0x2A) ),
+ ( 'OFFLINE', ('LED', 0x2B) ),
+ ( 'BUSY', ('LED', 0x2C) ),
+ ( 'READY', ('LED', 0x2D) ),
+ ( 'PAPEROUT', ('LED', 0x2E) ),
+ ( 'PAPERJAM', ('LED', 0x2F) ),
+ ( 'REMOTE', ('LED', 0x30) ),
+ ( 'FORWARD', ('LED', 0x31) ),
+ ( 'REVERSE', ('LED', 0x32) ),
+ ( 'STOP', ('LED', 0x33) ),
+ ( 'REWIND', ('LED', 0x34) ),
+ ( 'FASTFORWARD', ('LED', 0x35) ),
+ ( 'PLAY', ('LED', 0x36) ),
+ ( 'PAUSE', ('LED', 0x37) ),
+ ( 'RECORD', ('LED', 0x38) ),
+ ( 'ERROR', ('LED', 0x39) ),
+ ( 'USI', ('LED', 0x3A) ),
+ ( 'UIUI', ('LED', 0x3B) ),
+ ( 'UMMI', ('LED', 0x3C) ),
+ ( 'INDON', ('LED', 0x3D) ),
+ ( 'INDFLASH', ('LED', 0x3E) ),
+ ( 'INDSLOW_BLNK', ('LED', 0x3F) ),
+ ( 'INDFAST_BLNK', ('LED', 0x40) ),
+ ( 'INDOFF', ('LED', 0x41) ),
+ ( 'FLASHON_TIME', ('LED', 0x42) ),
+ ( 'SLWB_ON_TIME', ('LED', 0x43) ),
+ ( 'SLWB_OFF_TIME', ('LED', 0x44) ),
+ ( 'FSTB_ON_TIME', ('LED', 0x45) ),
+ ( 'FSTB_OFF_TIME', ('LED', 0x46) ),
+ ( 'UIC', ('LED', 0x47) ),
+ ( 'INDRED', ('LED', 0x48) ),
+ ( 'INDGREEN', ('LED', 0x49) ),
+ ( 'INDAMBER', ('LED', 0x4A) ),
+ ( 'GENERICIND', ('LED', 0x4B) ),
+ ( 'SYSSUSPEND', ('LED', 0x4C) ),
+ ( 'EXTPWR_CONN', ('LED', 0x4D) ),
+# 0x4E - 0xFFFF Reserved
+])
+
+
+# List of System Controls - USB HID 1.12v2 pg 32
+# NKRO HID Supports 0x81 - 0xB7
+kll_hid_lookup_dictionary['SysCode'] = dict([
+ ( 'POWERDOWN', ('SYS', 0x81) ),
+ ( 'SLEEP', ('SYS', 0x82) ),
+ ( 'WAKEUP', ('SYS', 0x83) ),
+ ( 'CONTEXTMENU', ('SYS', 0x84) ),
+ ( 'MAINMENU', ('SYS', 0x85) ),
+ ( 'APPMENU', ('SYS', 0x86) ),
+ ( 'MENUHELP', ('SYS', 0x87) ),
+ ( 'MENUEXIT', ('SYS', 0x88) ),
+ ( 'MENUSELECT', ('SYS', 0x89) ),
+ ( 'MENURIGHT', ('SYS', 0x8A) ),
+ ( 'MENULEFT', ('SYS', 0x8B) ),
+ ( 'MENUUP', ('SYS', 0x8C) ),
+ ( 'MENUDOWN', ('SYS', 0x8D) ),
+ ( 'COLDRESTART', ('SYS', 0x8E) ),
+ ( 'WARMRESTART', ('SYS', 0x8F) ),
+ ( 'DPADUP', ('SYS', 0x90) ),
+ ( 'DPADDOWN', ('SYS', 0x91) ),
+ ( 'DPADRIGHT', ('SYS', 0x92) ),
+ ( 'DPADLEFT', ('SYS', 0x93) ),
+# 0x94 - 0x9F Reserved
+ ( 'DOCK', ('SYS', 0xA0) ),
+ ( 'UNDOCK', ('SYS', 0xA1) ),
+ ( 'SETUP', ('SYS', 0xA2) ),
+ ( 'BREAK', ('SYS', 0xA3) ),
+ ( 'DEBUGGERBREAK', ('SYS', 0xA4) ),
+ ( 'APPBREAK', ('SYS', 0xA5) ),
+ ( 'APPDEBUGGER_BREAK', ('SYS', 0xA6) ),
+ ( 'SPEAKERMUTE', ('SYS', 0xA7) ),
+ ( 'HIBERNATE', ('SYS', 0xA8) ),
+# 0xA9 - 0xAF Reserved
+ ( 'DISPINVERT', ('SYS', 0xB0) ),
+ ( 'DISPINTERNAL', ('SYS', 0xB1) ),
+ ( 'DISPEXTERNAL', ('SYS', 0xB2) ),
+ ( 'DISPBOTH', ('SYS', 0xB3) ),
+ ( 'DISPDUAL', ('SYS', 0xB4) ),
+ ( 'DISPTOGGLE_INT_EXT', ('SYS', 0xB5) ),
+ ( 'DISPSWAP_PRI_SEC', ('SYS', 0xB6) ),
+ ( 'DISPLCD_AUTOSCALE', ('SYS', 0xB7) ),
+# 0xB8 - 0xFFFF Reserved
+])
+
+
+ # USB HID Consumer Control Codes
+# List of Consumer Codes - USB HID 1.12v2
+# Only listing relevant ones, let me know if you need more -HaaTa
+# NKRO HID Supports 0x020 - 0x29C
+kll_hid_lookup_dictionary['ConsCode'] = dict([
+ ( '10', ('CONS', 0x020) ),
+ ( '100', ('CONS', 0x021) ),
+ ( 'AMPM', ('CONS', 0x022) ),
+# 0x023 - 0x03F Reserved
+ ( 'POWER', ('CONS', 0x030) ),
+ ( 'RESET', ('CONS', 0x031) ),
+ ( 'SLEEP', ('CONS', 0x032) ),
+ ( 'SLEEPAFTER', ('CONS', 0x033) ),
+ ( 'SLEEPMODE', ('CONS', 0x034) ),
+ ( 'ILLUMINATION', ('CONS', 0x035) ),
+
+# 0x037 - 0x03F Reserved
+ ( 'MENU', ('CONS', 0x040) ),
+ ( 'MENUPICK', ('CONS', 0x041) ),
+ ( 'MENUUP', ('CONS', 0x042) ),
+ ( 'MENUDOWN', ('CONS', 0x043) ),
+ ( 'MENULEFT', ('CONS', 0x044) ),
+ ( 'MENURIGHT', ('CONS', 0x045) ),
+ ( 'MENUESCAPE', ('CONS', 0x046) ),
+ ( 'MENUVALUE_INCREASE', ('CONS', 0x047) ),
+ ( 'MENUVALUE_DECREASE', ('CONS', 0x048) ),
+# 0x049 - 0x05F Reserved
+ ( 'DATAON_SCREEN', ('CONS', 0x060) ),
+ ( 'CLOSEDCAPTION', ('CONS', 0x061) ),
+ ( 'CLOSEDCAPTION_SELECT', ('CONS', 0x062) ),
+ ( 'VCRTV', ('CONS', 0x063) ),
+ ( 'BROADCASTMODE', ('CONS', 0x064) ),
+ ( 'SNAPSHOT', ('CONS', 0x065) ),
+ ( 'STILL', ('CONS', 0x066) ),
+# 0x067 - 0x06E Reserved?
+ ( 'BRIGHTNESSINCREMENT', ('CONS', 0x06F) ),
+ ( 'BRIGHTNESSDECREMENT', ('CONS', 0x070) ),
+
+ ( 'BACKLIGHTTOGGLE', ('CONS', 0x072) ),
+ ( 'BRIGHTNESSMIN', ('CONS', 0x073) ),
+ ( 'BRIGHTNESSMAX', ('CONS', 0x074) ),
+ ( 'BRIGHTNESSAUTO', ('CONS', 0x075) ),
+# 0x076 - 0x07F Reserved
+
+ ( 'ASSIGNSELECTION', ('CONS', 0x081) ),
+ ( 'MODESTEP', ('CONS', 0x082) ),
+ ( 'RECALLLAST', ('CONS', 0x083) ),
+ ( 'ENTERCHANNEL', ('CONS', 0x084) ),
+ ( 'ORDERMOVIE', ('CONS', 0x085) ),
+
+ ( 'MEDIACOMPUTER', ('CONS', 0x088) ),
+ ( 'MEDIATV', ('CONS', 0x089) ),
+ ( 'MEDIAWWW', ('CONS', 0x08A) ),
+ ( 'MEDIADVD', ('CONS', 0x08B) ),
+ ( 'MEDIATELEPHONE', ('CONS', 0x08C) ),
+ ( 'MEDIAPROGRAM_GUIDE', ('CONS', 0x08D) ),
+ ( 'MEDIAVIDEO_PHONE', ('CONS', 0x08E) ),
+ ( 'MEDIASELECTGAMES', ('CONS', 0x08F) ),
+ ( 'MEDIASELECTMESSAGES', ('CONS', 0x090) ),
+ ( 'MEDIASELECTCD', ('CONS', 0x091) ),
+ ( 'MEDIASELECTVCR', ('CONS', 0x092) ),
+ ( 'MEDIASELECTTUNER', ('CONS', 0x093) ),
+ ( 'QUIT', ('CONS', 0x094) ),
+ ( 'HELP', ('CONS', 0x095) ),
+ ( 'MEDIASELECT_TAPE', ('CONS', 0x096) ),
+ ( 'MEDIASELECT_CABLE', ('CONS', 0x097) ),
+ ( 'MEDIASELECT_SATELLITE', ('CONS', 0x098) ),
+ ( 'MEDIASELECT_SECURITY', ('CONS', 0x099) ),
+ ( 'MEDIASELECT_HOME', ('CONS', 0x09A) ),
+ ( 'MEDIASELECT_CALL', ('CONS', 0x09B) ),
+ ( 'CHANNELINCREMENT', ('CONS', 0x09C) ),
+ ( 'CAHNNELDECREMENT', ('CONS', 0x09D) ),
+ ( 'MEDIASELECT_SAP', ('CONS', 0x09E) ),
+# 0x09F Reserved
+ ( 'VCRPLUS', ('CONS', 0x0A0) ),
+ ( 'ONCE', ('CONS', 0x0A1) ),
+ ( 'DAILY', ('CONS', 0x0A2) ),
+ ( 'WEEKLY', ('CONS', 0x0A3) ),
+ ( 'MONTHLY', ('CONS', 0x0A4) ),
+# 0x0A5 - 0x0AF Reserved
+ ( 'PLAY', ('CONS', 0x0B0) ),
+ ( 'PAUSE', ('CONS', 0x0B1) ),
+ ( 'RECORD', ('CONS', 0x0B2) ),
+ ( 'FASTFORWARD', ('CONS', 0x0B3) ),
+ ( 'REWIND', ('CONS', 0x0B4) ),
+ ( 'SCANNEXTTRACK', ('CONS', 0x0B5) ),
+ ( 'SCANPREVIOUSTRACK', ('CONS', 0x0B6) ),
+ ( 'STOP', ('CONS', 0x0B7) ),
+ ( 'EJECT', ('CONS', 0x0B8) ),
+ ( 'RANDOMPLAY', ('CONS', 0x0B9) ),
+
+ ( 'REPEAT', ('CONS', 0x0BC) ),
+
+ ( 'TRACKNORMAL', ('CONS', 0x0BE) ),
+
+ ( 'FRAMEFORWARD', ('CONS', 0x0C0) ),
+ ( 'FRAMEBACK', ('CONS', 0x0C1) ),
+ ( 'MARK', ('CONS', 0x0C2) ),
+ ( 'CLEARMARK', ('CONS', 0x0C3) ),
+ ( 'REPEATFROM_MARK', ('CONS', 0x0C4) ),
+ ( 'RETURNTO_MARK', ('CONS', 0x0C5) ),
+ ( 'SEARCHMARK_FORWARDS', ('CONS', 0x0C6) ),
+ ( 'SEARCHMARK_BACKWARDS', ('CONS', 0x0C7) ),
+ ( 'COUNTERRESET', ('CONS', 0x0C8) ),
+ ( 'SHOWCOUNTER', ('CONS', 0x0C9) ),
+ ( 'TRACKINGINCREMENT', ('CONS', 0x0CA) ),
+ ( 'TRACKINGDECREMENT', ('CONS', 0x0CB) ),
+ ( 'STOPEJECT', ('CONS', 0x0CC) ),
+ ( 'PAUSEPLAY', ('CONS', 0x0CD) ),
+ ( 'PLAYSKIP', ('CONS', 0x0CE) ),
+# 0x0CF - 0x0DF Reserved
+
+ ( 'MUTE', ('CONS', 0x0E2) ),
+
+ ( 'BASSBOOST', ('CONS', 0x0E5) ),
+ ( 'SURROUNDMODE', ('CONS', 0x0E6) ),
+ ( 'LOUDNESS', ('CONS', 0x0E7) ),
+ ( 'MPX', ('CONS', 0x0E8) ),
+ ( 'VOLUMEUP', ('CONS', 0x0E9) ),
+ ( 'VOLUMEDOWN', ('CONS', 0x0EA) ),
+# 0x0EB - 0x0EF Reserved
+ ( 'SPEEDSELECT', ('CONS', 0x0F0) ),
+ ( 'STANDARDPLAY', ('CONS', 0x0F2) ),
+ ( 'LONGPLAY', ('CONS', 0x0F3) ),
+ ( 'EXTENDEDPLAY', ('CONS', 0x0F4) ),
+ ( 'SLOW', ('CONS', 0x0F5) ),
+# 0x0F6 - 0x0FF
+ ( 'FANENABLE', ('CONS', 0x100) ),
+
+ ( 'LIGHTENABLE', ('CONS', 0x102) ),
+
+ ( 'CLIMATECONTROL_ENABLE', ('CONS', 0x104) ),
+
+ ( 'SECURITYENABLE', ('CONS', 0x106) ),
+ ( 'FIREALARM', ('CONS', 0x107) ),
+
+ ( 'MOTION', ('CONS', 0x10A) ),
+ ( 'DURESSALARM', ('CONS', 0x10B) ),
+ ( 'HOLDUPALARM', ('CONS', 0x10C) ),
+ ( 'MEDICALALARM', ('CONS', 0x10D) ),
+# 0x10E - 0x14F Reserved
+ ( 'BALANCERIGHT', ('CONS', 0x150) ),
+ ( 'BALANCELEFT', ('CONS', 0x151) ),
+ ( 'BASSINCR', ('CONS', 0x152) ),
+ ( 'BASSDECR', ('CONS', 0x153) ),
+ ( 'TREBLEINCR', ('CONS', 0x154) ),
+ ( 'TREBLEDECR', ('CONS', 0x155) ),
+# 0x156 - 0x15F Reserved
+
+ ( 'SUBCHANNEL_INCREMENT', ('CONS', 0x171) ),
+ ( 'SUBCHANNEL_DECREMENT', ('CONS', 0x172) ),
+ ( 'ALTAUDIO_INCREMENT', ('CONS', 0x173) ),
+ ( 'ALTAUDIO_DECREMENT', ('CONS', 0x174) ),
+
+
+# List of Consumer Codes - USB HID 1.12v2
+# Application Launch Buttons pg 79
+ ( 'LAUNCHBUTTON_CONFIG_TOOL', ('CONS', 0x181) ),
+ ( 'PROGRAMMABLEBUTTON_CONFIG', ('CONS', 0x182) ),
+ ( 'CONSUMERCONTROL_CONFIG', ('CONS', 0x183) ),
+ ( 'WORDPROCESSOR', ('CONS', 0x184) ),
+ ( 'TEXTEDITOR', ('CONS', 0x185) ),
+ ( 'SPREADSHEET', ('CONS', 0x186) ),
+ ( 'GRAPHICSEDITOR', ('CONS', 0x187) ),
+ ( 'PRESENTATIONAPP', ('CONS', 0x188) ),
+ ( 'DATABASEAPP', ('CONS', 0x189) ),
+ ( 'EMAILREADER', ('CONS', 0x18A) ),
+ ( 'NEWSREADER', ('CONS', 0x18B) ),
+ ( 'VOICEMAIL', ('CONS', 0x18C) ),
+ ( 'CONTACTSADDRESS_BOOK', ('CONS', 0x18D) ),
+ ( 'CALENDARSCHEDULE', ('CONS', 0x18E) ),
+ ( 'TASKPROJECT_MANAGER', ('CONS', 0x18F) ),
+ ( 'LOGJOURNAL_TIMECARD', ('CONS', 0x190) ),
+ ( 'CHECKBOOKFINANCE', ('CONS', 0x191) ),
+ ( 'CALCULATOR', ('CONS', 0x192) ),
+ ( 'AV_CAPTURE_PLAYBACK', ('CONS', 0x193) ),
+ ( 'LOCALMACHINE_BROWSER', ('CONS', 0x194) ),
+ ( 'LANWAN_BROWSER', ('CONS', 0x195) ),
+ ( 'INTERNETBROWSER', ('CONS', 0x196) ),
+ ( 'REMOTENETWORKING_ISP_CONNECT', ('CONS', 0x197) ),
+ ( 'NETWORKCONFERENCE', ('CONS', 0x198) ),
+ ( 'NETWORKCHAT', ('CONS', 0x199) ),
+ ( 'TELEPHONYDIALER', ('CONS', 0x19A) ),
+ ( 'LOGON', ('CONS', 0x19B) ),
+ ( 'LOGOFF', ('CONS', 0x19C) ),
+ ( 'LOGONLOGOFF', ('CONS', 0x19D) ),
+ ( 'TERMINALLOCK_SCREENSAVER', ('CONS', 0x19E) ),
+ ( 'CONTROLPANEL', ('CONS', 0x19F) ),
+ ( 'COMMANDLINE_PROCESSOR_RUN', ('CONS', 0x1A0) ),
+ ( 'PROCESSTASK_MANAGER', ('CONS', 0x1A1) ),
+ ( 'SELECTTAST_APP', ('CONS', 0x1A2) ),
+ ( 'NEXTTASK_APP', ('CONS', 0x1A3) ),
+ ( 'PREVIOUSTASK_APP', ('CONS', 0x1A4) ),
+ ( 'PREEMPTIVEHALT_TASK_APP', ('CONS', 0x1A5) ),
+ ( 'INTEGRATEDHELP_CENTER', ('CONS', 0x1A6) ),
+ ( 'DOCUMENTS', ('CONS', 0x1A7) ),
+ ( 'THESAURUS', ('CONS', 0x1A8) ),
+ ( 'DICTIONARY', ('CONS', 0x1A9) ),
+ ( 'DESKTOP', ('CONS', 0x1AA) ),
+ ( 'SPELLCHECK', ('CONS', 0x1AB) ),
+ ( 'GRAMMARCHECK', ('CONS', 0x1AC) ),
+ ( 'WIRELESSSTATUS', ('CONS', 0x1AD) ),
+ ( 'KEYBOARDLAYOUT', ('CONS', 0x1AE) ),
+ ( 'VIRUSPROTECTION', ('CONS', 0x1AF) ),
+ ( 'ENCRYPTION', ('CONS', 0x1B0) ),
+ ( 'SCREENSAVER', ('CONS', 0x1B1) ),
+ ( 'ALARMS', ('CONS', 0x1B2) ),
+ ( 'CLOCK', ('CONS', 0x1B3) ),
+ ( 'FILEBROWSER', ('CONS', 0x1B4) ),
+ ( 'POWERSTATUS', ('CONS', 0x1B5) ),
+ ( 'IMAGEBROWSER', ('CONS', 0x1B6) ),
+ ( 'AUDIOBROWSER', ('CONS', 0x1B7) ),
+ ( 'MOVIEBROWSER', ('CONS', 0x1B8) ),
+ ( 'DIGITALRIGHTS_MANAGER', ('CONS', 0x1B9) ),
+ ( 'DIGITALWALLET', ('CONS', 0x1BA) ),
+# 0x1BB Reserved
+ ( 'INSTANTMESSAGING', ('CONS', 0x1BC) ),
+ ( 'OEMFEATURES_TIPS_TUTORIAL', ('CONS', 0x1BD) ),
+ ( 'OEMHELP', ('CONS', 0x1BE) ),
+ ( 'ONLINECOMMUNITY', ('CONS', 0x1BF) ),
+ ( 'ENTERTAINMENTCONTENT', ('CONS', 0x1C0) ),
+ ( 'ONLINESHOPPING', ('CONS', 0x1C1) ),
+ ( 'SMARTCARDINFO_HELP', ('CONS', 0x1C2) ),
+ ( 'MARKETMONITOR', ('CONS', 0x1C3) ),
+ ( 'CUSTOMIZEDCORP_NEWS', ('CONS', 0x1C4) ),
+ ( 'ONLINEACTIVITY', ('CONS', 0x1C5) ),
+ ( 'SEARCHBROWSER', ('CONS', 0x1C6) ),
+ ( 'AUDIOPLAYER', ('CONS', 0x1C7) ),
+
+
+# List of Consumer Codes - USB HID 1.12v2
+# Generic GUI Application Controls pg 82
+ ( 'NEW', ('CONS', 0x201) ),
+ ( 'OPEN', ('CONS', 0x202) ),
+ ( 'CLOSE', ('CONS', 0x203) ),
+ ( 'EXIT', ('CONS', 0x204) ),
+ ( 'MAXIMIZE', ('CONS', 0x205) ),
+ ( 'MINIMIZE', ('CONS', 0x206) ),
+ ( 'SAVE', ('CONS', 0x207) ),
+ ( 'PRINT', ('CONS', 0x208) ),
+ ( 'PROPERTIES', ('CONS', 0x209) ),
+ ( 'UNDO', ('CONS', 0x21A) ),
+ ( 'COPY', ('CONS', 0x21B) ),
+ ( 'CUT', ('CONS', 0x21C) ),
+ ( 'PASTE', ('CONS', 0x21D) ),
+ ( 'SELECTALL', ('CONS', 0x21E) ),
+ ( 'FIND', ('CONS', 0x21F) ),
+ ( 'FINDANDREPLACE', ('CONS', 0x220) ),
+ ( 'SEARCH', ('CONS', 0x221) ),
+ ( 'GOTO', ('CONS', 0x222) ),
+ ( 'HOME', ('CONS', 0x223) ),
+ ( 'BACK', ('CONS', 0x224) ),
+ ( 'FORWARD', ('CONS', 0x225) ),
+ ( 'STOP', ('CONS', 0x226) ),
+ ( 'REFRESH', ('CONS', 0x227) ),
+ ( 'PREVIOUSLINK', ('CONS', 0x228) ),
+ ( 'NEXTLINK', ('CONS', 0x229) ),
+ ( 'BOOKMARKS', ('CONS', 0x22A) ),
+ ( 'HISTORY', ('CONS', 0x22B) ),
+ ( 'SUBSCRIPTIONS', ('CONS', 0x22C) ),
+ ( 'ZOOMIN', ('CONS', 0x22D) ),
+ ( 'ZOOMOUT', ('CONS', 0x22E) ),
+ ( 'ZOOM', ('CONS', 0x22F) ),
+ ( 'FULLSCREEN_VIEW', ('CONS', 0x230) ),
+ ( 'NORMALVIEW', ('CONS', 0x231) ),
+ ( 'VIEWTOGGLE', ('CONS', 0x232) ),
+ ( 'SCROLLUP', ('CONS', 0x233) ),
+ ( 'SCROLLDOWN', ('CONS', 0x234) ),
+ ( 'SCROLL', ('CONS', 0x235) ),
+ ( 'PANLEFT', ('CONS', 0x236) ),
+ ( 'PANRIGHT', ('CONS', 0x237) ),
+ ( 'PAN', ('CONS', 0x238) ),
+ ( 'NEWWINDOW', ('CONS', 0x239) ),
+ ( 'TILEHORIZONTALLY', ('CONS', 0x23A) ),
+ ( 'TILEVERTICALLY', ('CONS', 0x23B) ),
+ ( 'FORMAT', ('CONS', 0x23C) ),
+ ( 'EDIT', ('CONS', 0x23D) ),
+ ( 'BOLD', ('CONS', 0x23E) ),
+ ( 'ITALICS', ('CONS', 0x23F) ),
+ ( 'UNDERLINE', ('CONS', 0x240) ),
+ ( 'STRIKETHROUGH', ('CONS', 0x241) ),
+ ( 'SUBSCRIPT', ('CONS', 0x242) ),
+ ( 'SUPERSCRIPT', ('CONS', 0x243) ),
+ ( 'ALLCAPS', ('CONS', 0x244) ),
+ ( 'ROTATE', ('CONS', 0x245) ),
+ ( 'RESIZE', ('CONS', 0x246) ),
+ ( 'FILPHORIZONTAL', ('CONS', 0x247) ),
+ ( 'FILPVERTICAL', ('CONS', 0x248) ),
+ ( 'MIRRORHORIZONTAL', ('CONS', 0x249) ),
+ ( 'MIRRORVERTICAL', ('CONS', 0x24A) ),
+ ( 'FONTSELECT', ('CONS', 0x24B) ),
+ ( 'FONTCOLOR', ('CONS', 0x24C) ),
+ ( 'FONTSIZE', ('CONS', 0x24D) ),
+ ( 'JUSTIFYLEFT', ('CONS', 0x24E) ),
+ ( 'JUSTIFYCENTER_H', ('CONS', 0x24F) ),
+ ( 'JUSTIFYRIGHT', ('CONS', 0x250) ),
+ ( 'JUSTIFYBLOCK_H', ('CONS', 0x251) ),
+ ( 'JUSTIFYTOP', ('CONS', 0x252) ),
+ ( 'JUSTIFYCENTER_V', ('CONS', 0x253) ),
+ ( 'JUSTIFYBOTTOM', ('CONS', 0x254) ),
+ ( 'JUSTIFYBLOCK_V', ('CONS', 0x255) ),
+ ( 'INDENTDECREASE', ('CONS', 0x256) ),
+ ( 'INDENTINCREASE', ('CONS', 0x257) ),
+ ( 'NUMBEREDLIST', ('CONS', 0x258) ),
+ ( 'RESTARTNUMBERING', ('CONS', 0x259) ),
+ ( 'BULLETEDLIST', ('CONS', 0x25A) ),
+ ( 'PROMOTE', ('CONS', 0x25B) ),
+ ( 'DEMOTE', ('CONS', 0x25C) ),
+ ( 'YES', ('CONS', 0x25D) ),
+ ( 'NO', ('CONS', 0x25E) ),
+ ( 'CANCEL', ('CONS', 0x25F) ),
+ ( 'CATALOG', ('CONS', 0x260) ),
+ ( 'BUYCHECKOUT', ('CONS', 0x261) ),
+ ( 'ADDTO_CART', ('CONS', 0x262) ),
+ ( 'EXPAND', ('CONS', 0x263) ),
+ ( 'EXPANDALL', ('CONS', 0x264) ),
+ ( 'COLLAPSE', ('CONS', 0x265) ),
+ ( 'COLLAPSEALL', ('CONS', 0x266) ),
+ ( 'PRINTPREVIEW', ('CONS', 0x267) ),
+ ( 'PASTESPECIAL', ('CONS', 0x268) ),
+ ( 'INSERTMODE', ('CONS', 0x269) ),
+ ( 'DELETE', ('CONS', 0x26A) ),
+ ( 'LOCK', ('CONS', 0x26B) ),
+ ( 'UNLOCK', ('CONS', 0x26C) ),
+ ( 'PROTECT', ('CONS', 0x26D) ),
+ ( 'UNPROTECT', ('CONS', 0x26E) ),
+ ( 'ATTACHCOMMENT', ('CONS', 0x26F) ),
+ ( 'DELETECOMMENT', ('CONS', 0x270) ),
+ ( 'VIEWCOMMENT', ('CONS', 0x271) ),
+ ( 'SELECTWORD', ('CONS', 0x272) ),
+ ( 'SELECTSENTENCE', ('CONS', 0x273) ),
+ ( 'SELECTPARAGRAPH', ('CONS', 0x274) ),
+ ( 'SELECTCOLUMN', ('CONS', 0x275) ),
+ ( 'SELECTROW', ('CONS', 0x276) ),
+ ( 'SELECTTABLE', ('CONS', 0x277) ),
+ ( 'SELECTOBJECT', ('CONS', 0x278) ),
+ ( 'REDOREPEAT', ('CONS', 0x279) ),
+ ( 'SORT', ('CONS', 0x27A) ),
+ ( 'SORTASCENDING', ('CONS', 0x27B) ),
+ ( 'SORTDESCENDING', ('CONS', 0x27C) ),
+ ( 'FILTER', ('CONS', 0x27D) ),
+ ( 'SETCLOCK', ('CONS', 0x27E) ),
+ ( 'VIEWCLOCK', ('CONS', 0x27F) ),
+ ( 'SELECTTIME_ZONE', ('CONS', 0x280) ),
+ ( 'EDITTIME_ZONE', ('CONS', 0x281) ),
+ ( 'SETALARM', ('CONS', 0x282) ),
+ ( 'CLEARALARM', ('CONS', 0x283) ),
+ ( 'SNOOZEALARM', ('CONS', 0x284) ),
+ ( 'RESETALARM', ('CONS', 0x285) ),
+ ( 'SYNCHRONIZE', ('CONS', 0x286) ),
+ ( 'SENDRECEIVE', ('CONS', 0x287) ),
+ ( 'SENDTO', ('CONS', 0x288) ),
+ ( 'REPLY', ('CONS', 0x289) ),
+ ( 'REPLYALL', ('CONS', 0x28A) ),
+ ( 'FORWARDMSG', ('CONS', 0x28B) ),
+ ( 'SEND', ('CONS', 0x28C) ),
+ ( 'ATTACHFILE', ('CONS', 0x28D) ),
+ ( 'UPLOAD', ('CONS', 0x28E) ),
+ ( 'DOWNLOAD', ('CONS', 0x28F) ),
+ ( 'SETBORDERS', ('CONS', 0x290) ),
+ ( 'INSERTROW', ('CONS', 0x291) ),
+ ( 'INSERTCOLUMN', ('CONS', 0x292) ),
+ ( 'INSERTFILE', ('CONS', 0x293) ),
+ ( 'INSERTPICTURE', ('CONS', 0x294) ),
+ ( 'INSERTOBJECT', ('CONS', 0x295) ),
+ ( 'INSERTSYMBOL', ('CONS', 0x296) ),
+ ( 'SAVEANDCLOSE', ('CONS', 0x297) ),
+ ( 'RENAME', ('CONS', 0x298) ),
+ ( 'MERGE', ('CONS', 0x299) ),
+ ( 'SPLIT', ('CONS', 0x29A) ),
+ ( 'DISTRIBUTEHORIZONTALLY', ('CONS', 0x29B) ),
+ ( 'DISTRIBUTEVERTICALLY', ('CONS', 0x29C) ),
+ ( 'NEXTKEYBOARDLAYOUTSELECT', ('CONS', 0x29D) ),
+# 0x29E-0xFFFF Reserved