1 /*  The file is autogenerated from aiohttp/hdrs.py
2 Run ./tools/gen.py to update it after the origin changing. */
3 
4 #include "_find_header.h"
5 
6 #define NEXT_CHAR() \
7 { \
8     count++; \
9     if (count == size) { \
10         /* end of search */ \
11         return -1; \
12     } \
13     pchar++; \
14     ch = *pchar; \
15     last = (count == size -1); \
16 } while(0);
17 
18 int
find_header(const char * str,int size)19 find_header(const char *str, int size)
20 {
21     char *pchar = str;
22     int last;
23     char ch;
24     int count = -1;
25     pchar--;
26 
27 
28     NEXT_CHAR();
29     switch (ch) {
30         case 'A':
31             if (last) {
32                 return -1;
33             }
34             goto A;
35         case 'a':
36             if (last) {
37                 return -1;
38             }
39             goto A;
40         case 'C':
41             if (last) {
42                 return -1;
43             }
44             goto C;
45         case 'c':
46             if (last) {
47                 return -1;
48             }
49             goto C;
50         case 'D':
51             if (last) {
52                 return -1;
53             }
54             goto D;
55         case 'd':
56             if (last) {
57                 return -1;
58             }
59             goto D;
60         case 'E':
61             if (last) {
62                 return -1;
63             }
64             goto E;
65         case 'e':
66             if (last) {
67                 return -1;
68             }
69             goto E;
70         case 'F':
71             if (last) {
72                 return -1;
73             }
74             goto F;
75         case 'f':
76             if (last) {
77                 return -1;
78             }
79             goto F;
80         case 'H':
81             if (last) {
82                 return -1;
83             }
84             goto H;
85         case 'h':
86             if (last) {
87                 return -1;
88             }
89             goto H;
90         case 'I':
91             if (last) {
92                 return -1;
93             }
94             goto I;
95         case 'i':
96             if (last) {
97                 return -1;
98             }
99             goto I;
100         case 'K':
101             if (last) {
102                 return -1;
103             }
104             goto K;
105         case 'k':
106             if (last) {
107                 return -1;
108             }
109             goto K;
110         case 'L':
111             if (last) {
112                 return -1;
113             }
114             goto L;
115         case 'l':
116             if (last) {
117                 return -1;
118             }
119             goto L;
120         case 'M':
121             if (last) {
122                 return -1;
123             }
124             goto M;
125         case 'm':
126             if (last) {
127                 return -1;
128             }
129             goto M;
130         case 'O':
131             if (last) {
132                 return -1;
133             }
134             goto O;
135         case 'o':
136             if (last) {
137                 return -1;
138             }
139             goto O;
140         case 'P':
141             if (last) {
142                 return -1;
143             }
144             goto P;
145         case 'p':
146             if (last) {
147                 return -1;
148             }
149             goto P;
150         case 'R':
151             if (last) {
152                 return -1;
153             }
154             goto R;
155         case 'r':
156             if (last) {
157                 return -1;
158             }
159             goto R;
160         case 'S':
161             if (last) {
162                 return -1;
163             }
164             goto S;
165         case 's':
166             if (last) {
167                 return -1;
168             }
169             goto S;
170         case 'T':
171             if (last) {
172                 return -1;
173             }
174             goto T;
175         case 't':
176             if (last) {
177                 return -1;
178             }
179             goto T;
180         case 'U':
181             if (last) {
182                 return -1;
183             }
184             goto U;
185         case 'u':
186             if (last) {
187                 return -1;
188             }
189             goto U;
190         case 'V':
191             if (last) {
192                 return -1;
193             }
194             goto V;
195         case 'v':
196             if (last) {
197                 return -1;
198             }
199             goto V;
200         case 'W':
201             if (last) {
202                 return -1;
203             }
204             goto W;
205         case 'w':
206             if (last) {
207                 return -1;
208             }
209             goto W;
210         case 'X':
211             if (last) {
212                 return -1;
213             }
214             goto X;
215         case 'x':
216             if (last) {
217                 return -1;
218             }
219             goto X;
220         default:
221             return -1;
222     }
223 
224 A:
225     NEXT_CHAR();
226     switch (ch) {
227         case 'C':
228             if (last) {
229                 return -1;
230             }
231             goto AC;
232         case 'c':
233             if (last) {
234                 return -1;
235             }
236             goto AC;
237         case 'G':
238             if (last) {
239                 return -1;
240             }
241             goto AG;
242         case 'g':
243             if (last) {
244                 return -1;
245             }
246             goto AG;
247         case 'L':
248             if (last) {
249                 return -1;
250             }
251             goto AL;
252         case 'l':
253             if (last) {
254                 return -1;
255             }
256             goto AL;
257         case 'U':
258             if (last) {
259                 return -1;
260             }
261             goto AU;
262         case 'u':
263             if (last) {
264                 return -1;
265             }
266             goto AU;
267         default:
268             return -1;
269     }
270 
271 AC:
272     NEXT_CHAR();
273     switch (ch) {
274         case 'C':
275             if (last) {
276                 return -1;
277             }
278             goto ACC;
279         case 'c':
280             if (last) {
281                 return -1;
282             }
283             goto ACC;
284         default:
285             return -1;
286     }
287 
288 ACC:
289     NEXT_CHAR();
290     switch (ch) {
291         case 'E':
292             if (last) {
293                 return -1;
294             }
295             goto ACCE;
296         case 'e':
297             if (last) {
298                 return -1;
299             }
300             goto ACCE;
301         default:
302             return -1;
303     }
304 
305 ACCE:
306     NEXT_CHAR();
307     switch (ch) {
308         case 'P':
309             if (last) {
310                 return -1;
311             }
312             goto ACCEP;
313         case 'p':
314             if (last) {
315                 return -1;
316             }
317             goto ACCEP;
318         case 'S':
319             if (last) {
320                 return -1;
321             }
322             goto ACCES;
323         case 's':
324             if (last) {
325                 return -1;
326             }
327             goto ACCES;
328         default:
329             return -1;
330     }
331 
332 ACCEP:
333     NEXT_CHAR();
334     switch (ch) {
335         case 'T':
336             if (last) {
337                 return 0;
338             }
339             goto ACCEPT;
340         case 't':
341             if (last) {
342                 return 0;
343             }
344             goto ACCEPT;
345         default:
346             return -1;
347     }
348 
349 ACCEPT:
350     NEXT_CHAR();
351     switch (ch) {
352         case '-':
353             if (last) {
354                 return -1;
355             }
356             goto ACCEPT_;
357         default:
358             return -1;
359     }
360 
361 ACCEPT_:
362     NEXT_CHAR();
363     switch (ch) {
364         case 'C':
365             if (last) {
366                 return -1;
367             }
368             goto ACCEPT_C;
369         case 'c':
370             if (last) {
371                 return -1;
372             }
373             goto ACCEPT_C;
374         case 'E':
375             if (last) {
376                 return -1;
377             }
378             goto ACCEPT_E;
379         case 'e':
380             if (last) {
381                 return -1;
382             }
383             goto ACCEPT_E;
384         case 'L':
385             if (last) {
386                 return -1;
387             }
388             goto ACCEPT_L;
389         case 'l':
390             if (last) {
391                 return -1;
392             }
393             goto ACCEPT_L;
394         case 'R':
395             if (last) {
396                 return -1;
397             }
398             goto ACCEPT_R;
399         case 'r':
400             if (last) {
401                 return -1;
402             }
403             goto ACCEPT_R;
404         default:
405             return -1;
406     }
407 
408 ACCEPT_C:
409     NEXT_CHAR();
410     switch (ch) {
411         case 'H':
412             if (last) {
413                 return -1;
414             }
415             goto ACCEPT_CH;
416         case 'h':
417             if (last) {
418                 return -1;
419             }
420             goto ACCEPT_CH;
421         default:
422             return -1;
423     }
424 
425 ACCEPT_CH:
426     NEXT_CHAR();
427     switch (ch) {
428         case 'A':
429             if (last) {
430                 return -1;
431             }
432             goto ACCEPT_CHA;
433         case 'a':
434             if (last) {
435                 return -1;
436             }
437             goto ACCEPT_CHA;
438         default:
439             return -1;
440     }
441 
442 ACCEPT_CHA:
443     NEXT_CHAR();
444     switch (ch) {
445         case 'R':
446             if (last) {
447                 return -1;
448             }
449             goto ACCEPT_CHAR;
450         case 'r':
451             if (last) {
452                 return -1;
453             }
454             goto ACCEPT_CHAR;
455         default:
456             return -1;
457     }
458 
459 ACCEPT_CHAR:
460     NEXT_CHAR();
461     switch (ch) {
462         case 'S':
463             if (last) {
464                 return -1;
465             }
466             goto ACCEPT_CHARS;
467         case 's':
468             if (last) {
469                 return -1;
470             }
471             goto ACCEPT_CHARS;
472         default:
473             return -1;
474     }
475 
476 ACCEPT_CHARS:
477     NEXT_CHAR();
478     switch (ch) {
479         case 'E':
480             if (last) {
481                 return -1;
482             }
483             goto ACCEPT_CHARSE;
484         case 'e':
485             if (last) {
486                 return -1;
487             }
488             goto ACCEPT_CHARSE;
489         default:
490             return -1;
491     }
492 
493 ACCEPT_CHARSE:
494     NEXT_CHAR();
495     switch (ch) {
496         case 'T':
497             if (last) {
498                 return 1;
499             }
500             goto ACCEPT_CHARSET;
501         case 't':
502             if (last) {
503                 return 1;
504             }
505             goto ACCEPT_CHARSET;
506         default:
507             return -1;
508     }
509 
510 ACCEPT_E:
511     NEXT_CHAR();
512     switch (ch) {
513         case 'N':
514             if (last) {
515                 return -1;
516             }
517             goto ACCEPT_EN;
518         case 'n':
519             if (last) {
520                 return -1;
521             }
522             goto ACCEPT_EN;
523         default:
524             return -1;
525     }
526 
527 ACCEPT_EN:
528     NEXT_CHAR();
529     switch (ch) {
530         case 'C':
531             if (last) {
532                 return -1;
533             }
534             goto ACCEPT_ENC;
535         case 'c':
536             if (last) {
537                 return -1;
538             }
539             goto ACCEPT_ENC;
540         default:
541             return -1;
542     }
543 
544 ACCEPT_ENC:
545     NEXT_CHAR();
546     switch (ch) {
547         case 'O':
548             if (last) {
549                 return -1;
550             }
551             goto ACCEPT_ENCO;
552         case 'o':
553             if (last) {
554                 return -1;
555             }
556             goto ACCEPT_ENCO;
557         default:
558             return -1;
559     }
560 
561 ACCEPT_ENCO:
562     NEXT_CHAR();
563     switch (ch) {
564         case 'D':
565             if (last) {
566                 return -1;
567             }
568             goto ACCEPT_ENCOD;
569         case 'd':
570             if (last) {
571                 return -1;
572             }
573             goto ACCEPT_ENCOD;
574         default:
575             return -1;
576     }
577 
578 ACCEPT_ENCOD:
579     NEXT_CHAR();
580     switch (ch) {
581         case 'I':
582             if (last) {
583                 return -1;
584             }
585             goto ACCEPT_ENCODI;
586         case 'i':
587             if (last) {
588                 return -1;
589             }
590             goto ACCEPT_ENCODI;
591         default:
592             return -1;
593     }
594 
595 ACCEPT_ENCODI:
596     NEXT_CHAR();
597     switch (ch) {
598         case 'N':
599             if (last) {
600                 return -1;
601             }
602             goto ACCEPT_ENCODIN;
603         case 'n':
604             if (last) {
605                 return -1;
606             }
607             goto ACCEPT_ENCODIN;
608         default:
609             return -1;
610     }
611 
612 ACCEPT_ENCODIN:
613     NEXT_CHAR();
614     switch (ch) {
615         case 'G':
616             if (last) {
617                 return 2;
618             }
619             goto ACCEPT_ENCODING;
620         case 'g':
621             if (last) {
622                 return 2;
623             }
624             goto ACCEPT_ENCODING;
625         default:
626             return -1;
627     }
628 
629 ACCEPT_L:
630     NEXT_CHAR();
631     switch (ch) {
632         case 'A':
633             if (last) {
634                 return -1;
635             }
636             goto ACCEPT_LA;
637         case 'a':
638             if (last) {
639                 return -1;
640             }
641             goto ACCEPT_LA;
642         default:
643             return -1;
644     }
645 
646 ACCEPT_LA:
647     NEXT_CHAR();
648     switch (ch) {
649         case 'N':
650             if (last) {
651                 return -1;
652             }
653             goto ACCEPT_LAN;
654         case 'n':
655             if (last) {
656                 return -1;
657             }
658             goto ACCEPT_LAN;
659         default:
660             return -1;
661     }
662 
663 ACCEPT_LAN:
664     NEXT_CHAR();
665     switch (ch) {
666         case 'G':
667             if (last) {
668                 return -1;
669             }
670             goto ACCEPT_LANG;
671         case 'g':
672             if (last) {
673                 return -1;
674             }
675             goto ACCEPT_LANG;
676         default:
677             return -1;
678     }
679 
680 ACCEPT_LANG:
681     NEXT_CHAR();
682     switch (ch) {
683         case 'U':
684             if (last) {
685                 return -1;
686             }
687             goto ACCEPT_LANGU;
688         case 'u':
689             if (last) {
690                 return -1;
691             }
692             goto ACCEPT_LANGU;
693         default:
694             return -1;
695     }
696 
697 ACCEPT_LANGU:
698     NEXT_CHAR();
699     switch (ch) {
700         case 'A':
701             if (last) {
702                 return -1;
703             }
704             goto ACCEPT_LANGUA;
705         case 'a':
706             if (last) {
707                 return -1;
708             }
709             goto ACCEPT_LANGUA;
710         default:
711             return -1;
712     }
713 
714 ACCEPT_LANGUA:
715     NEXT_CHAR();
716     switch (ch) {
717         case 'G':
718             if (last) {
719                 return -1;
720             }
721             goto ACCEPT_LANGUAG;
722         case 'g':
723             if (last) {
724                 return -1;
725             }
726             goto ACCEPT_LANGUAG;
727         default:
728             return -1;
729     }
730 
731 ACCEPT_LANGUAG:
732     NEXT_CHAR();
733     switch (ch) {
734         case 'E':
735             if (last) {
736                 return 3;
737             }
738             goto ACCEPT_LANGUAGE;
739         case 'e':
740             if (last) {
741                 return 3;
742             }
743             goto ACCEPT_LANGUAGE;
744         default:
745             return -1;
746     }
747 
748 ACCEPT_R:
749     NEXT_CHAR();
750     switch (ch) {
751         case 'A':
752             if (last) {
753                 return -1;
754             }
755             goto ACCEPT_RA;
756         case 'a':
757             if (last) {
758                 return -1;
759             }
760             goto ACCEPT_RA;
761         default:
762             return -1;
763     }
764 
765 ACCEPT_RA:
766     NEXT_CHAR();
767     switch (ch) {
768         case 'N':
769             if (last) {
770                 return -1;
771             }
772             goto ACCEPT_RAN;
773         case 'n':
774             if (last) {
775                 return -1;
776             }
777             goto ACCEPT_RAN;
778         default:
779             return -1;
780     }
781 
782 ACCEPT_RAN:
783     NEXT_CHAR();
784     switch (ch) {
785         case 'G':
786             if (last) {
787                 return -1;
788             }
789             goto ACCEPT_RANG;
790         case 'g':
791             if (last) {
792                 return -1;
793             }
794             goto ACCEPT_RANG;
795         default:
796             return -1;
797     }
798 
799 ACCEPT_RANG:
800     NEXT_CHAR();
801     switch (ch) {
802         case 'E':
803             if (last) {
804                 return -1;
805             }
806             goto ACCEPT_RANGE;
807         case 'e':
808             if (last) {
809                 return -1;
810             }
811             goto ACCEPT_RANGE;
812         default:
813             return -1;
814     }
815 
816 ACCEPT_RANGE:
817     NEXT_CHAR();
818     switch (ch) {
819         case 'S':
820             if (last) {
821                 return 4;
822             }
823             goto ACCEPT_RANGES;
824         case 's':
825             if (last) {
826                 return 4;
827             }
828             goto ACCEPT_RANGES;
829         default:
830             return -1;
831     }
832 
833 ACCES:
834     NEXT_CHAR();
835     switch (ch) {
836         case 'S':
837             if (last) {
838                 return -1;
839             }
840             goto ACCESS;
841         case 's':
842             if (last) {
843                 return -1;
844             }
845             goto ACCESS;
846         default:
847             return -1;
848     }
849 
850 ACCESS:
851     NEXT_CHAR();
852     switch (ch) {
853         case '-':
854             if (last) {
855                 return -1;
856             }
857             goto ACCESS_;
858         default:
859             return -1;
860     }
861 
862 ACCESS_:
863     NEXT_CHAR();
864     switch (ch) {
865         case 'C':
866             if (last) {
867                 return -1;
868             }
869             goto ACCESS_C;
870         case 'c':
871             if (last) {
872                 return -1;
873             }
874             goto ACCESS_C;
875         default:
876             return -1;
877     }
878 
879 ACCESS_C:
880     NEXT_CHAR();
881     switch (ch) {
882         case 'O':
883             if (last) {
884                 return -1;
885             }
886             goto ACCESS_CO;
887         case 'o':
888             if (last) {
889                 return -1;
890             }
891             goto ACCESS_CO;
892         default:
893             return -1;
894     }
895 
896 ACCESS_CO:
897     NEXT_CHAR();
898     switch (ch) {
899         case 'N':
900             if (last) {
901                 return -1;
902             }
903             goto ACCESS_CON;
904         case 'n':
905             if (last) {
906                 return -1;
907             }
908             goto ACCESS_CON;
909         default:
910             return -1;
911     }
912 
913 ACCESS_CON:
914     NEXT_CHAR();
915     switch (ch) {
916         case 'T':
917             if (last) {
918                 return -1;
919             }
920             goto ACCESS_CONT;
921         case 't':
922             if (last) {
923                 return -1;
924             }
925             goto ACCESS_CONT;
926         default:
927             return -1;
928     }
929 
930 ACCESS_CONT:
931     NEXT_CHAR();
932     switch (ch) {
933         case 'R':
934             if (last) {
935                 return -1;
936             }
937             goto ACCESS_CONTR;
938         case 'r':
939             if (last) {
940                 return -1;
941             }
942             goto ACCESS_CONTR;
943         default:
944             return -1;
945     }
946 
947 ACCESS_CONTR:
948     NEXT_CHAR();
949     switch (ch) {
950         case 'O':
951             if (last) {
952                 return -1;
953             }
954             goto ACCESS_CONTRO;
955         case 'o':
956             if (last) {
957                 return -1;
958             }
959             goto ACCESS_CONTRO;
960         default:
961             return -1;
962     }
963 
964 ACCESS_CONTRO:
965     NEXT_CHAR();
966     switch (ch) {
967         case 'L':
968             if (last) {
969                 return -1;
970             }
971             goto ACCESS_CONTROL;
972         case 'l':
973             if (last) {
974                 return -1;
975             }
976             goto ACCESS_CONTROL;
977         default:
978             return -1;
979     }
980 
981 ACCESS_CONTROL:
982     NEXT_CHAR();
983     switch (ch) {
984         case '-':
985             if (last) {
986                 return -1;
987             }
988             goto ACCESS_CONTROL_;
989         default:
990             return -1;
991     }
992 
993 ACCESS_CONTROL_:
994     NEXT_CHAR();
995     switch (ch) {
996         case 'A':
997             if (last) {
998                 return -1;
999             }
1000             goto ACCESS_CONTROL_A;
1001         case 'a':
1002             if (last) {
1003                 return -1;
1004             }
1005             goto ACCESS_CONTROL_A;
1006         case 'E':
1007             if (last) {
1008                 return -1;
1009             }
1010             goto ACCESS_CONTROL_E;
1011         case 'e':
1012             if (last) {
1013                 return -1;
1014             }
1015             goto ACCESS_CONTROL_E;
1016         case 'M':
1017             if (last) {
1018                 return -1;
1019             }
1020             goto ACCESS_CONTROL_M;
1021         case 'm':
1022             if (last) {
1023                 return -1;
1024             }
1025             goto ACCESS_CONTROL_M;
1026         case 'R':
1027             if (last) {
1028                 return -1;
1029             }
1030             goto ACCESS_CONTROL_R;
1031         case 'r':
1032             if (last) {
1033                 return -1;
1034             }
1035             goto ACCESS_CONTROL_R;
1036         default:
1037             return -1;
1038     }
1039 
1040 ACCESS_CONTROL_A:
1041     NEXT_CHAR();
1042     switch (ch) {
1043         case 'L':
1044             if (last) {
1045                 return -1;
1046             }
1047             goto ACCESS_CONTROL_AL;
1048         case 'l':
1049             if (last) {
1050                 return -1;
1051             }
1052             goto ACCESS_CONTROL_AL;
1053         default:
1054             return -1;
1055     }
1056 
1057 ACCESS_CONTROL_AL:
1058     NEXT_CHAR();
1059     switch (ch) {
1060         case 'L':
1061             if (last) {
1062                 return -1;
1063             }
1064             goto ACCESS_CONTROL_ALL;
1065         case 'l':
1066             if (last) {
1067                 return -1;
1068             }
1069             goto ACCESS_CONTROL_ALL;
1070         default:
1071             return -1;
1072     }
1073 
1074 ACCESS_CONTROL_ALL:
1075     NEXT_CHAR();
1076     switch (ch) {
1077         case 'O':
1078             if (last) {
1079                 return -1;
1080             }
1081             goto ACCESS_CONTROL_ALLO;
1082         case 'o':
1083             if (last) {
1084                 return -1;
1085             }
1086             goto ACCESS_CONTROL_ALLO;
1087         default:
1088             return -1;
1089     }
1090 
1091 ACCESS_CONTROL_ALLO:
1092     NEXT_CHAR();
1093     switch (ch) {
1094         case 'W':
1095             if (last) {
1096                 return -1;
1097             }
1098             goto ACCESS_CONTROL_ALLOW;
1099         case 'w':
1100             if (last) {
1101                 return -1;
1102             }
1103             goto ACCESS_CONTROL_ALLOW;
1104         default:
1105             return -1;
1106     }
1107 
1108 ACCESS_CONTROL_ALLOW:
1109     NEXT_CHAR();
1110     switch (ch) {
1111         case '-':
1112             if (last) {
1113                 return -1;
1114             }
1115             goto ACCESS_CONTROL_ALLOW_;
1116         default:
1117             return -1;
1118     }
1119 
1120 ACCESS_CONTROL_ALLOW_:
1121     NEXT_CHAR();
1122     switch (ch) {
1123         case 'C':
1124             if (last) {
1125                 return -1;
1126             }
1127             goto ACCESS_CONTROL_ALLOW_C;
1128         case 'c':
1129             if (last) {
1130                 return -1;
1131             }
1132             goto ACCESS_CONTROL_ALLOW_C;
1133         case 'H':
1134             if (last) {
1135                 return -1;
1136             }
1137             goto ACCESS_CONTROL_ALLOW_H;
1138         case 'h':
1139             if (last) {
1140                 return -1;
1141             }
1142             goto ACCESS_CONTROL_ALLOW_H;
1143         case 'M':
1144             if (last) {
1145                 return -1;
1146             }
1147             goto ACCESS_CONTROL_ALLOW_M;
1148         case 'm':
1149             if (last) {
1150                 return -1;
1151             }
1152             goto ACCESS_CONTROL_ALLOW_M;
1153         case 'O':
1154             if (last) {
1155                 return -1;
1156             }
1157             goto ACCESS_CONTROL_ALLOW_O;
1158         case 'o':
1159             if (last) {
1160                 return -1;
1161             }
1162             goto ACCESS_CONTROL_ALLOW_O;
1163         default:
1164             return -1;
1165     }
1166 
1167 ACCESS_CONTROL_ALLOW_C:
1168     NEXT_CHAR();
1169     switch (ch) {
1170         case 'R':
1171             if (last) {
1172                 return -1;
1173             }
1174             goto ACCESS_CONTROL_ALLOW_CR;
1175         case 'r':
1176             if (last) {
1177                 return -1;
1178             }
1179             goto ACCESS_CONTROL_ALLOW_CR;
1180         default:
1181             return -1;
1182     }
1183 
1184 ACCESS_CONTROL_ALLOW_CR:
1185     NEXT_CHAR();
1186     switch (ch) {
1187         case 'E':
1188             if (last) {
1189                 return -1;
1190             }
1191             goto ACCESS_CONTROL_ALLOW_CRE;
1192         case 'e':
1193             if (last) {
1194                 return -1;
1195             }
1196             goto ACCESS_CONTROL_ALLOW_CRE;
1197         default:
1198             return -1;
1199     }
1200 
1201 ACCESS_CONTROL_ALLOW_CRE:
1202     NEXT_CHAR();
1203     switch (ch) {
1204         case 'D':
1205             if (last) {
1206                 return -1;
1207             }
1208             goto ACCESS_CONTROL_ALLOW_CRED;
1209         case 'd':
1210             if (last) {
1211                 return -1;
1212             }
1213             goto ACCESS_CONTROL_ALLOW_CRED;
1214         default:
1215             return -1;
1216     }
1217 
1218 ACCESS_CONTROL_ALLOW_CRED:
1219     NEXT_CHAR();
1220     switch (ch) {
1221         case 'E':
1222             if (last) {
1223                 return -1;
1224             }
1225             goto ACCESS_CONTROL_ALLOW_CREDE;
1226         case 'e':
1227             if (last) {
1228                 return -1;
1229             }
1230             goto ACCESS_CONTROL_ALLOW_CREDE;
1231         default:
1232             return -1;
1233     }
1234 
1235 ACCESS_CONTROL_ALLOW_CREDE:
1236     NEXT_CHAR();
1237     switch (ch) {
1238         case 'N':
1239             if (last) {
1240                 return -1;
1241             }
1242             goto ACCESS_CONTROL_ALLOW_CREDEN;
1243         case 'n':
1244             if (last) {
1245                 return -1;
1246             }
1247             goto ACCESS_CONTROL_ALLOW_CREDEN;
1248         default:
1249             return -1;
1250     }
1251 
1252 ACCESS_CONTROL_ALLOW_CREDEN:
1253     NEXT_CHAR();
1254     switch (ch) {
1255         case 'T':
1256             if (last) {
1257                 return -1;
1258             }
1259             goto ACCESS_CONTROL_ALLOW_CREDENT;
1260         case 't':
1261             if (last) {
1262                 return -1;
1263             }
1264             goto ACCESS_CONTROL_ALLOW_CREDENT;
1265         default:
1266             return -1;
1267     }
1268 
1269 ACCESS_CONTROL_ALLOW_CREDENT:
1270     NEXT_CHAR();
1271     switch (ch) {
1272         case 'I':
1273             if (last) {
1274                 return -1;
1275             }
1276             goto ACCESS_CONTROL_ALLOW_CREDENTI;
1277         case 'i':
1278             if (last) {
1279                 return -1;
1280             }
1281             goto ACCESS_CONTROL_ALLOW_CREDENTI;
1282         default:
1283             return -1;
1284     }
1285 
1286 ACCESS_CONTROL_ALLOW_CREDENTI:
1287     NEXT_CHAR();
1288     switch (ch) {
1289         case 'A':
1290             if (last) {
1291                 return -1;
1292             }
1293             goto ACCESS_CONTROL_ALLOW_CREDENTIA;
1294         case 'a':
1295             if (last) {
1296                 return -1;
1297             }
1298             goto ACCESS_CONTROL_ALLOW_CREDENTIA;
1299         default:
1300             return -1;
1301     }
1302 
1303 ACCESS_CONTROL_ALLOW_CREDENTIA:
1304     NEXT_CHAR();
1305     switch (ch) {
1306         case 'L':
1307             if (last) {
1308                 return -1;
1309             }
1310             goto ACCESS_CONTROL_ALLOW_CREDENTIAL;
1311         case 'l':
1312             if (last) {
1313                 return -1;
1314             }
1315             goto ACCESS_CONTROL_ALLOW_CREDENTIAL;
1316         default:
1317             return -1;
1318     }
1319 
1320 ACCESS_CONTROL_ALLOW_CREDENTIAL:
1321     NEXT_CHAR();
1322     switch (ch) {
1323         case 'S':
1324             if (last) {
1325                 return 5;
1326             }
1327             goto ACCESS_CONTROL_ALLOW_CREDENTIALS;
1328         case 's':
1329             if (last) {
1330                 return 5;
1331             }
1332             goto ACCESS_CONTROL_ALLOW_CREDENTIALS;
1333         default:
1334             return -1;
1335     }
1336 
1337 ACCESS_CONTROL_ALLOW_H:
1338     NEXT_CHAR();
1339     switch (ch) {
1340         case 'E':
1341             if (last) {
1342                 return -1;
1343             }
1344             goto ACCESS_CONTROL_ALLOW_HE;
1345         case 'e':
1346             if (last) {
1347                 return -1;
1348             }
1349             goto ACCESS_CONTROL_ALLOW_HE;
1350         default:
1351             return -1;
1352     }
1353 
1354 ACCESS_CONTROL_ALLOW_HE:
1355     NEXT_CHAR();
1356     switch (ch) {
1357         case 'A':
1358             if (last) {
1359                 return -1;
1360             }
1361             goto ACCESS_CONTROL_ALLOW_HEA;
1362         case 'a':
1363             if (last) {
1364                 return -1;
1365             }
1366             goto ACCESS_CONTROL_ALLOW_HEA;
1367         default:
1368             return -1;
1369     }
1370 
1371 ACCESS_CONTROL_ALLOW_HEA:
1372     NEXT_CHAR();
1373     switch (ch) {
1374         case 'D':
1375             if (last) {
1376                 return -1;
1377             }
1378             goto ACCESS_CONTROL_ALLOW_HEAD;
1379         case 'd':
1380             if (last) {
1381                 return -1;
1382             }
1383             goto ACCESS_CONTROL_ALLOW_HEAD;
1384         default:
1385             return -1;
1386     }
1387 
1388 ACCESS_CONTROL_ALLOW_HEAD:
1389     NEXT_CHAR();
1390     switch (ch) {
1391         case 'E':
1392             if (last) {
1393                 return -1;
1394             }
1395             goto ACCESS_CONTROL_ALLOW_HEADE;
1396         case 'e':
1397             if (last) {
1398                 return -1;
1399             }
1400             goto ACCESS_CONTROL_ALLOW_HEADE;
1401         default:
1402             return -1;
1403     }
1404 
1405 ACCESS_CONTROL_ALLOW_HEADE:
1406     NEXT_CHAR();
1407     switch (ch) {
1408         case 'R':
1409             if (last) {
1410                 return -1;
1411             }
1412             goto ACCESS_CONTROL_ALLOW_HEADER;
1413         case 'r':
1414             if (last) {
1415                 return -1;
1416             }
1417             goto ACCESS_CONTROL_ALLOW_HEADER;
1418         default:
1419             return -1;
1420     }
1421 
1422 ACCESS_CONTROL_ALLOW_HEADER:
1423     NEXT_CHAR();
1424     switch (ch) {
1425         case 'S':
1426             if (last) {
1427                 return 6;
1428             }
1429             goto ACCESS_CONTROL_ALLOW_HEADERS;
1430         case 's':
1431             if (last) {
1432                 return 6;
1433             }
1434             goto ACCESS_CONTROL_ALLOW_HEADERS;
1435         default:
1436             return -1;
1437     }
1438 
1439 ACCESS_CONTROL_ALLOW_M:
1440     NEXT_CHAR();
1441     switch (ch) {
1442         case 'E':
1443             if (last) {
1444                 return -1;
1445             }
1446             goto ACCESS_CONTROL_ALLOW_ME;
1447         case 'e':
1448             if (last) {
1449                 return -1;
1450             }
1451             goto ACCESS_CONTROL_ALLOW_ME;
1452         default:
1453             return -1;
1454     }
1455 
1456 ACCESS_CONTROL_ALLOW_ME:
1457     NEXT_CHAR();
1458     switch (ch) {
1459         case 'T':
1460             if (last) {
1461                 return -1;
1462             }
1463             goto ACCESS_CONTROL_ALLOW_MET;
1464         case 't':
1465             if (last) {
1466                 return -1;
1467             }
1468             goto ACCESS_CONTROL_ALLOW_MET;
1469         default:
1470             return -1;
1471     }
1472 
1473 ACCESS_CONTROL_ALLOW_MET:
1474     NEXT_CHAR();
1475     switch (ch) {
1476         case 'H':
1477             if (last) {
1478                 return -1;
1479             }
1480             goto ACCESS_CONTROL_ALLOW_METH;
1481         case 'h':
1482             if (last) {
1483                 return -1;
1484             }
1485             goto ACCESS_CONTROL_ALLOW_METH;
1486         default:
1487             return -1;
1488     }
1489 
1490 ACCESS_CONTROL_ALLOW_METH:
1491     NEXT_CHAR();
1492     switch (ch) {
1493         case 'O':
1494             if (last) {
1495                 return -1;
1496             }
1497             goto ACCESS_CONTROL_ALLOW_METHO;
1498         case 'o':
1499             if (last) {
1500                 return -1;
1501             }
1502             goto ACCESS_CONTROL_ALLOW_METHO;
1503         default:
1504             return -1;
1505     }
1506 
1507 ACCESS_CONTROL_ALLOW_METHO:
1508     NEXT_CHAR();
1509     switch (ch) {
1510         case 'D':
1511             if (last) {
1512                 return -1;
1513             }
1514             goto ACCESS_CONTROL_ALLOW_METHOD;
1515         case 'd':
1516             if (last) {
1517                 return -1;
1518             }
1519             goto ACCESS_CONTROL_ALLOW_METHOD;
1520         default:
1521             return -1;
1522     }
1523 
1524 ACCESS_CONTROL_ALLOW_METHOD:
1525     NEXT_CHAR();
1526     switch (ch) {
1527         case 'S':
1528             if (last) {
1529                 return 7;
1530             }
1531             goto ACCESS_CONTROL_ALLOW_METHODS;
1532         case 's':
1533             if (last) {
1534                 return 7;
1535             }
1536             goto ACCESS_CONTROL_ALLOW_METHODS;
1537         default:
1538             return -1;
1539     }
1540 
1541 ACCESS_CONTROL_ALLOW_O:
1542     NEXT_CHAR();
1543     switch (ch) {
1544         case 'R':
1545             if (last) {
1546                 return -1;
1547             }
1548             goto ACCESS_CONTROL_ALLOW_OR;
1549         case 'r':
1550             if (last) {
1551                 return -1;
1552             }
1553             goto ACCESS_CONTROL_ALLOW_OR;
1554         default:
1555             return -1;
1556     }
1557 
1558 ACCESS_CONTROL_ALLOW_OR:
1559     NEXT_CHAR();
1560     switch (ch) {
1561         case 'I':
1562             if (last) {
1563                 return -1;
1564             }
1565             goto ACCESS_CONTROL_ALLOW_ORI;
1566         case 'i':
1567             if (last) {
1568                 return -1;
1569             }
1570             goto ACCESS_CONTROL_ALLOW_ORI;
1571         default:
1572             return -1;
1573     }
1574 
1575 ACCESS_CONTROL_ALLOW_ORI:
1576     NEXT_CHAR();
1577     switch (ch) {
1578         case 'G':
1579             if (last) {
1580                 return -1;
1581             }
1582             goto ACCESS_CONTROL_ALLOW_ORIG;
1583         case 'g':
1584             if (last) {
1585                 return -1;
1586             }
1587             goto ACCESS_CONTROL_ALLOW_ORIG;
1588         default:
1589             return -1;
1590     }
1591 
1592 ACCESS_CONTROL_ALLOW_ORIG:
1593     NEXT_CHAR();
1594     switch (ch) {
1595         case 'I':
1596             if (last) {
1597                 return -1;
1598             }
1599             goto ACCESS_CONTROL_ALLOW_ORIGI;
1600         case 'i':
1601             if (last) {
1602                 return -1;
1603             }
1604             goto ACCESS_CONTROL_ALLOW_ORIGI;
1605         default:
1606             return -1;
1607     }
1608 
1609 ACCESS_CONTROL_ALLOW_ORIGI:
1610     NEXT_CHAR();
1611     switch (ch) {
1612         case 'N':
1613             if (last) {
1614                 return 8;
1615             }
1616             goto ACCESS_CONTROL_ALLOW_ORIGIN;
1617         case 'n':
1618             if (last) {
1619                 return 8;
1620             }
1621             goto ACCESS_CONTROL_ALLOW_ORIGIN;
1622         default:
1623             return -1;
1624     }
1625 
1626 ACCESS_CONTROL_E:
1627     NEXT_CHAR();
1628     switch (ch) {
1629         case 'X':
1630             if (last) {
1631                 return -1;
1632             }
1633             goto ACCESS_CONTROL_EX;
1634         case 'x':
1635             if (last) {
1636                 return -1;
1637             }
1638             goto ACCESS_CONTROL_EX;
1639         default:
1640             return -1;
1641     }
1642 
1643 ACCESS_CONTROL_EX:
1644     NEXT_CHAR();
1645     switch (ch) {
1646         case 'P':
1647             if (last) {
1648                 return -1;
1649             }
1650             goto ACCESS_CONTROL_EXP;
1651         case 'p':
1652             if (last) {
1653                 return -1;
1654             }
1655             goto ACCESS_CONTROL_EXP;
1656         default:
1657             return -1;
1658     }
1659 
1660 ACCESS_CONTROL_EXP:
1661     NEXT_CHAR();
1662     switch (ch) {
1663         case 'O':
1664             if (last) {
1665                 return -1;
1666             }
1667             goto ACCESS_CONTROL_EXPO;
1668         case 'o':
1669             if (last) {
1670                 return -1;
1671             }
1672             goto ACCESS_CONTROL_EXPO;
1673         default:
1674             return -1;
1675     }
1676 
1677 ACCESS_CONTROL_EXPO:
1678     NEXT_CHAR();
1679     switch (ch) {
1680         case 'S':
1681             if (last) {
1682                 return -1;
1683             }
1684             goto ACCESS_CONTROL_EXPOS;
1685         case 's':
1686             if (last) {
1687                 return -1;
1688             }
1689             goto ACCESS_CONTROL_EXPOS;
1690         default:
1691             return -1;
1692     }
1693 
1694 ACCESS_CONTROL_EXPOS:
1695     NEXT_CHAR();
1696     switch (ch) {
1697         case 'E':
1698             if (last) {
1699                 return -1;
1700             }
1701             goto ACCESS_CONTROL_EXPOSE;
1702         case 'e':
1703             if (last) {
1704                 return -1;
1705             }
1706             goto ACCESS_CONTROL_EXPOSE;
1707         default:
1708             return -1;
1709     }
1710 
1711 ACCESS_CONTROL_EXPOSE:
1712     NEXT_CHAR();
1713     switch (ch) {
1714         case '-':
1715             if (last) {
1716                 return -1;
1717             }
1718             goto ACCESS_CONTROL_EXPOSE_;
1719         default:
1720             return -1;
1721     }
1722 
1723 ACCESS_CONTROL_EXPOSE_:
1724     NEXT_CHAR();
1725     switch (ch) {
1726         case 'H':
1727             if (last) {
1728                 return -1;
1729             }
1730             goto ACCESS_CONTROL_EXPOSE_H;
1731         case 'h':
1732             if (last) {
1733                 return -1;
1734             }
1735             goto ACCESS_CONTROL_EXPOSE_H;
1736         default:
1737             return -1;
1738     }
1739 
1740 ACCESS_CONTROL_EXPOSE_H:
1741     NEXT_CHAR();
1742     switch (ch) {
1743         case 'E':
1744             if (last) {
1745                 return -1;
1746             }
1747             goto ACCESS_CONTROL_EXPOSE_HE;
1748         case 'e':
1749             if (last) {
1750                 return -1;
1751             }
1752             goto ACCESS_CONTROL_EXPOSE_HE;
1753         default:
1754             return -1;
1755     }
1756 
1757 ACCESS_CONTROL_EXPOSE_HE:
1758     NEXT_CHAR();
1759     switch (ch) {
1760         case 'A':
1761             if (last) {
1762                 return -1;
1763             }
1764             goto ACCESS_CONTROL_EXPOSE_HEA;
1765         case 'a':
1766             if (last) {
1767                 return -1;
1768             }
1769             goto ACCESS_CONTROL_EXPOSE_HEA;
1770         default:
1771             return -1;
1772     }
1773 
1774 ACCESS_CONTROL_EXPOSE_HEA:
1775     NEXT_CHAR();
1776     switch (ch) {
1777         case 'D':
1778             if (last) {
1779                 return -1;
1780             }
1781             goto ACCESS_CONTROL_EXPOSE_HEAD;
1782         case 'd':
1783             if (last) {
1784                 return -1;
1785             }
1786             goto ACCESS_CONTROL_EXPOSE_HEAD;
1787         default:
1788             return -1;
1789     }
1790 
1791 ACCESS_CONTROL_EXPOSE_HEAD:
1792     NEXT_CHAR();
1793     switch (ch) {
1794         case 'E':
1795             if (last) {
1796                 return -1;
1797             }
1798             goto ACCESS_CONTROL_EXPOSE_HEADE;
1799         case 'e':
1800             if (last) {
1801                 return -1;
1802             }
1803             goto ACCESS_CONTROL_EXPOSE_HEADE;
1804         default:
1805             return -1;
1806     }
1807 
1808 ACCESS_CONTROL_EXPOSE_HEADE:
1809     NEXT_CHAR();
1810     switch (ch) {
1811         case 'R':
1812             if (last) {
1813                 return -1;
1814             }
1815             goto ACCESS_CONTROL_EXPOSE_HEADER;
1816         case 'r':
1817             if (last) {
1818                 return -1;
1819             }
1820             goto ACCESS_CONTROL_EXPOSE_HEADER;
1821         default:
1822             return -1;
1823     }
1824 
1825 ACCESS_CONTROL_EXPOSE_HEADER:
1826     NEXT_CHAR();
1827     switch (ch) {
1828         case 'S':
1829             if (last) {
1830                 return 9;
1831             }
1832             goto ACCESS_CONTROL_EXPOSE_HEADERS;
1833         case 's':
1834             if (last) {
1835                 return 9;
1836             }
1837             goto ACCESS_CONTROL_EXPOSE_HEADERS;
1838         default:
1839             return -1;
1840     }
1841 
1842 ACCESS_CONTROL_M:
1843     NEXT_CHAR();
1844     switch (ch) {
1845         case 'A':
1846             if (last) {
1847                 return -1;
1848             }
1849             goto ACCESS_CONTROL_MA;
1850         case 'a':
1851             if (last) {
1852                 return -1;
1853             }
1854             goto ACCESS_CONTROL_MA;
1855         default:
1856             return -1;
1857     }
1858 
1859 ACCESS_CONTROL_MA:
1860     NEXT_CHAR();
1861     switch (ch) {
1862         case 'X':
1863             if (last) {
1864                 return -1;
1865             }
1866             goto ACCESS_CONTROL_MAX;
1867         case 'x':
1868             if (last) {
1869                 return -1;
1870             }
1871             goto ACCESS_CONTROL_MAX;
1872         default:
1873             return -1;
1874     }
1875 
1876 ACCESS_CONTROL_MAX:
1877     NEXT_CHAR();
1878     switch (ch) {
1879         case '-':
1880             if (last) {
1881                 return -1;
1882             }
1883             goto ACCESS_CONTROL_MAX_;
1884         default:
1885             return -1;
1886     }
1887 
1888 ACCESS_CONTROL_MAX_:
1889     NEXT_CHAR();
1890     switch (ch) {
1891         case 'A':
1892             if (last) {
1893                 return -1;
1894             }
1895             goto ACCESS_CONTROL_MAX_A;
1896         case 'a':
1897             if (last) {
1898                 return -1;
1899             }
1900             goto ACCESS_CONTROL_MAX_A;
1901         default:
1902             return -1;
1903     }
1904 
1905 ACCESS_CONTROL_MAX_A:
1906     NEXT_CHAR();
1907     switch (ch) {
1908         case 'G':
1909             if (last) {
1910                 return -1;
1911             }
1912             goto ACCESS_CONTROL_MAX_AG;
1913         case 'g':
1914             if (last) {
1915                 return -1;
1916             }
1917             goto ACCESS_CONTROL_MAX_AG;
1918         default:
1919             return -1;
1920     }
1921 
1922 ACCESS_CONTROL_MAX_AG:
1923     NEXT_CHAR();
1924     switch (ch) {
1925         case 'E':
1926             if (last) {
1927                 return 10;
1928             }
1929             goto ACCESS_CONTROL_MAX_AGE;
1930         case 'e':
1931             if (last) {
1932                 return 10;
1933             }
1934             goto ACCESS_CONTROL_MAX_AGE;
1935         default:
1936             return -1;
1937     }
1938 
1939 ACCESS_CONTROL_R:
1940     NEXT_CHAR();
1941     switch (ch) {
1942         case 'E':
1943             if (last) {
1944                 return -1;
1945             }
1946             goto ACCESS_CONTROL_RE;
1947         case 'e':
1948             if (last) {
1949                 return -1;
1950             }
1951             goto ACCESS_CONTROL_RE;
1952         default:
1953             return -1;
1954     }
1955 
1956 ACCESS_CONTROL_RE:
1957     NEXT_CHAR();
1958     switch (ch) {
1959         case 'Q':
1960             if (last) {
1961                 return -1;
1962             }
1963             goto ACCESS_CONTROL_REQ;
1964         case 'q':
1965             if (last) {
1966                 return -1;
1967             }
1968             goto ACCESS_CONTROL_REQ;
1969         default:
1970             return -1;
1971     }
1972 
1973 ACCESS_CONTROL_REQ:
1974     NEXT_CHAR();
1975     switch (ch) {
1976         case 'U':
1977             if (last) {
1978                 return -1;
1979             }
1980             goto ACCESS_CONTROL_REQU;
1981         case 'u':
1982             if (last) {
1983                 return -1;
1984             }
1985             goto ACCESS_CONTROL_REQU;
1986         default:
1987             return -1;
1988     }
1989 
1990 ACCESS_CONTROL_REQU:
1991     NEXT_CHAR();
1992     switch (ch) {
1993         case 'E':
1994             if (last) {
1995                 return -1;
1996             }
1997             goto ACCESS_CONTROL_REQUE;
1998         case 'e':
1999             if (last) {
2000                 return -1;
2001             }
2002             goto ACCESS_CONTROL_REQUE;
2003         default:
2004             return -1;
2005     }
2006 
2007 ACCESS_CONTROL_REQUE:
2008     NEXT_CHAR();
2009     switch (ch) {
2010         case 'S':
2011             if (last) {
2012                 return -1;
2013             }
2014             goto ACCESS_CONTROL_REQUES;
2015         case 's':
2016             if (last) {
2017                 return -1;
2018             }
2019             goto ACCESS_CONTROL_REQUES;
2020         default:
2021             return -1;
2022     }
2023 
2024 ACCESS_CONTROL_REQUES:
2025     NEXT_CHAR();
2026     switch (ch) {
2027         case 'T':
2028             if (last) {
2029                 return -1;
2030             }
2031             goto ACCESS_CONTROL_REQUEST;
2032         case 't':
2033             if (last) {
2034                 return -1;
2035             }
2036             goto ACCESS_CONTROL_REQUEST;
2037         default:
2038             return -1;
2039     }
2040 
2041 ACCESS_CONTROL_REQUEST:
2042     NEXT_CHAR();
2043     switch (ch) {
2044         case '-':
2045             if (last) {
2046                 return -1;
2047             }
2048             goto ACCESS_CONTROL_REQUEST_;
2049         default:
2050             return -1;
2051     }
2052 
2053 ACCESS_CONTROL_REQUEST_:
2054     NEXT_CHAR();
2055     switch (ch) {
2056         case 'H':
2057             if (last) {
2058                 return -1;
2059             }
2060             goto ACCESS_CONTROL_REQUEST_H;
2061         case 'h':
2062             if (last) {
2063                 return -1;
2064             }
2065             goto ACCESS_CONTROL_REQUEST_H;
2066         case 'M':
2067             if (last) {
2068                 return -1;
2069             }
2070             goto ACCESS_CONTROL_REQUEST_M;
2071         case 'm':
2072             if (last) {
2073                 return -1;
2074             }
2075             goto ACCESS_CONTROL_REQUEST_M;
2076         default:
2077             return -1;
2078     }
2079 
2080 ACCESS_CONTROL_REQUEST_H:
2081     NEXT_CHAR();
2082     switch (ch) {
2083         case 'E':
2084             if (last) {
2085                 return -1;
2086             }
2087             goto ACCESS_CONTROL_REQUEST_HE;
2088         case 'e':
2089             if (last) {
2090                 return -1;
2091             }
2092             goto ACCESS_CONTROL_REQUEST_HE;
2093         default:
2094             return -1;
2095     }
2096 
2097 ACCESS_CONTROL_REQUEST_HE:
2098     NEXT_CHAR();
2099     switch (ch) {
2100         case 'A':
2101             if (last) {
2102                 return -1;
2103             }
2104             goto ACCESS_CONTROL_REQUEST_HEA;
2105         case 'a':
2106             if (last) {
2107                 return -1;
2108             }
2109             goto ACCESS_CONTROL_REQUEST_HEA;
2110         default:
2111             return -1;
2112     }
2113 
2114 ACCESS_CONTROL_REQUEST_HEA:
2115     NEXT_CHAR();
2116     switch (ch) {
2117         case 'D':
2118             if (last) {
2119                 return -1;
2120             }
2121             goto ACCESS_CONTROL_REQUEST_HEAD;
2122         case 'd':
2123             if (last) {
2124                 return -1;
2125             }
2126             goto ACCESS_CONTROL_REQUEST_HEAD;
2127         default:
2128             return -1;
2129     }
2130 
2131 ACCESS_CONTROL_REQUEST_HEAD:
2132     NEXT_CHAR();
2133     switch (ch) {
2134         case 'E':
2135             if (last) {
2136                 return -1;
2137             }
2138             goto ACCESS_CONTROL_REQUEST_HEADE;
2139         case 'e':
2140             if (last) {
2141                 return -1;
2142             }
2143             goto ACCESS_CONTROL_REQUEST_HEADE;
2144         default:
2145             return -1;
2146     }
2147 
2148 ACCESS_CONTROL_REQUEST_HEADE:
2149     NEXT_CHAR();
2150     switch (ch) {
2151         case 'R':
2152             if (last) {
2153                 return -1;
2154             }
2155             goto ACCESS_CONTROL_REQUEST_HEADER;
2156         case 'r':
2157             if (last) {
2158                 return -1;
2159             }
2160             goto ACCESS_CONTROL_REQUEST_HEADER;
2161         default:
2162             return -1;
2163     }
2164 
2165 ACCESS_CONTROL_REQUEST_HEADER:
2166     NEXT_CHAR();
2167     switch (ch) {
2168         case 'S':
2169             if (last) {
2170                 return 11;
2171             }
2172             goto ACCESS_CONTROL_REQUEST_HEADERS;
2173         case 's':
2174             if (last) {
2175                 return 11;
2176             }
2177             goto ACCESS_CONTROL_REQUEST_HEADERS;
2178         default:
2179             return -1;
2180     }
2181 
2182 ACCESS_CONTROL_REQUEST_M:
2183     NEXT_CHAR();
2184     switch (ch) {
2185         case 'E':
2186             if (last) {
2187                 return -1;
2188             }
2189             goto ACCESS_CONTROL_REQUEST_ME;
2190         case 'e':
2191             if (last) {
2192                 return -1;
2193             }
2194             goto ACCESS_CONTROL_REQUEST_ME;
2195         default:
2196             return -1;
2197     }
2198 
2199 ACCESS_CONTROL_REQUEST_ME:
2200     NEXT_CHAR();
2201     switch (ch) {
2202         case 'T':
2203             if (last) {
2204                 return -1;
2205             }
2206             goto ACCESS_CONTROL_REQUEST_MET;
2207         case 't':
2208             if (last) {
2209                 return -1;
2210             }
2211             goto ACCESS_CONTROL_REQUEST_MET;
2212         default:
2213             return -1;
2214     }
2215 
2216 ACCESS_CONTROL_REQUEST_MET:
2217     NEXT_CHAR();
2218     switch (ch) {
2219         case 'H':
2220             if (last) {
2221                 return -1;
2222             }
2223             goto ACCESS_CONTROL_REQUEST_METH;
2224         case 'h':
2225             if (last) {
2226                 return -1;
2227             }
2228             goto ACCESS_CONTROL_REQUEST_METH;
2229         default:
2230             return -1;
2231     }
2232 
2233 ACCESS_CONTROL_REQUEST_METH:
2234     NEXT_CHAR();
2235     switch (ch) {
2236         case 'O':
2237             if (last) {
2238                 return -1;
2239             }
2240             goto ACCESS_CONTROL_REQUEST_METHO;
2241         case 'o':
2242             if (last) {
2243                 return -1;
2244             }
2245             goto ACCESS_CONTROL_REQUEST_METHO;
2246         default:
2247             return -1;
2248     }
2249 
2250 ACCESS_CONTROL_REQUEST_METHO:
2251     NEXT_CHAR();
2252     switch (ch) {
2253         case 'D':
2254             if (last) {
2255                 return 12;
2256             }
2257             goto ACCESS_CONTROL_REQUEST_METHOD;
2258         case 'd':
2259             if (last) {
2260                 return 12;
2261             }
2262             goto ACCESS_CONTROL_REQUEST_METHOD;
2263         default:
2264             return -1;
2265     }
2266 
2267 AG:
2268     NEXT_CHAR();
2269     switch (ch) {
2270         case 'E':
2271             if (last) {
2272                 return 13;
2273             }
2274             goto AGE;
2275         case 'e':
2276             if (last) {
2277                 return 13;
2278             }
2279             goto AGE;
2280         default:
2281             return -1;
2282     }
2283 
2284 AL:
2285     NEXT_CHAR();
2286     switch (ch) {
2287         case 'L':
2288             if (last) {
2289                 return -1;
2290             }
2291             goto ALL;
2292         case 'l':
2293             if (last) {
2294                 return -1;
2295             }
2296             goto ALL;
2297         default:
2298             return -1;
2299     }
2300 
2301 ALL:
2302     NEXT_CHAR();
2303     switch (ch) {
2304         case 'O':
2305             if (last) {
2306                 return -1;
2307             }
2308             goto ALLO;
2309         case 'o':
2310             if (last) {
2311                 return -1;
2312             }
2313             goto ALLO;
2314         default:
2315             return -1;
2316     }
2317 
2318 ALLO:
2319     NEXT_CHAR();
2320     switch (ch) {
2321         case 'W':
2322             if (last) {
2323                 return 14;
2324             }
2325             goto ALLOW;
2326         case 'w':
2327             if (last) {
2328                 return 14;
2329             }
2330             goto ALLOW;
2331         default:
2332             return -1;
2333     }
2334 
2335 AU:
2336     NEXT_CHAR();
2337     switch (ch) {
2338         case 'T':
2339             if (last) {
2340                 return -1;
2341             }
2342             goto AUT;
2343         case 't':
2344             if (last) {
2345                 return -1;
2346             }
2347             goto AUT;
2348         default:
2349             return -1;
2350     }
2351 
2352 AUT:
2353     NEXT_CHAR();
2354     switch (ch) {
2355         case 'H':
2356             if (last) {
2357                 return -1;
2358             }
2359             goto AUTH;
2360         case 'h':
2361             if (last) {
2362                 return -1;
2363             }
2364             goto AUTH;
2365         default:
2366             return -1;
2367     }
2368 
2369 AUTH:
2370     NEXT_CHAR();
2371     switch (ch) {
2372         case 'O':
2373             if (last) {
2374                 return -1;
2375             }
2376             goto AUTHO;
2377         case 'o':
2378             if (last) {
2379                 return -1;
2380             }
2381             goto AUTHO;
2382         default:
2383             return -1;
2384     }
2385 
2386 AUTHO:
2387     NEXT_CHAR();
2388     switch (ch) {
2389         case 'R':
2390             if (last) {
2391                 return -1;
2392             }
2393             goto AUTHOR;
2394         case 'r':
2395             if (last) {
2396                 return -1;
2397             }
2398             goto AUTHOR;
2399         default:
2400             return -1;
2401     }
2402 
2403 AUTHOR:
2404     NEXT_CHAR();
2405     switch (ch) {
2406         case 'I':
2407             if (last) {
2408                 return -1;
2409             }
2410             goto AUTHORI;
2411         case 'i':
2412             if (last) {
2413                 return -1;
2414             }
2415             goto AUTHORI;
2416         default:
2417             return -1;
2418     }
2419 
2420 AUTHORI:
2421     NEXT_CHAR();
2422     switch (ch) {
2423         case 'Z':
2424             if (last) {
2425                 return -1;
2426             }
2427             goto AUTHORIZ;
2428         case 'z':
2429             if (last) {
2430                 return -1;
2431             }
2432             goto AUTHORIZ;
2433         default:
2434             return -1;
2435     }
2436 
2437 AUTHORIZ:
2438     NEXT_CHAR();
2439     switch (ch) {
2440         case 'A':
2441             if (last) {
2442                 return -1;
2443             }
2444             goto AUTHORIZA;
2445         case 'a':
2446             if (last) {
2447                 return -1;
2448             }
2449             goto AUTHORIZA;
2450         default:
2451             return -1;
2452     }
2453 
2454 AUTHORIZA:
2455     NEXT_CHAR();
2456     switch (ch) {
2457         case 'T':
2458             if (last) {
2459                 return -1;
2460             }
2461             goto AUTHORIZAT;
2462         case 't':
2463             if (last) {
2464                 return -1;
2465             }
2466             goto AUTHORIZAT;
2467         default:
2468             return -1;
2469     }
2470 
2471 AUTHORIZAT:
2472     NEXT_CHAR();
2473     switch (ch) {
2474         case 'I':
2475             if (last) {
2476                 return -1;
2477             }
2478             goto AUTHORIZATI;
2479         case 'i':
2480             if (last) {
2481                 return -1;
2482             }
2483             goto AUTHORIZATI;
2484         default:
2485             return -1;
2486     }
2487 
2488 AUTHORIZATI:
2489     NEXT_CHAR();
2490     switch (ch) {
2491         case 'O':
2492             if (last) {
2493                 return -1;
2494             }
2495             goto AUTHORIZATIO;
2496         case 'o':
2497             if (last) {
2498                 return -1;
2499             }
2500             goto AUTHORIZATIO;
2501         default:
2502             return -1;
2503     }
2504 
2505 AUTHORIZATIO:
2506     NEXT_CHAR();
2507     switch (ch) {
2508         case 'N':
2509             if (last) {
2510                 return 15;
2511             }
2512             goto AUTHORIZATION;
2513         case 'n':
2514             if (last) {
2515                 return 15;
2516             }
2517             goto AUTHORIZATION;
2518         default:
2519             return -1;
2520     }
2521 
2522 C:
2523     NEXT_CHAR();
2524     switch (ch) {
2525         case 'A':
2526             if (last) {
2527                 return -1;
2528             }
2529             goto CA;
2530         case 'a':
2531             if (last) {
2532                 return -1;
2533             }
2534             goto CA;
2535         case 'O':
2536             if (last) {
2537                 return -1;
2538             }
2539             goto CO;
2540         case 'o':
2541             if (last) {
2542                 return -1;
2543             }
2544             goto CO;
2545         default:
2546             return -1;
2547     }
2548 
2549 CA:
2550     NEXT_CHAR();
2551     switch (ch) {
2552         case 'C':
2553             if (last) {
2554                 return -1;
2555             }
2556             goto CAC;
2557         case 'c':
2558             if (last) {
2559                 return -1;
2560             }
2561             goto CAC;
2562         default:
2563             return -1;
2564     }
2565 
2566 CAC:
2567     NEXT_CHAR();
2568     switch (ch) {
2569         case 'H':
2570             if (last) {
2571                 return -1;
2572             }
2573             goto CACH;
2574         case 'h':
2575             if (last) {
2576                 return -1;
2577             }
2578             goto CACH;
2579         default:
2580             return -1;
2581     }
2582 
2583 CACH:
2584     NEXT_CHAR();
2585     switch (ch) {
2586         case 'E':
2587             if (last) {
2588                 return -1;
2589             }
2590             goto CACHE;
2591         case 'e':
2592             if (last) {
2593                 return -1;
2594             }
2595             goto CACHE;
2596         default:
2597             return -1;
2598     }
2599 
2600 CACHE:
2601     NEXT_CHAR();
2602     switch (ch) {
2603         case '-':
2604             if (last) {
2605                 return -1;
2606             }
2607             goto CACHE_;
2608         default:
2609             return -1;
2610     }
2611 
2612 CACHE_:
2613     NEXT_CHAR();
2614     switch (ch) {
2615         case 'C':
2616             if (last) {
2617                 return -1;
2618             }
2619             goto CACHE_C;
2620         case 'c':
2621             if (last) {
2622                 return -1;
2623             }
2624             goto CACHE_C;
2625         default:
2626             return -1;
2627     }
2628 
2629 CACHE_C:
2630     NEXT_CHAR();
2631     switch (ch) {
2632         case 'O':
2633             if (last) {
2634                 return -1;
2635             }
2636             goto CACHE_CO;
2637         case 'o':
2638             if (last) {
2639                 return -1;
2640             }
2641             goto CACHE_CO;
2642         default:
2643             return -1;
2644     }
2645 
2646 CACHE_CO:
2647     NEXT_CHAR();
2648     switch (ch) {
2649         case 'N':
2650             if (last) {
2651                 return -1;
2652             }
2653             goto CACHE_CON;
2654         case 'n':
2655             if (last) {
2656                 return -1;
2657             }
2658             goto CACHE_CON;
2659         default:
2660             return -1;
2661     }
2662 
2663 CACHE_CON:
2664     NEXT_CHAR();
2665     switch (ch) {
2666         case 'T':
2667             if (last) {
2668                 return -1;
2669             }
2670             goto CACHE_CONT;
2671         case 't':
2672             if (last) {
2673                 return -1;
2674             }
2675             goto CACHE_CONT;
2676         default:
2677             return -1;
2678     }
2679 
2680 CACHE_CONT:
2681     NEXT_CHAR();
2682     switch (ch) {
2683         case 'R':
2684             if (last) {
2685                 return -1;
2686             }
2687             goto CACHE_CONTR;
2688         case 'r':
2689             if (last) {
2690                 return -1;
2691             }
2692             goto CACHE_CONTR;
2693         default:
2694             return -1;
2695     }
2696 
2697 CACHE_CONTR:
2698     NEXT_CHAR();
2699     switch (ch) {
2700         case 'O':
2701             if (last) {
2702                 return -1;
2703             }
2704             goto CACHE_CONTRO;
2705         case 'o':
2706             if (last) {
2707                 return -1;
2708             }
2709             goto CACHE_CONTRO;
2710         default:
2711             return -1;
2712     }
2713 
2714 CACHE_CONTRO:
2715     NEXT_CHAR();
2716     switch (ch) {
2717         case 'L':
2718             if (last) {
2719                 return 16;
2720             }
2721             goto CACHE_CONTROL;
2722         case 'l':
2723             if (last) {
2724                 return 16;
2725             }
2726             goto CACHE_CONTROL;
2727         default:
2728             return -1;
2729     }
2730 
2731 CO:
2732     NEXT_CHAR();
2733     switch (ch) {
2734         case 'N':
2735             if (last) {
2736                 return -1;
2737             }
2738             goto CON;
2739         case 'n':
2740             if (last) {
2741                 return -1;
2742             }
2743             goto CON;
2744         case 'O':
2745             if (last) {
2746                 return -1;
2747             }
2748             goto COO;
2749         case 'o':
2750             if (last) {
2751                 return -1;
2752             }
2753             goto COO;
2754         default:
2755             return -1;
2756     }
2757 
2758 CON:
2759     NEXT_CHAR();
2760     switch (ch) {
2761         case 'N':
2762             if (last) {
2763                 return -1;
2764             }
2765             goto CONN;
2766         case 'n':
2767             if (last) {
2768                 return -1;
2769             }
2770             goto CONN;
2771         case 'T':
2772             if (last) {
2773                 return -1;
2774             }
2775             goto CONT;
2776         case 't':
2777             if (last) {
2778                 return -1;
2779             }
2780             goto CONT;
2781         default:
2782             return -1;
2783     }
2784 
2785 CONN:
2786     NEXT_CHAR();
2787     switch (ch) {
2788         case 'E':
2789             if (last) {
2790                 return -1;
2791             }
2792             goto CONNE;
2793         case 'e':
2794             if (last) {
2795                 return -1;
2796             }
2797             goto CONNE;
2798         default:
2799             return -1;
2800     }
2801 
2802 CONNE:
2803     NEXT_CHAR();
2804     switch (ch) {
2805         case 'C':
2806             if (last) {
2807                 return -1;
2808             }
2809             goto CONNEC;
2810         case 'c':
2811             if (last) {
2812                 return -1;
2813             }
2814             goto CONNEC;
2815         default:
2816             return -1;
2817     }
2818 
2819 CONNEC:
2820     NEXT_CHAR();
2821     switch (ch) {
2822         case 'T':
2823             if (last) {
2824                 return -1;
2825             }
2826             goto CONNECT;
2827         case 't':
2828             if (last) {
2829                 return -1;
2830             }
2831             goto CONNECT;
2832         default:
2833             return -1;
2834     }
2835 
2836 CONNECT:
2837     NEXT_CHAR();
2838     switch (ch) {
2839         case 'I':
2840             if (last) {
2841                 return -1;
2842             }
2843             goto CONNECTI;
2844         case 'i':
2845             if (last) {
2846                 return -1;
2847             }
2848             goto CONNECTI;
2849         default:
2850             return -1;
2851     }
2852 
2853 CONNECTI:
2854     NEXT_CHAR();
2855     switch (ch) {
2856         case 'O':
2857             if (last) {
2858                 return -1;
2859             }
2860             goto CONNECTIO;
2861         case 'o':
2862             if (last) {
2863                 return -1;
2864             }
2865             goto CONNECTIO;
2866         default:
2867             return -1;
2868     }
2869 
2870 CONNECTIO:
2871     NEXT_CHAR();
2872     switch (ch) {
2873         case 'N':
2874             if (last) {
2875                 return 17;
2876             }
2877             goto CONNECTION;
2878         case 'n':
2879             if (last) {
2880                 return 17;
2881             }
2882             goto CONNECTION;
2883         default:
2884             return -1;
2885     }
2886 
2887 CONT:
2888     NEXT_CHAR();
2889     switch (ch) {
2890         case 'E':
2891             if (last) {
2892                 return -1;
2893             }
2894             goto CONTE;
2895         case 'e':
2896             if (last) {
2897                 return -1;
2898             }
2899             goto CONTE;
2900         default:
2901             return -1;
2902     }
2903 
2904 CONTE:
2905     NEXT_CHAR();
2906     switch (ch) {
2907         case 'N':
2908             if (last) {
2909                 return -1;
2910             }
2911             goto CONTEN;
2912         case 'n':
2913             if (last) {
2914                 return -1;
2915             }
2916             goto CONTEN;
2917         default:
2918             return -1;
2919     }
2920 
2921 CONTEN:
2922     NEXT_CHAR();
2923     switch (ch) {
2924         case 'T':
2925             if (last) {
2926                 return -1;
2927             }
2928             goto CONTENT;
2929         case 't':
2930             if (last) {
2931                 return -1;
2932             }
2933             goto CONTENT;
2934         default:
2935             return -1;
2936     }
2937 
2938 CONTENT:
2939     NEXT_CHAR();
2940     switch (ch) {
2941         case '-':
2942             if (last) {
2943                 return -1;
2944             }
2945             goto CONTENT_;
2946         default:
2947             return -1;
2948     }
2949 
2950 CONTENT_:
2951     NEXT_CHAR();
2952     switch (ch) {
2953         case 'D':
2954             if (last) {
2955                 return -1;
2956             }
2957             goto CONTENT_D;
2958         case 'd':
2959             if (last) {
2960                 return -1;
2961             }
2962             goto CONTENT_D;
2963         case 'E':
2964             if (last) {
2965                 return -1;
2966             }
2967             goto CONTENT_E;
2968         case 'e':
2969             if (last) {
2970                 return -1;
2971             }
2972             goto CONTENT_E;
2973         case 'L':
2974             if (last) {
2975                 return -1;
2976             }
2977             goto CONTENT_L;
2978         case 'l':
2979             if (last) {
2980                 return -1;
2981             }
2982             goto CONTENT_L;
2983         case 'M':
2984             if (last) {
2985                 return -1;
2986             }
2987             goto CONTENT_M;
2988         case 'm':
2989             if (last) {
2990                 return -1;
2991             }
2992             goto CONTENT_M;
2993         case 'R':
2994             if (last) {
2995                 return -1;
2996             }
2997             goto CONTENT_R;
2998         case 'r':
2999             if (last) {
3000                 return -1;
3001             }
3002             goto CONTENT_R;
3003         case 'T':
3004             if (last) {
3005                 return -1;
3006             }
3007             goto CONTENT_T;
3008         case 't':
3009             if (last) {
3010                 return -1;
3011             }
3012             goto CONTENT_T;
3013         default:
3014             return -1;
3015     }
3016 
3017 CONTENT_D:
3018     NEXT_CHAR();
3019     switch (ch) {
3020         case 'I':
3021             if (last) {
3022                 return -1;
3023             }
3024             goto CONTENT_DI;
3025         case 'i':
3026             if (last) {
3027                 return -1;
3028             }
3029             goto CONTENT_DI;
3030         default:
3031             return -1;
3032     }
3033 
3034 CONTENT_DI:
3035     NEXT_CHAR();
3036     switch (ch) {
3037         case 'S':
3038             if (last) {
3039                 return -1;
3040             }
3041             goto CONTENT_DIS;
3042         case 's':
3043             if (last) {
3044                 return -1;
3045             }
3046             goto CONTENT_DIS;
3047         default:
3048             return -1;
3049     }
3050 
3051 CONTENT_DIS:
3052     NEXT_CHAR();
3053     switch (ch) {
3054         case 'P':
3055             if (last) {
3056                 return -1;
3057             }
3058             goto CONTENT_DISP;
3059         case 'p':
3060             if (last) {
3061                 return -1;
3062             }
3063             goto CONTENT_DISP;
3064         default:
3065             return -1;
3066     }
3067 
3068 CONTENT_DISP:
3069     NEXT_CHAR();
3070     switch (ch) {
3071         case 'O':
3072             if (last) {
3073                 return -1;
3074             }
3075             goto CONTENT_DISPO;
3076         case 'o':
3077             if (last) {
3078                 return -1;
3079             }
3080             goto CONTENT_DISPO;
3081         default:
3082             return -1;
3083     }
3084 
3085 CONTENT_DISPO:
3086     NEXT_CHAR();
3087     switch (ch) {
3088         case 'S':
3089             if (last) {
3090                 return -1;
3091             }
3092             goto CONTENT_DISPOS;
3093         case 's':
3094             if (last) {
3095                 return -1;
3096             }
3097             goto CONTENT_DISPOS;
3098         default:
3099             return -1;
3100     }
3101 
3102 CONTENT_DISPOS:
3103     NEXT_CHAR();
3104     switch (ch) {
3105         case 'I':
3106             if (last) {
3107                 return -1;
3108             }
3109             goto CONTENT_DISPOSI;
3110         case 'i':
3111             if (last) {
3112                 return -1;
3113             }
3114             goto CONTENT_DISPOSI;
3115         default:
3116             return -1;
3117     }
3118 
3119 CONTENT_DISPOSI:
3120     NEXT_CHAR();
3121     switch (ch) {
3122         case 'T':
3123             if (last) {
3124                 return -1;
3125             }
3126             goto CONTENT_DISPOSIT;
3127         case 't':
3128             if (last) {
3129                 return -1;
3130             }
3131             goto CONTENT_DISPOSIT;
3132         default:
3133             return -1;
3134     }
3135 
3136 CONTENT_DISPOSIT:
3137     NEXT_CHAR();
3138     switch (ch) {
3139         case 'I':
3140             if (last) {
3141                 return -1;
3142             }
3143             goto CONTENT_DISPOSITI;
3144         case 'i':
3145             if (last) {
3146                 return -1;
3147             }
3148             goto CONTENT_DISPOSITI;
3149         default:
3150             return -1;
3151     }
3152 
3153 CONTENT_DISPOSITI:
3154     NEXT_CHAR();
3155     switch (ch) {
3156         case 'O':
3157             if (last) {
3158                 return -1;
3159             }
3160             goto CONTENT_DISPOSITIO;
3161         case 'o':
3162             if (last) {
3163                 return -1;
3164             }
3165             goto CONTENT_DISPOSITIO;
3166         default:
3167             return -1;
3168     }
3169 
3170 CONTENT_DISPOSITIO:
3171     NEXT_CHAR();
3172     switch (ch) {
3173         case 'N':
3174             if (last) {
3175                 return 18;
3176             }
3177             goto CONTENT_DISPOSITION;
3178         case 'n':
3179             if (last) {
3180                 return 18;
3181             }
3182             goto CONTENT_DISPOSITION;
3183         default:
3184             return -1;
3185     }
3186 
3187 CONTENT_E:
3188     NEXT_CHAR();
3189     switch (ch) {
3190         case 'N':
3191             if (last) {
3192                 return -1;
3193             }
3194             goto CONTENT_EN;
3195         case 'n':
3196             if (last) {
3197                 return -1;
3198             }
3199             goto CONTENT_EN;
3200         default:
3201             return -1;
3202     }
3203 
3204 CONTENT_EN:
3205     NEXT_CHAR();
3206     switch (ch) {
3207         case 'C':
3208             if (last) {
3209                 return -1;
3210             }
3211             goto CONTENT_ENC;
3212         case 'c':
3213             if (last) {
3214                 return -1;
3215             }
3216             goto CONTENT_ENC;
3217         default:
3218             return -1;
3219     }
3220 
3221 CONTENT_ENC:
3222     NEXT_CHAR();
3223     switch (ch) {
3224         case 'O':
3225             if (last) {
3226                 return -1;
3227             }
3228             goto CONTENT_ENCO;
3229         case 'o':
3230             if (last) {
3231                 return -1;
3232             }
3233             goto CONTENT_ENCO;
3234         default:
3235             return -1;
3236     }
3237 
3238 CONTENT_ENCO:
3239     NEXT_CHAR();
3240     switch (ch) {
3241         case 'D':
3242             if (last) {
3243                 return -1;
3244             }
3245             goto CONTENT_ENCOD;
3246         case 'd':
3247             if (last) {
3248                 return -1;
3249             }
3250             goto CONTENT_ENCOD;
3251         default:
3252             return -1;
3253     }
3254 
3255 CONTENT_ENCOD:
3256     NEXT_CHAR();
3257     switch (ch) {
3258         case 'I':
3259             if (last) {
3260                 return -1;
3261             }
3262             goto CONTENT_ENCODI;
3263         case 'i':
3264             if (last) {
3265                 return -1;
3266             }
3267             goto CONTENT_ENCODI;
3268         default:
3269             return -1;
3270     }
3271 
3272 CONTENT_ENCODI:
3273     NEXT_CHAR();
3274     switch (ch) {
3275         case 'N':
3276             if (last) {
3277                 return -1;
3278             }
3279             goto CONTENT_ENCODIN;
3280         case 'n':
3281             if (last) {
3282                 return -1;
3283             }
3284             goto CONTENT_ENCODIN;
3285         default:
3286             return -1;
3287     }
3288 
3289 CONTENT_ENCODIN:
3290     NEXT_CHAR();
3291     switch (ch) {
3292         case 'G':
3293             if (last) {
3294                 return 19;
3295             }
3296             goto CONTENT_ENCODING;
3297         case 'g':
3298             if (last) {
3299                 return 19;
3300             }
3301             goto CONTENT_ENCODING;
3302         default:
3303             return -1;
3304     }
3305 
3306 CONTENT_L:
3307     NEXT_CHAR();
3308     switch (ch) {
3309         case 'A':
3310             if (last) {
3311                 return -1;
3312             }
3313             goto CONTENT_LA;
3314         case 'a':
3315             if (last) {
3316                 return -1;
3317             }
3318             goto CONTENT_LA;
3319         case 'E':
3320             if (last) {
3321                 return -1;
3322             }
3323             goto CONTENT_LE;
3324         case 'e':
3325             if (last) {
3326                 return -1;
3327             }
3328             goto CONTENT_LE;
3329         case 'O':
3330             if (last) {
3331                 return -1;
3332             }
3333             goto CONTENT_LO;
3334         case 'o':
3335             if (last) {
3336                 return -1;
3337             }
3338             goto CONTENT_LO;
3339         default:
3340             return -1;
3341     }
3342 
3343 CONTENT_LA:
3344     NEXT_CHAR();
3345     switch (ch) {
3346         case 'N':
3347             if (last) {
3348                 return -1;
3349             }
3350             goto CONTENT_LAN;
3351         case 'n':
3352             if (last) {
3353                 return -1;
3354             }
3355             goto CONTENT_LAN;
3356         default:
3357             return -1;
3358     }
3359 
3360 CONTENT_LAN:
3361     NEXT_CHAR();
3362     switch (ch) {
3363         case 'G':
3364             if (last) {
3365                 return -1;
3366             }
3367             goto CONTENT_LANG;
3368         case 'g':
3369             if (last) {
3370                 return -1;
3371             }
3372             goto CONTENT_LANG;
3373         default:
3374             return -1;
3375     }
3376 
3377 CONTENT_LANG:
3378     NEXT_CHAR();
3379     switch (ch) {
3380         case 'U':
3381             if (last) {
3382                 return -1;
3383             }
3384             goto CONTENT_LANGU;
3385         case 'u':
3386             if (last) {
3387                 return -1;
3388             }
3389             goto CONTENT_LANGU;
3390         default:
3391             return -1;
3392     }
3393 
3394 CONTENT_LANGU:
3395     NEXT_CHAR();
3396     switch (ch) {
3397         case 'A':
3398             if (last) {
3399                 return -1;
3400             }
3401             goto CONTENT_LANGUA;
3402         case 'a':
3403             if (last) {
3404                 return -1;
3405             }
3406             goto CONTENT_LANGUA;
3407         default:
3408             return -1;
3409     }
3410 
3411 CONTENT_LANGUA:
3412     NEXT_CHAR();
3413     switch (ch) {
3414         case 'G':
3415             if (last) {
3416                 return -1;
3417             }
3418             goto CONTENT_LANGUAG;
3419         case 'g':
3420             if (last) {
3421                 return -1;
3422             }
3423             goto CONTENT_LANGUAG;
3424         default:
3425             return -1;
3426     }
3427 
3428 CONTENT_LANGUAG:
3429     NEXT_CHAR();
3430     switch (ch) {
3431         case 'E':
3432             if (last) {
3433                 return 20;
3434             }
3435             goto CONTENT_LANGUAGE;
3436         case 'e':
3437             if (last) {
3438                 return 20;
3439             }
3440             goto CONTENT_LANGUAGE;
3441         default:
3442             return -1;
3443     }
3444 
3445 CONTENT_LE:
3446     NEXT_CHAR();
3447     switch (ch) {
3448         case 'N':
3449             if (last) {
3450                 return -1;
3451             }
3452             goto CONTENT_LEN;
3453         case 'n':
3454             if (last) {
3455                 return -1;
3456             }
3457             goto CONTENT_LEN;
3458         default:
3459             return -1;
3460     }
3461 
3462 CONTENT_LEN:
3463     NEXT_CHAR();
3464     switch (ch) {
3465         case 'G':
3466             if (last) {
3467                 return -1;
3468             }
3469             goto CONTENT_LENG;
3470         case 'g':
3471             if (last) {
3472                 return -1;
3473             }
3474             goto CONTENT_LENG;
3475         default:
3476             return -1;
3477     }
3478 
3479 CONTENT_LENG:
3480     NEXT_CHAR();
3481     switch (ch) {
3482         case 'T':
3483             if (last) {
3484                 return -1;
3485             }
3486             goto CONTENT_LENGT;
3487         case 't':
3488             if (last) {
3489                 return -1;
3490             }
3491             goto CONTENT_LENGT;
3492         default:
3493             return -1;
3494     }
3495 
3496 CONTENT_LENGT:
3497     NEXT_CHAR();
3498     switch (ch) {
3499         case 'H':
3500             if (last) {
3501                 return 21;
3502             }
3503             goto CONTENT_LENGTH;
3504         case 'h':
3505             if (last) {
3506                 return 21;
3507             }
3508             goto CONTENT_LENGTH;
3509         default:
3510             return -1;
3511     }
3512 
3513 CONTENT_LO:
3514     NEXT_CHAR();
3515     switch (ch) {
3516         case 'C':
3517             if (last) {
3518                 return -1;
3519             }
3520             goto CONTENT_LOC;
3521         case 'c':
3522             if (last) {
3523                 return -1;
3524             }
3525             goto CONTENT_LOC;
3526         default:
3527             return -1;
3528     }
3529 
3530 CONTENT_LOC:
3531     NEXT_CHAR();
3532     switch (ch) {
3533         case 'A':
3534             if (last) {
3535                 return -1;
3536             }
3537             goto CONTENT_LOCA;
3538         case 'a':
3539             if (last) {
3540                 return -1;
3541             }
3542             goto CONTENT_LOCA;
3543         default:
3544             return -1;
3545     }
3546 
3547 CONTENT_LOCA:
3548     NEXT_CHAR();
3549     switch (ch) {
3550         case 'T':
3551             if (last) {
3552                 return -1;
3553             }
3554             goto CONTENT_LOCAT;
3555         case 't':
3556             if (last) {
3557                 return -1;
3558             }
3559             goto CONTENT_LOCAT;
3560         default:
3561             return -1;
3562     }
3563 
3564 CONTENT_LOCAT:
3565     NEXT_CHAR();
3566     switch (ch) {
3567         case 'I':
3568             if (last) {
3569                 return -1;
3570             }
3571             goto CONTENT_LOCATI;
3572         case 'i':
3573             if (last) {
3574                 return -1;
3575             }
3576             goto CONTENT_LOCATI;
3577         default:
3578             return -1;
3579     }
3580 
3581 CONTENT_LOCATI:
3582     NEXT_CHAR();
3583     switch (ch) {
3584         case 'O':
3585             if (last) {
3586                 return -1;
3587             }
3588             goto CONTENT_LOCATIO;
3589         case 'o':
3590             if (last) {
3591                 return -1;
3592             }
3593             goto CONTENT_LOCATIO;
3594         default:
3595             return -1;
3596     }
3597 
3598 CONTENT_LOCATIO:
3599     NEXT_CHAR();
3600     switch (ch) {
3601         case 'N':
3602             if (last) {
3603                 return 22;
3604             }
3605             goto CONTENT_LOCATION;
3606         case 'n':
3607             if (last) {
3608                 return 22;
3609             }
3610             goto CONTENT_LOCATION;
3611         default:
3612             return -1;
3613     }
3614 
3615 CONTENT_M:
3616     NEXT_CHAR();
3617     switch (ch) {
3618         case 'D':
3619             if (last) {
3620                 return -1;
3621             }
3622             goto CONTENT_MD;
3623         case 'd':
3624             if (last) {
3625                 return -1;
3626             }
3627             goto CONTENT_MD;
3628         default:
3629             return -1;
3630     }
3631 
3632 CONTENT_MD:
3633     NEXT_CHAR();
3634     switch (ch) {
3635         case '5':
3636             if (last) {
3637                 return 23;
3638             }
3639             goto CONTENT_MD5;
3640         default:
3641             return -1;
3642     }
3643 
3644 CONTENT_R:
3645     NEXT_CHAR();
3646     switch (ch) {
3647         case 'A':
3648             if (last) {
3649                 return -1;
3650             }
3651             goto CONTENT_RA;
3652         case 'a':
3653             if (last) {
3654                 return -1;
3655             }
3656             goto CONTENT_RA;
3657         default:
3658             return -1;
3659     }
3660 
3661 CONTENT_RA:
3662     NEXT_CHAR();
3663     switch (ch) {
3664         case 'N':
3665             if (last) {
3666                 return -1;
3667             }
3668             goto CONTENT_RAN;
3669         case 'n':
3670             if (last) {
3671                 return -1;
3672             }
3673             goto CONTENT_RAN;
3674         default:
3675             return -1;
3676     }
3677 
3678 CONTENT_RAN:
3679     NEXT_CHAR();
3680     switch (ch) {
3681         case 'G':
3682             if (last) {
3683                 return -1;
3684             }
3685             goto CONTENT_RANG;
3686         case 'g':
3687             if (last) {
3688                 return -1;
3689             }
3690             goto CONTENT_RANG;
3691         default:
3692             return -1;
3693     }
3694 
3695 CONTENT_RANG:
3696     NEXT_CHAR();
3697     switch (ch) {
3698         case 'E':
3699             if (last) {
3700                 return 24;
3701             }
3702             goto CONTENT_RANGE;
3703         case 'e':
3704             if (last) {
3705                 return 24;
3706             }
3707             goto CONTENT_RANGE;
3708         default:
3709             return -1;
3710     }
3711 
3712 CONTENT_T:
3713     NEXT_CHAR();
3714     switch (ch) {
3715         case 'R':
3716             if (last) {
3717                 return -1;
3718             }
3719             goto CONTENT_TR;
3720         case 'r':
3721             if (last) {
3722                 return -1;
3723             }
3724             goto CONTENT_TR;
3725         case 'Y':
3726             if (last) {
3727                 return -1;
3728             }
3729             goto CONTENT_TY;
3730         case 'y':
3731             if (last) {
3732                 return -1;
3733             }
3734             goto CONTENT_TY;
3735         default:
3736             return -1;
3737     }
3738 
3739 CONTENT_TR:
3740     NEXT_CHAR();
3741     switch (ch) {
3742         case 'A':
3743             if (last) {
3744                 return -1;
3745             }
3746             goto CONTENT_TRA;
3747         case 'a':
3748             if (last) {
3749                 return -1;
3750             }
3751             goto CONTENT_TRA;
3752         default:
3753             return -1;
3754     }
3755 
3756 CONTENT_TRA:
3757     NEXT_CHAR();
3758     switch (ch) {
3759         case 'N':
3760             if (last) {
3761                 return -1;
3762             }
3763             goto CONTENT_TRAN;
3764         case 'n':
3765             if (last) {
3766                 return -1;
3767             }
3768             goto CONTENT_TRAN;
3769         default:
3770             return -1;
3771     }
3772 
3773 CONTENT_TRAN:
3774     NEXT_CHAR();
3775     switch (ch) {
3776         case 'S':
3777             if (last) {
3778                 return -1;
3779             }
3780             goto CONTENT_TRANS;
3781         case 's':
3782             if (last) {
3783                 return -1;
3784             }
3785             goto CONTENT_TRANS;
3786         default:
3787             return -1;
3788     }
3789 
3790 CONTENT_TRANS:
3791     NEXT_CHAR();
3792     switch (ch) {
3793         case 'F':
3794             if (last) {
3795                 return -1;
3796             }
3797             goto CONTENT_TRANSF;
3798         case 'f':
3799             if (last) {
3800                 return -1;
3801             }
3802             goto CONTENT_TRANSF;
3803         default:
3804             return -1;
3805     }
3806 
3807 CONTENT_TRANSF:
3808     NEXT_CHAR();
3809     switch (ch) {
3810         case 'E':
3811             if (last) {
3812                 return -1;
3813             }
3814             goto CONTENT_TRANSFE;
3815         case 'e':
3816             if (last) {
3817                 return -1;
3818             }
3819             goto CONTENT_TRANSFE;
3820         default:
3821             return -1;
3822     }
3823 
3824 CONTENT_TRANSFE:
3825     NEXT_CHAR();
3826     switch (ch) {
3827         case 'R':
3828             if (last) {
3829                 return -1;
3830             }
3831             goto CONTENT_TRANSFER;
3832         case 'r':
3833             if (last) {
3834                 return -1;
3835             }
3836             goto CONTENT_TRANSFER;
3837         default:
3838             return -1;
3839     }
3840 
3841 CONTENT_TRANSFER:
3842     NEXT_CHAR();
3843     switch (ch) {
3844         case '-':
3845             if (last) {
3846                 return -1;
3847             }
3848             goto CONTENT_TRANSFER_;
3849         default:
3850             return -1;
3851     }
3852 
3853 CONTENT_TRANSFER_:
3854     NEXT_CHAR();
3855     switch (ch) {
3856         case 'E':
3857             if (last) {
3858                 return -1;
3859             }
3860             goto CONTENT_TRANSFER_E;
3861         case 'e':
3862             if (last) {
3863                 return -1;
3864             }
3865             goto CONTENT_TRANSFER_E;
3866         default:
3867             return -1;
3868     }
3869 
3870 CONTENT_TRANSFER_E:
3871     NEXT_CHAR();
3872     switch (ch) {
3873         case 'N':
3874             if (last) {
3875                 return -1;
3876             }
3877             goto CONTENT_TRANSFER_EN;
3878         case 'n':
3879             if (last) {
3880                 return -1;
3881             }
3882             goto CONTENT_TRANSFER_EN;
3883         default:
3884             return -1;
3885     }
3886 
3887 CONTENT_TRANSFER_EN:
3888     NEXT_CHAR();
3889     switch (ch) {
3890         case 'C':
3891             if (last) {
3892                 return -1;
3893             }
3894             goto CONTENT_TRANSFER_ENC;
3895         case 'c':
3896             if (last) {
3897                 return -1;
3898             }
3899             goto CONTENT_TRANSFER_ENC;
3900         default:
3901             return -1;
3902     }
3903 
3904 CONTENT_TRANSFER_ENC:
3905     NEXT_CHAR();
3906     switch (ch) {
3907         case 'O':
3908             if (last) {
3909                 return -1;
3910             }
3911             goto CONTENT_TRANSFER_ENCO;
3912         case 'o':
3913             if (last) {
3914                 return -1;
3915             }
3916             goto CONTENT_TRANSFER_ENCO;
3917         default:
3918             return -1;
3919     }
3920 
3921 CONTENT_TRANSFER_ENCO:
3922     NEXT_CHAR();
3923     switch (ch) {
3924         case 'D':
3925             if (last) {
3926                 return -1;
3927             }
3928             goto CONTENT_TRANSFER_ENCOD;
3929         case 'd':
3930             if (last) {
3931                 return -1;
3932             }
3933             goto CONTENT_TRANSFER_ENCOD;
3934         default:
3935             return -1;
3936     }
3937 
3938 CONTENT_TRANSFER_ENCOD:
3939     NEXT_CHAR();
3940     switch (ch) {
3941         case 'I':
3942             if (last) {
3943                 return -1;
3944             }
3945             goto CONTENT_TRANSFER_ENCODI;
3946         case 'i':
3947             if (last) {
3948                 return -1;
3949             }
3950             goto CONTENT_TRANSFER_ENCODI;
3951         default:
3952             return -1;
3953     }
3954 
3955 CONTENT_TRANSFER_ENCODI:
3956     NEXT_CHAR();
3957     switch (ch) {
3958         case 'N':
3959             if (last) {
3960                 return -1;
3961             }
3962             goto CONTENT_TRANSFER_ENCODIN;
3963         case 'n':
3964             if (last) {
3965                 return -1;
3966             }
3967             goto CONTENT_TRANSFER_ENCODIN;
3968         default:
3969             return -1;
3970     }
3971 
3972 CONTENT_TRANSFER_ENCODIN:
3973     NEXT_CHAR();
3974     switch (ch) {
3975         case 'G':
3976             if (last) {
3977                 return 25;
3978             }
3979             goto CONTENT_TRANSFER_ENCODING;
3980         case 'g':
3981             if (last) {
3982                 return 25;
3983             }
3984             goto CONTENT_TRANSFER_ENCODING;
3985         default:
3986             return -1;
3987     }
3988 
3989 CONTENT_TY:
3990     NEXT_CHAR();
3991     switch (ch) {
3992         case 'P':
3993             if (last) {
3994                 return -1;
3995             }
3996             goto CONTENT_TYP;
3997         case 'p':
3998             if (last) {
3999                 return -1;
4000             }
4001             goto CONTENT_TYP;
4002         default:
4003             return -1;
4004     }
4005 
4006 CONTENT_TYP:
4007     NEXT_CHAR();
4008     switch (ch) {
4009         case 'E':
4010             if (last) {
4011                 return 26;
4012             }
4013             goto CONTENT_TYPE;
4014         case 'e':
4015             if (last) {
4016                 return 26;
4017             }
4018             goto CONTENT_TYPE;
4019         default:
4020             return -1;
4021     }
4022 
4023 COO:
4024     NEXT_CHAR();
4025     switch (ch) {
4026         case 'K':
4027             if (last) {
4028                 return -1;
4029             }
4030             goto COOK;
4031         case 'k':
4032             if (last) {
4033                 return -1;
4034             }
4035             goto COOK;
4036         default:
4037             return -1;
4038     }
4039 
4040 COOK:
4041     NEXT_CHAR();
4042     switch (ch) {
4043         case 'I':
4044             if (last) {
4045                 return -1;
4046             }
4047             goto COOKI;
4048         case 'i':
4049             if (last) {
4050                 return -1;
4051             }
4052             goto COOKI;
4053         default:
4054             return -1;
4055     }
4056 
4057 COOKI:
4058     NEXT_CHAR();
4059     switch (ch) {
4060         case 'E':
4061             if (last) {
4062                 return 27;
4063             }
4064             goto COOKIE;
4065         case 'e':
4066             if (last) {
4067                 return 27;
4068             }
4069             goto COOKIE;
4070         default:
4071             return -1;
4072     }
4073 
4074 D:
4075     NEXT_CHAR();
4076     switch (ch) {
4077         case 'A':
4078             if (last) {
4079                 return -1;
4080             }
4081             goto DA;
4082         case 'a':
4083             if (last) {
4084                 return -1;
4085             }
4086             goto DA;
4087         case 'E':
4088             if (last) {
4089                 return -1;
4090             }
4091             goto DE;
4092         case 'e':
4093             if (last) {
4094                 return -1;
4095             }
4096             goto DE;
4097         case 'I':
4098             if (last) {
4099                 return -1;
4100             }
4101             goto DI;
4102         case 'i':
4103             if (last) {
4104                 return -1;
4105             }
4106             goto DI;
4107         default:
4108             return -1;
4109     }
4110 
4111 DA:
4112     NEXT_CHAR();
4113     switch (ch) {
4114         case 'T':
4115             if (last) {
4116                 return -1;
4117             }
4118             goto DAT;
4119         case 't':
4120             if (last) {
4121                 return -1;
4122             }
4123             goto DAT;
4124         default:
4125             return -1;
4126     }
4127 
4128 DAT:
4129     NEXT_CHAR();
4130     switch (ch) {
4131         case 'E':
4132             if (last) {
4133                 return 28;
4134             }
4135             goto DATE;
4136         case 'e':
4137             if (last) {
4138                 return 28;
4139             }
4140             goto DATE;
4141         default:
4142             return -1;
4143     }
4144 
4145 DE:
4146     NEXT_CHAR();
4147     switch (ch) {
4148         case 'S':
4149             if (last) {
4150                 return -1;
4151             }
4152             goto DES;
4153         case 's':
4154             if (last) {
4155                 return -1;
4156             }
4157             goto DES;
4158         default:
4159             return -1;
4160     }
4161 
4162 DES:
4163     NEXT_CHAR();
4164     switch (ch) {
4165         case 'T':
4166             if (last) {
4167                 return -1;
4168             }
4169             goto DEST;
4170         case 't':
4171             if (last) {
4172                 return -1;
4173             }
4174             goto DEST;
4175         default:
4176             return -1;
4177     }
4178 
4179 DEST:
4180     NEXT_CHAR();
4181     switch (ch) {
4182         case 'I':
4183             if (last) {
4184                 return -1;
4185             }
4186             goto DESTI;
4187         case 'i':
4188             if (last) {
4189                 return -1;
4190             }
4191             goto DESTI;
4192         default:
4193             return -1;
4194     }
4195 
4196 DESTI:
4197     NEXT_CHAR();
4198     switch (ch) {
4199         case 'N':
4200             if (last) {
4201                 return -1;
4202             }
4203             goto DESTIN;
4204         case 'n':
4205             if (last) {
4206                 return -1;
4207             }
4208             goto DESTIN;
4209         default:
4210             return -1;
4211     }
4212 
4213 DESTIN:
4214     NEXT_CHAR();
4215     switch (ch) {
4216         case 'A':
4217             if (last) {
4218                 return -1;
4219             }
4220             goto DESTINA;
4221         case 'a':
4222             if (last) {
4223                 return -1;
4224             }
4225             goto DESTINA;
4226         default:
4227             return -1;
4228     }
4229 
4230 DESTINA:
4231     NEXT_CHAR();
4232     switch (ch) {
4233         case 'T':
4234             if (last) {
4235                 return -1;
4236             }
4237             goto DESTINAT;
4238         case 't':
4239             if (last) {
4240                 return -1;
4241             }
4242             goto DESTINAT;
4243         default:
4244             return -1;
4245     }
4246 
4247 DESTINAT:
4248     NEXT_CHAR();
4249     switch (ch) {
4250         case 'I':
4251             if (last) {
4252                 return -1;
4253             }
4254             goto DESTINATI;
4255         case 'i':
4256             if (last) {
4257                 return -1;
4258             }
4259             goto DESTINATI;
4260         default:
4261             return -1;
4262     }
4263 
4264 DESTINATI:
4265     NEXT_CHAR();
4266     switch (ch) {
4267         case 'O':
4268             if (last) {
4269                 return -1;
4270             }
4271             goto DESTINATIO;
4272         case 'o':
4273             if (last) {
4274                 return -1;
4275             }
4276             goto DESTINATIO;
4277         default:
4278             return -1;
4279     }
4280 
4281 DESTINATIO:
4282     NEXT_CHAR();
4283     switch (ch) {
4284         case 'N':
4285             if (last) {
4286                 return 29;
4287             }
4288             goto DESTINATION;
4289         case 'n':
4290             if (last) {
4291                 return 29;
4292             }
4293             goto DESTINATION;
4294         default:
4295             return -1;
4296     }
4297 
4298 DI:
4299     NEXT_CHAR();
4300     switch (ch) {
4301         case 'G':
4302             if (last) {
4303                 return -1;
4304             }
4305             goto DIG;
4306         case 'g':
4307             if (last) {
4308                 return -1;
4309             }
4310             goto DIG;
4311         default:
4312             return -1;
4313     }
4314 
4315 DIG:
4316     NEXT_CHAR();
4317     switch (ch) {
4318         case 'E':
4319             if (last) {
4320                 return -1;
4321             }
4322             goto DIGE;
4323         case 'e':
4324             if (last) {
4325                 return -1;
4326             }
4327             goto DIGE;
4328         default:
4329             return -1;
4330     }
4331 
4332 DIGE:
4333     NEXT_CHAR();
4334     switch (ch) {
4335         case 'S':
4336             if (last) {
4337                 return -1;
4338             }
4339             goto DIGES;
4340         case 's':
4341             if (last) {
4342                 return -1;
4343             }
4344             goto DIGES;
4345         default:
4346             return -1;
4347     }
4348 
4349 DIGES:
4350     NEXT_CHAR();
4351     switch (ch) {
4352         case 'T':
4353             if (last) {
4354                 return 30;
4355             }
4356             goto DIGEST;
4357         case 't':
4358             if (last) {
4359                 return 30;
4360             }
4361             goto DIGEST;
4362         default:
4363             return -1;
4364     }
4365 
4366 E:
4367     NEXT_CHAR();
4368     switch (ch) {
4369         case 'T':
4370             if (last) {
4371                 return -1;
4372             }
4373             goto ET;
4374         case 't':
4375             if (last) {
4376                 return -1;
4377             }
4378             goto ET;
4379         case 'X':
4380             if (last) {
4381                 return -1;
4382             }
4383             goto EX;
4384         case 'x':
4385             if (last) {
4386                 return -1;
4387             }
4388             goto EX;
4389         default:
4390             return -1;
4391     }
4392 
4393 ET:
4394     NEXT_CHAR();
4395     switch (ch) {
4396         case 'A':
4397             if (last) {
4398                 return -1;
4399             }
4400             goto ETA;
4401         case 'a':
4402             if (last) {
4403                 return -1;
4404             }
4405             goto ETA;
4406         default:
4407             return -1;
4408     }
4409 
4410 ETA:
4411     NEXT_CHAR();
4412     switch (ch) {
4413         case 'G':
4414             if (last) {
4415                 return 31;
4416             }
4417             goto ETAG;
4418         case 'g':
4419             if (last) {
4420                 return 31;
4421             }
4422             goto ETAG;
4423         default:
4424             return -1;
4425     }
4426 
4427 EX:
4428     NEXT_CHAR();
4429     switch (ch) {
4430         case 'P':
4431             if (last) {
4432                 return -1;
4433             }
4434             goto EXP;
4435         case 'p':
4436             if (last) {
4437                 return -1;
4438             }
4439             goto EXP;
4440         default:
4441             return -1;
4442     }
4443 
4444 EXP:
4445     NEXT_CHAR();
4446     switch (ch) {
4447         case 'E':
4448             if (last) {
4449                 return -1;
4450             }
4451             goto EXPE;
4452         case 'e':
4453             if (last) {
4454                 return -1;
4455             }
4456             goto EXPE;
4457         case 'I':
4458             if (last) {
4459                 return -1;
4460             }
4461             goto EXPI;
4462         case 'i':
4463             if (last) {
4464                 return -1;
4465             }
4466             goto EXPI;
4467         default:
4468             return -1;
4469     }
4470 
4471 EXPE:
4472     NEXT_CHAR();
4473     switch (ch) {
4474         case 'C':
4475             if (last) {
4476                 return -1;
4477             }
4478             goto EXPEC;
4479         case 'c':
4480             if (last) {
4481                 return -1;
4482             }
4483             goto EXPEC;
4484         default:
4485             return -1;
4486     }
4487 
4488 EXPEC:
4489     NEXT_CHAR();
4490     switch (ch) {
4491         case 'T':
4492             if (last) {
4493                 return 32;
4494             }
4495             goto EXPECT;
4496         case 't':
4497             if (last) {
4498                 return 32;
4499             }
4500             goto EXPECT;
4501         default:
4502             return -1;
4503     }
4504 
4505 EXPI:
4506     NEXT_CHAR();
4507     switch (ch) {
4508         case 'R':
4509             if (last) {
4510                 return -1;
4511             }
4512             goto EXPIR;
4513         case 'r':
4514             if (last) {
4515                 return -1;
4516             }
4517             goto EXPIR;
4518         default:
4519             return -1;
4520     }
4521 
4522 EXPIR:
4523     NEXT_CHAR();
4524     switch (ch) {
4525         case 'E':
4526             if (last) {
4527                 return -1;
4528             }
4529             goto EXPIRE;
4530         case 'e':
4531             if (last) {
4532                 return -1;
4533             }
4534             goto EXPIRE;
4535         default:
4536             return -1;
4537     }
4538 
4539 EXPIRE:
4540     NEXT_CHAR();
4541     switch (ch) {
4542         case 'S':
4543             if (last) {
4544                 return 33;
4545             }
4546             goto EXPIRES;
4547         case 's':
4548             if (last) {
4549                 return 33;
4550             }
4551             goto EXPIRES;
4552         default:
4553             return -1;
4554     }
4555 
4556 F:
4557     NEXT_CHAR();
4558     switch (ch) {
4559         case 'O':
4560             if (last) {
4561                 return -1;
4562             }
4563             goto FO;
4564         case 'o':
4565             if (last) {
4566                 return -1;
4567             }
4568             goto FO;
4569         case 'R':
4570             if (last) {
4571                 return -1;
4572             }
4573             goto FR;
4574         case 'r':
4575             if (last) {
4576                 return -1;
4577             }
4578             goto FR;
4579         default:
4580             return -1;
4581     }
4582 
4583 FO:
4584     NEXT_CHAR();
4585     switch (ch) {
4586         case 'R':
4587             if (last) {
4588                 return -1;
4589             }
4590             goto FOR;
4591         case 'r':
4592             if (last) {
4593                 return -1;
4594             }
4595             goto FOR;
4596         default:
4597             return -1;
4598     }
4599 
4600 FOR:
4601     NEXT_CHAR();
4602     switch (ch) {
4603         case 'W':
4604             if (last) {
4605                 return -1;
4606             }
4607             goto FORW;
4608         case 'w':
4609             if (last) {
4610                 return -1;
4611             }
4612             goto FORW;
4613         default:
4614             return -1;
4615     }
4616 
4617 FORW:
4618     NEXT_CHAR();
4619     switch (ch) {
4620         case 'A':
4621             if (last) {
4622                 return -1;
4623             }
4624             goto FORWA;
4625         case 'a':
4626             if (last) {
4627                 return -1;
4628             }
4629             goto FORWA;
4630         default:
4631             return -1;
4632     }
4633 
4634 FORWA:
4635     NEXT_CHAR();
4636     switch (ch) {
4637         case 'R':
4638             if (last) {
4639                 return -1;
4640             }
4641             goto FORWAR;
4642         case 'r':
4643             if (last) {
4644                 return -1;
4645             }
4646             goto FORWAR;
4647         default:
4648             return -1;
4649     }
4650 
4651 FORWAR:
4652     NEXT_CHAR();
4653     switch (ch) {
4654         case 'D':
4655             if (last) {
4656                 return -1;
4657             }
4658             goto FORWARD;
4659         case 'd':
4660             if (last) {
4661                 return -1;
4662             }
4663             goto FORWARD;
4664         default:
4665             return -1;
4666     }
4667 
4668 FORWARD:
4669     NEXT_CHAR();
4670     switch (ch) {
4671         case 'E':
4672             if (last) {
4673                 return -1;
4674             }
4675             goto FORWARDE;
4676         case 'e':
4677             if (last) {
4678                 return -1;
4679             }
4680             goto FORWARDE;
4681         default:
4682             return -1;
4683     }
4684 
4685 FORWARDE:
4686     NEXT_CHAR();
4687     switch (ch) {
4688         case 'D':
4689             if (last) {
4690                 return 34;
4691             }
4692             goto FORWARDED;
4693         case 'd':
4694             if (last) {
4695                 return 34;
4696             }
4697             goto FORWARDED;
4698         default:
4699             return -1;
4700     }
4701 
4702 FR:
4703     NEXT_CHAR();
4704     switch (ch) {
4705         case 'O':
4706             if (last) {
4707                 return -1;
4708             }
4709             goto FRO;
4710         case 'o':
4711             if (last) {
4712                 return -1;
4713             }
4714             goto FRO;
4715         default:
4716             return -1;
4717     }
4718 
4719 FRO:
4720     NEXT_CHAR();
4721     switch (ch) {
4722         case 'M':
4723             if (last) {
4724                 return 35;
4725             }
4726             goto FROM;
4727         case 'm':
4728             if (last) {
4729                 return 35;
4730             }
4731             goto FROM;
4732         default:
4733             return -1;
4734     }
4735 
4736 H:
4737     NEXT_CHAR();
4738     switch (ch) {
4739         case 'O':
4740             if (last) {
4741                 return -1;
4742             }
4743             goto HO;
4744         case 'o':
4745             if (last) {
4746                 return -1;
4747             }
4748             goto HO;
4749         default:
4750             return -1;
4751     }
4752 
4753 HO:
4754     NEXT_CHAR();
4755     switch (ch) {
4756         case 'S':
4757             if (last) {
4758                 return -1;
4759             }
4760             goto HOS;
4761         case 's':
4762             if (last) {
4763                 return -1;
4764             }
4765             goto HOS;
4766         default:
4767             return -1;
4768     }
4769 
4770 HOS:
4771     NEXT_CHAR();
4772     switch (ch) {
4773         case 'T':
4774             if (last) {
4775                 return 36;
4776             }
4777             goto HOST;
4778         case 't':
4779             if (last) {
4780                 return 36;
4781             }
4782             goto HOST;
4783         default:
4784             return -1;
4785     }
4786 
4787 I:
4788     NEXT_CHAR();
4789     switch (ch) {
4790         case 'F':
4791             if (last) {
4792                 return -1;
4793             }
4794             goto IF;
4795         case 'f':
4796             if (last) {
4797                 return -1;
4798             }
4799             goto IF;
4800         default:
4801             return -1;
4802     }
4803 
4804 IF:
4805     NEXT_CHAR();
4806     switch (ch) {
4807         case '-':
4808             if (last) {
4809                 return -1;
4810             }
4811             goto IF_;
4812         default:
4813             return -1;
4814     }
4815 
4816 IF_:
4817     NEXT_CHAR();
4818     switch (ch) {
4819         case 'M':
4820             if (last) {
4821                 return -1;
4822             }
4823             goto IF_M;
4824         case 'm':
4825             if (last) {
4826                 return -1;
4827             }
4828             goto IF_M;
4829         case 'N':
4830             if (last) {
4831                 return -1;
4832             }
4833             goto IF_N;
4834         case 'n':
4835             if (last) {
4836                 return -1;
4837             }
4838             goto IF_N;
4839         case 'R':
4840             if (last) {
4841                 return -1;
4842             }
4843             goto IF_R;
4844         case 'r':
4845             if (last) {
4846                 return -1;
4847             }
4848             goto IF_R;
4849         case 'U':
4850             if (last) {
4851                 return -1;
4852             }
4853             goto IF_U;
4854         case 'u':
4855             if (last) {
4856                 return -1;
4857             }
4858             goto IF_U;
4859         default:
4860             return -1;
4861     }
4862 
4863 IF_M:
4864     NEXT_CHAR();
4865     switch (ch) {
4866         case 'A':
4867             if (last) {
4868                 return -1;
4869             }
4870             goto IF_MA;
4871         case 'a':
4872             if (last) {
4873                 return -1;
4874             }
4875             goto IF_MA;
4876         case 'O':
4877             if (last) {
4878                 return -1;
4879             }
4880             goto IF_MO;
4881         case 'o':
4882             if (last) {
4883                 return -1;
4884             }
4885             goto IF_MO;
4886         default:
4887             return -1;
4888     }
4889 
4890 IF_MA:
4891     NEXT_CHAR();
4892     switch (ch) {
4893         case 'T':
4894             if (last) {
4895                 return -1;
4896             }
4897             goto IF_MAT;
4898         case 't':
4899             if (last) {
4900                 return -1;
4901             }
4902             goto IF_MAT;
4903         default:
4904             return -1;
4905     }
4906 
4907 IF_MAT:
4908     NEXT_CHAR();
4909     switch (ch) {
4910         case 'C':
4911             if (last) {
4912                 return -1;
4913             }
4914             goto IF_MATC;
4915         case 'c':
4916             if (last) {
4917                 return -1;
4918             }
4919             goto IF_MATC;
4920         default:
4921             return -1;
4922     }
4923 
4924 IF_MATC:
4925     NEXT_CHAR();
4926     switch (ch) {
4927         case 'H':
4928             if (last) {
4929                 return 37;
4930             }
4931             goto IF_MATCH;
4932         case 'h':
4933             if (last) {
4934                 return 37;
4935             }
4936             goto IF_MATCH;
4937         default:
4938             return -1;
4939     }
4940 
4941 IF_MO:
4942     NEXT_CHAR();
4943     switch (ch) {
4944         case 'D':
4945             if (last) {
4946                 return -1;
4947             }
4948             goto IF_MOD;
4949         case 'd':
4950             if (last) {
4951                 return -1;
4952             }
4953             goto IF_MOD;
4954         default:
4955             return -1;
4956     }
4957 
4958 IF_MOD:
4959     NEXT_CHAR();
4960     switch (ch) {
4961         case 'I':
4962             if (last) {
4963                 return -1;
4964             }
4965             goto IF_MODI;
4966         case 'i':
4967             if (last) {
4968                 return -1;
4969             }
4970             goto IF_MODI;
4971         default:
4972             return -1;
4973     }
4974 
4975 IF_MODI:
4976     NEXT_CHAR();
4977     switch (ch) {
4978         case 'F':
4979             if (last) {
4980                 return -1;
4981             }
4982             goto IF_MODIF;
4983         case 'f':
4984             if (last) {
4985                 return -1;
4986             }
4987             goto IF_MODIF;
4988         default:
4989             return -1;
4990     }
4991 
4992 IF_MODIF:
4993     NEXT_CHAR();
4994     switch (ch) {
4995         case 'I':
4996             if (last) {
4997                 return -1;
4998             }
4999             goto IF_MODIFI;
5000         case 'i':
5001             if (last) {
5002                 return -1;
5003             }
5004             goto IF_MODIFI;
5005         default:
5006             return -1;
5007     }
5008 
5009 IF_MODIFI:
5010     NEXT_CHAR();
5011     switch (ch) {
5012         case 'E':
5013             if (last) {
5014                 return -1;
5015             }
5016             goto IF_MODIFIE;
5017         case 'e':
5018             if (last) {
5019                 return -1;
5020             }
5021             goto IF_MODIFIE;
5022         default:
5023             return -1;
5024     }
5025 
5026 IF_MODIFIE:
5027     NEXT_CHAR();
5028     switch (ch) {
5029         case 'D':
5030             if (last) {
5031                 return -1;
5032             }
5033             goto IF_MODIFIED;
5034         case 'd':
5035             if (last) {
5036                 return -1;
5037             }
5038             goto IF_MODIFIED;
5039         default:
5040             return -1;
5041     }
5042 
5043 IF_MODIFIED:
5044     NEXT_CHAR();
5045     switch (ch) {
5046         case '-':
5047             if (last) {
5048                 return -1;
5049             }
5050             goto IF_MODIFIED_;
5051         default:
5052             return -1;
5053     }
5054 
5055 IF_MODIFIED_:
5056     NEXT_CHAR();
5057     switch (ch) {
5058         case 'S':
5059             if (last) {
5060                 return -1;
5061             }
5062             goto IF_MODIFIED_S;
5063         case 's':
5064             if (last) {
5065                 return -1;
5066             }
5067             goto IF_MODIFIED_S;
5068         default:
5069             return -1;
5070     }
5071 
5072 IF_MODIFIED_S:
5073     NEXT_CHAR();
5074     switch (ch) {
5075         case 'I':
5076             if (last) {
5077                 return -1;
5078             }
5079             goto IF_MODIFIED_SI;
5080         case 'i':
5081             if (last) {
5082                 return -1;
5083             }
5084             goto IF_MODIFIED_SI;
5085         default:
5086             return -1;
5087     }
5088 
5089 IF_MODIFIED_SI:
5090     NEXT_CHAR();
5091     switch (ch) {
5092         case 'N':
5093             if (last) {
5094                 return -1;
5095             }
5096             goto IF_MODIFIED_SIN;
5097         case 'n':
5098             if (last) {
5099                 return -1;
5100             }
5101             goto IF_MODIFIED_SIN;
5102         default:
5103             return -1;
5104     }
5105 
5106 IF_MODIFIED_SIN:
5107     NEXT_CHAR();
5108     switch (ch) {
5109         case 'C':
5110             if (last) {
5111                 return -1;
5112             }
5113             goto IF_MODIFIED_SINC;
5114         case 'c':
5115             if (last) {
5116                 return -1;
5117             }
5118             goto IF_MODIFIED_SINC;
5119         default:
5120             return -1;
5121     }
5122 
5123 IF_MODIFIED_SINC:
5124     NEXT_CHAR();
5125     switch (ch) {
5126         case 'E':
5127             if (last) {
5128                 return 38;
5129             }
5130             goto IF_MODIFIED_SINCE;
5131         case 'e':
5132             if (last) {
5133                 return 38;
5134             }
5135             goto IF_MODIFIED_SINCE;
5136         default:
5137             return -1;
5138     }
5139 
5140 IF_N:
5141     NEXT_CHAR();
5142     switch (ch) {
5143         case 'O':
5144             if (last) {
5145                 return -1;
5146             }
5147             goto IF_NO;
5148         case 'o':
5149             if (last) {
5150                 return -1;
5151             }
5152             goto IF_NO;
5153         default:
5154             return -1;
5155     }
5156 
5157 IF_NO:
5158     NEXT_CHAR();
5159     switch (ch) {
5160         case 'N':
5161             if (last) {
5162                 return -1;
5163             }
5164             goto IF_NON;
5165         case 'n':
5166             if (last) {
5167                 return -1;
5168             }
5169             goto IF_NON;
5170         default:
5171             return -1;
5172     }
5173 
5174 IF_NON:
5175     NEXT_CHAR();
5176     switch (ch) {
5177         case 'E':
5178             if (last) {
5179                 return -1;
5180             }
5181             goto IF_NONE;
5182         case 'e':
5183             if (last) {
5184                 return -1;
5185             }
5186             goto IF_NONE;
5187         default:
5188             return -1;
5189     }
5190 
5191 IF_NONE:
5192     NEXT_CHAR();
5193     switch (ch) {
5194         case '-':
5195             if (last) {
5196                 return -1;
5197             }
5198             goto IF_NONE_;
5199         default:
5200             return -1;
5201     }
5202 
5203 IF_NONE_:
5204     NEXT_CHAR();
5205     switch (ch) {
5206         case 'M':
5207             if (last) {
5208                 return -1;
5209             }
5210             goto IF_NONE_M;
5211         case 'm':
5212             if (last) {
5213                 return -1;
5214             }
5215             goto IF_NONE_M;
5216         default:
5217             return -1;
5218     }
5219 
5220 IF_NONE_M:
5221     NEXT_CHAR();
5222     switch (ch) {
5223         case 'A':
5224             if (last) {
5225                 return -1;
5226             }
5227             goto IF_NONE_MA;
5228         case 'a':
5229             if (last) {
5230                 return -1;
5231             }
5232             goto IF_NONE_MA;
5233         default:
5234             return -1;
5235     }
5236 
5237 IF_NONE_MA:
5238     NEXT_CHAR();
5239     switch (ch) {
5240         case 'T':
5241             if (last) {
5242                 return -1;
5243             }
5244             goto IF_NONE_MAT;
5245         case 't':
5246             if (last) {
5247                 return -1;
5248             }
5249             goto IF_NONE_MAT;
5250         default:
5251             return -1;
5252     }
5253 
5254 IF_NONE_MAT:
5255     NEXT_CHAR();
5256     switch (ch) {
5257         case 'C':
5258             if (last) {
5259                 return -1;
5260             }
5261             goto IF_NONE_MATC;
5262         case 'c':
5263             if (last) {
5264                 return -1;
5265             }
5266             goto IF_NONE_MATC;
5267         default:
5268             return -1;
5269     }
5270 
5271 IF_NONE_MATC:
5272     NEXT_CHAR();
5273     switch (ch) {
5274         case 'H':
5275             if (last) {
5276                 return 39;
5277             }
5278             goto IF_NONE_MATCH;
5279         case 'h':
5280             if (last) {
5281                 return 39;
5282             }
5283             goto IF_NONE_MATCH;
5284         default:
5285             return -1;
5286     }
5287 
5288 IF_R:
5289     NEXT_CHAR();
5290     switch (ch) {
5291         case 'A':
5292             if (last) {
5293                 return -1;
5294             }
5295             goto IF_RA;
5296         case 'a':
5297             if (last) {
5298                 return -1;
5299             }
5300             goto IF_RA;
5301         default:
5302             return -1;
5303     }
5304 
5305 IF_RA:
5306     NEXT_CHAR();
5307     switch (ch) {
5308         case 'N':
5309             if (last) {
5310                 return -1;
5311             }
5312             goto IF_RAN;
5313         case 'n':
5314             if (last) {
5315                 return -1;
5316             }
5317             goto IF_RAN;
5318         default:
5319             return -1;
5320     }
5321 
5322 IF_RAN:
5323     NEXT_CHAR();
5324     switch (ch) {
5325         case 'G':
5326             if (last) {
5327                 return -1;
5328             }
5329             goto IF_RANG;
5330         case 'g':
5331             if (last) {
5332                 return -1;
5333             }
5334             goto IF_RANG;
5335         default:
5336             return -1;
5337     }
5338 
5339 IF_RANG:
5340     NEXT_CHAR();
5341     switch (ch) {
5342         case 'E':
5343             if (last) {
5344                 return 40;
5345             }
5346             goto IF_RANGE;
5347         case 'e':
5348             if (last) {
5349                 return 40;
5350             }
5351             goto IF_RANGE;
5352         default:
5353             return -1;
5354     }
5355 
5356 IF_U:
5357     NEXT_CHAR();
5358     switch (ch) {
5359         case 'N':
5360             if (last) {
5361                 return -1;
5362             }
5363             goto IF_UN;
5364         case 'n':
5365             if (last) {
5366                 return -1;
5367             }
5368             goto IF_UN;
5369         default:
5370             return -1;
5371     }
5372 
5373 IF_UN:
5374     NEXT_CHAR();
5375     switch (ch) {
5376         case 'M':
5377             if (last) {
5378                 return -1;
5379             }
5380             goto IF_UNM;
5381         case 'm':
5382             if (last) {
5383                 return -1;
5384             }
5385             goto IF_UNM;
5386         default:
5387             return -1;
5388     }
5389 
5390 IF_UNM:
5391     NEXT_CHAR();
5392     switch (ch) {
5393         case 'O':
5394             if (last) {
5395                 return -1;
5396             }
5397             goto IF_UNMO;
5398         case 'o':
5399             if (last) {
5400                 return -1;
5401             }
5402             goto IF_UNMO;
5403         default:
5404             return -1;
5405     }
5406 
5407 IF_UNMO:
5408     NEXT_CHAR();
5409     switch (ch) {
5410         case 'D':
5411             if (last) {
5412                 return -1;
5413             }
5414             goto IF_UNMOD;
5415         case 'd':
5416             if (last) {
5417                 return -1;
5418             }
5419             goto IF_UNMOD;
5420         default:
5421             return -1;
5422     }
5423 
5424 IF_UNMOD:
5425     NEXT_CHAR();
5426     switch (ch) {
5427         case 'I':
5428             if (last) {
5429                 return -1;
5430             }
5431             goto IF_UNMODI;
5432         case 'i':
5433             if (last) {
5434                 return -1;
5435             }
5436             goto IF_UNMODI;
5437         default:
5438             return -1;
5439     }
5440 
5441 IF_UNMODI:
5442     NEXT_CHAR();
5443     switch (ch) {
5444         case 'F':
5445             if (last) {
5446                 return -1;
5447             }
5448             goto IF_UNMODIF;
5449         case 'f':
5450             if (last) {
5451                 return -1;
5452             }
5453             goto IF_UNMODIF;
5454         default:
5455             return -1;
5456     }
5457 
5458 IF_UNMODIF:
5459     NEXT_CHAR();
5460     switch (ch) {
5461         case 'I':
5462             if (last) {
5463                 return -1;
5464             }
5465             goto IF_UNMODIFI;
5466         case 'i':
5467             if (last) {
5468                 return -1;
5469             }
5470             goto IF_UNMODIFI;
5471         default:
5472             return -1;
5473     }
5474 
5475 IF_UNMODIFI:
5476     NEXT_CHAR();
5477     switch (ch) {
5478         case 'E':
5479             if (last) {
5480                 return -1;
5481             }
5482             goto IF_UNMODIFIE;
5483         case 'e':
5484             if (last) {
5485                 return -1;
5486             }
5487             goto IF_UNMODIFIE;
5488         default:
5489             return -1;
5490     }
5491 
5492 IF_UNMODIFIE:
5493     NEXT_CHAR();
5494     switch (ch) {
5495         case 'D':
5496             if (last) {
5497                 return -1;
5498             }
5499             goto IF_UNMODIFIED;
5500         case 'd':
5501             if (last) {
5502                 return -1;
5503             }
5504             goto IF_UNMODIFIED;
5505         default:
5506             return -1;
5507     }
5508 
5509 IF_UNMODIFIED:
5510     NEXT_CHAR();
5511     switch (ch) {
5512         case '-':
5513             if (last) {
5514                 return -1;
5515             }
5516             goto IF_UNMODIFIED_;
5517         default:
5518             return -1;
5519     }
5520 
5521 IF_UNMODIFIED_:
5522     NEXT_CHAR();
5523     switch (ch) {
5524         case 'S':
5525             if (last) {
5526                 return -1;
5527             }
5528             goto IF_UNMODIFIED_S;
5529         case 's':
5530             if (last) {
5531                 return -1;
5532             }
5533             goto IF_UNMODIFIED_S;
5534         default:
5535             return -1;
5536     }
5537 
5538 IF_UNMODIFIED_S:
5539     NEXT_CHAR();
5540     switch (ch) {
5541         case 'I':
5542             if (last) {
5543                 return -1;
5544             }
5545             goto IF_UNMODIFIED_SI;
5546         case 'i':
5547             if (last) {
5548                 return -1;
5549             }
5550             goto IF_UNMODIFIED_SI;
5551         default:
5552             return -1;
5553     }
5554 
5555 IF_UNMODIFIED_SI:
5556     NEXT_CHAR();
5557     switch (ch) {
5558         case 'N':
5559             if (last) {
5560                 return -1;
5561             }
5562             goto IF_UNMODIFIED_SIN;
5563         case 'n':
5564             if (last) {
5565                 return -1;
5566             }
5567             goto IF_UNMODIFIED_SIN;
5568         default:
5569             return -1;
5570     }
5571 
5572 IF_UNMODIFIED_SIN:
5573     NEXT_CHAR();
5574     switch (ch) {
5575         case 'C':
5576             if (last) {
5577                 return -1;
5578             }
5579             goto IF_UNMODIFIED_SINC;
5580         case 'c':
5581             if (last) {
5582                 return -1;
5583             }
5584             goto IF_UNMODIFIED_SINC;
5585         default:
5586             return -1;
5587     }
5588 
5589 IF_UNMODIFIED_SINC:
5590     NEXT_CHAR();
5591     switch (ch) {
5592         case 'E':
5593             if (last) {
5594                 return 41;
5595             }
5596             goto IF_UNMODIFIED_SINCE;
5597         case 'e':
5598             if (last) {
5599                 return 41;
5600             }
5601             goto IF_UNMODIFIED_SINCE;
5602         default:
5603             return -1;
5604     }
5605 
5606 K:
5607     NEXT_CHAR();
5608     switch (ch) {
5609         case 'E':
5610             if (last) {
5611                 return -1;
5612             }
5613             goto KE;
5614         case 'e':
5615             if (last) {
5616                 return -1;
5617             }
5618             goto KE;
5619         default:
5620             return -1;
5621     }
5622 
5623 KE:
5624     NEXT_CHAR();
5625     switch (ch) {
5626         case 'E':
5627             if (last) {
5628                 return -1;
5629             }
5630             goto KEE;
5631         case 'e':
5632             if (last) {
5633                 return -1;
5634             }
5635             goto KEE;
5636         default:
5637             return -1;
5638     }
5639 
5640 KEE:
5641     NEXT_CHAR();
5642     switch (ch) {
5643         case 'P':
5644             if (last) {
5645                 return -1;
5646             }
5647             goto KEEP;
5648         case 'p':
5649             if (last) {
5650                 return -1;
5651             }
5652             goto KEEP;
5653         default:
5654             return -1;
5655     }
5656 
5657 KEEP:
5658     NEXT_CHAR();
5659     switch (ch) {
5660         case '-':
5661             if (last) {
5662                 return -1;
5663             }
5664             goto KEEP_;
5665         default:
5666             return -1;
5667     }
5668 
5669 KEEP_:
5670     NEXT_CHAR();
5671     switch (ch) {
5672         case 'A':
5673             if (last) {
5674                 return -1;
5675             }
5676             goto KEEP_A;
5677         case 'a':
5678             if (last) {
5679                 return -1;
5680             }
5681             goto KEEP_A;
5682         default:
5683             return -1;
5684     }
5685 
5686 KEEP_A:
5687     NEXT_CHAR();
5688     switch (ch) {
5689         case 'L':
5690             if (last) {
5691                 return -1;
5692             }
5693             goto KEEP_AL;
5694         case 'l':
5695             if (last) {
5696                 return -1;
5697             }
5698             goto KEEP_AL;
5699         default:
5700             return -1;
5701     }
5702 
5703 KEEP_AL:
5704     NEXT_CHAR();
5705     switch (ch) {
5706         case 'I':
5707             if (last) {
5708                 return -1;
5709             }
5710             goto KEEP_ALI;
5711         case 'i':
5712             if (last) {
5713                 return -1;
5714             }
5715             goto KEEP_ALI;
5716         default:
5717             return -1;
5718     }
5719 
5720 KEEP_ALI:
5721     NEXT_CHAR();
5722     switch (ch) {
5723         case 'V':
5724             if (last) {
5725                 return -1;
5726             }
5727             goto KEEP_ALIV;
5728         case 'v':
5729             if (last) {
5730                 return -1;
5731             }
5732             goto KEEP_ALIV;
5733         default:
5734             return -1;
5735     }
5736 
5737 KEEP_ALIV:
5738     NEXT_CHAR();
5739     switch (ch) {
5740         case 'E':
5741             if (last) {
5742                 return 42;
5743             }
5744             goto KEEP_ALIVE;
5745         case 'e':
5746             if (last) {
5747                 return 42;
5748             }
5749             goto KEEP_ALIVE;
5750         default:
5751             return -1;
5752     }
5753 
5754 L:
5755     NEXT_CHAR();
5756     switch (ch) {
5757         case 'A':
5758             if (last) {
5759                 return -1;
5760             }
5761             goto LA;
5762         case 'a':
5763             if (last) {
5764                 return -1;
5765             }
5766             goto LA;
5767         case 'I':
5768             if (last) {
5769                 return -1;
5770             }
5771             goto LI;
5772         case 'i':
5773             if (last) {
5774                 return -1;
5775             }
5776             goto LI;
5777         case 'O':
5778             if (last) {
5779                 return -1;
5780             }
5781             goto LO;
5782         case 'o':
5783             if (last) {
5784                 return -1;
5785             }
5786             goto LO;
5787         default:
5788             return -1;
5789     }
5790 
5791 LA:
5792     NEXT_CHAR();
5793     switch (ch) {
5794         case 'S':
5795             if (last) {
5796                 return -1;
5797             }
5798             goto LAS;
5799         case 's':
5800             if (last) {
5801                 return -1;
5802             }
5803             goto LAS;
5804         default:
5805             return -1;
5806     }
5807 
5808 LAS:
5809     NEXT_CHAR();
5810     switch (ch) {
5811         case 'T':
5812             if (last) {
5813                 return -1;
5814             }
5815             goto LAST;
5816         case 't':
5817             if (last) {
5818                 return -1;
5819             }
5820             goto LAST;
5821         default:
5822             return -1;
5823     }
5824 
5825 LAST:
5826     NEXT_CHAR();
5827     switch (ch) {
5828         case '-':
5829             if (last) {
5830                 return -1;
5831             }
5832             goto LAST_;
5833         default:
5834             return -1;
5835     }
5836 
5837 LAST_:
5838     NEXT_CHAR();
5839     switch (ch) {
5840         case 'E':
5841             if (last) {
5842                 return -1;
5843             }
5844             goto LAST_E;
5845         case 'e':
5846             if (last) {
5847                 return -1;
5848             }
5849             goto LAST_E;
5850         case 'M':
5851             if (last) {
5852                 return -1;
5853             }
5854             goto LAST_M;
5855         case 'm':
5856             if (last) {
5857                 return -1;
5858             }
5859             goto LAST_M;
5860         default:
5861             return -1;
5862     }
5863 
5864 LAST_E:
5865     NEXT_CHAR();
5866     switch (ch) {
5867         case 'V':
5868             if (last) {
5869                 return -1;
5870             }
5871             goto LAST_EV;
5872         case 'v':
5873             if (last) {
5874                 return -1;
5875             }
5876             goto LAST_EV;
5877         default:
5878             return -1;
5879     }
5880 
5881 LAST_EV:
5882     NEXT_CHAR();
5883     switch (ch) {
5884         case 'E':
5885             if (last) {
5886                 return -1;
5887             }
5888             goto LAST_EVE;
5889         case 'e':
5890             if (last) {
5891                 return -1;
5892             }
5893             goto LAST_EVE;
5894         default:
5895             return -1;
5896     }
5897 
5898 LAST_EVE:
5899     NEXT_CHAR();
5900     switch (ch) {
5901         case 'N':
5902             if (last) {
5903                 return -1;
5904             }
5905             goto LAST_EVEN;
5906         case 'n':
5907             if (last) {
5908                 return -1;
5909             }
5910             goto LAST_EVEN;
5911         default:
5912             return -1;
5913     }
5914 
5915 LAST_EVEN:
5916     NEXT_CHAR();
5917     switch (ch) {
5918         case 'T':
5919             if (last) {
5920                 return -1;
5921             }
5922             goto LAST_EVENT;
5923         case 't':
5924             if (last) {
5925                 return -1;
5926             }
5927             goto LAST_EVENT;
5928         default:
5929             return -1;
5930     }
5931 
5932 LAST_EVENT:
5933     NEXT_CHAR();
5934     switch (ch) {
5935         case '-':
5936             if (last) {
5937                 return -1;
5938             }
5939             goto LAST_EVENT_;
5940         default:
5941             return -1;
5942     }
5943 
5944 LAST_EVENT_:
5945     NEXT_CHAR();
5946     switch (ch) {
5947         case 'I':
5948             if (last) {
5949                 return -1;
5950             }
5951             goto LAST_EVENT_I;
5952         case 'i':
5953             if (last) {
5954                 return -1;
5955             }
5956             goto LAST_EVENT_I;
5957         default:
5958             return -1;
5959     }
5960 
5961 LAST_EVENT_I:
5962     NEXT_CHAR();
5963     switch (ch) {
5964         case 'D':
5965             if (last) {
5966                 return 43;
5967             }
5968             goto LAST_EVENT_ID;
5969         case 'd':
5970             if (last) {
5971                 return 43;
5972             }
5973             goto LAST_EVENT_ID;
5974         default:
5975             return -1;
5976     }
5977 
5978 LAST_M:
5979     NEXT_CHAR();
5980     switch (ch) {
5981         case 'O':
5982             if (last) {
5983                 return -1;
5984             }
5985             goto LAST_MO;
5986         case 'o':
5987             if (last) {
5988                 return -1;
5989             }
5990             goto LAST_MO;
5991         default:
5992             return -1;
5993     }
5994 
5995 LAST_MO:
5996     NEXT_CHAR();
5997     switch (ch) {
5998         case 'D':
5999             if (last) {
6000                 return -1;
6001             }
6002             goto LAST_MOD;
6003         case 'd':
6004             if (last) {
6005                 return -1;
6006             }
6007             goto LAST_MOD;
6008         default:
6009             return -1;
6010     }
6011 
6012 LAST_MOD:
6013     NEXT_CHAR();
6014     switch (ch) {
6015         case 'I':
6016             if (last) {
6017                 return -1;
6018             }
6019             goto LAST_MODI;
6020         case 'i':
6021             if (last) {
6022                 return -1;
6023             }
6024             goto LAST_MODI;
6025         default:
6026             return -1;
6027     }
6028 
6029 LAST_MODI:
6030     NEXT_CHAR();
6031     switch (ch) {
6032         case 'F':
6033             if (last) {
6034                 return -1;
6035             }
6036             goto LAST_MODIF;
6037         case 'f':
6038             if (last) {
6039                 return -1;
6040             }
6041             goto LAST_MODIF;
6042         default:
6043             return -1;
6044     }
6045 
6046 LAST_MODIF:
6047     NEXT_CHAR();
6048     switch (ch) {
6049         case 'I':
6050             if (last) {
6051                 return -1;
6052             }
6053             goto LAST_MODIFI;
6054         case 'i':
6055             if (last) {
6056                 return -1;
6057             }
6058             goto LAST_MODIFI;
6059         default:
6060             return -1;
6061     }
6062 
6063 LAST_MODIFI:
6064     NEXT_CHAR();
6065     switch (ch) {
6066         case 'E':
6067             if (last) {
6068                 return -1;
6069             }
6070             goto LAST_MODIFIE;
6071         case 'e':
6072             if (last) {
6073                 return -1;
6074             }
6075             goto LAST_MODIFIE;
6076         default:
6077             return -1;
6078     }
6079 
6080 LAST_MODIFIE:
6081     NEXT_CHAR();
6082     switch (ch) {
6083         case 'D':
6084             if (last) {
6085                 return 44;
6086             }
6087             goto LAST_MODIFIED;
6088         case 'd':
6089             if (last) {
6090                 return 44;
6091             }
6092             goto LAST_MODIFIED;
6093         default:
6094             return -1;
6095     }
6096 
6097 LI:
6098     NEXT_CHAR();
6099     switch (ch) {
6100         case 'N':
6101             if (last) {
6102                 return -1;
6103             }
6104             goto LIN;
6105         case 'n':
6106             if (last) {
6107                 return -1;
6108             }
6109             goto LIN;
6110         default:
6111             return -1;
6112     }
6113 
6114 LIN:
6115     NEXT_CHAR();
6116     switch (ch) {
6117         case 'K':
6118             if (last) {
6119                 return 45;
6120             }
6121             goto LINK;
6122         case 'k':
6123             if (last) {
6124                 return 45;
6125             }
6126             goto LINK;
6127         default:
6128             return -1;
6129     }
6130 
6131 LO:
6132     NEXT_CHAR();
6133     switch (ch) {
6134         case 'C':
6135             if (last) {
6136                 return -1;
6137             }
6138             goto LOC;
6139         case 'c':
6140             if (last) {
6141                 return -1;
6142             }
6143             goto LOC;
6144         default:
6145             return -1;
6146     }
6147 
6148 LOC:
6149     NEXT_CHAR();
6150     switch (ch) {
6151         case 'A':
6152             if (last) {
6153                 return -1;
6154             }
6155             goto LOCA;
6156         case 'a':
6157             if (last) {
6158                 return -1;
6159             }
6160             goto LOCA;
6161         default:
6162             return -1;
6163     }
6164 
6165 LOCA:
6166     NEXT_CHAR();
6167     switch (ch) {
6168         case 'T':
6169             if (last) {
6170                 return -1;
6171             }
6172             goto LOCAT;
6173         case 't':
6174             if (last) {
6175                 return -1;
6176             }
6177             goto LOCAT;
6178         default:
6179             return -1;
6180     }
6181 
6182 LOCAT:
6183     NEXT_CHAR();
6184     switch (ch) {
6185         case 'I':
6186             if (last) {
6187                 return -1;
6188             }
6189             goto LOCATI;
6190         case 'i':
6191             if (last) {
6192                 return -1;
6193             }
6194             goto LOCATI;
6195         default:
6196             return -1;
6197     }
6198 
6199 LOCATI:
6200     NEXT_CHAR();
6201     switch (ch) {
6202         case 'O':
6203             if (last) {
6204                 return -1;
6205             }
6206             goto LOCATIO;
6207         case 'o':
6208             if (last) {
6209                 return -1;
6210             }
6211             goto LOCATIO;
6212         default:
6213             return -1;
6214     }
6215 
6216 LOCATIO:
6217     NEXT_CHAR();
6218     switch (ch) {
6219         case 'N':
6220             if (last) {
6221                 return 46;
6222             }
6223             goto LOCATION;
6224         case 'n':
6225             if (last) {
6226                 return 46;
6227             }
6228             goto LOCATION;
6229         default:
6230             return -1;
6231     }
6232 
6233 M:
6234     NEXT_CHAR();
6235     switch (ch) {
6236         case 'A':
6237             if (last) {
6238                 return -1;
6239             }
6240             goto MA;
6241         case 'a':
6242             if (last) {
6243                 return -1;
6244             }
6245             goto MA;
6246         default:
6247             return -1;
6248     }
6249 
6250 MA:
6251     NEXT_CHAR();
6252     switch (ch) {
6253         case 'X':
6254             if (last) {
6255                 return -1;
6256             }
6257             goto MAX;
6258         case 'x':
6259             if (last) {
6260                 return -1;
6261             }
6262             goto MAX;
6263         default:
6264             return -1;
6265     }
6266 
6267 MAX:
6268     NEXT_CHAR();
6269     switch (ch) {
6270         case '-':
6271             if (last) {
6272                 return -1;
6273             }
6274             goto MAX_;
6275         default:
6276             return -1;
6277     }
6278 
6279 MAX_:
6280     NEXT_CHAR();
6281     switch (ch) {
6282         case 'F':
6283             if (last) {
6284                 return -1;
6285             }
6286             goto MAX_F;
6287         case 'f':
6288             if (last) {
6289                 return -1;
6290             }
6291             goto MAX_F;
6292         default:
6293             return -1;
6294     }
6295 
6296 MAX_F:
6297     NEXT_CHAR();
6298     switch (ch) {
6299         case 'O':
6300             if (last) {
6301                 return -1;
6302             }
6303             goto MAX_FO;
6304         case 'o':
6305             if (last) {
6306                 return -1;
6307             }
6308             goto MAX_FO;
6309         default:
6310             return -1;
6311     }
6312 
6313 MAX_FO:
6314     NEXT_CHAR();
6315     switch (ch) {
6316         case 'R':
6317             if (last) {
6318                 return -1;
6319             }
6320             goto MAX_FOR;
6321         case 'r':
6322             if (last) {
6323                 return -1;
6324             }
6325             goto MAX_FOR;
6326         default:
6327             return -1;
6328     }
6329 
6330 MAX_FOR:
6331     NEXT_CHAR();
6332     switch (ch) {
6333         case 'W':
6334             if (last) {
6335                 return -1;
6336             }
6337             goto MAX_FORW;
6338         case 'w':
6339             if (last) {
6340                 return -1;
6341             }
6342             goto MAX_FORW;
6343         default:
6344             return -1;
6345     }
6346 
6347 MAX_FORW:
6348     NEXT_CHAR();
6349     switch (ch) {
6350         case 'A':
6351             if (last) {
6352                 return -1;
6353             }
6354             goto MAX_FORWA;
6355         case 'a':
6356             if (last) {
6357                 return -1;
6358             }
6359             goto MAX_FORWA;
6360         default:
6361             return -1;
6362     }
6363 
6364 MAX_FORWA:
6365     NEXT_CHAR();
6366     switch (ch) {
6367         case 'R':
6368             if (last) {
6369                 return -1;
6370             }
6371             goto MAX_FORWAR;
6372         case 'r':
6373             if (last) {
6374                 return -1;
6375             }
6376             goto MAX_FORWAR;
6377         default:
6378             return -1;
6379     }
6380 
6381 MAX_FORWAR:
6382     NEXT_CHAR();
6383     switch (ch) {
6384         case 'D':
6385             if (last) {
6386                 return -1;
6387             }
6388             goto MAX_FORWARD;
6389         case 'd':
6390             if (last) {
6391                 return -1;
6392             }
6393             goto MAX_FORWARD;
6394         default:
6395             return -1;
6396     }
6397 
6398 MAX_FORWARD:
6399     NEXT_CHAR();
6400     switch (ch) {
6401         case 'S':
6402             if (last) {
6403                 return 47;
6404             }
6405             goto MAX_FORWARDS;
6406         case 's':
6407             if (last) {
6408                 return 47;
6409             }
6410             goto MAX_FORWARDS;
6411         default:
6412             return -1;
6413     }
6414 
6415 O:
6416     NEXT_CHAR();
6417     switch (ch) {
6418         case 'R':
6419             if (last) {
6420                 return -1;
6421             }
6422             goto OR;
6423         case 'r':
6424             if (last) {
6425                 return -1;
6426             }
6427             goto OR;
6428         default:
6429             return -1;
6430     }
6431 
6432 OR:
6433     NEXT_CHAR();
6434     switch (ch) {
6435         case 'I':
6436             if (last) {
6437                 return -1;
6438             }
6439             goto ORI;
6440         case 'i':
6441             if (last) {
6442                 return -1;
6443             }
6444             goto ORI;
6445         default:
6446             return -1;
6447     }
6448 
6449 ORI:
6450     NEXT_CHAR();
6451     switch (ch) {
6452         case 'G':
6453             if (last) {
6454                 return -1;
6455             }
6456             goto ORIG;
6457         case 'g':
6458             if (last) {
6459                 return -1;
6460             }
6461             goto ORIG;
6462         default:
6463             return -1;
6464     }
6465 
6466 ORIG:
6467     NEXT_CHAR();
6468     switch (ch) {
6469         case 'I':
6470             if (last) {
6471                 return -1;
6472             }
6473             goto ORIGI;
6474         case 'i':
6475             if (last) {
6476                 return -1;
6477             }
6478             goto ORIGI;
6479         default:
6480             return -1;
6481     }
6482 
6483 ORIGI:
6484     NEXT_CHAR();
6485     switch (ch) {
6486         case 'N':
6487             if (last) {
6488                 return 48;
6489             }
6490             goto ORIGIN;
6491         case 'n':
6492             if (last) {
6493                 return 48;
6494             }
6495             goto ORIGIN;
6496         default:
6497             return -1;
6498     }
6499 
6500 P:
6501     NEXT_CHAR();
6502     switch (ch) {
6503         case 'R':
6504             if (last) {
6505                 return -1;
6506             }
6507             goto PR;
6508         case 'r':
6509             if (last) {
6510                 return -1;
6511             }
6512             goto PR;
6513         default:
6514             return -1;
6515     }
6516 
6517 PR:
6518     NEXT_CHAR();
6519     switch (ch) {
6520         case 'A':
6521             if (last) {
6522                 return -1;
6523             }
6524             goto PRA;
6525         case 'a':
6526             if (last) {
6527                 return -1;
6528             }
6529             goto PRA;
6530         case 'O':
6531             if (last) {
6532                 return -1;
6533             }
6534             goto PRO;
6535         case 'o':
6536             if (last) {
6537                 return -1;
6538             }
6539             goto PRO;
6540         default:
6541             return -1;
6542     }
6543 
6544 PRA:
6545     NEXT_CHAR();
6546     switch (ch) {
6547         case 'G':
6548             if (last) {
6549                 return -1;
6550             }
6551             goto PRAG;
6552         case 'g':
6553             if (last) {
6554                 return -1;
6555             }
6556             goto PRAG;
6557         default:
6558             return -1;
6559     }
6560 
6561 PRAG:
6562     NEXT_CHAR();
6563     switch (ch) {
6564         case 'M':
6565             if (last) {
6566                 return -1;
6567             }
6568             goto PRAGM;
6569         case 'm':
6570             if (last) {
6571                 return -1;
6572             }
6573             goto PRAGM;
6574         default:
6575             return -1;
6576     }
6577 
6578 PRAGM:
6579     NEXT_CHAR();
6580     switch (ch) {
6581         case 'A':
6582             if (last) {
6583                 return 49;
6584             }
6585             goto PRAGMA;
6586         case 'a':
6587             if (last) {
6588                 return 49;
6589             }
6590             goto PRAGMA;
6591         default:
6592             return -1;
6593     }
6594 
6595 PRO:
6596     NEXT_CHAR();
6597     switch (ch) {
6598         case 'X':
6599             if (last) {
6600                 return -1;
6601             }
6602             goto PROX;
6603         case 'x':
6604             if (last) {
6605                 return -1;
6606             }
6607             goto PROX;
6608         default:
6609             return -1;
6610     }
6611 
6612 PROX:
6613     NEXT_CHAR();
6614     switch (ch) {
6615         case 'Y':
6616             if (last) {
6617                 return -1;
6618             }
6619             goto PROXY;
6620         case 'y':
6621             if (last) {
6622                 return -1;
6623             }
6624             goto PROXY;
6625         default:
6626             return -1;
6627     }
6628 
6629 PROXY:
6630     NEXT_CHAR();
6631     switch (ch) {
6632         case '-':
6633             if (last) {
6634                 return -1;
6635             }
6636             goto PROXY_;
6637         default:
6638             return -1;
6639     }
6640 
6641 PROXY_:
6642     NEXT_CHAR();
6643     switch (ch) {
6644         case 'A':
6645             if (last) {
6646                 return -1;
6647             }
6648             goto PROXY_A;
6649         case 'a':
6650             if (last) {
6651                 return -1;
6652             }
6653             goto PROXY_A;
6654         default:
6655             return -1;
6656     }
6657 
6658 PROXY_A:
6659     NEXT_CHAR();
6660     switch (ch) {
6661         case 'U':
6662             if (last) {
6663                 return -1;
6664             }
6665             goto PROXY_AU;
6666         case 'u':
6667             if (last) {
6668                 return -1;
6669             }
6670             goto PROXY_AU;
6671         default:
6672             return -1;
6673     }
6674 
6675 PROXY_AU:
6676     NEXT_CHAR();
6677     switch (ch) {
6678         case 'T':
6679             if (last) {
6680                 return -1;
6681             }
6682             goto PROXY_AUT;
6683         case 't':
6684             if (last) {
6685                 return -1;
6686             }
6687             goto PROXY_AUT;
6688         default:
6689             return -1;
6690     }
6691 
6692 PROXY_AUT:
6693     NEXT_CHAR();
6694     switch (ch) {
6695         case 'H':
6696             if (last) {
6697                 return -1;
6698             }
6699             goto PROXY_AUTH;
6700         case 'h':
6701             if (last) {
6702                 return -1;
6703             }
6704             goto PROXY_AUTH;
6705         default:
6706             return -1;
6707     }
6708 
6709 PROXY_AUTH:
6710     NEXT_CHAR();
6711     switch (ch) {
6712         case 'E':
6713             if (last) {
6714                 return -1;
6715             }
6716             goto PROXY_AUTHE;
6717         case 'e':
6718             if (last) {
6719                 return -1;
6720             }
6721             goto PROXY_AUTHE;
6722         case 'O':
6723             if (last) {
6724                 return -1;
6725             }
6726             goto PROXY_AUTHO;
6727         case 'o':
6728             if (last) {
6729                 return -1;
6730             }
6731             goto PROXY_AUTHO;
6732         default:
6733             return -1;
6734     }
6735 
6736 PROXY_AUTHE:
6737     NEXT_CHAR();
6738     switch (ch) {
6739         case 'N':
6740             if (last) {
6741                 return -1;
6742             }
6743             goto PROXY_AUTHEN;
6744         case 'n':
6745             if (last) {
6746                 return -1;
6747             }
6748             goto PROXY_AUTHEN;
6749         default:
6750             return -1;
6751     }
6752 
6753 PROXY_AUTHEN:
6754     NEXT_CHAR();
6755     switch (ch) {
6756         case 'T':
6757             if (last) {
6758                 return -1;
6759             }
6760             goto PROXY_AUTHENT;
6761         case 't':
6762             if (last) {
6763                 return -1;
6764             }
6765             goto PROXY_AUTHENT;
6766         default:
6767             return -1;
6768     }
6769 
6770 PROXY_AUTHENT:
6771     NEXT_CHAR();
6772     switch (ch) {
6773         case 'I':
6774             if (last) {
6775                 return -1;
6776             }
6777             goto PROXY_AUTHENTI;
6778         case 'i':
6779             if (last) {
6780                 return -1;
6781             }
6782             goto PROXY_AUTHENTI;
6783         default:
6784             return -1;
6785     }
6786 
6787 PROXY_AUTHENTI:
6788     NEXT_CHAR();
6789     switch (ch) {
6790         case 'C':
6791             if (last) {
6792                 return -1;
6793             }
6794             goto PROXY_AUTHENTIC;
6795         case 'c':
6796             if (last) {
6797                 return -1;
6798             }
6799             goto PROXY_AUTHENTIC;
6800         default:
6801             return -1;
6802     }
6803 
6804 PROXY_AUTHENTIC:
6805     NEXT_CHAR();
6806     switch (ch) {
6807         case 'A':
6808             if (last) {
6809                 return -1;
6810             }
6811             goto PROXY_AUTHENTICA;
6812         case 'a':
6813             if (last) {
6814                 return -1;
6815             }
6816             goto PROXY_AUTHENTICA;
6817         default:
6818             return -1;
6819     }
6820 
6821 PROXY_AUTHENTICA:
6822     NEXT_CHAR();
6823     switch (ch) {
6824         case 'T':
6825             if (last) {
6826                 return -1;
6827             }
6828             goto PROXY_AUTHENTICAT;
6829         case 't':
6830             if (last) {
6831                 return -1;
6832             }
6833             goto PROXY_AUTHENTICAT;
6834         default:
6835             return -1;
6836     }
6837 
6838 PROXY_AUTHENTICAT:
6839     NEXT_CHAR();
6840     switch (ch) {
6841         case 'E':
6842             if (last) {
6843                 return 50;
6844             }
6845             goto PROXY_AUTHENTICATE;
6846         case 'e':
6847             if (last) {
6848                 return 50;
6849             }
6850             goto PROXY_AUTHENTICATE;
6851         default:
6852             return -1;
6853     }
6854 
6855 PROXY_AUTHO:
6856     NEXT_CHAR();
6857     switch (ch) {
6858         case 'R':
6859             if (last) {
6860                 return -1;
6861             }
6862             goto PROXY_AUTHOR;
6863         case 'r':
6864             if (last) {
6865                 return -1;
6866             }
6867             goto PROXY_AUTHOR;
6868         default:
6869             return -1;
6870     }
6871 
6872 PROXY_AUTHOR:
6873     NEXT_CHAR();
6874     switch (ch) {
6875         case 'I':
6876             if (last) {
6877                 return -1;
6878             }
6879             goto PROXY_AUTHORI;
6880         case 'i':
6881             if (last) {
6882                 return -1;
6883             }
6884             goto PROXY_AUTHORI;
6885         default:
6886             return -1;
6887     }
6888 
6889 PROXY_AUTHORI:
6890     NEXT_CHAR();
6891     switch (ch) {
6892         case 'Z':
6893             if (last) {
6894                 return -1;
6895             }
6896             goto PROXY_AUTHORIZ;
6897         case 'z':
6898             if (last) {
6899                 return -1;
6900             }
6901             goto PROXY_AUTHORIZ;
6902         default:
6903             return -1;
6904     }
6905 
6906 PROXY_AUTHORIZ:
6907     NEXT_CHAR();
6908     switch (ch) {
6909         case 'A':
6910             if (last) {
6911                 return -1;
6912             }
6913             goto PROXY_AUTHORIZA;
6914         case 'a':
6915             if (last) {
6916                 return -1;
6917             }
6918             goto PROXY_AUTHORIZA;
6919         default:
6920             return -1;
6921     }
6922 
6923 PROXY_AUTHORIZA:
6924     NEXT_CHAR();
6925     switch (ch) {
6926         case 'T':
6927             if (last) {
6928                 return -1;
6929             }
6930             goto PROXY_AUTHORIZAT;
6931         case 't':
6932             if (last) {
6933                 return -1;
6934             }
6935             goto PROXY_AUTHORIZAT;
6936         default:
6937             return -1;
6938     }
6939 
6940 PROXY_AUTHORIZAT:
6941     NEXT_CHAR();
6942     switch (ch) {
6943         case 'I':
6944             if (last) {
6945                 return -1;
6946             }
6947             goto PROXY_AUTHORIZATI;
6948         case 'i':
6949             if (last) {
6950                 return -1;
6951             }
6952             goto PROXY_AUTHORIZATI;
6953         default:
6954             return -1;
6955     }
6956 
6957 PROXY_AUTHORIZATI:
6958     NEXT_CHAR();
6959     switch (ch) {
6960         case 'O':
6961             if (last) {
6962                 return -1;
6963             }
6964             goto PROXY_AUTHORIZATIO;
6965         case 'o':
6966             if (last) {
6967                 return -1;
6968             }
6969             goto PROXY_AUTHORIZATIO;
6970         default:
6971             return -1;
6972     }
6973 
6974 PROXY_AUTHORIZATIO:
6975     NEXT_CHAR();
6976     switch (ch) {
6977         case 'N':
6978             if (last) {
6979                 return 51;
6980             }
6981             goto PROXY_AUTHORIZATION;
6982         case 'n':
6983             if (last) {
6984                 return 51;
6985             }
6986             goto PROXY_AUTHORIZATION;
6987         default:
6988             return -1;
6989     }
6990 
6991 R:
6992     NEXT_CHAR();
6993     switch (ch) {
6994         case 'A':
6995             if (last) {
6996                 return -1;
6997             }
6998             goto RA;
6999         case 'a':
7000             if (last) {
7001                 return -1;
7002             }
7003             goto RA;
7004         case 'E':
7005             if (last) {
7006                 return -1;
7007             }
7008             goto RE;
7009         case 'e':
7010             if (last) {
7011                 return -1;
7012             }
7013             goto RE;
7014         default:
7015             return -1;
7016     }
7017 
7018 RA:
7019     NEXT_CHAR();
7020     switch (ch) {
7021         case 'N':
7022             if (last) {
7023                 return -1;
7024             }
7025             goto RAN;
7026         case 'n':
7027             if (last) {
7028                 return -1;
7029             }
7030             goto RAN;
7031         default:
7032             return -1;
7033     }
7034 
7035 RAN:
7036     NEXT_CHAR();
7037     switch (ch) {
7038         case 'G':
7039             if (last) {
7040                 return -1;
7041             }
7042             goto RANG;
7043         case 'g':
7044             if (last) {
7045                 return -1;
7046             }
7047             goto RANG;
7048         default:
7049             return -1;
7050     }
7051 
7052 RANG:
7053     NEXT_CHAR();
7054     switch (ch) {
7055         case 'E':
7056             if (last) {
7057                 return 52;
7058             }
7059             goto RANGE;
7060         case 'e':
7061             if (last) {
7062                 return 52;
7063             }
7064             goto RANGE;
7065         default:
7066             return -1;
7067     }
7068 
7069 RE:
7070     NEXT_CHAR();
7071     switch (ch) {
7072         case 'F':
7073             if (last) {
7074                 return -1;
7075             }
7076             goto REF;
7077         case 'f':
7078             if (last) {
7079                 return -1;
7080             }
7081             goto REF;
7082         case 'T':
7083             if (last) {
7084                 return -1;
7085             }
7086             goto RET;
7087         case 't':
7088             if (last) {
7089                 return -1;
7090             }
7091             goto RET;
7092         default:
7093             return -1;
7094     }
7095 
7096 REF:
7097     NEXT_CHAR();
7098     switch (ch) {
7099         case 'E':
7100             if (last) {
7101                 return -1;
7102             }
7103             goto REFE;
7104         case 'e':
7105             if (last) {
7106                 return -1;
7107             }
7108             goto REFE;
7109         default:
7110             return -1;
7111     }
7112 
7113 REFE:
7114     NEXT_CHAR();
7115     switch (ch) {
7116         case 'R':
7117             if (last) {
7118                 return -1;
7119             }
7120             goto REFER;
7121         case 'r':
7122             if (last) {
7123                 return -1;
7124             }
7125             goto REFER;
7126         default:
7127             return -1;
7128     }
7129 
7130 REFER:
7131     NEXT_CHAR();
7132     switch (ch) {
7133         case 'E':
7134             if (last) {
7135                 return -1;
7136             }
7137             goto REFERE;
7138         case 'e':
7139             if (last) {
7140                 return -1;
7141             }
7142             goto REFERE;
7143         default:
7144             return -1;
7145     }
7146 
7147 REFERE:
7148     NEXT_CHAR();
7149     switch (ch) {
7150         case 'R':
7151             if (last) {
7152                 return 53;
7153             }
7154             goto REFERER;
7155         case 'r':
7156             if (last) {
7157                 return 53;
7158             }
7159             goto REFERER;
7160         default:
7161             return -1;
7162     }
7163 
7164 RET:
7165     NEXT_CHAR();
7166     switch (ch) {
7167         case 'R':
7168             if (last) {
7169                 return -1;
7170             }
7171             goto RETR;
7172         case 'r':
7173             if (last) {
7174                 return -1;
7175             }
7176             goto RETR;
7177         default:
7178             return -1;
7179     }
7180 
7181 RETR:
7182     NEXT_CHAR();
7183     switch (ch) {
7184         case 'Y':
7185             if (last) {
7186                 return -1;
7187             }
7188             goto RETRY;
7189         case 'y':
7190             if (last) {
7191                 return -1;
7192             }
7193             goto RETRY;
7194         default:
7195             return -1;
7196     }
7197 
7198 RETRY:
7199     NEXT_CHAR();
7200     switch (ch) {
7201         case '-':
7202             if (last) {
7203                 return -1;
7204             }
7205             goto RETRY_;
7206         default:
7207             return -1;
7208     }
7209 
7210 RETRY_:
7211     NEXT_CHAR();
7212     switch (ch) {
7213         case 'A':
7214             if (last) {
7215                 return -1;
7216             }
7217             goto RETRY_A;
7218         case 'a':
7219             if (last) {
7220                 return -1;
7221             }
7222             goto RETRY_A;
7223         default:
7224             return -1;
7225     }
7226 
7227 RETRY_A:
7228     NEXT_CHAR();
7229     switch (ch) {
7230         case 'F':
7231             if (last) {
7232                 return -1;
7233             }
7234             goto RETRY_AF;
7235         case 'f':
7236             if (last) {
7237                 return -1;
7238             }
7239             goto RETRY_AF;
7240         default:
7241             return -1;
7242     }
7243 
7244 RETRY_AF:
7245     NEXT_CHAR();
7246     switch (ch) {
7247         case 'T':
7248             if (last) {
7249                 return -1;
7250             }
7251             goto RETRY_AFT;
7252         case 't':
7253             if (last) {
7254                 return -1;
7255             }
7256             goto RETRY_AFT;
7257         default:
7258             return -1;
7259     }
7260 
7261 RETRY_AFT:
7262     NEXT_CHAR();
7263     switch (ch) {
7264         case 'E':
7265             if (last) {
7266                 return -1;
7267             }
7268             goto RETRY_AFTE;
7269         case 'e':
7270             if (last) {
7271                 return -1;
7272             }
7273             goto RETRY_AFTE;
7274         default:
7275             return -1;
7276     }
7277 
7278 RETRY_AFTE:
7279     NEXT_CHAR();
7280     switch (ch) {
7281         case 'R':
7282             if (last) {
7283                 return 54;
7284             }
7285             goto RETRY_AFTER;
7286         case 'r':
7287             if (last) {
7288                 return 54;
7289             }
7290             goto RETRY_AFTER;
7291         default:
7292             return -1;
7293     }
7294 
7295 S:
7296     NEXT_CHAR();
7297     switch (ch) {
7298         case 'E':
7299             if (last) {
7300                 return -1;
7301             }
7302             goto SE;
7303         case 'e':
7304             if (last) {
7305                 return -1;
7306             }
7307             goto SE;
7308         default:
7309             return -1;
7310     }
7311 
7312 SE:
7313     NEXT_CHAR();
7314     switch (ch) {
7315         case 'C':
7316             if (last) {
7317                 return -1;
7318             }
7319             goto SEC;
7320         case 'c':
7321             if (last) {
7322                 return -1;
7323             }
7324             goto SEC;
7325         case 'R':
7326             if (last) {
7327                 return -1;
7328             }
7329             goto SER;
7330         case 'r':
7331             if (last) {
7332                 return -1;
7333             }
7334             goto SER;
7335         case 'T':
7336             if (last) {
7337                 return -1;
7338             }
7339             goto SET;
7340         case 't':
7341             if (last) {
7342                 return -1;
7343             }
7344             goto SET;
7345         default:
7346             return -1;
7347     }
7348 
7349 SEC:
7350     NEXT_CHAR();
7351     switch (ch) {
7352         case '-':
7353             if (last) {
7354                 return -1;
7355             }
7356             goto SEC_;
7357         default:
7358             return -1;
7359     }
7360 
7361 SEC_:
7362     NEXT_CHAR();
7363     switch (ch) {
7364         case 'W':
7365             if (last) {
7366                 return -1;
7367             }
7368             goto SEC_W;
7369         case 'w':
7370             if (last) {
7371                 return -1;
7372             }
7373             goto SEC_W;
7374         default:
7375             return -1;
7376     }
7377 
7378 SEC_W:
7379     NEXT_CHAR();
7380     switch (ch) {
7381         case 'E':
7382             if (last) {
7383                 return -1;
7384             }
7385             goto SEC_WE;
7386         case 'e':
7387             if (last) {
7388                 return -1;
7389             }
7390             goto SEC_WE;
7391         default:
7392             return -1;
7393     }
7394 
7395 SEC_WE:
7396     NEXT_CHAR();
7397     switch (ch) {
7398         case 'B':
7399             if (last) {
7400                 return -1;
7401             }
7402             goto SEC_WEB;
7403         case 'b':
7404             if (last) {
7405                 return -1;
7406             }
7407             goto SEC_WEB;
7408         default:
7409             return -1;
7410     }
7411 
7412 SEC_WEB:
7413     NEXT_CHAR();
7414     switch (ch) {
7415         case 'S':
7416             if (last) {
7417                 return -1;
7418             }
7419             goto SEC_WEBS;
7420         case 's':
7421             if (last) {
7422                 return -1;
7423             }
7424             goto SEC_WEBS;
7425         default:
7426             return -1;
7427     }
7428 
7429 SEC_WEBS:
7430     NEXT_CHAR();
7431     switch (ch) {
7432         case 'O':
7433             if (last) {
7434                 return -1;
7435             }
7436             goto SEC_WEBSO;
7437         case 'o':
7438             if (last) {
7439                 return -1;
7440             }
7441             goto SEC_WEBSO;
7442         default:
7443             return -1;
7444     }
7445 
7446 SEC_WEBSO:
7447     NEXT_CHAR();
7448     switch (ch) {
7449         case 'C':
7450             if (last) {
7451                 return -1;
7452             }
7453             goto SEC_WEBSOC;
7454         case 'c':
7455             if (last) {
7456                 return -1;
7457             }
7458             goto SEC_WEBSOC;
7459         default:
7460             return -1;
7461     }
7462 
7463 SEC_WEBSOC:
7464     NEXT_CHAR();
7465     switch (ch) {
7466         case 'K':
7467             if (last) {
7468                 return -1;
7469             }
7470             goto SEC_WEBSOCK;
7471         case 'k':
7472             if (last) {
7473                 return -1;
7474             }
7475             goto SEC_WEBSOCK;
7476         default:
7477             return -1;
7478     }
7479 
7480 SEC_WEBSOCK:
7481     NEXT_CHAR();
7482     switch (ch) {
7483         case 'E':
7484             if (last) {
7485                 return -1;
7486             }
7487             goto SEC_WEBSOCKE;
7488         case 'e':
7489             if (last) {
7490                 return -1;
7491             }
7492             goto SEC_WEBSOCKE;
7493         default:
7494             return -1;
7495     }
7496 
7497 SEC_WEBSOCKE:
7498     NEXT_CHAR();
7499     switch (ch) {
7500         case 'T':
7501             if (last) {
7502                 return -1;
7503             }
7504             goto SEC_WEBSOCKET;
7505         case 't':
7506             if (last) {
7507                 return -1;
7508             }
7509             goto SEC_WEBSOCKET;
7510         default:
7511             return -1;
7512     }
7513 
7514 SEC_WEBSOCKET:
7515     NEXT_CHAR();
7516     switch (ch) {
7517         case '-':
7518             if (last) {
7519                 return -1;
7520             }
7521             goto SEC_WEBSOCKET_;
7522         default:
7523             return -1;
7524     }
7525 
7526 SEC_WEBSOCKET_:
7527     NEXT_CHAR();
7528     switch (ch) {
7529         case 'A':
7530             if (last) {
7531                 return -1;
7532             }
7533             goto SEC_WEBSOCKET_A;
7534         case 'a':
7535             if (last) {
7536                 return -1;
7537             }
7538             goto SEC_WEBSOCKET_A;
7539         case 'E':
7540             if (last) {
7541                 return -1;
7542             }
7543             goto SEC_WEBSOCKET_E;
7544         case 'e':
7545             if (last) {
7546                 return -1;
7547             }
7548             goto SEC_WEBSOCKET_E;
7549         case 'K':
7550             if (last) {
7551                 return -1;
7552             }
7553             goto SEC_WEBSOCKET_K;
7554         case 'k':
7555             if (last) {
7556                 return -1;
7557             }
7558             goto SEC_WEBSOCKET_K;
7559         case 'P':
7560             if (last) {
7561                 return -1;
7562             }
7563             goto SEC_WEBSOCKET_P;
7564         case 'p':
7565             if (last) {
7566                 return -1;
7567             }
7568             goto SEC_WEBSOCKET_P;
7569         case 'V':
7570             if (last) {
7571                 return -1;
7572             }
7573             goto SEC_WEBSOCKET_V;
7574         case 'v':
7575             if (last) {
7576                 return -1;
7577             }
7578             goto SEC_WEBSOCKET_V;
7579         default:
7580             return -1;
7581     }
7582 
7583 SEC_WEBSOCKET_A:
7584     NEXT_CHAR();
7585     switch (ch) {
7586         case 'C':
7587             if (last) {
7588                 return -1;
7589             }
7590             goto SEC_WEBSOCKET_AC;
7591         case 'c':
7592             if (last) {
7593                 return -1;
7594             }
7595             goto SEC_WEBSOCKET_AC;
7596         default:
7597             return -1;
7598     }
7599 
7600 SEC_WEBSOCKET_AC:
7601     NEXT_CHAR();
7602     switch (ch) {
7603         case 'C':
7604             if (last) {
7605                 return -1;
7606             }
7607             goto SEC_WEBSOCKET_ACC;
7608         case 'c':
7609             if (last) {
7610                 return -1;
7611             }
7612             goto SEC_WEBSOCKET_ACC;
7613         default:
7614             return -1;
7615     }
7616 
7617 SEC_WEBSOCKET_ACC:
7618     NEXT_CHAR();
7619     switch (ch) {
7620         case 'E':
7621             if (last) {
7622                 return -1;
7623             }
7624             goto SEC_WEBSOCKET_ACCE;
7625         case 'e':
7626             if (last) {
7627                 return -1;
7628             }
7629             goto SEC_WEBSOCKET_ACCE;
7630         default:
7631             return -1;
7632     }
7633 
7634 SEC_WEBSOCKET_ACCE:
7635     NEXT_CHAR();
7636     switch (ch) {
7637         case 'P':
7638             if (last) {
7639                 return -1;
7640             }
7641             goto SEC_WEBSOCKET_ACCEP;
7642         case 'p':
7643             if (last) {
7644                 return -1;
7645             }
7646             goto SEC_WEBSOCKET_ACCEP;
7647         default:
7648             return -1;
7649     }
7650 
7651 SEC_WEBSOCKET_ACCEP:
7652     NEXT_CHAR();
7653     switch (ch) {
7654         case 'T':
7655             if (last) {
7656                 return 55;
7657             }
7658             goto SEC_WEBSOCKET_ACCEPT;
7659         case 't':
7660             if (last) {
7661                 return 55;
7662             }
7663             goto SEC_WEBSOCKET_ACCEPT;
7664         default:
7665             return -1;
7666     }
7667 
7668 SEC_WEBSOCKET_E:
7669     NEXT_CHAR();
7670     switch (ch) {
7671         case 'X':
7672             if (last) {
7673                 return -1;
7674             }
7675             goto SEC_WEBSOCKET_EX;
7676         case 'x':
7677             if (last) {
7678                 return -1;
7679             }
7680             goto SEC_WEBSOCKET_EX;
7681         default:
7682             return -1;
7683     }
7684 
7685 SEC_WEBSOCKET_EX:
7686     NEXT_CHAR();
7687     switch (ch) {
7688         case 'T':
7689             if (last) {
7690                 return -1;
7691             }
7692             goto SEC_WEBSOCKET_EXT;
7693         case 't':
7694             if (last) {
7695                 return -1;
7696             }
7697             goto SEC_WEBSOCKET_EXT;
7698         default:
7699             return -1;
7700     }
7701 
7702 SEC_WEBSOCKET_EXT:
7703     NEXT_CHAR();
7704     switch (ch) {
7705         case 'E':
7706             if (last) {
7707                 return -1;
7708             }
7709             goto SEC_WEBSOCKET_EXTE;
7710         case 'e':
7711             if (last) {
7712                 return -1;
7713             }
7714             goto SEC_WEBSOCKET_EXTE;
7715         default:
7716             return -1;
7717     }
7718 
7719 SEC_WEBSOCKET_EXTE:
7720     NEXT_CHAR();
7721     switch (ch) {
7722         case 'N':
7723             if (last) {
7724                 return -1;
7725             }
7726             goto SEC_WEBSOCKET_EXTEN;
7727         case 'n':
7728             if (last) {
7729                 return -1;
7730             }
7731             goto SEC_WEBSOCKET_EXTEN;
7732         default:
7733             return -1;
7734     }
7735 
7736 SEC_WEBSOCKET_EXTEN:
7737     NEXT_CHAR();
7738     switch (ch) {
7739         case 'S':
7740             if (last) {
7741                 return -1;
7742             }
7743             goto SEC_WEBSOCKET_EXTENS;
7744         case 's':
7745             if (last) {
7746                 return -1;
7747             }
7748             goto SEC_WEBSOCKET_EXTENS;
7749         default:
7750             return -1;
7751     }
7752 
7753 SEC_WEBSOCKET_EXTENS:
7754     NEXT_CHAR();
7755     switch (ch) {
7756         case 'I':
7757             if (last) {
7758                 return -1;
7759             }
7760             goto SEC_WEBSOCKET_EXTENSI;
7761         case 'i':
7762             if (last) {
7763                 return -1;
7764             }
7765             goto SEC_WEBSOCKET_EXTENSI;
7766         default:
7767             return -1;
7768     }
7769 
7770 SEC_WEBSOCKET_EXTENSI:
7771     NEXT_CHAR();
7772     switch (ch) {
7773         case 'O':
7774             if (last) {
7775                 return -1;
7776             }
7777             goto SEC_WEBSOCKET_EXTENSIO;
7778         case 'o':
7779             if (last) {
7780                 return -1;
7781             }
7782             goto SEC_WEBSOCKET_EXTENSIO;
7783         default:
7784             return -1;
7785     }
7786 
7787 SEC_WEBSOCKET_EXTENSIO:
7788     NEXT_CHAR();
7789     switch (ch) {
7790         case 'N':
7791             if (last) {
7792                 return -1;
7793             }
7794             goto SEC_WEBSOCKET_EXTENSION;
7795         case 'n':
7796             if (last) {
7797                 return -1;
7798             }
7799             goto SEC_WEBSOCKET_EXTENSION;
7800         default:
7801             return -1;
7802     }
7803 
7804 SEC_WEBSOCKET_EXTENSION:
7805     NEXT_CHAR();
7806     switch (ch) {
7807         case 'S':
7808             if (last) {
7809                 return 56;
7810             }
7811             goto SEC_WEBSOCKET_EXTENSIONS;
7812         case 's':
7813             if (last) {
7814                 return 56;
7815             }
7816             goto SEC_WEBSOCKET_EXTENSIONS;
7817         default:
7818             return -1;
7819     }
7820 
7821 SEC_WEBSOCKET_K:
7822     NEXT_CHAR();
7823     switch (ch) {
7824         case 'E':
7825             if (last) {
7826                 return -1;
7827             }
7828             goto SEC_WEBSOCKET_KE;
7829         case 'e':
7830             if (last) {
7831                 return -1;
7832             }
7833             goto SEC_WEBSOCKET_KE;
7834         default:
7835             return -1;
7836     }
7837 
7838 SEC_WEBSOCKET_KE:
7839     NEXT_CHAR();
7840     switch (ch) {
7841         case 'Y':
7842             if (last) {
7843                 return 57;
7844             }
7845             goto SEC_WEBSOCKET_KEY;
7846         case 'y':
7847             if (last) {
7848                 return 57;
7849             }
7850             goto SEC_WEBSOCKET_KEY;
7851         default:
7852             return -1;
7853     }
7854 
7855 SEC_WEBSOCKET_KEY:
7856     NEXT_CHAR();
7857     switch (ch) {
7858         case '1':
7859             if (last) {
7860                 return 58;
7861             }
7862             goto SEC_WEBSOCKET_KEY1;
7863         default:
7864             return -1;
7865     }
7866 
7867 SEC_WEBSOCKET_P:
7868     NEXT_CHAR();
7869     switch (ch) {
7870         case 'R':
7871             if (last) {
7872                 return -1;
7873             }
7874             goto SEC_WEBSOCKET_PR;
7875         case 'r':
7876             if (last) {
7877                 return -1;
7878             }
7879             goto SEC_WEBSOCKET_PR;
7880         default:
7881             return -1;
7882     }
7883 
7884 SEC_WEBSOCKET_PR:
7885     NEXT_CHAR();
7886     switch (ch) {
7887         case 'O':
7888             if (last) {
7889                 return -1;
7890             }
7891             goto SEC_WEBSOCKET_PRO;
7892         case 'o':
7893             if (last) {
7894                 return -1;
7895             }
7896             goto SEC_WEBSOCKET_PRO;
7897         default:
7898             return -1;
7899     }
7900 
7901 SEC_WEBSOCKET_PRO:
7902     NEXT_CHAR();
7903     switch (ch) {
7904         case 'T':
7905             if (last) {
7906                 return -1;
7907             }
7908             goto SEC_WEBSOCKET_PROT;
7909         case 't':
7910             if (last) {
7911                 return -1;
7912             }
7913             goto SEC_WEBSOCKET_PROT;
7914         default:
7915             return -1;
7916     }
7917 
7918 SEC_WEBSOCKET_PROT:
7919     NEXT_CHAR();
7920     switch (ch) {
7921         case 'O':
7922             if (last) {
7923                 return -1;
7924             }
7925             goto SEC_WEBSOCKET_PROTO;
7926         case 'o':
7927             if (last) {
7928                 return -1;
7929             }
7930             goto SEC_WEBSOCKET_PROTO;
7931         default:
7932             return -1;
7933     }
7934 
7935 SEC_WEBSOCKET_PROTO:
7936     NEXT_CHAR();
7937     switch (ch) {
7938         case 'C':
7939             if (last) {
7940                 return -1;
7941             }
7942             goto SEC_WEBSOCKET_PROTOC;
7943         case 'c':
7944             if (last) {
7945                 return -1;
7946             }
7947             goto SEC_WEBSOCKET_PROTOC;
7948         default:
7949             return -1;
7950     }
7951 
7952 SEC_WEBSOCKET_PROTOC:
7953     NEXT_CHAR();
7954     switch (ch) {
7955         case 'O':
7956             if (last) {
7957                 return -1;
7958             }
7959             goto SEC_WEBSOCKET_PROTOCO;
7960         case 'o':
7961             if (last) {
7962                 return -1;
7963             }
7964             goto SEC_WEBSOCKET_PROTOCO;
7965         default:
7966             return -1;
7967     }
7968 
7969 SEC_WEBSOCKET_PROTOCO:
7970     NEXT_CHAR();
7971     switch (ch) {
7972         case 'L':
7973             if (last) {
7974                 return 59;
7975             }
7976             goto SEC_WEBSOCKET_PROTOCOL;
7977         case 'l':
7978             if (last) {
7979                 return 59;
7980             }
7981             goto SEC_WEBSOCKET_PROTOCOL;
7982         default:
7983             return -1;
7984     }
7985 
7986 SEC_WEBSOCKET_V:
7987     NEXT_CHAR();
7988     switch (ch) {
7989         case 'E':
7990             if (last) {
7991                 return -1;
7992             }
7993             goto SEC_WEBSOCKET_VE;
7994         case 'e':
7995             if (last) {
7996                 return -1;
7997             }
7998             goto SEC_WEBSOCKET_VE;
7999         default:
8000             return -1;
8001     }
8002 
8003 SEC_WEBSOCKET_VE:
8004     NEXT_CHAR();
8005     switch (ch) {
8006         case 'R':
8007             if (last) {
8008                 return -1;
8009             }
8010             goto SEC_WEBSOCKET_VER;
8011         case 'r':
8012             if (last) {
8013                 return -1;
8014             }
8015             goto SEC_WEBSOCKET_VER;
8016         default:
8017             return -1;
8018     }
8019 
8020 SEC_WEBSOCKET_VER:
8021     NEXT_CHAR();
8022     switch (ch) {
8023         case 'S':
8024             if (last) {
8025                 return -1;
8026             }
8027             goto SEC_WEBSOCKET_VERS;
8028         case 's':
8029             if (last) {
8030                 return -1;
8031             }
8032             goto SEC_WEBSOCKET_VERS;
8033         default:
8034             return -1;
8035     }
8036 
8037 SEC_WEBSOCKET_VERS:
8038     NEXT_CHAR();
8039     switch (ch) {
8040         case 'I':
8041             if (last) {
8042                 return -1;
8043             }
8044             goto SEC_WEBSOCKET_VERSI;
8045         case 'i':
8046             if (last) {
8047                 return -1;
8048             }
8049             goto SEC_WEBSOCKET_VERSI;
8050         default:
8051             return -1;
8052     }
8053 
8054 SEC_WEBSOCKET_VERSI:
8055     NEXT_CHAR();
8056     switch (ch) {
8057         case 'O':
8058             if (last) {
8059                 return -1;
8060             }
8061             goto SEC_WEBSOCKET_VERSIO;
8062         case 'o':
8063             if (last) {
8064                 return -1;
8065             }
8066             goto SEC_WEBSOCKET_VERSIO;
8067         default:
8068             return -1;
8069     }
8070 
8071 SEC_WEBSOCKET_VERSIO:
8072     NEXT_CHAR();
8073     switch (ch) {
8074         case 'N':
8075             if (last) {
8076                 return 60;
8077             }
8078             goto SEC_WEBSOCKET_VERSION;
8079         case 'n':
8080             if (last) {
8081                 return 60;
8082             }
8083             goto SEC_WEBSOCKET_VERSION;
8084         default:
8085             return -1;
8086     }
8087 
8088 SER:
8089     NEXT_CHAR();
8090     switch (ch) {
8091         case 'V':
8092             if (last) {
8093                 return -1;
8094             }
8095             goto SERV;
8096         case 'v':
8097             if (last) {
8098                 return -1;
8099             }
8100             goto SERV;
8101         default:
8102             return -1;
8103     }
8104 
8105 SERV:
8106     NEXT_CHAR();
8107     switch (ch) {
8108         case 'E':
8109             if (last) {
8110                 return -1;
8111             }
8112             goto SERVE;
8113         case 'e':
8114             if (last) {
8115                 return -1;
8116             }
8117             goto SERVE;
8118         default:
8119             return -1;
8120     }
8121 
8122 SERVE:
8123     NEXT_CHAR();
8124     switch (ch) {
8125         case 'R':
8126             if (last) {
8127                 return 61;
8128             }
8129             goto SERVER;
8130         case 'r':
8131             if (last) {
8132                 return 61;
8133             }
8134             goto SERVER;
8135         default:
8136             return -1;
8137     }
8138 
8139 SET:
8140     NEXT_CHAR();
8141     switch (ch) {
8142         case '-':
8143             if (last) {
8144                 return -1;
8145             }
8146             goto SET_;
8147         default:
8148             return -1;
8149     }
8150 
8151 SET_:
8152     NEXT_CHAR();
8153     switch (ch) {
8154         case 'C':
8155             if (last) {
8156                 return -1;
8157             }
8158             goto SET_C;
8159         case 'c':
8160             if (last) {
8161                 return -1;
8162             }
8163             goto SET_C;
8164         default:
8165             return -1;
8166     }
8167 
8168 SET_C:
8169     NEXT_CHAR();
8170     switch (ch) {
8171         case 'O':
8172             if (last) {
8173                 return -1;
8174             }
8175             goto SET_CO;
8176         case 'o':
8177             if (last) {
8178                 return -1;
8179             }
8180             goto SET_CO;
8181         default:
8182             return -1;
8183     }
8184 
8185 SET_CO:
8186     NEXT_CHAR();
8187     switch (ch) {
8188         case 'O':
8189             if (last) {
8190                 return -1;
8191             }
8192             goto SET_COO;
8193         case 'o':
8194             if (last) {
8195                 return -1;
8196             }
8197             goto SET_COO;
8198         default:
8199             return -1;
8200     }
8201 
8202 SET_COO:
8203     NEXT_CHAR();
8204     switch (ch) {
8205         case 'K':
8206             if (last) {
8207                 return -1;
8208             }
8209             goto SET_COOK;
8210         case 'k':
8211             if (last) {
8212                 return -1;
8213             }
8214             goto SET_COOK;
8215         default:
8216             return -1;
8217     }
8218 
8219 SET_COOK:
8220     NEXT_CHAR();
8221     switch (ch) {
8222         case 'I':
8223             if (last) {
8224                 return -1;
8225             }
8226             goto SET_COOKI;
8227         case 'i':
8228             if (last) {
8229                 return -1;
8230             }
8231             goto SET_COOKI;
8232         default:
8233             return -1;
8234     }
8235 
8236 SET_COOKI:
8237     NEXT_CHAR();
8238     switch (ch) {
8239         case 'E':
8240             if (last) {
8241                 return 62;
8242             }
8243             goto SET_COOKIE;
8244         case 'e':
8245             if (last) {
8246                 return 62;
8247             }
8248             goto SET_COOKIE;
8249         default:
8250             return -1;
8251     }
8252 
8253 T:
8254     NEXT_CHAR();
8255     switch (ch) {
8256         case 'E':
8257             if (last) {
8258                 return 63;
8259             }
8260             goto TE;
8261         case 'e':
8262             if (last) {
8263                 return 63;
8264             }
8265             goto TE;
8266         case 'R':
8267             if (last) {
8268                 return -1;
8269             }
8270             goto TR;
8271         case 'r':
8272             if (last) {
8273                 return -1;
8274             }
8275             goto TR;
8276         default:
8277             return -1;
8278     }
8279 
8280 TR:
8281     NEXT_CHAR();
8282     switch (ch) {
8283         case 'A':
8284             if (last) {
8285                 return -1;
8286             }
8287             goto TRA;
8288         case 'a':
8289             if (last) {
8290                 return -1;
8291             }
8292             goto TRA;
8293         default:
8294             return -1;
8295     }
8296 
8297 TRA:
8298     NEXT_CHAR();
8299     switch (ch) {
8300         case 'I':
8301             if (last) {
8302                 return -1;
8303             }
8304             goto TRAI;
8305         case 'i':
8306             if (last) {
8307                 return -1;
8308             }
8309             goto TRAI;
8310         case 'N':
8311             if (last) {
8312                 return -1;
8313             }
8314             goto TRAN;
8315         case 'n':
8316             if (last) {
8317                 return -1;
8318             }
8319             goto TRAN;
8320         default:
8321             return -1;
8322     }
8323 
8324 TRAI:
8325     NEXT_CHAR();
8326     switch (ch) {
8327         case 'L':
8328             if (last) {
8329                 return -1;
8330             }
8331             goto TRAIL;
8332         case 'l':
8333             if (last) {
8334                 return -1;
8335             }
8336             goto TRAIL;
8337         default:
8338             return -1;
8339     }
8340 
8341 TRAIL:
8342     NEXT_CHAR();
8343     switch (ch) {
8344         case 'E':
8345             if (last) {
8346                 return -1;
8347             }
8348             goto TRAILE;
8349         case 'e':
8350             if (last) {
8351                 return -1;
8352             }
8353             goto TRAILE;
8354         default:
8355             return -1;
8356     }
8357 
8358 TRAILE:
8359     NEXT_CHAR();
8360     switch (ch) {
8361         case 'R':
8362             if (last) {
8363                 return 64;
8364             }
8365             goto TRAILER;
8366         case 'r':
8367             if (last) {
8368                 return 64;
8369             }
8370             goto TRAILER;
8371         default:
8372             return -1;
8373     }
8374 
8375 TRAN:
8376     NEXT_CHAR();
8377     switch (ch) {
8378         case 'S':
8379             if (last) {
8380                 return -1;
8381             }
8382             goto TRANS;
8383         case 's':
8384             if (last) {
8385                 return -1;
8386             }
8387             goto TRANS;
8388         default:
8389             return -1;
8390     }
8391 
8392 TRANS:
8393     NEXT_CHAR();
8394     switch (ch) {
8395         case 'F':
8396             if (last) {
8397                 return -1;
8398             }
8399             goto TRANSF;
8400         case 'f':
8401             if (last) {
8402                 return -1;
8403             }
8404             goto TRANSF;
8405         default:
8406             return -1;
8407     }
8408 
8409 TRANSF:
8410     NEXT_CHAR();
8411     switch (ch) {
8412         case 'E':
8413             if (last) {
8414                 return -1;
8415             }
8416             goto TRANSFE;
8417         case 'e':
8418             if (last) {
8419                 return -1;
8420             }
8421             goto TRANSFE;
8422         default:
8423             return -1;
8424     }
8425 
8426 TRANSFE:
8427     NEXT_CHAR();
8428     switch (ch) {
8429         case 'R':
8430             if (last) {
8431                 return -1;
8432             }
8433             goto TRANSFER;
8434         case 'r':
8435             if (last) {
8436                 return -1;
8437             }
8438             goto TRANSFER;
8439         default:
8440             return -1;
8441     }
8442 
8443 TRANSFER:
8444     NEXT_CHAR();
8445     switch (ch) {
8446         case '-':
8447             if (last) {
8448                 return -1;
8449             }
8450             goto TRANSFER_;
8451         default:
8452             return -1;
8453     }
8454 
8455 TRANSFER_:
8456     NEXT_CHAR();
8457     switch (ch) {
8458         case 'E':
8459             if (last) {
8460                 return -1;
8461             }
8462             goto TRANSFER_E;
8463         case 'e':
8464             if (last) {
8465                 return -1;
8466             }
8467             goto TRANSFER_E;
8468         default:
8469             return -1;
8470     }
8471 
8472 TRANSFER_E:
8473     NEXT_CHAR();
8474     switch (ch) {
8475         case 'N':
8476             if (last) {
8477                 return -1;
8478             }
8479             goto TRANSFER_EN;
8480         case 'n':
8481             if (last) {
8482                 return -1;
8483             }
8484             goto TRANSFER_EN;
8485         default:
8486             return -1;
8487     }
8488 
8489 TRANSFER_EN:
8490     NEXT_CHAR();
8491     switch (ch) {
8492         case 'C':
8493             if (last) {
8494                 return -1;
8495             }
8496             goto TRANSFER_ENC;
8497         case 'c':
8498             if (last) {
8499                 return -1;
8500             }
8501             goto TRANSFER_ENC;
8502         default:
8503             return -1;
8504     }
8505 
8506 TRANSFER_ENC:
8507     NEXT_CHAR();
8508     switch (ch) {
8509         case 'O':
8510             if (last) {
8511                 return -1;
8512             }
8513             goto TRANSFER_ENCO;
8514         case 'o':
8515             if (last) {
8516                 return -1;
8517             }
8518             goto TRANSFER_ENCO;
8519         default:
8520             return -1;
8521     }
8522 
8523 TRANSFER_ENCO:
8524     NEXT_CHAR();
8525     switch (ch) {
8526         case 'D':
8527             if (last) {
8528                 return -1;
8529             }
8530             goto TRANSFER_ENCOD;
8531         case 'd':
8532             if (last) {
8533                 return -1;
8534             }
8535             goto TRANSFER_ENCOD;
8536         default:
8537             return -1;
8538     }
8539 
8540 TRANSFER_ENCOD:
8541     NEXT_CHAR();
8542     switch (ch) {
8543         case 'I':
8544             if (last) {
8545                 return -1;
8546             }
8547             goto TRANSFER_ENCODI;
8548         case 'i':
8549             if (last) {
8550                 return -1;
8551             }
8552             goto TRANSFER_ENCODI;
8553         default:
8554             return -1;
8555     }
8556 
8557 TRANSFER_ENCODI:
8558     NEXT_CHAR();
8559     switch (ch) {
8560         case 'N':
8561             if (last) {
8562                 return -1;
8563             }
8564             goto TRANSFER_ENCODIN;
8565         case 'n':
8566             if (last) {
8567                 return -1;
8568             }
8569             goto TRANSFER_ENCODIN;
8570         default:
8571             return -1;
8572     }
8573 
8574 TRANSFER_ENCODIN:
8575     NEXT_CHAR();
8576     switch (ch) {
8577         case 'G':
8578             if (last) {
8579                 return 65;
8580             }
8581             goto TRANSFER_ENCODING;
8582         case 'g':
8583             if (last) {
8584                 return 65;
8585             }
8586             goto TRANSFER_ENCODING;
8587         default:
8588             return -1;
8589     }
8590 
8591 U:
8592     NEXT_CHAR();
8593     switch (ch) {
8594         case 'R':
8595             if (last) {
8596                 return -1;
8597             }
8598             goto UR;
8599         case 'r':
8600             if (last) {
8601                 return -1;
8602             }
8603             goto UR;
8604         case 'P':
8605             if (last) {
8606                 return -1;
8607             }
8608             goto UP;
8609         case 'p':
8610             if (last) {
8611                 return -1;
8612             }
8613             goto UP;
8614         case 'S':
8615             if (last) {
8616                 return -1;
8617             }
8618             goto US;
8619         case 's':
8620             if (last) {
8621                 return -1;
8622             }
8623             goto US;
8624         default:
8625             return -1;
8626     }
8627 
8628 UR:
8629     NEXT_CHAR();
8630     switch (ch) {
8631         case 'I':
8632             if (last) {
8633                 return 66;
8634             }
8635             goto URI;
8636         case 'i':
8637             if (last) {
8638                 return 66;
8639             }
8640             goto URI;
8641         default:
8642             return -1;
8643     }
8644 
8645 UP:
8646     NEXT_CHAR();
8647     switch (ch) {
8648         case 'G':
8649             if (last) {
8650                 return -1;
8651             }
8652             goto UPG;
8653         case 'g':
8654             if (last) {
8655                 return -1;
8656             }
8657             goto UPG;
8658         default:
8659             return -1;
8660     }
8661 
8662 UPG:
8663     NEXT_CHAR();
8664     switch (ch) {
8665         case 'R':
8666             if (last) {
8667                 return -1;
8668             }
8669             goto UPGR;
8670         case 'r':
8671             if (last) {
8672                 return -1;
8673             }
8674             goto UPGR;
8675         default:
8676             return -1;
8677     }
8678 
8679 UPGR:
8680     NEXT_CHAR();
8681     switch (ch) {
8682         case 'A':
8683             if (last) {
8684                 return -1;
8685             }
8686             goto UPGRA;
8687         case 'a':
8688             if (last) {
8689                 return -1;
8690             }
8691             goto UPGRA;
8692         default:
8693             return -1;
8694     }
8695 
8696 UPGRA:
8697     NEXT_CHAR();
8698     switch (ch) {
8699         case 'D':
8700             if (last) {
8701                 return -1;
8702             }
8703             goto UPGRAD;
8704         case 'd':
8705             if (last) {
8706                 return -1;
8707             }
8708             goto UPGRAD;
8709         default:
8710             return -1;
8711     }
8712 
8713 UPGRAD:
8714     NEXT_CHAR();
8715     switch (ch) {
8716         case 'E':
8717             if (last) {
8718                 return 67;
8719             }
8720             goto UPGRADE;
8721         case 'e':
8722             if (last) {
8723                 return 67;
8724             }
8725             goto UPGRADE;
8726         default:
8727             return -1;
8728     }
8729 
8730 US:
8731     NEXT_CHAR();
8732     switch (ch) {
8733         case 'E':
8734             if (last) {
8735                 return -1;
8736             }
8737             goto USE;
8738         case 'e':
8739             if (last) {
8740                 return -1;
8741             }
8742             goto USE;
8743         default:
8744             return -1;
8745     }
8746 
8747 USE:
8748     NEXT_CHAR();
8749     switch (ch) {
8750         case 'R':
8751             if (last) {
8752                 return -1;
8753             }
8754             goto USER;
8755         case 'r':
8756             if (last) {
8757                 return -1;
8758             }
8759             goto USER;
8760         default:
8761             return -1;
8762     }
8763 
8764 USER:
8765     NEXT_CHAR();
8766     switch (ch) {
8767         case '-':
8768             if (last) {
8769                 return -1;
8770             }
8771             goto USER_;
8772         default:
8773             return -1;
8774     }
8775 
8776 USER_:
8777     NEXT_CHAR();
8778     switch (ch) {
8779         case 'A':
8780             if (last) {
8781                 return -1;
8782             }
8783             goto USER_A;
8784         case 'a':
8785             if (last) {
8786                 return -1;
8787             }
8788             goto USER_A;
8789         default:
8790             return -1;
8791     }
8792 
8793 USER_A:
8794     NEXT_CHAR();
8795     switch (ch) {
8796         case 'G':
8797             if (last) {
8798                 return -1;
8799             }
8800             goto USER_AG;
8801         case 'g':
8802             if (last) {
8803                 return -1;
8804             }
8805             goto USER_AG;
8806         default:
8807             return -1;
8808     }
8809 
8810 USER_AG:
8811     NEXT_CHAR();
8812     switch (ch) {
8813         case 'E':
8814             if (last) {
8815                 return -1;
8816             }
8817             goto USER_AGE;
8818         case 'e':
8819             if (last) {
8820                 return -1;
8821             }
8822             goto USER_AGE;
8823         default:
8824             return -1;
8825     }
8826 
8827 USER_AGE:
8828     NEXT_CHAR();
8829     switch (ch) {
8830         case 'N':
8831             if (last) {
8832                 return -1;
8833             }
8834             goto USER_AGEN;
8835         case 'n':
8836             if (last) {
8837                 return -1;
8838             }
8839             goto USER_AGEN;
8840         default:
8841             return -1;
8842     }
8843 
8844 USER_AGEN:
8845     NEXT_CHAR();
8846     switch (ch) {
8847         case 'T':
8848             if (last) {
8849                 return 68;
8850             }
8851             goto USER_AGENT;
8852         case 't':
8853             if (last) {
8854                 return 68;
8855             }
8856             goto USER_AGENT;
8857         default:
8858             return -1;
8859     }
8860 
8861 V:
8862     NEXT_CHAR();
8863     switch (ch) {
8864         case 'A':
8865             if (last) {
8866                 return -1;
8867             }
8868             goto VA;
8869         case 'a':
8870             if (last) {
8871                 return -1;
8872             }
8873             goto VA;
8874         case 'I':
8875             if (last) {
8876                 return -1;
8877             }
8878             goto VI;
8879         case 'i':
8880             if (last) {
8881                 return -1;
8882             }
8883             goto VI;
8884         default:
8885             return -1;
8886     }
8887 
8888 VA:
8889     NEXT_CHAR();
8890     switch (ch) {
8891         case 'R':
8892             if (last) {
8893                 return -1;
8894             }
8895             goto VAR;
8896         case 'r':
8897             if (last) {
8898                 return -1;
8899             }
8900             goto VAR;
8901         default:
8902             return -1;
8903     }
8904 
8905 VAR:
8906     NEXT_CHAR();
8907     switch (ch) {
8908         case 'Y':
8909             if (last) {
8910                 return 69;
8911             }
8912             goto VARY;
8913         case 'y':
8914             if (last) {
8915                 return 69;
8916             }
8917             goto VARY;
8918         default:
8919             return -1;
8920     }
8921 
8922 VI:
8923     NEXT_CHAR();
8924     switch (ch) {
8925         case 'A':
8926             if (last) {
8927                 return 70;
8928             }
8929             goto VIA;
8930         case 'a':
8931             if (last) {
8932                 return 70;
8933             }
8934             goto VIA;
8935         default:
8936             return -1;
8937     }
8938 
8939 W:
8940     NEXT_CHAR();
8941     switch (ch) {
8942         case 'W':
8943             if (last) {
8944                 return -1;
8945             }
8946             goto WW;
8947         case 'w':
8948             if (last) {
8949                 return -1;
8950             }
8951             goto WW;
8952         case 'A':
8953             if (last) {
8954                 return -1;
8955             }
8956             goto WA;
8957         case 'a':
8958             if (last) {
8959                 return -1;
8960             }
8961             goto WA;
8962         default:
8963             return -1;
8964     }
8965 
8966 WW:
8967     NEXT_CHAR();
8968     switch (ch) {
8969         case 'W':
8970             if (last) {
8971                 return -1;
8972             }
8973             goto WWW;
8974         case 'w':
8975             if (last) {
8976                 return -1;
8977             }
8978             goto WWW;
8979         default:
8980             return -1;
8981     }
8982 
8983 WWW:
8984     NEXT_CHAR();
8985     switch (ch) {
8986         case '-':
8987             if (last) {
8988                 return -1;
8989             }
8990             goto WWW_;
8991         default:
8992             return -1;
8993     }
8994 
8995 WWW_:
8996     NEXT_CHAR();
8997     switch (ch) {
8998         case 'A':
8999             if (last) {
9000                 return -1;
9001             }
9002             goto WWW_A;
9003         case 'a':
9004             if (last) {
9005                 return -1;
9006             }
9007             goto WWW_A;
9008         default:
9009             return -1;
9010     }
9011 
9012 WWW_A:
9013     NEXT_CHAR();
9014     switch (ch) {
9015         case 'U':
9016             if (last) {
9017                 return -1;
9018             }
9019             goto WWW_AU;
9020         case 'u':
9021             if (last) {
9022                 return -1;
9023             }
9024             goto WWW_AU;
9025         default:
9026             return -1;
9027     }
9028 
9029 WWW_AU:
9030     NEXT_CHAR();
9031     switch (ch) {
9032         case 'T':
9033             if (last) {
9034                 return -1;
9035             }
9036             goto WWW_AUT;
9037         case 't':
9038             if (last) {
9039                 return -1;
9040             }
9041             goto WWW_AUT;
9042         default:
9043             return -1;
9044     }
9045 
9046 WWW_AUT:
9047     NEXT_CHAR();
9048     switch (ch) {
9049         case 'H':
9050             if (last) {
9051                 return -1;
9052             }
9053             goto WWW_AUTH;
9054         case 'h':
9055             if (last) {
9056                 return -1;
9057             }
9058             goto WWW_AUTH;
9059         default:
9060             return -1;
9061     }
9062 
9063 WWW_AUTH:
9064     NEXT_CHAR();
9065     switch (ch) {
9066         case 'E':
9067             if (last) {
9068                 return -1;
9069             }
9070             goto WWW_AUTHE;
9071         case 'e':
9072             if (last) {
9073                 return -1;
9074             }
9075             goto WWW_AUTHE;
9076         default:
9077             return -1;
9078     }
9079 
9080 WWW_AUTHE:
9081     NEXT_CHAR();
9082     switch (ch) {
9083         case 'N':
9084             if (last) {
9085                 return -1;
9086             }
9087             goto WWW_AUTHEN;
9088         case 'n':
9089             if (last) {
9090                 return -1;
9091             }
9092             goto WWW_AUTHEN;
9093         default:
9094             return -1;
9095     }
9096 
9097 WWW_AUTHEN:
9098     NEXT_CHAR();
9099     switch (ch) {
9100         case 'T':
9101             if (last) {
9102                 return -1;
9103             }
9104             goto WWW_AUTHENT;
9105         case 't':
9106             if (last) {
9107                 return -1;
9108             }
9109             goto WWW_AUTHENT;
9110         default:
9111             return -1;
9112     }
9113 
9114 WWW_AUTHENT:
9115     NEXT_CHAR();
9116     switch (ch) {
9117         case 'I':
9118             if (last) {
9119                 return -1;
9120             }
9121             goto WWW_AUTHENTI;
9122         case 'i':
9123             if (last) {
9124                 return -1;
9125             }
9126             goto WWW_AUTHENTI;
9127         default:
9128             return -1;
9129     }
9130 
9131 WWW_AUTHENTI:
9132     NEXT_CHAR();
9133     switch (ch) {
9134         case 'C':
9135             if (last) {
9136                 return -1;
9137             }
9138             goto WWW_AUTHENTIC;
9139         case 'c':
9140             if (last) {
9141                 return -1;
9142             }
9143             goto WWW_AUTHENTIC;
9144         default:
9145             return -1;
9146     }
9147 
9148 WWW_AUTHENTIC:
9149     NEXT_CHAR();
9150     switch (ch) {
9151         case 'A':
9152             if (last) {
9153                 return -1;
9154             }
9155             goto WWW_AUTHENTICA;
9156         case 'a':
9157             if (last) {
9158                 return -1;
9159             }
9160             goto WWW_AUTHENTICA;
9161         default:
9162             return -1;
9163     }
9164 
9165 WWW_AUTHENTICA:
9166     NEXT_CHAR();
9167     switch (ch) {
9168         case 'T':
9169             if (last) {
9170                 return -1;
9171             }
9172             goto WWW_AUTHENTICAT;
9173         case 't':
9174             if (last) {
9175                 return -1;
9176             }
9177             goto WWW_AUTHENTICAT;
9178         default:
9179             return -1;
9180     }
9181 
9182 WWW_AUTHENTICAT:
9183     NEXT_CHAR();
9184     switch (ch) {
9185         case 'E':
9186             if (last) {
9187                 return 71;
9188             }
9189             goto WWW_AUTHENTICATE;
9190         case 'e':
9191             if (last) {
9192                 return 71;
9193             }
9194             goto WWW_AUTHENTICATE;
9195         default:
9196             return -1;
9197     }
9198 
9199 WA:
9200     NEXT_CHAR();
9201     switch (ch) {
9202         case 'N':
9203             if (last) {
9204                 return -1;
9205             }
9206             goto WAN;
9207         case 'n':
9208             if (last) {
9209                 return -1;
9210             }
9211             goto WAN;
9212         case 'R':
9213             if (last) {
9214                 return -1;
9215             }
9216             goto WAR;
9217         case 'r':
9218             if (last) {
9219                 return -1;
9220             }
9221             goto WAR;
9222         default:
9223             return -1;
9224     }
9225 
9226 WAN:
9227     NEXT_CHAR();
9228     switch (ch) {
9229         case 'T':
9230             if (last) {
9231                 return -1;
9232             }
9233             goto WANT;
9234         case 't':
9235             if (last) {
9236                 return -1;
9237             }
9238             goto WANT;
9239         default:
9240             return -1;
9241     }
9242 
9243 WANT:
9244     NEXT_CHAR();
9245     switch (ch) {
9246         case '-':
9247             if (last) {
9248                 return -1;
9249             }
9250             goto WANT_;
9251         default:
9252             return -1;
9253     }
9254 
9255 WANT_:
9256     NEXT_CHAR();
9257     switch (ch) {
9258         case 'D':
9259             if (last) {
9260                 return -1;
9261             }
9262             goto WANT_D;
9263         case 'd':
9264             if (last) {
9265                 return -1;
9266             }
9267             goto WANT_D;
9268         default:
9269             return -1;
9270     }
9271 
9272 WANT_D:
9273     NEXT_CHAR();
9274     switch (ch) {
9275         case 'I':
9276             if (last) {
9277                 return -1;
9278             }
9279             goto WANT_DI;
9280         case 'i':
9281             if (last) {
9282                 return -1;
9283             }
9284             goto WANT_DI;
9285         default:
9286             return -1;
9287     }
9288 
9289 WANT_DI:
9290     NEXT_CHAR();
9291     switch (ch) {
9292         case 'G':
9293             if (last) {
9294                 return -1;
9295             }
9296             goto WANT_DIG;
9297         case 'g':
9298             if (last) {
9299                 return -1;
9300             }
9301             goto WANT_DIG;
9302         default:
9303             return -1;
9304     }
9305 
9306 WANT_DIG:
9307     NEXT_CHAR();
9308     switch (ch) {
9309         case 'E':
9310             if (last) {
9311                 return -1;
9312             }
9313             goto WANT_DIGE;
9314         case 'e':
9315             if (last) {
9316                 return -1;
9317             }
9318             goto WANT_DIGE;
9319         default:
9320             return -1;
9321     }
9322 
9323 WANT_DIGE:
9324     NEXT_CHAR();
9325     switch (ch) {
9326         case 'S':
9327             if (last) {
9328                 return -1;
9329             }
9330             goto WANT_DIGES;
9331         case 's':
9332             if (last) {
9333                 return -1;
9334             }
9335             goto WANT_DIGES;
9336         default:
9337             return -1;
9338     }
9339 
9340 WANT_DIGES:
9341     NEXT_CHAR();
9342     switch (ch) {
9343         case 'T':
9344             if (last) {
9345                 return 72;
9346             }
9347             goto WANT_DIGEST;
9348         case 't':
9349             if (last) {
9350                 return 72;
9351             }
9352             goto WANT_DIGEST;
9353         default:
9354             return -1;
9355     }
9356 
9357 WAR:
9358     NEXT_CHAR();
9359     switch (ch) {
9360         case 'N':
9361             if (last) {
9362                 return -1;
9363             }
9364             goto WARN;
9365         case 'n':
9366             if (last) {
9367                 return -1;
9368             }
9369             goto WARN;
9370         default:
9371             return -1;
9372     }
9373 
9374 WARN:
9375     NEXT_CHAR();
9376     switch (ch) {
9377         case 'I':
9378             if (last) {
9379                 return -1;
9380             }
9381             goto WARNI;
9382         case 'i':
9383             if (last) {
9384                 return -1;
9385             }
9386             goto WARNI;
9387         default:
9388             return -1;
9389     }
9390 
9391 WARNI:
9392     NEXT_CHAR();
9393     switch (ch) {
9394         case 'N':
9395             if (last) {
9396                 return -1;
9397             }
9398             goto WARNIN;
9399         case 'n':
9400             if (last) {
9401                 return -1;
9402             }
9403             goto WARNIN;
9404         default:
9405             return -1;
9406     }
9407 
9408 WARNIN:
9409     NEXT_CHAR();
9410     switch (ch) {
9411         case 'G':
9412             if (last) {
9413                 return 73;
9414             }
9415             goto WARNING;
9416         case 'g':
9417             if (last) {
9418                 return 73;
9419             }
9420             goto WARNING;
9421         default:
9422             return -1;
9423     }
9424 
9425 X:
9426     NEXT_CHAR();
9427     switch (ch) {
9428         case '-':
9429             if (last) {
9430                 return -1;
9431             }
9432             goto X_;
9433         default:
9434             return -1;
9435     }
9436 
9437 X_:
9438     NEXT_CHAR();
9439     switch (ch) {
9440         case 'F':
9441             if (last) {
9442                 return -1;
9443             }
9444             goto X_F;
9445         case 'f':
9446             if (last) {
9447                 return -1;
9448             }
9449             goto X_F;
9450         default:
9451             return -1;
9452     }
9453 
9454 X_F:
9455     NEXT_CHAR();
9456     switch (ch) {
9457         case 'O':
9458             if (last) {
9459                 return -1;
9460             }
9461             goto X_FO;
9462         case 'o':
9463             if (last) {
9464                 return -1;
9465             }
9466             goto X_FO;
9467         default:
9468             return -1;
9469     }
9470 
9471 X_FO:
9472     NEXT_CHAR();
9473     switch (ch) {
9474         case 'R':
9475             if (last) {
9476                 return -1;
9477             }
9478             goto X_FOR;
9479         case 'r':
9480             if (last) {
9481                 return -1;
9482             }
9483             goto X_FOR;
9484         default:
9485             return -1;
9486     }
9487 
9488 X_FOR:
9489     NEXT_CHAR();
9490     switch (ch) {
9491         case 'W':
9492             if (last) {
9493                 return -1;
9494             }
9495             goto X_FORW;
9496         case 'w':
9497             if (last) {
9498                 return -1;
9499             }
9500             goto X_FORW;
9501         default:
9502             return -1;
9503     }
9504 
9505 X_FORW:
9506     NEXT_CHAR();
9507     switch (ch) {
9508         case 'A':
9509             if (last) {
9510                 return -1;
9511             }
9512             goto X_FORWA;
9513         case 'a':
9514             if (last) {
9515                 return -1;
9516             }
9517             goto X_FORWA;
9518         default:
9519             return -1;
9520     }
9521 
9522 X_FORWA:
9523     NEXT_CHAR();
9524     switch (ch) {
9525         case 'R':
9526             if (last) {
9527                 return -1;
9528             }
9529             goto X_FORWAR;
9530         case 'r':
9531             if (last) {
9532                 return -1;
9533             }
9534             goto X_FORWAR;
9535         default:
9536             return -1;
9537     }
9538 
9539 X_FORWAR:
9540     NEXT_CHAR();
9541     switch (ch) {
9542         case 'D':
9543             if (last) {
9544                 return -1;
9545             }
9546             goto X_FORWARD;
9547         case 'd':
9548             if (last) {
9549                 return -1;
9550             }
9551             goto X_FORWARD;
9552         default:
9553             return -1;
9554     }
9555 
9556 X_FORWARD:
9557     NEXT_CHAR();
9558     switch (ch) {
9559         case 'E':
9560             if (last) {
9561                 return -1;
9562             }
9563             goto X_FORWARDE;
9564         case 'e':
9565             if (last) {
9566                 return -1;
9567             }
9568             goto X_FORWARDE;
9569         default:
9570             return -1;
9571     }
9572 
9573 X_FORWARDE:
9574     NEXT_CHAR();
9575     switch (ch) {
9576         case 'D':
9577             if (last) {
9578                 return -1;
9579             }
9580             goto X_FORWARDED;
9581         case 'd':
9582             if (last) {
9583                 return -1;
9584             }
9585             goto X_FORWARDED;
9586         default:
9587             return -1;
9588     }
9589 
9590 X_FORWARDED:
9591     NEXT_CHAR();
9592     switch (ch) {
9593         case '-':
9594             if (last) {
9595                 return -1;
9596             }
9597             goto X_FORWARDED_;
9598         default:
9599             return -1;
9600     }
9601 
9602 X_FORWARDED_:
9603     NEXT_CHAR();
9604     switch (ch) {
9605         case 'F':
9606             if (last) {
9607                 return -1;
9608             }
9609             goto X_FORWARDED_F;
9610         case 'f':
9611             if (last) {
9612                 return -1;
9613             }
9614             goto X_FORWARDED_F;
9615         case 'H':
9616             if (last) {
9617                 return -1;
9618             }
9619             goto X_FORWARDED_H;
9620         case 'h':
9621             if (last) {
9622                 return -1;
9623             }
9624             goto X_FORWARDED_H;
9625         case 'P':
9626             if (last) {
9627                 return -1;
9628             }
9629             goto X_FORWARDED_P;
9630         case 'p':
9631             if (last) {
9632                 return -1;
9633             }
9634             goto X_FORWARDED_P;
9635         default:
9636             return -1;
9637     }
9638 
9639 X_FORWARDED_F:
9640     NEXT_CHAR();
9641     switch (ch) {
9642         case 'O':
9643             if (last) {
9644                 return -1;
9645             }
9646             goto X_FORWARDED_FO;
9647         case 'o':
9648             if (last) {
9649                 return -1;
9650             }
9651             goto X_FORWARDED_FO;
9652         default:
9653             return -1;
9654     }
9655 
9656 X_FORWARDED_FO:
9657     NEXT_CHAR();
9658     switch (ch) {
9659         case 'R':
9660             if (last) {
9661                 return 74;
9662             }
9663             goto X_FORWARDED_FOR;
9664         case 'r':
9665             if (last) {
9666                 return 74;
9667             }
9668             goto X_FORWARDED_FOR;
9669         default:
9670             return -1;
9671     }
9672 
9673 X_FORWARDED_H:
9674     NEXT_CHAR();
9675     switch (ch) {
9676         case 'O':
9677             if (last) {
9678                 return -1;
9679             }
9680             goto X_FORWARDED_HO;
9681         case 'o':
9682             if (last) {
9683                 return -1;
9684             }
9685             goto X_FORWARDED_HO;
9686         default:
9687             return -1;
9688     }
9689 
9690 X_FORWARDED_HO:
9691     NEXT_CHAR();
9692     switch (ch) {
9693         case 'S':
9694             if (last) {
9695                 return -1;
9696             }
9697             goto X_FORWARDED_HOS;
9698         case 's':
9699             if (last) {
9700                 return -1;
9701             }
9702             goto X_FORWARDED_HOS;
9703         default:
9704             return -1;
9705     }
9706 
9707 X_FORWARDED_HOS:
9708     NEXT_CHAR();
9709     switch (ch) {
9710         case 'T':
9711             if (last) {
9712                 return 75;
9713             }
9714             goto X_FORWARDED_HOST;
9715         case 't':
9716             if (last) {
9717                 return 75;
9718             }
9719             goto X_FORWARDED_HOST;
9720         default:
9721             return -1;
9722     }
9723 
9724 X_FORWARDED_P:
9725     NEXT_CHAR();
9726     switch (ch) {
9727         case 'R':
9728             if (last) {
9729                 return -1;
9730             }
9731             goto X_FORWARDED_PR;
9732         case 'r':
9733             if (last) {
9734                 return -1;
9735             }
9736             goto X_FORWARDED_PR;
9737         default:
9738             return -1;
9739     }
9740 
9741 X_FORWARDED_PR:
9742     NEXT_CHAR();
9743     switch (ch) {
9744         case 'O':
9745             if (last) {
9746                 return -1;
9747             }
9748             goto X_FORWARDED_PRO;
9749         case 'o':
9750             if (last) {
9751                 return -1;
9752             }
9753             goto X_FORWARDED_PRO;
9754         default:
9755             return -1;
9756     }
9757 
9758 X_FORWARDED_PRO:
9759     NEXT_CHAR();
9760     switch (ch) {
9761         case 'T':
9762             if (last) {
9763                 return -1;
9764             }
9765             goto X_FORWARDED_PROT;
9766         case 't':
9767             if (last) {
9768                 return -1;
9769             }
9770             goto X_FORWARDED_PROT;
9771         default:
9772             return -1;
9773     }
9774 
9775 X_FORWARDED_PROT:
9776     NEXT_CHAR();
9777     switch (ch) {
9778         case 'O':
9779             if (last) {
9780                 return 76;
9781             }
9782             goto X_FORWARDED_PROTO;
9783         case 'o':
9784             if (last) {
9785                 return 76;
9786             }
9787             goto X_FORWARDED_PROTO;
9788         default:
9789             return -1;
9790     }
9791 
9792 ACCEPT_CHARSET:
9793 ACCEPT_ENCODING:
9794 ACCEPT_LANGUAGE:
9795 ACCEPT_RANGES:
9796 ACCESS_CONTROL_ALLOW_CREDENTIALS:
9797 ACCESS_CONTROL_ALLOW_HEADERS:
9798 ACCESS_CONTROL_ALLOW_METHODS:
9799 ACCESS_CONTROL_ALLOW_ORIGIN:
9800 ACCESS_CONTROL_EXPOSE_HEADERS:
9801 ACCESS_CONTROL_MAX_AGE:
9802 ACCESS_CONTROL_REQUEST_HEADERS:
9803 ACCESS_CONTROL_REQUEST_METHOD:
9804 AGE:
9805 ALLOW:
9806 AUTHORIZATION:
9807 CACHE_CONTROL:
9808 CONNECTION:
9809 CONTENT_DISPOSITION:
9810 CONTENT_ENCODING:
9811 CONTENT_LANGUAGE:
9812 CONTENT_LENGTH:
9813 CONTENT_LOCATION:
9814 CONTENT_MD5:
9815 CONTENT_RANGE:
9816 CONTENT_TRANSFER_ENCODING:
9817 CONTENT_TYPE:
9818 COOKIE:
9819 DATE:
9820 DESTINATION:
9821 DIGEST:
9822 ETAG:
9823 EXPECT:
9824 EXPIRES:
9825 FORWARDED:
9826 FROM:
9827 HOST:
9828 IF_MATCH:
9829 IF_MODIFIED_SINCE:
9830 IF_NONE_MATCH:
9831 IF_RANGE:
9832 IF_UNMODIFIED_SINCE:
9833 KEEP_ALIVE:
9834 LAST_EVENT_ID:
9835 LAST_MODIFIED:
9836 LINK:
9837 LOCATION:
9838 MAX_FORWARDS:
9839 ORIGIN:
9840 PRAGMA:
9841 PROXY_AUTHENTICATE:
9842 PROXY_AUTHORIZATION:
9843 RANGE:
9844 REFERER:
9845 RETRY_AFTER:
9846 SEC_WEBSOCKET_ACCEPT:
9847 SEC_WEBSOCKET_EXTENSIONS:
9848 SEC_WEBSOCKET_KEY1:
9849 SEC_WEBSOCKET_PROTOCOL:
9850 SEC_WEBSOCKET_VERSION:
9851 SERVER:
9852 SET_COOKIE:
9853 TE:
9854 TRAILER:
9855 TRANSFER_ENCODING:
9856 UPGRADE:
9857 URI:
9858 USER_AGENT:
9859 VARY:
9860 VIA:
9861 WANT_DIGEST:
9862 WARNING:
9863 WWW_AUTHENTICATE:
9864 X_FORWARDED_FOR:
9865 X_FORWARDED_HOST:
9866 X_FORWARDED_PROTO:
9867 missing:
9868     /* nothing found */
9869     return -1;
9870 }
9871