noVNC/include/keymap.js

6408 lines
370 KiB
JavaScript

/*
* noVNC: HTML5 VNC client
* Copyright (C) 2012 Hirokazu Takahashi
* Licensed under MPL 2.0 or any later version (see LICENSE.txt)
*/
"use strict";
/*jslint white: false */
var Kmap = {};
Kmap.getKeymap = function (kb) {
return Kmap.keymaps[kb];
};
Kmap.keymaps = {
'ar': {
32: { shift: false, altgr: false, name: "space" },
33: { shift: true, altgr: false, name: "exclam" },
34: { shift: true, altgr: false, name: "quotedbl" },
35: { shift: true, altgr: false, name: "numbersign" },
36: { shift: true, altgr: false, name: "dollar" },
37: { shift: true, altgr: false, name: "percent" },
38: { shift: true, altgr: false, name: "ampersand" },
39: { shift: true, altgr: true, name: "apostrophe" },
40: { shift: true, altgr: false, name: "parenleft" },
41: { shift: true, altgr: false, name: "parenright" },
42: { shift: true, altgr: false, name: "asterisk" },
43: { shift: true, altgr: false, name: "plus" },
44: { shift: false, altgr: false, name: "comma" },
45: { shift: false, altgr: false, name: "minus" },
46: { shift: false, altgr: false, name: "period" },
47: { shift: false, altgr: false, name: "slash" },
48: { shift: false, altgr: false, name: "0" },
49: { shift: false, altgr: false, name: "1" },
50: { shift: false, altgr: false, name: "2" },
51: { shift: false, altgr: false, name: "3" },
52: { shift: false, altgr: false, name: "4" },
53: { shift: false, altgr: false, name: "5" },
54: { shift: false, altgr: false, name: "6" },
55: { shift: false, altgr: false, name: "7" },
56: { shift: false, altgr: false, name: "8" },
57: { shift: false, altgr: false, name: "9" },
58: { shift: true, altgr: false, name: "colon" },
59: { shift: false, altgr: false, name: "semicolon" },
60: { shift: true, altgr: false, name: "less" },
61: { shift: false, altgr: false, name: "equal" },
62: { shift: true, altgr: false, name: "greater" },
63: { shift: true, altgr: false, name: "question" },
64: { shift: true, altgr: false, name: "at" },
65: { shift: true, altgr: false, name: "A" },
66: { shift: true, altgr: false, name: "B" },
67: { shift: true, altgr: false, name: "C" },
68: { shift: true, altgr: false, name: "D" },
69: { shift: true, altgr: false, name: "E" },
70: { shift: true, altgr: false, name: "F" },
71: { shift: true, altgr: false, name: "G" },
72: { shift: true, altgr: false, name: "H" },
73: { shift: true, altgr: false, name: "I" },
74: { shift: true, altgr: false, name: "J" },
75: { shift: true, altgr: false, name: "K" },
76: { shift: true, altgr: false, name: "L" },
77: { shift: true, altgr: false, name: "M" },
78: { shift: true, altgr: false, name: "N" },
79: { shift: true, altgr: false, name: "O" },
80: { shift: true, altgr: false, name: "P" },
81: { shift: true, altgr: false, name: "Q" },
82: { shift: true, altgr: false, name: "R" },
83: { shift: true, altgr: false, name: "S" },
84: { shift: true, altgr: false, name: "T" },
85: { shift: true, altgr: false, name: "U" },
86: { shift: true, altgr: false, name: "V" },
87: { shift: true, altgr: false, name: "W" },
88: { shift: true, altgr: false, name: "X" },
89: { shift: true, altgr: false, name: "Y" },
90: { shift: true, altgr: false, name: "Z" },
91: { shift: true, altgr: true, name: "bracketleft" },
92: { shift: false, altgr: false, name: "backslash" },
93: { shift: true, altgr: true, name: "bracketright" },
94: { shift: true, altgr: false, name: "asciicircum" },
95: { shift: true, altgr: false, name: "underscore" },
96: { shift: false, altgr: false, name: "grave" },
97: { shift: false, altgr: false, name: "a" },
98: { shift: false, altgr: false, name: "b" },
99: { shift: false, altgr: false, name: "c" },
100: { shift: false, altgr: false, name: "d" },
101: { shift: false, altgr: false, name: "e" },
102: { shift: false, altgr: false, name: "f" },
103: { shift: false, altgr: false, name: "g" },
104: { shift: false, altgr: false, name: "h" },
105: { shift: false, altgr: false, name: "i" },
106: { shift: false, altgr: false, name: "j" },
107: { shift: false, altgr: false, name: "k" },
108: { shift: false, altgr: false, name: "l" },
109: { shift: false, altgr: false, name: "m" },
110: { shift: false, altgr: false, name: "n" },
111: { shift: false, altgr: false, name: "o" },
112: { shift: false, altgr: false, name: "p" },
113: { shift: false, altgr: false, name: "q" },
114: { shift: false, altgr: false, name: "r" },
115: { shift: false, altgr: false, name: "s" },
116: { shift: false, altgr: false, name: "t" },
117: { shift: false, altgr: false, name: "u" },
118: { shift: false, altgr: false, name: "v" },
119: { shift: false, altgr: false, name: "w" },
120: { shift: false, altgr: false, name: "x" },
121: { shift: false, altgr: false, name: "y" },
122: { shift: false, altgr: false, name: "z" },
123: { shift: true, altgr: false, name: "braceleft" },
124: { shift: true, altgr: false, name: "bar" },
125: { shift: true, altgr: false, name: "braceright" },
126: { shift: true, altgr: true, name: "asciitilde" },
166: { shift: true, altgr: true, name: "brokenbar" },
215: { shift: true, altgr: true, name: "multiply" },
247: { shift: true, altgr: true, name: "division" },
65288: { shift: false, altgr: false, name: "BackSpace" },
65289: { shift: false, altgr: false, name: "Tab" },
65293: { shift: false, altgr: false, name: "Return" },
65300: { shift: false, altgr: false, name: "Scroll_Lock" },
65301: { shift: false, altgr: false, name: "Sys_Req" },
65307: { shift: false, altgr: false, name: "Escape" },
65360: { shift: false, altgr: false, name: "Home" },
65361: { shift: false, altgr: false, name: "Left" },
65362: { shift: false, altgr: false, name: "Up" },
65363: { shift: false, altgr: false, name: "Right" },
65364: { shift: false, altgr: false, name: "Down" },
65365: { shift: false, altgr: false, name: "Page_Up" },
65366: { shift: false, altgr: false, name: "Page_Down" },
65367: { shift: false, altgr: false, name: "End" },
65377: { shift: false, altgr: false, name: "Print" },
65379: { shift: false, altgr: false, name: "Insert" },
65407: { shift: false, altgr: false, name: "Num_Lock" },
65421: { shift: false, altgr: false, name: "KP_Enter" },
65429: { shift: false, altgr: false, name: "KP_Home" },
65430: { shift: false, altgr: false, name: "KP_Left" },
65431: { shift: false, altgr: false, name: "KP_Up" },
65432: { shift: false, altgr: false, name: "KP_Right" },
65433: { shift: false, altgr: false, name: "KP_Down" },
65434: { shift: false, altgr: false, name: "KP_Prior" },
65435: { shift: false, altgr: false, name: "KP_Next" },
65436: { shift: false, altgr: false, name: "KP_End" },
65437: { shift: false, altgr: false, name: "KP_Begin" },
65438: { shift: false, altgr: false, name: "KP_Insert" },
65439: { shift: false, altgr: false, name: "KP_Delete" },
65450: { shift: false, altgr: false, name: "KP_Multiply" },
65451: { shift: false, altgr: false, name: "KP_Add" },
65452: { shift: false, altgr: false, name: "KP_Separator" },
65453: { shift: false, altgr: false, name: "KP_Subtract" },
65454: { shift: false, altgr: false, name: "KP_Decimal" },
65455: { shift: false, altgr: false, name: "KP_Divide" },
65456: { shift: false, altgr: false, name: "KP_0" },
65457: { shift: false, altgr: false, name: "KP_1" },
65458: { shift: false, altgr: false, name: "KP_2" },
65459: { shift: false, altgr: false, name: "KP_3" },
65460: { shift: false, altgr: false, name: "KP_4" },
65461: { shift: false, altgr: false, name: "KP_5" },
65462: { shift: false, altgr: false, name: "KP_6" },
65463: { shift: false, altgr: false, name: "KP_7" },
65464: { shift: false, altgr: false, name: "KP_8" },
65465: { shift: false, altgr: false, name: "KP_9" },
65470: { shift: false, altgr: false, name: "F1" },
65471: { shift: false, altgr: false, name: "F2" },
65472: { shift: false, altgr: false, name: "F3" },
65473: { shift: false, altgr: false, name: "F4" },
65474: { shift: false, altgr: false, name: "F5" },
65475: { shift: false, altgr: false, name: "F6" },
65476: { shift: false, altgr: false, name: "F7" },
65477: { shift: false, altgr: false, name: "F8" },
65478: { shift: false, altgr: false, name: "F9" },
65479: { shift: false, altgr: false, name: "F10" },
65480: { shift: false, altgr: false, name: "F11" },
65481: { shift: false, altgr: false, name: "F12" },
65509: { shift: false, altgr: false, name: "Caps_Lock" },
65535: { shift: false, altgr: false, name: "Delete" }
},
'bepo': {
32: { shift: false, altgr: false, name: "space" },
33: { shift: true, altgr: false, name: "exclam" },
34: { shift: false, altgr: false, name: "quotedbl" },
35: { shift: true, altgr: false, name: "numbersign" },
36: { shift: false, altgr: false, name: "dollar" },
37: { shift: false, altgr: false, name: "percent" },
38: { shift: false, altgr: true, name: "ampersand" },
39: { shift: false, altgr: false, name: "apostrophe" },
40: { shift: false, altgr: false, name: "parenleft" },
41: { shift: false, altgr: false, name: "parenright" },
42: { shift: false, altgr: false, name: "asterisk" },
43: { shift: false, altgr: false, name: "plus" },
44: { shift: false, altgr: false, name: "comma" },
45: { shift: false, altgr: false, name: "minus" },
46: { shift: false, altgr: false, name: "period" },
47: { shift: false, altgr: false, name: "slash" },
48: { shift: false, altgr: false, name: "0" },
49: { shift: false, altgr: false, name: "1" },
50: { shift: false, altgr: false, name: "2" },
51: { shift: false, altgr: false, name: "3" },
52: { shift: false, altgr: false, name: "4" },
53: { shift: false, altgr: false, name: "5" },
54: { shift: false, altgr: false, name: "6" },
55: { shift: false, altgr: false, name: "7" },
56: { shift: false, altgr: false, name: "8" },
57: { shift: false, altgr: false, name: "9" },
58: { shift: true, altgr: false, name: "colon" },
59: { shift: true, altgr: false, name: "semicolon" },
60: { shift: false, altgr: true, name: "less" },
61: { shift: false, altgr: false, name: "equal" },
62: { shift: false, altgr: true, name: "greater" },
63: { shift: true, altgr: false, name: "question" },
64: { shift: false, altgr: false, name: "at" },
65: { shift: true, altgr: false, name: "A" },
66: { shift: true, altgr: false, name: "B" },
67: { shift: true, altgr: false, name: "C" },
68: { shift: true, altgr: false, name: "D" },
69: { shift: true, altgr: false, name: "E" },
70: { shift: true, altgr: false, name: "F" },
71: { shift: true, altgr: false, name: "G" },
72: { shift: true, altgr: false, name: "H" },
73: { shift: true, altgr: false, name: "I" },
74: { shift: true, altgr: false, name: "J" },
75: { shift: true, altgr: false, name: "K" },
76: { shift: true, altgr: false, name: "L" },
77: { shift: true, altgr: false, name: "M" },
78: { shift: true, altgr: false, name: "N" },
79: { shift: true, altgr: false, name: "O" },
80: { shift: true, altgr: false, name: "P" },
81: { shift: true, altgr: false, name: "Q" },
82: { shift: true, altgr: false, name: "R" },
83: { shift: true, altgr: false, name: "S" },
84: { shift: true, altgr: false, name: "T" },
85: { shift: true, altgr: false, name: "U" },
86: { shift: true, altgr: false, name: "V" },
87: { shift: true, altgr: false, name: "W" },
88: { shift: true, altgr: false, name: "X" },
89: { shift: true, altgr: false, name: "Y" },
90: { shift: true, altgr: false, name: "Z" },
91: { shift: false, altgr: true, name: "bracketleft" },
92: { shift: false, altgr: true, name: "backslash" },
93: { shift: false, altgr: true, name: "bracketright" },
94: { shift: false, altgr: true, name: "asciicircum" },
95: { shift: false, altgr: true, name: "underscore" },
96: { shift: true, altgr: false, name: "grave" },
97: { shift: false, altgr: false, name: "a" },
98: { shift: false, altgr: false, name: "b" },
99: { shift: false, altgr: false, name: "c" },
100: { shift: false, altgr: false, name: "d" },
101: { shift: false, altgr: false, name: "e" },
102: { shift: false, altgr: false, name: "f" },
103: { shift: false, altgr: false, name: "g" },
104: { shift: false, altgr: false, name: "h" },
105: { shift: false, altgr: false, name: "i" },
106: { shift: false, altgr: false, name: "j" },
107: { shift: false, altgr: false, name: "k" },
108: { shift: false, altgr: false, name: "l" },
109: { shift: false, altgr: false, name: "m" },
110: { shift: false, altgr: false, name: "n" },
111: { shift: false, altgr: false, name: "o" },
112: { shift: false, altgr: false, name: "p" },
113: { shift: false, altgr: false, name: "q" },
114: { shift: false, altgr: false, name: "r" },
115: { shift: false, altgr: false, name: "s" },
116: { shift: false, altgr: false, name: "t" },
117: { shift: false, altgr: false, name: "u" },
118: { shift: false, altgr: false, name: "v" },
119: { shift: false, altgr: false, name: "w" },
120: { shift: false, altgr: false, name: "x" },
121: { shift: false, altgr: false, name: "y" },
122: { shift: false, altgr: false, name: "z" },
123: { shift: false, altgr: true, name: "braceleft" },
124: { shift: false, altgr: true, name: "bar" },
125: { shift: false, altgr: true, name: "braceright" },
126: { shift: false, altgr: true, name: "asciitilde" },
160: { shift: true, altgr: false, name: "nobreakspace" },
161: { shift: false, altgr: true, name: "exclamdown" },
166: { shift: true, altgr: true, name: "brokenbar" },
169: { shift: false, altgr: true, name: "copyright" },
170: { shift: true, altgr: true, name: "ordfeminine" },
171: { shift: false, altgr: false, name: "guillemotleft" },
174: { shift: false, altgr: true, name: "registered" },
181: { shift: false, altgr: true, name: "mu" },
183: { shift: true, altgr: true, name: "periodcentered" },
186: { shift: true, altgr: true, name: "masculine" },
187: { shift: false, altgr: false, name: "guillemotright" },
191: { shift: false, altgr: true, name: "questiondown" },
192: { shift: true, altgr: false, name: "Agrave" },
198: { shift: true, altgr: true, name: "AE" },
199: { shift: true, altgr: false, name: "Ccedilla" },
200: { shift: true, altgr: false, name: "Egrave" },
201: { shift: true, altgr: false, name: "Eacute" },
202: { shift: true, altgr: false, name: "Ecircumflex" },
208: { shift: true, altgr: true, name: "ETH" },
217: { shift: true, altgr: true, name: "Ugrave" },
222: { shift: true, altgr: true, name: "THORN" },
223: { shift: false, altgr: true, name: "ssharp" },
224: { shift: false, altgr: false, name: "agrave" },
230: { shift: false, altgr: true, name: "ae" },
231: { shift: false, altgr: false, name: "ccedilla" },
232: { shift: false, altgr: false, name: "egrave" },
233: { shift: false, altgr: false, name: "eacute" },
234: { shift: false, altgr: false, name: "ecircumflex" },
240: { shift: false, altgr: true, name: "eth" },
249: { shift: false, altgr: true, name: "ugrave" },
254: { shift: false, altgr: true, name: "thorn" },
65104: { shift: false, altgr: true, name: "dead_grave" },
65105: { shift: false, altgr: true, name: "dead_acute" },
65106: { shift: false, altgr: false, name: "dead_circumflex" },
65107: { shift: false, altgr: true, name: "dead_tilde" },
65111: { shift: false, altgr: true, name: "dead_diaeresis" },
65114: { shift: false, altgr: true, name: "dead_caron" },
65115: { shift: false, altgr: true, name: "dead_cedilla" },
65288: { shift: false, altgr: false, name: "BackSpace" },
65289: { shift: false, altgr: false, name: "Tab" },
65293: { shift: false, altgr: false, name: "Return" },
65300: { shift: false, altgr: false, name: "Scroll_Lock" },
65301: { shift: false, altgr: false, name: "Sys_Req" },
65307: { shift: false, altgr: false, name: "Escape" },
65360: { shift: false, altgr: false, name: "Home" },
65361: { shift: false, altgr: false, name: "Left" },
65362: { shift: false, altgr: false, name: "Up" },
65363: { shift: false, altgr: false, name: "Right" },
65364: { shift: false, altgr: false, name: "Down" },
65365: { shift: false, altgr: false, name: "Page_Up" },
65366: { shift: false, altgr: false, name: "Page_Down" },
65367: { shift: false, altgr: false, name: "End" },
65377: { shift: false, altgr: false, name: "Print" },
65379: { shift: false, altgr: false, name: "Insert" },
65407: { shift: false, altgr: false, name: "Num_Lock" },
65421: { shift: false, altgr: false, name: "KP_Enter" },
65429: { shift: false, altgr: false, name: "KP_Home" },
65430: { shift: false, altgr: false, name: "KP_Left" },
65431: { shift: false, altgr: false, name: "KP_Up" },
65432: { shift: false, altgr: false, name: "KP_Right" },
65433: { shift: false, altgr: false, name: "KP_Down" },
65434: { shift: false, altgr: false, name: "KP_Prior" },
65435: { shift: false, altgr: false, name: "KP_Next" },
65436: { shift: false, altgr: false, name: "KP_End" },
65437: { shift: false, altgr: false, name: "KP_Begin" },
65438: { shift: false, altgr: false, name: "KP_Insert" },
65439: { shift: false, altgr: false, name: "KP_Delete" },
65450: { shift: false, altgr: false, name: "KP_Multiply" },
65451: { shift: false, altgr: false, name: "KP_Add" },
65452: { shift: false, altgr: false, name: "KP_Separator" },
65453: { shift: false, altgr: false, name: "KP_Subtract" },
65454: { shift: false, altgr: false, name: "KP_Decimal" },
65455: { shift: false, altgr: false, name: "KP_Divide" },
65456: { shift: false, altgr: false, name: "KP_0" },
65457: { shift: false, altgr: false, name: "KP_1" },
65458: { shift: false, altgr: false, name: "KP_2" },
65459: { shift: false, altgr: false, name: "KP_3" },
65460: { shift: false, altgr: false, name: "KP_4" },
65461: { shift: false, altgr: false, name: "KP_5" },
65462: { shift: false, altgr: false, name: "KP_6" },
65463: { shift: false, altgr: false, name: "KP_7" },
65464: { shift: false, altgr: false, name: "KP_8" },
65465: { shift: false, altgr: false, name: "KP_9" },
65470: { shift: false, altgr: false, name: "F1" },
65471: { shift: false, altgr: false, name: "F2" },
65472: { shift: false, altgr: false, name: "F3" },
65473: { shift: false, altgr: false, name: "F4" },
65474: { shift: false, altgr: false, name: "F5" },
65475: { shift: false, altgr: false, name: "F6" },
65476: { shift: false, altgr: false, name: "F7" },
65477: { shift: false, altgr: false, name: "F8" },
65478: { shift: false, altgr: false, name: "F9" },
65479: { shift: false, altgr: false, name: "F10" },
65480: { shift: false, altgr: false, name: "F11" },
65481: { shift: false, altgr: false, name: "F12" },
65509: { shift: false, altgr: false, name: "Caps_Lock" },
65535: { shift: false, altgr: false, name: "Delete" }
},
'da': {
32: { shift: false, altgr: false, name: "space" },
33: { shift: true, altgr: false, name: "exclam" },
34: { shift: true, altgr: false, name: "quotedbl" },
35: { shift: true, altgr: false, name: "numbersign" },
36: { shift: false, altgr: true, name: "dollar" },
37: { shift: true, altgr: false, name: "percent" },
38: { shift: true, altgr: false, name: "ampersand" },
39: { shift: false, altgr: false, name: "apostrophe" },
40: { shift: true, altgr: false, name: "parenleft" },
41: { shift: true, altgr: false, name: "parenright" },
42: { shift: true, altgr: false, name: "asterisk" },
43: { shift: false, altgr: false, name: "plus" },
44: { shift: false, altgr: false, name: "comma" },
45: { shift: false, altgr: false, name: "minus" },
46: { shift: false, altgr: false, name: "period" },
47: { shift: true, altgr: false, name: "slash" },
48: { shift: false, altgr: false, name: "0" },
49: { shift: false, altgr: false, name: "1" },
50: { shift: false, altgr: false, name: "2" },
51: { shift: false, altgr: false, name: "3" },
52: { shift: false, altgr: false, name: "4" },
53: { shift: false, altgr: false, name: "5" },
54: { shift: false, altgr: false, name: "6" },
55: { shift: false, altgr: false, name: "7" },
56: { shift: false, altgr: false, name: "8" },
57: { shift: false, altgr: false, name: "9" },
58: { shift: true, altgr: false, name: "colon" },
59: { shift: true, altgr: false, name: "semicolon" },
60: { shift: false, altgr: false, name: "less" },
61: { shift: true, altgr: false, name: "equal" },
62: { shift: true, altgr: false, name: "greater" },
63: { shift: true, altgr: false, name: "question" },
64: { shift: false, altgr: true, name: "at" },
65: { shift: true, altgr: false, name: "A" },
66: { shift: true, altgr: false, name: "B" },
67: { shift: true, altgr: false, name: "C" },
68: { shift: true, altgr: false, name: "D" },
69: { shift: true, altgr: false, name: "E" },
70: { shift: true, altgr: false, name: "F" },
71: { shift: true, altgr: false, name: "G" },
72: { shift: true, altgr: false, name: "H" },
73: { shift: true, altgr: false, name: "I" },
74: { shift: true, altgr: false, name: "J" },
75: { shift: true, altgr: false, name: "K" },
76: { shift: true, altgr: false, name: "L" },
77: { shift: true, altgr: false, name: "M" },
78: { shift: true, altgr: false, name: "N" },
79: { shift: true, altgr: false, name: "O" },
80: { shift: true, altgr: false, name: "P" },
81: { shift: true, altgr: false, name: "Q" },
82: { shift: true, altgr: false, name: "R" },
83: { shift: true, altgr: false, name: "S" },
84: { shift: true, altgr: false, name: "T" },
85: { shift: true, altgr: false, name: "U" },
86: { shift: true, altgr: false, name: "V" },
87: { shift: true, altgr: false, name: "W" },
88: { shift: true, altgr: false, name: "X" },
89: { shift: true, altgr: false, name: "Y" },
90: { shift: true, altgr: false, name: "Z" },
91: { shift: false, altgr: true, name: "bracketleft" },
92: { shift: false, altgr: true, name: "backslash" },
93: { shift: false, altgr: true, name: "bracketright" },
95: { shift: true, altgr: false, name: "underscore" },
96: { shift: true, altgr: true, name: "grave" },
97: { shift: false, altgr: false, name: "a" },
98: { shift: false, altgr: false, name: "b" },
99: { shift: false, altgr: false, name: "c" },
100: { shift: false, altgr: false, name: "d" },
101: { shift: false, altgr: false, name: "e" },
102: { shift: false, altgr: false, name: "f" },
103: { shift: false, altgr: false, name: "g" },
104: { shift: false, altgr: false, name: "h" },
105: { shift: false, altgr: false, name: "i" },
106: { shift: false, altgr: false, name: "j" },
107: { shift: false, altgr: false, name: "k" },
108: { shift: false, altgr: false, name: "l" },
109: { shift: false, altgr: false, name: "m" },
110: { shift: false, altgr: false, name: "n" },
111: { shift: false, altgr: false, name: "o" },
112: { shift: false, altgr: false, name: "p" },
113: { shift: false, altgr: false, name: "q" },
114: { shift: false, altgr: false, name: "r" },
115: { shift: false, altgr: false, name: "s" },
116: { shift: false, altgr: false, name: "t" },
117: { shift: false, altgr: false, name: "u" },
118: { shift: false, altgr: false, name: "v" },
119: { shift: false, altgr: false, name: "w" },
120: { shift: false, altgr: false, name: "x" },
121: { shift: false, altgr: false, name: "y" },
122: { shift: false, altgr: false, name: "z" },
123: { shift: false, altgr: true, name: "braceleft" },
124: { shift: false, altgr: true, name: "bar" },
125: { shift: false, altgr: true, name: "braceright" },
160: { shift: false, altgr: true, name: "nobreakspace" },
161: { shift: false, altgr: true, name: "exclamdown" },
162: { shift: true, altgr: true, name: "cent" },
163: { shift: false, altgr: true, name: "sterling" },
164: { shift: true, altgr: false, name: "currency" },
165: { shift: true, altgr: true, name: "yen" },
166: { shift: true, altgr: true, name: "brokenbar" },
167: { shift: true, altgr: false, name: "section" },
169: { shift: false, altgr: true, name: "copyright" },
170: { shift: true, altgr: true, name: "ordfeminine" },
171: { shift: false, altgr: true, name: "guillemotleft" },
172: { shift: true, altgr: true, name: "notsign" },
173: { shift: false, altgr: true, name: "hyphen" },
174: { shift: false, altgr: true, name: "registered" },
175: { shift: true, altgr: true, name: "macron" },
176: { shift: true, altgr: true, name: "degree" },
177: { shift: false, altgr: true, name: "plusminus" },
178: { shift: true, altgr: true, name: "twosuperior" },
179: { shift: true, altgr: true, name: "threesuperior" },
181: { shift: false, altgr: true, name: "mu" },
182: { shift: true, altgr: true, name: "paragraph" },
183: { shift: false, altgr: true, name: "periodcentered" },
185: { shift: true, altgr: true, name: "onesuperior" },
186: { shift: true, altgr: true, name: "masculine" },
187: { shift: false, altgr: true, name: "guillemotright" },
188: { shift: true, altgr: true, name: "onequarter" },
189: { shift: false, altgr: false, name: "onehalf" },
190: { shift: false, altgr: true, name: "threequarters" },
191: { shift: true, altgr: true, name: "questiondown" },
197: { shift: true, altgr: false, name: "Aring" },
198: { shift: true, altgr: false, name: "AE" },
208: { shift: true, altgr: true, name: "ETH" },
215: { shift: true, altgr: true, name: "multiply" },
216: { shift: true, altgr: false, name: "Ooblique" },
222: { shift: true, altgr: true, name: "THORN" },
223: { shift: false, altgr: true, name: "ssharp" },
229: { shift: false, altgr: false, name: "aring" },
230: { shift: false, altgr: false, name: "ae" },
240: { shift: false, altgr: true, name: "eth" },
247: { shift: true, altgr: true, name: "division" },
248: { shift: false, altgr: false, name: "oslash" },
254: { shift: false, altgr: true, name: "thorn" },
419: { shift: true, altgr: true, name: "Lstroke" },
435: { shift: false, altgr: true, name: "lstroke" },
8364: { shift: false, altgr: true, name: "EuroSign" },
65104: { shift: true, altgr: false, name: "dead_grave" },
65105: { shift: false, altgr: false, name: "dead_acute" },
65106: { shift: true, altgr: false, name: "dead_circumflex" },
65107: { shift: false, altgr: true, name: "dead_tilde" },
65110: { shift: true, altgr: true, name: "dead_abovedot" },
65111: { shift: false, altgr: false, name: "dead_diaeresis" },
65112: { shift: true, altgr: true, name: "dead_abovering" },
65113: { shift: false, altgr: true, name: "dead_doubleacute" },
65114: { shift: true, altgr: true, name: "dead_caron" },
65115: { shift: false, altgr: true, name: "dead_cedilla" },
65116: { shift: true, altgr: true, name: "dead_ogonek" },
65288: { shift: false, altgr: false, name: "BackSpace" },
65289: { shift: false, altgr: false, name: "Tab" },
65293: { shift: false, altgr: false, name: "Return" },
65300: { shift: false, altgr: false, name: "Scroll_Lock" },
65301: { shift: false, altgr: false, name: "Sys_Req" },
65307: { shift: false, altgr: false, name: "Escape" },
65360: { shift: false, altgr: false, name: "Home" },
65361: { shift: false, altgr: false, name: "Left" },
65362: { shift: false, altgr: false, name: "Up" },
65363: { shift: false, altgr: false, name: "Right" },
65364: { shift: false, altgr: false, name: "Down" },
65365: { shift: false, altgr: false, name: "Page_Up" },
65366: { shift: false, altgr: false, name: "Page_Down" },
65367: { shift: false, altgr: false, name: "End" },
65377: { shift: false, altgr: false, name: "Print" },
65379: { shift: false, altgr: false, name: "Insert" },
65407: { shift: false, altgr: false, name: "Num_Lock" },
65421: { shift: false, altgr: false, name: "KP_Enter" },
65429: { shift: false, altgr: false, name: "KP_Home" },
65430: { shift: false, altgr: false, name: "KP_Left" },
65431: { shift: false, altgr: false, name: "KP_Up" },
65432: { shift: false, altgr: false, name: "KP_Right" },
65433: { shift: false, altgr: false, name: "KP_Down" },
65434: { shift: false, altgr: false, name: "KP_Prior" },
65435: { shift: false, altgr: false, name: "KP_Next" },
65436: { shift: false, altgr: false, name: "KP_End" },
65437: { shift: false, altgr: false, name: "KP_Begin" },
65438: { shift: false, altgr: false, name: "KP_Insert" },
65439: { shift: false, altgr: false, name: "KP_Delete" },
65450: { shift: false, altgr: false, name: "KP_Multiply" },
65451: { shift: false, altgr: false, name: "KP_Add" },
65452: { shift: false, altgr: false, name: "KP_Separator" },
65453: { shift: false, altgr: false, name: "KP_Subtract" },
65454: { shift: false, altgr: false, name: "KP_Decimal" },
65455: { shift: false, altgr: false, name: "KP_Divide" },
65456: { shift: false, altgr: false, name: "KP_0" },
65457: { shift: false, altgr: false, name: "KP_1" },
65458: { shift: false, altgr: false, name: "KP_2" },
65459: { shift: false, altgr: false, name: "KP_3" },
65460: { shift: false, altgr: false, name: "KP_4" },
65461: { shift: false, altgr: false, name: "KP_5" },
65462: { shift: false, altgr: false, name: "KP_6" },
65463: { shift: false, altgr: false, name: "KP_7" },
65464: { shift: false, altgr: false, name: "KP_8" },
65465: { shift: false, altgr: false, name: "KP_9" },
65470: { shift: false, altgr: false, name: "F1" },
65471: { shift: false, altgr: false, name: "F2" },
65472: { shift: false, altgr: false, name: "F3" },
65473: { shift: false, altgr: false, name: "F4" },
65474: { shift: false, altgr: false, name: "F5" },
65475: { shift: false, altgr: false, name: "F6" },
65476: { shift: false, altgr: false, name: "F7" },
65477: { shift: false, altgr: false, name: "F8" },
65478: { shift: false, altgr: false, name: "F9" },
65479: { shift: false, altgr: false, name: "F10" },
65480: { shift: false, altgr: false, name: "F11" },
65481: { shift: false, altgr: false, name: "F12" },
65509: { shift: false, altgr: false, name: "Caps_Lock" },
65535: { shift: false, altgr: false, name: "Delete" }
},
'de': {
32: { shift: false, altgr: false, name: "space" },
33: { shift: true, altgr: false, name: "exclam" },
34: { shift: true, altgr: false, name: "quotedbl" },
35: { shift: false, altgr: false, name: "numbersign" },
36: { shift: true, altgr: false, name: "dollar" },
37: { shift: true, altgr: false, name: "percent" },
38: { shift: true, altgr: false, name: "ampersand" },
39: { shift: true, altgr: false, name: "apostrophe" },
40: { shift: true, altgr: false, name: "parenleft" },
41: { shift: true, altgr: false, name: "parenright" },
42: { shift: true, altgr: false, name: "asterisk" },
43: { shift: false, altgr: false, name: "plus" },
44: { shift: false, altgr: false, name: "comma" },
45: { shift: false, altgr: false, name: "minus" },
46: { shift: false, altgr: false, name: "period" },
47: { shift: true, altgr: false, name: "slash" },
48: { shift: false, altgr: false, name: "0" },
49: { shift: false, altgr: false, name: "1" },
50: { shift: false, altgr: false, name: "2" },
51: { shift: false, altgr: false, name: "3" },
52: { shift: false, altgr: false, name: "4" },
53: { shift: false, altgr: false, name: "5" },
54: { shift: false, altgr: false, name: "6" },
55: { shift: false, altgr: false, name: "7" },
56: { shift: false, altgr: false, name: "8" },
57: { shift: false, altgr: false, name: "9" },
58: { shift: true, altgr: false, name: "colon" },
59: { shift: true, altgr: false, name: "semicolon" },
60: { shift: false, altgr: false, name: "less" },
61: { shift: true, altgr: false, name: "equal" },
62: { shift: true, altgr: false, name: "greater" },
63: { shift: true, altgr: false, name: "question" },
64: { shift: false, altgr: true, name: "at" },
65: { shift: true, altgr: false, name: "A" },
66: { shift: true, altgr: false, name: "B" },
67: { shift: true, altgr: false, name: "C" },
68: { shift: true, altgr: false, name: "D" },
69: { shift: true, altgr: false, name: "E" },
70: { shift: true, altgr: false, name: "F" },
71: { shift: true, altgr: false, name: "G" },
72: { shift: true, altgr: false, name: "H" },
73: { shift: true, altgr: false, name: "I" },
74: { shift: true, altgr: false, name: "J" },
75: { shift: true, altgr: false, name: "K" },
76: { shift: true, altgr: false, name: "L" },
77: { shift: true, altgr: false, name: "M" },
78: { shift: true, altgr: false, name: "N" },
79: { shift: true, altgr: false, name: "O" },
80: { shift: true, altgr: false, name: "P" },
81: { shift: true, altgr: false, name: "Q" },
82: { shift: true, altgr: false, name: "R" },
83: { shift: true, altgr: false, name: "S" },
84: { shift: true, altgr: false, name: "T" },
85: { shift: true, altgr: false, name: "U" },
86: { shift: true, altgr: false, name: "V" },
87: { shift: true, altgr: false, name: "W" },
88: { shift: true, altgr: false, name: "X" },
89: { shift: true, altgr: false, name: "Y" },
90: { shift: true, altgr: false, name: "Z" },
91: { shift: false, altgr: true, name: "bracketleft" },
92: { shift: false, altgr: true, name: "backslash" },
93: { shift: false, altgr: true, name: "bracketright" },
94: { shift: false, altgr: false, name: "asciicircum" },
95: { shift: true, altgr: false, name: "underscore" },
96: { shift: true, altgr: false, name: "grave" },
97: { shift: false, altgr: false, name: "a" },
98: { shift: false, altgr: false, name: "b" },
99: { shift: false, altgr: false, name: "c" },
100: { shift: false, altgr: false, name: "d" },
101: { shift: false, altgr: false, name: "e" },
102: { shift: false, altgr: false, name: "f" },
103: { shift: false, altgr: false, name: "g" },
104: { shift: false, altgr: false, name: "h" },
105: { shift: false, altgr: false, name: "i" },
106: { shift: false, altgr: false, name: "j" },
107: { shift: false, altgr: false, name: "k" },
108: { shift: false, altgr: false, name: "l" },
109: { shift: false, altgr: false, name: "m" },
110: { shift: false, altgr: false, name: "n" },
111: { shift: false, altgr: false, name: "o" },
112: { shift: false, altgr: false, name: "p" },
113: { shift: false, altgr: false, name: "q" },
114: { shift: false, altgr: false, name: "r" },
115: { shift: false, altgr: false, name: "s" },
116: { shift: false, altgr: false, name: "t" },
117: { shift: false, altgr: false, name: "u" },
118: { shift: false, altgr: false, name: "v" },
119: { shift: false, altgr: false, name: "w" },
120: { shift: false, altgr: false, name: "x" },
121: { shift: false, altgr: false, name: "y" },
122: { shift: false, altgr: false, name: "z" },
123: { shift: false, altgr: true, name: "braceleft" },
124: { shift: false, altgr: true, name: "bar" },
125: { shift: false, altgr: true, name: "braceright" },
126: { shift: false, altgr: true, name: "asciitilde" },
161: { shift: true, altgr: true, name: "exclamdown" },
162: { shift: false, altgr: true, name: "cent" },
163: { shift: true, altgr: true, name: "sterling" },
164: { shift: true, altgr: true, name: "currency" },
165: { shift: true, altgr: true, name: "yen" },
166: { shift: true, altgr: true, name: "brokenbar" },
167: { shift: true, altgr: false, name: "section" },
169: { shift: true, altgr: true, name: "copyright" },
170: { shift: true, altgr: true, name: "ordfeminine" },
171: { shift: false, altgr: true, name: "guillemotleft" },
172: { shift: false, altgr: true, name: "notsign" },
174: { shift: true, altgr: true, name: "registered" },
176: { shift: true, altgr: false, name: "degree" },
177: { shift: true, altgr: true, name: "plusminus" },
178: { shift: false, altgr: true, name: "twosuperior" },
179: { shift: false, altgr: true, name: "threesuperior" },
180: { shift: false, altgr: false, name: "acute" },
181: { shift: false, altgr: true, name: "mu" },
182: { shift: false, altgr: true, name: "paragraph" },
183: { shift: false, altgr: true, name: "periodcentered" },
185: { shift: false, altgr: true, name: "onesuperior" },
186: { shift: true, altgr: true, name: "masculine" },
187: { shift: false, altgr: true, name: "guillemotright" },
188: { shift: false, altgr: true, name: "onequarter" },
189: { shift: false, altgr: true, name: "onehalf" },
190: { shift: false, altgr: true, name: "threequarters" },
191: { shift: true, altgr: true, name: "questiondown" },
196: { shift: true, altgr: false, name: "Adiaeresis" },
198: { shift: true, altgr: true, name: "AE" },
208: { shift: true, altgr: true, name: "ETH" },
214: { shift: true, altgr: false, name: "Odiaeresis" },
215: { shift: true, altgr: true, name: "multiply" },
216: { shift: true, altgr: true, name: "Ooblique" },
220: { shift: true, altgr: false, name: "Udiaeresis" },
222: { shift: true, altgr: true, name: "THORN" },
223: { shift: false, altgr: false, name: "ssharp" },
228: { shift: false, altgr: false, name: "adiaeresis" },
230: { shift: false, altgr: true, name: "ae" },
240: { shift: false, altgr: true, name: "eth" },
246: { shift: false, altgr: false, name: "odiaeresis" },
247: { shift: true, altgr: true, name: "division" },
248: { shift: false, altgr: true, name: "oslash" },
252: { shift: false, altgr: false, name: "udiaeresis" },
254: { shift: false, altgr: true, name: "thorn" },
8364: { shift: false, altgr: true, name: "EuroSign" },
65104: { shift: true, altgr: false, name: "dead_grave" },
65105: { shift: false, altgr: false, name: "dead_acute" },
65106: { shift: false, altgr: false, name: "dead_circumflex" },
65107: { shift: false, altgr: true, name: "dead_tilde" },
65108: { shift: true, altgr: true, name: "dead_macron" },
65109: { shift: true, altgr: true, name: "dead_breve" },
65110: { shift: true, altgr: true, name: "dead_abovedot" },
65111: { shift: false, altgr: true, name: "dead_diaeresis" },
65112: { shift: true, altgr: true, name: "dead_abovering" },
65113: { shift: false, altgr: true, name: "dead_doubleacute" },
65114: { shift: true, altgr: true, name: "dead_caron" },
65115: { shift: false, altgr: true, name: "dead_cedilla" },
65116: { shift: true, altgr: true, name: "dead_ogonek" },
65120: { shift: false, altgr: true, name: "dead_belowdot" },
65288: { shift: false, altgr: false, name: "BackSpace" },
65289: { shift: false, altgr: false, name: "Tab" },
65293: { shift: false, altgr: false, name: "Return" },
65300: { shift: false, altgr: false, name: "Scroll_Lock" },
65301: { shift: false, altgr: false, name: "Sys_Req" },
65307: { shift: false, altgr: false, name: "Escape" },
65360: { shift: false, altgr: false, name: "Home" },
65361: { shift: false, altgr: false, name: "Left" },
65362: { shift: false, altgr: false, name: "Up" },
65363: { shift: false, altgr: false, name: "Right" },
65364: { shift: false, altgr: false, name: "Down" },
65365: { shift: false, altgr: false, name: "Page_Up" },
65366: { shift: false, altgr: false, name: "Page_Down" },
65367: { shift: false, altgr: false, name: "End" },
65377: { shift: false, altgr: false, name: "Print" },
65379: { shift: false, altgr: false, name: "Insert" },
65407: { shift: false, altgr: false, name: "Num_Lock" },
65421: { shift: false, altgr: false, name: "KP_Enter" },
65429: { shift: false, altgr: false, name: "KP_Home" },
65430: { shift: false, altgr: false, name: "KP_Left" },
65431: { shift: false, altgr: false, name: "KP_Up" },
65432: { shift: false, altgr: false, name: "KP_Right" },
65433: { shift: false, altgr: false, name: "KP_Down" },
65434: { shift: false, altgr: false, name: "KP_Prior" },
65435: { shift: false, altgr: false, name: "KP_Next" },
65436: { shift: false, altgr: false, name: "KP_End" },
65437: { shift: false, altgr: false, name: "KP_Begin" },
65438: { shift: false, altgr: false, name: "KP_Insert" },
65439: { shift: false, altgr: false, name: "KP_Delete" },
65450: { shift: false, altgr: false, name: "KP_Multiply" },
65451: { shift: false, altgr: false, name: "KP_Add" },
65452: { shift: false, altgr: false, name: "KP_Separator" },
65453: { shift: false, altgr: false, name: "KP_Subtract" },
65454: { shift: false, altgr: false, name: "KP_Decimal" },
65455: { shift: false, altgr: false, name: "KP_Divide" },
65456: { shift: false, altgr: false, name: "KP_0" },
65457: { shift: false, altgr: false, name: "KP_1" },
65458: { shift: false, altgr: false, name: "KP_2" },
65459: { shift: false, altgr: false, name: "KP_3" },
65460: { shift: false, altgr: false, name: "KP_4" },
65461: { shift: false, altgr: false, name: "KP_5" },
65462: { shift: false, altgr: false, name: "KP_6" },
65463: { shift: false, altgr: false, name: "KP_7" },
65464: { shift: false, altgr: false, name: "KP_8" },
65465: { shift: false, altgr: false, name: "KP_9" },
65470: { shift: false, altgr: false, name: "F1" },
65471: { shift: false, altgr: false, name: "F2" },
65472: { shift: false, altgr: false, name: "F3" },
65473: { shift: false, altgr: false, name: "F4" },
65474: { shift: false, altgr: false, name: "F5" },
65475: { shift: false, altgr: false, name: "F6" },
65476: { shift: false, altgr: false, name: "F7" },
65477: { shift: false, altgr: false, name: "F8" },
65478: { shift: false, altgr: false, name: "F9" },
65479: { shift: false, altgr: false, name: "F10" },
65480: { shift: false, altgr: false, name: "F11" },
65481: { shift: false, altgr: false, name: "F12" },
65509: { shift: false, altgr: false, name: "Caps_Lock" },
65535: { shift: false, altgr: false, name: "Delete" }
},
'de-ch': {
32: { shift: false, altgr: false, name: "space" },
33: { shift: true, altgr: false, name: "exclam" },
34: { shift: true, altgr: false, name: "quotedbl" },
35: { shift: false, altgr: true, name: "numbersign" },
36: { shift: false, altgr: false, name: "dollar" },
37: { shift: true, altgr: false, name: "percent" },
38: { shift: true, altgr: false, name: "ampersand" },
39: { shift: false, altgr: false, name: "apostrophe" },
40: { shift: true, altgr: false, name: "parenleft" },
41: { shift: true, altgr: false, name: "parenright" },
42: { shift: true, altgr: false, name: "asterisk" },
43: { shift: true, altgr: false, name: "plus" },
44: { shift: false, altgr: false, name: "comma" },
45: { shift: false, altgr: false, name: "minus" },
46: { shift: false, altgr: false, name: "period" },
47: { shift: true, altgr: false, name: "slash" },
48: { shift: false, altgr: false, name: "0" },
49: { shift: false, altgr: false, name: "1" },
50: { shift: false, altgr: false, name: "2" },
51: { shift: false, altgr: false, name: "3" },
52: { shift: false, altgr: false, name: "4" },
53: { shift: false, altgr: false, name: "5" },
54: { shift: false, altgr: false, name: "6" },
55: { shift: false, altgr: false, name: "7" },
56: { shift: false, altgr: false, name: "8" },
57: { shift: false, altgr: false, name: "9" },
58: { shift: true, altgr: false, name: "colon" },
59: { shift: true, altgr: false, name: "semicolon" },
60: { shift: false, altgr: false, name: "less" },
61: { shift: true, altgr: false, name: "equal" },
62: { shift: true, altgr: false, name: "greater" },
63: { shift: true, altgr: false, name: "question" },
64: { shift: false, altgr: true, name: "at" },
65: { shift: true, altgr: false, name: "A" },
66: { shift: true, altgr: false, name: "B" },
67: { shift: true, altgr: false, name: "C" },
68: { shift: true, altgr: false, name: "D" },
69: { shift: true, altgr: false, name: "E" },
70: { shift: true, altgr: false, name: "F" },
71: { shift: true, altgr: false, name: "G" },
72: { shift: true, altgr: false, name: "H" },
73: { shift: true, altgr: false, name: "I" },
74: { shift: true, altgr: false, name: "J" },
75: { shift: true, altgr: false, name: "K" },
76: { shift: true, altgr: false, name: "L" },
77: { shift: true, altgr: false, name: "M" },
78: { shift: true, altgr: false, name: "N" },
79: { shift: true, altgr: false, name: "O" },
80: { shift: true, altgr: false, name: "P" },
81: { shift: true, altgr: false, name: "Q" },
82: { shift: true, altgr: false, name: "R" },
83: { shift: true, altgr: false, name: "S" },
84: { shift: true, altgr: false, name: "T" },
85: { shift: true, altgr: false, name: "U" },
86: { shift: true, altgr: false, name: "V" },
87: { shift: true, altgr: false, name: "W" },
88: { shift: true, altgr: false, name: "X" },
89: { shift: true, altgr: false, name: "Y" },
90: { shift: true, altgr: false, name: "Z" },
91: { shift: false, altgr: true, name: "bracketleft" },
92: { shift: false, altgr: true, name: "backslash" },
93: { shift: false, altgr: true, name: "bracketright" },
95: { shift: true, altgr: false, name: "underscore" },
97: { shift: false, altgr: false, name: "a" },
98: { shift: false, altgr: false, name: "b" },
99: { shift: false, altgr: false, name: "c" },
100: { shift: false, altgr: false, name: "d" },
101: { shift: false, altgr: false, name: "e" },
102: { shift: false, altgr: false, name: "f" },
103: { shift: false, altgr: false, name: "g" },
104: { shift: false, altgr: false, name: "h" },
105: { shift: false, altgr: false, name: "i" },
106: { shift: false, altgr: false, name: "j" },
107: { shift: false, altgr: false, name: "k" },
108: { shift: false, altgr: false, name: "l" },
109: { shift: false, altgr: false, name: "m" },
110: { shift: false, altgr: false, name: "n" },
111: { shift: false, altgr: false, name: "o" },
112: { shift: false, altgr: false, name: "p" },
113: { shift: false, altgr: false, name: "q" },
114: { shift: false, altgr: false, name: "r" },
115: { shift: false, altgr: false, name: "s" },
116: { shift: false, altgr: false, name: "t" },
117: { shift: false, altgr: false, name: "u" },
118: { shift: false, altgr: false, name: "v" },
119: { shift: false, altgr: false, name: "w" },
120: { shift: false, altgr: false, name: "x" },
121: { shift: false, altgr: false, name: "y" },
122: { shift: false, altgr: false, name: "z" },
123: { shift: false, altgr: true, name: "braceleft" },
124: { shift: false, altgr: true, name: "bar" },
125: { shift: false, altgr: true, name: "braceright" },
162: { shift: false, altgr: true, name: "cent" },
163: { shift: true, altgr: false, name: "sterling" },
166: { shift: false, altgr: true, name: "brokenbar" },
167: { shift: false, altgr: false, name: "section" },
171: { shift: false, altgr: true, name: "guillemotleft" },
172: { shift: false, altgr: true, name: "notsign" },
176: { shift: true, altgr: false, name: "degree" },
181: { shift: false, altgr: true, name: "mu" },
182: { shift: false, altgr: true, name: "paragraph" },
187: { shift: false, altgr: true, name: "guillemotright" },
188: { shift: false, altgr: true, name: "onequarter" },
189: { shift: false, altgr: true, name: "onehalf" },
223: { shift: false, altgr: true, name: "ssharp" },
224: { shift: true, altgr: false, name: "agrave" },
228: { shift: false, altgr: false, name: "adiaeresis" },
230: { shift: false, altgr: true, name: "ae" },
231: { shift: true, altgr: false, name: "ccedilla" },
232: { shift: true, altgr: false, name: "egrave" },
233: { shift: true, altgr: false, name: "eacute" },
240: { shift: false, altgr: true, name: "eth" },
246: { shift: false, altgr: false, name: "odiaeresis" },
248: { shift: false, altgr: true, name: "oslash" },
252: { shift: false, altgr: false, name: "udiaeresis" },
254: { shift: false, altgr: true, name: "thorn" },
435: { shift: false, altgr: true, name: "lstroke" },
8364: { shift: false, altgr: true, name: "EuroSign" },
65104: { shift: true, altgr: false, name: "dead_grave" },
65105: { shift: false, altgr: true, name: "dead_acute" },
65106: { shift: false, altgr: false, name: "dead_circumflex" },
65107: { shift: false, altgr: true, name: "dead_tilde" },
65111: { shift: false, altgr: false, name: "dead_diaeresis" },
65288: { shift: false, altgr: false, name: "BackSpace" },
65289: { shift: false, altgr: false, name: "Tab" },
65293: { shift: false, altgr: false, name: "Return" },
65300: { shift: false, altgr: false, name: "Scroll_Lock" },
65301: { shift: false, altgr: false, name: "Sys_Req" },
65307: { shift: false, altgr: false, name: "Escape" },
65360: { shift: false, altgr: false, name: "Home" },
65361: { shift: false, altgr: false, name: "Left" },
65362: { shift: false, altgr: false, name: "Up" },
65363: { shift: false, altgr: false, name: "Right" },
65364: { shift: false, altgr: false, name: "Down" },
65365: { shift: false, altgr: false, name: "Page_Up" },
65366: { shift: false, altgr: false, name: "Page_Down" },
65367: { shift: false, altgr: false, name: "End" },
65377: { shift: false, altgr: false, name: "Print" },
65379: { shift: false, altgr: false, name: "Insert" },
65407: { shift: false, altgr: false, name: "Num_Lock" },
65421: { shift: false, altgr: false, name: "KP_Enter" },
65429: { shift: false, altgr: false, name: "KP_Home" },
65430: { shift: false, altgr: false, name: "KP_Left" },
65431: { shift: false, altgr: false, name: "KP_Up" },
65432: { shift: false, altgr: false, name: "KP_Right" },
65433: { shift: false, altgr: false, name: "KP_Down" },
65434: { shift: false, altgr: false, name: "KP_Prior" },
65435: { shift: false, altgr: false, name: "KP_Next" },
65436: { shift: false, altgr: false, name: "KP_End" },
65437: { shift: false, altgr: false, name: "KP_Begin" },
65438: { shift: false, altgr: false, name: "KP_Insert" },
65439: { shift: false, altgr: false, name: "KP_Delete" },
65450: { shift: false, altgr: false, name: "KP_Multiply" },
65451: { shift: false, altgr: false, name: "KP_Add" },
65452: { shift: false, altgr: false, name: "KP_Separator" },
65453: { shift: false, altgr: false, name: "KP_Subtract" },
65454: { shift: false, altgr: false, name: "KP_Decimal" },
65455: { shift: false, altgr: false, name: "KP_Divide" },
65456: { shift: false, altgr: false, name: "KP_0" },
65457: { shift: false, altgr: false, name: "KP_1" },
65458: { shift: false, altgr: false, name: "KP_2" },
65459: { shift: false, altgr: false, name: "KP_3" },
65460: { shift: false, altgr: false, name: "KP_4" },
65461: { shift: false, altgr: false, name: "KP_5" },
65462: { shift: false, altgr: false, name: "KP_6" },
65463: { shift: false, altgr: false, name: "KP_7" },
65464: { shift: false, altgr: false, name: "KP_8" },
65465: { shift: false, altgr: false, name: "KP_9" },
65470: { shift: false, altgr: false, name: "F1" },
65471: { shift: false, altgr: false, name: "F2" },
65472: { shift: false, altgr: false, name: "F3" },
65473: { shift: false, altgr: false, name: "F4" },
65474: { shift: false, altgr: false, name: "F5" },
65475: { shift: false, altgr: false, name: "F6" },
65476: { shift: false, altgr: false, name: "F7" },
65477: { shift: false, altgr: false, name: "F8" },
65478: { shift: false, altgr: false, name: "F9" },
65479: { shift: false, altgr: false, name: "F10" },
65480: { shift: false, altgr: false, name: "F11" },
65481: { shift: false, altgr: false, name: "F12" },
65509: { shift: false, altgr: false, name: "Caps_Lock" },
65535: { shift: false, altgr: false, name: "Delete" }
},
'en-gb': {
32: { shift: false, altgr: false, name: "space" },
33: { shift: true, altgr: false, name: "exclam" },
34: { shift: true, altgr: false, name: "quotedbl" },
35: { shift: false, altgr: false, name: "numbersign" },
36: { shift: true, altgr: false, name: "dollar" },
37: { shift: true, altgr: false, name: "percent" },
38: { shift: true, altgr: false, name: "ampersand" },
39: { shift: false, altgr: false, name: "apostrophe" },
40: { shift: true, altgr: false, name: "parenleft" },
41: { shift: true, altgr: false, name: "parenright" },
42: { shift: true, altgr: false, name: "asterisk" },
43: { shift: true, altgr: false, name: "plus" },
44: { shift: false, altgr: false, name: "comma" },
45: { shift: false, altgr: false, name: "minus" },
46: { shift: false, altgr: false, name: "period" },
47: { shift: false, altgr: false, name: "slash" },
48: { shift: false, altgr: false, name: "0" },
49: { shift: false, altgr: false, name: "1" },
50: { shift: false, altgr: false, name: "2" },
51: { shift: false, altgr: false, name: "3" },
52: { shift: false, altgr: false, name: "4" },
53: { shift: false, altgr: false, name: "5" },
54: { shift: false, altgr: false, name: "6" },
55: { shift: false, altgr: false, name: "7" },
56: { shift: false, altgr: false, name: "8" },
57: { shift: false, altgr: false, name: "9" },
58: { shift: true, altgr: false, name: "colon" },
59: { shift: false, altgr: false, name: "semicolon" },
60: { shift: true, altgr: false, name: "less" },
61: { shift: false, altgr: false, name: "equal" },
62: { shift: true, altgr: false, name: "greater" },
63: { shift: true, altgr: false, name: "question" },
64: { shift: true, altgr: false, name: "at" },
65: { shift: true, altgr: false, name: "A" },
66: { shift: true, altgr: false, name: "B" },
67: { shift: true, altgr: false, name: "C" },
68: { shift: true, altgr: false, name: "D" },
69: { shift: true, altgr: false, name: "E" },
70: { shift: true, altgr: false, name: "F" },
71: { shift: true, altgr: false, name: "G" },
72: { shift: true, altgr: false, name: "H" },
73: { shift: true, altgr: false, name: "I" },
74: { shift: true, altgr: false, name: "J" },
75: { shift: true, altgr: false, name: "K" },
76: { shift: true, altgr: false, name: "L" },
77: { shift: true, altgr: false, name: "M" },
78: { shift: true, altgr: false, name: "N" },
79: { shift: true, altgr: false, name: "O" },
80: { shift: true, altgr: false, name: "P" },
81: { shift: true, altgr: false, name: "Q" },
82: { shift: true, altgr: false, name: "R" },
83: { shift: true, altgr: false, name: "S" },
84: { shift: true, altgr: false, name: "T" },
85: { shift: true, altgr: false, name: "U" },
86: { shift: true, altgr: false, name: "V" },
87: { shift: true, altgr: false, name: "W" },
88: { shift: true, altgr: false, name: "X" },
89: { shift: true, altgr: false, name: "Y" },
90: { shift: true, altgr: false, name: "Z" },
91: { shift: false, altgr: false, name: "bracketleft" },
92: { shift: false, altgr: false, name: "backslash" },
93: { shift: false, altgr: false, name: "bracketright" },
94: { shift: true, altgr: false, name: "asciicircum" },
95: { shift: true, altgr: false, name: "underscore" },
96: { shift: false, altgr: false, name: "grave" },
97: { shift: false, altgr: false, name: "a" },
98: { shift: false, altgr: false, name: "b" },
99: { shift: false, altgr: false, name: "c" },
100: { shift: false, altgr: false, name: "d" },
101: { shift: false, altgr: false, name: "e" },
102: { shift: false, altgr: false, name: "f" },
103: { shift: false, altgr: false, name: "g" },
104: { shift: false, altgr: false, name: "h" },
105: { shift: false, altgr: false, name: "i" },
106: { shift: false, altgr: false, name: "j" },
107: { shift: false, altgr: false, name: "k" },
108: { shift: false, altgr: false, name: "l" },
109: { shift: false, altgr: false, name: "m" },
110: { shift: false, altgr: false, name: "n" },
111: { shift: false, altgr: false, name: "o" },
112: { shift: false, altgr: false, name: "p" },
113: { shift: false, altgr: false, name: "q" },
114: { shift: false, altgr: false, name: "r" },
115: { shift: false, altgr: false, name: "s" },
116: { shift: false, altgr: false, name: "t" },
117: { shift: false, altgr: false, name: "u" },
118: { shift: false, altgr: false, name: "v" },
119: { shift: false, altgr: false, name: "w" },
120: { shift: false, altgr: false, name: "x" },
121: { shift: false, altgr: false, name: "y" },
122: { shift: false, altgr: false, name: "z" },
123: { shift: true, altgr: false, name: "braceleft" },
124: { shift: true, altgr: false, name: "bar" },
125: { shift: true, altgr: false, name: "braceright" },
126: { shift: true, altgr: false, name: "asciitilde" },
161: { shift: true, altgr: true, name: "exclamdown" },
162: { shift: false, altgr: true, name: "cent" },
163: { shift: true, altgr: false, name: "sterling" },
165: { shift: true, altgr: true, name: "yen" },
166: { shift: true, altgr: true, name: "brokenbar" },
167: { shift: true, altgr: true, name: "section" },
169: { shift: true, altgr: true, name: "copyright" },
170: { shift: true, altgr: true, name: "ordfeminine" },
171: { shift: false, altgr: true, name: "guillemotleft" },
172: { shift: true, altgr: false, name: "notsign" },
174: { shift: true, altgr: true, name: "registered" },
176: { shift: true, altgr: true, name: "degree" },
177: { shift: true, altgr: true, name: "plusminus" },
178: { shift: false, altgr: true, name: "twosuperior" },
179: { shift: false, altgr: true, name: "threesuperior" },
181: { shift: false, altgr: true, name: "mu" },
182: { shift: false, altgr: true, name: "paragraph" },
183: { shift: false, altgr: true, name: "periodcentered" },
185: { shift: false, altgr: true, name: "onesuperior" },
186: { shift: true, altgr: true, name: "masculine" },
187: { shift: false, altgr: true, name: "guillemotright" },
189: { shift: false, altgr: true, name: "onehalf" },
190: { shift: false, altgr: true, name: "threequarters" },
191: { shift: true, altgr: true, name: "questiondown" },
198: { shift: true, altgr: true, name: "AE" },
208: { shift: true, altgr: true, name: "ETH" },
215: { shift: true, altgr: true, name: "multiply" },
216: { shift: true, altgr: true, name: "Ooblique" },
222: { shift: true, altgr: true, name: "THORN" },
223: { shift: false, altgr: true, name: "ssharp" },
230: { shift: false, altgr: true, name: "ae" },
240: { shift: false, altgr: true, name: "eth" },
247: { shift: true, altgr: true, name: "division" },
248: { shift: false, altgr: true, name: "oslash" },
254: { shift: false, altgr: true, name: "thorn" },
419: { shift: true, altgr: true, name: "Lstroke" },
435: { shift: false, altgr: true, name: "lstroke" },
8364: { shift: false, altgr: true, name: "EuroSign" },
65104: { shift: false, altgr: true, name: "dead_grave" },
65105: { shift: false, altgr: true, name: "dead_acute" },
65106: { shift: false, altgr: true, name: "dead_circumflex" },
65107: { shift: false, altgr: true, name: "dead_tilde" },
65108: { shift: true, altgr: true, name: "dead_macron" },
65109: { shift: true, altgr: true, name: "dead_breve" },
65110: { shift: true, altgr: true, name: "dead_abovedot" },
65111: { shift: false, altgr: true, name: "dead_diaeresis" },
65112: { shift: true, altgr: true, name: "dead_abovering" },
65113: { shift: true, altgr: true, name: "dead_doubleacute" },
65114: { shift: true, altgr: true, name: "dead_caron" },
65115: { shift: false, altgr: true, name: "dead_cedilla" },
65116: { shift: true, altgr: true, name: "dead_ogonek" },
65120: { shift: false, altgr: true, name: "dead_belowdot" },
65288: { shift: false, altgr: false, name: "BackSpace" },
65289: { shift: false, altgr: false, name: "Tab" },
65293: { shift: false, altgr: false, name: "Return" },
65300: { shift: false, altgr: false, name: "Scroll_Lock" },
65301: { shift: false, altgr: false, name: "Sys_Req" },
65307: { shift: false, altgr: false, name: "Escape" },
65360: { shift: false, altgr: false, name: "Home" },
65361: { shift: false, altgr: false, name: "Left" },
65362: { shift: false, altgr: false, name: "Up" },
65363: { shift: false, altgr: false, name: "Right" },
65364: { shift: false, altgr: false, name: "Down" },
65365: { shift: false, altgr: false, name: "Page_Up" },
65366: { shift: false, altgr: false, name: "Page_Down" },
65367: { shift: false, altgr: false, name: "End" },
65377: { shift: false, altgr: false, name: "Print" },
65379: { shift: false, altgr: false, name: "Insert" },
65407: { shift: false, altgr: false, name: "Num_Lock" },
65421: { shift: false, altgr: false, name: "KP_Enter" },
65429: { shift: false, altgr: false, name: "KP_Home" },
65430: { shift: false, altgr: false, name: "KP_Left" },
65431: { shift: false, altgr: false, name: "KP_Up" },
65432: { shift: false, altgr: false, name: "KP_Right" },
65433: { shift: false, altgr: false, name: "KP_Down" },
65434: { shift: false, altgr: false, name: "KP_Prior" },
65435: { shift: false, altgr: false, name: "KP_Next" },
65436: { shift: false, altgr: false, name: "KP_End" },
65437: { shift: false, altgr: false, name: "KP_Begin" },
65438: { shift: false, altgr: false, name: "KP_Insert" },
65439: { shift: false, altgr: false, name: "KP_Delete" },
65450: { shift: false, altgr: false, name: "KP_Multiply" },
65451: { shift: false, altgr: false, name: "KP_Add" },
65452: { shift: false, altgr: false, name: "KP_Separator" },
65453: { shift: false, altgr: false, name: "KP_Subtract" },
65454: { shift: false, altgr: false, name: "KP_Decimal" },
65455: { shift: false, altgr: false, name: "KP_Divide" },
65456: { shift: false, altgr: false, name: "KP_0" },
65457: { shift: false, altgr: false, name: "KP_1" },
65458: { shift: false, altgr: false, name: "KP_2" },
65459: { shift: false, altgr: false, name: "KP_3" },
65460: { shift: false, altgr: false, name: "KP_4" },
65461: { shift: false, altgr: false, name: "KP_5" },
65462: { shift: false, altgr: false, name: "KP_6" },
65463: { shift: false, altgr: false, name: "KP_7" },
65464: { shift: false, altgr: false, name: "KP_8" },
65465: { shift: false, altgr: false, name: "KP_9" },
65470: { shift: false, altgr: false, name: "F1" },
65471: { shift: false, altgr: false, name: "F2" },
65472: { shift: false, altgr: false, name: "F3" },
65473: { shift: false, altgr: false, name: "F4" },
65474: { shift: false, altgr: false, name: "F5" },
65475: { shift: false, altgr: false, name: "F6" },
65476: { shift: false, altgr: false, name: "F7" },
65477: { shift: false, altgr: false, name: "F8" },
65478: { shift: false, altgr: false, name: "F9" },
65479: { shift: false, altgr: false, name: "F10" },
65480: { shift: false, altgr: false, name: "F11" },
65481: { shift: false, altgr: false, name: "F12" },
65509: { shift: false, altgr: false, name: "Caps_Lock" },
65535: { shift: false, altgr: false, name: "Delete" }
},
'en-us': {
32: { shift: false, altgr: false, name: "space" },
33: { shift: true, altgr: false, name: "exclam" },
34: { shift: true, altgr: false, name: "quotedbl" },
35: { shift: true, altgr: false, name: "numbersign" },
36: { shift: true, altgr: false, name: "dollar" },
37: { shift: true, altgr: false, name: "percent" },
38: { shift: true, altgr: false, name: "ampersand" },
39: { shift: false, altgr: false, name: "apostrophe" },
40: { shift: true, altgr: false, name: "parenleft" },
41: { shift: true, altgr: false, name: "parenright" },
42: { shift: true, altgr: false, name: "asterisk" },
43: { shift: true, altgr: false, name: "plus" },
44: { shift: false, altgr: false, name: "comma" },
45: { shift: false, altgr: false, name: "minus" },
46: { shift: false, altgr: false, name: "period" },
47: { shift: false, altgr: false, name: "slash" },
48: { shift: false, altgr: false, name: "0" },
49: { shift: false, altgr: false, name: "1" },
50: { shift: false, altgr: false, name: "2" },
51: { shift: false, altgr: false, name: "3" },
52: { shift: false, altgr: false, name: "4" },
53: { shift: false, altgr: false, name: "5" },
54: { shift: false, altgr: false, name: "6" },
55: { shift: false, altgr: false, name: "7" },
56: { shift: false, altgr: false, name: "8" },
57: { shift: false, altgr: false, name: "9" },
58: { shift: true, altgr: false, name: "colon" },
59: { shift: false, altgr: false, name: "semicolon" },
60: { shift: true, altgr: false, name: "less" },
61: { shift: false, altgr: false, name: "equal" },
62: { shift: true, altgr: false, name: "greater" },
63: { shift: true, altgr: false, name: "question" },
64: { shift: true, altgr: false, name: "at" },
65: { shift: true, altgr: false, name: "A" },
66: { shift: true, altgr: false, name: "B" },
67: { shift: true, altgr: false, name: "C" },
68: { shift: true, altgr: false, name: "D" },
69: { shift: true, altgr: false, name: "E" },
70: { shift: true, altgr: false, name: "F" },
71: { shift: true, altgr: false, name: "G" },
72: { shift: true, altgr: false, name: "H" },
73: { shift: true, altgr: false, name: "I" },
74: { shift: true, altgr: false, name: "J" },
75: { shift: true, altgr: false, name: "K" },
76: { shift: true, altgr: false, name: "L" },
77: { shift: true, altgr: false, name: "M" },
78: { shift: true, altgr: false, name: "N" },
79: { shift: true, altgr: false, name: "O" },
80: { shift: true, altgr: false, name: "P" },
81: { shift: true, altgr: false, name: "Q" },
82: { shift: true, altgr: false, name: "R" },
83: { shift: true, altgr: false, name: "S" },
84: { shift: true, altgr: false, name: "T" },
85: { shift: true, altgr: false, name: "U" },
86: { shift: true, altgr: false, name: "V" },
87: { shift: true, altgr: false, name: "W" },
88: { shift: true, altgr: false, name: "X" },
89: { shift: true, altgr: false, name: "Y" },
90: { shift: true, altgr: false, name: "Z" },
91: { shift: false, altgr: false, name: "bracketleft" },
92: { shift: false, altgr: false, name: "backslash" },
93: { shift: false, altgr: false, name: "bracketright" },
94: { shift: true, altgr: false, name: "asciicircum" },
95: { shift: true, altgr: false, name: "underscore" },
96: { shift: false, altgr: false, name: "grave" },
97: { shift: false, altgr: false, name: "a" },
98: { shift: false, altgr: false, name: "b" },
99: { shift: false, altgr: false, name: "c" },
100: { shift: false, altgr: false, name: "d" },
101: { shift: false, altgr: false, name: "e" },
102: { shift: false, altgr: false, name: "f" },
103: { shift: false, altgr: false, name: "g" },
104: { shift: false, altgr: false, name: "h" },
105: { shift: false, altgr: false, name: "i" },
106: { shift: false, altgr: false, name: "j" },
107: { shift: false, altgr: false, name: "k" },
108: { shift: false, altgr: false, name: "l" },
109: { shift: false, altgr: false, name: "m" },
110: { shift: false, altgr: false, name: "n" },
111: { shift: false, altgr: false, name: "o" },
112: { shift: false, altgr: false, name: "p" },
113: { shift: false, altgr: false, name: "q" },
114: { shift: false, altgr: false, name: "r" },
115: { shift: false, altgr: false, name: "s" },
116: { shift: false, altgr: false, name: "t" },
117: { shift: false, altgr: false, name: "u" },
118: { shift: false, altgr: false, name: "v" },
119: { shift: false, altgr: false, name: "w" },
120: { shift: false, altgr: false, name: "x" },
121: { shift: false, altgr: false, name: "y" },
122: { shift: false, altgr: false, name: "z" },
123: { shift: true, altgr: false, name: "braceleft" },
124: { shift: true, altgr: false, name: "bar" },
125: { shift: true, altgr: false, name: "braceright" },
126: { shift: true, altgr: false, name: "asciitilde" },
166: { shift: true, altgr: true, name: "brokenbar" },
65288: { shift: false, altgr: false, name: "BackSpace" },
65289: { shift: false, altgr: false, name: "Tab" },
65293: { shift: false, altgr: false, name: "Return" },
65300: { shift: false, altgr: false, name: "Scroll_Lock" },
65301: { shift: false, altgr: false, name: "Sys_Req" },
65307: { shift: false, altgr: false, name: "Escape" },
65360: { shift: false, altgr: false, name: "Home" },
65361: { shift: false, altgr: false, name: "Left" },
65362: { shift: false, altgr: false, name: "Up" },
65363: { shift: false, altgr: false, name: "Right" },
65364: { shift: false, altgr: false, name: "Down" },
65365: { shift: false, altgr: false, name: "Page_Up" },
65366: { shift: false, altgr: false, name: "Page_Down" },
65367: { shift: false, altgr: false, name: "End" },
65377: { shift: false, altgr: false, name: "Print" },
65379: { shift: false, altgr: false, name: "Insert" },
65407: { shift: false, altgr: false, name: "Num_Lock" },
65421: { shift: false, altgr: false, name: "KP_Enter" },
65429: { shift: false, altgr: false, name: "KP_Home" },
65430: { shift: false, altgr: false, name: "KP_Left" },
65431: { shift: false, altgr: false, name: "KP_Up" },
65432: { shift: false, altgr: false, name: "KP_Right" },
65433: { shift: false, altgr: false, name: "KP_Down" },
65434: { shift: false, altgr: false, name: "KP_Prior" },
65435: { shift: false, altgr: false, name: "KP_Next" },
65436: { shift: false, altgr: false, name: "KP_End" },
65437: { shift: false, altgr: false, name: "KP_Begin" },
65438: { shift: false, altgr: false, name: "KP_Insert" },
65439: { shift: false, altgr: false, name: "KP_Delete" },
65450: { shift: false, altgr: false, name: "KP_Multiply" },
65451: { shift: false, altgr: false, name: "KP_Add" },
65452: { shift: false, altgr: false, name: "KP_Separator" },
65453: { shift: false, altgr: false, name: "KP_Subtract" },
65454: { shift: false, altgr: false, name: "KP_Decimal" },
65455: { shift: false, altgr: false, name: "KP_Divide" },
65456: { shift: false, altgr: false, name: "KP_0" },
65457: { shift: false, altgr: false, name: "KP_1" },
65458: { shift: false, altgr: false, name: "KP_2" },
65459: { shift: false, altgr: false, name: "KP_3" },
65460: { shift: false, altgr: false, name: "KP_4" },
65461: { shift: false, altgr: false, name: "KP_5" },
65462: { shift: false, altgr: false, name: "KP_6" },
65463: { shift: false, altgr: false, name: "KP_7" },
65464: { shift: false, altgr: false, name: "KP_8" },
65465: { shift: false, altgr: false, name: "KP_9" },
65470: { shift: false, altgr: false, name: "F1" },
65471: { shift: false, altgr: false, name: "F2" },
65472: { shift: false, altgr: false, name: "F3" },
65473: { shift: false, altgr: false, name: "F4" },
65474: { shift: false, altgr: false, name: "F5" },
65475: { shift: false, altgr: false, name: "F6" },
65476: { shift: false, altgr: false, name: "F7" },
65477: { shift: false, altgr: false, name: "F8" },
65478: { shift: false, altgr: false, name: "F9" },
65479: { shift: false, altgr: false, name: "F10" },
65480: { shift: false, altgr: false, name: "F11" },
65481: { shift: false, altgr: false, name: "F12" },
65509: { shift: false, altgr: false, name: "Caps_Lock" },
65535: { shift: false, altgr: false, name: "Delete" }
},
'es': {
32: { shift: false, altgr: false, name: "space" },
33: { shift: true, altgr: false, name: "exclam" },
34: { shift: true, altgr: false, name: "quotedbl" },
35: { shift: false, altgr: true, name: "numbersign" },
36: { shift: true, altgr: false, name: "dollar" },
37: { shift: true, altgr: false, name: "percent" },
38: { shift: true, altgr: false, name: "ampersand" },
39: { shift: false, altgr: false, name: "apostrophe" },
40: { shift: true, altgr: false, name: "parenleft" },
41: { shift: true, altgr: false, name: "parenright" },
42: { shift: true, altgr: false, name: "asterisk" },
43: { shift: false, altgr: false, name: "plus" },
44: { shift: false, altgr: false, name: "comma" },
45: { shift: false, altgr: false, name: "minus" },
46: { shift: false, altgr: false, name: "period" },
47: { shift: true, altgr: false, name: "slash" },
48: { shift: false, altgr: false, name: "0" },
49: { shift: false, altgr: false, name: "1" },
50: { shift: false, altgr: false, name: "2" },
51: { shift: false, altgr: false, name: "3" },
52: { shift: false, altgr: false, name: "4" },
53: { shift: false, altgr: false, name: "5" },
54: { shift: false, altgr: false, name: "6" },
55: { shift: false, altgr: false, name: "7" },
56: { shift: false, altgr: false, name: "8" },
57: { shift: false, altgr: false, name: "9" },
58: { shift: true, altgr: false, name: "colon" },
59: { shift: true, altgr: false, name: "semicolon" },
60: { shift: false, altgr: false, name: "less" },
61: { shift: true, altgr: false, name: "equal" },
62: { shift: true, altgr: false, name: "greater" },
63: { shift: true, altgr: false, name: "question" },
64: { shift: false, altgr: true, name: "at" },
65: { shift: true, altgr: false, name: "A" },
66: { shift: true, altgr: false, name: "B" },
67: { shift: true, altgr: false, name: "C" },
68: { shift: true, altgr: false, name: "D" },
69: { shift: true, altgr: false, name: "E" },
70: { shift: true, altgr: false, name: "F" },
71: { shift: true, altgr: false, name: "G" },
72: { shift: true, altgr: false, name: "H" },
73: { shift: true, altgr: false, name: "I" },
74: { shift: true, altgr: false, name: "J" },
75: { shift: true, altgr: false, name: "K" },
76: { shift: true, altgr: false, name: "L" },
77: { shift: true, altgr: false, name: "M" },
78: { shift: true, altgr: false, name: "N" },
79: { shift: true, altgr: false, name: "O" },
80: { shift: true, altgr: false, name: "P" },
81: { shift: true, altgr: false, name: "Q" },
82: { shift: true, altgr: false, name: "R" },
83: { shift: true, altgr: false, name: "S" },
84: { shift: true, altgr: false, name: "T" },
85: { shift: true, altgr: false, name: "U" },
86: { shift: true, altgr: false, name: "V" },
87: { shift: true, altgr: false, name: "W" },
88: { shift: true, altgr: false, name: "X" },
89: { shift: true, altgr: false, name: "Y" },
90: { shift: true, altgr: false, name: "Z" },
91: { shift: false, altgr: true, name: "bracketleft" },
92: { shift: false, altgr: true, name: "backslash" },
93: { shift: false, altgr: true, name: "bracketright" },
95: { shift: true, altgr: false, name: "underscore" },
96: { shift: true, altgr: true, name: "grave" },
97: { shift: false, altgr: false, name: "a" },
98: { shift: false, altgr: false, name: "b" },
99: { shift: false, altgr: false, name: "c" },
100: { shift: false, altgr: false, name: "d" },
101: { shift: false, altgr: false, name: "e" },
102: { shift: false, altgr: false, name: "f" },
103: { shift: false, altgr: false, name: "g" },
104: { shift: false, altgr: false, name: "h" },
105: { shift: false, altgr: false, name: "i" },
106: { shift: false, altgr: false, name: "j" },
107: { shift: false, altgr: false, name: "k" },
108: { shift: false, altgr: false, name: "l" },
109: { shift: false, altgr: false, name: "m" },
110: { shift: false, altgr: false, name: "n" },
111: { shift: false, altgr: false, name: "o" },
112: { shift: false, altgr: false, name: "p" },
113: { shift: false, altgr: false, name: "q" },
114: { shift: false, altgr: false, name: "r" },
115: { shift: false, altgr: false, name: "s" },
116: { shift: false, altgr: false, name: "t" },
117: { shift: false, altgr: false, name: "u" },
118: { shift: false, altgr: false, name: "v" },
119: { shift: false, altgr: false, name: "w" },
120: { shift: false, altgr: false, name: "x" },
121: { shift: false, altgr: false, name: "y" },
122: { shift: false, altgr: false, name: "z" },
123: { shift: false, altgr: true, name: "braceleft" },
124: { shift: false, altgr: true, name: "bar" },
125: { shift: false, altgr: true, name: "braceright" },
126: { shift: false, altgr: true, name: "asciitilde" },
161: { shift: false, altgr: false, name: "exclamdown" },
162: { shift: false, altgr: true, name: "cent" },
163: { shift: true, altgr: true, name: "sterling" },
165: { shift: true, altgr: true, name: "yen" },
166: { shift: true, altgr: true, name: "brokenbar" },
167: { shift: true, altgr: true, name: "section" },
169: { shift: true, altgr: true, name: "copyright" },
170: { shift: true, altgr: false, name: "ordfeminine" },
171: { shift: false, altgr: true, name: "guillemotleft" },
172: { shift: false, altgr: true, name: "notsign" },
174: { shift: true, altgr: true, name: "registered" },
176: { shift: true, altgr: true, name: "degree" },
177: { shift: true, altgr: true, name: "plusminus" },
181: { shift: false, altgr: true, name: "mu" },
182: { shift: false, altgr: true, name: "paragraph" },
183: { shift: true, altgr: false, name: "periodcentered" },
186: { shift: false, altgr: false, name: "masculine" },
187: { shift: false, altgr: true, name: "guillemotright" },
189: { shift: false, altgr: true, name: "onehalf" },
191: { shift: true, altgr: false, name: "questiondown" },
198: { shift: true, altgr: true, name: "AE" },
199: { shift: true, altgr: false, name: "Ccedilla" },
208: { shift: true, altgr: true, name: "ETH" },
209: { shift: true, altgr: false, name: "Ntilde" },
215: { shift: true, altgr: true, name: "multiply" },
216: { shift: true, altgr: true, name: "Ooblique" },
222: { shift: true, altgr: true, name: "THORN" },
223: { shift: false, altgr: true, name: "ssharp" },
230: { shift: false, altgr: true, name: "ae" },
231: { shift: false, altgr: false, name: "ccedilla" },
240: { shift: false, altgr: true, name: "eth" },
241: { shift: false, altgr: false, name: "ntilde" },
247: { shift: true, altgr: true, name: "division" },
248: { shift: false, altgr: true, name: "oslash" },
254: { shift: false, altgr: true, name: "thorn" },
419: { shift: true, altgr: true, name: "Lstroke" },
435: { shift: false, altgr: true, name: "lstroke" },
8364: { shift: false, altgr: true, name: "EuroSign" },
65104: { shift: false, altgr: false, name: "dead_grave" },
65105: { shift: false, altgr: false, name: "dead_acute" },
65106: { shift: true, altgr: false, name: "dead_circumflex" },
65108: { shift: true, altgr: true, name: "dead_macron" },
65109: { shift: true, altgr: true, name: "dead_breve" },
65110: { shift: true, altgr: true, name: "dead_abovedot" },
65111: { shift: true, altgr: false, name: "dead_diaeresis" },
65112: { shift: true, altgr: true, name: "dead_abovering" },
65113: { shift: true, altgr: true, name: "dead_doubleacute" },
65120: { shift: false, altgr: true, name: "dead_belowdot" },
65288: { shift: false, altgr: false, name: "BackSpace" },
65289: { shift: false, altgr: false, name: "Tab" },
65293: { shift: false, altgr: false, name: "Return" },
65300: { shift: false, altgr: false, name: "Scroll_Lock" },
65301: { shift: false, altgr: false, name: "Sys_Req" },
65307: { shift: false, altgr: false, name: "Escape" },
65360: { shift: false, altgr: false, name: "Home" },
65361: { shift: false, altgr: false, name: "Left" },
65362: { shift: false, altgr: false, name: "Up" },
65363: { shift: false, altgr: false, name: "Right" },
65364: { shift: false, altgr: false, name: "Down" },
65365: { shift: false, altgr: false, name: "Page_Up" },
65366: { shift: false, altgr: false, name: "Page_Down" },
65367: { shift: false, altgr: false, name: "End" },
65377: { shift: false, altgr: false, name: "Print" },
65379: { shift: false, altgr: false, name: "Insert" },
65407: { shift: false, altgr: false, name: "Num_Lock" },
65421: { shift: false, altgr: false, name: "KP_Enter" },
65429: { shift: false, altgr: false, name: "KP_Home" },
65430: { shift: false, altgr: false, name: "KP_Left" },
65431: { shift: false, altgr: false, name: "KP_Up" },
65432: { shift: false, altgr: false, name: "KP_Right" },
65433: { shift: false, altgr: false, name: "KP_Down" },
65434: { shift: false, altgr: false, name: "KP_Prior" },
65435: { shift: false, altgr: false, name: "KP_Next" },
65436: { shift: false, altgr: false, name: "KP_End" },
65437: { shift: false, altgr: false, name: "KP_Begin" },
65438: { shift: false, altgr: false, name: "KP_Insert" },
65439: { shift: false, altgr: false, name: "KP_Delete" },
65450: { shift: false, altgr: false, name: "KP_Multiply" },
65451: { shift: false, altgr: false, name: "KP_Add" },
65452: { shift: false, altgr: false, name: "KP_Separator" },
65453: { shift: false, altgr: false, name: "KP_Subtract" },
65454: { shift: false, altgr: false, name: "KP_Decimal" },
65455: { shift: false, altgr: false, name: "KP_Divide" },
65456: { shift: false, altgr: false, name: "KP_0" },
65457: { shift: false, altgr: false, name: "KP_1" },
65458: { shift: false, altgr: false, name: "KP_2" },
65459: { shift: false, altgr: false, name: "KP_3" },
65460: { shift: false, altgr: false, name: "KP_4" },
65461: { shift: false, altgr: false, name: "KP_5" },
65462: { shift: false, altgr: false, name: "KP_6" },
65463: { shift: false, altgr: false, name: "KP_7" },
65464: { shift: false, altgr: false, name: "KP_8" },
65465: { shift: false, altgr: false, name: "KP_9" },
65470: { shift: false, altgr: false, name: "F1" },
65471: { shift: false, altgr: false, name: "F2" },
65472: { shift: false, altgr: false, name: "F3" },
65473: { shift: false, altgr: false, name: "F4" },
65474: { shift: false, altgr: false, name: "F5" },
65475: { shift: false, altgr: false, name: "F6" },
65476: { shift: false, altgr: false, name: "F7" },
65477: { shift: false, altgr: false, name: "F8" },
65478: { shift: false, altgr: false, name: "F9" },
65479: { shift: false, altgr: false, name: "F10" },
65480: { shift: false, altgr: false, name: "F11" },
65481: { shift: false, altgr: false, name: "F12" },
65509: { shift: false, altgr: false, name: "Caps_Lock" },
65535: { shift: false, altgr: false, name: "Delete" }
},
'et': {
32: { shift: false, altgr: false, name: "space" },
33: { shift: true, altgr: false, name: "exclam" },
34: { shift: true, altgr: false, name: "quotedbl" },
35: { shift: true, altgr: false, name: "numbersign" },
36: { shift: false, altgr: true, name: "dollar" },
37: { shift: true, altgr: false, name: "percent" },
38: { shift: true, altgr: false, name: "ampersand" },
39: { shift: false, altgr: false, name: "apostrophe" },
40: { shift: true, altgr: false, name: "parenleft" },
41: { shift: true, altgr: false, name: "parenright" },
42: { shift: true, altgr: false, name: "asterisk" },
43: { shift: false, altgr: false, name: "plus" },
44: { shift: false, altgr: false, name: "comma" },
45: { shift: false, altgr: false, name: "minus" },
46: { shift: false, altgr: false, name: "period" },
47: { shift: true, altgr: false, name: "slash" },
48: { shift: false, altgr: false, name: "0" },
49: { shift: false, altgr: false, name: "1" },
50: { shift: false, altgr: false, name: "2" },
51: { shift: false, altgr: false, name: "3" },
52: { shift: false, altgr: false, name: "4" },
53: { shift: false, altgr: false, name: "5" },
54: { shift: false, altgr: false, name: "6" },
55: { shift: false, altgr: false, name: "7" },
56: { shift: false, altgr: false, name: "8" },
57: { shift: false, altgr: false, name: "9" },
58: { shift: true, altgr: false, name: "colon" },
59: { shift: true, altgr: false, name: "semicolon" },
60: { shift: false, altgr: false, name: "less" },
61: { shift: true, altgr: false, name: "equal" },
62: { shift: true, altgr: false, name: "greater" },
63: { shift: true, altgr: false, name: "question" },
64: { shift: false, altgr: true, name: "at" },
65: { shift: true, altgr: false, name: "A" },
66: { shift: true, altgr: false, name: "B" },
67: { shift: true, altgr: false, name: "C" },
68: { shift: true, altgr: false, name: "D" },
69: { shift: true, altgr: false, name: "E" },
70: { shift: true, altgr: false, name: "F" },
71: { shift: true, altgr: false, name: "G" },
72: { shift: true, altgr: false, name: "H" },
73: { shift: true, altgr: false, name: "I" },
74: { shift: true, altgr: false, name: "J" },
75: { shift: true, altgr: false, name: "K" },
76: { shift: true, altgr: false, name: "L" },
77: { shift: true, altgr: false, name: "M" },
78: { shift: true, altgr: false, name: "N" },
79: { shift: true, altgr: false, name: "O" },
80: { shift: true, altgr: false, name: "P" },
81: { shift: true, altgr: false, name: "Q" },
82: { shift: true, altgr: false, name: "R" },
83: { shift: true, altgr: false, name: "S" },
84: { shift: true, altgr: false, name: "T" },
85: { shift: true, altgr: false, name: "U" },
86: { shift: true, altgr: false, name: "V" },
87: { shift: true, altgr: false, name: "W" },
88: { shift: true, altgr: false, name: "X" },
89: { shift: true, altgr: false, name: "Y" },
90: { shift: true, altgr: false, name: "Z" },
91: { shift: false, altgr: true, name: "bracketleft" },
92: { shift: false, altgr: true, name: "backslash" },
93: { shift: false, altgr: true, name: "bracketright" },
94: { shift: false, altgr: true, name: "asciicircum" },
95: { shift: true, altgr: false, name: "underscore" },
96: { shift: true, altgr: false, name: "grave" },
97: { shift: false, altgr: false, name: "a" },
98: { shift: false, altgr: false, name: "b" },
99: { shift: false, altgr: false, name: "c" },
100: { shift: false, altgr: false, name: "d" },
101: { shift: false, altgr: false, name: "e" },
102: { shift: false, altgr: false, name: "f" },
103: { shift: false, altgr: false, name: "g" },
104: { shift: false, altgr: false, name: "h" },
105: { shift: false, altgr: false, name: "i" },
106: { shift: false, altgr: false, name: "j" },
107: { shift: false, altgr: false, name: "k" },
108: { shift: false, altgr: false, name: "l" },
109: { shift: false, altgr: false, name: "m" },
110: { shift: false, altgr: false, name: "n" },
111: { shift: false, altgr: false, name: "o" },
112: { shift: false, altgr: false, name: "p" },
113: { shift: false, altgr: false, name: "q" },
114: { shift: false, altgr: false, name: "r" },
115: { shift: false, altgr: false, name: "s" },
116: { shift: false, altgr: false, name: "t" },
117: { shift: false, altgr: false, name: "u" },
118: { shift: false, altgr: false, name: "v" },
119: { shift: false, altgr: false, name: "w" },
120: { shift: false, altgr: false, name: "x" },
121: { shift: false, altgr: false, name: "y" },
122: { shift: false, altgr: false, name: "z" },
123: { shift: false, altgr: true, name: "braceleft" },
124: { shift: false, altgr: true, name: "bar" },
125: { shift: false, altgr: true, name: "braceright" },
163: { shift: false, altgr: true, name: "sterling" },
164: { shift: true, altgr: false, name: "currency" },
166: { shift: true, altgr: true, name: "brokenbar" },
167: { shift: false, altgr: true, name: "section" },
180: { shift: false, altgr: false, name: "acute" },
189: { shift: false, altgr: true, name: "onehalf" },
196: { shift: true, altgr: false, name: "Adiaeresis" },
213: { shift: true, altgr: false, name: "Otilde" },
214: { shift: true, altgr: false, name: "Odiaeresis" },
220: { shift: true, altgr: false, name: "Udiaeresis" },
228: { shift: false, altgr: false, name: "adiaeresis" },
245: { shift: false, altgr: false, name: "otilde" },
246: { shift: false, altgr: false, name: "odiaeresis" },
252: { shift: false, altgr: false, name: "udiaeresis" },
8364: { shift: false, altgr: true, name: "EuroSign" },
65104: { shift: true, altgr: false, name: "dead_grave" },
65105: { shift: false, altgr: false, name: "dead_acute" },
65107: { shift: true, altgr: false, name: "dead_tilde" },
65114: { shift: false, altgr: false, name: "dead_caron" },
65288: { shift: false, altgr: false, name: "BackSpace" },
65289: { shift: false, altgr: false, name: "Tab" },
65293: { shift: false, altgr: false, name: "Return" },
65300: { shift: false, altgr: false, name: "Scroll_Lock" },
65301: { shift: false, altgr: false, name: "Sys_Req" },
65307: { shift: false, altgr: false, name: "Escape" },
65360: { shift: false, altgr: false, name: "Home" },
65361: { shift: false, altgr: false, name: "Left" },
65362: { shift: false, altgr: false, name: "Up" },
65363: { shift: false, altgr: false, name: "Right" },
65364: { shift: false, altgr: false, name: "Down" },
65365: { shift: false, altgr: false, name: "Page_Up" },
65366: { shift: false, altgr: false, name: "Page_Down" },
65367: { shift: false, altgr: false, name: "End" },
65377: { shift: false, altgr: false, name: "Print" },
65379: { shift: false, altgr: false, name: "Insert" },
65407: { shift: false, altgr: false, name: "Num_Lock" },
65421: { shift: false, altgr: false, name: "KP_Enter" },
65429: { shift: false, altgr: false, name: "KP_Home" },
65430: { shift: false, altgr: false, name: "KP_Left" },
65431: { shift: false, altgr: false, name: "KP_Up" },
65432: { shift: false, altgr: false, name: "KP_Right" },
65433: { shift: false, altgr: false, name: "KP_Down" },
65434: { shift: false, altgr: false, name: "KP_Prior" },
65435: { shift: false, altgr: false, name: "KP_Next" },
65436: { shift: false, altgr: false, name: "KP_End" },
65437: { shift: false, altgr: false, name: "KP_Begin" },
65438: { shift: false, altgr: false, name: "KP_Insert" },
65439: { shift: false, altgr: false, name: "KP_Delete" },
65450: { shift: false, altgr: false, name: "KP_Multiply" },
65451: { shift: false, altgr: false, name: "KP_Add" },
65452: { shift: false, altgr: false, name: "KP_Separator" },
65453: { shift: false, altgr: false, name: "KP_Subtract" },
65454: { shift: false, altgr: false, name: "KP_Decimal" },
65455: { shift: false, altgr: false, name: "KP_Divide" },
65456: { shift: false, altgr: false, name: "KP_0" },
65457: { shift: false, altgr: false, name: "KP_1" },
65458: { shift: false, altgr: false, name: "KP_2" },
65459: { shift: false, altgr: false, name: "KP_3" },
65460: { shift: false, altgr: false, name: "KP_4" },
65461: { shift: false, altgr: false, name: "KP_5" },
65462: { shift: false, altgr: false, name: "KP_6" },
65463: { shift: false, altgr: false, name: "KP_7" },
65464: { shift: false, altgr: false, name: "KP_8" },
65465: { shift: false, altgr: false, name: "KP_9" },
65470: { shift: false, altgr: false, name: "F1" },
65471: { shift: false, altgr: false, name: "F2" },
65472: { shift: false, altgr: false, name: "F3" },
65473: { shift: false, altgr: false, name: "F4" },
65474: { shift: false, altgr: false, name: "F5" },
65475: { shift: false, altgr: false, name: "F6" },
65476: { shift: false, altgr: false, name: "F7" },
65477: { shift: false, altgr: false, name: "F8" },
65478: { shift: false, altgr: false, name: "F9" },
65479: { shift: false, altgr: false, name: "F10" },
65480: { shift: false, altgr: false, name: "F11" },
65481: { shift: false, altgr: false, name: "F12" },
65509: { shift: false, altgr: false, name: "Caps_Lock" },
65535: { shift: false, altgr: false, name: "Delete" }
},
'fi': {
32: { shift: false, altgr: false, name: "space" },
33: { shift: true, altgr: false, name: "exclam" },
34: { shift: true, altgr: false, name: "quotedbl" },
35: { shift: true, altgr: false, name: "numbersign" },
36: { shift: false, altgr: true, name: "dollar" },
37: { shift: true, altgr: false, name: "percent" },
38: { shift: true, altgr: true, name: "ampersand" },
39: { shift: true, altgr: true, name: "apostrophe" },
40: { shift: true, altgr: false, name: "parenleft" },
41: { shift: true, altgr: false, name: "parenright" },
42: { shift: true, altgr: false, name: "asterisk" },
43: { shift: false, altgr: false, name: "plus" },
44: { shift: false, altgr: false, name: "comma" },
45: { shift: false, altgr: false, name: "minus" },
46: { shift: false, altgr: false, name: "period" },
47: { shift: true, altgr: false, name: "slash" },
48: { shift: false, altgr: false, name: "0" },
49: { shift: false, altgr: false, name: "1" },
50: { shift: false, altgr: false, name: "2" },
51: { shift: false, altgr: false, name: "3" },
52: { shift: false, altgr: false, name: "4" },
53: { shift: false, altgr: false, name: "5" },
54: { shift: false, altgr: false, name: "6" },
55: { shift: false, altgr: false, name: "7" },
56: { shift: false, altgr: false, name: "8" },
57: { shift: false, altgr: false, name: "9" },
58: { shift: true, altgr: false, name: "colon" },
59: { shift: true, altgr: false, name: "semicolon" },
60: { shift: true, altgr: true, name: "less" },
61: { shift: true, altgr: false, name: "equal" },
62: { shift: true, altgr: true, name: "greater" },
63: { shift: true, altgr: false, name: "question" },
64: { shift: false, altgr: true, name: "at" },
65: { shift: true, altgr: false, name: "A" },
66: { shift: true, altgr: false, name: "B" },
67: { shift: true, altgr: false, name: "C" },
68: { shift: true, altgr: false, name: "D" },
69: { shift: true, altgr: false, name: "E" },
70: { shift: true, altgr: false, name: "F" },
71: { shift: true, altgr: false, name: "G" },
72: { shift: true, altgr: false, name: "H" },
73: { shift: true, altgr: false, name: "I" },
74: { shift: true, altgr: false, name: "J" },
75: { shift: true, altgr: false, name: "K" },
76: { shift: true, altgr: false, name: "L" },
77: { shift: true, altgr: false, name: "M" },
78: { shift: true, altgr: false, name: "N" },
79: { shift: true, altgr: false, name: "O" },
80: { shift: true, altgr: false, name: "P" },
81: { shift: true, altgr: false, name: "Q" },
82: { shift: true, altgr: false, name: "R" },
83: { shift: true, altgr: false, name: "S" },
84: { shift: true, altgr: false, name: "T" },
85: { shift: true, altgr: false, name: "U" },
86: { shift: true, altgr: false, name: "V" },
87: { shift: true, altgr: false, name: "W" },
88: { shift: true, altgr: false, name: "X" },
89: { shift: true, altgr: false, name: "Y" },
90: { shift: true, altgr: false, name: "Z" },
91: { shift: false, altgr: true, name: "bracketleft" },
92: { shift: false, altgr: true, name: "backslash" },
93: { shift: false, altgr: true, name: "bracketright" },
95: { shift: true, altgr: false, name: "underscore" },
96: { shift: true, altgr: true, name: "grave" },
97: { shift: false, altgr: false, name: "a" },
98: { shift: false, altgr: false, name: "b" },
99: { shift: false, altgr: false, name: "c" },
100: { shift: false, altgr: false, name: "d" },
101: { shift: false, altgr: false, name: "e" },
102: { shift: false, altgr: false, name: "f" },
103: { shift: false, altgr: false, name: "g" },
104: { shift: false, altgr: false, name: "h" },
105: { shift: false, altgr: false, name: "i" },
106: { shift: false, altgr: false, name: "j" },
107: { shift: false, altgr: false, name: "k" },
108: { shift: false, altgr: false, name: "l" },
109: { shift: false, altgr: false, name: "m" },
110: { shift: false, altgr: false, name: "n" },
111: { shift: false, altgr: false, name: "o" },
112: { shift: false, altgr: false, name: "p" },
113: { shift: false, altgr: false, name: "q" },
114: { shift: false, altgr: false, name: "r" },
115: { shift: false, altgr: false, name: "s" },
116: { shift: false, altgr: false, name: "t" },
117: { shift: false, altgr: false, name: "u" },
118: { shift: false, altgr: false, name: "v" },
119: { shift: false, altgr: false, name: "w" },
120: { shift: false, altgr: false, name: "x" },
121: { shift: false, altgr: false, name: "y" },
122: { shift: false, altgr: false, name: "z" },
123: { shift: false, altgr: true, name: "braceleft" },
124: { shift: false, altgr: true, name: "bar" },
125: { shift: false, altgr: true, name: "braceright" },
160: { shift: false, altgr: true, name: "nobreakspace" },
161: { shift: false, altgr: true, name: "exclamdown" },
162: { shift: true, altgr: true, name: "cent" },
163: { shift: false, altgr: true, name: "sterling" },
164: { shift: true, altgr: false, name: "currency" },
165: { shift: true, altgr: true, name: "yen" },
166: { shift: true, altgr: true, name: "brokenbar" },
167: { shift: false, altgr: false, name: "section" },
169: { shift: false, altgr: true, name: "copyright" },
170: { shift: true, altgr: true, name: "ordfeminine" },
171: { shift: false, altgr: true, name: "guillemotleft" },
172: { shift: true, altgr: true, name: "notsign" },
173: { shift: false, altgr: true, name: "hyphen" },
174: { shift: false, altgr: true, name: "registered" },
175: { shift: true, altgr: true, name: "macron" },
176: { shift: true, altgr: true, name: "degree" },
177: { shift: false, altgr: true, name: "plusminus" },
178: { shift: true, altgr: true, name: "twosuperior" },
179: { shift: true, altgr: true, name: "threesuperior" },
180: { shift: false, altgr: true, name: "acute" },
181: { shift: false, altgr: true, name: "mu" },
182: { shift: false, altgr: true, name: "paragraph" },
183: { shift: false, altgr: true, name: "periodcentered" },
185: { shift: true, altgr: true, name: "onesuperior" },
186: { shift: true, altgr: true, name: "masculine" },
187: { shift: false, altgr: true, name: "guillemotright" },
188: { shift: true, altgr: true, name: "onequarter" },
189: { shift: true, altgr: false, name: "onehalf" },
190: { shift: true, altgr: true, name: "threequarters" },
191: { shift: true, altgr: true, name: "questiondown" },
196: { shift: true, altgr: false, name: "Adiaeresis" },
197: { shift: true, altgr: false, name: "Aring" },
198: { shift: true, altgr: true, name: "AE" },
208: { shift: true, altgr: true, name: "ETH" },
214: { shift: true, altgr: false, name: "Odiaeresis" },
215: { shift: true, altgr: true, name: "multiply" },
216: { shift: true, altgr: true, name: "Ooblique" },
222: { shift: true, altgr: true, name: "THORN" },
223: { shift: false, altgr: true, name: "ssharp" },
228: { shift: false, altgr: false, name: "adiaeresis" },
229: { shift: false, altgr: false, name: "aring" },
230: { shift: false, altgr: true, name: "ae" },
240: { shift: false, altgr: true, name: "eth" },
246: { shift: false, altgr: false, name: "odiaeresis" },
247: { shift: true, altgr: true, name: "division" },
248: { shift: false, altgr: true, name: "oslash" },
254: { shift: false, altgr: true, name: "thorn" },
419: { shift: true, altgr: true, name: "Lstroke" },
435: { shift: false, altgr: true, name: "lstroke" },
8364: { shift: false, altgr: true, name: "EuroSign" },
65104: { shift: true, altgr: false, name: "dead_grave" },
65105: { shift: false, altgr: false, name: "dead_acute" },
65106: { shift: true, altgr: false, name: "dead_circumflex" },
65107: { shift: false, altgr: true, name: "dead_tilde" },
65110: { shift: true, altgr: true, name: "dead_abovedot" },
65111: { shift: false, altgr: false, name: "dead_diaeresis" },
65112: { shift: true, altgr: true, name: "dead_abovering" },
65114: { shift: true, altgr: true, name: "dead_caron" },
65115: { shift: false, altgr: true, name: "dead_cedilla" },
65116: { shift: true, altgr: true, name: "dead_ogonek" },
65288: { shift: false, altgr: false, name: "BackSpace" },
65289: { shift: false, altgr: false, name: "Tab" },
65293: { shift: false, altgr: false, name: "Return" },
65300: { shift: false, altgr: false, name: "Scroll_Lock" },
65301: { shift: false, altgr: false, name: "Sys_Req" },
65307: { shift: false, altgr: false, name: "Escape" },
65360: { shift: false, altgr: false, name: "Home" },
65361: { shift: false, altgr: false, name: "Left" },
65362: { shift: false, altgr: false, name: "Up" },
65363: { shift: false, altgr: false, name: "Right" },
65364: { shift: false, altgr: false, name: "Down" },
65365: { shift: false, altgr: false, name: "Page_Up" },
65366: { shift: false, altgr: false, name: "Page_Down" },
65367: { shift: false, altgr: false, name: "End" },
65377: { shift: false, altgr: false, name: "Print" },
65379: { shift: false, altgr: false, name: "Insert" },
65407: { shift: false, altgr: false, name: "Num_Lock" },
65421: { shift: false, altgr: false, name: "KP_Enter" },
65429: { shift: false, altgr: false, name: "KP_Home" },
65430: { shift: false, altgr: false, name: "KP_Left" },
65431: { shift: false, altgr: false, name: "KP_Up" },
65432: { shift: false, altgr: false, name: "KP_Right" },
65433: { shift: false, altgr: false, name: "KP_Down" },
65434: { shift: false, altgr: false, name: "KP_Prior" },
65435: { shift: false, altgr: false, name: "KP_Next" },
65436: { shift: false, altgr: false, name: "KP_End" },
65437: { shift: false, altgr: false, name: "KP_Begin" },
65438: { shift: false, altgr: false, name: "KP_Insert" },
65439: { shift: false, altgr: false, name: "KP_Delete" },
65450: { shift: false, altgr: false, name: "KP_Multiply" },
65451: { shift: false, altgr: false, name: "KP_Add" },
65452: { shift: false, altgr: false, name: "KP_Separator" },
65453: { shift: false, altgr: false, name: "KP_Subtract" },
65454: { shift: false, altgr: false, name: "KP_Decimal" },
65455: { shift: false, altgr: false, name: "KP_Divide" },
65456: { shift: false, altgr: false, name: "KP_0" },
65457: { shift: false, altgr: false, name: "KP_1" },
65458: { shift: false, altgr: false, name: "KP_2" },
65459: { shift: false, altgr: false, name: "KP_3" },
65460: { shift: false, altgr: false, name: "KP_4" },
65461: { shift: false, altgr: false, name: "KP_5" },
65462: { shift: false, altgr: false, name: "KP_6" },
65463: { shift: false, altgr: false, name: "KP_7" },
65464: { shift: false, altgr: false, name: "KP_8" },
65465: { shift: false, altgr: false, name: "KP_9" },
65470: { shift: false, altgr: false, name: "F1" },
65471: { shift: false, altgr: false, name: "F2" },
65472: { shift: false, altgr: false, name: "F3" },
65473: { shift: false, altgr: false, name: "F4" },
65474: { shift: false, altgr: false, name: "F5" },
65475: { shift: false, altgr: false, name: "F6" },
65476: { shift: false, altgr: false, name: "F7" },
65477: { shift: false, altgr: false, name: "F8" },
65478: { shift: false, altgr: false, name: "F9" },
65479: { shift: false, altgr: false, name: "F10" },
65480: { shift: false, altgr: false, name: "F11" },
65481: { shift: false, altgr: false, name: "F12" },
65509: { shift: false, altgr: false, name: "Caps_Lock" },
65535: { shift: false, altgr: false, name: "Delete" }
},
'fo': {
32: { shift: false, altgr: false, name: "space" },
33: { shift: true, altgr: false, name: "exclam" },
34: { shift: true, altgr: false, name: "quotedbl" },
35: { shift: true, altgr: false, name: "numbersign" },
36: { shift: false, altgr: true, name: "dollar" },
37: { shift: true, altgr: false, name: "percent" },
38: { shift: true, altgr: false, name: "ampersand" },
39: { shift: false, altgr: false, name: "apostrophe" },
40: { shift: true, altgr: false, name: "parenleft" },
41: { shift: true, altgr: false, name: "parenright" },
42: { shift: true, altgr: false, name: "asterisk" },
43: { shift: false, altgr: false, name: "plus" },
44: { shift: false, altgr: false, name: "comma" },
45: { shift: false, altgr: false, name: "minus" },
46: { shift: false, altgr: false, name: "period" },
47: { shift: true, altgr: false, name: "slash" },
48: { shift: false, altgr: false, name: "0" },
49: { shift: false, altgr: false, name: "1" },
50: { shift: false, altgr: false, name: "2" },
51: { shift: false, altgr: false, name: "3" },
52: { shift: false, altgr: false, name: "4" },
53: { shift: false, altgr: false, name: "5" },
54: { shift: false, altgr: false, name: "6" },
55: { shift: false, altgr: false, name: "7" },
56: { shift: false, altgr: false, name: "8" },
57: { shift: false, altgr: false, name: "9" },
58: { shift: true, altgr: false, name: "colon" },
59: { shift: true, altgr: false, name: "semicolon" },
60: { shift: false, altgr: false, name: "less" },
61: { shift: true, altgr: false, name: "equal" },
62: { shift: true, altgr: false, name: "greater" },
63: { shift: true, altgr: false, name: "question" },
64: { shift: false, altgr: true, name: "at" },
65: { shift: true, altgr: false, name: "A" },
66: { shift: true, altgr: false, name: "B" },
67: { shift: true, altgr: false, name: "C" },
68: { shift: true, altgr: false, name: "D" },
69: { shift: true, altgr: false, name: "E" },
70: { shift: true, altgr: false, name: "F" },
71: { shift: true, altgr: false, name: "G" },
72: { shift: true, altgr: false, name: "H" },
73: { shift: true, altgr: false, name: "I" },
74: { shift: true, altgr: false, name: "J" },
75: { shift: true, altgr: false, name: "K" },
76: { shift: true, altgr: false, name: "L" },
77: { shift: true, altgr: false, name: "M" },
78: { shift: true, altgr: false, name: "N" },
79: { shift: true, altgr: false, name: "O" },
80: { shift: true, altgr: false, name: "P" },
81: { shift: true, altgr: false, name: "Q" },
82: { shift: true, altgr: false, name: "R" },
83: { shift: true, altgr: false, name: "S" },
84: { shift: true, altgr: false, name: "T" },
85: { shift: true, altgr: false, name: "U" },
86: { shift: true, altgr: false, name: "V" },
87: { shift: true, altgr: false, name: "W" },
88: { shift: true, altgr: false, name: "X" },
89: { shift: true, altgr: false, name: "Y" },
90: { shift: true, altgr: false, name: "Z" },
91: { shift: false, altgr: true, name: "bracketleft" },
92: { shift: false, altgr: true, name: "backslash" },
93: { shift: false, altgr: true, name: "bracketright" },
95: { shift: true, altgr: false, name: "underscore" },
97: { shift: false, altgr: false, name: "a" },
98: { shift: false, altgr: false, name: "b" },
99: { shift: false, altgr: false, name: "c" },
100: { shift: false, altgr: false, name: "d" },
101: { shift: false, altgr: false, name: "e" },
102: { shift: false, altgr: false, name: "f" },
103: { shift: false, altgr: false, name: "g" },
104: { shift: false, altgr: false, name: "h" },
105: { shift: false, altgr: false, name: "i" },
106: { shift: false, altgr: false, name: "j" },
107: { shift: false, altgr: false, name: "k" },
108: { shift: false, altgr: false, name: "l" },
109: { shift: false, altgr: false, name: "m" },
110: { shift: false, altgr: false, name: "n" },
111: { shift: false, altgr: false, name: "o" },
112: { shift: false, altgr: false, name: "p" },
113: { shift: false, altgr: false, name: "q" },
114: { shift: false, altgr: false, name: "r" },
115: { shift: false, altgr: false, name: "s" },
116: { shift: false, altgr: false, name: "t" },
117: { shift: false, altgr: false, name: "u" },
118: { shift: false, altgr: false, name: "v" },
119: { shift: false, altgr: false, name: "w" },
120: { shift: false, altgr: false, name: "x" },
121: { shift: false, altgr: false, name: "y" },
122: { shift: false, altgr: false, name: "z" },
123: { shift: false, altgr: true, name: "braceleft" },
124: { shift: false, altgr: true, name: "bar" },
125: { shift: false, altgr: true, name: "braceright" },
126: { shift: false, altgr: true, name: "asciitilde" },
163: { shift: false, altgr: true, name: "sterling" },
164: { shift: true, altgr: false, name: "currency" },
166: { shift: true, altgr: true, name: "brokenbar" },
167: { shift: true, altgr: false, name: "section" },
177: { shift: false, altgr: true, name: "plusminus" },
189: { shift: false, altgr: false, name: "onehalf" },
197: { shift: true, altgr: false, name: "Aring" },
198: { shift: true, altgr: false, name: "AE" },
208: { shift: true, altgr: false, name: "ETH" },
216: { shift: true, altgr: false, name: "Ooblique" },
229: { shift: false, altgr: false, name: "aring" },
230: { shift: false, altgr: false, name: "ae" },
240: { shift: false, altgr: false, name: "eth" },
248: { shift: false, altgr: false, name: "oslash" },
8364: { shift: false, altgr: true, name: "EuroSign" },
65105: { shift: false, altgr: false, name: "dead_acute" },
65288: { shift: false, altgr: false, name: "BackSpace" },
65289: { shift: false, altgr: false, name: "Tab" },
65293: { shift: false, altgr: false, name: "Return" },
65300: { shift: false, altgr: false, name: "Scroll_Lock" },
65301: { shift: false, altgr: false, name: "Sys_Req" },
65307: { shift: false, altgr: false, name: "Escape" },
65360: { shift: false, altgr: false, name: "Home" },
65361: { shift: false, altgr: false, name: "Left" },
65362: { shift: false, altgr: false, name: "Up" },
65363: { shift: false, altgr: false, name: "Right" },
65364: { shift: false, altgr: false, name: "Down" },
65365: { shift: false, altgr: false, name: "Page_Up" },
65366: { shift: false, altgr: false, name: "Page_Down" },
65367: { shift: false, altgr: false, name: "End" },
65377: { shift: false, altgr: false, name: "Print" },
65379: { shift: false, altgr: false, name: "Insert" },
65407: { shift: false, altgr: false, name: "Num_Lock" },
65421: { shift: false, altgr: false, name: "KP_Enter" },
65429: { shift: false, altgr: false, name: "KP_Home" },
65430: { shift: false, altgr: false, name: "KP_Left" },
65431: { shift: false, altgr: false, name: "KP_Up" },
65432: { shift: false, altgr: false, name: "KP_Right" },
65433: { shift: false, altgr: false, name: "KP_Down" },
65434: { shift: false, altgr: false, name: "KP_Prior" },
65435: { shift: false, altgr: false, name: "KP_Next" },
65436: { shift: false, altgr: false, name: "KP_End" },
65437: { shift: false, altgr: false, name: "KP_Begin" },
65438: { shift: false, altgr: false, name: "KP_Insert" },
65439: { shift: false, altgr: false, name: "KP_Delete" },
65450: { shift: false, altgr: false, name: "KP_Multiply" },
65451: { shift: false, altgr: false, name: "KP_Add" },
65452: { shift: false, altgr: false, name: "KP_Separator" },
65453: { shift: false, altgr: false, name: "KP_Subtract" },
65454: { shift: false, altgr: false, name: "KP_Decimal" },
65455: { shift: false, altgr: false, name: "KP_Divide" },
65456: { shift: false, altgr: false, name: "KP_0" },
65457: { shift: false, altgr: false, name: "KP_1" },
65458: { shift: false, altgr: false, name: "KP_2" },
65459: { shift: false, altgr: false, name: "KP_3" },
65460: { shift: false, altgr: false, name: "KP_4" },
65461: { shift: false, altgr: false, name: "KP_5" },
65462: { shift: false, altgr: false, name: "KP_6" },
65463: { shift: false, altgr: false, name: "KP_7" },
65464: { shift: false, altgr: false, name: "KP_8" },
65465: { shift: false, altgr: false, name: "KP_9" },
65470: { shift: false, altgr: false, name: "F1" },
65471: { shift: false, altgr: false, name: "F2" },
65472: { shift: false, altgr: false, name: "F3" },
65473: { shift: false, altgr: false, name: "F4" },
65474: { shift: false, altgr: false, name: "F5" },
65475: { shift: false, altgr: false, name: "F6" },
65476: { shift: false, altgr: false, name: "F7" },
65477: { shift: false, altgr: false, name: "F8" },
65478: { shift: false, altgr: false, name: "F9" },
65479: { shift: false, altgr: false, name: "F10" },
65480: { shift: false, altgr: false, name: "F11" },
65481: { shift: false, altgr: false, name: "F12" },
65509: { shift: false, altgr: false, name: "Caps_Lock" },
65535: { shift: false, altgr: false, name: "Delete" }
},
'fr': {
32: { shift: false, altgr: false, name: "space" },
33: { shift: false, altgr: false, name: "exclam" },
34: { shift: false, altgr: false, name: "quotedbl" },
35: { shift: false, altgr: true, name: "numbersign" },
36: { shift: false, altgr: false, name: "dollar" },
37: { shift: true, altgr: false, name: "percent" },
38: { shift: false, altgr: false, name: "ampersand" },
39: { shift: false, altgr: false, name: "apostrophe" },
40: { shift: false, altgr: false, name: "parenleft" },
41: { shift: false, altgr: false, name: "parenright" },
42: { shift: false, altgr: false, name: "asterisk" },
43: { shift: true, altgr: false, name: "plus" },
44: { shift: false, altgr: false, name: "comma" },
45: { shift: false, altgr: false, name: "minus" },
46: { shift: true, altgr: false, name: "period" },
47: { shift: true, altgr: false, name: "slash" },
48: { shift: true, altgr: false, name: "0" },
49: { shift: true, altgr: false, name: "1" },
50: { shift: true, altgr: false, name: "2" },
51: { shift: true, altgr: false, name: "3" },
52: { shift: true, altgr: false, name: "4" },
53: { shift: true, altgr: false, name: "5" },
54: { shift: true, altgr: false, name: "6" },
55: { shift: true, altgr: false, name: "7" },
56: { shift: true, altgr: false, name: "8" },
57: { shift: true, altgr: false, name: "9" },
58: { shift: false, altgr: false, name: "colon" },
59: { shift: false, altgr: false, name: "semicolon" },
60: { shift: false, altgr: false, name: "less" },
61: { shift: false, altgr: false, name: "equal" },
62: { shift: true, altgr: false, name: "greater" },
63: { shift: true, altgr: false, name: "question" },
64: { shift: false, altgr: true, name: "at" },
65: { shift: true, altgr: false, name: "A" },
66: { shift: true, altgr: false, name: "B" },
67: { shift: true, altgr: false, name: "C" },
68: { shift: true, altgr: false, name: "D" },
69: { shift: true, altgr: false, name: "E" },
70: { shift: true, altgr: false, name: "F" },
71: { shift: true, altgr: false, name: "G" },
72: { shift: true, altgr: false, name: "H" },
73: { shift: true, altgr: false, name: "I" },
74: { shift: true, altgr: false, name: "J" },
75: { shift: true, altgr: false, name: "K" },
76: { shift: true, altgr: false, name: "L" },
77: { shift: true, altgr: false, name: "M" },
78: { shift: true, altgr: false, name: "N" },
79: { shift: true, altgr: false, name: "O" },
80: { shift: true, altgr: false, name: "P" },
81: { shift: true, altgr: false, name: "Q" },
82: { shift: true, altgr: false, name: "R" },
83: { shift: true, altgr: false, name: "S" },
84: { shift: true, altgr: false, name: "T" },
85: { shift: true, altgr: false, name: "U" },
86: { shift: true, altgr: false, name: "V" },
87: { shift: true, altgr: false, name: "W" },
88: { shift: true, altgr: false, name: "X" },
89: { shift: true, altgr: false, name: "Y" },
90: { shift: true, altgr: false, name: "Z" },
91: { shift: false, altgr: true, name: "bracketleft" },
92: { shift: false, altgr: true, name: "backslash" },
93: { shift: false, altgr: true, name: "bracketright" },
94: { shift: false, altgr: true, name: "asciicircum" },
95: { shift: false, altgr: false, name: "underscore" },
96: { shift: false, altgr: true, name: "grave" },
97: { shift: false, altgr: false, name: "a" },
98: { shift: false, altgr: false, name: "b" },
99: { shift: false, altgr: false, name: "c" },
100: { shift: false, altgr: false, name: "d" },
101: { shift: false, altgr: false, name: "e" },
102: { shift: false, altgr: false, name: "f" },
103: { shift: false, altgr: false, name: "g" },
104: { shift: false, altgr: false, name: "h" },
105: { shift: false, altgr: false, name: "i" },
106: { shift: false, altgr: false, name: "j" },
107: { shift: false, altgr: false, name: "k" },
108: { shift: false, altgr: false, name: "l" },
109: { shift: false, altgr: false, name: "m" },
110: { shift: false, altgr: false, name: "n" },
111: { shift: false, altgr: false, name: "o" },
112: { shift: false, altgr: false, name: "p" },
113: { shift: false, altgr: false, name: "q" },
114: { shift: false, altgr: false, name: "r" },
115: { shift: false, altgr: false, name: "s" },
116: { shift: false, altgr: false, name: "t" },
117: { shift: false, altgr: false, name: "u" },
118: { shift: false, altgr: false, name: "v" },
119: { shift: false, altgr: false, name: "w" },
120: { shift: false, altgr: false, name: "x" },
121: { shift: false, altgr: false, name: "y" },
122: { shift: false, altgr: false, name: "z" },
123: { shift: false, altgr: true, name: "braceleft" },
124: { shift: false, altgr: true, name: "bar" },
125: { shift: false, altgr: true, name: "braceright" },
126: { shift: false, altgr: true, name: "asciitilde" },
161: { shift: true, altgr: true, name: "exclamdown" },
162: { shift: false, altgr: true, name: "cent" },
163: { shift: true, altgr: false, name: "sterling" },
164: { shift: false, altgr: true, name: "currency" },
165: { shift: true, altgr: true, name: "yen" },
166: { shift: true, altgr: true, name: "brokenbar" },
167: { shift: true, altgr: false, name: "section" },
169: { shift: true, altgr: true, name: "copyright" },
170: { shift: true, altgr: true, name: "ordfeminine" },
171: { shift: false, altgr: true, name: "guillemotleft" },
172: { shift: false, altgr: true, name: "notsign" },
174: { shift: true, altgr: true, name: "registered" },
176: { shift: true, altgr: false, name: "degree" },
177: { shift: true, altgr: true, name: "plusminus" },
178: { shift: false, altgr: false, name: "twosuperior" },
181: { shift: true, altgr: false, name: "mu" },
182: { shift: false, altgr: true, name: "paragraph" },
183: { shift: false, altgr: true, name: "periodcentered" },
185: { shift: false, altgr: true, name: "onesuperior" },
186: { shift: true, altgr: true, name: "masculine" },
187: { shift: false, altgr: true, name: "guillemotright" },
191: { shift: true, altgr: true, name: "questiondown" },
198: { shift: true, altgr: true, name: "AE" },
208: { shift: true, altgr: true, name: "ETH" },
215: { shift: true, altgr: true, name: "multiply" },
216: { shift: true, altgr: true, name: "Ooblique" },
222: { shift: true, altgr: true, name: "THORN" },
223: { shift: false, altgr: true, name: "ssharp" },
224: { shift: false, altgr: false, name: "agrave" },
230: { shift: false, altgr: true, name: "ae" },
231: { shift: false, altgr: false, name: "ccedilla" },
232: { shift: false, altgr: false, name: "egrave" },
233: { shift: false, altgr: false, name: "eacute" },
240: { shift: false, altgr: true, name: "eth" },
247: { shift: true, altgr: true, name: "division" },
248: { shift: false, altgr: true, name: "oslash" },
249: { shift: false, altgr: false, name: "ugrave" },
254: { shift: false, altgr: true, name: "thorn" },
419: { shift: true, altgr: true, name: "Lstroke" },
435: { shift: false, altgr: true, name: "lstroke" },
8364: { shift: false, altgr: true, name: "EuroSign" },
65104: { shift: false, altgr: true, name: "dead_grave" },
65105: { shift: false, altgr: true, name: "dead_acute" },
65106: { shift: false, altgr: false, name: "dead_circumflex" },
65108: { shift: true, altgr: true, name: "dead_macron" },
65109: { shift: true, altgr: true, name: "dead_breve" },
65110: { shift: true, altgr: true, name: "dead_abovedot" },
65111: { shift: true, altgr: false, name: "dead_diaeresis" },
65112: { shift: true, altgr: true, name: "dead_abovering" },
65113: { shift: true, altgr: true, name: "dead_doubleacute" },
65114: { shift: true, altgr: true, name: "dead_caron" },
65116: { shift: true, altgr: true, name: "dead_ogonek" },
65120: { shift: false, altgr: true, name: "dead_belowdot" },
65288: { shift: false, altgr: false, name: "BackSpace" },
65289: { shift: false, altgr: false, name: "Tab" },
65293: { shift: false, altgr: false, name: "Return" },
65300: { shift: false, altgr: false, name: "Scroll_Lock" },
65301: { shift: false, altgr: false, name: "Sys_Req" },
65307: { shift: false, altgr: false, name: "Escape" },
65360: { shift: false, altgr: false, name: "Home" },
65361: { shift: false, altgr: false, name: "Left" },
65362: { shift: false, altgr: false, name: "Up" },
65363: { shift: false, altgr: false, name: "Right" },
65364: { shift: false, altgr: false, name: "Down" },
65365: { shift: false, altgr: false, name: "Page_Up" },
65366: { shift: false, altgr: false, name: "Page_Down" },
65367: { shift: false, altgr: false, name: "End" },
65377: { shift: false, altgr: false, name: "Print" },
65379: { shift: false, altgr: false, name: "Insert" },
65407: { shift: false, altgr: false, name: "Num_Lock" },
65421: { shift: false, altgr: false, name: "KP_Enter" },
65429: { shift: false, altgr: false, name: "KP_Home" },
65430: { shift: false, altgr: false, name: "KP_Left" },
65431: { shift: false, altgr: false, name: "KP_Up" },
65432: { shift: false, altgr: false, name: "KP_Right" },
65433: { shift: false, altgr: false, name: "KP_Down" },
65434: { shift: false, altgr: false, name: "KP_Prior" },
65435: { shift: false, altgr: false, name: "KP_Next" },
65436: { shift: false, altgr: false, name: "KP_End" },
65437: { shift: false, altgr: false, name: "KP_Begin" },
65438: { shift: false, altgr: false, name: "KP_Insert" },
65439: { shift: false, altgr: false, name: "KP_Delete" },
65450: { shift: false, altgr: false, name: "KP_Multiply" },
65451: { shift: false, altgr: false, name: "KP_Add" },
65452: { shift: false, altgr: false, name: "KP_Separator" },
65453: { shift: false, altgr: false, name: "KP_Subtract" },
65454: { shift: false, altgr: false, name: "KP_Decimal" },
65455: { shift: false, altgr: false, name: "KP_Divide" },
65456: { shift: false, altgr: false, name: "KP_0" },
65457: { shift: false, altgr: false, name: "KP_1" },
65458: { shift: false, altgr: false, name: "KP_2" },
65459: { shift: false, altgr: false, name: "KP_3" },
65460: { shift: false, altgr: false, name: "KP_4" },
65461: { shift: false, altgr: false, name: "KP_5" },
65462: { shift: false, altgr: false, name: "KP_6" },
65463: { shift: false, altgr: false, name: "KP_7" },
65464: { shift: false, altgr: false, name: "KP_8" },
65465: { shift: false, altgr: false, name: "KP_9" },
65470: { shift: false, altgr: false, name: "F1" },
65471: { shift: false, altgr: false, name: "F2" },
65472: { shift: false, altgr: false, name: "F3" },
65473: { shift: false, altgr: false, name: "F4" },
65474: { shift: false, altgr: false, name: "F5" },
65475: { shift: false, altgr: false, name: "F6" },
65476: { shift: false, altgr: false, name: "F7" },
65477: { shift: false, altgr: false, name: "F8" },
65478: { shift: false, altgr: false, name: "F9" },
65479: { shift: false, altgr: false, name: "F10" },
65480: { shift: false, altgr: false, name: "F11" },
65481: { shift: false, altgr: false, name: "F12" },
65509: { shift: false, altgr: false, name: "Caps_Lock" },
65535: { shift: false, altgr: false, name: "Delete" }
},
'fr-be': {
32: { shift: false, altgr: false, name: "space" },
33: { shift: false, altgr: false, name: "exclam" },
34: { shift: false, altgr: false, name: "quotedbl" },
35: { shift: false, altgr: true, name: "numbersign" },
36: { shift: false, altgr: false, name: "dollar" },
37: { shift: true, altgr: false, name: "percent" },
38: { shift: false, altgr: false, name: "ampersand" },
39: { shift: false, altgr: false, name: "apostrophe" },
40: { shift: false, altgr: false, name: "parenleft" },
41: { shift: false, altgr: false, name: "parenright" },
42: { shift: true, altgr: false, name: "asterisk" },
43: { shift: true, altgr: false, name: "plus" },
44: { shift: false, altgr: false, name: "comma" },
45: { shift: false, altgr: false, name: "minus" },
46: { shift: true, altgr: false, name: "period" },
47: { shift: true, altgr: false, name: "slash" },
48: { shift: true, altgr: false, name: "0" },
49: { shift: true, altgr: false, name: "1" },
50: { shift: true, altgr: false, name: "2" },
51: { shift: true, altgr: false, name: "3" },
52: { shift: true, altgr: false, name: "4" },
53: { shift: true, altgr: false, name: "5" },
54: { shift: true, altgr: false, name: "6" },
55: { shift: true, altgr: false, name: "7" },
56: { shift: true, altgr: false, name: "8" },
57: { shift: true, altgr: false, name: "9" },
58: { shift: false, altgr: false, name: "colon" },
59: { shift: false, altgr: false, name: "semicolon" },
60: { shift: false, altgr: false, name: "less" },
61: { shift: false, altgr: false, name: "equal" },
62: { shift: true, altgr: false, name: "greater" },
63: { shift: true, altgr: false, name: "question" },
64: { shift: false, altgr: true, name: "at" },
65: { shift: true, altgr: false, name: "A" },
66: { shift: true, altgr: false, name: "B" },
67: { shift: true, altgr: false, name: "C" },
68: { shift: true, altgr: false, name: "D" },
69: { shift: true, altgr: false, name: "E" },
70: { shift: true, altgr: false, name: "F" },
71: { shift: true, altgr: false, name: "G" },
72: { shift: true, altgr: false, name: "H" },
73: { shift: true, altgr: false, name: "I" },
74: { shift: true, altgr: false, name: "J" },
75: { shift: true, altgr: false, name: "K" },
76: { shift: true, altgr: false, name: "L" },
77: { shift: true, altgr: false, name: "M" },
78: { shift: true, altgr: false, name: "N" },
79: { shift: true, altgr: false, name: "O" },
80: { shift: true, altgr: false, name: "P" },
81: { shift: true, altgr: false, name: "Q" },
82: { shift: true, altgr: false, name: "R" },
83: { shift: true, altgr: false, name: "S" },
84: { shift: true, altgr: false, name: "T" },
85: { shift: true, altgr: false, name: "U" },
86: { shift: true, altgr: false, name: "V" },
87: { shift: true, altgr: false, name: "W" },
88: { shift: true, altgr: false, name: "X" },
89: { shift: true, altgr: false, name: "Y" },
90: { shift: true, altgr: false, name: "Z" },
91: { shift: false, altgr: true, name: "bracketleft" },
92: { shift: false, altgr: true, name: "backslash" },
93: { shift: false, altgr: true, name: "bracketright" },
94: { shift: false, altgr: true, name: "asciicircum" },
95: { shift: true, altgr: false, name: "underscore" },
96: { shift: true, altgr: true, name: "grave" },
97: { shift: false, altgr: false, name: "a" },
98: { shift: false, altgr: false, name: "b" },
99: { shift: false, altgr: false, name: "c" },
100: { shift: false, altgr: false, name: "d" },
101: { shift: false, altgr: false, name: "e" },
102: { shift: false, altgr: false, name: "f" },
103: { shift: false, altgr: false, name: "g" },
104: { shift: false, altgr: false, name: "h" },
105: { shift: false, altgr: false, name: "i" },
106: { shift: false, altgr: false, name: "j" },
107: { shift: false, altgr: false, name: "k" },
108: { shift: false, altgr: false, name: "l" },
109: { shift: false, altgr: false, name: "m" },
110: { shift: false, altgr: false, name: "n" },
111: { shift: false, altgr: false, name: "o" },
112: { shift: false, altgr: false, name: "p" },
113: { shift: false, altgr: false, name: "q" },
114: { shift: false, altgr: false, name: "r" },
115: { shift: false, altgr: false, name: "s" },
116: { shift: false, altgr: false, name: "t" },
117: { shift: false, altgr: false, name: "u" },
118: { shift: false, altgr: false, name: "v" },
119: { shift: false, altgr: false, name: "w" },
120: { shift: false, altgr: false, name: "x" },
121: { shift: false, altgr: false, name: "y" },
122: { shift: false, altgr: false, name: "z" },
123: { shift: false, altgr: true, name: "braceleft" },
124: { shift: false, altgr: true, name: "bar" },
125: { shift: false, altgr: true, name: "braceright" },
161: { shift: true, altgr: true, name: "exclamdown" },
162: { shift: false, altgr: true, name: "cent" },
163: { shift: true, altgr: false, name: "sterling" },
165: { shift: true, altgr: true, name: "yen" },
166: { shift: true, altgr: true, name: "brokenbar" },
167: { shift: false, altgr: false, name: "section" },
169: { shift: true, altgr: true, name: "copyright" },
170: { shift: true, altgr: true, name: "ordfeminine" },
171: { shift: false, altgr: true, name: "guillemotleft" },
172: { shift: false, altgr: true, name: "notsign" },
174: { shift: true, altgr: true, name: "registered" },
176: { shift: true, altgr: false, name: "degree" },
177: { shift: true, altgr: true, name: "plusminus" },
178: { shift: false, altgr: false, name: "twosuperior" },
179: { shift: true, altgr: false, name: "threesuperior" },
181: { shift: false, altgr: false, name: "mu" },
182: { shift: false, altgr: true, name: "paragraph" },
183: { shift: false, altgr: true, name: "periodcentered" },
186: { shift: true, altgr: true, name: "masculine" },
187: { shift: false, altgr: true, name: "guillemotright" },
188: { shift: false, altgr: true, name: "onequarter" },
189: { shift: false, altgr: true, name: "onehalf" },
191: { shift: true, altgr: true, name: "questiondown" },
198: { shift: true, altgr: true, name: "AE" },
208: { shift: true, altgr: true, name: "ETH" },
215: { shift: true, altgr: true, name: "multiply" },
216: { shift: true, altgr: true, name: "Ooblique" },
222: { shift: true, altgr: true, name: "THORN" },
223: { shift: false, altgr: true, name: "ssharp" },
224: { shift: false, altgr: false, name: "agrave" },
230: { shift: false, altgr: true, name: "ae" },
231: { shift: false, altgr: false, name: "ccedilla" },
232: { shift: false, altgr: false, name: "egrave" },
233: { shift: false, altgr: false, name: "eacute" },
240: { shift: false, altgr: true, name: "eth" },
247: { shift: true, altgr: true, name: "division" },
248: { shift: false, altgr: true, name: "oslash" },
249: { shift: false, altgr: false, name: "ugrave" },
254: { shift: false, altgr: true, name: "thorn" },
419: { shift: true, altgr: true, name: "Lstroke" },
435: { shift: false, altgr: true, name: "lstroke" },
8364: { shift: false, altgr: true, name: "EuroSign" },
65104: { shift: false, altgr: true, name: "dead_grave" },
65105: { shift: false, altgr: true, name: "dead_acute" },
65106: { shift: false, altgr: false, name: "dead_circumflex" },
65107: { shift: false, altgr: true, name: "dead_tilde" },
65108: { shift: true, altgr: true, name: "dead_macron" },
65109: { shift: true, altgr: true, name: "dead_breve" },
65110: { shift: true, altgr: true, name: "dead_abovedot" },
65111: { shift: true, altgr: false, name: "dead_diaeresis" },
65112: { shift: true, altgr: true, name: "dead_abovering" },
65113: { shift: true, altgr: true, name: "dead_doubleacute" },
65114: { shift: true, altgr: true, name: "dead_caron" },
65115: { shift: false, altgr: true, name: "dead_cedilla" },
65116: { shift: true, altgr: true, name: "dead_ogonek" },
65288: { shift: false, altgr: false, name: "BackSpace" },
65289: { shift: false, altgr: false, name: "Tab" },
65293: { shift: false, altgr: false, name: "Return" },
65300: { shift: false, altgr: false, name: "Scroll_Lock" },
65301: { shift: false, altgr: false, name: "Sys_Req" },
65307: { shift: false, altgr: false, name: "Escape" },
65360: { shift: false, altgr: false, name: "Home" },
65361: { shift: false, altgr: false, name: "Left" },
65362: { shift: false, altgr: false, name: "Up" },
65363: { shift: false, altgr: false, name: "Right" },
65364: { shift: false, altgr: false, name: "Down" },
65365: { shift: false, altgr: false, name: "Page_Up" },
65366: { shift: false, altgr: false, name: "Page_Down" },
65367: { shift: false, altgr: false, name: "End" },
65377: { shift: false, altgr: false, name: "Print" },
65379: { shift: false, altgr: false, name: "Insert" },
65407: { shift: false, altgr: false, name: "Num_Lock" },
65421: { shift: false, altgr: false, name: "KP_Enter" },
65429: { shift: false, altgr: false, name: "KP_Home" },
65430: { shift: false, altgr: false, name: "KP_Left" },
65431: { shift: false, altgr: false, name: "KP_Up" },
65432: { shift: false, altgr: false, name: "KP_Right" },
65433: { shift: false, altgr: false, name: "KP_Down" },
65434: { shift: false, altgr: false, name: "KP_Prior" },
65435: { shift: false, altgr: false, name: "KP_Next" },
65436: { shift: false, altgr: false, name: "KP_End" },
65437: { shift: false, altgr: false, name: "KP_Begin" },
65438: { shift: false, altgr: false, name: "KP_Insert" },
65439: { shift: false, altgr: false, name: "KP_Delete" },
65450: { shift: false, altgr: false, name: "KP_Multiply" },
65451: { shift: false, altgr: false, name: "KP_Add" },
65452: { shift: false, altgr: false, name: "KP_Separator" },
65453: { shift: false, altgr: false, name: "KP_Subtract" },
65454: { shift: false, altgr: false, name: "KP_Decimal" },
65455: { shift: false, altgr: false, name: "KP_Divide" },
65456: { shift: false, altgr: false, name: "KP_0" },
65457: { shift: false, altgr: false, name: "KP_1" },
65458: { shift: false, altgr: false, name: "KP_2" },
65459: { shift: false, altgr: false, name: "KP_3" },
65460: { shift: false, altgr: false, name: "KP_4" },
65461: { shift: false, altgr: false, name: "KP_5" },
65462: { shift: false, altgr: false, name: "KP_6" },
65463: { shift: false, altgr: false, name: "KP_7" },
65464: { shift: false, altgr: false, name: "KP_8" },
65465: { shift: false, altgr: false, name: "KP_9" },
65470: { shift: false, altgr: false, name: "F1" },
65471: { shift: false, altgr: false, name: "F2" },
65472: { shift: false, altgr: false, name: "F3" },
65473: { shift: false, altgr: false, name: "F4" },
65474: { shift: false, altgr: false, name: "F5" },
65475: { shift: false, altgr: false, name: "F6" },
65476: { shift: false, altgr: false, name: "F7" },
65477: { shift: false, altgr: false, name: "F8" },
65478: { shift: false, altgr: false, name: "F9" },
65479: { shift: false, altgr: false, name: "F10" },
65480: { shift: false, altgr: false, name: "F11" },
65481: { shift: false, altgr: false, name: "F12" },
65509: { shift: false, altgr: false, name: "Caps_Lock" },
65535: { shift: false, altgr: false, name: "Delete" }
},
'fr-ca': {
32: { shift: false, altgr: false, name: "space" },
33: { shift: true, altgr: false, name: "exclam" },
34: { shift: true, altgr: false, name: "quotedbl" },
36: { shift: true, altgr: false, name: "dollar" },
37: { shift: true, altgr: false, name: "percent" },
38: { shift: true, altgr: false, name: "ampersand" },
40: { shift: true, altgr: false, name: "parenleft" },
41: { shift: true, altgr: false, name: "parenright" },
42: { shift: true, altgr: false, name: "asterisk" },
43: { shift: true, altgr: false, name: "plus" },
47: { shift: true, altgr: false, name: "slash" },
48: { shift: false, altgr: false, name: "0" },
49: { shift: false, altgr: false, name: "1" },
50: { shift: false, altgr: false, name: "2" },
51: { shift: false, altgr: false, name: "3" },
52: { shift: false, altgr: false, name: "4" },
53: { shift: false, altgr: false, name: "5" },
54: { shift: false, altgr: false, name: "6" },
55: { shift: false, altgr: false, name: "7" },
56: { shift: false, altgr: false, name: "8" },
57: { shift: false, altgr: false, name: "9" },
60: { shift: false, altgr: false, name: "less" },
62: { shift: true, altgr: false, name: "greater" },
63: { shift: true, altgr: false, name: "question" },
64: { shift: false, altgr: true, name: "at" },
65: { shift: true, altgr: false, name: "A" },
66: { shift: true, altgr: false, name: "B" },
67: { shift: true, altgr: false, name: "C" },
68: { shift: true, altgr: false, name: "D" },
69: { shift: true, altgr: false, name: "E" },
70: { shift: true, altgr: false, name: "F" },
71: { shift: true, altgr: false, name: "G" },
72: { shift: true, altgr: false, name: "H" },
73: { shift: true, altgr: false, name: "I" },
74: { shift: true, altgr: false, name: "J" },
75: { shift: true, altgr: false, name: "K" },
76: { shift: true, altgr: false, name: "L" },
77: { shift: true, altgr: false, name: "M" },
78: { shift: true, altgr: false, name: "N" },
79: { shift: true, altgr: false, name: "O" },
80: { shift: true, altgr: false, name: "P" },
81: { shift: true, altgr: false, name: "Q" },
82: { shift: true, altgr: false, name: "R" },
83: { shift: true, altgr: false, name: "S" },
84: { shift: true, altgr: false, name: "T" },
85: { shift: true, altgr: false, name: "U" },
86: { shift: true, altgr: false, name: "V" },
87: { shift: true, altgr: false, name: "W" },
88: { shift: true, altgr: false, name: "X" },
89: { shift: true, altgr: false, name: "Y" },
90: { shift: true, altgr: false, name: "Z" },
91: { shift: false, altgr: true, name: "bracketleft" },
92: { shift: false, altgr: true, name: "backslash" },
93: { shift: false, altgr: true, name: "bracketright" },
95: { shift: true, altgr: false, name: "underscore" },
97: { shift: false, altgr: false, name: "a" },
98: { shift: false, altgr: false, name: "b" },
99: { shift: false, altgr: false, name: "c" },
100: { shift: false, altgr: false, name: "d" },
101: { shift: false, altgr: false, name: "e" },
102: { shift: false, altgr: false, name: "f" },
103: { shift: false, altgr: false, name: "g" },
104: { shift: false, altgr: false, name: "h" },
105: { shift: false, altgr: false, name: "i" },
106: { shift: false, altgr: false, name: "j" },
107: { shift: false, altgr: false, name: "k" },
108: { shift: false, altgr: false, name: "l" },
109: { shift: false, altgr: false, name: "m" },
110: { shift: false, altgr: false, name: "n" },
111: { shift: false, altgr: false, name: "o" },
112: { shift: false, altgr: false, name: "p" },
113: { shift: false, altgr: false, name: "q" },
114: { shift: false, altgr: false, name: "r" },
115: { shift: false, altgr: false, name: "s" },
116: { shift: false, altgr: false, name: "t" },
117: { shift: false, altgr: false, name: "u" },
118: { shift: false, altgr: false, name: "v" },
119: { shift: false, altgr: false, name: "w" },
120: { shift: false, altgr: false, name: "x" },
121: { shift: false, altgr: false, name: "y" },
122: { shift: false, altgr: false, name: "z" },
123: { shift: false, altgr: true, name: "braceleft" },
124: { shift: true, altgr: false, name: "bar" },
125: { shift: false, altgr: true, name: "braceright" },
126: { shift: false, altgr: true, name: "asciitilde" },
162: { shift: false, altgr: true, name: "cent" },
163: { shift: false, altgr: true, name: "sterling" },
164: { shift: false, altgr: true, name: "currency" },
166: { shift: true, altgr: true, name: "brokenbar" },
167: { shift: false, altgr: true, name: "section" },
171: { shift: false, altgr: false, name: "guillemotleft" },
172: { shift: false, altgr: true, name: "notsign" },
176: { shift: false, altgr: true, name: "degree" },
177: { shift: false, altgr: true, name: "plusminus" },
178: { shift: false, altgr: true, name: "twosuperior" },
179: { shift: false, altgr: true, name: "threesuperior" },
181: { shift: false, altgr: true, name: "mu" },
182: { shift: false, altgr: true, name: "paragraph" },
187: { shift: true, altgr: false, name: "guillemotright" },
188: { shift: false, altgr: true, name: "onequarter" },
189: { shift: false, altgr: true, name: "onehalf" },
190: { shift: false, altgr: true, name: "threequarters" },
233: { shift: false, altgr: false, name: "eacute" },
65104: { shift: false, altgr: false, name: "dead_grave" },
65105: { shift: false, altgr: true, name: "dead_acute" },
65106: { shift: true, altgr: false, name: "dead_circumflex" },
65111: { shift: true, altgr: false, name: "dead_diaeresis" },
65115: { shift: false, altgr: false, name: "dead_cedilla" },
65288: { shift: false, altgr: false, name: "BackSpace" },
65289: { shift: false, altgr: false, name: "Tab" },
65293: { shift: false, altgr: false, name: "Return" },
65300: { shift: false, altgr: false, name: "Scroll_Lock" },
65301: { shift: false, altgr: false, name: "Sys_Req" },
65307: { shift: false, altgr: false, name: "Escape" },
65360: { shift: false, altgr: false, name: "Home" },
65361: { shift: false, altgr: false, name: "Left" },
65362: { shift: false, altgr: false, name: "Up" },
65363: { shift: false, altgr: false, name: "Right" },
65364: { shift: false, altgr: false, name: "Down" },
65365: { shift: false, altgr: false, name: "Page_Up" },
65366: { shift: false, altgr: false, name: "Page_Down" },
65367: { shift: false, altgr: false, name: "End" },
65377: { shift: false, altgr: false, name: "Print" },
65379: { shift: false, altgr: false, name: "Insert" },
65407: { shift: false, altgr: false, name: "Num_Lock" },
65421: { shift: false, altgr: false, name: "KP_Enter" },
65429: { shift: false, altgr: false, name: "KP_Home" },
65430: { shift: false, altgr: false, name: "KP_Left" },
65431: { shift: false, altgr: false, name: "KP_Up" },
65432: { shift: false, altgr: false, name: "KP_Right" },
65433: { shift: false, altgr: false, name: "KP_Down" },
65434: { shift: false, altgr: false, name: "KP_Prior" },
65435: { shift: false, altgr: false, name: "KP_Next" },
65436: { shift: false, altgr: false, name: "KP_End" },
65437: { shift: false, altgr: false, name: "KP_Begin" },
65438: { shift: false, altgr: false, name: "KP_Insert" },
65439: { shift: false, altgr: false, name: "KP_Delete" },
65450: { shift: false, altgr: false, name: "KP_Multiply" },
65451: { shift: false, altgr: false, name: "KP_Add" },
65452: { shift: false, altgr: false, name: "KP_Separator" },
65453: { shift: false, altgr: false, name: "KP_Subtract" },
65454: { shift: false, altgr: false, name: "KP_Decimal" },
65455: { shift: false, altgr: false, name: "KP_Divide" },
65456: { shift: false, altgr: false, name: "KP_0" },
65457: { shift: false, altgr: false, name: "KP_1" },
65458: { shift: false, altgr: false, name: "KP_2" },
65459: { shift: false, altgr: false, name: "KP_3" },
65460: { shift: false, altgr: false, name: "KP_4" },
65461: { shift: false, altgr: false, name: "KP_5" },
65462: { shift: false, altgr: false, name: "KP_6" },
65463: { shift: false, altgr: false, name: "KP_7" },
65464: { shift: false, altgr: false, name: "KP_8" },
65465: { shift: false, altgr: false, name: "KP_9" },
65470: { shift: false, altgr: false, name: "F1" },
65471: { shift: false, altgr: false, name: "F2" },
65472: { shift: false, altgr: false, name: "F3" },
65473: { shift: false, altgr: false, name: "F4" },
65474: { shift: false, altgr: false, name: "F5" },
65475: { shift: false, altgr: false, name: "F6" },
65476: { shift: false, altgr: false, name: "F7" },
65477: { shift: false, altgr: false, name: "F8" },
65478: { shift: false, altgr: false, name: "F9" },
65479: { shift: false, altgr: false, name: "F10" },
65480: { shift: false, altgr: false, name: "F11" },
65481: { shift: false, altgr: false, name: "F12" },
65509: { shift: false, altgr: false, name: "Caps_Lock" },
65535: { shift: false, altgr: false, name: "Delete" }
},
'fr-ch': {
32: { shift: false, altgr: false, name: "space" },
33: { shift: true, altgr: false, name: "exclam" },
34: { shift: true, altgr: false, name: "quotedbl" },
35: { shift: false, altgr: false, name: "numbersign" },
36: { shift: true, altgr: false, name: "dollar" },
37: { shift: true, altgr: false, name: "percent" },
38: { shift: true, altgr: false, name: "ampersand" },
39: { shift: true, altgr: false, name: "apostrophe" },
40: { shift: true, altgr: false, name: "parenleft" },
41: { shift: true, altgr: false, name: "parenright" },
42: { shift: true, altgr: false, name: "asterisk" },
43: { shift: false, altgr: false, name: "plus" },
44: { shift: false, altgr: false, name: "comma" },
45: { shift: false, altgr: false, name: "minus" },
46: { shift: false, altgr: false, name: "period" },
47: { shift: true, altgr: false, name: "slash" },
48: { shift: false, altgr: false, name: "0" },
49: { shift: false, altgr: false, name: "1" },
50: { shift: false, altgr: false, name: "2" },
51: { shift: false, altgr: false, name: "3" },
52: { shift: false, altgr: false, name: "4" },
53: { shift: false, altgr: false, name: "5" },
54: { shift: false, altgr: false, name: "6" },
55: { shift: false, altgr: false, name: "7" },
56: { shift: false, altgr: false, name: "8" },
57: { shift: false, altgr: false, name: "9" },
58: { shift: true, altgr: false, name: "colon" },
59: { shift: true, altgr: false, name: "semicolon" },
60: { shift: false, altgr: false, name: "less" },
61: { shift: true, altgr: false, name: "equal" },
62: { shift: true, altgr: false, name: "greater" },
63: { shift: true, altgr: false, name: "question" },
64: { shift: false, altgr: true, name: "at" },
65: { shift: true, altgr: false, name: "A" },
66: { shift: true, altgr: false, name: "B" },
67: { shift: true, altgr: false, name: "C" },
68: { shift: true, altgr: false, name: "D" },
69: { shift: true, altgr: false, name: "E" },
70: { shift: true, altgr: false, name: "F" },
71: { shift: true, altgr: false, name: "G" },
72: { shift: true, altgr: false, name: "H" },
73: { shift: true, altgr: false, name: "I" },
74: { shift: true, altgr: false, name: "J" },
75: { shift: true, altgr: false, name: "K" },
76: { shift: true, altgr: false, name: "L" },
77: { shift: true, altgr: false, name: "M" },
78: { shift: true, altgr: false, name: "N" },
79: { shift: true, altgr: false, name: "O" },
80: { shift: true, altgr: false, name: "P" },
81: { shift: true, altgr: false, name: "Q" },
82: { shift: true, altgr: false, name: "R" },
83: { shift: true, altgr: false, name: "S" },
84: { shift: true, altgr: false, name: "T" },
85: { shift: true, altgr: false, name: "U" },
86: { shift: true, altgr: false, name: "V" },
87: { shift: true, altgr: false, name: "W" },
88: { shift: true, altgr: false, name: "X" },
89: { shift: true, altgr: false, name: "Y" },
90: { shift: true, altgr: false, name: "Z" },
91: { shift: false, altgr: true, name: "bracketleft" },
92: { shift: false, altgr: true, name: "backslash" },
93: { shift: false, altgr: true, name: "bracketright" },
94: { shift: false, altgr: false, name: "asciicircum" },
95: { shift: true, altgr: false, name: "underscore" },
96: { shift: true, altgr: false, name: "grave" },
97: { shift: false, altgr: false, name: "a" },
98: { shift: false, altgr: false, name: "b" },
99: { shift: false, altgr: false, name: "c" },
100: { shift: false, altgr: false, name: "d" },
101: { shift: false, altgr: false, name: "e" },
102: { shift: false, altgr: false, name: "f" },
103: { shift: false, altgr: false, name: "g" },
104: { shift: false, altgr: false, name: "h" },
105: { shift: false, altgr: false, name: "i" },
106: { shift: false, altgr: false, name: "j" },
107: { shift: false, altgr: false, name: "k" },
108: { shift: false, altgr: false, name: "l" },
109: { shift: false, altgr: false, name: "m" },
110: { shift: false, altgr: false, name: "n" },
111: { shift: false, altgr: false, name: "o" },
112: { shift: false, altgr: false, name: "p" },
113: { shift: false, altgr: false, name: "q" },
114: { shift: false, altgr: false, name: "r" },
115: { shift: false, altgr: false, name: "s" },
116: { shift: false, altgr: false, name: "t" },
117: { shift: false, altgr: false, name: "u" },
118: { shift: false, altgr: false, name: "v" },
119: { shift: false, altgr: false, name: "w" },
120: { shift: false, altgr: false, name: "x" },
121: { shift: false, altgr: false, name: "y" },
122: { shift: false, altgr: false, name: "z" },
123: { shift: false, altgr: true, name: "braceleft" },
124: { shift: false, altgr: true, name: "bar" },
125: { shift: false, altgr: true, name: "braceright" },
126: { shift: false, altgr: true, name: "asciitilde" },
161: { shift: true, altgr: true, name: "exclamdown" },
162: { shift: false, altgr: true, name: "cent" },
163: { shift: true, altgr: true, name: "sterling" },
164: { shift: true, altgr: true, name: "currency" },
165: { shift: true, altgr: true, name: "yen" },
166: { shift: true, altgr: true, name: "brokenbar" },
167: { shift: true, altgr: false, name: "section" },
169: { shift: true, altgr: true, name: "copyright" },
170: { shift: true, altgr: true, name: "ordfeminine" },
171: { shift: false, altgr: true, name: "guillemotleft" },
172: { shift: false, altgr: true, name: "notsign" },
174: { shift: true, altgr: true, name: "registered" },
176: { shift: true, altgr: false, name: "degree" },
177: { shift: true, altgr: true, name: "plusminus" },
178: { shift: false, altgr: true, name: "twosuperior" },
179: { shift: false, altgr: true, name: "threesuperior" },
180: { shift: false, altgr: false, name: "acute" },
181: { shift: false, altgr: true, name: "mu" },
182: { shift: false, altgr: true, name: "paragraph" },
183: { shift: false, altgr: true, name: "periodcentered" },
185: { shift: false, altgr: true, name: "onesuperior" },
186: { shift: true, altgr: true, name: "masculine" },
187: { shift: false, altgr: true, name: "guillemotright" },
188: { shift: false, altgr: true, name: "onequarter" },
189: { shift: false, altgr: true, name: "onehalf" },
190: { shift: false, altgr: true, name: "threequarters" },
191: { shift: true, altgr: true, name: "questiondown" },
196: { shift: true, altgr: false, name: "Adiaeresis" },
198: { shift: true, altgr: true, name: "AE" },
208: { shift: true, altgr: true, name: "ETH" },
214: { shift: true, altgr: false, name: "Odiaeresis" },
215: { shift: true, altgr: true, name: "multiply" },
216: { shift: true, altgr: true, name: "Ooblique" },
220: { shift: true, altgr: false, name: "Udiaeresis" },
222: { shift: true, altgr: true, name: "THORN" },
223: { shift: false, altgr: false, name: "ssharp" },
228: { shift: false, altgr: false, name: "adiaeresis" },
230: { shift: false, altgr: true, name: "ae" },
240: { shift: false, altgr: true, name: "eth" },
246: { shift: false, altgr: false, name: "odiaeresis" },
247: { shift: true, altgr: true, name: "division" },
248: { shift: false, altgr: true, name: "oslash" },
252: { shift: false, altgr: false, name: "udiaeresis" },
254: { shift: false, altgr: true, name: "thorn" },
8364: { shift: false, altgr: true, name: "EuroSign" },
65104: { shift: true, altgr: false, name: "dead_grave" },
65105: { shift: false, altgr: false, name: "dead_acute" },
65106: { shift: false, altgr: false, name: "dead_circumflex" },
65107: { shift: false, altgr: true, name: "dead_tilde" },
65108: { shift: true, altgr: true, name: "dead_macron" },
65109: { shift: true, altgr: true, name: "dead_breve" },
65110: { shift: true, altgr: true, name: "dead_abovedot" },
65111: { shift: false, altgr: true, name: "dead_diaeresis" },
65112: { shift: true, altgr: true, name: "dead_abovering" },
65113: { shift: false, altgr: true, name: "dead_doubleacute" },
65114: { shift: true, altgr: true, name: "dead_caron" },
65115: { shift: false, altgr: true, name: "dead_cedilla" },
65116: { shift: true, altgr: true, name: "dead_ogonek" },
65120: { shift: false, altgr: true, name: "dead_belowdot" },
65288: { shift: false, altgr: false, name: "BackSpace" },
65289: { shift: false, altgr: false, name: "Tab" },
65293: { shift: false, altgr: false, name: "Return" },
65300: { shift: false, altgr: false, name: "Scroll_Lock" },
65301: { shift: false, altgr: false, name: "Sys_Req" },
65307: { shift: false, altgr: false, name: "Escape" },
65360: { shift: false, altgr: false, name: "Home" },
65361: { shift: false, altgr: false, name: "Left" },
65362: { shift: false, altgr: false, name: "Up" },
65363: { shift: false, altgr: false, name: "Right" },
65364: { shift: false, altgr: false, name: "Down" },
65365: { shift: false, altgr: false, name: "Page_Up" },
65366: { shift: false, altgr: false, name: "Page_Down" },
65367: { shift: false, altgr: false, name: "End" },
65377: { shift: false, altgr: false, name: "Print" },
65379: { shift: false, altgr: false, name: "Insert" },
65407: { shift: false, altgr: false, name: "Num_Lock" },
65421: { shift: false, altgr: false, name: "KP_Enter" },
65429: { shift: false, altgr: false, name: "KP_Home" },
65430: { shift: false, altgr: false, name: "KP_Left" },
65431: { shift: false, altgr: false, name: "KP_Up" },
65432: { shift: false, altgr: false, name: "KP_Right" },
65433: { shift: false, altgr: false, name: "KP_Down" },
65434: { shift: false, altgr: false, name: "KP_Prior" },
65435: { shift: false, altgr: false, name: "KP_Next" },
65436: { shift: false, altgr: false, name: "KP_End" },
65437: { shift: false, altgr: false, name: "KP_Begin" },
65438: { shift: false, altgr: false, name: "KP_Insert" },
65439: { shift: false, altgr: false, name: "KP_Delete" },
65450: { shift: false, altgr: false, name: "KP_Multiply" },
65451: { shift: false, altgr: false, name: "KP_Add" },
65452: { shift: false, altgr: false, name: "KP_Separator" },
65453: { shift: false, altgr: false, name: "KP_Subtract" },
65454: { shift: false, altgr: false, name: "KP_Decimal" },
65455: { shift: false, altgr: false, name: "KP_Divide" },
65456: { shift: false, altgr: false, name: "KP_0" },
65457: { shift: false, altgr: false, name: "KP_1" },
65458: { shift: false, altgr: false, name: "KP_2" },
65459: { shift: false, altgr: false, name: "KP_3" },
65460: { shift: false, altgr: false, name: "KP_4" },
65461: { shift: false, altgr: false, name: "KP_5" },
65462: { shift: false, altgr: false, name: "KP_6" },
65463: { shift: false, altgr: false, name: "KP_7" },
65464: { shift: false, altgr: false, name: "KP_8" },
65465: { shift: false, altgr: false, name: "KP_9" },
65470: { shift: false, altgr: false, name: "F1" },
65471: { shift: false, altgr: false, name: "F2" },
65472: { shift: false, altgr: false, name: "F3" },
65473: { shift: false, altgr: false, name: "F4" },
65474: { shift: false, altgr: false, name: "F5" },
65475: { shift: false, altgr: false, name: "F6" },
65476: { shift: false, altgr: false, name: "F7" },
65477: { shift: false, altgr: false, name: "F8" },
65478: { shift: false, altgr: false, name: "F9" },
65479: { shift: false, altgr: false, name: "F10" },
65480: { shift: false, altgr: false, name: "F11" },
65481: { shift: false, altgr: false, name: "F12" },
65509: { shift: false, altgr: false, name: "Caps_Lock" },
65535: { shift: false, altgr: false, name: "Delete" }
},
'hr': {
32: { shift: false, altgr: false, name: "space" },
33: { shift: true, altgr: false, name: "exclam" },
34: { shift: true, altgr: false, name: "quotedbl" },
35: { shift: true, altgr: false, name: "numbersign" },
36: { shift: true, altgr: false, name: "dollar" },
37: { shift: true, altgr: false, name: "percent" },
38: { shift: true, altgr: true, name: "ampersand" },
39: { shift: true, altgr: true, name: "apostrophe" },
40: { shift: true, altgr: false, name: "parenleft" },
41: { shift: true, altgr: false, name: "parenright" },
42: { shift: true, altgr: false, name: "asterisk" },
43: { shift: false, altgr: false, name: "plus" },
44: { shift: false, altgr: false, name: "comma" },
45: { shift: false, altgr: false, name: "minus" },
46: { shift: false, altgr: false, name: "period" },
47: { shift: true, altgr: false, name: "slash" },
48: { shift: false, altgr: false, name: "0" },
49: { shift: false, altgr: false, name: "1" },
50: { shift: false, altgr: false, name: "2" },
51: { shift: false, altgr: false, name: "3" },
52: { shift: false, altgr: false, name: "4" },
53: { shift: false, altgr: false, name: "5" },
54: { shift: false, altgr: false, name: "6" },
55: { shift: false, altgr: false, name: "7" },
56: { shift: false, altgr: false, name: "8" },
57: { shift: false, altgr: false, name: "9" },
58: { shift: true, altgr: false, name: "colon" },
59: { shift: true, altgr: false, name: "semicolon" },
60: { shift: true, altgr: true, name: "less" },
61: { shift: true, altgr: false, name: "equal" },
62: { shift: true, altgr: true, name: "greater" },
63: { shift: true, altgr: false, name: "question" },
64: { shift: false, altgr: true, name: "at" },
65: { shift: true, altgr: false, name: "A" },
66: { shift: true, altgr: false, name: "B" },
67: { shift: true, altgr: false, name: "C" },
68: { shift: true, altgr: false, name: "D" },
69: { shift: true, altgr: false, name: "E" },
70: { shift: true, altgr: false, name: "F" },
71: { shift: true, altgr: false, name: "G" },
72: { shift: true, altgr: false, name: "H" },
73: { shift: true, altgr: false, name: "I" },
74: { shift: true, altgr: false, name: "J" },
75: { shift: true, altgr: false, name: "K" },
76: { shift: true, altgr: false, name: "L" },
77: { shift: true, altgr: false, name: "M" },
78: { shift: true, altgr: false, name: "N" },
79: { shift: true, altgr: false, name: "O" },
80: { shift: true, altgr: false, name: "P" },
81: { shift: true, altgr: false, name: "Q" },
82: { shift: true, altgr: false, name: "R" },
83: { shift: true, altgr: false, name: "S" },
84: { shift: true, altgr: false, name: "T" },
85: { shift: true, altgr: false, name: "U" },
86: { shift: true, altgr: false, name: "V" },
87: { shift: true, altgr: false, name: "W" },
88: { shift: true, altgr: false, name: "X" },
89: { shift: true, altgr: false, name: "Y" },
90: { shift: true, altgr: false, name: "Z" },
91: { shift: false, altgr: true, name: "bracketleft" },
92: { shift: false, altgr: true, name: "backslash" },
93: { shift: false, altgr: true, name: "bracketright" },
94: { shift: false, altgr: true, name: "asciicircum" },
95: { shift: true, altgr: false, name: "underscore" },
96: { shift: true, altgr: true, name: "grave" },
97: { shift: false, altgr: false, name: "a" },
98: { shift: false, altgr: false, name: "b" },
99: { shift: false, altgr: false, name: "c" },
100: { shift: false, altgr: false, name: "d" },
101: { shift: false, altgr: false, name: "e" },
102: { shift: false, altgr: false, name: "f" },
103: { shift: false, altgr: false, name: "g" },
104: { shift: false, altgr: false, name: "h" },
105: { shift: false, altgr: false, name: "i" },
106: { shift: false, altgr: false, name: "j" },
107: { shift: false, altgr: false, name: "k" },
108: { shift: false, altgr: false, name: "l" },
109: { shift: false, altgr: false, name: "m" },
110: { shift: false, altgr: false, name: "n" },
111: { shift: false, altgr: false, name: "o" },
112: { shift: false, altgr: false, name: "p" },
113: { shift: false, altgr: false, name: "q" },
114: { shift: false, altgr: false, name: "r" },
115: { shift: false, altgr: false, name: "s" },
116: { shift: false, altgr: false, name: "t" },
117: { shift: false, altgr: false, name: "u" },
118: { shift: false, altgr: false, name: "v" },
119: { shift: false, altgr: false, name: "w" },
120: { shift: false, altgr: false, name: "x" },
121: { shift: false, altgr: false, name: "y" },
122: { shift: false, altgr: false, name: "z" },
123: { shift: false, altgr: true, name: "braceleft" },
124: { shift: false, altgr: true, name: "bar" },
125: { shift: false, altgr: true, name: "braceright" },
126: { shift: false, altgr: true, name: "asciitilde" },
162: { shift: false, altgr: true, name: "cent" },
164: { shift: false, altgr: true, name: "currency" },
165: { shift: true, altgr: true, name: "yen" },
166: { shift: true, altgr: true, name: "brokenbar" },
167: { shift: false, altgr: true, name: "section" },
168: { shift: true, altgr: true, name: "diaeresis" },
169: { shift: true, altgr: true, name: "copyright" },
170: { shift: true, altgr: true, name: "ordfeminine" },
171: { shift: false, altgr: true, name: "guillemotleft" },
172: { shift: false, altgr: true, name: "notsign" },
174: { shift: true, altgr: true, name: "registered" },
176: { shift: false, altgr: true, name: "degree" },
182: { shift: false, altgr: true, name: "paragraph" },
183: { shift: false, altgr: true, name: "periodcentered" },
184: { shift: true, altgr: true, name: "cedilla" },
186: { shift: true, altgr: true, name: "masculine" },
187: { shift: false, altgr: true, name: "guillemotright" },
198: { shift: true, altgr: true, name: "AE" },
208: { shift: true, altgr: true, name: "ETH" },
215: { shift: true, altgr: true, name: "multiply" },
216: { shift: true, altgr: true, name: "Ooblique" },
222: { shift: true, altgr: true, name: "THORN" },
223: { shift: false, altgr: true, name: "ssharp" },
230: { shift: false, altgr: true, name: "ae" },
240: { shift: false, altgr: true, name: "eth" },
247: { shift: true, altgr: true, name: "division" },
248: { shift: false, altgr: true, name: "oslash" },
254: { shift: false, altgr: true, name: "thorn" },
419: { shift: false, altgr: true, name: "Lstroke" },
435: { shift: false, altgr: true, name: "lstroke" },
454: { shift: true, altgr: false, name: "Cacute" },
486: { shift: false, altgr: false, name: "cacute" },
8364: { shift: false, altgr: true, name: "EuroSign" },
65104: { shift: true, altgr: true, name: "dead_grave" },
65105: { shift: false, altgr: true, name: "dead_acute" },
65106: { shift: true, altgr: true, name: "dead_circumflex" },
65107: { shift: true, altgr: true, name: "dead_tilde" },
65108: { shift: true, altgr: true, name: "dead_macron" },
65109: { shift: true, altgr: true, name: "dead_breve" },
65110: { shift: true, altgr: true, name: "dead_abovedot" },
65111: { shift: true, altgr: false, name: "dead_diaeresis" },
65112: { shift: true, altgr: true, name: "dead_abovering" },
65113: { shift: true, altgr: true, name: "dead_doubleacute" },
65114: { shift: true, altgr: true, name: "dead_caron" },
65115: { shift: false, altgr: false, name: "dead_cedilla" },
65116: { shift: false, altgr: true, name: "dead_ogonek" },
65120: { shift: false, altgr: true, name: "dead_belowdot" },
65288: { shift: false, altgr: false, name: "BackSpace" },
65289: { shift: false, altgr: false, name: "Tab" },
65293: { shift: false, altgr: false, name: "Return" },
65300: { shift: false, altgr: false, name: "Scroll_Lock" },
65301: { shift: false, altgr: false, name: "Sys_Req" },
65307: { shift: false, altgr: false, name: "Escape" },
65360: { shift: false, altgr: false, name: "Home" },
65361: { shift: false, altgr: false, name: "Left" },
65362: { shift: false, altgr: false, name: "Up" },
65363: { shift: false, altgr: false, name: "Right" },
65364: { shift: false, altgr: false, name: "Down" },
65365: { shift: false, altgr: false, name: "Page_Up" },
65366: { shift: false, altgr: false, name: "Page_Down" },
65367: { shift: false, altgr: false, name: "End" },
65377: { shift: false, altgr: false, name: "Print" },
65379: { shift: false, altgr: false, name: "Insert" },
65407: { shift: false, altgr: false, name: "Num_Lock" },
65421: { shift: false, altgr: false, name: "KP_Enter" },
65429: { shift: false, altgr: false, name: "KP_Home" },
65430: { shift: false, altgr: false, name: "KP_Left" },
65431: { shift: false, altgr: false, name: "KP_Up" },
65432: { shift: false, altgr: false, name: "KP_Right" },
65433: { shift: false, altgr: false, name: "KP_Down" },
65434: { shift: false, altgr: false, name: "KP_Prior" },
65435: { shift: false, altgr: false, name: "KP_Next" },
65436: { shift: false, altgr: false, name: "KP_End" },
65437: { shift: false, altgr: false, name: "KP_Begin" },
65438: { shift: false, altgr: false, name: "KP_Insert" },
65439: { shift: false, altgr: false, name: "KP_Delete" },
65450: { shift: false, altgr: false, name: "KP_Multiply" },
65451: { shift: false, altgr: false, name: "KP_Add" },
65452: { shift: false, altgr: false, name: "KP_Separator" },
65453: { shift: false, altgr: false, name: "KP_Subtract" },
65454: { shift: false, altgr: false, name: "KP_Decimal" },
65455: { shift: false, altgr: false, name: "KP_Divide" },
65456: { shift: false, altgr: false, name: "KP_0" },
65457: { shift: false, altgr: false, name: "KP_1" },
65458: { shift: false, altgr: false, name: "KP_2" },
65459: { shift: false, altgr: false, name: "KP_3" },
65460: { shift: false, altgr: false, name: "KP_4" },
65461: { shift: false, altgr: false, name: "KP_5" },
65462: { shift: false, altgr: false, name: "KP_6" },
65463: { shift: false, altgr: false, name: "KP_7" },
65464: { shift: false, altgr: false, name: "KP_8" },
65465: { shift: false, altgr: false, name: "KP_9" },
65470: { shift: false, altgr: false, name: "F1" },
65471: { shift: false, altgr: false, name: "F2" },
65472: { shift: false, altgr: false, name: "F3" },
65473: { shift: false, altgr: false, name: "F4" },
65474: { shift: false, altgr: false, name: "F5" },
65475: { shift: false, altgr: false, name: "F6" },
65476: { shift: false, altgr: false, name: "F7" },
65477: { shift: false, altgr: false, name: "F8" },
65478: { shift: false, altgr: false, name: "F9" },
65479: { shift: false, altgr: false, name: "F10" },
65480: { shift: false, altgr: false, name: "F11" },
65481: { shift: false, altgr: false, name: "F12" },
65509: { shift: false, altgr: false, name: "Caps_Lock" },
65535: { shift: false, altgr: false, name: "Delete" }
},
'hu': {
32: { shift: false, altgr: false, name: "space" },
33: { shift: true, altgr: false, name: "exclam" },
34: { shift: true, altgr: false, name: "quotedbl" },
35: { shift: false, altgr: true, name: "numbersign" },
36: { shift: false, altgr: true, name: "dollar" },
37: { shift: true, altgr: false, name: "percent" },
38: { shift: false, altgr: true, name: "ampersand" },
39: { shift: true, altgr: false, name: "apostrophe" },
40: { shift: true, altgr: false, name: "parenleft" },
41: { shift: true, altgr: false, name: "parenright" },
42: { shift: false, altgr: true, name: "asterisk" },
43: { shift: true, altgr: false, name: "plus" },
44: { shift: false, altgr: false, name: "comma" },
45: { shift: false, altgr: false, name: "minus" },
46: { shift: false, altgr: false, name: "period" },
47: { shift: true, altgr: false, name: "slash" },
48: { shift: false, altgr: false, name: "0" },
49: { shift: false, altgr: false, name: "1" },
50: { shift: false, altgr: false, name: "2" },
51: { shift: false, altgr: false, name: "3" },
52: { shift: false, altgr: false, name: "4" },
53: { shift: false, altgr: false, name: "5" },
54: { shift: false, altgr: false, name: "6" },
55: { shift: false, altgr: false, name: "7" },
56: { shift: false, altgr: false, name: "8" },
57: { shift: false, altgr: false, name: "9" },
58: { shift: true, altgr: false, name: "colon" },
59: { shift: false, altgr: true, name: "semicolon" },
60: { shift: false, altgr: true, name: "less" },
61: { shift: true, altgr: false, name: "equal" },
62: { shift: false, altgr: true, name: "greater" },
63: { shift: true, altgr: false, name: "question" },
64: { shift: false, altgr: true, name: "at" },
65: { shift: true, altgr: false, name: "A" },
66: { shift: true, altgr: false, name: "B" },
67: { shift: true, altgr: false, name: "C" },
68: { shift: true, altgr: false, name: "D" },
69: { shift: true, altgr: false, name: "E" },
70: { shift: true, altgr: false, name: "F" },
71: { shift: true, altgr: false, name: "G" },
72: { shift: true, altgr: false, name: "H" },
73: { shift: true, altgr: false, name: "I" },
74: { shift: true, altgr: false, name: "J" },
75: { shift: true, altgr: false, name: "K" },
76: { shift: true, altgr: false, name: "L" },
77: { shift: true, altgr: false, name: "M" },
78: { shift: true, altgr: false, name: "N" },
79: { shift: true, altgr: false, name: "O" },
80: { shift: true, altgr: false, name: "P" },
81: { shift: true, altgr: false, name: "Q" },
82: { shift: true, altgr: false, name: "R" },
83: { shift: true, altgr: false, name: "S" },
84: { shift: true, altgr: false, name: "T" },
85: { shift: true, altgr: false, name: "U" },
86: { shift: true, altgr: false, name: "V" },
87: { shift: true, altgr: false, name: "W" },
88: { shift: true, altgr: false, name: "X" },
89: { shift: true, altgr: false, name: "Y" },
90: { shift: true, altgr: false, name: "Z" },
91: { shift: false, altgr: true, name: "bracketleft" },
92: { shift: false, altgr: true, name: "backslash" },
93: { shift: false, altgr: true, name: "bracketright" },
94: { shift: false, altgr: true, name: "asciicircum" },
95: { shift: true, altgr: false, name: "underscore" },
96: { shift: false, altgr: true, name: "grave" },
97: { shift: false, altgr: false, name: "a" },
98: { shift: false, altgr: false, name: "b" },
99: { shift: false, altgr: false, name: "c" },
100: { shift: false, altgr: false, name: "d" },
101: { shift: false, altgr: false, name: "e" },
102: { shift: false, altgr: false, name: "f" },
103: { shift: false, altgr: false, name: "g" },
104: { shift: false, altgr: false, name: "h" },
105: { shift: false, altgr: false, name: "i" },
106: { shift: false, altgr: false, name: "j" },
107: { shift: false, altgr: false, name: "k" },
108: { shift: false, altgr: false, name: "l" },
109: { shift: false, altgr: false, name: "m" },
110: { shift: false, altgr: false, name: "n" },
111: { shift: false, altgr: false, name: "o" },
112: { shift: false, altgr: false, name: "p" },
113: { shift: false, altgr: false, name: "q" },
114: { shift: false, altgr: false, name: "r" },
115: { shift: false, altgr: false, name: "s" },
116: { shift: false, altgr: false, name: "t" },
117: { shift: false, altgr: false, name: "u" },
118: { shift: false, altgr: false, name: "v" },
119: { shift: false, altgr: false, name: "w" },
120: { shift: false, altgr: false, name: "x" },
121: { shift: false, altgr: false, name: "y" },
122: { shift: false, altgr: false, name: "z" },
123: { shift: false, altgr: true, name: "braceleft" },
124: { shift: false, altgr: true, name: "bar" },
125: { shift: false, altgr: true, name: "braceright" },
126: { shift: false, altgr: true, name: "asciitilde" },
164: { shift: false, altgr: true, name: "currency" },
166: { shift: true, altgr: true, name: "brokenbar" },
167: { shift: true, altgr: false, name: "section" },
168: { shift: false, altgr: true, name: "diaeresis" },
172: { shift: false, altgr: true, name: "notsign" },
176: { shift: false, altgr: true, name: "degree" },
180: { shift: false, altgr: true, name: "acute" },
184: { shift: false, altgr: true, name: "cedilla" },
193: { shift: true, altgr: false, name: "Aacute" },
201: { shift: true, altgr: false, name: "Eacute" },
205: { shift: false, altgr: true, name: "Iacute" },
211: { shift: true, altgr: false, name: "Oacute" },
214: { shift: true, altgr: false, name: "Odiaeresis" },
215: { shift: false, altgr: true, name: "multiply" },
218: { shift: true, altgr: false, name: "Uacute" },
220: { shift: true, altgr: false, name: "Udiaeresis" },
223: { shift: false, altgr: true, name: "ssharp" },
225: { shift: false, altgr: false, name: "aacute" },
233: { shift: false, altgr: false, name: "eacute" },
237: { shift: false, altgr: true, name: "iacute" },
243: { shift: false, altgr: false, name: "oacute" },
246: { shift: false, altgr: false, name: "odiaeresis" },
247: { shift: false, altgr: true, name: "division" },
250: { shift: false, altgr: false, name: "uacute" },
252: { shift: false, altgr: false, name: "udiaeresis" },
419: { shift: false, altgr: true, name: "Lstroke" },
435: { shift: false, altgr: true, name: "lstroke" },
8364: { shift: false, altgr: true, name: "EuroSign" },
65288: { shift: false, altgr: false, name: "BackSpace" },
65289: { shift: false, altgr: false, name: "Tab" },
65293: { shift: false, altgr: false, name: "Return" },
65300: { shift: false, altgr: false, name: "Scroll_Lock" },
65301: { shift: false, altgr: false, name: "Sys_Req" },
65307: { shift: false, altgr: false, name: "Escape" },
65360: { shift: false, altgr: false, name: "Home" },
65361: { shift: false, altgr: false, name: "Left" },
65362: { shift: false, altgr: false, name: "Up" },
65363: { shift: false, altgr: false, name: "Right" },
65364: { shift: false, altgr: false, name: "Down" },
65365: { shift: false, altgr: false, name: "Page_Up" },
65366: { shift: false, altgr: false, name: "Page_Down" },
65367: { shift: false, altgr: false, name: "End" },
65377: { shift: false, altgr: false, name: "Print" },
65379: { shift: false, altgr: false, name: "Insert" },
65407: { shift: false, altgr: false, name: "Num_Lock" },
65421: { shift: false, altgr: false, name: "KP_Enter" },
65429: { shift: false, altgr: false, name: "KP_Home" },
65430: { shift: false, altgr: false, name: "KP_Left" },
65431: { shift: false, altgr: false, name: "KP_Up" },
65432: { shift: false, altgr: false, name: "KP_Right" },
65433: { shift: false, altgr: false, name: "KP_Down" },
65434: { shift: false, altgr: false, name: "KP_Prior" },
65435: { shift: false, altgr: false, name: "KP_Next" },
65436: { shift: false, altgr: false, name: "KP_End" },
65437: { shift: false, altgr: false, name: "KP_Begin" },
65438: { shift: false, altgr: false, name: "KP_Insert" },
65439: { shift: false, altgr: false, name: "KP_Delete" },
65450: { shift: false, altgr: false, name: "KP_Multiply" },
65451: { shift: false, altgr: false, name: "KP_Add" },
65452: { shift: false, altgr: false, name: "KP_Separator" },
65453: { shift: false, altgr: false, name: "KP_Subtract" },
65454: { shift: false, altgr: false, name: "KP_Decimal" },
65455: { shift: false, altgr: false, name: "KP_Divide" },
65456: { shift: false, altgr: false, name: "KP_0" },
65457: { shift: false, altgr: false, name: "KP_1" },
65458: { shift: false, altgr: false, name: "KP_2" },
65459: { shift: false, altgr: false, name: "KP_3" },
65460: { shift: false, altgr: false, name: "KP_4" },
65461: { shift: false, altgr: false, name: "KP_5" },
65462: { shift: false, altgr: false, name: "KP_6" },
65463: { shift: false, altgr: false, name: "KP_7" },
65464: { shift: false, altgr: false, name: "KP_8" },
65465: { shift: false, altgr: false, name: "KP_9" },
65470: { shift: false, altgr: false, name: "F1" },
65471: { shift: false, altgr: false, name: "F2" },
65472: { shift: false, altgr: false, name: "F3" },
65473: { shift: false, altgr: false, name: "F4" },
65474: { shift: false, altgr: false, name: "F5" },
65475: { shift: false, altgr: false, name: "F6" },
65476: { shift: false, altgr: false, name: "F7" },
65477: { shift: false, altgr: false, name: "F8" },
65478: { shift: false, altgr: false, name: "F9" },
65479: { shift: false, altgr: false, name: "F10" },
65480: { shift: false, altgr: false, name: "F11" },
65481: { shift: false, altgr: false, name: "F12" },
65482: { shift: true, altgr: false, name: "F13" },
65483: { shift: true, altgr: false, name: "F14" },
65484: { shift: true, altgr: false, name: "F15" },
65509: { shift: false, altgr: false, name: "Caps_Lock" },
65535: { shift: false, altgr: false, name: "Delete" }
},
'is': {
32: { shift: false, altgr: false, name: "space" },
33: { shift: true, altgr: false, name: "exclam" },
34: { shift: true, altgr: false, name: "quotedbl" },
35: { shift: true, altgr: false, name: "numbersign" },
36: { shift: true, altgr: false, name: "dollar" },
37: { shift: true, altgr: false, name: "percent" },
38: { shift: true, altgr: false, name: "ampersand" },
39: { shift: false, altgr: false, name: "apostrophe" },
40: { shift: true, altgr: false, name: "parenleft" },
41: { shift: true, altgr: false, name: "parenright" },
42: { shift: true, altgr: false, name: "asterisk" },
43: { shift: false, altgr: false, name: "plus" },
44: { shift: false, altgr: false, name: "comma" },
45: { shift: false, altgr: false, name: "minus" },
46: { shift: false, altgr: false, name: "period" },
47: { shift: true, altgr: false, name: "slash" },
48: { shift: false, altgr: false, name: "0" },
49: { shift: false, altgr: false, name: "1" },
50: { shift: false, altgr: false, name: "2" },
51: { shift: false, altgr: false, name: "3" },
52: { shift: false, altgr: false, name: "4" },
53: { shift: false, altgr: false, name: "5" },
54: { shift: false, altgr: false, name: "6" },
55: { shift: false, altgr: false, name: "7" },
56: { shift: false, altgr: false, name: "8" },
57: { shift: false, altgr: false, name: "9" },
58: { shift: true, altgr: false, name: "colon" },
59: { shift: true, altgr: false, name: "semicolon" },
60: { shift: false, altgr: false, name: "less" },
61: { shift: true, altgr: false, name: "equal" },
62: { shift: true, altgr: false, name: "greater" },
63: { shift: true, altgr: false, name: "question" },
64: { shift: false, altgr: true, name: "at" },
65: { shift: true, altgr: false, name: "A" },
66: { shift: true, altgr: false, name: "B" },
67: { shift: true, altgr: false, name: "C" },
68: { shift: true, altgr: false, name: "D" },
69: { shift: true, altgr: false, name: "E" },
70: { shift: true, altgr: false, name: "F" },
71: { shift: true, altgr: false, name: "G" },
72: { shift: true, altgr: false, name: "H" },
73: { shift: true, altgr: false, name: "I" },
74: { shift: true, altgr: false, name: "J" },
75: { shift: true, altgr: false, name: "K" },
76: { shift: true, altgr: false, name: "L" },
77: { shift: true, altgr: false, name: "M" },
78: { shift: true, altgr: false, name: "N" },
79: { shift: true, altgr: false, name: "O" },
80: { shift: true, altgr: false, name: "P" },
81: { shift: true, altgr: false, name: "Q" },
82: { shift: true, altgr: false, name: "R" },
83: { shift: true, altgr: false, name: "S" },
84: { shift: true, altgr: false, name: "T" },
85: { shift: true, altgr: false, name: "U" },
86: { shift: true, altgr: false, name: "V" },
87: { shift: true, altgr: false, name: "W" },
88: { shift: true, altgr: false, name: "X" },
89: { shift: true, altgr: false, name: "Y" },
90: { shift: true, altgr: false, name: "Z" },
91: { shift: false, altgr: true, name: "bracketleft" },
92: { shift: false, altgr: true, name: "backslash" },
93: { shift: false, altgr: true, name: "bracketright" },
95: { shift: true, altgr: false, name: "underscore" },
96: { shift: false, altgr: true, name: "grave" },
97: { shift: false, altgr: false, name: "a" },
98: { shift: false, altgr: false, name: "b" },
99: { shift: false, altgr: false, name: "c" },
100: { shift: false, altgr: false, name: "d" },
101: { shift: false, altgr: false, name: "e" },
102: { shift: false, altgr: false, name: "f" },
103: { shift: false, altgr: false, name: "g" },
104: { shift: false, altgr: false, name: "h" },
105: { shift: false, altgr: false, name: "i" },
106: { shift: false, altgr: false, name: "j" },
107: { shift: false, altgr: false, name: "k" },
108: { shift: false, altgr: false, name: "l" },
109: { shift: false, altgr: false, name: "m" },
110: { shift: false, altgr: false, name: "n" },
111: { shift: false, altgr: false, name: "o" },
112: { shift: false, altgr: false, name: "p" },
113: { shift: false, altgr: false, name: "q" },
114: { shift: false, altgr: false, name: "r" },
115: { shift: false, altgr: false, name: "s" },
116: { shift: false, altgr: false, name: "t" },
117: { shift: false, altgr: false, name: "u" },
118: { shift: false, altgr: false, name: "v" },
119: { shift: false, altgr: false, name: "w" },
120: { shift: false, altgr: false, name: "x" },
121: { shift: false, altgr: false, name: "y" },
122: { shift: false, altgr: false, name: "z" },
123: { shift: false, altgr: true, name: "braceleft" },
124: { shift: false, altgr: true, name: "bar" },
125: { shift: false, altgr: true, name: "braceright" },
126: { shift: false, altgr: true, name: "asciitilde" },
161: { shift: true, altgr: true, name: "exclamdown" },
162: { shift: false, altgr: true, name: "cent" },
163: { shift: true, altgr: true, name: "sterling" },
164: { shift: true, altgr: true, name: "currency" },
165: { shift: true, altgr: true, name: "yen" },
166: { shift: true, altgr: true, name: "brokenbar" },
169: { shift: true, altgr: true, name: "copyright" },
170: { shift: true, altgr: true, name: "ordfeminine" },
171: { shift: false, altgr: true, name: "guillemotleft" },
174: { shift: true, altgr: true, name: "registered" },
177: { shift: true, altgr: true, name: "plusminus" },
178: { shift: false, altgr: true, name: "twosuperior" },
179: { shift: false, altgr: true, name: "threesuperior" },
180: { shift: false, altgr: false, name: "acute" },
181: { shift: false, altgr: true, name: "mu" },
182: { shift: false, altgr: true, name: "paragraph" },
183: { shift: false, altgr: true, name: "periodcentered" },
185: { shift: false, altgr: true, name: "onesuperior" },
186: { shift: true, altgr: true, name: "masculine" },
187: { shift: false, altgr: true, name: "guillemotright" },
188: { shift: false, altgr: true, name: "onequarter" },
189: { shift: false, altgr: true, name: "onehalf" },
190: { shift: false, altgr: true, name: "threequarters" },
191: { shift: true, altgr: true, name: "questiondown" },
198: { shift: true, altgr: false, name: "AE" },
208: { shift: true, altgr: false, name: "ETH" },
214: { shift: true, altgr: false, name: "Odiaeresis" },
215: { shift: true, altgr: true, name: "multiply" },
216: { shift: true, altgr: true, name: "Ooblique" },
222: { shift: true, altgr: false, name: "THORN" },
230: { shift: false, altgr: false, name: "ae" },
240: { shift: false, altgr: false, name: "eth" },
246: { shift: false, altgr: false, name: "odiaeresis" },
247: { shift: true, altgr: true, name: "division" },
248: { shift: false, altgr: true, name: "oslash" },
254: { shift: false, altgr: false, name: "thorn" },
8364: { shift: false, altgr: true, name: "EuroSign" },
65105: { shift: false, altgr: false, name: "dead_acute" },
65110: { shift: true, altgr: true, name: "dead_abovedot" },
65113: { shift: false, altgr: true, name: "dead_doubleacute" },
65115: { shift: false, altgr: true, name: "dead_cedilla" },
65116: { shift: true, altgr: true, name: "dead_ogonek" },
65120: { shift: false, altgr: true, name: "dead_belowdot" },
65288: { shift: false, altgr: false, name: "BackSpace" },
65289: { shift: false, altgr: false, name: "Tab" },
65293: { shift: false, altgr: false, name: "Return" },
65300: { shift: false, altgr: false, name: "Scroll_Lock" },
65301: { shift: false, altgr: false, name: "Sys_Req" },
65307: { shift: false, altgr: false, name: "Escape" },
65360: { shift: false, altgr: false, name: "Home" },
65361: { shift: false, altgr: false, name: "Left" },
65362: { shift: false, altgr: false, name: "Up" },
65363: { shift: false, altgr: false, name: "Right" },
65364: { shift: false, altgr: false, name: "Down" },
65365: { shift: false, altgr: false, name: "Page_Up" },
65366: { shift: false, altgr: false, name: "Page_Down" },
65367: { shift: false, altgr: false, name: "End" },
65377: { shift: false, altgr: false, name: "Print" },
65379: { shift: false, altgr: false, name: "Insert" },
65407: { shift: false, altgr: false, name: "Num_Lock" },
65421: { shift: false, altgr: false, name: "KP_Enter" },
65429: { shift: false, altgr: false, name: "KP_Home" },
65430: { shift: false, altgr: false, name: "KP_Left" },
65431: { shift: false, altgr: false, name: "KP_Up" },
65432: { shift: false, altgr: false, name: "KP_Right" },
65433: { shift: false, altgr: false, name: "KP_Down" },
65434: { shift: false, altgr: false, name: "KP_Prior" },
65435: { shift: false, altgr: false, name: "KP_Next" },
65436: { shift: false, altgr: false, name: "KP_End" },
65437: { shift: false, altgr: false, name: "KP_Begin" },
65438: { shift: false, altgr: false, name: "KP_Insert" },
65439: { shift: false, altgr: false, name: "KP_Delete" },
65450: { shift: false, altgr: false, name: "KP_Multiply" },
65451: { shift: false, altgr: false, name: "KP_Add" },
65452: { shift: false, altgr: false, name: "KP_Separator" },
65453: { shift: false, altgr: false, name: "KP_Subtract" },
65454: { shift: false, altgr: false, name: "KP_Decimal" },
65455: { shift: false, altgr: false, name: "KP_Divide" },
65456: { shift: false, altgr: false, name: "KP_0" },
65457: { shift: false, altgr: false, name: "KP_1" },
65458: { shift: false, altgr: false, name: "KP_2" },
65459: { shift: false, altgr: false, name: "KP_3" },
65460: { shift: false, altgr: false, name: "KP_4" },
65461: { shift: false, altgr: false, name: "KP_5" },
65462: { shift: false, altgr: false, name: "KP_6" },
65463: { shift: false, altgr: false, name: "KP_7" },
65464: { shift: false, altgr: false, name: "KP_8" },
65465: { shift: false, altgr: false, name: "KP_9" },
65470: { shift: false, altgr: false, name: "F1" },
65471: { shift: false, altgr: false, name: "F2" },
65472: { shift: false, altgr: false, name: "F3" },
65473: { shift: false, altgr: false, name: "F4" },
65474: { shift: false, altgr: false, name: "F5" },
65475: { shift: false, altgr: false, name: "F6" },
65476: { shift: false, altgr: false, name: "F7" },
65477: { shift: false, altgr: false, name: "F8" },
65478: { shift: false, altgr: false, name: "F9" },
65479: { shift: false, altgr: false, name: "F10" },
65480: { shift: false, altgr: false, name: "F11" },
65481: { shift: false, altgr: false, name: "F12" },
65509: { shift: false, altgr: false, name: "Caps_Lock" },
65535: { shift: false, altgr: false, name: "Delete" }
},
'it': {
32: { shift: false, altgr: false, name: "space" },
33: { shift: true, altgr: false, name: "exclam" },
34: { shift: true, altgr: false, name: "quotedbl" },
35: { shift: false, altgr: true, name: "numbersign" },
36: { shift: true, altgr: false, name: "dollar" },
37: { shift: true, altgr: false, name: "percent" },
38: { shift: true, altgr: false, name: "ampersand" },
39: { shift: false, altgr: false, name: "apostrophe" },
40: { shift: true, altgr: false, name: "parenleft" },
41: { shift: true, altgr: false, name: "parenright" },
42: { shift: true, altgr: false, name: "asterisk" },
43: { shift: false, altgr: false, name: "plus" },
44: { shift: false, altgr: false, name: "comma" },
45: { shift: false, altgr: false, name: "minus" },
46: { shift: false, altgr: false, name: "period" },
47: { shift: true, altgr: false, name: "slash" },
48: { shift: false, altgr: false, name: "0" },
49: { shift: false, altgr: false, name: "1" },
50: { shift: false, altgr: false, name: "2" },
51: { shift: false, altgr: false, name: "3" },
52: { shift: false, altgr: false, name: "4" },
53: { shift: false, altgr: false, name: "5" },
54: { shift: false, altgr: false, name: "6" },
55: { shift: false, altgr: false, name: "7" },
56: { shift: false, altgr: false, name: "8" },
57: { shift: false, altgr: false, name: "9" },
58: { shift: true, altgr: false, name: "colon" },
59: { shift: true, altgr: false, name: "semicolon" },
60: { shift: false, altgr: false, name: "less" },
61: { shift: true, altgr: false, name: "equal" },
62: { shift: true, altgr: false, name: "greater" },
63: { shift: true, altgr: false, name: "question" },
64: { shift: false, altgr: true, name: "at" },
65: { shift: true, altgr: false, name: "A" },
66: { shift: true, altgr: false, name: "B" },
67: { shift: true, altgr: false, name: "C" },
68: { shift: true, altgr: false, name: "D" },
69: { shift: true, altgr: false, name: "E" },
70: { shift: true, altgr: false, name: "F" },
71: { shift: true, altgr: false, name: "G" },
72: { shift: true, altgr: false, name: "H" },
73: { shift: true, altgr: false, name: "I" },
74: { shift: true, altgr: false, name: "J" },
75: { shift: true, altgr: false, name: "K" },
76: { shift: true, altgr: false, name: "L" },
77: { shift: true, altgr: false, name: "M" },
78: { shift: true, altgr: false, name: "N" },
79: { shift: true, altgr: false, name: "O" },
80: { shift: true, altgr: false, name: "P" },
81: { shift: true, altgr: false, name: "Q" },
82: { shift: true, altgr: false, name: "R" },
83: { shift: true, altgr: false, name: "S" },
84: { shift: true, altgr: false, name: "T" },
85: { shift: true, altgr: false, name: "U" },
86: { shift: true, altgr: false, name: "V" },
87: { shift: true, altgr: false, name: "W" },
88: { shift: true, altgr: false, name: "X" },
89: { shift: true, altgr: false, name: "Y" },
90: { shift: true, altgr: false, name: "Z" },
91: { shift: false, altgr: true, name: "bracketleft" },
92: { shift: false, altgr: false, name: "backslash" },
93: { shift: false, altgr: true, name: "bracketright" },
94: { shift: true, altgr: false, name: "asciicircum" },
95: { shift: true, altgr: false, name: "underscore" },
96: { shift: true, altgr: true, name: "grave" },
97: { shift: false, altgr: false, name: "a" },
98: { shift: false, altgr: false, name: "b" },
99: { shift: false, altgr: false, name: "c" },
100: { shift: false, altgr: false, name: "d" },
101: { shift: false, altgr: false, name: "e" },
102: { shift: false, altgr: false, name: "f" },
103: { shift: false, altgr: false, name: "g" },
104: { shift: false, altgr: false, name: "h" },
105: { shift: false, altgr: false, name: "i" },
106: { shift: false, altgr: false, name: "j" },
107: { shift: false, altgr: false, name: "k" },
108: { shift: false, altgr: false, name: "l" },
109: { shift: false, altgr: false, name: "m" },
110: { shift: false, altgr: false, name: "n" },
111: { shift: false, altgr: false, name: "o" },
112: { shift: false, altgr: false, name: "p" },
113: { shift: false, altgr: false, name: "q" },
114: { shift: false, altgr: false, name: "r" },
115: { shift: false, altgr: false, name: "s" },
116: { shift: false, altgr: false, name: "t" },
117: { shift: false, altgr: false, name: "u" },
118: { shift: false, altgr: false, name: "v" },
119: { shift: false, altgr: false, name: "w" },
120: { shift: false, altgr: false, name: "x" },
121: { shift: false, altgr: false, name: "y" },
122: { shift: false, altgr: false, name: "z" },
123: { shift: false, altgr: true, name: "braceleft" },
124: { shift: true, altgr: false, name: "bar" },
125: { shift: false, altgr: true, name: "braceright" },
126: { shift: false, altgr: true, name: "asciitilde" },
161: { shift: true, altgr: true, name: "exclamdown" },
162: { shift: false, altgr: true, name: "cent" },
163: { shift: true, altgr: false, name: "sterling" },
165: { shift: true, altgr: true, name: "yen" },
166: { shift: true, altgr: true, name: "brokenbar" },
167: { shift: true, altgr: false, name: "section" },
169: { shift: true, altgr: true, name: "copyright" },
170: { shift: true, altgr: true, name: "ordfeminine" },
171: { shift: false, altgr: true, name: "guillemotleft" },
172: { shift: false, altgr: true, name: "notsign" },
174: { shift: true, altgr: true, name: "registered" },
176: { shift: true, altgr: false, name: "degree" },
177: { shift: true, altgr: true, name: "plusminus" },
178: { shift: false, altgr: true, name: "twosuperior" },
179: { shift: false, altgr: true, name: "threesuperior" },
181: { shift: false, altgr: true, name: "mu" },
182: { shift: false, altgr: true, name: "paragraph" },
183: { shift: false, altgr: true, name: "periodcentered" },
185: { shift: false, altgr: true, name: "onesuperior" },
186: { shift: true, altgr: true, name: "masculine" },
187: { shift: false, altgr: true, name: "guillemotright" },
188: { shift: false, altgr: true, name: "onequarter" },
189: { shift: false, altgr: true, name: "onehalf" },
190: { shift: false, altgr: true, name: "threequarters" },
191: { shift: true, altgr: true, name: "questiondown" },
198: { shift: true, altgr: true, name: "AE" },
208: { shift: true, altgr: true, name: "ETH" },
215: { shift: true, altgr: true, name: "multiply" },
216: { shift: true, altgr: true, name: "Ooblique" },
222: { shift: true, altgr: true, name: "THORN" },
223: { shift: false, altgr: true, name: "ssharp" },
224: { shift: false, altgr: false, name: "agrave" },
230: { shift: false, altgr: true, name: "ae" },
231: { shift: true, altgr: false, name: "ccedilla" },
232: { shift: false, altgr: false, name: "egrave" },
233: { shift: true, altgr: false, name: "eacute" },
236: { shift: false, altgr: false, name: "igrave" },
240: { shift: false, altgr: true, name: "eth" },
242: { shift: false, altgr: false, name: "ograve" },
247: { shift: true, altgr: true, name: "division" },
248: { shift: false, altgr: true, name: "oslash" },
249: { shift: false, altgr: false, name: "ugrave" },
254: { shift: false, altgr: true, name: "thorn" },
419: { shift: true, altgr: true, name: "Lstroke" },
435: { shift: false, altgr: true, name: "lstroke" },
8364: { shift: false, altgr: true, name: "EuroSign" },
65104: { shift: false, altgr: true, name: "dead_grave" },
65108: { shift: true, altgr: true, name: "dead_macron" },
65109: { shift: true, altgr: true, name: "dead_breve" },
65110: { shift: true, altgr: true, name: "dead_abovedot" },
65112: { shift: true, altgr: true, name: "dead_abovering" },
65113: { shift: true, altgr: true, name: "dead_doubleacute" },
65116: { shift: true, altgr: true, name: "dead_ogonek" },
65120: { shift: false, altgr: true, name: "dead_belowdot" },
65288: { shift: false, altgr: false, name: "BackSpace" },
65289: { shift: false, altgr: false, name: "Tab" },
65293: { shift: false, altgr: false, name: "Return" },
65300: { shift: false, altgr: false, name: "Scroll_Lock" },
65301: { shift: false, altgr: false, name: "Sys_Req" },
65307: { shift: false, altgr: false, name: "Escape" },
65360: { shift: false, altgr: false, name: "Home" },
65361: { shift: false, altgr: false, name: "Left" },
65362: { shift: false, altgr: false, name: "Up" },
65363: { shift: false, altgr: false, name: "Right" },
65364: { shift: false, altgr: false, name: "Down" },
65365: { shift: false, altgr: false, name: "Page_Up" },
65366: { shift: false, altgr: false, name: "Page_Down" },
65367: { shift: false, altgr: false, name: "End" },
65377: { shift: false, altgr: false, name: "Print" },
65379: { shift: false, altgr: false, name: "Insert" },
65407: { shift: false, altgr: false, name: "Num_Lock" },
65421: { shift: false, altgr: false, name: "KP_Enter" },
65429: { shift: false, altgr: false, name: "KP_Home" },
65430: { shift: false, altgr: false, name: "KP_Left" },
65431: { shift: false, altgr: false, name: "KP_Up" },
65432: { shift: false, altgr: false, name: "KP_Right" },
65433: { shift: false, altgr: false, name: "KP_Down" },
65434: { shift: false, altgr: false, name: "KP_Prior" },
65435: { shift: false, altgr: false, name: "KP_Next" },
65436: { shift: false, altgr: false, name: "KP_End" },
65437: { shift: false, altgr: false, name: "KP_Begin" },
65438: { shift: false, altgr: false, name: "KP_Insert" },
65439: { shift: false, altgr: false, name: "KP_Delete" },
65450: { shift: false, altgr: false, name: "KP_Multiply" },
65451: { shift: false, altgr: false, name: "KP_Add" },
65452: { shift: false, altgr: false, name: "KP_Separator" },
65453: { shift: false, altgr: false, name: "KP_Subtract" },
65454: { shift: false, altgr: false, name: "KP_Decimal" },
65455: { shift: false, altgr: false, name: "KP_Divide" },
65456: { shift: false, altgr: false, name: "KP_0" },
65457: { shift: false, altgr: false, name: "KP_1" },
65458: { shift: false, altgr: false, name: "KP_2" },
65459: { shift: false, altgr: false, name: "KP_3" },
65460: { shift: false, altgr: false, name: "KP_4" },
65461: { shift: false, altgr: false, name: "KP_5" },
65462: { shift: false, altgr: false, name: "KP_6" },
65463: { shift: false, altgr: false, name: "KP_7" },
65464: { shift: false, altgr: false, name: "KP_8" },
65465: { shift: false, altgr: false, name: "KP_9" },
65470: { shift: false, altgr: false, name: "F1" },
65471: { shift: false, altgr: false, name: "F2" },
65472: { shift: false, altgr: false, name: "F3" },
65473: { shift: false, altgr: false, name: "F4" },
65474: { shift: false, altgr: false, name: "F5" },
65475: { shift: false, altgr: false, name: "F6" },
65476: { shift: false, altgr: false, name: "F7" },
65477: { shift: false, altgr: false, name: "F8" },
65478: { shift: false, altgr: false, name: "F9" },
65479: { shift: false, altgr: false, name: "F10" },
65480: { shift: false, altgr: false, name: "F11" },
65481: { shift: false, altgr: false, name: "F12" },
65509: { shift: false, altgr: false, name: "Caps_Lock" },
65535: { shift: false, altgr: false, name: "Delete" }
},
'ja': {
32: { shift: false, altgr: false, name: "space" },
33: { shift: true, altgr: false, name: "exclam" },
34: { shift: true, altgr: false, name: "quotedbl" },
35: { shift: true, altgr: false, name: "numbersign" },
36: { shift: true, altgr: false, name: "dollar" },
37: { shift: true, altgr: false, name: "percent" },
38: { shift: true, altgr: false, name: "ampersand" },
39: { shift: true, altgr: false, name: "apostrophe" },
40: { shift: true, altgr: false, name: "parenleft" },
41: { shift: true, altgr: false, name: "parenright" },
42: { shift: true, altgr: false, name: "asterisk" },
43: { shift: true, altgr: false, name: "plus" },
44: { shift: false, altgr: false, name: "comma" },
45: { shift: false, altgr: false, name: "minus" },
46: { shift: false, altgr: false, name: "period" },
47: { shift: false, altgr: false, name: "slash" },
48: { shift: false, altgr: false, name: "0" },
49: { shift: false, altgr: false, name: "1" },
50: { shift: false, altgr: false, name: "2" },
51: { shift: false, altgr: false, name: "3" },
52: { shift: false, altgr: false, name: "4" },
53: { shift: false, altgr: false, name: "5" },
54: { shift: false, altgr: false, name: "6" },
55: { shift: false, altgr: false, name: "7" },
56: { shift: false, altgr: false, name: "8" },
57: { shift: false, altgr: false, name: "9" },
58: { shift: false, altgr: false, name: "colon" },
59: { shift: false, altgr: false, name: "semicolon" },
60: { shift: true, altgr: false, name: "less" },
61: { shift: true, altgr: false, name: "equal" },
62: { shift: true, altgr: false, name: "greater" },
63: { shift: true, altgr: false, name: "question" },
64: { shift: false, altgr: false, name: "at" },
65: { shift: true, altgr: false, name: "A" },
66: { shift: true, altgr: false, name: "B" },
67: { shift: true, altgr: false, name: "C" },
68: { shift: true, altgr: false, name: "D" },
69: { shift: true, altgr: false, name: "E" },
70: { shift: true, altgr: false, name: "F" },
71: { shift: true, altgr: false, name: "G" },
72: { shift: true, altgr: false, name: "H" },
73: { shift: true, altgr: false, name: "I" },
74: { shift: true, altgr: false, name: "J" },
75: { shift: true, altgr: false, name: "K" },
76: { shift: true, altgr: false, name: "L" },
77: { shift: true, altgr: false, name: "M" },
78: { shift: true, altgr: false, name: "N" },
79: { shift: true, altgr: false, name: "O" },
80: { shift: true, altgr: false, name: "P" },
81: { shift: true, altgr: false, name: "Q" },
82: { shift: true, altgr: false, name: "R" },
83: { shift: true, altgr: false, name: "S" },
84: { shift: true, altgr: false, name: "T" },
85: { shift: true, altgr: false, name: "U" },
86: { shift: true, altgr: false, name: "V" },
87: { shift: true, altgr: false, name: "W" },
88: { shift: true, altgr: false, name: "X" },
89: { shift: true, altgr: false, name: "Y" },
90: { shift: true, altgr: false, name: "Z" },
91: { shift: false, altgr: false, name: "bracketleft" },
92: { shift: false, altgr: false, name: "backslash" },
93: { shift: false, altgr: false, name: "bracketright" },
94: { shift: false, altgr: false, name: "asciicircum" },
95: { shift: true, altgr: false, name: "underscore" },
96: { shift: true, altgr: false, name: "grave" },
97: { shift: false, altgr: false, name: "a" },
98: { shift: false, altgr: false, name: "b" },
99: { shift: false, altgr: false, name: "c" },
100: { shift: false, altgr: false, name: "d" },
101: { shift: false, altgr: false, name: "e" },
102: { shift: false, altgr: false, name: "f" },
103: { shift: false, altgr: false, name: "g" },
104: { shift: false, altgr: false, name: "h" },
105: { shift: false, altgr: false, name: "i" },
106: { shift: false, altgr: false, name: "j" },
107: { shift: false, altgr: false, name: "k" },
108: { shift: false, altgr: false, name: "l" },
109: { shift: false, altgr: false, name: "m" },
110: { shift: false, altgr: false, name: "n" },
111: { shift: false, altgr: false, name: "o" },
112: { shift: false, altgr: false, name: "p" },
113: { shift: false, altgr: false, name: "q" },
114: { shift: false, altgr: false, name: "r" },
115: { shift: false, altgr: false, name: "s" },
116: { shift: false, altgr: false, name: "t" },
117: { shift: false, altgr: false, name: "u" },
118: { shift: false, altgr: false, name: "v" },
119: { shift: false, altgr: false, name: "w" },
120: { shift: false, altgr: false, name: "x" },
121: { shift: false, altgr: false, name: "y" },
122: { shift: false, altgr: false, name: "z" },
123: { shift: true, altgr: false, name: "braceleft" },
124: { shift: true, altgr: false, name: "bar" },
125: { shift: true, altgr: false, name: "braceright" },
126: { shift: true, altgr: false, name: "asciitilde" },
165: { shift: false, altgr: false, name: "yen" },
166: { shift: true, altgr: true, name: "brokenbar" },
65288: { shift: false, altgr: false, name: "BackSpace" },
65289: { shift: false, altgr: false, name: "Tab" },
65293: { shift: false, altgr: false, name: "Return" },
65300: { shift: false, altgr: false, name: "Scroll_Lock" },
65301: { shift: false, altgr: false, name: "Sys_Req" },
65307: { shift: false, altgr: false, name: "Escape" },
65314: { shift: false, altgr: false, name: "Muhenkan" },
65315: { shift: false, altgr: false, name: "Henkan_Mode_Real" },
65317: { shift: false, altgr: false, name: "Katakana_Real" },
65319: { shift: false, altgr: false, name: "Katakana" },
65322: { shift: false, altgr: false, name: "Zenkaku_Hankaku" },
65328: { shift: true, altgr: false, name: "Eisu_toggle" },
65342: { shift: false, altgr: false, name: "Henkan_Mode_Ultra" },
65360: { shift: false, altgr: false, name: "Home" },
65361: { shift: false, altgr: false, name: "Left" },
65362: { shift: false, altgr: false, name: "Up" },
65363: { shift: false, altgr: false, name: "Right" },
65364: { shift: false, altgr: false, name: "Down" },
65365: { shift: false, altgr: false, name: "Page_Up" },
65366: { shift: false, altgr: false, name: "Page_Down" },
65367: { shift: false, altgr: false, name: "End" },
65377: { shift: false, altgr: false, name: "Print" },
65379: { shift: false, altgr: false, name: "Insert" },
65407: { shift: false, altgr: false, name: "Num_Lock" },
65421: { shift: false, altgr: false, name: "KP_Enter" },
65429: { shift: false, altgr: false, name: "KP_Home" },
65430: { shift: false, altgr: false, name: "KP_Left" },
65431: { shift: false, altgr: false, name: "KP_Up" },
65432: { shift: false, altgr: false, name: "KP_Right" },
65433: { shift: false, altgr: false, name: "KP_Down" },
65434: { shift: false, altgr: false, name: "KP_Prior" },
65435: { shift: false, altgr: false, name: "KP_Next" },
65436: { shift: false, altgr: false, name: "KP_End" },
65437: { shift: false, altgr: false, name: "KP_Begin" },
65438: { shift: false, altgr: false, name: "KP_Insert" },
65439: { shift: false, altgr: false, name: "KP_Delete" },
65445: { shift: false, altgr: false, name: "backslash_ja" },
65450: { shift: false, altgr: false, name: "KP_Multiply" },
65451: { shift: false, altgr: false, name: "KP_Add" },
65452: { shift: false, altgr: false, name: "KP_Separator" },
65453: { shift: false, altgr: false, name: "KP_Subtract" },
65454: { shift: false, altgr: false, name: "KP_Decimal" },
65455: { shift: false, altgr: false, name: "KP_Divide" },
65456: { shift: false, altgr: false, name: "KP_0" },
65457: { shift: false, altgr: false, name: "KP_1" },
65458: { shift: false, altgr: false, name: "KP_2" },
65459: { shift: false, altgr: false, name: "KP_3" },
65460: { shift: false, altgr: false, name: "KP_4" },
65461: { shift: false, altgr: false, name: "KP_5" },
65462: { shift: false, altgr: false, name: "KP_6" },
65463: { shift: false, altgr: false, name: "KP_7" },
65464: { shift: false, altgr: false, name: "KP_8" },
65465: { shift: false, altgr: false, name: "KP_9" },
65470: { shift: false, altgr: false, name: "F1" },
65471: { shift: false, altgr: false, name: "F2" },
65472: { shift: false, altgr: false, name: "F3" },
65473: { shift: false, altgr: false, name: "F4" },
65474: { shift: false, altgr: false, name: "F5" },
65475: { shift: false, altgr: false, name: "F6" },
65476: { shift: false, altgr: false, name: "F7" },
65477: { shift: false, altgr: false, name: "F8" },
65478: { shift: false, altgr: false, name: "F9" },
65479: { shift: false, altgr: false, name: "F10" },
65480: { shift: false, altgr: false, name: "F11" },
65481: { shift: false, altgr: false, name: "F12" },
65509: { shift: false, altgr: false, name: "Caps_Lock" },
65535: { shift: false, altgr: false, name: "Delete" }
},
'lt': {
32: { shift: false, altgr: false, name: "space" },
33: { shift: true, altgr: false, name: "exclam" },
34: { shift: true, altgr: false, name: "quotedbl" },
35: { shift: true, altgr: false, name: "numbersign" },
36: { shift: true, altgr: false, name: "dollar" },
37: { shift: true, altgr: false, name: "percent" },
38: { shift: true, altgr: false, name: "ampersand" },
39: { shift: false, altgr: false, name: "apostrophe" },
40: { shift: true, altgr: false, name: "parenleft" },
41: { shift: true, altgr: false, name: "parenright" },
42: { shift: true, altgr: false, name: "asterisk" },
43: { shift: true, altgr: false, name: "plus" },
44: { shift: false, altgr: false, name: "comma" },
45: { shift: false, altgr: false, name: "minus" },
46: { shift: false, altgr: false, name: "period" },
47: { shift: false, altgr: false, name: "slash" },
48: { shift: false, altgr: false, name: "0" },
49: { shift: false, altgr: false, name: "1" },
50: { shift: false, altgr: false, name: "2" },
51: { shift: false, altgr: false, name: "3" },
52: { shift: false, altgr: false, name: "4" },
53: { shift: false, altgr: false, name: "5" },
54: { shift: false, altgr: false, name: "6" },
55: { shift: false, altgr: false, name: "7" },
56: { shift: false, altgr: false, name: "8" },
57: { shift: false, altgr: false, name: "9" },
58: { shift: true, altgr: false, name: "colon" },
59: { shift: false, altgr: false, name: "semicolon" },
60: { shift: true, altgr: false, name: "less" },
61: { shift: false, altgr: false, name: "equal" },
62: { shift: true, altgr: false, name: "greater" },
63: { shift: true, altgr: false, name: "question" },
64: { shift: true, altgr: false, name: "at" },
65: { shift: true, altgr: false, name: "A" },
66: { shift: true, altgr: false, name: "B" },
67: { shift: true, altgr: false, name: "C" },
68: { shift: true, altgr: false, name: "D" },
69: { shift: true, altgr: false, name: "E" },
70: { shift: true, altgr: false, name: "F" },
71: { shift: true, altgr: false, name: "G" },
72: { shift: true, altgr: false, name: "H" },
73: { shift: true, altgr: false, name: "I" },
74: { shift: true, altgr: false, name: "J" },
75: { shift: true, altgr: false, name: "K" },
76: { shift: true, altgr: false, name: "L" },
77: { shift: true, altgr: false, name: "M" },
78: { shift: true, altgr: false, name: "N" },
79: { shift: true, altgr: false, name: "O" },
80: { shift: true, altgr: false, name: "P" },
81: { shift: true, altgr: false, name: "Q" },
82: { shift: true, altgr: false, name: "R" },
83: { shift: true, altgr: false, name: "S" },
84: { shift: true, altgr: false, name: "T" },
85: { shift: true, altgr: false, name: "U" },
86: { shift: true, altgr: false, name: "V" },
87: { shift: true, altgr: false, name: "W" },
88: { shift: true, altgr: false, name: "X" },
89: { shift: true, altgr: false, name: "Y" },
90: { shift: true, altgr: false, name: "Z" },
91: { shift: false, altgr: false, name: "bracketleft" },
92: { shift: false, altgr: false, name: "backslash" },
93: { shift: false, altgr: false, name: "bracketright" },
94: { shift: true, altgr: false, name: "asciicircum" },
95: { shift: true, altgr: false, name: "underscore" },
96: { shift: false, altgr: false, name: "grave" },
97: { shift: false, altgr: false, name: "a" },
98: { shift: false, altgr: false, name: "b" },
99: { shift: false, altgr: false, name: "c" },
100: { shift: false, altgr: false, name: "d" },
101: { shift: false, altgr: false, name: "e" },
102: { shift: false, altgr: false, name: "f" },
103: { shift: false, altgr: false, name: "g" },
104: { shift: false, altgr: false, name: "h" },
105: { shift: false, altgr: false, name: "i" },
106: { shift: false, altgr: false, name: "j" },
107: { shift: false, altgr: false, name: "k" },
108: { shift: false, altgr: false, name: "l" },
109: { shift: false, altgr: false, name: "m" },
110: { shift: false, altgr: false, name: "n" },
111: { shift: false, altgr: false, name: "o" },
112: { shift: false, altgr: false, name: "p" },
113: { shift: false, altgr: false, name: "q" },
114: { shift: false, altgr: false, name: "r" },
115: { shift: false, altgr: false, name: "s" },
116: { shift: false, altgr: false, name: "t" },
117: { shift: false, altgr: false, name: "u" },
118: { shift: false, altgr: false, name: "v" },
119: { shift: false, altgr: false, name: "w" },
120: { shift: false, altgr: false, name: "x" },
121: { shift: false, altgr: false, name: "y" },
122: { shift: false, altgr: false, name: "z" },
123: { shift: true, altgr: false, name: "braceleft" },
124: { shift: true, altgr: false, name: "bar" },
125: { shift: true, altgr: false, name: "braceright" },
126: { shift: true, altgr: false, name: "asciitilde" },
166: { shift: true, altgr: true, name: "brokenbar" },
417: { shift: true, altgr: true, name: "Aogonek" },
433: { shift: false, altgr: true, name: "aogonek" },
458: { shift: true, altgr: true, name: "Eogonek" },
490: { shift: false, altgr: true, name: "eogonek" },
8364: { shift: true, altgr: false, name: "EuroSign" },
65288: { shift: false, altgr: false, name: "BackSpace" },
65289: { shift: false, altgr: false, name: "Tab" },
65293: { shift: false, altgr: false, name: "Return" },
65300: { shift: false, altgr: false, name: "Scroll_Lock" },
65301: { shift: false, altgr: false, name: "Sys_Req" },
65307: { shift: false, altgr: false, name: "Escape" },
65360: { shift: false, altgr: false, name: "Home" },
65361: { shift: false, altgr: false, name: "Left" },
65362: { shift: false, altgr: false, name: "Up" },
65363: { shift: false, altgr: false, name: "Right" },
65364: { shift: false, altgr: false, name: "Down" },
65365: { shift: false, altgr: false, name: "Page_Up" },
65366: { shift: false, altgr: false, name: "Page_Down" },
65367: { shift: false, altgr: false, name: "End" },
65377: { shift: false, altgr: false, name: "Print" },
65379: { shift: false, altgr: false, name: "Insert" },
65407: { shift: false, altgr: false, name: "Num_Lock" },
65421: { shift: false, altgr: false, name: "KP_Enter" },
65429: { shift: false, altgr: false, name: "KP_Home" },
65430: { shift: false, altgr: false, name: "KP_Left" },
65431: { shift: false, altgr: false, name: "KP_Up" },
65432: { shift: false, altgr: false, name: "KP_Right" },
65433: { shift: false, altgr: false, name: "KP_Down" },
65434: { shift: false, altgr: false, name: "KP_Prior" },
65435: { shift: false, altgr: false, name: "KP_Next" },
65436: { shift: false, altgr: false, name: "KP_End" },
65437: { shift: false, altgr: false, name: "KP_Begin" },
65438: { shift: false, altgr: false, name: "KP_Insert" },
65439: { shift: false, altgr: false, name: "KP_Delete" },
65450: { shift: false, altgr: false, name: "KP_Multiply" },
65451: { shift: false, altgr: false, name: "KP_Add" },
65452: { shift: false, altgr: false, name: "KP_Separator" },
65453: { shift: false, altgr: false, name: "KP_Subtract" },
65454: { shift: false, altgr: false, name: "KP_Decimal" },
65455: { shift: false, altgr: false, name: "KP_Divide" },
65456: { shift: false, altgr: false, name: "KP_0" },
65457: { shift: false, altgr: false, name: "KP_1" },
65458: { shift: false, altgr: false, name: "KP_2" },
65459: { shift: false, altgr: false, name: "KP_3" },
65460: { shift: false, altgr: false, name: "KP_4" },
65461: { shift: false, altgr: false, name: "KP_5" },
65462: { shift: false, altgr: false, name: "KP_6" },
65463: { shift: false, altgr: false, name: "KP_7" },
65464: { shift: false, altgr: false, name: "KP_8" },
65465: { shift: false, altgr: false, name: "KP_9" },
65470: { shift: false, altgr: false, name: "F1" },
65471: { shift: false, altgr: false, name: "F2" },
65472: { shift: false, altgr: false, name: "F3" },
65473: { shift: false, altgr: false, name: "F4" },
65474: { shift: false, altgr: false, name: "F5" },
65475: { shift: false, altgr: false, name: "F6" },
65476: { shift: false, altgr: false, name: "F7" },
65477: { shift: false, altgr: false, name: "F8" },
65478: { shift: false, altgr: false, name: "F9" },
65479: { shift: false, altgr: false, name: "F10" },
65480: { shift: false, altgr: false, name: "F11" },
65481: { shift: false, altgr: false, name: "F12" },
65509: { shift: false, altgr: false, name: "Caps_Lock" },
65535: { shift: false, altgr: false, name: "Delete" }
},
'lv': {
32: { shift: false, altgr: false, name: "space" },
33: { shift: true, altgr: false, name: "exclam" },
34: { shift: true, altgr: false, name: "quotedbl" },
35: { shift: true, altgr: false, name: "numbersign" },
36: { shift: true, altgr: false, name: "dollar" },
37: { shift: true, altgr: false, name: "percent" },
38: { shift: true, altgr: false, name: "ampersand" },
39: { shift: true, altgr: true, name: "apostrophe" },
40: { shift: true, altgr: false, name: "parenleft" },
41: { shift: true, altgr: false, name: "parenright" },
42: { shift: true, altgr: false, name: "asterisk" },
43: { shift: true, altgr: false, name: "plus" },
44: { shift: false, altgr: false, name: "comma" },
45: { shift: false, altgr: false, name: "minus" },
46: { shift: false, altgr: false, name: "period" },
47: { shift: false, altgr: false, name: "slash" },
48: { shift: false, altgr: false, name: "0" },
49: { shift: false, altgr: false, name: "1" },
50: { shift: false, altgr: false, name: "2" },
51: { shift: false, altgr: false, name: "3" },
52: { shift: false, altgr: false, name: "4" },
53: { shift: false, altgr: false, name: "5" },
54: { shift: false, altgr: false, name: "6" },
55: { shift: false, altgr: false, name: "7" },
56: { shift: false, altgr: false, name: "8" },
57: { shift: false, altgr: false, name: "9" },
58: { shift: true, altgr: false, name: "colon" },
59: { shift: false, altgr: false, name: "semicolon" },
60: { shift: true, altgr: false, name: "less" },
61: { shift: false, altgr: false, name: "equal" },
62: { shift: true, altgr: false, name: "greater" },
63: { shift: true, altgr: false, name: "question" },
64: { shift: false, altgr: true, name: "at" },
65: { shift: true, altgr: false, name: "A" },
66: { shift: true, altgr: false, name: "B" },
67: { shift: true, altgr: false, name: "C" },
68: { shift: true, altgr: false, name: "D" },
69: { shift: true, altgr: false, name: "E" },
70: { shift: true, altgr: false, name: "F" },
71: { shift: true, altgr: false, name: "G" },
72: { shift: true, altgr: false, name: "H" },
73: { shift: true, altgr: false, name: "I" },
74: { shift: true, altgr: false, name: "J" },
75: { shift: true, altgr: false, name: "K" },
76: { shift: true, altgr: false, name: "L" },
77: { shift: true, altgr: false, name: "M" },
78: { shift: true, altgr: false, name: "N" },
79: { shift: true, altgr: false, name: "O" },
80: { shift: true, altgr: false, name: "P" },
81: { shift: true, altgr: false, name: "Q" },
82: { shift: true, altgr: false, name: "R" },
83: { shift: true, altgr: false, name: "S" },
84: { shift: true, altgr: false, name: "T" },
85: { shift: true, altgr: false, name: "U" },
86: { shift: true, altgr: false, name: "V" },
87: { shift: true, altgr: false, name: "W" },
88: { shift: true, altgr: false, name: "X" },
89: { shift: true, altgr: false, name: "Y" },
90: { shift: true, altgr: false, name: "Z" },
91: { shift: false, altgr: false, name: "bracketleft" },
92: { shift: false, altgr: false, name: "backslash" },
93: { shift: false, altgr: false, name: "bracketright" },
94: { shift: true, altgr: false, name: "asciicircum" },
95: { shift: true, altgr: false, name: "underscore" },
96: { shift: true, altgr: true, name: "grave" },
97: { shift: false, altgr: false, name: "a" },
98: { shift: false, altgr: false, name: "b" },
99: { shift: false, altgr: false, name: "c" },
100: { shift: false, altgr: false, name: "d" },
101: { shift: false, altgr: false, name: "e" },
102: { shift: false, altgr: false, name: "f" },
103: { shift: false, altgr: false, name: "g" },
104: { shift: false, altgr: false, name: "h" },
105: { shift: false, altgr: false, name: "i" },
106: { shift: false, altgr: false, name: "j" },
107: { shift: false, altgr: false, name: "k" },
108: { shift: false, altgr: false, name: "l" },
109: { shift: false, altgr: false, name: "m" },
110: { shift: false, altgr: false, name: "n" },
111: { shift: false, altgr: false, name: "o" },
112: { shift: false, altgr: false, name: "p" },
113: { shift: false, altgr: false, name: "q" },
114: { shift: false, altgr: false, name: "r" },
115: { shift: false, altgr: false, name: "s" },
116: { shift: false, altgr: false, name: "t" },
117: { shift: false, altgr: false, name: "u" },
118: { shift: false, altgr: false, name: "v" },
119: { shift: false, altgr: false, name: "w" },
120: { shift: false, altgr: false, name: "x" },
121: { shift: false, altgr: false, name: "y" },
122: { shift: false, altgr: false, name: "z" },
123: { shift: true, altgr: false, name: "braceleft" },
124: { shift: true, altgr: false, name: "bar" },
125: { shift: true, altgr: false, name: "braceright" },
126: { shift: true, altgr: false, name: "asciitilde" },
160: { shift: false, altgr: true, name: "nobreakspace" },
161: { shift: true, altgr: true, name: "exclamdown" },
162: { shift: true, altgr: true, name: "cent" },
163: { shift: true, altgr: true, name: "sterling" },
165: { shift: true, altgr: true, name: "yen" },
166: { shift: true, altgr: true, name: "brokenbar" },
170: { shift: true, altgr: true, name: "ordfeminine" },
172: { shift: false, altgr: true, name: "notsign" },
176: { shift: true, altgr: true, name: "degree" },
177: { shift: true, altgr: true, name: "plusminus" },
178: { shift: false, altgr: true, name: "twosuperior" },
179: { shift: false, altgr: true, name: "threesuperior" },
181: { shift: false, altgr: true, name: "mu" },
183: { shift: false, altgr: true, name: "periodcentered" },
185: { shift: false, altgr: true, name: "onesuperior" },
186: { shift: true, altgr: true, name: "masculine" },
187: { shift: false, altgr: true, name: "guillemotright" },
189: { shift: false, altgr: true, name: "onehalf" },
190: { shift: false, altgr: true, name: "threequarters" },
191: { shift: true, altgr: true, name: "questiondown" },
208: { shift: true, altgr: true, name: "ETH" },
215: { shift: true, altgr: true, name: "multiply" },
222: { shift: true, altgr: true, name: "THORN" },
240: { shift: false, altgr: true, name: "eth" },
247: { shift: true, altgr: true, name: "division" },
254: { shift: false, altgr: true, name: "thorn" },
419: { shift: true, altgr: true, name: "Lstroke" },
435: { shift: false, altgr: true, name: "lstroke" },
8364: { shift: false, altgr: true, name: "EuroSign" },
65104: { shift: false, altgr: true, name: "dead_grave" },
65105: { shift: false, altgr: true, name: "dead_acute" },
65107: { shift: false, altgr: true, name: "dead_tilde" },
65108: { shift: true, altgr: true, name: "dead_macron" },
65109: { shift: true, altgr: true, name: "dead_breve" },
65110: { shift: true, altgr: true, name: "dead_abovedot" },
65111: { shift: false, altgr: true, name: "dead_diaeresis" },
65112: { shift: true, altgr: true, name: "dead_abovering" },
65113: { shift: true, altgr: true, name: "dead_doubleacute" },
65115: { shift: false, altgr: true, name: "dead_cedilla" },
65116: { shift: true, altgr: true, name: "dead_ogonek" },
65120: { shift: false, altgr: true, name: "dead_belowdot" },
65288: { shift: false, altgr: false, name: "BackSpace" },
65289: { shift: false, altgr: false, name: "Tab" },
65293: { shift: false, altgr: false, name: "Return" },
65300: { shift: false, altgr: false, name: "Scroll_Lock" },
65301: { shift: false, altgr: false, name: "Sys_Req" },
65307: { shift: false, altgr: false, name: "Escape" },
65360: { shift: false, altgr: false, name: "Home" },
65361: { shift: false, altgr: false, name: "Left" },
65362: { shift: false, altgr: false, name: "Up" },
65363: { shift: false, altgr: false, name: "Right" },
65364: { shift: false, altgr: false, name: "Down" },
65365: { shift: false, altgr: false, name: "Page_Up" },
65366: { shift: false, altgr: false, name: "Page_Down" },
65367: { shift: false, altgr: false, name: "End" },
65377: { shift: false, altgr: false, name: "Print" },
65379: { shift: false, altgr: false, name: "Insert" },
65407: { shift: false, altgr: false, name: "Num_Lock" },
65421: { shift: false, altgr: false, name: "KP_Enter" },
65429: { shift: false, altgr: false, name: "KP_Home" },
65430: { shift: false, altgr: false, name: "KP_Left" },
65431: { shift: false, altgr: false, name: "KP_Up" },
65432: { shift: false, altgr: false, name: "KP_Right" },
65433: { shift: false, altgr: false, name: "KP_Down" },
65434: { shift: false, altgr: false, name: "KP_Prior" },
65435: { shift: false, altgr: false, name: "KP_Next" },
65436: { shift: false, altgr: false, name: "KP_End" },
65437: { shift: false, altgr: false, name: "KP_Begin" },
65438: { shift: false, altgr: false, name: "KP_Insert" },
65439: { shift: false, altgr: false, name: "KP_Delete" },
65450: { shift: false, altgr: false, name: "KP_Multiply" },
65451: { shift: false, altgr: false, name: "KP_Add" },
65452: { shift: false, altgr: false, name: "KP_Separator" },
65453: { shift: false, altgr: false, name: "KP_Subtract" },
65454: { shift: false, altgr: false, name: "KP_Decimal" },
65455: { shift: false, altgr: false, name: "KP_Divide" },
65456: { shift: false, altgr: false, name: "KP_0" },
65457: { shift: false, altgr: false, name: "KP_1" },
65458: { shift: false, altgr: false, name: "KP_2" },
65459: { shift: false, altgr: false, name: "KP_3" },
65460: { shift: false, altgr: false, name: "KP_4" },
65461: { shift: false, altgr: false, name: "KP_5" },
65462: { shift: false, altgr: false, name: "KP_6" },
65463: { shift: false, altgr: false, name: "KP_7" },
65464: { shift: false, altgr: false, name: "KP_8" },
65465: { shift: false, altgr: false, name: "KP_9" },
65470: { shift: false, altgr: false, name: "F1" },
65471: { shift: false, altgr: false, name: "F2" },
65472: { shift: false, altgr: false, name: "F3" },
65473: { shift: false, altgr: false, name: "F4" },
65474: { shift: false, altgr: false, name: "F5" },
65475: { shift: false, altgr: false, name: "F6" },
65476: { shift: false, altgr: false, name: "F7" },
65477: { shift: false, altgr: false, name: "F8" },
65478: { shift: false, altgr: false, name: "F9" },
65479: { shift: false, altgr: false, name: "F10" },
65480: { shift: false, altgr: false, name: "F11" },
65481: { shift: false, altgr: false, name: "F12" },
65509: { shift: false, altgr: false, name: "Caps_Lock" },
65535: { shift: false, altgr: false, name: "Delete" }
},
'mk': {
32: { shift: false, altgr: false, name: "space" },
33: { shift: true, altgr: false, name: "exclam" },
34: { shift: true, altgr: false, name: "quotedbl" },
35: { shift: true, altgr: false, name: "numbersign" },
36: { shift: true, altgr: false, name: "dollar" },
37: { shift: true, altgr: false, name: "percent" },
38: { shift: true, altgr: false, name: "ampersand" },
39: { shift: false, altgr: false, name: "apostrophe" },
40: { shift: true, altgr: false, name: "parenleft" },
41: { shift: true, altgr: false, name: "parenright" },
42: { shift: true, altgr: false, name: "asterisk" },
43: { shift: true, altgr: false, name: "plus" },
44: { shift: false, altgr: false, name: "comma" },
45: { shift: false, altgr: false, name: "minus" },
46: { shift: false, altgr: false, name: "period" },
47: { shift: false, altgr: false, name: "slash" },
48: { shift: false, altgr: false, name: "0" },
49: { shift: false, altgr: false, name: "1" },
50: { shift: false, altgr: false, name: "2" },
51: { shift: false, altgr: false, name: "3" },
52: { shift: false, altgr: false, name: "4" },
53: { shift: false, altgr: false, name: "5" },
54: { shift: false, altgr: false, name: "6" },
55: { shift: false, altgr: false, name: "7" },
56: { shift: false, altgr: false, name: "8" },
57: { shift: false, altgr: false, name: "9" },
58: { shift: true, altgr: true, name: "colon" },
59: { shift: true, altgr: true, name: "semicolon" },
60: { shift: true, altgr: false, name: "less" },
61: { shift: false, altgr: false, name: "equal" },
62: { shift: true, altgr: false, name: "greater" },
63: { shift: true, altgr: false, name: "question" },
64: { shift: true, altgr: false, name: "at" },
65: { shift: true, altgr: false, name: "A" },
66: { shift: true, altgr: false, name: "B" },
67: { shift: true, altgr: false, name: "C" },
68: { shift: true, altgr: false, name: "D" },
69: { shift: true, altgr: false, name: "E" },
70: { shift: true, altgr: false, name: "F" },
71: { shift: true, altgr: false, name: "G" },
72: { shift: true, altgr: false, name: "H" },
73: { shift: true, altgr: false, name: "I" },
74: { shift: true, altgr: false, name: "J" },
75: { shift: true, altgr: false, name: "K" },
76: { shift: true, altgr: false, name: "L" },
77: { shift: true, altgr: false, name: "M" },
78: { shift: true, altgr: false, name: "N" },
79: { shift: true, altgr: false, name: "O" },
80: { shift: true, altgr: false, name: "P" },
81: { shift: true, altgr: false, name: "Q" },
82: { shift: true, altgr: false, name: "R" },
83: { shift: true, altgr: false, name: "S" },
84: { shift: true, altgr: false, name: "T" },
85: { shift: true, altgr: false, name: "U" },
86: { shift: true, altgr: false, name: "V" },
87: { shift: true, altgr: false, name: "W" },
88: { shift: true, altgr: false, name: "X" },
89: { shift: true, altgr: false, name: "Y" },
90: { shift: true, altgr: false, name: "Z" },
91: { shift: false, altgr: false, name: "bracketleft" },
92: { shift: false, altgr: false, name: "backslash" },
93: { shift: false, altgr: false, name: "bracketright" },
94: { shift: true, altgr: false, name: "asciicircum" },
95: { shift: true, altgr: false, name: "underscore" },
96: { shift: false, altgr: false, name: "grave" },
97: { shift: false, altgr: false, name: "a" },
98: { shift: false, altgr: false, name: "b" },
99: { shift: false, altgr: false, name: "c" },
100: { shift: false, altgr: false, name: "d" },
101: { shift: false, altgr: false, name: "e" },
102: { shift: false, altgr: false, name: "f" },
103: { shift: false, altgr: false, name: "g" },
104: { shift: false, altgr: false, name: "h" },
105: { shift: false, altgr: false, name: "i" },
106: { shift: false, altgr: false, name: "j" },
107: { shift: false, altgr: false, name: "k" },
108: { shift: false, altgr: false, name: "l" },
109: { shift: false, altgr: false, name: "m" },
110: { shift: false, altgr: false, name: "n" },
111: { shift: false, altgr: false, name: "o" },
112: { shift: false, altgr: false, name: "p" },
113: { shift: false, altgr: false, name: "q" },
114: { shift: false, altgr: false, name: "r" },
115: { shift: false, altgr: false, name: "s" },
116: { shift: false, altgr: false, name: "t" },
117: { shift: false, altgr: false, name: "u" },
118: { shift: false, altgr: false, name: "v" },
119: { shift: false, altgr: false, name: "w" },
120: { shift: false, altgr: false, name: "x" },
121: { shift: false, altgr: false, name: "y" },
122: { shift: false, altgr: false, name: "z" },
123: { shift: true, altgr: false, name: "braceleft" },
124: { shift: true, altgr: false, name: "bar" },
125: { shift: true, altgr: false, name: "braceright" },
126: { shift: true, altgr: false, name: "asciitilde" },
166: { shift: true, altgr: true, name: "brokenbar" },
65288: { shift: false, altgr: false, name: "BackSpace" },
65289: { shift: false, altgr: false, name: "Tab" },
65293: { shift: false, altgr: false, name: "Return" },
65300: { shift: false, altgr: false, name: "Scroll_Lock" },
65301: { shift: false, altgr: false, name: "Sys_Req" },
65307: { shift: false, altgr: false, name: "Escape" },
65360: { shift: false, altgr: false, name: "Home" },
65361: { shift: false, altgr: false, name: "Left" },
65362: { shift: false, altgr: false, name: "Up" },
65363: { shift: false, altgr: false, name: "Right" },
65364: { shift: false, altgr: false, name: "Down" },
65365: { shift: false, altgr: false, name: "Page_Up" },
65366: { shift: false, altgr: false, name: "Page_Down" },
65367: { shift: false, altgr: false, name: "End" },
65377: { shift: false, altgr: false, name: "Print" },
65379: { shift: false, altgr: false, name: "Insert" },
65407: { shift: false, altgr: false, name: "Num_Lock" },
65421: { shift: false, altgr: false, name: "KP_Enter" },
65429: { shift: false, altgr: false, name: "KP_Home" },
65430: { shift: false, altgr: false, name: "KP_Left" },
65431: { shift: false, altgr: false, name: "KP_Up" },
65432: { shift: false, altgr: false, name: "KP_Right" },
65433: { shift: false, altgr: false, name: "KP_Down" },
65434: { shift: false, altgr: false, name: "KP_Prior" },
65435: { shift: false, altgr: false, name: "KP_Next" },
65436: { shift: false, altgr: false, name: "KP_End" },
65437: { shift: false, altgr: false, name: "KP_Begin" },
65438: { shift: false, altgr: false, name: "KP_Insert" },
65439: { shift: false, altgr: false, name: "KP_Delete" },
65450: { shift: false, altgr: false, name: "KP_Multiply" },
65451: { shift: false, altgr: false, name: "KP_Add" },
65452: { shift: false, altgr: false, name: "KP_Separator" },
65453: { shift: false, altgr: false, name: "KP_Subtract" },
65454: { shift: false, altgr: false, name: "KP_Decimal" },
65455: { shift: false, altgr: false, name: "KP_Divide" },
65456: { shift: false, altgr: false, name: "KP_0" },
65457: { shift: false, altgr: false, name: "KP_1" },
65458: { shift: false, altgr: false, name: "KP_2" },
65459: { shift: false, altgr: false, name: "KP_3" },
65460: { shift: false, altgr: false, name: "KP_4" },
65461: { shift: false, altgr: false, name: "KP_5" },
65462: { shift: false, altgr: false, name: "KP_6" },
65463: { shift: false, altgr: false, name: "KP_7" },
65464: { shift: false, altgr: false, name: "KP_8" },
65465: { shift: false, altgr: false, name: "KP_9" },
65470: { shift: false, altgr: false, name: "F1" },
65471: { shift: false, altgr: false, name: "F2" },
65472: { shift: false, altgr: false, name: "F3" },
65473: { shift: false, altgr: false, name: "F4" },
65474: { shift: false, altgr: false, name: "F5" },
65475: { shift: false, altgr: false, name: "F6" },
65476: { shift: false, altgr: false, name: "F7" },
65477: { shift: false, altgr: false, name: "F8" },
65478: { shift: false, altgr: false, name: "F9" },
65479: { shift: false, altgr: false, name: "F10" },
65480: { shift: false, altgr: false, name: "F11" },
65481: { shift: false, altgr: false, name: "F12" },
65509: { shift: false, altgr: false, name: "Caps_Lock" },
65535: { shift: false, altgr: false, name: "Delete" }
},
'nl': {
32: { shift: false, altgr: false, name: "space" },
33: { shift: true, altgr: false, name: "exclam" },
35: { shift: true, altgr: false, name: "numbersign" },
36: { shift: true, altgr: false, name: "dollar" },
37: { shift: true, altgr: false, name: "percent" },
38: { shift: true, altgr: false, name: "ampersand" },
39: { shift: true, altgr: false, name: "apostrophe" },
40: { shift: true, altgr: false, name: "parenleft" },
41: { shift: true, altgr: false, name: "parenright" },
42: { shift: false, altgr: false, name: "asterisk" },
43: { shift: false, altgr: false, name: "plus" },
44: { shift: false, altgr: false, name: "comma" },
46: { shift: false, altgr: false, name: "period" },
47: { shift: false, altgr: false, name: "slash" },
48: { shift: false, altgr: false, name: "0" },
49: { shift: false, altgr: false, name: "1" },
50: { shift: false, altgr: false, name: "2" },
51: { shift: false, altgr: false, name: "3" },
52: { shift: false, altgr: false, name: "4" },
53: { shift: false, altgr: false, name: "5" },
54: { shift: false, altgr: false, name: "6" },
55: { shift: false, altgr: false, name: "7" },
56: { shift: false, altgr: false, name: "8" },
57: { shift: false, altgr: false, name: "9" },
58: { shift: true, altgr: false, name: "colon" },
59: { shift: true, altgr: false, name: "semicolon" },
60: { shift: false, altgr: false, name: "less" },
61: { shift: true, altgr: false, name: "equal" },
62: { shift: true, altgr: false, name: "greater" },
63: { shift: true, altgr: false, name: "question" },
64: { shift: false, altgr: false, name: "at" },
65: { shift: true, altgr: false, name: "A" },
66: { shift: true, altgr: false, name: "B" },
67: { shift: true, altgr: false, name: "C" },
68: { shift: true, altgr: false, name: "D" },
69: { shift: true, altgr: false, name: "E" },
70: { shift: true, altgr: false, name: "F" },
71: { shift: true, altgr: false, name: "G" },
72: { shift: true, altgr: false, name: "H" },
73: { shift: true, altgr: false, name: "I" },
74: { shift: true, altgr: false, name: "J" },
75: { shift: true, altgr: false, name: "K" },
76: { shift: true, altgr: false, name: "L" },
77: { shift: true, altgr: false, name: "M" },
78: { shift: true, altgr: false, name: "N" },
79: { shift: true, altgr: false, name: "O" },
80: { shift: true, altgr: false, name: "P" },
81: { shift: true, altgr: false, name: "Q" },
82: { shift: true, altgr: false, name: "R" },
83: { shift: true, altgr: false, name: "S" },
84: { shift: true, altgr: false, name: "T" },
85: { shift: true, altgr: false, name: "U" },
86: { shift: true, altgr: false, name: "V" },
87: { shift: true, altgr: false, name: "W" },
88: { shift: true, altgr: false, name: "X" },
89: { shift: true, altgr: false, name: "Y" },
90: { shift: true, altgr: false, name: "Z" },
91: { shift: true, altgr: false, name: "bracketleft" },
92: { shift: false, altgr: true, name: "backslash" },
93: { shift: false, altgr: false, name: "bracketright" },
95: { shift: true, altgr: false, name: "underscore" },
97: { shift: false, altgr: false, name: "a" },
98: { shift: false, altgr: false, name: "b" },
99: { shift: false, altgr: false, name: "c" },
100: { shift: false, altgr: false, name: "d" },
101: { shift: false, altgr: false, name: "e" },
102: { shift: false, altgr: false, name: "f" },
103: { shift: false, altgr: false, name: "g" },
104: { shift: false, altgr: false, name: "h" },
105: { shift: false, altgr: false, name: "i" },
106: { shift: false, altgr: false, name: "j" },
107: { shift: false, altgr: false, name: "k" },
108: { shift: false, altgr: false, name: "l" },
109: { shift: false, altgr: false, name: "m" },
110: { shift: false, altgr: false, name: "n" },
111: { shift: false, altgr: false, name: "o" },
112: { shift: false, altgr: false, name: "p" },
113: { shift: false, altgr: false, name: "q" },
114: { shift: false, altgr: false, name: "r" },
115: { shift: false, altgr: false, name: "s" },
116: { shift: false, altgr: false, name: "t" },
117: { shift: false, altgr: false, name: "u" },
118: { shift: false, altgr: false, name: "v" },
119: { shift: false, altgr: false, name: "w" },
120: { shift: false, altgr: false, name: "x" },
121: { shift: false, altgr: false, name: "y" },
122: { shift: false, altgr: false, name: "z" },
123: { shift: false, altgr: true, name: "braceleft" },
124: { shift: true, altgr: false, name: "bar" },
125: { shift: false, altgr: true, name: "braceright" },
163: { shift: false, altgr: true, name: "sterling" },
166: { shift: false, altgr: true, name: "brokenbar" },
167: { shift: true, altgr: false, name: "section" },
169: { shift: false, altgr: true, name: "copyright" },
171: { shift: false, altgr: true, name: "guillemotleft" },
172: { shift: false, altgr: true, name: "notsign" },
173: { shift: false, altgr: false, name: "hyphen" },
176: { shift: false, altgr: false, name: "degree" },
177: { shift: true, altgr: false, name: "plusminus" },
178: { shift: false, altgr: true, name: "twosuperior" },
179: { shift: false, altgr: true, name: "threesuperior" },
181: { shift: false, altgr: true, name: "mu" },
182: { shift: false, altgr: true, name: "paragraph" },
183: { shift: false, altgr: true, name: "periodcentered" },
185: { shift: false, altgr: true, name: "onesuperior" },
187: { shift: false, altgr: true, name: "guillemotright" },
188: { shift: false, altgr: true, name: "onequarter" },
189: { shift: false, altgr: true, name: "onehalf" },
190: { shift: false, altgr: true, name: "threequarters" },
223: { shift: false, altgr: true, name: "ssharp" },
8364: { shift: false, altgr: true, name: "EuroSign" },
65104: { shift: true, altgr: false, name: "dead_grave" },
65105: { shift: false, altgr: false, name: "dead_acute" },
65106: { shift: true, altgr: false, name: "dead_circumflex" },
65107: { shift: true, altgr: false, name: "dead_tilde" },
65111: { shift: false, altgr: false, name: "dead_diaeresis" },
65115: { shift: false, altgr: true, name: "dead_cedilla" },
65288: { shift: false, altgr: false, name: "BackSpace" },
65289: { shift: false, altgr: false, name: "Tab" },
65293: { shift: false, altgr: false, name: "Return" },
65300: { shift: false, altgr: false, name: "Scroll_Lock" },
65301: { shift: false, altgr: false, name: "Sys_Req" },
65307: { shift: false, altgr: false, name: "Escape" },
65360: { shift: false, altgr: false, name: "Home" },
65361: { shift: false, altgr: false, name: "Left" },
65362: { shift: false, altgr: false, name: "Up" },
65363: { shift: false, altgr: false, name: "Right" },
65364: { shift: false, altgr: false, name: "Down" },
65365: { shift: false, altgr: false, name: "Page_Up" },
65366: { shift: false, altgr: false, name: "Page_Down" },
65367: { shift: false, altgr: false, name: "End" },
65377: { shift: false, altgr: false, name: "Print" },
65379: { shift: false, altgr: false, name: "Insert" },
65407: { shift: false, altgr: false, name: "Num_Lock" },
65421: { shift: false, altgr: false, name: "KP_Enter" },
65429: { shift: false, altgr: false, name: "KP_Home" },
65430: { shift: false, altgr: false, name: "KP_Left" },
65431: { shift: false, altgr: false, name: "KP_Up" },
65432: { shift: false, altgr: false, name: "KP_Right" },
65433: { shift: false, altgr: false, name: "KP_Down" },
65434: { shift: false, altgr: false, name: "KP_Prior" },
65435: { shift: false, altgr: false, name: "KP_Next" },
65436: { shift: false, altgr: false, name: "KP_End" },
65437: { shift: false, altgr: false, name: "KP_Begin" },
65438: { shift: false, altgr: false, name: "KP_Insert" },
65439: { shift: false, altgr: false, name: "KP_Delete" },
65450: { shift: false, altgr: false, name: "KP_Multiply" },
65451: { shift: false, altgr: false, name: "KP_Add" },
65452: { shift: false, altgr: false, name: "KP_Separator" },
65453: { shift: false, altgr: false, name: "KP_Subtract" },
65454: { shift: false, altgr: false, name: "KP_Decimal" },
65455: { shift: false, altgr: false, name: "KP_Divide" },
65456: { shift: false, altgr: false, name: "KP_0" },
65457: { shift: false, altgr: false, name: "KP_1" },
65458: { shift: false, altgr: false, name: "KP_2" },
65459: { shift: false, altgr: false, name: "KP_3" },
65460: { shift: false, altgr: false, name: "KP_4" },
65461: { shift: false, altgr: false, name: "KP_5" },
65462: { shift: false, altgr: false, name: "KP_6" },
65463: { shift: false, altgr: false, name: "KP_7" },
65464: { shift: false, altgr: false, name: "KP_8" },
65465: { shift: false, altgr: false, name: "KP_9" },
65470: { shift: false, altgr: false, name: "F1" },
65471: { shift: false, altgr: false, name: "F2" },
65472: { shift: false, altgr: false, name: "F3" },
65473: { shift: false, altgr: false, name: "F4" },
65474: { shift: false, altgr: false, name: "F5" },
65475: { shift: false, altgr: false, name: "F6" },
65476: { shift: false, altgr: false, name: "F7" },
65477: { shift: false, altgr: false, name: "F8" },
65478: { shift: false, altgr: false, name: "F9" },
65479: { shift: false, altgr: false, name: "F10" },
65480: { shift: false, altgr: false, name: "F11" },
65481: { shift: false, altgr: false, name: "F12" },
65509: { shift: false, altgr: false, name: "Caps_Lock" },
65535: { shift: false, altgr: false, name: "Delete" }
},
'nl-be': {
32: { shift: false, altgr: false, name: "space" },
48: { shift: false, altgr: false, name: "0" },
49: { shift: false, altgr: false, name: "1" },
50: { shift: false, altgr: false, name: "2" },
51: { shift: false, altgr: false, name: "3" },
52: { shift: false, altgr: false, name: "4" },
53: { shift: false, altgr: false, name: "5" },
54: { shift: false, altgr: false, name: "6" },
55: { shift: false, altgr: false, name: "7" },
56: { shift: false, altgr: false, name: "8" },
57: { shift: false, altgr: false, name: "9" },
60: { shift: false, altgr: false, name: "less" },
62: { shift: true, altgr: false, name: "greater" },
65: { shift: true, altgr: false, name: "A" },
66: { shift: true, altgr: false, name: "B" },
67: { shift: true, altgr: false, name: "C" },
68: { shift: true, altgr: false, name: "D" },
69: { shift: true, altgr: false, name: "E" },
70: { shift: true, altgr: false, name: "F" },
71: { shift: true, altgr: false, name: "G" },
72: { shift: true, altgr: false, name: "H" },
73: { shift: true, altgr: false, name: "I" },
74: { shift: true, altgr: false, name: "J" },
75: { shift: true, altgr: false, name: "K" },
76: { shift: true, altgr: false, name: "L" },
77: { shift: true, altgr: false, name: "M" },
78: { shift: true, altgr: false, name: "N" },
79: { shift: true, altgr: false, name: "O" },
80: { shift: true, altgr: false, name: "P" },
81: { shift: true, altgr: false, name: "Q" },
82: { shift: true, altgr: false, name: "R" },
83: { shift: true, altgr: false, name: "S" },
84: { shift: true, altgr: false, name: "T" },
85: { shift: true, altgr: false, name: "U" },
86: { shift: true, altgr: false, name: "V" },
87: { shift: true, altgr: false, name: "W" },
88: { shift: true, altgr: false, name: "X" },
89: { shift: true, altgr: false, name: "Y" },
90: { shift: true, altgr: false, name: "Z" },
97: { shift: false, altgr: false, name: "a" },
98: { shift: false, altgr: false, name: "b" },
99: { shift: false, altgr: false, name: "c" },
100: { shift: false, altgr: false, name: "d" },
101: { shift: false, altgr: false, name: "e" },
102: { shift: false, altgr: false, name: "f" },
103: { shift: false, altgr: false, name: "g" },
104: { shift: false, altgr: false, name: "h" },
105: { shift: false, altgr: false, name: "i" },
106: { shift: false, altgr: false, name: "j" },
107: { shift: false, altgr: false, name: "k" },
108: { shift: false, altgr: false, name: "l" },
109: { shift: false, altgr: false, name: "m" },
110: { shift: false, altgr: false, name: "n" },
111: { shift: false, altgr: false, name: "o" },
112: { shift: false, altgr: false, name: "p" },
113: { shift: false, altgr: false, name: "q" },
114: { shift: false, altgr: false, name: "r" },
115: { shift: false, altgr: false, name: "s" },
116: { shift: false, altgr: false, name: "t" },
117: { shift: false, altgr: false, name: "u" },
118: { shift: false, altgr: false, name: "v" },
119: { shift: false, altgr: false, name: "w" },
120: { shift: false, altgr: false, name: "x" },
121: { shift: false, altgr: false, name: "y" },
122: { shift: false, altgr: false, name: "z" },
124: { shift: false, altgr: true, name: "bar" },
166: { shift: true, altgr: true, name: "brokenbar" },
65288: { shift: false, altgr: false, name: "BackSpace" },
65289: { shift: false, altgr: false, name: "Tab" },
65293: { shift: false, altgr: false, name: "Return" },
65300: { shift: false, altgr: false, name: "Scroll_Lock" },
65301: { shift: false, altgr: false, name: "Sys_Req" },
65307: { shift: false, altgr: false, name: "Escape" },
65360: { shift: false, altgr: false, name: "Home" },
65361: { shift: false, altgr: false, name: "Left" },
65362: { shift: false, altgr: false, name: "Up" },
65363: { shift: false, altgr: false, name: "Right" },
65364: { shift: false, altgr: false, name: "Down" },
65365: { shift: false, altgr: false, name: "Page_Up" },
65366: { shift: false, altgr: false, name: "Page_Down" },
65367: { shift: false, altgr: false, name: "End" },
65377: { shift: false, altgr: false, name: "Print" },
65379: { shift: false, altgr: false, name: "Insert" },
65407: { shift: false, altgr: false, name: "Num_Lock" },
65421: { shift: false, altgr: false, name: "KP_Enter" },
65429: { shift: false, altgr: false, name: "KP_Home" },
65430: { shift: false, altgr: false, name: "KP_Left" },
65431: { shift: false, altgr: false, name: "KP_Up" },
65432: { shift: false, altgr: false, name: "KP_Right" },
65433: { shift: false, altgr: false, name: "KP_Down" },
65434: { shift: false, altgr: false, name: "KP_Prior" },
65435: { shift: false, altgr: false, name: "KP_Next" },
65436: { shift: false, altgr: false, name: "KP_End" },
65437: { shift: false, altgr: false, name: "KP_Begin" },
65438: { shift: false, altgr: false, name: "KP_Insert" },
65439: { shift: false, altgr: false, name: "KP_Delete" },
65450: { shift: false, altgr: false, name: "KP_Multiply" },
65451: { shift: false, altgr: false, name: "KP_Add" },
65452: { shift: false, altgr: false, name: "KP_Separator" },
65453: { shift: false, altgr: false, name: "KP_Subtract" },
65454: { shift: false, altgr: false, name: "KP_Decimal" },
65455: { shift: false, altgr: false, name: "KP_Divide" },
65456: { shift: false, altgr: false, name: "KP_0" },
65457: { shift: false, altgr: false, name: "KP_1" },
65458: { shift: false, altgr: false, name: "KP_2" },
65459: { shift: false, altgr: false, name: "KP_3" },
65460: { shift: false, altgr: false, name: "KP_4" },
65461: { shift: false, altgr: false, name: "KP_5" },
65462: { shift: false, altgr: false, name: "KP_6" },
65463: { shift: false, altgr: false, name: "KP_7" },
65464: { shift: false, altgr: false, name: "KP_8" },
65465: { shift: false, altgr: false, name: "KP_9" },
65470: { shift: false, altgr: false, name: "F1" },
65471: { shift: false, altgr: false, name: "F2" },
65472: { shift: false, altgr: false, name: "F3" },
65473: { shift: false, altgr: false, name: "F4" },
65474: { shift: false, altgr: false, name: "F5" },
65475: { shift: false, altgr: false, name: "F6" },
65476: { shift: false, altgr: false, name: "F7" },
65477: { shift: false, altgr: false, name: "F8" },
65478: { shift: false, altgr: false, name: "F9" },
65479: { shift: false, altgr: false, name: "F10" },
65480: { shift: false, altgr: false, name: "F11" },
65481: { shift: false, altgr: false, name: "F12" },
65509: { shift: false, altgr: false, name: "Caps_Lock" },
65535: { shift: false, altgr: false, name: "Delete" }
},
'no': {
32: { shift: false, altgr: false, name: "space" },
33: { shift: true, altgr: false, name: "exclam" },
34: { shift: true, altgr: false, name: "quotedbl" },
35: { shift: true, altgr: false, name: "numbersign" },
36: { shift: false, altgr: true, name: "dollar" },
37: { shift: true, altgr: false, name: "percent" },
38: { shift: true, altgr: false, name: "ampersand" },
39: { shift: false, altgr: false, name: "apostrophe" },
40: { shift: true, altgr: false, name: "parenleft" },
41: { shift: true, altgr: false, name: "parenright" },
42: { shift: true, altgr: false, name: "asterisk" },
43: { shift: false, altgr: false, name: "plus" },
44: { shift: false, altgr: false, name: "comma" },
45: { shift: false, altgr: false, name: "minus" },
46: { shift: false, altgr: false, name: "period" },
47: { shift: true, altgr: false, name: "slash" },
48: { shift: false, altgr: false, name: "0" },
49: { shift: false, altgr: false, name: "1" },
50: { shift: false, altgr: false, name: "2" },
51: { shift: false, altgr: false, name: "3" },
52: { shift: false, altgr: false, name: "4" },
53: { shift: false, altgr: false, name: "5" },
54: { shift: false, altgr: false, name: "6" },
55: { shift: false, altgr: false, name: "7" },
56: { shift: false, altgr: false, name: "8" },
57: { shift: false, altgr: false, name: "9" },
58: { shift: true, altgr: false, name: "colon" },
59: { shift: true, altgr: false, name: "semicolon" },
60: { shift: false, altgr: false, name: "less" },
61: { shift: true, altgr: false, name: "equal" },
62: { shift: true, altgr: false, name: "greater" },
63: { shift: true, altgr: false, name: "question" },
64: { shift: false, altgr: true, name: "at" },
65: { shift: true, altgr: false, name: "A" },
66: { shift: true, altgr: false, name: "B" },
67: { shift: true, altgr: false, name: "C" },
68: { shift: true, altgr: false, name: "D" },
69: { shift: true, altgr: false, name: "E" },
70: { shift: true, altgr: false, name: "F" },
71: { shift: true, altgr: false, name: "G" },
72: { shift: true, altgr: false, name: "H" },
73: { shift: true, altgr: false, name: "I" },
74: { shift: true, altgr: false, name: "J" },
75: { shift: true, altgr: false, name: "K" },
76: { shift: true, altgr: false, name: "L" },
77: { shift: true, altgr: false, name: "M" },
78: { shift: true, altgr: false, name: "N" },
79: { shift: true, altgr: false, name: "O" },
80: { shift: true, altgr: false, name: "P" },
81: { shift: true, altgr: false, name: "Q" },
82: { shift: true, altgr: false, name: "R" },
83: { shift: true, altgr: false, name: "S" },
84: { shift: true, altgr: false, name: "T" },
85: { shift: true, altgr: false, name: "U" },
86: { shift: true, altgr: false, name: "V" },
87: { shift: true, altgr: false, name: "W" },
88: { shift: true, altgr: false, name: "X" },
89: { shift: true, altgr: false, name: "Y" },
90: { shift: true, altgr: false, name: "Z" },
91: { shift: false, altgr: true, name: "bracketleft" },
92: { shift: false, altgr: false, name: "backslash" },
93: { shift: false, altgr: true, name: "bracketright" },
94: { shift: true, altgr: false, name: "asciicircum" },
95: { shift: true, altgr: false, name: "underscore" },
97: { shift: false, altgr: false, name: "a" },
98: { shift: false, altgr: false, name: "b" },
99: { shift: false, altgr: false, name: "c" },
100: { shift: false, altgr: false, name: "d" },
101: { shift: false, altgr: false, name: "e" },
102: { shift: false, altgr: false, name: "f" },
103: { shift: false, altgr: false, name: "g" },
104: { shift: false, altgr: false, name: "h" },
105: { shift: false, altgr: false, name: "i" },
106: { shift: false, altgr: false, name: "j" },
107: { shift: false, altgr: false, name: "k" },
108: { shift: false, altgr: false, name: "l" },
109: { shift: false, altgr: false, name: "m" },
110: { shift: false, altgr: false, name: "n" },
111: { shift: false, altgr: false, name: "o" },
112: { shift: false, altgr: false, name: "p" },
113: { shift: false, altgr: false, name: "q" },
114: { shift: false, altgr: false, name: "r" },
115: { shift: false, altgr: false, name: "s" },
116: { shift: false, altgr: false, name: "t" },
117: { shift: false, altgr: false, name: "u" },
118: { shift: false, altgr: false, name: "v" },
119: { shift: false, altgr: false, name: "w" },
120: { shift: false, altgr: false, name: "x" },
121: { shift: false, altgr: false, name: "y" },
122: { shift: false, altgr: false, name: "z" },
123: { shift: false, altgr: true, name: "braceleft" },
124: { shift: false, altgr: false, name: "bar" },
125: { shift: false, altgr: true, name: "braceright" },
126: { shift: false, altgr: true, name: "asciitilde" },
160: { shift: false, altgr: true, name: "nobreakspace" },
161: { shift: false, altgr: true, name: "exclamdown" },
162: { shift: true, altgr: true, name: "cent" },
163: { shift: false, altgr: true, name: "sterling" },
164: { shift: true, altgr: false, name: "currency" },
165: { shift: true, altgr: true, name: "yen" },
166: { shift: false, altgr: true, name: "brokenbar" },
167: { shift: true, altgr: false, name: "section" },
169: { shift: false, altgr: true, name: "copyright" },
170: { shift: true, altgr: true, name: "ordfeminine" },
171: { shift: false, altgr: true, name: "guillemotleft" },
172: { shift: true, altgr: true, name: "notsign" },
173: { shift: false, altgr: true, name: "hyphen" },
174: { shift: false, altgr: true, name: "registered" },
175: { shift: true, altgr: true, name: "macron" },
176: { shift: true, altgr: true, name: "degree" },
177: { shift: false, altgr: true, name: "plusminus" },
178: { shift: true, altgr: true, name: "twosuperior" },
179: { shift: true, altgr: true, name: "threesuperior" },
181: { shift: false, altgr: true, name: "mu" },
182: { shift: true, altgr: true, name: "paragraph" },
183: { shift: false, altgr: true, name: "periodcentered" },
185: { shift: true, altgr: true, name: "onesuperior" },
186: { shift: true, altgr: true, name: "masculine" },
187: { shift: false, altgr: true, name: "guillemotright" },
188: { shift: true, altgr: true, name: "onequarter" },
189: { shift: false, altgr: true, name: "onehalf" },
190: { shift: true, altgr: true, name: "threequarters" },
191: { shift: true, altgr: true, name: "questiondown" },
197: { shift: true, altgr: false, name: "Aring" },
198: { shift: true, altgr: false, name: "AE" },
208: { shift: true, altgr: true, name: "ETH" },
215: { shift: true, altgr: true, name: "multiply" },
216: { shift: true, altgr: false, name: "Ooblique" },
222: { shift: true, altgr: true, name: "THORN" },
223: { shift: false, altgr: true, name: "ssharp" },
229: { shift: false, altgr: false, name: "aring" },
230: { shift: false, altgr: false, name: "ae" },
240: { shift: false, altgr: true, name: "eth" },
247: { shift: true, altgr: true, name: "division" },
248: { shift: false, altgr: false, name: "oslash" },
254: { shift: false, altgr: true, name: "thorn" },
419: { shift: true, altgr: true, name: "Lstroke" },
435: { shift: false, altgr: true, name: "lstroke" },
8364: { shift: false, altgr: true, name: "EuroSign" },
65104: { shift: true, altgr: false, name: "dead_grave" },
65105: { shift: false, altgr: true, name: "dead_acute" },
65106: { shift: true, altgr: false, name: "dead_circumflex" },
65107: { shift: false, altgr: true, name: "dead_tilde" },
65110: { shift: true, altgr: true, name: "dead_abovedot" },
65111: { shift: false, altgr: false, name: "dead_diaeresis" },
65112: { shift: true, altgr: true, name: "dead_abovering" },
65113: { shift: true, altgr: true, name: "dead_doubleacute" },
65114: { shift: true, altgr: true, name: "dead_caron" },
65115: { shift: false, altgr: true, name: "dead_cedilla" },
65116: { shift: true, altgr: true, name: "dead_ogonek" },
65288: { shift: false, altgr: false, name: "BackSpace" },
65289: { shift: false, altgr: false, name: "Tab" },
65293: { shift: false, altgr: false, name: "Return" },
65300: { shift: false, altgr: false, name: "Scroll_Lock" },
65301: { shift: false, altgr: false, name: "Sys_Req" },
65307: { shift: false, altgr: false, name: "Escape" },
65360: { shift: false, altgr: false, name: "Home" },
65361: { shift: false, altgr: false, name: "Left" },
65362: { shift: false, altgr: false, name: "Up" },
65363: { shift: false, altgr: false, name: "Right" },
65364: { shift: false, altgr: false, name: "Down" },
65365: { shift: false, altgr: false, name: "Page_Up" },
65366: { shift: false, altgr: false, name: "Page_Down" },
65367: { shift: false, altgr: false, name: "End" },
65377: { shift: false, altgr: false, name: "Print" },
65379: { shift: false, altgr: false, name: "Insert" },
65407: { shift: false, altgr: false, name: "Num_Lock" },
65421: { shift: false, altgr: false, name: "KP_Enter" },
65429: { shift: false, altgr: false, name: "KP_Home" },
65430: { shift: false, altgr: false, name: "KP_Left" },
65431: { shift: false, altgr: false, name: "KP_Up" },
65432: { shift: false, altgr: false, name: "KP_Right" },
65433: { shift: false, altgr: false, name: "KP_Down" },
65434: { shift: false, altgr: false, name: "KP_Prior" },
65435: { shift: false, altgr: false, name: "KP_Next" },
65436: { shift: false, altgr: false, name: "KP_End" },
65437: { shift: false, altgr: false, name: "KP_Begin" },
65438: { shift: false, altgr: false, name: "KP_Insert" },
65439: { shift: false, altgr: false, name: "KP_Delete" },
65450: { shift: false, altgr: false, name: "KP_Multiply" },
65451: { shift: false, altgr: false, name: "KP_Add" },
65452: { shift: false, altgr: false, name: "KP_Separator" },
65453: { shift: false, altgr: false, name: "KP_Subtract" },
65454: { shift: false, altgr: false, name: "KP_Decimal" },
65455: { shift: false, altgr: false, name: "KP_Divide" },
65456: { shift: false, altgr: false, name: "KP_0" },
65457: { shift: false, altgr: false, name: "KP_1" },
65458: { shift: false, altgr: false, name: "KP_2" },
65459: { shift: false, altgr: false, name: "KP_3" },
65460: { shift: false, altgr: false, name: "KP_4" },
65461: { shift: false, altgr: false, name: "KP_5" },
65462: { shift: false, altgr: false, name: "KP_6" },
65463: { shift: false, altgr: false, name: "KP_7" },
65464: { shift: false, altgr: false, name: "KP_8" },
65465: { shift: false, altgr: false, name: "KP_9" },
65470: { shift: false, altgr: false, name: "F1" },
65471: { shift: false, altgr: false, name: "F2" },
65472: { shift: false, altgr: false, name: "F3" },
65473: { shift: false, altgr: false, name: "F4" },
65474: { shift: false, altgr: false, name: "F5" },
65475: { shift: false, altgr: false, name: "F6" },
65476: { shift: false, altgr: false, name: "F7" },
65477: { shift: false, altgr: false, name: "F8" },
65478: { shift: false, altgr: false, name: "F9" },
65479: { shift: false, altgr: false, name: "F10" },
65480: { shift: false, altgr: false, name: "F11" },
65481: { shift: false, altgr: false, name: "F12" },
65509: { shift: false, altgr: false, name: "Caps_Lock" },
65535: { shift: false, altgr: false, name: "Delete" }
},
'pl': {
32: { shift: false, altgr: false, name: "space" },
33: { shift: true, altgr: false, name: "exclam" },
34: { shift: true, altgr: false, name: "quotedbl" },
35: { shift: true, altgr: false, name: "numbersign" },
36: { shift: true, altgr: false, name: "dollar" },
37: { shift: true, altgr: false, name: "percent" },
38: { shift: true, altgr: false, name: "ampersand" },
39: { shift: false, altgr: false, name: "apostrophe" },
40: { shift: true, altgr: false, name: "parenleft" },
41: { shift: true, altgr: false, name: "parenright" },
42: { shift: true, altgr: false, name: "asterisk" },
43: { shift: true, altgr: false, name: "plus" },
44: { shift: false, altgr: false, name: "comma" },
45: { shift: false, altgr: false, name: "minus" },
46: { shift: false, altgr: false, name: "period" },
47: { shift: false, altgr: false, name: "slash" },
48: { shift: false, altgr: false, name: "0" },
49: { shift: false, altgr: false, name: "1" },
50: { shift: false, altgr: false, name: "2" },
51: { shift: false, altgr: false, name: "3" },
52: { shift: false, altgr: false, name: "4" },
53: { shift: false, altgr: false, name: "5" },
54: { shift: false, altgr: false, name: "6" },
55: { shift: false, altgr: false, name: "7" },
56: { shift: false, altgr: false, name: "8" },
57: { shift: false, altgr: false, name: "9" },
58: { shift: true, altgr: false, name: "colon" },
59: { shift: false, altgr: false, name: "semicolon" },
60: { shift: true, altgr: false, name: "less" },
61: { shift: false, altgr: false, name: "equal" },
62: { shift: true, altgr: false, name: "greater" },
63: { shift: true, altgr: false, name: "question" },
64: { shift: true, altgr: false, name: "at" },
65: { shift: true, altgr: false, name: "A" },
66: { shift: true, altgr: false, name: "B" },
67: { shift: true, altgr: false, name: "C" },
68: { shift: true, altgr: false, name: "D" },
69: { shift: true, altgr: false, name: "E" },
70: { shift: true, altgr: false, name: "F" },
71: { shift: true, altgr: false, name: "G" },
72: { shift: true, altgr: false, name: "H" },
73: { shift: true, altgr: false, name: "I" },
74: { shift: true, altgr: false, name: "J" },
75: { shift: true, altgr: false, name: "K" },
76: { shift: true, altgr: false, name: "L" },
77: { shift: true, altgr: false, name: "M" },
78: { shift: true, altgr: false, name: "N" },
79: { shift: true, altgr: false, name: "O" },
80: { shift: true, altgr: false, name: "P" },
81: { shift: true, altgr: false, name: "Q" },
82: { shift: true, altgr: false, name: "R" },
83: { shift: true, altgr: false, name: "S" },
84: { shift: true, altgr: false, name: "T" },
85: { shift: true, altgr: false, name: "U" },
86: { shift: true, altgr: false, name: "V" },
87: { shift: true, altgr: false, name: "W" },
88: { shift: true, altgr: false, name: "X" },
89: { shift: true, altgr: false, name: "Y" },
90: { shift: true, altgr: false, name: "Z" },
91: { shift: false, altgr: false, name: "bracketleft" },
92: { shift: false, altgr: false, name: "backslash" },
93: { shift: false, altgr: false, name: "bracketright" },
94: { shift: true, altgr: false, name: "asciicircum" },
95: { shift: true, altgr: false, name: "underscore" },
96: { shift: true, altgr: true, name: "grave" },
97: { shift: false, altgr: false, name: "a" },
98: { shift: false, altgr: false, name: "b" },
99: { shift: false, altgr: false, name: "c" },
100: { shift: false, altgr: false, name: "d" },
101: { shift: false, altgr: false, name: "e" },
102: { shift: false, altgr: false, name: "f" },
103: { shift: false, altgr: false, name: "g" },
104: { shift: false, altgr: false, name: "h" },
105: { shift: false, altgr: false, name: "i" },
106: { shift: false, altgr: false, name: "j" },
107: { shift: false, altgr: false, name: "k" },
108: { shift: false, altgr: false, name: "l" },
109: { shift: false, altgr: false, name: "m" },
110: { shift: false, altgr: false, name: "n" },
111: { shift: false, altgr: false, name: "o" },
112: { shift: false, altgr: false, name: "p" },
113: { shift: false, altgr: false, name: "q" },
114: { shift: false, altgr: false, name: "r" },
115: { shift: false, altgr: false, name: "s" },
116: { shift: false, altgr: false, name: "t" },
117: { shift: false, altgr: false, name: "u" },
118: { shift: false, altgr: false, name: "v" },
119: { shift: false, altgr: false, name: "w" },
120: { shift: false, altgr: false, name: "x" },
121: { shift: false, altgr: false, name: "y" },
122: { shift: false, altgr: false, name: "z" },
123: { shift: true, altgr: false, name: "braceleft" },
124: { shift: true, altgr: false, name: "bar" },
125: { shift: true, altgr: false, name: "braceright" },
126: { shift: true, altgr: false, name: "asciitilde" },
161: { shift: true, altgr: true, name: "exclamdown" },
163: { shift: true, altgr: true, name: "sterling" },
165: { shift: true, altgr: true, name: "yen" },
166: { shift: true, altgr: true, name: "brokenbar" },
170: { shift: true, altgr: true, name: "ordfeminine" },
172: { shift: false, altgr: true, name: "notsign" },
174: { shift: true, altgr: true, name: "registered" },
176: { shift: true, altgr: true, name: "degree" },
177: { shift: true, altgr: true, name: "plusminus" },
178: { shift: false, altgr: true, name: "twosuperior" },
179: { shift: false, altgr: true, name: "threesuperior" },
181: { shift: false, altgr: true, name: "mu" },
182: { shift: false, altgr: true, name: "paragraph" },
183: { shift: false, altgr: true, name: "periodcentered" },
185: { shift: false, altgr: true, name: "onesuperior" },
186: { shift: true, altgr: true, name: "masculine" },
188: { shift: false, altgr: true, name: "onequarter" },
189: { shift: false, altgr: true, name: "onehalf" },
190: { shift: false, altgr: true, name: "threequarters" },
191: { shift: true, altgr: true, name: "questiondown" },
208: { shift: true, altgr: true, name: "ETH" },
211: { shift: true, altgr: true, name: "Oacute" },
215: { shift: true, altgr: true, name: "multiply" },
222: { shift: true, altgr: true, name: "THORN" },
240: { shift: false, altgr: true, name: "eth" },
243: { shift: false, altgr: true, name: "oacute" },
247: { shift: true, altgr: true, name: "division" },
254: { shift: false, altgr: true, name: "thorn" },
417: { shift: true, altgr: true, name: "Aogonek" },
419: { shift: true, altgr: true, name: "Lstroke" },
422: { shift: true, altgr: true, name: "Sacute" },
428: { shift: true, altgr: true, name: "Zacute" },
431: { shift: true, altgr: true, name: "Zabovedot" },
433: { shift: false, altgr: true, name: "aogonek" },
435: { shift: false, altgr: true, name: "lstroke" },
438: { shift: false, altgr: true, name: "sacute" },
444: { shift: false, altgr: true, name: "zacute" },
447: { shift: false, altgr: true, name: "zabovedot" },
454: { shift: true, altgr: true, name: "Cacute" },
458: { shift: true, altgr: true, name: "Eogonek" },
465: { shift: true, altgr: true, name: "Nacute" },
486: { shift: false, altgr: true, name: "cacute" },
490: { shift: false, altgr: true, name: "eogonek" },
497: { shift: false, altgr: true, name: "nacute" },
8364: { shift: false, altgr: true, name: "EuroSign" },
65104: { shift: false, altgr: true, name: "dead_grave" },
65105: { shift: false, altgr: true, name: "dead_acute" },
65106: { shift: false, altgr: true, name: "dead_circumflex" },
65107: { shift: false, altgr: true, name: "dead_tilde" },
65108: { shift: true, altgr: true, name: "dead_macron" },
65109: { shift: true, altgr: true, name: "dead_breve" },
65110: { shift: true, altgr: true, name: "dead_abovedot" },
65111: { shift: false, altgr: true, name: "dead_diaeresis" },
65112: { shift: true, altgr: true, name: "dead_abovering" },
65113: { shift: true, altgr: true, name: "dead_doubleacute" },
65114: { shift: true, altgr: true, name: "dead_caron" },
65115: { shift: false, altgr: true, name: "dead_cedilla" },
65116: { shift: true, altgr: true, name: "dead_ogonek" },
65120: { shift: false, altgr: true, name: "dead_belowdot" },
65288: { shift: false, altgr: false, name: "BackSpace" },
65289: { shift: false, altgr: false, name: "Tab" },
65293: { shift: false, altgr: false, name: "Return" },
65300: { shift: false, altgr: false, name: "Scroll_Lock" },
65301: { shift: false, altgr: false, name: "Sys_Req" },
65307: { shift: false, altgr: false, name: "Escape" },
65360: { shift: false, altgr: false, name: "Home" },
65361: { shift: false, altgr: false, name: "Left" },
65362: { shift: false, altgr: false, name: "Up" },
65363: { shift: false, altgr: false, name: "Right" },
65364: { shift: false, altgr: false, name: "Down" },
65365: { shift: false, altgr: false, name: "Page_Up" },
65366: { shift: false, altgr: false, name: "Page_Down" },
65367: { shift: false, altgr: false, name: "End" },
65377: { shift: false, altgr: false, name: "Print" },
65379: { shift: false, altgr: false, name: "Insert" },
65407: { shift: false, altgr: false, name: "Num_Lock" },
65421: { shift: false, altgr: false, name: "KP_Enter" },
65429: { shift: false, altgr: false, name: "KP_Home" },
65430: { shift: false, altgr: false, name: "KP_Left" },
65431: { shift: false, altgr: false, name: "KP_Up" },
65432: { shift: false, altgr: false, name: "KP_Right" },
65433: { shift: false, altgr: false, name: "KP_Down" },
65434: { shift: false, altgr: false, name: "KP_Prior" },
65435: { shift: false, altgr: false, name: "KP_Next" },
65436: { shift: false, altgr: false, name: "KP_End" },
65437: { shift: false, altgr: false, name: "KP_Begin" },
65438: { shift: false, altgr: false, name: "KP_Insert" },
65439: { shift: false, altgr: false, name: "KP_Delete" },
65450: { shift: false, altgr: false, name: "KP_Multiply" },
65451: { shift: false, altgr: false, name: "KP_Add" },
65452: { shift: false, altgr: false, name: "KP_Separator" },
65453: { shift: false, altgr: false, name: "KP_Subtract" },
65454: { shift: false, altgr: false, name: "KP_Decimal" },
65455: { shift: false, altgr: false, name: "KP_Divide" },
65456: { shift: false, altgr: false, name: "KP_0" },
65457: { shift: false, altgr: false, name: "KP_1" },
65458: { shift: false, altgr: false, name: "KP_2" },
65459: { shift: false, altgr: false, name: "KP_3" },
65460: { shift: false, altgr: false, name: "KP_4" },
65461: { shift: false, altgr: false, name: "KP_5" },
65462: { shift: false, altgr: false, name: "KP_6" },
65463: { shift: false, altgr: false, name: "KP_7" },
65464: { shift: false, altgr: false, name: "KP_8" },
65465: { shift: false, altgr: false, name: "KP_9" },
65470: { shift: false, altgr: false, name: "F1" },
65471: { shift: false, altgr: false, name: "F2" },
65472: { shift: false, altgr: false, name: "F3" },
65473: { shift: false, altgr: false, name: "F4" },
65474: { shift: false, altgr: false, name: "F5" },
65475: { shift: false, altgr: false, name: "F6" },
65476: { shift: false, altgr: false, name: "F7" },
65477: { shift: false, altgr: false, name: "F8" },
65478: { shift: false, altgr: false, name: "F9" },
65479: { shift: false, altgr: false, name: "F10" },
65480: { shift: false, altgr: false, name: "F11" },
65481: { shift: false, altgr: false, name: "F12" },
65509: { shift: false, altgr: false, name: "Caps_Lock" },
65535: { shift: false, altgr: false, name: "Delete" }
},
'pt': {
32: { shift: false, altgr: false, name: "space" },
33: { shift: true, altgr: false, name: "exclam" },
34: { shift: true, altgr: false, name: "quotedbl" },
35: { shift: true, altgr: false, name: "numbersign" },
36: { shift: true, altgr: false, name: "dollar" },
37: { shift: true, altgr: false, name: "percent" },
38: { shift: true, altgr: false, name: "ampersand" },
39: { shift: false, altgr: false, name: "apostrophe" },
40: { shift: true, altgr: false, name: "parenleft" },
41: { shift: true, altgr: false, name: "parenright" },
42: { shift: true, altgr: false, name: "asterisk" },
43: { shift: false, altgr: false, name: "plus" },
44: { shift: false, altgr: false, name: "comma" },
45: { shift: false, altgr: false, name: "minus" },
46: { shift: false, altgr: false, name: "period" },
47: { shift: true, altgr: false, name: "slash" },
48: { shift: false, altgr: false, name: "0" },
49: { shift: false, altgr: false, name: "1" },
50: { shift: false, altgr: false, name: "2" },
51: { shift: false, altgr: false, name: "3" },
52: { shift: false, altgr: false, name: "4" },
53: { shift: false, altgr: false, name: "5" },
54: { shift: false, altgr: false, name: "6" },
55: { shift: false, altgr: false, name: "7" },
56: { shift: false, altgr: false, name: "8" },
57: { shift: false, altgr: false, name: "9" },
58: { shift: true, altgr: false, name: "colon" },
59: { shift: true, altgr: false, name: "semicolon" },
60: { shift: false, altgr: false, name: "less" },
61: { shift: true, altgr: false, name: "equal" },
62: { shift: true, altgr: false, name: "greater" },
63: { shift: true, altgr: false, name: "question" },
64: { shift: false, altgr: true, name: "at" },
65: { shift: true, altgr: false, name: "A" },
66: { shift: true, altgr: false, name: "B" },
67: { shift: true, altgr: false, name: "C" },
68: { shift: true, altgr: false, name: "D" },
69: { shift: true, altgr: false, name: "E" },
70: { shift: true, altgr: false, name: "F" },
71: { shift: true, altgr: false, name: "G" },
72: { shift: true, altgr: false, name: "H" },
73: { shift: true, altgr: false, name: "I" },
74: { shift: true, altgr: false, name: "J" },
75: { shift: true, altgr: false, name: "K" },
76: { shift: true, altgr: false, name: "L" },
77: { shift: true, altgr: false, name: "M" },
78: { shift: true, altgr: false, name: "N" },
79: { shift: true, altgr: false, name: "O" },
80: { shift: true, altgr: false, name: "P" },
81: { shift: true, altgr: false, name: "Q" },
82: { shift: true, altgr: false, name: "R" },
83: { shift: true, altgr: false, name: "S" },
84: { shift: true, altgr: false, name: "T" },
85: { shift: true, altgr: false, name: "U" },
86: { shift: true, altgr: false, name: "V" },
87: { shift: true, altgr: false, name: "W" },
88: { shift: true, altgr: false, name: "X" },
89: { shift: true, altgr: false, name: "Y" },
90: { shift: true, altgr: false, name: "Z" },
91: { shift: false, altgr: true, name: "bracketleft" },
92: { shift: false, altgr: false, name: "backslash" },
93: { shift: false, altgr: true, name: "bracketright" },
95: { shift: true, altgr: false, name: "underscore" },
96: { shift: true, altgr: true, name: "grave" },
97: { shift: false, altgr: false, name: "a" },
98: { shift: false, altgr: false, name: "b" },
99: { shift: false, altgr: false, name: "c" },
100: { shift: false, altgr: false, name: "d" },
101: { shift: false, altgr: false, name: "e" },
102: { shift: false, altgr: false, name: "f" },
103: { shift: false, altgr: false, name: "g" },
104: { shift: false, altgr: false, name: "h" },
105: { shift: false, altgr: false, name: "i" },
106: { shift: false, altgr: false, name: "j" },
107: { shift: false, altgr: false, name: "k" },
108: { shift: false, altgr: false, name: "l" },
109: { shift: false, altgr: false, name: "m" },
110: { shift: false, altgr: false, name: "n" },
111: { shift: false, altgr: false, name: "o" },
112: { shift: false, altgr: false, name: "p" },
113: { shift: false, altgr: false, name: "q" },
114: { shift: false, altgr: false, name: "r" },
115: { shift: false, altgr: false, name: "s" },
116: { shift: false, altgr: false, name: "t" },
117: { shift: false, altgr: false, name: "u" },
118: { shift: false, altgr: false, name: "v" },
119: { shift: false, altgr: false, name: "w" },
120: { shift: false, altgr: false, name: "x" },
121: { shift: false, altgr: false, name: "y" },
122: { shift: false, altgr: false, name: "z" },
123: { shift: false, altgr: true, name: "braceleft" },
124: { shift: true, altgr: false, name: "bar" },
125: { shift: false, altgr: true, name: "braceright" },
161: { shift: true, altgr: true, name: "exclamdown" },
162: { shift: false, altgr: true, name: "cent" },
163: { shift: false, altgr: true, name: "sterling" },
165: { shift: true, altgr: true, name: "yen" },
166: { shift: true, altgr: true, name: "brokenbar" },
167: { shift: false, altgr: true, name: "section" },
169: { shift: true, altgr: true, name: "copyright" },
170: { shift: true, altgr: false, name: "ordfeminine" },
171: { shift: false, altgr: false, name: "guillemotleft" },
172: { shift: false, altgr: true, name: "notsign" },
174: { shift: true, altgr: true, name: "registered" },
176: { shift: true, altgr: true, name: "degree" },
177: { shift: true, altgr: true, name: "plusminus" },
181: { shift: false, altgr: true, name: "mu" },
182: { shift: false, altgr: true, name: "paragraph" },
183: { shift: false, altgr: true, name: "periodcentered" },
185: { shift: false, altgr: true, name: "onesuperior" },
186: { shift: false, altgr: false, name: "masculine" },
187: { shift: true, altgr: false, name: "guillemotright" },
189: { shift: false, altgr: true, name: "onehalf" },
190: { shift: false, altgr: true, name: "threequarters" },
191: { shift: true, altgr: true, name: "questiondown" },
198: { shift: true, altgr: true, name: "AE" },
199: { shift: true, altgr: false, name: "Ccedilla" },
208: { shift: true, altgr: true, name: "ETH" },
215: { shift: true, altgr: true, name: "multiply" },
216: { shift: true, altgr: true, name: "Ooblique" },
222: { shift: true, altgr: true, name: "THORN" },
223: { shift: false, altgr: true, name: "ssharp" },
230: { shift: false, altgr: true, name: "ae" },
231: { shift: false, altgr: false, name: "ccedilla" },
240: { shift: false, altgr: true, name: "eth" },
247: { shift: true, altgr: true, name: "division" },
248: { shift: false, altgr: true, name: "oslash" },
254: { shift: false, altgr: true, name: "thorn" },
419: { shift: true, altgr: true, name: "Lstroke" },
435: { shift: false, altgr: true, name: "lstroke" },
8364: { shift: false, altgr: true, name: "EuroSign" },
65104: { shift: true, altgr: false, name: "dead_grave" },
65105: { shift: false, altgr: false, name: "dead_acute" },
65106: { shift: true, altgr: false, name: "dead_circumflex" },
65107: { shift: false, altgr: false, name: "dead_tilde" },
65108: { shift: true, altgr: true, name: "dead_macron" },
65109: { shift: true, altgr: true, name: "dead_breve" },
65110: { shift: true, altgr: true, name: "dead_abovedot" },
65111: { shift: false, altgr: true, name: "dead_diaeresis" },
65112: { shift: true, altgr: true, name: "dead_abovering" },
65113: { shift: true, altgr: true, name: "dead_doubleacute" },
65114: { shift: true, altgr: true, name: "dead_caron" },
65115: { shift: false, altgr: true, name: "dead_cedilla" },
65116: { shift: true, altgr: true, name: "dead_ogonek" },
65120: { shift: false, altgr: true, name: "dead_belowdot" },
65288: { shift: false, altgr: false, name: "BackSpace" },
65289: { shift: false, altgr: false, name: "Tab" },
65293: { shift: false, altgr: false, name: "Return" },
65300: { shift: false, altgr: false, name: "Scroll_Lock" },
65301: { shift: false, altgr: false, name: "Sys_Req" },
65307: { shift: false, altgr: false, name: "Escape" },
65360: { shift: false, altgr: false, name: "Home" },
65361: { shift: false, altgr: false, name: "Left" },
65362: { shift: false, altgr: false, name: "Up" },
65363: { shift: false, altgr: false, name: "Right" },
65364: { shift: false, altgr: false, name: "Down" },
65365: { shift: false, altgr: false, name: "Page_Up" },
65366: { shift: false, altgr: false, name: "Page_Down" },
65367: { shift: false, altgr: false, name: "End" },
65377: { shift: false, altgr: false, name: "Print" },
65379: { shift: false, altgr: false, name: "Insert" },
65407: { shift: false, altgr: false, name: "Num_Lock" },
65421: { shift: false, altgr: false, name: "KP_Enter" },
65429: { shift: false, altgr: false, name: "KP_Home" },
65430: { shift: false, altgr: false, name: "KP_Left" },
65431: { shift: false, altgr: false, name: "KP_Up" },
65432: { shift: false, altgr: false, name: "KP_Right" },
65433: { shift: false, altgr: false, name: "KP_Down" },
65434: { shift: false, altgr: false, name: "KP_Prior" },
65435: { shift: false, altgr: false, name: "KP_Next" },
65436: { shift: false, altgr: false, name: "KP_End" },
65437: { shift: false, altgr: false, name: "KP_Begin" },
65438: { shift: false, altgr: false, name: "KP_Insert" },
65439: { shift: false, altgr: false, name: "KP_Delete" },
65450: { shift: false, altgr: false, name: "KP_Multiply" },
65451: { shift: false, altgr: false, name: "KP_Add" },
65452: { shift: false, altgr: false, name: "KP_Separator" },
65453: { shift: false, altgr: false, name: "KP_Subtract" },
65454: { shift: false, altgr: false, name: "KP_Decimal" },
65455: { shift: false, altgr: false, name: "KP_Divide" },
65456: { shift: false, altgr: false, name: "KP_0" },
65457: { shift: false, altgr: false, name: "KP_1" },
65458: { shift: false, altgr: false, name: "KP_2" },
65459: { shift: false, altgr: false, name: "KP_3" },
65460: { shift: false, altgr: false, name: "KP_4" },
65461: { shift: false, altgr: false, name: "KP_5" },
65462: { shift: false, altgr: false, name: "KP_6" },
65463: { shift: false, altgr: false, name: "KP_7" },
65464: { shift: false, altgr: false, name: "KP_8" },
65465: { shift: false, altgr: false, name: "KP_9" },
65470: { shift: false, altgr: false, name: "F1" },
65471: { shift: false, altgr: false, name: "F2" },
65472: { shift: false, altgr: false, name: "F3" },
65473: { shift: false, altgr: false, name: "F4" },
65474: { shift: false, altgr: false, name: "F5" },
65475: { shift: false, altgr: false, name: "F6" },
65476: { shift: false, altgr: false, name: "F7" },
65477: { shift: false, altgr: false, name: "F8" },
65478: { shift: false, altgr: false, name: "F9" },
65479: { shift: false, altgr: false, name: "F10" },
65480: { shift: false, altgr: false, name: "F11" },
65481: { shift: false, altgr: false, name: "F12" },
65509: { shift: false, altgr: false, name: "Caps_Lock" },
65535: { shift: false, altgr: false, name: "Delete" }
},
'pt-br': {
32: { shift: false, altgr: false, name: "space" },
33: { shift: true, altgr: false, name: "exclam" },
34: { shift: true, altgr: false, name: "quotedbl" },
35: { shift: true, altgr: false, name: "numbersign" },
36: { shift: true, altgr: false, name: "dollar" },
37: { shift: true, altgr: false, name: "percent" },
38: { shift: true, altgr: false, name: "ampersand" },
39: { shift: false, altgr: false, name: "apostrophe" },
40: { shift: true, altgr: false, name: "parenleft" },
41: { shift: true, altgr: false, name: "parenright" },
42: { shift: true, altgr: false, name: "asterisk" },
43: { shift: true, altgr: false, name: "plus" },
44: { shift: false, altgr: false, name: "comma" },
45: { shift: false, altgr: false, name: "minus" },
46: { shift: false, altgr: false, name: "period" },
47: { shift: false, altgr: false, name: "slash" },
48: { shift: false, altgr: false, name: "0" },
49: { shift: false, altgr: false, name: "1" },
50: { shift: false, altgr: false, name: "2" },
51: { shift: false, altgr: false, name: "3" },
52: { shift: false, altgr: false, name: "4" },
53: { shift: false, altgr: false, name: "5" },
54: { shift: false, altgr: false, name: "6" },
55: { shift: false, altgr: false, name: "7" },
56: { shift: false, altgr: false, name: "8" },
57: { shift: false, altgr: false, name: "9" },
58: { shift: true, altgr: false, name: "colon" },
59: { shift: false, altgr: false, name: "semicolon" },
60: { shift: true, altgr: false, name: "less" },
61: { shift: false, altgr: false, name: "equal" },
62: { shift: true, altgr: false, name: "greater" },
63: { shift: true, altgr: false, name: "question" },
64: { shift: true, altgr: false, name: "at" },
65: { shift: true, altgr: false, name: "A" },
66: { shift: true, altgr: false, name: "B" },
67: { shift: true, altgr: false, name: "C" },
68: { shift: true, altgr: false, name: "D" },
69: { shift: true, altgr: false, name: "E" },
70: { shift: true, altgr: false, name: "F" },
71: { shift: true, altgr: false, name: "G" },
72: { shift: true, altgr: false, name: "H" },
73: { shift: true, altgr: false, name: "I" },
74: { shift: true, altgr: false, name: "J" },
75: { shift: true, altgr: false, name: "K" },
76: { shift: true, altgr: false, name: "L" },
77: { shift: true, altgr: false, name: "M" },
78: { shift: true, altgr: false, name: "N" },
79: { shift: true, altgr: false, name: "O" },
80: { shift: true, altgr: false, name: "P" },
81: { shift: true, altgr: false, name: "Q" },
82: { shift: true, altgr: false, name: "R" },
83: { shift: true, altgr: false, name: "S" },
84: { shift: true, altgr: false, name: "T" },
85: { shift: true, altgr: false, name: "U" },
86: { shift: true, altgr: false, name: "V" },
87: { shift: true, altgr: false, name: "W" },
88: { shift: true, altgr: false, name: "X" },
89: { shift: true, altgr: false, name: "Y" },
90: { shift: true, altgr: false, name: "Z" },
91: { shift: false, altgr: false, name: "bracketleft" },
92: { shift: false, altgr: false, name: "backslash" },
93: { shift: false, altgr: false, name: "bracketright" },
94: { shift: true, altgr: true, name: "asciicircum" },
95: { shift: true, altgr: false, name: "underscore" },
96: { shift: true, altgr: true, name: "grave" },
97: { shift: false, altgr: false, name: "a" },
98: { shift: false, altgr: false, name: "b" },
99: { shift: false, altgr: false, name: "c" },
100: { shift: false, altgr: false, name: "d" },
101: { shift: false, altgr: false, name: "e" },
102: { shift: false, altgr: false, name: "f" },
103: { shift: false, altgr: false, name: "g" },
104: { shift: false, altgr: false, name: "h" },
105: { shift: false, altgr: false, name: "i" },
106: { shift: false, altgr: false, name: "j" },
107: { shift: false, altgr: false, name: "k" },
108: { shift: false, altgr: false, name: "l" },
109: { shift: false, altgr: false, name: "m" },
110: { shift: false, altgr: false, name: "n" },
111: { shift: false, altgr: false, name: "o" },
112: { shift: false, altgr: false, name: "p" },
113: { shift: false, altgr: false, name: "q" },
114: { shift: false, altgr: false, name: "r" },
115: { shift: false, altgr: false, name: "s" },
116: { shift: false, altgr: false, name: "t" },
117: { shift: false, altgr: false, name: "u" },
118: { shift: false, altgr: false, name: "v" },
119: { shift: false, altgr: false, name: "w" },
120: { shift: false, altgr: false, name: "x" },
121: { shift: false, altgr: false, name: "y" },
122: { shift: false, altgr: false, name: "z" },
123: { shift: true, altgr: false, name: "braceleft" },
124: { shift: true, altgr: false, name: "bar" },
125: { shift: true, altgr: false, name: "braceright" },
126: { shift: false, altgr: true, name: "asciitilde" },
161: { shift: true, altgr: true, name: "exclamdown" },
162: { shift: false, altgr: true, name: "cent" },
163: { shift: false, altgr: true, name: "sterling" },
166: { shift: true, altgr: true, name: "brokenbar" },
167: { shift: false, altgr: true, name: "section" },
168: { shift: true, altgr: true, name: "diaeresis" },
169: { shift: false, altgr: true, name: "copyright" },
170: { shift: false, altgr: true, name: "ordfeminine" },
172: { shift: false, altgr: true, name: "notsign" },
174: { shift: false, altgr: true, name: "registered" },
176: { shift: false, altgr: true, name: "degree" },
178: { shift: false, altgr: true, name: "twosuperior" },
179: { shift: false, altgr: true, name: "threesuperior" },
180: { shift: false, altgr: true, name: "acute" },
181: { shift: false, altgr: true, name: "mu" },
185: { shift: false, altgr: true, name: "onesuperior" },
186: { shift: false, altgr: true, name: "masculine" },
188: { shift: true, altgr: true, name: "onequarter" },
189: { shift: true, altgr: true, name: "onehalf" },
190: { shift: true, altgr: true, name: "threequarters" },
199: { shift: true, altgr: false, name: "Ccedilla" },
231: { shift: false, altgr: false, name: "ccedilla" },
8364: { shift: false, altgr: true, name: "EuroSign" },
65104: { shift: true, altgr: false, name: "dead_grave" },
65105: { shift: false, altgr: false, name: "dead_acute" },
65106: { shift: true, altgr: false, name: "dead_circumflex" },
65107: { shift: false, altgr: false, name: "dead_tilde" },
65111: { shift: true, altgr: false, name: "dead_diaeresis" },
65288: { shift: false, altgr: false, name: "BackSpace" },
65289: { shift: false, altgr: false, name: "Tab" },
65293: { shift: false, altgr: false, name: "Return" },
65300: { shift: false, altgr: false, name: "Scroll_Lock" },
65301: { shift: false, altgr: false, name: "Sys_Req" },
65307: { shift: false, altgr: false, name: "Escape" },
65360: { shift: false, altgr: false, name: "Home" },
65361: { shift: false, altgr: false, name: "Left" },
65362: { shift: false, altgr: false, name: "Up" },
65363: { shift: false, altgr: false, name: "Right" },
65364: { shift: false, altgr: false, name: "Down" },
65365: { shift: false, altgr: false, name: "Page_Up" },
65366: { shift: false, altgr: false, name: "Page_Down" },
65367: { shift: false, altgr: false, name: "End" },
65377: { shift: false, altgr: false, name: "Print" },
65379: { shift: false, altgr: false, name: "Insert" },
65407: { shift: false, altgr: false, name: "Num_Lock" },
65421: { shift: false, altgr: false, name: "KP_Enter" },
65429: { shift: false, altgr: false, name: "KP_Home" },
65430: { shift: false, altgr: false, name: "KP_Left" },
65431: { shift: false, altgr: false, name: "KP_Up" },
65432: { shift: false, altgr: false, name: "KP_Right" },
65433: { shift: false, altgr: false, name: "KP_Down" },
65434: { shift: false, altgr: false, name: "KP_Prior" },
65435: { shift: false, altgr: false, name: "KP_Next" },
65436: { shift: false, altgr: false, name: "KP_End" },
65437: { shift: false, altgr: false, name: "KP_Begin" },
65438: { shift: false, altgr: false, name: "KP_Insert" },
65439: { shift: false, altgr: false, name: "KP_Delete" },
65450: { shift: false, altgr: false, name: "KP_Multiply" },
65451: { shift: false, altgr: false, name: "KP_Add" },
65452: { shift: false, altgr: false, name: "KP_Separator" },
65453: { shift: false, altgr: false, name: "KP_Subtract" },
65454: { shift: false, altgr: false, name: "KP_Decimal" },
65455: { shift: false, altgr: false, name: "KP_Divide" },
65456: { shift: false, altgr: false, name: "KP_0" },
65457: { shift: false, altgr: false, name: "KP_1" },
65458: { shift: false, altgr: false, name: "KP_2" },
65459: { shift: false, altgr: false, name: "KP_3" },
65460: { shift: false, altgr: false, name: "KP_4" },
65461: { shift: false, altgr: false, name: "KP_5" },
65462: { shift: false, altgr: false, name: "KP_6" },
65463: { shift: false, altgr: false, name: "KP_7" },
65464: { shift: false, altgr: false, name: "KP_8" },
65465: { shift: false, altgr: false, name: "KP_9" },
65470: { shift: false, altgr: false, name: "F1" },
65471: { shift: false, altgr: false, name: "F2" },
65472: { shift: false, altgr: false, name: "F3" },
65473: { shift: false, altgr: false, name: "F4" },
65474: { shift: false, altgr: false, name: "F5" },
65475: { shift: false, altgr: false, name: "F6" },
65476: { shift: false, altgr: false, name: "F7" },
65477: { shift: false, altgr: false, name: "F8" },
65478: { shift: false, altgr: false, name: "F9" },
65479: { shift: false, altgr: false, name: "F10" },
65480: { shift: false, altgr: false, name: "F11" },
65481: { shift: false, altgr: false, name: "F12" },
65509: { shift: false, altgr: false, name: "Caps_Lock" },
65535: { shift: false, altgr: false, name: "Delete" }
},
'ru': {
32: { shift: false, altgr: false, name: "space" },
33: { shift: true, altgr: false, name: "exclam" },
34: { shift: true, altgr: false, name: "quotedbl" },
35: { shift: true, altgr: false, name: "numbersign" },
36: { shift: true, altgr: false, name: "dollar" },
37: { shift: true, altgr: false, name: "percent" },
38: { shift: true, altgr: false, name: "ampersand" },
39: { shift: false, altgr: false, name: "apostrophe" },
40: { shift: true, altgr: false, name: "parenleft" },
41: { shift: true, altgr: false, name: "parenright" },
42: { shift: true, altgr: false, name: "asterisk" },
43: { shift: true, altgr: false, name: "plus" },
44: { shift: false, altgr: false, name: "comma" },
45: { shift: false, altgr: false, name: "minus" },
46: { shift: false, altgr: false, name: "period" },
47: { shift: false, altgr: true, name: "slash" },
48: { shift: false, altgr: false, name: "0" },
49: { shift: false, altgr: false, name: "1" },
50: { shift: false, altgr: false, name: "2" },
51: { shift: false, altgr: false, name: "3" },
52: { shift: false, altgr: false, name: "4" },
53: { shift: false, altgr: false, name: "5" },
54: { shift: false, altgr: false, name: "6" },
55: { shift: false, altgr: false, name: "7" },
56: { shift: false, altgr: false, name: "8" },
57: { shift: false, altgr: false, name: "9" },
58: { shift: true, altgr: false, name: "colon" },
59: { shift: false, altgr: false, name: "semicolon" },
60: { shift: true, altgr: false, name: "less" },
61: { shift: false, altgr: false, name: "equal" },
62: { shift: true, altgr: false, name: "greater" },
63: { shift: true, altgr: false, name: "question" },
64: { shift: true, altgr: false, name: "at" },
65: { shift: true, altgr: false, name: "A" },
66: { shift: true, altgr: false, name: "B" },
67: { shift: true, altgr: false, name: "C" },
68: { shift: true, altgr: false, name: "D" },
69: { shift: true, altgr: false, name: "E" },
70: { shift: true, altgr: false, name: "F" },
71: { shift: true, altgr: false, name: "G" },
72: { shift: true, altgr: false, name: "H" },
73: { shift: true, altgr: false, name: "I" },
74: { shift: true, altgr: false, name: "J" },
75: { shift: true, altgr: false, name: "K" },
76: { shift: true, altgr: false, name: "L" },
77: { shift: true, altgr: false, name: "M" },
78: { shift: true, altgr: false, name: "N" },
79: { shift: true, altgr: false, name: "O" },
80: { shift: true, altgr: false, name: "P" },
81: { shift: true, altgr: false, name: "Q" },
82: { shift: true, altgr: false, name: "R" },
83: { shift: true, altgr: false, name: "S" },
84: { shift: true, altgr: false, name: "T" },
85: { shift: true, altgr: false, name: "U" },
86: { shift: true, altgr: false, name: "V" },
87: { shift: true, altgr: false, name: "W" },
88: { shift: true, altgr: false, name: "X" },
89: { shift: true, altgr: false, name: "Y" },
90: { shift: true, altgr: false, name: "Z" },
91: { shift: false, altgr: false, name: "bracketleft" },
92: { shift: false, altgr: false, name: "backslash" },
93: { shift: false, altgr: false, name: "bracketright" },
94: { shift: true, altgr: false, name: "asciicircum" },
95: { shift: true, altgr: false, name: "underscore" },
96: { shift: false, altgr: false, name: "grave" },
97: { shift: false, altgr: false, name: "a" },
98: { shift: false, altgr: false, name: "b" },
99: { shift: false, altgr: false, name: "c" },
100: { shift: false, altgr: false, name: "d" },
101: { shift: false, altgr: false, name: "e" },
102: { shift: false, altgr: false, name: "f" },
103: { shift: false, altgr: false, name: "g" },
104: { shift: false, altgr: false, name: "h" },
105: { shift: false, altgr: false, name: "i" },
106: { shift: false, altgr: false, name: "j" },
107: { shift: false, altgr: false, name: "k" },
108: { shift: false, altgr: false, name: "l" },
109: { shift: false, altgr: false, name: "m" },
110: { shift: false, altgr: false, name: "n" },
111: { shift: false, altgr: false, name: "o" },
112: { shift: false, altgr: false, name: "p" },
113: { shift: false, altgr: false, name: "q" },
114: { shift: false, altgr: false, name: "r" },
115: { shift: false, altgr: false, name: "s" },
116: { shift: false, altgr: false, name: "t" },
117: { shift: false, altgr: false, name: "u" },
118: { shift: false, altgr: false, name: "v" },
119: { shift: false, altgr: false, name: "w" },
120: { shift: false, altgr: false, name: "x" },
121: { shift: false, altgr: false, name: "y" },
122: { shift: false, altgr: false, name: "z" },
123: { shift: true, altgr: false, name: "braceleft" },
124: { shift: true, altgr: true, name: "bar" },
125: { shift: true, altgr: false, name: "braceright" },
126: { shift: true, altgr: false, name: "asciitilde" },
166: { shift: true, altgr: true, name: "brokenbar" },
65288: { shift: false, altgr: false, name: "BackSpace" },
65289: { shift: false, altgr: false, name: "Tab" },
65293: { shift: false, altgr: false, name: "Return" },
65300: { shift: false, altgr: false, name: "Scroll_Lock" },
65301: { shift: false, altgr: false, name: "Sys_Req" },
65307: { shift: false, altgr: false, name: "Escape" },
65360: { shift: false, altgr: false, name: "Home" },
65361: { shift: false, altgr: false, name: "Left" },
65362: { shift: false, altgr: false, name: "Up" },
65363: { shift: false, altgr: false, name: "Right" },
65364: { shift: false, altgr: false, name: "Down" },
65365: { shift: false, altgr: false, name: "Page_Up" },
65366: { shift: false, altgr: false, name: "Page_Down" },
65367: { shift: false, altgr: false, name: "End" },
65377: { shift: false, altgr: false, name: "Print" },
65379: { shift: false, altgr: false, name: "Insert" },
65407: { shift: false, altgr: false, name: "Num_Lock" },
65421: { shift: false, altgr: false, name: "KP_Enter" },
65429: { shift: false, altgr: false, name: "KP_Home" },
65430: { shift: false, altgr: false, name: "KP_Left" },
65431: { shift: false, altgr: false, name: "KP_Up" },
65432: { shift: false, altgr: false, name: "KP_Right" },
65433: { shift: false, altgr: false, name: "KP_Down" },
65434: { shift: false, altgr: false, name: "KP_Prior" },
65435: { shift: false, altgr: false, name: "KP_Next" },
65436: { shift: false, altgr: false, name: "KP_End" },
65437: { shift: false, altgr: false, name: "KP_Begin" },
65438: { shift: false, altgr: false, name: "KP_Insert" },
65439: { shift: false, altgr: false, name: "KP_Delete" },
65450: { shift: false, altgr: false, name: "KP_Multiply" },
65451: { shift: false, altgr: false, name: "KP_Add" },
65452: { shift: false, altgr: false, name: "KP_Separator" },
65453: { shift: false, altgr: false, name: "KP_Subtract" },
65454: { shift: false, altgr: false, name: "KP_Decimal" },
65455: { shift: false, altgr: false, name: "KP_Divide" },
65456: { shift: false, altgr: false, name: "KP_0" },
65457: { shift: false, altgr: false, name: "KP_1" },
65458: { shift: false, altgr: false, name: "KP_2" },
65459: { shift: false, altgr: false, name: "KP_3" },
65460: { shift: false, altgr: false, name: "KP_4" },
65461: { shift: false, altgr: false, name: "KP_5" },
65462: { shift: false, altgr: false, name: "KP_6" },
65463: { shift: false, altgr: false, name: "KP_7" },
65464: { shift: false, altgr: false, name: "KP_8" },
65465: { shift: false, altgr: false, name: "KP_9" },
65470: { shift: false, altgr: false, name: "F1" },
65471: { shift: false, altgr: false, name: "F2" },
65472: { shift: false, altgr: false, name: "F3" },
65473: { shift: false, altgr: false, name: "F4" },
65474: { shift: false, altgr: false, name: "F5" },
65475: { shift: false, altgr: false, name: "F6" },
65476: { shift: false, altgr: false, name: "F7" },
65477: { shift: false, altgr: false, name: "F8" },
65478: { shift: false, altgr: false, name: "F9" },
65479: { shift: false, altgr: false, name: "F10" },
65480: { shift: false, altgr: false, name: "F11" },
65481: { shift: false, altgr: false, name: "F12" },
65509: { shift: false, altgr: false, name: "Caps_Lock" },
65535: { shift: false, altgr: false, name: "Delete" }
},
'sl': {
32: { shift: false, altgr: false, name: "space" },
33: { shift: true, altgr: false, name: "exclam" },
34: { shift: true, altgr: false, name: "quotedbl" },
35: { shift: true, altgr: false, name: "numbersign" },
36: { shift: true, altgr: false, name: "dollar" },
37: { shift: true, altgr: false, name: "percent" },
38: { shift: true, altgr: false, name: "ampersand" },
39: { shift: false, altgr: false, name: "apostrophe" },
40: { shift: true, altgr: false, name: "parenleft" },
41: { shift: true, altgr: false, name: "parenright" },
42: { shift: true, altgr: false, name: "asterisk" },
43: { shift: false, altgr: false, name: "plus" },
44: { shift: false, altgr: false, name: "comma" },
45: { shift: false, altgr: false, name: "minus" },
46: { shift: false, altgr: false, name: "period" },
47: { shift: true, altgr: false, name: "slash" },
48: { shift: false, altgr: false, name: "0" },
49: { shift: false, altgr: false, name: "1" },
50: { shift: false, altgr: false, name: "2" },
51: { shift: false, altgr: false, name: "3" },
52: { shift: false, altgr: false, name: "4" },
53: { shift: false, altgr: false, name: "5" },
54: { shift: false, altgr: false, name: "6" },
55: { shift: false, altgr: false, name: "7" },
56: { shift: false, altgr: false, name: "8" },
57: { shift: false, altgr: false, name: "9" },
58: { shift: true, altgr: false, name: "colon" },
59: { shift: true, altgr: false, name: "semicolon" },
60: { shift: false, altgr: false, name: "less" },
61: { shift: true, altgr: false, name: "equal" },
62: { shift: true, altgr: false, name: "greater" },
63: { shift: true, altgr: false, name: "question" },
64: { shift: false, altgr: true, name: "at" },
65: { shift: true, altgr: false, name: "A" },
66: { shift: true, altgr: false, name: "B" },
67: { shift: true, altgr: false, name: "C" },
68: { shift: true, altgr: false, name: "D" },
69: { shift: true, altgr: false, name: "E" },
70: { shift: true, altgr: false, name: "F" },
71: { shift: true, altgr: false, name: "G" },
72: { shift: true, altgr: false, name: "H" },
73: { shift: true, altgr: false, name: "I" },
74: { shift: true, altgr: false, name: "J" },
75: { shift: true, altgr: false, name: "K" },
76: { shift: true, altgr: false, name: "L" },
77: { shift: true, altgr: false, name: "M" },
78: { shift: true, altgr: false, name: "N" },
79: { shift: true, altgr: false, name: "O" },
80: { shift: true, altgr: false, name: "P" },
81: { shift: true, altgr: false, name: "Q" },
82: { shift: true, altgr: false, name: "R" },
83: { shift: true, altgr: false, name: "S" },
84: { shift: true, altgr: false, name: "T" },
85: { shift: true, altgr: false, name: "U" },
86: { shift: true, altgr: false, name: "V" },
87: { shift: true, altgr: false, name: "W" },
88: { shift: true, altgr: false, name: "X" },
89: { shift: true, altgr: false, name: "Y" },
90: { shift: true, altgr: false, name: "Z" },
91: { shift: false, altgr: true, name: "bracketleft" },
92: { shift: false, altgr: true, name: "backslash" },
93: { shift: false, altgr: true, name: "bracketright" },
94: { shift: false, altgr: true, name: "asciicircum" },
95: { shift: true, altgr: false, name: "underscore" },
96: { shift: false, altgr: true, name: "grave" },
97: { shift: false, altgr: false, name: "a" },
98: { shift: false, altgr: false, name: "b" },
99: { shift: false, altgr: false, name: "c" },
100: { shift: false, altgr: false, name: "d" },
101: { shift: false, altgr: false, name: "e" },
102: { shift: false, altgr: false, name: "f" },
103: { shift: false, altgr: false, name: "g" },
104: { shift: false, altgr: false, name: "h" },
105: { shift: false, altgr: false, name: "i" },
106: { shift: false, altgr: false, name: "j" },
107: { shift: false, altgr: false, name: "k" },
108: { shift: false, altgr: false, name: "l" },
109: { shift: false, altgr: false, name: "m" },
110: { shift: false, altgr: false, name: "n" },
111: { shift: false, altgr: false, name: "o" },
112: { shift: false, altgr: false, name: "p" },
113: { shift: false, altgr: false, name: "q" },
114: { shift: false, altgr: false, name: "r" },
115: { shift: false, altgr: false, name: "s" },
116: { shift: false, altgr: false, name: "t" },
117: { shift: false, altgr: false, name: "u" },
118: { shift: false, altgr: false, name: "v" },
119: { shift: false, altgr: false, name: "w" },
120: { shift: false, altgr: false, name: "x" },
121: { shift: false, altgr: false, name: "y" },
122: { shift: false, altgr: false, name: "z" },
123: { shift: false, altgr: true, name: "braceleft" },
124: { shift: false, altgr: true, name: "bar" },
125: { shift: false, altgr: true, name: "braceright" },
126: { shift: false, altgr: true, name: "asciitilde" },
162: { shift: false, altgr: true, name: "cent" },
164: { shift: false, altgr: true, name: "currency" },
165: { shift: true, altgr: true, name: "yen" },
166: { shift: true, altgr: true, name: "brokenbar" },
167: { shift: false, altgr: true, name: "section" },
168: { shift: true, altgr: true, name: "diaeresis" },
169: { shift: true, altgr: true, name: "copyright" },
170: { shift: true, altgr: true, name: "ordfeminine" },
171: { shift: false, altgr: true, name: "guillemotleft" },
172: { shift: false, altgr: true, name: "notsign" },
174: { shift: true, altgr: true, name: "registered" },
176: { shift: false, altgr: true, name: "degree" },
182: { shift: false, altgr: true, name: "paragraph" },
183: { shift: false, altgr: true, name: "periodcentered" },
184: { shift: true, altgr: true, name: "cedilla" },
186: { shift: true, altgr: true, name: "masculine" },
187: { shift: false, altgr: true, name: "guillemotright" },
198: { shift: true, altgr: true, name: "AE" },
208: { shift: true, altgr: true, name: "ETH" },
215: { shift: false, altgr: true, name: "multiply" },
216: { shift: true, altgr: true, name: "Ooblique" },
222: { shift: true, altgr: true, name: "THORN" },
223: { shift: false, altgr: true, name: "ssharp" },
230: { shift: false, altgr: true, name: "ae" },
240: { shift: false, altgr: true, name: "eth" },
247: { shift: false, altgr: true, name: "division" },
248: { shift: false, altgr: true, name: "oslash" },
254: { shift: false, altgr: true, name: "thorn" },
419: { shift: false, altgr: true, name: "Lstroke" },
435: { shift: false, altgr: true, name: "lstroke" },
454: { shift: true, altgr: false, name: "Cacute" },
486: { shift: false, altgr: false, name: "cacute" },
8364: { shift: false, altgr: true, name: "EuroSign" },
65104: { shift: true, altgr: true, name: "dead_grave" },
65105: { shift: false, altgr: true, name: "dead_acute" },
65106: { shift: true, altgr: true, name: "dead_circumflex" },
65107: { shift: true, altgr: true, name: "dead_tilde" },
65108: { shift: true, altgr: true, name: "dead_macron" },
65109: { shift: false, altgr: true, name: "dead_breve" },
65110: { shift: false, altgr: true, name: "dead_abovedot" },
65111: { shift: false, altgr: true, name: "dead_diaeresis" },
65112: { shift: true, altgr: true, name: "dead_abovering" },
65113: { shift: false, altgr: true, name: "dead_doubleacute" },
65114: { shift: false, altgr: true, name: "dead_caron" },
65115: { shift: false, altgr: false, name: "dead_cedilla" },
65116: { shift: false, altgr: true, name: "dead_ogonek" },
65120: { shift: false, altgr: true, name: "dead_belowdot" },
65288: { shift: false, altgr: false, name: "BackSpace" },
65289: { shift: false, altgr: false, name: "Tab" },
65293: { shift: false, altgr: false, name: "Return" },
65300: { shift: false, altgr: false, name: "Scroll_Lock" },
65301: { shift: false, altgr: false, name: "Sys_Req" },
65307: { shift: false, altgr: false, name: "Escape" },
65360: { shift: false, altgr: false, name: "Home" },
65361: { shift: false, altgr: false, name: "Left" },
65362: { shift: false, altgr: false, name: "Up" },
65363: { shift: false, altgr: false, name: "Right" },
65364: { shift: false, altgr: false, name: "Down" },
65365: { shift: false, altgr: false, name: "Page_Up" },
65366: { shift: false, altgr: false, name: "Page_Down" },
65367: { shift: false, altgr: false, name: "End" },
65377: { shift: false, altgr: false, name: "Print" },
65379: { shift: false, altgr: false, name: "Insert" },
65407: { shift: false, altgr: false, name: "Num_Lock" },
65421: { shift: false, altgr: false, name: "KP_Enter" },
65429: { shift: false, altgr: false, name: "KP_Home" },
65430: { shift: false, altgr: false, name: "KP_Left" },
65431: { shift: false, altgr: false, name: "KP_Up" },
65432: { shift: false, altgr: false, name: "KP_Right" },
65433: { shift: false, altgr: false, name: "KP_Down" },
65434: { shift: false, altgr: false, name: "KP_Prior" },
65435: { shift: false, altgr: false, name: "KP_Next" },
65436: { shift: false, altgr: false, name: "KP_End" },
65437: { shift: false, altgr: false, name: "KP_Begin" },
65438: { shift: false, altgr: false, name: "KP_Insert" },
65439: { shift: false, altgr: false, name: "KP_Delete" },
65450: { shift: false, altgr: false, name: "KP_Multiply" },
65451: { shift: false, altgr: false, name: "KP_Add" },
65452: { shift: false, altgr: false, name: "KP_Separator" },
65453: { shift: false, altgr: false, name: "KP_Subtract" },
65454: { shift: false, altgr: false, name: "KP_Decimal" },
65455: { shift: false, altgr: false, name: "KP_Divide" },
65456: { shift: false, altgr: false, name: "KP_0" },
65457: { shift: false, altgr: false, name: "KP_1" },
65458: { shift: false, altgr: false, name: "KP_2" },
65459: { shift: false, altgr: false, name: "KP_3" },
65460: { shift: false, altgr: false, name: "KP_4" },
65461: { shift: false, altgr: false, name: "KP_5" },
65462: { shift: false, altgr: false, name: "KP_6" },
65463: { shift: false, altgr: false, name: "KP_7" },
65464: { shift: false, altgr: false, name: "KP_8" },
65465: { shift: false, altgr: false, name: "KP_9" },
65470: { shift: false, altgr: false, name: "F1" },
65471: { shift: false, altgr: false, name: "F2" },
65472: { shift: false, altgr: false, name: "F3" },
65473: { shift: false, altgr: false, name: "F4" },
65474: { shift: false, altgr: false, name: "F5" },
65475: { shift: false, altgr: false, name: "F6" },
65476: { shift: false, altgr: false, name: "F7" },
65477: { shift: false, altgr: false, name: "F8" },
65478: { shift: false, altgr: false, name: "F9" },
65479: { shift: false, altgr: false, name: "F10" },
65480: { shift: false, altgr: false, name: "F11" },
65481: { shift: false, altgr: false, name: "F12" },
65509: { shift: false, altgr: false, name: "Caps_Lock" },
65535: { shift: false, altgr: false, name: "Delete" }
},
'sv': {
32: { shift: false, altgr: false, name: "space" },
33: { shift: true, altgr: false, name: "exclam" },
34: { shift: true, altgr: false, name: "quotedbl" },
35: { shift: true, altgr: false, name: "numbersign" },
36: { shift: false, altgr: true, name: "dollar" },
37: { shift: true, altgr: false, name: "percent" },
38: { shift: true, altgr: false, name: "ampersand" },
39: { shift: false, altgr: false, name: "apostrophe" },
40: { shift: true, altgr: false, name: "parenleft" },
41: { shift: true, altgr: false, name: "parenright" },
42: { shift: true, altgr: false, name: "asterisk" },
43: { shift: false, altgr: false, name: "plus" },
44: { shift: false, altgr: false, name: "comma" },
45: { shift: false, altgr: false, name: "minus" },
46: { shift: false, altgr: false, name: "period" },
47: { shift: true, altgr: false, name: "slash" },
48: { shift: false, altgr: false, name: "0" },
49: { shift: false, altgr: false, name: "1" },
50: { shift: false, altgr: false, name: "2" },
51: { shift: false, altgr: false, name: "3" },
52: { shift: false, altgr: false, name: "4" },
53: { shift: false, altgr: false, name: "5" },
54: { shift: false, altgr: false, name: "6" },
55: { shift: false, altgr: false, name: "7" },
56: { shift: false, altgr: false, name: "8" },
57: { shift: false, altgr: false, name: "9" },
58: { shift: true, altgr: false, name: "colon" },
59: { shift: true, altgr: false, name: "semicolon" },
60: { shift: false, altgr: false, name: "less" },
61: { shift: true, altgr: false, name: "equal" },
62: { shift: true, altgr: false, name: "greater" },
63: { shift: true, altgr: false, name: "question" },
64: { shift: false, altgr: true, name: "at" },
65: { shift: true, altgr: false, name: "A" },
66: { shift: true, altgr: false, name: "B" },
67: { shift: true, altgr: false, name: "C" },
68: { shift: true, altgr: false, name: "D" },
69: { shift: true, altgr: false, name: "E" },
70: { shift: true, altgr: false, name: "F" },
71: { shift: true, altgr: false, name: "G" },
72: { shift: true, altgr: false, name: "H" },
73: { shift: true, altgr: false, name: "I" },
74: { shift: true, altgr: false, name: "J" },
75: { shift: true, altgr: false, name: "K" },
76: { shift: true, altgr: false, name: "L" },
77: { shift: true, altgr: false, name: "M" },
78: { shift: true, altgr: false, name: "N" },
79: { shift: true, altgr: false, name: "O" },
80: { shift: true, altgr: false, name: "P" },
81: { shift: true, altgr: false, name: "Q" },
82: { shift: true, altgr: false, name: "R" },
83: { shift: true, altgr: false, name: "S" },
84: { shift: true, altgr: false, name: "T" },
85: { shift: true, altgr: false, name: "U" },
86: { shift: true, altgr: false, name: "V" },
87: { shift: true, altgr: false, name: "W" },
88: { shift: true, altgr: false, name: "X" },
89: { shift: true, altgr: false, name: "Y" },
90: { shift: true, altgr: false, name: "Z" },
91: { shift: false, altgr: true, name: "bracketleft" },
92: { shift: false, altgr: true, name: "backslash" },
93: { shift: false, altgr: true, name: "bracketright" },
95: { shift: true, altgr: false, name: "underscore" },
96: { shift: true, altgr: false, name: "grave" },
97: { shift: false, altgr: false, name: "a" },
98: { shift: false, altgr: false, name: "b" },
99: { shift: false, altgr: false, name: "c" },
100: { shift: false, altgr: false, name: "d" },
101: { shift: false, altgr: false, name: "e" },
102: { shift: false, altgr: false, name: "f" },
103: { shift: false, altgr: false, name: "g" },
104: { shift: false, altgr: false, name: "h" },
105: { shift: false, altgr: false, name: "i" },
106: { shift: false, altgr: false, name: "j" },
107: { shift: false, altgr: false, name: "k" },
108: { shift: false, altgr: false, name: "l" },
109: { shift: false, altgr: false, name: "m" },
110: { shift: false, altgr: false, name: "n" },
111: { shift: false, altgr: false, name: "o" },
112: { shift: false, altgr: false, name: "p" },
113: { shift: false, altgr: false, name: "q" },
114: { shift: false, altgr: false, name: "r" },
115: { shift: false, altgr: false, name: "s" },
116: { shift: false, altgr: false, name: "t" },
117: { shift: false, altgr: false, name: "u" },
118: { shift: false, altgr: false, name: "v" },
119: { shift: false, altgr: false, name: "w" },
120: { shift: false, altgr: false, name: "x" },
121: { shift: false, altgr: false, name: "y" },
122: { shift: false, altgr: false, name: "z" },
123: { shift: false, altgr: true, name: "braceleft" },
124: { shift: false, altgr: true, name: "bar" },
125: { shift: false, altgr: true, name: "braceright" },
163: { shift: false, altgr: true, name: "sterling" },
164: { shift: true, altgr: false, name: "currency" },
166: { shift: true, altgr: true, name: "brokenbar" },
167: { shift: false, altgr: false, name: "section" },
180: { shift: false, altgr: false, name: "acute" },
181: { shift: false, altgr: true, name: "mu" },
189: { shift: true, altgr: false, name: "onehalf" },
196: { shift: true, altgr: false, name: "Adiaeresis" },
197: { shift: true, altgr: false, name: "Aring" },
214: { shift: true, altgr: false, name: "Odiaeresis" },
228: { shift: false, altgr: false, name: "adiaeresis" },
229: { shift: false, altgr: false, name: "aring" },
246: { shift: false, altgr: false, name: "odiaeresis" },
8364: { shift: false, altgr: true, name: "EuroSign" },
65104: { shift: true, altgr: false, name: "dead_grave" },
65105: { shift: false, altgr: false, name: "dead_acute" },
65106: { shift: true, altgr: false, name: "dead_circumflex" },
65107: { shift: false, altgr: true, name: "dead_tilde" },
65111: { shift: false, altgr: false, name: "dead_diaeresis" },
65288: { shift: false, altgr: false, name: "BackSpace" },
65289: { shift: false, altgr: false, name: "Tab" },
65293: { shift: false, altgr: false, name: "Return" },
65300: { shift: false, altgr: false, name: "Scroll_Lock" },
65301: { shift: false, altgr: false, name: "Sys_Req" },
65307: { shift: false, altgr: false, name: "Escape" },
65360: { shift: false, altgr: false, name: "Home" },
65361: { shift: false, altgr: false, name: "Left" },
65362: { shift: false, altgr: false, name: "Up" },
65363: { shift: false, altgr: false, name: "Right" },
65364: { shift: false, altgr: false, name: "Down" },
65365: { shift: false, altgr: false, name: "Page_Up" },
65366: { shift: false, altgr: false, name: "Page_Down" },
65367: { shift: false, altgr: false, name: "End" },
65377: { shift: false, altgr: false, name: "Print" },
65379: { shift: false, altgr: false, name: "Insert" },
65407: { shift: false, altgr: false, name: "Num_Lock" },
65421: { shift: false, altgr: false, name: "KP_Enter" },
65429: { shift: false, altgr: false, name: "KP_Home" },
65430: { shift: false, altgr: false, name: "KP_Left" },
65431: { shift: false, altgr: false, name: "KP_Up" },
65432: { shift: false, altgr: false, name: "KP_Right" },
65433: { shift: false, altgr: false, name: "KP_Down" },
65434: { shift: false, altgr: false, name: "KP_Prior" },
65435: { shift: false, altgr: false, name: "KP_Next" },
65436: { shift: false, altgr: false, name: "KP_End" },
65437: { shift: false, altgr: false, name: "KP_Begin" },
65438: { shift: false, altgr: false, name: "KP_Insert" },
65439: { shift: false, altgr: false, name: "KP_Delete" },
65450: { shift: false, altgr: false, name: "KP_Multiply" },
65451: { shift: false, altgr: false, name: "KP_Add" },
65452: { shift: false, altgr: false, name: "KP_Separator" },
65453: { shift: false, altgr: false, name: "KP_Subtract" },
65454: { shift: false, altgr: false, name: "KP_Decimal" },
65455: { shift: false, altgr: false, name: "KP_Divide" },
65456: { shift: false, altgr: false, name: "KP_0" },
65457: { shift: false, altgr: false, name: "KP_1" },
65458: { shift: false, altgr: false, name: "KP_2" },
65459: { shift: false, altgr: false, name: "KP_3" },
65460: { shift: false, altgr: false, name: "KP_4" },
65461: { shift: false, altgr: false, name: "KP_5" },
65462: { shift: false, altgr: false, name: "KP_6" },
65463: { shift: false, altgr: false, name: "KP_7" },
65464: { shift: false, altgr: false, name: "KP_8" },
65465: { shift: false, altgr: false, name: "KP_9" },
65470: { shift: false, altgr: false, name: "F1" },
65471: { shift: false, altgr: false, name: "F2" },
65472: { shift: false, altgr: false, name: "F3" },
65473: { shift: false, altgr: false, name: "F4" },
65474: { shift: false, altgr: false, name: "F5" },
65475: { shift: false, altgr: false, name: "F6" },
65476: { shift: false, altgr: false, name: "F7" },
65477: { shift: false, altgr: false, name: "F8" },
65478: { shift: false, altgr: false, name: "F9" },
65479: { shift: false, altgr: false, name: "F10" },
65480: { shift: false, altgr: false, name: "F11" },
65481: { shift: false, altgr: false, name: "F12" },
65509: { shift: false, altgr: false, name: "Caps_Lock" },
65535: { shift: false, altgr: false, name: "Delete" }
},
'th': {
32: { shift: false, altgr: false, name: "space" },
33: { shift: true, altgr: false, name: "exclam" },
34: { shift: true, altgr: false, name: "quotedbl" },
35: { shift: true, altgr: false, name: "numbersign" },
36: { shift: true, altgr: false, name: "dollar" },
37: { shift: true, altgr: true, name: "percent" },
38: { shift: true, altgr: false, name: "ampersand" },
39: { shift: false, altgr: false, name: "apostrophe" },
40: { shift: true, altgr: true, name: "parenleft" },
41: { shift: true, altgr: true, name: "parenright" },
42: { shift: true, altgr: false, name: "asterisk" },
43: { shift: true, altgr: false, name: "plus" },
44: { shift: false, altgr: false, name: "comma" },
45: { shift: false, altgr: false, name: "minus" },
46: { shift: false, altgr: false, name: "period" },
47: { shift: false, altgr: false, name: "slash" },
48: { shift: false, altgr: false, name: "0" },
49: { shift: false, altgr: false, name: "1" },
50: { shift: false, altgr: false, name: "2" },
51: { shift: false, altgr: false, name: "3" },
52: { shift: false, altgr: false, name: "4" },
53: { shift: false, altgr: false, name: "5" },
54: { shift: false, altgr: false, name: "6" },
55: { shift: false, altgr: false, name: "7" },
56: { shift: false, altgr: false, name: "8" },
57: { shift: false, altgr: false, name: "9" },
58: { shift: true, altgr: false, name: "colon" },
59: { shift: false, altgr: false, name: "semicolon" },
60: { shift: true, altgr: false, name: "less" },
61: { shift: false, altgr: false, name: "equal" },
62: { shift: true, altgr: false, name: "greater" },
63: { shift: true, altgr: false, name: "question" },
64: { shift: true, altgr: false, name: "at" },
65: { shift: true, altgr: false, name: "A" },
66: { shift: true, altgr: false, name: "B" },
67: { shift: true, altgr: false, name: "C" },
68: { shift: true, altgr: false, name: "D" },
69: { shift: true, altgr: false, name: "E" },
70: { shift: true, altgr: false, name: "F" },
71: { shift: true, altgr: false, name: "G" },
72: { shift: true, altgr: false, name: "H" },
73: { shift: true, altgr: false, name: "I" },
74: { shift: true, altgr: false, name: "J" },
75: { shift: true, altgr: false, name: "K" },
76: { shift: true, altgr: false, name: "L" },
77: { shift: true, altgr: false, name: "M" },
78: { shift: true, altgr: false, name: "N" },
79: { shift: true, altgr: false, name: "O" },
80: { shift: true, altgr: false, name: "P" },
81: { shift: true, altgr: false, name: "Q" },
82: { shift: true, altgr: false, name: "R" },
83: { shift: true, altgr: false, name: "S" },
84: { shift: true, altgr: false, name: "T" },
85: { shift: true, altgr: false, name: "U" },
86: { shift: true, altgr: false, name: "V" },
87: { shift: true, altgr: false, name: "W" },
88: { shift: true, altgr: false, name: "X" },
89: { shift: true, altgr: false, name: "Y" },
90: { shift: true, altgr: false, name: "Z" },
91: { shift: false, altgr: false, name: "bracketleft" },
92: { shift: false, altgr: false, name: "backslash" },
93: { shift: false, altgr: false, name: "bracketright" },
94: { shift: true, altgr: false, name: "asciicircum" },
95: { shift: false, altgr: true, name: "underscore" },
96: { shift: false, altgr: false, name: "grave" },
97: { shift: false, altgr: false, name: "a" },
98: { shift: false, altgr: false, name: "b" },
99: { shift: false, altgr: false, name: "c" },
100: { shift: false, altgr: false, name: "d" },
101: { shift: false, altgr: false, name: "e" },
102: { shift: false, altgr: false, name: "f" },
103: { shift: false, altgr: false, name: "g" },
104: { shift: false, altgr: false, name: "h" },
105: { shift: false, altgr: false, name: "i" },
106: { shift: false, altgr: false, name: "j" },
107: { shift: false, altgr: false, name: "k" },
108: { shift: false, altgr: false, name: "l" },
109: { shift: false, altgr: false, name: "m" },
110: { shift: false, altgr: false, name: "n" },
111: { shift: false, altgr: false, name: "o" },
112: { shift: false, altgr: false, name: "p" },
113: { shift: false, altgr: false, name: "q" },
114: { shift: false, altgr: false, name: "r" },
115: { shift: false, altgr: false, name: "s" },
116: { shift: false, altgr: false, name: "t" },
117: { shift: false, altgr: false, name: "u" },
118: { shift: false, altgr: false, name: "v" },
119: { shift: false, altgr: false, name: "w" },
120: { shift: false, altgr: false, name: "x" },
121: { shift: false, altgr: false, name: "y" },
122: { shift: false, altgr: false, name: "z" },
123: { shift: true, altgr: false, name: "braceleft" },
124: { shift: true, altgr: false, name: "bar" },
125: { shift: true, altgr: false, name: "braceright" },
126: { shift: true, altgr: false, name: "asciitilde" },
166: { shift: true, altgr: true, name: "brokenbar" },
65288: { shift: false, altgr: false, name: "BackSpace" },
65289: { shift: false, altgr: false, name: "Tab" },
65293: { shift: false, altgr: false, name: "Return" },
65300: { shift: false, altgr: false, name: "Scroll_Lock" },
65301: { shift: false, altgr: false, name: "Sys_Req" },
65307: { shift: false, altgr: false, name: "Escape" },
65360: { shift: false, altgr: false, name: "Home" },
65361: { shift: false, altgr: false, name: "Left" },
65362: { shift: false, altgr: false, name: "Up" },
65363: { shift: false, altgr: false, name: "Right" },
65364: { shift: false, altgr: false, name: "Down" },
65365: { shift: false, altgr: false, name: "Page_Up" },
65366: { shift: false, altgr: false, name: "Page_Down" },
65367: { shift: false, altgr: false, name: "End" },
65377: { shift: false, altgr: false, name: "Print" },
65379: { shift: false, altgr: false, name: "Insert" },
65407: { shift: false, altgr: false, name: "Num_Lock" },
65421: { shift: false, altgr: false, name: "KP_Enter" },
65429: { shift: false, altgr: false, name: "KP_Home" },
65430: { shift: false, altgr: false, name: "KP_Left" },
65431: { shift: false, altgr: false, name: "KP_Up" },
65432: { shift: false, altgr: false, name: "KP_Right" },
65433: { shift: false, altgr: false, name: "KP_Down" },
65434: { shift: false, altgr: false, name: "KP_Prior" },
65435: { shift: false, altgr: false, name: "KP_Next" },
65436: { shift: false, altgr: false, name: "KP_End" },
65437: { shift: false, altgr: false, name: "KP_Begin" },
65438: { shift: false, altgr: false, name: "KP_Insert" },
65439: { shift: false, altgr: false, name: "KP_Delete" },
65450: { shift: false, altgr: false, name: "KP_Multiply" },
65451: { shift: false, altgr: false, name: "KP_Add" },
65452: { shift: false, altgr: false, name: "KP_Separator" },
65453: { shift: false, altgr: false, name: "KP_Subtract" },
65454: { shift: false, altgr: false, name: "KP_Decimal" },
65455: { shift: false, altgr: false, name: "KP_Divide" },
65456: { shift: false, altgr: false, name: "KP_0" },
65457: { shift: false, altgr: false, name: "KP_1" },
65458: { shift: false, altgr: false, name: "KP_2" },
65459: { shift: false, altgr: false, name: "KP_3" },
65460: { shift: false, altgr: false, name: "KP_4" },
65461: { shift: false, altgr: false, name: "KP_5" },
65462: { shift: false, altgr: false, name: "KP_6" },
65463: { shift: false, altgr: false, name: "KP_7" },
65464: { shift: false, altgr: false, name: "KP_8" },
65465: { shift: false, altgr: false, name: "KP_9" },
65470: { shift: false, altgr: false, name: "F1" },
65471: { shift: false, altgr: false, name: "F2" },
65472: { shift: false, altgr: false, name: "F3" },
65473: { shift: false, altgr: false, name: "F4" },
65474: { shift: false, altgr: false, name: "F5" },
65475: { shift: false, altgr: false, name: "F6" },
65476: { shift: false, altgr: false, name: "F7" },
65477: { shift: false, altgr: false, name: "F8" },
65478: { shift: false, altgr: false, name: "F9" },
65479: { shift: false, altgr: false, name: "F10" },
65480: { shift: false, altgr: false, name: "F11" },
65481: { shift: false, altgr: false, name: "F12" },
65509: { shift: false, altgr: false, name: "Caps_Lock" },
65535: { shift: false, altgr: false, name: "Delete" }
},
'tr': {
32: { shift: false, altgr: false, name: "space" },
33: { shift: true, altgr: false, name: "exclam" },
34: { shift: true, altgr: false, name: "quotedbl" },
35: { shift: false, altgr: true, name: "numbersign" },
36: { shift: false, altgr: true, name: "dollar" },
37: { shift: true, altgr: false, name: "percent" },
38: { shift: true, altgr: true, name: "ampersand" },
39: { shift: true, altgr: true, name: "apostrophe" },
40: { shift: true, altgr: false, name: "parenleft" },
41: { shift: true, altgr: false, name: "parenright" },
42: { shift: false, altgr: false, name: "asterisk" },
43: { shift: true, altgr: false, name: "plus" },
44: { shift: false, altgr: false, name: "comma" },
45: { shift: false, altgr: false, name: "minus" },
46: { shift: false, altgr: false, name: "period" },
47: { shift: true, altgr: false, name: "slash" },
48: { shift: false, altgr: false, name: "0" },
49: { shift: false, altgr: false, name: "1" },
50: { shift: false, altgr: false, name: "2" },
51: { shift: false, altgr: false, name: "3" },
52: { shift: false, altgr: false, name: "4" },
53: { shift: false, altgr: false, name: "5" },
54: { shift: false, altgr: false, name: "6" },
55: { shift: false, altgr: false, name: "7" },
56: { shift: false, altgr: false, name: "8" },
57: { shift: false, altgr: false, name: "9" },
58: { shift: true, altgr: false, name: "colon" },
59: { shift: true, altgr: false, name: "semicolon" },
60: { shift: false, altgr: true, name: "less" },
61: { shift: true, altgr: false, name: "equal" },
62: { shift: false, altgr: true, name: "greater" },
63: { shift: true, altgr: false, name: "question" },
64: { shift: false, altgr: true, name: "at" },
65: { shift: true, altgr: false, name: "A" },
66: { shift: true, altgr: false, name: "B" },
67: { shift: true, altgr: false, name: "C" },
68: { shift: true, altgr: false, name: "D" },
69: { shift: true, altgr: false, name: "E" },
70: { shift: true, altgr: false, name: "F" },
71: { shift: true, altgr: false, name: "G" },
72: { shift: true, altgr: false, name: "H" },
73: { shift: true, altgr: false, name: "I" },
74: { shift: true, altgr: false, name: "J" },
75: { shift: true, altgr: false, name: "K" },
76: { shift: true, altgr: false, name: "L" },
77: { shift: true, altgr: false, name: "M" },
78: { shift: true, altgr: false, name: "N" },
79: { shift: true, altgr: false, name: "O" },
80: { shift: true, altgr: false, name: "P" },
81: { shift: true, altgr: false, name: "Q" },
82: { shift: true, altgr: false, name: "R" },
83: { shift: true, altgr: false, name: "S" },
84: { shift: true, altgr: false, name: "T" },
85: { shift: true, altgr: false, name: "U" },
86: { shift: true, altgr: false, name: "V" },
87: { shift: true, altgr: false, name: "W" },
88: { shift: true, altgr: false, name: "X" },
89: { shift: true, altgr: false, name: "Y" },
90: { shift: true, altgr: false, name: "Z" },
91: { shift: false, altgr: true, name: "bracketleft" },
92: { shift: false, altgr: false, name: "backslash" },
93: { shift: false, altgr: true, name: "bracketright" },
94: { shift: false, altgr: true, name: "asciicircum" },
95: { shift: true, altgr: false, name: "underscore" },
96: { shift: true, altgr: true, name: "grave" },
97: { shift: false, altgr: false, name: "a" },
98: { shift: false, altgr: false, name: "b" },
99: { shift: false, altgr: false, name: "c" },
100: { shift: false, altgr: false, name: "d" },
101: { shift: false, altgr: false, name: "e" },
102: { shift: false, altgr: false, name: "f" },
103: { shift: false, altgr: false, name: "g" },
104: { shift: false, altgr: false, name: "h" },
105: { shift: false, altgr: false, name: "i" },
106: { shift: false, altgr: false, name: "j" },
107: { shift: false, altgr: false, name: "k" },
108: { shift: false, altgr: false, name: "l" },
109: { shift: false, altgr: false, name: "m" },
110: { shift: false, altgr: false, name: "n" },
111: { shift: false, altgr: false, name: "o" },
112: { shift: false, altgr: false, name: "p" },
113: { shift: false, altgr: false, name: "q" },
114: { shift: false, altgr: false, name: "r" },
115: { shift: false, altgr: false, name: "s" },
116: { shift: false, altgr: false, name: "t" },
117: { shift: false, altgr: false, name: "u" },
118: { shift: false, altgr: false, name: "v" },
119: { shift: false, altgr: false, name: "w" },
120: { shift: false, altgr: false, name: "x" },
121: { shift: false, altgr: false, name: "y" },
122: { shift: false, altgr: false, name: "z" },
123: { shift: false, altgr: true, name: "braceleft" },
124: { shift: false, altgr: true, name: "bar" },
125: { shift: false, altgr: true, name: "braceright" },
126: { shift: false, altgr: true, name: "asciitilde" },
161: { shift: true, altgr: true, name: "exclamdown" },
162: { shift: false, altgr: true, name: "cent" },
163: { shift: true, altgr: true, name: "sterling" },
165: { shift: true, altgr: true, name: "yen" },
166: { shift: true, altgr: true, name: "brokenbar" },
167: { shift: true, altgr: true, name: "section" },
169: { shift: true, altgr: true, name: "copyright" },
170: { shift: true, altgr: true, name: "ordfeminine" },
171: { shift: false, altgr: true, name: "guillemotleft" },
174: { shift: true, altgr: true, name: "registered" },
176: { shift: true, altgr: true, name: "degree" },
177: { shift: true, altgr: true, name: "plusminus" },
181: { shift: false, altgr: true, name: "mu" },
182: { shift: false, altgr: true, name: "paragraph" },
185: { shift: false, altgr: true, name: "onesuperior" },
186: { shift: true, altgr: true, name: "masculine" },
187: { shift: false, altgr: true, name: "guillemotright" },
189: { shift: false, altgr: true, name: "onehalf" },
191: { shift: true, altgr: true, name: "questiondown" },
198: { shift: true, altgr: true, name: "AE" },
199: { shift: true, altgr: false, name: "Ccedilla" },
208: { shift: true, altgr: true, name: "ETH" },
214: { shift: true, altgr: false, name: "Odiaeresis" },
215: { shift: true, altgr: true, name: "multiply" },
216: { shift: true, altgr: true, name: "Ooblique" },
220: { shift: true, altgr: false, name: "Udiaeresis" },
222: { shift: true, altgr: true, name: "THORN" },
223: { shift: false, altgr: true, name: "ssharp" },
230: { shift: false, altgr: true, name: "ae" },
231: { shift: false, altgr: false, name: "ccedilla" },
240: { shift: false, altgr: true, name: "eth" },
246: { shift: false, altgr: false, name: "odiaeresis" },
247: { shift: true, altgr: true, name: "division" },
248: { shift: false, altgr: true, name: "oslash" },
252: { shift: false, altgr: false, name: "udiaeresis" },
254: { shift: false, altgr: true, name: "thorn" },
419: { shift: true, altgr: true, name: "Lstroke" },
435: { shift: false, altgr: true, name: "lstroke" },
8364: { shift: false, altgr: true, name: "EuroSign" },
65105: { shift: false, altgr: true, name: "dead_acute" },
65106: { shift: false, altgr: true, name: "dead_circumflex" },
65108: { shift: true, altgr: true, name: "dead_macron" },
65109: { shift: true, altgr: true, name: "dead_breve" },
65110: { shift: true, altgr: true, name: "dead_abovedot" },
65111: { shift: false, altgr: true, name: "dead_diaeresis" },
65112: { shift: true, altgr: true, name: "dead_abovering" },
65113: { shift: true, altgr: true, name: "dead_doubleacute" },
65114: { shift: true, altgr: true, name: "dead_caron" },
65115: { shift: false, altgr: true, name: "dead_cedilla" },
65116: { shift: true, altgr: true, name: "dead_ogonek" },
65120: { shift: false, altgr: true, name: "dead_belowdot" },
65288: { shift: false, altgr: false, name: "BackSpace" },
65289: { shift: false, altgr: false, name: "Tab" },
65293: { shift: false, altgr: false, name: "Return" },
65300: { shift: false, altgr: false, name: "Scroll_Lock" },
65301: { shift: false, altgr: false, name: "Sys_Req" },
65307: { shift: false, altgr: false, name: "Escape" },
65360: { shift: false, altgr: false, name: "Home" },
65361: { shift: false, altgr: false, name: "Left" },
65362: { shift: false, altgr: false, name: "Up" },
65363: { shift: false, altgr: false, name: "Right" },
65364: { shift: false, altgr: false, name: "Down" },
65365: { shift: false, altgr: false, name: "Page_Up" },
65366: { shift: false, altgr: false, name: "Page_Down" },
65367: { shift: false, altgr: false, name: "End" },
65377: { shift: false, altgr: false, name: "Print" },
65379: { shift: false, altgr: false, name: "Insert" },
65407: { shift: false, altgr: false, name: "Num_Lock" },
65421: { shift: false, altgr: false, name: "KP_Enter" },
65429: { shift: false, altgr: false, name: "KP_Home" },
65430: { shift: false, altgr: false, name: "KP_Left" },
65431: { shift: false, altgr: false, name: "KP_Up" },
65432: { shift: false, altgr: false, name: "KP_Right" },
65433: { shift: false, altgr: false, name: "KP_Down" },
65434: { shift: false, altgr: false, name: "KP_Prior" },
65435: { shift: false, altgr: false, name: "KP_Next" },
65436: { shift: false, altgr: false, name: "KP_End" },
65437: { shift: false, altgr: false, name: "KP_Begin" },
65438: { shift: false, altgr: false, name: "KP_Insert" },
65439: { shift: false, altgr: false, name: "KP_Delete" },
65450: { shift: false, altgr: false, name: "KP_Multiply" },
65451: { shift: false, altgr: false, name: "KP_Add" },
65452: { shift: false, altgr: false, name: "KP_Separator" },
65453: { shift: false, altgr: false, name: "KP_Subtract" },
65454: { shift: false, altgr: false, name: "KP_Decimal" },
65455: { shift: false, altgr: false, name: "KP_Divide" },
65456: { shift: false, altgr: false, name: "KP_0" },
65457: { shift: false, altgr: false, name: "KP_1" },
65458: { shift: false, altgr: false, name: "KP_2" },
65459: { shift: false, altgr: false, name: "KP_3" },
65460: { shift: false, altgr: false, name: "KP_4" },
65461: { shift: false, altgr: false, name: "KP_5" },
65462: { shift: false, altgr: false, name: "KP_6" },
65463: { shift: false, altgr: false, name: "KP_7" },
65464: { shift: false, altgr: false, name: "KP_8" },
65465: { shift: false, altgr: false, name: "KP_9" },
65470: { shift: false, altgr: false, name: "F1" },
65471: { shift: false, altgr: false, name: "F2" },
65472: { shift: false, altgr: false, name: "F3" },
65473: { shift: false, altgr: false, name: "F4" },
65474: { shift: false, altgr: false, name: "F5" },
65475: { shift: false, altgr: false, name: "F6" },
65476: { shift: false, altgr: false, name: "F7" },
65477: { shift: false, altgr: false, name: "F8" },
65478: { shift: false, altgr: false, name: "F9" },
65479: { shift: false, altgr: false, name: "F10" },
65480: { shift: false, altgr: false, name: "F11" },
65481: { shift: false, altgr: false, name: "F12" },
65509: { shift: false, altgr: false, name: "Caps_Lock" },
65535: { shift: false, altgr: false, name: "Delete" }
}
};