• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #if LLHTTP_STRICT_MODE
2 
3 #include <stdlib.h>
4 #include <stdint.h>
5 #include <string.h>
6 
7 #ifdef __SSE4_2__
8  #ifdef _MSC_VER
9   #include <nmmintrin.h>
10  #else  /* !_MSC_VER */
11   #include <x86intrin.h>
12  #endif  /* _MSC_VER */
13 #endif  /* __SSE4_2__ */
14 
15 #ifdef _MSC_VER
16  #define ALIGN(n) _declspec(align(n))
17 #else  /* !_MSC_VER */
18  #define ALIGN(n) __attribute__((aligned(n)))
19 #endif  /* _MSC_VER */
20 
21 #include "llhttp.h"
22 
23 typedef int (*llhttp__internal__span_cb)(
24              llhttp__internal_t*, const char*, const char*);
25 
26 static const unsigned char llparse_blob0[] = {
27   'C', 'L'
28 };
29 static const unsigned char llparse_blob1[] = {
30   0xd, 0xa
31 };
32 static const unsigned char llparse_blob2[] = {
33   'o', 'n'
34 };
35 static const unsigned char llparse_blob3[] = {
36   'e', 'c', 't', 'i', 'o', 'n'
37 };
38 static const unsigned char llparse_blob4[] = {
39   'l', 'o', 's', 'e'
40 };
41 static const unsigned char llparse_blob5[] = {
42   'e', 'e', 'p', '-', 'a', 'l', 'i', 'v', 'e'
43 };
44 static const unsigned char llparse_blob6[] = {
45   'p', 'g', 'r', 'a', 'd', 'e'
46 };
47 static const unsigned char llparse_blob7[] = {
48   'c', 'h', 'u', 'n', 'k', 'e', 'd'
49 };
50 #ifdef __SSE4_2__
51 static const unsigned char ALIGN(16) llparse_blob8[] = {
52   0x9, 0x9, ' ', '~', 0x80, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0,
53   0x0, 0x0, 0x0, 0x0, 0x0
54 };
55 #endif  /* __SSE4_2__ */
56 #ifdef __SSE4_2__
57 static const unsigned char ALIGN(16) llparse_blob9[] = {
58   '!', '!', '#', '\'', '*', '+', '-', '.', '0', '9', 'A',
59   'Z', '^', 'z', '|', '|'
60 };
61 #endif  /* __SSE4_2__ */
62 #ifdef __SSE4_2__
63 static const unsigned char ALIGN(16) llparse_blob10[] = {
64   '~', '~', 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
65   0x0, 0x0, 0x0, 0x0, 0x0
66 };
67 #endif  /* __SSE4_2__ */
68 static const unsigned char llparse_blob11[] = {
69   'e', 'n', 't', '-', 'l', 'e', 'n', 'g', 't', 'h'
70 };
71 static const unsigned char llparse_blob12[] = {
72   'r', 'o', 'x', 'y', '-', 'c', 'o', 'n', 'n', 'e', 'c',
73   't', 'i', 'o', 'n'
74 };
75 static const unsigned char llparse_blob13[] = {
76   'r', 'a', 'n', 's', 'f', 'e', 'r', '-', 'e', 'n', 'c',
77   'o', 'd', 'i', 'n', 'g'
78 };
79 static const unsigned char llparse_blob14[] = {
80   'p', 'g', 'r', 'a', 'd', 'e'
81 };
82 static const unsigned char llparse_blob15[] = {
83   'T', 'T', 'P', '/'
84 };
85 static const unsigned char llparse_blob16[] = {
86   'C', 'E', '/'
87 };
88 static const unsigned char llparse_blob17[] = {
89   'I', 'N', 'D'
90 };
91 static const unsigned char llparse_blob18[] = {
92   'E', 'C', 'K', 'O', 'U', 'T'
93 };
94 static const unsigned char llparse_blob19[] = {
95   'N', 'E', 'C', 'T'
96 };
97 static const unsigned char llparse_blob20[] = {
98   'E', 'L', 'E', 'T', 'E'
99 };
100 static const unsigned char llparse_blob21[] = {
101   'E', 'T'
102 };
103 static const unsigned char llparse_blob22[] = {
104   'E', 'A', 'D'
105 };
106 static const unsigned char llparse_blob23[] = {
107   'N', 'K'
108 };
109 static const unsigned char llparse_blob24[] = {
110   'C', 'K'
111 };
112 static const unsigned char llparse_blob25[] = {
113   'S', 'E', 'A', 'R', 'C', 'H'
114 };
115 static const unsigned char llparse_blob26[] = {
116   'R', 'G', 'E'
117 };
118 static const unsigned char llparse_blob27[] = {
119   'C', 'T', 'I', 'V', 'I', 'T', 'Y'
120 };
121 static const unsigned char llparse_blob28[] = {
122   'L', 'E', 'N', 'D', 'A', 'R'
123 };
124 static const unsigned char llparse_blob29[] = {
125   'V', 'E'
126 };
127 static const unsigned char llparse_blob30[] = {
128   'O', 'T', 'I', 'F', 'Y'
129 };
130 static const unsigned char llparse_blob31[] = {
131   'P', 'T', 'I', 'O', 'N', 'S'
132 };
133 static const unsigned char llparse_blob32[] = {
134   'T', 'C', 'H'
135 };
136 static const unsigned char llparse_blob33[] = {
137   'S', 'T'
138 };
139 static const unsigned char llparse_blob34[] = {
140   'I', 'N', 'D'
141 };
142 static const unsigned char llparse_blob35[] = {
143   'A', 'T', 'C', 'H'
144 };
145 static const unsigned char llparse_blob36[] = {
146   'G', 'E'
147 };
148 static const unsigned char llparse_blob37[] = {
149   'I', 'N', 'D'
150 };
151 static const unsigned char llparse_blob38[] = {
152   'O', 'R', 'T'
153 };
154 static const unsigned char llparse_blob39[] = {
155   'A', 'R', 'C', 'H'
156 };
157 static const unsigned char llparse_blob40[] = {
158   'U', 'R', 'C', 'E'
159 };
160 static const unsigned char llparse_blob41[] = {
161   'B', 'S', 'C', 'R', 'I', 'B', 'E'
162 };
163 static const unsigned char llparse_blob42[] = {
164   'R', 'A', 'C', 'E'
165 };
166 static const unsigned char llparse_blob43[] = {
167   'I', 'N', 'D'
168 };
169 static const unsigned char llparse_blob44[] = {
170   'N', 'K'
171 };
172 static const unsigned char llparse_blob45[] = {
173   'C', 'K'
174 };
175 static const unsigned char llparse_blob46[] = {
176   'U', 'B', 'S', 'C', 'R', 'I', 'B', 'E'
177 };
178 static const unsigned char llparse_blob47[] = {
179   'H', 'T', 'T', 'P', '/'
180 };
181 static const unsigned char llparse_blob48[] = {
182   'A', 'D'
183 };
184 static const unsigned char llparse_blob49[] = {
185   'T', 'P', '/'
186 };
187 
188 enum llparse_match_status_e {
189   kMatchComplete,
190   kMatchPause,
191   kMatchMismatch
192 };
193 typedef enum llparse_match_status_e llparse_match_status_t;
194 
195 struct llparse_match_s {
196   llparse_match_status_t status;
197   const unsigned char* current;
198 };
199 typedef struct llparse_match_s llparse_match_t;
200 
llparse__match_sequence_id(llhttp__internal_t * s,const unsigned char * p,const unsigned char * endp,const unsigned char * seq,uint32_t seq_len)201 static llparse_match_t llparse__match_sequence_id(
202     llhttp__internal_t* s, const unsigned char* p,
203     const unsigned char* endp,
204     const unsigned char* seq, uint32_t seq_len) {
205   uint32_t index;
206   llparse_match_t res;
207 
208   index = s->_index;
209   for (; p != endp; p++) {
210     unsigned char current;
211 
212     current = *p;
213     if (current == seq[index]) {
214       if (++index == seq_len) {
215         res.status = kMatchComplete;
216         goto reset;
217       }
218     } else {
219       res.status = kMatchMismatch;
220       goto reset;
221     }
222   }
223   s->_index = index;
224   res.status = kMatchPause;
225   res.current = p;
226   return res;
227 reset:
228   s->_index = 0;
229   res.current = p;
230   return res;
231 }
232 
llparse__match_sequence_to_lower(llhttp__internal_t * s,const unsigned char * p,const unsigned char * endp,const unsigned char * seq,uint32_t seq_len)233 static llparse_match_t llparse__match_sequence_to_lower(
234     llhttp__internal_t* s, const unsigned char* p,
235     const unsigned char* endp,
236     const unsigned char* seq, uint32_t seq_len) {
237   uint32_t index;
238   llparse_match_t res;
239 
240   index = s->_index;
241   for (; p != endp; p++) {
242     unsigned char current;
243 
244     current = ((*p) >= 'A' && (*p) <= 'Z' ? (*p | 0x20) : (*p));
245     if (current == seq[index]) {
246       if (++index == seq_len) {
247         res.status = kMatchComplete;
248         goto reset;
249       }
250     } else {
251       res.status = kMatchMismatch;
252       goto reset;
253     }
254   }
255   s->_index = index;
256   res.status = kMatchPause;
257   res.current = p;
258   return res;
259 reset:
260   s->_index = 0;
261   res.current = p;
262   return res;
263 }
264 
llparse__match_sequence_to_lower_unsafe(llhttp__internal_t * s,const unsigned char * p,const unsigned char * endp,const unsigned char * seq,uint32_t seq_len)265 static llparse_match_t llparse__match_sequence_to_lower_unsafe(
266     llhttp__internal_t* s, const unsigned char* p,
267     const unsigned char* endp,
268     const unsigned char* seq, uint32_t seq_len) {
269   uint32_t index;
270   llparse_match_t res;
271 
272   index = s->_index;
273   for (; p != endp; p++) {
274     unsigned char current;
275 
276     current = ((*p) | 0x20);
277     if (current == seq[index]) {
278       if (++index == seq_len) {
279         res.status = kMatchComplete;
280         goto reset;
281       }
282     } else {
283       res.status = kMatchMismatch;
284       goto reset;
285     }
286   }
287   s->_index = index;
288   res.status = kMatchPause;
289   res.current = p;
290   return res;
291 reset:
292   s->_index = 0;
293   res.current = p;
294   return res;
295 }
296 
297 enum llparse_state_e {
298   s_error,
299   s_n_llhttp__internal__n_closed,
300   s_n_llhttp__internal__n_invoke_llhttp__after_message_complete,
301   s_n_llhttp__internal__n_pause_1,
302   s_n_llhttp__internal__n_invoke_is_equal_upgrade,
303   s_n_llhttp__internal__n_invoke_llhttp__on_message_complete_2,
304   s_n_llhttp__internal__n_chunk_data_almost_done,
305   s_n_llhttp__internal__n_consume_content_length,
306   s_n_llhttp__internal__n_span_start_llhttp__on_body,
307   s_n_llhttp__internal__n_invoke_is_equal_content_length,
308   s_n_llhttp__internal__n_chunk_size_almost_done,
309   s_n_llhttp__internal__n_chunk_parameters,
310   s_n_llhttp__internal__n_chunk_size_otherwise,
311   s_n_llhttp__internal__n_chunk_size,
312   s_n_llhttp__internal__n_chunk_size_digit,
313   s_n_llhttp__internal__n_invoke_update_content_length,
314   s_n_llhttp__internal__n_consume_content_length_1,
315   s_n_llhttp__internal__n_span_start_llhttp__on_body_1,
316   s_n_llhttp__internal__n_eof,
317   s_n_llhttp__internal__n_span_start_llhttp__on_body_2,
318   s_n_llhttp__internal__n_invoke_llhttp__after_headers_complete,
319   s_n_llhttp__internal__n_headers_almost_done,
320   s_n_llhttp__internal__n_span_start_llhttp__on_header_value,
321   s_n_llhttp__internal__n_header_value_discard_lws,
322   s_n_llhttp__internal__n_header_value_discard_ws_almost_done,
323   s_n_llhttp__internal__n_header_value_lws,
324   s_n_llhttp__internal__n_header_value_almost_done,
325   s_n_llhttp__internal__n_header_value_lenient,
326   s_n_llhttp__internal__n_header_value_otherwise,
327   s_n_llhttp__internal__n_header_value_connection_token,
328   s_n_llhttp__internal__n_header_value_connection_ws,
329   s_n_llhttp__internal__n_header_value_connection_1,
330   s_n_llhttp__internal__n_header_value_connection_2,
331   s_n_llhttp__internal__n_header_value_connection_3,
332   s_n_llhttp__internal__n_header_value_connection,
333   s_n_llhttp__internal__n_error_24,
334   s_n_llhttp__internal__n_error_25,
335   s_n_llhttp__internal__n_header_value_content_length_ws,
336   s_n_llhttp__internal__n_header_value_content_length,
337   s_n_llhttp__internal__n_header_value_te_chunked_last,
338   s_n_llhttp__internal__n_header_value_te_token_ows,
339   s_n_llhttp__internal__n_header_value,
340   s_n_llhttp__internal__n_header_value_te_token,
341   s_n_llhttp__internal__n_header_value_te_chunked,
342   s_n_llhttp__internal__n_span_start_llhttp__on_header_value_1,
343   s_n_llhttp__internal__n_header_value_discard_ws,
344   s_n_llhttp__internal__n_header_field_general_otherwise,
345   s_n_llhttp__internal__n_header_field_general,
346   s_n_llhttp__internal__n_header_field_colon,
347   s_n_llhttp__internal__n_header_field_3,
348   s_n_llhttp__internal__n_header_field_4,
349   s_n_llhttp__internal__n_header_field_2,
350   s_n_llhttp__internal__n_header_field_1,
351   s_n_llhttp__internal__n_header_field_5,
352   s_n_llhttp__internal__n_header_field_6,
353   s_n_llhttp__internal__n_header_field_7,
354   s_n_llhttp__internal__n_header_field,
355   s_n_llhttp__internal__n_span_start_llhttp__on_header_field,
356   s_n_llhttp__internal__n_header_field_start,
357   s_n_llhttp__internal__n_url_to_http_09,
358   s_n_llhttp__internal__n_url_skip_to_http09,
359   s_n_llhttp__internal__n_url_skip_lf_to_http09_1,
360   s_n_llhttp__internal__n_url_skip_lf_to_http09,
361   s_n_llhttp__internal__n_req_http_end_1,
362   s_n_llhttp__internal__n_req_http_end,
363   s_n_llhttp__internal__n_req_http_minor,
364   s_n_llhttp__internal__n_req_http_dot,
365   s_n_llhttp__internal__n_req_http_major,
366   s_n_llhttp__internal__n_req_http_start_1,
367   s_n_llhttp__internal__n_req_http_start_2,
368   s_n_llhttp__internal__n_req_http_start,
369   s_n_llhttp__internal__n_url_to_http,
370   s_n_llhttp__internal__n_url_skip_to_http,
371   s_n_llhttp__internal__n_url_fragment,
372   s_n_llhttp__internal__n_span_end_stub_query_3,
373   s_n_llhttp__internal__n_url_query,
374   s_n_llhttp__internal__n_url_query_or_fragment,
375   s_n_llhttp__internal__n_url_path,
376   s_n_llhttp__internal__n_span_start_stub_path_2,
377   s_n_llhttp__internal__n_span_start_stub_path,
378   s_n_llhttp__internal__n_span_start_stub_path_1,
379   s_n_llhttp__internal__n_url_server_with_at,
380   s_n_llhttp__internal__n_url_server,
381   s_n_llhttp__internal__n_url_schema_delim_1,
382   s_n_llhttp__internal__n_url_schema_delim,
383   s_n_llhttp__internal__n_span_end_stub_schema,
384   s_n_llhttp__internal__n_url_schema,
385   s_n_llhttp__internal__n_url_start,
386   s_n_llhttp__internal__n_span_start_llhttp__on_url_1,
387   s_n_llhttp__internal__n_url_entry_normal,
388   s_n_llhttp__internal__n_span_start_llhttp__on_url,
389   s_n_llhttp__internal__n_url_entry_connect,
390   s_n_llhttp__internal__n_req_spaces_before_url,
391   s_n_llhttp__internal__n_req_first_space_before_url,
392   s_n_llhttp__internal__n_start_req_1,
393   s_n_llhttp__internal__n_start_req_2,
394   s_n_llhttp__internal__n_start_req_4,
395   s_n_llhttp__internal__n_start_req_6,
396   s_n_llhttp__internal__n_start_req_7,
397   s_n_llhttp__internal__n_start_req_5,
398   s_n_llhttp__internal__n_start_req_3,
399   s_n_llhttp__internal__n_start_req_8,
400   s_n_llhttp__internal__n_start_req_9,
401   s_n_llhttp__internal__n_start_req_10,
402   s_n_llhttp__internal__n_start_req_12,
403   s_n_llhttp__internal__n_start_req_13,
404   s_n_llhttp__internal__n_start_req_11,
405   s_n_llhttp__internal__n_start_req_15,
406   s_n_llhttp__internal__n_start_req_16,
407   s_n_llhttp__internal__n_start_req_18,
408   s_n_llhttp__internal__n_start_req_20,
409   s_n_llhttp__internal__n_start_req_21,
410   s_n_llhttp__internal__n_start_req_19,
411   s_n_llhttp__internal__n_start_req_17,
412   s_n_llhttp__internal__n_start_req_22,
413   s_n_llhttp__internal__n_start_req_14,
414   s_n_llhttp__internal__n_start_req_23,
415   s_n_llhttp__internal__n_start_req_24,
416   s_n_llhttp__internal__n_start_req_26,
417   s_n_llhttp__internal__n_start_req_27,
418   s_n_llhttp__internal__n_start_req_31,
419   s_n_llhttp__internal__n_start_req_32,
420   s_n_llhttp__internal__n_start_req_30,
421   s_n_llhttp__internal__n_start_req_29,
422   s_n_llhttp__internal__n_start_req_28,
423   s_n_llhttp__internal__n_start_req_34,
424   s_n_llhttp__internal__n_start_req_33,
425   s_n_llhttp__internal__n_start_req_25,
426   s_n_llhttp__internal__n_start_req_37,
427   s_n_llhttp__internal__n_start_req_38,
428   s_n_llhttp__internal__n_start_req_36,
429   s_n_llhttp__internal__n_start_req_35,
430   s_n_llhttp__internal__n_start_req_40,
431   s_n_llhttp__internal__n_start_req_41,
432   s_n_llhttp__internal__n_start_req_42,
433   s_n_llhttp__internal__n_start_req_39,
434   s_n_llhttp__internal__n_start_req_43,
435   s_n_llhttp__internal__n_start_req_46,
436   s_n_llhttp__internal__n_start_req_48,
437   s_n_llhttp__internal__n_start_req_49,
438   s_n_llhttp__internal__n_start_req_47,
439   s_n_llhttp__internal__n_start_req_50,
440   s_n_llhttp__internal__n_start_req_45,
441   s_n_llhttp__internal__n_start_req_44,
442   s_n_llhttp__internal__n_start_req,
443   s_n_llhttp__internal__n_res_line_almost_done,
444   s_n_llhttp__internal__n_res_status,
445   s_n_llhttp__internal__n_span_start_llhttp__on_status,
446   s_n_llhttp__internal__n_res_status_start,
447   s_n_llhttp__internal__n_res_status_code_otherwise,
448   s_n_llhttp__internal__n_res_status_code,
449   s_n_llhttp__internal__n_res_http_end,
450   s_n_llhttp__internal__n_res_http_minor,
451   s_n_llhttp__internal__n_res_http_dot,
452   s_n_llhttp__internal__n_res_http_major,
453   s_n_llhttp__internal__n_start_res,
454   s_n_llhttp__internal__n_req_or_res_method_2,
455   s_n_llhttp__internal__n_req_or_res_method_3,
456   s_n_llhttp__internal__n_req_or_res_method_1,
457   s_n_llhttp__internal__n_req_or_res_method,
458   s_n_llhttp__internal__n_start_req_or_res,
459   s_n_llhttp__internal__n_invoke_load_type,
460   s_n_llhttp__internal__n_start,
461 };
462 typedef enum llparse_state_e llparse_state_t;
463 
464 int llhttp__on_url(
465     llhttp__internal_t* s, const unsigned char* p,
466     const unsigned char* endp);
467 
468 int llhttp__on_header_field(
469     llhttp__internal_t* s, const unsigned char* p,
470     const unsigned char* endp);
471 
472 int llhttp__on_header_value(
473     llhttp__internal_t* s, const unsigned char* p,
474     const unsigned char* endp);
475 
476 int llhttp__on_body(
477     llhttp__internal_t* s, const unsigned char* p,
478     const unsigned char* endp);
479 
480 int llhttp__on_status(
481     llhttp__internal_t* s, const unsigned char* p,
482     const unsigned char* endp);
483 
llhttp__internal__c_update_finish(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)484 int llhttp__internal__c_update_finish(
485     llhttp__internal_t* state,
486     const unsigned char* p,
487     const unsigned char* endp) {
488   state->finish = 2;
489   return 0;
490 }
491 
492 int llhttp__on_message_begin(
493     llhttp__internal_t* s, const unsigned char* p,
494     const unsigned char* endp);
495 
llhttp__internal__c_load_type(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)496 int llhttp__internal__c_load_type(
497     llhttp__internal_t* state,
498     const unsigned char* p,
499     const unsigned char* endp) {
500   return state->type;
501 }
502 
llhttp__internal__c_store_method(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp,int match)503 int llhttp__internal__c_store_method(
504     llhttp__internal_t* state,
505     const unsigned char* p,
506     const unsigned char* endp,
507     int match) {
508   state->method = match;
509   return 0;
510 }
511 
llhttp__internal__c_is_equal_method(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)512 int llhttp__internal__c_is_equal_method(
513     llhttp__internal_t* state,
514     const unsigned char* p,
515     const unsigned char* endp) {
516   return state->method == 5;
517 }
518 
llhttp__internal__c_update_http_major(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)519 int llhttp__internal__c_update_http_major(
520     llhttp__internal_t* state,
521     const unsigned char* p,
522     const unsigned char* endp) {
523   state->http_major = 0;
524   return 0;
525 }
526 
llhttp__internal__c_update_http_minor(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)527 int llhttp__internal__c_update_http_minor(
528     llhttp__internal_t* state,
529     const unsigned char* p,
530     const unsigned char* endp) {
531   state->http_minor = 9;
532   return 0;
533 }
534 
llhttp__internal__c_test_flags(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)535 int llhttp__internal__c_test_flags(
536     llhttp__internal_t* state,
537     const unsigned char* p,
538     const unsigned char* endp) {
539   return (state->flags & 128) == 128;
540 }
541 
542 int llhttp__on_chunk_complete(
543     llhttp__internal_t* s, const unsigned char* p,
544     const unsigned char* endp);
545 
546 int llhttp__on_message_complete(
547     llhttp__internal_t* s, const unsigned char* p,
548     const unsigned char* endp);
549 
llhttp__internal__c_is_equal_upgrade(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)550 int llhttp__internal__c_is_equal_upgrade(
551     llhttp__internal_t* state,
552     const unsigned char* p,
553     const unsigned char* endp) {
554   return state->upgrade == 1;
555 }
556 
557 int llhttp__after_message_complete(
558     llhttp__internal_t* s, const unsigned char* p,
559     const unsigned char* endp);
560 
llhttp__internal__c_update_finish_1(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)561 int llhttp__internal__c_update_finish_1(
562     llhttp__internal_t* state,
563     const unsigned char* p,
564     const unsigned char* endp) {
565   state->finish = 0;
566   return 0;
567 }
568 
llhttp__internal__c_test_flags_1(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)569 int llhttp__internal__c_test_flags_1(
570     llhttp__internal_t* state,
571     const unsigned char* p,
572     const unsigned char* endp) {
573   return (state->flags & 544) == 544;
574 }
575 
llhttp__internal__c_test_flags_2(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)576 int llhttp__internal__c_test_flags_2(
577     llhttp__internal_t* state,
578     const unsigned char* p,
579     const unsigned char* endp) {
580   return (state->flags & 256) == 256;
581 }
582 
llhttp__internal__c_test_flags_3(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)583 int llhttp__internal__c_test_flags_3(
584     llhttp__internal_t* state,
585     const unsigned char* p,
586     const unsigned char* endp) {
587   return (state->flags & 40) == 40;
588 }
589 
590 int llhttp__before_headers_complete(
591     llhttp__internal_t* s, const unsigned char* p,
592     const unsigned char* endp);
593 
594 int llhttp__on_headers_complete(
595     llhttp__internal_t* s, const unsigned char* p,
596     const unsigned char* endp);
597 
598 int llhttp__after_headers_complete(
599     llhttp__internal_t* s, const unsigned char* p,
600     const unsigned char* endp);
601 
llhttp__internal__c_update_content_length(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)602 int llhttp__internal__c_update_content_length(
603     llhttp__internal_t* state,
604     const unsigned char* p,
605     const unsigned char* endp) {
606   state->content_length = 0;
607   return 0;
608 }
609 
llhttp__internal__c_mul_add_content_length(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp,int match)610 int llhttp__internal__c_mul_add_content_length(
611     llhttp__internal_t* state,
612     const unsigned char* p,
613     const unsigned char* endp,
614     int match) {
615   /* Multiplication overflow */
616   if (state->content_length > 0xffffffffffffffffULL / 16) {
617     return 1;
618   }
619 
620   state->content_length *= 16;
621 
622   /* Addition overflow */
623   if (match >= 0) {
624     if (state->content_length > 0xffffffffffffffffULL - match) {
625       return 1;
626     }
627   } else {
628     if (state->content_length < 0ULL - match) {
629       return 1;
630     }
631   }
632   state->content_length += match;
633   return 0;
634 }
635 
636 int llhttp__on_chunk_header(
637     llhttp__internal_t* s, const unsigned char* p,
638     const unsigned char* endp);
639 
llhttp__internal__c_is_equal_content_length(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)640 int llhttp__internal__c_is_equal_content_length(
641     llhttp__internal_t* state,
642     const unsigned char* p,
643     const unsigned char* endp) {
644   return state->content_length == 0;
645 }
646 
llhttp__internal__c_or_flags(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)647 int llhttp__internal__c_or_flags(
648     llhttp__internal_t* state,
649     const unsigned char* p,
650     const unsigned char* endp) {
651   state->flags |= 128;
652   return 0;
653 }
654 
llhttp__internal__c_update_finish_3(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)655 int llhttp__internal__c_update_finish_3(
656     llhttp__internal_t* state,
657     const unsigned char* p,
658     const unsigned char* endp) {
659   state->finish = 1;
660   return 0;
661 }
662 
llhttp__internal__c_or_flags_1(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)663 int llhttp__internal__c_or_flags_1(
664     llhttp__internal_t* state,
665     const unsigned char* p,
666     const unsigned char* endp) {
667   state->flags |= 64;
668   return 0;
669 }
670 
llhttp__internal__c_update_upgrade(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)671 int llhttp__internal__c_update_upgrade(
672     llhttp__internal_t* state,
673     const unsigned char* p,
674     const unsigned char* endp) {
675   state->upgrade = 1;
676   return 0;
677 }
678 
llhttp__internal__c_store_header_state(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp,int match)679 int llhttp__internal__c_store_header_state(
680     llhttp__internal_t* state,
681     const unsigned char* p,
682     const unsigned char* endp,
683     int match) {
684   state->header_state = match;
685   return 0;
686 }
687 
llhttp__internal__c_load_header_state(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)688 int llhttp__internal__c_load_header_state(
689     llhttp__internal_t* state,
690     const unsigned char* p,
691     const unsigned char* endp) {
692   return state->header_state;
693 }
694 
llhttp__internal__c_or_flags_3(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)695 int llhttp__internal__c_or_flags_3(
696     llhttp__internal_t* state,
697     const unsigned char* p,
698     const unsigned char* endp) {
699   state->flags |= 1;
700   return 0;
701 }
702 
llhttp__internal__c_update_header_state(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)703 int llhttp__internal__c_update_header_state(
704     llhttp__internal_t* state,
705     const unsigned char* p,
706     const unsigned char* endp) {
707   state->header_state = 1;
708   return 0;
709 }
710 
llhttp__internal__c_or_flags_4(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)711 int llhttp__internal__c_or_flags_4(
712     llhttp__internal_t* state,
713     const unsigned char* p,
714     const unsigned char* endp) {
715   state->flags |= 2;
716   return 0;
717 }
718 
llhttp__internal__c_or_flags_5(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)719 int llhttp__internal__c_or_flags_5(
720     llhttp__internal_t* state,
721     const unsigned char* p,
722     const unsigned char* endp) {
723   state->flags |= 4;
724   return 0;
725 }
726 
llhttp__internal__c_or_flags_6(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)727 int llhttp__internal__c_or_flags_6(
728     llhttp__internal_t* state,
729     const unsigned char* p,
730     const unsigned char* endp) {
731   state->flags |= 8;
732   return 0;
733 }
734 
llhttp__internal__c_update_header_state_2(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)735 int llhttp__internal__c_update_header_state_2(
736     llhttp__internal_t* state,
737     const unsigned char* p,
738     const unsigned char* endp) {
739   state->header_state = 6;
740   return 0;
741 }
742 
llhttp__internal__c_update_header_state_4(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)743 int llhttp__internal__c_update_header_state_4(
744     llhttp__internal_t* state,
745     const unsigned char* p,
746     const unsigned char* endp) {
747   state->header_state = 0;
748   return 0;
749 }
750 
llhttp__internal__c_update_header_state_5(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)751 int llhttp__internal__c_update_header_state_5(
752     llhttp__internal_t* state,
753     const unsigned char* p,
754     const unsigned char* endp) {
755   state->header_state = 5;
756   return 0;
757 }
758 
llhttp__internal__c_update_header_state_6(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)759 int llhttp__internal__c_update_header_state_6(
760     llhttp__internal_t* state,
761     const unsigned char* p,
762     const unsigned char* endp) {
763   state->header_state = 7;
764   return 0;
765 }
766 
llhttp__internal__c_test_flags_5(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)767 int llhttp__internal__c_test_flags_5(
768     llhttp__internal_t* state,
769     const unsigned char* p,
770     const unsigned char* endp) {
771   return (state->flags & 32) == 32;
772 }
773 
llhttp__internal__c_mul_add_content_length_1(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp,int match)774 int llhttp__internal__c_mul_add_content_length_1(
775     llhttp__internal_t* state,
776     const unsigned char* p,
777     const unsigned char* endp,
778     int match) {
779   /* Multiplication overflow */
780   if (state->content_length > 0xffffffffffffffffULL / 10) {
781     return 1;
782   }
783 
784   state->content_length *= 10;
785 
786   /* Addition overflow */
787   if (match >= 0) {
788     if (state->content_length > 0xffffffffffffffffULL - match) {
789       return 1;
790     }
791   } else {
792     if (state->content_length < 0ULL - match) {
793       return 1;
794     }
795   }
796   state->content_length += match;
797   return 0;
798 }
799 
llhttp__internal__c_or_flags_15(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)800 int llhttp__internal__c_or_flags_15(
801     llhttp__internal_t* state,
802     const unsigned char* p,
803     const unsigned char* endp) {
804   state->flags |= 32;
805   return 0;
806 }
807 
llhttp__internal__c_or_flags_16(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)808 int llhttp__internal__c_or_flags_16(
809     llhttp__internal_t* state,
810     const unsigned char* p,
811     const unsigned char* endp) {
812   state->flags |= 512;
813   return 0;
814 }
815 
llhttp__internal__c_and_flags(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)816 int llhttp__internal__c_and_flags(
817     llhttp__internal_t* state,
818     const unsigned char* p,
819     const unsigned char* endp) {
820   state->flags &= -9;
821   return 0;
822 }
823 
llhttp__internal__c_update_header_state_7(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)824 int llhttp__internal__c_update_header_state_7(
825     llhttp__internal_t* state,
826     const unsigned char* p,
827     const unsigned char* endp) {
828   state->header_state = 8;
829   return 0;
830 }
831 
llhttp__internal__c_or_flags_17(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)832 int llhttp__internal__c_or_flags_17(
833     llhttp__internal_t* state,
834     const unsigned char* p,
835     const unsigned char* endp) {
836   state->flags |= 16;
837   return 0;
838 }
839 
llhttp__internal__c_store_http_major(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp,int match)840 int llhttp__internal__c_store_http_major(
841     llhttp__internal_t* state,
842     const unsigned char* p,
843     const unsigned char* endp,
844     int match) {
845   state->http_major = match;
846   return 0;
847 }
848 
llhttp__internal__c_store_http_minor(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp,int match)849 int llhttp__internal__c_store_http_minor(
850     llhttp__internal_t* state,
851     const unsigned char* p,
852     const unsigned char* endp,
853     int match) {
854   state->http_minor = match;
855   return 0;
856 }
857 
llhttp__internal__c_is_equal_method_1(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)858 int llhttp__internal__c_is_equal_method_1(
859     llhttp__internal_t* state,
860     const unsigned char* p,
861     const unsigned char* endp) {
862   return state->method == 33;
863 }
864 
llhttp__internal__c_update_status_code(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)865 int llhttp__internal__c_update_status_code(
866     llhttp__internal_t* state,
867     const unsigned char* p,
868     const unsigned char* endp) {
869   state->status_code = 0;
870   return 0;
871 }
872 
llhttp__internal__c_mul_add_status_code(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp,int match)873 int llhttp__internal__c_mul_add_status_code(
874     llhttp__internal_t* state,
875     const unsigned char* p,
876     const unsigned char* endp,
877     int match) {
878   /* Multiplication overflow */
879   if (state->status_code > 0xffff / 10) {
880     return 1;
881   }
882 
883   state->status_code *= 10;
884 
885   /* Addition overflow */
886   if (match >= 0) {
887     if (state->status_code > 0xffff - match) {
888       return 1;
889     }
890   } else {
891     if (state->status_code < 0 - match) {
892       return 1;
893     }
894   }
895   state->status_code += match;
896 
897   /* Enforce maximum */
898   if (state->status_code > 999) {
899     return 1;
900   }
901   return 0;
902 }
903 
llhttp__internal__c_update_type(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)904 int llhttp__internal__c_update_type(
905     llhttp__internal_t* state,
906     const unsigned char* p,
907     const unsigned char* endp) {
908   state->type = 1;
909   return 0;
910 }
911 
llhttp__internal__c_update_type_1(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)912 int llhttp__internal__c_update_type_1(
913     llhttp__internal_t* state,
914     const unsigned char* p,
915     const unsigned char* endp) {
916   state->type = 2;
917   return 0;
918 }
919 
llhttp__internal_init(llhttp__internal_t * state)920 int llhttp__internal_init(llhttp__internal_t* state) {
921   memset(state, 0, sizeof(*state));
922   state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_start;
923   return 0;
924 }
925 
llhttp__internal__run(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)926 static llparse_state_t llhttp__internal__run(
927     llhttp__internal_t* state,
928     const unsigned char* p,
929     const unsigned char* endp) {
930   int match;
931   switch ((llparse_state_t) (intptr_t) state->_current) {
932     case s_n_llhttp__internal__n_closed:
933     s_n_llhttp__internal__n_closed: {
934       if (p == endp) {
935         return s_n_llhttp__internal__n_closed;
936       }
937       switch (*p) {
938         case 10: {
939           p++;
940           goto s_n_llhttp__internal__n_closed;
941         }
942         case 13: {
943           p++;
944           goto s_n_llhttp__internal__n_closed;
945         }
946         default: {
947           p++;
948           goto s_n_llhttp__internal__n_error_4;
949         }
950       }
951       /* UNREACHABLE */;
952       abort();
953     }
954     case s_n_llhttp__internal__n_invoke_llhttp__after_message_complete:
955     s_n_llhttp__internal__n_invoke_llhttp__after_message_complete: {
956       switch (llhttp__after_message_complete(state, p, endp)) {
957         case 1:
958           goto s_n_llhttp__internal__n_invoke_update_finish_2;
959         default:
960           goto s_n_llhttp__internal__n_invoke_update_finish_1;
961       }
962       /* UNREACHABLE */;
963       abort();
964     }
965     case s_n_llhttp__internal__n_pause_1:
966     s_n_llhttp__internal__n_pause_1: {
967       state->error = 0x16;
968       state->reason = "Pause on CONNECT/Upgrade";
969       state->error_pos = (const char*) p;
970       state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_llhttp__after_message_complete;
971       return s_error;
972       /* UNREACHABLE */;
973       abort();
974     }
975     case s_n_llhttp__internal__n_invoke_is_equal_upgrade:
976     s_n_llhttp__internal__n_invoke_is_equal_upgrade: {
977       switch (llhttp__internal__c_is_equal_upgrade(state, p, endp)) {
978         case 0:
979           goto s_n_llhttp__internal__n_invoke_llhttp__after_message_complete;
980         default:
981           goto s_n_llhttp__internal__n_pause_1;
982       }
983       /* UNREACHABLE */;
984       abort();
985     }
986     case s_n_llhttp__internal__n_invoke_llhttp__on_message_complete_2:
987     s_n_llhttp__internal__n_invoke_llhttp__on_message_complete_2: {
988       switch (llhttp__on_message_complete(state, p, endp)) {
989         case 0:
990           goto s_n_llhttp__internal__n_invoke_is_equal_upgrade;
991         case 21:
992           goto s_n_llhttp__internal__n_pause_5;
993         default:
994           goto s_n_llhttp__internal__n_error_13;
995       }
996       /* UNREACHABLE */;
997       abort();
998     }
999     case s_n_llhttp__internal__n_chunk_data_almost_done:
1000     s_n_llhttp__internal__n_chunk_data_almost_done: {
1001       llparse_match_t match_seq;
1002 
1003       if (p == endp) {
1004         return s_n_llhttp__internal__n_chunk_data_almost_done;
1005       }
1006       match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob1, 2);
1007       p = match_seq.current;
1008       switch (match_seq.status) {
1009         case kMatchComplete: {
1010           p++;
1011           goto s_n_llhttp__internal__n_invoke_llhttp__on_chunk_complete;
1012         }
1013         case kMatchPause: {
1014           return s_n_llhttp__internal__n_chunk_data_almost_done;
1015         }
1016         case kMatchMismatch: {
1017           goto s_n_llhttp__internal__n_error_8;
1018         }
1019       }
1020       /* UNREACHABLE */;
1021       abort();
1022     }
1023     case s_n_llhttp__internal__n_consume_content_length:
1024     s_n_llhttp__internal__n_consume_content_length: {
1025       size_t avail;
1026       size_t need;
1027 
1028       avail = endp - p;
1029       need = state->content_length;
1030       if (avail >= need) {
1031         p += need;
1032         state->content_length = 0;
1033         goto s_n_llhttp__internal__n_span_end_llhttp__on_body;
1034       }
1035 
1036       state->content_length -= avail;
1037       return s_n_llhttp__internal__n_consume_content_length;
1038       /* UNREACHABLE */;
1039       abort();
1040     }
1041     case s_n_llhttp__internal__n_span_start_llhttp__on_body:
1042     s_n_llhttp__internal__n_span_start_llhttp__on_body: {
1043       if (p == endp) {
1044         return s_n_llhttp__internal__n_span_start_llhttp__on_body;
1045       }
1046       state->_span_pos0 = (void*) p;
1047       state->_span_cb0 = llhttp__on_body;
1048       goto s_n_llhttp__internal__n_consume_content_length;
1049       /* UNREACHABLE */;
1050       abort();
1051     }
1052     case s_n_llhttp__internal__n_invoke_is_equal_content_length:
1053     s_n_llhttp__internal__n_invoke_is_equal_content_length: {
1054       switch (llhttp__internal__c_is_equal_content_length(state, p, endp)) {
1055         case 0:
1056           goto s_n_llhttp__internal__n_span_start_llhttp__on_body;
1057         default:
1058           goto s_n_llhttp__internal__n_invoke_or_flags;
1059       }
1060       /* UNREACHABLE */;
1061       abort();
1062     }
1063     case s_n_llhttp__internal__n_chunk_size_almost_done:
1064     s_n_llhttp__internal__n_chunk_size_almost_done: {
1065       if (p == endp) {
1066         return s_n_llhttp__internal__n_chunk_size_almost_done;
1067       }
1068       switch (*p) {
1069         case 10: {
1070           p++;
1071           goto s_n_llhttp__internal__n_invoke_llhttp__on_chunk_header;
1072         }
1073         default: {
1074           goto s_n_llhttp__internal__n_error_9;
1075         }
1076       }
1077       /* UNREACHABLE */;
1078       abort();
1079     }
1080     case s_n_llhttp__internal__n_chunk_parameters:
1081     s_n_llhttp__internal__n_chunk_parameters: {
1082       if (p == endp) {
1083         return s_n_llhttp__internal__n_chunk_parameters;
1084       }
1085       switch (*p) {
1086         case 13: {
1087           p++;
1088           goto s_n_llhttp__internal__n_chunk_size_almost_done;
1089         }
1090         default: {
1091           p++;
1092           goto s_n_llhttp__internal__n_chunk_parameters;
1093         }
1094       }
1095       /* UNREACHABLE */;
1096       abort();
1097     }
1098     case s_n_llhttp__internal__n_chunk_size_otherwise:
1099     s_n_llhttp__internal__n_chunk_size_otherwise: {
1100       if (p == endp) {
1101         return s_n_llhttp__internal__n_chunk_size_otherwise;
1102       }
1103       switch (*p) {
1104         case 13: {
1105           p++;
1106           goto s_n_llhttp__internal__n_chunk_size_almost_done;
1107         }
1108         case ' ': {
1109           p++;
1110           goto s_n_llhttp__internal__n_chunk_parameters;
1111         }
1112         case ';': {
1113           p++;
1114           goto s_n_llhttp__internal__n_chunk_parameters;
1115         }
1116         default: {
1117           goto s_n_llhttp__internal__n_error_10;
1118         }
1119       }
1120       /* UNREACHABLE */;
1121       abort();
1122     }
1123     case s_n_llhttp__internal__n_chunk_size:
1124     s_n_llhttp__internal__n_chunk_size: {
1125       if (p == endp) {
1126         return s_n_llhttp__internal__n_chunk_size;
1127       }
1128       switch (*p) {
1129         case '0': {
1130           p++;
1131           match = 0;
1132           goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1133         }
1134         case '1': {
1135           p++;
1136           match = 1;
1137           goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1138         }
1139         case '2': {
1140           p++;
1141           match = 2;
1142           goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1143         }
1144         case '3': {
1145           p++;
1146           match = 3;
1147           goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1148         }
1149         case '4': {
1150           p++;
1151           match = 4;
1152           goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1153         }
1154         case '5': {
1155           p++;
1156           match = 5;
1157           goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1158         }
1159         case '6': {
1160           p++;
1161           match = 6;
1162           goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1163         }
1164         case '7': {
1165           p++;
1166           match = 7;
1167           goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1168         }
1169         case '8': {
1170           p++;
1171           match = 8;
1172           goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1173         }
1174         case '9': {
1175           p++;
1176           match = 9;
1177           goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1178         }
1179         case 'A': {
1180           p++;
1181           match = 10;
1182           goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1183         }
1184         case 'B': {
1185           p++;
1186           match = 11;
1187           goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1188         }
1189         case 'C': {
1190           p++;
1191           match = 12;
1192           goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1193         }
1194         case 'D': {
1195           p++;
1196           match = 13;
1197           goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1198         }
1199         case 'E': {
1200           p++;
1201           match = 14;
1202           goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1203         }
1204         case 'F': {
1205           p++;
1206           match = 15;
1207           goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1208         }
1209         case 'a': {
1210           p++;
1211           match = 10;
1212           goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1213         }
1214         case 'b': {
1215           p++;
1216           match = 11;
1217           goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1218         }
1219         case 'c': {
1220           p++;
1221           match = 12;
1222           goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1223         }
1224         case 'd': {
1225           p++;
1226           match = 13;
1227           goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1228         }
1229         case 'e': {
1230           p++;
1231           match = 14;
1232           goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1233         }
1234         case 'f': {
1235           p++;
1236           match = 15;
1237           goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1238         }
1239         default: {
1240           goto s_n_llhttp__internal__n_chunk_size_otherwise;
1241         }
1242       }
1243       /* UNREACHABLE */;
1244       abort();
1245     }
1246     case s_n_llhttp__internal__n_chunk_size_digit:
1247     s_n_llhttp__internal__n_chunk_size_digit: {
1248       if (p == endp) {
1249         return s_n_llhttp__internal__n_chunk_size_digit;
1250       }
1251       switch (*p) {
1252         case '0': {
1253           p++;
1254           match = 0;
1255           goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1256         }
1257         case '1': {
1258           p++;
1259           match = 1;
1260           goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1261         }
1262         case '2': {
1263           p++;
1264           match = 2;
1265           goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1266         }
1267         case '3': {
1268           p++;
1269           match = 3;
1270           goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1271         }
1272         case '4': {
1273           p++;
1274           match = 4;
1275           goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1276         }
1277         case '5': {
1278           p++;
1279           match = 5;
1280           goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1281         }
1282         case '6': {
1283           p++;
1284           match = 6;
1285           goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1286         }
1287         case '7': {
1288           p++;
1289           match = 7;
1290           goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1291         }
1292         case '8': {
1293           p++;
1294           match = 8;
1295           goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1296         }
1297         case '9': {
1298           p++;
1299           match = 9;
1300           goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1301         }
1302         case 'A': {
1303           p++;
1304           match = 10;
1305           goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1306         }
1307         case 'B': {
1308           p++;
1309           match = 11;
1310           goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1311         }
1312         case 'C': {
1313           p++;
1314           match = 12;
1315           goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1316         }
1317         case 'D': {
1318           p++;
1319           match = 13;
1320           goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1321         }
1322         case 'E': {
1323           p++;
1324           match = 14;
1325           goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1326         }
1327         case 'F': {
1328           p++;
1329           match = 15;
1330           goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1331         }
1332         case 'a': {
1333           p++;
1334           match = 10;
1335           goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1336         }
1337         case 'b': {
1338           p++;
1339           match = 11;
1340           goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1341         }
1342         case 'c': {
1343           p++;
1344           match = 12;
1345           goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1346         }
1347         case 'd': {
1348           p++;
1349           match = 13;
1350           goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1351         }
1352         case 'e': {
1353           p++;
1354           match = 14;
1355           goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1356         }
1357         case 'f': {
1358           p++;
1359           match = 15;
1360           goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1361         }
1362         default: {
1363           goto s_n_llhttp__internal__n_error_12;
1364         }
1365       }
1366       /* UNREACHABLE */;
1367       abort();
1368     }
1369     case s_n_llhttp__internal__n_invoke_update_content_length:
1370     s_n_llhttp__internal__n_invoke_update_content_length: {
1371       switch (llhttp__internal__c_update_content_length(state, p, endp)) {
1372         default:
1373           goto s_n_llhttp__internal__n_chunk_size_digit;
1374       }
1375       /* UNREACHABLE */;
1376       abort();
1377     }
1378     case s_n_llhttp__internal__n_consume_content_length_1:
1379     s_n_llhttp__internal__n_consume_content_length_1: {
1380       size_t avail;
1381       size_t need;
1382 
1383       avail = endp - p;
1384       need = state->content_length;
1385       if (avail >= need) {
1386         p += need;
1387         state->content_length = 0;
1388         goto s_n_llhttp__internal__n_span_end_llhttp__on_body_1;
1389       }
1390 
1391       state->content_length -= avail;
1392       return s_n_llhttp__internal__n_consume_content_length_1;
1393       /* UNREACHABLE */;
1394       abort();
1395     }
1396     case s_n_llhttp__internal__n_span_start_llhttp__on_body_1:
1397     s_n_llhttp__internal__n_span_start_llhttp__on_body_1: {
1398       if (p == endp) {
1399         return s_n_llhttp__internal__n_span_start_llhttp__on_body_1;
1400       }
1401       state->_span_pos0 = (void*) p;
1402       state->_span_cb0 = llhttp__on_body;
1403       goto s_n_llhttp__internal__n_consume_content_length_1;
1404       /* UNREACHABLE */;
1405       abort();
1406     }
1407     case s_n_llhttp__internal__n_eof:
1408     s_n_llhttp__internal__n_eof: {
1409       if (p == endp) {
1410         return s_n_llhttp__internal__n_eof;
1411       }
1412       p++;
1413       goto s_n_llhttp__internal__n_eof;
1414       /* UNREACHABLE */;
1415       abort();
1416     }
1417     case s_n_llhttp__internal__n_span_start_llhttp__on_body_2:
1418     s_n_llhttp__internal__n_span_start_llhttp__on_body_2: {
1419       if (p == endp) {
1420         return s_n_llhttp__internal__n_span_start_llhttp__on_body_2;
1421       }
1422       state->_span_pos0 = (void*) p;
1423       state->_span_cb0 = llhttp__on_body;
1424       goto s_n_llhttp__internal__n_eof;
1425       /* UNREACHABLE */;
1426       abort();
1427     }
1428     case s_n_llhttp__internal__n_invoke_llhttp__after_headers_complete:
1429     s_n_llhttp__internal__n_invoke_llhttp__after_headers_complete: {
1430       switch (llhttp__after_headers_complete(state, p, endp)) {
1431         case 1:
1432           goto s_n_llhttp__internal__n_invoke_llhttp__on_message_complete_1;
1433         case 2:
1434           goto s_n_llhttp__internal__n_invoke_update_content_length;
1435         case 3:
1436           goto s_n_llhttp__internal__n_span_start_llhttp__on_body_1;
1437         case 4:
1438           goto s_n_llhttp__internal__n_invoke_update_finish_3;
1439         case 5:
1440           goto s_n_llhttp__internal__n_error_14;
1441         default:
1442           goto s_n_llhttp__internal__n_invoke_llhttp__on_message_complete;
1443       }
1444       /* UNREACHABLE */;
1445       abort();
1446     }
1447     case s_n_llhttp__internal__n_headers_almost_done:
1448     s_n_llhttp__internal__n_headers_almost_done: {
1449       if (p == endp) {
1450         return s_n_llhttp__internal__n_headers_almost_done;
1451       }
1452       switch (*p) {
1453         case 10: {
1454           p++;
1455           goto s_n_llhttp__internal__n_invoke_test_flags;
1456         }
1457         default: {
1458           goto s_n_llhttp__internal__n_error_18;
1459         }
1460       }
1461       /* UNREACHABLE */;
1462       abort();
1463     }
1464     case s_n_llhttp__internal__n_span_start_llhttp__on_header_value:
1465     s_n_llhttp__internal__n_span_start_llhttp__on_header_value: {
1466       if (p == endp) {
1467         return s_n_llhttp__internal__n_span_start_llhttp__on_header_value;
1468       }
1469       state->_span_pos0 = (void*) p;
1470       state->_span_cb0 = llhttp__on_header_value;
1471       goto s_n_llhttp__internal__n_span_end_llhttp__on_header_value;
1472       /* UNREACHABLE */;
1473       abort();
1474     }
1475     case s_n_llhttp__internal__n_header_value_discard_lws:
1476     s_n_llhttp__internal__n_header_value_discard_lws: {
1477       if (p == endp) {
1478         return s_n_llhttp__internal__n_header_value_discard_lws;
1479       }
1480       switch (*p) {
1481         case 9: {
1482           p++;
1483           goto s_n_llhttp__internal__n_header_value_discard_ws;
1484         }
1485         case ' ': {
1486           p++;
1487           goto s_n_llhttp__internal__n_header_value_discard_ws;
1488         }
1489         default: {
1490           goto s_n_llhttp__internal__n_invoke_load_header_state;
1491         }
1492       }
1493       /* UNREACHABLE */;
1494       abort();
1495     }
1496     case s_n_llhttp__internal__n_header_value_discard_ws_almost_done:
1497     s_n_llhttp__internal__n_header_value_discard_ws_almost_done: {
1498       if (p == endp) {
1499         return s_n_llhttp__internal__n_header_value_discard_ws_almost_done;
1500       }
1501       switch (*p) {
1502         case 10: {
1503           p++;
1504           goto s_n_llhttp__internal__n_header_value_discard_lws;
1505         }
1506         default: {
1507           goto s_n_llhttp__internal__n_error_20;
1508         }
1509       }
1510       /* UNREACHABLE */;
1511       abort();
1512     }
1513     case s_n_llhttp__internal__n_header_value_lws:
1514     s_n_llhttp__internal__n_header_value_lws: {
1515       if (p == endp) {
1516         return s_n_llhttp__internal__n_header_value_lws;
1517       }
1518       switch (*p) {
1519         case 9: {
1520           goto s_n_llhttp__internal__n_span_start_llhttp__on_header_value_1;
1521         }
1522         case ' ': {
1523           goto s_n_llhttp__internal__n_span_start_llhttp__on_header_value_1;
1524         }
1525         default: {
1526           goto s_n_llhttp__internal__n_invoke_load_header_state_3;
1527         }
1528       }
1529       /* UNREACHABLE */;
1530       abort();
1531     }
1532     case s_n_llhttp__internal__n_header_value_almost_done:
1533     s_n_llhttp__internal__n_header_value_almost_done: {
1534       if (p == endp) {
1535         return s_n_llhttp__internal__n_header_value_almost_done;
1536       }
1537       switch (*p) {
1538         case 10: {
1539           p++;
1540           goto s_n_llhttp__internal__n_header_value_lws;
1541         }
1542         default: {
1543           goto s_n_llhttp__internal__n_error_21;
1544         }
1545       }
1546       /* UNREACHABLE */;
1547       abort();
1548     }
1549     case s_n_llhttp__internal__n_header_value_lenient:
1550     s_n_llhttp__internal__n_header_value_lenient: {
1551       if (p == endp) {
1552         return s_n_llhttp__internal__n_header_value_lenient;
1553       }
1554       switch (*p) {
1555         case 10: {
1556           goto s_n_llhttp__internal__n_span_end_llhttp__on_header_value_1;
1557         }
1558         case 13: {
1559           goto s_n_llhttp__internal__n_span_end_llhttp__on_header_value_3;
1560         }
1561         default: {
1562           p++;
1563           goto s_n_llhttp__internal__n_header_value_lenient;
1564         }
1565       }
1566       /* UNREACHABLE */;
1567       abort();
1568     }
1569     case s_n_llhttp__internal__n_header_value_otherwise:
1570     s_n_llhttp__internal__n_header_value_otherwise: {
1571       if (p == endp) {
1572         return s_n_llhttp__internal__n_header_value_otherwise;
1573       }
1574       switch (*p) {
1575         case 10: {
1576           goto s_n_llhttp__internal__n_span_end_llhttp__on_header_value_1;
1577         }
1578         case 13: {
1579           goto s_n_llhttp__internal__n_span_end_llhttp__on_header_value_2;
1580         }
1581         default: {
1582           goto s_n_llhttp__internal__n_invoke_test_flags_4;
1583         }
1584       }
1585       /* UNREACHABLE */;
1586       abort();
1587     }
1588     case s_n_llhttp__internal__n_header_value_connection_token:
1589     s_n_llhttp__internal__n_header_value_connection_token: {
1590       static uint8_t lookup_table[] = {
1591         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
1592         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1593         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1,
1594         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1595         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1596         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1597         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1598         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
1599         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1600         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1601         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1602         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1603         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1604         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1605         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1606         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
1607       };
1608       if (p == endp) {
1609         return s_n_llhttp__internal__n_header_value_connection_token;
1610       }
1611       switch (lookup_table[(uint8_t) *p]) {
1612         case 1: {
1613           p++;
1614           goto s_n_llhttp__internal__n_header_value_connection_token;
1615         }
1616         case 2: {
1617           p++;
1618           goto s_n_llhttp__internal__n_header_value_connection;
1619         }
1620         default: {
1621           goto s_n_llhttp__internal__n_header_value_otherwise;
1622         }
1623       }
1624       /* UNREACHABLE */;
1625       abort();
1626     }
1627     case s_n_llhttp__internal__n_header_value_connection_ws:
1628     s_n_llhttp__internal__n_header_value_connection_ws: {
1629       if (p == endp) {
1630         return s_n_llhttp__internal__n_header_value_connection_ws;
1631       }
1632       switch (*p) {
1633         case 10: {
1634           goto s_n_llhttp__internal__n_header_value_otherwise;
1635         }
1636         case 13: {
1637           goto s_n_llhttp__internal__n_header_value_otherwise;
1638         }
1639         case ' ': {
1640           p++;
1641           goto s_n_llhttp__internal__n_header_value_connection_ws;
1642         }
1643         case ',': {
1644           p++;
1645           goto s_n_llhttp__internal__n_invoke_load_header_state_4;
1646         }
1647         default: {
1648           goto s_n_llhttp__internal__n_invoke_update_header_state_4;
1649         }
1650       }
1651       /* UNREACHABLE */;
1652       abort();
1653     }
1654     case s_n_llhttp__internal__n_header_value_connection_1:
1655     s_n_llhttp__internal__n_header_value_connection_1: {
1656       llparse_match_t match_seq;
1657 
1658       if (p == endp) {
1659         return s_n_llhttp__internal__n_header_value_connection_1;
1660       }
1661       match_seq = llparse__match_sequence_to_lower(state, p, endp, llparse_blob4, 4);
1662       p = match_seq.current;
1663       switch (match_seq.status) {
1664         case kMatchComplete: {
1665           p++;
1666           goto s_n_llhttp__internal__n_invoke_update_header_state_2;
1667         }
1668         case kMatchPause: {
1669           return s_n_llhttp__internal__n_header_value_connection_1;
1670         }
1671         case kMatchMismatch: {
1672           goto s_n_llhttp__internal__n_header_value_connection_token;
1673         }
1674       }
1675       /* UNREACHABLE */;
1676       abort();
1677     }
1678     case s_n_llhttp__internal__n_header_value_connection_2:
1679     s_n_llhttp__internal__n_header_value_connection_2: {
1680       llparse_match_t match_seq;
1681 
1682       if (p == endp) {
1683         return s_n_llhttp__internal__n_header_value_connection_2;
1684       }
1685       match_seq = llparse__match_sequence_to_lower(state, p, endp, llparse_blob5, 9);
1686       p = match_seq.current;
1687       switch (match_seq.status) {
1688         case kMatchComplete: {
1689           p++;
1690           goto s_n_llhttp__internal__n_invoke_update_header_state_5;
1691         }
1692         case kMatchPause: {
1693           return s_n_llhttp__internal__n_header_value_connection_2;
1694         }
1695         case kMatchMismatch: {
1696           goto s_n_llhttp__internal__n_header_value_connection_token;
1697         }
1698       }
1699       /* UNREACHABLE */;
1700       abort();
1701     }
1702     case s_n_llhttp__internal__n_header_value_connection_3:
1703     s_n_llhttp__internal__n_header_value_connection_3: {
1704       llparse_match_t match_seq;
1705 
1706       if (p == endp) {
1707         return s_n_llhttp__internal__n_header_value_connection_3;
1708       }
1709       match_seq = llparse__match_sequence_to_lower(state, p, endp, llparse_blob6, 6);
1710       p = match_seq.current;
1711       switch (match_seq.status) {
1712         case kMatchComplete: {
1713           p++;
1714           goto s_n_llhttp__internal__n_invoke_update_header_state_6;
1715         }
1716         case kMatchPause: {
1717           return s_n_llhttp__internal__n_header_value_connection_3;
1718         }
1719         case kMatchMismatch: {
1720           goto s_n_llhttp__internal__n_header_value_connection_token;
1721         }
1722       }
1723       /* UNREACHABLE */;
1724       abort();
1725     }
1726     case s_n_llhttp__internal__n_header_value_connection:
1727     s_n_llhttp__internal__n_header_value_connection: {
1728       if (p == endp) {
1729         return s_n_llhttp__internal__n_header_value_connection;
1730       }
1731       switch (((*p) >= 'A' && (*p) <= 'Z' ? (*p | 0x20) : (*p))) {
1732         case 9: {
1733           p++;
1734           goto s_n_llhttp__internal__n_header_value_connection;
1735         }
1736         case ' ': {
1737           p++;
1738           goto s_n_llhttp__internal__n_header_value_connection;
1739         }
1740         case 'c': {
1741           p++;
1742           goto s_n_llhttp__internal__n_header_value_connection_1;
1743         }
1744         case 'k': {
1745           p++;
1746           goto s_n_llhttp__internal__n_header_value_connection_2;
1747         }
1748         case 'u': {
1749           p++;
1750           goto s_n_llhttp__internal__n_header_value_connection_3;
1751         }
1752         default: {
1753           goto s_n_llhttp__internal__n_header_value_connection_token;
1754         }
1755       }
1756       /* UNREACHABLE */;
1757       abort();
1758     }
1759     case s_n_llhttp__internal__n_error_24:
1760     s_n_llhttp__internal__n_error_24: {
1761       state->error = 0xb;
1762       state->reason = "Content-Length overflow";
1763       state->error_pos = (const char*) p;
1764       state->_current = (void*) (intptr_t) s_error;
1765       return s_error;
1766       /* UNREACHABLE */;
1767       abort();
1768     }
1769     case s_n_llhttp__internal__n_error_25:
1770     s_n_llhttp__internal__n_error_25: {
1771       state->error = 0xb;
1772       state->reason = "Invalid character in Content-Length";
1773       state->error_pos = (const char*) p;
1774       state->_current = (void*) (intptr_t) s_error;
1775       return s_error;
1776       /* UNREACHABLE */;
1777       abort();
1778     }
1779     case s_n_llhttp__internal__n_header_value_content_length_ws:
1780     s_n_llhttp__internal__n_header_value_content_length_ws: {
1781       if (p == endp) {
1782         return s_n_llhttp__internal__n_header_value_content_length_ws;
1783       }
1784       switch (*p) {
1785         case 10: {
1786           goto s_n_llhttp__internal__n_invoke_or_flags_15;
1787         }
1788         case 13: {
1789           goto s_n_llhttp__internal__n_invoke_or_flags_15;
1790         }
1791         case ' ': {
1792           p++;
1793           goto s_n_llhttp__internal__n_header_value_content_length_ws;
1794         }
1795         default: {
1796           goto s_n_llhttp__internal__n_span_end_llhttp__on_header_value_5;
1797         }
1798       }
1799       /* UNREACHABLE */;
1800       abort();
1801     }
1802     case s_n_llhttp__internal__n_header_value_content_length:
1803     s_n_llhttp__internal__n_header_value_content_length: {
1804       if (p == endp) {
1805         return s_n_llhttp__internal__n_header_value_content_length;
1806       }
1807       switch (*p) {
1808         case '0': {
1809           p++;
1810           match = 0;
1811           goto s_n_llhttp__internal__n_invoke_mul_add_content_length_1;
1812         }
1813         case '1': {
1814           p++;
1815           match = 1;
1816           goto s_n_llhttp__internal__n_invoke_mul_add_content_length_1;
1817         }
1818         case '2': {
1819           p++;
1820           match = 2;
1821           goto s_n_llhttp__internal__n_invoke_mul_add_content_length_1;
1822         }
1823         case '3': {
1824           p++;
1825           match = 3;
1826           goto s_n_llhttp__internal__n_invoke_mul_add_content_length_1;
1827         }
1828         case '4': {
1829           p++;
1830           match = 4;
1831           goto s_n_llhttp__internal__n_invoke_mul_add_content_length_1;
1832         }
1833         case '5': {
1834           p++;
1835           match = 5;
1836           goto s_n_llhttp__internal__n_invoke_mul_add_content_length_1;
1837         }
1838         case '6': {
1839           p++;
1840           match = 6;
1841           goto s_n_llhttp__internal__n_invoke_mul_add_content_length_1;
1842         }
1843         case '7': {
1844           p++;
1845           match = 7;
1846           goto s_n_llhttp__internal__n_invoke_mul_add_content_length_1;
1847         }
1848         case '8': {
1849           p++;
1850           match = 8;
1851           goto s_n_llhttp__internal__n_invoke_mul_add_content_length_1;
1852         }
1853         case '9': {
1854           p++;
1855           match = 9;
1856           goto s_n_llhttp__internal__n_invoke_mul_add_content_length_1;
1857         }
1858         default: {
1859           goto s_n_llhttp__internal__n_header_value_content_length_ws;
1860         }
1861       }
1862       /* UNREACHABLE */;
1863       abort();
1864     }
1865     case s_n_llhttp__internal__n_header_value_te_chunked_last:
1866     s_n_llhttp__internal__n_header_value_te_chunked_last: {
1867       if (p == endp) {
1868         return s_n_llhttp__internal__n_header_value_te_chunked_last;
1869       }
1870       switch (*p) {
1871         case 10: {
1872           goto s_n_llhttp__internal__n_invoke_update_header_state_7;
1873         }
1874         case 13: {
1875           goto s_n_llhttp__internal__n_invoke_update_header_state_7;
1876         }
1877         case ' ': {
1878           p++;
1879           goto s_n_llhttp__internal__n_header_value_te_chunked_last;
1880         }
1881         default: {
1882           goto s_n_llhttp__internal__n_header_value_te_chunked;
1883         }
1884       }
1885       /* UNREACHABLE */;
1886       abort();
1887     }
1888     case s_n_llhttp__internal__n_header_value_te_token_ows:
1889     s_n_llhttp__internal__n_header_value_te_token_ows: {
1890       if (p == endp) {
1891         return s_n_llhttp__internal__n_header_value_te_token_ows;
1892       }
1893       switch (*p) {
1894         case 9: {
1895           p++;
1896           goto s_n_llhttp__internal__n_header_value_te_token_ows;
1897         }
1898         case ' ': {
1899           p++;
1900           goto s_n_llhttp__internal__n_header_value_te_token_ows;
1901         }
1902         default: {
1903           goto s_n_llhttp__internal__n_header_value_te_chunked;
1904         }
1905       }
1906       /* UNREACHABLE */;
1907       abort();
1908     }
1909     case s_n_llhttp__internal__n_header_value:
1910     s_n_llhttp__internal__n_header_value: {
1911       static uint8_t lookup_table[] = {
1912         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
1913         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1914         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1915         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1916         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1917         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1918         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1919         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
1920         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1921         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1922         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1923         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1924         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1925         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1926         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1927         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
1928       };
1929       if (p == endp) {
1930         return s_n_llhttp__internal__n_header_value;
1931       }
1932       #ifdef __SSE4_2__
1933       if (endp - p >= 16) {
1934         __m128i ranges;
1935         __m128i input;
1936         int avail;
1937         int match_len;
1938 
1939         /* Load input */
1940         input = _mm_loadu_si128((__m128i const*) p);
1941         ranges = _mm_loadu_si128((__m128i const*) llparse_blob8);
1942 
1943         /* Find first character that does not match `ranges` */
1944         match_len = _mm_cmpestri(ranges, 6,
1945             input, 16,
1946             _SIDD_UBYTE_OPS | _SIDD_CMP_RANGES |
1947               _SIDD_NEGATIVE_POLARITY);
1948 
1949         if (match_len != 0) {
1950           p += match_len;
1951           goto s_n_llhttp__internal__n_header_value;
1952         }
1953         goto s_n_llhttp__internal__n_header_value_otherwise;
1954       }
1955       #endif  /* __SSE4_2__ */
1956       switch (lookup_table[(uint8_t) *p]) {
1957         case 1: {
1958           p++;
1959           goto s_n_llhttp__internal__n_header_value;
1960         }
1961         default: {
1962           goto s_n_llhttp__internal__n_header_value_otherwise;
1963         }
1964       }
1965       /* UNREACHABLE */;
1966       abort();
1967     }
1968     case s_n_llhttp__internal__n_header_value_te_token:
1969     s_n_llhttp__internal__n_header_value_te_token: {
1970       static uint8_t lookup_table[] = {
1971         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
1972         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1973         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1,
1974         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1975         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1976         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1977         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1978         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
1979         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1980         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1981         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1982         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1983         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1984         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1985         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1986         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
1987       };
1988       if (p == endp) {
1989         return s_n_llhttp__internal__n_header_value_te_token;
1990       }
1991       switch (lookup_table[(uint8_t) *p]) {
1992         case 1: {
1993           p++;
1994           goto s_n_llhttp__internal__n_header_value_te_token;
1995         }
1996         case 2: {
1997           p++;
1998           goto s_n_llhttp__internal__n_header_value_te_token_ows;
1999         }
2000         default: {
2001           goto s_n_llhttp__internal__n_invoke_update_header_state_8;
2002         }
2003       }
2004       /* UNREACHABLE */;
2005       abort();
2006     }
2007     case s_n_llhttp__internal__n_header_value_te_chunked:
2008     s_n_llhttp__internal__n_header_value_te_chunked: {
2009       llparse_match_t match_seq;
2010 
2011       if (p == endp) {
2012         return s_n_llhttp__internal__n_header_value_te_chunked;
2013       }
2014       match_seq = llparse__match_sequence_to_lower_unsafe(state, p, endp, llparse_blob7, 7);
2015       p = match_seq.current;
2016       switch (match_seq.status) {
2017         case kMatchComplete: {
2018           p++;
2019           goto s_n_llhttp__internal__n_header_value_te_chunked_last;
2020         }
2021         case kMatchPause: {
2022           return s_n_llhttp__internal__n_header_value_te_chunked;
2023         }
2024         case kMatchMismatch: {
2025           goto s_n_llhttp__internal__n_header_value_te_token;
2026         }
2027       }
2028       /* UNREACHABLE */;
2029       abort();
2030     }
2031     case s_n_llhttp__internal__n_span_start_llhttp__on_header_value_1:
2032     s_n_llhttp__internal__n_span_start_llhttp__on_header_value_1: {
2033       if (p == endp) {
2034         return s_n_llhttp__internal__n_span_start_llhttp__on_header_value_1;
2035       }
2036       state->_span_pos0 = (void*) p;
2037       state->_span_cb0 = llhttp__on_header_value;
2038       goto s_n_llhttp__internal__n_invoke_load_header_state_2;
2039       /* UNREACHABLE */;
2040       abort();
2041     }
2042     case s_n_llhttp__internal__n_header_value_discard_ws:
2043     s_n_llhttp__internal__n_header_value_discard_ws: {
2044       if (p == endp) {
2045         return s_n_llhttp__internal__n_header_value_discard_ws;
2046       }
2047       switch (*p) {
2048         case 9: {
2049           p++;
2050           goto s_n_llhttp__internal__n_header_value_discard_ws;
2051         }
2052         case 10: {
2053           p++;
2054           goto s_n_llhttp__internal__n_header_value_discard_lws;
2055         }
2056         case 13: {
2057           p++;
2058           goto s_n_llhttp__internal__n_header_value_discard_ws_almost_done;
2059         }
2060         case ' ': {
2061           p++;
2062           goto s_n_llhttp__internal__n_header_value_discard_ws;
2063         }
2064         default: {
2065           goto s_n_llhttp__internal__n_span_start_llhttp__on_header_value_1;
2066         }
2067       }
2068       /* UNREACHABLE */;
2069       abort();
2070     }
2071     case s_n_llhttp__internal__n_header_field_general_otherwise:
2072     s_n_llhttp__internal__n_header_field_general_otherwise: {
2073       if (p == endp) {
2074         return s_n_llhttp__internal__n_header_field_general_otherwise;
2075       }
2076       switch (*p) {
2077         case ':': {
2078           goto s_n_llhttp__internal__n_span_end_llhttp__on_header_field_1;
2079         }
2080         default: {
2081           goto s_n_llhttp__internal__n_error_26;
2082         }
2083       }
2084       /* UNREACHABLE */;
2085       abort();
2086     }
2087     case s_n_llhttp__internal__n_header_field_general:
2088     s_n_llhttp__internal__n_header_field_general: {
2089       static uint8_t lookup_table[] = {
2090         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2091         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2092         0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0,
2093         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,
2094         0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2095         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1,
2096         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2097         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0,
2098         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2099         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2100         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2101         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2102         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2103         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2104         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2105         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
2106       };
2107       if (p == endp) {
2108         return s_n_llhttp__internal__n_header_field_general;
2109       }
2110       #ifdef __SSE4_2__
2111       if (endp - p >= 16) {
2112         __m128i ranges;
2113         __m128i input;
2114         int avail;
2115         int match_len;
2116 
2117         /* Load input */
2118         input = _mm_loadu_si128((__m128i const*) p);
2119         ranges = _mm_loadu_si128((__m128i const*) llparse_blob9);
2120 
2121         /* Find first character that does not match `ranges` */
2122         match_len = _mm_cmpestri(ranges, 16,
2123             input, 16,
2124             _SIDD_UBYTE_OPS | _SIDD_CMP_RANGES |
2125               _SIDD_NEGATIVE_POLARITY);
2126 
2127         if (match_len != 0) {
2128           p += match_len;
2129           goto s_n_llhttp__internal__n_header_field_general;
2130         }
2131         ranges = _mm_loadu_si128((__m128i const*) llparse_blob10);
2132 
2133         /* Find first character that does not match `ranges` */
2134         match_len = _mm_cmpestri(ranges, 2,
2135             input, 16,
2136             _SIDD_UBYTE_OPS | _SIDD_CMP_RANGES |
2137               _SIDD_NEGATIVE_POLARITY);
2138 
2139         if (match_len != 0) {
2140           p += match_len;
2141           goto s_n_llhttp__internal__n_header_field_general;
2142         }
2143         goto s_n_llhttp__internal__n_header_field_general_otherwise;
2144       }
2145       #endif  /* __SSE4_2__ */
2146       switch (lookup_table[(uint8_t) *p]) {
2147         case 1: {
2148           p++;
2149           goto s_n_llhttp__internal__n_header_field_general;
2150         }
2151         default: {
2152           goto s_n_llhttp__internal__n_header_field_general_otherwise;
2153         }
2154       }
2155       /* UNREACHABLE */;
2156       abort();
2157     }
2158     case s_n_llhttp__internal__n_header_field_colon:
2159     s_n_llhttp__internal__n_header_field_colon: {
2160       if (p == endp) {
2161         return s_n_llhttp__internal__n_header_field_colon;
2162       }
2163       switch (*p) {
2164         case ' ': {
2165           p++;
2166           goto s_n_llhttp__internal__n_header_field_colon;
2167         }
2168         case ':': {
2169           goto s_n_llhttp__internal__n_span_end_llhttp__on_header_field;
2170         }
2171         default: {
2172           goto s_n_llhttp__internal__n_invoke_update_header_state_9;
2173         }
2174       }
2175       /* UNREACHABLE */;
2176       abort();
2177     }
2178     case s_n_llhttp__internal__n_header_field_3:
2179     s_n_llhttp__internal__n_header_field_3: {
2180       llparse_match_t match_seq;
2181 
2182       if (p == endp) {
2183         return s_n_llhttp__internal__n_header_field_3;
2184       }
2185       match_seq = llparse__match_sequence_to_lower(state, p, endp, llparse_blob3, 6);
2186       p = match_seq.current;
2187       switch (match_seq.status) {
2188         case kMatchComplete: {
2189           p++;
2190           match = 1;
2191           goto s_n_llhttp__internal__n_invoke_store_header_state;
2192         }
2193         case kMatchPause: {
2194           return s_n_llhttp__internal__n_header_field_3;
2195         }
2196         case kMatchMismatch: {
2197           goto s_n_llhttp__internal__n_invoke_update_header_state_10;
2198         }
2199       }
2200       /* UNREACHABLE */;
2201       abort();
2202     }
2203     case s_n_llhttp__internal__n_header_field_4:
2204     s_n_llhttp__internal__n_header_field_4: {
2205       llparse_match_t match_seq;
2206 
2207       if (p == endp) {
2208         return s_n_llhttp__internal__n_header_field_4;
2209       }
2210       match_seq = llparse__match_sequence_to_lower(state, p, endp, llparse_blob11, 10);
2211       p = match_seq.current;
2212       switch (match_seq.status) {
2213         case kMatchComplete: {
2214           p++;
2215           match = 2;
2216           goto s_n_llhttp__internal__n_invoke_store_header_state;
2217         }
2218         case kMatchPause: {
2219           return s_n_llhttp__internal__n_header_field_4;
2220         }
2221         case kMatchMismatch: {
2222           goto s_n_llhttp__internal__n_invoke_update_header_state_10;
2223         }
2224       }
2225       /* UNREACHABLE */;
2226       abort();
2227     }
2228     case s_n_llhttp__internal__n_header_field_2:
2229     s_n_llhttp__internal__n_header_field_2: {
2230       if (p == endp) {
2231         return s_n_llhttp__internal__n_header_field_2;
2232       }
2233       switch (((*p) >= 'A' && (*p) <= 'Z' ? (*p | 0x20) : (*p))) {
2234         case 'n': {
2235           p++;
2236           goto s_n_llhttp__internal__n_header_field_3;
2237         }
2238         case 't': {
2239           p++;
2240           goto s_n_llhttp__internal__n_header_field_4;
2241         }
2242         default: {
2243           goto s_n_llhttp__internal__n_invoke_update_header_state_10;
2244         }
2245       }
2246       /* UNREACHABLE */;
2247       abort();
2248     }
2249     case s_n_llhttp__internal__n_header_field_1:
2250     s_n_llhttp__internal__n_header_field_1: {
2251       llparse_match_t match_seq;
2252 
2253       if (p == endp) {
2254         return s_n_llhttp__internal__n_header_field_1;
2255       }
2256       match_seq = llparse__match_sequence_to_lower(state, p, endp, llparse_blob2, 2);
2257       p = match_seq.current;
2258       switch (match_seq.status) {
2259         case kMatchComplete: {
2260           p++;
2261           goto s_n_llhttp__internal__n_header_field_2;
2262         }
2263         case kMatchPause: {
2264           return s_n_llhttp__internal__n_header_field_1;
2265         }
2266         case kMatchMismatch: {
2267           goto s_n_llhttp__internal__n_invoke_update_header_state_10;
2268         }
2269       }
2270       /* UNREACHABLE */;
2271       abort();
2272     }
2273     case s_n_llhttp__internal__n_header_field_5:
2274     s_n_llhttp__internal__n_header_field_5: {
2275       llparse_match_t match_seq;
2276 
2277       if (p == endp) {
2278         return s_n_llhttp__internal__n_header_field_5;
2279       }
2280       match_seq = llparse__match_sequence_to_lower(state, p, endp, llparse_blob12, 15);
2281       p = match_seq.current;
2282       switch (match_seq.status) {
2283         case kMatchComplete: {
2284           p++;
2285           match = 1;
2286           goto s_n_llhttp__internal__n_invoke_store_header_state;
2287         }
2288         case kMatchPause: {
2289           return s_n_llhttp__internal__n_header_field_5;
2290         }
2291         case kMatchMismatch: {
2292           goto s_n_llhttp__internal__n_invoke_update_header_state_10;
2293         }
2294       }
2295       /* UNREACHABLE */;
2296       abort();
2297     }
2298     case s_n_llhttp__internal__n_header_field_6:
2299     s_n_llhttp__internal__n_header_field_6: {
2300       llparse_match_t match_seq;
2301 
2302       if (p == endp) {
2303         return s_n_llhttp__internal__n_header_field_6;
2304       }
2305       match_seq = llparse__match_sequence_to_lower(state, p, endp, llparse_blob13, 16);
2306       p = match_seq.current;
2307       switch (match_seq.status) {
2308         case kMatchComplete: {
2309           p++;
2310           match = 3;
2311           goto s_n_llhttp__internal__n_invoke_store_header_state;
2312         }
2313         case kMatchPause: {
2314           return s_n_llhttp__internal__n_header_field_6;
2315         }
2316         case kMatchMismatch: {
2317           goto s_n_llhttp__internal__n_invoke_update_header_state_10;
2318         }
2319       }
2320       /* UNREACHABLE */;
2321       abort();
2322     }
2323     case s_n_llhttp__internal__n_header_field_7:
2324     s_n_llhttp__internal__n_header_field_7: {
2325       llparse_match_t match_seq;
2326 
2327       if (p == endp) {
2328         return s_n_llhttp__internal__n_header_field_7;
2329       }
2330       match_seq = llparse__match_sequence_to_lower(state, p, endp, llparse_blob14, 6);
2331       p = match_seq.current;
2332       switch (match_seq.status) {
2333         case kMatchComplete: {
2334           p++;
2335           match = 4;
2336           goto s_n_llhttp__internal__n_invoke_store_header_state;
2337         }
2338         case kMatchPause: {
2339           return s_n_llhttp__internal__n_header_field_7;
2340         }
2341         case kMatchMismatch: {
2342           goto s_n_llhttp__internal__n_invoke_update_header_state_10;
2343         }
2344       }
2345       /* UNREACHABLE */;
2346       abort();
2347     }
2348     case s_n_llhttp__internal__n_header_field:
2349     s_n_llhttp__internal__n_header_field: {
2350       if (p == endp) {
2351         return s_n_llhttp__internal__n_header_field;
2352       }
2353       switch (((*p) >= 'A' && (*p) <= 'Z' ? (*p | 0x20) : (*p))) {
2354         case 'c': {
2355           p++;
2356           goto s_n_llhttp__internal__n_header_field_1;
2357         }
2358         case 'p': {
2359           p++;
2360           goto s_n_llhttp__internal__n_header_field_5;
2361         }
2362         case 't': {
2363           p++;
2364           goto s_n_llhttp__internal__n_header_field_6;
2365         }
2366         case 'u': {
2367           p++;
2368           goto s_n_llhttp__internal__n_header_field_7;
2369         }
2370         default: {
2371           goto s_n_llhttp__internal__n_invoke_update_header_state_10;
2372         }
2373       }
2374       /* UNREACHABLE */;
2375       abort();
2376     }
2377     case s_n_llhttp__internal__n_span_start_llhttp__on_header_field:
2378     s_n_llhttp__internal__n_span_start_llhttp__on_header_field: {
2379       if (p == endp) {
2380         return s_n_llhttp__internal__n_span_start_llhttp__on_header_field;
2381       }
2382       state->_span_pos0 = (void*) p;
2383       state->_span_cb0 = llhttp__on_header_field;
2384       goto s_n_llhttp__internal__n_header_field;
2385       /* UNREACHABLE */;
2386       abort();
2387     }
2388     case s_n_llhttp__internal__n_header_field_start:
2389     s_n_llhttp__internal__n_header_field_start: {
2390       if (p == endp) {
2391         return s_n_llhttp__internal__n_header_field_start;
2392       }
2393       switch (*p) {
2394         case 10: {
2395           goto s_n_llhttp__internal__n_headers_almost_done;
2396         }
2397         case 13: {
2398           p++;
2399           goto s_n_llhttp__internal__n_headers_almost_done;
2400         }
2401         default: {
2402           goto s_n_llhttp__internal__n_span_start_llhttp__on_header_field;
2403         }
2404       }
2405       /* UNREACHABLE */;
2406       abort();
2407     }
2408     case s_n_llhttp__internal__n_url_to_http_09:
2409     s_n_llhttp__internal__n_url_to_http_09: {
2410       if (p == endp) {
2411         return s_n_llhttp__internal__n_url_to_http_09;
2412       }
2413       switch (*p) {
2414         case 9: {
2415           p++;
2416           goto s_n_llhttp__internal__n_error_1;
2417         }
2418         case 12: {
2419           p++;
2420           goto s_n_llhttp__internal__n_error_1;
2421         }
2422         default: {
2423           goto s_n_llhttp__internal__n_invoke_update_http_major;
2424         }
2425       }
2426       /* UNREACHABLE */;
2427       abort();
2428     }
2429     case s_n_llhttp__internal__n_url_skip_to_http09:
2430     s_n_llhttp__internal__n_url_skip_to_http09: {
2431       if (p == endp) {
2432         return s_n_llhttp__internal__n_url_skip_to_http09;
2433       }
2434       switch (*p) {
2435         case 9: {
2436           p++;
2437           goto s_n_llhttp__internal__n_error_1;
2438         }
2439         case 12: {
2440           p++;
2441           goto s_n_llhttp__internal__n_error_1;
2442         }
2443         default: {
2444           p++;
2445           goto s_n_llhttp__internal__n_url_to_http_09;
2446         }
2447       }
2448       /* UNREACHABLE */;
2449       abort();
2450     }
2451     case s_n_llhttp__internal__n_url_skip_lf_to_http09_1:
2452     s_n_llhttp__internal__n_url_skip_lf_to_http09_1: {
2453       if (p == endp) {
2454         return s_n_llhttp__internal__n_url_skip_lf_to_http09_1;
2455       }
2456       switch (*p) {
2457         case 10: {
2458           p++;
2459           goto s_n_llhttp__internal__n_url_to_http_09;
2460         }
2461         default: {
2462           goto s_n_llhttp__internal__n_error_27;
2463         }
2464       }
2465       /* UNREACHABLE */;
2466       abort();
2467     }
2468     case s_n_llhttp__internal__n_url_skip_lf_to_http09:
2469     s_n_llhttp__internal__n_url_skip_lf_to_http09: {
2470       if (p == endp) {
2471         return s_n_llhttp__internal__n_url_skip_lf_to_http09;
2472       }
2473       switch (*p) {
2474         case 9: {
2475           p++;
2476           goto s_n_llhttp__internal__n_error_1;
2477         }
2478         case 12: {
2479           p++;
2480           goto s_n_llhttp__internal__n_error_1;
2481         }
2482         case 13: {
2483           p++;
2484           goto s_n_llhttp__internal__n_url_skip_lf_to_http09_1;
2485         }
2486         default: {
2487           goto s_n_llhttp__internal__n_error_27;
2488         }
2489       }
2490       /* UNREACHABLE */;
2491       abort();
2492     }
2493     case s_n_llhttp__internal__n_req_http_end_1:
2494     s_n_llhttp__internal__n_req_http_end_1: {
2495       if (p == endp) {
2496         return s_n_llhttp__internal__n_req_http_end_1;
2497       }
2498       switch (*p) {
2499         case 10: {
2500           p++;
2501           goto s_n_llhttp__internal__n_header_field_start;
2502         }
2503         default: {
2504           goto s_n_llhttp__internal__n_error_28;
2505         }
2506       }
2507       /* UNREACHABLE */;
2508       abort();
2509     }
2510     case s_n_llhttp__internal__n_req_http_end:
2511     s_n_llhttp__internal__n_req_http_end: {
2512       if (p == endp) {
2513         return s_n_llhttp__internal__n_req_http_end;
2514       }
2515       switch (*p) {
2516         case 10: {
2517           p++;
2518           goto s_n_llhttp__internal__n_header_field_start;
2519         }
2520         case 13: {
2521           p++;
2522           goto s_n_llhttp__internal__n_req_http_end_1;
2523         }
2524         default: {
2525           goto s_n_llhttp__internal__n_error_28;
2526         }
2527       }
2528       /* UNREACHABLE */;
2529       abort();
2530     }
2531     case s_n_llhttp__internal__n_req_http_minor:
2532     s_n_llhttp__internal__n_req_http_minor: {
2533       if (p == endp) {
2534         return s_n_llhttp__internal__n_req_http_minor;
2535       }
2536       switch (*p) {
2537         case '0': {
2538           p++;
2539           match = 0;
2540           goto s_n_llhttp__internal__n_invoke_store_http_minor;
2541         }
2542         case '1': {
2543           p++;
2544           match = 1;
2545           goto s_n_llhttp__internal__n_invoke_store_http_minor;
2546         }
2547         case '2': {
2548           p++;
2549           match = 2;
2550           goto s_n_llhttp__internal__n_invoke_store_http_minor;
2551         }
2552         case '3': {
2553           p++;
2554           match = 3;
2555           goto s_n_llhttp__internal__n_invoke_store_http_minor;
2556         }
2557         case '4': {
2558           p++;
2559           match = 4;
2560           goto s_n_llhttp__internal__n_invoke_store_http_minor;
2561         }
2562         case '5': {
2563           p++;
2564           match = 5;
2565           goto s_n_llhttp__internal__n_invoke_store_http_minor;
2566         }
2567         case '6': {
2568           p++;
2569           match = 6;
2570           goto s_n_llhttp__internal__n_invoke_store_http_minor;
2571         }
2572         case '7': {
2573           p++;
2574           match = 7;
2575           goto s_n_llhttp__internal__n_invoke_store_http_minor;
2576         }
2577         case '8': {
2578           p++;
2579           match = 8;
2580           goto s_n_llhttp__internal__n_invoke_store_http_minor;
2581         }
2582         case '9': {
2583           p++;
2584           match = 9;
2585           goto s_n_llhttp__internal__n_invoke_store_http_minor;
2586         }
2587         default: {
2588           goto s_n_llhttp__internal__n_error_29;
2589         }
2590       }
2591       /* UNREACHABLE */;
2592       abort();
2593     }
2594     case s_n_llhttp__internal__n_req_http_dot:
2595     s_n_llhttp__internal__n_req_http_dot: {
2596       if (p == endp) {
2597         return s_n_llhttp__internal__n_req_http_dot;
2598       }
2599       switch (*p) {
2600         case '.': {
2601           p++;
2602           goto s_n_llhttp__internal__n_req_http_minor;
2603         }
2604         default: {
2605           goto s_n_llhttp__internal__n_error_30;
2606         }
2607       }
2608       /* UNREACHABLE */;
2609       abort();
2610     }
2611     case s_n_llhttp__internal__n_req_http_major:
2612     s_n_llhttp__internal__n_req_http_major: {
2613       if (p == endp) {
2614         return s_n_llhttp__internal__n_req_http_major;
2615       }
2616       switch (*p) {
2617         case '0': {
2618           p++;
2619           match = 0;
2620           goto s_n_llhttp__internal__n_invoke_store_http_major;
2621         }
2622         case '1': {
2623           p++;
2624           match = 1;
2625           goto s_n_llhttp__internal__n_invoke_store_http_major;
2626         }
2627         case '2': {
2628           p++;
2629           match = 2;
2630           goto s_n_llhttp__internal__n_invoke_store_http_major;
2631         }
2632         case '3': {
2633           p++;
2634           match = 3;
2635           goto s_n_llhttp__internal__n_invoke_store_http_major;
2636         }
2637         case '4': {
2638           p++;
2639           match = 4;
2640           goto s_n_llhttp__internal__n_invoke_store_http_major;
2641         }
2642         case '5': {
2643           p++;
2644           match = 5;
2645           goto s_n_llhttp__internal__n_invoke_store_http_major;
2646         }
2647         case '6': {
2648           p++;
2649           match = 6;
2650           goto s_n_llhttp__internal__n_invoke_store_http_major;
2651         }
2652         case '7': {
2653           p++;
2654           match = 7;
2655           goto s_n_llhttp__internal__n_invoke_store_http_major;
2656         }
2657         case '8': {
2658           p++;
2659           match = 8;
2660           goto s_n_llhttp__internal__n_invoke_store_http_major;
2661         }
2662         case '9': {
2663           p++;
2664           match = 9;
2665           goto s_n_llhttp__internal__n_invoke_store_http_major;
2666         }
2667         default: {
2668           goto s_n_llhttp__internal__n_error_31;
2669         }
2670       }
2671       /* UNREACHABLE */;
2672       abort();
2673     }
2674     case s_n_llhttp__internal__n_req_http_start_1:
2675     s_n_llhttp__internal__n_req_http_start_1: {
2676       llparse_match_t match_seq;
2677 
2678       if (p == endp) {
2679         return s_n_llhttp__internal__n_req_http_start_1;
2680       }
2681       match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob15, 4);
2682       p = match_seq.current;
2683       switch (match_seq.status) {
2684         case kMatchComplete: {
2685           p++;
2686           goto s_n_llhttp__internal__n_req_http_major;
2687         }
2688         case kMatchPause: {
2689           return s_n_llhttp__internal__n_req_http_start_1;
2690         }
2691         case kMatchMismatch: {
2692           goto s_n_llhttp__internal__n_error_33;
2693         }
2694       }
2695       /* UNREACHABLE */;
2696       abort();
2697     }
2698     case s_n_llhttp__internal__n_req_http_start_2:
2699     s_n_llhttp__internal__n_req_http_start_2: {
2700       llparse_match_t match_seq;
2701 
2702       if (p == endp) {
2703         return s_n_llhttp__internal__n_req_http_start_2;
2704       }
2705       match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob16, 3);
2706       p = match_seq.current;
2707       switch (match_seq.status) {
2708         case kMatchComplete: {
2709           p++;
2710           goto s_n_llhttp__internal__n_invoke_is_equal_method_1;
2711         }
2712         case kMatchPause: {
2713           return s_n_llhttp__internal__n_req_http_start_2;
2714         }
2715         case kMatchMismatch: {
2716           goto s_n_llhttp__internal__n_error_33;
2717         }
2718       }
2719       /* UNREACHABLE */;
2720       abort();
2721     }
2722     case s_n_llhttp__internal__n_req_http_start:
2723     s_n_llhttp__internal__n_req_http_start: {
2724       if (p == endp) {
2725         return s_n_llhttp__internal__n_req_http_start;
2726       }
2727       switch (*p) {
2728         case ' ': {
2729           p++;
2730           goto s_n_llhttp__internal__n_req_http_start;
2731         }
2732         case 'H': {
2733           p++;
2734           goto s_n_llhttp__internal__n_req_http_start_1;
2735         }
2736         case 'I': {
2737           p++;
2738           goto s_n_llhttp__internal__n_req_http_start_2;
2739         }
2740         default: {
2741           goto s_n_llhttp__internal__n_error_33;
2742         }
2743       }
2744       /* UNREACHABLE */;
2745       abort();
2746     }
2747     case s_n_llhttp__internal__n_url_to_http:
2748     s_n_llhttp__internal__n_url_to_http: {
2749       if (p == endp) {
2750         return s_n_llhttp__internal__n_url_to_http;
2751       }
2752       switch (*p) {
2753         case 9: {
2754           p++;
2755           goto s_n_llhttp__internal__n_error_1;
2756         }
2757         case 12: {
2758           p++;
2759           goto s_n_llhttp__internal__n_error_1;
2760         }
2761         default: {
2762           goto s_n_llhttp__internal__n_req_http_start;
2763         }
2764       }
2765       /* UNREACHABLE */;
2766       abort();
2767     }
2768     case s_n_llhttp__internal__n_url_skip_to_http:
2769     s_n_llhttp__internal__n_url_skip_to_http: {
2770       if (p == endp) {
2771         return s_n_llhttp__internal__n_url_skip_to_http;
2772       }
2773       switch (*p) {
2774         case 9: {
2775           p++;
2776           goto s_n_llhttp__internal__n_error_1;
2777         }
2778         case 12: {
2779           p++;
2780           goto s_n_llhttp__internal__n_error_1;
2781         }
2782         default: {
2783           p++;
2784           goto s_n_llhttp__internal__n_url_to_http;
2785         }
2786       }
2787       /* UNREACHABLE */;
2788       abort();
2789     }
2790     case s_n_llhttp__internal__n_url_fragment:
2791     s_n_llhttp__internal__n_url_fragment: {
2792       static uint8_t lookup_table[] = {
2793         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 1, 3, 0, 0,
2794         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2795         4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
2796         5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
2797         5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
2798         5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
2799         5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
2800         5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0,
2801         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2802         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2803         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2804         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2805         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2806         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2807         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2808         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
2809       };
2810       if (p == endp) {
2811         return s_n_llhttp__internal__n_url_fragment;
2812       }
2813       switch (lookup_table[(uint8_t) *p]) {
2814         case 1: {
2815           p++;
2816           goto s_n_llhttp__internal__n_error_1;
2817         }
2818         case 2: {
2819           goto s_n_llhttp__internal__n_span_end_llhttp__on_url_6;
2820         }
2821         case 3: {
2822           goto s_n_llhttp__internal__n_span_end_llhttp__on_url_7;
2823         }
2824         case 4: {
2825           goto s_n_llhttp__internal__n_span_end_llhttp__on_url_8;
2826         }
2827         case 5: {
2828           p++;
2829           goto s_n_llhttp__internal__n_url_fragment;
2830         }
2831         default: {
2832           goto s_n_llhttp__internal__n_error_34;
2833         }
2834       }
2835       /* UNREACHABLE */;
2836       abort();
2837     }
2838     case s_n_llhttp__internal__n_span_end_stub_query_3:
2839     s_n_llhttp__internal__n_span_end_stub_query_3: {
2840       if (p == endp) {
2841         return s_n_llhttp__internal__n_span_end_stub_query_3;
2842       }
2843       p++;
2844       goto s_n_llhttp__internal__n_url_fragment;
2845       /* UNREACHABLE */;
2846       abort();
2847     }
2848     case s_n_llhttp__internal__n_url_query:
2849     s_n_llhttp__internal__n_url_query: {
2850       static uint8_t lookup_table[] = {
2851         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 1, 3, 0, 0,
2852         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2853         4, 5, 5, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
2854         5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
2855         5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
2856         5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
2857         5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
2858         5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0,
2859         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2860         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2861         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2862         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2863         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2864         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2865         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2866         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
2867       };
2868       if (p == endp) {
2869         return s_n_llhttp__internal__n_url_query;
2870       }
2871       switch (lookup_table[(uint8_t) *p]) {
2872         case 1: {
2873           p++;
2874           goto s_n_llhttp__internal__n_error_1;
2875         }
2876         case 2: {
2877           goto s_n_llhttp__internal__n_span_end_llhttp__on_url_9;
2878         }
2879         case 3: {
2880           goto s_n_llhttp__internal__n_span_end_llhttp__on_url_10;
2881         }
2882         case 4: {
2883           goto s_n_llhttp__internal__n_span_end_llhttp__on_url_11;
2884         }
2885         case 5: {
2886           p++;
2887           goto s_n_llhttp__internal__n_url_query;
2888         }
2889         case 6: {
2890           goto s_n_llhttp__internal__n_span_end_stub_query_3;
2891         }
2892         default: {
2893           goto s_n_llhttp__internal__n_error_35;
2894         }
2895       }
2896       /* UNREACHABLE */;
2897       abort();
2898     }
2899     case s_n_llhttp__internal__n_url_query_or_fragment:
2900     s_n_llhttp__internal__n_url_query_or_fragment: {
2901       if (p == endp) {
2902         return s_n_llhttp__internal__n_url_query_or_fragment;
2903       }
2904       switch (*p) {
2905         case 9: {
2906           p++;
2907           goto s_n_llhttp__internal__n_error_1;
2908         }
2909         case 10: {
2910           goto s_n_llhttp__internal__n_span_end_llhttp__on_url_3;
2911         }
2912         case 12: {
2913           p++;
2914           goto s_n_llhttp__internal__n_error_1;
2915         }
2916         case 13: {
2917           goto s_n_llhttp__internal__n_span_end_llhttp__on_url_4;
2918         }
2919         case ' ': {
2920           goto s_n_llhttp__internal__n_span_end_llhttp__on_url_5;
2921         }
2922         case '#': {
2923           p++;
2924           goto s_n_llhttp__internal__n_url_fragment;
2925         }
2926         case '?': {
2927           p++;
2928           goto s_n_llhttp__internal__n_url_query;
2929         }
2930         default: {
2931           goto s_n_llhttp__internal__n_error_36;
2932         }
2933       }
2934       /* UNREACHABLE */;
2935       abort();
2936     }
2937     case s_n_llhttp__internal__n_url_path:
2938     s_n_llhttp__internal__n_url_path: {
2939       static uint8_t lookup_table[] = {
2940         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0,
2941         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2942         0, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2943         2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0,
2944         2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2945         2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2946         2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2947         2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0,
2948         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2949         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2950         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2951         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2952         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2953         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2954         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2955         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
2956       };
2957       if (p == endp) {
2958         return s_n_llhttp__internal__n_url_path;
2959       }
2960       switch (lookup_table[(uint8_t) *p]) {
2961         case 1: {
2962           p++;
2963           goto s_n_llhttp__internal__n_error_1;
2964         }
2965         case 2: {
2966           p++;
2967           goto s_n_llhttp__internal__n_url_path;
2968         }
2969         default: {
2970           goto s_n_llhttp__internal__n_url_query_or_fragment;
2971         }
2972       }
2973       /* UNREACHABLE */;
2974       abort();
2975     }
2976     case s_n_llhttp__internal__n_span_start_stub_path_2:
2977     s_n_llhttp__internal__n_span_start_stub_path_2: {
2978       if (p == endp) {
2979         return s_n_llhttp__internal__n_span_start_stub_path_2;
2980       }
2981       p++;
2982       goto s_n_llhttp__internal__n_url_path;
2983       /* UNREACHABLE */;
2984       abort();
2985     }
2986     case s_n_llhttp__internal__n_span_start_stub_path:
2987     s_n_llhttp__internal__n_span_start_stub_path: {
2988       if (p == endp) {
2989         return s_n_llhttp__internal__n_span_start_stub_path;
2990       }
2991       p++;
2992       goto s_n_llhttp__internal__n_url_path;
2993       /* UNREACHABLE */;
2994       abort();
2995     }
2996     case s_n_llhttp__internal__n_span_start_stub_path_1:
2997     s_n_llhttp__internal__n_span_start_stub_path_1: {
2998       if (p == endp) {
2999         return s_n_llhttp__internal__n_span_start_stub_path_1;
3000       }
3001       p++;
3002       goto s_n_llhttp__internal__n_url_path;
3003       /* UNREACHABLE */;
3004       abort();
3005     }
3006     case s_n_llhttp__internal__n_url_server_with_at:
3007     s_n_llhttp__internal__n_url_server_with_at: {
3008       static uint8_t lookup_table[] = {
3009         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 1, 3, 0, 0,
3010         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3011         4, 5, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6,
3012         5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 5, 0, 7,
3013         8, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
3014         5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 5, 0, 5,
3015         0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
3016         5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 5, 0,
3017         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3018         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3019         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3020         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3021         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3022         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3023         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3024         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
3025       };
3026       if (p == endp) {
3027         return s_n_llhttp__internal__n_url_server_with_at;
3028       }
3029       switch (lookup_table[(uint8_t) *p]) {
3030         case 1: {
3031           p++;
3032           goto s_n_llhttp__internal__n_error_1;
3033         }
3034         case 2: {
3035           goto s_n_llhttp__internal__n_span_end_llhttp__on_url_12;
3036         }
3037         case 3: {
3038           goto s_n_llhttp__internal__n_span_end_llhttp__on_url_13;
3039         }
3040         case 4: {
3041           goto s_n_llhttp__internal__n_span_end_llhttp__on_url_14;
3042         }
3043         case 5: {
3044           p++;
3045           goto s_n_llhttp__internal__n_url_server;
3046         }
3047         case 6: {
3048           goto s_n_llhttp__internal__n_span_start_stub_path_1;
3049         }
3050         case 7: {
3051           p++;
3052           goto s_n_llhttp__internal__n_url_query;
3053         }
3054         case 8: {
3055           p++;
3056           goto s_n_llhttp__internal__n_error_37;
3057         }
3058         default: {
3059           goto s_n_llhttp__internal__n_error_38;
3060         }
3061       }
3062       /* UNREACHABLE */;
3063       abort();
3064     }
3065     case s_n_llhttp__internal__n_url_server:
3066     s_n_llhttp__internal__n_url_server: {
3067       static uint8_t lookup_table[] = {
3068         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 1, 3, 0, 0,
3069         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3070         4, 5, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6,
3071         5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 5, 0, 7,
3072         8, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
3073         5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 5, 0, 5,
3074         0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
3075         5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 5, 0,
3076         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3077         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3078         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3079         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3080         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3081         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3082         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3083         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
3084       };
3085       if (p == endp) {
3086         return s_n_llhttp__internal__n_url_server;
3087       }
3088       switch (lookup_table[(uint8_t) *p]) {
3089         case 1: {
3090           p++;
3091           goto s_n_llhttp__internal__n_error_1;
3092         }
3093         case 2: {
3094           goto s_n_llhttp__internal__n_span_end_llhttp__on_url;
3095         }
3096         case 3: {
3097           goto s_n_llhttp__internal__n_span_end_llhttp__on_url_1;
3098         }
3099         case 4: {
3100           goto s_n_llhttp__internal__n_span_end_llhttp__on_url_2;
3101         }
3102         case 5: {
3103           p++;
3104           goto s_n_llhttp__internal__n_url_server;
3105         }
3106         case 6: {
3107           goto s_n_llhttp__internal__n_span_start_stub_path;
3108         }
3109         case 7: {
3110           p++;
3111           goto s_n_llhttp__internal__n_url_query;
3112         }
3113         case 8: {
3114           p++;
3115           goto s_n_llhttp__internal__n_url_server_with_at;
3116         }
3117         default: {
3118           goto s_n_llhttp__internal__n_error_39;
3119         }
3120       }
3121       /* UNREACHABLE */;
3122       abort();
3123     }
3124     case s_n_llhttp__internal__n_url_schema_delim_1:
3125     s_n_llhttp__internal__n_url_schema_delim_1: {
3126       if (p == endp) {
3127         return s_n_llhttp__internal__n_url_schema_delim_1;
3128       }
3129       switch (*p) {
3130         case '/': {
3131           p++;
3132           goto s_n_llhttp__internal__n_url_server;
3133         }
3134         default: {
3135           goto s_n_llhttp__internal__n_error_41;
3136         }
3137       }
3138       /* UNREACHABLE */;
3139       abort();
3140     }
3141     case s_n_llhttp__internal__n_url_schema_delim:
3142     s_n_llhttp__internal__n_url_schema_delim: {
3143       if (p == endp) {
3144         return s_n_llhttp__internal__n_url_schema_delim;
3145       }
3146       switch (*p) {
3147         case 9: {
3148           p++;
3149           goto s_n_llhttp__internal__n_error_1;
3150         }
3151         case 10: {
3152           p++;
3153           goto s_n_llhttp__internal__n_error_40;
3154         }
3155         case 12: {
3156           p++;
3157           goto s_n_llhttp__internal__n_error_1;
3158         }
3159         case 13: {
3160           p++;
3161           goto s_n_llhttp__internal__n_error_40;
3162         }
3163         case ' ': {
3164           p++;
3165           goto s_n_llhttp__internal__n_error_40;
3166         }
3167         case '/': {
3168           p++;
3169           goto s_n_llhttp__internal__n_url_schema_delim_1;
3170         }
3171         default: {
3172           goto s_n_llhttp__internal__n_error_41;
3173         }
3174       }
3175       /* UNREACHABLE */;
3176       abort();
3177     }
3178     case s_n_llhttp__internal__n_span_end_stub_schema:
3179     s_n_llhttp__internal__n_span_end_stub_schema: {
3180       if (p == endp) {
3181         return s_n_llhttp__internal__n_span_end_stub_schema;
3182       }
3183       p++;
3184       goto s_n_llhttp__internal__n_url_schema_delim;
3185       /* UNREACHABLE */;
3186       abort();
3187     }
3188     case s_n_llhttp__internal__n_url_schema:
3189     s_n_llhttp__internal__n_url_schema: {
3190       static uint8_t lookup_table[] = {
3191         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 1, 2, 0, 0,
3192         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3193         2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3194         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0,
3195         0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
3196         4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0,
3197         0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
3198         4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0,
3199         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3200         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3201         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3202         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3203         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3204         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3205         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3206         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
3207       };
3208       if (p == endp) {
3209         return s_n_llhttp__internal__n_url_schema;
3210       }
3211       switch (lookup_table[(uint8_t) *p]) {
3212         case 1: {
3213           p++;
3214           goto s_n_llhttp__internal__n_error_1;
3215         }
3216         case 2: {
3217           p++;
3218           goto s_n_llhttp__internal__n_error_40;
3219         }
3220         case 3: {
3221           goto s_n_llhttp__internal__n_span_end_stub_schema;
3222         }
3223         case 4: {
3224           p++;
3225           goto s_n_llhttp__internal__n_url_schema;
3226         }
3227         default: {
3228           goto s_n_llhttp__internal__n_error_42;
3229         }
3230       }
3231       /* UNREACHABLE */;
3232       abort();
3233     }
3234     case s_n_llhttp__internal__n_url_start:
3235     s_n_llhttp__internal__n_url_start: {
3236       static uint8_t lookup_table[] = {
3237         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 1, 2, 0, 0,
3238         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3239         2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 3,
3240         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3241         0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
3242         4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0,
3243         0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
3244         4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0,
3245         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3246         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3247         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3248         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3249         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3250         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3251         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3252         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
3253       };
3254       if (p == endp) {
3255         return s_n_llhttp__internal__n_url_start;
3256       }
3257       switch (lookup_table[(uint8_t) *p]) {
3258         case 1: {
3259           p++;
3260           goto s_n_llhttp__internal__n_error_1;
3261         }
3262         case 2: {
3263           p++;
3264           goto s_n_llhttp__internal__n_error_40;
3265         }
3266         case 3: {
3267           goto s_n_llhttp__internal__n_span_start_stub_path_2;
3268         }
3269         case 4: {
3270           goto s_n_llhttp__internal__n_url_schema;
3271         }
3272         default: {
3273           goto s_n_llhttp__internal__n_error_43;
3274         }
3275       }
3276       /* UNREACHABLE */;
3277       abort();
3278     }
3279     case s_n_llhttp__internal__n_span_start_llhttp__on_url_1:
3280     s_n_llhttp__internal__n_span_start_llhttp__on_url_1: {
3281       if (p == endp) {
3282         return s_n_llhttp__internal__n_span_start_llhttp__on_url_1;
3283       }
3284       state->_span_pos0 = (void*) p;
3285       state->_span_cb0 = llhttp__on_url;
3286       goto s_n_llhttp__internal__n_url_start;
3287       /* UNREACHABLE */;
3288       abort();
3289     }
3290     case s_n_llhttp__internal__n_url_entry_normal:
3291     s_n_llhttp__internal__n_url_entry_normal: {
3292       if (p == endp) {
3293         return s_n_llhttp__internal__n_url_entry_normal;
3294       }
3295       switch (*p) {
3296         case 9: {
3297           p++;
3298           goto s_n_llhttp__internal__n_error_1;
3299         }
3300         case 12: {
3301           p++;
3302           goto s_n_llhttp__internal__n_error_1;
3303         }
3304         default: {
3305           goto s_n_llhttp__internal__n_span_start_llhttp__on_url_1;
3306         }
3307       }
3308       /* UNREACHABLE */;
3309       abort();
3310     }
3311     case s_n_llhttp__internal__n_span_start_llhttp__on_url:
3312     s_n_llhttp__internal__n_span_start_llhttp__on_url: {
3313       if (p == endp) {
3314         return s_n_llhttp__internal__n_span_start_llhttp__on_url;
3315       }
3316       state->_span_pos0 = (void*) p;
3317       state->_span_cb0 = llhttp__on_url;
3318       goto s_n_llhttp__internal__n_url_server;
3319       /* UNREACHABLE */;
3320       abort();
3321     }
3322     case s_n_llhttp__internal__n_url_entry_connect:
3323     s_n_llhttp__internal__n_url_entry_connect: {
3324       if (p == endp) {
3325         return s_n_llhttp__internal__n_url_entry_connect;
3326       }
3327       switch (*p) {
3328         case 9: {
3329           p++;
3330           goto s_n_llhttp__internal__n_error_1;
3331         }
3332         case 12: {
3333           p++;
3334           goto s_n_llhttp__internal__n_error_1;
3335         }
3336         default: {
3337           goto s_n_llhttp__internal__n_span_start_llhttp__on_url;
3338         }
3339       }
3340       /* UNREACHABLE */;
3341       abort();
3342     }
3343     case s_n_llhttp__internal__n_req_spaces_before_url:
3344     s_n_llhttp__internal__n_req_spaces_before_url: {
3345       if (p == endp) {
3346         return s_n_llhttp__internal__n_req_spaces_before_url;
3347       }
3348       switch (*p) {
3349         case ' ': {
3350           p++;
3351           goto s_n_llhttp__internal__n_req_spaces_before_url;
3352         }
3353         default: {
3354           goto s_n_llhttp__internal__n_invoke_is_equal_method;
3355         }
3356       }
3357       /* UNREACHABLE */;
3358       abort();
3359     }
3360     case s_n_llhttp__internal__n_req_first_space_before_url:
3361     s_n_llhttp__internal__n_req_first_space_before_url: {
3362       if (p == endp) {
3363         return s_n_llhttp__internal__n_req_first_space_before_url;
3364       }
3365       switch (*p) {
3366         case ' ': {
3367           p++;
3368           goto s_n_llhttp__internal__n_req_spaces_before_url;
3369         }
3370         default: {
3371           goto s_n_llhttp__internal__n_error_44;
3372         }
3373       }
3374       /* UNREACHABLE */;
3375       abort();
3376     }
3377     case s_n_llhttp__internal__n_start_req_1:
3378     s_n_llhttp__internal__n_start_req_1: {
3379       llparse_match_t match_seq;
3380 
3381       if (p == endp) {
3382         return s_n_llhttp__internal__n_start_req_1;
3383       }
3384       match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob0, 2);
3385       p = match_seq.current;
3386       switch (match_seq.status) {
3387         case kMatchComplete: {
3388           p++;
3389           match = 19;
3390           goto s_n_llhttp__internal__n_invoke_store_method_1;
3391         }
3392         case kMatchPause: {
3393           return s_n_llhttp__internal__n_start_req_1;
3394         }
3395         case kMatchMismatch: {
3396           goto s_n_llhttp__internal__n_error_53;
3397         }
3398       }
3399       /* UNREACHABLE */;
3400       abort();
3401     }
3402     case s_n_llhttp__internal__n_start_req_2:
3403     s_n_llhttp__internal__n_start_req_2: {
3404       llparse_match_t match_seq;
3405 
3406       if (p == endp) {
3407         return s_n_llhttp__internal__n_start_req_2;
3408       }
3409       match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob17, 3);
3410       p = match_seq.current;
3411       switch (match_seq.status) {
3412         case kMatchComplete: {
3413           p++;
3414           match = 16;
3415           goto s_n_llhttp__internal__n_invoke_store_method_1;
3416         }
3417         case kMatchPause: {
3418           return s_n_llhttp__internal__n_start_req_2;
3419         }
3420         case kMatchMismatch: {
3421           goto s_n_llhttp__internal__n_error_53;
3422         }
3423       }
3424       /* UNREACHABLE */;
3425       abort();
3426     }
3427     case s_n_llhttp__internal__n_start_req_4:
3428     s_n_llhttp__internal__n_start_req_4: {
3429       llparse_match_t match_seq;
3430 
3431       if (p == endp) {
3432         return s_n_llhttp__internal__n_start_req_4;
3433       }
3434       match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob18, 6);
3435       p = match_seq.current;
3436       switch (match_seq.status) {
3437         case kMatchComplete: {
3438           p++;
3439           match = 22;
3440           goto s_n_llhttp__internal__n_invoke_store_method_1;
3441         }
3442         case kMatchPause: {
3443           return s_n_llhttp__internal__n_start_req_4;
3444         }
3445         case kMatchMismatch: {
3446           goto s_n_llhttp__internal__n_error_53;
3447         }
3448       }
3449       /* UNREACHABLE */;
3450       abort();
3451     }
3452     case s_n_llhttp__internal__n_start_req_6:
3453     s_n_llhttp__internal__n_start_req_6: {
3454       llparse_match_t match_seq;
3455 
3456       if (p == endp) {
3457         return s_n_llhttp__internal__n_start_req_6;
3458       }
3459       match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob19, 4);
3460       p = match_seq.current;
3461       switch (match_seq.status) {
3462         case kMatchComplete: {
3463           p++;
3464           match = 5;
3465           goto s_n_llhttp__internal__n_invoke_store_method_1;
3466         }
3467         case kMatchPause: {
3468           return s_n_llhttp__internal__n_start_req_6;
3469         }
3470         case kMatchMismatch: {
3471           goto s_n_llhttp__internal__n_error_53;
3472         }
3473       }
3474       /* UNREACHABLE */;
3475       abort();
3476     }
3477     case s_n_llhttp__internal__n_start_req_7:
3478     s_n_llhttp__internal__n_start_req_7: {
3479       if (p == endp) {
3480         return s_n_llhttp__internal__n_start_req_7;
3481       }
3482       switch (*p) {
3483         case 'Y': {
3484           p++;
3485           match = 8;
3486           goto s_n_llhttp__internal__n_invoke_store_method_1;
3487         }
3488         default: {
3489           goto s_n_llhttp__internal__n_error_53;
3490         }
3491       }
3492       /* UNREACHABLE */;
3493       abort();
3494     }
3495     case s_n_llhttp__internal__n_start_req_5:
3496     s_n_llhttp__internal__n_start_req_5: {
3497       if (p == endp) {
3498         return s_n_llhttp__internal__n_start_req_5;
3499       }
3500       switch (*p) {
3501         case 'N': {
3502           p++;
3503           goto s_n_llhttp__internal__n_start_req_6;
3504         }
3505         case 'P': {
3506           p++;
3507           goto s_n_llhttp__internal__n_start_req_7;
3508         }
3509         default: {
3510           goto s_n_llhttp__internal__n_error_53;
3511         }
3512       }
3513       /* UNREACHABLE */;
3514       abort();
3515     }
3516     case s_n_llhttp__internal__n_start_req_3:
3517     s_n_llhttp__internal__n_start_req_3: {
3518       if (p == endp) {
3519         return s_n_llhttp__internal__n_start_req_3;
3520       }
3521       switch (*p) {
3522         case 'H': {
3523           p++;
3524           goto s_n_llhttp__internal__n_start_req_4;
3525         }
3526         case 'O': {
3527           p++;
3528           goto s_n_llhttp__internal__n_start_req_5;
3529         }
3530         default: {
3531           goto s_n_llhttp__internal__n_error_53;
3532         }
3533       }
3534       /* UNREACHABLE */;
3535       abort();
3536     }
3537     case s_n_llhttp__internal__n_start_req_8:
3538     s_n_llhttp__internal__n_start_req_8: {
3539       llparse_match_t match_seq;
3540 
3541       if (p == endp) {
3542         return s_n_llhttp__internal__n_start_req_8;
3543       }
3544       match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob20, 5);
3545       p = match_seq.current;
3546       switch (match_seq.status) {
3547         case kMatchComplete: {
3548           p++;
3549           match = 0;
3550           goto s_n_llhttp__internal__n_invoke_store_method_1;
3551         }
3552         case kMatchPause: {
3553           return s_n_llhttp__internal__n_start_req_8;
3554         }
3555         case kMatchMismatch: {
3556           goto s_n_llhttp__internal__n_error_53;
3557         }
3558       }
3559       /* UNREACHABLE */;
3560       abort();
3561     }
3562     case s_n_llhttp__internal__n_start_req_9:
3563     s_n_llhttp__internal__n_start_req_9: {
3564       llparse_match_t match_seq;
3565 
3566       if (p == endp) {
3567         return s_n_llhttp__internal__n_start_req_9;
3568       }
3569       match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob21, 2);
3570       p = match_seq.current;
3571       switch (match_seq.status) {
3572         case kMatchComplete: {
3573           p++;
3574           match = 1;
3575           goto s_n_llhttp__internal__n_invoke_store_method_1;
3576         }
3577         case kMatchPause: {
3578           return s_n_llhttp__internal__n_start_req_9;
3579         }
3580         case kMatchMismatch: {
3581           goto s_n_llhttp__internal__n_error_53;
3582         }
3583       }
3584       /* UNREACHABLE */;
3585       abort();
3586     }
3587     case s_n_llhttp__internal__n_start_req_10:
3588     s_n_llhttp__internal__n_start_req_10: {
3589       llparse_match_t match_seq;
3590 
3591       if (p == endp) {
3592         return s_n_llhttp__internal__n_start_req_10;
3593       }
3594       match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob22, 3);
3595       p = match_seq.current;
3596       switch (match_seq.status) {
3597         case kMatchComplete: {
3598           p++;
3599           match = 2;
3600           goto s_n_llhttp__internal__n_invoke_store_method_1;
3601         }
3602         case kMatchPause: {
3603           return s_n_llhttp__internal__n_start_req_10;
3604         }
3605         case kMatchMismatch: {
3606           goto s_n_llhttp__internal__n_error_53;
3607         }
3608       }
3609       /* UNREACHABLE */;
3610       abort();
3611     }
3612     case s_n_llhttp__internal__n_start_req_12:
3613     s_n_llhttp__internal__n_start_req_12: {
3614       llparse_match_t match_seq;
3615 
3616       if (p == endp) {
3617         return s_n_llhttp__internal__n_start_req_12;
3618       }
3619       match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob23, 2);
3620       p = match_seq.current;
3621       switch (match_seq.status) {
3622         case kMatchComplete: {
3623           p++;
3624           match = 31;
3625           goto s_n_llhttp__internal__n_invoke_store_method_1;
3626         }
3627         case kMatchPause: {
3628           return s_n_llhttp__internal__n_start_req_12;
3629         }
3630         case kMatchMismatch: {
3631           goto s_n_llhttp__internal__n_error_53;
3632         }
3633       }
3634       /* UNREACHABLE */;
3635       abort();
3636     }
3637     case s_n_llhttp__internal__n_start_req_13:
3638     s_n_llhttp__internal__n_start_req_13: {
3639       llparse_match_t match_seq;
3640 
3641       if (p == endp) {
3642         return s_n_llhttp__internal__n_start_req_13;
3643       }
3644       match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob24, 2);
3645       p = match_seq.current;
3646       switch (match_seq.status) {
3647         case kMatchComplete: {
3648           p++;
3649           match = 9;
3650           goto s_n_llhttp__internal__n_invoke_store_method_1;
3651         }
3652         case kMatchPause: {
3653           return s_n_llhttp__internal__n_start_req_13;
3654         }
3655         case kMatchMismatch: {
3656           goto s_n_llhttp__internal__n_error_53;
3657         }
3658       }
3659       /* UNREACHABLE */;
3660       abort();
3661     }
3662     case s_n_llhttp__internal__n_start_req_11:
3663     s_n_llhttp__internal__n_start_req_11: {
3664       if (p == endp) {
3665         return s_n_llhttp__internal__n_start_req_11;
3666       }
3667       switch (*p) {
3668         case 'I': {
3669           p++;
3670           goto s_n_llhttp__internal__n_start_req_12;
3671         }
3672         case 'O': {
3673           p++;
3674           goto s_n_llhttp__internal__n_start_req_13;
3675         }
3676         default: {
3677           goto s_n_llhttp__internal__n_error_53;
3678         }
3679       }
3680       /* UNREACHABLE */;
3681       abort();
3682     }
3683     case s_n_llhttp__internal__n_start_req_15:
3684     s_n_llhttp__internal__n_start_req_15: {
3685       llparse_match_t match_seq;
3686 
3687       if (p == endp) {
3688         return s_n_llhttp__internal__n_start_req_15;
3689       }
3690       match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob25, 6);
3691       p = match_seq.current;
3692       switch (match_seq.status) {
3693         case kMatchComplete: {
3694           p++;
3695           match = 24;
3696           goto s_n_llhttp__internal__n_invoke_store_method_1;
3697         }
3698         case kMatchPause: {
3699           return s_n_llhttp__internal__n_start_req_15;
3700         }
3701         case kMatchMismatch: {
3702           goto s_n_llhttp__internal__n_error_53;
3703         }
3704       }
3705       /* UNREACHABLE */;
3706       abort();
3707     }
3708     case s_n_llhttp__internal__n_start_req_16:
3709     s_n_llhttp__internal__n_start_req_16: {
3710       llparse_match_t match_seq;
3711 
3712       if (p == endp) {
3713         return s_n_llhttp__internal__n_start_req_16;
3714       }
3715       match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob26, 3);
3716       p = match_seq.current;
3717       switch (match_seq.status) {
3718         case kMatchComplete: {
3719           p++;
3720           match = 23;
3721           goto s_n_llhttp__internal__n_invoke_store_method_1;
3722         }
3723         case kMatchPause: {
3724           return s_n_llhttp__internal__n_start_req_16;
3725         }
3726         case kMatchMismatch: {
3727           goto s_n_llhttp__internal__n_error_53;
3728         }
3729       }
3730       /* UNREACHABLE */;
3731       abort();
3732     }
3733     case s_n_llhttp__internal__n_start_req_18:
3734     s_n_llhttp__internal__n_start_req_18: {
3735       llparse_match_t match_seq;
3736 
3737       if (p == endp) {
3738         return s_n_llhttp__internal__n_start_req_18;
3739       }
3740       match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob27, 7);
3741       p = match_seq.current;
3742       switch (match_seq.status) {
3743         case kMatchComplete: {
3744           p++;
3745           match = 21;
3746           goto s_n_llhttp__internal__n_invoke_store_method_1;
3747         }
3748         case kMatchPause: {
3749           return s_n_llhttp__internal__n_start_req_18;
3750         }
3751         case kMatchMismatch: {
3752           goto s_n_llhttp__internal__n_error_53;
3753         }
3754       }
3755       /* UNREACHABLE */;
3756       abort();
3757     }
3758     case s_n_llhttp__internal__n_start_req_20:
3759     s_n_llhttp__internal__n_start_req_20: {
3760       llparse_match_t match_seq;
3761 
3762       if (p == endp) {
3763         return s_n_llhttp__internal__n_start_req_20;
3764       }
3765       match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob28, 6);
3766       p = match_seq.current;
3767       switch (match_seq.status) {
3768         case kMatchComplete: {
3769           p++;
3770           match = 30;
3771           goto s_n_llhttp__internal__n_invoke_store_method_1;
3772         }
3773         case kMatchPause: {
3774           return s_n_llhttp__internal__n_start_req_20;
3775         }
3776         case kMatchMismatch: {
3777           goto s_n_llhttp__internal__n_error_53;
3778         }
3779       }
3780       /* UNREACHABLE */;
3781       abort();
3782     }
3783     case s_n_llhttp__internal__n_start_req_21:
3784     s_n_llhttp__internal__n_start_req_21: {
3785       if (p == endp) {
3786         return s_n_llhttp__internal__n_start_req_21;
3787       }
3788       switch (*p) {
3789         case 'L': {
3790           p++;
3791           match = 10;
3792           goto s_n_llhttp__internal__n_invoke_store_method_1;
3793         }
3794         default: {
3795           goto s_n_llhttp__internal__n_error_53;
3796         }
3797       }
3798       /* UNREACHABLE */;
3799       abort();
3800     }
3801     case s_n_llhttp__internal__n_start_req_19:
3802     s_n_llhttp__internal__n_start_req_19: {
3803       if (p == endp) {
3804         return s_n_llhttp__internal__n_start_req_19;
3805       }
3806       switch (*p) {
3807         case 'A': {
3808           p++;
3809           goto s_n_llhttp__internal__n_start_req_20;
3810         }
3811         case 'O': {
3812           p++;
3813           goto s_n_llhttp__internal__n_start_req_21;
3814         }
3815         default: {
3816           goto s_n_llhttp__internal__n_error_53;
3817         }
3818       }
3819       /* UNREACHABLE */;
3820       abort();
3821     }
3822     case s_n_llhttp__internal__n_start_req_17:
3823     s_n_llhttp__internal__n_start_req_17: {
3824       if (p == endp) {
3825         return s_n_llhttp__internal__n_start_req_17;
3826       }
3827       switch (*p) {
3828         case 'A': {
3829           p++;
3830           goto s_n_llhttp__internal__n_start_req_18;
3831         }
3832         case 'C': {
3833           p++;
3834           goto s_n_llhttp__internal__n_start_req_19;
3835         }
3836         default: {
3837           goto s_n_llhttp__internal__n_error_53;
3838         }
3839       }
3840       /* UNREACHABLE */;
3841       abort();
3842     }
3843     case s_n_llhttp__internal__n_start_req_22:
3844     s_n_llhttp__internal__n_start_req_22: {
3845       llparse_match_t match_seq;
3846 
3847       if (p == endp) {
3848         return s_n_llhttp__internal__n_start_req_22;
3849       }
3850       match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob29, 2);
3851       p = match_seq.current;
3852       switch (match_seq.status) {
3853         case kMatchComplete: {
3854           p++;
3855           match = 11;
3856           goto s_n_llhttp__internal__n_invoke_store_method_1;
3857         }
3858         case kMatchPause: {
3859           return s_n_llhttp__internal__n_start_req_22;
3860         }
3861         case kMatchMismatch: {
3862           goto s_n_llhttp__internal__n_error_53;
3863         }
3864       }
3865       /* UNREACHABLE */;
3866       abort();
3867     }
3868     case s_n_llhttp__internal__n_start_req_14:
3869     s_n_llhttp__internal__n_start_req_14: {
3870       if (p == endp) {
3871         return s_n_llhttp__internal__n_start_req_14;
3872       }
3873       switch (*p) {
3874         case '-': {
3875           p++;
3876           goto s_n_llhttp__internal__n_start_req_15;
3877         }
3878         case 'E': {
3879           p++;
3880           goto s_n_llhttp__internal__n_start_req_16;
3881         }
3882         case 'K': {
3883           p++;
3884           goto s_n_llhttp__internal__n_start_req_17;
3885         }
3886         case 'O': {
3887           p++;
3888           goto s_n_llhttp__internal__n_start_req_22;
3889         }
3890         default: {
3891           goto s_n_llhttp__internal__n_error_53;
3892         }
3893       }
3894       /* UNREACHABLE */;
3895       abort();
3896     }
3897     case s_n_llhttp__internal__n_start_req_23:
3898     s_n_llhttp__internal__n_start_req_23: {
3899       llparse_match_t match_seq;
3900 
3901       if (p == endp) {
3902         return s_n_llhttp__internal__n_start_req_23;
3903       }
3904       match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob30, 5);
3905       p = match_seq.current;
3906       switch (match_seq.status) {
3907         case kMatchComplete: {
3908           p++;
3909           match = 25;
3910           goto s_n_llhttp__internal__n_invoke_store_method_1;
3911         }
3912         case kMatchPause: {
3913           return s_n_llhttp__internal__n_start_req_23;
3914         }
3915         case kMatchMismatch: {
3916           goto s_n_llhttp__internal__n_error_53;
3917         }
3918       }
3919       /* UNREACHABLE */;
3920       abort();
3921     }
3922     case s_n_llhttp__internal__n_start_req_24:
3923     s_n_llhttp__internal__n_start_req_24: {
3924       llparse_match_t match_seq;
3925 
3926       if (p == endp) {
3927         return s_n_llhttp__internal__n_start_req_24;
3928       }
3929       match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob31, 6);
3930       p = match_seq.current;
3931       switch (match_seq.status) {
3932         case kMatchComplete: {
3933           p++;
3934           match = 6;
3935           goto s_n_llhttp__internal__n_invoke_store_method_1;
3936         }
3937         case kMatchPause: {
3938           return s_n_llhttp__internal__n_start_req_24;
3939         }
3940         case kMatchMismatch: {
3941           goto s_n_llhttp__internal__n_error_53;
3942         }
3943       }
3944       /* UNREACHABLE */;
3945       abort();
3946     }
3947     case s_n_llhttp__internal__n_start_req_26:
3948     s_n_llhttp__internal__n_start_req_26: {
3949       llparse_match_t match_seq;
3950 
3951       if (p == endp) {
3952         return s_n_llhttp__internal__n_start_req_26;
3953       }
3954       match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob32, 3);
3955       p = match_seq.current;
3956       switch (match_seq.status) {
3957         case kMatchComplete: {
3958           p++;
3959           match = 28;
3960           goto s_n_llhttp__internal__n_invoke_store_method_1;
3961         }
3962         case kMatchPause: {
3963           return s_n_llhttp__internal__n_start_req_26;
3964         }
3965         case kMatchMismatch: {
3966           goto s_n_llhttp__internal__n_error_53;
3967         }
3968       }
3969       /* UNREACHABLE */;
3970       abort();
3971     }
3972     case s_n_llhttp__internal__n_start_req_27:
3973     s_n_llhttp__internal__n_start_req_27: {
3974       llparse_match_t match_seq;
3975 
3976       if (p == endp) {
3977         return s_n_llhttp__internal__n_start_req_27;
3978       }
3979       match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob33, 2);
3980       p = match_seq.current;
3981       switch (match_seq.status) {
3982         case kMatchComplete: {
3983           p++;
3984           match = 3;
3985           goto s_n_llhttp__internal__n_invoke_store_method_1;
3986         }
3987         case kMatchPause: {
3988           return s_n_llhttp__internal__n_start_req_27;
3989         }
3990         case kMatchMismatch: {
3991           goto s_n_llhttp__internal__n_error_53;
3992         }
3993       }
3994       /* UNREACHABLE */;
3995       abort();
3996     }
3997     case s_n_llhttp__internal__n_start_req_31:
3998     s_n_llhttp__internal__n_start_req_31: {
3999       llparse_match_t match_seq;
4000 
4001       if (p == endp) {
4002         return s_n_llhttp__internal__n_start_req_31;
4003       }
4004       match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob34, 3);
4005       p = match_seq.current;
4006       switch (match_seq.status) {
4007         case kMatchComplete: {
4008           p++;
4009           match = 12;
4010           goto s_n_llhttp__internal__n_invoke_store_method_1;
4011         }
4012         case kMatchPause: {
4013           return s_n_llhttp__internal__n_start_req_31;
4014         }
4015         case kMatchMismatch: {
4016           goto s_n_llhttp__internal__n_error_53;
4017         }
4018       }
4019       /* UNREACHABLE */;
4020       abort();
4021     }
4022     case s_n_llhttp__internal__n_start_req_32:
4023     s_n_llhttp__internal__n_start_req_32: {
4024       llparse_match_t match_seq;
4025 
4026       if (p == endp) {
4027         return s_n_llhttp__internal__n_start_req_32;
4028       }
4029       match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob35, 4);
4030       p = match_seq.current;
4031       switch (match_seq.status) {
4032         case kMatchComplete: {
4033           p++;
4034           match = 13;
4035           goto s_n_llhttp__internal__n_invoke_store_method_1;
4036         }
4037         case kMatchPause: {
4038           return s_n_llhttp__internal__n_start_req_32;
4039         }
4040         case kMatchMismatch: {
4041           goto s_n_llhttp__internal__n_error_53;
4042         }
4043       }
4044       /* UNREACHABLE */;
4045       abort();
4046     }
4047     case s_n_llhttp__internal__n_start_req_30:
4048     s_n_llhttp__internal__n_start_req_30: {
4049       if (p == endp) {
4050         return s_n_llhttp__internal__n_start_req_30;
4051       }
4052       switch (*p) {
4053         case 'F': {
4054           p++;
4055           goto s_n_llhttp__internal__n_start_req_31;
4056         }
4057         case 'P': {
4058           p++;
4059           goto s_n_llhttp__internal__n_start_req_32;
4060         }
4061         default: {
4062           goto s_n_llhttp__internal__n_error_53;
4063         }
4064       }
4065       /* UNREACHABLE */;
4066       abort();
4067     }
4068     case s_n_llhttp__internal__n_start_req_29:
4069     s_n_llhttp__internal__n_start_req_29: {
4070       if (p == endp) {
4071         return s_n_llhttp__internal__n_start_req_29;
4072       }
4073       switch (*p) {
4074         case 'P': {
4075           p++;
4076           goto s_n_llhttp__internal__n_start_req_30;
4077         }
4078         default: {
4079           goto s_n_llhttp__internal__n_error_53;
4080         }
4081       }
4082       /* UNREACHABLE */;
4083       abort();
4084     }
4085     case s_n_llhttp__internal__n_start_req_28:
4086     s_n_llhttp__internal__n_start_req_28: {
4087       if (p == endp) {
4088         return s_n_llhttp__internal__n_start_req_28;
4089       }
4090       switch (*p) {
4091         case 'I': {
4092           p++;
4093           match = 34;
4094           goto s_n_llhttp__internal__n_invoke_store_method_1;
4095         }
4096         case 'O': {
4097           p++;
4098           goto s_n_llhttp__internal__n_start_req_29;
4099         }
4100         default: {
4101           goto s_n_llhttp__internal__n_error_53;
4102         }
4103       }
4104       /* UNREACHABLE */;
4105       abort();
4106     }
4107     case s_n_llhttp__internal__n_start_req_34:
4108     s_n_llhttp__internal__n_start_req_34: {
4109       llparse_match_t match_seq;
4110 
4111       if (p == endp) {
4112         return s_n_llhttp__internal__n_start_req_34;
4113       }
4114       match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob36, 2);
4115       p = match_seq.current;
4116       switch (match_seq.status) {
4117         case kMatchComplete: {
4118           p++;
4119           match = 29;
4120           goto s_n_llhttp__internal__n_invoke_store_method_1;
4121         }
4122         case kMatchPause: {
4123           return s_n_llhttp__internal__n_start_req_34;
4124         }
4125         case kMatchMismatch: {
4126           goto s_n_llhttp__internal__n_error_53;
4127         }
4128       }
4129       /* UNREACHABLE */;
4130       abort();
4131     }
4132     case s_n_llhttp__internal__n_start_req_33:
4133     s_n_llhttp__internal__n_start_req_33: {
4134       if (p == endp) {
4135         return s_n_llhttp__internal__n_start_req_33;
4136       }
4137       switch (*p) {
4138         case 'R': {
4139           p++;
4140           goto s_n_llhttp__internal__n_start_req_34;
4141         }
4142         case 'T': {
4143           p++;
4144           match = 4;
4145           goto s_n_llhttp__internal__n_invoke_store_method_1;
4146         }
4147         default: {
4148           goto s_n_llhttp__internal__n_error_53;
4149         }
4150       }
4151       /* UNREACHABLE */;
4152       abort();
4153     }
4154     case s_n_llhttp__internal__n_start_req_25:
4155     s_n_llhttp__internal__n_start_req_25: {
4156       if (p == endp) {
4157         return s_n_llhttp__internal__n_start_req_25;
4158       }
4159       switch (*p) {
4160         case 'A': {
4161           p++;
4162           goto s_n_llhttp__internal__n_start_req_26;
4163         }
4164         case 'O': {
4165           p++;
4166           goto s_n_llhttp__internal__n_start_req_27;
4167         }
4168         case 'R': {
4169           p++;
4170           goto s_n_llhttp__internal__n_start_req_28;
4171         }
4172         case 'U': {
4173           p++;
4174           goto s_n_llhttp__internal__n_start_req_33;
4175         }
4176         default: {
4177           goto s_n_llhttp__internal__n_error_53;
4178         }
4179       }
4180       /* UNREACHABLE */;
4181       abort();
4182     }
4183     case s_n_llhttp__internal__n_start_req_37:
4184     s_n_llhttp__internal__n_start_req_37: {
4185       llparse_match_t match_seq;
4186 
4187       if (p == endp) {
4188         return s_n_llhttp__internal__n_start_req_37;
4189       }
4190       match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob37, 3);
4191       p = match_seq.current;
4192       switch (match_seq.status) {
4193         case kMatchComplete: {
4194           p++;
4195           match = 17;
4196           goto s_n_llhttp__internal__n_invoke_store_method_1;
4197         }
4198         case kMatchPause: {
4199           return s_n_llhttp__internal__n_start_req_37;
4200         }
4201         case kMatchMismatch: {
4202           goto s_n_llhttp__internal__n_error_53;
4203         }
4204       }
4205       /* UNREACHABLE */;
4206       abort();
4207     }
4208     case s_n_llhttp__internal__n_start_req_38:
4209     s_n_llhttp__internal__n_start_req_38: {
4210       llparse_match_t match_seq;
4211 
4212       if (p == endp) {
4213         return s_n_llhttp__internal__n_start_req_38;
4214       }
4215       match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob38, 3);
4216       p = match_seq.current;
4217       switch (match_seq.status) {
4218         case kMatchComplete: {
4219           p++;
4220           match = 20;
4221           goto s_n_llhttp__internal__n_invoke_store_method_1;
4222         }
4223         case kMatchPause: {
4224           return s_n_llhttp__internal__n_start_req_38;
4225         }
4226         case kMatchMismatch: {
4227           goto s_n_llhttp__internal__n_error_53;
4228         }
4229       }
4230       /* UNREACHABLE */;
4231       abort();
4232     }
4233     case s_n_llhttp__internal__n_start_req_36:
4234     s_n_llhttp__internal__n_start_req_36: {
4235       if (p == endp) {
4236         return s_n_llhttp__internal__n_start_req_36;
4237       }
4238       switch (*p) {
4239         case 'B': {
4240           p++;
4241           goto s_n_llhttp__internal__n_start_req_37;
4242         }
4243         case 'P': {
4244           p++;
4245           goto s_n_llhttp__internal__n_start_req_38;
4246         }
4247         default: {
4248           goto s_n_llhttp__internal__n_error_53;
4249         }
4250       }
4251       /* UNREACHABLE */;
4252       abort();
4253     }
4254     case s_n_llhttp__internal__n_start_req_35:
4255     s_n_llhttp__internal__n_start_req_35: {
4256       if (p == endp) {
4257         return s_n_llhttp__internal__n_start_req_35;
4258       }
4259       switch (*p) {
4260         case 'E': {
4261           p++;
4262           goto s_n_llhttp__internal__n_start_req_36;
4263         }
4264         default: {
4265           goto s_n_llhttp__internal__n_error_53;
4266         }
4267       }
4268       /* UNREACHABLE */;
4269       abort();
4270     }
4271     case s_n_llhttp__internal__n_start_req_40:
4272     s_n_llhttp__internal__n_start_req_40: {
4273       llparse_match_t match_seq;
4274 
4275       if (p == endp) {
4276         return s_n_llhttp__internal__n_start_req_40;
4277       }
4278       match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob39, 4);
4279       p = match_seq.current;
4280       switch (match_seq.status) {
4281         case kMatchComplete: {
4282           p++;
4283           match = 14;
4284           goto s_n_llhttp__internal__n_invoke_store_method_1;
4285         }
4286         case kMatchPause: {
4287           return s_n_llhttp__internal__n_start_req_40;
4288         }
4289         case kMatchMismatch: {
4290           goto s_n_llhttp__internal__n_error_53;
4291         }
4292       }
4293       /* UNREACHABLE */;
4294       abort();
4295     }
4296     case s_n_llhttp__internal__n_start_req_41:
4297     s_n_llhttp__internal__n_start_req_41: {
4298       llparse_match_t match_seq;
4299 
4300       if (p == endp) {
4301         return s_n_llhttp__internal__n_start_req_41;
4302       }
4303       match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob40, 4);
4304       p = match_seq.current;
4305       switch (match_seq.status) {
4306         case kMatchComplete: {
4307           p++;
4308           match = 33;
4309           goto s_n_llhttp__internal__n_invoke_store_method_1;
4310         }
4311         case kMatchPause: {
4312           return s_n_llhttp__internal__n_start_req_41;
4313         }
4314         case kMatchMismatch: {
4315           goto s_n_llhttp__internal__n_error_53;
4316         }
4317       }
4318       /* UNREACHABLE */;
4319       abort();
4320     }
4321     case s_n_llhttp__internal__n_start_req_42:
4322     s_n_llhttp__internal__n_start_req_42: {
4323       llparse_match_t match_seq;
4324 
4325       if (p == endp) {
4326         return s_n_llhttp__internal__n_start_req_42;
4327       }
4328       match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob41, 7);
4329       p = match_seq.current;
4330       switch (match_seq.status) {
4331         case kMatchComplete: {
4332           p++;
4333           match = 26;
4334           goto s_n_llhttp__internal__n_invoke_store_method_1;
4335         }
4336         case kMatchPause: {
4337           return s_n_llhttp__internal__n_start_req_42;
4338         }
4339         case kMatchMismatch: {
4340           goto s_n_llhttp__internal__n_error_53;
4341         }
4342       }
4343       /* UNREACHABLE */;
4344       abort();
4345     }
4346     case s_n_llhttp__internal__n_start_req_39:
4347     s_n_llhttp__internal__n_start_req_39: {
4348       if (p == endp) {
4349         return s_n_llhttp__internal__n_start_req_39;
4350       }
4351       switch (*p) {
4352         case 'E': {
4353           p++;
4354           goto s_n_llhttp__internal__n_start_req_40;
4355         }
4356         case 'O': {
4357           p++;
4358           goto s_n_llhttp__internal__n_start_req_41;
4359         }
4360         case 'U': {
4361           p++;
4362           goto s_n_llhttp__internal__n_start_req_42;
4363         }
4364         default: {
4365           goto s_n_llhttp__internal__n_error_53;
4366         }
4367       }
4368       /* UNREACHABLE */;
4369       abort();
4370     }
4371     case s_n_llhttp__internal__n_start_req_43:
4372     s_n_llhttp__internal__n_start_req_43: {
4373       llparse_match_t match_seq;
4374 
4375       if (p == endp) {
4376         return s_n_llhttp__internal__n_start_req_43;
4377       }
4378       match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob42, 4);
4379       p = match_seq.current;
4380       switch (match_seq.status) {
4381         case kMatchComplete: {
4382           p++;
4383           match = 7;
4384           goto s_n_llhttp__internal__n_invoke_store_method_1;
4385         }
4386         case kMatchPause: {
4387           return s_n_llhttp__internal__n_start_req_43;
4388         }
4389         case kMatchMismatch: {
4390           goto s_n_llhttp__internal__n_error_53;
4391         }
4392       }
4393       /* UNREACHABLE */;
4394       abort();
4395     }
4396     case s_n_llhttp__internal__n_start_req_46:
4397     s_n_llhttp__internal__n_start_req_46: {
4398       llparse_match_t match_seq;
4399 
4400       if (p == endp) {
4401         return s_n_llhttp__internal__n_start_req_46;
4402       }
4403       match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob43, 3);
4404       p = match_seq.current;
4405       switch (match_seq.status) {
4406         case kMatchComplete: {
4407           p++;
4408           match = 18;
4409           goto s_n_llhttp__internal__n_invoke_store_method_1;
4410         }
4411         case kMatchPause: {
4412           return s_n_llhttp__internal__n_start_req_46;
4413         }
4414         case kMatchMismatch: {
4415           goto s_n_llhttp__internal__n_error_53;
4416         }
4417       }
4418       /* UNREACHABLE */;
4419       abort();
4420     }
4421     case s_n_llhttp__internal__n_start_req_48:
4422     s_n_llhttp__internal__n_start_req_48: {
4423       llparse_match_t match_seq;
4424 
4425       if (p == endp) {
4426         return s_n_llhttp__internal__n_start_req_48;
4427       }
4428       match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob44, 2);
4429       p = match_seq.current;
4430       switch (match_seq.status) {
4431         case kMatchComplete: {
4432           p++;
4433           match = 32;
4434           goto s_n_llhttp__internal__n_invoke_store_method_1;
4435         }
4436         case kMatchPause: {
4437           return s_n_llhttp__internal__n_start_req_48;
4438         }
4439         case kMatchMismatch: {
4440           goto s_n_llhttp__internal__n_error_53;
4441         }
4442       }
4443       /* UNREACHABLE */;
4444       abort();
4445     }
4446     case s_n_llhttp__internal__n_start_req_49:
4447     s_n_llhttp__internal__n_start_req_49: {
4448       llparse_match_t match_seq;
4449 
4450       if (p == endp) {
4451         return s_n_llhttp__internal__n_start_req_49;
4452       }
4453       match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob45, 2);
4454       p = match_seq.current;
4455       switch (match_seq.status) {
4456         case kMatchComplete: {
4457           p++;
4458           match = 15;
4459           goto s_n_llhttp__internal__n_invoke_store_method_1;
4460         }
4461         case kMatchPause: {
4462           return s_n_llhttp__internal__n_start_req_49;
4463         }
4464         case kMatchMismatch: {
4465           goto s_n_llhttp__internal__n_error_53;
4466         }
4467       }
4468       /* UNREACHABLE */;
4469       abort();
4470     }
4471     case s_n_llhttp__internal__n_start_req_47:
4472     s_n_llhttp__internal__n_start_req_47: {
4473       if (p == endp) {
4474         return s_n_llhttp__internal__n_start_req_47;
4475       }
4476       switch (*p) {
4477         case 'I': {
4478           p++;
4479           goto s_n_llhttp__internal__n_start_req_48;
4480         }
4481         case 'O': {
4482           p++;
4483           goto s_n_llhttp__internal__n_start_req_49;
4484         }
4485         default: {
4486           goto s_n_llhttp__internal__n_error_53;
4487         }
4488       }
4489       /* UNREACHABLE */;
4490       abort();
4491     }
4492     case s_n_llhttp__internal__n_start_req_50:
4493     s_n_llhttp__internal__n_start_req_50: {
4494       llparse_match_t match_seq;
4495 
4496       if (p == endp) {
4497         return s_n_llhttp__internal__n_start_req_50;
4498       }
4499       match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob46, 8);
4500       p = match_seq.current;
4501       switch (match_seq.status) {
4502         case kMatchComplete: {
4503           p++;
4504           match = 27;
4505           goto s_n_llhttp__internal__n_invoke_store_method_1;
4506         }
4507         case kMatchPause: {
4508           return s_n_llhttp__internal__n_start_req_50;
4509         }
4510         case kMatchMismatch: {
4511           goto s_n_llhttp__internal__n_error_53;
4512         }
4513       }
4514       /* UNREACHABLE */;
4515       abort();
4516     }
4517     case s_n_llhttp__internal__n_start_req_45:
4518     s_n_llhttp__internal__n_start_req_45: {
4519       if (p == endp) {
4520         return s_n_llhttp__internal__n_start_req_45;
4521       }
4522       switch (*p) {
4523         case 'B': {
4524           p++;
4525           goto s_n_llhttp__internal__n_start_req_46;
4526         }
4527         case 'L': {
4528           p++;
4529           goto s_n_llhttp__internal__n_start_req_47;
4530         }
4531         case 'S': {
4532           p++;
4533           goto s_n_llhttp__internal__n_start_req_50;
4534         }
4535         default: {
4536           goto s_n_llhttp__internal__n_error_53;
4537         }
4538       }
4539       /* UNREACHABLE */;
4540       abort();
4541     }
4542     case s_n_llhttp__internal__n_start_req_44:
4543     s_n_llhttp__internal__n_start_req_44: {
4544       if (p == endp) {
4545         return s_n_llhttp__internal__n_start_req_44;
4546       }
4547       switch (*p) {
4548         case 'N': {
4549           p++;
4550           goto s_n_llhttp__internal__n_start_req_45;
4551         }
4552         default: {
4553           goto s_n_llhttp__internal__n_error_53;
4554         }
4555       }
4556       /* UNREACHABLE */;
4557       abort();
4558     }
4559     case s_n_llhttp__internal__n_start_req:
4560     s_n_llhttp__internal__n_start_req: {
4561       if (p == endp) {
4562         return s_n_llhttp__internal__n_start_req;
4563       }
4564       switch (*p) {
4565         case 'A': {
4566           p++;
4567           goto s_n_llhttp__internal__n_start_req_1;
4568         }
4569         case 'B': {
4570           p++;
4571           goto s_n_llhttp__internal__n_start_req_2;
4572         }
4573         case 'C': {
4574           p++;
4575           goto s_n_llhttp__internal__n_start_req_3;
4576         }
4577         case 'D': {
4578           p++;
4579           goto s_n_llhttp__internal__n_start_req_8;
4580         }
4581         case 'G': {
4582           p++;
4583           goto s_n_llhttp__internal__n_start_req_9;
4584         }
4585         case 'H': {
4586           p++;
4587           goto s_n_llhttp__internal__n_start_req_10;
4588         }
4589         case 'L': {
4590           p++;
4591           goto s_n_llhttp__internal__n_start_req_11;
4592         }
4593         case 'M': {
4594           p++;
4595           goto s_n_llhttp__internal__n_start_req_14;
4596         }
4597         case 'N': {
4598           p++;
4599           goto s_n_llhttp__internal__n_start_req_23;
4600         }
4601         case 'O': {
4602           p++;
4603           goto s_n_llhttp__internal__n_start_req_24;
4604         }
4605         case 'P': {
4606           p++;
4607           goto s_n_llhttp__internal__n_start_req_25;
4608         }
4609         case 'R': {
4610           p++;
4611           goto s_n_llhttp__internal__n_start_req_35;
4612         }
4613         case 'S': {
4614           p++;
4615           goto s_n_llhttp__internal__n_start_req_39;
4616         }
4617         case 'T': {
4618           p++;
4619           goto s_n_llhttp__internal__n_start_req_43;
4620         }
4621         case 'U': {
4622           p++;
4623           goto s_n_llhttp__internal__n_start_req_44;
4624         }
4625         default: {
4626           goto s_n_llhttp__internal__n_error_53;
4627         }
4628       }
4629       /* UNREACHABLE */;
4630       abort();
4631     }
4632     case s_n_llhttp__internal__n_res_line_almost_done:
4633     s_n_llhttp__internal__n_res_line_almost_done: {
4634       if (p == endp) {
4635         return s_n_llhttp__internal__n_res_line_almost_done;
4636       }
4637       switch (*p) {
4638         case 10: {
4639           p++;
4640           goto s_n_llhttp__internal__n_header_field_start;
4641         }
4642         default: {
4643           goto s_n_llhttp__internal__n_error_46;
4644         }
4645       }
4646       /* UNREACHABLE */;
4647       abort();
4648     }
4649     case s_n_llhttp__internal__n_res_status:
4650     s_n_llhttp__internal__n_res_status: {
4651       if (p == endp) {
4652         return s_n_llhttp__internal__n_res_status;
4653       }
4654       switch (*p) {
4655         case 10: {
4656           goto s_n_llhttp__internal__n_span_end_llhttp__on_status;
4657         }
4658         case 13: {
4659           goto s_n_llhttp__internal__n_span_end_llhttp__on_status_1;
4660         }
4661         default: {
4662           p++;
4663           goto s_n_llhttp__internal__n_res_status;
4664         }
4665       }
4666       /* UNREACHABLE */;
4667       abort();
4668     }
4669     case s_n_llhttp__internal__n_span_start_llhttp__on_status:
4670     s_n_llhttp__internal__n_span_start_llhttp__on_status: {
4671       if (p == endp) {
4672         return s_n_llhttp__internal__n_span_start_llhttp__on_status;
4673       }
4674       state->_span_pos0 = (void*) p;
4675       state->_span_cb0 = llhttp__on_status;
4676       goto s_n_llhttp__internal__n_res_status;
4677       /* UNREACHABLE */;
4678       abort();
4679     }
4680     case s_n_llhttp__internal__n_res_status_start:
4681     s_n_llhttp__internal__n_res_status_start: {
4682       if (p == endp) {
4683         return s_n_llhttp__internal__n_res_status_start;
4684       }
4685       switch (*p) {
4686         case 10: {
4687           p++;
4688           goto s_n_llhttp__internal__n_header_field_start;
4689         }
4690         case 13: {
4691           p++;
4692           goto s_n_llhttp__internal__n_res_line_almost_done;
4693         }
4694         default: {
4695           goto s_n_llhttp__internal__n_span_start_llhttp__on_status;
4696         }
4697       }
4698       /* UNREACHABLE */;
4699       abort();
4700     }
4701     case s_n_llhttp__internal__n_res_status_code_otherwise:
4702     s_n_llhttp__internal__n_res_status_code_otherwise: {
4703       if (p == endp) {
4704         return s_n_llhttp__internal__n_res_status_code_otherwise;
4705       }
4706       switch (*p) {
4707         case 10: {
4708           goto s_n_llhttp__internal__n_res_status_start;
4709         }
4710         case 13: {
4711           goto s_n_llhttp__internal__n_res_status_start;
4712         }
4713         case ' ': {
4714           p++;
4715           goto s_n_llhttp__internal__n_res_status_start;
4716         }
4717         default: {
4718           goto s_n_llhttp__internal__n_error_47;
4719         }
4720       }
4721       /* UNREACHABLE */;
4722       abort();
4723     }
4724     case s_n_llhttp__internal__n_res_status_code:
4725     s_n_llhttp__internal__n_res_status_code: {
4726       if (p == endp) {
4727         return s_n_llhttp__internal__n_res_status_code;
4728       }
4729       switch (*p) {
4730         case '0': {
4731           p++;
4732           match = 0;
4733           goto s_n_llhttp__internal__n_invoke_mul_add_status_code;
4734         }
4735         case '1': {
4736           p++;
4737           match = 1;
4738           goto s_n_llhttp__internal__n_invoke_mul_add_status_code;
4739         }
4740         case '2': {
4741           p++;
4742           match = 2;
4743           goto s_n_llhttp__internal__n_invoke_mul_add_status_code;
4744         }
4745         case '3': {
4746           p++;
4747           match = 3;
4748           goto s_n_llhttp__internal__n_invoke_mul_add_status_code;
4749         }
4750         case '4': {
4751           p++;
4752           match = 4;
4753           goto s_n_llhttp__internal__n_invoke_mul_add_status_code;
4754         }
4755         case '5': {
4756           p++;
4757           match = 5;
4758           goto s_n_llhttp__internal__n_invoke_mul_add_status_code;
4759         }
4760         case '6': {
4761           p++;
4762           match = 6;
4763           goto s_n_llhttp__internal__n_invoke_mul_add_status_code;
4764         }
4765         case '7': {
4766           p++;
4767           match = 7;
4768           goto s_n_llhttp__internal__n_invoke_mul_add_status_code;
4769         }
4770         case '8': {
4771           p++;
4772           match = 8;
4773           goto s_n_llhttp__internal__n_invoke_mul_add_status_code;
4774         }
4775         case '9': {
4776           p++;
4777           match = 9;
4778           goto s_n_llhttp__internal__n_invoke_mul_add_status_code;
4779         }
4780         default: {
4781           goto s_n_llhttp__internal__n_res_status_code_otherwise;
4782         }
4783       }
4784       /* UNREACHABLE */;
4785       abort();
4786     }
4787     case s_n_llhttp__internal__n_res_http_end:
4788     s_n_llhttp__internal__n_res_http_end: {
4789       if (p == endp) {
4790         return s_n_llhttp__internal__n_res_http_end;
4791       }
4792       switch (*p) {
4793         case ' ': {
4794           p++;
4795           goto s_n_llhttp__internal__n_invoke_update_status_code;
4796         }
4797         default: {
4798           goto s_n_llhttp__internal__n_error_48;
4799         }
4800       }
4801       /* UNREACHABLE */;
4802       abort();
4803     }
4804     case s_n_llhttp__internal__n_res_http_minor:
4805     s_n_llhttp__internal__n_res_http_minor: {
4806       if (p == endp) {
4807         return s_n_llhttp__internal__n_res_http_minor;
4808       }
4809       switch (*p) {
4810         case '0': {
4811           p++;
4812           match = 0;
4813           goto s_n_llhttp__internal__n_invoke_store_http_minor_1;
4814         }
4815         case '1': {
4816           p++;
4817           match = 1;
4818           goto s_n_llhttp__internal__n_invoke_store_http_minor_1;
4819         }
4820         case '2': {
4821           p++;
4822           match = 2;
4823           goto s_n_llhttp__internal__n_invoke_store_http_minor_1;
4824         }
4825         case '3': {
4826           p++;
4827           match = 3;
4828           goto s_n_llhttp__internal__n_invoke_store_http_minor_1;
4829         }
4830         case '4': {
4831           p++;
4832           match = 4;
4833           goto s_n_llhttp__internal__n_invoke_store_http_minor_1;
4834         }
4835         case '5': {
4836           p++;
4837           match = 5;
4838           goto s_n_llhttp__internal__n_invoke_store_http_minor_1;
4839         }
4840         case '6': {
4841           p++;
4842           match = 6;
4843           goto s_n_llhttp__internal__n_invoke_store_http_minor_1;
4844         }
4845         case '7': {
4846           p++;
4847           match = 7;
4848           goto s_n_llhttp__internal__n_invoke_store_http_minor_1;
4849         }
4850         case '8': {
4851           p++;
4852           match = 8;
4853           goto s_n_llhttp__internal__n_invoke_store_http_minor_1;
4854         }
4855         case '9': {
4856           p++;
4857           match = 9;
4858           goto s_n_llhttp__internal__n_invoke_store_http_minor_1;
4859         }
4860         default: {
4861           goto s_n_llhttp__internal__n_error_49;
4862         }
4863       }
4864       /* UNREACHABLE */;
4865       abort();
4866     }
4867     case s_n_llhttp__internal__n_res_http_dot:
4868     s_n_llhttp__internal__n_res_http_dot: {
4869       if (p == endp) {
4870         return s_n_llhttp__internal__n_res_http_dot;
4871       }
4872       switch (*p) {
4873         case '.': {
4874           p++;
4875           goto s_n_llhttp__internal__n_res_http_minor;
4876         }
4877         default: {
4878           goto s_n_llhttp__internal__n_error_50;
4879         }
4880       }
4881       /* UNREACHABLE */;
4882       abort();
4883     }
4884     case s_n_llhttp__internal__n_res_http_major:
4885     s_n_llhttp__internal__n_res_http_major: {
4886       if (p == endp) {
4887         return s_n_llhttp__internal__n_res_http_major;
4888       }
4889       switch (*p) {
4890         case '0': {
4891           p++;
4892           match = 0;
4893           goto s_n_llhttp__internal__n_invoke_store_http_major_1;
4894         }
4895         case '1': {
4896           p++;
4897           match = 1;
4898           goto s_n_llhttp__internal__n_invoke_store_http_major_1;
4899         }
4900         case '2': {
4901           p++;
4902           match = 2;
4903           goto s_n_llhttp__internal__n_invoke_store_http_major_1;
4904         }
4905         case '3': {
4906           p++;
4907           match = 3;
4908           goto s_n_llhttp__internal__n_invoke_store_http_major_1;
4909         }
4910         case '4': {
4911           p++;
4912           match = 4;
4913           goto s_n_llhttp__internal__n_invoke_store_http_major_1;
4914         }
4915         case '5': {
4916           p++;
4917           match = 5;
4918           goto s_n_llhttp__internal__n_invoke_store_http_major_1;
4919         }
4920         case '6': {
4921           p++;
4922           match = 6;
4923           goto s_n_llhttp__internal__n_invoke_store_http_major_1;
4924         }
4925         case '7': {
4926           p++;
4927           match = 7;
4928           goto s_n_llhttp__internal__n_invoke_store_http_major_1;
4929         }
4930         case '8': {
4931           p++;
4932           match = 8;
4933           goto s_n_llhttp__internal__n_invoke_store_http_major_1;
4934         }
4935         case '9': {
4936           p++;
4937           match = 9;
4938           goto s_n_llhttp__internal__n_invoke_store_http_major_1;
4939         }
4940         default: {
4941           goto s_n_llhttp__internal__n_error_51;
4942         }
4943       }
4944       /* UNREACHABLE */;
4945       abort();
4946     }
4947     case s_n_llhttp__internal__n_start_res:
4948     s_n_llhttp__internal__n_start_res: {
4949       llparse_match_t match_seq;
4950 
4951       if (p == endp) {
4952         return s_n_llhttp__internal__n_start_res;
4953       }
4954       match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob47, 5);
4955       p = match_seq.current;
4956       switch (match_seq.status) {
4957         case kMatchComplete: {
4958           p++;
4959           goto s_n_llhttp__internal__n_res_http_major;
4960         }
4961         case kMatchPause: {
4962           return s_n_llhttp__internal__n_start_res;
4963         }
4964         case kMatchMismatch: {
4965           goto s_n_llhttp__internal__n_error_54;
4966         }
4967       }
4968       /* UNREACHABLE */;
4969       abort();
4970     }
4971     case s_n_llhttp__internal__n_req_or_res_method_2:
4972     s_n_llhttp__internal__n_req_or_res_method_2: {
4973       llparse_match_t match_seq;
4974 
4975       if (p == endp) {
4976         return s_n_llhttp__internal__n_req_or_res_method_2;
4977       }
4978       match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob48, 2);
4979       p = match_seq.current;
4980       switch (match_seq.status) {
4981         case kMatchComplete: {
4982           p++;
4983           match = 2;
4984           goto s_n_llhttp__internal__n_invoke_store_method;
4985         }
4986         case kMatchPause: {
4987           return s_n_llhttp__internal__n_req_or_res_method_2;
4988         }
4989         case kMatchMismatch: {
4990           goto s_n_llhttp__internal__n_error_52;
4991         }
4992       }
4993       /* UNREACHABLE */;
4994       abort();
4995     }
4996     case s_n_llhttp__internal__n_req_or_res_method_3:
4997     s_n_llhttp__internal__n_req_or_res_method_3: {
4998       llparse_match_t match_seq;
4999 
5000       if (p == endp) {
5001         return s_n_llhttp__internal__n_req_or_res_method_3;
5002       }
5003       match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob49, 3);
5004       p = match_seq.current;
5005       switch (match_seq.status) {
5006         case kMatchComplete: {
5007           p++;
5008           goto s_n_llhttp__internal__n_invoke_update_type_1;
5009         }
5010         case kMatchPause: {
5011           return s_n_llhttp__internal__n_req_or_res_method_3;
5012         }
5013         case kMatchMismatch: {
5014           goto s_n_llhttp__internal__n_error_52;
5015         }
5016       }
5017       /* UNREACHABLE */;
5018       abort();
5019     }
5020     case s_n_llhttp__internal__n_req_or_res_method_1:
5021     s_n_llhttp__internal__n_req_or_res_method_1: {
5022       if (p == endp) {
5023         return s_n_llhttp__internal__n_req_or_res_method_1;
5024       }
5025       switch (*p) {
5026         case 'E': {
5027           p++;
5028           goto s_n_llhttp__internal__n_req_or_res_method_2;
5029         }
5030         case 'T': {
5031           p++;
5032           goto s_n_llhttp__internal__n_req_or_res_method_3;
5033         }
5034         default: {
5035           goto s_n_llhttp__internal__n_error_52;
5036         }
5037       }
5038       /* UNREACHABLE */;
5039       abort();
5040     }
5041     case s_n_llhttp__internal__n_req_or_res_method:
5042     s_n_llhttp__internal__n_req_or_res_method: {
5043       if (p == endp) {
5044         return s_n_llhttp__internal__n_req_or_res_method;
5045       }
5046       switch (*p) {
5047         case 'H': {
5048           p++;
5049           goto s_n_llhttp__internal__n_req_or_res_method_1;
5050         }
5051         default: {
5052           goto s_n_llhttp__internal__n_error_52;
5053         }
5054       }
5055       /* UNREACHABLE */;
5056       abort();
5057     }
5058     case s_n_llhttp__internal__n_start_req_or_res:
5059     s_n_llhttp__internal__n_start_req_or_res: {
5060       if (p == endp) {
5061         return s_n_llhttp__internal__n_start_req_or_res;
5062       }
5063       switch (*p) {
5064         case 'H': {
5065           goto s_n_llhttp__internal__n_req_or_res_method;
5066         }
5067         default: {
5068           goto s_n_llhttp__internal__n_invoke_update_type_2;
5069         }
5070       }
5071       /* UNREACHABLE */;
5072       abort();
5073     }
5074     case s_n_llhttp__internal__n_invoke_load_type:
5075     s_n_llhttp__internal__n_invoke_load_type: {
5076       switch (llhttp__internal__c_load_type(state, p, endp)) {
5077         case 1:
5078           goto s_n_llhttp__internal__n_start_req;
5079         case 2:
5080           goto s_n_llhttp__internal__n_start_res;
5081         default:
5082           goto s_n_llhttp__internal__n_start_req_or_res;
5083       }
5084       /* UNREACHABLE */;
5085       abort();
5086     }
5087     case s_n_llhttp__internal__n_start:
5088     s_n_llhttp__internal__n_start: {
5089       if (p == endp) {
5090         return s_n_llhttp__internal__n_start;
5091       }
5092       switch (*p) {
5093         case 10: {
5094           p++;
5095           goto s_n_llhttp__internal__n_start;
5096         }
5097         case 13: {
5098           p++;
5099           goto s_n_llhttp__internal__n_start;
5100         }
5101         default: {
5102           goto s_n_llhttp__internal__n_invoke_update_finish;
5103         }
5104       }
5105       /* UNREACHABLE */;
5106       abort();
5107     }
5108     default:
5109       /* UNREACHABLE */
5110       abort();
5111   }
5112   s_n_llhttp__internal__n_error_1: {
5113     state->error = 0x7;
5114     state->reason = "Invalid characters in url (strict mode)";
5115     state->error_pos = (const char*) p;
5116     state->_current = (void*) (intptr_t) s_error;
5117     return s_error;
5118     /* UNREACHABLE */;
5119     abort();
5120   }
5121   s_n_llhttp__internal__n_error_40: {
5122     state->error = 0x7;
5123     state->reason = "Invalid characters in url";
5124     state->error_pos = (const char*) p;
5125     state->_current = (void*) (intptr_t) s_error;
5126     return s_error;
5127     /* UNREACHABLE */;
5128     abort();
5129   }
5130   s_n_llhttp__internal__n_invoke_update_finish_2: {
5131     switch (llhttp__internal__c_update_finish_1(state, p, endp)) {
5132       default:
5133         goto s_n_llhttp__internal__n_start;
5134     }
5135     /* UNREACHABLE */;
5136     abort();
5137   }
5138   s_n_llhttp__internal__n_error_4: {
5139     state->error = 0x5;
5140     state->reason = "Data after `Connection: close`";
5141     state->error_pos = (const char*) p;
5142     state->_current = (void*) (intptr_t) s_error;
5143     return s_error;
5144     /* UNREACHABLE */;
5145     abort();
5146   }
5147   s_n_llhttp__internal__n_invoke_update_finish_1: {
5148     switch (llhttp__internal__c_update_finish_1(state, p, endp)) {
5149       default:
5150         goto s_n_llhttp__internal__n_closed;
5151     }
5152     /* UNREACHABLE */;
5153     abort();
5154   }
5155   s_n_llhttp__internal__n_pause_5: {
5156     state->error = 0x15;
5157     state->reason = "on_message_complete pause";
5158     state->error_pos = (const char*) p;
5159     state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_is_equal_upgrade;
5160     return s_error;
5161     /* UNREACHABLE */;
5162     abort();
5163   }
5164   s_n_llhttp__internal__n_error_13: {
5165     state->error = 0x12;
5166     state->reason = "`on_message_complete` callback error";
5167     state->error_pos = (const char*) p;
5168     state->_current = (void*) (intptr_t) s_error;
5169     return s_error;
5170     /* UNREACHABLE */;
5171     abort();
5172   }
5173   s_n_llhttp__internal__n_pause_7: {
5174     state->error = 0x15;
5175     state->reason = "on_chunk_complete pause";
5176     state->error_pos = (const char*) p;
5177     state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_llhttp__on_message_complete_2;
5178     return s_error;
5179     /* UNREACHABLE */;
5180     abort();
5181   }
5182   s_n_llhttp__internal__n_error_17: {
5183     state->error = 0x14;
5184     state->reason = "`on_chunk_complete` callback error";
5185     state->error_pos = (const char*) p;
5186     state->_current = (void*) (intptr_t) s_error;
5187     return s_error;
5188     /* UNREACHABLE */;
5189     abort();
5190   }
5191   s_n_llhttp__internal__n_invoke_llhttp__on_chunk_complete_1: {
5192     switch (llhttp__on_chunk_complete(state, p, endp)) {
5193       case 0:
5194         goto s_n_llhttp__internal__n_invoke_llhttp__on_message_complete_2;
5195       case 21:
5196         goto s_n_llhttp__internal__n_pause_7;
5197       default:
5198         goto s_n_llhttp__internal__n_error_17;
5199     }
5200     /* UNREACHABLE */;
5201     abort();
5202   }
5203   s_n_llhttp__internal__n_error_15: {
5204     state->error = 0x4;
5205     state->reason = "Content-Length can't be present with Transfer-Encoding";
5206     state->error_pos = (const char*) p;
5207     state->_current = (void*) (intptr_t) s_error;
5208     return s_error;
5209     /* UNREACHABLE */;
5210     abort();
5211   }
5212   s_n_llhttp__internal__n_error_16: {
5213     state->error = 0x4;
5214     state->reason = "Content-Length can't be present with chunked encoding";
5215     state->error_pos = (const char*) p;
5216     state->_current = (void*) (intptr_t) s_error;
5217     return s_error;
5218     /* UNREACHABLE */;
5219     abort();
5220   }
5221   s_n_llhttp__internal__n_pause_2: {
5222     state->error = 0x15;
5223     state->reason = "on_message_complete pause";
5224     state->error_pos = (const char*) p;
5225     state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_pause_1;
5226     return s_error;
5227     /* UNREACHABLE */;
5228     abort();
5229   }
5230   s_n_llhttp__internal__n_error_5: {
5231     state->error = 0x12;
5232     state->reason = "`on_message_complete` callback error";
5233     state->error_pos = (const char*) p;
5234     state->_current = (void*) (intptr_t) s_error;
5235     return s_error;
5236     /* UNREACHABLE */;
5237     abort();
5238   }
5239   s_n_llhttp__internal__n_invoke_llhttp__on_message_complete_1: {
5240     switch (llhttp__on_message_complete(state, p, endp)) {
5241       case 0:
5242         goto s_n_llhttp__internal__n_pause_1;
5243       case 21:
5244         goto s_n_llhttp__internal__n_pause_2;
5245       default:
5246         goto s_n_llhttp__internal__n_error_5;
5247     }
5248     /* UNREACHABLE */;
5249     abort();
5250   }
5251   s_n_llhttp__internal__n_error_11: {
5252     state->error = 0xc;
5253     state->reason = "Chunk size overflow";
5254     state->error_pos = (const char*) p;
5255     state->_current = (void*) (intptr_t) s_error;
5256     return s_error;
5257     /* UNREACHABLE */;
5258     abort();
5259   }
5260   s_n_llhttp__internal__n_pause_3: {
5261     state->error = 0x15;
5262     state->reason = "on_chunk_complete pause";
5263     state->error_pos = (const char*) p;
5264     state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_update_content_length;
5265     return s_error;
5266     /* UNREACHABLE */;
5267     abort();
5268   }
5269   s_n_llhttp__internal__n_error_7: {
5270     state->error = 0x14;
5271     state->reason = "`on_chunk_complete` callback error";
5272     state->error_pos = (const char*) p;
5273     state->_current = (void*) (intptr_t) s_error;
5274     return s_error;
5275     /* UNREACHABLE */;
5276     abort();
5277   }
5278   s_n_llhttp__internal__n_invoke_llhttp__on_chunk_complete: {
5279     switch (llhttp__on_chunk_complete(state, p, endp)) {
5280       case 0:
5281         goto s_n_llhttp__internal__n_invoke_update_content_length;
5282       case 21:
5283         goto s_n_llhttp__internal__n_pause_3;
5284       default:
5285         goto s_n_llhttp__internal__n_error_7;
5286     }
5287     /* UNREACHABLE */;
5288     abort();
5289   }
5290   s_n_llhttp__internal__n_error_8: {
5291     state->error = 0x2;
5292     state->reason = "Expected CRLF after chunk";
5293     state->error_pos = (const char*) p;
5294     state->_current = (void*) (intptr_t) s_error;
5295     return s_error;
5296     /* UNREACHABLE */;
5297     abort();
5298   }
5299   s_n_llhttp__internal__n_span_end_llhttp__on_body: {
5300     const unsigned char* start;
5301     int err;
5302 
5303     start = state->_span_pos0;
5304     state->_span_pos0 = NULL;
5305     err = llhttp__on_body(state, start, p);
5306     if (err != 0) {
5307       state->error = err;
5308       state->error_pos = (const char*) p;
5309       state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_chunk_data_almost_done;
5310       return s_error;
5311     }
5312     goto s_n_llhttp__internal__n_chunk_data_almost_done;
5313     /* UNREACHABLE */;
5314     abort();
5315   }
5316   s_n_llhttp__internal__n_invoke_or_flags: {
5317     switch (llhttp__internal__c_or_flags(state, p, endp)) {
5318       default:
5319         goto s_n_llhttp__internal__n_header_field_start;
5320     }
5321     /* UNREACHABLE */;
5322     abort();
5323   }
5324   s_n_llhttp__internal__n_pause_4: {
5325     state->error = 0x15;
5326     state->reason = "on_chunk_header pause";
5327     state->error_pos = (const char*) p;
5328     state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_is_equal_content_length;
5329     return s_error;
5330     /* UNREACHABLE */;
5331     abort();
5332   }
5333   s_n_llhttp__internal__n_error_6: {
5334     state->error = 0x13;
5335     state->reason = "`on_chunk_header` callback error";
5336     state->error_pos = (const char*) p;
5337     state->_current = (void*) (intptr_t) s_error;
5338     return s_error;
5339     /* UNREACHABLE */;
5340     abort();
5341   }
5342   s_n_llhttp__internal__n_invoke_llhttp__on_chunk_header: {
5343     switch (llhttp__on_chunk_header(state, p, endp)) {
5344       case 0:
5345         goto s_n_llhttp__internal__n_invoke_is_equal_content_length;
5346       case 21:
5347         goto s_n_llhttp__internal__n_pause_4;
5348       default:
5349         goto s_n_llhttp__internal__n_error_6;
5350     }
5351     /* UNREACHABLE */;
5352     abort();
5353   }
5354   s_n_llhttp__internal__n_error_9: {
5355     state->error = 0x2;
5356     state->reason = "Expected LF after chunk size";
5357     state->error_pos = (const char*) p;
5358     state->_current = (void*) (intptr_t) s_error;
5359     return s_error;
5360     /* UNREACHABLE */;
5361     abort();
5362   }
5363   s_n_llhttp__internal__n_error_10: {
5364     state->error = 0xc;
5365     state->reason = "Invalid character in chunk size";
5366     state->error_pos = (const char*) p;
5367     state->_current = (void*) (intptr_t) s_error;
5368     return s_error;
5369     /* UNREACHABLE */;
5370     abort();
5371   }
5372   s_n_llhttp__internal__n_invoke_mul_add_content_length: {
5373     switch (llhttp__internal__c_mul_add_content_length(state, p, endp, match)) {
5374       case 1:
5375         goto s_n_llhttp__internal__n_error_11;
5376       default:
5377         goto s_n_llhttp__internal__n_chunk_size;
5378     }
5379     /* UNREACHABLE */;
5380     abort();
5381   }
5382   s_n_llhttp__internal__n_error_12: {
5383     state->error = 0xc;
5384     state->reason = "Invalid character in chunk size";
5385     state->error_pos = (const char*) p;
5386     state->_current = (void*) (intptr_t) s_error;
5387     return s_error;
5388     /* UNREACHABLE */;
5389     abort();
5390   }
5391   s_n_llhttp__internal__n_span_end_llhttp__on_body_1: {
5392     const unsigned char* start;
5393     int err;
5394 
5395     start = state->_span_pos0;
5396     state->_span_pos0 = NULL;
5397     err = llhttp__on_body(state, start, p);
5398     if (err != 0) {
5399       state->error = err;
5400       state->error_pos = (const char*) p;
5401       state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_llhttp__on_message_complete_2;
5402       return s_error;
5403     }
5404     goto s_n_llhttp__internal__n_invoke_llhttp__on_message_complete_2;
5405     /* UNREACHABLE */;
5406     abort();
5407   }
5408   s_n_llhttp__internal__n_invoke_update_finish_3: {
5409     switch (llhttp__internal__c_update_finish_3(state, p, endp)) {
5410       default:
5411         goto s_n_llhttp__internal__n_span_start_llhttp__on_body_2;
5412     }
5413     /* UNREACHABLE */;
5414     abort();
5415   }
5416   s_n_llhttp__internal__n_error_14: {
5417     state->error = 0xf;
5418     state->reason = "Request has invalid `Transfer-Encoding`";
5419     state->error_pos = (const char*) p;
5420     state->_current = (void*) (intptr_t) s_error;
5421     return s_error;
5422     /* UNREACHABLE */;
5423     abort();
5424   }
5425   s_n_llhttp__internal__n_pause: {
5426     state->error = 0x15;
5427     state->reason = "on_message_complete pause";
5428     state->error_pos = (const char*) p;
5429     state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_llhttp__after_message_complete;
5430     return s_error;
5431     /* UNREACHABLE */;
5432     abort();
5433   }
5434   s_n_llhttp__internal__n_error_3: {
5435     state->error = 0x12;
5436     state->reason = "`on_message_complete` callback error";
5437     state->error_pos = (const char*) p;
5438     state->_current = (void*) (intptr_t) s_error;
5439     return s_error;
5440     /* UNREACHABLE */;
5441     abort();
5442   }
5443   s_n_llhttp__internal__n_invoke_llhttp__on_message_complete: {
5444     switch (llhttp__on_message_complete(state, p, endp)) {
5445       case 0:
5446         goto s_n_llhttp__internal__n_invoke_llhttp__after_message_complete;
5447       case 21:
5448         goto s_n_llhttp__internal__n_pause;
5449       default:
5450         goto s_n_llhttp__internal__n_error_3;
5451     }
5452     /* UNREACHABLE */;
5453     abort();
5454   }
5455   s_n_llhttp__internal__n_invoke_or_flags_1: {
5456     switch (llhttp__internal__c_or_flags_1(state, p, endp)) {
5457       default:
5458         goto s_n_llhttp__internal__n_invoke_llhttp__after_headers_complete;
5459     }
5460     /* UNREACHABLE */;
5461     abort();
5462   }
5463   s_n_llhttp__internal__n_invoke_or_flags_2: {
5464     switch (llhttp__internal__c_or_flags_1(state, p, endp)) {
5465       default:
5466         goto s_n_llhttp__internal__n_invoke_llhttp__after_headers_complete;
5467     }
5468     /* UNREACHABLE */;
5469     abort();
5470   }
5471   s_n_llhttp__internal__n_invoke_update_upgrade: {
5472     switch (llhttp__internal__c_update_upgrade(state, p, endp)) {
5473       default:
5474         goto s_n_llhttp__internal__n_invoke_or_flags_2;
5475     }
5476     /* UNREACHABLE */;
5477     abort();
5478   }
5479   s_n_llhttp__internal__n_pause_6: {
5480     state->error = 0x15;
5481     state->reason = "Paused by on_headers_complete";
5482     state->error_pos = (const char*) p;
5483     state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_llhttp__after_headers_complete;
5484     return s_error;
5485     /* UNREACHABLE */;
5486     abort();
5487   }
5488   s_n_llhttp__internal__n_error_2: {
5489     state->error = 0x11;
5490     state->reason = "User callback error";
5491     state->error_pos = (const char*) p;
5492     state->_current = (void*) (intptr_t) s_error;
5493     return s_error;
5494     /* UNREACHABLE */;
5495     abort();
5496   }
5497   s_n_llhttp__internal__n_invoke_llhttp__on_headers_complete: {
5498     switch (llhttp__on_headers_complete(state, p, endp)) {
5499       case 0:
5500         goto s_n_llhttp__internal__n_invoke_llhttp__after_headers_complete;
5501       case 1:
5502         goto s_n_llhttp__internal__n_invoke_or_flags_1;
5503       case 2:
5504         goto s_n_llhttp__internal__n_invoke_update_upgrade;
5505       case 21:
5506         goto s_n_llhttp__internal__n_pause_6;
5507       default:
5508         goto s_n_llhttp__internal__n_error_2;
5509     }
5510     /* UNREACHABLE */;
5511     abort();
5512   }
5513   s_n_llhttp__internal__n_invoke_llhttp__before_headers_complete: {
5514     switch (llhttp__before_headers_complete(state, p, endp)) {
5515       default:
5516         goto s_n_llhttp__internal__n_invoke_llhttp__on_headers_complete;
5517     }
5518     /* UNREACHABLE */;
5519     abort();
5520   }
5521   s_n_llhttp__internal__n_invoke_test_flags_3: {
5522     switch (llhttp__internal__c_test_flags_3(state, p, endp)) {
5523       case 1:
5524         goto s_n_llhttp__internal__n_error_16;
5525       default:
5526         goto s_n_llhttp__internal__n_invoke_llhttp__before_headers_complete;
5527     }
5528     /* UNREACHABLE */;
5529     abort();
5530   }
5531   s_n_llhttp__internal__n_invoke_test_flags_2: {
5532     switch (llhttp__internal__c_test_flags_2(state, p, endp)) {
5533       case 0:
5534         goto s_n_llhttp__internal__n_error_15;
5535       case 1:
5536         goto s_n_llhttp__internal__n_invoke_test_flags_3;
5537       default:
5538         goto s_n_llhttp__internal__n_invoke_llhttp__before_headers_complete;
5539     }
5540     /* UNREACHABLE */;
5541     abort();
5542   }
5543   s_n_llhttp__internal__n_invoke_test_flags_1: {
5544     switch (llhttp__internal__c_test_flags_1(state, p, endp)) {
5545       case 1:
5546         goto s_n_llhttp__internal__n_invoke_test_flags_2;
5547       default:
5548         goto s_n_llhttp__internal__n_invoke_llhttp__before_headers_complete;
5549     }
5550     /* UNREACHABLE */;
5551     abort();
5552   }
5553   s_n_llhttp__internal__n_invoke_test_flags: {
5554     switch (llhttp__internal__c_test_flags(state, p, endp)) {
5555       case 1:
5556         goto s_n_llhttp__internal__n_invoke_llhttp__on_chunk_complete_1;
5557       default:
5558         goto s_n_llhttp__internal__n_invoke_test_flags_1;
5559     }
5560     /* UNREACHABLE */;
5561     abort();
5562   }
5563   s_n_llhttp__internal__n_error_18: {
5564     state->error = 0x2;
5565     state->reason = "Expected LF after headers";
5566     state->error_pos = (const char*) p;
5567     state->_current = (void*) (intptr_t) s_error;
5568     return s_error;
5569     /* UNREACHABLE */;
5570     abort();
5571   }
5572   s_n_llhttp__internal__n_error_19: {
5573     state->error = 0xb;
5574     state->reason = "Empty Content-Length";
5575     state->error_pos = (const char*) p;
5576     state->_current = (void*) (intptr_t) s_error;
5577     return s_error;
5578     /* UNREACHABLE */;
5579     abort();
5580   }
5581   s_n_llhttp__internal__n_span_end_llhttp__on_header_value: {
5582     const unsigned char* start;
5583     int err;
5584 
5585     start = state->_span_pos0;
5586     state->_span_pos0 = NULL;
5587     err = llhttp__on_header_value(state, start, p);
5588     if (err != 0) {
5589       state->error = err;
5590       state->error_pos = (const char*) p;
5591       state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_header_field_start;
5592       return s_error;
5593     }
5594     goto s_n_llhttp__internal__n_header_field_start;
5595     /* UNREACHABLE */;
5596     abort();
5597   }
5598   s_n_llhttp__internal__n_invoke_update_header_state: {
5599     switch (llhttp__internal__c_update_header_state(state, p, endp)) {
5600       default:
5601         goto s_n_llhttp__internal__n_span_start_llhttp__on_header_value;
5602     }
5603     /* UNREACHABLE */;
5604     abort();
5605   }
5606   s_n_llhttp__internal__n_invoke_or_flags_3: {
5607     switch (llhttp__internal__c_or_flags_3(state, p, endp)) {
5608       default:
5609         goto s_n_llhttp__internal__n_invoke_update_header_state;
5610     }
5611     /* UNREACHABLE */;
5612     abort();
5613   }
5614   s_n_llhttp__internal__n_invoke_or_flags_4: {
5615     switch (llhttp__internal__c_or_flags_4(state, p, endp)) {
5616       default:
5617         goto s_n_llhttp__internal__n_invoke_update_header_state;
5618     }
5619     /* UNREACHABLE */;
5620     abort();
5621   }
5622   s_n_llhttp__internal__n_invoke_or_flags_5: {
5623     switch (llhttp__internal__c_or_flags_5(state, p, endp)) {
5624       default:
5625         goto s_n_llhttp__internal__n_invoke_update_header_state;
5626     }
5627     /* UNREACHABLE */;
5628     abort();
5629   }
5630   s_n_llhttp__internal__n_invoke_or_flags_6: {
5631     switch (llhttp__internal__c_or_flags_6(state, p, endp)) {
5632       default:
5633         goto s_n_llhttp__internal__n_span_start_llhttp__on_header_value;
5634     }
5635     /* UNREACHABLE */;
5636     abort();
5637   }
5638   s_n_llhttp__internal__n_invoke_load_header_state_1: {
5639     switch (llhttp__internal__c_load_header_state(state, p, endp)) {
5640       case 5:
5641         goto s_n_llhttp__internal__n_invoke_or_flags_3;
5642       case 6:
5643         goto s_n_llhttp__internal__n_invoke_or_flags_4;
5644       case 7:
5645         goto s_n_llhttp__internal__n_invoke_or_flags_5;
5646       case 8:
5647         goto s_n_llhttp__internal__n_invoke_or_flags_6;
5648       default:
5649         goto s_n_llhttp__internal__n_span_start_llhttp__on_header_value;
5650     }
5651     /* UNREACHABLE */;
5652     abort();
5653   }
5654   s_n_llhttp__internal__n_invoke_load_header_state: {
5655     switch (llhttp__internal__c_load_header_state(state, p, endp)) {
5656       case 2:
5657         goto s_n_llhttp__internal__n_error_19;
5658       default:
5659         goto s_n_llhttp__internal__n_invoke_load_header_state_1;
5660     }
5661     /* UNREACHABLE */;
5662     abort();
5663   }
5664   s_n_llhttp__internal__n_error_20: {
5665     state->error = 0x2;
5666     state->reason = "Expected LF after CR";
5667     state->error_pos = (const char*) p;
5668     state->_current = (void*) (intptr_t) s_error;
5669     return s_error;
5670     /* UNREACHABLE */;
5671     abort();
5672   }
5673   s_n_llhttp__internal__n_invoke_update_header_state_1: {
5674     switch (llhttp__internal__c_update_header_state(state, p, endp)) {
5675       default:
5676         goto s_n_llhttp__internal__n_header_field_start;
5677     }
5678     /* UNREACHABLE */;
5679     abort();
5680   }
5681   s_n_llhttp__internal__n_invoke_or_flags_7: {
5682     switch (llhttp__internal__c_or_flags_3(state, p, endp)) {
5683       default:
5684         goto s_n_llhttp__internal__n_invoke_update_header_state_1;
5685     }
5686     /* UNREACHABLE */;
5687     abort();
5688   }
5689   s_n_llhttp__internal__n_invoke_or_flags_8: {
5690     switch (llhttp__internal__c_or_flags_4(state, p, endp)) {
5691       default:
5692         goto s_n_llhttp__internal__n_invoke_update_header_state_1;
5693     }
5694     /* UNREACHABLE */;
5695     abort();
5696   }
5697   s_n_llhttp__internal__n_invoke_or_flags_9: {
5698     switch (llhttp__internal__c_or_flags_5(state, p, endp)) {
5699       default:
5700         goto s_n_llhttp__internal__n_invoke_update_header_state_1;
5701     }
5702     /* UNREACHABLE */;
5703     abort();
5704   }
5705   s_n_llhttp__internal__n_invoke_or_flags_10: {
5706     switch (llhttp__internal__c_or_flags_6(state, p, endp)) {
5707       default:
5708         goto s_n_llhttp__internal__n_header_field_start;
5709     }
5710     /* UNREACHABLE */;
5711     abort();
5712   }
5713   s_n_llhttp__internal__n_invoke_load_header_state_3: {
5714     switch (llhttp__internal__c_load_header_state(state, p, endp)) {
5715       case 5:
5716         goto s_n_llhttp__internal__n_invoke_or_flags_7;
5717       case 6:
5718         goto s_n_llhttp__internal__n_invoke_or_flags_8;
5719       case 7:
5720         goto s_n_llhttp__internal__n_invoke_or_flags_9;
5721       case 8:
5722         goto s_n_llhttp__internal__n_invoke_or_flags_10;
5723       default:
5724         goto s_n_llhttp__internal__n_header_field_start;
5725     }
5726     /* UNREACHABLE */;
5727     abort();
5728   }
5729   s_n_llhttp__internal__n_error_21: {
5730     state->error = 0x3;
5731     state->reason = "Missing expected LF after header value";
5732     state->error_pos = (const char*) p;
5733     state->_current = (void*) (intptr_t) s_error;
5734     return s_error;
5735     /* UNREACHABLE */;
5736     abort();
5737   }
5738   s_n_llhttp__internal__n_span_end_llhttp__on_header_value_1: {
5739     const unsigned char* start;
5740     int err;
5741 
5742     start = state->_span_pos0;
5743     state->_span_pos0 = NULL;
5744     err = llhttp__on_header_value(state, start, p);
5745     if (err != 0) {
5746       state->error = err;
5747       state->error_pos = (const char*) p;
5748       state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_header_value_almost_done;
5749       return s_error;
5750     }
5751     goto s_n_llhttp__internal__n_header_value_almost_done;
5752     /* UNREACHABLE */;
5753     abort();
5754   }
5755   s_n_llhttp__internal__n_span_end_llhttp__on_header_value_2: {
5756     const unsigned char* start;
5757     int err;
5758 
5759     start = state->_span_pos0;
5760     state->_span_pos0 = NULL;
5761     err = llhttp__on_header_value(state, start, p);
5762     if (err != 0) {
5763       state->error = err;
5764       state->error_pos = (const char*) (p + 1);
5765       state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_header_value_almost_done;
5766       return s_error;
5767     }
5768     p++;
5769     goto s_n_llhttp__internal__n_header_value_almost_done;
5770     /* UNREACHABLE */;
5771     abort();
5772   }
5773   s_n_llhttp__internal__n_span_end_llhttp__on_header_value_3: {
5774     const unsigned char* start;
5775     int err;
5776 
5777     start = state->_span_pos0;
5778     state->_span_pos0 = NULL;
5779     err = llhttp__on_header_value(state, start, p);
5780     if (err != 0) {
5781       state->error = err;
5782       state->error_pos = (const char*) (p + 1);
5783       state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_header_value_almost_done;
5784       return s_error;
5785     }
5786     p++;
5787     goto s_n_llhttp__internal__n_header_value_almost_done;
5788     /* UNREACHABLE */;
5789     abort();
5790   }
5791   s_n_llhttp__internal__n_error_22: {
5792     state->error = 0xa;
5793     state->reason = "Invalid header value char";
5794     state->error_pos = (const char*) p;
5795     state->_current = (void*) (intptr_t) s_error;
5796     return s_error;
5797     /* UNREACHABLE */;
5798     abort();
5799   }
5800   s_n_llhttp__internal__n_invoke_test_flags_4: {
5801     switch (llhttp__internal__c_test_flags_2(state, p, endp)) {
5802       case 1:
5803         goto s_n_llhttp__internal__n_header_value_lenient;
5804       default:
5805         goto s_n_llhttp__internal__n_error_22;
5806     }
5807     /* UNREACHABLE */;
5808     abort();
5809   }
5810   s_n_llhttp__internal__n_invoke_update_header_state_3: {
5811     switch (llhttp__internal__c_update_header_state(state, p, endp)) {
5812       default:
5813         goto s_n_llhttp__internal__n_header_value_connection;
5814     }
5815     /* UNREACHABLE */;
5816     abort();
5817   }
5818   s_n_llhttp__internal__n_invoke_or_flags_11: {
5819     switch (llhttp__internal__c_or_flags_3(state, p, endp)) {
5820       default:
5821         goto s_n_llhttp__internal__n_invoke_update_header_state_3;
5822     }
5823     /* UNREACHABLE */;
5824     abort();
5825   }
5826   s_n_llhttp__internal__n_invoke_or_flags_12: {
5827     switch (llhttp__internal__c_or_flags_4(state, p, endp)) {
5828       default:
5829         goto s_n_llhttp__internal__n_invoke_update_header_state_3;
5830     }
5831     /* UNREACHABLE */;
5832     abort();
5833   }
5834   s_n_llhttp__internal__n_invoke_or_flags_13: {
5835     switch (llhttp__internal__c_or_flags_5(state, p, endp)) {
5836       default:
5837         goto s_n_llhttp__internal__n_invoke_update_header_state_3;
5838     }
5839     /* UNREACHABLE */;
5840     abort();
5841   }
5842   s_n_llhttp__internal__n_invoke_or_flags_14: {
5843     switch (llhttp__internal__c_or_flags_6(state, p, endp)) {
5844       default:
5845         goto s_n_llhttp__internal__n_header_value_connection;
5846     }
5847     /* UNREACHABLE */;
5848     abort();
5849   }
5850   s_n_llhttp__internal__n_invoke_load_header_state_4: {
5851     switch (llhttp__internal__c_load_header_state(state, p, endp)) {
5852       case 5:
5853         goto s_n_llhttp__internal__n_invoke_or_flags_11;
5854       case 6:
5855         goto s_n_llhttp__internal__n_invoke_or_flags_12;
5856       case 7:
5857         goto s_n_llhttp__internal__n_invoke_or_flags_13;
5858       case 8:
5859         goto s_n_llhttp__internal__n_invoke_or_flags_14;
5860       default:
5861         goto s_n_llhttp__internal__n_header_value_connection;
5862     }
5863     /* UNREACHABLE */;
5864     abort();
5865   }
5866   s_n_llhttp__internal__n_invoke_update_header_state_4: {
5867     switch (llhttp__internal__c_update_header_state_4(state, p, endp)) {
5868       default:
5869         goto s_n_llhttp__internal__n_header_value_connection_token;
5870     }
5871     /* UNREACHABLE */;
5872     abort();
5873   }
5874   s_n_llhttp__internal__n_invoke_update_header_state_2: {
5875     switch (llhttp__internal__c_update_header_state_2(state, p, endp)) {
5876       default:
5877         goto s_n_llhttp__internal__n_header_value_connection_ws;
5878     }
5879     /* UNREACHABLE */;
5880     abort();
5881   }
5882   s_n_llhttp__internal__n_invoke_update_header_state_5: {
5883     switch (llhttp__internal__c_update_header_state_5(state, p, endp)) {
5884       default:
5885         goto s_n_llhttp__internal__n_header_value_connection_ws;
5886     }
5887     /* UNREACHABLE */;
5888     abort();
5889   }
5890   s_n_llhttp__internal__n_invoke_update_header_state_6: {
5891     switch (llhttp__internal__c_update_header_state_6(state, p, endp)) {
5892       default:
5893         goto s_n_llhttp__internal__n_header_value_connection_ws;
5894     }
5895     /* UNREACHABLE */;
5896     abort();
5897   }
5898   s_n_llhttp__internal__n_span_end_llhttp__on_header_value_4: {
5899     const unsigned char* start;
5900     int err;
5901 
5902     start = state->_span_pos0;
5903     state->_span_pos0 = NULL;
5904     err = llhttp__on_header_value(state, start, p);
5905     if (err != 0) {
5906       state->error = err;
5907       state->error_pos = (const char*) p;
5908       state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_24;
5909       return s_error;
5910     }
5911     goto s_n_llhttp__internal__n_error_24;
5912     /* UNREACHABLE */;
5913     abort();
5914   }
5915   s_n_llhttp__internal__n_invoke_mul_add_content_length_1: {
5916     switch (llhttp__internal__c_mul_add_content_length_1(state, p, endp, match)) {
5917       case 1:
5918         goto s_n_llhttp__internal__n_span_end_llhttp__on_header_value_4;
5919       default:
5920         goto s_n_llhttp__internal__n_header_value_content_length;
5921     }
5922     /* UNREACHABLE */;
5923     abort();
5924   }
5925   s_n_llhttp__internal__n_invoke_or_flags_15: {
5926     switch (llhttp__internal__c_or_flags_15(state, p, endp)) {
5927       default:
5928         goto s_n_llhttp__internal__n_header_value_otherwise;
5929     }
5930     /* UNREACHABLE */;
5931     abort();
5932   }
5933   s_n_llhttp__internal__n_span_end_llhttp__on_header_value_5: {
5934     const unsigned char* start;
5935     int err;
5936 
5937     start = state->_span_pos0;
5938     state->_span_pos0 = NULL;
5939     err = llhttp__on_header_value(state, start, p);
5940     if (err != 0) {
5941       state->error = err;
5942       state->error_pos = (const char*) p;
5943       state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_25;
5944       return s_error;
5945     }
5946     goto s_n_llhttp__internal__n_error_25;
5947     /* UNREACHABLE */;
5948     abort();
5949   }
5950   s_n_llhttp__internal__n_error_23: {
5951     state->error = 0x4;
5952     state->reason = "Duplicate Content-Length";
5953     state->error_pos = (const char*) p;
5954     state->_current = (void*) (intptr_t) s_error;
5955     return s_error;
5956     /* UNREACHABLE */;
5957     abort();
5958   }
5959   s_n_llhttp__internal__n_invoke_test_flags_5: {
5960     switch (llhttp__internal__c_test_flags_5(state, p, endp)) {
5961       case 0:
5962         goto s_n_llhttp__internal__n_header_value_content_length;
5963       default:
5964         goto s_n_llhttp__internal__n_error_23;
5965     }
5966     /* UNREACHABLE */;
5967     abort();
5968   }
5969   s_n_llhttp__internal__n_invoke_update_header_state_7: {
5970     switch (llhttp__internal__c_update_header_state_7(state, p, endp)) {
5971       default:
5972         goto s_n_llhttp__internal__n_header_value_otherwise;
5973     }
5974     /* UNREACHABLE */;
5975     abort();
5976   }
5977   s_n_llhttp__internal__n_invoke_update_header_state_8: {
5978     switch (llhttp__internal__c_update_header_state_4(state, p, endp)) {
5979       default:
5980         goto s_n_llhttp__internal__n_header_value;
5981     }
5982     /* UNREACHABLE */;
5983     abort();
5984   }
5985   s_n_llhttp__internal__n_invoke_and_flags: {
5986     switch (llhttp__internal__c_and_flags(state, p, endp)) {
5987       default:
5988         goto s_n_llhttp__internal__n_header_value_te_chunked;
5989     }
5990     /* UNREACHABLE */;
5991     abort();
5992   }
5993   s_n_llhttp__internal__n_invoke_or_flags_16: {
5994     switch (llhttp__internal__c_or_flags_16(state, p, endp)) {
5995       default:
5996         goto s_n_llhttp__internal__n_invoke_and_flags;
5997     }
5998     /* UNREACHABLE */;
5999     abort();
6000   }
6001   s_n_llhttp__internal__n_invoke_or_flags_17: {
6002     switch (llhttp__internal__c_or_flags_17(state, p, endp)) {
6003       default:
6004         goto s_n_llhttp__internal__n_invoke_update_header_state_8;
6005     }
6006     /* UNREACHABLE */;
6007     abort();
6008   }
6009   s_n_llhttp__internal__n_invoke_load_header_state_2: {
6010     switch (llhttp__internal__c_load_header_state(state, p, endp)) {
6011       case 1:
6012         goto s_n_llhttp__internal__n_header_value_connection;
6013       case 2:
6014         goto s_n_llhttp__internal__n_invoke_test_flags_5;
6015       case 3:
6016         goto s_n_llhttp__internal__n_invoke_or_flags_16;
6017       case 4:
6018         goto s_n_llhttp__internal__n_invoke_or_flags_17;
6019       default:
6020         goto s_n_llhttp__internal__n_header_value;
6021     }
6022     /* UNREACHABLE */;
6023     abort();
6024   }
6025   s_n_llhttp__internal__n_span_end_llhttp__on_header_field: {
6026     const unsigned char* start;
6027     int err;
6028 
6029     start = state->_span_pos0;
6030     state->_span_pos0 = NULL;
6031     err = llhttp__on_header_field(state, start, p);
6032     if (err != 0) {
6033       state->error = err;
6034       state->error_pos = (const char*) (p + 1);
6035       state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_header_value_discard_ws;
6036       return s_error;
6037     }
6038     p++;
6039     goto s_n_llhttp__internal__n_header_value_discard_ws;
6040     /* UNREACHABLE */;
6041     abort();
6042   }
6043   s_n_llhttp__internal__n_span_end_llhttp__on_header_field_1: {
6044     const unsigned char* start;
6045     int err;
6046 
6047     start = state->_span_pos0;
6048     state->_span_pos0 = NULL;
6049     err = llhttp__on_header_field(state, start, p);
6050     if (err != 0) {
6051       state->error = err;
6052       state->error_pos = (const char*) (p + 1);
6053       state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_header_value_discard_ws;
6054       return s_error;
6055     }
6056     p++;
6057     goto s_n_llhttp__internal__n_header_value_discard_ws;
6058     /* UNREACHABLE */;
6059     abort();
6060   }
6061   s_n_llhttp__internal__n_error_26: {
6062     state->error = 0xa;
6063     state->reason = "Invalid header token";
6064     state->error_pos = (const char*) p;
6065     state->_current = (void*) (intptr_t) s_error;
6066     return s_error;
6067     /* UNREACHABLE */;
6068     abort();
6069   }
6070   s_n_llhttp__internal__n_invoke_update_header_state_9: {
6071     switch (llhttp__internal__c_update_header_state_4(state, p, endp)) {
6072       default:
6073         goto s_n_llhttp__internal__n_header_field_general;
6074     }
6075     /* UNREACHABLE */;
6076     abort();
6077   }
6078   s_n_llhttp__internal__n_invoke_store_header_state: {
6079     switch (llhttp__internal__c_store_header_state(state, p, endp, match)) {
6080       default:
6081         goto s_n_llhttp__internal__n_header_field_colon;
6082     }
6083     /* UNREACHABLE */;
6084     abort();
6085   }
6086   s_n_llhttp__internal__n_invoke_update_header_state_10: {
6087     switch (llhttp__internal__c_update_header_state_4(state, p, endp)) {
6088       default:
6089         goto s_n_llhttp__internal__n_header_field_general;
6090     }
6091     /* UNREACHABLE */;
6092     abort();
6093   }
6094   s_n_llhttp__internal__n_invoke_update_http_minor: {
6095     switch (llhttp__internal__c_update_http_minor(state, p, endp)) {
6096       default:
6097         goto s_n_llhttp__internal__n_header_field_start;
6098     }
6099     /* UNREACHABLE */;
6100     abort();
6101   }
6102   s_n_llhttp__internal__n_invoke_update_http_major: {
6103     switch (llhttp__internal__c_update_http_major(state, p, endp)) {
6104       default:
6105         goto s_n_llhttp__internal__n_invoke_update_http_minor;
6106     }
6107     /* UNREACHABLE */;
6108     abort();
6109   }
6110   s_n_llhttp__internal__n_span_end_llhttp__on_url_3: {
6111     const unsigned char* start;
6112     int err;
6113 
6114     start = state->_span_pos0;
6115     state->_span_pos0 = NULL;
6116     err = llhttp__on_url(state, start, p);
6117     if (err != 0) {
6118       state->error = err;
6119       state->error_pos = (const char*) p;
6120       state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_url_skip_to_http09;
6121       return s_error;
6122     }
6123     goto s_n_llhttp__internal__n_url_skip_to_http09;
6124     /* UNREACHABLE */;
6125     abort();
6126   }
6127   s_n_llhttp__internal__n_error_27: {
6128     state->error = 0x7;
6129     state->reason = "Expected CRLF";
6130     state->error_pos = (const char*) p;
6131     state->_current = (void*) (intptr_t) s_error;
6132     return s_error;
6133     /* UNREACHABLE */;
6134     abort();
6135   }
6136   s_n_llhttp__internal__n_span_end_llhttp__on_url_4: {
6137     const unsigned char* start;
6138     int err;
6139 
6140     start = state->_span_pos0;
6141     state->_span_pos0 = NULL;
6142     err = llhttp__on_url(state, start, p);
6143     if (err != 0) {
6144       state->error = err;
6145       state->error_pos = (const char*) p;
6146       state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_url_skip_lf_to_http09;
6147       return s_error;
6148     }
6149     goto s_n_llhttp__internal__n_url_skip_lf_to_http09;
6150     /* UNREACHABLE */;
6151     abort();
6152   }
6153   s_n_llhttp__internal__n_error_28: {
6154     state->error = 0x9;
6155     state->reason = "Expected CRLF after version";
6156     state->error_pos = (const char*) p;
6157     state->_current = (void*) (intptr_t) s_error;
6158     return s_error;
6159     /* UNREACHABLE */;
6160     abort();
6161   }
6162   s_n_llhttp__internal__n_invoke_store_http_minor: {
6163     switch (llhttp__internal__c_store_http_minor(state, p, endp, match)) {
6164       default:
6165         goto s_n_llhttp__internal__n_req_http_end;
6166     }
6167     /* UNREACHABLE */;
6168     abort();
6169   }
6170   s_n_llhttp__internal__n_error_29: {
6171     state->error = 0x9;
6172     state->reason = "Invalid minor version";
6173     state->error_pos = (const char*) p;
6174     state->_current = (void*) (intptr_t) s_error;
6175     return s_error;
6176     /* UNREACHABLE */;
6177     abort();
6178   }
6179   s_n_llhttp__internal__n_error_30: {
6180     state->error = 0x9;
6181     state->reason = "Expected dot";
6182     state->error_pos = (const char*) p;
6183     state->_current = (void*) (intptr_t) s_error;
6184     return s_error;
6185     /* UNREACHABLE */;
6186     abort();
6187   }
6188   s_n_llhttp__internal__n_invoke_store_http_major: {
6189     switch (llhttp__internal__c_store_http_major(state, p, endp, match)) {
6190       default:
6191         goto s_n_llhttp__internal__n_req_http_dot;
6192     }
6193     /* UNREACHABLE */;
6194     abort();
6195   }
6196   s_n_llhttp__internal__n_error_31: {
6197     state->error = 0x9;
6198     state->reason = "Invalid major version";
6199     state->error_pos = (const char*) p;
6200     state->_current = (void*) (intptr_t) s_error;
6201     return s_error;
6202     /* UNREACHABLE */;
6203     abort();
6204   }
6205   s_n_llhttp__internal__n_error_33: {
6206     state->error = 0x8;
6207     state->reason = "Expected HTTP/";
6208     state->error_pos = (const char*) p;
6209     state->_current = (void*) (intptr_t) s_error;
6210     return s_error;
6211     /* UNREACHABLE */;
6212     abort();
6213   }
6214   s_n_llhttp__internal__n_error_32: {
6215     state->error = 0x8;
6216     state->reason = "Expected SOURCE method for ICE/x.x request";
6217     state->error_pos = (const char*) p;
6218     state->_current = (void*) (intptr_t) s_error;
6219     return s_error;
6220     /* UNREACHABLE */;
6221     abort();
6222   }
6223   s_n_llhttp__internal__n_invoke_is_equal_method_1: {
6224     switch (llhttp__internal__c_is_equal_method_1(state, p, endp)) {
6225       case 0:
6226         goto s_n_llhttp__internal__n_error_32;
6227       default:
6228         goto s_n_llhttp__internal__n_req_http_major;
6229     }
6230     /* UNREACHABLE */;
6231     abort();
6232   }
6233   s_n_llhttp__internal__n_span_end_llhttp__on_url_5: {
6234     const unsigned char* start;
6235     int err;
6236 
6237     start = state->_span_pos0;
6238     state->_span_pos0 = NULL;
6239     err = llhttp__on_url(state, start, p);
6240     if (err != 0) {
6241       state->error = err;
6242       state->error_pos = (const char*) p;
6243       state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_url_skip_to_http;
6244       return s_error;
6245     }
6246     goto s_n_llhttp__internal__n_url_skip_to_http;
6247     /* UNREACHABLE */;
6248     abort();
6249   }
6250   s_n_llhttp__internal__n_span_end_llhttp__on_url_6: {
6251     const unsigned char* start;
6252     int err;
6253 
6254     start = state->_span_pos0;
6255     state->_span_pos0 = NULL;
6256     err = llhttp__on_url(state, start, p);
6257     if (err != 0) {
6258       state->error = err;
6259       state->error_pos = (const char*) p;
6260       state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_url_skip_to_http09;
6261       return s_error;
6262     }
6263     goto s_n_llhttp__internal__n_url_skip_to_http09;
6264     /* UNREACHABLE */;
6265     abort();
6266   }
6267   s_n_llhttp__internal__n_span_end_llhttp__on_url_7: {
6268     const unsigned char* start;
6269     int err;
6270 
6271     start = state->_span_pos0;
6272     state->_span_pos0 = NULL;
6273     err = llhttp__on_url(state, start, p);
6274     if (err != 0) {
6275       state->error = err;
6276       state->error_pos = (const char*) p;
6277       state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_url_skip_lf_to_http09;
6278       return s_error;
6279     }
6280     goto s_n_llhttp__internal__n_url_skip_lf_to_http09;
6281     /* UNREACHABLE */;
6282     abort();
6283   }
6284   s_n_llhttp__internal__n_span_end_llhttp__on_url_8: {
6285     const unsigned char* start;
6286     int err;
6287 
6288     start = state->_span_pos0;
6289     state->_span_pos0 = NULL;
6290     err = llhttp__on_url(state, start, p);
6291     if (err != 0) {
6292       state->error = err;
6293       state->error_pos = (const char*) p;
6294       state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_url_skip_to_http;
6295       return s_error;
6296     }
6297     goto s_n_llhttp__internal__n_url_skip_to_http;
6298     /* UNREACHABLE */;
6299     abort();
6300   }
6301   s_n_llhttp__internal__n_error_34: {
6302     state->error = 0x7;
6303     state->reason = "Invalid char in url fragment start";
6304     state->error_pos = (const char*) p;
6305     state->_current = (void*) (intptr_t) s_error;
6306     return s_error;
6307     /* UNREACHABLE */;
6308     abort();
6309   }
6310   s_n_llhttp__internal__n_span_end_llhttp__on_url_9: {
6311     const unsigned char* start;
6312     int err;
6313 
6314     start = state->_span_pos0;
6315     state->_span_pos0 = NULL;
6316     err = llhttp__on_url(state, start, p);
6317     if (err != 0) {
6318       state->error = err;
6319       state->error_pos = (const char*) p;
6320       state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_url_skip_to_http09;
6321       return s_error;
6322     }
6323     goto s_n_llhttp__internal__n_url_skip_to_http09;
6324     /* UNREACHABLE */;
6325     abort();
6326   }
6327   s_n_llhttp__internal__n_span_end_llhttp__on_url_10: {
6328     const unsigned char* start;
6329     int err;
6330 
6331     start = state->_span_pos0;
6332     state->_span_pos0 = NULL;
6333     err = llhttp__on_url(state, start, p);
6334     if (err != 0) {
6335       state->error = err;
6336       state->error_pos = (const char*) p;
6337       state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_url_skip_lf_to_http09;
6338       return s_error;
6339     }
6340     goto s_n_llhttp__internal__n_url_skip_lf_to_http09;
6341     /* UNREACHABLE */;
6342     abort();
6343   }
6344   s_n_llhttp__internal__n_span_end_llhttp__on_url_11: {
6345     const unsigned char* start;
6346     int err;
6347 
6348     start = state->_span_pos0;
6349     state->_span_pos0 = NULL;
6350     err = llhttp__on_url(state, start, p);
6351     if (err != 0) {
6352       state->error = err;
6353       state->error_pos = (const char*) p;
6354       state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_url_skip_to_http;
6355       return s_error;
6356     }
6357     goto s_n_llhttp__internal__n_url_skip_to_http;
6358     /* UNREACHABLE */;
6359     abort();
6360   }
6361   s_n_llhttp__internal__n_error_35: {
6362     state->error = 0x7;
6363     state->reason = "Invalid char in url query";
6364     state->error_pos = (const char*) p;
6365     state->_current = (void*) (intptr_t) s_error;
6366     return s_error;
6367     /* UNREACHABLE */;
6368     abort();
6369   }
6370   s_n_llhttp__internal__n_error_36: {
6371     state->error = 0x7;
6372     state->reason = "Invalid char in url path";
6373     state->error_pos = (const char*) p;
6374     state->_current = (void*) (intptr_t) s_error;
6375     return s_error;
6376     /* UNREACHABLE */;
6377     abort();
6378   }
6379   s_n_llhttp__internal__n_span_end_llhttp__on_url: {
6380     const unsigned char* start;
6381     int err;
6382 
6383     start = state->_span_pos0;
6384     state->_span_pos0 = NULL;
6385     err = llhttp__on_url(state, start, p);
6386     if (err != 0) {
6387       state->error = err;
6388       state->error_pos = (const char*) p;
6389       state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_url_skip_to_http09;
6390       return s_error;
6391     }
6392     goto s_n_llhttp__internal__n_url_skip_to_http09;
6393     /* UNREACHABLE */;
6394     abort();
6395   }
6396   s_n_llhttp__internal__n_span_end_llhttp__on_url_1: {
6397     const unsigned char* start;
6398     int err;
6399 
6400     start = state->_span_pos0;
6401     state->_span_pos0 = NULL;
6402     err = llhttp__on_url(state, start, p);
6403     if (err != 0) {
6404       state->error = err;
6405       state->error_pos = (const char*) p;
6406       state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_url_skip_lf_to_http09;
6407       return s_error;
6408     }
6409     goto s_n_llhttp__internal__n_url_skip_lf_to_http09;
6410     /* UNREACHABLE */;
6411     abort();
6412   }
6413   s_n_llhttp__internal__n_span_end_llhttp__on_url_2: {
6414     const unsigned char* start;
6415     int err;
6416 
6417     start = state->_span_pos0;
6418     state->_span_pos0 = NULL;
6419     err = llhttp__on_url(state, start, p);
6420     if (err != 0) {
6421       state->error = err;
6422       state->error_pos = (const char*) p;
6423       state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_url_skip_to_http;
6424       return s_error;
6425     }
6426     goto s_n_llhttp__internal__n_url_skip_to_http;
6427     /* UNREACHABLE */;
6428     abort();
6429   }
6430   s_n_llhttp__internal__n_span_end_llhttp__on_url_12: {
6431     const unsigned char* start;
6432     int err;
6433 
6434     start = state->_span_pos0;
6435     state->_span_pos0 = NULL;
6436     err = llhttp__on_url(state, start, p);
6437     if (err != 0) {
6438       state->error = err;
6439       state->error_pos = (const char*) p;
6440       state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_url_skip_to_http09;
6441       return s_error;
6442     }
6443     goto s_n_llhttp__internal__n_url_skip_to_http09;
6444     /* UNREACHABLE */;
6445     abort();
6446   }
6447   s_n_llhttp__internal__n_span_end_llhttp__on_url_13: {
6448     const unsigned char* start;
6449     int err;
6450 
6451     start = state->_span_pos0;
6452     state->_span_pos0 = NULL;
6453     err = llhttp__on_url(state, start, p);
6454     if (err != 0) {
6455       state->error = err;
6456       state->error_pos = (const char*) p;
6457       state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_url_skip_lf_to_http09;
6458       return s_error;
6459     }
6460     goto s_n_llhttp__internal__n_url_skip_lf_to_http09;
6461     /* UNREACHABLE */;
6462     abort();
6463   }
6464   s_n_llhttp__internal__n_span_end_llhttp__on_url_14: {
6465     const unsigned char* start;
6466     int err;
6467 
6468     start = state->_span_pos0;
6469     state->_span_pos0 = NULL;
6470     err = llhttp__on_url(state, start, p);
6471     if (err != 0) {
6472       state->error = err;
6473       state->error_pos = (const char*) p;
6474       state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_url_skip_to_http;
6475       return s_error;
6476     }
6477     goto s_n_llhttp__internal__n_url_skip_to_http;
6478     /* UNREACHABLE */;
6479     abort();
6480   }
6481   s_n_llhttp__internal__n_error_37: {
6482     state->error = 0x7;
6483     state->reason = "Double @ in url";
6484     state->error_pos = (const char*) p;
6485     state->_current = (void*) (intptr_t) s_error;
6486     return s_error;
6487     /* UNREACHABLE */;
6488     abort();
6489   }
6490   s_n_llhttp__internal__n_error_38: {
6491     state->error = 0x7;
6492     state->reason = "Unexpected char in url server";
6493     state->error_pos = (const char*) p;
6494     state->_current = (void*) (intptr_t) s_error;
6495     return s_error;
6496     /* UNREACHABLE */;
6497     abort();
6498   }
6499   s_n_llhttp__internal__n_error_39: {
6500     state->error = 0x7;
6501     state->reason = "Unexpected char in url server";
6502     state->error_pos = (const char*) p;
6503     state->_current = (void*) (intptr_t) s_error;
6504     return s_error;
6505     /* UNREACHABLE */;
6506     abort();
6507   }
6508   s_n_llhttp__internal__n_error_41: {
6509     state->error = 0x7;
6510     state->reason = "Unexpected char in url schema";
6511     state->error_pos = (const char*) p;
6512     state->_current = (void*) (intptr_t) s_error;
6513     return s_error;
6514     /* UNREACHABLE */;
6515     abort();
6516   }
6517   s_n_llhttp__internal__n_error_42: {
6518     state->error = 0x7;
6519     state->reason = "Unexpected char in url schema";
6520     state->error_pos = (const char*) p;
6521     state->_current = (void*) (intptr_t) s_error;
6522     return s_error;
6523     /* UNREACHABLE */;
6524     abort();
6525   }
6526   s_n_llhttp__internal__n_error_43: {
6527     state->error = 0x7;
6528     state->reason = "Unexpected start char in url";
6529     state->error_pos = (const char*) p;
6530     state->_current = (void*) (intptr_t) s_error;
6531     return s_error;
6532     /* UNREACHABLE */;
6533     abort();
6534   }
6535   s_n_llhttp__internal__n_invoke_is_equal_method: {
6536     switch (llhttp__internal__c_is_equal_method(state, p, endp)) {
6537       case 0:
6538         goto s_n_llhttp__internal__n_url_entry_normal;
6539       default:
6540         goto s_n_llhttp__internal__n_url_entry_connect;
6541     }
6542     /* UNREACHABLE */;
6543     abort();
6544   }
6545   s_n_llhttp__internal__n_error_44: {
6546     state->error = 0x6;
6547     state->reason = "Expected space after method";
6548     state->error_pos = (const char*) p;
6549     state->_current = (void*) (intptr_t) s_error;
6550     return s_error;
6551     /* UNREACHABLE */;
6552     abort();
6553   }
6554   s_n_llhttp__internal__n_invoke_store_method_1: {
6555     switch (llhttp__internal__c_store_method(state, p, endp, match)) {
6556       default:
6557         goto s_n_llhttp__internal__n_req_first_space_before_url;
6558     }
6559     /* UNREACHABLE */;
6560     abort();
6561   }
6562   s_n_llhttp__internal__n_error_53: {
6563     state->error = 0x6;
6564     state->reason = "Invalid method encountered";
6565     state->error_pos = (const char*) p;
6566     state->_current = (void*) (intptr_t) s_error;
6567     return s_error;
6568     /* UNREACHABLE */;
6569     abort();
6570   }
6571   s_n_llhttp__internal__n_error_45: {
6572     state->error = 0xd;
6573     state->reason = "Response overflow";
6574     state->error_pos = (const char*) p;
6575     state->_current = (void*) (intptr_t) s_error;
6576     return s_error;
6577     /* UNREACHABLE */;
6578     abort();
6579   }
6580   s_n_llhttp__internal__n_invoke_mul_add_status_code: {
6581     switch (llhttp__internal__c_mul_add_status_code(state, p, endp, match)) {
6582       case 1:
6583         goto s_n_llhttp__internal__n_error_45;
6584       default:
6585         goto s_n_llhttp__internal__n_res_status_code;
6586     }
6587     /* UNREACHABLE */;
6588     abort();
6589   }
6590   s_n_llhttp__internal__n_error_46: {
6591     state->error = 0x2;
6592     state->reason = "Expected LF after CR";
6593     state->error_pos = (const char*) p;
6594     state->_current = (void*) (intptr_t) s_error;
6595     return s_error;
6596     /* UNREACHABLE */;
6597     abort();
6598   }
6599   s_n_llhttp__internal__n_span_end_llhttp__on_status: {
6600     const unsigned char* start;
6601     int err;
6602 
6603     start = state->_span_pos0;
6604     state->_span_pos0 = NULL;
6605     err = llhttp__on_status(state, start, p);
6606     if (err != 0) {
6607       state->error = err;
6608       state->error_pos = (const char*) (p + 1);
6609       state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_header_field_start;
6610       return s_error;
6611     }
6612     p++;
6613     goto s_n_llhttp__internal__n_header_field_start;
6614     /* UNREACHABLE */;
6615     abort();
6616   }
6617   s_n_llhttp__internal__n_span_end_llhttp__on_status_1: {
6618     const unsigned char* start;
6619     int err;
6620 
6621     start = state->_span_pos0;
6622     state->_span_pos0 = NULL;
6623     err = llhttp__on_status(state, start, p);
6624     if (err != 0) {
6625       state->error = err;
6626       state->error_pos = (const char*) (p + 1);
6627       state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_res_line_almost_done;
6628       return s_error;
6629     }
6630     p++;
6631     goto s_n_llhttp__internal__n_res_line_almost_done;
6632     /* UNREACHABLE */;
6633     abort();
6634   }
6635   s_n_llhttp__internal__n_error_47: {
6636     state->error = 0xd;
6637     state->reason = "Invalid response status";
6638     state->error_pos = (const char*) p;
6639     state->_current = (void*) (intptr_t) s_error;
6640     return s_error;
6641     /* UNREACHABLE */;
6642     abort();
6643   }
6644   s_n_llhttp__internal__n_invoke_update_status_code: {
6645     switch (llhttp__internal__c_update_status_code(state, p, endp)) {
6646       default:
6647         goto s_n_llhttp__internal__n_res_status_code;
6648     }
6649     /* UNREACHABLE */;
6650     abort();
6651   }
6652   s_n_llhttp__internal__n_error_48: {
6653     state->error = 0x9;
6654     state->reason = "Expected space after version";
6655     state->error_pos = (const char*) p;
6656     state->_current = (void*) (intptr_t) s_error;
6657     return s_error;
6658     /* UNREACHABLE */;
6659     abort();
6660   }
6661   s_n_llhttp__internal__n_invoke_store_http_minor_1: {
6662     switch (llhttp__internal__c_store_http_minor(state, p, endp, match)) {
6663       default:
6664         goto s_n_llhttp__internal__n_res_http_end;
6665     }
6666     /* UNREACHABLE */;
6667     abort();
6668   }
6669   s_n_llhttp__internal__n_error_49: {
6670     state->error = 0x9;
6671     state->reason = "Invalid minor version";
6672     state->error_pos = (const char*) p;
6673     state->_current = (void*) (intptr_t) s_error;
6674     return s_error;
6675     /* UNREACHABLE */;
6676     abort();
6677   }
6678   s_n_llhttp__internal__n_error_50: {
6679     state->error = 0x9;
6680     state->reason = "Expected dot";
6681     state->error_pos = (const char*) p;
6682     state->_current = (void*) (intptr_t) s_error;
6683     return s_error;
6684     /* UNREACHABLE */;
6685     abort();
6686   }
6687   s_n_llhttp__internal__n_invoke_store_http_major_1: {
6688     switch (llhttp__internal__c_store_http_major(state, p, endp, match)) {
6689       default:
6690         goto s_n_llhttp__internal__n_res_http_dot;
6691     }
6692     /* UNREACHABLE */;
6693     abort();
6694   }
6695   s_n_llhttp__internal__n_error_51: {
6696     state->error = 0x9;
6697     state->reason = "Invalid major version";
6698     state->error_pos = (const char*) p;
6699     state->_current = (void*) (intptr_t) s_error;
6700     return s_error;
6701     /* UNREACHABLE */;
6702     abort();
6703   }
6704   s_n_llhttp__internal__n_error_54: {
6705     state->error = 0x8;
6706     state->reason = "Expected HTTP/";
6707     state->error_pos = (const char*) p;
6708     state->_current = (void*) (intptr_t) s_error;
6709     return s_error;
6710     /* UNREACHABLE */;
6711     abort();
6712   }
6713   s_n_llhttp__internal__n_invoke_update_type: {
6714     switch (llhttp__internal__c_update_type(state, p, endp)) {
6715       default:
6716         goto s_n_llhttp__internal__n_req_first_space_before_url;
6717     }
6718     /* UNREACHABLE */;
6719     abort();
6720   }
6721   s_n_llhttp__internal__n_invoke_store_method: {
6722     switch (llhttp__internal__c_store_method(state, p, endp, match)) {
6723       default:
6724         goto s_n_llhttp__internal__n_invoke_update_type;
6725     }
6726     /* UNREACHABLE */;
6727     abort();
6728   }
6729   s_n_llhttp__internal__n_error_52: {
6730     state->error = 0x8;
6731     state->reason = "Invalid word encountered";
6732     state->error_pos = (const char*) p;
6733     state->_current = (void*) (intptr_t) s_error;
6734     return s_error;
6735     /* UNREACHABLE */;
6736     abort();
6737   }
6738   s_n_llhttp__internal__n_invoke_update_type_1: {
6739     switch (llhttp__internal__c_update_type_1(state, p, endp)) {
6740       default:
6741         goto s_n_llhttp__internal__n_res_http_major;
6742     }
6743     /* UNREACHABLE */;
6744     abort();
6745   }
6746   s_n_llhttp__internal__n_invoke_update_type_2: {
6747     switch (llhttp__internal__c_update_type(state, p, endp)) {
6748       default:
6749         goto s_n_llhttp__internal__n_start_req;
6750     }
6751     /* UNREACHABLE */;
6752     abort();
6753   }
6754   s_n_llhttp__internal__n_pause_8: {
6755     state->error = 0x15;
6756     state->reason = "on_message_begin pause";
6757     state->error_pos = (const char*) p;
6758     state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_load_type;
6759     return s_error;
6760     /* UNREACHABLE */;
6761     abort();
6762   }
6763   s_n_llhttp__internal__n_error: {
6764     state->error = 0x10;
6765     state->reason = "`on_message_begin` callback error";
6766     state->error_pos = (const char*) p;
6767     state->_current = (void*) (intptr_t) s_error;
6768     return s_error;
6769     /* UNREACHABLE */;
6770     abort();
6771   }
6772   s_n_llhttp__internal__n_invoke_llhttp__on_message_begin: {
6773     switch (llhttp__on_message_begin(state, p, endp)) {
6774       case 0:
6775         goto s_n_llhttp__internal__n_invoke_load_type;
6776       case 21:
6777         goto s_n_llhttp__internal__n_pause_8;
6778       default:
6779         goto s_n_llhttp__internal__n_error;
6780     }
6781     /* UNREACHABLE */;
6782     abort();
6783   }
6784   s_n_llhttp__internal__n_invoke_update_finish: {
6785     switch (llhttp__internal__c_update_finish(state, p, endp)) {
6786       default:
6787         goto s_n_llhttp__internal__n_invoke_llhttp__on_message_begin;
6788     }
6789     /* UNREACHABLE */;
6790     abort();
6791   }
6792 }
6793 
llhttp__internal_execute(llhttp__internal_t * state,const char * p,const char * endp)6794 int llhttp__internal_execute(llhttp__internal_t* state, const char* p, const char* endp) {
6795   llparse_state_t next;
6796 
6797   /* check lingering errors */
6798   if (state->error != 0) {
6799     return state->error;
6800   }
6801 
6802   /* restart spans */
6803   if (state->_span_pos0 != NULL) {
6804     state->_span_pos0 = (void*) p;
6805   }
6806 
6807   next = llhttp__internal__run(state, (const unsigned char*) p, (const unsigned char*) endp);
6808   if (next == s_error) {
6809     return state->error;
6810   }
6811   state->_current = (void*) (intptr_t) next;
6812 
6813   /* execute spans */
6814   if (state->_span_pos0 != NULL) {
6815     int error;
6816 
6817     error = ((llhttp__internal__span_cb) state->_span_cb0)(state, state->_span_pos0, (const char*) endp);
6818     if (error != 0) {
6819       state->error = error;
6820       state->error_pos = endp;
6821       return error;
6822     }
6823   }
6824 
6825   return 0;
6826 }
6827 
6828 #else  /* !LLHTTP_STRICT_MODE */
6829 
6830 #include <stdlib.h>
6831 #include <stdint.h>
6832 #include <string.h>
6833 
6834 #ifdef __SSE4_2__
6835  #ifdef _MSC_VER
6836   #include <nmmintrin.h>
6837  #else  /* !_MSC_VER */
6838   #include <x86intrin.h>
6839  #endif  /* _MSC_VER */
6840 #endif  /* __SSE4_2__ */
6841 
6842 #ifdef _MSC_VER
6843  #define ALIGN(n) _declspec(align(n))
6844 #else  /* !_MSC_VER */
6845  #define ALIGN(n) __attribute__((aligned(n)))
6846 #endif  /* _MSC_VER */
6847 
6848 #include "llhttp.h"
6849 
6850 typedef int (*llhttp__internal__span_cb)(
6851              llhttp__internal_t*, const char*, const char*);
6852 
6853 static const unsigned char llparse_blob0[] = {
6854   'C', 'L'
6855 };
6856 #ifdef __SSE4_2__
6857 static const unsigned char ALIGN(16) llparse_blob1[] = {
6858   0x9, 0x9, 0xc, 0xc, '!', '"', '$', '>', '@', '~', 0x80,
6859   0xff, 0x0, 0x0, 0x0, 0x0
6860 };
6861 #endif  /* __SSE4_2__ */
6862 static const unsigned char llparse_blob2[] = {
6863   'o', 'n'
6864 };
6865 static const unsigned char llparse_blob3[] = {
6866   'e', 'c', 't', 'i', 'o', 'n'
6867 };
6868 static const unsigned char llparse_blob4[] = {
6869   'l', 'o', 's', 'e'
6870 };
6871 static const unsigned char llparse_blob5[] = {
6872   'e', 'e', 'p', '-', 'a', 'l', 'i', 'v', 'e'
6873 };
6874 static const unsigned char llparse_blob6[] = {
6875   'p', 'g', 'r', 'a', 'd', 'e'
6876 };
6877 static const unsigned char llparse_blob7[] = {
6878   'c', 'h', 'u', 'n', 'k', 'e', 'd'
6879 };
6880 #ifdef __SSE4_2__
6881 static const unsigned char ALIGN(16) llparse_blob8[] = {
6882   0x9, 0x9, ' ', '~', 0x80, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0,
6883   0x0, 0x0, 0x0, 0x0, 0x0
6884 };
6885 #endif  /* __SSE4_2__ */
6886 #ifdef __SSE4_2__
6887 static const unsigned char ALIGN(16) llparse_blob9[] = {
6888   ' ', '!', '#', '\'', '*', '+', '-', '.', '0', '9', 'A',
6889   'Z', '^', 'z', '|', '|'
6890 };
6891 #endif  /* __SSE4_2__ */
6892 #ifdef __SSE4_2__
6893 static const unsigned char ALIGN(16) llparse_blob10[] = {
6894   '~', '~', 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
6895   0x0, 0x0, 0x0, 0x0, 0x0
6896 };
6897 #endif  /* __SSE4_2__ */
6898 static const unsigned char llparse_blob11[] = {
6899   'e', 'n', 't', '-', 'l', 'e', 'n', 'g', 't', 'h'
6900 };
6901 static const unsigned char llparse_blob12[] = {
6902   'r', 'o', 'x', 'y', '-', 'c', 'o', 'n', 'n', 'e', 'c',
6903   't', 'i', 'o', 'n'
6904 };
6905 static const unsigned char llparse_blob13[] = {
6906   'r', 'a', 'n', 's', 'f', 'e', 'r', '-', 'e', 'n', 'c',
6907   'o', 'd', 'i', 'n', 'g'
6908 };
6909 static const unsigned char llparse_blob14[] = {
6910   'p', 'g', 'r', 'a', 'd', 'e'
6911 };
6912 static const unsigned char llparse_blob15[] = {
6913   0xd, 0xa
6914 };
6915 static const unsigned char llparse_blob16[] = {
6916   'T', 'T', 'P', '/'
6917 };
6918 static const unsigned char llparse_blob17[] = {
6919   'C', 'E', '/'
6920 };
6921 static const unsigned char llparse_blob18[] = {
6922   'I', 'N', 'D'
6923 };
6924 static const unsigned char llparse_blob19[] = {
6925   'E', 'C', 'K', 'O', 'U', 'T'
6926 };
6927 static const unsigned char llparse_blob20[] = {
6928   'N', 'E', 'C', 'T'
6929 };
6930 static const unsigned char llparse_blob21[] = {
6931   'E', 'L', 'E', 'T', 'E'
6932 };
6933 static const unsigned char llparse_blob22[] = {
6934   'E', 'T'
6935 };
6936 static const unsigned char llparse_blob23[] = {
6937   'E', 'A', 'D'
6938 };
6939 static const unsigned char llparse_blob24[] = {
6940   'N', 'K'
6941 };
6942 static const unsigned char llparse_blob25[] = {
6943   'C', 'K'
6944 };
6945 static const unsigned char llparse_blob26[] = {
6946   'S', 'E', 'A', 'R', 'C', 'H'
6947 };
6948 static const unsigned char llparse_blob27[] = {
6949   'R', 'G', 'E'
6950 };
6951 static const unsigned char llparse_blob28[] = {
6952   'C', 'T', 'I', 'V', 'I', 'T', 'Y'
6953 };
6954 static const unsigned char llparse_blob29[] = {
6955   'L', 'E', 'N', 'D', 'A', 'R'
6956 };
6957 static const unsigned char llparse_blob30[] = {
6958   'V', 'E'
6959 };
6960 static const unsigned char llparse_blob31[] = {
6961   'O', 'T', 'I', 'F', 'Y'
6962 };
6963 static const unsigned char llparse_blob32[] = {
6964   'P', 'T', 'I', 'O', 'N', 'S'
6965 };
6966 static const unsigned char llparse_blob33[] = {
6967   'T', 'C', 'H'
6968 };
6969 static const unsigned char llparse_blob34[] = {
6970   'S', 'T'
6971 };
6972 static const unsigned char llparse_blob35[] = {
6973   'I', 'N', 'D'
6974 };
6975 static const unsigned char llparse_blob36[] = {
6976   'A', 'T', 'C', 'H'
6977 };
6978 static const unsigned char llparse_blob37[] = {
6979   'G', 'E'
6980 };
6981 static const unsigned char llparse_blob38[] = {
6982   'I', 'N', 'D'
6983 };
6984 static const unsigned char llparse_blob39[] = {
6985   'O', 'R', 'T'
6986 };
6987 static const unsigned char llparse_blob40[] = {
6988   'A', 'R', 'C', 'H'
6989 };
6990 static const unsigned char llparse_blob41[] = {
6991   'U', 'R', 'C', 'E'
6992 };
6993 static const unsigned char llparse_blob42[] = {
6994   'B', 'S', 'C', 'R', 'I', 'B', 'E'
6995 };
6996 static const unsigned char llparse_blob43[] = {
6997   'R', 'A', 'C', 'E'
6998 };
6999 static const unsigned char llparse_blob44[] = {
7000   'I', 'N', 'D'
7001 };
7002 static const unsigned char llparse_blob45[] = {
7003   'N', 'K'
7004 };
7005 static const unsigned char llparse_blob46[] = {
7006   'C', 'K'
7007 };
7008 static const unsigned char llparse_blob47[] = {
7009   'U', 'B', 'S', 'C', 'R', 'I', 'B', 'E'
7010 };
7011 static const unsigned char llparse_blob48[] = {
7012   'H', 'T', 'T', 'P', '/'
7013 };
7014 static const unsigned char llparse_blob49[] = {
7015   'A', 'D'
7016 };
7017 static const unsigned char llparse_blob50[] = {
7018   'T', 'P', '/'
7019 };
7020 
7021 enum llparse_match_status_e {
7022   kMatchComplete,
7023   kMatchPause,
7024   kMatchMismatch
7025 };
7026 typedef enum llparse_match_status_e llparse_match_status_t;
7027 
7028 struct llparse_match_s {
7029   llparse_match_status_t status;
7030   const unsigned char* current;
7031 };
7032 typedef struct llparse_match_s llparse_match_t;
7033 
llparse__match_sequence_id(llhttp__internal_t * s,const unsigned char * p,const unsigned char * endp,const unsigned char * seq,uint32_t seq_len)7034 static llparse_match_t llparse__match_sequence_id(
7035     llhttp__internal_t* s, const unsigned char* p,
7036     const unsigned char* endp,
7037     const unsigned char* seq, uint32_t seq_len) {
7038   uint32_t index;
7039   llparse_match_t res;
7040 
7041   index = s->_index;
7042   for (; p != endp; p++) {
7043     unsigned char current;
7044 
7045     current = *p;
7046     if (current == seq[index]) {
7047       if (++index == seq_len) {
7048         res.status = kMatchComplete;
7049         goto reset;
7050       }
7051     } else {
7052       res.status = kMatchMismatch;
7053       goto reset;
7054     }
7055   }
7056   s->_index = index;
7057   res.status = kMatchPause;
7058   res.current = p;
7059   return res;
7060 reset:
7061   s->_index = 0;
7062   res.current = p;
7063   return res;
7064 }
7065 
llparse__match_sequence_to_lower(llhttp__internal_t * s,const unsigned char * p,const unsigned char * endp,const unsigned char * seq,uint32_t seq_len)7066 static llparse_match_t llparse__match_sequence_to_lower(
7067     llhttp__internal_t* s, const unsigned char* p,
7068     const unsigned char* endp,
7069     const unsigned char* seq, uint32_t seq_len) {
7070   uint32_t index;
7071   llparse_match_t res;
7072 
7073   index = s->_index;
7074   for (; p != endp; p++) {
7075     unsigned char current;
7076 
7077     current = ((*p) >= 'A' && (*p) <= 'Z' ? (*p | 0x20) : (*p));
7078     if (current == seq[index]) {
7079       if (++index == seq_len) {
7080         res.status = kMatchComplete;
7081         goto reset;
7082       }
7083     } else {
7084       res.status = kMatchMismatch;
7085       goto reset;
7086     }
7087   }
7088   s->_index = index;
7089   res.status = kMatchPause;
7090   res.current = p;
7091   return res;
7092 reset:
7093   s->_index = 0;
7094   res.current = p;
7095   return res;
7096 }
7097 
llparse__match_sequence_to_lower_unsafe(llhttp__internal_t * s,const unsigned char * p,const unsigned char * endp,const unsigned char * seq,uint32_t seq_len)7098 static llparse_match_t llparse__match_sequence_to_lower_unsafe(
7099     llhttp__internal_t* s, const unsigned char* p,
7100     const unsigned char* endp,
7101     const unsigned char* seq, uint32_t seq_len) {
7102   uint32_t index;
7103   llparse_match_t res;
7104 
7105   index = s->_index;
7106   for (; p != endp; p++) {
7107     unsigned char current;
7108 
7109     current = ((*p) | 0x20);
7110     if (current == seq[index]) {
7111       if (++index == seq_len) {
7112         res.status = kMatchComplete;
7113         goto reset;
7114       }
7115     } else {
7116       res.status = kMatchMismatch;
7117       goto reset;
7118     }
7119   }
7120   s->_index = index;
7121   res.status = kMatchPause;
7122   res.current = p;
7123   return res;
7124 reset:
7125   s->_index = 0;
7126   res.current = p;
7127   return res;
7128 }
7129 
7130 enum llparse_state_e {
7131   s_error,
7132   s_n_llhttp__internal__n_invoke_llhttp__after_message_complete,
7133   s_n_llhttp__internal__n_pause_1,
7134   s_n_llhttp__internal__n_invoke_is_equal_upgrade,
7135   s_n_llhttp__internal__n_invoke_llhttp__on_message_complete_2,
7136   s_n_llhttp__internal__n_chunk_data_almost_done_skip,
7137   s_n_llhttp__internal__n_chunk_data_almost_done,
7138   s_n_llhttp__internal__n_consume_content_length,
7139   s_n_llhttp__internal__n_span_start_llhttp__on_body,
7140   s_n_llhttp__internal__n_invoke_is_equal_content_length,
7141   s_n_llhttp__internal__n_chunk_size_almost_done,
7142   s_n_llhttp__internal__n_chunk_parameters,
7143   s_n_llhttp__internal__n_chunk_size_otherwise,
7144   s_n_llhttp__internal__n_chunk_size,
7145   s_n_llhttp__internal__n_chunk_size_digit,
7146   s_n_llhttp__internal__n_invoke_update_content_length,
7147   s_n_llhttp__internal__n_consume_content_length_1,
7148   s_n_llhttp__internal__n_span_start_llhttp__on_body_1,
7149   s_n_llhttp__internal__n_eof,
7150   s_n_llhttp__internal__n_span_start_llhttp__on_body_2,
7151   s_n_llhttp__internal__n_invoke_llhttp__after_headers_complete,
7152   s_n_llhttp__internal__n_headers_almost_done,
7153   s_n_llhttp__internal__n_span_start_llhttp__on_header_value,
7154   s_n_llhttp__internal__n_header_value_discard_lws,
7155   s_n_llhttp__internal__n_header_value_discard_ws_almost_done,
7156   s_n_llhttp__internal__n_header_value_lws,
7157   s_n_llhttp__internal__n_header_value_almost_done,
7158   s_n_llhttp__internal__n_header_value_lenient,
7159   s_n_llhttp__internal__n_header_value_otherwise,
7160   s_n_llhttp__internal__n_header_value_connection_token,
7161   s_n_llhttp__internal__n_header_value_connection_ws,
7162   s_n_llhttp__internal__n_header_value_connection_1,
7163   s_n_llhttp__internal__n_header_value_connection_2,
7164   s_n_llhttp__internal__n_header_value_connection_3,
7165   s_n_llhttp__internal__n_header_value_connection,
7166   s_n_llhttp__internal__n_error_18,
7167   s_n_llhttp__internal__n_error_19,
7168   s_n_llhttp__internal__n_header_value_content_length_ws,
7169   s_n_llhttp__internal__n_header_value_content_length,
7170   s_n_llhttp__internal__n_header_value_te_chunked_last,
7171   s_n_llhttp__internal__n_header_value_te_token_ows,
7172   s_n_llhttp__internal__n_header_value,
7173   s_n_llhttp__internal__n_header_value_te_token,
7174   s_n_llhttp__internal__n_header_value_te_chunked,
7175   s_n_llhttp__internal__n_span_start_llhttp__on_header_value_1,
7176   s_n_llhttp__internal__n_header_value_discard_ws,
7177   s_n_llhttp__internal__n_header_field_general_otherwise,
7178   s_n_llhttp__internal__n_header_field_general,
7179   s_n_llhttp__internal__n_header_field_colon,
7180   s_n_llhttp__internal__n_header_field_3,
7181   s_n_llhttp__internal__n_header_field_4,
7182   s_n_llhttp__internal__n_header_field_2,
7183   s_n_llhttp__internal__n_header_field_1,
7184   s_n_llhttp__internal__n_header_field_5,
7185   s_n_llhttp__internal__n_header_field_6,
7186   s_n_llhttp__internal__n_header_field_7,
7187   s_n_llhttp__internal__n_header_field,
7188   s_n_llhttp__internal__n_span_start_llhttp__on_header_field,
7189   s_n_llhttp__internal__n_header_field_start,
7190   s_n_llhttp__internal__n_url_skip_to_http09,
7191   s_n_llhttp__internal__n_url_skip_lf_to_http09,
7192   s_n_llhttp__internal__n_req_http_end_1,
7193   s_n_llhttp__internal__n_req_http_end,
7194   s_n_llhttp__internal__n_req_http_minor,
7195   s_n_llhttp__internal__n_req_http_dot,
7196   s_n_llhttp__internal__n_req_http_major,
7197   s_n_llhttp__internal__n_req_http_start_1,
7198   s_n_llhttp__internal__n_req_http_start_2,
7199   s_n_llhttp__internal__n_req_http_start,
7200   s_n_llhttp__internal__n_url_skip_to_http,
7201   s_n_llhttp__internal__n_url_fragment,
7202   s_n_llhttp__internal__n_span_end_stub_query_3,
7203   s_n_llhttp__internal__n_url_query,
7204   s_n_llhttp__internal__n_url_query_or_fragment,
7205   s_n_llhttp__internal__n_url_path,
7206   s_n_llhttp__internal__n_span_start_stub_path_2,
7207   s_n_llhttp__internal__n_span_start_stub_path,
7208   s_n_llhttp__internal__n_span_start_stub_path_1,
7209   s_n_llhttp__internal__n_url_server_with_at,
7210   s_n_llhttp__internal__n_url_server,
7211   s_n_llhttp__internal__n_url_schema_delim_1,
7212   s_n_llhttp__internal__n_url_schema_delim,
7213   s_n_llhttp__internal__n_span_end_stub_schema,
7214   s_n_llhttp__internal__n_url_schema,
7215   s_n_llhttp__internal__n_url_start,
7216   s_n_llhttp__internal__n_span_start_llhttp__on_url_1,
7217   s_n_llhttp__internal__n_span_start_llhttp__on_url,
7218   s_n_llhttp__internal__n_req_spaces_before_url,
7219   s_n_llhttp__internal__n_req_first_space_before_url,
7220   s_n_llhttp__internal__n_start_req_1,
7221   s_n_llhttp__internal__n_start_req_2,
7222   s_n_llhttp__internal__n_start_req_4,
7223   s_n_llhttp__internal__n_start_req_6,
7224   s_n_llhttp__internal__n_start_req_7,
7225   s_n_llhttp__internal__n_start_req_5,
7226   s_n_llhttp__internal__n_start_req_3,
7227   s_n_llhttp__internal__n_start_req_8,
7228   s_n_llhttp__internal__n_start_req_9,
7229   s_n_llhttp__internal__n_start_req_10,
7230   s_n_llhttp__internal__n_start_req_12,
7231   s_n_llhttp__internal__n_start_req_13,
7232   s_n_llhttp__internal__n_start_req_11,
7233   s_n_llhttp__internal__n_start_req_15,
7234   s_n_llhttp__internal__n_start_req_16,
7235   s_n_llhttp__internal__n_start_req_18,
7236   s_n_llhttp__internal__n_start_req_20,
7237   s_n_llhttp__internal__n_start_req_21,
7238   s_n_llhttp__internal__n_start_req_19,
7239   s_n_llhttp__internal__n_start_req_17,
7240   s_n_llhttp__internal__n_start_req_22,
7241   s_n_llhttp__internal__n_start_req_14,
7242   s_n_llhttp__internal__n_start_req_23,
7243   s_n_llhttp__internal__n_start_req_24,
7244   s_n_llhttp__internal__n_start_req_26,
7245   s_n_llhttp__internal__n_start_req_27,
7246   s_n_llhttp__internal__n_start_req_31,
7247   s_n_llhttp__internal__n_start_req_32,
7248   s_n_llhttp__internal__n_start_req_30,
7249   s_n_llhttp__internal__n_start_req_29,
7250   s_n_llhttp__internal__n_start_req_28,
7251   s_n_llhttp__internal__n_start_req_34,
7252   s_n_llhttp__internal__n_start_req_33,
7253   s_n_llhttp__internal__n_start_req_25,
7254   s_n_llhttp__internal__n_start_req_37,
7255   s_n_llhttp__internal__n_start_req_38,
7256   s_n_llhttp__internal__n_start_req_36,
7257   s_n_llhttp__internal__n_start_req_35,
7258   s_n_llhttp__internal__n_start_req_40,
7259   s_n_llhttp__internal__n_start_req_41,
7260   s_n_llhttp__internal__n_start_req_42,
7261   s_n_llhttp__internal__n_start_req_39,
7262   s_n_llhttp__internal__n_start_req_43,
7263   s_n_llhttp__internal__n_start_req_46,
7264   s_n_llhttp__internal__n_start_req_48,
7265   s_n_llhttp__internal__n_start_req_49,
7266   s_n_llhttp__internal__n_start_req_47,
7267   s_n_llhttp__internal__n_start_req_50,
7268   s_n_llhttp__internal__n_start_req_45,
7269   s_n_llhttp__internal__n_start_req_44,
7270   s_n_llhttp__internal__n_start_req,
7271   s_n_llhttp__internal__n_res_line_almost_done,
7272   s_n_llhttp__internal__n_res_status,
7273   s_n_llhttp__internal__n_span_start_llhttp__on_status,
7274   s_n_llhttp__internal__n_res_status_start,
7275   s_n_llhttp__internal__n_res_status_code_otherwise,
7276   s_n_llhttp__internal__n_res_status_code,
7277   s_n_llhttp__internal__n_res_http_end,
7278   s_n_llhttp__internal__n_res_http_minor,
7279   s_n_llhttp__internal__n_res_http_dot,
7280   s_n_llhttp__internal__n_res_http_major,
7281   s_n_llhttp__internal__n_start_res,
7282   s_n_llhttp__internal__n_req_or_res_method_2,
7283   s_n_llhttp__internal__n_req_or_res_method_3,
7284   s_n_llhttp__internal__n_req_or_res_method_1,
7285   s_n_llhttp__internal__n_req_or_res_method,
7286   s_n_llhttp__internal__n_start_req_or_res,
7287   s_n_llhttp__internal__n_invoke_load_type,
7288   s_n_llhttp__internal__n_start,
7289 };
7290 typedef enum llparse_state_e llparse_state_t;
7291 
7292 int llhttp__on_url(
7293     llhttp__internal_t* s, const unsigned char* p,
7294     const unsigned char* endp);
7295 
7296 int llhttp__on_header_field(
7297     llhttp__internal_t* s, const unsigned char* p,
7298     const unsigned char* endp);
7299 
7300 int llhttp__on_header_value(
7301     llhttp__internal_t* s, const unsigned char* p,
7302     const unsigned char* endp);
7303 
7304 int llhttp__on_body(
7305     llhttp__internal_t* s, const unsigned char* p,
7306     const unsigned char* endp);
7307 
7308 int llhttp__on_status(
7309     llhttp__internal_t* s, const unsigned char* p,
7310     const unsigned char* endp);
7311 
llhttp__internal__c_update_finish(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)7312 int llhttp__internal__c_update_finish(
7313     llhttp__internal_t* state,
7314     const unsigned char* p,
7315     const unsigned char* endp) {
7316   state->finish = 2;
7317   return 0;
7318 }
7319 
7320 int llhttp__on_message_begin(
7321     llhttp__internal_t* s, const unsigned char* p,
7322     const unsigned char* endp);
7323 
llhttp__internal__c_load_type(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)7324 int llhttp__internal__c_load_type(
7325     llhttp__internal_t* state,
7326     const unsigned char* p,
7327     const unsigned char* endp) {
7328   return state->type;
7329 }
7330 
llhttp__internal__c_store_method(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp,int match)7331 int llhttp__internal__c_store_method(
7332     llhttp__internal_t* state,
7333     const unsigned char* p,
7334     const unsigned char* endp,
7335     int match) {
7336   state->method = match;
7337   return 0;
7338 }
7339 
llhttp__internal__c_is_equal_method(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)7340 int llhttp__internal__c_is_equal_method(
7341     llhttp__internal_t* state,
7342     const unsigned char* p,
7343     const unsigned char* endp) {
7344   return state->method == 5;
7345 }
7346 
llhttp__internal__c_update_http_major(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)7347 int llhttp__internal__c_update_http_major(
7348     llhttp__internal_t* state,
7349     const unsigned char* p,
7350     const unsigned char* endp) {
7351   state->http_major = 0;
7352   return 0;
7353 }
7354 
llhttp__internal__c_update_http_minor(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)7355 int llhttp__internal__c_update_http_minor(
7356     llhttp__internal_t* state,
7357     const unsigned char* p,
7358     const unsigned char* endp) {
7359   state->http_minor = 9;
7360   return 0;
7361 }
7362 
llhttp__internal__c_test_flags(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)7363 int llhttp__internal__c_test_flags(
7364     llhttp__internal_t* state,
7365     const unsigned char* p,
7366     const unsigned char* endp) {
7367   return (state->flags & 128) == 128;
7368 }
7369 
7370 int llhttp__on_chunk_complete(
7371     llhttp__internal_t* s, const unsigned char* p,
7372     const unsigned char* endp);
7373 
7374 int llhttp__on_message_complete(
7375     llhttp__internal_t* s, const unsigned char* p,
7376     const unsigned char* endp);
7377 
llhttp__internal__c_is_equal_upgrade(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)7378 int llhttp__internal__c_is_equal_upgrade(
7379     llhttp__internal_t* state,
7380     const unsigned char* p,
7381     const unsigned char* endp) {
7382   return state->upgrade == 1;
7383 }
7384 
7385 int llhttp__after_message_complete(
7386     llhttp__internal_t* s, const unsigned char* p,
7387     const unsigned char* endp);
7388 
llhttp__internal__c_update_finish_1(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)7389 int llhttp__internal__c_update_finish_1(
7390     llhttp__internal_t* state,
7391     const unsigned char* p,
7392     const unsigned char* endp) {
7393   state->finish = 0;
7394   return 0;
7395 }
7396 
llhttp__internal__c_test_flags_1(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)7397 int llhttp__internal__c_test_flags_1(
7398     llhttp__internal_t* state,
7399     const unsigned char* p,
7400     const unsigned char* endp) {
7401   return (state->flags & 544) == 544;
7402 }
7403 
llhttp__internal__c_test_flags_2(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)7404 int llhttp__internal__c_test_flags_2(
7405     llhttp__internal_t* state,
7406     const unsigned char* p,
7407     const unsigned char* endp) {
7408   return (state->flags & 256) == 256;
7409 }
7410 
llhttp__internal__c_test_flags_3(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)7411 int llhttp__internal__c_test_flags_3(
7412     llhttp__internal_t* state,
7413     const unsigned char* p,
7414     const unsigned char* endp) {
7415   return (state->flags & 40) == 40;
7416 }
7417 
7418 int llhttp__before_headers_complete(
7419     llhttp__internal_t* s, const unsigned char* p,
7420     const unsigned char* endp);
7421 
7422 int llhttp__on_headers_complete(
7423     llhttp__internal_t* s, const unsigned char* p,
7424     const unsigned char* endp);
7425 
7426 int llhttp__after_headers_complete(
7427     llhttp__internal_t* s, const unsigned char* p,
7428     const unsigned char* endp);
7429 
llhttp__internal__c_update_content_length(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)7430 int llhttp__internal__c_update_content_length(
7431     llhttp__internal_t* state,
7432     const unsigned char* p,
7433     const unsigned char* endp) {
7434   state->content_length = 0;
7435   return 0;
7436 }
7437 
llhttp__internal__c_mul_add_content_length(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp,int match)7438 int llhttp__internal__c_mul_add_content_length(
7439     llhttp__internal_t* state,
7440     const unsigned char* p,
7441     const unsigned char* endp,
7442     int match) {
7443   /* Multiplication overflow */
7444   if (state->content_length > 0xffffffffffffffffULL / 16) {
7445     return 1;
7446   }
7447 
7448   state->content_length *= 16;
7449 
7450   /* Addition overflow */
7451   if (match >= 0) {
7452     if (state->content_length > 0xffffffffffffffffULL - match) {
7453       return 1;
7454     }
7455   } else {
7456     if (state->content_length < 0ULL - match) {
7457       return 1;
7458     }
7459   }
7460   state->content_length += match;
7461   return 0;
7462 }
7463 
7464 int llhttp__on_chunk_header(
7465     llhttp__internal_t* s, const unsigned char* p,
7466     const unsigned char* endp);
7467 
llhttp__internal__c_is_equal_content_length(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)7468 int llhttp__internal__c_is_equal_content_length(
7469     llhttp__internal_t* state,
7470     const unsigned char* p,
7471     const unsigned char* endp) {
7472   return state->content_length == 0;
7473 }
7474 
llhttp__internal__c_or_flags(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)7475 int llhttp__internal__c_or_flags(
7476     llhttp__internal_t* state,
7477     const unsigned char* p,
7478     const unsigned char* endp) {
7479   state->flags |= 128;
7480   return 0;
7481 }
7482 
llhttp__internal__c_update_finish_2(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)7483 int llhttp__internal__c_update_finish_2(
7484     llhttp__internal_t* state,
7485     const unsigned char* p,
7486     const unsigned char* endp) {
7487   state->finish = 1;
7488   return 0;
7489 }
7490 
llhttp__internal__c_or_flags_1(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)7491 int llhttp__internal__c_or_flags_1(
7492     llhttp__internal_t* state,
7493     const unsigned char* p,
7494     const unsigned char* endp) {
7495   state->flags |= 64;
7496   return 0;
7497 }
7498 
llhttp__internal__c_update_upgrade(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)7499 int llhttp__internal__c_update_upgrade(
7500     llhttp__internal_t* state,
7501     const unsigned char* p,
7502     const unsigned char* endp) {
7503   state->upgrade = 1;
7504   return 0;
7505 }
7506 
llhttp__internal__c_store_header_state(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp,int match)7507 int llhttp__internal__c_store_header_state(
7508     llhttp__internal_t* state,
7509     const unsigned char* p,
7510     const unsigned char* endp,
7511     int match) {
7512   state->header_state = match;
7513   return 0;
7514 }
7515 
llhttp__internal__c_load_header_state(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)7516 int llhttp__internal__c_load_header_state(
7517     llhttp__internal_t* state,
7518     const unsigned char* p,
7519     const unsigned char* endp) {
7520   return state->header_state;
7521 }
7522 
llhttp__internal__c_or_flags_3(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)7523 int llhttp__internal__c_or_flags_3(
7524     llhttp__internal_t* state,
7525     const unsigned char* p,
7526     const unsigned char* endp) {
7527   state->flags |= 1;
7528   return 0;
7529 }
7530 
llhttp__internal__c_update_header_state(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)7531 int llhttp__internal__c_update_header_state(
7532     llhttp__internal_t* state,
7533     const unsigned char* p,
7534     const unsigned char* endp) {
7535   state->header_state = 1;
7536   return 0;
7537 }
7538 
llhttp__internal__c_or_flags_4(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)7539 int llhttp__internal__c_or_flags_4(
7540     llhttp__internal_t* state,
7541     const unsigned char* p,
7542     const unsigned char* endp) {
7543   state->flags |= 2;
7544   return 0;
7545 }
7546 
llhttp__internal__c_or_flags_5(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)7547 int llhttp__internal__c_or_flags_5(
7548     llhttp__internal_t* state,
7549     const unsigned char* p,
7550     const unsigned char* endp) {
7551   state->flags |= 4;
7552   return 0;
7553 }
7554 
llhttp__internal__c_or_flags_6(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)7555 int llhttp__internal__c_or_flags_6(
7556     llhttp__internal_t* state,
7557     const unsigned char* p,
7558     const unsigned char* endp) {
7559   state->flags |= 8;
7560   return 0;
7561 }
7562 
llhttp__internal__c_update_header_state_2(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)7563 int llhttp__internal__c_update_header_state_2(
7564     llhttp__internal_t* state,
7565     const unsigned char* p,
7566     const unsigned char* endp) {
7567   state->header_state = 6;
7568   return 0;
7569 }
7570 
llhttp__internal__c_update_header_state_4(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)7571 int llhttp__internal__c_update_header_state_4(
7572     llhttp__internal_t* state,
7573     const unsigned char* p,
7574     const unsigned char* endp) {
7575   state->header_state = 0;
7576   return 0;
7577 }
7578 
llhttp__internal__c_update_header_state_5(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)7579 int llhttp__internal__c_update_header_state_5(
7580     llhttp__internal_t* state,
7581     const unsigned char* p,
7582     const unsigned char* endp) {
7583   state->header_state = 5;
7584   return 0;
7585 }
7586 
llhttp__internal__c_update_header_state_6(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)7587 int llhttp__internal__c_update_header_state_6(
7588     llhttp__internal_t* state,
7589     const unsigned char* p,
7590     const unsigned char* endp) {
7591   state->header_state = 7;
7592   return 0;
7593 }
7594 
llhttp__internal__c_test_flags_5(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)7595 int llhttp__internal__c_test_flags_5(
7596     llhttp__internal_t* state,
7597     const unsigned char* p,
7598     const unsigned char* endp) {
7599   return (state->flags & 32) == 32;
7600 }
7601 
llhttp__internal__c_mul_add_content_length_1(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp,int match)7602 int llhttp__internal__c_mul_add_content_length_1(
7603     llhttp__internal_t* state,
7604     const unsigned char* p,
7605     const unsigned char* endp,
7606     int match) {
7607   /* Multiplication overflow */
7608   if (state->content_length > 0xffffffffffffffffULL / 10) {
7609     return 1;
7610   }
7611 
7612   state->content_length *= 10;
7613 
7614   /* Addition overflow */
7615   if (match >= 0) {
7616     if (state->content_length > 0xffffffffffffffffULL - match) {
7617       return 1;
7618     }
7619   } else {
7620     if (state->content_length < 0ULL - match) {
7621       return 1;
7622     }
7623   }
7624   state->content_length += match;
7625   return 0;
7626 }
7627 
llhttp__internal__c_or_flags_15(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)7628 int llhttp__internal__c_or_flags_15(
7629     llhttp__internal_t* state,
7630     const unsigned char* p,
7631     const unsigned char* endp) {
7632   state->flags |= 32;
7633   return 0;
7634 }
7635 
llhttp__internal__c_or_flags_16(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)7636 int llhttp__internal__c_or_flags_16(
7637     llhttp__internal_t* state,
7638     const unsigned char* p,
7639     const unsigned char* endp) {
7640   state->flags |= 512;
7641   return 0;
7642 }
7643 
llhttp__internal__c_and_flags(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)7644 int llhttp__internal__c_and_flags(
7645     llhttp__internal_t* state,
7646     const unsigned char* p,
7647     const unsigned char* endp) {
7648   state->flags &= -9;
7649   return 0;
7650 }
7651 
llhttp__internal__c_update_header_state_7(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)7652 int llhttp__internal__c_update_header_state_7(
7653     llhttp__internal_t* state,
7654     const unsigned char* p,
7655     const unsigned char* endp) {
7656   state->header_state = 8;
7657   return 0;
7658 }
7659 
llhttp__internal__c_or_flags_17(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)7660 int llhttp__internal__c_or_flags_17(
7661     llhttp__internal_t* state,
7662     const unsigned char* p,
7663     const unsigned char* endp) {
7664   state->flags |= 16;
7665   return 0;
7666 }
7667 
llhttp__internal__c_store_http_major(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp,int match)7668 int llhttp__internal__c_store_http_major(
7669     llhttp__internal_t* state,
7670     const unsigned char* p,
7671     const unsigned char* endp,
7672     int match) {
7673   state->http_major = match;
7674   return 0;
7675 }
7676 
llhttp__internal__c_store_http_minor(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp,int match)7677 int llhttp__internal__c_store_http_minor(
7678     llhttp__internal_t* state,
7679     const unsigned char* p,
7680     const unsigned char* endp,
7681     int match) {
7682   state->http_minor = match;
7683   return 0;
7684 }
7685 
llhttp__internal__c_is_equal_method_1(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)7686 int llhttp__internal__c_is_equal_method_1(
7687     llhttp__internal_t* state,
7688     const unsigned char* p,
7689     const unsigned char* endp) {
7690   return state->method == 33;
7691 }
7692 
llhttp__internal__c_update_status_code(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)7693 int llhttp__internal__c_update_status_code(
7694     llhttp__internal_t* state,
7695     const unsigned char* p,
7696     const unsigned char* endp) {
7697   state->status_code = 0;
7698   return 0;
7699 }
7700 
llhttp__internal__c_mul_add_status_code(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp,int match)7701 int llhttp__internal__c_mul_add_status_code(
7702     llhttp__internal_t* state,
7703     const unsigned char* p,
7704     const unsigned char* endp,
7705     int match) {
7706   /* Multiplication overflow */
7707   if (state->status_code > 0xffff / 10) {
7708     return 1;
7709   }
7710 
7711   state->status_code *= 10;
7712 
7713   /* Addition overflow */
7714   if (match >= 0) {
7715     if (state->status_code > 0xffff - match) {
7716       return 1;
7717     }
7718   } else {
7719     if (state->status_code < 0 - match) {
7720       return 1;
7721     }
7722   }
7723   state->status_code += match;
7724 
7725   /* Enforce maximum */
7726   if (state->status_code > 999) {
7727     return 1;
7728   }
7729   return 0;
7730 }
7731 
llhttp__internal__c_update_type(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)7732 int llhttp__internal__c_update_type(
7733     llhttp__internal_t* state,
7734     const unsigned char* p,
7735     const unsigned char* endp) {
7736   state->type = 1;
7737   return 0;
7738 }
7739 
llhttp__internal__c_update_type_1(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)7740 int llhttp__internal__c_update_type_1(
7741     llhttp__internal_t* state,
7742     const unsigned char* p,
7743     const unsigned char* endp) {
7744   state->type = 2;
7745   return 0;
7746 }
7747 
llhttp__internal_init(llhttp__internal_t * state)7748 int llhttp__internal_init(llhttp__internal_t* state) {
7749   memset(state, 0, sizeof(*state));
7750   state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_start;
7751   return 0;
7752 }
7753 
llhttp__internal__run(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)7754 static llparse_state_t llhttp__internal__run(
7755     llhttp__internal_t* state,
7756     const unsigned char* p,
7757     const unsigned char* endp) {
7758   int match;
7759   switch ((llparse_state_t) (intptr_t) state->_current) {
7760     case s_n_llhttp__internal__n_invoke_llhttp__after_message_complete:
7761     s_n_llhttp__internal__n_invoke_llhttp__after_message_complete: {
7762       switch (llhttp__after_message_complete(state, p, endp)) {
7763         default:
7764           goto s_n_llhttp__internal__n_invoke_update_finish_1;
7765       }
7766       /* UNREACHABLE */;
7767       abort();
7768     }
7769     case s_n_llhttp__internal__n_pause_1:
7770     s_n_llhttp__internal__n_pause_1: {
7771       state->error = 0x16;
7772       state->reason = "Pause on CONNECT/Upgrade";
7773       state->error_pos = (const char*) p;
7774       state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_llhttp__after_message_complete;
7775       return s_error;
7776       /* UNREACHABLE */;
7777       abort();
7778     }
7779     case s_n_llhttp__internal__n_invoke_is_equal_upgrade:
7780     s_n_llhttp__internal__n_invoke_is_equal_upgrade: {
7781       switch (llhttp__internal__c_is_equal_upgrade(state, p, endp)) {
7782         case 0:
7783           goto s_n_llhttp__internal__n_invoke_llhttp__after_message_complete;
7784         default:
7785           goto s_n_llhttp__internal__n_pause_1;
7786       }
7787       /* UNREACHABLE */;
7788       abort();
7789     }
7790     case s_n_llhttp__internal__n_invoke_llhttp__on_message_complete_2:
7791     s_n_llhttp__internal__n_invoke_llhttp__on_message_complete_2: {
7792       switch (llhttp__on_message_complete(state, p, endp)) {
7793         case 0:
7794           goto s_n_llhttp__internal__n_invoke_is_equal_upgrade;
7795         case 21:
7796           goto s_n_llhttp__internal__n_pause_5;
7797         default:
7798           goto s_n_llhttp__internal__n_error_9;
7799       }
7800       /* UNREACHABLE */;
7801       abort();
7802     }
7803     case s_n_llhttp__internal__n_chunk_data_almost_done_skip:
7804     s_n_llhttp__internal__n_chunk_data_almost_done_skip: {
7805       if (p == endp) {
7806         return s_n_llhttp__internal__n_chunk_data_almost_done_skip;
7807       }
7808       p++;
7809       goto s_n_llhttp__internal__n_invoke_llhttp__on_chunk_complete;
7810       /* UNREACHABLE */;
7811       abort();
7812     }
7813     case s_n_llhttp__internal__n_chunk_data_almost_done:
7814     s_n_llhttp__internal__n_chunk_data_almost_done: {
7815       if (p == endp) {
7816         return s_n_llhttp__internal__n_chunk_data_almost_done;
7817       }
7818       p++;
7819       goto s_n_llhttp__internal__n_chunk_data_almost_done_skip;
7820       /* UNREACHABLE */;
7821       abort();
7822     }
7823     case s_n_llhttp__internal__n_consume_content_length:
7824     s_n_llhttp__internal__n_consume_content_length: {
7825       size_t avail;
7826       size_t need;
7827 
7828       avail = endp - p;
7829       need = state->content_length;
7830       if (avail >= need) {
7831         p += need;
7832         state->content_length = 0;
7833         goto s_n_llhttp__internal__n_span_end_llhttp__on_body;
7834       }
7835 
7836       state->content_length -= avail;
7837       return s_n_llhttp__internal__n_consume_content_length;
7838       /* UNREACHABLE */;
7839       abort();
7840     }
7841     case s_n_llhttp__internal__n_span_start_llhttp__on_body:
7842     s_n_llhttp__internal__n_span_start_llhttp__on_body: {
7843       if (p == endp) {
7844         return s_n_llhttp__internal__n_span_start_llhttp__on_body;
7845       }
7846       state->_span_pos0 = (void*) p;
7847       state->_span_cb0 = llhttp__on_body;
7848       goto s_n_llhttp__internal__n_consume_content_length;
7849       /* UNREACHABLE */;
7850       abort();
7851     }
7852     case s_n_llhttp__internal__n_invoke_is_equal_content_length:
7853     s_n_llhttp__internal__n_invoke_is_equal_content_length: {
7854       switch (llhttp__internal__c_is_equal_content_length(state, p, endp)) {
7855         case 0:
7856           goto s_n_llhttp__internal__n_span_start_llhttp__on_body;
7857         default:
7858           goto s_n_llhttp__internal__n_invoke_or_flags;
7859       }
7860       /* UNREACHABLE */;
7861       abort();
7862     }
7863     case s_n_llhttp__internal__n_chunk_size_almost_done:
7864     s_n_llhttp__internal__n_chunk_size_almost_done: {
7865       if (p == endp) {
7866         return s_n_llhttp__internal__n_chunk_size_almost_done;
7867       }
7868       p++;
7869       goto s_n_llhttp__internal__n_invoke_llhttp__on_chunk_header;
7870       /* UNREACHABLE */;
7871       abort();
7872     }
7873     case s_n_llhttp__internal__n_chunk_parameters:
7874     s_n_llhttp__internal__n_chunk_parameters: {
7875       if (p == endp) {
7876         return s_n_llhttp__internal__n_chunk_parameters;
7877       }
7878       switch (*p) {
7879         case 13: {
7880           p++;
7881           goto s_n_llhttp__internal__n_chunk_size_almost_done;
7882         }
7883         default: {
7884           p++;
7885           goto s_n_llhttp__internal__n_chunk_parameters;
7886         }
7887       }
7888       /* UNREACHABLE */;
7889       abort();
7890     }
7891     case s_n_llhttp__internal__n_chunk_size_otherwise:
7892     s_n_llhttp__internal__n_chunk_size_otherwise: {
7893       if (p == endp) {
7894         return s_n_llhttp__internal__n_chunk_size_otherwise;
7895       }
7896       switch (*p) {
7897         case 13: {
7898           p++;
7899           goto s_n_llhttp__internal__n_chunk_size_almost_done;
7900         }
7901         case ' ': {
7902           p++;
7903           goto s_n_llhttp__internal__n_chunk_parameters;
7904         }
7905         case ';': {
7906           p++;
7907           goto s_n_llhttp__internal__n_chunk_parameters;
7908         }
7909         default: {
7910           goto s_n_llhttp__internal__n_error_6;
7911         }
7912       }
7913       /* UNREACHABLE */;
7914       abort();
7915     }
7916     case s_n_llhttp__internal__n_chunk_size:
7917     s_n_llhttp__internal__n_chunk_size: {
7918       if (p == endp) {
7919         return s_n_llhttp__internal__n_chunk_size;
7920       }
7921       switch (*p) {
7922         case '0': {
7923           p++;
7924           match = 0;
7925           goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
7926         }
7927         case '1': {
7928           p++;
7929           match = 1;
7930           goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
7931         }
7932         case '2': {
7933           p++;
7934           match = 2;
7935           goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
7936         }
7937         case '3': {
7938           p++;
7939           match = 3;
7940           goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
7941         }
7942         case '4': {
7943           p++;
7944           match = 4;
7945           goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
7946         }
7947         case '5': {
7948           p++;
7949           match = 5;
7950           goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
7951         }
7952         case '6': {
7953           p++;
7954           match = 6;
7955           goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
7956         }
7957         case '7': {
7958           p++;
7959           match = 7;
7960           goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
7961         }
7962         case '8': {
7963           p++;
7964           match = 8;
7965           goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
7966         }
7967         case '9': {
7968           p++;
7969           match = 9;
7970           goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
7971         }
7972         case 'A': {
7973           p++;
7974           match = 10;
7975           goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
7976         }
7977         case 'B': {
7978           p++;
7979           match = 11;
7980           goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
7981         }
7982         case 'C': {
7983           p++;
7984           match = 12;
7985           goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
7986         }
7987         case 'D': {
7988           p++;
7989           match = 13;
7990           goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
7991         }
7992         case 'E': {
7993           p++;
7994           match = 14;
7995           goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
7996         }
7997         case 'F': {
7998           p++;
7999           match = 15;
8000           goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
8001         }
8002         case 'a': {
8003           p++;
8004           match = 10;
8005           goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
8006         }
8007         case 'b': {
8008           p++;
8009           match = 11;
8010           goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
8011         }
8012         case 'c': {
8013           p++;
8014           match = 12;
8015           goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
8016         }
8017         case 'd': {
8018           p++;
8019           match = 13;
8020           goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
8021         }
8022         case 'e': {
8023           p++;
8024           match = 14;
8025           goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
8026         }
8027         case 'f': {
8028           p++;
8029           match = 15;
8030           goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
8031         }
8032         default: {
8033           goto s_n_llhttp__internal__n_chunk_size_otherwise;
8034         }
8035       }
8036       /* UNREACHABLE */;
8037       abort();
8038     }
8039     case s_n_llhttp__internal__n_chunk_size_digit:
8040     s_n_llhttp__internal__n_chunk_size_digit: {
8041       if (p == endp) {
8042         return s_n_llhttp__internal__n_chunk_size_digit;
8043       }
8044       switch (*p) {
8045         case '0': {
8046           p++;
8047           match = 0;
8048           goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
8049         }
8050         case '1': {
8051           p++;
8052           match = 1;
8053           goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
8054         }
8055         case '2': {
8056           p++;
8057           match = 2;
8058           goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
8059         }
8060         case '3': {
8061           p++;
8062           match = 3;
8063           goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
8064         }
8065         case '4': {
8066           p++;
8067           match = 4;
8068           goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
8069         }
8070         case '5': {
8071           p++;
8072           match = 5;
8073           goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
8074         }
8075         case '6': {
8076           p++;
8077           match = 6;
8078           goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
8079         }
8080         case '7': {
8081           p++;
8082           match = 7;
8083           goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
8084         }
8085         case '8': {
8086           p++;
8087           match = 8;
8088           goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
8089         }
8090         case '9': {
8091           p++;
8092           match = 9;
8093           goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
8094         }
8095         case 'A': {
8096           p++;
8097           match = 10;
8098           goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
8099         }
8100         case 'B': {
8101           p++;
8102           match = 11;
8103           goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
8104         }
8105         case 'C': {
8106           p++;
8107           match = 12;
8108           goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
8109         }
8110         case 'D': {
8111           p++;
8112           match = 13;
8113           goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
8114         }
8115         case 'E': {
8116           p++;
8117           match = 14;
8118           goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
8119         }
8120         case 'F': {
8121           p++;
8122           match = 15;
8123           goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
8124         }
8125         case 'a': {
8126           p++;
8127           match = 10;
8128           goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
8129         }
8130         case 'b': {
8131           p++;
8132           match = 11;
8133           goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
8134         }
8135         case 'c': {
8136           p++;
8137           match = 12;
8138           goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
8139         }
8140         case 'd': {
8141           p++;
8142           match = 13;
8143           goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
8144         }
8145         case 'e': {
8146           p++;
8147           match = 14;
8148           goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
8149         }
8150         case 'f': {
8151           p++;
8152           match = 15;
8153           goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
8154         }
8155         default: {
8156           goto s_n_llhttp__internal__n_error_8;
8157         }
8158       }
8159       /* UNREACHABLE */;
8160       abort();
8161     }
8162     case s_n_llhttp__internal__n_invoke_update_content_length:
8163     s_n_llhttp__internal__n_invoke_update_content_length: {
8164       switch (llhttp__internal__c_update_content_length(state, p, endp)) {
8165         default:
8166           goto s_n_llhttp__internal__n_chunk_size_digit;
8167       }
8168       /* UNREACHABLE */;
8169       abort();
8170     }
8171     case s_n_llhttp__internal__n_consume_content_length_1:
8172     s_n_llhttp__internal__n_consume_content_length_1: {
8173       size_t avail;
8174       size_t need;
8175 
8176       avail = endp - p;
8177       need = state->content_length;
8178       if (avail >= need) {
8179         p += need;
8180         state->content_length = 0;
8181         goto s_n_llhttp__internal__n_span_end_llhttp__on_body_1;
8182       }
8183 
8184       state->content_length -= avail;
8185       return s_n_llhttp__internal__n_consume_content_length_1;
8186       /* UNREACHABLE */;
8187       abort();
8188     }
8189     case s_n_llhttp__internal__n_span_start_llhttp__on_body_1:
8190     s_n_llhttp__internal__n_span_start_llhttp__on_body_1: {
8191       if (p == endp) {
8192         return s_n_llhttp__internal__n_span_start_llhttp__on_body_1;
8193       }
8194       state->_span_pos0 = (void*) p;
8195       state->_span_cb0 = llhttp__on_body;
8196       goto s_n_llhttp__internal__n_consume_content_length_1;
8197       /* UNREACHABLE */;
8198       abort();
8199     }
8200     case s_n_llhttp__internal__n_eof:
8201     s_n_llhttp__internal__n_eof: {
8202       if (p == endp) {
8203         return s_n_llhttp__internal__n_eof;
8204       }
8205       p++;
8206       goto s_n_llhttp__internal__n_eof;
8207       /* UNREACHABLE */;
8208       abort();
8209     }
8210     case s_n_llhttp__internal__n_span_start_llhttp__on_body_2:
8211     s_n_llhttp__internal__n_span_start_llhttp__on_body_2: {
8212       if (p == endp) {
8213         return s_n_llhttp__internal__n_span_start_llhttp__on_body_2;
8214       }
8215       state->_span_pos0 = (void*) p;
8216       state->_span_cb0 = llhttp__on_body;
8217       goto s_n_llhttp__internal__n_eof;
8218       /* UNREACHABLE */;
8219       abort();
8220     }
8221     case s_n_llhttp__internal__n_invoke_llhttp__after_headers_complete:
8222     s_n_llhttp__internal__n_invoke_llhttp__after_headers_complete: {
8223       switch (llhttp__after_headers_complete(state, p, endp)) {
8224         case 1:
8225           goto s_n_llhttp__internal__n_invoke_llhttp__on_message_complete_1;
8226         case 2:
8227           goto s_n_llhttp__internal__n_invoke_update_content_length;
8228         case 3:
8229           goto s_n_llhttp__internal__n_span_start_llhttp__on_body_1;
8230         case 4:
8231           goto s_n_llhttp__internal__n_invoke_update_finish_2;
8232         case 5:
8233           goto s_n_llhttp__internal__n_error_10;
8234         default:
8235           goto s_n_llhttp__internal__n_invoke_llhttp__on_message_complete;
8236       }
8237       /* UNREACHABLE */;
8238       abort();
8239     }
8240     case s_n_llhttp__internal__n_headers_almost_done:
8241     s_n_llhttp__internal__n_headers_almost_done: {
8242       if (p == endp) {
8243         return s_n_llhttp__internal__n_headers_almost_done;
8244       }
8245       p++;
8246       goto s_n_llhttp__internal__n_invoke_test_flags;
8247       /* UNREACHABLE */;
8248       abort();
8249     }
8250     case s_n_llhttp__internal__n_span_start_llhttp__on_header_value:
8251     s_n_llhttp__internal__n_span_start_llhttp__on_header_value: {
8252       if (p == endp) {
8253         return s_n_llhttp__internal__n_span_start_llhttp__on_header_value;
8254       }
8255       state->_span_pos0 = (void*) p;
8256       state->_span_cb0 = llhttp__on_header_value;
8257       goto s_n_llhttp__internal__n_span_end_llhttp__on_header_value;
8258       /* UNREACHABLE */;
8259       abort();
8260     }
8261     case s_n_llhttp__internal__n_header_value_discard_lws:
8262     s_n_llhttp__internal__n_header_value_discard_lws: {
8263       if (p == endp) {
8264         return s_n_llhttp__internal__n_header_value_discard_lws;
8265       }
8266       switch (*p) {
8267         case 9: {
8268           p++;
8269           goto s_n_llhttp__internal__n_header_value_discard_ws;
8270         }
8271         case ' ': {
8272           p++;
8273           goto s_n_llhttp__internal__n_header_value_discard_ws;
8274         }
8275         default: {
8276           goto s_n_llhttp__internal__n_invoke_load_header_state;
8277         }
8278       }
8279       /* UNREACHABLE */;
8280       abort();
8281     }
8282     case s_n_llhttp__internal__n_header_value_discard_ws_almost_done:
8283     s_n_llhttp__internal__n_header_value_discard_ws_almost_done: {
8284       if (p == endp) {
8285         return s_n_llhttp__internal__n_header_value_discard_ws_almost_done;
8286       }
8287       p++;
8288       goto s_n_llhttp__internal__n_header_value_discard_lws;
8289       /* UNREACHABLE */;
8290       abort();
8291     }
8292     case s_n_llhttp__internal__n_header_value_lws:
8293     s_n_llhttp__internal__n_header_value_lws: {
8294       if (p == endp) {
8295         return s_n_llhttp__internal__n_header_value_lws;
8296       }
8297       switch (*p) {
8298         case 9: {
8299           goto s_n_llhttp__internal__n_span_start_llhttp__on_header_value_1;
8300         }
8301         case ' ': {
8302           goto s_n_llhttp__internal__n_span_start_llhttp__on_header_value_1;
8303         }
8304         default: {
8305           goto s_n_llhttp__internal__n_invoke_load_header_state_3;
8306         }
8307       }
8308       /* UNREACHABLE */;
8309       abort();
8310     }
8311     case s_n_llhttp__internal__n_header_value_almost_done:
8312     s_n_llhttp__internal__n_header_value_almost_done: {
8313       if (p == endp) {
8314         return s_n_llhttp__internal__n_header_value_almost_done;
8315       }
8316       switch (*p) {
8317         case 10: {
8318           p++;
8319           goto s_n_llhttp__internal__n_header_value_lws;
8320         }
8321         default: {
8322           goto s_n_llhttp__internal__n_error_15;
8323         }
8324       }
8325       /* UNREACHABLE */;
8326       abort();
8327     }
8328     case s_n_llhttp__internal__n_header_value_lenient:
8329     s_n_llhttp__internal__n_header_value_lenient: {
8330       if (p == endp) {
8331         return s_n_llhttp__internal__n_header_value_lenient;
8332       }
8333       switch (*p) {
8334         case 10: {
8335           goto s_n_llhttp__internal__n_span_end_llhttp__on_header_value_1;
8336         }
8337         case 13: {
8338           goto s_n_llhttp__internal__n_span_end_llhttp__on_header_value_3;
8339         }
8340         default: {
8341           p++;
8342           goto s_n_llhttp__internal__n_header_value_lenient;
8343         }
8344       }
8345       /* UNREACHABLE */;
8346       abort();
8347     }
8348     case s_n_llhttp__internal__n_header_value_otherwise:
8349     s_n_llhttp__internal__n_header_value_otherwise: {
8350       if (p == endp) {
8351         return s_n_llhttp__internal__n_header_value_otherwise;
8352       }
8353       switch (*p) {
8354         case 10: {
8355           goto s_n_llhttp__internal__n_span_end_llhttp__on_header_value_1;
8356         }
8357         case 13: {
8358           goto s_n_llhttp__internal__n_span_end_llhttp__on_header_value_2;
8359         }
8360         default: {
8361           goto s_n_llhttp__internal__n_invoke_test_flags_4;
8362         }
8363       }
8364       /* UNREACHABLE */;
8365       abort();
8366     }
8367     case s_n_llhttp__internal__n_header_value_connection_token:
8368     s_n_llhttp__internal__n_header_value_connection_token: {
8369       static uint8_t lookup_table[] = {
8370         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
8371         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
8372         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1,
8373         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
8374         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
8375         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
8376         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
8377         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
8378         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
8379         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
8380         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
8381         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
8382         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
8383         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
8384         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
8385         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
8386       };
8387       if (p == endp) {
8388         return s_n_llhttp__internal__n_header_value_connection_token;
8389       }
8390       switch (lookup_table[(uint8_t) *p]) {
8391         case 1: {
8392           p++;
8393           goto s_n_llhttp__internal__n_header_value_connection_token;
8394         }
8395         case 2: {
8396           p++;
8397           goto s_n_llhttp__internal__n_header_value_connection;
8398         }
8399         default: {
8400           goto s_n_llhttp__internal__n_header_value_otherwise;
8401         }
8402       }
8403       /* UNREACHABLE */;
8404       abort();
8405     }
8406     case s_n_llhttp__internal__n_header_value_connection_ws:
8407     s_n_llhttp__internal__n_header_value_connection_ws: {
8408       if (p == endp) {
8409         return s_n_llhttp__internal__n_header_value_connection_ws;
8410       }
8411       switch (*p) {
8412         case 10: {
8413           goto s_n_llhttp__internal__n_header_value_otherwise;
8414         }
8415         case 13: {
8416           goto s_n_llhttp__internal__n_header_value_otherwise;
8417         }
8418         case ' ': {
8419           p++;
8420           goto s_n_llhttp__internal__n_header_value_connection_ws;
8421         }
8422         case ',': {
8423           p++;
8424           goto s_n_llhttp__internal__n_invoke_load_header_state_4;
8425         }
8426         default: {
8427           goto s_n_llhttp__internal__n_invoke_update_header_state_4;
8428         }
8429       }
8430       /* UNREACHABLE */;
8431       abort();
8432     }
8433     case s_n_llhttp__internal__n_header_value_connection_1:
8434     s_n_llhttp__internal__n_header_value_connection_1: {
8435       llparse_match_t match_seq;
8436 
8437       if (p == endp) {
8438         return s_n_llhttp__internal__n_header_value_connection_1;
8439       }
8440       match_seq = llparse__match_sequence_to_lower(state, p, endp, llparse_blob4, 4);
8441       p = match_seq.current;
8442       switch (match_seq.status) {
8443         case kMatchComplete: {
8444           p++;
8445           goto s_n_llhttp__internal__n_invoke_update_header_state_2;
8446         }
8447         case kMatchPause: {
8448           return s_n_llhttp__internal__n_header_value_connection_1;
8449         }
8450         case kMatchMismatch: {
8451           goto s_n_llhttp__internal__n_header_value_connection_token;
8452         }
8453       }
8454       /* UNREACHABLE */;
8455       abort();
8456     }
8457     case s_n_llhttp__internal__n_header_value_connection_2:
8458     s_n_llhttp__internal__n_header_value_connection_2: {
8459       llparse_match_t match_seq;
8460 
8461       if (p == endp) {
8462         return s_n_llhttp__internal__n_header_value_connection_2;
8463       }
8464       match_seq = llparse__match_sequence_to_lower(state, p, endp, llparse_blob5, 9);
8465       p = match_seq.current;
8466       switch (match_seq.status) {
8467         case kMatchComplete: {
8468           p++;
8469           goto s_n_llhttp__internal__n_invoke_update_header_state_5;
8470         }
8471         case kMatchPause: {
8472           return s_n_llhttp__internal__n_header_value_connection_2;
8473         }
8474         case kMatchMismatch: {
8475           goto s_n_llhttp__internal__n_header_value_connection_token;
8476         }
8477       }
8478       /* UNREACHABLE */;
8479       abort();
8480     }
8481     case s_n_llhttp__internal__n_header_value_connection_3:
8482     s_n_llhttp__internal__n_header_value_connection_3: {
8483       llparse_match_t match_seq;
8484 
8485       if (p == endp) {
8486         return s_n_llhttp__internal__n_header_value_connection_3;
8487       }
8488       match_seq = llparse__match_sequence_to_lower(state, p, endp, llparse_blob6, 6);
8489       p = match_seq.current;
8490       switch (match_seq.status) {
8491         case kMatchComplete: {
8492           p++;
8493           goto s_n_llhttp__internal__n_invoke_update_header_state_6;
8494         }
8495         case kMatchPause: {
8496           return s_n_llhttp__internal__n_header_value_connection_3;
8497         }
8498         case kMatchMismatch: {
8499           goto s_n_llhttp__internal__n_header_value_connection_token;
8500         }
8501       }
8502       /* UNREACHABLE */;
8503       abort();
8504     }
8505     case s_n_llhttp__internal__n_header_value_connection:
8506     s_n_llhttp__internal__n_header_value_connection: {
8507       if (p == endp) {
8508         return s_n_llhttp__internal__n_header_value_connection;
8509       }
8510       switch (((*p) >= 'A' && (*p) <= 'Z' ? (*p | 0x20) : (*p))) {
8511         case 9: {
8512           p++;
8513           goto s_n_llhttp__internal__n_header_value_connection;
8514         }
8515         case ' ': {
8516           p++;
8517           goto s_n_llhttp__internal__n_header_value_connection;
8518         }
8519         case 'c': {
8520           p++;
8521           goto s_n_llhttp__internal__n_header_value_connection_1;
8522         }
8523         case 'k': {
8524           p++;
8525           goto s_n_llhttp__internal__n_header_value_connection_2;
8526         }
8527         case 'u': {
8528           p++;
8529           goto s_n_llhttp__internal__n_header_value_connection_3;
8530         }
8531         default: {
8532           goto s_n_llhttp__internal__n_header_value_connection_token;
8533         }
8534       }
8535       /* UNREACHABLE */;
8536       abort();
8537     }
8538     case s_n_llhttp__internal__n_error_18:
8539     s_n_llhttp__internal__n_error_18: {
8540       state->error = 0xb;
8541       state->reason = "Content-Length overflow";
8542       state->error_pos = (const char*) p;
8543       state->_current = (void*) (intptr_t) s_error;
8544       return s_error;
8545       /* UNREACHABLE */;
8546       abort();
8547     }
8548     case s_n_llhttp__internal__n_error_19:
8549     s_n_llhttp__internal__n_error_19: {
8550       state->error = 0xb;
8551       state->reason = "Invalid character in Content-Length";
8552       state->error_pos = (const char*) p;
8553       state->_current = (void*) (intptr_t) s_error;
8554       return s_error;
8555       /* UNREACHABLE */;
8556       abort();
8557     }
8558     case s_n_llhttp__internal__n_header_value_content_length_ws:
8559     s_n_llhttp__internal__n_header_value_content_length_ws: {
8560       if (p == endp) {
8561         return s_n_llhttp__internal__n_header_value_content_length_ws;
8562       }
8563       switch (*p) {
8564         case 10: {
8565           goto s_n_llhttp__internal__n_invoke_or_flags_15;
8566         }
8567         case 13: {
8568           goto s_n_llhttp__internal__n_invoke_or_flags_15;
8569         }
8570         case ' ': {
8571           p++;
8572           goto s_n_llhttp__internal__n_header_value_content_length_ws;
8573         }
8574         default: {
8575           goto s_n_llhttp__internal__n_span_end_llhttp__on_header_value_5;
8576         }
8577       }
8578       /* UNREACHABLE */;
8579       abort();
8580     }
8581     case s_n_llhttp__internal__n_header_value_content_length:
8582     s_n_llhttp__internal__n_header_value_content_length: {
8583       if (p == endp) {
8584         return s_n_llhttp__internal__n_header_value_content_length;
8585       }
8586       switch (*p) {
8587         case '0': {
8588           p++;
8589           match = 0;
8590           goto s_n_llhttp__internal__n_invoke_mul_add_content_length_1;
8591         }
8592         case '1': {
8593           p++;
8594           match = 1;
8595           goto s_n_llhttp__internal__n_invoke_mul_add_content_length_1;
8596         }
8597         case '2': {
8598           p++;
8599           match = 2;
8600           goto s_n_llhttp__internal__n_invoke_mul_add_content_length_1;
8601         }
8602         case '3': {
8603           p++;
8604           match = 3;
8605           goto s_n_llhttp__internal__n_invoke_mul_add_content_length_1;
8606         }
8607         case '4': {
8608           p++;
8609           match = 4;
8610           goto s_n_llhttp__internal__n_invoke_mul_add_content_length_1;
8611         }
8612         case '5': {
8613           p++;
8614           match = 5;
8615           goto s_n_llhttp__internal__n_invoke_mul_add_content_length_1;
8616         }
8617         case '6': {
8618           p++;
8619           match = 6;
8620           goto s_n_llhttp__internal__n_invoke_mul_add_content_length_1;
8621         }
8622         case '7': {
8623           p++;
8624           match = 7;
8625           goto s_n_llhttp__internal__n_invoke_mul_add_content_length_1;
8626         }
8627         case '8': {
8628           p++;
8629           match = 8;
8630           goto s_n_llhttp__internal__n_invoke_mul_add_content_length_1;
8631         }
8632         case '9': {
8633           p++;
8634           match = 9;
8635           goto s_n_llhttp__internal__n_invoke_mul_add_content_length_1;
8636         }
8637         default: {
8638           goto s_n_llhttp__internal__n_header_value_content_length_ws;
8639         }
8640       }
8641       /* UNREACHABLE */;
8642       abort();
8643     }
8644     case s_n_llhttp__internal__n_header_value_te_chunked_last:
8645     s_n_llhttp__internal__n_header_value_te_chunked_last: {
8646       if (p == endp) {
8647         return s_n_llhttp__internal__n_header_value_te_chunked_last;
8648       }
8649       switch (*p) {
8650         case 10: {
8651           goto s_n_llhttp__internal__n_invoke_update_header_state_7;
8652         }
8653         case 13: {
8654           goto s_n_llhttp__internal__n_invoke_update_header_state_7;
8655         }
8656         case ' ': {
8657           p++;
8658           goto s_n_llhttp__internal__n_header_value_te_chunked_last;
8659         }
8660         default: {
8661           goto s_n_llhttp__internal__n_header_value_te_chunked;
8662         }
8663       }
8664       /* UNREACHABLE */;
8665       abort();
8666     }
8667     case s_n_llhttp__internal__n_header_value_te_token_ows:
8668     s_n_llhttp__internal__n_header_value_te_token_ows: {
8669       if (p == endp) {
8670         return s_n_llhttp__internal__n_header_value_te_token_ows;
8671       }
8672       switch (*p) {
8673         case 9: {
8674           p++;
8675           goto s_n_llhttp__internal__n_header_value_te_token_ows;
8676         }
8677         case ' ': {
8678           p++;
8679           goto s_n_llhttp__internal__n_header_value_te_token_ows;
8680         }
8681         default: {
8682           goto s_n_llhttp__internal__n_header_value_te_chunked;
8683         }
8684       }
8685       /* UNREACHABLE */;
8686       abort();
8687     }
8688     case s_n_llhttp__internal__n_header_value:
8689     s_n_llhttp__internal__n_header_value: {
8690       static uint8_t lookup_table[] = {
8691         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
8692         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
8693         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
8694         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
8695         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
8696         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
8697         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
8698         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
8699         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
8700         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
8701         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
8702         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
8703         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
8704         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
8705         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
8706         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
8707       };
8708       if (p == endp) {
8709         return s_n_llhttp__internal__n_header_value;
8710       }
8711       #ifdef __SSE4_2__
8712       if (endp - p >= 16) {
8713         __m128i ranges;
8714         __m128i input;
8715         int avail;
8716         int match_len;
8717 
8718         /* Load input */
8719         input = _mm_loadu_si128((__m128i const*) p);
8720         ranges = _mm_loadu_si128((__m128i const*) llparse_blob8);
8721 
8722         /* Find first character that does not match `ranges` */
8723         match_len = _mm_cmpestri(ranges, 6,
8724             input, 16,
8725             _SIDD_UBYTE_OPS | _SIDD_CMP_RANGES |
8726               _SIDD_NEGATIVE_POLARITY);
8727 
8728         if (match_len != 0) {
8729           p += match_len;
8730           goto s_n_llhttp__internal__n_header_value;
8731         }
8732         goto s_n_llhttp__internal__n_header_value_otherwise;
8733       }
8734       #endif  /* __SSE4_2__ */
8735       switch (lookup_table[(uint8_t) *p]) {
8736         case 1: {
8737           p++;
8738           goto s_n_llhttp__internal__n_header_value;
8739         }
8740         default: {
8741           goto s_n_llhttp__internal__n_header_value_otherwise;
8742         }
8743       }
8744       /* UNREACHABLE */;
8745       abort();
8746     }
8747     case s_n_llhttp__internal__n_header_value_te_token:
8748     s_n_llhttp__internal__n_header_value_te_token: {
8749       static uint8_t lookup_table[] = {
8750         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
8751         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
8752         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1,
8753         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
8754         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
8755         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
8756         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
8757         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
8758         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
8759         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
8760         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
8761         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
8762         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
8763         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
8764         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
8765         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
8766       };
8767       if (p == endp) {
8768         return s_n_llhttp__internal__n_header_value_te_token;
8769       }
8770       switch (lookup_table[(uint8_t) *p]) {
8771         case 1: {
8772           p++;
8773           goto s_n_llhttp__internal__n_header_value_te_token;
8774         }
8775         case 2: {
8776           p++;
8777           goto s_n_llhttp__internal__n_header_value_te_token_ows;
8778         }
8779         default: {
8780           goto s_n_llhttp__internal__n_invoke_update_header_state_8;
8781         }
8782       }
8783       /* UNREACHABLE */;
8784       abort();
8785     }
8786     case s_n_llhttp__internal__n_header_value_te_chunked:
8787     s_n_llhttp__internal__n_header_value_te_chunked: {
8788       llparse_match_t match_seq;
8789 
8790       if (p == endp) {
8791         return s_n_llhttp__internal__n_header_value_te_chunked;
8792       }
8793       match_seq = llparse__match_sequence_to_lower_unsafe(state, p, endp, llparse_blob7, 7);
8794       p = match_seq.current;
8795       switch (match_seq.status) {
8796         case kMatchComplete: {
8797           p++;
8798           goto s_n_llhttp__internal__n_header_value_te_chunked_last;
8799         }
8800         case kMatchPause: {
8801           return s_n_llhttp__internal__n_header_value_te_chunked;
8802         }
8803         case kMatchMismatch: {
8804           goto s_n_llhttp__internal__n_header_value_te_token;
8805         }
8806       }
8807       /* UNREACHABLE */;
8808       abort();
8809     }
8810     case s_n_llhttp__internal__n_span_start_llhttp__on_header_value_1:
8811     s_n_llhttp__internal__n_span_start_llhttp__on_header_value_1: {
8812       if (p == endp) {
8813         return s_n_llhttp__internal__n_span_start_llhttp__on_header_value_1;
8814       }
8815       state->_span_pos0 = (void*) p;
8816       state->_span_cb0 = llhttp__on_header_value;
8817       goto s_n_llhttp__internal__n_invoke_load_header_state_2;
8818       /* UNREACHABLE */;
8819       abort();
8820     }
8821     case s_n_llhttp__internal__n_header_value_discard_ws:
8822     s_n_llhttp__internal__n_header_value_discard_ws: {
8823       if (p == endp) {
8824         return s_n_llhttp__internal__n_header_value_discard_ws;
8825       }
8826       switch (*p) {
8827         case 9: {
8828           p++;
8829           goto s_n_llhttp__internal__n_header_value_discard_ws;
8830         }
8831         case 10: {
8832           p++;
8833           goto s_n_llhttp__internal__n_header_value_discard_lws;
8834         }
8835         case 13: {
8836           p++;
8837           goto s_n_llhttp__internal__n_header_value_discard_ws_almost_done;
8838         }
8839         case ' ': {
8840           p++;
8841           goto s_n_llhttp__internal__n_header_value_discard_ws;
8842         }
8843         default: {
8844           goto s_n_llhttp__internal__n_span_start_llhttp__on_header_value_1;
8845         }
8846       }
8847       /* UNREACHABLE */;
8848       abort();
8849     }
8850     case s_n_llhttp__internal__n_header_field_general_otherwise:
8851     s_n_llhttp__internal__n_header_field_general_otherwise: {
8852       if (p == endp) {
8853         return s_n_llhttp__internal__n_header_field_general_otherwise;
8854       }
8855       switch (*p) {
8856         case ':': {
8857           goto s_n_llhttp__internal__n_span_end_llhttp__on_header_field_1;
8858         }
8859         default: {
8860           goto s_n_llhttp__internal__n_error_20;
8861         }
8862       }
8863       /* UNREACHABLE */;
8864       abort();
8865     }
8866     case s_n_llhttp__internal__n_header_field_general:
8867     s_n_llhttp__internal__n_header_field_general: {
8868       static uint8_t lookup_table[] = {
8869         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
8870         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
8871         1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0,
8872         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,
8873         0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
8874         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1,
8875         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
8876         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0,
8877         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
8878         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
8879         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
8880         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
8881         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
8882         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
8883         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
8884         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
8885       };
8886       if (p == endp) {
8887         return s_n_llhttp__internal__n_header_field_general;
8888       }
8889       #ifdef __SSE4_2__
8890       if (endp - p >= 16) {
8891         __m128i ranges;
8892         __m128i input;
8893         int avail;
8894         int match_len;
8895 
8896         /* Load input */
8897         input = _mm_loadu_si128((__m128i const*) p);
8898         ranges = _mm_loadu_si128((__m128i const*) llparse_blob9);
8899 
8900         /* Find first character that does not match `ranges` */
8901         match_len = _mm_cmpestri(ranges, 16,
8902             input, 16,
8903             _SIDD_UBYTE_OPS | _SIDD_CMP_RANGES |
8904               _SIDD_NEGATIVE_POLARITY);
8905 
8906         if (match_len != 0) {
8907           p += match_len;
8908           goto s_n_llhttp__internal__n_header_field_general;
8909         }
8910         ranges = _mm_loadu_si128((__m128i const*) llparse_blob10);
8911 
8912         /* Find first character that does not match `ranges` */
8913         match_len = _mm_cmpestri(ranges, 2,
8914             input, 16,
8915             _SIDD_UBYTE_OPS | _SIDD_CMP_RANGES |
8916               _SIDD_NEGATIVE_POLARITY);
8917 
8918         if (match_len != 0) {
8919           p += match_len;
8920           goto s_n_llhttp__internal__n_header_field_general;
8921         }
8922         goto s_n_llhttp__internal__n_header_field_general_otherwise;
8923       }
8924       #endif  /* __SSE4_2__ */
8925       switch (lookup_table[(uint8_t) *p]) {
8926         case 1: {
8927           p++;
8928           goto s_n_llhttp__internal__n_header_field_general;
8929         }
8930         default: {
8931           goto s_n_llhttp__internal__n_header_field_general_otherwise;
8932         }
8933       }
8934       /* UNREACHABLE */;
8935       abort();
8936     }
8937     case s_n_llhttp__internal__n_header_field_colon:
8938     s_n_llhttp__internal__n_header_field_colon: {
8939       if (p == endp) {
8940         return s_n_llhttp__internal__n_header_field_colon;
8941       }
8942       switch (*p) {
8943         case ' ': {
8944           p++;
8945           goto s_n_llhttp__internal__n_header_field_colon;
8946         }
8947         case ':': {
8948           goto s_n_llhttp__internal__n_span_end_llhttp__on_header_field;
8949         }
8950         default: {
8951           goto s_n_llhttp__internal__n_invoke_update_header_state_9;
8952         }
8953       }
8954       /* UNREACHABLE */;
8955       abort();
8956     }
8957     case s_n_llhttp__internal__n_header_field_3:
8958     s_n_llhttp__internal__n_header_field_3: {
8959       llparse_match_t match_seq;
8960 
8961       if (p == endp) {
8962         return s_n_llhttp__internal__n_header_field_3;
8963       }
8964       match_seq = llparse__match_sequence_to_lower(state, p, endp, llparse_blob3, 6);
8965       p = match_seq.current;
8966       switch (match_seq.status) {
8967         case kMatchComplete: {
8968           p++;
8969           match = 1;
8970           goto s_n_llhttp__internal__n_invoke_store_header_state;
8971         }
8972         case kMatchPause: {
8973           return s_n_llhttp__internal__n_header_field_3;
8974         }
8975         case kMatchMismatch: {
8976           goto s_n_llhttp__internal__n_invoke_update_header_state_10;
8977         }
8978       }
8979       /* UNREACHABLE */;
8980       abort();
8981     }
8982     case s_n_llhttp__internal__n_header_field_4:
8983     s_n_llhttp__internal__n_header_field_4: {
8984       llparse_match_t match_seq;
8985 
8986       if (p == endp) {
8987         return s_n_llhttp__internal__n_header_field_4;
8988       }
8989       match_seq = llparse__match_sequence_to_lower(state, p, endp, llparse_blob11, 10);
8990       p = match_seq.current;
8991       switch (match_seq.status) {
8992         case kMatchComplete: {
8993           p++;
8994           match = 2;
8995           goto s_n_llhttp__internal__n_invoke_store_header_state;
8996         }
8997         case kMatchPause: {
8998           return s_n_llhttp__internal__n_header_field_4;
8999         }
9000         case kMatchMismatch: {
9001           goto s_n_llhttp__internal__n_invoke_update_header_state_10;
9002         }
9003       }
9004       /* UNREACHABLE */;
9005       abort();
9006     }
9007     case s_n_llhttp__internal__n_header_field_2:
9008     s_n_llhttp__internal__n_header_field_2: {
9009       if (p == endp) {
9010         return s_n_llhttp__internal__n_header_field_2;
9011       }
9012       switch (((*p) >= 'A' && (*p) <= 'Z' ? (*p | 0x20) : (*p))) {
9013         case 'n': {
9014           p++;
9015           goto s_n_llhttp__internal__n_header_field_3;
9016         }
9017         case 't': {
9018           p++;
9019           goto s_n_llhttp__internal__n_header_field_4;
9020         }
9021         default: {
9022           goto s_n_llhttp__internal__n_invoke_update_header_state_10;
9023         }
9024       }
9025       /* UNREACHABLE */;
9026       abort();
9027     }
9028     case s_n_llhttp__internal__n_header_field_1:
9029     s_n_llhttp__internal__n_header_field_1: {
9030       llparse_match_t match_seq;
9031 
9032       if (p == endp) {
9033         return s_n_llhttp__internal__n_header_field_1;
9034       }
9035       match_seq = llparse__match_sequence_to_lower(state, p, endp, llparse_blob2, 2);
9036       p = match_seq.current;
9037       switch (match_seq.status) {
9038         case kMatchComplete: {
9039           p++;
9040           goto s_n_llhttp__internal__n_header_field_2;
9041         }
9042         case kMatchPause: {
9043           return s_n_llhttp__internal__n_header_field_1;
9044         }
9045         case kMatchMismatch: {
9046           goto s_n_llhttp__internal__n_invoke_update_header_state_10;
9047         }
9048       }
9049       /* UNREACHABLE */;
9050       abort();
9051     }
9052     case s_n_llhttp__internal__n_header_field_5:
9053     s_n_llhttp__internal__n_header_field_5: {
9054       llparse_match_t match_seq;
9055 
9056       if (p == endp) {
9057         return s_n_llhttp__internal__n_header_field_5;
9058       }
9059       match_seq = llparse__match_sequence_to_lower(state, p, endp, llparse_blob12, 15);
9060       p = match_seq.current;
9061       switch (match_seq.status) {
9062         case kMatchComplete: {
9063           p++;
9064           match = 1;
9065           goto s_n_llhttp__internal__n_invoke_store_header_state;
9066         }
9067         case kMatchPause: {
9068           return s_n_llhttp__internal__n_header_field_5;
9069         }
9070         case kMatchMismatch: {
9071           goto s_n_llhttp__internal__n_invoke_update_header_state_10;
9072         }
9073       }
9074       /* UNREACHABLE */;
9075       abort();
9076     }
9077     case s_n_llhttp__internal__n_header_field_6:
9078     s_n_llhttp__internal__n_header_field_6: {
9079       llparse_match_t match_seq;
9080 
9081       if (p == endp) {
9082         return s_n_llhttp__internal__n_header_field_6;
9083       }
9084       match_seq = llparse__match_sequence_to_lower(state, p, endp, llparse_blob13, 16);
9085       p = match_seq.current;
9086       switch (match_seq.status) {
9087         case kMatchComplete: {
9088           p++;
9089           match = 3;
9090           goto s_n_llhttp__internal__n_invoke_store_header_state;
9091         }
9092         case kMatchPause: {
9093           return s_n_llhttp__internal__n_header_field_6;
9094         }
9095         case kMatchMismatch: {
9096           goto s_n_llhttp__internal__n_invoke_update_header_state_10;
9097         }
9098       }
9099       /* UNREACHABLE */;
9100       abort();
9101     }
9102     case s_n_llhttp__internal__n_header_field_7:
9103     s_n_llhttp__internal__n_header_field_7: {
9104       llparse_match_t match_seq;
9105 
9106       if (p == endp) {
9107         return s_n_llhttp__internal__n_header_field_7;
9108       }
9109       match_seq = llparse__match_sequence_to_lower(state, p, endp, llparse_blob14, 6);
9110       p = match_seq.current;
9111       switch (match_seq.status) {
9112         case kMatchComplete: {
9113           p++;
9114           match = 4;
9115           goto s_n_llhttp__internal__n_invoke_store_header_state;
9116         }
9117         case kMatchPause: {
9118           return s_n_llhttp__internal__n_header_field_7;
9119         }
9120         case kMatchMismatch: {
9121           goto s_n_llhttp__internal__n_invoke_update_header_state_10;
9122         }
9123       }
9124       /* UNREACHABLE */;
9125       abort();
9126     }
9127     case s_n_llhttp__internal__n_header_field:
9128     s_n_llhttp__internal__n_header_field: {
9129       if (p == endp) {
9130         return s_n_llhttp__internal__n_header_field;
9131       }
9132       switch (((*p) >= 'A' && (*p) <= 'Z' ? (*p | 0x20) : (*p))) {
9133         case 'c': {
9134           p++;
9135           goto s_n_llhttp__internal__n_header_field_1;
9136         }
9137         case 'p': {
9138           p++;
9139           goto s_n_llhttp__internal__n_header_field_5;
9140         }
9141         case 't': {
9142           p++;
9143           goto s_n_llhttp__internal__n_header_field_6;
9144         }
9145         case 'u': {
9146           p++;
9147           goto s_n_llhttp__internal__n_header_field_7;
9148         }
9149         default: {
9150           goto s_n_llhttp__internal__n_invoke_update_header_state_10;
9151         }
9152       }
9153       /* UNREACHABLE */;
9154       abort();
9155     }
9156     case s_n_llhttp__internal__n_span_start_llhttp__on_header_field:
9157     s_n_llhttp__internal__n_span_start_llhttp__on_header_field: {
9158       if (p == endp) {
9159         return s_n_llhttp__internal__n_span_start_llhttp__on_header_field;
9160       }
9161       state->_span_pos0 = (void*) p;
9162       state->_span_cb0 = llhttp__on_header_field;
9163       goto s_n_llhttp__internal__n_header_field;
9164       /* UNREACHABLE */;
9165       abort();
9166     }
9167     case s_n_llhttp__internal__n_header_field_start:
9168     s_n_llhttp__internal__n_header_field_start: {
9169       if (p == endp) {
9170         return s_n_llhttp__internal__n_header_field_start;
9171       }
9172       switch (*p) {
9173         case 10: {
9174           goto s_n_llhttp__internal__n_headers_almost_done;
9175         }
9176         case 13: {
9177           p++;
9178           goto s_n_llhttp__internal__n_headers_almost_done;
9179         }
9180         default: {
9181           goto s_n_llhttp__internal__n_span_start_llhttp__on_header_field;
9182         }
9183       }
9184       /* UNREACHABLE */;
9185       abort();
9186     }
9187     case s_n_llhttp__internal__n_url_skip_to_http09:
9188     s_n_llhttp__internal__n_url_skip_to_http09: {
9189       if (p == endp) {
9190         return s_n_llhttp__internal__n_url_skip_to_http09;
9191       }
9192       p++;
9193       goto s_n_llhttp__internal__n_invoke_update_http_major;
9194       /* UNREACHABLE */;
9195       abort();
9196     }
9197     case s_n_llhttp__internal__n_url_skip_lf_to_http09:
9198     s_n_llhttp__internal__n_url_skip_lf_to_http09: {
9199       llparse_match_t match_seq;
9200 
9201       if (p == endp) {
9202         return s_n_llhttp__internal__n_url_skip_lf_to_http09;
9203       }
9204       match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob15, 2);
9205       p = match_seq.current;
9206       switch (match_seq.status) {
9207         case kMatchComplete: {
9208           p++;
9209           goto s_n_llhttp__internal__n_invoke_update_http_major;
9210         }
9211         case kMatchPause: {
9212           return s_n_llhttp__internal__n_url_skip_lf_to_http09;
9213         }
9214         case kMatchMismatch: {
9215           goto s_n_llhttp__internal__n_error_21;
9216         }
9217       }
9218       /* UNREACHABLE */;
9219       abort();
9220     }
9221     case s_n_llhttp__internal__n_req_http_end_1:
9222     s_n_llhttp__internal__n_req_http_end_1: {
9223       if (p == endp) {
9224         return s_n_llhttp__internal__n_req_http_end_1;
9225       }
9226       switch (*p) {
9227         case 10: {
9228           p++;
9229           goto s_n_llhttp__internal__n_header_field_start;
9230         }
9231         default: {
9232           goto s_n_llhttp__internal__n_error_22;
9233         }
9234       }
9235       /* UNREACHABLE */;
9236       abort();
9237     }
9238     case s_n_llhttp__internal__n_req_http_end:
9239     s_n_llhttp__internal__n_req_http_end: {
9240       if (p == endp) {
9241         return s_n_llhttp__internal__n_req_http_end;
9242       }
9243       switch (*p) {
9244         case 10: {
9245           p++;
9246           goto s_n_llhttp__internal__n_header_field_start;
9247         }
9248         case 13: {
9249           p++;
9250           goto s_n_llhttp__internal__n_req_http_end_1;
9251         }
9252         default: {
9253           goto s_n_llhttp__internal__n_error_22;
9254         }
9255       }
9256       /* UNREACHABLE */;
9257       abort();
9258     }
9259     case s_n_llhttp__internal__n_req_http_minor:
9260     s_n_llhttp__internal__n_req_http_minor: {
9261       if (p == endp) {
9262         return s_n_llhttp__internal__n_req_http_minor;
9263       }
9264       switch (*p) {
9265         case '0': {
9266           p++;
9267           match = 0;
9268           goto s_n_llhttp__internal__n_invoke_store_http_minor;
9269         }
9270         case '1': {
9271           p++;
9272           match = 1;
9273           goto s_n_llhttp__internal__n_invoke_store_http_minor;
9274         }
9275         case '2': {
9276           p++;
9277           match = 2;
9278           goto s_n_llhttp__internal__n_invoke_store_http_minor;
9279         }
9280         case '3': {
9281           p++;
9282           match = 3;
9283           goto s_n_llhttp__internal__n_invoke_store_http_minor;
9284         }
9285         case '4': {
9286           p++;
9287           match = 4;
9288           goto s_n_llhttp__internal__n_invoke_store_http_minor;
9289         }
9290         case '5': {
9291           p++;
9292           match = 5;
9293           goto s_n_llhttp__internal__n_invoke_store_http_minor;
9294         }
9295         case '6': {
9296           p++;
9297           match = 6;
9298           goto s_n_llhttp__internal__n_invoke_store_http_minor;
9299         }
9300         case '7': {
9301           p++;
9302           match = 7;
9303           goto s_n_llhttp__internal__n_invoke_store_http_minor;
9304         }
9305         case '8': {
9306           p++;
9307           match = 8;
9308           goto s_n_llhttp__internal__n_invoke_store_http_minor;
9309         }
9310         case '9': {
9311           p++;
9312           match = 9;
9313           goto s_n_llhttp__internal__n_invoke_store_http_minor;
9314         }
9315         default: {
9316           goto s_n_llhttp__internal__n_error_23;
9317         }
9318       }
9319       /* UNREACHABLE */;
9320       abort();
9321     }
9322     case s_n_llhttp__internal__n_req_http_dot:
9323     s_n_llhttp__internal__n_req_http_dot: {
9324       if (p == endp) {
9325         return s_n_llhttp__internal__n_req_http_dot;
9326       }
9327       switch (*p) {
9328         case '.': {
9329           p++;
9330           goto s_n_llhttp__internal__n_req_http_minor;
9331         }
9332         default: {
9333           goto s_n_llhttp__internal__n_error_24;
9334         }
9335       }
9336       /* UNREACHABLE */;
9337       abort();
9338     }
9339     case s_n_llhttp__internal__n_req_http_major:
9340     s_n_llhttp__internal__n_req_http_major: {
9341       if (p == endp) {
9342         return s_n_llhttp__internal__n_req_http_major;
9343       }
9344       switch (*p) {
9345         case '0': {
9346           p++;
9347           match = 0;
9348           goto s_n_llhttp__internal__n_invoke_store_http_major;
9349         }
9350         case '1': {
9351           p++;
9352           match = 1;
9353           goto s_n_llhttp__internal__n_invoke_store_http_major;
9354         }
9355         case '2': {
9356           p++;
9357           match = 2;
9358           goto s_n_llhttp__internal__n_invoke_store_http_major;
9359         }
9360         case '3': {
9361           p++;
9362           match = 3;
9363           goto s_n_llhttp__internal__n_invoke_store_http_major;
9364         }
9365         case '4': {
9366           p++;
9367           match = 4;
9368           goto s_n_llhttp__internal__n_invoke_store_http_major;
9369         }
9370         case '5': {
9371           p++;
9372           match = 5;
9373           goto s_n_llhttp__internal__n_invoke_store_http_major;
9374         }
9375         case '6': {
9376           p++;
9377           match = 6;
9378           goto s_n_llhttp__internal__n_invoke_store_http_major;
9379         }
9380         case '7': {
9381           p++;
9382           match = 7;
9383           goto s_n_llhttp__internal__n_invoke_store_http_major;
9384         }
9385         case '8': {
9386           p++;
9387           match = 8;
9388           goto s_n_llhttp__internal__n_invoke_store_http_major;
9389         }
9390         case '9': {
9391           p++;
9392           match = 9;
9393           goto s_n_llhttp__internal__n_invoke_store_http_major;
9394         }
9395         default: {
9396           goto s_n_llhttp__internal__n_error_25;
9397         }
9398       }
9399       /* UNREACHABLE */;
9400       abort();
9401     }
9402     case s_n_llhttp__internal__n_req_http_start_1:
9403     s_n_llhttp__internal__n_req_http_start_1: {
9404       llparse_match_t match_seq;
9405 
9406       if (p == endp) {
9407         return s_n_llhttp__internal__n_req_http_start_1;
9408       }
9409       match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob16, 4);
9410       p = match_seq.current;
9411       switch (match_seq.status) {
9412         case kMatchComplete: {
9413           p++;
9414           goto s_n_llhttp__internal__n_req_http_major;
9415         }
9416         case kMatchPause: {
9417           return s_n_llhttp__internal__n_req_http_start_1;
9418         }
9419         case kMatchMismatch: {
9420           goto s_n_llhttp__internal__n_error_27;
9421         }
9422       }
9423       /* UNREACHABLE */;
9424       abort();
9425     }
9426     case s_n_llhttp__internal__n_req_http_start_2:
9427     s_n_llhttp__internal__n_req_http_start_2: {
9428       llparse_match_t match_seq;
9429 
9430       if (p == endp) {
9431         return s_n_llhttp__internal__n_req_http_start_2;
9432       }
9433       match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob17, 3);
9434       p = match_seq.current;
9435       switch (match_seq.status) {
9436         case kMatchComplete: {
9437           p++;
9438           goto s_n_llhttp__internal__n_invoke_is_equal_method_1;
9439         }
9440         case kMatchPause: {
9441           return s_n_llhttp__internal__n_req_http_start_2;
9442         }
9443         case kMatchMismatch: {
9444           goto s_n_llhttp__internal__n_error_27;
9445         }
9446       }
9447       /* UNREACHABLE */;
9448       abort();
9449     }
9450     case s_n_llhttp__internal__n_req_http_start:
9451     s_n_llhttp__internal__n_req_http_start: {
9452       if (p == endp) {
9453         return s_n_llhttp__internal__n_req_http_start;
9454       }
9455       switch (*p) {
9456         case ' ': {
9457           p++;
9458           goto s_n_llhttp__internal__n_req_http_start;
9459         }
9460         case 'H': {
9461           p++;
9462           goto s_n_llhttp__internal__n_req_http_start_1;
9463         }
9464         case 'I': {
9465           p++;
9466           goto s_n_llhttp__internal__n_req_http_start_2;
9467         }
9468         default: {
9469           goto s_n_llhttp__internal__n_error_27;
9470         }
9471       }
9472       /* UNREACHABLE */;
9473       abort();
9474     }
9475     case s_n_llhttp__internal__n_url_skip_to_http:
9476     s_n_llhttp__internal__n_url_skip_to_http: {
9477       if (p == endp) {
9478         return s_n_llhttp__internal__n_url_skip_to_http;
9479       }
9480       p++;
9481       goto s_n_llhttp__internal__n_req_http_start;
9482       /* UNREACHABLE */;
9483       abort();
9484     }
9485     case s_n_llhttp__internal__n_url_fragment:
9486     s_n_llhttp__internal__n_url_fragment: {
9487       static uint8_t lookup_table[] = {
9488         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 1, 3, 0, 0,
9489         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9490         4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
9491         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
9492         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
9493         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
9494         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
9495         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
9496         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
9497         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
9498         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
9499         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
9500         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
9501         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
9502         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
9503         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
9504       };
9505       if (p == endp) {
9506         return s_n_llhttp__internal__n_url_fragment;
9507       }
9508       switch (lookup_table[(uint8_t) *p]) {
9509         case 1: {
9510           p++;
9511           goto s_n_llhttp__internal__n_url_fragment;
9512         }
9513         case 2: {
9514           goto s_n_llhttp__internal__n_span_end_llhttp__on_url_6;
9515         }
9516         case 3: {
9517           goto s_n_llhttp__internal__n_span_end_llhttp__on_url_7;
9518         }
9519         case 4: {
9520           goto s_n_llhttp__internal__n_span_end_llhttp__on_url_8;
9521         }
9522         default: {
9523           goto s_n_llhttp__internal__n_error_28;
9524         }
9525       }
9526       /* UNREACHABLE */;
9527       abort();
9528     }
9529     case s_n_llhttp__internal__n_span_end_stub_query_3:
9530     s_n_llhttp__internal__n_span_end_stub_query_3: {
9531       if (p == endp) {
9532         return s_n_llhttp__internal__n_span_end_stub_query_3;
9533       }
9534       p++;
9535       goto s_n_llhttp__internal__n_url_fragment;
9536       /* UNREACHABLE */;
9537       abort();
9538     }
9539     case s_n_llhttp__internal__n_url_query:
9540     s_n_llhttp__internal__n_url_query: {
9541       static uint8_t lookup_table[] = {
9542         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 1, 3, 0, 0,
9543         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9544         4, 1, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
9545         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
9546         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
9547         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
9548         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
9549         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
9550         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
9551         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
9552         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
9553         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
9554         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
9555         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
9556         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
9557         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
9558       };
9559       if (p == endp) {
9560         return s_n_llhttp__internal__n_url_query;
9561       }
9562       switch (lookup_table[(uint8_t) *p]) {
9563         case 1: {
9564           p++;
9565           goto s_n_llhttp__internal__n_url_query;
9566         }
9567         case 2: {
9568           goto s_n_llhttp__internal__n_span_end_llhttp__on_url_9;
9569         }
9570         case 3: {
9571           goto s_n_llhttp__internal__n_span_end_llhttp__on_url_10;
9572         }
9573         case 4: {
9574           goto s_n_llhttp__internal__n_span_end_llhttp__on_url_11;
9575         }
9576         case 5: {
9577           goto s_n_llhttp__internal__n_span_end_stub_query_3;
9578         }
9579         default: {
9580           goto s_n_llhttp__internal__n_error_29;
9581         }
9582       }
9583       /* UNREACHABLE */;
9584       abort();
9585     }
9586     case s_n_llhttp__internal__n_url_query_or_fragment:
9587     s_n_llhttp__internal__n_url_query_or_fragment: {
9588       if (p == endp) {
9589         return s_n_llhttp__internal__n_url_query_or_fragment;
9590       }
9591       switch (*p) {
9592         case 10: {
9593           goto s_n_llhttp__internal__n_span_end_llhttp__on_url_3;
9594         }
9595         case 13: {
9596           goto s_n_llhttp__internal__n_span_end_llhttp__on_url_4;
9597         }
9598         case ' ': {
9599           goto s_n_llhttp__internal__n_span_end_llhttp__on_url_5;
9600         }
9601         case '#': {
9602           p++;
9603           goto s_n_llhttp__internal__n_url_fragment;
9604         }
9605         case '?': {
9606           p++;
9607           goto s_n_llhttp__internal__n_url_query;
9608         }
9609         default: {
9610           goto s_n_llhttp__internal__n_error_30;
9611         }
9612       }
9613       /* UNREACHABLE */;
9614       abort();
9615     }
9616     case s_n_llhttp__internal__n_url_path:
9617     s_n_llhttp__internal__n_url_path: {
9618       static uint8_t lookup_table[] = {
9619         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0,
9620         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9621         0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
9622         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
9623         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
9624         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
9625         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
9626         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
9627         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
9628         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
9629         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
9630         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
9631         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
9632         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
9633         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
9634         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
9635       };
9636       if (p == endp) {
9637         return s_n_llhttp__internal__n_url_path;
9638       }
9639       #ifdef __SSE4_2__
9640       if (endp - p >= 16) {
9641         __m128i ranges;
9642         __m128i input;
9643         int avail;
9644         int match_len;
9645 
9646         /* Load input */
9647         input = _mm_loadu_si128((__m128i const*) p);
9648         ranges = _mm_loadu_si128((__m128i const*) llparse_blob1);
9649 
9650         /* Find first character that does not match `ranges` */
9651         match_len = _mm_cmpestri(ranges, 12,
9652             input, 16,
9653             _SIDD_UBYTE_OPS | _SIDD_CMP_RANGES |
9654               _SIDD_NEGATIVE_POLARITY);
9655 
9656         if (match_len != 0) {
9657           p += match_len;
9658           goto s_n_llhttp__internal__n_url_path;
9659         }
9660         goto s_n_llhttp__internal__n_url_query_or_fragment;
9661       }
9662       #endif  /* __SSE4_2__ */
9663       switch (lookup_table[(uint8_t) *p]) {
9664         case 1: {
9665           p++;
9666           goto s_n_llhttp__internal__n_url_path;
9667         }
9668         default: {
9669           goto s_n_llhttp__internal__n_url_query_or_fragment;
9670         }
9671       }
9672       /* UNREACHABLE */;
9673       abort();
9674     }
9675     case s_n_llhttp__internal__n_span_start_stub_path_2:
9676     s_n_llhttp__internal__n_span_start_stub_path_2: {
9677       if (p == endp) {
9678         return s_n_llhttp__internal__n_span_start_stub_path_2;
9679       }
9680       p++;
9681       goto s_n_llhttp__internal__n_url_path;
9682       /* UNREACHABLE */;
9683       abort();
9684     }
9685     case s_n_llhttp__internal__n_span_start_stub_path:
9686     s_n_llhttp__internal__n_span_start_stub_path: {
9687       if (p == endp) {
9688         return s_n_llhttp__internal__n_span_start_stub_path;
9689       }
9690       p++;
9691       goto s_n_llhttp__internal__n_url_path;
9692       /* UNREACHABLE */;
9693       abort();
9694     }
9695     case s_n_llhttp__internal__n_span_start_stub_path_1:
9696     s_n_llhttp__internal__n_span_start_stub_path_1: {
9697       if (p == endp) {
9698         return s_n_llhttp__internal__n_span_start_stub_path_1;
9699       }
9700       p++;
9701       goto s_n_llhttp__internal__n_url_path;
9702       /* UNREACHABLE */;
9703       abort();
9704     }
9705     case s_n_llhttp__internal__n_url_server_with_at:
9706     s_n_llhttp__internal__n_url_server_with_at: {
9707       static uint8_t lookup_table[] = {
9708         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0,
9709         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9710         3, 4, 0, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5,
9711         4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 4, 0, 6,
9712         7, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
9713         4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 4, 0, 4,
9714         0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
9715         4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 4, 0,
9716         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9717         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9718         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9719         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9720         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9721         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9722         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9723         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
9724       };
9725       if (p == endp) {
9726         return s_n_llhttp__internal__n_url_server_with_at;
9727       }
9728       switch (lookup_table[(uint8_t) *p]) {
9729         case 1: {
9730           goto s_n_llhttp__internal__n_span_end_llhttp__on_url_12;
9731         }
9732         case 2: {
9733           goto s_n_llhttp__internal__n_span_end_llhttp__on_url_13;
9734         }
9735         case 3: {
9736           goto s_n_llhttp__internal__n_span_end_llhttp__on_url_14;
9737         }
9738         case 4: {
9739           p++;
9740           goto s_n_llhttp__internal__n_url_server;
9741         }
9742         case 5: {
9743           goto s_n_llhttp__internal__n_span_start_stub_path_1;
9744         }
9745         case 6: {
9746           p++;
9747           goto s_n_llhttp__internal__n_url_query;
9748         }
9749         case 7: {
9750           p++;
9751           goto s_n_llhttp__internal__n_error_31;
9752         }
9753         default: {
9754           goto s_n_llhttp__internal__n_error_32;
9755         }
9756       }
9757       /* UNREACHABLE */;
9758       abort();
9759     }
9760     case s_n_llhttp__internal__n_url_server:
9761     s_n_llhttp__internal__n_url_server: {
9762       static uint8_t lookup_table[] = {
9763         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0,
9764         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9765         3, 4, 0, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5,
9766         4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 4, 0, 6,
9767         7, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
9768         4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 4, 0, 4,
9769         0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
9770         4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 4, 0,
9771         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9772         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9773         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9774         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9775         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9776         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9777         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9778         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
9779       };
9780       if (p == endp) {
9781         return s_n_llhttp__internal__n_url_server;
9782       }
9783       switch (lookup_table[(uint8_t) *p]) {
9784         case 1: {
9785           goto s_n_llhttp__internal__n_span_end_llhttp__on_url;
9786         }
9787         case 2: {
9788           goto s_n_llhttp__internal__n_span_end_llhttp__on_url_1;
9789         }
9790         case 3: {
9791           goto s_n_llhttp__internal__n_span_end_llhttp__on_url_2;
9792         }
9793         case 4: {
9794           p++;
9795           goto s_n_llhttp__internal__n_url_server;
9796         }
9797         case 5: {
9798           goto s_n_llhttp__internal__n_span_start_stub_path;
9799         }
9800         case 6: {
9801           p++;
9802           goto s_n_llhttp__internal__n_url_query;
9803         }
9804         case 7: {
9805           p++;
9806           goto s_n_llhttp__internal__n_url_server_with_at;
9807         }
9808         default: {
9809           goto s_n_llhttp__internal__n_error_33;
9810         }
9811       }
9812       /* UNREACHABLE */;
9813       abort();
9814     }
9815     case s_n_llhttp__internal__n_url_schema_delim_1:
9816     s_n_llhttp__internal__n_url_schema_delim_1: {
9817       if (p == endp) {
9818         return s_n_llhttp__internal__n_url_schema_delim_1;
9819       }
9820       switch (*p) {
9821         case '/': {
9822           p++;
9823           goto s_n_llhttp__internal__n_url_server;
9824         }
9825         default: {
9826           goto s_n_llhttp__internal__n_error_35;
9827         }
9828       }
9829       /* UNREACHABLE */;
9830       abort();
9831     }
9832     case s_n_llhttp__internal__n_url_schema_delim:
9833     s_n_llhttp__internal__n_url_schema_delim: {
9834       if (p == endp) {
9835         return s_n_llhttp__internal__n_url_schema_delim;
9836       }
9837       switch (*p) {
9838         case 10: {
9839           p++;
9840           goto s_n_llhttp__internal__n_error_34;
9841         }
9842         case 13: {
9843           p++;
9844           goto s_n_llhttp__internal__n_error_34;
9845         }
9846         case ' ': {
9847           p++;
9848           goto s_n_llhttp__internal__n_error_34;
9849         }
9850         case '/': {
9851           p++;
9852           goto s_n_llhttp__internal__n_url_schema_delim_1;
9853         }
9854         default: {
9855           goto s_n_llhttp__internal__n_error_35;
9856         }
9857       }
9858       /* UNREACHABLE */;
9859       abort();
9860     }
9861     case s_n_llhttp__internal__n_span_end_stub_schema:
9862     s_n_llhttp__internal__n_span_end_stub_schema: {
9863       if (p == endp) {
9864         return s_n_llhttp__internal__n_span_end_stub_schema;
9865       }
9866       p++;
9867       goto s_n_llhttp__internal__n_url_schema_delim;
9868       /* UNREACHABLE */;
9869       abort();
9870     }
9871     case s_n_llhttp__internal__n_url_schema:
9872     s_n_llhttp__internal__n_url_schema: {
9873       static uint8_t lookup_table[] = {
9874         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0,
9875         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9876         1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9877         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0,
9878         0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
9879         3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
9880         0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
9881         3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
9882         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9883         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9884         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9885         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9886         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9887         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9888         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9889         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
9890       };
9891       if (p == endp) {
9892         return s_n_llhttp__internal__n_url_schema;
9893       }
9894       switch (lookup_table[(uint8_t) *p]) {
9895         case 1: {
9896           p++;
9897           goto s_n_llhttp__internal__n_error_34;
9898         }
9899         case 2: {
9900           goto s_n_llhttp__internal__n_span_end_stub_schema;
9901         }
9902         case 3: {
9903           p++;
9904           goto s_n_llhttp__internal__n_url_schema;
9905         }
9906         default: {
9907           goto s_n_llhttp__internal__n_error_36;
9908         }
9909       }
9910       /* UNREACHABLE */;
9911       abort();
9912     }
9913     case s_n_llhttp__internal__n_url_start:
9914     s_n_llhttp__internal__n_url_start: {
9915       static uint8_t lookup_table[] = {
9916         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0,
9917         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9918         1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2,
9919         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9920         0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
9921         3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
9922         0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
9923         3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
9924         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9925         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9926         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9927         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9928         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9929         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9930         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9931         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
9932       };
9933       if (p == endp) {
9934         return s_n_llhttp__internal__n_url_start;
9935       }
9936       switch (lookup_table[(uint8_t) *p]) {
9937         case 1: {
9938           p++;
9939           goto s_n_llhttp__internal__n_error_34;
9940         }
9941         case 2: {
9942           goto s_n_llhttp__internal__n_span_start_stub_path_2;
9943         }
9944         case 3: {
9945           goto s_n_llhttp__internal__n_url_schema;
9946         }
9947         default: {
9948           goto s_n_llhttp__internal__n_error_37;
9949         }
9950       }
9951       /* UNREACHABLE */;
9952       abort();
9953     }
9954     case s_n_llhttp__internal__n_span_start_llhttp__on_url_1:
9955     s_n_llhttp__internal__n_span_start_llhttp__on_url_1: {
9956       if (p == endp) {
9957         return s_n_llhttp__internal__n_span_start_llhttp__on_url_1;
9958       }
9959       state->_span_pos0 = (void*) p;
9960       state->_span_cb0 = llhttp__on_url;
9961       goto s_n_llhttp__internal__n_url_start;
9962       /* UNREACHABLE */;
9963       abort();
9964     }
9965     case s_n_llhttp__internal__n_span_start_llhttp__on_url:
9966     s_n_llhttp__internal__n_span_start_llhttp__on_url: {
9967       if (p == endp) {
9968         return s_n_llhttp__internal__n_span_start_llhttp__on_url;
9969       }
9970       state->_span_pos0 = (void*) p;
9971       state->_span_cb0 = llhttp__on_url;
9972       goto s_n_llhttp__internal__n_url_server;
9973       /* UNREACHABLE */;
9974       abort();
9975     }
9976     case s_n_llhttp__internal__n_req_spaces_before_url:
9977     s_n_llhttp__internal__n_req_spaces_before_url: {
9978       if (p == endp) {
9979         return s_n_llhttp__internal__n_req_spaces_before_url;
9980       }
9981       switch (*p) {
9982         case ' ': {
9983           p++;
9984           goto s_n_llhttp__internal__n_req_spaces_before_url;
9985         }
9986         default: {
9987           goto s_n_llhttp__internal__n_invoke_is_equal_method;
9988         }
9989       }
9990       /* UNREACHABLE */;
9991       abort();
9992     }
9993     case s_n_llhttp__internal__n_req_first_space_before_url:
9994     s_n_llhttp__internal__n_req_first_space_before_url: {
9995       if (p == endp) {
9996         return s_n_llhttp__internal__n_req_first_space_before_url;
9997       }
9998       switch (*p) {
9999         case ' ': {
10000           p++;
10001           goto s_n_llhttp__internal__n_req_spaces_before_url;
10002         }
10003         default: {
10004           goto s_n_llhttp__internal__n_error_38;
10005         }
10006       }
10007       /* UNREACHABLE */;
10008       abort();
10009     }
10010     case s_n_llhttp__internal__n_start_req_1:
10011     s_n_llhttp__internal__n_start_req_1: {
10012       llparse_match_t match_seq;
10013 
10014       if (p == endp) {
10015         return s_n_llhttp__internal__n_start_req_1;
10016       }
10017       match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob0, 2);
10018       p = match_seq.current;
10019       switch (match_seq.status) {
10020         case kMatchComplete: {
10021           p++;
10022           match = 19;
10023           goto s_n_llhttp__internal__n_invoke_store_method_1;
10024         }
10025         case kMatchPause: {
10026           return s_n_llhttp__internal__n_start_req_1;
10027         }
10028         case kMatchMismatch: {
10029           goto s_n_llhttp__internal__n_error_46;
10030         }
10031       }
10032       /* UNREACHABLE */;
10033       abort();
10034     }
10035     case s_n_llhttp__internal__n_start_req_2:
10036     s_n_llhttp__internal__n_start_req_2: {
10037       llparse_match_t match_seq;
10038 
10039       if (p == endp) {
10040         return s_n_llhttp__internal__n_start_req_2;
10041       }
10042       match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob18, 3);
10043       p = match_seq.current;
10044       switch (match_seq.status) {
10045         case kMatchComplete: {
10046           p++;
10047           match = 16;
10048           goto s_n_llhttp__internal__n_invoke_store_method_1;
10049         }
10050         case kMatchPause: {
10051           return s_n_llhttp__internal__n_start_req_2;
10052         }
10053         case kMatchMismatch: {
10054           goto s_n_llhttp__internal__n_error_46;
10055         }
10056       }
10057       /* UNREACHABLE */;
10058       abort();
10059     }
10060     case s_n_llhttp__internal__n_start_req_4:
10061     s_n_llhttp__internal__n_start_req_4: {
10062       llparse_match_t match_seq;
10063 
10064       if (p == endp) {
10065         return s_n_llhttp__internal__n_start_req_4;
10066       }
10067       match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob19, 6);
10068       p = match_seq.current;
10069       switch (match_seq.status) {
10070         case kMatchComplete: {
10071           p++;
10072           match = 22;
10073           goto s_n_llhttp__internal__n_invoke_store_method_1;
10074         }
10075         case kMatchPause: {
10076           return s_n_llhttp__internal__n_start_req_4;
10077         }
10078         case kMatchMismatch: {
10079           goto s_n_llhttp__internal__n_error_46;
10080         }
10081       }
10082       /* UNREACHABLE */;
10083       abort();
10084     }
10085     case s_n_llhttp__internal__n_start_req_6:
10086     s_n_llhttp__internal__n_start_req_6: {
10087       llparse_match_t match_seq;
10088 
10089       if (p == endp) {
10090         return s_n_llhttp__internal__n_start_req_6;
10091       }
10092       match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob20, 4);
10093       p = match_seq.current;
10094       switch (match_seq.status) {
10095         case kMatchComplete: {
10096           p++;
10097           match = 5;
10098           goto s_n_llhttp__internal__n_invoke_store_method_1;
10099         }
10100         case kMatchPause: {
10101           return s_n_llhttp__internal__n_start_req_6;
10102         }
10103         case kMatchMismatch: {
10104           goto s_n_llhttp__internal__n_error_46;
10105         }
10106       }
10107       /* UNREACHABLE */;
10108       abort();
10109     }
10110     case s_n_llhttp__internal__n_start_req_7:
10111     s_n_llhttp__internal__n_start_req_7: {
10112       if (p == endp) {
10113         return s_n_llhttp__internal__n_start_req_7;
10114       }
10115       switch (*p) {
10116         case 'Y': {
10117           p++;
10118           match = 8;
10119           goto s_n_llhttp__internal__n_invoke_store_method_1;
10120         }
10121         default: {
10122           goto s_n_llhttp__internal__n_error_46;
10123         }
10124       }
10125       /* UNREACHABLE */;
10126       abort();
10127     }
10128     case s_n_llhttp__internal__n_start_req_5:
10129     s_n_llhttp__internal__n_start_req_5: {
10130       if (p == endp) {
10131         return s_n_llhttp__internal__n_start_req_5;
10132       }
10133       switch (*p) {
10134         case 'N': {
10135           p++;
10136           goto s_n_llhttp__internal__n_start_req_6;
10137         }
10138         case 'P': {
10139           p++;
10140           goto s_n_llhttp__internal__n_start_req_7;
10141         }
10142         default: {
10143           goto s_n_llhttp__internal__n_error_46;
10144         }
10145       }
10146       /* UNREACHABLE */;
10147       abort();
10148     }
10149     case s_n_llhttp__internal__n_start_req_3:
10150     s_n_llhttp__internal__n_start_req_3: {
10151       if (p == endp) {
10152         return s_n_llhttp__internal__n_start_req_3;
10153       }
10154       switch (*p) {
10155         case 'H': {
10156           p++;
10157           goto s_n_llhttp__internal__n_start_req_4;
10158         }
10159         case 'O': {
10160           p++;
10161           goto s_n_llhttp__internal__n_start_req_5;
10162         }
10163         default: {
10164           goto s_n_llhttp__internal__n_error_46;
10165         }
10166       }
10167       /* UNREACHABLE */;
10168       abort();
10169     }
10170     case s_n_llhttp__internal__n_start_req_8:
10171     s_n_llhttp__internal__n_start_req_8: {
10172       llparse_match_t match_seq;
10173 
10174       if (p == endp) {
10175         return s_n_llhttp__internal__n_start_req_8;
10176       }
10177       match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob21, 5);
10178       p = match_seq.current;
10179       switch (match_seq.status) {
10180         case kMatchComplete: {
10181           p++;
10182           match = 0;
10183           goto s_n_llhttp__internal__n_invoke_store_method_1;
10184         }
10185         case kMatchPause: {
10186           return s_n_llhttp__internal__n_start_req_8;
10187         }
10188         case kMatchMismatch: {
10189           goto s_n_llhttp__internal__n_error_46;
10190         }
10191       }
10192       /* UNREACHABLE */;
10193       abort();
10194     }
10195     case s_n_llhttp__internal__n_start_req_9:
10196     s_n_llhttp__internal__n_start_req_9: {
10197       llparse_match_t match_seq;
10198 
10199       if (p == endp) {
10200         return s_n_llhttp__internal__n_start_req_9;
10201       }
10202       match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob22, 2);
10203       p = match_seq.current;
10204       switch (match_seq.status) {
10205         case kMatchComplete: {
10206           p++;
10207           match = 1;
10208           goto s_n_llhttp__internal__n_invoke_store_method_1;
10209         }
10210         case kMatchPause: {
10211           return s_n_llhttp__internal__n_start_req_9;
10212         }
10213         case kMatchMismatch: {
10214           goto s_n_llhttp__internal__n_error_46;
10215         }
10216       }
10217       /* UNREACHABLE */;
10218       abort();
10219     }
10220     case s_n_llhttp__internal__n_start_req_10:
10221     s_n_llhttp__internal__n_start_req_10: {
10222       llparse_match_t match_seq;
10223 
10224       if (p == endp) {
10225         return s_n_llhttp__internal__n_start_req_10;
10226       }
10227       match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob23, 3);
10228       p = match_seq.current;
10229       switch (match_seq.status) {
10230         case kMatchComplete: {
10231           p++;
10232           match = 2;
10233           goto s_n_llhttp__internal__n_invoke_store_method_1;
10234         }
10235         case kMatchPause: {
10236           return s_n_llhttp__internal__n_start_req_10;
10237         }
10238         case kMatchMismatch: {
10239           goto s_n_llhttp__internal__n_error_46;
10240         }
10241       }
10242       /* UNREACHABLE */;
10243       abort();
10244     }
10245     case s_n_llhttp__internal__n_start_req_12:
10246     s_n_llhttp__internal__n_start_req_12: {
10247       llparse_match_t match_seq;
10248 
10249       if (p == endp) {
10250         return s_n_llhttp__internal__n_start_req_12;
10251       }
10252       match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob24, 2);
10253       p = match_seq.current;
10254       switch (match_seq.status) {
10255         case kMatchComplete: {
10256           p++;
10257           match = 31;
10258           goto s_n_llhttp__internal__n_invoke_store_method_1;
10259         }
10260         case kMatchPause: {
10261           return s_n_llhttp__internal__n_start_req_12;
10262         }
10263         case kMatchMismatch: {
10264           goto s_n_llhttp__internal__n_error_46;
10265         }
10266       }
10267       /* UNREACHABLE */;
10268       abort();
10269     }
10270     case s_n_llhttp__internal__n_start_req_13:
10271     s_n_llhttp__internal__n_start_req_13: {
10272       llparse_match_t match_seq;
10273 
10274       if (p == endp) {
10275         return s_n_llhttp__internal__n_start_req_13;
10276       }
10277       match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob25, 2);
10278       p = match_seq.current;
10279       switch (match_seq.status) {
10280         case kMatchComplete: {
10281           p++;
10282           match = 9;
10283           goto s_n_llhttp__internal__n_invoke_store_method_1;
10284         }
10285         case kMatchPause: {
10286           return s_n_llhttp__internal__n_start_req_13;
10287         }
10288         case kMatchMismatch: {
10289           goto s_n_llhttp__internal__n_error_46;
10290         }
10291       }
10292       /* UNREACHABLE */;
10293       abort();
10294     }
10295     case s_n_llhttp__internal__n_start_req_11:
10296     s_n_llhttp__internal__n_start_req_11: {
10297       if (p == endp) {
10298         return s_n_llhttp__internal__n_start_req_11;
10299       }
10300       switch (*p) {
10301         case 'I': {
10302           p++;
10303           goto s_n_llhttp__internal__n_start_req_12;
10304         }
10305         case 'O': {
10306           p++;
10307           goto s_n_llhttp__internal__n_start_req_13;
10308         }
10309         default: {
10310           goto s_n_llhttp__internal__n_error_46;
10311         }
10312       }
10313       /* UNREACHABLE */;
10314       abort();
10315     }
10316     case s_n_llhttp__internal__n_start_req_15:
10317     s_n_llhttp__internal__n_start_req_15: {
10318       llparse_match_t match_seq;
10319 
10320       if (p == endp) {
10321         return s_n_llhttp__internal__n_start_req_15;
10322       }
10323       match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob26, 6);
10324       p = match_seq.current;
10325       switch (match_seq.status) {
10326         case kMatchComplete: {
10327           p++;
10328           match = 24;
10329           goto s_n_llhttp__internal__n_invoke_store_method_1;
10330         }
10331         case kMatchPause: {
10332           return s_n_llhttp__internal__n_start_req_15;
10333         }
10334         case kMatchMismatch: {
10335           goto s_n_llhttp__internal__n_error_46;
10336         }
10337       }
10338       /* UNREACHABLE */;
10339       abort();
10340     }
10341     case s_n_llhttp__internal__n_start_req_16:
10342     s_n_llhttp__internal__n_start_req_16: {
10343       llparse_match_t match_seq;
10344 
10345       if (p == endp) {
10346         return s_n_llhttp__internal__n_start_req_16;
10347       }
10348       match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob27, 3);
10349       p = match_seq.current;
10350       switch (match_seq.status) {
10351         case kMatchComplete: {
10352           p++;
10353           match = 23;
10354           goto s_n_llhttp__internal__n_invoke_store_method_1;
10355         }
10356         case kMatchPause: {
10357           return s_n_llhttp__internal__n_start_req_16;
10358         }
10359         case kMatchMismatch: {
10360           goto s_n_llhttp__internal__n_error_46;
10361         }
10362       }
10363       /* UNREACHABLE */;
10364       abort();
10365     }
10366     case s_n_llhttp__internal__n_start_req_18:
10367     s_n_llhttp__internal__n_start_req_18: {
10368       llparse_match_t match_seq;
10369 
10370       if (p == endp) {
10371         return s_n_llhttp__internal__n_start_req_18;
10372       }
10373       match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob28, 7);
10374       p = match_seq.current;
10375       switch (match_seq.status) {
10376         case kMatchComplete: {
10377           p++;
10378           match = 21;
10379           goto s_n_llhttp__internal__n_invoke_store_method_1;
10380         }
10381         case kMatchPause: {
10382           return s_n_llhttp__internal__n_start_req_18;
10383         }
10384         case kMatchMismatch: {
10385           goto s_n_llhttp__internal__n_error_46;
10386         }
10387       }
10388       /* UNREACHABLE */;
10389       abort();
10390     }
10391     case s_n_llhttp__internal__n_start_req_20:
10392     s_n_llhttp__internal__n_start_req_20: {
10393       llparse_match_t match_seq;
10394 
10395       if (p == endp) {
10396         return s_n_llhttp__internal__n_start_req_20;
10397       }
10398       match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob29, 6);
10399       p = match_seq.current;
10400       switch (match_seq.status) {
10401         case kMatchComplete: {
10402           p++;
10403           match = 30;
10404           goto s_n_llhttp__internal__n_invoke_store_method_1;
10405         }
10406         case kMatchPause: {
10407           return s_n_llhttp__internal__n_start_req_20;
10408         }
10409         case kMatchMismatch: {
10410           goto s_n_llhttp__internal__n_error_46;
10411         }
10412       }
10413       /* UNREACHABLE */;
10414       abort();
10415     }
10416     case s_n_llhttp__internal__n_start_req_21:
10417     s_n_llhttp__internal__n_start_req_21: {
10418       if (p == endp) {
10419         return s_n_llhttp__internal__n_start_req_21;
10420       }
10421       switch (*p) {
10422         case 'L': {
10423           p++;
10424           match = 10;
10425           goto s_n_llhttp__internal__n_invoke_store_method_1;
10426         }
10427         default: {
10428           goto s_n_llhttp__internal__n_error_46;
10429         }
10430       }
10431       /* UNREACHABLE */;
10432       abort();
10433     }
10434     case s_n_llhttp__internal__n_start_req_19:
10435     s_n_llhttp__internal__n_start_req_19: {
10436       if (p == endp) {
10437         return s_n_llhttp__internal__n_start_req_19;
10438       }
10439       switch (*p) {
10440         case 'A': {
10441           p++;
10442           goto s_n_llhttp__internal__n_start_req_20;
10443         }
10444         case 'O': {
10445           p++;
10446           goto s_n_llhttp__internal__n_start_req_21;
10447         }
10448         default: {
10449           goto s_n_llhttp__internal__n_error_46;
10450         }
10451       }
10452       /* UNREACHABLE */;
10453       abort();
10454     }
10455     case s_n_llhttp__internal__n_start_req_17:
10456     s_n_llhttp__internal__n_start_req_17: {
10457       if (p == endp) {
10458         return s_n_llhttp__internal__n_start_req_17;
10459       }
10460       switch (*p) {
10461         case 'A': {
10462           p++;
10463           goto s_n_llhttp__internal__n_start_req_18;
10464         }
10465         case 'C': {
10466           p++;
10467           goto s_n_llhttp__internal__n_start_req_19;
10468         }
10469         default: {
10470           goto s_n_llhttp__internal__n_error_46;
10471         }
10472       }
10473       /* UNREACHABLE */;
10474       abort();
10475     }
10476     case s_n_llhttp__internal__n_start_req_22:
10477     s_n_llhttp__internal__n_start_req_22: {
10478       llparse_match_t match_seq;
10479 
10480       if (p == endp) {
10481         return s_n_llhttp__internal__n_start_req_22;
10482       }
10483       match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob30, 2);
10484       p = match_seq.current;
10485       switch (match_seq.status) {
10486         case kMatchComplete: {
10487           p++;
10488           match = 11;
10489           goto s_n_llhttp__internal__n_invoke_store_method_1;
10490         }
10491         case kMatchPause: {
10492           return s_n_llhttp__internal__n_start_req_22;
10493         }
10494         case kMatchMismatch: {
10495           goto s_n_llhttp__internal__n_error_46;
10496         }
10497       }
10498       /* UNREACHABLE */;
10499       abort();
10500     }
10501     case s_n_llhttp__internal__n_start_req_14:
10502     s_n_llhttp__internal__n_start_req_14: {
10503       if (p == endp) {
10504         return s_n_llhttp__internal__n_start_req_14;
10505       }
10506       switch (*p) {
10507         case '-': {
10508           p++;
10509           goto s_n_llhttp__internal__n_start_req_15;
10510         }
10511         case 'E': {
10512           p++;
10513           goto s_n_llhttp__internal__n_start_req_16;
10514         }
10515         case 'K': {
10516           p++;
10517           goto s_n_llhttp__internal__n_start_req_17;
10518         }
10519         case 'O': {
10520           p++;
10521           goto s_n_llhttp__internal__n_start_req_22;
10522         }
10523         default: {
10524           goto s_n_llhttp__internal__n_error_46;
10525         }
10526       }
10527       /* UNREACHABLE */;
10528       abort();
10529     }
10530     case s_n_llhttp__internal__n_start_req_23:
10531     s_n_llhttp__internal__n_start_req_23: {
10532       llparse_match_t match_seq;
10533 
10534       if (p == endp) {
10535         return s_n_llhttp__internal__n_start_req_23;
10536       }
10537       match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob31, 5);
10538       p = match_seq.current;
10539       switch (match_seq.status) {
10540         case kMatchComplete: {
10541           p++;
10542           match = 25;
10543           goto s_n_llhttp__internal__n_invoke_store_method_1;
10544         }
10545         case kMatchPause: {
10546           return s_n_llhttp__internal__n_start_req_23;
10547         }
10548         case kMatchMismatch: {
10549           goto s_n_llhttp__internal__n_error_46;
10550         }
10551       }
10552       /* UNREACHABLE */;
10553       abort();
10554     }
10555     case s_n_llhttp__internal__n_start_req_24:
10556     s_n_llhttp__internal__n_start_req_24: {
10557       llparse_match_t match_seq;
10558 
10559       if (p == endp) {
10560         return s_n_llhttp__internal__n_start_req_24;
10561       }
10562       match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob32, 6);
10563       p = match_seq.current;
10564       switch (match_seq.status) {
10565         case kMatchComplete: {
10566           p++;
10567           match = 6;
10568           goto s_n_llhttp__internal__n_invoke_store_method_1;
10569         }
10570         case kMatchPause: {
10571           return s_n_llhttp__internal__n_start_req_24;
10572         }
10573         case kMatchMismatch: {
10574           goto s_n_llhttp__internal__n_error_46;
10575         }
10576       }
10577       /* UNREACHABLE */;
10578       abort();
10579     }
10580     case s_n_llhttp__internal__n_start_req_26:
10581     s_n_llhttp__internal__n_start_req_26: {
10582       llparse_match_t match_seq;
10583 
10584       if (p == endp) {
10585         return s_n_llhttp__internal__n_start_req_26;
10586       }
10587       match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob33, 3);
10588       p = match_seq.current;
10589       switch (match_seq.status) {
10590         case kMatchComplete: {
10591           p++;
10592           match = 28;
10593           goto s_n_llhttp__internal__n_invoke_store_method_1;
10594         }
10595         case kMatchPause: {
10596           return s_n_llhttp__internal__n_start_req_26;
10597         }
10598         case kMatchMismatch: {
10599           goto s_n_llhttp__internal__n_error_46;
10600         }
10601       }
10602       /* UNREACHABLE */;
10603       abort();
10604     }
10605     case s_n_llhttp__internal__n_start_req_27:
10606     s_n_llhttp__internal__n_start_req_27: {
10607       llparse_match_t match_seq;
10608 
10609       if (p == endp) {
10610         return s_n_llhttp__internal__n_start_req_27;
10611       }
10612       match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob34, 2);
10613       p = match_seq.current;
10614       switch (match_seq.status) {
10615         case kMatchComplete: {
10616           p++;
10617           match = 3;
10618           goto s_n_llhttp__internal__n_invoke_store_method_1;
10619         }
10620         case kMatchPause: {
10621           return s_n_llhttp__internal__n_start_req_27;
10622         }
10623         case kMatchMismatch: {
10624           goto s_n_llhttp__internal__n_error_46;
10625         }
10626       }
10627       /* UNREACHABLE */;
10628       abort();
10629     }
10630     case s_n_llhttp__internal__n_start_req_31:
10631     s_n_llhttp__internal__n_start_req_31: {
10632       llparse_match_t match_seq;
10633 
10634       if (p == endp) {
10635         return s_n_llhttp__internal__n_start_req_31;
10636       }
10637       match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob35, 3);
10638       p = match_seq.current;
10639       switch (match_seq.status) {
10640         case kMatchComplete: {
10641           p++;
10642           match = 12;
10643           goto s_n_llhttp__internal__n_invoke_store_method_1;
10644         }
10645         case kMatchPause: {
10646           return s_n_llhttp__internal__n_start_req_31;
10647         }
10648         case kMatchMismatch: {
10649           goto s_n_llhttp__internal__n_error_46;
10650         }
10651       }
10652       /* UNREACHABLE */;
10653       abort();
10654     }
10655     case s_n_llhttp__internal__n_start_req_32:
10656     s_n_llhttp__internal__n_start_req_32: {
10657       llparse_match_t match_seq;
10658 
10659       if (p == endp) {
10660         return s_n_llhttp__internal__n_start_req_32;
10661       }
10662       match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob36, 4);
10663       p = match_seq.current;
10664       switch (match_seq.status) {
10665         case kMatchComplete: {
10666           p++;
10667           match = 13;
10668           goto s_n_llhttp__internal__n_invoke_store_method_1;
10669         }
10670         case kMatchPause: {
10671           return s_n_llhttp__internal__n_start_req_32;
10672         }
10673         case kMatchMismatch: {
10674           goto s_n_llhttp__internal__n_error_46;
10675         }
10676       }
10677       /* UNREACHABLE */;
10678       abort();
10679     }
10680     case s_n_llhttp__internal__n_start_req_30:
10681     s_n_llhttp__internal__n_start_req_30: {
10682       if (p == endp) {
10683         return s_n_llhttp__internal__n_start_req_30;
10684       }
10685       switch (*p) {
10686         case 'F': {
10687           p++;
10688           goto s_n_llhttp__internal__n_start_req_31;
10689         }
10690         case 'P': {
10691           p++;
10692           goto s_n_llhttp__internal__n_start_req_32;
10693         }
10694         default: {
10695           goto s_n_llhttp__internal__n_error_46;
10696         }
10697       }
10698       /* UNREACHABLE */;
10699       abort();
10700     }
10701     case s_n_llhttp__internal__n_start_req_29:
10702     s_n_llhttp__internal__n_start_req_29: {
10703       if (p == endp) {
10704         return s_n_llhttp__internal__n_start_req_29;
10705       }
10706       switch (*p) {
10707         case 'P': {
10708           p++;
10709           goto s_n_llhttp__internal__n_start_req_30;
10710         }
10711         default: {
10712           goto s_n_llhttp__internal__n_error_46;
10713         }
10714       }
10715       /* UNREACHABLE */;
10716       abort();
10717     }
10718     case s_n_llhttp__internal__n_start_req_28:
10719     s_n_llhttp__internal__n_start_req_28: {
10720       if (p == endp) {
10721         return s_n_llhttp__internal__n_start_req_28;
10722       }
10723       switch (*p) {
10724         case 'I': {
10725           p++;
10726           match = 34;
10727           goto s_n_llhttp__internal__n_invoke_store_method_1;
10728         }
10729         case 'O': {
10730           p++;
10731           goto s_n_llhttp__internal__n_start_req_29;
10732         }
10733         default: {
10734           goto s_n_llhttp__internal__n_error_46;
10735         }
10736       }
10737       /* UNREACHABLE */;
10738       abort();
10739     }
10740     case s_n_llhttp__internal__n_start_req_34:
10741     s_n_llhttp__internal__n_start_req_34: {
10742       llparse_match_t match_seq;
10743 
10744       if (p == endp) {
10745         return s_n_llhttp__internal__n_start_req_34;
10746       }
10747       match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob37, 2);
10748       p = match_seq.current;
10749       switch (match_seq.status) {
10750         case kMatchComplete: {
10751           p++;
10752           match = 29;
10753           goto s_n_llhttp__internal__n_invoke_store_method_1;
10754         }
10755         case kMatchPause: {
10756           return s_n_llhttp__internal__n_start_req_34;
10757         }
10758         case kMatchMismatch: {
10759           goto s_n_llhttp__internal__n_error_46;
10760         }
10761       }
10762       /* UNREACHABLE */;
10763       abort();
10764     }
10765     case s_n_llhttp__internal__n_start_req_33:
10766     s_n_llhttp__internal__n_start_req_33: {
10767       if (p == endp) {
10768         return s_n_llhttp__internal__n_start_req_33;
10769       }
10770       switch (*p) {
10771         case 'R': {
10772           p++;
10773           goto s_n_llhttp__internal__n_start_req_34;
10774         }
10775         case 'T': {
10776           p++;
10777           match = 4;
10778           goto s_n_llhttp__internal__n_invoke_store_method_1;
10779         }
10780         default: {
10781           goto s_n_llhttp__internal__n_error_46;
10782         }
10783       }
10784       /* UNREACHABLE */;
10785       abort();
10786     }
10787     case s_n_llhttp__internal__n_start_req_25:
10788     s_n_llhttp__internal__n_start_req_25: {
10789       if (p == endp) {
10790         return s_n_llhttp__internal__n_start_req_25;
10791       }
10792       switch (*p) {
10793         case 'A': {
10794           p++;
10795           goto s_n_llhttp__internal__n_start_req_26;
10796         }
10797         case 'O': {
10798           p++;
10799           goto s_n_llhttp__internal__n_start_req_27;
10800         }
10801         case 'R': {
10802           p++;
10803           goto s_n_llhttp__internal__n_start_req_28;
10804         }
10805         case 'U': {
10806           p++;
10807           goto s_n_llhttp__internal__n_start_req_33;
10808         }
10809         default: {
10810           goto s_n_llhttp__internal__n_error_46;
10811         }
10812       }
10813       /* UNREACHABLE */;
10814       abort();
10815     }
10816     case s_n_llhttp__internal__n_start_req_37:
10817     s_n_llhttp__internal__n_start_req_37: {
10818       llparse_match_t match_seq;
10819 
10820       if (p == endp) {
10821         return s_n_llhttp__internal__n_start_req_37;
10822       }
10823       match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob38, 3);
10824       p = match_seq.current;
10825       switch (match_seq.status) {
10826         case kMatchComplete: {
10827           p++;
10828           match = 17;
10829           goto s_n_llhttp__internal__n_invoke_store_method_1;
10830         }
10831         case kMatchPause: {
10832           return s_n_llhttp__internal__n_start_req_37;
10833         }
10834         case kMatchMismatch: {
10835           goto s_n_llhttp__internal__n_error_46;
10836         }
10837       }
10838       /* UNREACHABLE */;
10839       abort();
10840     }
10841     case s_n_llhttp__internal__n_start_req_38:
10842     s_n_llhttp__internal__n_start_req_38: {
10843       llparse_match_t match_seq;
10844 
10845       if (p == endp) {
10846         return s_n_llhttp__internal__n_start_req_38;
10847       }
10848       match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob39, 3);
10849       p = match_seq.current;
10850       switch (match_seq.status) {
10851         case kMatchComplete: {
10852           p++;
10853           match = 20;
10854           goto s_n_llhttp__internal__n_invoke_store_method_1;
10855         }
10856         case kMatchPause: {
10857           return s_n_llhttp__internal__n_start_req_38;
10858         }
10859         case kMatchMismatch: {
10860           goto s_n_llhttp__internal__n_error_46;
10861         }
10862       }
10863       /* UNREACHABLE */;
10864       abort();
10865     }
10866     case s_n_llhttp__internal__n_start_req_36:
10867     s_n_llhttp__internal__n_start_req_36: {
10868       if (p == endp) {
10869         return s_n_llhttp__internal__n_start_req_36;
10870       }
10871       switch (*p) {
10872         case 'B': {
10873           p++;
10874           goto s_n_llhttp__internal__n_start_req_37;
10875         }
10876         case 'P': {
10877           p++;
10878           goto s_n_llhttp__internal__n_start_req_38;
10879         }
10880         default: {
10881           goto s_n_llhttp__internal__n_error_46;
10882         }
10883       }
10884       /* UNREACHABLE */;
10885       abort();
10886     }
10887     case s_n_llhttp__internal__n_start_req_35:
10888     s_n_llhttp__internal__n_start_req_35: {
10889       if (p == endp) {
10890         return s_n_llhttp__internal__n_start_req_35;
10891       }
10892       switch (*p) {
10893         case 'E': {
10894           p++;
10895           goto s_n_llhttp__internal__n_start_req_36;
10896         }
10897         default: {
10898           goto s_n_llhttp__internal__n_error_46;
10899         }
10900       }
10901       /* UNREACHABLE */;
10902       abort();
10903     }
10904     case s_n_llhttp__internal__n_start_req_40:
10905     s_n_llhttp__internal__n_start_req_40: {
10906       llparse_match_t match_seq;
10907 
10908       if (p == endp) {
10909         return s_n_llhttp__internal__n_start_req_40;
10910       }
10911       match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob40, 4);
10912       p = match_seq.current;
10913       switch (match_seq.status) {
10914         case kMatchComplete: {
10915           p++;
10916           match = 14;
10917           goto s_n_llhttp__internal__n_invoke_store_method_1;
10918         }
10919         case kMatchPause: {
10920           return s_n_llhttp__internal__n_start_req_40;
10921         }
10922         case kMatchMismatch: {
10923           goto s_n_llhttp__internal__n_error_46;
10924         }
10925       }
10926       /* UNREACHABLE */;
10927       abort();
10928     }
10929     case s_n_llhttp__internal__n_start_req_41:
10930     s_n_llhttp__internal__n_start_req_41: {
10931       llparse_match_t match_seq;
10932 
10933       if (p == endp) {
10934         return s_n_llhttp__internal__n_start_req_41;
10935       }
10936       match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob41, 4);
10937       p = match_seq.current;
10938       switch (match_seq.status) {
10939         case kMatchComplete: {
10940           p++;
10941           match = 33;
10942           goto s_n_llhttp__internal__n_invoke_store_method_1;
10943         }
10944         case kMatchPause: {
10945           return s_n_llhttp__internal__n_start_req_41;
10946         }
10947         case kMatchMismatch: {
10948           goto s_n_llhttp__internal__n_error_46;
10949         }
10950       }
10951       /* UNREACHABLE */;
10952       abort();
10953     }
10954     case s_n_llhttp__internal__n_start_req_42:
10955     s_n_llhttp__internal__n_start_req_42: {
10956       llparse_match_t match_seq;
10957 
10958       if (p == endp) {
10959         return s_n_llhttp__internal__n_start_req_42;
10960       }
10961       match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob42, 7);
10962       p = match_seq.current;
10963       switch (match_seq.status) {
10964         case kMatchComplete: {
10965           p++;
10966           match = 26;
10967           goto s_n_llhttp__internal__n_invoke_store_method_1;
10968         }
10969         case kMatchPause: {
10970           return s_n_llhttp__internal__n_start_req_42;
10971         }
10972         case kMatchMismatch: {
10973           goto s_n_llhttp__internal__n_error_46;
10974         }
10975       }
10976       /* UNREACHABLE */;
10977       abort();
10978     }
10979     case s_n_llhttp__internal__n_start_req_39:
10980     s_n_llhttp__internal__n_start_req_39: {
10981       if (p == endp) {
10982         return s_n_llhttp__internal__n_start_req_39;
10983       }
10984       switch (*p) {
10985         case 'E': {
10986           p++;
10987           goto s_n_llhttp__internal__n_start_req_40;
10988         }
10989         case 'O': {
10990           p++;
10991           goto s_n_llhttp__internal__n_start_req_41;
10992         }
10993         case 'U': {
10994           p++;
10995           goto s_n_llhttp__internal__n_start_req_42;
10996         }
10997         default: {
10998           goto s_n_llhttp__internal__n_error_46;
10999         }
11000       }
11001       /* UNREACHABLE */;
11002       abort();
11003     }
11004     case s_n_llhttp__internal__n_start_req_43:
11005     s_n_llhttp__internal__n_start_req_43: {
11006       llparse_match_t match_seq;
11007 
11008       if (p == endp) {
11009         return s_n_llhttp__internal__n_start_req_43;
11010       }
11011       match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob43, 4);
11012       p = match_seq.current;
11013       switch (match_seq.status) {
11014         case kMatchComplete: {
11015           p++;
11016           match = 7;
11017           goto s_n_llhttp__internal__n_invoke_store_method_1;
11018         }
11019         case kMatchPause: {
11020           return s_n_llhttp__internal__n_start_req_43;
11021         }
11022         case kMatchMismatch: {
11023           goto s_n_llhttp__internal__n_error_46;
11024         }
11025       }
11026       /* UNREACHABLE */;
11027       abort();
11028     }
11029     case s_n_llhttp__internal__n_start_req_46:
11030     s_n_llhttp__internal__n_start_req_46: {
11031       llparse_match_t match_seq;
11032 
11033       if (p == endp) {
11034         return s_n_llhttp__internal__n_start_req_46;
11035       }
11036       match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob44, 3);
11037       p = match_seq.current;
11038       switch (match_seq.status) {
11039         case kMatchComplete: {
11040           p++;
11041           match = 18;
11042           goto s_n_llhttp__internal__n_invoke_store_method_1;
11043         }
11044         case kMatchPause: {
11045           return s_n_llhttp__internal__n_start_req_46;
11046         }
11047         case kMatchMismatch: {
11048           goto s_n_llhttp__internal__n_error_46;
11049         }
11050       }
11051       /* UNREACHABLE */;
11052       abort();
11053     }
11054     case s_n_llhttp__internal__n_start_req_48:
11055     s_n_llhttp__internal__n_start_req_48: {
11056       llparse_match_t match_seq;
11057 
11058       if (p == endp) {
11059         return s_n_llhttp__internal__n_start_req_48;
11060       }
11061       match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob45, 2);
11062       p = match_seq.current;
11063       switch (match_seq.status) {
11064         case kMatchComplete: {
11065           p++;
11066           match = 32;
11067           goto s_n_llhttp__internal__n_invoke_store_method_1;
11068         }
11069         case kMatchPause: {
11070           return s_n_llhttp__internal__n_start_req_48;
11071         }
11072         case kMatchMismatch: {
11073           goto s_n_llhttp__internal__n_error_46;
11074         }
11075       }
11076       /* UNREACHABLE */;
11077       abort();
11078     }
11079     case s_n_llhttp__internal__n_start_req_49:
11080     s_n_llhttp__internal__n_start_req_49: {
11081       llparse_match_t match_seq;
11082 
11083       if (p == endp) {
11084         return s_n_llhttp__internal__n_start_req_49;
11085       }
11086       match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob46, 2);
11087       p = match_seq.current;
11088       switch (match_seq.status) {
11089         case kMatchComplete: {
11090           p++;
11091           match = 15;
11092           goto s_n_llhttp__internal__n_invoke_store_method_1;
11093         }
11094         case kMatchPause: {
11095           return s_n_llhttp__internal__n_start_req_49;
11096         }
11097         case kMatchMismatch: {
11098           goto s_n_llhttp__internal__n_error_46;
11099         }
11100       }
11101       /* UNREACHABLE */;
11102       abort();
11103     }
11104     case s_n_llhttp__internal__n_start_req_47:
11105     s_n_llhttp__internal__n_start_req_47: {
11106       if (p == endp) {
11107         return s_n_llhttp__internal__n_start_req_47;
11108       }
11109       switch (*p) {
11110         case 'I': {
11111           p++;
11112           goto s_n_llhttp__internal__n_start_req_48;
11113         }
11114         case 'O': {
11115           p++;
11116           goto s_n_llhttp__internal__n_start_req_49;
11117         }
11118         default: {
11119           goto s_n_llhttp__internal__n_error_46;
11120         }
11121       }
11122       /* UNREACHABLE */;
11123       abort();
11124     }
11125     case s_n_llhttp__internal__n_start_req_50:
11126     s_n_llhttp__internal__n_start_req_50: {
11127       llparse_match_t match_seq;
11128 
11129       if (p == endp) {
11130         return s_n_llhttp__internal__n_start_req_50;
11131       }
11132       match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob47, 8);
11133       p = match_seq.current;
11134       switch (match_seq.status) {
11135         case kMatchComplete: {
11136           p++;
11137           match = 27;
11138           goto s_n_llhttp__internal__n_invoke_store_method_1;
11139         }
11140         case kMatchPause: {
11141           return s_n_llhttp__internal__n_start_req_50;
11142         }
11143         case kMatchMismatch: {
11144           goto s_n_llhttp__internal__n_error_46;
11145         }
11146       }
11147       /* UNREACHABLE */;
11148       abort();
11149     }
11150     case s_n_llhttp__internal__n_start_req_45:
11151     s_n_llhttp__internal__n_start_req_45: {
11152       if (p == endp) {
11153         return s_n_llhttp__internal__n_start_req_45;
11154       }
11155       switch (*p) {
11156         case 'B': {
11157           p++;
11158           goto s_n_llhttp__internal__n_start_req_46;
11159         }
11160         case 'L': {
11161           p++;
11162           goto s_n_llhttp__internal__n_start_req_47;
11163         }
11164         case 'S': {
11165           p++;
11166           goto s_n_llhttp__internal__n_start_req_50;
11167         }
11168         default: {
11169           goto s_n_llhttp__internal__n_error_46;
11170         }
11171       }
11172       /* UNREACHABLE */;
11173       abort();
11174     }
11175     case s_n_llhttp__internal__n_start_req_44:
11176     s_n_llhttp__internal__n_start_req_44: {
11177       if (p == endp) {
11178         return s_n_llhttp__internal__n_start_req_44;
11179       }
11180       switch (*p) {
11181         case 'N': {
11182           p++;
11183           goto s_n_llhttp__internal__n_start_req_45;
11184         }
11185         default: {
11186           goto s_n_llhttp__internal__n_error_46;
11187         }
11188       }
11189       /* UNREACHABLE */;
11190       abort();
11191     }
11192     case s_n_llhttp__internal__n_start_req:
11193     s_n_llhttp__internal__n_start_req: {
11194       if (p == endp) {
11195         return s_n_llhttp__internal__n_start_req;
11196       }
11197       switch (*p) {
11198         case 'A': {
11199           p++;
11200           goto s_n_llhttp__internal__n_start_req_1;
11201         }
11202         case 'B': {
11203           p++;
11204           goto s_n_llhttp__internal__n_start_req_2;
11205         }
11206         case 'C': {
11207           p++;
11208           goto s_n_llhttp__internal__n_start_req_3;
11209         }
11210         case 'D': {
11211           p++;
11212           goto s_n_llhttp__internal__n_start_req_8;
11213         }
11214         case 'G': {
11215           p++;
11216           goto s_n_llhttp__internal__n_start_req_9;
11217         }
11218         case 'H': {
11219           p++;
11220           goto s_n_llhttp__internal__n_start_req_10;
11221         }
11222         case 'L': {
11223           p++;
11224           goto s_n_llhttp__internal__n_start_req_11;
11225         }
11226         case 'M': {
11227           p++;
11228           goto s_n_llhttp__internal__n_start_req_14;
11229         }
11230         case 'N': {
11231           p++;
11232           goto s_n_llhttp__internal__n_start_req_23;
11233         }
11234         case 'O': {
11235           p++;
11236           goto s_n_llhttp__internal__n_start_req_24;
11237         }
11238         case 'P': {
11239           p++;
11240           goto s_n_llhttp__internal__n_start_req_25;
11241         }
11242         case 'R': {
11243           p++;
11244           goto s_n_llhttp__internal__n_start_req_35;
11245         }
11246         case 'S': {
11247           p++;
11248           goto s_n_llhttp__internal__n_start_req_39;
11249         }
11250         case 'T': {
11251           p++;
11252           goto s_n_llhttp__internal__n_start_req_43;
11253         }
11254         case 'U': {
11255           p++;
11256           goto s_n_llhttp__internal__n_start_req_44;
11257         }
11258         default: {
11259           goto s_n_llhttp__internal__n_error_46;
11260         }
11261       }
11262       /* UNREACHABLE */;
11263       abort();
11264     }
11265     case s_n_llhttp__internal__n_res_line_almost_done:
11266     s_n_llhttp__internal__n_res_line_almost_done: {
11267       if (p == endp) {
11268         return s_n_llhttp__internal__n_res_line_almost_done;
11269       }
11270       p++;
11271       goto s_n_llhttp__internal__n_header_field_start;
11272       /* UNREACHABLE */;
11273       abort();
11274     }
11275     case s_n_llhttp__internal__n_res_status:
11276     s_n_llhttp__internal__n_res_status: {
11277       if (p == endp) {
11278         return s_n_llhttp__internal__n_res_status;
11279       }
11280       switch (*p) {
11281         case 10: {
11282           goto s_n_llhttp__internal__n_span_end_llhttp__on_status;
11283         }
11284         case 13: {
11285           goto s_n_llhttp__internal__n_span_end_llhttp__on_status_1;
11286         }
11287         default: {
11288           p++;
11289           goto s_n_llhttp__internal__n_res_status;
11290         }
11291       }
11292       /* UNREACHABLE */;
11293       abort();
11294     }
11295     case s_n_llhttp__internal__n_span_start_llhttp__on_status:
11296     s_n_llhttp__internal__n_span_start_llhttp__on_status: {
11297       if (p == endp) {
11298         return s_n_llhttp__internal__n_span_start_llhttp__on_status;
11299       }
11300       state->_span_pos0 = (void*) p;
11301       state->_span_cb0 = llhttp__on_status;
11302       goto s_n_llhttp__internal__n_res_status;
11303       /* UNREACHABLE */;
11304       abort();
11305     }
11306     case s_n_llhttp__internal__n_res_status_start:
11307     s_n_llhttp__internal__n_res_status_start: {
11308       if (p == endp) {
11309         return s_n_llhttp__internal__n_res_status_start;
11310       }
11311       switch (*p) {
11312         case 10: {
11313           p++;
11314           goto s_n_llhttp__internal__n_header_field_start;
11315         }
11316         case 13: {
11317           p++;
11318           goto s_n_llhttp__internal__n_res_line_almost_done;
11319         }
11320         default: {
11321           goto s_n_llhttp__internal__n_span_start_llhttp__on_status;
11322         }
11323       }
11324       /* UNREACHABLE */;
11325       abort();
11326     }
11327     case s_n_llhttp__internal__n_res_status_code_otherwise:
11328     s_n_llhttp__internal__n_res_status_code_otherwise: {
11329       if (p == endp) {
11330         return s_n_llhttp__internal__n_res_status_code_otherwise;
11331       }
11332       switch (*p) {
11333         case 10: {
11334           goto s_n_llhttp__internal__n_res_status_start;
11335         }
11336         case 13: {
11337           goto s_n_llhttp__internal__n_res_status_start;
11338         }
11339         case ' ': {
11340           p++;
11341           goto s_n_llhttp__internal__n_res_status_start;
11342         }
11343         default: {
11344           goto s_n_llhttp__internal__n_error_40;
11345         }
11346       }
11347       /* UNREACHABLE */;
11348       abort();
11349     }
11350     case s_n_llhttp__internal__n_res_status_code:
11351     s_n_llhttp__internal__n_res_status_code: {
11352       if (p == endp) {
11353         return s_n_llhttp__internal__n_res_status_code;
11354       }
11355       switch (*p) {
11356         case '0': {
11357           p++;
11358           match = 0;
11359           goto s_n_llhttp__internal__n_invoke_mul_add_status_code;
11360         }
11361         case '1': {
11362           p++;
11363           match = 1;
11364           goto s_n_llhttp__internal__n_invoke_mul_add_status_code;
11365         }
11366         case '2': {
11367           p++;
11368           match = 2;
11369           goto s_n_llhttp__internal__n_invoke_mul_add_status_code;
11370         }
11371         case '3': {
11372           p++;
11373           match = 3;
11374           goto s_n_llhttp__internal__n_invoke_mul_add_status_code;
11375         }
11376         case '4': {
11377           p++;
11378           match = 4;
11379           goto s_n_llhttp__internal__n_invoke_mul_add_status_code;
11380         }
11381         case '5': {
11382           p++;
11383           match = 5;
11384           goto s_n_llhttp__internal__n_invoke_mul_add_status_code;
11385         }
11386         case '6': {
11387           p++;
11388           match = 6;
11389           goto s_n_llhttp__internal__n_invoke_mul_add_status_code;
11390         }
11391         case '7': {
11392           p++;
11393           match = 7;
11394           goto s_n_llhttp__internal__n_invoke_mul_add_status_code;
11395         }
11396         case '8': {
11397           p++;
11398           match = 8;
11399           goto s_n_llhttp__internal__n_invoke_mul_add_status_code;
11400         }
11401         case '9': {
11402           p++;
11403           match = 9;
11404           goto s_n_llhttp__internal__n_invoke_mul_add_status_code;
11405         }
11406         default: {
11407           goto s_n_llhttp__internal__n_res_status_code_otherwise;
11408         }
11409       }
11410       /* UNREACHABLE */;
11411       abort();
11412     }
11413     case s_n_llhttp__internal__n_res_http_end:
11414     s_n_llhttp__internal__n_res_http_end: {
11415       if (p == endp) {
11416         return s_n_llhttp__internal__n_res_http_end;
11417       }
11418       switch (*p) {
11419         case ' ': {
11420           p++;
11421           goto s_n_llhttp__internal__n_invoke_update_status_code;
11422         }
11423         default: {
11424           goto s_n_llhttp__internal__n_error_41;
11425         }
11426       }
11427       /* UNREACHABLE */;
11428       abort();
11429     }
11430     case s_n_llhttp__internal__n_res_http_minor:
11431     s_n_llhttp__internal__n_res_http_minor: {
11432       if (p == endp) {
11433         return s_n_llhttp__internal__n_res_http_minor;
11434       }
11435       switch (*p) {
11436         case '0': {
11437           p++;
11438           match = 0;
11439           goto s_n_llhttp__internal__n_invoke_store_http_minor_1;
11440         }
11441         case '1': {
11442           p++;
11443           match = 1;
11444           goto s_n_llhttp__internal__n_invoke_store_http_minor_1;
11445         }
11446         case '2': {
11447           p++;
11448           match = 2;
11449           goto s_n_llhttp__internal__n_invoke_store_http_minor_1;
11450         }
11451         case '3': {
11452           p++;
11453           match = 3;
11454           goto s_n_llhttp__internal__n_invoke_store_http_minor_1;
11455         }
11456         case '4': {
11457           p++;
11458           match = 4;
11459           goto s_n_llhttp__internal__n_invoke_store_http_minor_1;
11460         }
11461         case '5': {
11462           p++;
11463           match = 5;
11464           goto s_n_llhttp__internal__n_invoke_store_http_minor_1;
11465         }
11466         case '6': {
11467           p++;
11468           match = 6;
11469           goto s_n_llhttp__internal__n_invoke_store_http_minor_1;
11470         }
11471         case '7': {
11472           p++;
11473           match = 7;
11474           goto s_n_llhttp__internal__n_invoke_store_http_minor_1;
11475         }
11476         case '8': {
11477           p++;
11478           match = 8;
11479           goto s_n_llhttp__internal__n_invoke_store_http_minor_1;
11480         }
11481         case '9': {
11482           p++;
11483           match = 9;
11484           goto s_n_llhttp__internal__n_invoke_store_http_minor_1;
11485         }
11486         default: {
11487           goto s_n_llhttp__internal__n_error_42;
11488         }
11489       }
11490       /* UNREACHABLE */;
11491       abort();
11492     }
11493     case s_n_llhttp__internal__n_res_http_dot:
11494     s_n_llhttp__internal__n_res_http_dot: {
11495       if (p == endp) {
11496         return s_n_llhttp__internal__n_res_http_dot;
11497       }
11498       switch (*p) {
11499         case '.': {
11500           p++;
11501           goto s_n_llhttp__internal__n_res_http_minor;
11502         }
11503         default: {
11504           goto s_n_llhttp__internal__n_error_43;
11505         }
11506       }
11507       /* UNREACHABLE */;
11508       abort();
11509     }
11510     case s_n_llhttp__internal__n_res_http_major:
11511     s_n_llhttp__internal__n_res_http_major: {
11512       if (p == endp) {
11513         return s_n_llhttp__internal__n_res_http_major;
11514       }
11515       switch (*p) {
11516         case '0': {
11517           p++;
11518           match = 0;
11519           goto s_n_llhttp__internal__n_invoke_store_http_major_1;
11520         }
11521         case '1': {
11522           p++;
11523           match = 1;
11524           goto s_n_llhttp__internal__n_invoke_store_http_major_1;
11525         }
11526         case '2': {
11527           p++;
11528           match = 2;
11529           goto s_n_llhttp__internal__n_invoke_store_http_major_1;
11530         }
11531         case '3': {
11532           p++;
11533           match = 3;
11534           goto s_n_llhttp__internal__n_invoke_store_http_major_1;
11535         }
11536         case '4': {
11537           p++;
11538           match = 4;
11539           goto s_n_llhttp__internal__n_invoke_store_http_major_1;
11540         }
11541         case '5': {
11542           p++;
11543           match = 5;
11544           goto s_n_llhttp__internal__n_invoke_store_http_major_1;
11545         }
11546         case '6': {
11547           p++;
11548           match = 6;
11549           goto s_n_llhttp__internal__n_invoke_store_http_major_1;
11550         }
11551         case '7': {
11552           p++;
11553           match = 7;
11554           goto s_n_llhttp__internal__n_invoke_store_http_major_1;
11555         }
11556         case '8': {
11557           p++;
11558           match = 8;
11559           goto s_n_llhttp__internal__n_invoke_store_http_major_1;
11560         }
11561         case '9': {
11562           p++;
11563           match = 9;
11564           goto s_n_llhttp__internal__n_invoke_store_http_major_1;
11565         }
11566         default: {
11567           goto s_n_llhttp__internal__n_error_44;
11568         }
11569       }
11570       /* UNREACHABLE */;
11571       abort();
11572     }
11573     case s_n_llhttp__internal__n_start_res:
11574     s_n_llhttp__internal__n_start_res: {
11575       llparse_match_t match_seq;
11576 
11577       if (p == endp) {
11578         return s_n_llhttp__internal__n_start_res;
11579       }
11580       match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob48, 5);
11581       p = match_seq.current;
11582       switch (match_seq.status) {
11583         case kMatchComplete: {
11584           p++;
11585           goto s_n_llhttp__internal__n_res_http_major;
11586         }
11587         case kMatchPause: {
11588           return s_n_llhttp__internal__n_start_res;
11589         }
11590         case kMatchMismatch: {
11591           goto s_n_llhttp__internal__n_error_47;
11592         }
11593       }
11594       /* UNREACHABLE */;
11595       abort();
11596     }
11597     case s_n_llhttp__internal__n_req_or_res_method_2:
11598     s_n_llhttp__internal__n_req_or_res_method_2: {
11599       llparse_match_t match_seq;
11600 
11601       if (p == endp) {
11602         return s_n_llhttp__internal__n_req_or_res_method_2;
11603       }
11604       match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob49, 2);
11605       p = match_seq.current;
11606       switch (match_seq.status) {
11607         case kMatchComplete: {
11608           p++;
11609           match = 2;
11610           goto s_n_llhttp__internal__n_invoke_store_method;
11611         }
11612         case kMatchPause: {
11613           return s_n_llhttp__internal__n_req_or_res_method_2;
11614         }
11615         case kMatchMismatch: {
11616           goto s_n_llhttp__internal__n_error_45;
11617         }
11618       }
11619       /* UNREACHABLE */;
11620       abort();
11621     }
11622     case s_n_llhttp__internal__n_req_or_res_method_3:
11623     s_n_llhttp__internal__n_req_or_res_method_3: {
11624       llparse_match_t match_seq;
11625 
11626       if (p == endp) {
11627         return s_n_llhttp__internal__n_req_or_res_method_3;
11628       }
11629       match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob50, 3);
11630       p = match_seq.current;
11631       switch (match_seq.status) {
11632         case kMatchComplete: {
11633           p++;
11634           goto s_n_llhttp__internal__n_invoke_update_type_1;
11635         }
11636         case kMatchPause: {
11637           return s_n_llhttp__internal__n_req_or_res_method_3;
11638         }
11639         case kMatchMismatch: {
11640           goto s_n_llhttp__internal__n_error_45;
11641         }
11642       }
11643       /* UNREACHABLE */;
11644       abort();
11645     }
11646     case s_n_llhttp__internal__n_req_or_res_method_1:
11647     s_n_llhttp__internal__n_req_or_res_method_1: {
11648       if (p == endp) {
11649         return s_n_llhttp__internal__n_req_or_res_method_1;
11650       }
11651       switch (*p) {
11652         case 'E': {
11653           p++;
11654           goto s_n_llhttp__internal__n_req_or_res_method_2;
11655         }
11656         case 'T': {
11657           p++;
11658           goto s_n_llhttp__internal__n_req_or_res_method_3;
11659         }
11660         default: {
11661           goto s_n_llhttp__internal__n_error_45;
11662         }
11663       }
11664       /* UNREACHABLE */;
11665       abort();
11666     }
11667     case s_n_llhttp__internal__n_req_or_res_method:
11668     s_n_llhttp__internal__n_req_or_res_method: {
11669       if (p == endp) {
11670         return s_n_llhttp__internal__n_req_or_res_method;
11671       }
11672       switch (*p) {
11673         case 'H': {
11674           p++;
11675           goto s_n_llhttp__internal__n_req_or_res_method_1;
11676         }
11677         default: {
11678           goto s_n_llhttp__internal__n_error_45;
11679         }
11680       }
11681       /* UNREACHABLE */;
11682       abort();
11683     }
11684     case s_n_llhttp__internal__n_start_req_or_res:
11685     s_n_llhttp__internal__n_start_req_or_res: {
11686       if (p == endp) {
11687         return s_n_llhttp__internal__n_start_req_or_res;
11688       }
11689       switch (*p) {
11690         case 'H': {
11691           goto s_n_llhttp__internal__n_req_or_res_method;
11692         }
11693         default: {
11694           goto s_n_llhttp__internal__n_invoke_update_type_2;
11695         }
11696       }
11697       /* UNREACHABLE */;
11698       abort();
11699     }
11700     case s_n_llhttp__internal__n_invoke_load_type:
11701     s_n_llhttp__internal__n_invoke_load_type: {
11702       switch (llhttp__internal__c_load_type(state, p, endp)) {
11703         case 1:
11704           goto s_n_llhttp__internal__n_start_req;
11705         case 2:
11706           goto s_n_llhttp__internal__n_start_res;
11707         default:
11708           goto s_n_llhttp__internal__n_start_req_or_res;
11709       }
11710       /* UNREACHABLE */;
11711       abort();
11712     }
11713     case s_n_llhttp__internal__n_start:
11714     s_n_llhttp__internal__n_start: {
11715       if (p == endp) {
11716         return s_n_llhttp__internal__n_start;
11717       }
11718       switch (*p) {
11719         case 10: {
11720           p++;
11721           goto s_n_llhttp__internal__n_start;
11722         }
11723         case 13: {
11724           p++;
11725           goto s_n_llhttp__internal__n_start;
11726         }
11727         default: {
11728           goto s_n_llhttp__internal__n_invoke_update_finish;
11729         }
11730       }
11731       /* UNREACHABLE */;
11732       abort();
11733     }
11734     default:
11735       /* UNREACHABLE */
11736       abort();
11737   }
11738   s_n_llhttp__internal__n_error_34: {
11739     state->error = 0x7;
11740     state->reason = "Invalid characters in url";
11741     state->error_pos = (const char*) p;
11742     state->_current = (void*) (intptr_t) s_error;
11743     return s_error;
11744     /* UNREACHABLE */;
11745     abort();
11746   }
11747   s_n_llhttp__internal__n_invoke_update_finish_1: {
11748     switch (llhttp__internal__c_update_finish_1(state, p, endp)) {
11749       default:
11750         goto s_n_llhttp__internal__n_start;
11751     }
11752     /* UNREACHABLE */;
11753     abort();
11754   }
11755   s_n_llhttp__internal__n_pause_5: {
11756     state->error = 0x15;
11757     state->reason = "on_message_complete pause";
11758     state->error_pos = (const char*) p;
11759     state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_is_equal_upgrade;
11760     return s_error;
11761     /* UNREACHABLE */;
11762     abort();
11763   }
11764   s_n_llhttp__internal__n_error_9: {
11765     state->error = 0x12;
11766     state->reason = "`on_message_complete` callback error";
11767     state->error_pos = (const char*) p;
11768     state->_current = (void*) (intptr_t) s_error;
11769     return s_error;
11770     /* UNREACHABLE */;
11771     abort();
11772   }
11773   s_n_llhttp__internal__n_pause_7: {
11774     state->error = 0x15;
11775     state->reason = "on_chunk_complete pause";
11776     state->error_pos = (const char*) p;
11777     state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_llhttp__on_message_complete_2;
11778     return s_error;
11779     /* UNREACHABLE */;
11780     abort();
11781   }
11782   s_n_llhttp__internal__n_error_13: {
11783     state->error = 0x14;
11784     state->reason = "`on_chunk_complete` callback error";
11785     state->error_pos = (const char*) p;
11786     state->_current = (void*) (intptr_t) s_error;
11787     return s_error;
11788     /* UNREACHABLE */;
11789     abort();
11790   }
11791   s_n_llhttp__internal__n_invoke_llhttp__on_chunk_complete_1: {
11792     switch (llhttp__on_chunk_complete(state, p, endp)) {
11793       case 0:
11794         goto s_n_llhttp__internal__n_invoke_llhttp__on_message_complete_2;
11795       case 21:
11796         goto s_n_llhttp__internal__n_pause_7;
11797       default:
11798         goto s_n_llhttp__internal__n_error_13;
11799     }
11800     /* UNREACHABLE */;
11801     abort();
11802   }
11803   s_n_llhttp__internal__n_error_11: {
11804     state->error = 0x4;
11805     state->reason = "Content-Length can't be present with Transfer-Encoding";
11806     state->error_pos = (const char*) p;
11807     state->_current = (void*) (intptr_t) s_error;
11808     return s_error;
11809     /* UNREACHABLE */;
11810     abort();
11811   }
11812   s_n_llhttp__internal__n_error_12: {
11813     state->error = 0x4;
11814     state->reason = "Content-Length can't be present with chunked encoding";
11815     state->error_pos = (const char*) p;
11816     state->_current = (void*) (intptr_t) s_error;
11817     return s_error;
11818     /* UNREACHABLE */;
11819     abort();
11820   }
11821   s_n_llhttp__internal__n_pause_2: {
11822     state->error = 0x15;
11823     state->reason = "on_message_complete pause";
11824     state->error_pos = (const char*) p;
11825     state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_pause_1;
11826     return s_error;
11827     /* UNREACHABLE */;
11828     abort();
11829   }
11830   s_n_llhttp__internal__n_error_3: {
11831     state->error = 0x12;
11832     state->reason = "`on_message_complete` callback error";
11833     state->error_pos = (const char*) p;
11834     state->_current = (void*) (intptr_t) s_error;
11835     return s_error;
11836     /* UNREACHABLE */;
11837     abort();
11838   }
11839   s_n_llhttp__internal__n_invoke_llhttp__on_message_complete_1: {
11840     switch (llhttp__on_message_complete(state, p, endp)) {
11841       case 0:
11842         goto s_n_llhttp__internal__n_pause_1;
11843       case 21:
11844         goto s_n_llhttp__internal__n_pause_2;
11845       default:
11846         goto s_n_llhttp__internal__n_error_3;
11847     }
11848     /* UNREACHABLE */;
11849     abort();
11850   }
11851   s_n_llhttp__internal__n_error_7: {
11852     state->error = 0xc;
11853     state->reason = "Chunk size overflow";
11854     state->error_pos = (const char*) p;
11855     state->_current = (void*) (intptr_t) s_error;
11856     return s_error;
11857     /* UNREACHABLE */;
11858     abort();
11859   }
11860   s_n_llhttp__internal__n_pause_3: {
11861     state->error = 0x15;
11862     state->reason = "on_chunk_complete pause";
11863     state->error_pos = (const char*) p;
11864     state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_update_content_length;
11865     return s_error;
11866     /* UNREACHABLE */;
11867     abort();
11868   }
11869   s_n_llhttp__internal__n_error_5: {
11870     state->error = 0x14;
11871     state->reason = "`on_chunk_complete` callback error";
11872     state->error_pos = (const char*) p;
11873     state->_current = (void*) (intptr_t) s_error;
11874     return s_error;
11875     /* UNREACHABLE */;
11876     abort();
11877   }
11878   s_n_llhttp__internal__n_invoke_llhttp__on_chunk_complete: {
11879     switch (llhttp__on_chunk_complete(state, p, endp)) {
11880       case 0:
11881         goto s_n_llhttp__internal__n_invoke_update_content_length;
11882       case 21:
11883         goto s_n_llhttp__internal__n_pause_3;
11884       default:
11885         goto s_n_llhttp__internal__n_error_5;
11886     }
11887     /* UNREACHABLE */;
11888     abort();
11889   }
11890   s_n_llhttp__internal__n_span_end_llhttp__on_body: {
11891     const unsigned char* start;
11892     int err;
11893 
11894     start = state->_span_pos0;
11895     state->_span_pos0 = NULL;
11896     err = llhttp__on_body(state, start, p);
11897     if (err != 0) {
11898       state->error = err;
11899       state->error_pos = (const char*) p;
11900       state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_chunk_data_almost_done;
11901       return s_error;
11902     }
11903     goto s_n_llhttp__internal__n_chunk_data_almost_done;
11904     /* UNREACHABLE */;
11905     abort();
11906   }
11907   s_n_llhttp__internal__n_invoke_or_flags: {
11908     switch (llhttp__internal__c_or_flags(state, p, endp)) {
11909       default:
11910         goto s_n_llhttp__internal__n_header_field_start;
11911     }
11912     /* UNREACHABLE */;
11913     abort();
11914   }
11915   s_n_llhttp__internal__n_pause_4: {
11916     state->error = 0x15;
11917     state->reason = "on_chunk_header pause";
11918     state->error_pos = (const char*) p;
11919     state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_is_equal_content_length;
11920     return s_error;
11921     /* UNREACHABLE */;
11922     abort();
11923   }
11924   s_n_llhttp__internal__n_error_4: {
11925     state->error = 0x13;
11926     state->reason = "`on_chunk_header` callback error";
11927     state->error_pos = (const char*) p;
11928     state->_current = (void*) (intptr_t) s_error;
11929     return s_error;
11930     /* UNREACHABLE */;
11931     abort();
11932   }
11933   s_n_llhttp__internal__n_invoke_llhttp__on_chunk_header: {
11934     switch (llhttp__on_chunk_header(state, p, endp)) {
11935       case 0:
11936         goto s_n_llhttp__internal__n_invoke_is_equal_content_length;
11937       case 21:
11938         goto s_n_llhttp__internal__n_pause_4;
11939       default:
11940         goto s_n_llhttp__internal__n_error_4;
11941     }
11942     /* UNREACHABLE */;
11943     abort();
11944   }
11945   s_n_llhttp__internal__n_error_6: {
11946     state->error = 0xc;
11947     state->reason = "Invalid character in chunk size";
11948     state->error_pos = (const char*) p;
11949     state->_current = (void*) (intptr_t) s_error;
11950     return s_error;
11951     /* UNREACHABLE */;
11952     abort();
11953   }
11954   s_n_llhttp__internal__n_invoke_mul_add_content_length: {
11955     switch (llhttp__internal__c_mul_add_content_length(state, p, endp, match)) {
11956       case 1:
11957         goto s_n_llhttp__internal__n_error_7;
11958       default:
11959         goto s_n_llhttp__internal__n_chunk_size;
11960     }
11961     /* UNREACHABLE */;
11962     abort();
11963   }
11964   s_n_llhttp__internal__n_error_8: {
11965     state->error = 0xc;
11966     state->reason = "Invalid character in chunk size";
11967     state->error_pos = (const char*) p;
11968     state->_current = (void*) (intptr_t) s_error;
11969     return s_error;
11970     /* UNREACHABLE */;
11971     abort();
11972   }
11973   s_n_llhttp__internal__n_span_end_llhttp__on_body_1: {
11974     const unsigned char* start;
11975     int err;
11976 
11977     start = state->_span_pos0;
11978     state->_span_pos0 = NULL;
11979     err = llhttp__on_body(state, start, p);
11980     if (err != 0) {
11981       state->error = err;
11982       state->error_pos = (const char*) p;
11983       state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_llhttp__on_message_complete_2;
11984       return s_error;
11985     }
11986     goto s_n_llhttp__internal__n_invoke_llhttp__on_message_complete_2;
11987     /* UNREACHABLE */;
11988     abort();
11989   }
11990   s_n_llhttp__internal__n_invoke_update_finish_2: {
11991     switch (llhttp__internal__c_update_finish_2(state, p, endp)) {
11992       default:
11993         goto s_n_llhttp__internal__n_span_start_llhttp__on_body_2;
11994     }
11995     /* UNREACHABLE */;
11996     abort();
11997   }
11998   s_n_llhttp__internal__n_error_10: {
11999     state->error = 0xf;
12000     state->reason = "Request has invalid `Transfer-Encoding`";
12001     state->error_pos = (const char*) p;
12002     state->_current = (void*) (intptr_t) s_error;
12003     return s_error;
12004     /* UNREACHABLE */;
12005     abort();
12006   }
12007   s_n_llhttp__internal__n_pause: {
12008     state->error = 0x15;
12009     state->reason = "on_message_complete pause";
12010     state->error_pos = (const char*) p;
12011     state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_llhttp__after_message_complete;
12012     return s_error;
12013     /* UNREACHABLE */;
12014     abort();
12015   }
12016   s_n_llhttp__internal__n_error_2: {
12017     state->error = 0x12;
12018     state->reason = "`on_message_complete` callback error";
12019     state->error_pos = (const char*) p;
12020     state->_current = (void*) (intptr_t) s_error;
12021     return s_error;
12022     /* UNREACHABLE */;
12023     abort();
12024   }
12025   s_n_llhttp__internal__n_invoke_llhttp__on_message_complete: {
12026     switch (llhttp__on_message_complete(state, p, endp)) {
12027       case 0:
12028         goto s_n_llhttp__internal__n_invoke_llhttp__after_message_complete;
12029       case 21:
12030         goto s_n_llhttp__internal__n_pause;
12031       default:
12032         goto s_n_llhttp__internal__n_error_2;
12033     }
12034     /* UNREACHABLE */;
12035     abort();
12036   }
12037   s_n_llhttp__internal__n_invoke_or_flags_1: {
12038     switch (llhttp__internal__c_or_flags_1(state, p, endp)) {
12039       default:
12040         goto s_n_llhttp__internal__n_invoke_llhttp__after_headers_complete;
12041     }
12042     /* UNREACHABLE */;
12043     abort();
12044   }
12045   s_n_llhttp__internal__n_invoke_or_flags_2: {
12046     switch (llhttp__internal__c_or_flags_1(state, p, endp)) {
12047       default:
12048         goto s_n_llhttp__internal__n_invoke_llhttp__after_headers_complete;
12049     }
12050     /* UNREACHABLE */;
12051     abort();
12052   }
12053   s_n_llhttp__internal__n_invoke_update_upgrade: {
12054     switch (llhttp__internal__c_update_upgrade(state, p, endp)) {
12055       default:
12056         goto s_n_llhttp__internal__n_invoke_or_flags_2;
12057     }
12058     /* UNREACHABLE */;
12059     abort();
12060   }
12061   s_n_llhttp__internal__n_pause_6: {
12062     state->error = 0x15;
12063     state->reason = "Paused by on_headers_complete";
12064     state->error_pos = (const char*) p;
12065     state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_llhttp__after_headers_complete;
12066     return s_error;
12067     /* UNREACHABLE */;
12068     abort();
12069   }
12070   s_n_llhttp__internal__n_error_1: {
12071     state->error = 0x11;
12072     state->reason = "User callback error";
12073     state->error_pos = (const char*) p;
12074     state->_current = (void*) (intptr_t) s_error;
12075     return s_error;
12076     /* UNREACHABLE */;
12077     abort();
12078   }
12079   s_n_llhttp__internal__n_invoke_llhttp__on_headers_complete: {
12080     switch (llhttp__on_headers_complete(state, p, endp)) {
12081       case 0:
12082         goto s_n_llhttp__internal__n_invoke_llhttp__after_headers_complete;
12083       case 1:
12084         goto s_n_llhttp__internal__n_invoke_or_flags_1;
12085       case 2:
12086         goto s_n_llhttp__internal__n_invoke_update_upgrade;
12087       case 21:
12088         goto s_n_llhttp__internal__n_pause_6;
12089       default:
12090         goto s_n_llhttp__internal__n_error_1;
12091     }
12092     /* UNREACHABLE */;
12093     abort();
12094   }
12095   s_n_llhttp__internal__n_invoke_llhttp__before_headers_complete: {
12096     switch (llhttp__before_headers_complete(state, p, endp)) {
12097       default:
12098         goto s_n_llhttp__internal__n_invoke_llhttp__on_headers_complete;
12099     }
12100     /* UNREACHABLE */;
12101     abort();
12102   }
12103   s_n_llhttp__internal__n_invoke_test_flags_3: {
12104     switch (llhttp__internal__c_test_flags_3(state, p, endp)) {
12105       case 1:
12106         goto s_n_llhttp__internal__n_error_12;
12107       default:
12108         goto s_n_llhttp__internal__n_invoke_llhttp__before_headers_complete;
12109     }
12110     /* UNREACHABLE */;
12111     abort();
12112   }
12113   s_n_llhttp__internal__n_invoke_test_flags_2: {
12114     switch (llhttp__internal__c_test_flags_2(state, p, endp)) {
12115       case 0:
12116         goto s_n_llhttp__internal__n_error_11;
12117       case 1:
12118         goto s_n_llhttp__internal__n_invoke_test_flags_3;
12119       default:
12120         goto s_n_llhttp__internal__n_invoke_llhttp__before_headers_complete;
12121     }
12122     /* UNREACHABLE */;
12123     abort();
12124   }
12125   s_n_llhttp__internal__n_invoke_test_flags_1: {
12126     switch (llhttp__internal__c_test_flags_1(state, p, endp)) {
12127       case 1:
12128         goto s_n_llhttp__internal__n_invoke_test_flags_2;
12129       default:
12130         goto s_n_llhttp__internal__n_invoke_llhttp__before_headers_complete;
12131     }
12132     /* UNREACHABLE */;
12133     abort();
12134   }
12135   s_n_llhttp__internal__n_invoke_test_flags: {
12136     switch (llhttp__internal__c_test_flags(state, p, endp)) {
12137       case 1:
12138         goto s_n_llhttp__internal__n_invoke_llhttp__on_chunk_complete_1;
12139       default:
12140         goto s_n_llhttp__internal__n_invoke_test_flags_1;
12141     }
12142     /* UNREACHABLE */;
12143     abort();
12144   }
12145   s_n_llhttp__internal__n_error_14: {
12146     state->error = 0xb;
12147     state->reason = "Empty Content-Length";
12148     state->error_pos = (const char*) p;
12149     state->_current = (void*) (intptr_t) s_error;
12150     return s_error;
12151     /* UNREACHABLE */;
12152     abort();
12153   }
12154   s_n_llhttp__internal__n_span_end_llhttp__on_header_value: {
12155     const unsigned char* start;
12156     int err;
12157 
12158     start = state->_span_pos0;
12159     state->_span_pos0 = NULL;
12160     err = llhttp__on_header_value(state, start, p);
12161     if (err != 0) {
12162       state->error = err;
12163       state->error_pos = (const char*) p;
12164       state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_header_field_start;
12165       return s_error;
12166     }
12167     goto s_n_llhttp__internal__n_header_field_start;
12168     /* UNREACHABLE */;
12169     abort();
12170   }
12171   s_n_llhttp__internal__n_invoke_update_header_state: {
12172     switch (llhttp__internal__c_update_header_state(state, p, endp)) {
12173       default:
12174         goto s_n_llhttp__internal__n_span_start_llhttp__on_header_value;
12175     }
12176     /* UNREACHABLE */;
12177     abort();
12178   }
12179   s_n_llhttp__internal__n_invoke_or_flags_3: {
12180     switch (llhttp__internal__c_or_flags_3(state, p, endp)) {
12181       default:
12182         goto s_n_llhttp__internal__n_invoke_update_header_state;
12183     }
12184     /* UNREACHABLE */;
12185     abort();
12186   }
12187   s_n_llhttp__internal__n_invoke_or_flags_4: {
12188     switch (llhttp__internal__c_or_flags_4(state, p, endp)) {
12189       default:
12190         goto s_n_llhttp__internal__n_invoke_update_header_state;
12191     }
12192     /* UNREACHABLE */;
12193     abort();
12194   }
12195   s_n_llhttp__internal__n_invoke_or_flags_5: {
12196     switch (llhttp__internal__c_or_flags_5(state, p, endp)) {
12197       default:
12198         goto s_n_llhttp__internal__n_invoke_update_header_state;
12199     }
12200     /* UNREACHABLE */;
12201     abort();
12202   }
12203   s_n_llhttp__internal__n_invoke_or_flags_6: {
12204     switch (llhttp__internal__c_or_flags_6(state, p, endp)) {
12205       default:
12206         goto s_n_llhttp__internal__n_span_start_llhttp__on_header_value;
12207     }
12208     /* UNREACHABLE */;
12209     abort();
12210   }
12211   s_n_llhttp__internal__n_invoke_load_header_state_1: {
12212     switch (llhttp__internal__c_load_header_state(state, p, endp)) {
12213       case 5:
12214         goto s_n_llhttp__internal__n_invoke_or_flags_3;
12215       case 6:
12216         goto s_n_llhttp__internal__n_invoke_or_flags_4;
12217       case 7:
12218         goto s_n_llhttp__internal__n_invoke_or_flags_5;
12219       case 8:
12220         goto s_n_llhttp__internal__n_invoke_or_flags_6;
12221       default:
12222         goto s_n_llhttp__internal__n_span_start_llhttp__on_header_value;
12223     }
12224     /* UNREACHABLE */;
12225     abort();
12226   }
12227   s_n_llhttp__internal__n_invoke_load_header_state: {
12228     switch (llhttp__internal__c_load_header_state(state, p, endp)) {
12229       case 2:
12230         goto s_n_llhttp__internal__n_error_14;
12231       default:
12232         goto s_n_llhttp__internal__n_invoke_load_header_state_1;
12233     }
12234     /* UNREACHABLE */;
12235     abort();
12236   }
12237   s_n_llhttp__internal__n_invoke_update_header_state_1: {
12238     switch (llhttp__internal__c_update_header_state(state, p, endp)) {
12239       default:
12240         goto s_n_llhttp__internal__n_header_field_start;
12241     }
12242     /* UNREACHABLE */;
12243     abort();
12244   }
12245   s_n_llhttp__internal__n_invoke_or_flags_7: {
12246     switch (llhttp__internal__c_or_flags_3(state, p, endp)) {
12247       default:
12248         goto s_n_llhttp__internal__n_invoke_update_header_state_1;
12249     }
12250     /* UNREACHABLE */;
12251     abort();
12252   }
12253   s_n_llhttp__internal__n_invoke_or_flags_8: {
12254     switch (llhttp__internal__c_or_flags_4(state, p, endp)) {
12255       default:
12256         goto s_n_llhttp__internal__n_invoke_update_header_state_1;
12257     }
12258     /* UNREACHABLE */;
12259     abort();
12260   }
12261   s_n_llhttp__internal__n_invoke_or_flags_9: {
12262     switch (llhttp__internal__c_or_flags_5(state, p, endp)) {
12263       default:
12264         goto s_n_llhttp__internal__n_invoke_update_header_state_1;
12265     }
12266     /* UNREACHABLE */;
12267     abort();
12268   }
12269   s_n_llhttp__internal__n_invoke_or_flags_10: {
12270     switch (llhttp__internal__c_or_flags_6(state, p, endp)) {
12271       default:
12272         goto s_n_llhttp__internal__n_header_field_start;
12273     }
12274     /* UNREACHABLE */;
12275     abort();
12276   }
12277   s_n_llhttp__internal__n_invoke_load_header_state_3: {
12278     switch (llhttp__internal__c_load_header_state(state, p, endp)) {
12279       case 5:
12280         goto s_n_llhttp__internal__n_invoke_or_flags_7;
12281       case 6:
12282         goto s_n_llhttp__internal__n_invoke_or_flags_8;
12283       case 7:
12284         goto s_n_llhttp__internal__n_invoke_or_flags_9;
12285       case 8:
12286         goto s_n_llhttp__internal__n_invoke_or_flags_10;
12287       default:
12288         goto s_n_llhttp__internal__n_header_field_start;
12289     }
12290     /* UNREACHABLE */;
12291     abort();
12292   }
12293   s_n_llhttp__internal__n_error_15: {
12294     state->error = 0x3;
12295     state->reason = "Missing expected LF after header value";
12296     state->error_pos = (const char*) p;
12297     state->_current = (void*) (intptr_t) s_error;
12298     return s_error;
12299     /* UNREACHABLE */;
12300     abort();
12301   }
12302   s_n_llhttp__internal__n_span_end_llhttp__on_header_value_1: {
12303     const unsigned char* start;
12304     int err;
12305 
12306     start = state->_span_pos0;
12307     state->_span_pos0 = NULL;
12308     err = llhttp__on_header_value(state, start, p);
12309     if (err != 0) {
12310       state->error = err;
12311       state->error_pos = (const char*) p;
12312       state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_header_value_almost_done;
12313       return s_error;
12314     }
12315     goto s_n_llhttp__internal__n_header_value_almost_done;
12316     /* UNREACHABLE */;
12317     abort();
12318   }
12319   s_n_llhttp__internal__n_span_end_llhttp__on_header_value_2: {
12320     const unsigned char* start;
12321     int err;
12322 
12323     start = state->_span_pos0;
12324     state->_span_pos0 = NULL;
12325     err = llhttp__on_header_value(state, start, p);
12326     if (err != 0) {
12327       state->error = err;
12328       state->error_pos = (const char*) (p + 1);
12329       state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_header_value_almost_done;
12330       return s_error;
12331     }
12332     p++;
12333     goto s_n_llhttp__internal__n_header_value_almost_done;
12334     /* UNREACHABLE */;
12335     abort();
12336   }
12337   s_n_llhttp__internal__n_span_end_llhttp__on_header_value_3: {
12338     const unsigned char* start;
12339     int err;
12340 
12341     start = state->_span_pos0;
12342     state->_span_pos0 = NULL;
12343     err = llhttp__on_header_value(state, start, p);
12344     if (err != 0) {
12345       state->error = err;
12346       state->error_pos = (const char*) (p + 1);
12347       state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_header_value_almost_done;
12348       return s_error;
12349     }
12350     p++;
12351     goto s_n_llhttp__internal__n_header_value_almost_done;
12352     /* UNREACHABLE */;
12353     abort();
12354   }
12355   s_n_llhttp__internal__n_error_16: {
12356     state->error = 0xa;
12357     state->reason = "Invalid header value char";
12358     state->error_pos = (const char*) p;
12359     state->_current = (void*) (intptr_t) s_error;
12360     return s_error;
12361     /* UNREACHABLE */;
12362     abort();
12363   }
12364   s_n_llhttp__internal__n_invoke_test_flags_4: {
12365     switch (llhttp__internal__c_test_flags_2(state, p, endp)) {
12366       case 1:
12367         goto s_n_llhttp__internal__n_header_value_lenient;
12368       default:
12369         goto s_n_llhttp__internal__n_error_16;
12370     }
12371     /* UNREACHABLE */;
12372     abort();
12373   }
12374   s_n_llhttp__internal__n_invoke_update_header_state_3: {
12375     switch (llhttp__internal__c_update_header_state(state, p, endp)) {
12376       default:
12377         goto s_n_llhttp__internal__n_header_value_connection;
12378     }
12379     /* UNREACHABLE */;
12380     abort();
12381   }
12382   s_n_llhttp__internal__n_invoke_or_flags_11: {
12383     switch (llhttp__internal__c_or_flags_3(state, p, endp)) {
12384       default:
12385         goto s_n_llhttp__internal__n_invoke_update_header_state_3;
12386     }
12387     /* UNREACHABLE */;
12388     abort();
12389   }
12390   s_n_llhttp__internal__n_invoke_or_flags_12: {
12391     switch (llhttp__internal__c_or_flags_4(state, p, endp)) {
12392       default:
12393         goto s_n_llhttp__internal__n_invoke_update_header_state_3;
12394     }
12395     /* UNREACHABLE */;
12396     abort();
12397   }
12398   s_n_llhttp__internal__n_invoke_or_flags_13: {
12399     switch (llhttp__internal__c_or_flags_5(state, p, endp)) {
12400       default:
12401         goto s_n_llhttp__internal__n_invoke_update_header_state_3;
12402     }
12403     /* UNREACHABLE */;
12404     abort();
12405   }
12406   s_n_llhttp__internal__n_invoke_or_flags_14: {
12407     switch (llhttp__internal__c_or_flags_6(state, p, endp)) {
12408       default:
12409         goto s_n_llhttp__internal__n_header_value_connection;
12410     }
12411     /* UNREACHABLE */;
12412     abort();
12413   }
12414   s_n_llhttp__internal__n_invoke_load_header_state_4: {
12415     switch (llhttp__internal__c_load_header_state(state, p, endp)) {
12416       case 5:
12417         goto s_n_llhttp__internal__n_invoke_or_flags_11;
12418       case 6:
12419         goto s_n_llhttp__internal__n_invoke_or_flags_12;
12420       case 7:
12421         goto s_n_llhttp__internal__n_invoke_or_flags_13;
12422       case 8:
12423         goto s_n_llhttp__internal__n_invoke_or_flags_14;
12424       default:
12425         goto s_n_llhttp__internal__n_header_value_connection;
12426     }
12427     /* UNREACHABLE */;
12428     abort();
12429   }
12430   s_n_llhttp__internal__n_invoke_update_header_state_4: {
12431     switch (llhttp__internal__c_update_header_state_4(state, p, endp)) {
12432       default:
12433         goto s_n_llhttp__internal__n_header_value_connection_token;
12434     }
12435     /* UNREACHABLE */;
12436     abort();
12437   }
12438   s_n_llhttp__internal__n_invoke_update_header_state_2: {
12439     switch (llhttp__internal__c_update_header_state_2(state, p, endp)) {
12440       default:
12441         goto s_n_llhttp__internal__n_header_value_connection_ws;
12442     }
12443     /* UNREACHABLE */;
12444     abort();
12445   }
12446   s_n_llhttp__internal__n_invoke_update_header_state_5: {
12447     switch (llhttp__internal__c_update_header_state_5(state, p, endp)) {
12448       default:
12449         goto s_n_llhttp__internal__n_header_value_connection_ws;
12450     }
12451     /* UNREACHABLE */;
12452     abort();
12453   }
12454   s_n_llhttp__internal__n_invoke_update_header_state_6: {
12455     switch (llhttp__internal__c_update_header_state_6(state, p, endp)) {
12456       default:
12457         goto s_n_llhttp__internal__n_header_value_connection_ws;
12458     }
12459     /* UNREACHABLE */;
12460     abort();
12461   }
12462   s_n_llhttp__internal__n_span_end_llhttp__on_header_value_4: {
12463     const unsigned char* start;
12464     int err;
12465 
12466     start = state->_span_pos0;
12467     state->_span_pos0 = NULL;
12468     err = llhttp__on_header_value(state, start, p);
12469     if (err != 0) {
12470       state->error = err;
12471       state->error_pos = (const char*) p;
12472       state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_18;
12473       return s_error;
12474     }
12475     goto s_n_llhttp__internal__n_error_18;
12476     /* UNREACHABLE */;
12477     abort();
12478   }
12479   s_n_llhttp__internal__n_invoke_mul_add_content_length_1: {
12480     switch (llhttp__internal__c_mul_add_content_length_1(state, p, endp, match)) {
12481       case 1:
12482         goto s_n_llhttp__internal__n_span_end_llhttp__on_header_value_4;
12483       default:
12484         goto s_n_llhttp__internal__n_header_value_content_length;
12485     }
12486     /* UNREACHABLE */;
12487     abort();
12488   }
12489   s_n_llhttp__internal__n_invoke_or_flags_15: {
12490     switch (llhttp__internal__c_or_flags_15(state, p, endp)) {
12491       default:
12492         goto s_n_llhttp__internal__n_header_value_otherwise;
12493     }
12494     /* UNREACHABLE */;
12495     abort();
12496   }
12497   s_n_llhttp__internal__n_span_end_llhttp__on_header_value_5: {
12498     const unsigned char* start;
12499     int err;
12500 
12501     start = state->_span_pos0;
12502     state->_span_pos0 = NULL;
12503     err = llhttp__on_header_value(state, start, p);
12504     if (err != 0) {
12505       state->error = err;
12506       state->error_pos = (const char*) p;
12507       state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_19;
12508       return s_error;
12509     }
12510     goto s_n_llhttp__internal__n_error_19;
12511     /* UNREACHABLE */;
12512     abort();
12513   }
12514   s_n_llhttp__internal__n_error_17: {
12515     state->error = 0x4;
12516     state->reason = "Duplicate Content-Length";
12517     state->error_pos = (const char*) p;
12518     state->_current = (void*) (intptr_t) s_error;
12519     return s_error;
12520     /* UNREACHABLE */;
12521     abort();
12522   }
12523   s_n_llhttp__internal__n_invoke_test_flags_5: {
12524     switch (llhttp__internal__c_test_flags_5(state, p, endp)) {
12525       case 0:
12526         goto s_n_llhttp__internal__n_header_value_content_length;
12527       default:
12528         goto s_n_llhttp__internal__n_error_17;
12529     }
12530     /* UNREACHABLE */;
12531     abort();
12532   }
12533   s_n_llhttp__internal__n_invoke_update_header_state_7: {
12534     switch (llhttp__internal__c_update_header_state_7(state, p, endp)) {
12535       default:
12536         goto s_n_llhttp__internal__n_header_value_otherwise;
12537     }
12538     /* UNREACHABLE */;
12539     abort();
12540   }
12541   s_n_llhttp__internal__n_invoke_update_header_state_8: {
12542     switch (llhttp__internal__c_update_header_state_4(state, p, endp)) {
12543       default:
12544         goto s_n_llhttp__internal__n_header_value;
12545     }
12546     /* UNREACHABLE */;
12547     abort();
12548   }
12549   s_n_llhttp__internal__n_invoke_and_flags: {
12550     switch (llhttp__internal__c_and_flags(state, p, endp)) {
12551       default:
12552         goto s_n_llhttp__internal__n_header_value_te_chunked;
12553     }
12554     /* UNREACHABLE */;
12555     abort();
12556   }
12557   s_n_llhttp__internal__n_invoke_or_flags_16: {
12558     switch (llhttp__internal__c_or_flags_16(state, p, endp)) {
12559       default:
12560         goto s_n_llhttp__internal__n_invoke_and_flags;
12561     }
12562     /* UNREACHABLE */;
12563     abort();
12564   }
12565   s_n_llhttp__internal__n_invoke_or_flags_17: {
12566     switch (llhttp__internal__c_or_flags_17(state, p, endp)) {
12567       default:
12568         goto s_n_llhttp__internal__n_invoke_update_header_state_8;
12569     }
12570     /* UNREACHABLE */;
12571     abort();
12572   }
12573   s_n_llhttp__internal__n_invoke_load_header_state_2: {
12574     switch (llhttp__internal__c_load_header_state(state, p, endp)) {
12575       case 1:
12576         goto s_n_llhttp__internal__n_header_value_connection;
12577       case 2:
12578         goto s_n_llhttp__internal__n_invoke_test_flags_5;
12579       case 3:
12580         goto s_n_llhttp__internal__n_invoke_or_flags_16;
12581       case 4:
12582         goto s_n_llhttp__internal__n_invoke_or_flags_17;
12583       default:
12584         goto s_n_llhttp__internal__n_header_value;
12585     }
12586     /* UNREACHABLE */;
12587     abort();
12588   }
12589   s_n_llhttp__internal__n_span_end_llhttp__on_header_field: {
12590     const unsigned char* start;
12591     int err;
12592 
12593     start = state->_span_pos0;
12594     state->_span_pos0 = NULL;
12595     err = llhttp__on_header_field(state, start, p);
12596     if (err != 0) {
12597       state->error = err;
12598       state->error_pos = (const char*) (p + 1);
12599       state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_header_value_discard_ws;
12600       return s_error;
12601     }
12602     p++;
12603     goto s_n_llhttp__internal__n_header_value_discard_ws;
12604     /* UNREACHABLE */;
12605     abort();
12606   }
12607   s_n_llhttp__internal__n_span_end_llhttp__on_header_field_1: {
12608     const unsigned char* start;
12609     int err;
12610 
12611     start = state->_span_pos0;
12612     state->_span_pos0 = NULL;
12613     err = llhttp__on_header_field(state, start, p);
12614     if (err != 0) {
12615       state->error = err;
12616       state->error_pos = (const char*) (p + 1);
12617       state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_header_value_discard_ws;
12618       return s_error;
12619     }
12620     p++;
12621     goto s_n_llhttp__internal__n_header_value_discard_ws;
12622     /* UNREACHABLE */;
12623     abort();
12624   }
12625   s_n_llhttp__internal__n_error_20: {
12626     state->error = 0xa;
12627     state->reason = "Invalid header token";
12628     state->error_pos = (const char*) p;
12629     state->_current = (void*) (intptr_t) s_error;
12630     return s_error;
12631     /* UNREACHABLE */;
12632     abort();
12633   }
12634   s_n_llhttp__internal__n_invoke_update_header_state_9: {
12635     switch (llhttp__internal__c_update_header_state_4(state, p, endp)) {
12636       default:
12637         goto s_n_llhttp__internal__n_header_field_general;
12638     }
12639     /* UNREACHABLE */;
12640     abort();
12641   }
12642   s_n_llhttp__internal__n_invoke_store_header_state: {
12643     switch (llhttp__internal__c_store_header_state(state, p, endp, match)) {
12644       default:
12645         goto s_n_llhttp__internal__n_header_field_colon;
12646     }
12647     /* UNREACHABLE */;
12648     abort();
12649   }
12650   s_n_llhttp__internal__n_invoke_update_header_state_10: {
12651     switch (llhttp__internal__c_update_header_state_4(state, p, endp)) {
12652       default:
12653         goto s_n_llhttp__internal__n_header_field_general;
12654     }
12655     /* UNREACHABLE */;
12656     abort();
12657   }
12658   s_n_llhttp__internal__n_invoke_update_http_minor: {
12659     switch (llhttp__internal__c_update_http_minor(state, p, endp)) {
12660       default:
12661         goto s_n_llhttp__internal__n_header_field_start;
12662     }
12663     /* UNREACHABLE */;
12664     abort();
12665   }
12666   s_n_llhttp__internal__n_invoke_update_http_major: {
12667     switch (llhttp__internal__c_update_http_major(state, p, endp)) {
12668       default:
12669         goto s_n_llhttp__internal__n_invoke_update_http_minor;
12670     }
12671     /* UNREACHABLE */;
12672     abort();
12673   }
12674   s_n_llhttp__internal__n_span_end_llhttp__on_url_3: {
12675     const unsigned char* start;
12676     int err;
12677 
12678     start = state->_span_pos0;
12679     state->_span_pos0 = NULL;
12680     err = llhttp__on_url(state, start, p);
12681     if (err != 0) {
12682       state->error = err;
12683       state->error_pos = (const char*) p;
12684       state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_url_skip_to_http09;
12685       return s_error;
12686     }
12687     goto s_n_llhttp__internal__n_url_skip_to_http09;
12688     /* UNREACHABLE */;
12689     abort();
12690   }
12691   s_n_llhttp__internal__n_error_21: {
12692     state->error = 0x7;
12693     state->reason = "Expected CRLF";
12694     state->error_pos = (const char*) p;
12695     state->_current = (void*) (intptr_t) s_error;
12696     return s_error;
12697     /* UNREACHABLE */;
12698     abort();
12699   }
12700   s_n_llhttp__internal__n_span_end_llhttp__on_url_4: {
12701     const unsigned char* start;
12702     int err;
12703 
12704     start = state->_span_pos0;
12705     state->_span_pos0 = NULL;
12706     err = llhttp__on_url(state, start, p);
12707     if (err != 0) {
12708       state->error = err;
12709       state->error_pos = (const char*) p;
12710       state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_url_skip_lf_to_http09;
12711       return s_error;
12712     }
12713     goto s_n_llhttp__internal__n_url_skip_lf_to_http09;
12714     /* UNREACHABLE */;
12715     abort();
12716   }
12717   s_n_llhttp__internal__n_error_22: {
12718     state->error = 0x9;
12719     state->reason = "Expected CRLF after version";
12720     state->error_pos = (const char*) p;
12721     state->_current = (void*) (intptr_t) s_error;
12722     return s_error;
12723     /* UNREACHABLE */;
12724     abort();
12725   }
12726   s_n_llhttp__internal__n_invoke_store_http_minor: {
12727     switch (llhttp__internal__c_store_http_minor(state, p, endp, match)) {
12728       default:
12729         goto s_n_llhttp__internal__n_req_http_end;
12730     }
12731     /* UNREACHABLE */;
12732     abort();
12733   }
12734   s_n_llhttp__internal__n_error_23: {
12735     state->error = 0x9;
12736     state->reason = "Invalid minor version";
12737     state->error_pos = (const char*) p;
12738     state->_current = (void*) (intptr_t) s_error;
12739     return s_error;
12740     /* UNREACHABLE */;
12741     abort();
12742   }
12743   s_n_llhttp__internal__n_error_24: {
12744     state->error = 0x9;
12745     state->reason = "Expected dot";
12746     state->error_pos = (const char*) p;
12747     state->_current = (void*) (intptr_t) s_error;
12748     return s_error;
12749     /* UNREACHABLE */;
12750     abort();
12751   }
12752   s_n_llhttp__internal__n_invoke_store_http_major: {
12753     switch (llhttp__internal__c_store_http_major(state, p, endp, match)) {
12754       default:
12755         goto s_n_llhttp__internal__n_req_http_dot;
12756     }
12757     /* UNREACHABLE */;
12758     abort();
12759   }
12760   s_n_llhttp__internal__n_error_25: {
12761     state->error = 0x9;
12762     state->reason = "Invalid major version";
12763     state->error_pos = (const char*) p;
12764     state->_current = (void*) (intptr_t) s_error;
12765     return s_error;
12766     /* UNREACHABLE */;
12767     abort();
12768   }
12769   s_n_llhttp__internal__n_error_27: {
12770     state->error = 0x8;
12771     state->reason = "Expected HTTP/";
12772     state->error_pos = (const char*) p;
12773     state->_current = (void*) (intptr_t) s_error;
12774     return s_error;
12775     /* UNREACHABLE */;
12776     abort();
12777   }
12778   s_n_llhttp__internal__n_error_26: {
12779     state->error = 0x8;
12780     state->reason = "Expected SOURCE method for ICE/x.x request";
12781     state->error_pos = (const char*) p;
12782     state->_current = (void*) (intptr_t) s_error;
12783     return s_error;
12784     /* UNREACHABLE */;
12785     abort();
12786   }
12787   s_n_llhttp__internal__n_invoke_is_equal_method_1: {
12788     switch (llhttp__internal__c_is_equal_method_1(state, p, endp)) {
12789       case 0:
12790         goto s_n_llhttp__internal__n_error_26;
12791       default:
12792         goto s_n_llhttp__internal__n_req_http_major;
12793     }
12794     /* UNREACHABLE */;
12795     abort();
12796   }
12797   s_n_llhttp__internal__n_span_end_llhttp__on_url_5: {
12798     const unsigned char* start;
12799     int err;
12800 
12801     start = state->_span_pos0;
12802     state->_span_pos0 = NULL;
12803     err = llhttp__on_url(state, start, p);
12804     if (err != 0) {
12805       state->error = err;
12806       state->error_pos = (const char*) p;
12807       state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_url_skip_to_http;
12808       return s_error;
12809     }
12810     goto s_n_llhttp__internal__n_url_skip_to_http;
12811     /* UNREACHABLE */;
12812     abort();
12813   }
12814   s_n_llhttp__internal__n_span_end_llhttp__on_url_6: {
12815     const unsigned char* start;
12816     int err;
12817 
12818     start = state->_span_pos0;
12819     state->_span_pos0 = NULL;
12820     err = llhttp__on_url(state, start, p);
12821     if (err != 0) {
12822       state->error = err;
12823       state->error_pos = (const char*) p;
12824       state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_url_skip_to_http09;
12825       return s_error;
12826     }
12827     goto s_n_llhttp__internal__n_url_skip_to_http09;
12828     /* UNREACHABLE */;
12829     abort();
12830   }
12831   s_n_llhttp__internal__n_span_end_llhttp__on_url_7: {
12832     const unsigned char* start;
12833     int err;
12834 
12835     start = state->_span_pos0;
12836     state->_span_pos0 = NULL;
12837     err = llhttp__on_url(state, start, p);
12838     if (err != 0) {
12839       state->error = err;
12840       state->error_pos = (const char*) p;
12841       state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_url_skip_lf_to_http09;
12842       return s_error;
12843     }
12844     goto s_n_llhttp__internal__n_url_skip_lf_to_http09;
12845     /* UNREACHABLE */;
12846     abort();
12847   }
12848   s_n_llhttp__internal__n_span_end_llhttp__on_url_8: {
12849     const unsigned char* start;
12850     int err;
12851 
12852     start = state->_span_pos0;
12853     state->_span_pos0 = NULL;
12854     err = llhttp__on_url(state, start, p);
12855     if (err != 0) {
12856       state->error = err;
12857       state->error_pos = (const char*) p;
12858       state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_url_skip_to_http;
12859       return s_error;
12860     }
12861     goto s_n_llhttp__internal__n_url_skip_to_http;
12862     /* UNREACHABLE */;
12863     abort();
12864   }
12865   s_n_llhttp__internal__n_error_28: {
12866     state->error = 0x7;
12867     state->reason = "Invalid char in url fragment start";
12868     state->error_pos = (const char*) p;
12869     state->_current = (void*) (intptr_t) s_error;
12870     return s_error;
12871     /* UNREACHABLE */;
12872     abort();
12873   }
12874   s_n_llhttp__internal__n_span_end_llhttp__on_url_9: {
12875     const unsigned char* start;
12876     int err;
12877 
12878     start = state->_span_pos0;
12879     state->_span_pos0 = NULL;
12880     err = llhttp__on_url(state, start, p);
12881     if (err != 0) {
12882       state->error = err;
12883       state->error_pos = (const char*) p;
12884       state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_url_skip_to_http09;
12885       return s_error;
12886     }
12887     goto s_n_llhttp__internal__n_url_skip_to_http09;
12888     /* UNREACHABLE */;
12889     abort();
12890   }
12891   s_n_llhttp__internal__n_span_end_llhttp__on_url_10: {
12892     const unsigned char* start;
12893     int err;
12894 
12895     start = state->_span_pos0;
12896     state->_span_pos0 = NULL;
12897     err = llhttp__on_url(state, start, p);
12898     if (err != 0) {
12899       state->error = err;
12900       state->error_pos = (const char*) p;
12901       state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_url_skip_lf_to_http09;
12902       return s_error;
12903     }
12904     goto s_n_llhttp__internal__n_url_skip_lf_to_http09;
12905     /* UNREACHABLE */;
12906     abort();
12907   }
12908   s_n_llhttp__internal__n_span_end_llhttp__on_url_11: {
12909     const unsigned char* start;
12910     int err;
12911 
12912     start = state->_span_pos0;
12913     state->_span_pos0 = NULL;
12914     err = llhttp__on_url(state, start, p);
12915     if (err != 0) {
12916       state->error = err;
12917       state->error_pos = (const char*) p;
12918       state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_url_skip_to_http;
12919       return s_error;
12920     }
12921     goto s_n_llhttp__internal__n_url_skip_to_http;
12922     /* UNREACHABLE */;
12923     abort();
12924   }
12925   s_n_llhttp__internal__n_error_29: {
12926     state->error = 0x7;
12927     state->reason = "Invalid char in url query";
12928     state->error_pos = (const char*) p;
12929     state->_current = (void*) (intptr_t) s_error;
12930     return s_error;
12931     /* UNREACHABLE */;
12932     abort();
12933   }
12934   s_n_llhttp__internal__n_error_30: {
12935     state->error = 0x7;
12936     state->reason = "Invalid char in url path";
12937     state->error_pos = (const char*) p;
12938     state->_current = (void*) (intptr_t) s_error;
12939     return s_error;
12940     /* UNREACHABLE */;
12941     abort();
12942   }
12943   s_n_llhttp__internal__n_span_end_llhttp__on_url: {
12944     const unsigned char* start;
12945     int err;
12946 
12947     start = state->_span_pos0;
12948     state->_span_pos0 = NULL;
12949     err = llhttp__on_url(state, start, p);
12950     if (err != 0) {
12951       state->error = err;
12952       state->error_pos = (const char*) p;
12953       state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_url_skip_to_http09;
12954       return s_error;
12955     }
12956     goto s_n_llhttp__internal__n_url_skip_to_http09;
12957     /* UNREACHABLE */;
12958     abort();
12959   }
12960   s_n_llhttp__internal__n_span_end_llhttp__on_url_1: {
12961     const unsigned char* start;
12962     int err;
12963 
12964     start = state->_span_pos0;
12965     state->_span_pos0 = NULL;
12966     err = llhttp__on_url(state, start, p);
12967     if (err != 0) {
12968       state->error = err;
12969       state->error_pos = (const char*) p;
12970       state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_url_skip_lf_to_http09;
12971       return s_error;
12972     }
12973     goto s_n_llhttp__internal__n_url_skip_lf_to_http09;
12974     /* UNREACHABLE */;
12975     abort();
12976   }
12977   s_n_llhttp__internal__n_span_end_llhttp__on_url_2: {
12978     const unsigned char* start;
12979     int err;
12980 
12981     start = state->_span_pos0;
12982     state->_span_pos0 = NULL;
12983     err = llhttp__on_url(state, start, p);
12984     if (err != 0) {
12985       state->error = err;
12986       state->error_pos = (const char*) p;
12987       state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_url_skip_to_http;
12988       return s_error;
12989     }
12990     goto s_n_llhttp__internal__n_url_skip_to_http;
12991     /* UNREACHABLE */;
12992     abort();
12993   }
12994   s_n_llhttp__internal__n_span_end_llhttp__on_url_12: {
12995     const unsigned char* start;
12996     int err;
12997 
12998     start = state->_span_pos0;
12999     state->_span_pos0 = NULL;
13000     err = llhttp__on_url(state, start, p);
13001     if (err != 0) {
13002       state->error = err;
13003       state->error_pos = (const char*) p;
13004       state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_url_skip_to_http09;
13005       return s_error;
13006     }
13007     goto s_n_llhttp__internal__n_url_skip_to_http09;
13008     /* UNREACHABLE */;
13009     abort();
13010   }
13011   s_n_llhttp__internal__n_span_end_llhttp__on_url_13: {
13012     const unsigned char* start;
13013     int err;
13014 
13015     start = state->_span_pos0;
13016     state->_span_pos0 = NULL;
13017     err = llhttp__on_url(state, start, p);
13018     if (err != 0) {
13019       state->error = err;
13020       state->error_pos = (const char*) p;
13021       state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_url_skip_lf_to_http09;
13022       return s_error;
13023     }
13024     goto s_n_llhttp__internal__n_url_skip_lf_to_http09;
13025     /* UNREACHABLE */;
13026     abort();
13027   }
13028   s_n_llhttp__internal__n_span_end_llhttp__on_url_14: {
13029     const unsigned char* start;
13030     int err;
13031 
13032     start = state->_span_pos0;
13033     state->_span_pos0 = NULL;
13034     err = llhttp__on_url(state, start, p);
13035     if (err != 0) {
13036       state->error = err;
13037       state->error_pos = (const char*) p;
13038       state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_url_skip_to_http;
13039       return s_error;
13040     }
13041     goto s_n_llhttp__internal__n_url_skip_to_http;
13042     /* UNREACHABLE */;
13043     abort();
13044   }
13045   s_n_llhttp__internal__n_error_31: {
13046     state->error = 0x7;
13047     state->reason = "Double @ in url";
13048     state->error_pos = (const char*) p;
13049     state->_current = (void*) (intptr_t) s_error;
13050     return s_error;
13051     /* UNREACHABLE */;
13052     abort();
13053   }
13054   s_n_llhttp__internal__n_error_32: {
13055     state->error = 0x7;
13056     state->reason = "Unexpected char in url server";
13057     state->error_pos = (const char*) p;
13058     state->_current = (void*) (intptr_t) s_error;
13059     return s_error;
13060     /* UNREACHABLE */;
13061     abort();
13062   }
13063   s_n_llhttp__internal__n_error_33: {
13064     state->error = 0x7;
13065     state->reason = "Unexpected char in url server";
13066     state->error_pos = (const char*) p;
13067     state->_current = (void*) (intptr_t) s_error;
13068     return s_error;
13069     /* UNREACHABLE */;
13070     abort();
13071   }
13072   s_n_llhttp__internal__n_error_35: {
13073     state->error = 0x7;
13074     state->reason = "Unexpected char in url schema";
13075     state->error_pos = (const char*) p;
13076     state->_current = (void*) (intptr_t) s_error;
13077     return s_error;
13078     /* UNREACHABLE */;
13079     abort();
13080   }
13081   s_n_llhttp__internal__n_error_36: {
13082     state->error = 0x7;
13083     state->reason = "Unexpected char in url schema";
13084     state->error_pos = (const char*) p;
13085     state->_current = (void*) (intptr_t) s_error;
13086     return s_error;
13087     /* UNREACHABLE */;
13088     abort();
13089   }
13090   s_n_llhttp__internal__n_error_37: {
13091     state->error = 0x7;
13092     state->reason = "Unexpected start char in url";
13093     state->error_pos = (const char*) p;
13094     state->_current = (void*) (intptr_t) s_error;
13095     return s_error;
13096     /* UNREACHABLE */;
13097     abort();
13098   }
13099   s_n_llhttp__internal__n_invoke_is_equal_method: {
13100     switch (llhttp__internal__c_is_equal_method(state, p, endp)) {
13101       case 0:
13102         goto s_n_llhttp__internal__n_span_start_llhttp__on_url_1;
13103       default:
13104         goto s_n_llhttp__internal__n_span_start_llhttp__on_url;
13105     }
13106     /* UNREACHABLE */;
13107     abort();
13108   }
13109   s_n_llhttp__internal__n_error_38: {
13110     state->error = 0x6;
13111     state->reason = "Expected space after method";
13112     state->error_pos = (const char*) p;
13113     state->_current = (void*) (intptr_t) s_error;
13114     return s_error;
13115     /* UNREACHABLE */;
13116     abort();
13117   }
13118   s_n_llhttp__internal__n_invoke_store_method_1: {
13119     switch (llhttp__internal__c_store_method(state, p, endp, match)) {
13120       default:
13121         goto s_n_llhttp__internal__n_req_first_space_before_url;
13122     }
13123     /* UNREACHABLE */;
13124     abort();
13125   }
13126   s_n_llhttp__internal__n_error_46: {
13127     state->error = 0x6;
13128     state->reason = "Invalid method encountered";
13129     state->error_pos = (const char*) p;
13130     state->_current = (void*) (intptr_t) s_error;
13131     return s_error;
13132     /* UNREACHABLE */;
13133     abort();
13134   }
13135   s_n_llhttp__internal__n_error_39: {
13136     state->error = 0xd;
13137     state->reason = "Response overflow";
13138     state->error_pos = (const char*) p;
13139     state->_current = (void*) (intptr_t) s_error;
13140     return s_error;
13141     /* UNREACHABLE */;
13142     abort();
13143   }
13144   s_n_llhttp__internal__n_invoke_mul_add_status_code: {
13145     switch (llhttp__internal__c_mul_add_status_code(state, p, endp, match)) {
13146       case 1:
13147         goto s_n_llhttp__internal__n_error_39;
13148       default:
13149         goto s_n_llhttp__internal__n_res_status_code;
13150     }
13151     /* UNREACHABLE */;
13152     abort();
13153   }
13154   s_n_llhttp__internal__n_span_end_llhttp__on_status: {
13155     const unsigned char* start;
13156     int err;
13157 
13158     start = state->_span_pos0;
13159     state->_span_pos0 = NULL;
13160     err = llhttp__on_status(state, start, p);
13161     if (err != 0) {
13162       state->error = err;
13163       state->error_pos = (const char*) (p + 1);
13164       state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_header_field_start;
13165       return s_error;
13166     }
13167     p++;
13168     goto s_n_llhttp__internal__n_header_field_start;
13169     /* UNREACHABLE */;
13170     abort();
13171   }
13172   s_n_llhttp__internal__n_span_end_llhttp__on_status_1: {
13173     const unsigned char* start;
13174     int err;
13175 
13176     start = state->_span_pos0;
13177     state->_span_pos0 = NULL;
13178     err = llhttp__on_status(state, start, p);
13179     if (err != 0) {
13180       state->error = err;
13181       state->error_pos = (const char*) (p + 1);
13182       state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_res_line_almost_done;
13183       return s_error;
13184     }
13185     p++;
13186     goto s_n_llhttp__internal__n_res_line_almost_done;
13187     /* UNREACHABLE */;
13188     abort();
13189   }
13190   s_n_llhttp__internal__n_error_40: {
13191     state->error = 0xd;
13192     state->reason = "Invalid response status";
13193     state->error_pos = (const char*) p;
13194     state->_current = (void*) (intptr_t) s_error;
13195     return s_error;
13196     /* UNREACHABLE */;
13197     abort();
13198   }
13199   s_n_llhttp__internal__n_invoke_update_status_code: {
13200     switch (llhttp__internal__c_update_status_code(state, p, endp)) {
13201       default:
13202         goto s_n_llhttp__internal__n_res_status_code;
13203     }
13204     /* UNREACHABLE */;
13205     abort();
13206   }
13207   s_n_llhttp__internal__n_error_41: {
13208     state->error = 0x9;
13209     state->reason = "Expected space after version";
13210     state->error_pos = (const char*) p;
13211     state->_current = (void*) (intptr_t) s_error;
13212     return s_error;
13213     /* UNREACHABLE */;
13214     abort();
13215   }
13216   s_n_llhttp__internal__n_invoke_store_http_minor_1: {
13217     switch (llhttp__internal__c_store_http_minor(state, p, endp, match)) {
13218       default:
13219         goto s_n_llhttp__internal__n_res_http_end;
13220     }
13221     /* UNREACHABLE */;
13222     abort();
13223   }
13224   s_n_llhttp__internal__n_error_42: {
13225     state->error = 0x9;
13226     state->reason = "Invalid minor version";
13227     state->error_pos = (const char*) p;
13228     state->_current = (void*) (intptr_t) s_error;
13229     return s_error;
13230     /* UNREACHABLE */;
13231     abort();
13232   }
13233   s_n_llhttp__internal__n_error_43: {
13234     state->error = 0x9;
13235     state->reason = "Expected dot";
13236     state->error_pos = (const char*) p;
13237     state->_current = (void*) (intptr_t) s_error;
13238     return s_error;
13239     /* UNREACHABLE */;
13240     abort();
13241   }
13242   s_n_llhttp__internal__n_invoke_store_http_major_1: {
13243     switch (llhttp__internal__c_store_http_major(state, p, endp, match)) {
13244       default:
13245         goto s_n_llhttp__internal__n_res_http_dot;
13246     }
13247     /* UNREACHABLE */;
13248     abort();
13249   }
13250   s_n_llhttp__internal__n_error_44: {
13251     state->error = 0x9;
13252     state->reason = "Invalid major version";
13253     state->error_pos = (const char*) p;
13254     state->_current = (void*) (intptr_t) s_error;
13255     return s_error;
13256     /* UNREACHABLE */;
13257     abort();
13258   }
13259   s_n_llhttp__internal__n_error_47: {
13260     state->error = 0x8;
13261     state->reason = "Expected HTTP/";
13262     state->error_pos = (const char*) p;
13263     state->_current = (void*) (intptr_t) s_error;
13264     return s_error;
13265     /* UNREACHABLE */;
13266     abort();
13267   }
13268   s_n_llhttp__internal__n_invoke_update_type: {
13269     switch (llhttp__internal__c_update_type(state, p, endp)) {
13270       default:
13271         goto s_n_llhttp__internal__n_req_first_space_before_url;
13272     }
13273     /* UNREACHABLE */;
13274     abort();
13275   }
13276   s_n_llhttp__internal__n_invoke_store_method: {
13277     switch (llhttp__internal__c_store_method(state, p, endp, match)) {
13278       default:
13279         goto s_n_llhttp__internal__n_invoke_update_type;
13280     }
13281     /* UNREACHABLE */;
13282     abort();
13283   }
13284   s_n_llhttp__internal__n_error_45: {
13285     state->error = 0x8;
13286     state->reason = "Invalid word encountered";
13287     state->error_pos = (const char*) p;
13288     state->_current = (void*) (intptr_t) s_error;
13289     return s_error;
13290     /* UNREACHABLE */;
13291     abort();
13292   }
13293   s_n_llhttp__internal__n_invoke_update_type_1: {
13294     switch (llhttp__internal__c_update_type_1(state, p, endp)) {
13295       default:
13296         goto s_n_llhttp__internal__n_res_http_major;
13297     }
13298     /* UNREACHABLE */;
13299     abort();
13300   }
13301   s_n_llhttp__internal__n_invoke_update_type_2: {
13302     switch (llhttp__internal__c_update_type(state, p, endp)) {
13303       default:
13304         goto s_n_llhttp__internal__n_start_req;
13305     }
13306     /* UNREACHABLE */;
13307     abort();
13308   }
13309   s_n_llhttp__internal__n_pause_8: {
13310     state->error = 0x15;
13311     state->reason = "on_message_begin pause";
13312     state->error_pos = (const char*) p;
13313     state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_load_type;
13314     return s_error;
13315     /* UNREACHABLE */;
13316     abort();
13317   }
13318   s_n_llhttp__internal__n_error: {
13319     state->error = 0x10;
13320     state->reason = "`on_message_begin` callback error";
13321     state->error_pos = (const char*) p;
13322     state->_current = (void*) (intptr_t) s_error;
13323     return s_error;
13324     /* UNREACHABLE */;
13325     abort();
13326   }
13327   s_n_llhttp__internal__n_invoke_llhttp__on_message_begin: {
13328     switch (llhttp__on_message_begin(state, p, endp)) {
13329       case 0:
13330         goto s_n_llhttp__internal__n_invoke_load_type;
13331       case 21:
13332         goto s_n_llhttp__internal__n_pause_8;
13333       default:
13334         goto s_n_llhttp__internal__n_error;
13335     }
13336     /* UNREACHABLE */;
13337     abort();
13338   }
13339   s_n_llhttp__internal__n_invoke_update_finish: {
13340     switch (llhttp__internal__c_update_finish(state, p, endp)) {
13341       default:
13342         goto s_n_llhttp__internal__n_invoke_llhttp__on_message_begin;
13343     }
13344     /* UNREACHABLE */;
13345     abort();
13346   }
13347 }
13348 
llhttp__internal_execute(llhttp__internal_t * state,const char * p,const char * endp)13349 int llhttp__internal_execute(llhttp__internal_t* state, const char* p, const char* endp) {
13350   llparse_state_t next;
13351 
13352   /* check lingering errors */
13353   if (state->error != 0) {
13354     return state->error;
13355   }
13356 
13357   /* restart spans */
13358   if (state->_span_pos0 != NULL) {
13359     state->_span_pos0 = (void*) p;
13360   }
13361 
13362   next = llhttp__internal__run(state, (const unsigned char*) p, (const unsigned char*) endp);
13363   if (next == s_error) {
13364     return state->error;
13365   }
13366   state->_current = (void*) (intptr_t) next;
13367 
13368   /* execute spans */
13369   if (state->_span_pos0 != NULL) {
13370     int error;
13371 
13372     error = ((llhttp__internal__span_cb) state->_span_cb0)(state, state->_span_pos0, (const char*) endp);
13373     if (error != 0) {
13374       state->error = error;
13375       state->error_pos = endp;
13376       return error;
13377     }
13378   }
13379 
13380   return 0;
13381 }
13382 
13383 #endif  /* LLHTTP_STRICT_MODE */
13384