1#define UNDEFINED_VK (unsigned short)-1
2#ifndef VK_LBUTTON
3# define VK_LBUTTON UNDEFINED_VK
4#endif
5#ifndef VK_RBUTTON
6# define VK_RBUTTON UNDEFINED_VK
7#endif
8#ifndef VK_CANCEL
9# define VK_CANCEL UNDEFINED_VK
10#endif
11#ifndef VK_MBUTTON
12# define VK_MBUTTON UNDEFINED_VK
13#endif
14#ifndef VK_XBUTTON1
15# define VK_XBUTTON1 UNDEFINED_VK
16#endif
17#ifndef VK_XBUTTON2
18# define VK_XBUTTON2 UNDEFINED_VK
19#endif
20#ifndef VK_BACK
21# define VK_BACK UNDEFINED_VK
22#endif
23#ifndef VK_TAB
24# define VK_TAB UNDEFINED_VK
25#endif
26#ifndef VK_CLEAR
27# define VK_CLEAR UNDEFINED_VK
28#endif
29#ifndef VK_RETURN
30# define VK_RETURN UNDEFINED_VK
31#endif
32#ifndef VK_SHIFT
33# define VK_SHIFT UNDEFINED_VK
34#endif
35#ifndef VK_CONTROL
36# define VK_CONTROL UNDEFINED_VK
37#endif
38#ifndef VK_MENU
39# define VK_MENU UNDEFINED_VK
40#endif
41#ifndef VK_PAUSE
42# define VK_PAUSE UNDEFINED_VK
43#endif
44#ifndef VK_CAPITAL
45# define VK_CAPITAL UNDEFINED_VK
46#endif
47#ifndef VK_KANA
48# define VK_KANA UNDEFINED_VK
49#endif
50#ifndef VK_HANGEUL
51# define VK_HANGEUL UNDEFINED_VK
52#endif
53#ifndef VK_HANGUL
54# define VK_HANGUL UNDEFINED_VK
55#endif
56#ifndef VK_JUNJA
57# define VK_JUNJA UNDEFINED_VK
58#endif
59#ifndef VK_FINAL
60# define VK_FINAL UNDEFINED_VK
61#endif
62#ifndef VK_HANJA
63# define VK_HANJA UNDEFINED_VK
64#endif
65#ifndef VK_KANJI
66# define VK_KANJI UNDEFINED_VK
67#endif
68#ifndef VK_ESCAPE
69# define VK_ESCAPE UNDEFINED_VK
70#endif
71#ifndef VK_CONVERT
72# define VK_CONVERT UNDEFINED_VK
73#endif
74#ifndef VK_NONCONVERT
75# define VK_NONCONVERT UNDEFINED_VK
76#endif
77#ifndef VK_ACCEPT
78# define VK_ACCEPT UNDEFINED_VK
79#endif
80#ifndef VK_MODECHANGE
81# define VK_MODECHANGE UNDEFINED_VK
82#endif
83#ifndef VK_SPACE
84# define VK_SPACE UNDEFINED_VK
85#endif
86#ifndef VK_PRIOR
87# define VK_PRIOR UNDEFINED_VK
88#endif
89#ifndef VK_NEXT
90# define VK_NEXT UNDEFINED_VK
91#endif
92#ifndef VK_END
93# define VK_END UNDEFINED_VK
94#endif
95#ifndef VK_HOME
96# define VK_HOME UNDEFINED_VK
97#endif
98#ifndef VK_LEFT
99# define VK_LEFT UNDEFINED_VK
100#endif
101#ifndef VK_UP
102# define VK_UP UNDEFINED_VK
103#endif
104#ifndef VK_RIGHT
105# define VK_RIGHT UNDEFINED_VK
106#endif
107#ifndef VK_DOWN
108# define VK_DOWN UNDEFINED_VK
109#endif
110#ifndef VK_SELECT
111# define VK_SELECT UNDEFINED_VK
112#endif
113#ifndef VK_PRINT
114# define VK_PRINT UNDEFINED_VK
115#endif
116#ifndef VK_EXECUTE
117# define VK_EXECUTE UNDEFINED_VK
118#endif
119#ifndef VK_SNAPSHOT
120# define VK_SNAPSHOT UNDEFINED_VK
121#endif
122#ifndef VK_INSERT
123# define VK_INSERT UNDEFINED_VK
124#endif
125#ifndef VK_DELETE
126# define VK_DELETE UNDEFINED_VK
127#endif
128#ifndef VK_HELP
129# define VK_HELP UNDEFINED_VK
130#endif
131#ifndef VK_LWIN
132# define VK_LWIN UNDEFINED_VK
133#endif
134#ifndef VK_RWIN
135# define VK_RWIN UNDEFINED_VK
136#endif
137#ifndef VK_APPS
138# define VK_APPS UNDEFINED_VK
139#endif
140#ifndef VK_SLEEP
141# define VK_SLEEP UNDEFINED_VK
142#endif
143#ifndef VK_NUMPAD0
144# define VK_NUMPAD0 UNDEFINED_VK
145#endif
146#ifndef VK_NUMPAD1
147# define VK_NUMPAD1 UNDEFINED_VK
148#endif
149#ifndef VK_NUMPAD2
150# define VK_NUMPAD2 UNDEFINED_VK
151#endif
152#ifndef VK_NUMPAD3
153# define VK_NUMPAD3 UNDEFINED_VK
154#endif
155#ifndef VK_NUMPAD4
156# define VK_NUMPAD4 UNDEFINED_VK
157#endif
158#ifndef VK_NUMPAD5
159# define VK_NUMPAD5 UNDEFINED_VK
160#endif
161#ifndef VK_NUMPAD6
162# define VK_NUMPAD6 UNDEFINED_VK
163#endif
164#ifndef VK_NUMPAD7
165# define VK_NUMPAD7 UNDEFINED_VK
166#endif
167#ifndef VK_NUMPAD8
168# define VK_NUMPAD8 UNDEFINED_VK
169#endif
170#ifndef VK_NUMPAD9
171# define VK_NUMPAD9 UNDEFINED_VK
172#endif
173#ifndef VK_MULTIPLY
174# define VK_MULTIPLY UNDEFINED_VK
175#endif
176#ifndef VK_ADD
177# define VK_ADD UNDEFINED_VK
178#endif
179#ifndef VK_SEPARATOR
180# define VK_SEPARATOR UNDEFINED_VK
181#endif
182#ifndef VK_SUBTRACT
183# define VK_SUBTRACT UNDEFINED_VK
184#endif
185#ifndef VK_DECIMAL
186# define VK_DECIMAL UNDEFINED_VK
187#endif
188#ifndef VK_DIVIDE
189# define VK_DIVIDE UNDEFINED_VK
190#endif
191#ifndef VK_F1
192# define VK_F1 UNDEFINED_VK
193#endif
194#ifndef VK_F2
195# define VK_F2 UNDEFINED_VK
196#endif
197#ifndef VK_F3
198# define VK_F3 UNDEFINED_VK
199#endif
200#ifndef VK_F4
201# define VK_F4 UNDEFINED_VK
202#endif
203#ifndef VK_F5
204# define VK_F5 UNDEFINED_VK
205#endif
206#ifndef VK_F6
207# define VK_F6 UNDEFINED_VK
208#endif
209#ifndef VK_F7
210# define VK_F7 UNDEFINED_VK
211#endif
212#ifndef VK_F8
213# define VK_F8 UNDEFINED_VK
214#endif
215#ifndef VK_F9
216# define VK_F9 UNDEFINED_VK
217#endif
218#ifndef VK_F10
219# define VK_F10 UNDEFINED_VK
220#endif
221#ifndef VK_F11
222# define VK_F11 UNDEFINED_VK
223#endif
224#ifndef VK_F12
225# define VK_F12 UNDEFINED_VK
226#endif
227#ifndef VK_F13
228# define VK_F13 UNDEFINED_VK
229#endif
230#ifndef VK_F14
231# define VK_F14 UNDEFINED_VK
232#endif
233#ifndef VK_F15
234# define VK_F15 UNDEFINED_VK
235#endif
236#ifndef VK_F16
237# define VK_F16 UNDEFINED_VK
238#endif
239#ifndef VK_F17
240# define VK_F17 UNDEFINED_VK
241#endif
242#ifndef VK_F18
243# define VK_F18 UNDEFINED_VK
244#endif
245#ifndef VK_F19
246# define VK_F19 UNDEFINED_VK
247#endif
248#ifndef VK_F20
249# define VK_F20 UNDEFINED_VK
250#endif
251#ifndef VK_F21
252# define VK_F21 UNDEFINED_VK
253#endif
254#ifndef VK_F22
255# define VK_F22 UNDEFINED_VK
256#endif
257#ifndef VK_F23
258# define VK_F23 UNDEFINED_VK
259#endif
260#ifndef VK_F24
261# define VK_F24 UNDEFINED_VK
262#endif
263#ifndef VK_NUMLOCK
264# define VK_NUMLOCK UNDEFINED_VK
265#endif
266#ifndef VK_SCROLL
267# define VK_SCROLL UNDEFINED_VK
268#endif
269#ifndef VK_OEM_NEC_EQUAL
270# define VK_OEM_NEC_EQUAL UNDEFINED_VK
271#endif
272#ifndef VK_OEM_FJ_JISHO
273# define VK_OEM_FJ_JISHO UNDEFINED_VK
274#endif
275#ifndef VK_OEM_FJ_MASSHOU
276# define VK_OEM_FJ_MASSHOU UNDEFINED_VK
277#endif
278#ifndef VK_OEM_FJ_TOUROKU
279# define VK_OEM_FJ_TOUROKU UNDEFINED_VK
280#endif
281#ifndef VK_OEM_FJ_LOYA
282# define VK_OEM_FJ_LOYA UNDEFINED_VK
283#endif
284#ifndef VK_OEM_FJ_ROYA
285# define VK_OEM_FJ_ROYA UNDEFINED_VK
286#endif
287#ifndef VK_LSHIFT
288# define VK_LSHIFT UNDEFINED_VK
289#endif
290#ifndef VK_RSHIFT
291# define VK_RSHIFT UNDEFINED_VK
292#endif
293#ifndef VK_LCONTROL
294# define VK_LCONTROL UNDEFINED_VK
295#endif
296#ifndef VK_RCONTROL
297# define VK_RCONTROL UNDEFINED_VK
298#endif
299#ifndef VK_LMENU
300# define VK_LMENU UNDEFINED_VK
301#endif
302#ifndef VK_RMENU
303# define VK_RMENU UNDEFINED_VK
304#endif
305#ifndef VK_BROWSER_BACK
306# define VK_BROWSER_BACK UNDEFINED_VK
307#endif
308#ifndef VK_BROWSER_FORWARD
309# define VK_BROWSER_FORWARD UNDEFINED_VK
310#endif
311#ifndef VK_BROWSER_REFRESH
312# define VK_BROWSER_REFRESH UNDEFINED_VK
313#endif
314#ifndef VK_BROWSER_STOP
315# define VK_BROWSER_STOP UNDEFINED_VK
316#endif
317#ifndef VK_BROWSER_SEARCH
318# define VK_BROWSER_SEARCH UNDEFINED_VK
319#endif
320#ifndef VK_BROWSER_FAVORITES
321# define VK_BROWSER_FAVORITES UNDEFINED_VK
322#endif
323#ifndef VK_BROWSER_HOME
324# define VK_BROWSER_HOME UNDEFINED_VK
325#endif
326#ifndef VK_VOLUME_MUTE
327# define VK_VOLUME_MUTE UNDEFINED_VK
328#endif
329#ifndef VK_VOLUME_DOWN
330# define VK_VOLUME_DOWN UNDEFINED_VK
331#endif
332#ifndef VK_VOLUME_UP
333# define VK_VOLUME_UP UNDEFINED_VK
334#endif
335#ifndef VK_MEDIA_NEXT_TRACK
336# define VK_MEDIA_NEXT_TRACK UNDEFINED_VK
337#endif
338#ifndef VK_MEDIA_PREV_TRACK
339# define VK_MEDIA_PREV_TRACK UNDEFINED_VK
340#endif
341#ifndef VK_MEDIA_STOP
342# define VK_MEDIA_STOP UNDEFINED_VK
343#endif
344#ifndef VK_MEDIA_PLAY_PAUSE
345# define VK_MEDIA_PLAY_PAUSE UNDEFINED_VK
346#endif
347#ifndef VK_LAUNCH_MAIL
348# define VK_LAUNCH_MAIL UNDEFINED_VK
349#endif
350#ifndef VK_LAUNCH_MEDIA_SELECT
351# define VK_LAUNCH_MEDIA_SELECT UNDEFINED_VK
352#endif
353#ifndef VK_LAUNCH_APP1
354# define VK_LAUNCH_APP1 UNDEFINED_VK
355#endif
356#ifndef VK_LAUNCH_APP2
357# define VK_LAUNCH_APP2 UNDEFINED_VK
358#endif
359#ifndef VK_OEM_1
360# define VK_OEM_1 UNDEFINED_VK
361#endif
362#ifndef VK_OEM_PLUS
363# define VK_OEM_PLUS UNDEFINED_VK
364#endif
365#ifndef VK_OEM_COMMA
366# define VK_OEM_COMMA UNDEFINED_VK
367#endif
368#ifndef VK_OEM_MINUS
369# define VK_OEM_MINUS UNDEFINED_VK
370#endif
371#ifndef VK_OEM_PERIOD
372# define VK_OEM_PERIOD UNDEFINED_VK
373#endif
374#ifndef VK_OEM_2
375# define VK_OEM_2 UNDEFINED_VK
376#endif
377#ifndef VK_OEM_3
378# define VK_OEM_3 UNDEFINED_VK
379#endif
380#ifndef VK_OEM_4
381# define VK_OEM_4 UNDEFINED_VK
382#endif
383#ifndef VK_OEM_5
384# define VK_OEM_5 UNDEFINED_VK
385#endif
386#ifndef VK_OEM_6
387# define VK_OEM_6 UNDEFINED_VK
388#endif
389#ifndef VK_OEM_7
390# define VK_OEM_7 UNDEFINED_VK
391#endif
392#ifndef VK_OEM_8
393# define VK_OEM_8 UNDEFINED_VK
394#endif
395#ifndef VK_OEM_AX
396# define VK_OEM_AX UNDEFINED_VK
397#endif
398#ifndef VK_OEM_102
399# define VK_OEM_102 UNDEFINED_VK
400#endif
401#ifndef VK_ICO_HELP
402# define VK_ICO_HELP UNDEFINED_VK
403#endif
404#ifndef VK_ICO_00
405# define VK_ICO_00 UNDEFINED_VK
406#endif
407#ifndef VK_PROCESSKEY
408# define VK_PROCESSKEY UNDEFINED_VK
409#endif
410#ifndef VK_ICO_CLEAR
411# define VK_ICO_CLEAR UNDEFINED_VK
412#endif
413#ifndef VK_PACKET
414# define VK_PACKET UNDEFINED_VK
415#endif
416#ifndef VK_OEM_RESET
417# define VK_OEM_RESET UNDEFINED_VK
418#endif
419#ifndef VK_OEM_JUMP
420# define VK_OEM_JUMP UNDEFINED_VK
421#endif
422#ifndef VK_OEM_PA1
423# define VK_OEM_PA1 UNDEFINED_VK
424#endif
425#ifndef VK_OEM_PA2
426# define VK_OEM_PA2 UNDEFINED_VK
427#endif
428#ifndef VK_OEM_PA3
429# define VK_OEM_PA3 UNDEFINED_VK
430#endif
431#ifndef VK_OEM_WSCTRL
432# define VK_OEM_WSCTRL UNDEFINED_VK
433#endif
434#ifndef VK_OEM_CUSEL
435# define VK_OEM_CUSEL UNDEFINED_VK
436#endif
437#ifndef VK_OEM_ATTN
438# define VK_OEM_ATTN UNDEFINED_VK
439#endif
440#ifndef VK_OEM_FINISH
441# define VK_OEM_FINISH UNDEFINED_VK
442#endif
443#ifndef VK_OEM_COPY
444# define VK_OEM_COPY UNDEFINED_VK
445#endif
446#ifndef VK_OEM_AUTO
447# define VK_OEM_AUTO UNDEFINED_VK
448#endif
449#ifndef VK_OEM_ENLW
450# define VK_OEM_ENLW UNDEFINED_VK
451#endif
452#ifndef VK_OEM_BACKTAB
453# define VK_OEM_BACKTAB UNDEFINED_VK
454#endif
455#ifndef VK_ATTN
456# define VK_ATTN UNDEFINED_VK
457#endif
458#ifndef VK_CRSEL
459# define VK_CRSEL UNDEFINED_VK
460#endif
461#ifndef VK_EXSEL
462# define VK_EXSEL UNDEFINED_VK
463#endif
464#ifndef VK_EREOF
465# define VK_EREOF UNDEFINED_VK
466#endif
467#ifndef VK_PLAY
468# define VK_PLAY UNDEFINED_VK
469#endif
470#ifndef VK_ZOOM
471# define VK_ZOOM UNDEFINED_VK
472#endif
473#ifndef VK_NONAME
474# define VK_NONAME UNDEFINED_VK
475#endif
476#ifndef VK_PA1
477# define VK_PA1 UNDEFINED_VK
478#endif
479#ifndef VK_OEM_CLEAR
480# define VK_OEM_CLEAR UNDEFINED_VK
481#endif
482/* ANSI-C code produced by gperf version 3.1 */
483/* Command-line: gperf --ignore-case -E -C -P -p -j1 -i 1 -g -o -t -K ofs -N console_win32_vk -k'*' win32_vk.list  */
484
485#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
486      && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
487      && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
488      && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
489      && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
490      && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
491      && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
492      && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
493      && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
494      && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
495      && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
496      && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
497      && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
498      && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
499      && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
500      && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
501      && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
502      && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
503      && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
504      && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
505      && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
506      && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
507      && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
508/* The character set is not based on ISO-646.  */
509#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gperf@gnu.org>."
510#endif
511
512#define gperf_offsetof(s, n) (short)offsetof(struct s##_t, s##_str##n)
513#line 1 "win32_vk.list"
514
515struct vktable {short ofs; unsigned short vk;};
516static const struct vktable *console_win32_vk(/*const char *, unsigned int*/);
517#line 5 "win32_vk.list"
518struct vktable;
519/* maximum key range = 245, duplicates = 0 */
520
521#ifndef GPERF_DOWNCASE
522#define GPERF_DOWNCASE 1
523static unsigned char gperf_downcase[256] =
524  {
525      0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,
526     15,  16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,
527     30,  31,  32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,
528     45,  46,  47,  48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,
529     60,  61,  62,  63,  64,  97,  98,  99, 100, 101, 102, 103, 104, 105, 106,
530    107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
531    122,  91,  92,  93,  94,  95,  96,  97,  98,  99, 100, 101, 102, 103, 104,
532    105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
533    120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
534    135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
535    150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
536    165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
537    180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
538    195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209,
539    210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
540    225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
541    240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
542    255
543  };
544#endif
545
546#ifndef GPERF_CASE_STRCMP
547#define GPERF_CASE_STRCMP 1
548static int
549gperf_case_strcmp (register const char *s1, register const char *s2)
550{
551  for (;;)
552    {
553      unsigned char c1 = gperf_downcase[(unsigned char)*s1++];
554      unsigned char c2 = gperf_downcase[(unsigned char)*s2++];
555      if (c1 != 0 && c1 == c2)
556        continue;
557      return (int)c1 - (int)c2;
558    }
559}
560#endif
561
562#ifdef __GNUC__
563__inline
564#else
565#ifdef __cplusplus
566inline
567#endif
568#endif
569static unsigned int
570hash (register const char *str, register size_t len)
571{
572  static const unsigned short asso_values[] =
573    {
574      257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
575      257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
576      257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
577      257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
578      257, 257, 257, 257, 257, 257, 257, 257,  51,  74,
579       80, 116, 127, 124,  95, 140,  77,  53,   7,   3,
580      257, 257, 257, 257, 257,   1,  11,   1,  55,   1,
581       25,  84,  31,  33,  13,  16,   2,  28,   8,   1,
582        6,  10,   1,   1,   3,   4,  45,  18,  73,  79,
583       30, 257, 257, 257, 257,   5, 257,   1,  11,   1,
584       55,   1,  25,  84,  31,  33,  13,  16,   2,  28,
585        8,   1,   6,  10,   1,   1,   3,   4,  45,  18,
586       73,  79,  30, 257, 257, 257, 257, 257, 257, 257,
587      257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
588      257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
589      257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
590      257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
591      257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
592      257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
593      257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
594      257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
595      257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
596      257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
597      257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
598      257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
599      257, 257, 257, 257, 257, 257, 257, 257
600    };
601  register unsigned int hval = (unsigned int)len;
602
603  switch (hval)
604    {
605      default:
606        hval += asso_values[(unsigned char)str[18]];
607      /*FALLTHROUGH*/
608      case 18:
609        hval += asso_values[(unsigned char)str[17]];
610      /*FALLTHROUGH*/
611      case 17:
612        hval += asso_values[(unsigned char)str[16]];
613      /*FALLTHROUGH*/
614      case 16:
615        hval += asso_values[(unsigned char)str[15]];
616      /*FALLTHROUGH*/
617      case 15:
618        hval += asso_values[(unsigned char)str[14]];
619      /*FALLTHROUGH*/
620      case 14:
621        hval += asso_values[(unsigned char)str[13]];
622      /*FALLTHROUGH*/
623      case 13:
624        hval += asso_values[(unsigned char)str[12]];
625      /*FALLTHROUGH*/
626      case 12:
627        hval += asso_values[(unsigned char)str[11]];
628      /*FALLTHROUGH*/
629      case 11:
630        hval += asso_values[(unsigned char)str[10]];
631      /*FALLTHROUGH*/
632      case 10:
633        hval += asso_values[(unsigned char)str[9]];
634      /*FALLTHROUGH*/
635      case 9:
636        hval += asso_values[(unsigned char)str[8]];
637      /*FALLTHROUGH*/
638      case 8:
639        hval += asso_values[(unsigned char)str[7]];
640      /*FALLTHROUGH*/
641      case 7:
642        hval += asso_values[(unsigned char)str[6]];
643      /*FALLTHROUGH*/
644      case 6:
645        hval += asso_values[(unsigned char)str[5]];
646      /*FALLTHROUGH*/
647      case 5:
648        hval += asso_values[(unsigned char)str[4]];
649      /*FALLTHROUGH*/
650      case 4:
651        hval += asso_values[(unsigned char)str[3]];
652      /*FALLTHROUGH*/
653      case 3:
654        hval += asso_values[(unsigned char)str[2]+2];
655      /*FALLTHROUGH*/
656      case 2:
657        hval += asso_values[(unsigned char)str[1]];
658      /*FALLTHROUGH*/
659      case 1:
660        hval += asso_values[(unsigned char)str[0]];
661        break;
662    }
663  return (unsigned int)hval;
664}
665
666struct stringpool_t
667  {
668    char stringpool_str12[sizeof("UP")];
669    char stringpool_str13[sizeof("APPS")];
670    char stringpool_str14[sizeof("CRSEL")];
671    char stringpool_str15[sizeof("SPACE")];
672    char stringpool_str16[sizeof("SCROLL")];
673    char stringpool_str17[sizeof("ESCAPE")];
674    char stringpool_str18[sizeof("CANCEL")];
675    char stringpool_str19[sizeof("ACCEPT")];
676    char stringpool_str20[sizeof("SEPARATOR")];
677    char stringpool_str21[sizeof("SELECT")];
678    char stringpool_str22[sizeof("CONTROL")];
679    char stringpool_str23[sizeof("OEM_CLEAR")];
680    char stringpool_str24[sizeof("OEM_RESET")];
681    char stringpool_str25[sizeof("OEM_AUTO")];
682    char stringpool_str26[sizeof("OEM_CUSEL")];
683    char stringpool_str28[sizeof("KANA")];
684    char stringpool_str29[sizeof("OEM_PLUS")];
685    char stringpool_str30[sizeof("PRIOR")];
686    char stringpool_str31[sizeof("OEM_ATTN")];
687    char stringpool_str32[sizeof("PAUSE")];
688    char stringpool_str33[sizeof("BACK")];
689    char stringpool_str34[sizeof("PACKET")];
690    char stringpool_str35[sizeof("RCONTROL")];
691    char stringpool_str36[sizeof("LCONTROL")];
692    char stringpool_str37[sizeof("END")];
693    char stringpool_str38[sizeof("HOME")];
694    char stringpool_str39[sizeof("PRINT")];
695    char stringpool_str40[sizeof("NUMLOCK")];
696    char stringpool_str41[sizeof("LEFT")];
697    char stringpool_str42[sizeof("JUNJA")];
698    char stringpool_str43[sizeof("MENU")];
699    char stringpool_str44[sizeof("OEM_WSCTRL")];
700    char stringpool_str45[sizeof("OEM_ENLW")];
701    char stringpool_str46[sizeof("NEXT")];
702    char stringpool_str47[sizeof("RWIN")];
703    char stringpool_str48[sizeof("LWIN")];
704    char stringpool_str49[sizeof("CAPITAL")];
705    char stringpool_str50[sizeof("HELP")];
706    char stringpool_str51[sizeof("NONAME")];
707    char stringpool_str52[sizeof("RBUTTON")];
708    char stringpool_str53[sizeof("LBUTTON")];
709    char stringpool_str54[sizeof("OEM_NEC_EQUAL")];
710    char stringpool_str56[sizeof("INSERT")];
711    char stringpool_str57[sizeof("HANJA")];
712    char stringpool_str60[sizeof("SNAPSHOT")];
713    char stringpool_str61[sizeof("ATTN")];
714    char stringpool_str62[sizeof("TAB")];
715    char stringpool_str63[sizeof("OEM_BACKTAB")];
716    char stringpool_str64[sizeof("ICO_CLEAR")];
717    char stringpool_str65[sizeof("CONVERT")];
718    char stringpool_str66[sizeof("RETURN")];
719    char stringpool_str67[sizeof("OEM_JUMP")];
720    char stringpool_str71[sizeof("BROWSER_STOP")];
721    char stringpool_str72[sizeof("FINAL")];
722    char stringpool_str73[sizeof("ZOOM")];
723    char stringpool_str74[sizeof("KANJI")];
724    char stringpool_str75[sizeof("DELETE")];
725    char stringpool_str76[sizeof("OEM_COMMA")];
726    char stringpool_str77[sizeof("SUBTRACT")];
727    char stringpool_str79[sizeof("MBUTTON")];
728    char stringpool_str80[sizeof("F9")];
729    char stringpool_str81[sizeof("SHIFT")];
730    char stringpool_str82[sizeof("RSHIFT")];
731    char stringpool_str83[sizeof("LSHIFT")];
732    char stringpool_str84[sizeof("ADD")];
733    char stringpool_str85[sizeof("NONCONVERT")];
734    char stringpool_str86[sizeof("EXSEL")];
735    char stringpool_str87[sizeof("OEM_1")];
736    char stringpool_str88[sizeof("OEM_AX")];
737    char stringpool_str89[sizeof("BROWSER_BACK")];
738    char stringpool_str90[sizeof("OEM_8")];
739    char stringpool_str91[sizeof("OEM_MINUS")];
740    char stringpool_str92[sizeof("PLAY")];
741    char stringpool_str93[sizeof("OEM_2")];
742    char stringpool_str94[sizeof("CLEAR")];
743    char stringpool_str95[sizeof("OEM_FJ_TOUROKU")];
744    char stringpool_str96[sizeof("OEM_PA1")];
745    char stringpool_str97[sizeof("ICO_HELP")];
746    char stringpool_str98[sizeof("BROWSER_SEARCH")];
747    char stringpool_str99[sizeof("SLEEP")];
748    char stringpool_str101[sizeof("F1")];
749    char stringpool_str102[sizeof("OEM_PA2")];
750    char stringpool_str103[sizeof("OEM_COPY")];
751    char stringpool_str104[sizeof("F8")];
752    char stringpool_str105[sizeof("F19")];
753    char stringpool_str106[sizeof("RIGHT")];
754    char stringpool_str107[sizeof("F2")];
755    char stringpool_str108[sizeof("OEM_6")];
756    char stringpool_str109[sizeof("F18")];
757    char stringpool_str111[sizeof("VOLUME_UP")];
758    char stringpool_str114[sizeof("MEDIA_STOP")];
759    char stringpool_str115[sizeof("OEM_PERIOD")];
760    char stringpool_str117[sizeof("EREOF")];
761    char stringpool_str121[sizeof("BROWSER_HOME")];
762    char stringpool_str122[sizeof("F6")];
763    char stringpool_str124[sizeof("BROWSER_REFRESH")];
764    char stringpool_str126[sizeof("PA1")];
765    char stringpool_str127[sizeof("PROCESSKEY")];
766    char stringpool_str128[sizeof("DECIMAL")];
767    char stringpool_str129[sizeof("OEM_3")];
768    char stringpool_str130[sizeof("RMENU")];
769    char stringpool_str131[sizeof("LMENU")];
770    char stringpool_str132[sizeof("OEM_FJ_MASSHOU")];
771    char stringpool_str133[sizeof("NUMPAD0")];
772    char stringpool_str134[sizeof("HANGUL")];
773    char stringpool_str135[sizeof("NUMPAD9")];
774    char stringpool_str136[sizeof("HANGEUL")];
775    char stringpool_str137[sizeof("OEM_5")];
776    char stringpool_str138[sizeof("OEM_PA3")];
777    char stringpool_str139[sizeof("VOLUME_MUTE")];
778    char stringpool_str140[sizeof("OEM_4")];
779    char stringpool_str141[sizeof("LAUNCH_MAIL")];
780    char stringpool_str142[sizeof("OEM_FJ_JISHO")];
781    char stringpool_str143[sizeof("F3")];
782    char stringpool_str144[sizeof("OEM_FJ_ROYA")];
783    char stringpool_str145[sizeof("OEM_FJ_LOYA")];
784    char stringpool_str147[sizeof("DOWN")];
785    char stringpool_str149[sizeof("OEM_FINISH")];
786    char stringpool_str151[sizeof("F5")];
787    char stringpool_str153[sizeof("OEM_7")];
788    char stringpool_str154[sizeof("F4")];
789    char stringpool_str155[sizeof("F17")];
790    char stringpool_str156[sizeof("NUMPAD1")];
791    char stringpool_str157[sizeof("ICO_00")];
792    char stringpool_str159[sizeof("NUMPAD8")];
793    char stringpool_str162[sizeof("NUMPAD2")];
794    char stringpool_str164[sizeof("LAUNCH_APP1")];
795    char stringpool_str165[sizeof("BROWSER_FORWARD")];
796    char stringpool_str167[sizeof("F7")];
797    char stringpool_str170[sizeof("LAUNCH_APP2")];
798    char stringpool_str171[sizeof("MULTIPLY")];
799    char stringpool_str174[sizeof("EXECUTE")];
800    char stringpool_str176[sizeof("BROWSER_FAVORITES")];
801    char stringpool_str177[sizeof("NUMPAD6")];
802    char stringpool_str179[sizeof("F16")];
803    char stringpool_str182[sizeof("F10")];
804    char stringpool_str185[sizeof("VOLUME_DOWN")];
805    char stringpool_str188[sizeof("F20")];
806    char stringpool_str189[sizeof("MEDIA_PREV_TRACK")];
807    char stringpool_str191[sizeof("MODECHANGE")];
808    char stringpool_str197[sizeof("F14")];
809    char stringpool_str198[sizeof("NUMPAD3")];
810    char stringpool_str199[sizeof("XBUTTON1")];
811    char stringpool_str203[sizeof("F24")];
812    char stringpool_str205[sizeof("XBUTTON2")];
813    char stringpool_str206[sizeof("NUMPAD5")];
814    char stringpool_str209[sizeof("NUMPAD4")];
815    char stringpool_str215[sizeof("MEDIA_PLAY_PAUSE")];
816    char stringpool_str217[sizeof("LAUNCH_MEDIA_SELECT")];
817    char stringpool_str218[sizeof("F11")];
818    char stringpool_str220[sizeof("OEM_102")];
819    char stringpool_str221[sizeof("MEDIA_NEXT_TRACK")];
820    char stringpool_str222[sizeof("NUMPAD7")];
821    char stringpool_str224[sizeof("F21")];
822    char stringpool_str226[sizeof("F13")];
823    char stringpool_str229[sizeof("F12")];
824    char stringpool_str232[sizeof("F23")];
825    char stringpool_str235[sizeof("F22")];
826    char stringpool_str242[sizeof("F15")];
827    char stringpool_str256[sizeof("DIVIDE")];
828  };
829static const struct stringpool_t stringpool_contents =
830  {
831    "UP",
832    "APPS",
833    "CRSEL",
834    "SPACE",
835    "SCROLL",
836    "ESCAPE",
837    "CANCEL",
838    "ACCEPT",
839    "SEPARATOR",
840    "SELECT",
841    "CONTROL",
842    "OEM_CLEAR",
843    "OEM_RESET",
844    "OEM_AUTO",
845    "OEM_CUSEL",
846    "KANA",
847    "OEM_PLUS",
848    "PRIOR",
849    "OEM_ATTN",
850    "PAUSE",
851    "BACK",
852    "PACKET",
853    "RCONTROL",
854    "LCONTROL",
855    "END",
856    "HOME",
857    "PRINT",
858    "NUMLOCK",
859    "LEFT",
860    "JUNJA",
861    "MENU",
862    "OEM_WSCTRL",
863    "OEM_ENLW",
864    "NEXT",
865    "RWIN",
866    "LWIN",
867    "CAPITAL",
868    "HELP",
869    "NONAME",
870    "RBUTTON",
871    "LBUTTON",
872    "OEM_NEC_EQUAL",
873    "INSERT",
874    "HANJA",
875    "SNAPSHOT",
876    "ATTN",
877    "TAB",
878    "OEM_BACKTAB",
879    "ICO_CLEAR",
880    "CONVERT",
881    "RETURN",
882    "OEM_JUMP",
883    "BROWSER_STOP",
884    "FINAL",
885    "ZOOM",
886    "KANJI",
887    "DELETE",
888    "OEM_COMMA",
889    "SUBTRACT",
890    "MBUTTON",
891    "F9",
892    "SHIFT",
893    "RSHIFT",
894    "LSHIFT",
895    "ADD",
896    "NONCONVERT",
897    "EXSEL",
898    "OEM_1",
899    "OEM_AX",
900    "BROWSER_BACK",
901    "OEM_8",
902    "OEM_MINUS",
903    "PLAY",
904    "OEM_2",
905    "CLEAR",
906    "OEM_FJ_TOUROKU",
907    "OEM_PA1",
908    "ICO_HELP",
909    "BROWSER_SEARCH",
910    "SLEEP",
911    "F1",
912    "OEM_PA2",
913    "OEM_COPY",
914    "F8",
915    "F19",
916    "RIGHT",
917    "F2",
918    "OEM_6",
919    "F18",
920    "VOLUME_UP",
921    "MEDIA_STOP",
922    "OEM_PERIOD",
923    "EREOF",
924    "BROWSER_HOME",
925    "F6",
926    "BROWSER_REFRESH",
927    "PA1",
928    "PROCESSKEY",
929    "DECIMAL",
930    "OEM_3",
931    "RMENU",
932    "LMENU",
933    "OEM_FJ_MASSHOU",
934    "NUMPAD0",
935    "HANGUL",
936    "NUMPAD9",
937    "HANGEUL",
938    "OEM_5",
939    "OEM_PA3",
940    "VOLUME_MUTE",
941    "OEM_4",
942    "LAUNCH_MAIL",
943    "OEM_FJ_JISHO",
944    "F3",
945    "OEM_FJ_ROYA",
946    "OEM_FJ_LOYA",
947    "DOWN",
948    "OEM_FINISH",
949    "F5",
950    "OEM_7",
951    "F4",
952    "F17",
953    "NUMPAD1",
954    "ICO_00",
955    "NUMPAD8",
956    "NUMPAD2",
957    "LAUNCH_APP1",
958    "BROWSER_FORWARD",
959    "F7",
960    "LAUNCH_APP2",
961    "MULTIPLY",
962    "EXECUTE",
963    "BROWSER_FAVORITES",
964    "NUMPAD6",
965    "F16",
966    "F10",
967    "VOLUME_DOWN",
968    "F20",
969    "MEDIA_PREV_TRACK",
970    "MODECHANGE",
971    "F14",
972    "NUMPAD3",
973    "XBUTTON1",
974    "F24",
975    "XBUTTON2",
976    "NUMPAD5",
977    "NUMPAD4",
978    "MEDIA_PLAY_PAUSE",
979    "LAUNCH_MEDIA_SELECT",
980    "F11",
981    "OEM_102",
982    "MEDIA_NEXT_TRACK",
983    "NUMPAD7",
984    "F21",
985    "F13",
986    "F12",
987    "F23",
988    "F22",
989    "F15",
990    "DIVIDE"
991  };
992#define stringpool ((const char *) &stringpool_contents)
993const struct vktable *
994console_win32_vk (register const char *str, register size_t len)
995{
996  enum
997    {
998      TOTAL_KEYWORDS = 160,
999      MIN_WORD_LENGTH = 2,
1000      MAX_WORD_LENGTH = 19,
1001      MIN_HASH_VALUE = 12,
1002      MAX_HASH_VALUE = 256
1003    };
1004
1005  static const struct vktable wordlist[] =
1006    {
1007      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
1008      {-1}, {-1}, {-1},
1009#line 40 "win32_vk.list"
1010      {gperf_offsetof(stringpool, 12), VK_UP},
1011#line 52 "win32_vk.list"
1012      {gperf_offsetof(stringpool, 13), VK_APPS},
1013#line 159 "win32_vk.list"
1014      {gperf_offsetof(stringpool, 14), VK_CRSEL},
1015#line 34 "win32_vk.list"
1016      {gperf_offsetof(stringpool, 15), VK_SPACE},
1017#line 95 "win32_vk.list"
1018      {gperf_offsetof(stringpool, 16), VK_SCROLL},
1019#line 29 "win32_vk.list"
1020      {gperf_offsetof(stringpool, 17), VK_ESCAPE},
1021#line 9 "win32_vk.list"
1022      {gperf_offsetof(stringpool, 18), VK_CANCEL},
1023#line 32 "win32_vk.list"
1024      {gperf_offsetof(stringpool, 19), VK_ACCEPT},
1025#line 66 "win32_vk.list"
1026      {gperf_offsetof(stringpool, 20), VK_SEPARATOR},
1027#line 43 "win32_vk.list"
1028      {gperf_offsetof(stringpool, 21), VK_SELECT},
1029#line 18 "win32_vk.list"
1030      {gperf_offsetof(stringpool, 22), VK_CONTROL},
1031#line 166 "win32_vk.list"
1032      {gperf_offsetof(stringpool, 23), VK_OEM_CLEAR},
1033#line 145 "win32_vk.list"
1034      {gperf_offsetof(stringpool, 24), VK_OEM_RESET},
1035#line 155 "win32_vk.list"
1036      {gperf_offsetof(stringpool, 25), VK_OEM_AUTO},
1037#line 151 "win32_vk.list"
1038      {gperf_offsetof(stringpool, 26), VK_OEM_CUSEL},
1039      {-1},
1040#line 22 "win32_vk.list"
1041      {gperf_offsetof(stringpool, 28), VK_KANA},
1042#line 127 "win32_vk.list"
1043      {gperf_offsetof(stringpool, 29), VK_OEM_PLUS},
1044#line 35 "win32_vk.list"
1045      {gperf_offsetof(stringpool, 30), VK_PRIOR},
1046#line 152 "win32_vk.list"
1047      {gperf_offsetof(stringpool, 31), VK_OEM_ATTN},
1048#line 20 "win32_vk.list"
1049      {gperf_offsetof(stringpool, 32), VK_PAUSE},
1050#line 13 "win32_vk.list"
1051      {gperf_offsetof(stringpool, 33), VK_BACK},
1052#line 144 "win32_vk.list"
1053      {gperf_offsetof(stringpool, 34), VK_PACKET},
1054#line 105 "win32_vk.list"
1055      {gperf_offsetof(stringpool, 35), VK_RCONTROL},
1056#line 104 "win32_vk.list"
1057      {gperf_offsetof(stringpool, 36), VK_LCONTROL},
1058#line 37 "win32_vk.list"
1059      {gperf_offsetof(stringpool, 37), VK_END},
1060#line 38 "win32_vk.list"
1061      {gperf_offsetof(stringpool, 38), VK_HOME},
1062#line 44 "win32_vk.list"
1063      {gperf_offsetof(stringpool, 39), VK_PRINT},
1064#line 94 "win32_vk.list"
1065      {gperf_offsetof(stringpool, 40), VK_NUMLOCK},
1066#line 39 "win32_vk.list"
1067      {gperf_offsetof(stringpool, 41), VK_LEFT},
1068#line 25 "win32_vk.list"
1069      {gperf_offsetof(stringpool, 42), VK_JUNJA},
1070#line 19 "win32_vk.list"
1071      {gperf_offsetof(stringpool, 43), VK_MENU},
1072#line 150 "win32_vk.list"
1073      {gperf_offsetof(stringpool, 44), VK_OEM_WSCTRL},
1074#line 156 "win32_vk.list"
1075      {gperf_offsetof(stringpool, 45), VK_OEM_ENLW},
1076#line 36 "win32_vk.list"
1077      {gperf_offsetof(stringpool, 46), VK_NEXT},
1078#line 51 "win32_vk.list"
1079      {gperf_offsetof(stringpool, 47), VK_RWIN},
1080#line 50 "win32_vk.list"
1081      {gperf_offsetof(stringpool, 48), VK_LWIN},
1082#line 21 "win32_vk.list"
1083      {gperf_offsetof(stringpool, 49), VK_CAPITAL},
1084#line 49 "win32_vk.list"
1085      {gperf_offsetof(stringpool, 50), VK_HELP},
1086#line 164 "win32_vk.list"
1087      {gperf_offsetof(stringpool, 51), VK_NONAME},
1088#line 8 "win32_vk.list"
1089      {gperf_offsetof(stringpool, 52), VK_RBUTTON},
1090#line 7 "win32_vk.list"
1091      {gperf_offsetof(stringpool, 53), VK_LBUTTON},
1092#line 96 "win32_vk.list"
1093      {gperf_offsetof(stringpool, 54), VK_OEM_NEC_EQUAL},
1094      {-1},
1095#line 47 "win32_vk.list"
1096      {gperf_offsetof(stringpool, 56), VK_INSERT},
1097#line 27 "win32_vk.list"
1098      {gperf_offsetof(stringpool, 57), VK_HANJA},
1099      {-1}, {-1},
1100#line 46 "win32_vk.list"
1101      {gperf_offsetof(stringpool, 60), VK_SNAPSHOT},
1102#line 158 "win32_vk.list"
1103      {gperf_offsetof(stringpool, 61), VK_ATTN},
1104#line 14 "win32_vk.list"
1105      {gperf_offsetof(stringpool, 62), VK_TAB},
1106#line 157 "win32_vk.list"
1107      {gperf_offsetof(stringpool, 63), VK_OEM_BACKTAB},
1108#line 143 "win32_vk.list"
1109      {gperf_offsetof(stringpool, 64), VK_ICO_CLEAR},
1110#line 30 "win32_vk.list"
1111      {gperf_offsetof(stringpool, 65), VK_CONVERT},
1112#line 16 "win32_vk.list"
1113      {gperf_offsetof(stringpool, 66), VK_RETURN},
1114#line 146 "win32_vk.list"
1115      {gperf_offsetof(stringpool, 67), VK_OEM_JUMP},
1116      {-1}, {-1}, {-1},
1117#line 111 "win32_vk.list"
1118      {gperf_offsetof(stringpool, 71), VK_BROWSER_STOP},
1119#line 26 "win32_vk.list"
1120      {gperf_offsetof(stringpool, 72), VK_FINAL},
1121#line 163 "win32_vk.list"
1122      {gperf_offsetof(stringpool, 73), VK_ZOOM},
1123#line 28 "win32_vk.list"
1124      {gperf_offsetof(stringpool, 74), VK_KANJI},
1125#line 48 "win32_vk.list"
1126      {gperf_offsetof(stringpool, 75), VK_DELETE},
1127#line 128 "win32_vk.list"
1128      {gperf_offsetof(stringpool, 76), VK_OEM_COMMA},
1129#line 67 "win32_vk.list"
1130      {gperf_offsetof(stringpool, 77), VK_SUBTRACT},
1131      {-1},
1132#line 10 "win32_vk.list"
1133      {gperf_offsetof(stringpool, 79), VK_MBUTTON},
1134#line 78 "win32_vk.list"
1135      {gperf_offsetof(stringpool, 80), VK_F9},
1136#line 17 "win32_vk.list"
1137      {gperf_offsetof(stringpool, 81), VK_SHIFT},
1138#line 103 "win32_vk.list"
1139      {gperf_offsetof(stringpool, 82), VK_RSHIFT},
1140#line 102 "win32_vk.list"
1141      {gperf_offsetof(stringpool, 83), VK_LSHIFT},
1142#line 65 "win32_vk.list"
1143      {gperf_offsetof(stringpool, 84), VK_ADD},
1144#line 31 "win32_vk.list"
1145      {gperf_offsetof(stringpool, 85), VK_NONCONVERT},
1146#line 160 "win32_vk.list"
1147      {gperf_offsetof(stringpool, 86), VK_EXSEL},
1148#line 126 "win32_vk.list"
1149      {gperf_offsetof(stringpool, 87), VK_OEM_1},
1150#line 138 "win32_vk.list"
1151      {gperf_offsetof(stringpool, 88), VK_OEM_AX},
1152#line 108 "win32_vk.list"
1153      {gperf_offsetof(stringpool, 89), VK_BROWSER_BACK},
1154#line 137 "win32_vk.list"
1155      {gperf_offsetof(stringpool, 90), VK_OEM_8},
1156#line 129 "win32_vk.list"
1157      {gperf_offsetof(stringpool, 91), VK_OEM_MINUS},
1158#line 162 "win32_vk.list"
1159      {gperf_offsetof(stringpool, 92), VK_PLAY},
1160#line 131 "win32_vk.list"
1161      {gperf_offsetof(stringpool, 93), VK_OEM_2},
1162#line 15 "win32_vk.list"
1163      {gperf_offsetof(stringpool, 94), VK_CLEAR},
1164#line 99 "win32_vk.list"
1165      {gperf_offsetof(stringpool, 95), VK_OEM_FJ_TOUROKU},
1166#line 147 "win32_vk.list"
1167      {gperf_offsetof(stringpool, 96), VK_OEM_PA1},
1168#line 140 "win32_vk.list"
1169      {gperf_offsetof(stringpool, 97), VK_ICO_HELP},
1170#line 112 "win32_vk.list"
1171      {gperf_offsetof(stringpool, 98), VK_BROWSER_SEARCH},
1172#line 53 "win32_vk.list"
1173      {gperf_offsetof(stringpool, 99), VK_SLEEP},
1174      {-1},
1175#line 70 "win32_vk.list"
1176      {gperf_offsetof(stringpool, 101), VK_F1},
1177#line 148 "win32_vk.list"
1178      {gperf_offsetof(stringpool, 102), VK_OEM_PA2},
1179#line 154 "win32_vk.list"
1180      {gperf_offsetof(stringpool, 103), VK_OEM_COPY},
1181#line 77 "win32_vk.list"
1182      {gperf_offsetof(stringpool, 104), VK_F8},
1183#line 88 "win32_vk.list"
1184      {gperf_offsetof(stringpool, 105), VK_F19},
1185#line 41 "win32_vk.list"
1186      {gperf_offsetof(stringpool, 106), VK_RIGHT},
1187#line 71 "win32_vk.list"
1188      {gperf_offsetof(stringpool, 107), VK_F2},
1189#line 135 "win32_vk.list"
1190      {gperf_offsetof(stringpool, 108), VK_OEM_6},
1191#line 87 "win32_vk.list"
1192      {gperf_offsetof(stringpool, 109), VK_F18},
1193      {-1},
1194#line 117 "win32_vk.list"
1195      {gperf_offsetof(stringpool, 111), VK_VOLUME_UP},
1196      {-1}, {-1},
1197#line 120 "win32_vk.list"
1198      {gperf_offsetof(stringpool, 114), VK_MEDIA_STOP},
1199#line 130 "win32_vk.list"
1200      {gperf_offsetof(stringpool, 115), VK_OEM_PERIOD},
1201      {-1},
1202#line 161 "win32_vk.list"
1203      {gperf_offsetof(stringpool, 117), VK_EREOF},
1204      {-1}, {-1}, {-1},
1205#line 114 "win32_vk.list"
1206      {gperf_offsetof(stringpool, 121), VK_BROWSER_HOME},
1207#line 75 "win32_vk.list"
1208      {gperf_offsetof(stringpool, 122), VK_F6},
1209      {-1},
1210#line 110 "win32_vk.list"
1211      {gperf_offsetof(stringpool, 124), VK_BROWSER_REFRESH},
1212      {-1},
1213#line 165 "win32_vk.list"
1214      {gperf_offsetof(stringpool, 126), VK_PA1},
1215#line 142 "win32_vk.list"
1216      {gperf_offsetof(stringpool, 127), VK_PROCESSKEY},
1217#line 68 "win32_vk.list"
1218      {gperf_offsetof(stringpool, 128), VK_DECIMAL},
1219#line 132 "win32_vk.list"
1220      {gperf_offsetof(stringpool, 129), VK_OEM_3},
1221#line 107 "win32_vk.list"
1222      {gperf_offsetof(stringpool, 130), VK_RMENU},
1223#line 106 "win32_vk.list"
1224      {gperf_offsetof(stringpool, 131), VK_LMENU},
1225#line 98 "win32_vk.list"
1226      {gperf_offsetof(stringpool, 132), VK_OEM_FJ_MASSHOU},
1227#line 54 "win32_vk.list"
1228      {gperf_offsetof(stringpool, 133), VK_NUMPAD0},
1229#line 24 "win32_vk.list"
1230      {gperf_offsetof(stringpool, 134), VK_HANGUL},
1231#line 63 "win32_vk.list"
1232      {gperf_offsetof(stringpool, 135), VK_NUMPAD9},
1233#line 23 "win32_vk.list"
1234      {gperf_offsetof(stringpool, 136), VK_HANGEUL},
1235#line 134 "win32_vk.list"
1236      {gperf_offsetof(stringpool, 137), VK_OEM_5},
1237#line 149 "win32_vk.list"
1238      {gperf_offsetof(stringpool, 138), VK_OEM_PA3},
1239#line 115 "win32_vk.list"
1240      {gperf_offsetof(stringpool, 139), VK_VOLUME_MUTE},
1241#line 133 "win32_vk.list"
1242      {gperf_offsetof(stringpool, 140), VK_OEM_4},
1243#line 122 "win32_vk.list"
1244      {gperf_offsetof(stringpool, 141), VK_LAUNCH_MAIL},
1245#line 97 "win32_vk.list"
1246      {gperf_offsetof(stringpool, 142), VK_OEM_FJ_JISHO},
1247#line 72 "win32_vk.list"
1248      {gperf_offsetof(stringpool, 143), VK_F3},
1249#line 101 "win32_vk.list"
1250      {gperf_offsetof(stringpool, 144), VK_OEM_FJ_ROYA},
1251#line 100 "win32_vk.list"
1252      {gperf_offsetof(stringpool, 145), VK_OEM_FJ_LOYA},
1253      {-1},
1254#line 42 "win32_vk.list"
1255      {gperf_offsetof(stringpool, 147), VK_DOWN},
1256      {-1},
1257#line 153 "win32_vk.list"
1258      {gperf_offsetof(stringpool, 149), VK_OEM_FINISH},
1259      {-1},
1260#line 74 "win32_vk.list"
1261      {gperf_offsetof(stringpool, 151), VK_F5},
1262      {-1},
1263#line 136 "win32_vk.list"
1264      {gperf_offsetof(stringpool, 153), VK_OEM_7},
1265#line 73 "win32_vk.list"
1266      {gperf_offsetof(stringpool, 154), VK_F4},
1267#line 86 "win32_vk.list"
1268      {gperf_offsetof(stringpool, 155), VK_F17},
1269#line 55 "win32_vk.list"
1270      {gperf_offsetof(stringpool, 156), VK_NUMPAD1},
1271#line 141 "win32_vk.list"
1272      {gperf_offsetof(stringpool, 157), VK_ICO_00},
1273      {-1},
1274#line 62 "win32_vk.list"
1275      {gperf_offsetof(stringpool, 159), VK_NUMPAD8},
1276      {-1}, {-1},
1277#line 56 "win32_vk.list"
1278      {gperf_offsetof(stringpool, 162), VK_NUMPAD2},
1279      {-1},
1280#line 124 "win32_vk.list"
1281      {gperf_offsetof(stringpool, 164), VK_LAUNCH_APP1},
1282#line 109 "win32_vk.list"
1283      {gperf_offsetof(stringpool, 165), VK_BROWSER_FORWARD},
1284      {-1},
1285#line 76 "win32_vk.list"
1286      {gperf_offsetof(stringpool, 167), VK_F7},
1287      {-1}, {-1},
1288#line 125 "win32_vk.list"
1289      {gperf_offsetof(stringpool, 170), VK_LAUNCH_APP2},
1290#line 64 "win32_vk.list"
1291      {gperf_offsetof(stringpool, 171), VK_MULTIPLY},
1292      {-1}, {-1},
1293#line 45 "win32_vk.list"
1294      {gperf_offsetof(stringpool, 174), VK_EXECUTE},
1295      {-1},
1296#line 113 "win32_vk.list"
1297      {gperf_offsetof(stringpool, 176), VK_BROWSER_FAVORITES},
1298#line 60 "win32_vk.list"
1299      {gperf_offsetof(stringpool, 177), VK_NUMPAD6},
1300      {-1},
1301#line 85 "win32_vk.list"
1302      {gperf_offsetof(stringpool, 179), VK_F16},
1303      {-1}, {-1},
1304#line 79 "win32_vk.list"
1305      {gperf_offsetof(stringpool, 182), VK_F10},
1306      {-1}, {-1},
1307#line 116 "win32_vk.list"
1308      {gperf_offsetof(stringpool, 185), VK_VOLUME_DOWN},
1309      {-1}, {-1},
1310#line 89 "win32_vk.list"
1311      {gperf_offsetof(stringpool, 188), VK_F20},
1312#line 119 "win32_vk.list"
1313      {gperf_offsetof(stringpool, 189), VK_MEDIA_PREV_TRACK},
1314      {-1},
1315#line 33 "win32_vk.list"
1316      {gperf_offsetof(stringpool, 191), VK_MODECHANGE},
1317      {-1}, {-1}, {-1}, {-1}, {-1},
1318#line 83 "win32_vk.list"
1319      {gperf_offsetof(stringpool, 197), VK_F14},
1320#line 57 "win32_vk.list"
1321      {gperf_offsetof(stringpool, 198), VK_NUMPAD3},
1322#line 11 "win32_vk.list"
1323      {gperf_offsetof(stringpool, 199), VK_XBUTTON1},
1324      {-1}, {-1}, {-1},
1325#line 93 "win32_vk.list"
1326      {gperf_offsetof(stringpool, 203), VK_F24},
1327      {-1},
1328#line 12 "win32_vk.list"
1329      {gperf_offsetof(stringpool, 205), VK_XBUTTON2},
1330#line 59 "win32_vk.list"
1331      {gperf_offsetof(stringpool, 206), VK_NUMPAD5},
1332      {-1}, {-1},
1333#line 58 "win32_vk.list"
1334      {gperf_offsetof(stringpool, 209), VK_NUMPAD4},
1335      {-1}, {-1}, {-1}, {-1}, {-1},
1336#line 121 "win32_vk.list"
1337      {gperf_offsetof(stringpool, 215), VK_MEDIA_PLAY_PAUSE},
1338      {-1},
1339#line 123 "win32_vk.list"
1340      {gperf_offsetof(stringpool, 217), VK_LAUNCH_MEDIA_SELECT},
1341#line 80 "win32_vk.list"
1342      {gperf_offsetof(stringpool, 218), VK_F11},
1343      {-1},
1344#line 139 "win32_vk.list"
1345      {gperf_offsetof(stringpool, 220), VK_OEM_102},
1346#line 118 "win32_vk.list"
1347      {gperf_offsetof(stringpool, 221), VK_MEDIA_NEXT_TRACK},
1348#line 61 "win32_vk.list"
1349      {gperf_offsetof(stringpool, 222), VK_NUMPAD7},
1350      {-1},
1351#line 90 "win32_vk.list"
1352      {gperf_offsetof(stringpool, 224), VK_F21},
1353      {-1},
1354#line 82 "win32_vk.list"
1355      {gperf_offsetof(stringpool, 226), VK_F13},
1356      {-1}, {-1},
1357#line 81 "win32_vk.list"
1358      {gperf_offsetof(stringpool, 229), VK_F12},
1359      {-1}, {-1},
1360#line 92 "win32_vk.list"
1361      {gperf_offsetof(stringpool, 232), VK_F23},
1362      {-1}, {-1},
1363#line 91 "win32_vk.list"
1364      {gperf_offsetof(stringpool, 235), VK_F22},
1365      {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
1366#line 84 "win32_vk.list"
1367      {gperf_offsetof(stringpool, 242), VK_F15},
1368      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
1369      {-1}, {-1}, {-1}, {-1},
1370#line 69 "win32_vk.list"
1371      {gperf_offsetof(stringpool, 256), VK_DIVIDE}
1372    };
1373
1374  if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
1375    {
1376      register unsigned int key = hash (str, len);
1377
1378      if (key <= MAX_HASH_VALUE)
1379        {
1380          register int o = wordlist[key].ofs;
1381          if (o >= 0)
1382            {
1383              register const char *s = o + stringpool;
1384
1385              if ((((unsigned char)*str ^ (unsigned char)*s) & ~32) == 0 && !gperf_case_strcmp (str, s))
1386                return &wordlist[key];
1387            }
1388        }
1389    }
1390  return 0;
1391}
1392