| 1 | // Copyright (C) 2016 The Qt Company Ltd. |
| 2 | // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only |
| 3 | |
| 4 | #ifndef QEVDEVKEYBOARDHANDLER_DEFAULTMAP_P_H |
| 5 | #define QEVDEVKEYBOARDHANDLER_DEFAULTMAP_P_H |
| 6 | |
| 7 | // |
| 8 | // W A R N I N G |
| 9 | // ------------- |
| 10 | // |
| 11 | // This file is not part of the Qt API. It exists purely as an |
| 12 | // implementation detail. This header file may change from version to |
| 13 | // version without notice, or even be removed. |
| 14 | // |
| 15 | // We mean it. |
| 16 | // |
| 17 | |
| 18 | #include "qnamespace.h" |
| 19 | #include "private/qglobal_p.h" |
| 20 | #ifdef Q_OS_FREEBSD |
| 21 | #include <dev/evdev/input.h> |
| 22 | #elif !defined(Q_OS_VXWORKS) |
| 23 | #include "linux/input.h" |
| 24 | #endif |
| 25 | |
| 26 | // no QT_BEGIN_NAMESPACE, since we include it internally... |
| 27 | |
| 28 | const QEvdevKeyboardMap::Mapping QEvdevKeyboardHandler::s_keymap_default[] = { |
| 29 | { .keycode: 1, .unicode: 0xffff, .qtcode: 0x01000000, .modifiers: 0x00, .flags: 0x00, .special: 0x0000 }, |
| 30 | { .keycode: 2, .unicode: 0x0031, .qtcode: 0x00000031, .modifiers: 0x00, .flags: 0x00, .special: 0x0000 }, |
| 31 | { .keycode: 2, .unicode: 0x0021, .qtcode: 0x00000021, .modifiers: 0x01, .flags: 0x00, .special: 0x0000 }, |
| 32 | { .keycode: 3, .unicode: 0x0032, .qtcode: 0x00000032, .modifiers: 0x00, .flags: 0x00, .special: 0x0000 }, |
| 33 | { .keycode: 3, .unicode: 0x0040, .qtcode: 0x00000040, .modifiers: 0x01, .flags: 0x00, .special: 0x0000 }, |
| 34 | { .keycode: 3, .unicode: 0x0040, .qtcode: 0x00000040, .modifiers: 0x02, .flags: 0x00, .special: 0x0000 }, |
| 35 | { .keycode: 4, .unicode: 0x0033, .qtcode: 0x00000033, .modifiers: 0x00, .flags: 0x00, .special: 0x0000 }, |
| 36 | { .keycode: 4, .unicode: 0x0023, .qtcode: 0x00000023, .modifiers: 0x01, .flags: 0x00, .special: 0x0000 }, |
| 37 | { .keycode: 4, .unicode: 0xffff, .qtcode: 0x01000000, .modifiers: 0x04, .flags: 0x00, .special: 0x0000 }, |
| 38 | { .keycode: 5, .unicode: 0x0034, .qtcode: 0x00000034, .modifiers: 0x00, .flags: 0x00, .special: 0x0000 }, |
| 39 | { .keycode: 5, .unicode: 0x0024, .qtcode: 0x00000024, .modifiers: 0x01, .flags: 0x00, .special: 0x0000 }, |
| 40 | { .keycode: 5, .unicode: 0x0024, .qtcode: 0x00000024, .modifiers: 0x02, .flags: 0x00, .special: 0x0000 }, |
| 41 | { .keycode: 5, .unicode: 0x005c, .qtcode: 0x0400005c, .modifiers: 0x04, .flags: 0x00, .special: 0x0000 }, |
| 42 | { .keycode: 6, .unicode: 0x0035, .qtcode: 0x00000035, .modifiers: 0x00, .flags: 0x00, .special: 0x0000 }, |
| 43 | { .keycode: 6, .unicode: 0x0025, .qtcode: 0x00000025, .modifiers: 0x01, .flags: 0x00, .special: 0x0000 }, |
| 44 | { .keycode: 6, .unicode: 0x005d, .qtcode: 0x0400005d, .modifiers: 0x04, .flags: 0x00, .special: 0x0000 }, |
| 45 | { .keycode: 7, .unicode: 0x0036, .qtcode: 0x00000036, .modifiers: 0x00, .flags: 0x00, .special: 0x0000 }, |
| 46 | { .keycode: 7, .unicode: 0x005e, .qtcode: 0x0000005e, .modifiers: 0x01, .flags: 0x00, .special: 0x0000 }, |
| 47 | { .keycode: 7, .unicode: 0x005e, .qtcode: 0x01001252, .modifiers: 0x02, .flags: 0x01, .special: 0x0000 }, |
| 48 | { .keycode: 7, .unicode: 0x005e, .qtcode: 0x0400005e, .modifiers: 0x04, .flags: 0x00, .special: 0x0000 }, |
| 49 | { .keycode: 8, .unicode: 0x0037, .qtcode: 0x00000037, .modifiers: 0x00, .flags: 0x00, .special: 0x0000 }, |
| 50 | { .keycode: 8, .unicode: 0x0026, .qtcode: 0x00000026, .modifiers: 0x01, .flags: 0x00, .special: 0x0000 }, |
| 51 | { .keycode: 8, .unicode: 0x007b, .qtcode: 0x0000007b, .modifiers: 0x02, .flags: 0x00, .special: 0x0000 }, |
| 52 | { .keycode: 8, .unicode: 0x005f, .qtcode: 0x0400005f, .modifiers: 0x04, .flags: 0x00, .special: 0x0000 }, |
| 53 | { .keycode: 9, .unicode: 0x0038, .qtcode: 0x00000038, .modifiers: 0x00, .flags: 0x00, .special: 0x0000 }, |
| 54 | { .keycode: 9, .unicode: 0x002a, .qtcode: 0x0000002a, .modifiers: 0x01, .flags: 0x00, .special: 0x0000 }, |
| 55 | { .keycode: 9, .unicode: 0x005b, .qtcode: 0x0000005b, .modifiers: 0x02, .flags: 0x00, .special: 0x0000 }, |
| 56 | { .keycode: 9, .unicode: 0xffff, .qtcode: 0x01000003, .modifiers: 0x04, .flags: 0x00, .special: 0x0000 }, |
| 57 | { .keycode: 10, .unicode: 0x0039, .qtcode: 0x00000039, .modifiers: 0x00, .flags: 0x00, .special: 0x0000 }, |
| 58 | { .keycode: 10, .unicode: 0x0028, .qtcode: 0x00000028, .modifiers: 0x01, .flags: 0x00, .special: 0x0000 }, |
| 59 | { .keycode: 10, .unicode: 0x005d, .qtcode: 0x0000005d, .modifiers: 0x02, .flags: 0x00, .special: 0x0000 }, |
| 60 | { .keycode: 11, .unicode: 0x0030, .qtcode: 0x00000030, .modifiers: 0x00, .flags: 0x00, .special: 0x0000 }, |
| 61 | { .keycode: 11, .unicode: 0x0029, .qtcode: 0x00000029, .modifiers: 0x01, .flags: 0x00, .special: 0x0000 }, |
| 62 | { .keycode: 11, .unicode: 0x007d, .qtcode: 0x0000007d, .modifiers: 0x02, .flags: 0x00, .special: 0x0000 }, |
| 63 | { .keycode: 12, .unicode: 0x002d, .qtcode: 0x0000002d, .modifiers: 0x00, .flags: 0x00, .special: 0x0000 }, |
| 64 | { .keycode: 12, .unicode: 0x005f, .qtcode: 0x0000005f, .modifiers: 0x01, .flags: 0x00, .special: 0x0000 }, |
| 65 | { .keycode: 12, .unicode: 0x005c, .qtcode: 0x0000005c, .modifiers: 0x02, .flags: 0x00, .special: 0x0000 }, |
| 66 | { .keycode: 12, .unicode: 0x005f, .qtcode: 0x0400005f, .modifiers: 0x04, .flags: 0x00, .special: 0x0000 }, |
| 67 | { .keycode: 12, .unicode: 0x005f, .qtcode: 0x0400005f, .modifiers: 0x05, .flags: 0x00, .special: 0x0000 }, |
| 68 | { .keycode: 13, .unicode: 0x003d, .qtcode: 0x0000003d, .modifiers: 0x00, .flags: 0x00, .special: 0x0000 }, |
| 69 | { .keycode: 13, .unicode: 0x002b, .qtcode: 0x0000002b, .modifiers: 0x01, .flags: 0x00, .special: 0x0000 }, |
| 70 | { .keycode: 14, .unicode: 0xffff, .qtcode: 0x01000003, .modifiers: 0x00, .flags: 0x00, .special: 0x0000 }, |
| 71 | { .keycode: 14, .unicode: 0xffff, .qtcode: 0x01000000, .modifiers: 0x0c, .flags: 0x08, .special: 0x0300 }, |
| 72 | { .keycode: 15, .unicode: 0xffff, .qtcode: 0x01000001, .modifiers: 0x00, .flags: 0x00, .special: 0x0000 }, |
| 73 | { .keycode: 16, .unicode: 0x0071, .qtcode: 0x00000051, .modifiers: 0x00, .flags: 0x02, .special: 0x0000 }, |
| 74 | { .keycode: 16, .unicode: 0x0051, .qtcode: 0x00000051, .modifiers: 0x01, .flags: 0x02, .special: 0x0000 }, |
| 75 | { .keycode: 16, .unicode: 0x0071, .qtcode: 0x00000051, .modifiers: 0x02, .flags: 0x02, .special: 0x0000 }, |
| 76 | { .keycode: 16, .unicode: 0x0051, .qtcode: 0x00000051, .modifiers: 0x03, .flags: 0x02, .special: 0x0000 }, |
| 77 | { .keycode: 16, .unicode: 0x0071, .qtcode: 0x04000051, .modifiers: 0x04, .flags: 0x02, .special: 0x0000 }, |
| 78 | { .keycode: 16, .unicode: 0x0071, .qtcode: 0x04000051, .modifiers: 0x05, .flags: 0x02, .special: 0x0000 }, |
| 79 | { .keycode: 16, .unicode: 0x0071, .qtcode: 0x04000051, .modifiers: 0x06, .flags: 0x02, .special: 0x0000 }, |
| 80 | { .keycode: 16, .unicode: 0x0071, .qtcode: 0x04000051, .modifiers: 0x07, .flags: 0x02, .special: 0x0000 }, |
| 81 | { .keycode: 16, .unicode: 0x0071, .qtcode: 0x08000051, .modifiers: 0x08, .flags: 0x02, .special: 0x0000 }, |
| 82 | { .keycode: 16, .unicode: 0x0071, .qtcode: 0x08000051, .modifiers: 0x09, .flags: 0x02, .special: 0x0000 }, |
| 83 | { .keycode: 16, .unicode: 0x0071, .qtcode: 0x08000051, .modifiers: 0x0a, .flags: 0x02, .special: 0x0000 }, |
| 84 | { .keycode: 16, .unicode: 0x0071, .qtcode: 0x08000051, .modifiers: 0x0b, .flags: 0x02, .special: 0x0000 }, |
| 85 | { .keycode: 16, .unicode: 0x0071, .qtcode: 0x0c000051, .modifiers: 0x0c, .flags: 0x02, .special: 0x0000 }, |
| 86 | { .keycode: 16, .unicode: 0x0071, .qtcode: 0x0c000051, .modifiers: 0x0d, .flags: 0x02, .special: 0x0000 }, |
| 87 | { .keycode: 16, .unicode: 0x0071, .qtcode: 0x0c000051, .modifiers: 0x0e, .flags: 0x02, .special: 0x0000 }, |
| 88 | { .keycode: 16, .unicode: 0x0071, .qtcode: 0x0c000051, .modifiers: 0x0f, .flags: 0x02, .special: 0x0000 }, |
| 89 | { .keycode: 17, .unicode: 0x0077, .qtcode: 0x00000057, .modifiers: 0x00, .flags: 0x02, .special: 0x0000 }, |
| 90 | { .keycode: 17, .unicode: 0x0057, .qtcode: 0x00000057, .modifiers: 0x01, .flags: 0x02, .special: 0x0000 }, |
| 91 | { .keycode: 17, .unicode: 0x0077, .qtcode: 0x00000057, .modifiers: 0x02, .flags: 0x02, .special: 0x0000 }, |
| 92 | { .keycode: 17, .unicode: 0x0057, .qtcode: 0x00000057, .modifiers: 0x03, .flags: 0x02, .special: 0x0000 }, |
| 93 | { .keycode: 17, .unicode: 0x0077, .qtcode: 0x04000057, .modifiers: 0x04, .flags: 0x02, .special: 0x0000 }, |
| 94 | { .keycode: 17, .unicode: 0x0077, .qtcode: 0x04000057, .modifiers: 0x05, .flags: 0x02, .special: 0x0000 }, |
| 95 | { .keycode: 17, .unicode: 0x0077, .qtcode: 0x04000057, .modifiers: 0x06, .flags: 0x02, .special: 0x0000 }, |
| 96 | { .keycode: 17, .unicode: 0x0077, .qtcode: 0x04000057, .modifiers: 0x07, .flags: 0x02, .special: 0x0000 }, |
| 97 | { .keycode: 17, .unicode: 0x0077, .qtcode: 0x08000057, .modifiers: 0x08, .flags: 0x02, .special: 0x0000 }, |
| 98 | { .keycode: 17, .unicode: 0x0077, .qtcode: 0x08000057, .modifiers: 0x09, .flags: 0x02, .special: 0x0000 }, |
| 99 | { .keycode: 17, .unicode: 0x0077, .qtcode: 0x08000057, .modifiers: 0x0a, .flags: 0x02, .special: 0x0000 }, |
| 100 | { .keycode: 17, .unicode: 0x0077, .qtcode: 0x08000057, .modifiers: 0x0b, .flags: 0x02, .special: 0x0000 }, |
| 101 | { .keycode: 17, .unicode: 0x0077, .qtcode: 0x0c000057, .modifiers: 0x0c, .flags: 0x02, .special: 0x0000 }, |
| 102 | { .keycode: 17, .unicode: 0x0077, .qtcode: 0x0c000057, .modifiers: 0x0d, .flags: 0x02, .special: 0x0000 }, |
| 103 | { .keycode: 17, .unicode: 0x0077, .qtcode: 0x0c000057, .modifiers: 0x0e, .flags: 0x02, .special: 0x0000 }, |
| 104 | { .keycode: 17, .unicode: 0x0077, .qtcode: 0x0c000057, .modifiers: 0x0f, .flags: 0x02, .special: 0x0000 }, |
| 105 | { .keycode: 18, .unicode: 0x0065, .qtcode: 0x00000045, .modifiers: 0x00, .flags: 0x02, .special: 0x0000 }, |
| 106 | { .keycode: 18, .unicode: 0x0045, .qtcode: 0x00000045, .modifiers: 0x01, .flags: 0x02, .special: 0x0000 }, |
| 107 | { .keycode: 18, .unicode: 0x0065, .qtcode: 0x00000045, .modifiers: 0x02, .flags: 0x02, .special: 0x0000 }, |
| 108 | { .keycode: 18, .unicode: 0x0045, .qtcode: 0x00000045, .modifiers: 0x03, .flags: 0x02, .special: 0x0000 }, |
| 109 | { .keycode: 18, .unicode: 0x0065, .qtcode: 0x04000045, .modifiers: 0x04, .flags: 0x02, .special: 0x0000 }, |
| 110 | { .keycode: 18, .unicode: 0x0065, .qtcode: 0x04000045, .modifiers: 0x05, .flags: 0x02, .special: 0x0000 }, |
| 111 | { .keycode: 18, .unicode: 0x0065, .qtcode: 0x04000045, .modifiers: 0x06, .flags: 0x02, .special: 0x0000 }, |
| 112 | { .keycode: 18, .unicode: 0x0065, .qtcode: 0x04000045, .modifiers: 0x07, .flags: 0x02, .special: 0x0000 }, |
| 113 | { .keycode: 18, .unicode: 0x0065, .qtcode: 0x08000045, .modifiers: 0x08, .flags: 0x02, .special: 0x0000 }, |
| 114 | { .keycode: 18, .unicode: 0x0065, .qtcode: 0x08000045, .modifiers: 0x09, .flags: 0x02, .special: 0x0000 }, |
| 115 | { .keycode: 18, .unicode: 0x0065, .qtcode: 0x08000045, .modifiers: 0x0a, .flags: 0x02, .special: 0x0000 }, |
| 116 | { .keycode: 18, .unicode: 0x0065, .qtcode: 0x08000045, .modifiers: 0x0b, .flags: 0x02, .special: 0x0000 }, |
| 117 | { .keycode: 18, .unicode: 0x0065, .qtcode: 0x0c000045, .modifiers: 0x0c, .flags: 0x02, .special: 0x0000 }, |
| 118 | { .keycode: 18, .unicode: 0x0065, .qtcode: 0x0c000045, .modifiers: 0x0d, .flags: 0x02, .special: 0x0000 }, |
| 119 | { .keycode: 18, .unicode: 0x0065, .qtcode: 0x0c000045, .modifiers: 0x0e, .flags: 0x02, .special: 0x0000 }, |
| 120 | { .keycode: 18, .unicode: 0x0065, .qtcode: 0x0c000045, .modifiers: 0x0f, .flags: 0x02, .special: 0x0000 }, |
| 121 | { .keycode: 19, .unicode: 0x0072, .qtcode: 0x00000052, .modifiers: 0x00, .flags: 0x02, .special: 0x0000 }, |
| 122 | { .keycode: 19, .unicode: 0x0052, .qtcode: 0x00000052, .modifiers: 0x01, .flags: 0x02, .special: 0x0000 }, |
| 123 | { .keycode: 19, .unicode: 0x0072, .qtcode: 0x00000052, .modifiers: 0x02, .flags: 0x02, .special: 0x0000 }, |
| 124 | { .keycode: 19, .unicode: 0x0052, .qtcode: 0x00000052, .modifiers: 0x03, .flags: 0x02, .special: 0x0000 }, |
| 125 | { .keycode: 19, .unicode: 0x0072, .qtcode: 0x04000052, .modifiers: 0x04, .flags: 0x02, .special: 0x0000 }, |
| 126 | { .keycode: 19, .unicode: 0x0072, .qtcode: 0x04000052, .modifiers: 0x05, .flags: 0x02, .special: 0x0000 }, |
| 127 | { .keycode: 19, .unicode: 0x0072, .qtcode: 0x04000052, .modifiers: 0x06, .flags: 0x02, .special: 0x0000 }, |
| 128 | { .keycode: 19, .unicode: 0x0072, .qtcode: 0x04000052, .modifiers: 0x07, .flags: 0x02, .special: 0x0000 }, |
| 129 | { .keycode: 19, .unicode: 0x0072, .qtcode: 0x08000052, .modifiers: 0x08, .flags: 0x02, .special: 0x0000 }, |
| 130 | { .keycode: 19, .unicode: 0x0072, .qtcode: 0x08000052, .modifiers: 0x09, .flags: 0x02, .special: 0x0000 }, |
| 131 | { .keycode: 19, .unicode: 0x0072, .qtcode: 0x08000052, .modifiers: 0x0a, .flags: 0x02, .special: 0x0000 }, |
| 132 | { .keycode: 19, .unicode: 0x0072, .qtcode: 0x08000052, .modifiers: 0x0b, .flags: 0x02, .special: 0x0000 }, |
| 133 | { .keycode: 19, .unicode: 0x0072, .qtcode: 0x0c000052, .modifiers: 0x0c, .flags: 0x02, .special: 0x0000 }, |
| 134 | { .keycode: 19, .unicode: 0x0072, .qtcode: 0x0c000052, .modifiers: 0x0d, .flags: 0x02, .special: 0x0000 }, |
| 135 | { .keycode: 19, .unicode: 0x0072, .qtcode: 0x0c000052, .modifiers: 0x0e, .flags: 0x02, .special: 0x0000 }, |
| 136 | { .keycode: 19, .unicode: 0x0072, .qtcode: 0x0c000052, .modifiers: 0x0f, .flags: 0x02, .special: 0x0000 }, |
| 137 | { .keycode: 20, .unicode: 0x0074, .qtcode: 0x00000054, .modifiers: 0x00, .flags: 0x02, .special: 0x0000 }, |
| 138 | { .keycode: 20, .unicode: 0x0054, .qtcode: 0x00000054, .modifiers: 0x01, .flags: 0x02, .special: 0x0000 }, |
| 139 | { .keycode: 20, .unicode: 0x0074, .qtcode: 0x00000054, .modifiers: 0x02, .flags: 0x02, .special: 0x0000 }, |
| 140 | { .keycode: 20, .unicode: 0x0054, .qtcode: 0x00000054, .modifiers: 0x03, .flags: 0x02, .special: 0x0000 }, |
| 141 | { .keycode: 20, .unicode: 0x0074, .qtcode: 0x04000054, .modifiers: 0x04, .flags: 0x02, .special: 0x0000 }, |
| 142 | { .keycode: 20, .unicode: 0x0074, .qtcode: 0x04000054, .modifiers: 0x05, .flags: 0x02, .special: 0x0000 }, |
| 143 | { .keycode: 20, .unicode: 0x0074, .qtcode: 0x04000054, .modifiers: 0x06, .flags: 0x02, .special: 0x0000 }, |
| 144 | { .keycode: 20, .unicode: 0x0074, .qtcode: 0x04000054, .modifiers: 0x07, .flags: 0x02, .special: 0x0000 }, |
| 145 | { .keycode: 20, .unicode: 0x0074, .qtcode: 0x08000054, .modifiers: 0x08, .flags: 0x02, .special: 0x0000 }, |
| 146 | { .keycode: 20, .unicode: 0x0074, .qtcode: 0x08000054, .modifiers: 0x09, .flags: 0x02, .special: 0x0000 }, |
| 147 | { .keycode: 20, .unicode: 0x0074, .qtcode: 0x08000054, .modifiers: 0x0a, .flags: 0x02, .special: 0x0000 }, |
| 148 | { .keycode: 20, .unicode: 0x0074, .qtcode: 0x08000054, .modifiers: 0x0b, .flags: 0x02, .special: 0x0000 }, |
| 149 | { .keycode: 20, .unicode: 0x0074, .qtcode: 0x0c000054, .modifiers: 0x0c, .flags: 0x02, .special: 0x0000 }, |
| 150 | { .keycode: 20, .unicode: 0x0074, .qtcode: 0x0c000054, .modifiers: 0x0d, .flags: 0x02, .special: 0x0000 }, |
| 151 | { .keycode: 20, .unicode: 0x0074, .qtcode: 0x0c000054, .modifiers: 0x0e, .flags: 0x02, .special: 0x0000 }, |
| 152 | { .keycode: 20, .unicode: 0x0074, .qtcode: 0x0c000054, .modifiers: 0x0f, .flags: 0x02, .special: 0x0000 }, |
| 153 | { .keycode: 21, .unicode: 0x0079, .qtcode: 0x00000059, .modifiers: 0x00, .flags: 0x02, .special: 0x0000 }, |
| 154 | { .keycode: 21, .unicode: 0x0059, .qtcode: 0x00000059, .modifiers: 0x01, .flags: 0x02, .special: 0x0000 }, |
| 155 | { .keycode: 21, .unicode: 0x0079, .qtcode: 0x00000059, .modifiers: 0x02, .flags: 0x02, .special: 0x0000 }, |
| 156 | { .keycode: 21, .unicode: 0x0059, .qtcode: 0x00000059, .modifiers: 0x03, .flags: 0x02, .special: 0x0000 }, |
| 157 | { .keycode: 21, .unicode: 0x0079, .qtcode: 0x04000059, .modifiers: 0x04, .flags: 0x02, .special: 0x0000 }, |
| 158 | { .keycode: 21, .unicode: 0x0079, .qtcode: 0x04000059, .modifiers: 0x05, .flags: 0x02, .special: 0x0000 }, |
| 159 | { .keycode: 21, .unicode: 0x0079, .qtcode: 0x04000059, .modifiers: 0x06, .flags: 0x02, .special: 0x0000 }, |
| 160 | { .keycode: 21, .unicode: 0x0079, .qtcode: 0x04000059, .modifiers: 0x07, .flags: 0x02, .special: 0x0000 }, |
| 161 | { .keycode: 21, .unicode: 0x0079, .qtcode: 0x08000059, .modifiers: 0x08, .flags: 0x02, .special: 0x0000 }, |
| 162 | { .keycode: 21, .unicode: 0x0079, .qtcode: 0x08000059, .modifiers: 0x09, .flags: 0x02, .special: 0x0000 }, |
| 163 | { .keycode: 21, .unicode: 0x0079, .qtcode: 0x08000059, .modifiers: 0x0a, .flags: 0x02, .special: 0x0000 }, |
| 164 | { .keycode: 21, .unicode: 0x0079, .qtcode: 0x08000059, .modifiers: 0x0b, .flags: 0x02, .special: 0x0000 }, |
| 165 | { .keycode: 21, .unicode: 0x0079, .qtcode: 0x0c000059, .modifiers: 0x0c, .flags: 0x02, .special: 0x0000 }, |
| 166 | { .keycode: 21, .unicode: 0x0079, .qtcode: 0x0c000059, .modifiers: 0x0d, .flags: 0x02, .special: 0x0000 }, |
| 167 | { .keycode: 21, .unicode: 0x0079, .qtcode: 0x0c000059, .modifiers: 0x0e, .flags: 0x02, .special: 0x0000 }, |
| 168 | { .keycode: 21, .unicode: 0x0079, .qtcode: 0x0c000059, .modifiers: 0x0f, .flags: 0x02, .special: 0x0000 }, |
| 169 | { .keycode: 22, .unicode: 0x0075, .qtcode: 0x00000055, .modifiers: 0x00, .flags: 0x02, .special: 0x0000 }, |
| 170 | { .keycode: 22, .unicode: 0x0055, .qtcode: 0x00000055, .modifiers: 0x01, .flags: 0x02, .special: 0x0000 }, |
| 171 | { .keycode: 22, .unicode: 0x0075, .qtcode: 0x00000055, .modifiers: 0x02, .flags: 0x02, .special: 0x0000 }, |
| 172 | { .keycode: 22, .unicode: 0x0055, .qtcode: 0x00000055, .modifiers: 0x03, .flags: 0x02, .special: 0x0000 }, |
| 173 | { .keycode: 22, .unicode: 0x0075, .qtcode: 0x04000055, .modifiers: 0x04, .flags: 0x02, .special: 0x0000 }, |
| 174 | { .keycode: 22, .unicode: 0x0075, .qtcode: 0x04000055, .modifiers: 0x05, .flags: 0x02, .special: 0x0000 }, |
| 175 | { .keycode: 22, .unicode: 0x0075, .qtcode: 0x04000055, .modifiers: 0x06, .flags: 0x02, .special: 0x0000 }, |
| 176 | { .keycode: 22, .unicode: 0x0075, .qtcode: 0x04000055, .modifiers: 0x07, .flags: 0x02, .special: 0x0000 }, |
| 177 | { .keycode: 22, .unicode: 0x0075, .qtcode: 0x08000055, .modifiers: 0x08, .flags: 0x02, .special: 0x0000 }, |
| 178 | { .keycode: 22, .unicode: 0x0075, .qtcode: 0x08000055, .modifiers: 0x09, .flags: 0x02, .special: 0x0000 }, |
| 179 | { .keycode: 22, .unicode: 0x0075, .qtcode: 0x08000055, .modifiers: 0x0a, .flags: 0x02, .special: 0x0000 }, |
| 180 | { .keycode: 22, .unicode: 0x0075, .qtcode: 0x08000055, .modifiers: 0x0b, .flags: 0x02, .special: 0x0000 }, |
| 181 | { .keycode: 22, .unicode: 0x0075, .qtcode: 0x0c000055, .modifiers: 0x0c, .flags: 0x02, .special: 0x0000 }, |
| 182 | { .keycode: 22, .unicode: 0x0075, .qtcode: 0x0c000055, .modifiers: 0x0d, .flags: 0x02, .special: 0x0000 }, |
| 183 | { .keycode: 22, .unicode: 0x0075, .qtcode: 0x0c000055, .modifiers: 0x0e, .flags: 0x02, .special: 0x0000 }, |
| 184 | { .keycode: 22, .unicode: 0x0075, .qtcode: 0x0c000055, .modifiers: 0x0f, .flags: 0x02, .special: 0x0000 }, |
| 185 | { .keycode: 23, .unicode: 0x0069, .qtcode: 0x00000049, .modifiers: 0x00, .flags: 0x02, .special: 0x0000 }, |
| 186 | { .keycode: 23, .unicode: 0x0049, .qtcode: 0x00000049, .modifiers: 0x01, .flags: 0x02, .special: 0x0000 }, |
| 187 | { .keycode: 23, .unicode: 0x0069, .qtcode: 0x00000049, .modifiers: 0x02, .flags: 0x02, .special: 0x0000 }, |
| 188 | { .keycode: 23, .unicode: 0x0049, .qtcode: 0x00000049, .modifiers: 0x03, .flags: 0x02, .special: 0x0000 }, |
| 189 | { .keycode: 23, .unicode: 0x0069, .qtcode: 0x04000049, .modifiers: 0x04, .flags: 0x02, .special: 0x0000 }, |
| 190 | { .keycode: 23, .unicode: 0x0069, .qtcode: 0x04000049, .modifiers: 0x05, .flags: 0x02, .special: 0x0000 }, |
| 191 | { .keycode: 23, .unicode: 0x0069, .qtcode: 0x04000049, .modifiers: 0x06, .flags: 0x02, .special: 0x0000 }, |
| 192 | { .keycode: 23, .unicode: 0x0069, .qtcode: 0x04000049, .modifiers: 0x07, .flags: 0x02, .special: 0x0000 }, |
| 193 | { .keycode: 23, .unicode: 0x0069, .qtcode: 0x08000049, .modifiers: 0x08, .flags: 0x02, .special: 0x0000 }, |
| 194 | { .keycode: 23, .unicode: 0x0069, .qtcode: 0x08000049, .modifiers: 0x09, .flags: 0x02, .special: 0x0000 }, |
| 195 | { .keycode: 23, .unicode: 0x0069, .qtcode: 0x08000049, .modifiers: 0x0a, .flags: 0x02, .special: 0x0000 }, |
| 196 | { .keycode: 23, .unicode: 0x0069, .qtcode: 0x08000049, .modifiers: 0x0b, .flags: 0x02, .special: 0x0000 }, |
| 197 | { .keycode: 23, .unicode: 0x0069, .qtcode: 0x0c000049, .modifiers: 0x0c, .flags: 0x02, .special: 0x0000 }, |
| 198 | { .keycode: 23, .unicode: 0x0069, .qtcode: 0x0c000049, .modifiers: 0x0d, .flags: 0x02, .special: 0x0000 }, |
| 199 | { .keycode: 23, .unicode: 0x0069, .qtcode: 0x0c000049, .modifiers: 0x0e, .flags: 0x02, .special: 0x0000 }, |
| 200 | { .keycode: 23, .unicode: 0x0069, .qtcode: 0x0c000049, .modifiers: 0x0f, .flags: 0x02, .special: 0x0000 }, |
| 201 | { .keycode: 24, .unicode: 0x006f, .qtcode: 0x0000004f, .modifiers: 0x00, .flags: 0x02, .special: 0x0000 }, |
| 202 | { .keycode: 24, .unicode: 0x004f, .qtcode: 0x0000004f, .modifiers: 0x01, .flags: 0x02, .special: 0x0000 }, |
| 203 | { .keycode: 24, .unicode: 0x006f, .qtcode: 0x0000004f, .modifiers: 0x02, .flags: 0x02, .special: 0x0000 }, |
| 204 | { .keycode: 24, .unicode: 0x004f, .qtcode: 0x0000004f, .modifiers: 0x03, .flags: 0x02, .special: 0x0000 }, |
| 205 | { .keycode: 24, .unicode: 0x006f, .qtcode: 0x0400004f, .modifiers: 0x04, .flags: 0x02, .special: 0x0000 }, |
| 206 | { .keycode: 24, .unicode: 0x006f, .qtcode: 0x0400004f, .modifiers: 0x05, .flags: 0x02, .special: 0x0000 }, |
| 207 | { .keycode: 24, .unicode: 0x006f, .qtcode: 0x0400004f, .modifiers: 0x06, .flags: 0x02, .special: 0x0000 }, |
| 208 | { .keycode: 24, .unicode: 0x006f, .qtcode: 0x0400004f, .modifiers: 0x07, .flags: 0x02, .special: 0x0000 }, |
| 209 | { .keycode: 24, .unicode: 0x006f, .qtcode: 0x0800004f, .modifiers: 0x08, .flags: 0x02, .special: 0x0000 }, |
| 210 | { .keycode: 24, .unicode: 0x006f, .qtcode: 0x0800004f, .modifiers: 0x09, .flags: 0x02, .special: 0x0000 }, |
| 211 | { .keycode: 24, .unicode: 0x006f, .qtcode: 0x0800004f, .modifiers: 0x0a, .flags: 0x02, .special: 0x0000 }, |
| 212 | { .keycode: 24, .unicode: 0x006f, .qtcode: 0x0800004f, .modifiers: 0x0b, .flags: 0x02, .special: 0x0000 }, |
| 213 | { .keycode: 24, .unicode: 0x006f, .qtcode: 0x0c00004f, .modifiers: 0x0c, .flags: 0x02, .special: 0x0000 }, |
| 214 | { .keycode: 24, .unicode: 0x006f, .qtcode: 0x0c00004f, .modifiers: 0x0d, .flags: 0x02, .special: 0x0000 }, |
| 215 | { .keycode: 24, .unicode: 0x006f, .qtcode: 0x0c00004f, .modifiers: 0x0e, .flags: 0x02, .special: 0x0000 }, |
| 216 | { .keycode: 24, .unicode: 0x006f, .qtcode: 0x0c00004f, .modifiers: 0x0f, .flags: 0x02, .special: 0x0000 }, |
| 217 | { .keycode: 25, .unicode: 0x0070, .qtcode: 0x00000050, .modifiers: 0x00, .flags: 0x02, .special: 0x0000 }, |
| 218 | { .keycode: 25, .unicode: 0x0050, .qtcode: 0x00000050, .modifiers: 0x01, .flags: 0x02, .special: 0x0000 }, |
| 219 | { .keycode: 25, .unicode: 0x0070, .qtcode: 0x00000050, .modifiers: 0x02, .flags: 0x02, .special: 0x0000 }, |
| 220 | { .keycode: 25, .unicode: 0x0050, .qtcode: 0x00000050, .modifiers: 0x03, .flags: 0x02, .special: 0x0000 }, |
| 221 | { .keycode: 25, .unicode: 0x0070, .qtcode: 0x04000050, .modifiers: 0x04, .flags: 0x02, .special: 0x0000 }, |
| 222 | { .keycode: 25, .unicode: 0x0070, .qtcode: 0x04000050, .modifiers: 0x05, .flags: 0x02, .special: 0x0000 }, |
| 223 | { .keycode: 25, .unicode: 0x0070, .qtcode: 0x04000050, .modifiers: 0x06, .flags: 0x02, .special: 0x0000 }, |
| 224 | { .keycode: 25, .unicode: 0x0070, .qtcode: 0x04000050, .modifiers: 0x07, .flags: 0x02, .special: 0x0000 }, |
| 225 | { .keycode: 25, .unicode: 0x0070, .qtcode: 0x08000050, .modifiers: 0x08, .flags: 0x02, .special: 0x0000 }, |
| 226 | { .keycode: 25, .unicode: 0x0070, .qtcode: 0x08000050, .modifiers: 0x09, .flags: 0x02, .special: 0x0000 }, |
| 227 | { .keycode: 25, .unicode: 0x0070, .qtcode: 0x08000050, .modifiers: 0x0a, .flags: 0x02, .special: 0x0000 }, |
| 228 | { .keycode: 25, .unicode: 0x0070, .qtcode: 0x08000050, .modifiers: 0x0b, .flags: 0x02, .special: 0x0000 }, |
| 229 | { .keycode: 25, .unicode: 0x0070, .qtcode: 0x0c000050, .modifiers: 0x0c, .flags: 0x02, .special: 0x0000 }, |
| 230 | { .keycode: 25, .unicode: 0x0070, .qtcode: 0x0c000050, .modifiers: 0x0d, .flags: 0x02, .special: 0x0000 }, |
| 231 | { .keycode: 25, .unicode: 0x0070, .qtcode: 0x0c000050, .modifiers: 0x0e, .flags: 0x02, .special: 0x0000 }, |
| 232 | { .keycode: 25, .unicode: 0x0070, .qtcode: 0x0c000050, .modifiers: 0x0f, .flags: 0x02, .special: 0x0000 }, |
| 233 | { .keycode: 26, .unicode: 0x005b, .qtcode: 0x0000005b, .modifiers: 0x00, .flags: 0x00, .special: 0x0000 }, |
| 234 | { .keycode: 26, .unicode: 0x007b, .qtcode: 0x0000007b, .modifiers: 0x01, .flags: 0x00, .special: 0x0000 }, |
| 235 | { .keycode: 26, .unicode: 0xffff, .qtcode: 0x01000000, .modifiers: 0x04, .flags: 0x00, .special: 0x0000 }, |
| 236 | { .keycode: 27, .unicode: 0x005d, .qtcode: 0x0000005d, .modifiers: 0x00, .flags: 0x00, .special: 0x0000 }, |
| 237 | { .keycode: 27, .unicode: 0x007d, .qtcode: 0x0000007d, .modifiers: 0x01, .flags: 0x00, .special: 0x0000 }, |
| 238 | { .keycode: 27, .unicode: 0x007e, .qtcode: 0x0000007e, .modifiers: 0x02, .flags: 0x00, .special: 0x0000 }, |
| 239 | { .keycode: 27, .unicode: 0x005d, .qtcode: 0x0400005d, .modifiers: 0x04, .flags: 0x00, .special: 0x0000 }, |
| 240 | { .keycode: 28, .unicode: 0xffff, .qtcode: 0x01000004, .modifiers: 0x00, .flags: 0x00, .special: 0x0000 }, |
| 241 | { .keycode: 28, .unicode: 0x006d, .qtcode: 0x0c00004d, .modifiers: 0x08, .flags: 0x00, .special: 0x0000 }, |
| 242 | { .keycode: 29, .unicode: 0xffff, .qtcode: 0x01000021, .modifiers: 0x00, .flags: 0x04, .special: 0x0004 }, |
| 243 | { .keycode: 30, .unicode: 0x0061, .qtcode: 0x00000041, .modifiers: 0x00, .flags: 0x02, .special: 0x0000 }, |
| 244 | { .keycode: 30, .unicode: 0x0041, .qtcode: 0x00000041, .modifiers: 0x01, .flags: 0x02, .special: 0x0000 }, |
| 245 | { .keycode: 30, .unicode: 0x0061, .qtcode: 0x00000041, .modifiers: 0x02, .flags: 0x02, .special: 0x0000 }, |
| 246 | { .keycode: 30, .unicode: 0x0041, .qtcode: 0x00000041, .modifiers: 0x03, .flags: 0x02, .special: 0x0000 }, |
| 247 | { .keycode: 30, .unicode: 0x0061, .qtcode: 0x04000041, .modifiers: 0x04, .flags: 0x02, .special: 0x0000 }, |
| 248 | { .keycode: 30, .unicode: 0x0061, .qtcode: 0x04000041, .modifiers: 0x05, .flags: 0x02, .special: 0x0000 }, |
| 249 | { .keycode: 30, .unicode: 0x0061, .qtcode: 0x04000041, .modifiers: 0x06, .flags: 0x02, .special: 0x0000 }, |
| 250 | { .keycode: 30, .unicode: 0x0061, .qtcode: 0x04000041, .modifiers: 0x07, .flags: 0x02, .special: 0x0000 }, |
| 251 | { .keycode: 30, .unicode: 0x0061, .qtcode: 0x08000041, .modifiers: 0x08, .flags: 0x02, .special: 0x0000 }, |
| 252 | { .keycode: 30, .unicode: 0x0061, .qtcode: 0x08000041, .modifiers: 0x09, .flags: 0x02, .special: 0x0000 }, |
| 253 | { .keycode: 30, .unicode: 0x0061, .qtcode: 0x08000041, .modifiers: 0x0a, .flags: 0x02, .special: 0x0000 }, |
| 254 | { .keycode: 30, .unicode: 0x0061, .qtcode: 0x08000041, .modifiers: 0x0b, .flags: 0x02, .special: 0x0000 }, |
| 255 | { .keycode: 30, .unicode: 0x0061, .qtcode: 0x0c000041, .modifiers: 0x0c, .flags: 0x02, .special: 0x0000 }, |
| 256 | { .keycode: 30, .unicode: 0x0061, .qtcode: 0x0c000041, .modifiers: 0x0d, .flags: 0x02, .special: 0x0000 }, |
| 257 | { .keycode: 30, .unicode: 0x0061, .qtcode: 0x0c000041, .modifiers: 0x0e, .flags: 0x02, .special: 0x0000 }, |
| 258 | { .keycode: 30, .unicode: 0x0061, .qtcode: 0x0c000041, .modifiers: 0x0f, .flags: 0x02, .special: 0x0000 }, |
| 259 | { .keycode: 31, .unicode: 0x0073, .qtcode: 0x00000053, .modifiers: 0x00, .flags: 0x02, .special: 0x0000 }, |
| 260 | { .keycode: 31, .unicode: 0x0053, .qtcode: 0x00000053, .modifiers: 0x01, .flags: 0x02, .special: 0x0000 }, |
| 261 | { .keycode: 31, .unicode: 0x0073, .qtcode: 0x00000053, .modifiers: 0x02, .flags: 0x02, .special: 0x0000 }, |
| 262 | { .keycode: 31, .unicode: 0x0053, .qtcode: 0x00000053, .modifiers: 0x03, .flags: 0x02, .special: 0x0000 }, |
| 263 | { .keycode: 31, .unicode: 0x0073, .qtcode: 0x04000053, .modifiers: 0x04, .flags: 0x02, .special: 0x0000 }, |
| 264 | { .keycode: 31, .unicode: 0x0073, .qtcode: 0x04000053, .modifiers: 0x05, .flags: 0x02, .special: 0x0000 }, |
| 265 | { .keycode: 31, .unicode: 0x0073, .qtcode: 0x04000053, .modifiers: 0x06, .flags: 0x02, .special: 0x0000 }, |
| 266 | { .keycode: 31, .unicode: 0x0073, .qtcode: 0x04000053, .modifiers: 0x07, .flags: 0x02, .special: 0x0000 }, |
| 267 | { .keycode: 31, .unicode: 0x0073, .qtcode: 0x08000053, .modifiers: 0x08, .flags: 0x02, .special: 0x0000 }, |
| 268 | { .keycode: 31, .unicode: 0x0073, .qtcode: 0x08000053, .modifiers: 0x09, .flags: 0x02, .special: 0x0000 }, |
| 269 | { .keycode: 31, .unicode: 0x0073, .qtcode: 0x08000053, .modifiers: 0x0a, .flags: 0x02, .special: 0x0000 }, |
| 270 | { .keycode: 31, .unicode: 0x0073, .qtcode: 0x08000053, .modifiers: 0x0b, .flags: 0x02, .special: 0x0000 }, |
| 271 | { .keycode: 31, .unicode: 0x0073, .qtcode: 0x0c000053, .modifiers: 0x0c, .flags: 0x02, .special: 0x0000 }, |
| 272 | { .keycode: 31, .unicode: 0x0073, .qtcode: 0x0c000053, .modifiers: 0x0d, .flags: 0x02, .special: 0x0000 }, |
| 273 | { .keycode: 31, .unicode: 0x0073, .qtcode: 0x0c000053, .modifiers: 0x0e, .flags: 0x02, .special: 0x0000 }, |
| 274 | { .keycode: 31, .unicode: 0x0073, .qtcode: 0x0c000053, .modifiers: 0x0f, .flags: 0x02, .special: 0x0000 }, |
| 275 | { .keycode: 32, .unicode: 0x0064, .qtcode: 0x00000044, .modifiers: 0x00, .flags: 0x02, .special: 0x0000 }, |
| 276 | { .keycode: 32, .unicode: 0x0044, .qtcode: 0x00000044, .modifiers: 0x01, .flags: 0x02, .special: 0x0000 }, |
| 277 | { .keycode: 32, .unicode: 0x0064, .qtcode: 0x00000044, .modifiers: 0x02, .flags: 0x02, .special: 0x0000 }, |
| 278 | { .keycode: 32, .unicode: 0x0044, .qtcode: 0x00000044, .modifiers: 0x03, .flags: 0x02, .special: 0x0000 }, |
| 279 | { .keycode: 32, .unicode: 0x0064, .qtcode: 0x04000044, .modifiers: 0x04, .flags: 0x02, .special: 0x0000 }, |
| 280 | { .keycode: 32, .unicode: 0x0064, .qtcode: 0x04000044, .modifiers: 0x05, .flags: 0x02, .special: 0x0000 }, |
| 281 | { .keycode: 32, .unicode: 0x0064, .qtcode: 0x04000044, .modifiers: 0x06, .flags: 0x02, .special: 0x0000 }, |
| 282 | { .keycode: 32, .unicode: 0x0064, .qtcode: 0x04000044, .modifiers: 0x07, .flags: 0x02, .special: 0x0000 }, |
| 283 | { .keycode: 32, .unicode: 0x0064, .qtcode: 0x08000044, .modifiers: 0x08, .flags: 0x02, .special: 0x0000 }, |
| 284 | { .keycode: 32, .unicode: 0x0064, .qtcode: 0x08000044, .modifiers: 0x09, .flags: 0x02, .special: 0x0000 }, |
| 285 | { .keycode: 32, .unicode: 0x0064, .qtcode: 0x08000044, .modifiers: 0x0a, .flags: 0x02, .special: 0x0000 }, |
| 286 | { .keycode: 32, .unicode: 0x0064, .qtcode: 0x08000044, .modifiers: 0x0b, .flags: 0x02, .special: 0x0000 }, |
| 287 | { .keycode: 32, .unicode: 0x0064, .qtcode: 0x0c000044, .modifiers: 0x0c, .flags: 0x02, .special: 0x0000 }, |
| 288 | { .keycode: 32, .unicode: 0x0064, .qtcode: 0x0c000044, .modifiers: 0x0d, .flags: 0x02, .special: 0x0000 }, |
| 289 | { .keycode: 32, .unicode: 0x0064, .qtcode: 0x0c000044, .modifiers: 0x0e, .flags: 0x02, .special: 0x0000 }, |
| 290 | { .keycode: 32, .unicode: 0x0064, .qtcode: 0x0c000044, .modifiers: 0x0f, .flags: 0x02, .special: 0x0000 }, |
| 291 | { .keycode: 33, .unicode: 0x0066, .qtcode: 0x00000046, .modifiers: 0x00, .flags: 0x02, .special: 0x0000 }, |
| 292 | { .keycode: 33, .unicode: 0x0046, .qtcode: 0x00000046, .modifiers: 0x01, .flags: 0x02, .special: 0x0000 }, |
| 293 | { .keycode: 33, .unicode: 0x0066, .qtcode: 0x00000046, .modifiers: 0x02, .flags: 0x02, .special: 0x0000 }, |
| 294 | { .keycode: 33, .unicode: 0x0046, .qtcode: 0x00000046, .modifiers: 0x03, .flags: 0x02, .special: 0x0000 }, |
| 295 | { .keycode: 33, .unicode: 0x0066, .qtcode: 0x04000046, .modifiers: 0x04, .flags: 0x02, .special: 0x0000 }, |
| 296 | { .keycode: 33, .unicode: 0x0066, .qtcode: 0x04000046, .modifiers: 0x05, .flags: 0x02, .special: 0x0000 }, |
| 297 | { .keycode: 33, .unicode: 0x0066, .qtcode: 0x04000046, .modifiers: 0x06, .flags: 0x02, .special: 0x0000 }, |
| 298 | { .keycode: 33, .unicode: 0x0066, .qtcode: 0x04000046, .modifiers: 0x07, .flags: 0x02, .special: 0x0000 }, |
| 299 | { .keycode: 33, .unicode: 0x0066, .qtcode: 0x08000046, .modifiers: 0x08, .flags: 0x02, .special: 0x0000 }, |
| 300 | { .keycode: 33, .unicode: 0x0066, .qtcode: 0x08000046, .modifiers: 0x09, .flags: 0x02, .special: 0x0000 }, |
| 301 | { .keycode: 33, .unicode: 0x0066, .qtcode: 0x08000046, .modifiers: 0x0a, .flags: 0x02, .special: 0x0000 }, |
| 302 | { .keycode: 33, .unicode: 0x0066, .qtcode: 0x08000046, .modifiers: 0x0b, .flags: 0x02, .special: 0x0000 }, |
| 303 | { .keycode: 33, .unicode: 0x0066, .qtcode: 0x0c000046, .modifiers: 0x0c, .flags: 0x02, .special: 0x0000 }, |
| 304 | { .keycode: 33, .unicode: 0x0066, .qtcode: 0x0c000046, .modifiers: 0x0d, .flags: 0x02, .special: 0x0000 }, |
| 305 | { .keycode: 33, .unicode: 0x0066, .qtcode: 0x0c000046, .modifiers: 0x0e, .flags: 0x02, .special: 0x0000 }, |
| 306 | { .keycode: 33, .unicode: 0x0066, .qtcode: 0x0c000046, .modifiers: 0x0f, .flags: 0x02, .special: 0x0000 }, |
| 307 | { .keycode: 34, .unicode: 0x0067, .qtcode: 0x00000047, .modifiers: 0x00, .flags: 0x02, .special: 0x0000 }, |
| 308 | { .keycode: 34, .unicode: 0x0047, .qtcode: 0x00000047, .modifiers: 0x01, .flags: 0x02, .special: 0x0000 }, |
| 309 | { .keycode: 34, .unicode: 0x0067, .qtcode: 0x00000047, .modifiers: 0x02, .flags: 0x02, .special: 0x0000 }, |
| 310 | { .keycode: 34, .unicode: 0x0047, .qtcode: 0x00000047, .modifiers: 0x03, .flags: 0x02, .special: 0x0000 }, |
| 311 | { .keycode: 34, .unicode: 0x0067, .qtcode: 0x04000047, .modifiers: 0x04, .flags: 0x02, .special: 0x0000 }, |
| 312 | { .keycode: 34, .unicode: 0x0067, .qtcode: 0x04000047, .modifiers: 0x05, .flags: 0x02, .special: 0x0000 }, |
| 313 | { .keycode: 34, .unicode: 0x0067, .qtcode: 0x04000047, .modifiers: 0x06, .flags: 0x02, .special: 0x0000 }, |
| 314 | { .keycode: 34, .unicode: 0x0067, .qtcode: 0x04000047, .modifiers: 0x07, .flags: 0x02, .special: 0x0000 }, |
| 315 | { .keycode: 34, .unicode: 0x0067, .qtcode: 0x08000047, .modifiers: 0x08, .flags: 0x02, .special: 0x0000 }, |
| 316 | { .keycode: 34, .unicode: 0x0067, .qtcode: 0x08000047, .modifiers: 0x09, .flags: 0x02, .special: 0x0000 }, |
| 317 | { .keycode: 34, .unicode: 0x0067, .qtcode: 0x08000047, .modifiers: 0x0a, .flags: 0x02, .special: 0x0000 }, |
| 318 | { .keycode: 34, .unicode: 0x0067, .qtcode: 0x08000047, .modifiers: 0x0b, .flags: 0x02, .special: 0x0000 }, |
| 319 | { .keycode: 34, .unicode: 0x0067, .qtcode: 0x0c000047, .modifiers: 0x0c, .flags: 0x02, .special: 0x0000 }, |
| 320 | { .keycode: 34, .unicode: 0x0067, .qtcode: 0x0c000047, .modifiers: 0x0d, .flags: 0x02, .special: 0x0000 }, |
| 321 | { .keycode: 34, .unicode: 0x0067, .qtcode: 0x0c000047, .modifiers: 0x0e, .flags: 0x02, .special: 0x0000 }, |
| 322 | { .keycode: 34, .unicode: 0x0067, .qtcode: 0x0c000047, .modifiers: 0x0f, .flags: 0x02, .special: 0x0000 }, |
| 323 | { .keycode: 35, .unicode: 0x0068, .qtcode: 0x00000048, .modifiers: 0x00, .flags: 0x02, .special: 0x0000 }, |
| 324 | { .keycode: 35, .unicode: 0x0048, .qtcode: 0x00000048, .modifiers: 0x01, .flags: 0x02, .special: 0x0000 }, |
| 325 | { .keycode: 35, .unicode: 0x0068, .qtcode: 0x00000048, .modifiers: 0x02, .flags: 0x02, .special: 0x0000 }, |
| 326 | { .keycode: 35, .unicode: 0x0048, .qtcode: 0x00000048, .modifiers: 0x03, .flags: 0x02, .special: 0x0000 }, |
| 327 | { .keycode: 35, .unicode: 0x0068, .qtcode: 0x04000048, .modifiers: 0x04, .flags: 0x02, .special: 0x0000 }, |
| 328 | { .keycode: 35, .unicode: 0x0068, .qtcode: 0x04000048, .modifiers: 0x05, .flags: 0x02, .special: 0x0000 }, |
| 329 | { .keycode: 35, .unicode: 0x0068, .qtcode: 0x04000048, .modifiers: 0x06, .flags: 0x02, .special: 0x0000 }, |
| 330 | { .keycode: 35, .unicode: 0x0068, .qtcode: 0x04000048, .modifiers: 0x07, .flags: 0x02, .special: 0x0000 }, |
| 331 | { .keycode: 35, .unicode: 0x0068, .qtcode: 0x08000048, .modifiers: 0x08, .flags: 0x02, .special: 0x0000 }, |
| 332 | { .keycode: 35, .unicode: 0x0068, .qtcode: 0x08000048, .modifiers: 0x09, .flags: 0x02, .special: 0x0000 }, |
| 333 | { .keycode: 35, .unicode: 0x0068, .qtcode: 0x08000048, .modifiers: 0x0a, .flags: 0x02, .special: 0x0000 }, |
| 334 | { .keycode: 35, .unicode: 0x0068, .qtcode: 0x08000048, .modifiers: 0x0b, .flags: 0x02, .special: 0x0000 }, |
| 335 | { .keycode: 35, .unicode: 0x0068, .qtcode: 0x0c000048, .modifiers: 0x0c, .flags: 0x02, .special: 0x0000 }, |
| 336 | { .keycode: 35, .unicode: 0x0068, .qtcode: 0x0c000048, .modifiers: 0x0d, .flags: 0x02, .special: 0x0000 }, |
| 337 | { .keycode: 35, .unicode: 0x0068, .qtcode: 0x0c000048, .modifiers: 0x0e, .flags: 0x02, .special: 0x0000 }, |
| 338 | { .keycode: 35, .unicode: 0x0068, .qtcode: 0x0c000048, .modifiers: 0x0f, .flags: 0x02, .special: 0x0000 }, |
| 339 | { .keycode: 36, .unicode: 0x006a, .qtcode: 0x0000004a, .modifiers: 0x00, .flags: 0x02, .special: 0x0000 }, |
| 340 | { .keycode: 36, .unicode: 0x004a, .qtcode: 0x0000004a, .modifiers: 0x01, .flags: 0x02, .special: 0x0000 }, |
| 341 | { .keycode: 36, .unicode: 0x006a, .qtcode: 0x0000004a, .modifiers: 0x02, .flags: 0x02, .special: 0x0000 }, |
| 342 | { .keycode: 36, .unicode: 0x004a, .qtcode: 0x0000004a, .modifiers: 0x03, .flags: 0x02, .special: 0x0000 }, |
| 343 | { .keycode: 36, .unicode: 0x006a, .qtcode: 0x0400004a, .modifiers: 0x04, .flags: 0x02, .special: 0x0000 }, |
| 344 | { .keycode: 36, .unicode: 0x006a, .qtcode: 0x0400004a, .modifiers: 0x05, .flags: 0x02, .special: 0x0000 }, |
| 345 | { .keycode: 36, .unicode: 0x006a, .qtcode: 0x0400004a, .modifiers: 0x06, .flags: 0x02, .special: 0x0000 }, |
| 346 | { .keycode: 36, .unicode: 0x006a, .qtcode: 0x0400004a, .modifiers: 0x07, .flags: 0x02, .special: 0x0000 }, |
| 347 | { .keycode: 36, .unicode: 0x006a, .qtcode: 0x0800004a, .modifiers: 0x08, .flags: 0x02, .special: 0x0000 }, |
| 348 | { .keycode: 36, .unicode: 0x006a, .qtcode: 0x0800004a, .modifiers: 0x09, .flags: 0x02, .special: 0x0000 }, |
| 349 | { .keycode: 36, .unicode: 0x006a, .qtcode: 0x0800004a, .modifiers: 0x0a, .flags: 0x02, .special: 0x0000 }, |
| 350 | { .keycode: 36, .unicode: 0x006a, .qtcode: 0x0800004a, .modifiers: 0x0b, .flags: 0x02, .special: 0x0000 }, |
| 351 | { .keycode: 36, .unicode: 0x006a, .qtcode: 0x0c00004a, .modifiers: 0x0c, .flags: 0x02, .special: 0x0000 }, |
| 352 | { .keycode: 36, .unicode: 0x006a, .qtcode: 0x0c00004a, .modifiers: 0x0d, .flags: 0x02, .special: 0x0000 }, |
| 353 | { .keycode: 36, .unicode: 0x006a, .qtcode: 0x0c00004a, .modifiers: 0x0e, .flags: 0x02, .special: 0x0000 }, |
| 354 | { .keycode: 36, .unicode: 0x006a, .qtcode: 0x0c00004a, .modifiers: 0x0f, .flags: 0x02, .special: 0x0000 }, |
| 355 | { .keycode: 37, .unicode: 0x006b, .qtcode: 0x0000004b, .modifiers: 0x00, .flags: 0x02, .special: 0x0000 }, |
| 356 | { .keycode: 37, .unicode: 0x004b, .qtcode: 0x0000004b, .modifiers: 0x01, .flags: 0x02, .special: 0x0000 }, |
| 357 | { .keycode: 37, .unicode: 0x006b, .qtcode: 0x0000004b, .modifiers: 0x02, .flags: 0x02, .special: 0x0000 }, |
| 358 | { .keycode: 37, .unicode: 0x004b, .qtcode: 0x0000004b, .modifiers: 0x03, .flags: 0x02, .special: 0x0000 }, |
| 359 | { .keycode: 37, .unicode: 0x006b, .qtcode: 0x0400004b, .modifiers: 0x04, .flags: 0x02, .special: 0x0000 }, |
| 360 | { .keycode: 37, .unicode: 0x006b, .qtcode: 0x0400004b, .modifiers: 0x05, .flags: 0x02, .special: 0x0000 }, |
| 361 | { .keycode: 37, .unicode: 0x006b, .qtcode: 0x0400004b, .modifiers: 0x06, .flags: 0x02, .special: 0x0000 }, |
| 362 | { .keycode: 37, .unicode: 0x006b, .qtcode: 0x0400004b, .modifiers: 0x07, .flags: 0x02, .special: 0x0000 }, |
| 363 | { .keycode: 37, .unicode: 0x006b, .qtcode: 0x0800004b, .modifiers: 0x08, .flags: 0x02, .special: 0x0000 }, |
| 364 | { .keycode: 37, .unicode: 0x006b, .qtcode: 0x0800004b, .modifiers: 0x09, .flags: 0x02, .special: 0x0000 }, |
| 365 | { .keycode: 37, .unicode: 0x006b, .qtcode: 0x0800004b, .modifiers: 0x0a, .flags: 0x02, .special: 0x0000 }, |
| 366 | { .keycode: 37, .unicode: 0x006b, .qtcode: 0x0800004b, .modifiers: 0x0b, .flags: 0x02, .special: 0x0000 }, |
| 367 | { .keycode: 37, .unicode: 0x006b, .qtcode: 0x0c00004b, .modifiers: 0x0c, .flags: 0x02, .special: 0x0000 }, |
| 368 | { .keycode: 37, .unicode: 0x006b, .qtcode: 0x0c00004b, .modifiers: 0x0d, .flags: 0x02, .special: 0x0000 }, |
| 369 | { .keycode: 37, .unicode: 0x006b, .qtcode: 0x0c00004b, .modifiers: 0x0e, .flags: 0x02, .special: 0x0000 }, |
| 370 | { .keycode: 37, .unicode: 0x006b, .qtcode: 0x0c00004b, .modifiers: 0x0f, .flags: 0x02, .special: 0x0000 }, |
| 371 | { .keycode: 38, .unicode: 0x006c, .qtcode: 0x0000004c, .modifiers: 0x00, .flags: 0x02, .special: 0x0000 }, |
| 372 | { .keycode: 38, .unicode: 0x004c, .qtcode: 0x0000004c, .modifiers: 0x01, .flags: 0x02, .special: 0x0000 }, |
| 373 | { .keycode: 38, .unicode: 0x006c, .qtcode: 0x0000004c, .modifiers: 0x02, .flags: 0x02, .special: 0x0000 }, |
| 374 | { .keycode: 38, .unicode: 0x004c, .qtcode: 0x0000004c, .modifiers: 0x03, .flags: 0x02, .special: 0x0000 }, |
| 375 | { .keycode: 38, .unicode: 0x006c, .qtcode: 0x0400004c, .modifiers: 0x04, .flags: 0x02, .special: 0x0000 }, |
| 376 | { .keycode: 38, .unicode: 0x006c, .qtcode: 0x0400004c, .modifiers: 0x05, .flags: 0x02, .special: 0x0000 }, |
| 377 | { .keycode: 38, .unicode: 0x006c, .qtcode: 0x0400004c, .modifiers: 0x06, .flags: 0x02, .special: 0x0000 }, |
| 378 | { .keycode: 38, .unicode: 0x006c, .qtcode: 0x0400004c, .modifiers: 0x07, .flags: 0x02, .special: 0x0000 }, |
| 379 | { .keycode: 38, .unicode: 0x006c, .qtcode: 0x0800004c, .modifiers: 0x08, .flags: 0x02, .special: 0x0000 }, |
| 380 | { .keycode: 38, .unicode: 0x006c, .qtcode: 0x0800004c, .modifiers: 0x09, .flags: 0x02, .special: 0x0000 }, |
| 381 | { .keycode: 38, .unicode: 0x006c, .qtcode: 0x0800004c, .modifiers: 0x0a, .flags: 0x02, .special: 0x0000 }, |
| 382 | { .keycode: 38, .unicode: 0x006c, .qtcode: 0x0800004c, .modifiers: 0x0b, .flags: 0x02, .special: 0x0000 }, |
| 383 | { .keycode: 38, .unicode: 0x006c, .qtcode: 0x0c00004c, .modifiers: 0x0c, .flags: 0x02, .special: 0x0000 }, |
| 384 | { .keycode: 38, .unicode: 0x006c, .qtcode: 0x0c00004c, .modifiers: 0x0d, .flags: 0x02, .special: 0x0000 }, |
| 385 | { .keycode: 38, .unicode: 0x006c, .qtcode: 0x0c00004c, .modifiers: 0x0e, .flags: 0x02, .special: 0x0000 }, |
| 386 | { .keycode: 38, .unicode: 0x006c, .qtcode: 0x0c00004c, .modifiers: 0x0f, .flags: 0x02, .special: 0x0000 }, |
| 387 | { .keycode: 39, .unicode: 0x003b, .qtcode: 0x0000003b, .modifiers: 0x00, .flags: 0x00, .special: 0x0000 }, |
| 388 | { .keycode: 39, .unicode: 0x003a, .qtcode: 0x0000003a, .modifiers: 0x01, .flags: 0x00, .special: 0x0000 }, |
| 389 | { .keycode: 40, .unicode: 0x0027, .qtcode: 0x00000027, .modifiers: 0x00, .flags: 0x00, .special: 0x0000 }, |
| 390 | { .keycode: 40, .unicode: 0x0022, .qtcode: 0x00000022, .modifiers: 0x01, .flags: 0x00, .special: 0x0000 }, |
| 391 | { .keycode: 40, .unicode: 0x0027, .qtcode: 0x01001251, .modifiers: 0x02, .flags: 0x01, .special: 0x0000 }, |
| 392 | { .keycode: 40, .unicode: 0x0022, .qtcode: 0x01001257, .modifiers: 0x03, .flags: 0x01, .special: 0x0000 }, |
| 393 | { .keycode: 40, .unicode: 0x0067, .qtcode: 0x04000047, .modifiers: 0x04, .flags: 0x00, .special: 0x0000 }, |
| 394 | { .keycode: 41, .unicode: 0x0060, .qtcode: 0x00000060, .modifiers: 0x00, .flags: 0x00, .special: 0x0000 }, |
| 395 | { .keycode: 41, .unicode: 0x007e, .qtcode: 0x0000007e, .modifiers: 0x01, .flags: 0x00, .special: 0x0000 }, |
| 396 | { .keycode: 41, .unicode: 0x0060, .qtcode: 0x01001250, .modifiers: 0x02, .flags: 0x01, .special: 0x0000 }, |
| 397 | { .keycode: 41, .unicode: 0x007e, .qtcode: 0x01001253, .modifiers: 0x03, .flags: 0x01, .special: 0x0000 }, |
| 398 | { .keycode: 42, .unicode: 0xffff, .qtcode: 0x01000020, .modifiers: 0x00, .flags: 0x04, .special: 0x0001 }, |
| 399 | { .keycode: 43, .unicode: 0x005c, .qtcode: 0x0000005c, .modifiers: 0x00, .flags: 0x00, .special: 0x0000 }, |
| 400 | { .keycode: 43, .unicode: 0x007c, .qtcode: 0x0000007c, .modifiers: 0x01, .flags: 0x00, .special: 0x0000 }, |
| 401 | { .keycode: 43, .unicode: 0x005c, .qtcode: 0x0400005c, .modifiers: 0x04, .flags: 0x00, .special: 0x0000 }, |
| 402 | { .keycode: 44, .unicode: 0x007a, .qtcode: 0x0000005a, .modifiers: 0x00, .flags: 0x02, .special: 0x0000 }, |
| 403 | { .keycode: 44, .unicode: 0x005a, .qtcode: 0x0000005a, .modifiers: 0x01, .flags: 0x02, .special: 0x0000 }, |
| 404 | { .keycode: 44, .unicode: 0x007a, .qtcode: 0x0000005a, .modifiers: 0x02, .flags: 0x02, .special: 0x0000 }, |
| 405 | { .keycode: 44, .unicode: 0x005a, .qtcode: 0x0000005a, .modifiers: 0x03, .flags: 0x02, .special: 0x0000 }, |
| 406 | { .keycode: 44, .unicode: 0x007a, .qtcode: 0x0400005a, .modifiers: 0x04, .flags: 0x02, .special: 0x0000 }, |
| 407 | { .keycode: 44, .unicode: 0x007a, .qtcode: 0x0400005a, .modifiers: 0x05, .flags: 0x02, .special: 0x0000 }, |
| 408 | { .keycode: 44, .unicode: 0x007a, .qtcode: 0x0400005a, .modifiers: 0x06, .flags: 0x02, .special: 0x0000 }, |
| 409 | { .keycode: 44, .unicode: 0x007a, .qtcode: 0x0400005a, .modifiers: 0x07, .flags: 0x02, .special: 0x0000 }, |
| 410 | { .keycode: 44, .unicode: 0x007a, .qtcode: 0x0800005a, .modifiers: 0x08, .flags: 0x02, .special: 0x0000 }, |
| 411 | { .keycode: 44, .unicode: 0x007a, .qtcode: 0x0800005a, .modifiers: 0x09, .flags: 0x02, .special: 0x0000 }, |
| 412 | { .keycode: 44, .unicode: 0x007a, .qtcode: 0x0800005a, .modifiers: 0x0a, .flags: 0x02, .special: 0x0000 }, |
| 413 | { .keycode: 44, .unicode: 0x007a, .qtcode: 0x0800005a, .modifiers: 0x0b, .flags: 0x02, .special: 0x0000 }, |
| 414 | { .keycode: 44, .unicode: 0x007a, .qtcode: 0x0c00005a, .modifiers: 0x0c, .flags: 0x02, .special: 0x0000 }, |
| 415 | { .keycode: 44, .unicode: 0x007a, .qtcode: 0x0c00005a, .modifiers: 0x0d, .flags: 0x02, .special: 0x0000 }, |
| 416 | { .keycode: 44, .unicode: 0x007a, .qtcode: 0x0c00005a, .modifiers: 0x0e, .flags: 0x02, .special: 0x0000 }, |
| 417 | { .keycode: 44, .unicode: 0x007a, .qtcode: 0x0c00005a, .modifiers: 0x0f, .flags: 0x02, .special: 0x0000 }, |
| 418 | { .keycode: 45, .unicode: 0x0078, .qtcode: 0x00000058, .modifiers: 0x00, .flags: 0x02, .special: 0x0000 }, |
| 419 | { .keycode: 45, .unicode: 0x0058, .qtcode: 0x00000058, .modifiers: 0x01, .flags: 0x02, .special: 0x0000 }, |
| 420 | { .keycode: 45, .unicode: 0x0078, .qtcode: 0x00000058, .modifiers: 0x02, .flags: 0x02, .special: 0x0000 }, |
| 421 | { .keycode: 45, .unicode: 0x0058, .qtcode: 0x00000058, .modifiers: 0x03, .flags: 0x02, .special: 0x0000 }, |
| 422 | { .keycode: 45, .unicode: 0x0078, .qtcode: 0x04000058, .modifiers: 0x04, .flags: 0x02, .special: 0x0000 }, |
| 423 | { .keycode: 45, .unicode: 0x0078, .qtcode: 0x04000058, .modifiers: 0x05, .flags: 0x02, .special: 0x0000 }, |
| 424 | { .keycode: 45, .unicode: 0x0078, .qtcode: 0x04000058, .modifiers: 0x06, .flags: 0x02, .special: 0x0000 }, |
| 425 | { .keycode: 45, .unicode: 0x0078, .qtcode: 0x04000058, .modifiers: 0x07, .flags: 0x02, .special: 0x0000 }, |
| 426 | { .keycode: 45, .unicode: 0x0078, .qtcode: 0x08000058, .modifiers: 0x08, .flags: 0x02, .special: 0x0000 }, |
| 427 | { .keycode: 45, .unicode: 0x0078, .qtcode: 0x08000058, .modifiers: 0x09, .flags: 0x02, .special: 0x0000 }, |
| 428 | { .keycode: 45, .unicode: 0x0078, .qtcode: 0x08000058, .modifiers: 0x0a, .flags: 0x02, .special: 0x0000 }, |
| 429 | { .keycode: 45, .unicode: 0x0078, .qtcode: 0x08000058, .modifiers: 0x0b, .flags: 0x02, .special: 0x0000 }, |
| 430 | { .keycode: 45, .unicode: 0x0078, .qtcode: 0x0c000058, .modifiers: 0x0c, .flags: 0x02, .special: 0x0000 }, |
| 431 | { .keycode: 45, .unicode: 0x0078, .qtcode: 0x0c000058, .modifiers: 0x0d, .flags: 0x02, .special: 0x0000 }, |
| 432 | { .keycode: 45, .unicode: 0x0078, .qtcode: 0x0c000058, .modifiers: 0x0e, .flags: 0x02, .special: 0x0000 }, |
| 433 | { .keycode: 45, .unicode: 0x0078, .qtcode: 0x0c000058, .modifiers: 0x0f, .flags: 0x02, .special: 0x0000 }, |
| 434 | { .keycode: 46, .unicode: 0x0063, .qtcode: 0x00000043, .modifiers: 0x00, .flags: 0x02, .special: 0x0000 }, |
| 435 | { .keycode: 46, .unicode: 0x0043, .qtcode: 0x00000043, .modifiers: 0x01, .flags: 0x02, .special: 0x0000 }, |
| 436 | { .keycode: 46, .unicode: 0x0063, .qtcode: 0x00000043, .modifiers: 0x02, .flags: 0x02, .special: 0x0000 }, |
| 437 | { .keycode: 46, .unicode: 0x0043, .qtcode: 0x00000043, .modifiers: 0x03, .flags: 0x02, .special: 0x0000 }, |
| 438 | { .keycode: 46, .unicode: 0x0063, .qtcode: 0x04000043, .modifiers: 0x04, .flags: 0x02, .special: 0x0000 }, |
| 439 | { .keycode: 46, .unicode: 0x0063, .qtcode: 0x04000043, .modifiers: 0x05, .flags: 0x02, .special: 0x0000 }, |
| 440 | { .keycode: 46, .unicode: 0x0063, .qtcode: 0x04000043, .modifiers: 0x06, .flags: 0x02, .special: 0x0000 }, |
| 441 | { .keycode: 46, .unicode: 0x0063, .qtcode: 0x04000043, .modifiers: 0x07, .flags: 0x02, .special: 0x0000 }, |
| 442 | { .keycode: 46, .unicode: 0x0063, .qtcode: 0x08000043, .modifiers: 0x08, .flags: 0x02, .special: 0x0000 }, |
| 443 | { .keycode: 46, .unicode: 0x0063, .qtcode: 0x08000043, .modifiers: 0x09, .flags: 0x02, .special: 0x0000 }, |
| 444 | { .keycode: 46, .unicode: 0x0063, .qtcode: 0x08000043, .modifiers: 0x0a, .flags: 0x02, .special: 0x0000 }, |
| 445 | { .keycode: 46, .unicode: 0x0063, .qtcode: 0x08000043, .modifiers: 0x0b, .flags: 0x02, .special: 0x0000 }, |
| 446 | { .keycode: 46, .unicode: 0x0063, .qtcode: 0x0c000043, .modifiers: 0x0c, .flags: 0x02, .special: 0x0000 }, |
| 447 | { .keycode: 46, .unicode: 0x0063, .qtcode: 0x0c000043, .modifiers: 0x0d, .flags: 0x02, .special: 0x0000 }, |
| 448 | { .keycode: 46, .unicode: 0x0063, .qtcode: 0x0c000043, .modifiers: 0x0e, .flags: 0x02, .special: 0x0000 }, |
| 449 | { .keycode: 46, .unicode: 0x0063, .qtcode: 0x0c000043, .modifiers: 0x0f, .flags: 0x02, .special: 0x0000 }, |
| 450 | { .keycode: 47, .unicode: 0x0076, .qtcode: 0x00000056, .modifiers: 0x00, .flags: 0x02, .special: 0x0000 }, |
| 451 | { .keycode: 47, .unicode: 0x0056, .qtcode: 0x00000056, .modifiers: 0x01, .flags: 0x02, .special: 0x0000 }, |
| 452 | { .keycode: 47, .unicode: 0x0076, .qtcode: 0x00000056, .modifiers: 0x02, .flags: 0x02, .special: 0x0000 }, |
| 453 | { .keycode: 47, .unicode: 0x0056, .qtcode: 0x00000056, .modifiers: 0x03, .flags: 0x02, .special: 0x0000 }, |
| 454 | { .keycode: 47, .unicode: 0x0076, .qtcode: 0x04000056, .modifiers: 0x04, .flags: 0x02, .special: 0x0000 }, |
| 455 | { .keycode: 47, .unicode: 0x0076, .qtcode: 0x04000056, .modifiers: 0x05, .flags: 0x02, .special: 0x0000 }, |
| 456 | { .keycode: 47, .unicode: 0x0076, .qtcode: 0x04000056, .modifiers: 0x06, .flags: 0x02, .special: 0x0000 }, |
| 457 | { .keycode: 47, .unicode: 0x0076, .qtcode: 0x04000056, .modifiers: 0x07, .flags: 0x02, .special: 0x0000 }, |
| 458 | { .keycode: 47, .unicode: 0x0076, .qtcode: 0x08000056, .modifiers: 0x08, .flags: 0x02, .special: 0x0000 }, |
| 459 | { .keycode: 47, .unicode: 0x0076, .qtcode: 0x08000056, .modifiers: 0x09, .flags: 0x02, .special: 0x0000 }, |
| 460 | { .keycode: 47, .unicode: 0x0076, .qtcode: 0x08000056, .modifiers: 0x0a, .flags: 0x02, .special: 0x0000 }, |
| 461 | { .keycode: 47, .unicode: 0x0076, .qtcode: 0x08000056, .modifiers: 0x0b, .flags: 0x02, .special: 0x0000 }, |
| 462 | { .keycode: 47, .unicode: 0x0076, .qtcode: 0x0c000056, .modifiers: 0x0c, .flags: 0x02, .special: 0x0000 }, |
| 463 | { .keycode: 47, .unicode: 0x0076, .qtcode: 0x0c000056, .modifiers: 0x0d, .flags: 0x02, .special: 0x0000 }, |
| 464 | { .keycode: 47, .unicode: 0x0076, .qtcode: 0x0c000056, .modifiers: 0x0e, .flags: 0x02, .special: 0x0000 }, |
| 465 | { .keycode: 47, .unicode: 0x0076, .qtcode: 0x0c000056, .modifiers: 0x0f, .flags: 0x02, .special: 0x0000 }, |
| 466 | { .keycode: 48, .unicode: 0x0062, .qtcode: 0x00000042, .modifiers: 0x00, .flags: 0x02, .special: 0x0000 }, |
| 467 | { .keycode: 48, .unicode: 0x0042, .qtcode: 0x00000042, .modifiers: 0x01, .flags: 0x02, .special: 0x0000 }, |
| 468 | { .keycode: 48, .unicode: 0x0062, .qtcode: 0x00000042, .modifiers: 0x02, .flags: 0x02, .special: 0x0000 }, |
| 469 | { .keycode: 48, .unicode: 0x0042, .qtcode: 0x00000042, .modifiers: 0x03, .flags: 0x02, .special: 0x0000 }, |
| 470 | { .keycode: 48, .unicode: 0x0062, .qtcode: 0x04000042, .modifiers: 0x04, .flags: 0x02, .special: 0x0000 }, |
| 471 | { .keycode: 48, .unicode: 0x0062, .qtcode: 0x04000042, .modifiers: 0x05, .flags: 0x02, .special: 0x0000 }, |
| 472 | { .keycode: 48, .unicode: 0x0062, .qtcode: 0x04000042, .modifiers: 0x06, .flags: 0x02, .special: 0x0000 }, |
| 473 | { .keycode: 48, .unicode: 0x0062, .qtcode: 0x04000042, .modifiers: 0x07, .flags: 0x02, .special: 0x0000 }, |
| 474 | { .keycode: 48, .unicode: 0x0062, .qtcode: 0x08000042, .modifiers: 0x08, .flags: 0x02, .special: 0x0000 }, |
| 475 | { .keycode: 48, .unicode: 0x0062, .qtcode: 0x08000042, .modifiers: 0x09, .flags: 0x02, .special: 0x0000 }, |
| 476 | { .keycode: 48, .unicode: 0x0062, .qtcode: 0x08000042, .modifiers: 0x0a, .flags: 0x02, .special: 0x0000 }, |
| 477 | { .keycode: 48, .unicode: 0x0062, .qtcode: 0x08000042, .modifiers: 0x0b, .flags: 0x02, .special: 0x0000 }, |
| 478 | { .keycode: 48, .unicode: 0x0062, .qtcode: 0x0c000042, .modifiers: 0x0c, .flags: 0x02, .special: 0x0000 }, |
| 479 | { .keycode: 48, .unicode: 0x0062, .qtcode: 0x0c000042, .modifiers: 0x0d, .flags: 0x02, .special: 0x0000 }, |
| 480 | { .keycode: 48, .unicode: 0x0062, .qtcode: 0x0c000042, .modifiers: 0x0e, .flags: 0x02, .special: 0x0000 }, |
| 481 | { .keycode: 48, .unicode: 0x0062, .qtcode: 0x0c000042, .modifiers: 0x0f, .flags: 0x02, .special: 0x0000 }, |
| 482 | { .keycode: 49, .unicode: 0x006e, .qtcode: 0x0000004e, .modifiers: 0x00, .flags: 0x02, .special: 0x0000 }, |
| 483 | { .keycode: 49, .unicode: 0x004e, .qtcode: 0x0000004e, .modifiers: 0x01, .flags: 0x02, .special: 0x0000 }, |
| 484 | { .keycode: 49, .unicode: 0x006e, .qtcode: 0x0000004e, .modifiers: 0x02, .flags: 0x02, .special: 0x0000 }, |
| 485 | { .keycode: 49, .unicode: 0x004e, .qtcode: 0x0000004e, .modifiers: 0x03, .flags: 0x02, .special: 0x0000 }, |
| 486 | { .keycode: 49, .unicode: 0x006e, .qtcode: 0x0400004e, .modifiers: 0x04, .flags: 0x02, .special: 0x0000 }, |
| 487 | { .keycode: 49, .unicode: 0x006e, .qtcode: 0x0400004e, .modifiers: 0x05, .flags: 0x02, .special: 0x0000 }, |
| 488 | { .keycode: 49, .unicode: 0x006e, .qtcode: 0x0400004e, .modifiers: 0x06, .flags: 0x02, .special: 0x0000 }, |
| 489 | { .keycode: 49, .unicode: 0x006e, .qtcode: 0x0400004e, .modifiers: 0x07, .flags: 0x02, .special: 0x0000 }, |
| 490 | { .keycode: 49, .unicode: 0x006e, .qtcode: 0x0800004e, .modifiers: 0x08, .flags: 0x02, .special: 0x0000 }, |
| 491 | { .keycode: 49, .unicode: 0x006e, .qtcode: 0x0800004e, .modifiers: 0x09, .flags: 0x02, .special: 0x0000 }, |
| 492 | { .keycode: 49, .unicode: 0x006e, .qtcode: 0x0800004e, .modifiers: 0x0a, .flags: 0x02, .special: 0x0000 }, |
| 493 | { .keycode: 49, .unicode: 0x006e, .qtcode: 0x0800004e, .modifiers: 0x0b, .flags: 0x02, .special: 0x0000 }, |
| 494 | { .keycode: 49, .unicode: 0x006e, .qtcode: 0x0c00004e, .modifiers: 0x0c, .flags: 0x02, .special: 0x0000 }, |
| 495 | { .keycode: 49, .unicode: 0x006e, .qtcode: 0x0c00004e, .modifiers: 0x0d, .flags: 0x02, .special: 0x0000 }, |
| 496 | { .keycode: 49, .unicode: 0x006e, .qtcode: 0x0c00004e, .modifiers: 0x0e, .flags: 0x02, .special: 0x0000 }, |
| 497 | { .keycode: 49, .unicode: 0x006e, .qtcode: 0x0c00004e, .modifiers: 0x0f, .flags: 0x02, .special: 0x0000 }, |
| 498 | { .keycode: 50, .unicode: 0x006d, .qtcode: 0x0000004d, .modifiers: 0x00, .flags: 0x02, .special: 0x0000 }, |
| 499 | { .keycode: 50, .unicode: 0x004d, .qtcode: 0x0000004d, .modifiers: 0x01, .flags: 0x02, .special: 0x0000 }, |
| 500 | { .keycode: 50, .unicode: 0x006d, .qtcode: 0x0000004d, .modifiers: 0x02, .flags: 0x02, .special: 0x0000 }, |
| 501 | { .keycode: 50, .unicode: 0x004d, .qtcode: 0x0000004d, .modifiers: 0x03, .flags: 0x02, .special: 0x0000 }, |
| 502 | { .keycode: 50, .unicode: 0x006d, .qtcode: 0x0400004d, .modifiers: 0x04, .flags: 0x02, .special: 0x0000 }, |
| 503 | { .keycode: 50, .unicode: 0x006d, .qtcode: 0x0400004d, .modifiers: 0x05, .flags: 0x02, .special: 0x0000 }, |
| 504 | { .keycode: 50, .unicode: 0x006d, .qtcode: 0x0400004d, .modifiers: 0x06, .flags: 0x02, .special: 0x0000 }, |
| 505 | { .keycode: 50, .unicode: 0x006d, .qtcode: 0x0400004d, .modifiers: 0x07, .flags: 0x02, .special: 0x0000 }, |
| 506 | { .keycode: 50, .unicode: 0x006d, .qtcode: 0x0800004d, .modifiers: 0x08, .flags: 0x02, .special: 0x0000 }, |
| 507 | { .keycode: 50, .unicode: 0x006d, .qtcode: 0x0800004d, .modifiers: 0x09, .flags: 0x02, .special: 0x0000 }, |
| 508 | { .keycode: 50, .unicode: 0x006d, .qtcode: 0x0800004d, .modifiers: 0x0a, .flags: 0x02, .special: 0x0000 }, |
| 509 | { .keycode: 50, .unicode: 0x006d, .qtcode: 0x0800004d, .modifiers: 0x0b, .flags: 0x02, .special: 0x0000 }, |
| 510 | { .keycode: 50, .unicode: 0x006d, .qtcode: 0x0c00004d, .modifiers: 0x0c, .flags: 0x02, .special: 0x0000 }, |
| 511 | { .keycode: 50, .unicode: 0x006d, .qtcode: 0x0c00004d, .modifiers: 0x0d, .flags: 0x02, .special: 0x0000 }, |
| 512 | { .keycode: 50, .unicode: 0x006d, .qtcode: 0x0c00004d, .modifiers: 0x0e, .flags: 0x02, .special: 0x0000 }, |
| 513 | { .keycode: 50, .unicode: 0x006d, .qtcode: 0x0c00004d, .modifiers: 0x0f, .flags: 0x02, .special: 0x0000 }, |
| 514 | { .keycode: 51, .unicode: 0x002c, .qtcode: 0x0000002c, .modifiers: 0x00, .flags: 0x00, .special: 0x0000 }, |
| 515 | { .keycode: 51, .unicode: 0x003c, .qtcode: 0x0000003c, .modifiers: 0x01, .flags: 0x00, .special: 0x0000 }, |
| 516 | { .keycode: 51, .unicode: 0x002c, .qtcode: 0x0100125b, .modifiers: 0x02, .flags: 0x01, .special: 0x0000 }, |
| 517 | { .keycode: 52, .unicode: 0x002e, .qtcode: 0x0000002e, .modifiers: 0x00, .flags: 0x00, .special: 0x0000 }, |
| 518 | { .keycode: 52, .unicode: 0x003e, .qtcode: 0x0000003e, .modifiers: 0x01, .flags: 0x00, .special: 0x0000 }, |
| 519 | { .keycode: 52, .unicode: 0xffff, .qtcode: 0x01001120, .modifiers: 0x02, .flags: 0x00, .special: 0x0000 }, |
| 520 | { .keycode: 53, .unicode: 0x002f, .qtcode: 0x0000002f, .modifiers: 0x00, .flags: 0x00, .special: 0x0000 }, |
| 521 | { .keycode: 53, .unicode: 0x003f, .qtcode: 0x0000003f, .modifiers: 0x01, .flags: 0x00, .special: 0x0000 }, |
| 522 | { .keycode: 53, .unicode: 0xffff, .qtcode: 0x01000003, .modifiers: 0x04, .flags: 0x00, .special: 0x0000 }, |
| 523 | { .keycode: 54, .unicode: 0xffff, .qtcode: 0x01000020, .modifiers: 0x00, .flags: 0x04, .special: 0x0001 }, |
| 524 | { .keycode: 55, .unicode: 0x002a, .qtcode: 0x2000002a, .modifiers: 0x00, .flags: 0x00, .special: 0x0000 }, |
| 525 | { .keycode: 56, .unicode: 0xffff, .qtcode: 0x01000023, .modifiers: 0x00, .flags: 0x04, .special: 0x0008 }, |
| 526 | { .keycode: 57, .unicode: 0x0020, .qtcode: 0x00000020, .modifiers: 0x00, .flags: 0x00, .special: 0x0000 }, |
| 527 | { .keycode: 58, .unicode: 0xffff, .qtcode: 0x01000024, .modifiers: 0x00, .flags: 0x00, .special: 0x0000 }, |
| 528 | { .keycode: 59, .unicode: 0xffff, .qtcode: 0x01000030, .modifiers: 0x00, .flags: 0x00, .special: 0x0000 }, |
| 529 | { .keycode: 59, .unicode: 0xffff, .qtcode: 0x0100003c, .modifiers: 0x01, .flags: 0x00, .special: 0x0000 }, |
| 530 | { .keycode: 59, .unicode: 0xffff, .qtcode: 0x01000048, .modifiers: 0x04, .flags: 0x00, .special: 0x0000 }, |
| 531 | { .keycode: 59, .unicode: 0xffff, .qtcode: 0x01000000, .modifiers: 0x0c, .flags: 0x08, .special: 0x0100 }, |
| 532 | { .keycode: 60, .unicode: 0xffff, .qtcode: 0x01000031, .modifiers: 0x00, .flags: 0x00, .special: 0x0000 }, |
| 533 | { .keycode: 60, .unicode: 0xffff, .qtcode: 0x0100003d, .modifiers: 0x01, .flags: 0x00, .special: 0x0000 }, |
| 534 | { .keycode: 60, .unicode: 0xffff, .qtcode: 0x01000049, .modifiers: 0x04, .flags: 0x00, .special: 0x0000 }, |
| 535 | { .keycode: 60, .unicode: 0xffff, .qtcode: 0x01000000, .modifiers: 0x0c, .flags: 0x08, .special: 0x0101 }, |
| 536 | { .keycode: 61, .unicode: 0xffff, .qtcode: 0x01000032, .modifiers: 0x00, .flags: 0x00, .special: 0x0000 }, |
| 537 | { .keycode: 61, .unicode: 0xffff, .qtcode: 0x0100003e, .modifiers: 0x01, .flags: 0x00, .special: 0x0000 }, |
| 538 | { .keycode: 61, .unicode: 0xffff, .qtcode: 0x0100004a, .modifiers: 0x04, .flags: 0x00, .special: 0x0000 }, |
| 539 | { .keycode: 61, .unicode: 0xffff, .qtcode: 0x01000000, .modifiers: 0x0c, .flags: 0x08, .special: 0x0102 }, |
| 540 | { .keycode: 62, .unicode: 0xffff, .qtcode: 0x01000033, .modifiers: 0x00, .flags: 0x00, .special: 0x0000 }, |
| 541 | { .keycode: 62, .unicode: 0xffff, .qtcode: 0x0100003f, .modifiers: 0x01, .flags: 0x00, .special: 0x0000 }, |
| 542 | { .keycode: 62, .unicode: 0xffff, .qtcode: 0x0100004b, .modifiers: 0x04, .flags: 0x00, .special: 0x0000 }, |
| 543 | { .keycode: 62, .unicode: 0xffff, .qtcode: 0x01000000, .modifiers: 0x0c, .flags: 0x08, .special: 0x0103 }, |
| 544 | { .keycode: 63, .unicode: 0xffff, .qtcode: 0x01000034, .modifiers: 0x00, .flags: 0x00, .special: 0x0000 }, |
| 545 | { .keycode: 63, .unicode: 0xffff, .qtcode: 0x01000040, .modifiers: 0x01, .flags: 0x00, .special: 0x0000 }, |
| 546 | { .keycode: 63, .unicode: 0xffff, .qtcode: 0x0100004c, .modifiers: 0x04, .flags: 0x00, .special: 0x0000 }, |
| 547 | { .keycode: 63, .unicode: 0xffff, .qtcode: 0x01000000, .modifiers: 0x0c, .flags: 0x08, .special: 0x0104 }, |
| 548 | { .keycode: 64, .unicode: 0xffff, .qtcode: 0x01000035, .modifiers: 0x00, .flags: 0x00, .special: 0x0000 }, |
| 549 | { .keycode: 64, .unicode: 0xffff, .qtcode: 0x01000041, .modifiers: 0x01, .flags: 0x00, .special: 0x0000 }, |
| 550 | { .keycode: 64, .unicode: 0xffff, .qtcode: 0x0100004d, .modifiers: 0x04, .flags: 0x00, .special: 0x0000 }, |
| 551 | { .keycode: 64, .unicode: 0xffff, .qtcode: 0x01000000, .modifiers: 0x0c, .flags: 0x08, .special: 0x0105 }, |
| 552 | { .keycode: 65, .unicode: 0xffff, .qtcode: 0x01000036, .modifiers: 0x00, .flags: 0x00, .special: 0x0000 }, |
| 553 | { .keycode: 65, .unicode: 0xffff, .qtcode: 0x01000042, .modifiers: 0x01, .flags: 0x00, .special: 0x0000 }, |
| 554 | { .keycode: 65, .unicode: 0xffff, .qtcode: 0x0100004e, .modifiers: 0x04, .flags: 0x00, .special: 0x0000 }, |
| 555 | { .keycode: 65, .unicode: 0xffff, .qtcode: 0x01000000, .modifiers: 0x0c, .flags: 0x08, .special: 0x0106 }, |
| 556 | { .keycode: 66, .unicode: 0xffff, .qtcode: 0x01000037, .modifiers: 0x00, .flags: 0x00, .special: 0x0000 }, |
| 557 | { .keycode: 66, .unicode: 0xffff, .qtcode: 0x01000043, .modifiers: 0x01, .flags: 0x00, .special: 0x0000 }, |
| 558 | { .keycode: 66, .unicode: 0xffff, .qtcode: 0x0100004f, .modifiers: 0x04, .flags: 0x00, .special: 0x0000 }, |
| 559 | { .keycode: 66, .unicode: 0xffff, .qtcode: 0x01000000, .modifiers: 0x0c, .flags: 0x08, .special: 0x0107 }, |
| 560 | { .keycode: 67, .unicode: 0xffff, .qtcode: 0x01000038, .modifiers: 0x00, .flags: 0x00, .special: 0x0000 }, |
| 561 | { .keycode: 67, .unicode: 0xffff, .qtcode: 0x01000044, .modifiers: 0x01, .flags: 0x00, .special: 0x0000 }, |
| 562 | { .keycode: 67, .unicode: 0xffff, .qtcode: 0x01000050, .modifiers: 0x04, .flags: 0x00, .special: 0x0000 }, |
| 563 | { .keycode: 67, .unicode: 0xffff, .qtcode: 0x01000000, .modifiers: 0x0c, .flags: 0x08, .special: 0x0108 }, |
| 564 | { .keycode: 68, .unicode: 0xffff, .qtcode: 0x01000039, .modifiers: 0x00, .flags: 0x00, .special: 0x0000 }, |
| 565 | { .keycode: 68, .unicode: 0xffff, .qtcode: 0x01000045, .modifiers: 0x01, .flags: 0x00, .special: 0x0000 }, |
| 566 | { .keycode: 68, .unicode: 0xffff, .qtcode: 0x01000051, .modifiers: 0x04, .flags: 0x00, .special: 0x0000 }, |
| 567 | { .keycode: 68, .unicode: 0xffff, .qtcode: 0x01000000, .modifiers: 0x0c, .flags: 0x08, .special: 0x0109 }, |
| 568 | { .keycode: 69, .unicode: 0xffff, .qtcode: 0x01000025, .modifiers: 0x00, .flags: 0x00, .special: 0x0000 }, |
| 569 | { .keycode: 70, .unicode: 0xffff, .qtcode: 0x01000026, .modifiers: 0x00, .flags: 0x00, .special: 0x0000 }, |
| 570 | { .keycode: 70, .unicode: 0xffff, .qtcode: 0x01000026, .modifiers: 0x08, .flags: 0x00, .special: 0x0000 }, |
| 571 | { .keycode: 71, .unicode: 0x0037, .qtcode: 0x20000037, .modifiers: 0x00, .flags: 0x00, .special: 0x0000 }, |
| 572 | { .keycode: 72, .unicode: 0x0038, .qtcode: 0x20000038, .modifiers: 0x00, .flags: 0x00, .special: 0x0000 }, |
| 573 | { .keycode: 73, .unicode: 0x0039, .qtcode: 0x20000039, .modifiers: 0x00, .flags: 0x00, .special: 0x0000 }, |
| 574 | { .keycode: 74, .unicode: 0x002d, .qtcode: 0x2000002d, .modifiers: 0x00, .flags: 0x00, .special: 0x0000 }, |
| 575 | { .keycode: 75, .unicode: 0x0034, .qtcode: 0x20000034, .modifiers: 0x00, .flags: 0x00, .special: 0x0000 }, |
| 576 | { .keycode: 76, .unicode: 0x0035, .qtcode: 0x20000035, .modifiers: 0x00, .flags: 0x00, .special: 0x0000 }, |
| 577 | { .keycode: 77, .unicode: 0x0036, .qtcode: 0x20000036, .modifiers: 0x00, .flags: 0x00, .special: 0x0000 }, |
| 578 | { .keycode: 78, .unicode: 0x002b, .qtcode: 0x2000002b, .modifiers: 0x00, .flags: 0x00, .special: 0x0000 }, |
| 579 | { .keycode: 79, .unicode: 0x0031, .qtcode: 0x20000031, .modifiers: 0x00, .flags: 0x00, .special: 0x0000 }, |
| 580 | { .keycode: 80, .unicode: 0x0032, .qtcode: 0x20000032, .modifiers: 0x00, .flags: 0x00, .special: 0x0000 }, |
| 581 | { .keycode: 81, .unicode: 0x0033, .qtcode: 0x20000033, .modifiers: 0x00, .flags: 0x00, .special: 0x0000 }, |
| 582 | { .keycode: 82, .unicode: 0x0030, .qtcode: 0x20000030, .modifiers: 0x00, .flags: 0x00, .special: 0x0000 }, |
| 583 | { .keycode: 83, .unicode: 0x002e, .qtcode: 0x2000002e, .modifiers: 0x00, .flags: 0x00, .special: 0x0000 }, |
| 584 | { .keycode: 83, .unicode: 0xffff, .qtcode: 0x01000000, .modifiers: 0x06, .flags: 0x08, .special: 0x0200 }, |
| 585 | { .keycode: 83, .unicode: 0xffff, .qtcode: 0x01000000, .modifiers: 0x0c, .flags: 0x08, .special: 0x0200 }, |
| 586 | { .keycode: 86, .unicode: 0x003c, .qtcode: 0x0000003c, .modifiers: 0x00, .flags: 0x00, .special: 0x0000 }, |
| 587 | { .keycode: 86, .unicode: 0x003e, .qtcode: 0x0000003e, .modifiers: 0x01, .flags: 0x00, .special: 0x0000 }, |
| 588 | { .keycode: 86, .unicode: 0x007c, .qtcode: 0x0000007c, .modifiers: 0x02, .flags: 0x00, .special: 0x0000 }, |
| 589 | { .keycode: 87, .unicode: 0xffff, .qtcode: 0x0100003a, .modifiers: 0x00, .flags: 0x00, .special: 0x0000 }, |
| 590 | { .keycode: 87, .unicode: 0xffff, .qtcode: 0x01000046, .modifiers: 0x01, .flags: 0x00, .special: 0x0000 }, |
| 591 | { .keycode: 87, .unicode: 0xffff, .qtcode: 0x01000052, .modifiers: 0x04, .flags: 0x00, .special: 0x0000 }, |
| 592 | { .keycode: 87, .unicode: 0xffff, .qtcode: 0x01000000, .modifiers: 0x0c, .flags: 0x08, .special: 0x010a }, |
| 593 | { .keycode: 88, .unicode: 0xffff, .qtcode: 0x0100003b, .modifiers: 0x00, .flags: 0x00, .special: 0x0000 }, |
| 594 | { .keycode: 88, .unicode: 0xffff, .qtcode: 0x01000047, .modifiers: 0x01, .flags: 0x00, .special: 0x0000 }, |
| 595 | { .keycode: 88, .unicode: 0xffff, .qtcode: 0x01000000, .modifiers: 0x0c, .flags: 0x08, .special: 0x010b }, |
| 596 | { .keycode: 96, .unicode: 0xffff, .qtcode: 0x21000005, .modifiers: 0x00, .flags: 0x00, .special: 0x0000 }, |
| 597 | { .keycode: 97, .unicode: 0xffff, .qtcode: 0x01000021, .modifiers: 0x00, .flags: 0x04, .special: 0x0004 }, |
| 598 | { .keycode: 98, .unicode: 0x002f, .qtcode: 0x2000002f, .modifiers: 0x00, .flags: 0x00, .special: 0x0000 }, |
| 599 | { .keycode: 99, .unicode: 0x005c, .qtcode: 0x0400005c, .modifiers: 0x00, .flags: 0x00, .special: 0x0000 }, |
| 600 | { .keycode: 100, .unicode: 0xffff, .qtcode: 0x01001103, .modifiers: 0x00, .flags: 0x04, .special: 0x0002 }, |
| 601 | { .keycode: 102, .unicode: 0xffff, .qtcode: 0x01000010, .modifiers: 0x00, .flags: 0x00, .special: 0x0000 }, |
| 602 | { .keycode: 103, .unicode: 0xffff, .qtcode: 0x01000013, .modifiers: 0x00, .flags: 0x00, .special: 0x0000 }, |
| 603 | { .keycode: 104, .unicode: 0xffff, .qtcode: 0x01000016, .modifiers: 0x00, .flags: 0x00, .special: 0x0000 }, |
| 604 | { .keycode: 105, .unicode: 0xffff, .qtcode: 0x01000012, .modifiers: 0x00, .flags: 0x00, .special: 0x0000 }, |
| 605 | { .keycode: 105, .unicode: 0xffff, .qtcode: 0x01000000, .modifiers: 0x0c, .flags: 0x08, .special: 0x0180 }, |
| 606 | { .keycode: 106, .unicode: 0xffff, .qtcode: 0x01000014, .modifiers: 0x00, .flags: 0x00, .special: 0x0000 }, |
| 607 | { .keycode: 106, .unicode: 0xffff, .qtcode: 0x01000000, .modifiers: 0x0c, .flags: 0x08, .special: 0x0181 }, |
| 608 | { .keycode: 107, .unicode: 0xffff, .qtcode: 0x01000011, .modifiers: 0x00, .flags: 0x00, .special: 0x0000 }, |
| 609 | { .keycode: 108, .unicode: 0xffff, .qtcode: 0x01000015, .modifiers: 0x00, .flags: 0x00, .special: 0x0000 }, |
| 610 | { .keycode: 109, .unicode: 0xffff, .qtcode: 0x01000017, .modifiers: 0x00, .flags: 0x00, .special: 0x0000 }, |
| 611 | { .keycode: 110, .unicode: 0xffff, .qtcode: 0x01000006, .modifiers: 0x00, .flags: 0x00, .special: 0x0000 }, |
| 612 | { .keycode: 111, .unicode: 0xffff, .qtcode: 0x01000007, .modifiers: 0x00, .flags: 0x00, .special: 0x0000 }, |
| 613 | { .keycode: 111, .unicode: 0xffff, .qtcode: 0x01000000, .modifiers: 0x06, .flags: 0x08, .special: 0x0200 }, |
| 614 | { .keycode: 111, .unicode: 0xffff, .qtcode: 0x01000000, .modifiers: 0x0c, .flags: 0x08, .special: 0x0200 }, |
| 615 | |
| 616 | #ifndef Q_OS_VXWORKS |
| 617 | // 113 -> 248 |
| 618 | { KEY_MUTE, .unicode: 0xffff, .qtcode: Qt::Key_VolumeMute, .modifiers: 0x00, .flags: 0x00, .special: 0x0000 }, |
| 619 | { KEY_VOLUMEDOWN, .unicode: 0xffff, .qtcode: Qt::Key_VolumeDown, .modifiers: 0x00, .flags: 0x00, .special: 0x0000 }, |
| 620 | { KEY_VOLUMEUP, .unicode: 0xffff, .qtcode: Qt::Key_VolumeUp, .modifiers: 0x00, .flags: 0x00, .special: 0x0000 }, |
| 621 | { KEY_POWER, .unicode: 0xffff, .qtcode: Qt::Key_PowerOff, .modifiers: 0x00, .flags: 0x00, .special: 0x0000 }, |
| 622 | { KEY_PAUSE, .unicode: 0xffff, .qtcode: Qt::Key_Pause, .modifiers: 0x00, .flags: 0x00, .special: 0x0000 }, |
| 623 | { KEY_STOP, .unicode: 0xffff, .qtcode: Qt::Key_Stop, .modifiers: 0x00, .flags: 0x00, .special: 0x0000 }, |
| 624 | { KEY_SETUP, .unicode: 0xffff, .qtcode: Qt::Key_Settings, .modifiers: 0x00, .flags: 0x00, .special: 0x0000 }, |
| 625 | { KEY_RECORD, .unicode: 0xffff, .qtcode: Qt::Key_MediaRecord, .modifiers: 0x00, .flags: 0x00, .special: 0x0000 }, |
| 626 | { KEY_REWIND, .unicode: 0xffff, .qtcode: Qt::Key_AudioRewind, .modifiers: 0x00, .flags: 0x00, .special: 0x0000 }, |
| 627 | { KEY_PLAYPAUSE, .unicode: 0xffff, .qtcode: Qt::Key_MediaTogglePlayPause, .modifiers: 0x00, .flags: 0x00, .special: 0x0000 }, |
| 628 | { KEY_PLAY, .unicode: 0xffff, .qtcode: Qt::Key_MediaPlay, .modifiers: 0x00, .flags: 0x00, .special: 0x0000 }, |
| 629 | { KEY_FASTFORWARD, .unicode: 0xffff, .qtcode: Qt::Key_AudioForward, .modifiers: 0x00, .flags: 0x00, .special: 0x0000 }, |
| 630 | { KEY_CANCEL, .unicode: 0xffff, .qtcode: Qt::Key_Cancel, .modifiers: 0x00, .flags: 0x00, .special: 0x0000 }, |
| 631 | { .keycode: 248, .unicode: 0xffff, .qtcode: Qt::Key_MicMute, .modifiers: 0x00, .flags: 0x00, .special: 0x0000 }, |
| 632 | // 0x160 -> |
| 633 | { KEY_SELECT, .unicode: 0xffff, .qtcode: Qt::Key_Select, .modifiers: 0x00, .flags: 0x00, .special: 0x0000 }, |
| 634 | { KEY_CLEAR, .unicode: 0xffff, .qtcode: Qt::Key_Clear, .modifiers: 0x00, .flags: 0x00, .special: 0x0000 }, |
| 635 | { KEY_EXIT, .unicode: 0xffff, .qtcode: Qt::Key_Exit, .modifiers: 0x00, .flags: 0x00, .special: 0x0000 }, |
| 636 | { KEY_INFO, .unicode: 0xffff, .qtcode: Qt::Key_Info, .modifiers: 0x00, .flags: 0x00, .special: 0x0000 }, |
| 637 | { KEY_PROGRAM, .unicode: 0xffff, .qtcode: Qt::Key_Guide, .modifiers: 0x00, .flags: 0x00, .special: 0x0000 }, |
| 638 | { KEY_CALENDAR, .unicode: 0xffff, .qtcode: Qt::Key_Calendar, .modifiers: 0x00, .flags: 0x00, .special: 0x0000 }, |
| 639 | { KEY_RED, .unicode: 0xffff, .qtcode: Qt::Key_Red, .modifiers: 0x00, .flags: 0x00, .special: 0x0000 }, |
| 640 | { KEY_GREEN, .unicode: 0xffff, .qtcode: Qt::Key_Green, .modifiers: 0x00, .flags: 0x00, .special: 0x0000 }, |
| 641 | { KEY_YELLOW, .unicode: 0xffff, .qtcode: Qt::Key_Yellow, .modifiers: 0x00, .flags: 0x00, .special: 0x0000 }, |
| 642 | { KEY_BLUE, .unicode: 0xffff, .qtcode: Qt::Key_Blue, .modifiers: 0x00, .flags: 0x00, .special: 0x0000 }, |
| 643 | { KEY_CHANNELUP, .unicode: 0xffff, .qtcode: Qt::Key_ChannelUp, .modifiers: 0x00, .flags: 0x00, .special: 0x0000 }, |
| 644 | { KEY_CHANNELDOWN, .unicode: 0xffff, .qtcode: Qt::Key_ChannelDown, .modifiers: 0x00, .flags: 0x00, .special: 0x0000 }, |
| 645 | #endif |
| 646 | }; |
| 647 | |
| 648 | const QEvdevKeyboardMap::Composing QEvdevKeyboardHandler::s_keycompose_default[] = { |
| 649 | { .first: 0x0060, .second: 0x0041, .result: 0x00c0 }, |
| 650 | { .first: 0x0060, .second: 0x0061, .result: 0x00e0 }, |
| 651 | { .first: 0x0027, .second: 0x0041, .result: 0x00c1 }, |
| 652 | { .first: 0x0027, .second: 0x0061, .result: 0x00e1 }, |
| 653 | { .first: 0x005e, .second: 0x0041, .result: 0x00c2 }, |
| 654 | { .first: 0x005e, .second: 0x0061, .result: 0x00e2 }, |
| 655 | { .first: 0x007e, .second: 0x0041, .result: 0x00c3 }, |
| 656 | { .first: 0x007e, .second: 0x0061, .result: 0x00e3 }, |
| 657 | { .first: 0x0022, .second: 0x0041, .result: 0x00c4 }, |
| 658 | { .first: 0x0022, .second: 0x0061, .result: 0x00e4 }, |
| 659 | { .first: 0x002d, .second: 0x0061, .result: 0x00aa }, |
| 660 | { .first: 0x002d, .second: 0x0041, .result: 0x00aa }, |
| 661 | { .first: 0x004f, .second: 0x0041, .result: 0x00c5 }, |
| 662 | { .first: 0x006f, .second: 0x0061, .result: 0x00e5 }, |
| 663 | { .first: 0x0030, .second: 0x0041, .result: 0x00c5 }, |
| 664 | { .first: 0x0030, .second: 0x0061, .result: 0x00e5 }, |
| 665 | { .first: 0x0041, .second: 0x0041, .result: 0x00c5 }, |
| 666 | { .first: 0x0061, .second: 0x0061, .result: 0x00e5 }, |
| 667 | { .first: 0x00b0, .second: 0x0041, .result: 0x00c5 }, |
| 668 | { .first: 0x00b0, .second: 0x0061, .result: 0x00e5 }, |
| 669 | { .first: 0x0041, .second: 0x0045, .result: 0x00c6 }, |
| 670 | { .first: 0x0061, .second: 0x0065, .result: 0x00e6 }, |
| 671 | { .first: 0x002c, .second: 0x0043, .result: 0x00c7 }, |
| 672 | { .first: 0x002c, .second: 0x0063, .result: 0x00e7 }, |
| 673 | { .first: 0x005e, .second: 0x0043, .result: 0x00c7 }, |
| 674 | { .first: 0x005e, .second: 0x0063, .result: 0x00e7 }, |
| 675 | { .first: 0x0060, .second: 0x0045, .result: 0x00c8 }, |
| 676 | { .first: 0x0060, .second: 0x0065, .result: 0x00e8 }, |
| 677 | { .first: 0x0027, .second: 0x0045, .result: 0x00c9 }, |
| 678 | { .first: 0x0027, .second: 0x0065, .result: 0x00e9 }, |
| 679 | { .first: 0x005e, .second: 0x0045, .result: 0x00ca }, |
| 680 | { .first: 0x005e, .second: 0x0065, .result: 0x00ea }, |
| 681 | { .first: 0x0022, .second: 0x0045, .result: 0x00cb }, |
| 682 | { .first: 0x0022, .second: 0x0065, .result: 0x00eb }, |
| 683 | { .first: 0x0060, .second: 0x0049, .result: 0x00cc }, |
| 684 | { .first: 0x0060, .second: 0x0069, .result: 0x00ec }, |
| 685 | { .first: 0x0027, .second: 0x0049, .result: 0x00cd }, |
| 686 | { .first: 0x0027, .second: 0x0069, .result: 0x00ed }, |
| 687 | { .first: 0x005e, .second: 0x0049, .result: 0x00ce }, |
| 688 | { .first: 0x005e, .second: 0x0069, .result: 0x00ee }, |
| 689 | { .first: 0x0022, .second: 0x0049, .result: 0x00cf }, |
| 690 | { .first: 0x0022, .second: 0x0069, .result: 0x00ef }, |
| 691 | { .first: 0x002d, .second: 0x0044, .result: 0x00d0 }, |
| 692 | { .first: 0x002d, .second: 0x0064, .result: 0x00f0 }, |
| 693 | { .first: 0x005e, .second: 0x0044, .result: 0x00d0 }, |
| 694 | { .first: 0x005e, .second: 0x0064, .result: 0x00f0 }, |
| 695 | { .first: 0x007e, .second: 0x004e, .result: 0x00d1 }, |
| 696 | { .first: 0x007e, .second: 0x006e, .result: 0x00f1 }, |
| 697 | { .first: 0x005e, .second: 0x004e, .result: 0x00d1 }, |
| 698 | { .first: 0x005e, .second: 0x006e, .result: 0x00f1 }, |
| 699 | { .first: 0x0060, .second: 0x004f, .result: 0x00d2 }, |
| 700 | { .first: 0x0060, .second: 0x006f, .result: 0x00f2 }, |
| 701 | { .first: 0x0027, .second: 0x004f, .result: 0x00d3 }, |
| 702 | { .first: 0x0027, .second: 0x006f, .result: 0x00f3 }, |
| 703 | { .first: 0x005e, .second: 0x004f, .result: 0x00d4 }, |
| 704 | { .first: 0x005e, .second: 0x006f, .result: 0x00f4 }, |
| 705 | { .first: 0x007e, .second: 0x004f, .result: 0x00d5 }, |
| 706 | { .first: 0x007e, .second: 0x006f, .result: 0x00f5 }, |
| 707 | { .first: 0x0022, .second: 0x004f, .result: 0x00d6 }, |
| 708 | { .first: 0x0022, .second: 0x006f, .result: 0x00f6 }, |
| 709 | { .first: 0x002f, .second: 0x004f, .result: 0x00d8 }, |
| 710 | { .first: 0x002f, .second: 0x006f, .result: 0x00f8 }, |
| 711 | { .first: 0x002d, .second: 0x006f, .result: 0x00ba }, |
| 712 | { .first: 0x002d, .second: 0x004f, .result: 0x00ba }, |
| 713 | { .first: 0x0060, .second: 0x0055, .result: 0x00d9 }, |
| 714 | { .first: 0x0060, .second: 0x0075, .result: 0x00f9 }, |
| 715 | { .first: 0x0027, .second: 0x0055, .result: 0x00da }, |
| 716 | { .first: 0x0027, .second: 0x0075, .result: 0x00fa }, |
| 717 | { .first: 0x005e, .second: 0x0055, .result: 0x00db }, |
| 718 | { .first: 0x005e, .second: 0x0075, .result: 0x00fb }, |
| 719 | { .first: 0x0022, .second: 0x0055, .result: 0x00dc }, |
| 720 | { .first: 0x0022, .second: 0x0075, .result: 0x00fc }, |
| 721 | { .first: 0x0027, .second: 0x0059, .result: 0x00dd }, |
| 722 | { .first: 0x0027, .second: 0x0079, .result: 0x00fd }, |
| 723 | { .first: 0x0054, .second: 0x0048, .result: 0x00de }, |
| 724 | { .first: 0x0074, .second: 0x0068, .result: 0x00fe }, |
| 725 | { .first: 0x0073, .second: 0x0073, .result: 0x00df }, |
| 726 | { .first: 0x0022, .second: 0x0079, .result: 0x00ff }, |
| 727 | { .first: 0x0073, .second: 0x007a, .result: 0x00df }, |
| 728 | { .first: 0x006e, .second: 0x006e, .result: 0x00f1 }, |
| 729 | { .first: 0x006e, .second: 0x0068, .result: 0x00f1 }, |
| 730 | { .first: 0x004e, .second: 0x0059, .result: 0x00d1 }, |
| 731 | { .first: 0x004e, .second: 0x004e, .result: 0x00d1 }, |
| 732 | { .first: 0x004e, .second: 0x0048, .result: 0x00d1 }, |
| 733 | { .first: 0x004e, .second: 0x0079, .result: 0x00d1 }, |
| 734 | { .first: 0x004e, .second: 0x006e, .result: 0x00d1 }, |
| 735 | { .first: 0x004e, .second: 0x0068, .result: 0x00d1 }, |
| 736 | { .first: 0x002d, .second: 0x004c, .result: 0x00a3 }, |
| 737 | { .first: 0x003c, .second: 0x003c, .result: 0x00ab }, |
| 738 | { .first: 0x003e, .second: 0x003e, .result: 0x00bb }, |
| 739 | { .first: 0x003f, .second: 0x003f, .result: 0x00bf }, |
| 740 | { .first: 0x005e, .second: 0x003f, .result: 0x00bf }, |
| 741 | { .first: 0x0021, .second: 0x0021, .result: 0x00a1 }, |
| 742 | { .first: 0x005e, .second: 0x0021, .result: 0x00a1 }, |
| 743 | { .first: 0x005e, .second: 0x0031, .result: 0x00b9 }, |
| 744 | { .first: 0x005e, .second: 0x0032, .result: 0x00b2 }, |
| 745 | { .first: 0x005e, .second: 0x0033, .result: 0x00b3 }, |
| 746 | { .first: 0x002b, .second: 0x002d, .result: 0x00b1 }, |
| 747 | { .first: 0x0063, .second: 0x003d, .result: 0x00a2 }, |
| 748 | { .first: 0x0063, .second: 0x002f, .result: 0x00a2 }, |
| 749 | { .first: 0x002f, .second: 0x0063, .result: 0x00a2 }, |
| 750 | { .first: 0x002d, .second: 0x0063, .result: 0x00a2 }, |
| 751 | { .first: 0x002d, .second: 0x0043, .result: 0x00a2 }, |
| 752 | { .first: 0x004c, .second: 0x003d, .result: 0x00a3 }, |
| 753 | { .first: 0x002d, .second: 0x004c, .result: 0x00a3 }, |
| 754 | { .first: 0x002d, .second: 0x006c, .result: 0x00a3 }, |
| 755 | { .first: 0x005e, .second: 0x002a, .result: 0x00d7 }, |
| 756 | { .first: 0x005e, .second: 0x0078, .result: 0x00d7 }, |
| 757 | { .first: 0x0078, .second: 0x0078, .result: 0x00d7 }, |
| 758 | { .first: 0x005e, .second: 0x002e, .result: 0x00b7 }, |
| 759 | { .first: 0x002e, .second: 0x002e, .result: 0x00b7 }, |
| 760 | { .first: 0x005e, .second: 0x002f, .result: 0x00f7 }, |
| 761 | { .first: 0x005e, .second: 0x003a, .result: 0x00f7 }, |
| 762 | { .first: 0x002d, .second: 0x003a, .result: 0x00f7 }, |
| 763 | { .first: 0x003a, .second: 0x002d, .result: 0x00f7 }, |
| 764 | { .first: 0x0059, .second: 0x003d, .result: 0x00a5 }, |
| 765 | { .first: 0x002d, .second: 0x0059, .result: 0x00a5 }, |
| 766 | { .first: 0x002d, .second: 0x006c, .result: 0x00a5 }, |
| 767 | { .first: 0x0028, .second: 0x0063, .result: 0x00a9 }, |
| 768 | { .first: 0x0022, .second: 0x0063, .result: 0x00a9 }, |
| 769 | { .first: 0x002d, .second: 0x0061, .result: 0x00aa }, |
| 770 | { .first: 0x002d, .second: 0x0041, .result: 0x00aa }, |
| 771 | { .first: 0x002d, .second: 0x006f, .result: 0x00ba }, |
| 772 | { .first: 0x002d, .second: 0x004f, .result: 0x00ba }, |
| 773 | { .first: 0x0028, .second: 0x0072, .result: 0x00ae }, |
| 774 | { .first: 0x0022, .second: 0x0072, .result: 0x00ae }, |
| 775 | { .first: 0x006d, .second: 0x0075, .result: 0x00b5 }, |
| 776 | { .first: 0x0031, .second: 0x0034, .result: 0x0152 }, |
| 777 | { .first: 0x0031, .second: 0x0032, .result: 0x0153 }, |
| 778 | { .first: 0x0033, .second: 0x0034, .result: 0x0178 }, |
| 779 | { .first: 0x0065, .second: 0x003d, .result: 0x20ac }, |
| 780 | { .first: 0x002d, .second: 0x0065, .result: 0x20ac }, |
| 781 | { .first: 0x002d, .second: 0x0045, .result: 0x20ac }, |
| 782 | { .first: 0x0076, .second: 0x0053, .result: 0x0160 }, |
| 783 | { .first: 0x005e, .second: 0x0053, .result: 0x0160 }, |
| 784 | { .first: 0x0076, .second: 0x0073, .result: 0x0161 }, |
| 785 | { .first: 0x005e, .second: 0x0073, .result: 0x0161 }, |
| 786 | { .first: 0x0076, .second: 0x005a, .result: 0x017d }, |
| 787 | { .first: 0x005e, .second: 0x005a, .result: 0x017d }, |
| 788 | { .first: 0x0076, .second: 0x007a, .result: 0x017e }, |
| 789 | { .first: 0x005e, .second: 0x007a, .result: 0x017e }, |
| 790 | { .first: 0x004f, .second: 0x0045, .result: 0x0152 }, |
| 791 | { .first: 0x004f, .second: 0x0065, .result: 0x0152 }, |
| 792 | { .first: 0x006f, .second: 0x0065, .result: 0x0153 }, |
| 793 | { .first: 0x0022, .second: 0x0059, .result: 0x0178 }, |
| 794 | { .first: 0x0069, .second: 0x006a, .result: 0x00ff }, |
| 795 | { .first: 0x0049, .second: 0x004a, .result: 0x0178 }, |
| 796 | }; |
| 797 | |
| 798 | #endif // QEVDEVKEYBOARDHANDLER_DEFAULTMAP_P_H |
| 799 | |