1 /* Generated by Cython 0.29.21 */
2 
3 #define PY_SSIZE_T_CLEAN
4 #include "Python.h"
5 #ifndef Py_PYTHON_H
6     #error Python headers needed to compile C extensions, please install development version of Python.
7 #elif PY_VERSION_HEX < 0x02060000 || (0x03000000 <= PY_VERSION_HEX && PY_VERSION_HEX < 0x03030000)
8     #error Cython requires Python 2.6+ or Python 3.3+.
9 #else
10 #define CYTHON_ABI "0_29_21"
11 #define CYTHON_HEX_VERSION 0x001D15F0
12 #define CYTHON_FUTURE_DIVISION 1
13 #include <stddef.h>
14 #ifndef offsetof
15   #define offsetof(type, member) ( (size_t) & ((type*)0) -> member )
16 #endif
17 #if !defined(WIN32) && !defined(MS_WINDOWS)
18   #ifndef __stdcall
19     #define __stdcall
20   #endif
21   #ifndef __cdecl
22     #define __cdecl
23   #endif
24   #ifndef __fastcall
25     #define __fastcall
26   #endif
27 #endif
28 #ifndef DL_IMPORT
29   #define DL_IMPORT(t) t
30 #endif
31 #ifndef DL_EXPORT
32   #define DL_EXPORT(t) t
33 #endif
34 #define __PYX_COMMA ,
35 #ifndef HAVE_LONG_LONG
36   #if PY_VERSION_HEX >= 0x02070000
37     #define HAVE_LONG_LONG
38   #endif
39 #endif
40 #ifndef PY_LONG_LONG
41   #define PY_LONG_LONG LONG_LONG
42 #endif
43 #ifndef Py_HUGE_VAL
44   #define Py_HUGE_VAL HUGE_VAL
45 #endif
46 #ifdef PYPY_VERSION
47   #define CYTHON_COMPILING_IN_PYPY 1
48   #define CYTHON_COMPILING_IN_PYSTON 0
49   #define CYTHON_COMPILING_IN_CPYTHON 0
50   #undef CYTHON_USE_TYPE_SLOTS
51   #define CYTHON_USE_TYPE_SLOTS 0
52   #undef CYTHON_USE_PYTYPE_LOOKUP
53   #define CYTHON_USE_PYTYPE_LOOKUP 0
54   #if PY_VERSION_HEX < 0x03050000
55     #undef CYTHON_USE_ASYNC_SLOTS
56     #define CYTHON_USE_ASYNC_SLOTS 0
57   #elif !defined(CYTHON_USE_ASYNC_SLOTS)
58     #define CYTHON_USE_ASYNC_SLOTS 1
59   #endif
60   #undef CYTHON_USE_PYLIST_INTERNALS
61   #define CYTHON_USE_PYLIST_INTERNALS 0
62   #undef CYTHON_USE_UNICODE_INTERNALS
63   #define CYTHON_USE_UNICODE_INTERNALS 0
64   #undef CYTHON_USE_UNICODE_WRITER
65   #define CYTHON_USE_UNICODE_WRITER 0
66   #undef CYTHON_USE_PYLONG_INTERNALS
67   #define CYTHON_USE_PYLONG_INTERNALS 0
68   #undef CYTHON_AVOID_BORROWED_REFS
69   #define CYTHON_AVOID_BORROWED_REFS 1
70   #undef CYTHON_ASSUME_SAFE_MACROS
71   #define CYTHON_ASSUME_SAFE_MACROS 0
72   #undef CYTHON_UNPACK_METHODS
73   #define CYTHON_UNPACK_METHODS 0
74   #undef CYTHON_FAST_THREAD_STATE
75   #define CYTHON_FAST_THREAD_STATE 0
76   #undef CYTHON_FAST_PYCALL
77   #define CYTHON_FAST_PYCALL 0
78   #undef CYTHON_PEP489_MULTI_PHASE_INIT
79   #define CYTHON_PEP489_MULTI_PHASE_INIT 0
80   #undef CYTHON_USE_TP_FINALIZE
81   #define CYTHON_USE_TP_FINALIZE 0
82   #undef CYTHON_USE_DICT_VERSIONS
83   #define CYTHON_USE_DICT_VERSIONS 0
84   #undef CYTHON_USE_EXC_INFO_STACK
85   #define CYTHON_USE_EXC_INFO_STACK 0
86 #elif defined(PYSTON_VERSION)
87   #define CYTHON_COMPILING_IN_PYPY 0
88   #define CYTHON_COMPILING_IN_PYSTON 1
89   #define CYTHON_COMPILING_IN_CPYTHON 0
90   #ifndef CYTHON_USE_TYPE_SLOTS
91     #define CYTHON_USE_TYPE_SLOTS 1
92   #endif
93   #undef CYTHON_USE_PYTYPE_LOOKUP
94   #define CYTHON_USE_PYTYPE_LOOKUP 0
95   #undef CYTHON_USE_ASYNC_SLOTS
96   #define CYTHON_USE_ASYNC_SLOTS 0
97   #undef CYTHON_USE_PYLIST_INTERNALS
98   #define CYTHON_USE_PYLIST_INTERNALS 0
99   #ifndef CYTHON_USE_UNICODE_INTERNALS
100     #define CYTHON_USE_UNICODE_INTERNALS 1
101   #endif
102   #undef CYTHON_USE_UNICODE_WRITER
103   #define CYTHON_USE_UNICODE_WRITER 0
104   #undef CYTHON_USE_PYLONG_INTERNALS
105   #define CYTHON_USE_PYLONG_INTERNALS 0
106   #ifndef CYTHON_AVOID_BORROWED_REFS
107     #define CYTHON_AVOID_BORROWED_REFS 0
108   #endif
109   #ifndef CYTHON_ASSUME_SAFE_MACROS
110     #define CYTHON_ASSUME_SAFE_MACROS 1
111   #endif
112   #ifndef CYTHON_UNPACK_METHODS
113     #define CYTHON_UNPACK_METHODS 1
114   #endif
115   #undef CYTHON_FAST_THREAD_STATE
116   #define CYTHON_FAST_THREAD_STATE 0
117   #undef CYTHON_FAST_PYCALL
118   #define CYTHON_FAST_PYCALL 0
119   #undef CYTHON_PEP489_MULTI_PHASE_INIT
120   #define CYTHON_PEP489_MULTI_PHASE_INIT 0
121   #undef CYTHON_USE_TP_FINALIZE
122   #define CYTHON_USE_TP_FINALIZE 0
123   #undef CYTHON_USE_DICT_VERSIONS
124   #define CYTHON_USE_DICT_VERSIONS 0
125   #undef CYTHON_USE_EXC_INFO_STACK
126   #define CYTHON_USE_EXC_INFO_STACK 0
127 #else
128   #define CYTHON_COMPILING_IN_PYPY 0
129   #define CYTHON_COMPILING_IN_PYSTON 0
130   #define CYTHON_COMPILING_IN_CPYTHON 1
131   #ifndef CYTHON_USE_TYPE_SLOTS
132     #define CYTHON_USE_TYPE_SLOTS 1
133   #endif
134   #if PY_VERSION_HEX < 0x02070000
135     #undef CYTHON_USE_PYTYPE_LOOKUP
136     #define CYTHON_USE_PYTYPE_LOOKUP 0
137   #elif !defined(CYTHON_USE_PYTYPE_LOOKUP)
138     #define CYTHON_USE_PYTYPE_LOOKUP 1
139   #endif
140   #if PY_MAJOR_VERSION < 3
141     #undef CYTHON_USE_ASYNC_SLOTS
142     #define CYTHON_USE_ASYNC_SLOTS 0
143   #elif !defined(CYTHON_USE_ASYNC_SLOTS)
144     #define CYTHON_USE_ASYNC_SLOTS 1
145   #endif
146   #if PY_VERSION_HEX < 0x02070000
147     #undef CYTHON_USE_PYLONG_INTERNALS
148     #define CYTHON_USE_PYLONG_INTERNALS 0
149   #elif !defined(CYTHON_USE_PYLONG_INTERNALS)
150     #define CYTHON_USE_PYLONG_INTERNALS 1
151   #endif
152   #ifndef CYTHON_USE_PYLIST_INTERNALS
153     #define CYTHON_USE_PYLIST_INTERNALS 1
154   #endif
155   #ifndef CYTHON_USE_UNICODE_INTERNALS
156     #define CYTHON_USE_UNICODE_INTERNALS 1
157   #endif
158   #if PY_VERSION_HEX < 0x030300F0
159     #undef CYTHON_USE_UNICODE_WRITER
160     #define CYTHON_USE_UNICODE_WRITER 0
161   #elif !defined(CYTHON_USE_UNICODE_WRITER)
162     #define CYTHON_USE_UNICODE_WRITER 1
163   #endif
164   #ifndef CYTHON_AVOID_BORROWED_REFS
165     #define CYTHON_AVOID_BORROWED_REFS 0
166   #endif
167   #ifndef CYTHON_ASSUME_SAFE_MACROS
168     #define CYTHON_ASSUME_SAFE_MACROS 1
169   #endif
170   #ifndef CYTHON_UNPACK_METHODS
171     #define CYTHON_UNPACK_METHODS 1
172   #endif
173   #ifndef CYTHON_FAST_THREAD_STATE
174     #define CYTHON_FAST_THREAD_STATE 1
175   #endif
176   #ifndef CYTHON_FAST_PYCALL
177     #define CYTHON_FAST_PYCALL 1
178   #endif
179   #ifndef CYTHON_PEP489_MULTI_PHASE_INIT
180     #define CYTHON_PEP489_MULTI_PHASE_INIT (PY_VERSION_HEX >= 0x03050000)
181   #endif
182   #ifndef CYTHON_USE_TP_FINALIZE
183     #define CYTHON_USE_TP_FINALIZE (PY_VERSION_HEX >= 0x030400a1)
184   #endif
185   #ifndef CYTHON_USE_DICT_VERSIONS
186     #define CYTHON_USE_DICT_VERSIONS (PY_VERSION_HEX >= 0x030600B1)
187   #endif
188   #ifndef CYTHON_USE_EXC_INFO_STACK
189     #define CYTHON_USE_EXC_INFO_STACK (PY_VERSION_HEX >= 0x030700A3)
190   #endif
191 #endif
192 #if !defined(CYTHON_FAST_PYCCALL)
193 #define CYTHON_FAST_PYCCALL  (CYTHON_FAST_PYCALL && PY_VERSION_HEX >= 0x030600B1)
194 #endif
195 #if CYTHON_USE_PYLONG_INTERNALS
196   #include "longintrepr.h"
197   #undef SHIFT
198   #undef BASE
199   #undef MASK
200   #ifdef SIZEOF_VOID_P
201     enum { __pyx_check_sizeof_voidp = 1 / (int)(SIZEOF_VOID_P == sizeof(void*)) };
202   #endif
203 #endif
204 #ifndef __has_attribute
205   #define __has_attribute(x) 0
206 #endif
207 #ifndef __has_cpp_attribute
208   #define __has_cpp_attribute(x) 0
209 #endif
210 #ifndef CYTHON_RESTRICT
211   #if defined(__GNUC__)
212     #define CYTHON_RESTRICT __restrict__
213   #elif defined(_MSC_VER) && _MSC_VER >= 1400
214     #define CYTHON_RESTRICT __restrict
215   #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
216     #define CYTHON_RESTRICT restrict
217   #else
218     #define CYTHON_RESTRICT
219   #endif
220 #endif
221 #ifndef CYTHON_UNUSED
222 # if defined(__GNUC__)
223 #   if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4))
224 #     define CYTHON_UNUSED __attribute__ ((__unused__))
225 #   else
226 #     define CYTHON_UNUSED
227 #   endif
228 # elif defined(__ICC) || (defined(__INTEL_COMPILER) && !defined(_MSC_VER))
229 #   define CYTHON_UNUSED __attribute__ ((__unused__))
230 # else
231 #   define CYTHON_UNUSED
232 # endif
233 #endif
234 #ifndef CYTHON_MAYBE_UNUSED_VAR
235 #  if defined(__cplusplus)
CYTHON_MAYBE_UNUSED_VAR(const T &)236      template<class T> void CYTHON_MAYBE_UNUSED_VAR( const T& ) { }
237 #  else
238 #    define CYTHON_MAYBE_UNUSED_VAR(x) (void)(x)
239 #  endif
240 #endif
241 #ifndef CYTHON_NCP_UNUSED
242 # if CYTHON_COMPILING_IN_CPYTHON
243 #  define CYTHON_NCP_UNUSED
244 # else
245 #  define CYTHON_NCP_UNUSED CYTHON_UNUSED
246 # endif
247 #endif
248 #define __Pyx_void_to_None(void_result) ((void)(void_result), Py_INCREF(Py_None), Py_None)
249 #ifdef _MSC_VER
250     #ifndef _MSC_STDINT_H_
251         #if _MSC_VER < 1300
252            typedef unsigned char     uint8_t;
253            typedef unsigned int      uint32_t;
254         #else
255            typedef unsigned __int8   uint8_t;
256            typedef unsigned __int32  uint32_t;
257         #endif
258     #endif
259 #else
260    #include <stdint.h>
261 #endif
262 #ifndef CYTHON_FALLTHROUGH
263   #if defined(__cplusplus) && __cplusplus >= 201103L
264     #if __has_cpp_attribute(fallthrough)
265       #define CYTHON_FALLTHROUGH [[fallthrough]]
266     #elif __has_cpp_attribute(clang::fallthrough)
267       #define CYTHON_FALLTHROUGH [[clang::fallthrough]]
268     #elif __has_cpp_attribute(gnu::fallthrough)
269       #define CYTHON_FALLTHROUGH [[gnu::fallthrough]]
270     #endif
271   #endif
272   #ifndef CYTHON_FALLTHROUGH
273     #if __has_attribute(fallthrough)
274       #define CYTHON_FALLTHROUGH __attribute__((fallthrough))
275     #else
276       #define CYTHON_FALLTHROUGH
277     #endif
278   #endif
279   #if defined(__clang__ ) && defined(__apple_build_version__)
280     #if __apple_build_version__ < 7000000
281       #undef  CYTHON_FALLTHROUGH
282       #define CYTHON_FALLTHROUGH
283     #endif
284   #endif
285 #endif
286 
287 #ifndef CYTHON_INLINE
288   #if defined(__clang__)
289     #define CYTHON_INLINE __inline__ __attribute__ ((__unused__))
290   #elif defined(__GNUC__)
291     #define CYTHON_INLINE __inline__
292   #elif defined(_MSC_VER)
293     #define CYTHON_INLINE __inline
294   #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
295     #define CYTHON_INLINE inline
296   #else
297     #define CYTHON_INLINE
298   #endif
299 #endif
300 
301 #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x02070600 && !defined(Py_OptimizeFlag)
302   #define Py_OptimizeFlag 0
303 #endif
304 #define __PYX_BUILD_PY_SSIZE_T "n"
305 #define CYTHON_FORMAT_SSIZE_T "z"
306 #if PY_MAJOR_VERSION < 3
307   #define __Pyx_BUILTIN_MODULE_NAME "__builtin__"
308   #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\
309           PyCode_New(a+k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)
310   #define __Pyx_DefaultClassType PyClass_Type
311 #else
312   #define __Pyx_BUILTIN_MODULE_NAME "builtins"
313 #if PY_VERSION_HEX >= 0x030800A4 && PY_VERSION_HEX < 0x030800B2
314   #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\
315           PyCode_New(a, 0, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)
316 #else
317   #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\
318           PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)
319 #endif
320   #define __Pyx_DefaultClassType PyType_Type
321 #endif
322 #ifndef Py_TPFLAGS_CHECKTYPES
323   #define Py_TPFLAGS_CHECKTYPES 0
324 #endif
325 #ifndef Py_TPFLAGS_HAVE_INDEX
326   #define Py_TPFLAGS_HAVE_INDEX 0
327 #endif
328 #ifndef Py_TPFLAGS_HAVE_NEWBUFFER
329   #define Py_TPFLAGS_HAVE_NEWBUFFER 0
330 #endif
331 #ifndef Py_TPFLAGS_HAVE_FINALIZE
332   #define Py_TPFLAGS_HAVE_FINALIZE 0
333 #endif
334 #ifndef METH_STACKLESS
335   #define METH_STACKLESS 0
336 #endif
337 #if PY_VERSION_HEX <= 0x030700A3 || !defined(METH_FASTCALL)
338   #ifndef METH_FASTCALL
339      #define METH_FASTCALL 0x80
340   #endif
341   typedef PyObject *(*__Pyx_PyCFunctionFast) (PyObject *self, PyObject *const *args, Py_ssize_t nargs);
342   typedef PyObject *(*__Pyx_PyCFunctionFastWithKeywords) (PyObject *self, PyObject *const *args,
343                                                           Py_ssize_t nargs, PyObject *kwnames);
344 #else
345   #define __Pyx_PyCFunctionFast _PyCFunctionFast
346   #define __Pyx_PyCFunctionFastWithKeywords _PyCFunctionFastWithKeywords
347 #endif
348 #if CYTHON_FAST_PYCCALL
349 #define __Pyx_PyFastCFunction_Check(func)\
350     ((PyCFunction_Check(func) && (METH_FASTCALL == (PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST | METH_KEYWORDS | METH_STACKLESS)))))
351 #else
352 #define __Pyx_PyFastCFunction_Check(func) 0
353 #endif
354 #if CYTHON_COMPILING_IN_PYPY && !defined(PyObject_Malloc)
355   #define PyObject_Malloc(s)   PyMem_Malloc(s)
356   #define PyObject_Free(p)     PyMem_Free(p)
357   #define PyObject_Realloc(p)  PyMem_Realloc(p)
358 #endif
359 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030400A1
360   #define PyMem_RawMalloc(n)           PyMem_Malloc(n)
361   #define PyMem_RawRealloc(p, n)       PyMem_Realloc(p, n)
362   #define PyMem_RawFree(p)             PyMem_Free(p)
363 #endif
364 #if CYTHON_COMPILING_IN_PYSTON
365   #define __Pyx_PyCode_HasFreeVars(co)  PyCode_HasFreeVars(co)
366   #define __Pyx_PyFrame_SetLineNumber(frame, lineno) PyFrame_SetLineNumber(frame, lineno)
367 #else
368   #define __Pyx_PyCode_HasFreeVars(co)  (PyCode_GetNumFree(co) > 0)
369   #define __Pyx_PyFrame_SetLineNumber(frame, lineno)  (frame)->f_lineno = (lineno)
370 #endif
371 #if !CYTHON_FAST_THREAD_STATE || PY_VERSION_HEX < 0x02070000
372   #define __Pyx_PyThreadState_Current PyThreadState_GET()
373 #elif PY_VERSION_HEX >= 0x03060000
374   #define __Pyx_PyThreadState_Current _PyThreadState_UncheckedGet()
375 #elif PY_VERSION_HEX >= 0x03000000
376   #define __Pyx_PyThreadState_Current PyThreadState_GET()
377 #else
378   #define __Pyx_PyThreadState_Current _PyThreadState_Current
379 #endif
380 #if PY_VERSION_HEX < 0x030700A2 && !defined(PyThread_tss_create) && !defined(Py_tss_NEEDS_INIT)
381 #include "pythread.h"
382 #define Py_tss_NEEDS_INIT 0
383 typedef int Py_tss_t;
PyThread_tss_create(Py_tss_t * key)384 static CYTHON_INLINE int PyThread_tss_create(Py_tss_t *key) {
385   *key = PyThread_create_key();
386   return 0;
387 }
PyThread_tss_alloc(void)388 static CYTHON_INLINE Py_tss_t * PyThread_tss_alloc(void) {
389   Py_tss_t *key = (Py_tss_t *)PyObject_Malloc(sizeof(Py_tss_t));
390   *key = Py_tss_NEEDS_INIT;
391   return key;
392 }
PyThread_tss_free(Py_tss_t * key)393 static CYTHON_INLINE void PyThread_tss_free(Py_tss_t *key) {
394   PyObject_Free(key);
395 }
PyThread_tss_is_created(Py_tss_t * key)396 static CYTHON_INLINE int PyThread_tss_is_created(Py_tss_t *key) {
397   return *key != Py_tss_NEEDS_INIT;
398 }
PyThread_tss_delete(Py_tss_t * key)399 static CYTHON_INLINE void PyThread_tss_delete(Py_tss_t *key) {
400   PyThread_delete_key(*key);
401   *key = Py_tss_NEEDS_INIT;
402 }
PyThread_tss_set(Py_tss_t * key,void * value)403 static CYTHON_INLINE int PyThread_tss_set(Py_tss_t *key, void *value) {
404   return PyThread_set_key_value(*key, value);
405 }
PyThread_tss_get(Py_tss_t * key)406 static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) {
407   return PyThread_get_key_value(*key);
408 }
409 #endif
410 #if CYTHON_COMPILING_IN_CPYTHON || defined(_PyDict_NewPresized)
411 #define __Pyx_PyDict_NewPresized(n)  ((n <= 8) ? PyDict_New() : _PyDict_NewPresized(n))
412 #else
413 #define __Pyx_PyDict_NewPresized(n)  PyDict_New()
414 #endif
415 #if PY_MAJOR_VERSION >= 3 || CYTHON_FUTURE_DIVISION
416   #define __Pyx_PyNumber_Divide(x,y)         PyNumber_TrueDivide(x,y)
417   #define __Pyx_PyNumber_InPlaceDivide(x,y)  PyNumber_InPlaceTrueDivide(x,y)
418 #else
419   #define __Pyx_PyNumber_Divide(x,y)         PyNumber_Divide(x,y)
420   #define __Pyx_PyNumber_InPlaceDivide(x,y)  PyNumber_InPlaceDivide(x,y)
421 #endif
422 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030500A1 && CYTHON_USE_UNICODE_INTERNALS
423 #define __Pyx_PyDict_GetItemStr(dict, name)  _PyDict_GetItem_KnownHash(dict, name, ((PyASCIIObject *) name)->hash)
424 #else
425 #define __Pyx_PyDict_GetItemStr(dict, name)  PyDict_GetItem(dict, name)
426 #endif
427 #if PY_VERSION_HEX > 0x03030000 && defined(PyUnicode_KIND)
428   #define CYTHON_PEP393_ENABLED 1
429   #define __Pyx_PyUnicode_READY(op)       (likely(PyUnicode_IS_READY(op)) ?\
430                                               0 : _PyUnicode_Ready((PyObject *)(op)))
431   #define __Pyx_PyUnicode_GET_LENGTH(u)   PyUnicode_GET_LENGTH(u)
432   #define __Pyx_PyUnicode_READ_CHAR(u, i) PyUnicode_READ_CHAR(u, i)
433   #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u)   PyUnicode_MAX_CHAR_VALUE(u)
434   #define __Pyx_PyUnicode_KIND(u)         PyUnicode_KIND(u)
435   #define __Pyx_PyUnicode_DATA(u)         PyUnicode_DATA(u)
436   #define __Pyx_PyUnicode_READ(k, d, i)   PyUnicode_READ(k, d, i)
437   #define __Pyx_PyUnicode_WRITE(k, d, i, ch)  PyUnicode_WRITE(k, d, i, ch)
438   #if defined(PyUnicode_IS_READY) && defined(PyUnicode_GET_SIZE)
439   #define __Pyx_PyUnicode_IS_TRUE(u)      (0 != (likely(PyUnicode_IS_READY(u)) ? PyUnicode_GET_LENGTH(u) : PyUnicode_GET_SIZE(u)))
440   #else
441   #define __Pyx_PyUnicode_IS_TRUE(u)      (0 != PyUnicode_GET_LENGTH(u))
442   #endif
443 #else
444   #define CYTHON_PEP393_ENABLED 0
445   #define PyUnicode_1BYTE_KIND  1
446   #define PyUnicode_2BYTE_KIND  2
447   #define PyUnicode_4BYTE_KIND  4
448   #define __Pyx_PyUnicode_READY(op)       (0)
449   #define __Pyx_PyUnicode_GET_LENGTH(u)   PyUnicode_GET_SIZE(u)
450   #define __Pyx_PyUnicode_READ_CHAR(u, i) ((Py_UCS4)(PyUnicode_AS_UNICODE(u)[i]))
451   #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u)   ((sizeof(Py_UNICODE) == 2) ? 65535 : 1114111)
452   #define __Pyx_PyUnicode_KIND(u)         (sizeof(Py_UNICODE))
453   #define __Pyx_PyUnicode_DATA(u)         ((void*)PyUnicode_AS_UNICODE(u))
454   #define __Pyx_PyUnicode_READ(k, d, i)   ((void)(k), (Py_UCS4)(((Py_UNICODE*)d)[i]))
455   #define __Pyx_PyUnicode_WRITE(k, d, i, ch)  (((void)(k)), ((Py_UNICODE*)d)[i] = ch)
456   #define __Pyx_PyUnicode_IS_TRUE(u)      (0 != PyUnicode_GET_SIZE(u))
457 #endif
458 #if CYTHON_COMPILING_IN_PYPY
459   #define __Pyx_PyUnicode_Concat(a, b)      PyNumber_Add(a, b)
460   #define __Pyx_PyUnicode_ConcatSafe(a, b)  PyNumber_Add(a, b)
461 #else
462   #define __Pyx_PyUnicode_Concat(a, b)      PyUnicode_Concat(a, b)
463   #define __Pyx_PyUnicode_ConcatSafe(a, b)  ((unlikely((a) == Py_None) || unlikely((b) == Py_None)) ?\
464       PyNumber_Add(a, b) : __Pyx_PyUnicode_Concat(a, b))
465 #endif
466 #if CYTHON_COMPILING_IN_PYPY && !defined(PyUnicode_Contains)
467   #define PyUnicode_Contains(u, s)  PySequence_Contains(u, s)
468 #endif
469 #if CYTHON_COMPILING_IN_PYPY && !defined(PyByteArray_Check)
470   #define PyByteArray_Check(obj)  PyObject_TypeCheck(obj, &PyByteArray_Type)
471 #endif
472 #if CYTHON_COMPILING_IN_PYPY && !defined(PyObject_Format)
473   #define PyObject_Format(obj, fmt)  PyObject_CallMethod(obj, "__format__", "O", fmt)
474 #endif
475 #define __Pyx_PyString_FormatSafe(a, b)   ((unlikely((a) == Py_None || (PyString_Check(b) && !PyString_CheckExact(b)))) ? PyNumber_Remainder(a, b) : __Pyx_PyString_Format(a, b))
476 #define __Pyx_PyUnicode_FormatSafe(a, b)  ((unlikely((a) == Py_None || (PyUnicode_Check(b) && !PyUnicode_CheckExact(b)))) ? PyNumber_Remainder(a, b) : PyUnicode_Format(a, b))
477 #if PY_MAJOR_VERSION >= 3
478   #define __Pyx_PyString_Format(a, b)  PyUnicode_Format(a, b)
479 #else
480   #define __Pyx_PyString_Format(a, b)  PyString_Format(a, b)
481 #endif
482 #if PY_MAJOR_VERSION < 3 && !defined(PyObject_ASCII)
483   #define PyObject_ASCII(o)            PyObject_Repr(o)
484 #endif
485 #if PY_MAJOR_VERSION >= 3
486   #define PyBaseString_Type            PyUnicode_Type
487   #define PyStringObject               PyUnicodeObject
488   #define PyString_Type                PyUnicode_Type
489   #define PyString_Check               PyUnicode_Check
490   #define PyString_CheckExact          PyUnicode_CheckExact
491 #ifndef PyObject_Unicode
492   #define PyObject_Unicode             PyObject_Str
493 #endif
494 #endif
495 #if PY_MAJOR_VERSION >= 3
496   #define __Pyx_PyBaseString_Check(obj) PyUnicode_Check(obj)
497   #define __Pyx_PyBaseString_CheckExact(obj) PyUnicode_CheckExact(obj)
498 #else
499   #define __Pyx_PyBaseString_Check(obj) (PyString_Check(obj) || PyUnicode_Check(obj))
500   #define __Pyx_PyBaseString_CheckExact(obj) (PyString_CheckExact(obj) || PyUnicode_CheckExact(obj))
501 #endif
502 #ifndef PySet_CheckExact
503   #define PySet_CheckExact(obj)        (Py_TYPE(obj) == &PySet_Type)
504 #endif
505 #if PY_VERSION_HEX >= 0x030900A4
506   #define __Pyx_SET_REFCNT(obj, refcnt) Py_SET_REFCNT(obj, refcnt)
507   #define __Pyx_SET_SIZE(obj, size) Py_SET_SIZE(obj, size)
508 #else
509   #define __Pyx_SET_REFCNT(obj, refcnt) Py_REFCNT(obj) = (refcnt)
510   #define __Pyx_SET_SIZE(obj, size) Py_SIZE(obj) = (size)
511 #endif
512 #if CYTHON_ASSUME_SAFE_MACROS
513   #define __Pyx_PySequence_SIZE(seq)  Py_SIZE(seq)
514 #else
515   #define __Pyx_PySequence_SIZE(seq)  PySequence_Size(seq)
516 #endif
517 #if PY_MAJOR_VERSION >= 3
518   #define PyIntObject                  PyLongObject
519   #define PyInt_Type                   PyLong_Type
520   #define PyInt_Check(op)              PyLong_Check(op)
521   #define PyInt_CheckExact(op)         PyLong_CheckExact(op)
522   #define PyInt_FromString             PyLong_FromString
523   #define PyInt_FromUnicode            PyLong_FromUnicode
524   #define PyInt_FromLong               PyLong_FromLong
525   #define PyInt_FromSize_t             PyLong_FromSize_t
526   #define PyInt_FromSsize_t            PyLong_FromSsize_t
527   #define PyInt_AsLong                 PyLong_AsLong
528   #define PyInt_AS_LONG                PyLong_AS_LONG
529   #define PyInt_AsSsize_t              PyLong_AsSsize_t
530   #define PyInt_AsUnsignedLongMask     PyLong_AsUnsignedLongMask
531   #define PyInt_AsUnsignedLongLongMask PyLong_AsUnsignedLongLongMask
532   #define PyNumber_Int                 PyNumber_Long
533 #endif
534 #if PY_MAJOR_VERSION >= 3
535   #define PyBoolObject                 PyLongObject
536 #endif
537 #if PY_MAJOR_VERSION >= 3 && CYTHON_COMPILING_IN_PYPY
538   #ifndef PyUnicode_InternFromString
539     #define PyUnicode_InternFromString(s) PyUnicode_FromString(s)
540   #endif
541 #endif
542 #if PY_VERSION_HEX < 0x030200A4
543   typedef long Py_hash_t;
544   #define __Pyx_PyInt_FromHash_t PyInt_FromLong
545   #define __Pyx_PyInt_AsHash_t   PyInt_AsLong
546 #else
547   #define __Pyx_PyInt_FromHash_t PyInt_FromSsize_t
548   #define __Pyx_PyInt_AsHash_t   PyInt_AsSsize_t
549 #endif
550 #if PY_MAJOR_VERSION >= 3
551   #define __Pyx_PyMethod_New(func, self, klass) ((self) ? ((void)(klass), PyMethod_New(func, self)) : __Pyx_NewRef(func))
552 #else
553   #define __Pyx_PyMethod_New(func, self, klass) PyMethod_New(func, self, klass)
554 #endif
555 #if CYTHON_USE_ASYNC_SLOTS
556   #if PY_VERSION_HEX >= 0x030500B1
557     #define __Pyx_PyAsyncMethodsStruct PyAsyncMethods
558     #define __Pyx_PyType_AsAsync(obj) (Py_TYPE(obj)->tp_as_async)
559   #else
560     #define __Pyx_PyType_AsAsync(obj) ((__Pyx_PyAsyncMethodsStruct*) (Py_TYPE(obj)->tp_reserved))
561   #endif
562 #else
563   #define __Pyx_PyType_AsAsync(obj) NULL
564 #endif
565 #ifndef __Pyx_PyAsyncMethodsStruct
566     typedef struct {
567         unaryfunc am_await;
568         unaryfunc am_aiter;
569         unaryfunc am_anext;
570     } __Pyx_PyAsyncMethodsStruct;
571 #endif
572 
573 #if defined(WIN32) || defined(MS_WINDOWS)
574   #define _USE_MATH_DEFINES
575 #endif
576 #include <math.h>
577 #ifdef NAN
578 #define __PYX_NAN() ((float) NAN)
579 #else
__PYX_NAN()580 static CYTHON_INLINE float __PYX_NAN() {
581   float value;
582   memset(&value, 0xFF, sizeof(value));
583   return value;
584 }
585 #endif
586 #if defined(__CYGWIN__) && defined(_LDBL_EQ_DBL)
587 #define __Pyx_truncl trunc
588 #else
589 #define __Pyx_truncl truncl
590 #endif
591 
592 #define __PYX_MARK_ERR_POS(f_index, lineno) \
593     { __pyx_filename = __pyx_f[f_index]; (void)__pyx_filename; __pyx_lineno = lineno; (void)__pyx_lineno; __pyx_clineno = __LINE__; (void)__pyx_clineno; }
594 #define __PYX_ERR(f_index, lineno, Ln_error) \
595     { __PYX_MARK_ERR_POS(f_index, lineno) goto Ln_error; }
596 
597 #ifndef __PYX_EXTERN_C
598   #ifdef __cplusplus
599     #define __PYX_EXTERN_C extern "C"
600   #else
601     #define __PYX_EXTERN_C extern
602   #endif
603 #endif
604 
605 #define __PYX_HAVE__aiohttp___http_parser
606 #define __PYX_HAVE_API__aiohttp___http_parser
607 /* Early includes */
608 #include <string.h>
609 #include <stdio.h>
610 #include "pythread.h"
611 #include <limits.h>
612 #include <stdint.h>
613 #include "../vendor/http-parser/http_parser.h"
614 #include "_find_header.h"
615 #ifdef _OPENMP
616 #include <omp.h>
617 #endif /* _OPENMP */
618 
619 #if defined(PYREX_WITHOUT_ASSERTIONS) && !defined(CYTHON_WITHOUT_ASSERTIONS)
620 #define CYTHON_WITHOUT_ASSERTIONS
621 #endif
622 
623 typedef struct {PyObject **p; const char *s; const Py_ssize_t n; const char* encoding;
624                 const char is_unicode; const char is_str; const char intern; } __Pyx_StringTabEntry;
625 
626 #define __PYX_DEFAULT_STRING_ENCODING_IS_ASCII 0
627 #define __PYX_DEFAULT_STRING_ENCODING_IS_UTF8 0
628 #define __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT (PY_MAJOR_VERSION >= 3 && __PYX_DEFAULT_STRING_ENCODING_IS_UTF8)
629 #define __PYX_DEFAULT_STRING_ENCODING ""
630 #define __Pyx_PyObject_FromString __Pyx_PyBytes_FromString
631 #define __Pyx_PyObject_FromStringAndSize __Pyx_PyBytes_FromStringAndSize
632 #define __Pyx_uchar_cast(c) ((unsigned char)c)
633 #define __Pyx_long_cast(x) ((long)x)
634 #define __Pyx_fits_Py_ssize_t(v, type, is_signed)  (\
635     (sizeof(type) < sizeof(Py_ssize_t))  ||\
636     (sizeof(type) > sizeof(Py_ssize_t) &&\
637           likely(v < (type)PY_SSIZE_T_MAX ||\
638                  v == (type)PY_SSIZE_T_MAX)  &&\
639           (!is_signed || likely(v > (type)PY_SSIZE_T_MIN ||\
640                                 v == (type)PY_SSIZE_T_MIN)))  ||\
641     (sizeof(type) == sizeof(Py_ssize_t) &&\
642           (is_signed || likely(v < (type)PY_SSIZE_T_MAX ||\
643                                v == (type)PY_SSIZE_T_MAX)))  )
__Pyx_is_valid_index(Py_ssize_t i,Py_ssize_t limit)644 static CYTHON_INLINE int __Pyx_is_valid_index(Py_ssize_t i, Py_ssize_t limit) {
645     return (size_t) i < (size_t) limit;
646 }
647 #if defined (__cplusplus) && __cplusplus >= 201103L
648     #include <cstdlib>
649     #define __Pyx_sst_abs(value) std::abs(value)
650 #elif SIZEOF_INT >= SIZEOF_SIZE_T
651     #define __Pyx_sst_abs(value) abs(value)
652 #elif SIZEOF_LONG >= SIZEOF_SIZE_T
653     #define __Pyx_sst_abs(value) labs(value)
654 #elif defined (_MSC_VER)
655     #define __Pyx_sst_abs(value) ((Py_ssize_t)_abs64(value))
656 #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
657     #define __Pyx_sst_abs(value) llabs(value)
658 #elif defined (__GNUC__)
659     #define __Pyx_sst_abs(value) __builtin_llabs(value)
660 #else
661     #define __Pyx_sst_abs(value) ((value<0) ? -value : value)
662 #endif
663 static CYTHON_INLINE const char* __Pyx_PyObject_AsString(PyObject*);
664 static CYTHON_INLINE const char* __Pyx_PyObject_AsStringAndSize(PyObject*, Py_ssize_t* length);
665 #define __Pyx_PyByteArray_FromString(s) PyByteArray_FromStringAndSize((const char*)s, strlen((const char*)s))
666 #define __Pyx_PyByteArray_FromStringAndSize(s, l) PyByteArray_FromStringAndSize((const char*)s, l)
667 #define __Pyx_PyBytes_FromString        PyBytes_FromString
668 #define __Pyx_PyBytes_FromStringAndSize PyBytes_FromStringAndSize
669 static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(const char*);
670 #if PY_MAJOR_VERSION < 3
671     #define __Pyx_PyStr_FromString        __Pyx_PyBytes_FromString
672     #define __Pyx_PyStr_FromStringAndSize __Pyx_PyBytes_FromStringAndSize
673 #else
674     #define __Pyx_PyStr_FromString        __Pyx_PyUnicode_FromString
675     #define __Pyx_PyStr_FromStringAndSize __Pyx_PyUnicode_FromStringAndSize
676 #endif
677 #define __Pyx_PyBytes_AsWritableString(s)     ((char*) PyBytes_AS_STRING(s))
678 #define __Pyx_PyBytes_AsWritableSString(s)    ((signed char*) PyBytes_AS_STRING(s))
679 #define __Pyx_PyBytes_AsWritableUString(s)    ((unsigned char*) PyBytes_AS_STRING(s))
680 #define __Pyx_PyBytes_AsString(s)     ((const char*) PyBytes_AS_STRING(s))
681 #define __Pyx_PyBytes_AsSString(s)    ((const signed char*) PyBytes_AS_STRING(s))
682 #define __Pyx_PyBytes_AsUString(s)    ((const unsigned char*) PyBytes_AS_STRING(s))
683 #define __Pyx_PyObject_AsWritableString(s)    ((char*) __Pyx_PyObject_AsString(s))
684 #define __Pyx_PyObject_AsWritableSString(s)    ((signed char*) __Pyx_PyObject_AsString(s))
685 #define __Pyx_PyObject_AsWritableUString(s)    ((unsigned char*) __Pyx_PyObject_AsString(s))
686 #define __Pyx_PyObject_AsSString(s)    ((const signed char*) __Pyx_PyObject_AsString(s))
687 #define __Pyx_PyObject_AsUString(s)    ((const unsigned char*) __Pyx_PyObject_AsString(s))
688 #define __Pyx_PyObject_FromCString(s)  __Pyx_PyObject_FromString((const char*)s)
689 #define __Pyx_PyBytes_FromCString(s)   __Pyx_PyBytes_FromString((const char*)s)
690 #define __Pyx_PyByteArray_FromCString(s)   __Pyx_PyByteArray_FromString((const char*)s)
691 #define __Pyx_PyStr_FromCString(s)     __Pyx_PyStr_FromString((const char*)s)
692 #define __Pyx_PyUnicode_FromCString(s) __Pyx_PyUnicode_FromString((const char*)s)
__Pyx_Py_UNICODE_strlen(const Py_UNICODE * u)693 static CYTHON_INLINE size_t __Pyx_Py_UNICODE_strlen(const Py_UNICODE *u) {
694     const Py_UNICODE *u_end = u;
695     while (*u_end++) ;
696     return (size_t)(u_end - u - 1);
697 }
698 #define __Pyx_PyUnicode_FromUnicode(u)       PyUnicode_FromUnicode(u, __Pyx_Py_UNICODE_strlen(u))
699 #define __Pyx_PyUnicode_FromUnicodeAndLength PyUnicode_FromUnicode
700 #define __Pyx_PyUnicode_AsUnicode            PyUnicode_AsUnicode
701 #define __Pyx_NewRef(obj) (Py_INCREF(obj), obj)
702 #define __Pyx_Owned_Py_None(b) __Pyx_NewRef(Py_None)
703 static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b);
704 static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject*);
705 static CYTHON_INLINE int __Pyx_PyObject_IsTrueAndDecref(PyObject*);
706 static CYTHON_INLINE PyObject* __Pyx_PyNumber_IntOrLong(PyObject* x);
707 #define __Pyx_PySequence_Tuple(obj)\
708     (likely(PyTuple_CheckExact(obj)) ? __Pyx_NewRef(obj) : PySequence_Tuple(obj))
709 static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject*);
710 static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t);
711 #if CYTHON_ASSUME_SAFE_MACROS
712 #define __pyx_PyFloat_AsDouble(x) (PyFloat_CheckExact(x) ? PyFloat_AS_DOUBLE(x) : PyFloat_AsDouble(x))
713 #else
714 #define __pyx_PyFloat_AsDouble(x) PyFloat_AsDouble(x)
715 #endif
716 #define __pyx_PyFloat_AsFloat(x) ((float) __pyx_PyFloat_AsDouble(x))
717 #if PY_MAJOR_VERSION >= 3
718 #define __Pyx_PyNumber_Int(x) (PyLong_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Long(x))
719 #else
720 #define __Pyx_PyNumber_Int(x) (PyInt_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Int(x))
721 #endif
722 #define __Pyx_PyNumber_Float(x) (PyFloat_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Float(x))
723 #if PY_MAJOR_VERSION < 3 && __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
724 static int __Pyx_sys_getdefaultencoding_not_ascii;
__Pyx_init_sys_getdefaultencoding_params(void)725 static int __Pyx_init_sys_getdefaultencoding_params(void) {
726     PyObject* sys;
727     PyObject* default_encoding = NULL;
728     PyObject* ascii_chars_u = NULL;
729     PyObject* ascii_chars_b = NULL;
730     const char* default_encoding_c;
731     sys = PyImport_ImportModule("sys");
732     if (!sys) goto bad;
733     default_encoding = PyObject_CallMethod(sys, (char*) "getdefaultencoding", NULL);
734     Py_DECREF(sys);
735     if (!default_encoding) goto bad;
736     default_encoding_c = PyBytes_AsString(default_encoding);
737     if (!default_encoding_c) goto bad;
738     if (strcmp(default_encoding_c, "ascii") == 0) {
739         __Pyx_sys_getdefaultencoding_not_ascii = 0;
740     } else {
741         char ascii_chars[128];
742         int c;
743         for (c = 0; c < 128; c++) {
744             ascii_chars[c] = c;
745         }
746         __Pyx_sys_getdefaultencoding_not_ascii = 1;
747         ascii_chars_u = PyUnicode_DecodeASCII(ascii_chars, 128, NULL);
748         if (!ascii_chars_u) goto bad;
749         ascii_chars_b = PyUnicode_AsEncodedString(ascii_chars_u, default_encoding_c, NULL);
750         if (!ascii_chars_b || !PyBytes_Check(ascii_chars_b) || memcmp(ascii_chars, PyBytes_AS_STRING(ascii_chars_b), 128) != 0) {
751             PyErr_Format(
752                 PyExc_ValueError,
753                 "This module compiled with c_string_encoding=ascii, but default encoding '%.200s' is not a superset of ascii.",
754                 default_encoding_c);
755             goto bad;
756         }
757         Py_DECREF(ascii_chars_u);
758         Py_DECREF(ascii_chars_b);
759     }
760     Py_DECREF(default_encoding);
761     return 0;
762 bad:
763     Py_XDECREF(default_encoding);
764     Py_XDECREF(ascii_chars_u);
765     Py_XDECREF(ascii_chars_b);
766     return -1;
767 }
768 #endif
769 #if __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT && PY_MAJOR_VERSION >= 3
770 #define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_DecodeUTF8(c_str, size, NULL)
771 #else
772 #define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_Decode(c_str, size, __PYX_DEFAULT_STRING_ENCODING, NULL)
773 #if __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT
774 static char* __PYX_DEFAULT_STRING_ENCODING;
__Pyx_init_sys_getdefaultencoding_params(void)775 static int __Pyx_init_sys_getdefaultencoding_params(void) {
776     PyObject* sys;
777     PyObject* default_encoding = NULL;
778     char* default_encoding_c;
779     sys = PyImport_ImportModule("sys");
780     if (!sys) goto bad;
781     default_encoding = PyObject_CallMethod(sys, (char*) (const char*) "getdefaultencoding", NULL);
782     Py_DECREF(sys);
783     if (!default_encoding) goto bad;
784     default_encoding_c = PyBytes_AsString(default_encoding);
785     if (!default_encoding_c) goto bad;
786     __PYX_DEFAULT_STRING_ENCODING = (char*) malloc(strlen(default_encoding_c) + 1);
787     if (!__PYX_DEFAULT_STRING_ENCODING) goto bad;
788     strcpy(__PYX_DEFAULT_STRING_ENCODING, default_encoding_c);
789     Py_DECREF(default_encoding);
790     return 0;
791 bad:
792     Py_XDECREF(default_encoding);
793     return -1;
794 }
795 #endif
796 #endif
797 
798 
799 /* Test for GCC > 2.95 */
800 #if defined(__GNUC__)     && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))
801   #define likely(x)   __builtin_expect(!!(x), 1)
802   #define unlikely(x) __builtin_expect(!!(x), 0)
803 #else /* !__GNUC__ or GCC < 2.95 */
804   #define likely(x)   (x)
805   #define unlikely(x) (x)
806 #endif /* __GNUC__ */
__Pyx_pretend_to_initialize(void * ptr)807 static CYTHON_INLINE void __Pyx_pretend_to_initialize(void* ptr) { (void)ptr; }
808 
809 static PyObject *__pyx_m = NULL;
810 static PyObject *__pyx_d;
811 static PyObject *__pyx_b;
812 static PyObject *__pyx_cython_runtime = NULL;
813 static PyObject *__pyx_empty_tuple;
814 static PyObject *__pyx_empty_bytes;
815 static PyObject *__pyx_empty_unicode;
816 static int __pyx_lineno;
817 static int __pyx_clineno = 0;
818 static const char * __pyx_cfilenm= __FILE__;
819 static const char *__pyx_filename;
820 
821 
822 static const char *__pyx_f[] = {
823   "aiohttp/_http_parser.pyx",
824   "stringsource",
825   "type.pxd",
826   "bool.pxd",
827   "complex.pxd",
828   "aiohttp/_headers.pxi",
829 };
830 
831 /*--- Type declarations ---*/
832 struct __pyx_obj_7aiohttp_12_http_parser_RawRequestMessage;
833 struct __pyx_obj_7aiohttp_12_http_parser_RawResponseMessage;
834 struct __pyx_obj_7aiohttp_12_http_parser_HttpParser;
835 struct __pyx_obj_7aiohttp_12_http_parser_HttpRequestParser;
836 struct __pyx_obj_7aiohttp_12_http_parser_HttpResponseParser;
837 struct __pyx_obj_7aiohttp_12_http_parser___pyx_scope_struct____repr__;
838 struct __pyx_obj_7aiohttp_12_http_parser___pyx_scope_struct_1_genexpr;
839 struct __pyx_obj_7aiohttp_12_http_parser___pyx_scope_struct_2___repr__;
840 struct __pyx_obj_7aiohttp_12_http_parser___pyx_scope_struct_3_genexpr;
841 struct __pyx_opt_args_7aiohttp_12_http_parser_10HttpParser__init;
842 
843 /* "aiohttp/_http_parser.pyx":327
844  *         PyMem_Free(self._csettings)
845  *
846  *     cdef _init(self, cparser.http_parser_type mode,             # <<<<<<<<<<<<<<
847  *                    object protocol, object loop, int limit,
848  *                    object timer=None,
849  */
850 struct __pyx_opt_args_7aiohttp_12_http_parser_10HttpParser__init {
851   int __pyx_n;
852   PyObject *timer;
853   size_t max_line_size;
854   size_t max_headers;
855   size_t max_field_size;
856   PyObject *payload_exception;
857   int response_with_body;
858   int read_until_eof;
859   int auto_decompress;
860 };
861 
862 /* "aiohttp/_http_parser.pyx":110
863  *
864  * @cython.freelist(DEFAULT_FREELIST_SIZE)
865  * cdef class RawRequestMessage:             # <<<<<<<<<<<<<<
866  *     cdef readonly str method
867  *     cdef readonly str path
868  */
869 struct __pyx_obj_7aiohttp_12_http_parser_RawRequestMessage {
870   PyObject_HEAD
871   PyObject *method;
872   PyObject *path;
873   PyObject *version;
874   PyObject *headers;
875   PyObject *raw_headers;
876   PyObject *should_close;
877   PyObject *compression;
878   PyObject *upgrade;
879   PyObject *chunked;
880   PyObject *url;
881 };
882 
883 
884 /* "aiohttp/_http_parser.pyx":210
885  *
886  * @cython.freelist(DEFAULT_FREELIST_SIZE)
887  * cdef class RawResponseMessage:             # <<<<<<<<<<<<<<
888  *     cdef readonly object version  # HttpVersion
889  *     cdef readonly int code
890  */
891 struct __pyx_obj_7aiohttp_12_http_parser_RawResponseMessage {
892   PyObject_HEAD
893   PyObject *version;
894   int code;
895   PyObject *reason;
896   PyObject *headers;
897   PyObject *raw_headers;
898   PyObject *should_close;
899   PyObject *compression;
900   PyObject *upgrade;
901   PyObject *chunked;
902 };
903 
904 
905 /* "aiohttp/_http_parser.pyx":272
906  *
907  * @cython.internal
908  * cdef class HttpParser:             # <<<<<<<<<<<<<<
909  *
910  *     cdef:
911  */
912 struct __pyx_obj_7aiohttp_12_http_parser_HttpParser {
913   PyObject_HEAD
914   struct __pyx_vtabstruct_7aiohttp_12_http_parser_HttpParser *__pyx_vtab;
915   struct http_parser *_cparser;
916   struct http_parser_settings *_csettings;
917   PyObject *_raw_name;
918   PyObject *_raw_value;
919   int _has_value;
920   PyObject *_protocol;
921   PyObject *_loop;
922   PyObject *_timer;
923   size_t _max_line_size;
924   size_t _max_field_size;
925   size_t _max_headers;
926   int _response_with_body;
927   int _read_until_eof;
928   int _started;
929   PyObject *_url;
930   PyObject *_buf;
931   PyObject *_path;
932   PyObject *_reason;
933   PyObject *_headers;
934   PyObject *_raw_headers;
935   int _upgraded;
936   PyObject *_messages;
937   PyObject *_payload;
938   int _payload_error;
939   PyObject *_payload_exception;
940   PyObject *_last_error;
941   int _auto_decompress;
942   int _limit;
943   PyObject *_content_encoding;
944   Py_buffer py_buf;
945 };
946 
947 
948 /* "aiohttp/_http_parser.pyx":563
949  *
950  *
951  * cdef class HttpRequestParser(HttpParser):             # <<<<<<<<<<<<<<
952  *
953  *     def __init__(self, protocol, loop, int limit, timer=None,
954  */
955 struct __pyx_obj_7aiohttp_12_http_parser_HttpRequestParser {
956   struct __pyx_obj_7aiohttp_12_http_parser_HttpParser __pyx_base;
957 };
958 
959 
960 /* "aiohttp/_http_parser.pyx":591
961  *
962  *
963  * cdef class HttpResponseParser(HttpParser):             # <<<<<<<<<<<<<<
964  *
965  *     def __init__(self, protocol, loop, int limit, timer=None,
966  */
967 struct __pyx_obj_7aiohttp_12_http_parser_HttpResponseParser {
968   struct __pyx_obj_7aiohttp_12_http_parser_HttpParser __pyx_base;
969 };
970 
971 
972 /* "aiohttp/_http_parser.pyx":135
973  *         self.url = url
974  *
975  *     def __repr__(self):             # <<<<<<<<<<<<<<
976  *         info = []
977  *         info.append(("method", self.method))
978  */
979 struct __pyx_obj_7aiohttp_12_http_parser___pyx_scope_struct____repr__ {
980   PyObject_HEAD
981   PyObject *__pyx_v_info;
982 };
983 
984 
985 /* "aiohttp/_http_parser.pyx":147
986  *         info.append(("chunked", self.chunked))
987  *         info.append(("url", self.url))
988  *         sinfo = ', '.join(name + '=' + repr(val) for name, val in info)             # <<<<<<<<<<<<<<
989  *         return '<RawRequestMessage(' + sinfo + ')>'
990  *
991  */
992 struct __pyx_obj_7aiohttp_12_http_parser___pyx_scope_struct_1_genexpr {
993   PyObject_HEAD
994   struct __pyx_obj_7aiohttp_12_http_parser___pyx_scope_struct____repr__ *__pyx_outer_scope;
995   PyObject *__pyx_v_name;
996   PyObject *__pyx_v_val;
997 };
998 
999 
1000 /* "aiohttp/_http_parser.pyx":233
1001  *         self.chunked = chunked
1002  *
1003  *     def __repr__(self):             # <<<<<<<<<<<<<<
1004  *         info = []
1005  *         info.append(("version", self.version))
1006  */
1007 struct __pyx_obj_7aiohttp_12_http_parser___pyx_scope_struct_2___repr__ {
1008   PyObject_HEAD
1009   PyObject *__pyx_v_info;
1010 };
1011 
1012 
1013 /* "aiohttp/_http_parser.pyx":244
1014  *         info.append(("upgrade", self.upgrade))
1015  *         info.append(("chunked", self.chunked))
1016  *         sinfo = ', '.join(name + '=' + repr(val) for name, val in info)             # <<<<<<<<<<<<<<
1017  *         return '<RawResponseMessage(' + sinfo + ')>'
1018  *
1019  */
1020 struct __pyx_obj_7aiohttp_12_http_parser___pyx_scope_struct_3_genexpr {
1021   PyObject_HEAD
1022   struct __pyx_obj_7aiohttp_12_http_parser___pyx_scope_struct_2___repr__ *__pyx_outer_scope;
1023   PyObject *__pyx_v_name;
1024   PyObject *__pyx_v_val;
1025 };
1026 
1027 
1028 
1029 /* "aiohttp/_http_parser.pyx":272
1030  *
1031  * @cython.internal
1032  * cdef class HttpParser:             # <<<<<<<<<<<<<<
1033  *
1034  *     cdef:
1035  */
1036 
1037 struct __pyx_vtabstruct_7aiohttp_12_http_parser_HttpParser {
1038   PyObject *(*_init)(struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *, enum http_parser_type, PyObject *, PyObject *, int, struct __pyx_opt_args_7aiohttp_12_http_parser_10HttpParser__init *__pyx_optional_args);
1039   PyObject *(*_process_header)(struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *);
1040   PyObject *(*_on_header_field)(struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *, char *, size_t);
1041   PyObject *(*_on_header_value)(struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *, char *, size_t);
1042   PyObject *(*_on_headers_complete)(struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *);
1043   PyObject *(*_on_message_complete)(struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *);
1044   PyObject *(*_on_chunk_header)(struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *);
1045   PyObject *(*_on_chunk_complete)(struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *);
1046   PyObject *(*_on_status_complete)(struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *);
1047   PyObject *(*http_version)(struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *);
1048 };
1049 static struct __pyx_vtabstruct_7aiohttp_12_http_parser_HttpParser *__pyx_vtabptr_7aiohttp_12_http_parser_HttpParser;
1050 static CYTHON_INLINE PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser_http_version(struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *);
1051 
1052 
1053 /* "aiohttp/_http_parser.pyx":563
1054  *
1055  *
1056  * cdef class HttpRequestParser(HttpParser):             # <<<<<<<<<<<<<<
1057  *
1058  *     def __init__(self, protocol, loop, int limit, timer=None,
1059  */
1060 
1061 struct __pyx_vtabstruct_7aiohttp_12_http_parser_HttpRequestParser {
1062   struct __pyx_vtabstruct_7aiohttp_12_http_parser_HttpParser __pyx_base;
1063 };
1064 static struct __pyx_vtabstruct_7aiohttp_12_http_parser_HttpRequestParser *__pyx_vtabptr_7aiohttp_12_http_parser_HttpRequestParser;
1065 
1066 
1067 /* "aiohttp/_http_parser.pyx":591
1068  *
1069  *
1070  * cdef class HttpResponseParser(HttpParser):             # <<<<<<<<<<<<<<
1071  *
1072  *     def __init__(self, protocol, loop, int limit, timer=None,
1073  */
1074 
1075 struct __pyx_vtabstruct_7aiohttp_12_http_parser_HttpResponseParser {
1076   struct __pyx_vtabstruct_7aiohttp_12_http_parser_HttpParser __pyx_base;
1077 };
1078 static struct __pyx_vtabstruct_7aiohttp_12_http_parser_HttpResponseParser *__pyx_vtabptr_7aiohttp_12_http_parser_HttpResponseParser;
1079 
1080 /* --- Runtime support code (head) --- */
1081 /* Refnanny.proto */
1082 #ifndef CYTHON_REFNANNY
1083   #define CYTHON_REFNANNY 0
1084 #endif
1085 #if CYTHON_REFNANNY
1086   typedef struct {
1087     void (*INCREF)(void*, PyObject*, int);
1088     void (*DECREF)(void*, PyObject*, int);
1089     void (*GOTREF)(void*, PyObject*, int);
1090     void (*GIVEREF)(void*, PyObject*, int);
1091     void* (*SetupContext)(const char*, int, const char*);
1092     void (*FinishContext)(void**);
1093   } __Pyx_RefNannyAPIStruct;
1094   static __Pyx_RefNannyAPIStruct *__Pyx_RefNanny = NULL;
1095   static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname);
1096   #define __Pyx_RefNannyDeclarations void *__pyx_refnanny = NULL;
1097 #ifdef WITH_THREAD
1098   #define __Pyx_RefNannySetupContext(name, acquire_gil)\
1099           if (acquire_gil) {\
1100               PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();\
1101               __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__);\
1102               PyGILState_Release(__pyx_gilstate_save);\
1103           } else {\
1104               __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__);\
1105           }
1106 #else
1107   #define __Pyx_RefNannySetupContext(name, acquire_gil)\
1108           __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__)
1109 #endif
1110   #define __Pyx_RefNannyFinishContext()\
1111           __Pyx_RefNanny->FinishContext(&__pyx_refnanny)
1112   #define __Pyx_INCREF(r)  __Pyx_RefNanny->INCREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
1113   #define __Pyx_DECREF(r)  __Pyx_RefNanny->DECREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
1114   #define __Pyx_GOTREF(r)  __Pyx_RefNanny->GOTREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
1115   #define __Pyx_GIVEREF(r) __Pyx_RefNanny->GIVEREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
1116   #define __Pyx_XINCREF(r)  do { if((r) != NULL) {__Pyx_INCREF(r); }} while(0)
1117   #define __Pyx_XDECREF(r)  do { if((r) != NULL) {__Pyx_DECREF(r); }} while(0)
1118   #define __Pyx_XGOTREF(r)  do { if((r) != NULL) {__Pyx_GOTREF(r); }} while(0)
1119   #define __Pyx_XGIVEREF(r) do { if((r) != NULL) {__Pyx_GIVEREF(r);}} while(0)
1120 #else
1121   #define __Pyx_RefNannyDeclarations
1122   #define __Pyx_RefNannySetupContext(name, acquire_gil)
1123   #define __Pyx_RefNannyFinishContext()
1124   #define __Pyx_INCREF(r) Py_INCREF(r)
1125   #define __Pyx_DECREF(r) Py_DECREF(r)
1126   #define __Pyx_GOTREF(r)
1127   #define __Pyx_GIVEREF(r)
1128   #define __Pyx_XINCREF(r) Py_XINCREF(r)
1129   #define __Pyx_XDECREF(r) Py_XDECREF(r)
1130   #define __Pyx_XGOTREF(r)
1131   #define __Pyx_XGIVEREF(r)
1132 #endif
1133 #define __Pyx_XDECREF_SET(r, v) do {\
1134         PyObject *tmp = (PyObject *) r;\
1135         r = v; __Pyx_XDECREF(tmp);\
1136     } while (0)
1137 #define __Pyx_DECREF_SET(r, v) do {\
1138         PyObject *tmp = (PyObject *) r;\
1139         r = v; __Pyx_DECREF(tmp);\
1140     } while (0)
1141 #define __Pyx_CLEAR(r)    do { PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);} while(0)
1142 #define __Pyx_XCLEAR(r)   do { if((r) != NULL) {PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);}} while(0)
1143 
1144 /* PyObjectGetAttrStr.proto */
1145 #if CYTHON_USE_TYPE_SLOTS
1146 static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name);
1147 #else
1148 #define __Pyx_PyObject_GetAttrStr(o,n) PyObject_GetAttr(o,n)
1149 #endif
1150 
1151 /* GetBuiltinName.proto */
1152 static PyObject *__Pyx_GetBuiltinName(PyObject *name);
1153 
1154 /* GetItemInt.proto */
1155 #define __Pyx_GetItemInt(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\
1156     (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\
1157     __Pyx_GetItemInt_Fast(o, (Py_ssize_t)i, is_list, wraparound, boundscheck) :\
1158     (is_list ? (PyErr_SetString(PyExc_IndexError, "list index out of range"), (PyObject*)NULL) :\
1159                __Pyx_GetItemInt_Generic(o, to_py_func(i))))
1160 #define __Pyx_GetItemInt_List(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\
1161     (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\
1162     __Pyx_GetItemInt_List_Fast(o, (Py_ssize_t)i, wraparound, boundscheck) :\
1163     (PyErr_SetString(PyExc_IndexError, "list index out of range"), (PyObject*)NULL))
1164 static CYTHON_INLINE PyObject *__Pyx_GetItemInt_List_Fast(PyObject *o, Py_ssize_t i,
1165                                                               int wraparound, int boundscheck);
1166 #define __Pyx_GetItemInt_Tuple(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\
1167     (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\
1168     __Pyx_GetItemInt_Tuple_Fast(o, (Py_ssize_t)i, wraparound, boundscheck) :\
1169     (PyErr_SetString(PyExc_IndexError, "tuple index out of range"), (PyObject*)NULL))
1170 static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Tuple_Fast(PyObject *o, Py_ssize_t i,
1171                                                               int wraparound, int boundscheck);
1172 static PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j);
1173 static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i,
1174                                                      int is_list, int wraparound, int boundscheck);
1175 
1176 /* decode_c_string_utf16.proto */
__Pyx_PyUnicode_DecodeUTF16(const char * s,Py_ssize_t size,const char * errors)1177 static CYTHON_INLINE PyObject *__Pyx_PyUnicode_DecodeUTF16(const char *s, Py_ssize_t size, const char *errors) {
1178     int byteorder = 0;
1179     return PyUnicode_DecodeUTF16(s, size, errors, &byteorder);
1180 }
__Pyx_PyUnicode_DecodeUTF16LE(const char * s,Py_ssize_t size,const char * errors)1181 static CYTHON_INLINE PyObject *__Pyx_PyUnicode_DecodeUTF16LE(const char *s, Py_ssize_t size, const char *errors) {
1182     int byteorder = -1;
1183     return PyUnicode_DecodeUTF16(s, size, errors, &byteorder);
1184 }
__Pyx_PyUnicode_DecodeUTF16BE(const char * s,Py_ssize_t size,const char * errors)1185 static CYTHON_INLINE PyObject *__Pyx_PyUnicode_DecodeUTF16BE(const char *s, Py_ssize_t size, const char *errors) {
1186     int byteorder = 1;
1187     return PyUnicode_DecodeUTF16(s, size, errors, &byteorder);
1188 }
1189 
1190 /* decode_c_bytes.proto */
1191 static CYTHON_INLINE PyObject* __Pyx_decode_c_bytes(
1192          const char* cstring, Py_ssize_t length, Py_ssize_t start, Py_ssize_t stop,
1193          const char* encoding, const char* errors,
1194          PyObject* (*decode_func)(const char *s, Py_ssize_t size, const char *errors));
1195 
1196 /* decode_bytes.proto */
__Pyx_decode_bytes(PyObject * string,Py_ssize_t start,Py_ssize_t stop,const char * encoding,const char * errors,PyObject * (* decode_func)(const char * s,Py_ssize_t size,const char * errors))1197 static CYTHON_INLINE PyObject* __Pyx_decode_bytes(
1198          PyObject* string, Py_ssize_t start, Py_ssize_t stop,
1199          const char* encoding, const char* errors,
1200          PyObject* (*decode_func)(const char *s, Py_ssize_t size, const char *errors)) {
1201     return __Pyx_decode_c_bytes(
1202         PyBytes_AS_STRING(string), PyBytes_GET_SIZE(string),
1203         start, stop, encoding, errors, decode_func);
1204 }
1205 
1206 /* RaiseArgTupleInvalid.proto */
1207 static void __Pyx_RaiseArgtupleInvalid(const char* func_name, int exact,
1208     Py_ssize_t num_min, Py_ssize_t num_max, Py_ssize_t num_found);
1209 
1210 /* RaiseDoubleKeywords.proto */
1211 static void __Pyx_RaiseDoubleKeywordsError(const char* func_name, PyObject* kw_name);
1212 
1213 /* ParseKeywords.proto */
1214 static int __Pyx_ParseOptionalKeywords(PyObject *kwds, PyObject **argnames[],\
1215     PyObject *kwds2, PyObject *values[], Py_ssize_t num_pos_args,\
1216     const char* function_name);
1217 
1218 /* None.proto */
1219 static CYTHON_INLINE void __Pyx_RaiseClosureNameError(const char *varname);
1220 
1221 /* RaiseTooManyValuesToUnpack.proto */
1222 static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected);
1223 
1224 /* RaiseNeedMoreValuesToUnpack.proto */
1225 static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index);
1226 
1227 /* IterFinish.proto */
1228 static CYTHON_INLINE int __Pyx_IterFinish(void);
1229 
1230 /* UnpackItemEndCheck.proto */
1231 static int __Pyx_IternextUnpackEndCheck(PyObject *retval, Py_ssize_t expected);
1232 
1233 /* ListCompAppend.proto */
1234 #if CYTHON_USE_PYLIST_INTERNALS && CYTHON_ASSUME_SAFE_MACROS
__Pyx_ListComp_Append(PyObject * list,PyObject * x)1235 static CYTHON_INLINE int __Pyx_ListComp_Append(PyObject* list, PyObject* x) {
1236     PyListObject* L = (PyListObject*) list;
1237     Py_ssize_t len = Py_SIZE(list);
1238     if (likely(L->allocated > len)) {
1239         Py_INCREF(x);
1240         PyList_SET_ITEM(list, len, x);
1241         __Pyx_SET_SIZE(list, len + 1);
1242         return 0;
1243     }
1244     return PyList_Append(list, x);
1245 }
1246 #else
1247 #define __Pyx_ListComp_Append(L,x) PyList_Append(L,x)
1248 #endif
1249 
1250 /* ListAppend.proto */
1251 #if CYTHON_USE_PYLIST_INTERNALS && CYTHON_ASSUME_SAFE_MACROS
__Pyx_PyList_Append(PyObject * list,PyObject * x)1252 static CYTHON_INLINE int __Pyx_PyList_Append(PyObject* list, PyObject* x) {
1253     PyListObject* L = (PyListObject*) list;
1254     Py_ssize_t len = Py_SIZE(list);
1255     if (likely(L->allocated > len) & likely(len > (L->allocated >> 1))) {
1256         Py_INCREF(x);
1257         PyList_SET_ITEM(list, len, x);
1258         __Pyx_SET_SIZE(list, len + 1);
1259         return 0;
1260     }
1261     return PyList_Append(list, x);
1262 }
1263 #else
1264 #define __Pyx_PyList_Append(L,x) PyList_Append(L,x)
1265 #endif
1266 
1267 /* KeywordStringCheck.proto */
1268 static int __Pyx_CheckKeywordStrings(PyObject *kwdict, const char* function_name, int kw_allowed);
1269 
1270 /* ExtTypeTest.proto */
1271 static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type);
1272 
1273 /* PyDictContains.proto */
__Pyx_PyDict_ContainsTF(PyObject * item,PyObject * dict,int eq)1274 static CYTHON_INLINE int __Pyx_PyDict_ContainsTF(PyObject* item, PyObject* dict, int eq) {
1275     int result = PyDict_Contains(dict, item);
1276     return unlikely(result < 0) ? result : (result == (eq == Py_EQ));
1277 }
1278 
1279 /* DictGetItem.proto */
1280 #if PY_MAJOR_VERSION >= 3 && !CYTHON_COMPILING_IN_PYPY
1281 static PyObject *__Pyx_PyDict_GetItem(PyObject *d, PyObject* key);
1282 #define __Pyx_PyObject_Dict_GetItem(obj, name)\
1283     (likely(PyDict_CheckExact(obj)) ?\
1284      __Pyx_PyDict_GetItem(obj, name) : PyObject_GetItem(obj, name))
1285 #else
1286 #define __Pyx_PyDict_GetItem(d, key) PyObject_GetItem(d, key)
1287 #define __Pyx_PyObject_Dict_GetItem(obj, name)  PyObject_GetItem(obj, name)
1288 #endif
1289 
1290 /* PyErrExceptionMatches.proto */
1291 #if CYTHON_FAST_THREAD_STATE
1292 #define __Pyx_PyErr_ExceptionMatches(err) __Pyx_PyErr_ExceptionMatchesInState(__pyx_tstate, err)
1293 static CYTHON_INLINE int __Pyx_PyErr_ExceptionMatchesInState(PyThreadState* tstate, PyObject* err);
1294 #else
1295 #define __Pyx_PyErr_ExceptionMatches(err)  PyErr_ExceptionMatches(err)
1296 #endif
1297 
1298 /* PyThreadStateGet.proto */
1299 #if CYTHON_FAST_THREAD_STATE
1300 #define __Pyx_PyThreadState_declare  PyThreadState *__pyx_tstate;
1301 #define __Pyx_PyThreadState_assign  __pyx_tstate = __Pyx_PyThreadState_Current;
1302 #define __Pyx_PyErr_Occurred()  __pyx_tstate->curexc_type
1303 #else
1304 #define __Pyx_PyThreadState_declare
1305 #define __Pyx_PyThreadState_assign
1306 #define __Pyx_PyErr_Occurred()  PyErr_Occurred()
1307 #endif
1308 
1309 /* PyErrFetchRestore.proto */
1310 #if CYTHON_FAST_THREAD_STATE
1311 #define __Pyx_PyErr_Clear() __Pyx_ErrRestore(NULL, NULL, NULL)
1312 #define __Pyx_ErrRestoreWithState(type, value, tb)  __Pyx_ErrRestoreInState(PyThreadState_GET(), type, value, tb)
1313 #define __Pyx_ErrFetchWithState(type, value, tb)    __Pyx_ErrFetchInState(PyThreadState_GET(), type, value, tb)
1314 #define __Pyx_ErrRestore(type, value, tb)  __Pyx_ErrRestoreInState(__pyx_tstate, type, value, tb)
1315 #define __Pyx_ErrFetch(type, value, tb)    __Pyx_ErrFetchInState(__pyx_tstate, type, value, tb)
1316 static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb);
1317 static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb);
1318 #if CYTHON_COMPILING_IN_CPYTHON
1319 #define __Pyx_PyErr_SetNone(exc) (Py_INCREF(exc), __Pyx_ErrRestore((exc), NULL, NULL))
1320 #else
1321 #define __Pyx_PyErr_SetNone(exc) PyErr_SetNone(exc)
1322 #endif
1323 #else
1324 #define __Pyx_PyErr_Clear() PyErr_Clear()
1325 #define __Pyx_PyErr_SetNone(exc) PyErr_SetNone(exc)
1326 #define __Pyx_ErrRestoreWithState(type, value, tb)  PyErr_Restore(type, value, tb)
1327 #define __Pyx_ErrFetchWithState(type, value, tb)  PyErr_Fetch(type, value, tb)
1328 #define __Pyx_ErrRestoreInState(tstate, type, value, tb)  PyErr_Restore(type, value, tb)
1329 #define __Pyx_ErrFetchInState(tstate, type, value, tb)  PyErr_Fetch(type, value, tb)
1330 #define __Pyx_ErrRestore(type, value, tb)  PyErr_Restore(type, value, tb)
1331 #define __Pyx_ErrFetch(type, value, tb)  PyErr_Fetch(type, value, tb)
1332 #endif
1333 
1334 /* GetAttr.proto */
1335 static CYTHON_INLINE PyObject *__Pyx_GetAttr(PyObject *, PyObject *);
1336 
1337 /* GetAttr3.proto */
1338 static CYTHON_INLINE PyObject *__Pyx_GetAttr3(PyObject *, PyObject *, PyObject *);
1339 
1340 /* PyDictVersioning.proto */
1341 #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS
1342 #define __PYX_DICT_VERSION_INIT  ((PY_UINT64_T) -1)
1343 #define __PYX_GET_DICT_VERSION(dict)  (((PyDictObject*)(dict))->ma_version_tag)
1344 #define __PYX_UPDATE_DICT_CACHE(dict, value, cache_var, version_var)\
1345     (version_var) = __PYX_GET_DICT_VERSION(dict);\
1346     (cache_var) = (value);
1347 #define __PYX_PY_DICT_LOOKUP_IF_MODIFIED(VAR, DICT, LOOKUP) {\
1348     static PY_UINT64_T __pyx_dict_version = 0;\
1349     static PyObject *__pyx_dict_cached_value = NULL;\
1350     if (likely(__PYX_GET_DICT_VERSION(DICT) == __pyx_dict_version)) {\
1351         (VAR) = __pyx_dict_cached_value;\
1352     } else {\
1353         (VAR) = __pyx_dict_cached_value = (LOOKUP);\
1354         __pyx_dict_version = __PYX_GET_DICT_VERSION(DICT);\
1355     }\
1356 }
1357 static CYTHON_INLINE PY_UINT64_T __Pyx_get_tp_dict_version(PyObject *obj);
1358 static CYTHON_INLINE PY_UINT64_T __Pyx_get_object_dict_version(PyObject *obj);
1359 static CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UINT64_T tp_dict_version, PY_UINT64_T obj_dict_version);
1360 #else
1361 #define __PYX_GET_DICT_VERSION(dict)  (0)
1362 #define __PYX_UPDATE_DICT_CACHE(dict, value, cache_var, version_var)
1363 #define __PYX_PY_DICT_LOOKUP_IF_MODIFIED(VAR, DICT, LOOKUP)  (VAR) = (LOOKUP);
1364 #endif
1365 
1366 /* GetModuleGlobalName.proto */
1367 #if CYTHON_USE_DICT_VERSIONS
1368 #define __Pyx_GetModuleGlobalName(var, name)  {\
1369     static PY_UINT64_T __pyx_dict_version = 0;\
1370     static PyObject *__pyx_dict_cached_value = NULL;\
1371     (var) = (likely(__pyx_dict_version == __PYX_GET_DICT_VERSION(__pyx_d))) ?\
1372         (likely(__pyx_dict_cached_value) ? __Pyx_NewRef(__pyx_dict_cached_value) : __Pyx_GetBuiltinName(name)) :\
1373         __Pyx__GetModuleGlobalName(name, &__pyx_dict_version, &__pyx_dict_cached_value);\
1374 }
1375 #define __Pyx_GetModuleGlobalNameUncached(var, name)  {\
1376     PY_UINT64_T __pyx_dict_version;\
1377     PyObject *__pyx_dict_cached_value;\
1378     (var) = __Pyx__GetModuleGlobalName(name, &__pyx_dict_version, &__pyx_dict_cached_value);\
1379 }
1380 static PyObject *__Pyx__GetModuleGlobalName(PyObject *name, PY_UINT64_T *dict_version, PyObject **dict_cached_value);
1381 #else
1382 #define __Pyx_GetModuleGlobalName(var, name)  (var) = __Pyx__GetModuleGlobalName(name)
1383 #define __Pyx_GetModuleGlobalNameUncached(var, name)  (var) = __Pyx__GetModuleGlobalName(name)
1384 static CYTHON_INLINE PyObject *__Pyx__GetModuleGlobalName(PyObject *name);
1385 #endif
1386 
1387 /* PyFunctionFastCall.proto */
1388 #if CYTHON_FAST_PYCALL
1389 #define __Pyx_PyFunction_FastCall(func, args, nargs)\
1390     __Pyx_PyFunction_FastCallDict((func), (args), (nargs), NULL)
1391 #if 1 || PY_VERSION_HEX < 0x030600B1
1392 static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, Py_ssize_t nargs, PyObject *kwargs);
1393 #else
1394 #define __Pyx_PyFunction_FastCallDict(func, args, nargs, kwargs) _PyFunction_FastCallDict(func, args, nargs, kwargs)
1395 #endif
1396 #define __Pyx_BUILD_ASSERT_EXPR(cond)\
1397     (sizeof(char [1 - 2*!(cond)]) - 1)
1398 #ifndef Py_MEMBER_SIZE
1399 #define Py_MEMBER_SIZE(type, member) sizeof(((type *)0)->member)
1400 #endif
1401   static size_t __pyx_pyframe_localsplus_offset = 0;
1402   #include "frameobject.h"
1403   #define __Pxy_PyFrame_Initialize_Offsets()\
1404     ((void)__Pyx_BUILD_ASSERT_EXPR(sizeof(PyFrameObject) == offsetof(PyFrameObject, f_localsplus) + Py_MEMBER_SIZE(PyFrameObject, f_localsplus)),\
1405      (void)(__pyx_pyframe_localsplus_offset = ((size_t)PyFrame_Type.tp_basicsize) - Py_MEMBER_SIZE(PyFrameObject, f_localsplus)))
1406   #define __Pyx_PyFrame_GetLocalsplus(frame)\
1407     (assert(__pyx_pyframe_localsplus_offset), (PyObject **)(((char *)(frame)) + __pyx_pyframe_localsplus_offset))
1408 #endif
1409 
1410 /* PyObjectCall.proto */
1411 #if CYTHON_COMPILING_IN_CPYTHON
1412 static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw);
1413 #else
1414 #define __Pyx_PyObject_Call(func, arg, kw) PyObject_Call(func, arg, kw)
1415 #endif
1416 
1417 /* PyObjectCallMethO.proto */
1418 #if CYTHON_COMPILING_IN_CPYTHON
1419 static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg);
1420 #endif
1421 
1422 /* PyObjectCallNoArg.proto */
1423 #if CYTHON_COMPILING_IN_CPYTHON
1424 static CYTHON_INLINE PyObject* __Pyx_PyObject_CallNoArg(PyObject *func);
1425 #else
1426 #define __Pyx_PyObject_CallNoArg(func) __Pyx_PyObject_Call(func, __pyx_empty_tuple, NULL)
1427 #endif
1428 
1429 /* PyCFunctionFastCall.proto */
1430 #if CYTHON_FAST_PYCCALL
1431 static CYTHON_INLINE PyObject *__Pyx_PyCFunction_FastCall(PyObject *func, PyObject **args, Py_ssize_t nargs);
1432 #else
1433 #define __Pyx_PyCFunction_FastCall(func, args, nargs)  (assert(0), NULL)
1434 #endif
1435 
1436 /* PyObjectCallOneArg.proto */
1437 static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg);
1438 
1439 /* PyObjectCall2Args.proto */
1440 static CYTHON_UNUSED PyObject* __Pyx_PyObject_Call2Args(PyObject* function, PyObject* arg1, PyObject* arg2);
1441 
1442 /* PySequenceContains.proto */
__Pyx_PySequence_ContainsTF(PyObject * item,PyObject * seq,int eq)1443 static CYTHON_INLINE int __Pyx_PySequence_ContainsTF(PyObject* item, PyObject* seq, int eq) {
1444     int result = PySequence_Contains(seq, item);
1445     return unlikely(result < 0) ? result : (result == (eq == Py_EQ));
1446 }
1447 
1448 /* RaiseException.proto */
1449 static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause);
1450 
1451 /* IncludeStringH.proto */
1452 #include <string.h>
1453 
1454 /* BytesEquals.proto */
1455 static CYTHON_INLINE int __Pyx_PyBytes_Equals(PyObject* s1, PyObject* s2, int equals);
1456 
1457 /* UnicodeEquals.proto */
1458 static CYTHON_INLINE int __Pyx_PyUnicode_Equals(PyObject* s1, PyObject* s2, int equals);
1459 
1460 /* SliceObject.proto */
1461 static CYTHON_INLINE PyObject* __Pyx_PyObject_GetSlice(
1462         PyObject* obj, Py_ssize_t cstart, Py_ssize_t cstop,
1463         PyObject** py_start, PyObject** py_stop, PyObject** py_slice,
1464         int has_cstart, int has_cstop, int wraparound);
1465 
1466 /* decode_bytearray.proto */
__Pyx_decode_bytearray(PyObject * string,Py_ssize_t start,Py_ssize_t stop,const char * encoding,const char * errors,PyObject * (* decode_func)(const char * s,Py_ssize_t size,const char * errors))1467 static CYTHON_INLINE PyObject* __Pyx_decode_bytearray(
1468          PyObject* string, Py_ssize_t start, Py_ssize_t stop,
1469          const char* encoding, const char* errors,
1470          PyObject* (*decode_func)(const char *s, Py_ssize_t size, const char *errors)) {
1471     return __Pyx_decode_c_bytes(
1472         PyByteArray_AS_STRING(string), PyByteArray_GET_SIZE(string),
1473         start, stop, encoding, errors, decode_func);
1474 }
1475 
1476 /* GetException.proto */
1477 #if CYTHON_FAST_THREAD_STATE
1478 #define __Pyx_GetException(type, value, tb)  __Pyx__GetException(__pyx_tstate, type, value, tb)
1479 static int __Pyx__GetException(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb);
1480 #else
1481 static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb);
1482 #endif
1483 
1484 /* SwapException.proto */
1485 #if CYTHON_FAST_THREAD_STATE
1486 #define __Pyx_ExceptionSwap(type, value, tb)  __Pyx__ExceptionSwap(__pyx_tstate, type, value, tb)
1487 static CYTHON_INLINE void __Pyx__ExceptionSwap(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb);
1488 #else
1489 static CYTHON_INLINE void __Pyx_ExceptionSwap(PyObject **type, PyObject **value, PyObject **tb);
1490 #endif
1491 
1492 /* GetTopmostException.proto */
1493 #if CYTHON_USE_EXC_INFO_STACK
1494 static _PyErr_StackItem * __Pyx_PyErr_GetTopmostException(PyThreadState *tstate);
1495 #endif
1496 
1497 /* SaveResetException.proto */
1498 #if CYTHON_FAST_THREAD_STATE
1499 #define __Pyx_ExceptionSave(type, value, tb)  __Pyx__ExceptionSave(__pyx_tstate, type, value, tb)
1500 static CYTHON_INLINE void __Pyx__ExceptionSave(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb);
1501 #define __Pyx_ExceptionReset(type, value, tb)  __Pyx__ExceptionReset(__pyx_tstate, type, value, tb)
1502 static CYTHON_INLINE void __Pyx__ExceptionReset(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb);
1503 #else
1504 #define __Pyx_ExceptionSave(type, value, tb)   PyErr_GetExcInfo(type, value, tb)
1505 #define __Pyx_ExceptionReset(type, value, tb)  PyErr_SetExcInfo(type, value, tb)
1506 #endif
1507 
1508 /* decode_c_string.proto */
1509 static CYTHON_INLINE PyObject* __Pyx_decode_c_string(
1510          const char* cstring, Py_ssize_t start, Py_ssize_t stop,
1511          const char* encoding, const char* errors,
1512          PyObject* (*decode_func)(const char *s, Py_ssize_t size, const char *errors));
1513 
1514 /* UnpackUnboundCMethod.proto */
1515 typedef struct {
1516     PyObject *type;
1517     PyObject **method_name;
1518     PyCFunction func;
1519     PyObject *method;
1520     int flag;
1521 } __Pyx_CachedCFunction;
1522 
1523 /* CallUnboundCMethod1.proto */
1524 static PyObject* __Pyx__CallUnboundCMethod1(__Pyx_CachedCFunction* cfunc, PyObject* self, PyObject* arg);
1525 #if CYTHON_COMPILING_IN_CPYTHON
1526 static CYTHON_INLINE PyObject* __Pyx_CallUnboundCMethod1(__Pyx_CachedCFunction* cfunc, PyObject* self, PyObject* arg);
1527 #else
1528 #define __Pyx_CallUnboundCMethod1(cfunc, self, arg)  __Pyx__CallUnboundCMethod1(cfunc, self, arg)
1529 #endif
1530 
1531 /* Import.proto */
1532 static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level);
1533 
1534 /* ImportFrom.proto */
1535 static PyObject* __Pyx_ImportFrom(PyObject* module, PyObject* name);
1536 
1537 /* HasAttr.proto */
1538 static CYTHON_INLINE int __Pyx_HasAttr(PyObject *, PyObject *);
1539 
1540 /* PyObject_GenericGetAttrNoDict.proto */
1541 #if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000
1542 static CYTHON_INLINE PyObject* __Pyx_PyObject_GenericGetAttrNoDict(PyObject* obj, PyObject* attr_name);
1543 #else
1544 #define __Pyx_PyObject_GenericGetAttrNoDict PyObject_GenericGetAttr
1545 #endif
1546 
1547 /* PyObject_GenericGetAttr.proto */
1548 #if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000
1549 static PyObject* __Pyx_PyObject_GenericGetAttr(PyObject* obj, PyObject* attr_name);
1550 #else
1551 #define __Pyx_PyObject_GenericGetAttr PyObject_GenericGetAttr
1552 #endif
1553 
1554 /* PyObjectGetAttrStrNoError.proto */
1555 static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, PyObject* attr_name);
1556 
1557 /* SetupReduce.proto */
1558 static int __Pyx_setup_reduce(PyObject* type_obj);
1559 
1560 /* SetVTable.proto */
1561 static int __Pyx_SetVtable(PyObject *dict, void *vtable);
1562 
1563 /* TypeImport.proto */
1564 #ifndef __PYX_HAVE_RT_ImportType_proto
1565 #define __PYX_HAVE_RT_ImportType_proto
1566 enum __Pyx_ImportType_CheckSize {
1567    __Pyx_ImportType_CheckSize_Error = 0,
1568    __Pyx_ImportType_CheckSize_Warn = 1,
1569    __Pyx_ImportType_CheckSize_Ignore = 2
1570 };
1571 static PyTypeObject *__Pyx_ImportType(PyObject* module, const char *module_name, const char *class_name, size_t size, enum __Pyx_ImportType_CheckSize check_size);
1572 #endif
1573 
1574 /* CLineInTraceback.proto */
1575 #ifdef CYTHON_CLINE_IN_TRACEBACK
1576 #define __Pyx_CLineForTraceback(tstate, c_line)  (((CYTHON_CLINE_IN_TRACEBACK)) ? c_line : 0)
1577 #else
1578 static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line);
1579 #endif
1580 
1581 /* CodeObjectCache.proto */
1582 typedef struct {
1583     PyCodeObject* code_object;
1584     int code_line;
1585 } __Pyx_CodeObjectCacheEntry;
1586 struct __Pyx_CodeObjectCache {
1587     int count;
1588     int max_count;
1589     __Pyx_CodeObjectCacheEntry* entries;
1590 };
1591 static struct __Pyx_CodeObjectCache __pyx_code_cache = {0,0,NULL};
1592 static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line);
1593 static PyCodeObject *__pyx_find_code_object(int code_line);
1594 static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object);
1595 
1596 /* AddTraceback.proto */
1597 static void __Pyx_AddTraceback(const char *funcname, int c_line,
1598                                int py_line, const char *filename);
1599 
1600 /* CIntToPy.proto */
1601 static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value);
1602 
1603 /* CIntToPy.proto */
1604 static CYTHON_INLINE PyObject* __Pyx_PyInt_From_unsigned_int(unsigned int value);
1605 
1606 /* CIntToPy.proto */
1607 static CYTHON_INLINE PyObject* __Pyx_PyInt_From_unsigned_short(unsigned short value);
1608 
1609 /* CIntToPy.proto */
1610 static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value);
1611 
1612 /* CIntToPy.proto */
1613 static CYTHON_INLINE PyObject* __Pyx_PyInt_From_uint16_t(uint16_t value);
1614 
1615 /* CIntFromPy.proto */
1616 static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *);
1617 
1618 /* CIntFromPy.proto */
1619 static CYTHON_INLINE enum http_method __Pyx_PyInt_As_enum__http_method(PyObject *);
1620 
1621 /* CIntFromPy.proto */
1622 static CYTHON_INLINE size_t __Pyx_PyInt_As_size_t(PyObject *);
1623 
1624 /* CIntFromPy.proto */
1625 static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *);
1626 
1627 /* FastTypeChecks.proto */
1628 #if CYTHON_COMPILING_IN_CPYTHON
1629 #define __Pyx_TypeCheck(obj, type) __Pyx_IsSubtype(Py_TYPE(obj), (PyTypeObject *)type)
1630 static CYTHON_INLINE int __Pyx_IsSubtype(PyTypeObject *a, PyTypeObject *b);
1631 static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches(PyObject *err, PyObject *type);
1632 static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches2(PyObject *err, PyObject *type1, PyObject *type2);
1633 #else
1634 #define __Pyx_TypeCheck(obj, type) PyObject_TypeCheck(obj, (PyTypeObject *)type)
1635 #define __Pyx_PyErr_GivenExceptionMatches(err, type) PyErr_GivenExceptionMatches(err, type)
1636 #define __Pyx_PyErr_GivenExceptionMatches2(err, type1, type2) (PyErr_GivenExceptionMatches(err, type1) || PyErr_GivenExceptionMatches(err, type2))
1637 #endif
1638 #define __Pyx_PyException_Check(obj) __Pyx_TypeCheck(obj, PyExc_Exception)
1639 
1640 /* FetchCommonType.proto */
1641 static PyTypeObject* __Pyx_FetchCommonType(PyTypeObject* type);
1642 
1643 /* PyObjectGetMethod.proto */
1644 static int __Pyx_PyObject_GetMethod(PyObject *obj, PyObject *name, PyObject **method);
1645 
1646 /* PyObjectCallMethod1.proto */
1647 static PyObject* __Pyx_PyObject_CallMethod1(PyObject* obj, PyObject* method_name, PyObject* arg);
1648 
1649 /* CoroutineBase.proto */
1650 typedef PyObject *(*__pyx_coroutine_body_t)(PyObject *, PyThreadState *, PyObject *);
1651 #if CYTHON_USE_EXC_INFO_STACK
1652 #define __Pyx_ExcInfoStruct  _PyErr_StackItem
1653 #else
1654 typedef struct {
1655     PyObject *exc_type;
1656     PyObject *exc_value;
1657     PyObject *exc_traceback;
1658 } __Pyx_ExcInfoStruct;
1659 #endif
1660 typedef struct {
1661     PyObject_HEAD
1662     __pyx_coroutine_body_t body;
1663     PyObject *closure;
1664     __Pyx_ExcInfoStruct gi_exc_state;
1665     PyObject *gi_weakreflist;
1666     PyObject *classobj;
1667     PyObject *yieldfrom;
1668     PyObject *gi_name;
1669     PyObject *gi_qualname;
1670     PyObject *gi_modulename;
1671     PyObject *gi_code;
1672     int resume_label;
1673     char is_running;
1674 } __pyx_CoroutineObject;
1675 static __pyx_CoroutineObject *__Pyx__Coroutine_New(
1676     PyTypeObject *type, __pyx_coroutine_body_t body, PyObject *code, PyObject *closure,
1677     PyObject *name, PyObject *qualname, PyObject *module_name);
1678 static __pyx_CoroutineObject *__Pyx__Coroutine_NewInit(
1679             __pyx_CoroutineObject *gen, __pyx_coroutine_body_t body, PyObject *code, PyObject *closure,
1680             PyObject *name, PyObject *qualname, PyObject *module_name);
1681 static CYTHON_INLINE void __Pyx_Coroutine_ExceptionClear(__Pyx_ExcInfoStruct *self);
1682 static int __Pyx_Coroutine_clear(PyObject *self);
1683 static PyObject *__Pyx_Coroutine_Send(PyObject *self, PyObject *value);
1684 static PyObject *__Pyx_Coroutine_Close(PyObject *self);
1685 static PyObject *__Pyx_Coroutine_Throw(PyObject *gen, PyObject *args);
1686 #if CYTHON_USE_EXC_INFO_STACK
1687 #define __Pyx_Coroutine_SwapException(self)
1688 #define __Pyx_Coroutine_ResetAndClearException(self)  __Pyx_Coroutine_ExceptionClear(&(self)->gi_exc_state)
1689 #else
1690 #define __Pyx_Coroutine_SwapException(self) {\
1691     __Pyx_ExceptionSwap(&(self)->gi_exc_state.exc_type, &(self)->gi_exc_state.exc_value, &(self)->gi_exc_state.exc_traceback);\
1692     __Pyx_Coroutine_ResetFrameBackpointer(&(self)->gi_exc_state);\
1693     }
1694 #define __Pyx_Coroutine_ResetAndClearException(self) {\
1695     __Pyx_ExceptionReset((self)->gi_exc_state.exc_type, (self)->gi_exc_state.exc_value, (self)->gi_exc_state.exc_traceback);\
1696     (self)->gi_exc_state.exc_type = (self)->gi_exc_state.exc_value = (self)->gi_exc_state.exc_traceback = NULL;\
1697     }
1698 #endif
1699 #if CYTHON_FAST_THREAD_STATE
1700 #define __Pyx_PyGen_FetchStopIterationValue(pvalue)\
1701     __Pyx_PyGen__FetchStopIterationValue(__pyx_tstate, pvalue)
1702 #else
1703 #define __Pyx_PyGen_FetchStopIterationValue(pvalue)\
1704     __Pyx_PyGen__FetchStopIterationValue(__Pyx_PyThreadState_Current, pvalue)
1705 #endif
1706 static int __Pyx_PyGen__FetchStopIterationValue(PyThreadState *tstate, PyObject **pvalue);
1707 static CYTHON_INLINE void __Pyx_Coroutine_ResetFrameBackpointer(__Pyx_ExcInfoStruct *exc_state);
1708 
1709 /* PatchModuleWithCoroutine.proto */
1710 static PyObject* __Pyx_Coroutine_patch_module(PyObject* module, const char* py_code);
1711 
1712 /* PatchGeneratorABC.proto */
1713 static int __Pyx_patch_abc(void);
1714 
1715 /* Generator.proto */
1716 #define __Pyx_Generator_USED
1717 static PyTypeObject *__pyx_GeneratorType = 0;
1718 #define __Pyx_Generator_CheckExact(obj) (Py_TYPE(obj) == __pyx_GeneratorType)
1719 #define __Pyx_Generator_New(body, code, closure, name, qualname, module_name)\
1720     __Pyx__Coroutine_New(__pyx_GeneratorType, body, code, closure, name, qualname, module_name)
1721 static PyObject *__Pyx_Generator_Next(PyObject *self);
1722 static int __pyx_Generator_init(void);
1723 
1724 /* CheckBinaryVersion.proto */
1725 static int __Pyx_check_binary_version(void);
1726 
1727 /* InitStrings.proto */
1728 static int __Pyx_InitStrings(__Pyx_StringTabEntry *t);
1729 
1730 static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__init(struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *__pyx_v_self, enum http_parser_type __pyx_v_mode, PyObject *__pyx_v_protocol, PyObject *__pyx_v_loop, int __pyx_v_limit, struct __pyx_opt_args_7aiohttp_12_http_parser_10HttpParser__init *__pyx_optional_args); /* proto*/
1731 static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__process_header(struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *__pyx_v_self); /* proto*/
1732 static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__on_header_field(struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *__pyx_v_self, char *__pyx_v_at, size_t __pyx_v_length); /* proto*/
1733 static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__on_header_value(struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *__pyx_v_self, char *__pyx_v_at, size_t __pyx_v_length); /* proto*/
1734 static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__on_headers_complete(struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *__pyx_v_self); /* proto*/
1735 static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__on_message_complete(struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *__pyx_v_self); /* proto*/
1736 static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__on_chunk_header(struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *__pyx_v_self); /* proto*/
1737 static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__on_chunk_complete(struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *__pyx_v_self); /* proto*/
1738 static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__on_status_complete(CYTHON_UNUSED struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *__pyx_v_self); /* proto*/
1739 static CYTHON_INLINE PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser_http_version(struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *__pyx_v_self); /* proto*/
1740 static PyObject *__pyx_f_7aiohttp_12_http_parser_17HttpRequestParser__on_status_complete(struct __pyx_obj_7aiohttp_12_http_parser_HttpRequestParser *__pyx_v_self); /* proto*/
1741 static PyObject *__pyx_f_7aiohttp_12_http_parser_18HttpResponseParser__on_status_complete(struct __pyx_obj_7aiohttp_12_http_parser_HttpResponseParser *__pyx_v_self); /* proto*/
1742 
1743 /* Module declarations from 'cpython.version' */
1744 
1745 /* Module declarations from '__builtin__' */
1746 
1747 /* Module declarations from 'cpython.type' */
1748 static PyTypeObject *__pyx_ptype_7cpython_4type_type = 0;
1749 
1750 /* Module declarations from 'libc.string' */
1751 
1752 /* Module declarations from 'libc.stdio' */
1753 
1754 /* Module declarations from 'cpython.object' */
1755 
1756 /* Module declarations from 'cpython.ref' */
1757 
1758 /* Module declarations from 'cpython.exc' */
1759 
1760 /* Module declarations from 'cpython.module' */
1761 
1762 /* Module declarations from 'cpython.mem' */
1763 
1764 /* Module declarations from 'cpython.tuple' */
1765 
1766 /* Module declarations from 'cpython.list' */
1767 
1768 /* Module declarations from 'cpython.sequence' */
1769 
1770 /* Module declarations from 'cpython.mapping' */
1771 
1772 /* Module declarations from 'cpython.iterator' */
1773 
1774 /* Module declarations from 'cpython.number' */
1775 
1776 /* Module declarations from 'cpython.int' */
1777 
1778 /* Module declarations from '__builtin__' */
1779 
1780 /* Module declarations from 'cpython.bool' */
1781 static PyTypeObject *__pyx_ptype_7cpython_4bool_bool = 0;
1782 
1783 /* Module declarations from 'cpython.long' */
1784 
1785 /* Module declarations from 'cpython.float' */
1786 
1787 /* Module declarations from '__builtin__' */
1788 
1789 /* Module declarations from 'cpython.complex' */
1790 static PyTypeObject *__pyx_ptype_7cpython_7complex_complex = 0;
1791 
1792 /* Module declarations from 'cpython.string' */
1793 
1794 /* Module declarations from 'cpython.unicode' */
1795 
1796 /* Module declarations from 'cpython.dict' */
1797 
1798 /* Module declarations from 'cpython.instance' */
1799 
1800 /* Module declarations from 'cpython.function' */
1801 
1802 /* Module declarations from 'cpython.method' */
1803 
1804 /* Module declarations from 'cpython.weakref' */
1805 
1806 /* Module declarations from 'cpython.getargs' */
1807 
1808 /* Module declarations from 'cpython.pythread' */
1809 
1810 /* Module declarations from 'cpython.pystate' */
1811 
1812 /* Module declarations from 'cpython.cobject' */
1813 
1814 /* Module declarations from 'cpython.oldbuffer' */
1815 
1816 /* Module declarations from 'cpython.set' */
1817 
1818 /* Module declarations from 'cpython.buffer' */
1819 
1820 /* Module declarations from 'cpython.bytes' */
1821 
1822 /* Module declarations from 'cpython.pycapsule' */
1823 
1824 /* Module declarations from 'cpython' */
1825 
1826 /* Module declarations from 'libc.limits' */
1827 
1828 /* Module declarations from 'cython' */
1829 
1830 /* Module declarations from 'aiohttp' */
1831 
1832 /* Module declarations from 'libc.stdint' */
1833 
1834 /* Module declarations from 'aiohttp._cparser' */
1835 
1836 /* Module declarations from 'aiohttp._find_header' */
1837 
1838 /* Module declarations from 'aiohttp._http_parser' */
1839 static PyTypeObject *__pyx_ptype_7aiohttp_12_http_parser_RawRequestMessage = 0;
1840 static PyTypeObject *__pyx_ptype_7aiohttp_12_http_parser_RawResponseMessage = 0;
1841 static PyTypeObject *__pyx_ptype_7aiohttp_12_http_parser_HttpParser = 0;
1842 static PyTypeObject *__pyx_ptype_7aiohttp_12_http_parser_HttpRequestParser = 0;
1843 static PyTypeObject *__pyx_ptype_7aiohttp_12_http_parser_HttpResponseParser = 0;
1844 static PyTypeObject *__pyx_ptype_7aiohttp_12_http_parser___pyx_scope_struct____repr__ = 0;
1845 static PyTypeObject *__pyx_ptype_7aiohttp_12_http_parser___pyx_scope_struct_1_genexpr = 0;
1846 static PyTypeObject *__pyx_ptype_7aiohttp_12_http_parser___pyx_scope_struct_2___repr__ = 0;
1847 static PyTypeObject *__pyx_ptype_7aiohttp_12_http_parser___pyx_scope_struct_3_genexpr = 0;
1848 static PyObject *__pyx_v_7aiohttp_12_http_parser_headers = 0;
1849 static PyObject *__pyx_v_7aiohttp_12_http_parser_URL = 0;
1850 static PyObject *__pyx_v_7aiohttp_12_http_parser_URL_build = 0;
1851 static PyObject *__pyx_v_7aiohttp_12_http_parser_CIMultiDict = 0;
1852 static PyObject *__pyx_v_7aiohttp_12_http_parser_CIMultiDictProxy = 0;
1853 static PyObject *__pyx_v_7aiohttp_12_http_parser_HttpVersion = 0;
1854 static PyObject *__pyx_v_7aiohttp_12_http_parser_HttpVersion10 = 0;
1855 static PyObject *__pyx_v_7aiohttp_12_http_parser_HttpVersion11 = 0;
1856 static PyObject *__pyx_v_7aiohttp_12_http_parser_SEC_WEBSOCKET_KEY1 = 0;
1857 static PyObject *__pyx_v_7aiohttp_12_http_parser_CONTENT_ENCODING = 0;
1858 static PyObject *__pyx_v_7aiohttp_12_http_parser_EMPTY_PAYLOAD = 0;
1859 static PyObject *__pyx_v_7aiohttp_12_http_parser_StreamReader = 0;
1860 static PyObject *__pyx_v_7aiohttp_12_http_parser_DeflateBuffer = 0;
1861 static PyObject *__pyx_v_7aiohttp_12_http_parser__http_method = 0;
1862 static CYTHON_INLINE PyObject *__pyx_f_7aiohttp_12_http_parser_extend(PyObject *, char const *, size_t); /*proto*/
1863 static CYTHON_INLINE PyObject *__pyx_f_7aiohttp_12_http_parser_http_method_str(int); /*proto*/
1864 static CYTHON_INLINE PyObject *__pyx_f_7aiohttp_12_http_parser_find_header(PyObject *); /*proto*/
1865 static PyObject *__pyx_f_7aiohttp_12_http_parser__new_request_message(PyObject *, PyObject *, PyObject *, PyObject *, PyObject *, int, PyObject *, int, int, PyObject *); /*proto*/
1866 static PyObject *__pyx_f_7aiohttp_12_http_parser__new_response_message(PyObject *, int, PyObject *, PyObject *, PyObject *, int, PyObject *, int, int); /*proto*/
1867 static int __pyx_f_7aiohttp_12_http_parser_cb_on_message_begin(struct http_parser *); /*proto*/
1868 static int __pyx_f_7aiohttp_12_http_parser_cb_on_url(struct http_parser *, char const *, size_t); /*proto*/
1869 static int __pyx_f_7aiohttp_12_http_parser_cb_on_status(struct http_parser *, char const *, size_t); /*proto*/
1870 static int __pyx_f_7aiohttp_12_http_parser_cb_on_header_field(struct http_parser *, char const *, size_t); /*proto*/
1871 static int __pyx_f_7aiohttp_12_http_parser_cb_on_header_value(struct http_parser *, char const *, size_t); /*proto*/
1872 static int __pyx_f_7aiohttp_12_http_parser_cb_on_headers_complete(struct http_parser *); /*proto*/
1873 static int __pyx_f_7aiohttp_12_http_parser_cb_on_body(struct http_parser *, char const *, size_t); /*proto*/
1874 static int __pyx_f_7aiohttp_12_http_parser_cb_on_message_complete(struct http_parser *); /*proto*/
1875 static int __pyx_f_7aiohttp_12_http_parser_cb_on_chunk_header(struct http_parser *); /*proto*/
1876 static int __pyx_f_7aiohttp_12_http_parser_cb_on_chunk_complete(struct http_parser *); /*proto*/
1877 static PyObject *__pyx_f_7aiohttp_12_http_parser_parser_error_from_errno(enum http_errno); /*proto*/
1878 static PyObject *__pyx_f_7aiohttp_12_http_parser__parse_url(char *, size_t); /*proto*/
1879 static PyObject *__pyx_f_7aiohttp_12_http_parser___pyx_unpickle_RawRequestMessage__set_state(struct __pyx_obj_7aiohttp_12_http_parser_RawRequestMessage *, PyObject *); /*proto*/
1880 static PyObject *__pyx_f_7aiohttp_12_http_parser___pyx_unpickle_RawResponseMessage__set_state(struct __pyx_obj_7aiohttp_12_http_parser_RawResponseMessage *, PyObject *); /*proto*/
1881 #define __Pyx_MODULE_NAME "aiohttp._http_parser"
1882 extern int __pyx_module_is_main_aiohttp___http_parser;
1883 int __pyx_module_is_main_aiohttp___http_parser = 0;
1884 
1885 /* Implementation of 'aiohttp._http_parser' */
1886 static PyObject *__pyx_builtin_range;
1887 static PyObject *__pyx_builtin_MemoryError;
1888 static PyObject *__pyx_builtin_TypeError;
1889 static PyObject *__pyx_builtin_BaseException;
1890 static const char __pyx_k_[] = "=";
1891 static const char __pyx_k_i[] = "i";
1892 static const char __pyx_k_TE[] = "TE";
1893 static const char __pyx_k__2[] = ", ";
1894 static const char __pyx_k__3[] = ")>";
1895 static const char __pyx_k__4[] = "";
1896 static const char __pyx_k_br[] = "br";
1897 static const char __pyx_k_AGE[] = "AGE";
1898 static const char __pyx_k_URI[] = "URI";
1899 static const char __pyx_k_URL[] = "URL";
1900 static const char __pyx_k_VIA[] = "VIA";
1901 static const char __pyx_k__11[] = ":";
1902 static const char __pyx_k_add[] = "add";
1903 static const char __pyx_k_all[] = "__all__";
1904 static const char __pyx_k_new[] = "__new__";
1905 static const char __pyx_k_url[] = "url";
1906 static const char __pyx_k_DATE[] = "DATE";
1907 static const char __pyx_k_ETAG[] = "ETAG";
1908 static const char __pyx_k_FROM[] = "FROM";
1909 static const char __pyx_k_HOST[] = "HOST";
1910 static const char __pyx_k_LINK[] = "LINK";
1911 static const char __pyx_k_VARY[] = "VARY";
1912 static const char __pyx_k_args[] = "args";
1913 static const char __pyx_k_code[] = "code";
1914 static const char __pyx_k_dict[] = "__dict__";
1915 static const char __pyx_k_gzip[] = "gzip";
1916 static const char __pyx_k_hdrs[] = "hdrs";
1917 static const char __pyx_k_host[] = "host";
1918 static const char __pyx_k_loop[] = "loop";
1919 static const char __pyx_k_main[] = "__main__";
1920 static const char __pyx_k_name[] = "__name__";
1921 static const char __pyx_k_path[] = "path";
1922 static const char __pyx_k_port[] = "port";
1923 static const char __pyx_k_send[] = "send";
1924 static const char __pyx_k_test[] = "__test__";
1925 static const char __pyx_k_user[] = "user";
1926 static const char __pyx_k_yarl[] = "yarl";
1927 static const char __pyx_k_ALLOW[] = "ALLOW";
1928 static const char __pyx_k_RANGE[] = "RANGE";
1929 static const char __pyx_k_URL_2[] = "_URL";
1930 static const char __pyx_k_build[] = "build";
1931 static const char __pyx_k_close[] = "close";
1932 static const char __pyx_k_limit[] = "limit";
1933 static const char __pyx_k_lower[] = "lower";
1934 static const char __pyx_k_range[] = "range";
1935 static const char __pyx_k_throw[] = "throw";
1936 static const char __pyx_k_timer[] = "timer";
1937 static const char __pyx_k_ACCEPT[] = "ACCEPT";
1938 static const char __pyx_k_COOKIE[] = "COOKIE";
1939 static const char __pyx_k_DIGEST[] = "DIGEST";
1940 static const char __pyx_k_EXPECT[] = "EXPECT";
1941 static const char __pyx_k_ORIGIN[] = "ORIGIN";
1942 static const char __pyx_k_PRAGMA[] = "PRAGMA";
1943 static const char __pyx_k_SERVER[] = "SERVER";
1944 static const char __pyx_k_format[] = "format";
1945 static const char __pyx_k_import[] = "__import__";
1946 static const char __pyx_k_method[] = "method";
1947 static const char __pyx_k_pickle[] = "pickle";
1948 static const char __pyx_k_py_buf[] = "py_buf";
1949 static const char __pyx_k_reason[] = "reason";
1950 static const char __pyx_k_reduce[] = "__reduce__";
1951 static const char __pyx_k_scheme[] = "scheme";
1952 static const char __pyx_k_update[] = "update";
1953 static const char __pyx_k_EXPIRES[] = "EXPIRES";
1954 static const char __pyx_k_REFERER[] = "REFERER";
1955 static const char __pyx_k_TRAILER[] = "TRAILER";
1956 static const char __pyx_k_UPGRADE[] = "UPGRADE";
1957 static const char __pyx_k_WARNING[] = "WARNING";
1958 static const char __pyx_k_aiohttp[] = "aiohttp";
1959 static const char __pyx_k_chunked[] = "chunked";
1960 static const char __pyx_k_deflate[] = "deflate";
1961 static const char __pyx_k_encoded[] = "encoded";
1962 static const char __pyx_k_genexpr[] = "genexpr";
1963 static const char __pyx_k_headers[] = "headers";
1964 static const char __pyx_k_streams[] = "streams";
1965 static const char __pyx_k_unknown[] = "<unknown>";
1966 static const char __pyx_k_upgrade[] = "upgrade";
1967 static const char __pyx_k_version[] = "version";
1968 static const char __pyx_k_IF_MATCH[] = "IF_MATCH";
1969 static const char __pyx_k_IF_RANGE[] = "IF_RANGE";
1970 static const char __pyx_k_LOCATION[] = "LOCATION";
1971 static const char __pyx_k_buf_data[] = "buf_data";
1972 static const char __pyx_k_feed_eof[] = "feed_eof";
1973 static const char __pyx_k_fragment[] = "fragment";
1974 static const char __pyx_k_getstate[] = "__getstate__";
1975 static const char __pyx_k_password[] = "password";
1976 static const char __pyx_k_protocol[] = "protocol";
1977 static const char __pyx_k_pyx_type[] = "__pyx_type";
1978 static const char __pyx_k_setstate[] = "__setstate__";
1979 static const char __pyx_k_FORWARDED[] = "FORWARDED";
1980 static const char __pyx_k_TypeError[] = "TypeError";
1981 static const char __pyx_k_feed_data[] = "feed_data";
1982 static const char __pyx_k_multidict[] = "multidict";
1983 static const char __pyx_k_parse_url[] = "parse_url";
1984 static const char __pyx_k_partition[] = "partition";
1985 static const char __pyx_k_pyx_state[] = "__pyx_state";
1986 static const char __pyx_k_reduce_ex[] = "__reduce_ex__";
1987 static const char __pyx_k_CONNECTION[] = "CONNECTION";
1988 static const char __pyx_k_KEEP_ALIVE[] = "KEEP_ALIVE";
1989 static const char __pyx_k_SET_COOKIE[] = "SET_COOKIE";
1990 static const char __pyx_k_USER_AGENT[] = "USER_AGENT";
1991 static const char __pyx_k_pyx_result[] = "__pyx_result";
1992 static const char __pyx_k_pyx_vtable[] = "__pyx_vtable__";
1993 static const char __pyx_k_CIMultiDict[] = "CIMultiDict";
1994 static const char __pyx_k_CONTENT_MD5[] = "CONTENT_MD5";
1995 static const char __pyx_k_DESTINATION[] = "DESTINATION";
1996 static const char __pyx_k_HttpVersion[] = "HttpVersion";
1997 static const char __pyx_k_LineTooLong[] = "LineTooLong";
1998 static const char __pyx_k_MemoryError[] = "MemoryError";
1999 static const char __pyx_k_PickleError[] = "PickleError";
2000 static const char __pyx_k_RETRY_AFTER[] = "RETRY_AFTER";
2001 static const char __pyx_k_WANT_DIGEST[] = "WANT_DIGEST";
2002 static const char __pyx_k_compression[] = "compression";
2003 static const char __pyx_k_http_parser[] = "http_parser";
2004 static const char __pyx_k_http_writer[] = "http_writer";
2005 static const char __pyx_k_max_headers[] = "max_headers";
2006 static const char __pyx_k_raw_headers[] = "raw_headers";
2007 static const char __pyx_k_CONTENT_TYPE[] = "CONTENT_TYPE";
2008 static const char __pyx_k_MAX_FORWARDS[] = "MAX_FORWARDS";
2009 static const char __pyx_k_StreamReader[] = "StreamReader";
2010 static const char __pyx_k_pyx_checksum[] = "__pyx_checksum";
2011 static const char __pyx_k_query_string[] = "query_string";
2012 static const char __pyx_k_should_close[] = "should_close";
2013 static const char __pyx_k_stringsource[] = "stringsource";
2014 static const char __pyx_k_ACCEPT_RANGES[] = "ACCEPT_RANGES";
2015 static const char __pyx_k_AUTHORIZATION[] = "AUTHORIZATION";
2016 static const char __pyx_k_BadStatusLine[] = "BadStatusLine";
2017 static const char __pyx_k_BaseException[] = "BaseException";
2018 static const char __pyx_k_CACHE_CONTROL[] = "CACHE_CONTROL";
2019 static const char __pyx_k_CIMultiDict_2[] = "_CIMultiDict";
2020 static const char __pyx_k_CONTENT_RANGE[] = "CONTENT_RANGE";
2021 static const char __pyx_k_DeflateBuffer[] = "DeflateBuffer";
2022 static const char __pyx_k_EMPTY_PAYLOAD[] = "EMPTY_PAYLOAD";
2023 static const char __pyx_k_HttpVersion10[] = "HttpVersion10";
2024 static const char __pyx_k_HttpVersion11[] = "HttpVersion11";
2025 static const char __pyx_k_HttpVersion_2[] = "_HttpVersion";
2026 static const char __pyx_k_IF_NONE_MATCH[] = "IF_NONE_MATCH";
2027 static const char __pyx_k_InvalidHeader[] = "InvalidHeader";
2028 static const char __pyx_k_LAST_EVENT_ID[] = "LAST_EVENT_ID";
2029 static const char __pyx_k_LAST_MODIFIED[] = "LAST_MODIFIED";
2030 static const char __pyx_k_invalid_url_r[] = "invalid url {!r}";
2031 static const char __pyx_k_max_line_size[] = "max_line_size";
2032 static const char __pyx_k_reduce_cython[] = "__reduce_cython__";
2033 static const char __pyx_k_set_exception[] = "set_exception";
2034 static const char __pyx_k_ACCEPT_CHARSET[] = "ACCEPT_CHARSET";
2035 static const char __pyx_k_BadHttpMessage[] = "BadHttpMessage";
2036 static const char __pyx_k_CONTENT_LENGTH[] = "CONTENT_LENGTH";
2037 static const char __pyx_k_StreamReader_2[] = "_StreamReader";
2038 static const char __pyx_k_max_field_size[] = "max_field_size";
2039 static const char __pyx_k_read_until_eof[] = "read_until_eof";
2040 static const char __pyx_k_ACCEPT_ENCODING[] = "ACCEPT_ENCODING";
2041 static const char __pyx_k_ACCEPT_LANGUAGE[] = "ACCEPT_LANGUAGE";
2042 static const char __pyx_k_DeflateBuffer_2[] = "_DeflateBuffer";
2043 static const char __pyx_k_EMPTY_PAYLOAD_2[] = "_EMPTY_PAYLOAD";
2044 static const char __pyx_k_HttpVersion10_2[] = "_HttpVersion10";
2045 static const char __pyx_k_HttpVersion11_2[] = "_HttpVersion11";
2046 static const char __pyx_k_InvalidURLError[] = "InvalidURLError";
2047 static const char __pyx_k_X_FORWARDED_FOR[] = "X_FORWARDED_FOR";
2048 static const char __pyx_k_auto_decompress[] = "auto_decompress";
2049 static const char __pyx_k_http_exceptions[] = "http_exceptions";
2050 static const char __pyx_k_pyx_PickleError[] = "__pyx_PickleError";
2051 static const char __pyx_k_setstate_cython[] = "__setstate_cython__";
2052 static const char __pyx_k_CIMultiDictProxy[] = "CIMultiDictProxy";
2053 static const char __pyx_k_CONTENT_ENCODING[] = "CONTENT_ENCODING";
2054 static const char __pyx_k_CONTENT_LANGUAGE[] = "CONTENT_LANGUAGE";
2055 static const char __pyx_k_CONTENT_LOCATION[] = "CONTENT_LOCATION";
2056 static const char __pyx_k_WWW_AUTHENTICATE[] = "WWW_AUTHENTICATE";
2057 static const char __pyx_k_X_FORWARDED_HOST[] = "X_FORWARDED_HOST";
2058 static const char __pyx_k_HttpRequestParser[] = "HttpRequestParser";
2059 static const char __pyx_k_IF_MODIFIED_SINCE[] = "IF_MODIFIED_SINCE";
2060 static const char __pyx_k_RawRequestMessage[] = "<RawRequestMessage(";
2061 static const char __pyx_k_SEC_WEBSOCKET_KEY[] = "SEC_WEBSOCKET_KEY";
2062 static const char __pyx_k_TRANSFER_ENCODING[] = "TRANSFER_ENCODING";
2063 static const char __pyx_k_X_FORWARDED_PROTO[] = "X_FORWARDED_PROTO";
2064 static const char __pyx_k_payload_exception[] = "payload_exception";
2065 static const char __pyx_k_CIMultiDictProxy_2[] = "_CIMultiDictProxy";
2066 static const char __pyx_k_ContentLengthError[] = "ContentLengthError";
2067 static const char __pyx_k_HttpResponseParser[] = "HttpResponseParser";
2068 static const char __pyx_k_PROXY_AUTHENTICATE[] = "PROXY_AUTHENTICATE";
2069 static const char __pyx_k_RawResponseMessage[] = "<RawResponseMessage(";
2070 static const char __pyx_k_SEC_WEBSOCKET_KEY1[] = "SEC_WEBSOCKET_KEY1";
2071 static const char __pyx_k_cline_in_traceback[] = "cline_in_traceback";
2072 static const char __pyx_k_response_with_body[] = "response_with_body";
2073 static const char __pyx_k_CONTENT_DISPOSITION[] = "CONTENT_DISPOSITION";
2074 static const char __pyx_k_IF_UNMODIFIED_SINCE[] = "IF_UNMODIFIED_SINCE";
2075 static const char __pyx_k_PROXY_AUTHORIZATION[] = "PROXY_AUTHORIZATION";
2076 static const char __pyx_k_RawRequestMessage_2[] = "RawRequestMessage";
2077 static const char __pyx_k_PayloadEncodingError[] = "PayloadEncodingError";
2078 static const char __pyx_k_RawResponseMessage_2[] = "RawResponseMessage";
2079 static const char __pyx_k_SEC_WEBSOCKET_ACCEPT[] = "SEC_WEBSOCKET_ACCEPT";
2080 static const char __pyx_k_aiohttp__http_parser[] = "aiohttp._http_parser";
2081 static const char __pyx_k_SEC_WEBSOCKET_VERSION[] = "SEC_WEBSOCKET_VERSION";
2082 static const char __pyx_k_TransferEncodingError[] = "TransferEncodingError";
2083 static const char __pyx_k_repr___locals_genexpr[] = "__repr__.<locals>.genexpr";
2084 static const char __pyx_k_ACCESS_CONTROL_MAX_AGE[] = "ACCESS_CONTROL_MAX_AGE";
2085 static const char __pyx_k_SEC_WEBSOCKET_PROTOCOL[] = "SEC_WEBSOCKET_PROTOCOL";
2086 static const char __pyx_k_Header_name_is_too_long[] = "Header name is too long";
2087 static const char __pyx_k_Status_line_is_too_long[] = "Status line is too long";
2088 static const char __pyx_k_Header_value_is_too_long[] = "Header value is too long";
2089 static const char __pyx_k_SEC_WEBSOCKET_EXTENSIONS[] = "SEC_WEBSOCKET_EXTENSIONS";
2090 static const char __pyx_k_aiohttp__http_parser_pyx[] = "aiohttp/_http_parser.pyx";
2091 static const char __pyx_k_end_http_chunk_receiving[] = "end_http_chunk_receiving";
2092 static const char __pyx_k_CONTENT_TRANSFER_ENCODING[] = "CONTENT_TRANSFER_ENCODING";
2093 static const char __pyx_k_begin_http_chunk_receiving[] = "begin_http_chunk_receiving";
2094 static const char __pyx_k_ACCESS_CONTROL_ALLOW_ORIGIN[] = "ACCESS_CONTROL_ALLOW_ORIGIN";
2095 static const char __pyx_k_ACCESS_CONTROL_ALLOW_HEADERS[] = "ACCESS_CONTROL_ALLOW_HEADERS";
2096 static const char __pyx_k_ACCESS_CONTROL_ALLOW_METHODS[] = "ACCESS_CONTROL_ALLOW_METHODS";
2097 static const char __pyx_k_ACCESS_CONTROL_EXPOSE_HEADERS[] = "ACCESS_CONTROL_EXPOSE_HEADERS";
2098 static const char __pyx_k_ACCESS_CONTROL_REQUEST_METHOD[] = "ACCESS_CONTROL_REQUEST_METHOD";
2099 static const char __pyx_k_ACCESS_CONTROL_REQUEST_HEADERS[] = "ACCESS_CONTROL_REQUEST_HEADERS";
2100 static const char __pyx_k_pyx_unpickle_RawRequestMessage[] = "__pyx_unpickle_RawRequestMessage";
2101 static const char __pyx_k_pyx_unpickle_RawResponseMessag[] = "__pyx_unpickle_RawResponseMessage";
2102 static const char __pyx_k_ACCESS_CONTROL_ALLOW_CREDENTIALS[] = "ACCESS_CONTROL_ALLOW_CREDENTIALS";
2103 static const char __pyx_k_Incompatible_checksums_s_vs_0x14[] = "Incompatible checksums (%s vs 0x1408252 = (chunked, compression, headers, method, path, raw_headers, should_close, upgrade, url, version))";
2104 static const char __pyx_k_Incompatible_checksums_s_vs_0xc7[] = "Incompatible checksums (%s vs 0xc7706dc = (chunked, code, compression, headers, raw_headers, reason, should_close, upgrade, version))";
2105 static const char __pyx_k_Not_enough_data_for_satisfy_cont[] = "Not enough data for satisfy content length header.";
2106 static const char __pyx_k_Not_enough_data_for_satisfy_tran[] = "Not enough data for satisfy transfer length header.";
2107 static const char __pyx_k_no_default___reduce___due_to_non[] = "no default __reduce__ due to non-trivial __cinit__";
2108 static PyObject *__pyx_kp_u_;
2109 static PyObject *__pyx_n_s_ACCEPT;
2110 static PyObject *__pyx_n_s_ACCEPT_CHARSET;
2111 static PyObject *__pyx_n_s_ACCEPT_ENCODING;
2112 static PyObject *__pyx_n_s_ACCEPT_LANGUAGE;
2113 static PyObject *__pyx_n_s_ACCEPT_RANGES;
2114 static PyObject *__pyx_n_s_ACCESS_CONTROL_ALLOW_CREDENTIALS;
2115 static PyObject *__pyx_n_s_ACCESS_CONTROL_ALLOW_HEADERS;
2116 static PyObject *__pyx_n_s_ACCESS_CONTROL_ALLOW_METHODS;
2117 static PyObject *__pyx_n_s_ACCESS_CONTROL_ALLOW_ORIGIN;
2118 static PyObject *__pyx_n_s_ACCESS_CONTROL_EXPOSE_HEADERS;
2119 static PyObject *__pyx_n_s_ACCESS_CONTROL_MAX_AGE;
2120 static PyObject *__pyx_n_s_ACCESS_CONTROL_REQUEST_HEADERS;
2121 static PyObject *__pyx_n_s_ACCESS_CONTROL_REQUEST_METHOD;
2122 static PyObject *__pyx_n_s_AGE;
2123 static PyObject *__pyx_n_s_ALLOW;
2124 static PyObject *__pyx_n_s_AUTHORIZATION;
2125 static PyObject *__pyx_n_s_BadHttpMessage;
2126 static PyObject *__pyx_n_s_BadStatusLine;
2127 static PyObject *__pyx_n_s_BaseException;
2128 static PyObject *__pyx_n_s_CACHE_CONTROL;
2129 static PyObject *__pyx_n_s_CIMultiDict;
2130 static PyObject *__pyx_n_s_CIMultiDictProxy;
2131 static PyObject *__pyx_n_s_CIMultiDictProxy_2;
2132 static PyObject *__pyx_n_s_CIMultiDict_2;
2133 static PyObject *__pyx_n_s_CONNECTION;
2134 static PyObject *__pyx_n_s_CONTENT_DISPOSITION;
2135 static PyObject *__pyx_n_s_CONTENT_ENCODING;
2136 static PyObject *__pyx_n_s_CONTENT_LANGUAGE;
2137 static PyObject *__pyx_n_s_CONTENT_LENGTH;
2138 static PyObject *__pyx_n_s_CONTENT_LOCATION;
2139 static PyObject *__pyx_n_s_CONTENT_MD5;
2140 static PyObject *__pyx_n_s_CONTENT_RANGE;
2141 static PyObject *__pyx_n_s_CONTENT_TRANSFER_ENCODING;
2142 static PyObject *__pyx_n_s_CONTENT_TYPE;
2143 static PyObject *__pyx_n_s_COOKIE;
2144 static PyObject *__pyx_n_s_ContentLengthError;
2145 static PyObject *__pyx_n_s_DATE;
2146 static PyObject *__pyx_n_s_DESTINATION;
2147 static PyObject *__pyx_n_s_DIGEST;
2148 static PyObject *__pyx_n_s_DeflateBuffer;
2149 static PyObject *__pyx_n_s_DeflateBuffer_2;
2150 static PyObject *__pyx_n_s_EMPTY_PAYLOAD;
2151 static PyObject *__pyx_n_s_EMPTY_PAYLOAD_2;
2152 static PyObject *__pyx_n_s_ETAG;
2153 static PyObject *__pyx_n_s_EXPECT;
2154 static PyObject *__pyx_n_s_EXPIRES;
2155 static PyObject *__pyx_n_s_FORWARDED;
2156 static PyObject *__pyx_n_s_FROM;
2157 static PyObject *__pyx_n_s_HOST;
2158 static PyObject *__pyx_kp_u_Header_name_is_too_long;
2159 static PyObject *__pyx_kp_u_Header_value_is_too_long;
2160 static PyObject *__pyx_n_s_HttpRequestParser;
2161 static PyObject *__pyx_n_u_HttpRequestParser;
2162 static PyObject *__pyx_n_s_HttpResponseParser;
2163 static PyObject *__pyx_n_u_HttpResponseParser;
2164 static PyObject *__pyx_n_s_HttpVersion;
2165 static PyObject *__pyx_n_s_HttpVersion10;
2166 static PyObject *__pyx_n_s_HttpVersion10_2;
2167 static PyObject *__pyx_n_s_HttpVersion11;
2168 static PyObject *__pyx_n_s_HttpVersion11_2;
2169 static PyObject *__pyx_n_s_HttpVersion_2;
2170 static PyObject *__pyx_n_s_IF_MATCH;
2171 static PyObject *__pyx_n_s_IF_MODIFIED_SINCE;
2172 static PyObject *__pyx_n_s_IF_NONE_MATCH;
2173 static PyObject *__pyx_n_s_IF_RANGE;
2174 static PyObject *__pyx_n_s_IF_UNMODIFIED_SINCE;
2175 static PyObject *__pyx_kp_s_Incompatible_checksums_s_vs_0x14;
2176 static PyObject *__pyx_kp_s_Incompatible_checksums_s_vs_0xc7;
2177 static PyObject *__pyx_n_s_InvalidHeader;
2178 static PyObject *__pyx_n_s_InvalidURLError;
2179 static PyObject *__pyx_n_s_KEEP_ALIVE;
2180 static PyObject *__pyx_n_s_LAST_EVENT_ID;
2181 static PyObject *__pyx_n_s_LAST_MODIFIED;
2182 static PyObject *__pyx_n_s_LINK;
2183 static PyObject *__pyx_n_s_LOCATION;
2184 static PyObject *__pyx_n_s_LineTooLong;
2185 static PyObject *__pyx_n_s_MAX_FORWARDS;
2186 static PyObject *__pyx_n_s_MemoryError;
2187 static PyObject *__pyx_kp_u_Not_enough_data_for_satisfy_cont;
2188 static PyObject *__pyx_kp_u_Not_enough_data_for_satisfy_tran;
2189 static PyObject *__pyx_n_s_ORIGIN;
2190 static PyObject *__pyx_n_s_PRAGMA;
2191 static PyObject *__pyx_n_s_PROXY_AUTHENTICATE;
2192 static PyObject *__pyx_n_s_PROXY_AUTHORIZATION;
2193 static PyObject *__pyx_n_s_PayloadEncodingError;
2194 static PyObject *__pyx_n_s_PickleError;
2195 static PyObject *__pyx_n_s_RANGE;
2196 static PyObject *__pyx_n_s_REFERER;
2197 static PyObject *__pyx_n_s_RETRY_AFTER;
2198 static PyObject *__pyx_kp_u_RawRequestMessage;
2199 static PyObject *__pyx_n_s_RawRequestMessage_2;
2200 static PyObject *__pyx_n_u_RawRequestMessage_2;
2201 static PyObject *__pyx_kp_u_RawResponseMessage;
2202 static PyObject *__pyx_n_s_RawResponseMessage_2;
2203 static PyObject *__pyx_n_u_RawResponseMessage_2;
2204 static PyObject *__pyx_n_s_SEC_WEBSOCKET_ACCEPT;
2205 static PyObject *__pyx_n_s_SEC_WEBSOCKET_EXTENSIONS;
2206 static PyObject *__pyx_n_s_SEC_WEBSOCKET_KEY;
2207 static PyObject *__pyx_n_s_SEC_WEBSOCKET_KEY1;
2208 static PyObject *__pyx_n_s_SEC_WEBSOCKET_PROTOCOL;
2209 static PyObject *__pyx_n_s_SEC_WEBSOCKET_VERSION;
2210 static PyObject *__pyx_n_s_SERVER;
2211 static PyObject *__pyx_n_s_SET_COOKIE;
2212 static PyObject *__pyx_kp_u_Status_line_is_too_long;
2213 static PyObject *__pyx_n_s_StreamReader;
2214 static PyObject *__pyx_n_s_StreamReader_2;
2215 static PyObject *__pyx_n_s_TE;
2216 static PyObject *__pyx_n_s_TRAILER;
2217 static PyObject *__pyx_n_s_TRANSFER_ENCODING;
2218 static PyObject *__pyx_n_s_TransferEncodingError;
2219 static PyObject *__pyx_n_s_TypeError;
2220 static PyObject *__pyx_n_s_UPGRADE;
2221 static PyObject *__pyx_n_s_URI;
2222 static PyObject *__pyx_n_s_URL;
2223 static PyObject *__pyx_n_s_URL_2;
2224 static PyObject *__pyx_n_s_USER_AGENT;
2225 static PyObject *__pyx_n_s_VARY;
2226 static PyObject *__pyx_n_s_VIA;
2227 static PyObject *__pyx_n_s_WANT_DIGEST;
2228 static PyObject *__pyx_n_s_WARNING;
2229 static PyObject *__pyx_n_s_WWW_AUTHENTICATE;
2230 static PyObject *__pyx_n_s_X_FORWARDED_FOR;
2231 static PyObject *__pyx_n_s_X_FORWARDED_HOST;
2232 static PyObject *__pyx_n_s_X_FORWARDED_PROTO;
2233 static PyObject *__pyx_kp_u__11;
2234 static PyObject *__pyx_kp_u__2;
2235 static PyObject *__pyx_kp_u__3;
2236 static PyObject *__pyx_n_s__4;
2237 static PyObject *__pyx_kp_b__4;
2238 static PyObject *__pyx_kp_u__4;
2239 static PyObject *__pyx_n_s_add;
2240 static PyObject *__pyx_n_s_aiohttp;
2241 static PyObject *__pyx_n_s_aiohttp__http_parser;
2242 static PyObject *__pyx_kp_s_aiohttp__http_parser_pyx;
2243 static PyObject *__pyx_n_s_all;
2244 static PyObject *__pyx_n_s_args;
2245 static PyObject *__pyx_n_s_auto_decompress;
2246 static PyObject *__pyx_n_s_begin_http_chunk_receiving;
2247 static PyObject *__pyx_n_u_br;
2248 static PyObject *__pyx_n_s_buf_data;
2249 static PyObject *__pyx_n_s_build;
2250 static PyObject *__pyx_n_s_chunked;
2251 static PyObject *__pyx_n_u_chunked;
2252 static PyObject *__pyx_n_s_cline_in_traceback;
2253 static PyObject *__pyx_n_s_close;
2254 static PyObject *__pyx_n_s_code;
2255 static PyObject *__pyx_n_u_code;
2256 static PyObject *__pyx_n_s_compression;
2257 static PyObject *__pyx_n_u_compression;
2258 static PyObject *__pyx_n_u_deflate;
2259 static PyObject *__pyx_n_s_dict;
2260 static PyObject *__pyx_n_s_encoded;
2261 static PyObject *__pyx_n_s_end_http_chunk_receiving;
2262 static PyObject *__pyx_n_s_feed_data;
2263 static PyObject *__pyx_n_s_feed_eof;
2264 static PyObject *__pyx_n_s_format;
2265 static PyObject *__pyx_n_s_fragment;
2266 static PyObject *__pyx_n_s_genexpr;
2267 static PyObject *__pyx_n_s_getstate;
2268 static PyObject *__pyx_n_u_gzip;
2269 static PyObject *__pyx_n_s_hdrs;
2270 static PyObject *__pyx_n_s_headers;
2271 static PyObject *__pyx_n_u_headers;
2272 static PyObject *__pyx_n_s_host;
2273 static PyObject *__pyx_n_s_http_exceptions;
2274 static PyObject *__pyx_n_s_http_parser;
2275 static PyObject *__pyx_n_s_http_writer;
2276 static PyObject *__pyx_n_s_i;
2277 static PyObject *__pyx_n_s_import;
2278 static PyObject *__pyx_kp_u_invalid_url_r;
2279 static PyObject *__pyx_n_s_limit;
2280 static PyObject *__pyx_n_s_loop;
2281 static PyObject *__pyx_n_s_lower;
2282 static PyObject *__pyx_n_s_main;
2283 static PyObject *__pyx_n_s_max_field_size;
2284 static PyObject *__pyx_n_s_max_headers;
2285 static PyObject *__pyx_n_s_max_line_size;
2286 static PyObject *__pyx_n_s_method;
2287 static PyObject *__pyx_n_u_method;
2288 static PyObject *__pyx_n_s_multidict;
2289 static PyObject *__pyx_n_s_name;
2290 static PyObject *__pyx_n_s_new;
2291 static PyObject *__pyx_kp_s_no_default___reduce___due_to_non;
2292 static PyObject *__pyx_n_s_parse_url;
2293 static PyObject *__pyx_n_s_partition;
2294 static PyObject *__pyx_n_s_password;
2295 static PyObject *__pyx_n_s_path;
2296 static PyObject *__pyx_n_u_path;
2297 static PyObject *__pyx_n_s_payload_exception;
2298 static PyObject *__pyx_n_s_pickle;
2299 static PyObject *__pyx_n_s_port;
2300 static PyObject *__pyx_n_s_protocol;
2301 static PyObject *__pyx_n_s_py_buf;
2302 static PyObject *__pyx_n_s_pyx_PickleError;
2303 static PyObject *__pyx_n_s_pyx_checksum;
2304 static PyObject *__pyx_n_s_pyx_result;
2305 static PyObject *__pyx_n_s_pyx_state;
2306 static PyObject *__pyx_n_s_pyx_type;
2307 static PyObject *__pyx_n_s_pyx_unpickle_RawRequestMessage;
2308 static PyObject *__pyx_n_s_pyx_unpickle_RawResponseMessag;
2309 static PyObject *__pyx_n_s_pyx_vtable;
2310 static PyObject *__pyx_n_s_query_string;
2311 static PyObject *__pyx_n_s_range;
2312 static PyObject *__pyx_n_s_raw_headers;
2313 static PyObject *__pyx_n_u_raw_headers;
2314 static PyObject *__pyx_n_s_read_until_eof;
2315 static PyObject *__pyx_n_s_reason;
2316 static PyObject *__pyx_n_u_reason;
2317 static PyObject *__pyx_n_s_reduce;
2318 static PyObject *__pyx_n_s_reduce_cython;
2319 static PyObject *__pyx_n_s_reduce_ex;
2320 static PyObject *__pyx_n_s_repr___locals_genexpr;
2321 static PyObject *__pyx_n_s_response_with_body;
2322 static PyObject *__pyx_n_s_scheme;
2323 static PyObject *__pyx_n_s_send;
2324 static PyObject *__pyx_n_s_set_exception;
2325 static PyObject *__pyx_n_s_setstate;
2326 static PyObject *__pyx_n_s_setstate_cython;
2327 static PyObject *__pyx_n_s_should_close;
2328 static PyObject *__pyx_n_u_should_close;
2329 static PyObject *__pyx_n_s_streams;
2330 static PyObject *__pyx_kp_s_stringsource;
2331 static PyObject *__pyx_n_s_test;
2332 static PyObject *__pyx_n_s_throw;
2333 static PyObject *__pyx_n_s_timer;
2334 static PyObject *__pyx_kp_u_unknown;
2335 static PyObject *__pyx_n_s_update;
2336 static PyObject *__pyx_n_s_upgrade;
2337 static PyObject *__pyx_n_u_upgrade;
2338 static PyObject *__pyx_n_s_url;
2339 static PyObject *__pyx_n_u_url;
2340 static PyObject *__pyx_n_s_user;
2341 static PyObject *__pyx_n_s_version;
2342 static PyObject *__pyx_n_u_version;
2343 static PyObject *__pyx_n_s_yarl;
2344 static int __pyx_pf_7aiohttp_12_http_parser_17RawRequestMessage___init__(struct __pyx_obj_7aiohttp_12_http_parser_RawRequestMessage *__pyx_v_self, PyObject *__pyx_v_method, PyObject *__pyx_v_path, PyObject *__pyx_v_version, PyObject *__pyx_v_headers, PyObject *__pyx_v_raw_headers, PyObject *__pyx_v_should_close, PyObject *__pyx_v_compression, PyObject *__pyx_v_upgrade, PyObject *__pyx_v_chunked, PyObject *__pyx_v_url); /* proto */
2345 static PyObject *__pyx_pf_7aiohttp_12_http_parser_17RawRequestMessage_8__repr___genexpr(PyObject *__pyx_self); /* proto */
2346 static PyObject *__pyx_pf_7aiohttp_12_http_parser_17RawRequestMessage_2__repr__(struct __pyx_obj_7aiohttp_12_http_parser_RawRequestMessage *__pyx_v_self); /* proto */
2347 static PyObject *__pyx_pf_7aiohttp_12_http_parser_17RawRequestMessage_4_replace(struct __pyx_obj_7aiohttp_12_http_parser_RawRequestMessage *__pyx_v_self, PyObject *__pyx_v_dct); /* proto */
2348 static PyObject *__pyx_pf_7aiohttp_12_http_parser_17RawRequestMessage_6method___get__(struct __pyx_obj_7aiohttp_12_http_parser_RawRequestMessage *__pyx_v_self); /* proto */
2349 static PyObject *__pyx_pf_7aiohttp_12_http_parser_17RawRequestMessage_4path___get__(struct __pyx_obj_7aiohttp_12_http_parser_RawRequestMessage *__pyx_v_self); /* proto */
2350 static PyObject *__pyx_pf_7aiohttp_12_http_parser_17RawRequestMessage_7version___get__(struct __pyx_obj_7aiohttp_12_http_parser_RawRequestMessage *__pyx_v_self); /* proto */
2351 static PyObject *__pyx_pf_7aiohttp_12_http_parser_17RawRequestMessage_7headers___get__(struct __pyx_obj_7aiohttp_12_http_parser_RawRequestMessage *__pyx_v_self); /* proto */
2352 static PyObject *__pyx_pf_7aiohttp_12_http_parser_17RawRequestMessage_11raw_headers___get__(struct __pyx_obj_7aiohttp_12_http_parser_RawRequestMessage *__pyx_v_self); /* proto */
2353 static PyObject *__pyx_pf_7aiohttp_12_http_parser_17RawRequestMessage_12should_close___get__(struct __pyx_obj_7aiohttp_12_http_parser_RawRequestMessage *__pyx_v_self); /* proto */
2354 static PyObject *__pyx_pf_7aiohttp_12_http_parser_17RawRequestMessage_11compression___get__(struct __pyx_obj_7aiohttp_12_http_parser_RawRequestMessage *__pyx_v_self); /* proto */
2355 static PyObject *__pyx_pf_7aiohttp_12_http_parser_17RawRequestMessage_7upgrade___get__(struct __pyx_obj_7aiohttp_12_http_parser_RawRequestMessage *__pyx_v_self); /* proto */
2356 static PyObject *__pyx_pf_7aiohttp_12_http_parser_17RawRequestMessage_7chunked___get__(struct __pyx_obj_7aiohttp_12_http_parser_RawRequestMessage *__pyx_v_self); /* proto */
2357 static PyObject *__pyx_pf_7aiohttp_12_http_parser_17RawRequestMessage_3url___get__(struct __pyx_obj_7aiohttp_12_http_parser_RawRequestMessage *__pyx_v_self); /* proto */
2358 static PyObject *__pyx_pf_7aiohttp_12_http_parser_17RawRequestMessage_6__reduce_cython__(struct __pyx_obj_7aiohttp_12_http_parser_RawRequestMessage *__pyx_v_self); /* proto */
2359 static PyObject *__pyx_pf_7aiohttp_12_http_parser_17RawRequestMessage_8__setstate_cython__(struct __pyx_obj_7aiohttp_12_http_parser_RawRequestMessage *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
2360 static int __pyx_pf_7aiohttp_12_http_parser_18RawResponseMessage___init__(struct __pyx_obj_7aiohttp_12_http_parser_RawResponseMessage *__pyx_v_self, PyObject *__pyx_v_version, PyObject *__pyx_v_code, PyObject *__pyx_v_reason, PyObject *__pyx_v_headers, PyObject *__pyx_v_raw_headers, PyObject *__pyx_v_should_close, PyObject *__pyx_v_compression, PyObject *__pyx_v_upgrade, PyObject *__pyx_v_chunked); /* proto */
2361 static PyObject *__pyx_pf_7aiohttp_12_http_parser_18RawResponseMessage_8__repr___genexpr(PyObject *__pyx_self); /* proto */
2362 static PyObject *__pyx_pf_7aiohttp_12_http_parser_18RawResponseMessage_2__repr__(struct __pyx_obj_7aiohttp_12_http_parser_RawResponseMessage *__pyx_v_self); /* proto */
2363 static PyObject *__pyx_pf_7aiohttp_12_http_parser_18RawResponseMessage_7version___get__(struct __pyx_obj_7aiohttp_12_http_parser_RawResponseMessage *__pyx_v_self); /* proto */
2364 static PyObject *__pyx_pf_7aiohttp_12_http_parser_18RawResponseMessage_4code___get__(struct __pyx_obj_7aiohttp_12_http_parser_RawResponseMessage *__pyx_v_self); /* proto */
2365 static PyObject *__pyx_pf_7aiohttp_12_http_parser_18RawResponseMessage_6reason___get__(struct __pyx_obj_7aiohttp_12_http_parser_RawResponseMessage *__pyx_v_self); /* proto */
2366 static PyObject *__pyx_pf_7aiohttp_12_http_parser_18RawResponseMessage_7headers___get__(struct __pyx_obj_7aiohttp_12_http_parser_RawResponseMessage *__pyx_v_self); /* proto */
2367 static PyObject *__pyx_pf_7aiohttp_12_http_parser_18RawResponseMessage_11raw_headers___get__(struct __pyx_obj_7aiohttp_12_http_parser_RawResponseMessage *__pyx_v_self); /* proto */
2368 static PyObject *__pyx_pf_7aiohttp_12_http_parser_18RawResponseMessage_12should_close___get__(struct __pyx_obj_7aiohttp_12_http_parser_RawResponseMessage *__pyx_v_self); /* proto */
2369 static PyObject *__pyx_pf_7aiohttp_12_http_parser_18RawResponseMessage_11compression___get__(struct __pyx_obj_7aiohttp_12_http_parser_RawResponseMessage *__pyx_v_self); /* proto */
2370 static PyObject *__pyx_pf_7aiohttp_12_http_parser_18RawResponseMessage_7upgrade___get__(struct __pyx_obj_7aiohttp_12_http_parser_RawResponseMessage *__pyx_v_self); /* proto */
2371 static PyObject *__pyx_pf_7aiohttp_12_http_parser_18RawResponseMessage_7chunked___get__(struct __pyx_obj_7aiohttp_12_http_parser_RawResponseMessage *__pyx_v_self); /* proto */
2372 static PyObject *__pyx_pf_7aiohttp_12_http_parser_18RawResponseMessage_4__reduce_cython__(struct __pyx_obj_7aiohttp_12_http_parser_RawResponseMessage *__pyx_v_self); /* proto */
2373 static PyObject *__pyx_pf_7aiohttp_12_http_parser_18RawResponseMessage_6__setstate_cython__(struct __pyx_obj_7aiohttp_12_http_parser_RawResponseMessage *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
2374 static int __pyx_pf_7aiohttp_12_http_parser_10HttpParser___cinit__(struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *__pyx_v_self); /* proto */
2375 static void __pyx_pf_7aiohttp_12_http_parser_10HttpParser_2__dealloc__(struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *__pyx_v_self); /* proto */
2376 static PyObject *__pyx_pf_7aiohttp_12_http_parser_10HttpParser_4feed_eof(struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *__pyx_v_self); /* proto */
2377 static PyObject *__pyx_pf_7aiohttp_12_http_parser_10HttpParser_6feed_data(struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *__pyx_v_self, PyObject *__pyx_v_data); /* proto */
2378 static PyObject *__pyx_pf_7aiohttp_12_http_parser_10HttpParser_8set_upgraded(struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *__pyx_v_self, PyObject *__pyx_v_val); /* proto */
2379 static PyObject *__pyx_pf_7aiohttp_12_http_parser_10HttpParser_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *__pyx_v_self); /* proto */
2380 static PyObject *__pyx_pf_7aiohttp_12_http_parser_10HttpParser_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
2381 static int __pyx_pf_7aiohttp_12_http_parser_17HttpRequestParser___init__(struct __pyx_obj_7aiohttp_12_http_parser_HttpRequestParser *__pyx_v_self, PyObject *__pyx_v_protocol, PyObject *__pyx_v_loop, int __pyx_v_limit, PyObject *__pyx_v_timer, size_t __pyx_v_max_line_size, size_t __pyx_v_max_headers, size_t __pyx_v_max_field_size, PyObject *__pyx_v_payload_exception, int __pyx_v_response_with_body, int __pyx_v_read_until_eof); /* proto */
2382 static PyObject *__pyx_pf_7aiohttp_12_http_parser_17HttpRequestParser_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7aiohttp_12_http_parser_HttpRequestParser *__pyx_v_self); /* proto */
2383 static PyObject *__pyx_pf_7aiohttp_12_http_parser_17HttpRequestParser_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7aiohttp_12_http_parser_HttpRequestParser *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
2384 static int __pyx_pf_7aiohttp_12_http_parser_18HttpResponseParser___init__(struct __pyx_obj_7aiohttp_12_http_parser_HttpResponseParser *__pyx_v_self, PyObject *__pyx_v_protocol, PyObject *__pyx_v_loop, int __pyx_v_limit, PyObject *__pyx_v_timer, size_t __pyx_v_max_line_size, size_t __pyx_v_max_headers, size_t __pyx_v_max_field_size, PyObject *__pyx_v_payload_exception, int __pyx_v_response_with_body, int __pyx_v_read_until_eof, int __pyx_v_auto_decompress); /* proto */
2385 static PyObject *__pyx_pf_7aiohttp_12_http_parser_18HttpResponseParser_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7aiohttp_12_http_parser_HttpResponseParser *__pyx_v_self); /* proto */
2386 static PyObject *__pyx_pf_7aiohttp_12_http_parser_18HttpResponseParser_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7aiohttp_12_http_parser_HttpResponseParser *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
2387 static PyObject *__pyx_pf_7aiohttp_12_http_parser_parse_url(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_url); /* proto */
2388 static PyObject *__pyx_pf_7aiohttp_12_http_parser_2__pyx_unpickle_RawRequestMessage(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
2389 static PyObject *__pyx_pf_7aiohttp_12_http_parser_4__pyx_unpickle_RawResponseMessage(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
2390 static PyObject *__pyx_tp_new_7aiohttp_12_http_parser_RawRequestMessage(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
2391 static PyObject *__pyx_tp_new_7aiohttp_12_http_parser_RawResponseMessage(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
2392 static PyObject *__pyx_tp_new_7aiohttp_12_http_parser_HttpParser(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
2393 static PyObject *__pyx_tp_new_7aiohttp_12_http_parser_HttpRequestParser(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
2394 static PyObject *__pyx_tp_new_7aiohttp_12_http_parser_HttpResponseParser(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
2395 static PyObject *__pyx_tp_new_7aiohttp_12_http_parser___pyx_scope_struct____repr__(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
2396 static PyObject *__pyx_tp_new_7aiohttp_12_http_parser___pyx_scope_struct_1_genexpr(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
2397 static PyObject *__pyx_tp_new_7aiohttp_12_http_parser___pyx_scope_struct_2___repr__(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
2398 static PyObject *__pyx_tp_new_7aiohttp_12_http_parser___pyx_scope_struct_3_genexpr(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
2399 static __Pyx_CachedCFunction __pyx_umethod_PyUnicode_Type_partition = {0, &__pyx_n_s_partition, 0, 0, 0};
2400 static PyObject *__pyx_int_21004882;
2401 static PyObject *__pyx_int_209127132;
2402 static PyObject *__pyx_tuple__5;
2403 static PyObject *__pyx_tuple__6;
2404 static PyObject *__pyx_tuple__7;
2405 static PyObject *__pyx_tuple__8;
2406 static PyObject *__pyx_tuple__9;
2407 static PyObject *__pyx_tuple__10;
2408 static PyObject *__pyx_tuple__12;
2409 static PyObject *__pyx_tuple__13;
2410 static PyObject *__pyx_tuple__15;
2411 static PyObject *__pyx_tuple__17;
2412 static PyObject *__pyx_codeobj__14;
2413 static PyObject *__pyx_codeobj__16;
2414 static PyObject *__pyx_codeobj__18;
2415 /* Late includes */
2416 
2417 /* "aiohttp/_http_parser.pyx":74
2418  *
2419  *
2420  * cdef inline object extend(object buf, const char* at, size_t length):             # <<<<<<<<<<<<<<
2421  *     cdef Py_ssize_t s
2422  *     cdef char* ptr
2423  */
2424 
__pyx_f_7aiohttp_12_http_parser_extend(PyObject * __pyx_v_buf,char const * __pyx_v_at,size_t __pyx_v_length)2425 static CYTHON_INLINE PyObject *__pyx_f_7aiohttp_12_http_parser_extend(PyObject *__pyx_v_buf, char const *__pyx_v_at, size_t __pyx_v_length) {
2426   Py_ssize_t __pyx_v_s;
2427   char *__pyx_v_ptr;
2428   PyObject *__pyx_r = NULL;
2429   __Pyx_RefNannyDeclarations
2430   Py_ssize_t __pyx_t_1;
2431   int __pyx_t_2;
2432   int __pyx_lineno = 0;
2433   const char *__pyx_filename = NULL;
2434   int __pyx_clineno = 0;
2435   __Pyx_RefNannySetupContext("extend", 0);
2436 
2437   /* "aiohttp/_http_parser.pyx":77
2438  *     cdef Py_ssize_t s
2439  *     cdef char* ptr
2440  *     s = PyByteArray_Size(buf)             # <<<<<<<<<<<<<<
2441  *     PyByteArray_Resize(buf, s + length)
2442  *     ptr = PyByteArray_AsString(buf)
2443  */
2444   __pyx_t_1 = PyByteArray_Size(__pyx_v_buf); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1L))) __PYX_ERR(0, 77, __pyx_L1_error)
2445   __pyx_v_s = __pyx_t_1;
2446 
2447   /* "aiohttp/_http_parser.pyx":78
2448  *     cdef char* ptr
2449  *     s = PyByteArray_Size(buf)
2450  *     PyByteArray_Resize(buf, s + length)             # <<<<<<<<<<<<<<
2451  *     ptr = PyByteArray_AsString(buf)
2452  *     memcpy(ptr + s, at, length)
2453  */
2454   __pyx_t_2 = PyByteArray_Resize(__pyx_v_buf, (__pyx_v_s + __pyx_v_length)); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 78, __pyx_L1_error)
2455 
2456   /* "aiohttp/_http_parser.pyx":79
2457  *     s = PyByteArray_Size(buf)
2458  *     PyByteArray_Resize(buf, s + length)
2459  *     ptr = PyByteArray_AsString(buf)             # <<<<<<<<<<<<<<
2460  *     memcpy(ptr + s, at, length)
2461  *
2462  */
2463   __pyx_v_ptr = PyByteArray_AsString(__pyx_v_buf);
2464 
2465   /* "aiohttp/_http_parser.pyx":80
2466  *     PyByteArray_Resize(buf, s + length)
2467  *     ptr = PyByteArray_AsString(buf)
2468  *     memcpy(ptr + s, at, length)             # <<<<<<<<<<<<<<
2469  *
2470  *
2471  */
2472   (void)(memcpy((__pyx_v_ptr + __pyx_v_s), __pyx_v_at, __pyx_v_length));
2473 
2474   /* "aiohttp/_http_parser.pyx":74
2475  *
2476  *
2477  * cdef inline object extend(object buf, const char* at, size_t length):             # <<<<<<<<<<<<<<
2478  *     cdef Py_ssize_t s
2479  *     cdef char* ptr
2480  */
2481 
2482   /* function exit code */
2483   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
2484   goto __pyx_L0;
2485   __pyx_L1_error:;
2486   __Pyx_AddTraceback("aiohttp._http_parser.extend", __pyx_clineno, __pyx_lineno, __pyx_filename);
2487   __pyx_r = 0;
2488   __pyx_L0:;
2489   __Pyx_XGIVEREF(__pyx_r);
2490   __Pyx_RefNannyFinishContext();
2491   return __pyx_r;
2492 }
2493 
2494 /* "aiohttp/_http_parser.pyx":92
2495  *
2496  *
2497  * cdef inline str http_method_str(int i):             # <<<<<<<<<<<<<<
2498  *     if i < METHODS_COUNT:
2499  *         return <str>_http_method[i]
2500  */
2501 
__pyx_f_7aiohttp_12_http_parser_http_method_str(int __pyx_v_i)2502 static CYTHON_INLINE PyObject *__pyx_f_7aiohttp_12_http_parser_http_method_str(int __pyx_v_i) {
2503   PyObject *__pyx_r = NULL;
2504   __Pyx_RefNannyDeclarations
2505   int __pyx_t_1;
2506   PyObject *__pyx_t_2 = NULL;
2507   int __pyx_lineno = 0;
2508   const char *__pyx_filename = NULL;
2509   int __pyx_clineno = 0;
2510   __Pyx_RefNannySetupContext("http_method_str", 0);
2511 
2512   /* "aiohttp/_http_parser.pyx":93
2513  *
2514  * cdef inline str http_method_str(int i):
2515  *     if i < METHODS_COUNT:             # <<<<<<<<<<<<<<
2516  *         return <str>_http_method[i]
2517  *     else:
2518  */
2519   __pyx_t_1 = ((__pyx_v_i < 34) != 0);
2520   if (__pyx_t_1) {
2521 
2522     /* "aiohttp/_http_parser.pyx":94
2523  * cdef inline str http_method_str(int i):
2524  *     if i < METHODS_COUNT:
2525  *         return <str>_http_method[i]             # <<<<<<<<<<<<<<
2526  *     else:
2527  *         return "<unknown>"
2528  */
2529     __Pyx_XDECREF(__pyx_r);
2530     if (unlikely(__pyx_v_7aiohttp_12_http_parser__http_method == Py_None)) {
2531       PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
2532       __PYX_ERR(0, 94, __pyx_L1_error)
2533     }
2534     __pyx_t_2 = __Pyx_GetItemInt_List(__pyx_v_7aiohttp_12_http_parser__http_method, __pyx_v_i, int, 1, __Pyx_PyInt_From_int, 1, 1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 94, __pyx_L1_error)
2535     __Pyx_GOTREF(__pyx_t_2);
2536     __Pyx_INCREF(((PyObject*)__pyx_t_2));
2537     __pyx_r = ((PyObject*)__pyx_t_2);
2538     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
2539     goto __pyx_L0;
2540 
2541     /* "aiohttp/_http_parser.pyx":93
2542  *
2543  * cdef inline str http_method_str(int i):
2544  *     if i < METHODS_COUNT:             # <<<<<<<<<<<<<<
2545  *         return <str>_http_method[i]
2546  *     else:
2547  */
2548   }
2549 
2550   /* "aiohttp/_http_parser.pyx":96
2551  *         return <str>_http_method[i]
2552  *     else:
2553  *         return "<unknown>"             # <<<<<<<<<<<<<<
2554  *
2555  * cdef inline object find_header(bytes raw_header):
2556  */
2557   /*else*/ {
2558     __Pyx_XDECREF(__pyx_r);
2559     __Pyx_INCREF(__pyx_kp_u_unknown);
2560     __pyx_r = __pyx_kp_u_unknown;
2561     goto __pyx_L0;
2562   }
2563 
2564   /* "aiohttp/_http_parser.pyx":92
2565  *
2566  *
2567  * cdef inline str http_method_str(int i):             # <<<<<<<<<<<<<<
2568  *     if i < METHODS_COUNT:
2569  *         return <str>_http_method[i]
2570  */
2571 
2572   /* function exit code */
2573   __pyx_L1_error:;
2574   __Pyx_XDECREF(__pyx_t_2);
2575   __Pyx_AddTraceback("aiohttp._http_parser.http_method_str", __pyx_clineno, __pyx_lineno, __pyx_filename);
2576   __pyx_r = 0;
2577   __pyx_L0:;
2578   __Pyx_XGIVEREF(__pyx_r);
2579   __Pyx_RefNannyFinishContext();
2580   return __pyx_r;
2581 }
2582 
2583 /* "aiohttp/_http_parser.pyx":98
2584  *         return "<unknown>"
2585  *
2586  * cdef inline object find_header(bytes raw_header):             # <<<<<<<<<<<<<<
2587  *     cdef Py_ssize_t size
2588  *     cdef char *buf
2589  */
2590 
__pyx_f_7aiohttp_12_http_parser_find_header(PyObject * __pyx_v_raw_header)2591 static CYTHON_INLINE PyObject *__pyx_f_7aiohttp_12_http_parser_find_header(PyObject *__pyx_v_raw_header) {
2592   Py_ssize_t __pyx_v_size;
2593   char *__pyx_v_buf;
2594   int __pyx_v_idx;
2595   PyObject *__pyx_r = NULL;
2596   __Pyx_RefNannyDeclarations
2597   int __pyx_t_1;
2598   int __pyx_t_2;
2599   PyObject *__pyx_t_3 = NULL;
2600   int __pyx_lineno = 0;
2601   const char *__pyx_filename = NULL;
2602   int __pyx_clineno = 0;
2603   __Pyx_RefNannySetupContext("find_header", 0);
2604 
2605   /* "aiohttp/_http_parser.pyx":102
2606  *     cdef char *buf
2607  *     cdef int idx
2608  *     PyBytes_AsStringAndSize(raw_header, &buf, &size)             # <<<<<<<<<<<<<<
2609  *     idx = _find_header.find_header(buf, size)
2610  *     if idx == -1:
2611  */
2612   __pyx_t_1 = PyBytes_AsStringAndSize(__pyx_v_raw_header, (&__pyx_v_buf), (&__pyx_v_size)); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 102, __pyx_L1_error)
2613 
2614   /* "aiohttp/_http_parser.pyx":103
2615  *     cdef int idx
2616  *     PyBytes_AsStringAndSize(raw_header, &buf, &size)
2617  *     idx = _find_header.find_header(buf, size)             # <<<<<<<<<<<<<<
2618  *     if idx == -1:
2619  *         return raw_header.decode('utf-8', 'surrogateescape')
2620  */
2621   __pyx_v_idx = find_header(__pyx_v_buf, __pyx_v_size);
2622 
2623   /* "aiohttp/_http_parser.pyx":104
2624  *     PyBytes_AsStringAndSize(raw_header, &buf, &size)
2625  *     idx = _find_header.find_header(buf, size)
2626  *     if idx == -1:             # <<<<<<<<<<<<<<
2627  *         return raw_header.decode('utf-8', 'surrogateescape')
2628  *     return headers[idx]
2629  */
2630   __pyx_t_2 = ((__pyx_v_idx == -1L) != 0);
2631   if (__pyx_t_2) {
2632 
2633     /* "aiohttp/_http_parser.pyx":105
2634  *     idx = _find_header.find_header(buf, size)
2635  *     if idx == -1:
2636  *         return raw_header.decode('utf-8', 'surrogateescape')             # <<<<<<<<<<<<<<
2637  *     return headers[idx]
2638  *
2639  */
2640     __Pyx_XDECREF(__pyx_r);
2641     if (unlikely(__pyx_v_raw_header == Py_None)) {
2642       PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "decode");
2643       __PYX_ERR(0, 105, __pyx_L1_error)
2644     }
2645     __pyx_t_3 = __Pyx_decode_bytes(__pyx_v_raw_header, 0, PY_SSIZE_T_MAX, NULL, ((char const *)"surrogateescape"), PyUnicode_DecodeUTF8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 105, __pyx_L1_error)
2646     __Pyx_GOTREF(__pyx_t_3);
2647     __pyx_r = __pyx_t_3;
2648     __pyx_t_3 = 0;
2649     goto __pyx_L0;
2650 
2651     /* "aiohttp/_http_parser.pyx":104
2652  *     PyBytes_AsStringAndSize(raw_header, &buf, &size)
2653  *     idx = _find_header.find_header(buf, size)
2654  *     if idx == -1:             # <<<<<<<<<<<<<<
2655  *         return raw_header.decode('utf-8', 'surrogateescape')
2656  *     return headers[idx]
2657  */
2658   }
2659 
2660   /* "aiohttp/_http_parser.pyx":106
2661  *     if idx == -1:
2662  *         return raw_header.decode('utf-8', 'surrogateescape')
2663  *     return headers[idx]             # <<<<<<<<<<<<<<
2664  *
2665  *
2666  */
2667   __Pyx_XDECREF(__pyx_r);
2668   if (unlikely(__pyx_v_7aiohttp_12_http_parser_headers == Py_None)) {
2669     PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
2670     __PYX_ERR(0, 106, __pyx_L1_error)
2671   }
2672   __pyx_t_3 = __Pyx_GetItemInt_Tuple(__pyx_v_7aiohttp_12_http_parser_headers, __pyx_v_idx, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 106, __pyx_L1_error)
2673   __Pyx_GOTREF(__pyx_t_3);
2674   __pyx_r = __pyx_t_3;
2675   __pyx_t_3 = 0;
2676   goto __pyx_L0;
2677 
2678   /* "aiohttp/_http_parser.pyx":98
2679  *         return "<unknown>"
2680  *
2681  * cdef inline object find_header(bytes raw_header):             # <<<<<<<<<<<<<<
2682  *     cdef Py_ssize_t size
2683  *     cdef char *buf
2684  */
2685 
2686   /* function exit code */
2687   __pyx_L1_error:;
2688   __Pyx_XDECREF(__pyx_t_3);
2689   __Pyx_AddTraceback("aiohttp._http_parser.find_header", __pyx_clineno, __pyx_lineno, __pyx_filename);
2690   __pyx_r = 0;
2691   __pyx_L0:;
2692   __Pyx_XGIVEREF(__pyx_r);
2693   __Pyx_RefNannyFinishContext();
2694   return __pyx_r;
2695 }
2696 
2697 /* "aiohttp/_http_parser.pyx":122
2698  *     cdef readonly object url  # yarl.URL
2699  *
2700  *     def __init__(self, method, path, version, headers, raw_headers,             # <<<<<<<<<<<<<<
2701  *                  should_close, compression, upgrade, chunked, url):
2702  *         self.method = method
2703  */
2704 
2705 /* Python wrapper */
2706 static int __pyx_pw_7aiohttp_12_http_parser_17RawRequestMessage_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
__pyx_pw_7aiohttp_12_http_parser_17RawRequestMessage_1__init__(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)2707 static int __pyx_pw_7aiohttp_12_http_parser_17RawRequestMessage_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
2708   PyObject *__pyx_v_method = 0;
2709   PyObject *__pyx_v_path = 0;
2710   PyObject *__pyx_v_version = 0;
2711   PyObject *__pyx_v_headers = 0;
2712   PyObject *__pyx_v_raw_headers = 0;
2713   PyObject *__pyx_v_should_close = 0;
2714   PyObject *__pyx_v_compression = 0;
2715   PyObject *__pyx_v_upgrade = 0;
2716   PyObject *__pyx_v_chunked = 0;
2717   PyObject *__pyx_v_url = 0;
2718   int __pyx_lineno = 0;
2719   const char *__pyx_filename = NULL;
2720   int __pyx_clineno = 0;
2721   int __pyx_r;
2722   __Pyx_RefNannyDeclarations
2723   __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
2724   {
2725     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_method,&__pyx_n_s_path,&__pyx_n_s_version,&__pyx_n_s_headers,&__pyx_n_s_raw_headers,&__pyx_n_s_should_close,&__pyx_n_s_compression,&__pyx_n_s_upgrade,&__pyx_n_s_chunked,&__pyx_n_s_url,0};
2726     PyObject* values[10] = {0,0,0,0,0,0,0,0,0,0};
2727     if (unlikely(__pyx_kwds)) {
2728       Py_ssize_t kw_args;
2729       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
2730       switch (pos_args) {
2731         case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
2732         CYTHON_FALLTHROUGH;
2733         case  9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
2734         CYTHON_FALLTHROUGH;
2735         case  8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
2736         CYTHON_FALLTHROUGH;
2737         case  7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
2738         CYTHON_FALLTHROUGH;
2739         case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
2740         CYTHON_FALLTHROUGH;
2741         case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
2742         CYTHON_FALLTHROUGH;
2743         case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
2744         CYTHON_FALLTHROUGH;
2745         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
2746         CYTHON_FALLTHROUGH;
2747         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
2748         CYTHON_FALLTHROUGH;
2749         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
2750         CYTHON_FALLTHROUGH;
2751         case  0: break;
2752         default: goto __pyx_L5_argtuple_error;
2753       }
2754       kw_args = PyDict_Size(__pyx_kwds);
2755       switch (pos_args) {
2756         case  0:
2757         if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_method)) != 0)) kw_args--;
2758         else goto __pyx_L5_argtuple_error;
2759         CYTHON_FALLTHROUGH;
2760         case  1:
2761         if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_path)) != 0)) kw_args--;
2762         else {
2763           __Pyx_RaiseArgtupleInvalid("__init__", 1, 10, 10, 1); __PYX_ERR(0, 122, __pyx_L3_error)
2764         }
2765         CYTHON_FALLTHROUGH;
2766         case  2:
2767         if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_version)) != 0)) kw_args--;
2768         else {
2769           __Pyx_RaiseArgtupleInvalid("__init__", 1, 10, 10, 2); __PYX_ERR(0, 122, __pyx_L3_error)
2770         }
2771         CYTHON_FALLTHROUGH;
2772         case  3:
2773         if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_headers)) != 0)) kw_args--;
2774         else {
2775           __Pyx_RaiseArgtupleInvalid("__init__", 1, 10, 10, 3); __PYX_ERR(0, 122, __pyx_L3_error)
2776         }
2777         CYTHON_FALLTHROUGH;
2778         case  4:
2779         if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_raw_headers)) != 0)) kw_args--;
2780         else {
2781           __Pyx_RaiseArgtupleInvalid("__init__", 1, 10, 10, 4); __PYX_ERR(0, 122, __pyx_L3_error)
2782         }
2783         CYTHON_FALLTHROUGH;
2784         case  5:
2785         if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_should_close)) != 0)) kw_args--;
2786         else {
2787           __Pyx_RaiseArgtupleInvalid("__init__", 1, 10, 10, 5); __PYX_ERR(0, 122, __pyx_L3_error)
2788         }
2789         CYTHON_FALLTHROUGH;
2790         case  6:
2791         if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_compression)) != 0)) kw_args--;
2792         else {
2793           __Pyx_RaiseArgtupleInvalid("__init__", 1, 10, 10, 6); __PYX_ERR(0, 122, __pyx_L3_error)
2794         }
2795         CYTHON_FALLTHROUGH;
2796         case  7:
2797         if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_upgrade)) != 0)) kw_args--;
2798         else {
2799           __Pyx_RaiseArgtupleInvalid("__init__", 1, 10, 10, 7); __PYX_ERR(0, 122, __pyx_L3_error)
2800         }
2801         CYTHON_FALLTHROUGH;
2802         case  8:
2803         if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_chunked)) != 0)) kw_args--;
2804         else {
2805           __Pyx_RaiseArgtupleInvalid("__init__", 1, 10, 10, 8); __PYX_ERR(0, 122, __pyx_L3_error)
2806         }
2807         CYTHON_FALLTHROUGH;
2808         case  9:
2809         if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_url)) != 0)) kw_args--;
2810         else {
2811           __Pyx_RaiseArgtupleInvalid("__init__", 1, 10, 10, 9); __PYX_ERR(0, 122, __pyx_L3_error)
2812         }
2813       }
2814       if (unlikely(kw_args > 0)) {
2815         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 122, __pyx_L3_error)
2816       }
2817     } else if (PyTuple_GET_SIZE(__pyx_args) != 10) {
2818       goto __pyx_L5_argtuple_error;
2819     } else {
2820       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
2821       values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
2822       values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
2823       values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
2824       values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
2825       values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
2826       values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
2827       values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
2828       values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
2829       values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
2830     }
2831     __pyx_v_method = values[0];
2832     __pyx_v_path = values[1];
2833     __pyx_v_version = values[2];
2834     __pyx_v_headers = values[3];
2835     __pyx_v_raw_headers = values[4];
2836     __pyx_v_should_close = values[5];
2837     __pyx_v_compression = values[6];
2838     __pyx_v_upgrade = values[7];
2839     __pyx_v_chunked = values[8];
2840     __pyx_v_url = values[9];
2841   }
2842   goto __pyx_L4_argument_unpacking_done;
2843   __pyx_L5_argtuple_error:;
2844   __Pyx_RaiseArgtupleInvalid("__init__", 1, 10, 10, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 122, __pyx_L3_error)
2845   __pyx_L3_error:;
2846   __Pyx_AddTraceback("aiohttp._http_parser.RawRequestMessage.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
2847   __Pyx_RefNannyFinishContext();
2848   return -1;
2849   __pyx_L4_argument_unpacking_done:;
2850   __pyx_r = __pyx_pf_7aiohttp_12_http_parser_17RawRequestMessage___init__(((struct __pyx_obj_7aiohttp_12_http_parser_RawRequestMessage *)__pyx_v_self), __pyx_v_method, __pyx_v_path, __pyx_v_version, __pyx_v_headers, __pyx_v_raw_headers, __pyx_v_should_close, __pyx_v_compression, __pyx_v_upgrade, __pyx_v_chunked, __pyx_v_url);
2851 
2852   /* function exit code */
2853   __Pyx_RefNannyFinishContext();
2854   return __pyx_r;
2855 }
2856 
__pyx_pf_7aiohttp_12_http_parser_17RawRequestMessage___init__(struct __pyx_obj_7aiohttp_12_http_parser_RawRequestMessage * __pyx_v_self,PyObject * __pyx_v_method,PyObject * __pyx_v_path,PyObject * __pyx_v_version,PyObject * __pyx_v_headers,PyObject * __pyx_v_raw_headers,PyObject * __pyx_v_should_close,PyObject * __pyx_v_compression,PyObject * __pyx_v_upgrade,PyObject * __pyx_v_chunked,PyObject * __pyx_v_url)2857 static int __pyx_pf_7aiohttp_12_http_parser_17RawRequestMessage___init__(struct __pyx_obj_7aiohttp_12_http_parser_RawRequestMessage *__pyx_v_self, PyObject *__pyx_v_method, PyObject *__pyx_v_path, PyObject *__pyx_v_version, PyObject *__pyx_v_headers, PyObject *__pyx_v_raw_headers, PyObject *__pyx_v_should_close, PyObject *__pyx_v_compression, PyObject *__pyx_v_upgrade, PyObject *__pyx_v_chunked, PyObject *__pyx_v_url) {
2858   int __pyx_r;
2859   __Pyx_RefNannyDeclarations
2860   PyObject *__pyx_t_1 = NULL;
2861   int __pyx_lineno = 0;
2862   const char *__pyx_filename = NULL;
2863   int __pyx_clineno = 0;
2864   __Pyx_RefNannySetupContext("__init__", 0);
2865 
2866   /* "aiohttp/_http_parser.pyx":124
2867  *     def __init__(self, method, path, version, headers, raw_headers,
2868  *                  should_close, compression, upgrade, chunked, url):
2869  *         self.method = method             # <<<<<<<<<<<<<<
2870  *         self.path = path
2871  *         self.version = version
2872  */
2873   if (!(likely(PyUnicode_CheckExact(__pyx_v_method))||((__pyx_v_method) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_v_method)->tp_name), 0))) __PYX_ERR(0, 124, __pyx_L1_error)
2874   __pyx_t_1 = __pyx_v_method;
2875   __Pyx_INCREF(__pyx_t_1);
2876   __Pyx_GIVEREF(__pyx_t_1);
2877   __Pyx_GOTREF(__pyx_v_self->method);
2878   __Pyx_DECREF(__pyx_v_self->method);
2879   __pyx_v_self->method = ((PyObject*)__pyx_t_1);
2880   __pyx_t_1 = 0;
2881 
2882   /* "aiohttp/_http_parser.pyx":125
2883  *                  should_close, compression, upgrade, chunked, url):
2884  *         self.method = method
2885  *         self.path = path             # <<<<<<<<<<<<<<
2886  *         self.version = version
2887  *         self.headers = headers
2888  */
2889   if (!(likely(PyUnicode_CheckExact(__pyx_v_path))||((__pyx_v_path) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_v_path)->tp_name), 0))) __PYX_ERR(0, 125, __pyx_L1_error)
2890   __pyx_t_1 = __pyx_v_path;
2891   __Pyx_INCREF(__pyx_t_1);
2892   __Pyx_GIVEREF(__pyx_t_1);
2893   __Pyx_GOTREF(__pyx_v_self->path);
2894   __Pyx_DECREF(__pyx_v_self->path);
2895   __pyx_v_self->path = ((PyObject*)__pyx_t_1);
2896   __pyx_t_1 = 0;
2897 
2898   /* "aiohttp/_http_parser.pyx":126
2899  *         self.method = method
2900  *         self.path = path
2901  *         self.version = version             # <<<<<<<<<<<<<<
2902  *         self.headers = headers
2903  *         self.raw_headers = raw_headers
2904  */
2905   __Pyx_INCREF(__pyx_v_version);
2906   __Pyx_GIVEREF(__pyx_v_version);
2907   __Pyx_GOTREF(__pyx_v_self->version);
2908   __Pyx_DECREF(__pyx_v_self->version);
2909   __pyx_v_self->version = __pyx_v_version;
2910 
2911   /* "aiohttp/_http_parser.pyx":127
2912  *         self.path = path
2913  *         self.version = version
2914  *         self.headers = headers             # <<<<<<<<<<<<<<
2915  *         self.raw_headers = raw_headers
2916  *         self.should_close = should_close
2917  */
2918   __Pyx_INCREF(__pyx_v_headers);
2919   __Pyx_GIVEREF(__pyx_v_headers);
2920   __Pyx_GOTREF(__pyx_v_self->headers);
2921   __Pyx_DECREF(__pyx_v_self->headers);
2922   __pyx_v_self->headers = __pyx_v_headers;
2923 
2924   /* "aiohttp/_http_parser.pyx":128
2925  *         self.version = version
2926  *         self.headers = headers
2927  *         self.raw_headers = raw_headers             # <<<<<<<<<<<<<<
2928  *         self.should_close = should_close
2929  *         self.compression = compression
2930  */
2931   __Pyx_INCREF(__pyx_v_raw_headers);
2932   __Pyx_GIVEREF(__pyx_v_raw_headers);
2933   __Pyx_GOTREF(__pyx_v_self->raw_headers);
2934   __Pyx_DECREF(__pyx_v_self->raw_headers);
2935   __pyx_v_self->raw_headers = __pyx_v_raw_headers;
2936 
2937   /* "aiohttp/_http_parser.pyx":129
2938  *         self.headers = headers
2939  *         self.raw_headers = raw_headers
2940  *         self.should_close = should_close             # <<<<<<<<<<<<<<
2941  *         self.compression = compression
2942  *         self.upgrade = upgrade
2943  */
2944   __Pyx_INCREF(__pyx_v_should_close);
2945   __Pyx_GIVEREF(__pyx_v_should_close);
2946   __Pyx_GOTREF(__pyx_v_self->should_close);
2947   __Pyx_DECREF(__pyx_v_self->should_close);
2948   __pyx_v_self->should_close = __pyx_v_should_close;
2949 
2950   /* "aiohttp/_http_parser.pyx":130
2951  *         self.raw_headers = raw_headers
2952  *         self.should_close = should_close
2953  *         self.compression = compression             # <<<<<<<<<<<<<<
2954  *         self.upgrade = upgrade
2955  *         self.chunked = chunked
2956  */
2957   __Pyx_INCREF(__pyx_v_compression);
2958   __Pyx_GIVEREF(__pyx_v_compression);
2959   __Pyx_GOTREF(__pyx_v_self->compression);
2960   __Pyx_DECREF(__pyx_v_self->compression);
2961   __pyx_v_self->compression = __pyx_v_compression;
2962 
2963   /* "aiohttp/_http_parser.pyx":131
2964  *         self.should_close = should_close
2965  *         self.compression = compression
2966  *         self.upgrade = upgrade             # <<<<<<<<<<<<<<
2967  *         self.chunked = chunked
2968  *         self.url = url
2969  */
2970   __Pyx_INCREF(__pyx_v_upgrade);
2971   __Pyx_GIVEREF(__pyx_v_upgrade);
2972   __Pyx_GOTREF(__pyx_v_self->upgrade);
2973   __Pyx_DECREF(__pyx_v_self->upgrade);
2974   __pyx_v_self->upgrade = __pyx_v_upgrade;
2975 
2976   /* "aiohttp/_http_parser.pyx":132
2977  *         self.compression = compression
2978  *         self.upgrade = upgrade
2979  *         self.chunked = chunked             # <<<<<<<<<<<<<<
2980  *         self.url = url
2981  *
2982  */
2983   __Pyx_INCREF(__pyx_v_chunked);
2984   __Pyx_GIVEREF(__pyx_v_chunked);
2985   __Pyx_GOTREF(__pyx_v_self->chunked);
2986   __Pyx_DECREF(__pyx_v_self->chunked);
2987   __pyx_v_self->chunked = __pyx_v_chunked;
2988 
2989   /* "aiohttp/_http_parser.pyx":133
2990  *         self.upgrade = upgrade
2991  *         self.chunked = chunked
2992  *         self.url = url             # <<<<<<<<<<<<<<
2993  *
2994  *     def __repr__(self):
2995  */
2996   __Pyx_INCREF(__pyx_v_url);
2997   __Pyx_GIVEREF(__pyx_v_url);
2998   __Pyx_GOTREF(__pyx_v_self->url);
2999   __Pyx_DECREF(__pyx_v_self->url);
3000   __pyx_v_self->url = __pyx_v_url;
3001 
3002   /* "aiohttp/_http_parser.pyx":122
3003  *     cdef readonly object url  # yarl.URL
3004  *
3005  *     def __init__(self, method, path, version, headers, raw_headers,             # <<<<<<<<<<<<<<
3006  *                  should_close, compression, upgrade, chunked, url):
3007  *         self.method = method
3008  */
3009 
3010   /* function exit code */
3011   __pyx_r = 0;
3012   goto __pyx_L0;
3013   __pyx_L1_error:;
3014   __Pyx_XDECREF(__pyx_t_1);
3015   __Pyx_AddTraceback("aiohttp._http_parser.RawRequestMessage.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
3016   __pyx_r = -1;
3017   __pyx_L0:;
3018   __Pyx_RefNannyFinishContext();
3019   return __pyx_r;
3020 }
3021 
3022 /* "aiohttp/_http_parser.pyx":135
3023  *         self.url = url
3024  *
3025  *     def __repr__(self):             # <<<<<<<<<<<<<<
3026  *         info = []
3027  *         info.append(("method", self.method))
3028  */
3029 
3030 /* Python wrapper */
3031 static PyObject *__pyx_pw_7aiohttp_12_http_parser_17RawRequestMessage_3__repr__(PyObject *__pyx_v_self); /*proto*/
__pyx_pw_7aiohttp_12_http_parser_17RawRequestMessage_3__repr__(PyObject * __pyx_v_self)3032 static PyObject *__pyx_pw_7aiohttp_12_http_parser_17RawRequestMessage_3__repr__(PyObject *__pyx_v_self) {
3033   PyObject *__pyx_r = 0;
3034   __Pyx_RefNannyDeclarations
3035   __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
3036   __pyx_r = __pyx_pf_7aiohttp_12_http_parser_17RawRequestMessage_2__repr__(((struct __pyx_obj_7aiohttp_12_http_parser_RawRequestMessage *)__pyx_v_self));
3037 
3038   /* function exit code */
3039   __Pyx_RefNannyFinishContext();
3040   return __pyx_r;
3041 }
3042 static PyObject *__pyx_gb_7aiohttp_12_http_parser_17RawRequestMessage_8__repr___2generator(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */
3043 
3044 /* "aiohttp/_http_parser.pyx":147
3045  *         info.append(("chunked", self.chunked))
3046  *         info.append(("url", self.url))
3047  *         sinfo = ', '.join(name + '=' + repr(val) for name, val in info)             # <<<<<<<<<<<<<<
3048  *         return '<RawRequestMessage(' + sinfo + ')>'
3049  *
3050  */
3051 
__pyx_pf_7aiohttp_12_http_parser_17RawRequestMessage_8__repr___genexpr(PyObject * __pyx_self)3052 static PyObject *__pyx_pf_7aiohttp_12_http_parser_17RawRequestMessage_8__repr___genexpr(PyObject *__pyx_self) {
3053   struct __pyx_obj_7aiohttp_12_http_parser___pyx_scope_struct_1_genexpr *__pyx_cur_scope;
3054   PyObject *__pyx_r = NULL;
3055   __Pyx_RefNannyDeclarations
3056   int __pyx_lineno = 0;
3057   const char *__pyx_filename = NULL;
3058   int __pyx_clineno = 0;
3059   __Pyx_RefNannySetupContext("genexpr", 0);
3060   __pyx_cur_scope = (struct __pyx_obj_7aiohttp_12_http_parser___pyx_scope_struct_1_genexpr *)__pyx_tp_new_7aiohttp_12_http_parser___pyx_scope_struct_1_genexpr(__pyx_ptype_7aiohttp_12_http_parser___pyx_scope_struct_1_genexpr, __pyx_empty_tuple, NULL);
3061   if (unlikely(!__pyx_cur_scope)) {
3062     __pyx_cur_scope = ((struct __pyx_obj_7aiohttp_12_http_parser___pyx_scope_struct_1_genexpr *)Py_None);
3063     __Pyx_INCREF(Py_None);
3064     __PYX_ERR(0, 147, __pyx_L1_error)
3065   } else {
3066     __Pyx_GOTREF(__pyx_cur_scope);
3067   }
3068   __pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_7aiohttp_12_http_parser___pyx_scope_struct____repr__ *) __pyx_self;
3069   __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope));
3070   __Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope);
3071   {
3072     __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_7aiohttp_12_http_parser_17RawRequestMessage_8__repr___2generator, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_repr___locals_genexpr, __pyx_n_s_aiohttp__http_parser); if (unlikely(!gen)) __PYX_ERR(0, 147, __pyx_L1_error)
3073     __Pyx_DECREF(__pyx_cur_scope);
3074     __Pyx_RefNannyFinishContext();
3075     return (PyObject *) gen;
3076   }
3077 
3078   /* function exit code */
3079   __pyx_L1_error:;
3080   __Pyx_AddTraceback("aiohttp._http_parser.RawRequestMessage.__repr__.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
3081   __pyx_r = NULL;
3082   __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
3083   __Pyx_XGIVEREF(__pyx_r);
3084   __Pyx_RefNannyFinishContext();
3085   return __pyx_r;
3086 }
3087 
__pyx_gb_7aiohttp_12_http_parser_17RawRequestMessage_8__repr___2generator(__pyx_CoroutineObject * __pyx_generator,CYTHON_UNUSED PyThreadState * __pyx_tstate,PyObject * __pyx_sent_value)3088 static PyObject *__pyx_gb_7aiohttp_12_http_parser_17RawRequestMessage_8__repr___2generator(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
3089 {
3090   struct __pyx_obj_7aiohttp_12_http_parser___pyx_scope_struct_1_genexpr *__pyx_cur_scope = ((struct __pyx_obj_7aiohttp_12_http_parser___pyx_scope_struct_1_genexpr *)__pyx_generator->closure);
3091   PyObject *__pyx_r = NULL;
3092   PyObject *__pyx_t_1 = NULL;
3093   Py_ssize_t __pyx_t_2;
3094   PyObject *__pyx_t_3 = NULL;
3095   PyObject *__pyx_t_4 = NULL;
3096   PyObject *__pyx_t_5 = NULL;
3097   PyObject *__pyx_t_6 = NULL;
3098   PyObject *(*__pyx_t_7)(PyObject *);
3099   int __pyx_lineno = 0;
3100   const char *__pyx_filename = NULL;
3101   int __pyx_clineno = 0;
3102   __Pyx_RefNannyDeclarations
3103   __Pyx_RefNannySetupContext("genexpr", 0);
3104   switch (__pyx_generator->resume_label) {
3105     case 0: goto __pyx_L3_first_run;
3106     default: /* CPython raises the right error here */
3107     __Pyx_RefNannyFinishContext();
3108     return NULL;
3109   }
3110   __pyx_L3_first_run:;
3111   if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 147, __pyx_L1_error)
3112   __pyx_r = PyList_New(0); if (unlikely(!__pyx_r)) __PYX_ERR(0, 147, __pyx_L1_error)
3113   __Pyx_GOTREF(__pyx_r);
3114   if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_info)) { __Pyx_RaiseClosureNameError("info"); __PYX_ERR(0, 147, __pyx_L1_error) }
3115   if (unlikely(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_info == Py_None)) {
3116     PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
3117     __PYX_ERR(0, 147, __pyx_L1_error)
3118   }
3119   __pyx_t_1 = __pyx_cur_scope->__pyx_outer_scope->__pyx_v_info; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
3120   for (;;) {
3121     if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
3122     #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
3123     __pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_3); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 147, __pyx_L1_error)
3124     #else
3125     __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 147, __pyx_L1_error)
3126     __Pyx_GOTREF(__pyx_t_3);
3127     #endif
3128     if ((likely(PyTuple_CheckExact(__pyx_t_3))) || (PyList_CheckExact(__pyx_t_3))) {
3129       PyObject* sequence = __pyx_t_3;
3130       Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
3131       if (unlikely(size != 2)) {
3132         if (size > 2) __Pyx_RaiseTooManyValuesError(2);
3133         else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
3134         __PYX_ERR(0, 147, __pyx_L1_error)
3135       }
3136       #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
3137       if (likely(PyTuple_CheckExact(sequence))) {
3138         __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0);
3139         __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1);
3140       } else {
3141         __pyx_t_4 = PyList_GET_ITEM(sequence, 0);
3142         __pyx_t_5 = PyList_GET_ITEM(sequence, 1);
3143       }
3144       __Pyx_INCREF(__pyx_t_4);
3145       __Pyx_INCREF(__pyx_t_5);
3146       #else
3147       __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 147, __pyx_L1_error)
3148       __Pyx_GOTREF(__pyx_t_4);
3149       __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 147, __pyx_L1_error)
3150       __Pyx_GOTREF(__pyx_t_5);
3151       #endif
3152       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
3153     } else {
3154       Py_ssize_t index = -1;
3155       __pyx_t_6 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 147, __pyx_L1_error)
3156       __Pyx_GOTREF(__pyx_t_6);
3157       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
3158       __pyx_t_7 = Py_TYPE(__pyx_t_6)->tp_iternext;
3159       index = 0; __pyx_t_4 = __pyx_t_7(__pyx_t_6); if (unlikely(!__pyx_t_4)) goto __pyx_L6_unpacking_failed;
3160       __Pyx_GOTREF(__pyx_t_4);
3161       index = 1; __pyx_t_5 = __pyx_t_7(__pyx_t_6); if (unlikely(!__pyx_t_5)) goto __pyx_L6_unpacking_failed;
3162       __Pyx_GOTREF(__pyx_t_5);
3163       if (__Pyx_IternextUnpackEndCheck(__pyx_t_7(__pyx_t_6), 2) < 0) __PYX_ERR(0, 147, __pyx_L1_error)
3164       __pyx_t_7 = NULL;
3165       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
3166       goto __pyx_L7_unpacking_done;
3167       __pyx_L6_unpacking_failed:;
3168       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
3169       __pyx_t_7 = NULL;
3170       if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
3171       __PYX_ERR(0, 147, __pyx_L1_error)
3172       __pyx_L7_unpacking_done:;
3173     }
3174     __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_name);
3175     __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_name, __pyx_t_4);
3176     __Pyx_GIVEREF(__pyx_t_4);
3177     __pyx_t_4 = 0;
3178     __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_val);
3179     __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_val, __pyx_t_5);
3180     __Pyx_GIVEREF(__pyx_t_5);
3181     __pyx_t_5 = 0;
3182     __pyx_t_3 = PyNumber_Add(__pyx_cur_scope->__pyx_v_name, __pyx_kp_u_); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 147, __pyx_L1_error)
3183     __Pyx_GOTREF(__pyx_t_3);
3184     __pyx_t_5 = PyObject_Repr(__pyx_cur_scope->__pyx_v_val); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 147, __pyx_L1_error)
3185     __Pyx_GOTREF(__pyx_t_5);
3186     __pyx_t_4 = PyNumber_Add(__pyx_t_3, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 147, __pyx_L1_error)
3187     __Pyx_GOTREF(__pyx_t_4);
3188     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
3189     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
3190     if (unlikely(__Pyx_ListComp_Append(__pyx_r, (PyObject*)__pyx_t_4))) __PYX_ERR(0, 147, __pyx_L1_error)
3191     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
3192   }
3193   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
3194   CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);
3195 
3196   /* function exit code */
3197   goto __pyx_L0;
3198   __pyx_L1_error:;
3199   __Pyx_XDECREF(__pyx_r); __pyx_r = 0;
3200   __Pyx_XDECREF(__pyx_t_1);
3201   __Pyx_XDECREF(__pyx_t_3);
3202   __Pyx_XDECREF(__pyx_t_4);
3203   __Pyx_XDECREF(__pyx_t_5);
3204   __Pyx_XDECREF(__pyx_t_6);
3205   __Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
3206   __pyx_L0:;
3207   __Pyx_XGIVEREF(__pyx_r);
3208   #if !CYTHON_USE_EXC_INFO_STACK
3209   __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
3210   #endif
3211   __pyx_generator->resume_label = -1;
3212   __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
3213   __Pyx_RefNannyFinishContext();
3214   return __pyx_r;
3215 }
3216 
3217 /* "aiohttp/_http_parser.pyx":135
3218  *         self.url = url
3219  *
3220  *     def __repr__(self):             # <<<<<<<<<<<<<<
3221  *         info = []
3222  *         info.append(("method", self.method))
3223  */
3224 
__pyx_pf_7aiohttp_12_http_parser_17RawRequestMessage_2__repr__(struct __pyx_obj_7aiohttp_12_http_parser_RawRequestMessage * __pyx_v_self)3225 static PyObject *__pyx_pf_7aiohttp_12_http_parser_17RawRequestMessage_2__repr__(struct __pyx_obj_7aiohttp_12_http_parser_RawRequestMessage *__pyx_v_self) {
3226   struct __pyx_obj_7aiohttp_12_http_parser___pyx_scope_struct____repr__ *__pyx_cur_scope;
3227   PyObject *__pyx_v_sinfo = NULL;
3228   PyObject *__pyx_r = NULL;
3229   __Pyx_RefNannyDeclarations
3230   PyObject *__pyx_t_1 = NULL;
3231   int __pyx_t_2;
3232   PyObject *__pyx_t_3 = NULL;
3233   int __pyx_lineno = 0;
3234   const char *__pyx_filename = NULL;
3235   int __pyx_clineno = 0;
3236   __Pyx_RefNannySetupContext("__repr__", 0);
3237   __pyx_cur_scope = (struct __pyx_obj_7aiohttp_12_http_parser___pyx_scope_struct____repr__ *)__pyx_tp_new_7aiohttp_12_http_parser___pyx_scope_struct____repr__(__pyx_ptype_7aiohttp_12_http_parser___pyx_scope_struct____repr__, __pyx_empty_tuple, NULL);
3238   if (unlikely(!__pyx_cur_scope)) {
3239     __pyx_cur_scope = ((struct __pyx_obj_7aiohttp_12_http_parser___pyx_scope_struct____repr__ *)Py_None);
3240     __Pyx_INCREF(Py_None);
3241     __PYX_ERR(0, 135, __pyx_L1_error)
3242   } else {
3243     __Pyx_GOTREF(__pyx_cur_scope);
3244   }
3245 
3246   /* "aiohttp/_http_parser.pyx":136
3247  *
3248  *     def __repr__(self):
3249  *         info = []             # <<<<<<<<<<<<<<
3250  *         info.append(("method", self.method))
3251  *         info.append(("path", self.path))
3252  */
3253   __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 136, __pyx_L1_error)
3254   __Pyx_GOTREF(__pyx_t_1);
3255   __Pyx_GIVEREF(__pyx_t_1);
3256   __pyx_cur_scope->__pyx_v_info = ((PyObject*)__pyx_t_1);
3257   __pyx_t_1 = 0;
3258 
3259   /* "aiohttp/_http_parser.pyx":137
3260  *     def __repr__(self):
3261  *         info = []
3262  *         info.append(("method", self.method))             # <<<<<<<<<<<<<<
3263  *         info.append(("path", self.path))
3264  *         info.append(("version", self.version))
3265  */
3266   __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 137, __pyx_L1_error)
3267   __Pyx_GOTREF(__pyx_t_1);
3268   __Pyx_INCREF(__pyx_n_u_method);
3269   __Pyx_GIVEREF(__pyx_n_u_method);
3270   PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_n_u_method);
3271   __Pyx_INCREF(__pyx_v_self->method);
3272   __Pyx_GIVEREF(__pyx_v_self->method);
3273   PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_self->method);
3274   __pyx_t_2 = __Pyx_PyList_Append(__pyx_cur_scope->__pyx_v_info, __pyx_t_1); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 137, __pyx_L1_error)
3275   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
3276 
3277   /* "aiohttp/_http_parser.pyx":138
3278  *         info = []
3279  *         info.append(("method", self.method))
3280  *         info.append(("path", self.path))             # <<<<<<<<<<<<<<
3281  *         info.append(("version", self.version))
3282  *         info.append(("headers", self.headers))
3283  */
3284   __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 138, __pyx_L1_error)
3285   __Pyx_GOTREF(__pyx_t_1);
3286   __Pyx_INCREF(__pyx_n_u_path);
3287   __Pyx_GIVEREF(__pyx_n_u_path);
3288   PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_n_u_path);
3289   __Pyx_INCREF(__pyx_v_self->path);
3290   __Pyx_GIVEREF(__pyx_v_self->path);
3291   PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_self->path);
3292   __pyx_t_2 = __Pyx_PyList_Append(__pyx_cur_scope->__pyx_v_info, __pyx_t_1); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 138, __pyx_L1_error)
3293   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
3294 
3295   /* "aiohttp/_http_parser.pyx":139
3296  *         info.append(("method", self.method))
3297  *         info.append(("path", self.path))
3298  *         info.append(("version", self.version))             # <<<<<<<<<<<<<<
3299  *         info.append(("headers", self.headers))
3300  *         info.append(("raw_headers", self.raw_headers))
3301  */
3302   __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 139, __pyx_L1_error)
3303   __Pyx_GOTREF(__pyx_t_1);
3304   __Pyx_INCREF(__pyx_n_u_version);
3305   __Pyx_GIVEREF(__pyx_n_u_version);
3306   PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_n_u_version);
3307   __Pyx_INCREF(__pyx_v_self->version);
3308   __Pyx_GIVEREF(__pyx_v_self->version);
3309   PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_self->version);
3310   __pyx_t_2 = __Pyx_PyList_Append(__pyx_cur_scope->__pyx_v_info, __pyx_t_1); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 139, __pyx_L1_error)
3311   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
3312 
3313   /* "aiohttp/_http_parser.pyx":140
3314  *         info.append(("path", self.path))
3315  *         info.append(("version", self.version))
3316  *         info.append(("headers", self.headers))             # <<<<<<<<<<<<<<
3317  *         info.append(("raw_headers", self.raw_headers))
3318  *         info.append(("should_close", self.should_close))
3319  */
3320   __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 140, __pyx_L1_error)
3321   __Pyx_GOTREF(__pyx_t_1);
3322   __Pyx_INCREF(__pyx_n_u_headers);
3323   __Pyx_GIVEREF(__pyx_n_u_headers);
3324   PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_n_u_headers);
3325   __Pyx_INCREF(__pyx_v_self->headers);
3326   __Pyx_GIVEREF(__pyx_v_self->headers);
3327   PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_self->headers);
3328   __pyx_t_2 = __Pyx_PyList_Append(__pyx_cur_scope->__pyx_v_info, __pyx_t_1); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 140, __pyx_L1_error)
3329   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
3330 
3331   /* "aiohttp/_http_parser.pyx":141
3332  *         info.append(("version", self.version))
3333  *         info.append(("headers", self.headers))
3334  *         info.append(("raw_headers", self.raw_headers))             # <<<<<<<<<<<<<<
3335  *         info.append(("should_close", self.should_close))
3336  *         info.append(("compression", self.compression))
3337  */
3338   __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 141, __pyx_L1_error)
3339   __Pyx_GOTREF(__pyx_t_1);
3340   __Pyx_INCREF(__pyx_n_u_raw_headers);
3341   __Pyx_GIVEREF(__pyx_n_u_raw_headers);
3342   PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_n_u_raw_headers);
3343   __Pyx_INCREF(__pyx_v_self->raw_headers);
3344   __Pyx_GIVEREF(__pyx_v_self->raw_headers);
3345   PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_self->raw_headers);
3346   __pyx_t_2 = __Pyx_PyList_Append(__pyx_cur_scope->__pyx_v_info, __pyx_t_1); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 141, __pyx_L1_error)
3347   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
3348 
3349   /* "aiohttp/_http_parser.pyx":142
3350  *         info.append(("headers", self.headers))
3351  *         info.append(("raw_headers", self.raw_headers))
3352  *         info.append(("should_close", self.should_close))             # <<<<<<<<<<<<<<
3353  *         info.append(("compression", self.compression))
3354  *         info.append(("upgrade", self.upgrade))
3355  */
3356   __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 142, __pyx_L1_error)
3357   __Pyx_GOTREF(__pyx_t_1);
3358   __Pyx_INCREF(__pyx_n_u_should_close);
3359   __Pyx_GIVEREF(__pyx_n_u_should_close);
3360   PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_n_u_should_close);
3361   __Pyx_INCREF(__pyx_v_self->should_close);
3362   __Pyx_GIVEREF(__pyx_v_self->should_close);
3363   PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_self->should_close);
3364   __pyx_t_2 = __Pyx_PyList_Append(__pyx_cur_scope->__pyx_v_info, __pyx_t_1); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 142, __pyx_L1_error)
3365   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
3366 
3367   /* "aiohttp/_http_parser.pyx":143
3368  *         info.append(("raw_headers", self.raw_headers))
3369  *         info.append(("should_close", self.should_close))
3370  *         info.append(("compression", self.compression))             # <<<<<<<<<<<<<<
3371  *         info.append(("upgrade", self.upgrade))
3372  *         info.append(("chunked", self.chunked))
3373  */
3374   __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 143, __pyx_L1_error)
3375   __Pyx_GOTREF(__pyx_t_1);
3376   __Pyx_INCREF(__pyx_n_u_compression);
3377   __Pyx_GIVEREF(__pyx_n_u_compression);
3378   PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_n_u_compression);
3379   __Pyx_INCREF(__pyx_v_self->compression);
3380   __Pyx_GIVEREF(__pyx_v_self->compression);
3381   PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_self->compression);
3382   __pyx_t_2 = __Pyx_PyList_Append(__pyx_cur_scope->__pyx_v_info, __pyx_t_1); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 143, __pyx_L1_error)
3383   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
3384 
3385   /* "aiohttp/_http_parser.pyx":144
3386  *         info.append(("should_close", self.should_close))
3387  *         info.append(("compression", self.compression))
3388  *         info.append(("upgrade", self.upgrade))             # <<<<<<<<<<<<<<
3389  *         info.append(("chunked", self.chunked))
3390  *         info.append(("url", self.url))
3391  */
3392   __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 144, __pyx_L1_error)
3393   __Pyx_GOTREF(__pyx_t_1);
3394   __Pyx_INCREF(__pyx_n_u_upgrade);
3395   __Pyx_GIVEREF(__pyx_n_u_upgrade);
3396   PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_n_u_upgrade);
3397   __Pyx_INCREF(__pyx_v_self->upgrade);
3398   __Pyx_GIVEREF(__pyx_v_self->upgrade);
3399   PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_self->upgrade);
3400   __pyx_t_2 = __Pyx_PyList_Append(__pyx_cur_scope->__pyx_v_info, __pyx_t_1); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 144, __pyx_L1_error)
3401   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
3402 
3403   /* "aiohttp/_http_parser.pyx":145
3404  *         info.append(("compression", self.compression))
3405  *         info.append(("upgrade", self.upgrade))
3406  *         info.append(("chunked", self.chunked))             # <<<<<<<<<<<<<<
3407  *         info.append(("url", self.url))
3408  *         sinfo = ', '.join(name + '=' + repr(val) for name, val in info)
3409  */
3410   __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 145, __pyx_L1_error)
3411   __Pyx_GOTREF(__pyx_t_1);
3412   __Pyx_INCREF(__pyx_n_u_chunked);
3413   __Pyx_GIVEREF(__pyx_n_u_chunked);
3414   PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_n_u_chunked);
3415   __Pyx_INCREF(__pyx_v_self->chunked);
3416   __Pyx_GIVEREF(__pyx_v_self->chunked);
3417   PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_self->chunked);
3418   __pyx_t_2 = __Pyx_PyList_Append(__pyx_cur_scope->__pyx_v_info, __pyx_t_1); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 145, __pyx_L1_error)
3419   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
3420 
3421   /* "aiohttp/_http_parser.pyx":146
3422  *         info.append(("upgrade", self.upgrade))
3423  *         info.append(("chunked", self.chunked))
3424  *         info.append(("url", self.url))             # <<<<<<<<<<<<<<
3425  *         sinfo = ', '.join(name + '=' + repr(val) for name, val in info)
3426  *         return '<RawRequestMessage(' + sinfo + ')>'
3427  */
3428   __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 146, __pyx_L1_error)
3429   __Pyx_GOTREF(__pyx_t_1);
3430   __Pyx_INCREF(__pyx_n_u_url);
3431   __Pyx_GIVEREF(__pyx_n_u_url);
3432   PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_n_u_url);
3433   __Pyx_INCREF(__pyx_v_self->url);
3434   __Pyx_GIVEREF(__pyx_v_self->url);
3435   PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_self->url);
3436   __pyx_t_2 = __Pyx_PyList_Append(__pyx_cur_scope->__pyx_v_info, __pyx_t_1); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 146, __pyx_L1_error)
3437   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
3438 
3439   /* "aiohttp/_http_parser.pyx":147
3440  *         info.append(("chunked", self.chunked))
3441  *         info.append(("url", self.url))
3442  *         sinfo = ', '.join(name + '=' + repr(val) for name, val in info)             # <<<<<<<<<<<<<<
3443  *         return '<RawRequestMessage(' + sinfo + ')>'
3444  *
3445  */
3446   __pyx_t_1 = __pyx_pf_7aiohttp_12_http_parser_17RawRequestMessage_8__repr___genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 147, __pyx_L1_error)
3447   __Pyx_GOTREF(__pyx_t_1);
3448   __pyx_t_3 = __Pyx_Generator_Next(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 147, __pyx_L1_error)
3449   __Pyx_GOTREF(__pyx_t_3);
3450   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
3451   __pyx_t_1 = PyUnicode_Join(__pyx_kp_u__2, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 147, __pyx_L1_error)
3452   __Pyx_GOTREF(__pyx_t_1);
3453   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
3454   __pyx_v_sinfo = ((PyObject*)__pyx_t_1);
3455   __pyx_t_1 = 0;
3456 
3457   /* "aiohttp/_http_parser.pyx":148
3458  *         info.append(("url", self.url))
3459  *         sinfo = ', '.join(name + '=' + repr(val) for name, val in info)
3460  *         return '<RawRequestMessage(' + sinfo + ')>'             # <<<<<<<<<<<<<<
3461  *
3462  *     def _replace(self, **dct):
3463  */
3464   __Pyx_XDECREF(__pyx_r);
3465   __pyx_t_1 = __Pyx_PyUnicode_ConcatSafe(__pyx_kp_u_RawRequestMessage, __pyx_v_sinfo); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 148, __pyx_L1_error)
3466   __Pyx_GOTREF(__pyx_t_1);
3467   __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_t_1, __pyx_kp_u__3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 148, __pyx_L1_error)
3468   __Pyx_GOTREF(__pyx_t_3);
3469   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
3470   __pyx_r = __pyx_t_3;
3471   __pyx_t_3 = 0;
3472   goto __pyx_L0;
3473 
3474   /* "aiohttp/_http_parser.pyx":135
3475  *         self.url = url
3476  *
3477  *     def __repr__(self):             # <<<<<<<<<<<<<<
3478  *         info = []
3479  *         info.append(("method", self.method))
3480  */
3481 
3482   /* function exit code */
3483   __pyx_L1_error:;
3484   __Pyx_XDECREF(__pyx_t_1);
3485   __Pyx_XDECREF(__pyx_t_3);
3486   __Pyx_AddTraceback("aiohttp._http_parser.RawRequestMessage.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
3487   __pyx_r = NULL;
3488   __pyx_L0:;
3489   __Pyx_XDECREF(__pyx_v_sinfo);
3490   __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
3491   __Pyx_XGIVEREF(__pyx_r);
3492   __Pyx_RefNannyFinishContext();
3493   return __pyx_r;
3494 }
3495 
3496 /* "aiohttp/_http_parser.pyx":150
3497  *         return '<RawRequestMessage(' + sinfo + ')>'
3498  *
3499  *     def _replace(self, **dct):             # <<<<<<<<<<<<<<
3500  *         cdef RawRequestMessage ret
3501  *         ret = _new_request_message(self.method,
3502  */
3503 
3504 /* Python wrapper */
3505 static PyObject *__pyx_pw_7aiohttp_12_http_parser_17RawRequestMessage_5_replace(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
__pyx_pw_7aiohttp_12_http_parser_17RawRequestMessage_5_replace(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)3506 static PyObject *__pyx_pw_7aiohttp_12_http_parser_17RawRequestMessage_5_replace(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
3507   PyObject *__pyx_v_dct = 0;
3508   PyObject *__pyx_r = 0;
3509   __Pyx_RefNannyDeclarations
3510   __Pyx_RefNannySetupContext("_replace (wrapper)", 0);
3511   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
3512     __Pyx_RaiseArgtupleInvalid("_replace", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;}
3513   if (__pyx_kwds && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "_replace", 1))) return NULL;
3514   __pyx_v_dct = (__pyx_kwds) ? PyDict_Copy(__pyx_kwds) : PyDict_New(); if (unlikely(!__pyx_v_dct)) return NULL;
3515   __Pyx_GOTREF(__pyx_v_dct);
3516   __pyx_r = __pyx_pf_7aiohttp_12_http_parser_17RawRequestMessage_4_replace(((struct __pyx_obj_7aiohttp_12_http_parser_RawRequestMessage *)__pyx_v_self), __pyx_v_dct);
3517 
3518   /* function exit code */
3519   __Pyx_XDECREF(__pyx_v_dct);
3520   __Pyx_RefNannyFinishContext();
3521   return __pyx_r;
3522 }
3523 
__pyx_pf_7aiohttp_12_http_parser_17RawRequestMessage_4_replace(struct __pyx_obj_7aiohttp_12_http_parser_RawRequestMessage * __pyx_v_self,PyObject * __pyx_v_dct)3524 static PyObject *__pyx_pf_7aiohttp_12_http_parser_17RawRequestMessage_4_replace(struct __pyx_obj_7aiohttp_12_http_parser_RawRequestMessage *__pyx_v_self, PyObject *__pyx_v_dct) {
3525   struct __pyx_obj_7aiohttp_12_http_parser_RawRequestMessage *__pyx_v_ret = 0;
3526   PyObject *__pyx_r = NULL;
3527   __Pyx_RefNannyDeclarations
3528   PyObject *__pyx_t_1 = NULL;
3529   PyObject *__pyx_t_2 = NULL;
3530   PyObject *__pyx_t_3 = NULL;
3531   PyObject *__pyx_t_4 = NULL;
3532   PyObject *__pyx_t_5 = NULL;
3533   int __pyx_t_6;
3534   PyObject *__pyx_t_7 = NULL;
3535   int __pyx_t_8;
3536   int __pyx_t_9;
3537   PyObject *__pyx_t_10 = NULL;
3538   PyObject *__pyx_t_11 = NULL;
3539   int __pyx_lineno = 0;
3540   const char *__pyx_filename = NULL;
3541   int __pyx_clineno = 0;
3542   __Pyx_RefNannySetupContext("_replace", 0);
3543 
3544   /* "aiohttp/_http_parser.pyx":152
3545  *     def _replace(self, **dct):
3546  *         cdef RawRequestMessage ret
3547  *         ret = _new_request_message(self.method,             # <<<<<<<<<<<<<<
3548  *                                    self.path,
3549  *                                    self.version,
3550  */
3551   __pyx_t_1 = __pyx_v_self->method;
3552   __Pyx_INCREF(__pyx_t_1);
3553 
3554   /* "aiohttp/_http_parser.pyx":153
3555  *         cdef RawRequestMessage ret
3556  *         ret = _new_request_message(self.method,
3557  *                                    self.path,             # <<<<<<<<<<<<<<
3558  *                                    self.version,
3559  *                                    self.headers,
3560  */
3561   __pyx_t_2 = __pyx_v_self->path;
3562   __Pyx_INCREF(__pyx_t_2);
3563 
3564   /* "aiohttp/_http_parser.pyx":154
3565  *         ret = _new_request_message(self.method,
3566  *                                    self.path,
3567  *                                    self.version,             # <<<<<<<<<<<<<<
3568  *                                    self.headers,
3569  *                                    self.raw_headers,
3570  */
3571   __pyx_t_3 = __pyx_v_self->version;
3572   __Pyx_INCREF(__pyx_t_3);
3573 
3574   /* "aiohttp/_http_parser.pyx":155
3575  *                                    self.path,
3576  *                                    self.version,
3577  *                                    self.headers,             # <<<<<<<<<<<<<<
3578  *                                    self.raw_headers,
3579  *                                    self.should_close,
3580  */
3581   __pyx_t_4 = __pyx_v_self->headers;
3582   __Pyx_INCREF(__pyx_t_4);
3583 
3584   /* "aiohttp/_http_parser.pyx":156
3585  *                                    self.version,
3586  *                                    self.headers,
3587  *                                    self.raw_headers,             # <<<<<<<<<<<<<<
3588  *                                    self.should_close,
3589  *                                    self.compression,
3590  */
3591   __pyx_t_5 = __pyx_v_self->raw_headers;
3592   __Pyx_INCREF(__pyx_t_5);
3593 
3594   /* "aiohttp/_http_parser.pyx":157
3595  *                                    self.headers,
3596  *                                    self.raw_headers,
3597  *                                    self.should_close,             # <<<<<<<<<<<<<<
3598  *                                    self.compression,
3599  *                                    self.upgrade,
3600  */
3601   __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_self->should_close); if (unlikely((__pyx_t_6 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 157, __pyx_L1_error)
3602 
3603   /* "aiohttp/_http_parser.pyx":158
3604  *                                    self.raw_headers,
3605  *                                    self.should_close,
3606  *                                    self.compression,             # <<<<<<<<<<<<<<
3607  *                                    self.upgrade,
3608  *                                    self.chunked,
3609  */
3610   __pyx_t_7 = __pyx_v_self->compression;
3611   __Pyx_INCREF(__pyx_t_7);
3612 
3613   /* "aiohttp/_http_parser.pyx":159
3614  *                                    self.should_close,
3615  *                                    self.compression,
3616  *                                    self.upgrade,             # <<<<<<<<<<<<<<
3617  *                                    self.chunked,
3618  *                                    self.url)
3619  */
3620   __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_v_self->upgrade); if (unlikely((__pyx_t_8 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 159, __pyx_L1_error)
3621 
3622   /* "aiohttp/_http_parser.pyx":160
3623  *                                    self.compression,
3624  *                                    self.upgrade,
3625  *                                    self.chunked,             # <<<<<<<<<<<<<<
3626  *                                    self.url)
3627  *         if "method" in dct:
3628  */
3629   __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_v_self->chunked); if (unlikely((__pyx_t_9 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 160, __pyx_L1_error)
3630 
3631   /* "aiohttp/_http_parser.pyx":161
3632  *                                    self.upgrade,
3633  *                                    self.chunked,
3634  *                                    self.url)             # <<<<<<<<<<<<<<
3635  *         if "method" in dct:
3636  *             ret.method = dct["method"]
3637  */
3638   __pyx_t_10 = __pyx_v_self->url;
3639   __Pyx_INCREF(__pyx_t_10);
3640 
3641   /* "aiohttp/_http_parser.pyx":152
3642  *     def _replace(self, **dct):
3643  *         cdef RawRequestMessage ret
3644  *         ret = _new_request_message(self.method,             # <<<<<<<<<<<<<<
3645  *                                    self.path,
3646  *                                    self.version,
3647  */
3648   __pyx_t_11 = __pyx_f_7aiohttp_12_http_parser__new_request_message(((PyObject*)__pyx_t_1), ((PyObject*)__pyx_t_2), __pyx_t_3, __pyx_t_4, __pyx_t_5, __pyx_t_6, __pyx_t_7, __pyx_t_8, __pyx_t_9, __pyx_t_10); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 152, __pyx_L1_error)
3649   __Pyx_GOTREF(__pyx_t_11);
3650   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
3651   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
3652   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
3653   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
3654   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
3655   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
3656   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
3657   if (!(likely(((__pyx_t_11) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_11, __pyx_ptype_7aiohttp_12_http_parser_RawRequestMessage))))) __PYX_ERR(0, 152, __pyx_L1_error)
3658   __pyx_v_ret = ((struct __pyx_obj_7aiohttp_12_http_parser_RawRequestMessage *)__pyx_t_11);
3659   __pyx_t_11 = 0;
3660 
3661   /* "aiohttp/_http_parser.pyx":162
3662  *                                    self.chunked,
3663  *                                    self.url)
3664  *         if "method" in dct:             # <<<<<<<<<<<<<<
3665  *             ret.method = dct["method"]
3666  *         if "path" in dct:
3667  */
3668   __pyx_t_9 = (__Pyx_PyDict_ContainsTF(__pyx_n_u_method, __pyx_v_dct, Py_EQ)); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 162, __pyx_L1_error)
3669   __pyx_t_8 = (__pyx_t_9 != 0);
3670   if (__pyx_t_8) {
3671 
3672     /* "aiohttp/_http_parser.pyx":163
3673  *                                    self.url)
3674  *         if "method" in dct:
3675  *             ret.method = dct["method"]             # <<<<<<<<<<<<<<
3676  *         if "path" in dct:
3677  *             ret.path = dct["path"]
3678  */
3679     __pyx_t_11 = __Pyx_PyDict_GetItem(__pyx_v_dct, __pyx_n_u_method); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 163, __pyx_L1_error)
3680     __Pyx_GOTREF(__pyx_t_11);
3681     if (!(likely(PyUnicode_CheckExact(__pyx_t_11))||((__pyx_t_11) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_11)->tp_name), 0))) __PYX_ERR(0, 163, __pyx_L1_error)
3682     __Pyx_GIVEREF(__pyx_t_11);
3683     __Pyx_GOTREF(__pyx_v_ret->method);
3684     __Pyx_DECREF(__pyx_v_ret->method);
3685     __pyx_v_ret->method = ((PyObject*)__pyx_t_11);
3686     __pyx_t_11 = 0;
3687 
3688     /* "aiohttp/_http_parser.pyx":162
3689  *                                    self.chunked,
3690  *                                    self.url)
3691  *         if "method" in dct:             # <<<<<<<<<<<<<<
3692  *             ret.method = dct["method"]
3693  *         if "path" in dct:
3694  */
3695   }
3696 
3697   /* "aiohttp/_http_parser.pyx":164
3698  *         if "method" in dct:
3699  *             ret.method = dct["method"]
3700  *         if "path" in dct:             # <<<<<<<<<<<<<<
3701  *             ret.path = dct["path"]
3702  *         if "version" in dct:
3703  */
3704   __pyx_t_8 = (__Pyx_PyDict_ContainsTF(__pyx_n_u_path, __pyx_v_dct, Py_EQ)); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 164, __pyx_L1_error)
3705   __pyx_t_9 = (__pyx_t_8 != 0);
3706   if (__pyx_t_9) {
3707 
3708     /* "aiohttp/_http_parser.pyx":165
3709  *             ret.method = dct["method"]
3710  *         if "path" in dct:
3711  *             ret.path = dct["path"]             # <<<<<<<<<<<<<<
3712  *         if "version" in dct:
3713  *             ret.version = dct["version"]
3714  */
3715     __pyx_t_11 = __Pyx_PyDict_GetItem(__pyx_v_dct, __pyx_n_u_path); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 165, __pyx_L1_error)
3716     __Pyx_GOTREF(__pyx_t_11);
3717     if (!(likely(PyUnicode_CheckExact(__pyx_t_11))||((__pyx_t_11) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_11)->tp_name), 0))) __PYX_ERR(0, 165, __pyx_L1_error)
3718     __Pyx_GIVEREF(__pyx_t_11);
3719     __Pyx_GOTREF(__pyx_v_ret->path);
3720     __Pyx_DECREF(__pyx_v_ret->path);
3721     __pyx_v_ret->path = ((PyObject*)__pyx_t_11);
3722     __pyx_t_11 = 0;
3723 
3724     /* "aiohttp/_http_parser.pyx":164
3725  *         if "method" in dct:
3726  *             ret.method = dct["method"]
3727  *         if "path" in dct:             # <<<<<<<<<<<<<<
3728  *             ret.path = dct["path"]
3729  *         if "version" in dct:
3730  */
3731   }
3732 
3733   /* "aiohttp/_http_parser.pyx":166
3734  *         if "path" in dct:
3735  *             ret.path = dct["path"]
3736  *         if "version" in dct:             # <<<<<<<<<<<<<<
3737  *             ret.version = dct["version"]
3738  *         if "headers" in dct:
3739  */
3740   __pyx_t_9 = (__Pyx_PyDict_ContainsTF(__pyx_n_u_version, __pyx_v_dct, Py_EQ)); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 166, __pyx_L1_error)
3741   __pyx_t_8 = (__pyx_t_9 != 0);
3742   if (__pyx_t_8) {
3743 
3744     /* "aiohttp/_http_parser.pyx":167
3745  *             ret.path = dct["path"]
3746  *         if "version" in dct:
3747  *             ret.version = dct["version"]             # <<<<<<<<<<<<<<
3748  *         if "headers" in dct:
3749  *             ret.headers = dct["headers"]
3750  */
3751     __pyx_t_11 = __Pyx_PyDict_GetItem(__pyx_v_dct, __pyx_n_u_version); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 167, __pyx_L1_error)
3752     __Pyx_GOTREF(__pyx_t_11);
3753     __Pyx_GIVEREF(__pyx_t_11);
3754     __Pyx_GOTREF(__pyx_v_ret->version);
3755     __Pyx_DECREF(__pyx_v_ret->version);
3756     __pyx_v_ret->version = __pyx_t_11;
3757     __pyx_t_11 = 0;
3758 
3759     /* "aiohttp/_http_parser.pyx":166
3760  *         if "path" in dct:
3761  *             ret.path = dct["path"]
3762  *         if "version" in dct:             # <<<<<<<<<<<<<<
3763  *             ret.version = dct["version"]
3764  *         if "headers" in dct:
3765  */
3766   }
3767 
3768   /* "aiohttp/_http_parser.pyx":168
3769  *         if "version" in dct:
3770  *             ret.version = dct["version"]
3771  *         if "headers" in dct:             # <<<<<<<<<<<<<<
3772  *             ret.headers = dct["headers"]
3773  *         if "raw_headers" in dct:
3774  */
3775   __pyx_t_8 = (__Pyx_PyDict_ContainsTF(__pyx_n_u_headers, __pyx_v_dct, Py_EQ)); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 168, __pyx_L1_error)
3776   __pyx_t_9 = (__pyx_t_8 != 0);
3777   if (__pyx_t_9) {
3778 
3779     /* "aiohttp/_http_parser.pyx":169
3780  *             ret.version = dct["version"]
3781  *         if "headers" in dct:
3782  *             ret.headers = dct["headers"]             # <<<<<<<<<<<<<<
3783  *         if "raw_headers" in dct:
3784  *             ret.raw_headers = dct["raw_headers"]
3785  */
3786     __pyx_t_11 = __Pyx_PyDict_GetItem(__pyx_v_dct, __pyx_n_u_headers); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 169, __pyx_L1_error)
3787     __Pyx_GOTREF(__pyx_t_11);
3788     __Pyx_GIVEREF(__pyx_t_11);
3789     __Pyx_GOTREF(__pyx_v_ret->headers);
3790     __Pyx_DECREF(__pyx_v_ret->headers);
3791     __pyx_v_ret->headers = __pyx_t_11;
3792     __pyx_t_11 = 0;
3793 
3794     /* "aiohttp/_http_parser.pyx":168
3795  *         if "version" in dct:
3796  *             ret.version = dct["version"]
3797  *         if "headers" in dct:             # <<<<<<<<<<<<<<
3798  *             ret.headers = dct["headers"]
3799  *         if "raw_headers" in dct:
3800  */
3801   }
3802 
3803   /* "aiohttp/_http_parser.pyx":170
3804  *         if "headers" in dct:
3805  *             ret.headers = dct["headers"]
3806  *         if "raw_headers" in dct:             # <<<<<<<<<<<<<<
3807  *             ret.raw_headers = dct["raw_headers"]
3808  *         if "should_close" in dct:
3809  */
3810   __pyx_t_9 = (__Pyx_PyDict_ContainsTF(__pyx_n_u_raw_headers, __pyx_v_dct, Py_EQ)); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 170, __pyx_L1_error)
3811   __pyx_t_8 = (__pyx_t_9 != 0);
3812   if (__pyx_t_8) {
3813 
3814     /* "aiohttp/_http_parser.pyx":171
3815  *             ret.headers = dct["headers"]
3816  *         if "raw_headers" in dct:
3817  *             ret.raw_headers = dct["raw_headers"]             # <<<<<<<<<<<<<<
3818  *         if "should_close" in dct:
3819  *             ret.should_close = dct["should_close"]
3820  */
3821     __pyx_t_11 = __Pyx_PyDict_GetItem(__pyx_v_dct, __pyx_n_u_raw_headers); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 171, __pyx_L1_error)
3822     __Pyx_GOTREF(__pyx_t_11);
3823     __Pyx_GIVEREF(__pyx_t_11);
3824     __Pyx_GOTREF(__pyx_v_ret->raw_headers);
3825     __Pyx_DECREF(__pyx_v_ret->raw_headers);
3826     __pyx_v_ret->raw_headers = __pyx_t_11;
3827     __pyx_t_11 = 0;
3828 
3829     /* "aiohttp/_http_parser.pyx":170
3830  *         if "headers" in dct:
3831  *             ret.headers = dct["headers"]
3832  *         if "raw_headers" in dct:             # <<<<<<<<<<<<<<
3833  *             ret.raw_headers = dct["raw_headers"]
3834  *         if "should_close" in dct:
3835  */
3836   }
3837 
3838   /* "aiohttp/_http_parser.pyx":172
3839  *         if "raw_headers" in dct:
3840  *             ret.raw_headers = dct["raw_headers"]
3841  *         if "should_close" in dct:             # <<<<<<<<<<<<<<
3842  *             ret.should_close = dct["should_close"]
3843  *         if "compression" in dct:
3844  */
3845   __pyx_t_8 = (__Pyx_PyDict_ContainsTF(__pyx_n_u_should_close, __pyx_v_dct, Py_EQ)); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 172, __pyx_L1_error)
3846   __pyx_t_9 = (__pyx_t_8 != 0);
3847   if (__pyx_t_9) {
3848 
3849     /* "aiohttp/_http_parser.pyx":173
3850  *             ret.raw_headers = dct["raw_headers"]
3851  *         if "should_close" in dct:
3852  *             ret.should_close = dct["should_close"]             # <<<<<<<<<<<<<<
3853  *         if "compression" in dct:
3854  *             ret.compression = dct["compression"]
3855  */
3856     __pyx_t_11 = __Pyx_PyDict_GetItem(__pyx_v_dct, __pyx_n_u_should_close); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 173, __pyx_L1_error)
3857     __Pyx_GOTREF(__pyx_t_11);
3858     __Pyx_GIVEREF(__pyx_t_11);
3859     __Pyx_GOTREF(__pyx_v_ret->should_close);
3860     __Pyx_DECREF(__pyx_v_ret->should_close);
3861     __pyx_v_ret->should_close = __pyx_t_11;
3862     __pyx_t_11 = 0;
3863 
3864     /* "aiohttp/_http_parser.pyx":172
3865  *         if "raw_headers" in dct:
3866  *             ret.raw_headers = dct["raw_headers"]
3867  *         if "should_close" in dct:             # <<<<<<<<<<<<<<
3868  *             ret.should_close = dct["should_close"]
3869  *         if "compression" in dct:
3870  */
3871   }
3872 
3873   /* "aiohttp/_http_parser.pyx":174
3874  *         if "should_close" in dct:
3875  *             ret.should_close = dct["should_close"]
3876  *         if "compression" in dct:             # <<<<<<<<<<<<<<
3877  *             ret.compression = dct["compression"]
3878  *         if "upgrade" in dct:
3879  */
3880   __pyx_t_9 = (__Pyx_PyDict_ContainsTF(__pyx_n_u_compression, __pyx_v_dct, Py_EQ)); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 174, __pyx_L1_error)
3881   __pyx_t_8 = (__pyx_t_9 != 0);
3882   if (__pyx_t_8) {
3883 
3884     /* "aiohttp/_http_parser.pyx":175
3885  *             ret.should_close = dct["should_close"]
3886  *         if "compression" in dct:
3887  *             ret.compression = dct["compression"]             # <<<<<<<<<<<<<<
3888  *         if "upgrade" in dct:
3889  *             ret.upgrade = dct["upgrade"]
3890  */
3891     __pyx_t_11 = __Pyx_PyDict_GetItem(__pyx_v_dct, __pyx_n_u_compression); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 175, __pyx_L1_error)
3892     __Pyx_GOTREF(__pyx_t_11);
3893     __Pyx_GIVEREF(__pyx_t_11);
3894     __Pyx_GOTREF(__pyx_v_ret->compression);
3895     __Pyx_DECREF(__pyx_v_ret->compression);
3896     __pyx_v_ret->compression = __pyx_t_11;
3897     __pyx_t_11 = 0;
3898 
3899     /* "aiohttp/_http_parser.pyx":174
3900  *         if "should_close" in dct:
3901  *             ret.should_close = dct["should_close"]
3902  *         if "compression" in dct:             # <<<<<<<<<<<<<<
3903  *             ret.compression = dct["compression"]
3904  *         if "upgrade" in dct:
3905  */
3906   }
3907 
3908   /* "aiohttp/_http_parser.pyx":176
3909  *         if "compression" in dct:
3910  *             ret.compression = dct["compression"]
3911  *         if "upgrade" in dct:             # <<<<<<<<<<<<<<
3912  *             ret.upgrade = dct["upgrade"]
3913  *         if "chunked" in dct:
3914  */
3915   __pyx_t_8 = (__Pyx_PyDict_ContainsTF(__pyx_n_u_upgrade, __pyx_v_dct, Py_EQ)); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 176, __pyx_L1_error)
3916   __pyx_t_9 = (__pyx_t_8 != 0);
3917   if (__pyx_t_9) {
3918 
3919     /* "aiohttp/_http_parser.pyx":177
3920  *             ret.compression = dct["compression"]
3921  *         if "upgrade" in dct:
3922  *             ret.upgrade = dct["upgrade"]             # <<<<<<<<<<<<<<
3923  *         if "chunked" in dct:
3924  *             ret.chunked = dct["chunked"]
3925  */
3926     __pyx_t_11 = __Pyx_PyDict_GetItem(__pyx_v_dct, __pyx_n_u_upgrade); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 177, __pyx_L1_error)
3927     __Pyx_GOTREF(__pyx_t_11);
3928     __Pyx_GIVEREF(__pyx_t_11);
3929     __Pyx_GOTREF(__pyx_v_ret->upgrade);
3930     __Pyx_DECREF(__pyx_v_ret->upgrade);
3931     __pyx_v_ret->upgrade = __pyx_t_11;
3932     __pyx_t_11 = 0;
3933 
3934     /* "aiohttp/_http_parser.pyx":176
3935  *         if "compression" in dct:
3936  *             ret.compression = dct["compression"]
3937  *         if "upgrade" in dct:             # <<<<<<<<<<<<<<
3938  *             ret.upgrade = dct["upgrade"]
3939  *         if "chunked" in dct:
3940  */
3941   }
3942 
3943   /* "aiohttp/_http_parser.pyx":178
3944  *         if "upgrade" in dct:
3945  *             ret.upgrade = dct["upgrade"]
3946  *         if "chunked" in dct:             # <<<<<<<<<<<<<<
3947  *             ret.chunked = dct["chunked"]
3948  *         if "url" in dct:
3949  */
3950   __pyx_t_9 = (__Pyx_PyDict_ContainsTF(__pyx_n_u_chunked, __pyx_v_dct, Py_EQ)); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 178, __pyx_L1_error)
3951   __pyx_t_8 = (__pyx_t_9 != 0);
3952   if (__pyx_t_8) {
3953 
3954     /* "aiohttp/_http_parser.pyx":179
3955  *             ret.upgrade = dct["upgrade"]
3956  *         if "chunked" in dct:
3957  *             ret.chunked = dct["chunked"]             # <<<<<<<<<<<<<<
3958  *         if "url" in dct:
3959  *             ret.url = dct["url"]
3960  */
3961     __pyx_t_11 = __Pyx_PyDict_GetItem(__pyx_v_dct, __pyx_n_u_chunked); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 179, __pyx_L1_error)
3962     __Pyx_GOTREF(__pyx_t_11);
3963     __Pyx_GIVEREF(__pyx_t_11);
3964     __Pyx_GOTREF(__pyx_v_ret->chunked);
3965     __Pyx_DECREF(__pyx_v_ret->chunked);
3966     __pyx_v_ret->chunked = __pyx_t_11;
3967     __pyx_t_11 = 0;
3968 
3969     /* "aiohttp/_http_parser.pyx":178
3970  *         if "upgrade" in dct:
3971  *             ret.upgrade = dct["upgrade"]
3972  *         if "chunked" in dct:             # <<<<<<<<<<<<<<
3973  *             ret.chunked = dct["chunked"]
3974  *         if "url" in dct:
3975  */
3976   }
3977 
3978   /* "aiohttp/_http_parser.pyx":180
3979  *         if "chunked" in dct:
3980  *             ret.chunked = dct["chunked"]
3981  *         if "url" in dct:             # <<<<<<<<<<<<<<
3982  *             ret.url = dct["url"]
3983  *         return ret
3984  */
3985   __pyx_t_8 = (__Pyx_PyDict_ContainsTF(__pyx_n_u_url, __pyx_v_dct, Py_EQ)); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 180, __pyx_L1_error)
3986   __pyx_t_9 = (__pyx_t_8 != 0);
3987   if (__pyx_t_9) {
3988 
3989     /* "aiohttp/_http_parser.pyx":181
3990  *             ret.chunked = dct["chunked"]
3991  *         if "url" in dct:
3992  *             ret.url = dct["url"]             # <<<<<<<<<<<<<<
3993  *         return ret
3994  *
3995  */
3996     __pyx_t_11 = __Pyx_PyDict_GetItem(__pyx_v_dct, __pyx_n_u_url); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 181, __pyx_L1_error)
3997     __Pyx_GOTREF(__pyx_t_11);
3998     __Pyx_GIVEREF(__pyx_t_11);
3999     __Pyx_GOTREF(__pyx_v_ret->url);
4000     __Pyx_DECREF(__pyx_v_ret->url);
4001     __pyx_v_ret->url = __pyx_t_11;
4002     __pyx_t_11 = 0;
4003 
4004     /* "aiohttp/_http_parser.pyx":180
4005  *         if "chunked" in dct:
4006  *             ret.chunked = dct["chunked"]
4007  *         if "url" in dct:             # <<<<<<<<<<<<<<
4008  *             ret.url = dct["url"]
4009  *         return ret
4010  */
4011   }
4012 
4013   /* "aiohttp/_http_parser.pyx":182
4014  *         if "url" in dct:
4015  *             ret.url = dct["url"]
4016  *         return ret             # <<<<<<<<<<<<<<
4017  *
4018  * cdef _new_request_message(str method,
4019  */
4020   __Pyx_XDECREF(__pyx_r);
4021   __Pyx_INCREF(((PyObject *)__pyx_v_ret));
4022   __pyx_r = ((PyObject *)__pyx_v_ret);
4023   goto __pyx_L0;
4024 
4025   /* "aiohttp/_http_parser.pyx":150
4026  *         return '<RawRequestMessage(' + sinfo + ')>'
4027  *
4028  *     def _replace(self, **dct):             # <<<<<<<<<<<<<<
4029  *         cdef RawRequestMessage ret
4030  *         ret = _new_request_message(self.method,
4031  */
4032 
4033   /* function exit code */
4034   __pyx_L1_error:;
4035   __Pyx_XDECREF(__pyx_t_1);
4036   __Pyx_XDECREF(__pyx_t_2);
4037   __Pyx_XDECREF(__pyx_t_3);
4038   __Pyx_XDECREF(__pyx_t_4);
4039   __Pyx_XDECREF(__pyx_t_5);
4040   __Pyx_XDECREF(__pyx_t_7);
4041   __Pyx_XDECREF(__pyx_t_10);
4042   __Pyx_XDECREF(__pyx_t_11);
4043   __Pyx_AddTraceback("aiohttp._http_parser.RawRequestMessage._replace", __pyx_clineno, __pyx_lineno, __pyx_filename);
4044   __pyx_r = NULL;
4045   __pyx_L0:;
4046   __Pyx_XDECREF((PyObject *)__pyx_v_ret);
4047   __Pyx_XGIVEREF(__pyx_r);
4048   __Pyx_RefNannyFinishContext();
4049   return __pyx_r;
4050 }
4051 
4052 /* "aiohttp/_http_parser.pyx":111
4053  * @cython.freelist(DEFAULT_FREELIST_SIZE)
4054  * cdef class RawRequestMessage:
4055  *     cdef readonly str method             # <<<<<<<<<<<<<<
4056  *     cdef readonly str path
4057  *     cdef readonly object version  # HttpVersion
4058  */
4059 
4060 /* Python wrapper */
4061 static PyObject *__pyx_pw_7aiohttp_12_http_parser_17RawRequestMessage_6method_1__get__(PyObject *__pyx_v_self); /*proto*/
__pyx_pw_7aiohttp_12_http_parser_17RawRequestMessage_6method_1__get__(PyObject * __pyx_v_self)4062 static PyObject *__pyx_pw_7aiohttp_12_http_parser_17RawRequestMessage_6method_1__get__(PyObject *__pyx_v_self) {
4063   PyObject *__pyx_r = 0;
4064   __Pyx_RefNannyDeclarations
4065   __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
4066   __pyx_r = __pyx_pf_7aiohttp_12_http_parser_17RawRequestMessage_6method___get__(((struct __pyx_obj_7aiohttp_12_http_parser_RawRequestMessage *)__pyx_v_self));
4067 
4068   /* function exit code */
4069   __Pyx_RefNannyFinishContext();
4070   return __pyx_r;
4071 }
4072 
__pyx_pf_7aiohttp_12_http_parser_17RawRequestMessage_6method___get__(struct __pyx_obj_7aiohttp_12_http_parser_RawRequestMessage * __pyx_v_self)4073 static PyObject *__pyx_pf_7aiohttp_12_http_parser_17RawRequestMessage_6method___get__(struct __pyx_obj_7aiohttp_12_http_parser_RawRequestMessage *__pyx_v_self) {
4074   PyObject *__pyx_r = NULL;
4075   __Pyx_RefNannyDeclarations
4076   __Pyx_RefNannySetupContext("__get__", 0);
4077   __Pyx_XDECREF(__pyx_r);
4078   __Pyx_INCREF(__pyx_v_self->method);
4079   __pyx_r = __pyx_v_self->method;
4080   goto __pyx_L0;
4081 
4082   /* function exit code */
4083   __pyx_L0:;
4084   __Pyx_XGIVEREF(__pyx_r);
4085   __Pyx_RefNannyFinishContext();
4086   return __pyx_r;
4087 }
4088 
4089 /* "aiohttp/_http_parser.pyx":112
4090  * cdef class RawRequestMessage:
4091  *     cdef readonly str method
4092  *     cdef readonly str path             # <<<<<<<<<<<<<<
4093  *     cdef readonly object version  # HttpVersion
4094  *     cdef readonly object headers  # CIMultiDict
4095  */
4096 
4097 /* Python wrapper */
4098 static PyObject *__pyx_pw_7aiohttp_12_http_parser_17RawRequestMessage_4path_1__get__(PyObject *__pyx_v_self); /*proto*/
__pyx_pw_7aiohttp_12_http_parser_17RawRequestMessage_4path_1__get__(PyObject * __pyx_v_self)4099 static PyObject *__pyx_pw_7aiohttp_12_http_parser_17RawRequestMessage_4path_1__get__(PyObject *__pyx_v_self) {
4100   PyObject *__pyx_r = 0;
4101   __Pyx_RefNannyDeclarations
4102   __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
4103   __pyx_r = __pyx_pf_7aiohttp_12_http_parser_17RawRequestMessage_4path___get__(((struct __pyx_obj_7aiohttp_12_http_parser_RawRequestMessage *)__pyx_v_self));
4104 
4105   /* function exit code */
4106   __Pyx_RefNannyFinishContext();
4107   return __pyx_r;
4108 }
4109 
__pyx_pf_7aiohttp_12_http_parser_17RawRequestMessage_4path___get__(struct __pyx_obj_7aiohttp_12_http_parser_RawRequestMessage * __pyx_v_self)4110 static PyObject *__pyx_pf_7aiohttp_12_http_parser_17RawRequestMessage_4path___get__(struct __pyx_obj_7aiohttp_12_http_parser_RawRequestMessage *__pyx_v_self) {
4111   PyObject *__pyx_r = NULL;
4112   __Pyx_RefNannyDeclarations
4113   __Pyx_RefNannySetupContext("__get__", 0);
4114   __Pyx_XDECREF(__pyx_r);
4115   __Pyx_INCREF(__pyx_v_self->path);
4116   __pyx_r = __pyx_v_self->path;
4117   goto __pyx_L0;
4118 
4119   /* function exit code */
4120   __pyx_L0:;
4121   __Pyx_XGIVEREF(__pyx_r);
4122   __Pyx_RefNannyFinishContext();
4123   return __pyx_r;
4124 }
4125 
4126 /* "aiohttp/_http_parser.pyx":113
4127  *     cdef readonly str method
4128  *     cdef readonly str path
4129  *     cdef readonly object version  # HttpVersion             # <<<<<<<<<<<<<<
4130  *     cdef readonly object headers  # CIMultiDict
4131  *     cdef readonly object raw_headers  # tuple
4132  */
4133 
4134 /* Python wrapper */
4135 static PyObject *__pyx_pw_7aiohttp_12_http_parser_17RawRequestMessage_7version_1__get__(PyObject *__pyx_v_self); /*proto*/
__pyx_pw_7aiohttp_12_http_parser_17RawRequestMessage_7version_1__get__(PyObject * __pyx_v_self)4136 static PyObject *__pyx_pw_7aiohttp_12_http_parser_17RawRequestMessage_7version_1__get__(PyObject *__pyx_v_self) {
4137   PyObject *__pyx_r = 0;
4138   __Pyx_RefNannyDeclarations
4139   __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
4140   __pyx_r = __pyx_pf_7aiohttp_12_http_parser_17RawRequestMessage_7version___get__(((struct __pyx_obj_7aiohttp_12_http_parser_RawRequestMessage *)__pyx_v_self));
4141 
4142   /* function exit code */
4143   __Pyx_RefNannyFinishContext();
4144   return __pyx_r;
4145 }
4146 
__pyx_pf_7aiohttp_12_http_parser_17RawRequestMessage_7version___get__(struct __pyx_obj_7aiohttp_12_http_parser_RawRequestMessage * __pyx_v_self)4147 static PyObject *__pyx_pf_7aiohttp_12_http_parser_17RawRequestMessage_7version___get__(struct __pyx_obj_7aiohttp_12_http_parser_RawRequestMessage *__pyx_v_self) {
4148   PyObject *__pyx_r = NULL;
4149   __Pyx_RefNannyDeclarations
4150   __Pyx_RefNannySetupContext("__get__", 0);
4151   __Pyx_XDECREF(__pyx_r);
4152   __Pyx_INCREF(__pyx_v_self->version);
4153   __pyx_r = __pyx_v_self->version;
4154   goto __pyx_L0;
4155 
4156   /* function exit code */
4157   __pyx_L0:;
4158   __Pyx_XGIVEREF(__pyx_r);
4159   __Pyx_RefNannyFinishContext();
4160   return __pyx_r;
4161 }
4162 
4163 /* "aiohttp/_http_parser.pyx":114
4164  *     cdef readonly str path
4165  *     cdef readonly object version  # HttpVersion
4166  *     cdef readonly object headers  # CIMultiDict             # <<<<<<<<<<<<<<
4167  *     cdef readonly object raw_headers  # tuple
4168  *     cdef readonly object should_close
4169  */
4170 
4171 /* Python wrapper */
4172 static PyObject *__pyx_pw_7aiohttp_12_http_parser_17RawRequestMessage_7headers_1__get__(PyObject *__pyx_v_self); /*proto*/
__pyx_pw_7aiohttp_12_http_parser_17RawRequestMessage_7headers_1__get__(PyObject * __pyx_v_self)4173 static PyObject *__pyx_pw_7aiohttp_12_http_parser_17RawRequestMessage_7headers_1__get__(PyObject *__pyx_v_self) {
4174   PyObject *__pyx_r = 0;
4175   __Pyx_RefNannyDeclarations
4176   __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
4177   __pyx_r = __pyx_pf_7aiohttp_12_http_parser_17RawRequestMessage_7headers___get__(((struct __pyx_obj_7aiohttp_12_http_parser_RawRequestMessage *)__pyx_v_self));
4178 
4179   /* function exit code */
4180   __Pyx_RefNannyFinishContext();
4181   return __pyx_r;
4182 }
4183 
__pyx_pf_7aiohttp_12_http_parser_17RawRequestMessage_7headers___get__(struct __pyx_obj_7aiohttp_12_http_parser_RawRequestMessage * __pyx_v_self)4184 static PyObject *__pyx_pf_7aiohttp_12_http_parser_17RawRequestMessage_7headers___get__(struct __pyx_obj_7aiohttp_12_http_parser_RawRequestMessage *__pyx_v_self) {
4185   PyObject *__pyx_r = NULL;
4186   __Pyx_RefNannyDeclarations
4187   __Pyx_RefNannySetupContext("__get__", 0);
4188   __Pyx_XDECREF(__pyx_r);
4189   __Pyx_INCREF(__pyx_v_self->headers);
4190   __pyx_r = __pyx_v_self->headers;
4191   goto __pyx_L0;
4192 
4193   /* function exit code */
4194   __pyx_L0:;
4195   __Pyx_XGIVEREF(__pyx_r);
4196   __Pyx_RefNannyFinishContext();
4197   return __pyx_r;
4198 }
4199 
4200 /* "aiohttp/_http_parser.pyx":115
4201  *     cdef readonly object version  # HttpVersion
4202  *     cdef readonly object headers  # CIMultiDict
4203  *     cdef readonly object raw_headers  # tuple             # <<<<<<<<<<<<<<
4204  *     cdef readonly object should_close
4205  *     cdef readonly object compression
4206  */
4207 
4208 /* Python wrapper */
4209 static PyObject *__pyx_pw_7aiohttp_12_http_parser_17RawRequestMessage_11raw_headers_1__get__(PyObject *__pyx_v_self); /*proto*/
__pyx_pw_7aiohttp_12_http_parser_17RawRequestMessage_11raw_headers_1__get__(PyObject * __pyx_v_self)4210 static PyObject *__pyx_pw_7aiohttp_12_http_parser_17RawRequestMessage_11raw_headers_1__get__(PyObject *__pyx_v_self) {
4211   PyObject *__pyx_r = 0;
4212   __Pyx_RefNannyDeclarations
4213   __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
4214   __pyx_r = __pyx_pf_7aiohttp_12_http_parser_17RawRequestMessage_11raw_headers___get__(((struct __pyx_obj_7aiohttp_12_http_parser_RawRequestMessage *)__pyx_v_self));
4215 
4216   /* function exit code */
4217   __Pyx_RefNannyFinishContext();
4218   return __pyx_r;
4219 }
4220 
__pyx_pf_7aiohttp_12_http_parser_17RawRequestMessage_11raw_headers___get__(struct __pyx_obj_7aiohttp_12_http_parser_RawRequestMessage * __pyx_v_self)4221 static PyObject *__pyx_pf_7aiohttp_12_http_parser_17RawRequestMessage_11raw_headers___get__(struct __pyx_obj_7aiohttp_12_http_parser_RawRequestMessage *__pyx_v_self) {
4222   PyObject *__pyx_r = NULL;
4223   __Pyx_RefNannyDeclarations
4224   __Pyx_RefNannySetupContext("__get__", 0);
4225   __Pyx_XDECREF(__pyx_r);
4226   __Pyx_INCREF(__pyx_v_self->raw_headers);
4227   __pyx_r = __pyx_v_self->raw_headers;
4228   goto __pyx_L0;
4229 
4230   /* function exit code */
4231   __pyx_L0:;
4232   __Pyx_XGIVEREF(__pyx_r);
4233   __Pyx_RefNannyFinishContext();
4234   return __pyx_r;
4235 }
4236 
4237 /* "aiohttp/_http_parser.pyx":116
4238  *     cdef readonly object headers  # CIMultiDict
4239  *     cdef readonly object raw_headers  # tuple
4240  *     cdef readonly object should_close             # <<<<<<<<<<<<<<
4241  *     cdef readonly object compression
4242  *     cdef readonly object upgrade
4243  */
4244 
4245 /* Python wrapper */
4246 static PyObject *__pyx_pw_7aiohttp_12_http_parser_17RawRequestMessage_12should_close_1__get__(PyObject *__pyx_v_self); /*proto*/
__pyx_pw_7aiohttp_12_http_parser_17RawRequestMessage_12should_close_1__get__(PyObject * __pyx_v_self)4247 static PyObject *__pyx_pw_7aiohttp_12_http_parser_17RawRequestMessage_12should_close_1__get__(PyObject *__pyx_v_self) {
4248   PyObject *__pyx_r = 0;
4249   __Pyx_RefNannyDeclarations
4250   __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
4251   __pyx_r = __pyx_pf_7aiohttp_12_http_parser_17RawRequestMessage_12should_close___get__(((struct __pyx_obj_7aiohttp_12_http_parser_RawRequestMessage *)__pyx_v_self));
4252 
4253   /* function exit code */
4254   __Pyx_RefNannyFinishContext();
4255   return __pyx_r;
4256 }
4257 
__pyx_pf_7aiohttp_12_http_parser_17RawRequestMessage_12should_close___get__(struct __pyx_obj_7aiohttp_12_http_parser_RawRequestMessage * __pyx_v_self)4258 static PyObject *__pyx_pf_7aiohttp_12_http_parser_17RawRequestMessage_12should_close___get__(struct __pyx_obj_7aiohttp_12_http_parser_RawRequestMessage *__pyx_v_self) {
4259   PyObject *__pyx_r = NULL;
4260   __Pyx_RefNannyDeclarations
4261   __Pyx_RefNannySetupContext("__get__", 0);
4262   __Pyx_XDECREF(__pyx_r);
4263   __Pyx_INCREF(__pyx_v_self->should_close);
4264   __pyx_r = __pyx_v_self->should_close;
4265   goto __pyx_L0;
4266 
4267   /* function exit code */
4268   __pyx_L0:;
4269   __Pyx_XGIVEREF(__pyx_r);
4270   __Pyx_RefNannyFinishContext();
4271   return __pyx_r;
4272 }
4273 
4274 /* "aiohttp/_http_parser.pyx":117
4275  *     cdef readonly object raw_headers  # tuple
4276  *     cdef readonly object should_close
4277  *     cdef readonly object compression             # <<<<<<<<<<<<<<
4278  *     cdef readonly object upgrade
4279  *     cdef readonly object chunked
4280  */
4281 
4282 /* Python wrapper */
4283 static PyObject *__pyx_pw_7aiohttp_12_http_parser_17RawRequestMessage_11compression_1__get__(PyObject *__pyx_v_self); /*proto*/
__pyx_pw_7aiohttp_12_http_parser_17RawRequestMessage_11compression_1__get__(PyObject * __pyx_v_self)4284 static PyObject *__pyx_pw_7aiohttp_12_http_parser_17RawRequestMessage_11compression_1__get__(PyObject *__pyx_v_self) {
4285   PyObject *__pyx_r = 0;
4286   __Pyx_RefNannyDeclarations
4287   __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
4288   __pyx_r = __pyx_pf_7aiohttp_12_http_parser_17RawRequestMessage_11compression___get__(((struct __pyx_obj_7aiohttp_12_http_parser_RawRequestMessage *)__pyx_v_self));
4289 
4290   /* function exit code */
4291   __Pyx_RefNannyFinishContext();
4292   return __pyx_r;
4293 }
4294 
__pyx_pf_7aiohttp_12_http_parser_17RawRequestMessage_11compression___get__(struct __pyx_obj_7aiohttp_12_http_parser_RawRequestMessage * __pyx_v_self)4295 static PyObject *__pyx_pf_7aiohttp_12_http_parser_17RawRequestMessage_11compression___get__(struct __pyx_obj_7aiohttp_12_http_parser_RawRequestMessage *__pyx_v_self) {
4296   PyObject *__pyx_r = NULL;
4297   __Pyx_RefNannyDeclarations
4298   __Pyx_RefNannySetupContext("__get__", 0);
4299   __Pyx_XDECREF(__pyx_r);
4300   __Pyx_INCREF(__pyx_v_self->compression);
4301   __pyx_r = __pyx_v_self->compression;
4302   goto __pyx_L0;
4303 
4304   /* function exit code */
4305   __pyx_L0:;
4306   __Pyx_XGIVEREF(__pyx_r);
4307   __Pyx_RefNannyFinishContext();
4308   return __pyx_r;
4309 }
4310 
4311 /* "aiohttp/_http_parser.pyx":118
4312  *     cdef readonly object should_close
4313  *     cdef readonly object compression
4314  *     cdef readonly object upgrade             # <<<<<<<<<<<<<<
4315  *     cdef readonly object chunked
4316  *     cdef readonly object url  # yarl.URL
4317  */
4318 
4319 /* Python wrapper */
4320 static PyObject *__pyx_pw_7aiohttp_12_http_parser_17RawRequestMessage_7upgrade_1__get__(PyObject *__pyx_v_self); /*proto*/
__pyx_pw_7aiohttp_12_http_parser_17RawRequestMessage_7upgrade_1__get__(PyObject * __pyx_v_self)4321 static PyObject *__pyx_pw_7aiohttp_12_http_parser_17RawRequestMessage_7upgrade_1__get__(PyObject *__pyx_v_self) {
4322   PyObject *__pyx_r = 0;
4323   __Pyx_RefNannyDeclarations
4324   __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
4325   __pyx_r = __pyx_pf_7aiohttp_12_http_parser_17RawRequestMessage_7upgrade___get__(((struct __pyx_obj_7aiohttp_12_http_parser_RawRequestMessage *)__pyx_v_self));
4326 
4327   /* function exit code */
4328   __Pyx_RefNannyFinishContext();
4329   return __pyx_r;
4330 }
4331 
__pyx_pf_7aiohttp_12_http_parser_17RawRequestMessage_7upgrade___get__(struct __pyx_obj_7aiohttp_12_http_parser_RawRequestMessage * __pyx_v_self)4332 static PyObject *__pyx_pf_7aiohttp_12_http_parser_17RawRequestMessage_7upgrade___get__(struct __pyx_obj_7aiohttp_12_http_parser_RawRequestMessage *__pyx_v_self) {
4333   PyObject *__pyx_r = NULL;
4334   __Pyx_RefNannyDeclarations
4335   __Pyx_RefNannySetupContext("__get__", 0);
4336   __Pyx_XDECREF(__pyx_r);
4337   __Pyx_INCREF(__pyx_v_self->upgrade);
4338   __pyx_r = __pyx_v_self->upgrade;
4339   goto __pyx_L0;
4340 
4341   /* function exit code */
4342   __pyx_L0:;
4343   __Pyx_XGIVEREF(__pyx_r);
4344   __Pyx_RefNannyFinishContext();
4345   return __pyx_r;
4346 }
4347 
4348 /* "aiohttp/_http_parser.pyx":119
4349  *     cdef readonly object compression
4350  *     cdef readonly object upgrade
4351  *     cdef readonly object chunked             # <<<<<<<<<<<<<<
4352  *     cdef readonly object url  # yarl.URL
4353  *
4354  */
4355 
4356 /* Python wrapper */
4357 static PyObject *__pyx_pw_7aiohttp_12_http_parser_17RawRequestMessage_7chunked_1__get__(PyObject *__pyx_v_self); /*proto*/
__pyx_pw_7aiohttp_12_http_parser_17RawRequestMessage_7chunked_1__get__(PyObject * __pyx_v_self)4358 static PyObject *__pyx_pw_7aiohttp_12_http_parser_17RawRequestMessage_7chunked_1__get__(PyObject *__pyx_v_self) {
4359   PyObject *__pyx_r = 0;
4360   __Pyx_RefNannyDeclarations
4361   __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
4362   __pyx_r = __pyx_pf_7aiohttp_12_http_parser_17RawRequestMessage_7chunked___get__(((struct __pyx_obj_7aiohttp_12_http_parser_RawRequestMessage *)__pyx_v_self));
4363 
4364   /* function exit code */
4365   __Pyx_RefNannyFinishContext();
4366   return __pyx_r;
4367 }
4368 
__pyx_pf_7aiohttp_12_http_parser_17RawRequestMessage_7chunked___get__(struct __pyx_obj_7aiohttp_12_http_parser_RawRequestMessage * __pyx_v_self)4369 static PyObject *__pyx_pf_7aiohttp_12_http_parser_17RawRequestMessage_7chunked___get__(struct __pyx_obj_7aiohttp_12_http_parser_RawRequestMessage *__pyx_v_self) {
4370   PyObject *__pyx_r = NULL;
4371   __Pyx_RefNannyDeclarations
4372   __Pyx_RefNannySetupContext("__get__", 0);
4373   __Pyx_XDECREF(__pyx_r);
4374   __Pyx_INCREF(__pyx_v_self->chunked);
4375   __pyx_r = __pyx_v_self->chunked;
4376   goto __pyx_L0;
4377 
4378   /* function exit code */
4379   __pyx_L0:;
4380   __Pyx_XGIVEREF(__pyx_r);
4381   __Pyx_RefNannyFinishContext();
4382   return __pyx_r;
4383 }
4384 
4385 /* "aiohttp/_http_parser.pyx":120
4386  *     cdef readonly object upgrade
4387  *     cdef readonly object chunked
4388  *     cdef readonly object url  # yarl.URL             # <<<<<<<<<<<<<<
4389  *
4390  *     def __init__(self, method, path, version, headers, raw_headers,
4391  */
4392 
4393 /* Python wrapper */
4394 static PyObject *__pyx_pw_7aiohttp_12_http_parser_17RawRequestMessage_3url_1__get__(PyObject *__pyx_v_self); /*proto*/
__pyx_pw_7aiohttp_12_http_parser_17RawRequestMessage_3url_1__get__(PyObject * __pyx_v_self)4395 static PyObject *__pyx_pw_7aiohttp_12_http_parser_17RawRequestMessage_3url_1__get__(PyObject *__pyx_v_self) {
4396   PyObject *__pyx_r = 0;
4397   __Pyx_RefNannyDeclarations
4398   __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
4399   __pyx_r = __pyx_pf_7aiohttp_12_http_parser_17RawRequestMessage_3url___get__(((struct __pyx_obj_7aiohttp_12_http_parser_RawRequestMessage *)__pyx_v_self));
4400 
4401   /* function exit code */
4402   __Pyx_RefNannyFinishContext();
4403   return __pyx_r;
4404 }
4405 
__pyx_pf_7aiohttp_12_http_parser_17RawRequestMessage_3url___get__(struct __pyx_obj_7aiohttp_12_http_parser_RawRequestMessage * __pyx_v_self)4406 static PyObject *__pyx_pf_7aiohttp_12_http_parser_17RawRequestMessage_3url___get__(struct __pyx_obj_7aiohttp_12_http_parser_RawRequestMessage *__pyx_v_self) {
4407   PyObject *__pyx_r = NULL;
4408   __Pyx_RefNannyDeclarations
4409   __Pyx_RefNannySetupContext("__get__", 0);
4410   __Pyx_XDECREF(__pyx_r);
4411   __Pyx_INCREF(__pyx_v_self->url);
4412   __pyx_r = __pyx_v_self->url;
4413   goto __pyx_L0;
4414 
4415   /* function exit code */
4416   __pyx_L0:;
4417   __Pyx_XGIVEREF(__pyx_r);
4418   __Pyx_RefNannyFinishContext();
4419   return __pyx_r;
4420 }
4421 
4422 /* "(tree fragment)":1
4423  * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
4424  *     cdef tuple state
4425  *     cdef object _dict
4426  */
4427 
4428 /* Python wrapper */
4429 static PyObject *__pyx_pw_7aiohttp_12_http_parser_17RawRequestMessage_7__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
__pyx_pw_7aiohttp_12_http_parser_17RawRequestMessage_7__reduce_cython__(PyObject * __pyx_v_self,CYTHON_UNUSED PyObject * unused)4430 static PyObject *__pyx_pw_7aiohttp_12_http_parser_17RawRequestMessage_7__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
4431   PyObject *__pyx_r = 0;
4432   __Pyx_RefNannyDeclarations
4433   __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
4434   __pyx_r = __pyx_pf_7aiohttp_12_http_parser_17RawRequestMessage_6__reduce_cython__(((struct __pyx_obj_7aiohttp_12_http_parser_RawRequestMessage *)__pyx_v_self));
4435 
4436   /* function exit code */
4437   __Pyx_RefNannyFinishContext();
4438   return __pyx_r;
4439 }
4440 
__pyx_pf_7aiohttp_12_http_parser_17RawRequestMessage_6__reduce_cython__(struct __pyx_obj_7aiohttp_12_http_parser_RawRequestMessage * __pyx_v_self)4441 static PyObject *__pyx_pf_7aiohttp_12_http_parser_17RawRequestMessage_6__reduce_cython__(struct __pyx_obj_7aiohttp_12_http_parser_RawRequestMessage *__pyx_v_self) {
4442   PyObject *__pyx_v_state = 0;
4443   PyObject *__pyx_v__dict = 0;
4444   int __pyx_v_use_setstate;
4445   PyObject *__pyx_r = NULL;
4446   __Pyx_RefNannyDeclarations
4447   PyObject *__pyx_t_1 = NULL;
4448   int __pyx_t_2;
4449   int __pyx_t_3;
4450   PyObject *__pyx_t_4 = NULL;
4451   int __pyx_t_5;
4452   PyObject *__pyx_t_6 = NULL;
4453   int __pyx_lineno = 0;
4454   const char *__pyx_filename = NULL;
4455   int __pyx_clineno = 0;
4456   __Pyx_RefNannySetupContext("__reduce_cython__", 0);
4457 
4458   /* "(tree fragment)":5
4459  *     cdef object _dict
4460  *     cdef bint use_setstate
4461  *     state = (self.chunked, self.compression, self.headers, self.method, self.path, self.raw_headers, self.should_close, self.upgrade, self.url, self.version)             # <<<<<<<<<<<<<<
4462  *     _dict = getattr(self, '__dict__', None)
4463  *     if _dict is not None:
4464  */
4465   __pyx_t_1 = PyTuple_New(10); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
4466   __Pyx_GOTREF(__pyx_t_1);
4467   __Pyx_INCREF(__pyx_v_self->chunked);
4468   __Pyx_GIVEREF(__pyx_v_self->chunked);
4469   PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_self->chunked);
4470   __Pyx_INCREF(__pyx_v_self->compression);
4471   __Pyx_GIVEREF(__pyx_v_self->compression);
4472   PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_self->compression);
4473   __Pyx_INCREF(__pyx_v_self->headers);
4474   __Pyx_GIVEREF(__pyx_v_self->headers);
4475   PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_self->headers);
4476   __Pyx_INCREF(__pyx_v_self->method);
4477   __Pyx_GIVEREF(__pyx_v_self->method);
4478   PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_self->method);
4479   __Pyx_INCREF(__pyx_v_self->path);
4480   __Pyx_GIVEREF(__pyx_v_self->path);
4481   PyTuple_SET_ITEM(__pyx_t_1, 4, __pyx_v_self->path);
4482   __Pyx_INCREF(__pyx_v_self->raw_headers);
4483   __Pyx_GIVEREF(__pyx_v_self->raw_headers);
4484   PyTuple_SET_ITEM(__pyx_t_1, 5, __pyx_v_self->raw_headers);
4485   __Pyx_INCREF(__pyx_v_self->should_close);
4486   __Pyx_GIVEREF(__pyx_v_self->should_close);
4487   PyTuple_SET_ITEM(__pyx_t_1, 6, __pyx_v_self->should_close);
4488   __Pyx_INCREF(__pyx_v_self->upgrade);
4489   __Pyx_GIVEREF(__pyx_v_self->upgrade);
4490   PyTuple_SET_ITEM(__pyx_t_1, 7, __pyx_v_self->upgrade);
4491   __Pyx_INCREF(__pyx_v_self->url);
4492   __Pyx_GIVEREF(__pyx_v_self->url);
4493   PyTuple_SET_ITEM(__pyx_t_1, 8, __pyx_v_self->url);
4494   __Pyx_INCREF(__pyx_v_self->version);
4495   __Pyx_GIVEREF(__pyx_v_self->version);
4496   PyTuple_SET_ITEM(__pyx_t_1, 9, __pyx_v_self->version);
4497   __pyx_v_state = ((PyObject*)__pyx_t_1);
4498   __pyx_t_1 = 0;
4499 
4500   /* "(tree fragment)":6
4501  *     cdef bint use_setstate
4502  *     state = (self.chunked, self.compression, self.headers, self.method, self.path, self.raw_headers, self.should_close, self.upgrade, self.url, self.version)
4503  *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
4504  *     if _dict is not None:
4505  *         state += (_dict,)
4506  */
4507   __pyx_t_1 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 6, __pyx_L1_error)
4508   __Pyx_GOTREF(__pyx_t_1);
4509   __pyx_v__dict = __pyx_t_1;
4510   __pyx_t_1 = 0;
4511 
4512   /* "(tree fragment)":7
4513  *     state = (self.chunked, self.compression, self.headers, self.method, self.path, self.raw_headers, self.should_close, self.upgrade, self.url, self.version)
4514  *     _dict = getattr(self, '__dict__', None)
4515  *     if _dict is not None:             # <<<<<<<<<<<<<<
4516  *         state += (_dict,)
4517  *         use_setstate = True
4518  */
4519   __pyx_t_2 = (__pyx_v__dict != Py_None);
4520   __pyx_t_3 = (__pyx_t_2 != 0);
4521   if (__pyx_t_3) {
4522 
4523     /* "(tree fragment)":8
4524  *     _dict = getattr(self, '__dict__', None)
4525  *     if _dict is not None:
4526  *         state += (_dict,)             # <<<<<<<<<<<<<<
4527  *         use_setstate = True
4528  *     else:
4529  */
4530     __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 8, __pyx_L1_error)
4531     __Pyx_GOTREF(__pyx_t_1);
4532     __Pyx_INCREF(__pyx_v__dict);
4533     __Pyx_GIVEREF(__pyx_v__dict);
4534     PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v__dict);
4535     __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 8, __pyx_L1_error)
4536     __Pyx_GOTREF(__pyx_t_4);
4537     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
4538     __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_4));
4539     __pyx_t_4 = 0;
4540 
4541     /* "(tree fragment)":9
4542  *     if _dict is not None:
4543  *         state += (_dict,)
4544  *         use_setstate = True             # <<<<<<<<<<<<<<
4545  *     else:
4546  *         use_setstate = self.chunked is not None or self.compression is not None or self.headers is not None or self.method is not None or self.path is not None or self.raw_headers is not None or self.should_close is not None or self.upgrade is not None or self.url is not None or self.version is not None
4547  */
4548     __pyx_v_use_setstate = 1;
4549 
4550     /* "(tree fragment)":7
4551  *     state = (self.chunked, self.compression, self.headers, self.method, self.path, self.raw_headers, self.should_close, self.upgrade, self.url, self.version)
4552  *     _dict = getattr(self, '__dict__', None)
4553  *     if _dict is not None:             # <<<<<<<<<<<<<<
4554  *         state += (_dict,)
4555  *         use_setstate = True
4556  */
4557     goto __pyx_L3;
4558   }
4559 
4560   /* "(tree fragment)":11
4561  *         use_setstate = True
4562  *     else:
4563  *         use_setstate = self.chunked is not None or self.compression is not None or self.headers is not None or self.method is not None or self.path is not None or self.raw_headers is not None or self.should_close is not None or self.upgrade is not None or self.url is not None or self.version is not None             # <<<<<<<<<<<<<<
4564  *     if use_setstate:
4565  *         return __pyx_unpickle_RawRequestMessage, (type(self), 0x1408252, None), state
4566  */
4567   /*else*/ {
4568     __pyx_t_2 = (__pyx_v_self->chunked != Py_None);
4569     __pyx_t_5 = (__pyx_t_2 != 0);
4570     if (!__pyx_t_5) {
4571     } else {
4572       __pyx_t_3 = __pyx_t_5;
4573       goto __pyx_L4_bool_binop_done;
4574     }
4575     __pyx_t_5 = (__pyx_v_self->compression != Py_None);
4576     __pyx_t_2 = (__pyx_t_5 != 0);
4577     if (!__pyx_t_2) {
4578     } else {
4579       __pyx_t_3 = __pyx_t_2;
4580       goto __pyx_L4_bool_binop_done;
4581     }
4582     __pyx_t_2 = (__pyx_v_self->headers != Py_None);
4583     __pyx_t_5 = (__pyx_t_2 != 0);
4584     if (!__pyx_t_5) {
4585     } else {
4586       __pyx_t_3 = __pyx_t_5;
4587       goto __pyx_L4_bool_binop_done;
4588     }
4589     __pyx_t_5 = (__pyx_v_self->method != ((PyObject*)Py_None));
4590     __pyx_t_2 = (__pyx_t_5 != 0);
4591     if (!__pyx_t_2) {
4592     } else {
4593       __pyx_t_3 = __pyx_t_2;
4594       goto __pyx_L4_bool_binop_done;
4595     }
4596     __pyx_t_2 = (__pyx_v_self->path != ((PyObject*)Py_None));
4597     __pyx_t_5 = (__pyx_t_2 != 0);
4598     if (!__pyx_t_5) {
4599     } else {
4600       __pyx_t_3 = __pyx_t_5;
4601       goto __pyx_L4_bool_binop_done;
4602     }
4603     __pyx_t_5 = (__pyx_v_self->raw_headers != Py_None);
4604     __pyx_t_2 = (__pyx_t_5 != 0);
4605     if (!__pyx_t_2) {
4606     } else {
4607       __pyx_t_3 = __pyx_t_2;
4608       goto __pyx_L4_bool_binop_done;
4609     }
4610     __pyx_t_2 = (__pyx_v_self->should_close != Py_None);
4611     __pyx_t_5 = (__pyx_t_2 != 0);
4612     if (!__pyx_t_5) {
4613     } else {
4614       __pyx_t_3 = __pyx_t_5;
4615       goto __pyx_L4_bool_binop_done;
4616     }
4617     __pyx_t_5 = (__pyx_v_self->upgrade != Py_None);
4618     __pyx_t_2 = (__pyx_t_5 != 0);
4619     if (!__pyx_t_2) {
4620     } else {
4621       __pyx_t_3 = __pyx_t_2;
4622       goto __pyx_L4_bool_binop_done;
4623     }
4624     __pyx_t_2 = (__pyx_v_self->url != Py_None);
4625     __pyx_t_5 = (__pyx_t_2 != 0);
4626     if (!__pyx_t_5) {
4627     } else {
4628       __pyx_t_3 = __pyx_t_5;
4629       goto __pyx_L4_bool_binop_done;
4630     }
4631     __pyx_t_5 = (__pyx_v_self->version != Py_None);
4632     __pyx_t_2 = (__pyx_t_5 != 0);
4633     __pyx_t_3 = __pyx_t_2;
4634     __pyx_L4_bool_binop_done:;
4635     __pyx_v_use_setstate = __pyx_t_3;
4636   }
4637   __pyx_L3:;
4638 
4639   /* "(tree fragment)":12
4640  *     else:
4641  *         use_setstate = self.chunked is not None or self.compression is not None or self.headers is not None or self.method is not None or self.path is not None or self.raw_headers is not None or self.should_close is not None or self.upgrade is not None or self.url is not None or self.version is not None
4642  *     if use_setstate:             # <<<<<<<<<<<<<<
4643  *         return __pyx_unpickle_RawRequestMessage, (type(self), 0x1408252, None), state
4644  *     else:
4645  */
4646   __pyx_t_3 = (__pyx_v_use_setstate != 0);
4647   if (__pyx_t_3) {
4648 
4649     /* "(tree fragment)":13
4650  *         use_setstate = self.chunked is not None or self.compression is not None or self.headers is not None or self.method is not None or self.path is not None or self.raw_headers is not None or self.should_close is not None or self.upgrade is not None or self.url is not None or self.version is not None
4651  *     if use_setstate:
4652  *         return __pyx_unpickle_RawRequestMessage, (type(self), 0x1408252, None), state             # <<<<<<<<<<<<<<
4653  *     else:
4654  *         return __pyx_unpickle_RawRequestMessage, (type(self), 0x1408252, state)
4655  */
4656     __Pyx_XDECREF(__pyx_r);
4657     __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_pyx_unpickle_RawRequestMessage); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 13, __pyx_L1_error)
4658     __Pyx_GOTREF(__pyx_t_4);
4659     __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 13, __pyx_L1_error)
4660     __Pyx_GOTREF(__pyx_t_1);
4661     __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
4662     __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
4663     PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
4664     __Pyx_INCREF(__pyx_int_21004882);
4665     __Pyx_GIVEREF(__pyx_int_21004882);
4666     PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_21004882);
4667     __Pyx_INCREF(Py_None);
4668     __Pyx_GIVEREF(Py_None);
4669     PyTuple_SET_ITEM(__pyx_t_1, 2, Py_None);
4670     __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 13, __pyx_L1_error)
4671     __Pyx_GOTREF(__pyx_t_6);
4672     __Pyx_GIVEREF(__pyx_t_4);
4673     PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4);
4674     __Pyx_GIVEREF(__pyx_t_1);
4675     PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_1);
4676     __Pyx_INCREF(__pyx_v_state);
4677     __Pyx_GIVEREF(__pyx_v_state);
4678     PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_v_state);
4679     __pyx_t_4 = 0;
4680     __pyx_t_1 = 0;
4681     __pyx_r = __pyx_t_6;
4682     __pyx_t_6 = 0;
4683     goto __pyx_L0;
4684 
4685     /* "(tree fragment)":12
4686  *     else:
4687  *         use_setstate = self.chunked is not None or self.compression is not None or self.headers is not None or self.method is not None or self.path is not None or self.raw_headers is not None or self.should_close is not None or self.upgrade is not None or self.url is not None or self.version is not None
4688  *     if use_setstate:             # <<<<<<<<<<<<<<
4689  *         return __pyx_unpickle_RawRequestMessage, (type(self), 0x1408252, None), state
4690  *     else:
4691  */
4692   }
4693 
4694   /* "(tree fragment)":15
4695  *         return __pyx_unpickle_RawRequestMessage, (type(self), 0x1408252, None), state
4696  *     else:
4697  *         return __pyx_unpickle_RawRequestMessage, (type(self), 0x1408252, state)             # <<<<<<<<<<<<<<
4698  * def __setstate_cython__(self, __pyx_state):
4699  *     __pyx_unpickle_RawRequestMessage__set_state(self, __pyx_state)
4700  */
4701   /*else*/ {
4702     __Pyx_XDECREF(__pyx_r);
4703     __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_pyx_unpickle_RawRequestMessage); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 15, __pyx_L1_error)
4704     __Pyx_GOTREF(__pyx_t_6);
4705     __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 15, __pyx_L1_error)
4706     __Pyx_GOTREF(__pyx_t_1);
4707     __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
4708     __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
4709     PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
4710     __Pyx_INCREF(__pyx_int_21004882);
4711     __Pyx_GIVEREF(__pyx_int_21004882);
4712     PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_21004882);
4713     __Pyx_INCREF(__pyx_v_state);
4714     __Pyx_GIVEREF(__pyx_v_state);
4715     PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_state);
4716     __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 15, __pyx_L1_error)
4717     __Pyx_GOTREF(__pyx_t_4);
4718     __Pyx_GIVEREF(__pyx_t_6);
4719     PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6);
4720     __Pyx_GIVEREF(__pyx_t_1);
4721     PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_1);
4722     __pyx_t_6 = 0;
4723     __pyx_t_1 = 0;
4724     __pyx_r = __pyx_t_4;
4725     __pyx_t_4 = 0;
4726     goto __pyx_L0;
4727   }
4728 
4729   /* "(tree fragment)":1
4730  * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
4731  *     cdef tuple state
4732  *     cdef object _dict
4733  */
4734 
4735   /* function exit code */
4736   __pyx_L1_error:;
4737   __Pyx_XDECREF(__pyx_t_1);
4738   __Pyx_XDECREF(__pyx_t_4);
4739   __Pyx_XDECREF(__pyx_t_6);
4740   __Pyx_AddTraceback("aiohttp._http_parser.RawRequestMessage.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
4741   __pyx_r = NULL;
4742   __pyx_L0:;
4743   __Pyx_XDECREF(__pyx_v_state);
4744   __Pyx_XDECREF(__pyx_v__dict);
4745   __Pyx_XGIVEREF(__pyx_r);
4746   __Pyx_RefNannyFinishContext();
4747   return __pyx_r;
4748 }
4749 
4750 /* "(tree fragment)":16
4751  *     else:
4752  *         return __pyx_unpickle_RawRequestMessage, (type(self), 0x1408252, state)
4753  * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
4754  *     __pyx_unpickle_RawRequestMessage__set_state(self, __pyx_state)
4755  */
4756 
4757 /* Python wrapper */
4758 static PyObject *__pyx_pw_7aiohttp_12_http_parser_17RawRequestMessage_9__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
__pyx_pw_7aiohttp_12_http_parser_17RawRequestMessage_9__setstate_cython__(PyObject * __pyx_v_self,PyObject * __pyx_v___pyx_state)4759 static PyObject *__pyx_pw_7aiohttp_12_http_parser_17RawRequestMessage_9__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
4760   PyObject *__pyx_r = 0;
4761   __Pyx_RefNannyDeclarations
4762   __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
4763   __pyx_r = __pyx_pf_7aiohttp_12_http_parser_17RawRequestMessage_8__setstate_cython__(((struct __pyx_obj_7aiohttp_12_http_parser_RawRequestMessage *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));
4764 
4765   /* function exit code */
4766   __Pyx_RefNannyFinishContext();
4767   return __pyx_r;
4768 }
4769 
__pyx_pf_7aiohttp_12_http_parser_17RawRequestMessage_8__setstate_cython__(struct __pyx_obj_7aiohttp_12_http_parser_RawRequestMessage * __pyx_v_self,PyObject * __pyx_v___pyx_state)4770 static PyObject *__pyx_pf_7aiohttp_12_http_parser_17RawRequestMessage_8__setstate_cython__(struct __pyx_obj_7aiohttp_12_http_parser_RawRequestMessage *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
4771   PyObject *__pyx_r = NULL;
4772   __Pyx_RefNannyDeclarations
4773   PyObject *__pyx_t_1 = NULL;
4774   int __pyx_lineno = 0;
4775   const char *__pyx_filename = NULL;
4776   int __pyx_clineno = 0;
4777   __Pyx_RefNannySetupContext("__setstate_cython__", 0);
4778 
4779   /* "(tree fragment)":17
4780  *         return __pyx_unpickle_RawRequestMessage, (type(self), 0x1408252, state)
4781  * def __setstate_cython__(self, __pyx_state):
4782  *     __pyx_unpickle_RawRequestMessage__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
4783  */
4784   if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(1, 17, __pyx_L1_error)
4785   __pyx_t_1 = __pyx_f_7aiohttp_12_http_parser___pyx_unpickle_RawRequestMessage__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 17, __pyx_L1_error)
4786   __Pyx_GOTREF(__pyx_t_1);
4787   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
4788 
4789   /* "(tree fragment)":16
4790  *     else:
4791  *         return __pyx_unpickle_RawRequestMessage, (type(self), 0x1408252, state)
4792  * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
4793  *     __pyx_unpickle_RawRequestMessage__set_state(self, __pyx_state)
4794  */
4795 
4796   /* function exit code */
4797   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
4798   goto __pyx_L0;
4799   __pyx_L1_error:;
4800   __Pyx_XDECREF(__pyx_t_1);
4801   __Pyx_AddTraceback("aiohttp._http_parser.RawRequestMessage.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
4802   __pyx_r = NULL;
4803   __pyx_L0:;
4804   __Pyx_XGIVEREF(__pyx_r);
4805   __Pyx_RefNannyFinishContext();
4806   return __pyx_r;
4807 }
4808 
4809 /* "aiohttp/_http_parser.pyx":184
4810  *         return ret
4811  *
4812  * cdef _new_request_message(str method,             # <<<<<<<<<<<<<<
4813  *                            str path,
4814  *                            object version,
4815  */
4816 
__pyx_f_7aiohttp_12_http_parser__new_request_message(PyObject * __pyx_v_method,PyObject * __pyx_v_path,PyObject * __pyx_v_version,PyObject * __pyx_v_headers,PyObject * __pyx_v_raw_headers,int __pyx_v_should_close,PyObject * __pyx_v_compression,int __pyx_v_upgrade,int __pyx_v_chunked,PyObject * __pyx_v_url)4817 static PyObject *__pyx_f_7aiohttp_12_http_parser__new_request_message(PyObject *__pyx_v_method, PyObject *__pyx_v_path, PyObject *__pyx_v_version, PyObject *__pyx_v_headers, PyObject *__pyx_v_raw_headers, int __pyx_v_should_close, PyObject *__pyx_v_compression, int __pyx_v_upgrade, int __pyx_v_chunked, PyObject *__pyx_v_url) {
4818   struct __pyx_obj_7aiohttp_12_http_parser_RawRequestMessage *__pyx_v_ret = 0;
4819   PyObject *__pyx_r = NULL;
4820   __Pyx_RefNannyDeclarations
4821   PyObject *__pyx_t_1 = NULL;
4822   int __pyx_lineno = 0;
4823   const char *__pyx_filename = NULL;
4824   int __pyx_clineno = 0;
4825   __Pyx_RefNannySetupContext("_new_request_message", 0);
4826 
4827   /* "aiohttp/_http_parser.pyx":195
4828  *                            object url):
4829  *     cdef RawRequestMessage ret
4830  *     ret = RawRequestMessage.__new__(RawRequestMessage)             # <<<<<<<<<<<<<<
4831  *     ret.method = method
4832  *     ret.path = path
4833  */
4834   __pyx_t_1 = ((PyObject *)__pyx_tp_new_7aiohttp_12_http_parser_RawRequestMessage(((PyTypeObject *)__pyx_ptype_7aiohttp_12_http_parser_RawRequestMessage), __pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 195, __pyx_L1_error)
4835   __Pyx_GOTREF(((PyObject *)__pyx_t_1));
4836   __pyx_v_ret = ((struct __pyx_obj_7aiohttp_12_http_parser_RawRequestMessage *)__pyx_t_1);
4837   __pyx_t_1 = 0;
4838 
4839   /* "aiohttp/_http_parser.pyx":196
4840  *     cdef RawRequestMessage ret
4841  *     ret = RawRequestMessage.__new__(RawRequestMessage)
4842  *     ret.method = method             # <<<<<<<<<<<<<<
4843  *     ret.path = path
4844  *     ret.version = version
4845  */
4846   __Pyx_INCREF(__pyx_v_method);
4847   __Pyx_GIVEREF(__pyx_v_method);
4848   __Pyx_GOTREF(__pyx_v_ret->method);
4849   __Pyx_DECREF(__pyx_v_ret->method);
4850   __pyx_v_ret->method = __pyx_v_method;
4851 
4852   /* "aiohttp/_http_parser.pyx":197
4853  *     ret = RawRequestMessage.__new__(RawRequestMessage)
4854  *     ret.method = method
4855  *     ret.path = path             # <<<<<<<<<<<<<<
4856  *     ret.version = version
4857  *     ret.headers = headers
4858  */
4859   __Pyx_INCREF(__pyx_v_path);
4860   __Pyx_GIVEREF(__pyx_v_path);
4861   __Pyx_GOTREF(__pyx_v_ret->path);
4862   __Pyx_DECREF(__pyx_v_ret->path);
4863   __pyx_v_ret->path = __pyx_v_path;
4864 
4865   /* "aiohttp/_http_parser.pyx":198
4866  *     ret.method = method
4867  *     ret.path = path
4868  *     ret.version = version             # <<<<<<<<<<<<<<
4869  *     ret.headers = headers
4870  *     ret.raw_headers = raw_headers
4871  */
4872   __Pyx_INCREF(__pyx_v_version);
4873   __Pyx_GIVEREF(__pyx_v_version);
4874   __Pyx_GOTREF(__pyx_v_ret->version);
4875   __Pyx_DECREF(__pyx_v_ret->version);
4876   __pyx_v_ret->version = __pyx_v_version;
4877 
4878   /* "aiohttp/_http_parser.pyx":199
4879  *     ret.path = path
4880  *     ret.version = version
4881  *     ret.headers = headers             # <<<<<<<<<<<<<<
4882  *     ret.raw_headers = raw_headers
4883  *     ret.should_close = should_close
4884  */
4885   __Pyx_INCREF(__pyx_v_headers);
4886   __Pyx_GIVEREF(__pyx_v_headers);
4887   __Pyx_GOTREF(__pyx_v_ret->headers);
4888   __Pyx_DECREF(__pyx_v_ret->headers);
4889   __pyx_v_ret->headers = __pyx_v_headers;
4890 
4891   /* "aiohttp/_http_parser.pyx":200
4892  *     ret.version = version
4893  *     ret.headers = headers
4894  *     ret.raw_headers = raw_headers             # <<<<<<<<<<<<<<
4895  *     ret.should_close = should_close
4896  *     ret.compression = compression
4897  */
4898   __Pyx_INCREF(__pyx_v_raw_headers);
4899   __Pyx_GIVEREF(__pyx_v_raw_headers);
4900   __Pyx_GOTREF(__pyx_v_ret->raw_headers);
4901   __Pyx_DECREF(__pyx_v_ret->raw_headers);
4902   __pyx_v_ret->raw_headers = __pyx_v_raw_headers;
4903 
4904   /* "aiohttp/_http_parser.pyx":201
4905  *     ret.headers = headers
4906  *     ret.raw_headers = raw_headers
4907  *     ret.should_close = should_close             # <<<<<<<<<<<<<<
4908  *     ret.compression = compression
4909  *     ret.upgrade = upgrade
4910  */
4911   __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_should_close); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 201, __pyx_L1_error)
4912   __Pyx_GOTREF(__pyx_t_1);
4913   __Pyx_GIVEREF(__pyx_t_1);
4914   __Pyx_GOTREF(__pyx_v_ret->should_close);
4915   __Pyx_DECREF(__pyx_v_ret->should_close);
4916   __pyx_v_ret->should_close = __pyx_t_1;
4917   __pyx_t_1 = 0;
4918 
4919   /* "aiohttp/_http_parser.pyx":202
4920  *     ret.raw_headers = raw_headers
4921  *     ret.should_close = should_close
4922  *     ret.compression = compression             # <<<<<<<<<<<<<<
4923  *     ret.upgrade = upgrade
4924  *     ret.chunked = chunked
4925  */
4926   __Pyx_INCREF(__pyx_v_compression);
4927   __Pyx_GIVEREF(__pyx_v_compression);
4928   __Pyx_GOTREF(__pyx_v_ret->compression);
4929   __Pyx_DECREF(__pyx_v_ret->compression);
4930   __pyx_v_ret->compression = __pyx_v_compression;
4931 
4932   /* "aiohttp/_http_parser.pyx":203
4933  *     ret.should_close = should_close
4934  *     ret.compression = compression
4935  *     ret.upgrade = upgrade             # <<<<<<<<<<<<<<
4936  *     ret.chunked = chunked
4937  *     ret.url = url
4938  */
4939   __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_upgrade); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 203, __pyx_L1_error)
4940   __Pyx_GOTREF(__pyx_t_1);
4941   __Pyx_GIVEREF(__pyx_t_1);
4942   __Pyx_GOTREF(__pyx_v_ret->upgrade);
4943   __Pyx_DECREF(__pyx_v_ret->upgrade);
4944   __pyx_v_ret->upgrade = __pyx_t_1;
4945   __pyx_t_1 = 0;
4946 
4947   /* "aiohttp/_http_parser.pyx":204
4948  *     ret.compression = compression
4949  *     ret.upgrade = upgrade
4950  *     ret.chunked = chunked             # <<<<<<<<<<<<<<
4951  *     ret.url = url
4952  *     return ret
4953  */
4954   __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_chunked); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 204, __pyx_L1_error)
4955   __Pyx_GOTREF(__pyx_t_1);
4956   __Pyx_GIVEREF(__pyx_t_1);
4957   __Pyx_GOTREF(__pyx_v_ret->chunked);
4958   __Pyx_DECREF(__pyx_v_ret->chunked);
4959   __pyx_v_ret->chunked = __pyx_t_1;
4960   __pyx_t_1 = 0;
4961 
4962   /* "aiohttp/_http_parser.pyx":205
4963  *     ret.upgrade = upgrade
4964  *     ret.chunked = chunked
4965  *     ret.url = url             # <<<<<<<<<<<<<<
4966  *     return ret
4967  *
4968  */
4969   __Pyx_INCREF(__pyx_v_url);
4970   __Pyx_GIVEREF(__pyx_v_url);
4971   __Pyx_GOTREF(__pyx_v_ret->url);
4972   __Pyx_DECREF(__pyx_v_ret->url);
4973   __pyx_v_ret->url = __pyx_v_url;
4974 
4975   /* "aiohttp/_http_parser.pyx":206
4976  *     ret.chunked = chunked
4977  *     ret.url = url
4978  *     return ret             # <<<<<<<<<<<<<<
4979  *
4980  *
4981  */
4982   __Pyx_XDECREF(__pyx_r);
4983   __Pyx_INCREF(((PyObject *)__pyx_v_ret));
4984   __pyx_r = ((PyObject *)__pyx_v_ret);
4985   goto __pyx_L0;
4986 
4987   /* "aiohttp/_http_parser.pyx":184
4988  *         return ret
4989  *
4990  * cdef _new_request_message(str method,             # <<<<<<<<<<<<<<
4991  *                            str path,
4992  *                            object version,
4993  */
4994 
4995   /* function exit code */
4996   __pyx_L1_error:;
4997   __Pyx_XDECREF(__pyx_t_1);
4998   __Pyx_AddTraceback("aiohttp._http_parser._new_request_message", __pyx_clineno, __pyx_lineno, __pyx_filename);
4999   __pyx_r = 0;
5000   __pyx_L0:;
5001   __Pyx_XDECREF((PyObject *)__pyx_v_ret);
5002   __Pyx_XGIVEREF(__pyx_r);
5003   __Pyx_RefNannyFinishContext();
5004   return __pyx_r;
5005 }
5006 
5007 /* "aiohttp/_http_parser.pyx":221
5008  *     cdef readonly object chunked
5009  *
5010  *     def __init__(self, version, code, reason, headers, raw_headers,             # <<<<<<<<<<<<<<
5011  *                  should_close, compression, upgrade, chunked):
5012  *         self.version = version
5013  */
5014 
5015 /* Python wrapper */
5016 static int __pyx_pw_7aiohttp_12_http_parser_18RawResponseMessage_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
__pyx_pw_7aiohttp_12_http_parser_18RawResponseMessage_1__init__(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)5017 static int __pyx_pw_7aiohttp_12_http_parser_18RawResponseMessage_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
5018   PyObject *__pyx_v_version = 0;
5019   PyObject *__pyx_v_code = 0;
5020   PyObject *__pyx_v_reason = 0;
5021   PyObject *__pyx_v_headers = 0;
5022   PyObject *__pyx_v_raw_headers = 0;
5023   PyObject *__pyx_v_should_close = 0;
5024   PyObject *__pyx_v_compression = 0;
5025   PyObject *__pyx_v_upgrade = 0;
5026   PyObject *__pyx_v_chunked = 0;
5027   int __pyx_lineno = 0;
5028   const char *__pyx_filename = NULL;
5029   int __pyx_clineno = 0;
5030   int __pyx_r;
5031   __Pyx_RefNannyDeclarations
5032   __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
5033   {
5034     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_version,&__pyx_n_s_code,&__pyx_n_s_reason,&__pyx_n_s_headers,&__pyx_n_s_raw_headers,&__pyx_n_s_should_close,&__pyx_n_s_compression,&__pyx_n_s_upgrade,&__pyx_n_s_chunked,0};
5035     PyObject* values[9] = {0,0,0,0,0,0,0,0,0};
5036     if (unlikely(__pyx_kwds)) {
5037       Py_ssize_t kw_args;
5038       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
5039       switch (pos_args) {
5040         case  9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
5041         CYTHON_FALLTHROUGH;
5042         case  8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
5043         CYTHON_FALLTHROUGH;
5044         case  7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
5045         CYTHON_FALLTHROUGH;
5046         case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
5047         CYTHON_FALLTHROUGH;
5048         case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
5049         CYTHON_FALLTHROUGH;
5050         case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
5051         CYTHON_FALLTHROUGH;
5052         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
5053         CYTHON_FALLTHROUGH;
5054         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
5055         CYTHON_FALLTHROUGH;
5056         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
5057         CYTHON_FALLTHROUGH;
5058         case  0: break;
5059         default: goto __pyx_L5_argtuple_error;
5060       }
5061       kw_args = PyDict_Size(__pyx_kwds);
5062       switch (pos_args) {
5063         case  0:
5064         if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_version)) != 0)) kw_args--;
5065         else goto __pyx_L5_argtuple_error;
5066         CYTHON_FALLTHROUGH;
5067         case  1:
5068         if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_code)) != 0)) kw_args--;
5069         else {
5070           __Pyx_RaiseArgtupleInvalid("__init__", 1, 9, 9, 1); __PYX_ERR(0, 221, __pyx_L3_error)
5071         }
5072         CYTHON_FALLTHROUGH;
5073         case  2:
5074         if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_reason)) != 0)) kw_args--;
5075         else {
5076           __Pyx_RaiseArgtupleInvalid("__init__", 1, 9, 9, 2); __PYX_ERR(0, 221, __pyx_L3_error)
5077         }
5078         CYTHON_FALLTHROUGH;
5079         case  3:
5080         if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_headers)) != 0)) kw_args--;
5081         else {
5082           __Pyx_RaiseArgtupleInvalid("__init__", 1, 9, 9, 3); __PYX_ERR(0, 221, __pyx_L3_error)
5083         }
5084         CYTHON_FALLTHROUGH;
5085         case  4:
5086         if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_raw_headers)) != 0)) kw_args--;
5087         else {
5088           __Pyx_RaiseArgtupleInvalid("__init__", 1, 9, 9, 4); __PYX_ERR(0, 221, __pyx_L3_error)
5089         }
5090         CYTHON_FALLTHROUGH;
5091         case  5:
5092         if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_should_close)) != 0)) kw_args--;
5093         else {
5094           __Pyx_RaiseArgtupleInvalid("__init__", 1, 9, 9, 5); __PYX_ERR(0, 221, __pyx_L3_error)
5095         }
5096         CYTHON_FALLTHROUGH;
5097         case  6:
5098         if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_compression)) != 0)) kw_args--;
5099         else {
5100           __Pyx_RaiseArgtupleInvalid("__init__", 1, 9, 9, 6); __PYX_ERR(0, 221, __pyx_L3_error)
5101         }
5102         CYTHON_FALLTHROUGH;
5103         case  7:
5104         if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_upgrade)) != 0)) kw_args--;
5105         else {
5106           __Pyx_RaiseArgtupleInvalid("__init__", 1, 9, 9, 7); __PYX_ERR(0, 221, __pyx_L3_error)
5107         }
5108         CYTHON_FALLTHROUGH;
5109         case  8:
5110         if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_chunked)) != 0)) kw_args--;
5111         else {
5112           __Pyx_RaiseArgtupleInvalid("__init__", 1, 9, 9, 8); __PYX_ERR(0, 221, __pyx_L3_error)
5113         }
5114       }
5115       if (unlikely(kw_args > 0)) {
5116         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 221, __pyx_L3_error)
5117       }
5118     } else if (PyTuple_GET_SIZE(__pyx_args) != 9) {
5119       goto __pyx_L5_argtuple_error;
5120     } else {
5121       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
5122       values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
5123       values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
5124       values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
5125       values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
5126       values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
5127       values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
5128       values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
5129       values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
5130     }
5131     __pyx_v_version = values[0];
5132     __pyx_v_code = values[1];
5133     __pyx_v_reason = values[2];
5134     __pyx_v_headers = values[3];
5135     __pyx_v_raw_headers = values[4];
5136     __pyx_v_should_close = values[5];
5137     __pyx_v_compression = values[6];
5138     __pyx_v_upgrade = values[7];
5139     __pyx_v_chunked = values[8];
5140   }
5141   goto __pyx_L4_argument_unpacking_done;
5142   __pyx_L5_argtuple_error:;
5143   __Pyx_RaiseArgtupleInvalid("__init__", 1, 9, 9, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 221, __pyx_L3_error)
5144   __pyx_L3_error:;
5145   __Pyx_AddTraceback("aiohttp._http_parser.RawResponseMessage.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
5146   __Pyx_RefNannyFinishContext();
5147   return -1;
5148   __pyx_L4_argument_unpacking_done:;
5149   __pyx_r = __pyx_pf_7aiohttp_12_http_parser_18RawResponseMessage___init__(((struct __pyx_obj_7aiohttp_12_http_parser_RawResponseMessage *)__pyx_v_self), __pyx_v_version, __pyx_v_code, __pyx_v_reason, __pyx_v_headers, __pyx_v_raw_headers, __pyx_v_should_close, __pyx_v_compression, __pyx_v_upgrade, __pyx_v_chunked);
5150 
5151   /* function exit code */
5152   __Pyx_RefNannyFinishContext();
5153   return __pyx_r;
5154 }
5155 
__pyx_pf_7aiohttp_12_http_parser_18RawResponseMessage___init__(struct __pyx_obj_7aiohttp_12_http_parser_RawResponseMessage * __pyx_v_self,PyObject * __pyx_v_version,PyObject * __pyx_v_code,PyObject * __pyx_v_reason,PyObject * __pyx_v_headers,PyObject * __pyx_v_raw_headers,PyObject * __pyx_v_should_close,PyObject * __pyx_v_compression,PyObject * __pyx_v_upgrade,PyObject * __pyx_v_chunked)5156 static int __pyx_pf_7aiohttp_12_http_parser_18RawResponseMessage___init__(struct __pyx_obj_7aiohttp_12_http_parser_RawResponseMessage *__pyx_v_self, PyObject *__pyx_v_version, PyObject *__pyx_v_code, PyObject *__pyx_v_reason, PyObject *__pyx_v_headers, PyObject *__pyx_v_raw_headers, PyObject *__pyx_v_should_close, PyObject *__pyx_v_compression, PyObject *__pyx_v_upgrade, PyObject *__pyx_v_chunked) {
5157   int __pyx_r;
5158   __Pyx_RefNannyDeclarations
5159   int __pyx_t_1;
5160   PyObject *__pyx_t_2 = NULL;
5161   int __pyx_lineno = 0;
5162   const char *__pyx_filename = NULL;
5163   int __pyx_clineno = 0;
5164   __Pyx_RefNannySetupContext("__init__", 0);
5165 
5166   /* "aiohttp/_http_parser.pyx":223
5167  *     def __init__(self, version, code, reason, headers, raw_headers,
5168  *                  should_close, compression, upgrade, chunked):
5169  *         self.version = version             # <<<<<<<<<<<<<<
5170  *         self.code = code
5171  *         self.reason = reason
5172  */
5173   __Pyx_INCREF(__pyx_v_version);
5174   __Pyx_GIVEREF(__pyx_v_version);
5175   __Pyx_GOTREF(__pyx_v_self->version);
5176   __Pyx_DECREF(__pyx_v_self->version);
5177   __pyx_v_self->version = __pyx_v_version;
5178 
5179   /* "aiohttp/_http_parser.pyx":224
5180  *                  should_close, compression, upgrade, chunked):
5181  *         self.version = version
5182  *         self.code = code             # <<<<<<<<<<<<<<
5183  *         self.reason = reason
5184  *         self.headers = headers
5185  */
5186   __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_code); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 224, __pyx_L1_error)
5187   __pyx_v_self->code = __pyx_t_1;
5188 
5189   /* "aiohttp/_http_parser.pyx":225
5190  *         self.version = version
5191  *         self.code = code
5192  *         self.reason = reason             # <<<<<<<<<<<<<<
5193  *         self.headers = headers
5194  *         self.raw_headers = raw_headers
5195  */
5196   if (!(likely(PyUnicode_CheckExact(__pyx_v_reason))||((__pyx_v_reason) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_v_reason)->tp_name), 0))) __PYX_ERR(0, 225, __pyx_L1_error)
5197   __pyx_t_2 = __pyx_v_reason;
5198   __Pyx_INCREF(__pyx_t_2);
5199   __Pyx_GIVEREF(__pyx_t_2);
5200   __Pyx_GOTREF(__pyx_v_self->reason);
5201   __Pyx_DECREF(__pyx_v_self->reason);
5202   __pyx_v_self->reason = ((PyObject*)__pyx_t_2);
5203   __pyx_t_2 = 0;
5204 
5205   /* "aiohttp/_http_parser.pyx":226
5206  *         self.code = code
5207  *         self.reason = reason
5208  *         self.headers = headers             # <<<<<<<<<<<<<<
5209  *         self.raw_headers = raw_headers
5210  *         self.should_close = should_close
5211  */
5212   __Pyx_INCREF(__pyx_v_headers);
5213   __Pyx_GIVEREF(__pyx_v_headers);
5214   __Pyx_GOTREF(__pyx_v_self->headers);
5215   __Pyx_DECREF(__pyx_v_self->headers);
5216   __pyx_v_self->headers = __pyx_v_headers;
5217 
5218   /* "aiohttp/_http_parser.pyx":227
5219  *         self.reason = reason
5220  *         self.headers = headers
5221  *         self.raw_headers = raw_headers             # <<<<<<<<<<<<<<
5222  *         self.should_close = should_close
5223  *         self.compression = compression
5224  */
5225   __Pyx_INCREF(__pyx_v_raw_headers);
5226   __Pyx_GIVEREF(__pyx_v_raw_headers);
5227   __Pyx_GOTREF(__pyx_v_self->raw_headers);
5228   __Pyx_DECREF(__pyx_v_self->raw_headers);
5229   __pyx_v_self->raw_headers = __pyx_v_raw_headers;
5230 
5231   /* "aiohttp/_http_parser.pyx":228
5232  *         self.headers = headers
5233  *         self.raw_headers = raw_headers
5234  *         self.should_close = should_close             # <<<<<<<<<<<<<<
5235  *         self.compression = compression
5236  *         self.upgrade = upgrade
5237  */
5238   __Pyx_INCREF(__pyx_v_should_close);
5239   __Pyx_GIVEREF(__pyx_v_should_close);
5240   __Pyx_GOTREF(__pyx_v_self->should_close);
5241   __Pyx_DECREF(__pyx_v_self->should_close);
5242   __pyx_v_self->should_close = __pyx_v_should_close;
5243 
5244   /* "aiohttp/_http_parser.pyx":229
5245  *         self.raw_headers = raw_headers
5246  *         self.should_close = should_close
5247  *         self.compression = compression             # <<<<<<<<<<<<<<
5248  *         self.upgrade = upgrade
5249  *         self.chunked = chunked
5250  */
5251   __Pyx_INCREF(__pyx_v_compression);
5252   __Pyx_GIVEREF(__pyx_v_compression);
5253   __Pyx_GOTREF(__pyx_v_self->compression);
5254   __Pyx_DECREF(__pyx_v_self->compression);
5255   __pyx_v_self->compression = __pyx_v_compression;
5256 
5257   /* "aiohttp/_http_parser.pyx":230
5258  *         self.should_close = should_close
5259  *         self.compression = compression
5260  *         self.upgrade = upgrade             # <<<<<<<<<<<<<<
5261  *         self.chunked = chunked
5262  *
5263  */
5264   __Pyx_INCREF(__pyx_v_upgrade);
5265   __Pyx_GIVEREF(__pyx_v_upgrade);
5266   __Pyx_GOTREF(__pyx_v_self->upgrade);
5267   __Pyx_DECREF(__pyx_v_self->upgrade);
5268   __pyx_v_self->upgrade = __pyx_v_upgrade;
5269 
5270   /* "aiohttp/_http_parser.pyx":231
5271  *         self.compression = compression
5272  *         self.upgrade = upgrade
5273  *         self.chunked = chunked             # <<<<<<<<<<<<<<
5274  *
5275  *     def __repr__(self):
5276  */
5277   __Pyx_INCREF(__pyx_v_chunked);
5278   __Pyx_GIVEREF(__pyx_v_chunked);
5279   __Pyx_GOTREF(__pyx_v_self->chunked);
5280   __Pyx_DECREF(__pyx_v_self->chunked);
5281   __pyx_v_self->chunked = __pyx_v_chunked;
5282 
5283   /* "aiohttp/_http_parser.pyx":221
5284  *     cdef readonly object chunked
5285  *
5286  *     def __init__(self, version, code, reason, headers, raw_headers,             # <<<<<<<<<<<<<<
5287  *                  should_close, compression, upgrade, chunked):
5288  *         self.version = version
5289  */
5290 
5291   /* function exit code */
5292   __pyx_r = 0;
5293   goto __pyx_L0;
5294   __pyx_L1_error:;
5295   __Pyx_XDECREF(__pyx_t_2);
5296   __Pyx_AddTraceback("aiohttp._http_parser.RawResponseMessage.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
5297   __pyx_r = -1;
5298   __pyx_L0:;
5299   __Pyx_RefNannyFinishContext();
5300   return __pyx_r;
5301 }
5302 
5303 /* "aiohttp/_http_parser.pyx":233
5304  *         self.chunked = chunked
5305  *
5306  *     def __repr__(self):             # <<<<<<<<<<<<<<
5307  *         info = []
5308  *         info.append(("version", self.version))
5309  */
5310 
5311 /* Python wrapper */
5312 static PyObject *__pyx_pw_7aiohttp_12_http_parser_18RawResponseMessage_3__repr__(PyObject *__pyx_v_self); /*proto*/
__pyx_pw_7aiohttp_12_http_parser_18RawResponseMessage_3__repr__(PyObject * __pyx_v_self)5313 static PyObject *__pyx_pw_7aiohttp_12_http_parser_18RawResponseMessage_3__repr__(PyObject *__pyx_v_self) {
5314   PyObject *__pyx_r = 0;
5315   __Pyx_RefNannyDeclarations
5316   __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
5317   __pyx_r = __pyx_pf_7aiohttp_12_http_parser_18RawResponseMessage_2__repr__(((struct __pyx_obj_7aiohttp_12_http_parser_RawResponseMessage *)__pyx_v_self));
5318 
5319   /* function exit code */
5320   __Pyx_RefNannyFinishContext();
5321   return __pyx_r;
5322 }
5323 static PyObject *__pyx_gb_7aiohttp_12_http_parser_18RawResponseMessage_8__repr___2generator1(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */
5324 
5325 /* "aiohttp/_http_parser.pyx":244
5326  *         info.append(("upgrade", self.upgrade))
5327  *         info.append(("chunked", self.chunked))
5328  *         sinfo = ', '.join(name + '=' + repr(val) for name, val in info)             # <<<<<<<<<<<<<<
5329  *         return '<RawResponseMessage(' + sinfo + ')>'
5330  *
5331  */
5332 
__pyx_pf_7aiohttp_12_http_parser_18RawResponseMessage_8__repr___genexpr(PyObject * __pyx_self)5333 static PyObject *__pyx_pf_7aiohttp_12_http_parser_18RawResponseMessage_8__repr___genexpr(PyObject *__pyx_self) {
5334   struct __pyx_obj_7aiohttp_12_http_parser___pyx_scope_struct_3_genexpr *__pyx_cur_scope;
5335   PyObject *__pyx_r = NULL;
5336   __Pyx_RefNannyDeclarations
5337   int __pyx_lineno = 0;
5338   const char *__pyx_filename = NULL;
5339   int __pyx_clineno = 0;
5340   __Pyx_RefNannySetupContext("genexpr", 0);
5341   __pyx_cur_scope = (struct __pyx_obj_7aiohttp_12_http_parser___pyx_scope_struct_3_genexpr *)__pyx_tp_new_7aiohttp_12_http_parser___pyx_scope_struct_3_genexpr(__pyx_ptype_7aiohttp_12_http_parser___pyx_scope_struct_3_genexpr, __pyx_empty_tuple, NULL);
5342   if (unlikely(!__pyx_cur_scope)) {
5343     __pyx_cur_scope = ((struct __pyx_obj_7aiohttp_12_http_parser___pyx_scope_struct_3_genexpr *)Py_None);
5344     __Pyx_INCREF(Py_None);
5345     __PYX_ERR(0, 244, __pyx_L1_error)
5346   } else {
5347     __Pyx_GOTREF(__pyx_cur_scope);
5348   }
5349   __pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_7aiohttp_12_http_parser___pyx_scope_struct_2___repr__ *) __pyx_self;
5350   __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope));
5351   __Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope);
5352   {
5353     __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_7aiohttp_12_http_parser_18RawResponseMessage_8__repr___2generator1, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_repr___locals_genexpr, __pyx_n_s_aiohttp__http_parser); if (unlikely(!gen)) __PYX_ERR(0, 244, __pyx_L1_error)
5354     __Pyx_DECREF(__pyx_cur_scope);
5355     __Pyx_RefNannyFinishContext();
5356     return (PyObject *) gen;
5357   }
5358 
5359   /* function exit code */
5360   __pyx_L1_error:;
5361   __Pyx_AddTraceback("aiohttp._http_parser.RawResponseMessage.__repr__.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
5362   __pyx_r = NULL;
5363   __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
5364   __Pyx_XGIVEREF(__pyx_r);
5365   __Pyx_RefNannyFinishContext();
5366   return __pyx_r;
5367 }
5368 
__pyx_gb_7aiohttp_12_http_parser_18RawResponseMessage_8__repr___2generator1(__pyx_CoroutineObject * __pyx_generator,CYTHON_UNUSED PyThreadState * __pyx_tstate,PyObject * __pyx_sent_value)5369 static PyObject *__pyx_gb_7aiohttp_12_http_parser_18RawResponseMessage_8__repr___2generator1(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
5370 {
5371   struct __pyx_obj_7aiohttp_12_http_parser___pyx_scope_struct_3_genexpr *__pyx_cur_scope = ((struct __pyx_obj_7aiohttp_12_http_parser___pyx_scope_struct_3_genexpr *)__pyx_generator->closure);
5372   PyObject *__pyx_r = NULL;
5373   PyObject *__pyx_t_1 = NULL;
5374   Py_ssize_t __pyx_t_2;
5375   PyObject *__pyx_t_3 = NULL;
5376   PyObject *__pyx_t_4 = NULL;
5377   PyObject *__pyx_t_5 = NULL;
5378   PyObject *__pyx_t_6 = NULL;
5379   PyObject *(*__pyx_t_7)(PyObject *);
5380   int __pyx_lineno = 0;
5381   const char *__pyx_filename = NULL;
5382   int __pyx_clineno = 0;
5383   __Pyx_RefNannyDeclarations
5384   __Pyx_RefNannySetupContext("genexpr", 0);
5385   switch (__pyx_generator->resume_label) {
5386     case 0: goto __pyx_L3_first_run;
5387     default: /* CPython raises the right error here */
5388     __Pyx_RefNannyFinishContext();
5389     return NULL;
5390   }
5391   __pyx_L3_first_run:;
5392   if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 244, __pyx_L1_error)
5393   __pyx_r = PyList_New(0); if (unlikely(!__pyx_r)) __PYX_ERR(0, 244, __pyx_L1_error)
5394   __Pyx_GOTREF(__pyx_r);
5395   if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_info)) { __Pyx_RaiseClosureNameError("info"); __PYX_ERR(0, 244, __pyx_L1_error) }
5396   if (unlikely(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_info == Py_None)) {
5397     PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
5398     __PYX_ERR(0, 244, __pyx_L1_error)
5399   }
5400   __pyx_t_1 = __pyx_cur_scope->__pyx_outer_scope->__pyx_v_info; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
5401   for (;;) {
5402     if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
5403     #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
5404     __pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_3); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 244, __pyx_L1_error)
5405     #else
5406     __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 244, __pyx_L1_error)
5407     __Pyx_GOTREF(__pyx_t_3);
5408     #endif
5409     if ((likely(PyTuple_CheckExact(__pyx_t_3))) || (PyList_CheckExact(__pyx_t_3))) {
5410       PyObject* sequence = __pyx_t_3;
5411       Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
5412       if (unlikely(size != 2)) {
5413         if (size > 2) __Pyx_RaiseTooManyValuesError(2);
5414         else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
5415         __PYX_ERR(0, 244, __pyx_L1_error)
5416       }
5417       #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
5418       if (likely(PyTuple_CheckExact(sequence))) {
5419         __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0);
5420         __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1);
5421       } else {
5422         __pyx_t_4 = PyList_GET_ITEM(sequence, 0);
5423         __pyx_t_5 = PyList_GET_ITEM(sequence, 1);
5424       }
5425       __Pyx_INCREF(__pyx_t_4);
5426       __Pyx_INCREF(__pyx_t_5);
5427       #else
5428       __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 244, __pyx_L1_error)
5429       __Pyx_GOTREF(__pyx_t_4);
5430       __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 244, __pyx_L1_error)
5431       __Pyx_GOTREF(__pyx_t_5);
5432       #endif
5433       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
5434     } else {
5435       Py_ssize_t index = -1;
5436       __pyx_t_6 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 244, __pyx_L1_error)
5437       __Pyx_GOTREF(__pyx_t_6);
5438       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
5439       __pyx_t_7 = Py_TYPE(__pyx_t_6)->tp_iternext;
5440       index = 0; __pyx_t_4 = __pyx_t_7(__pyx_t_6); if (unlikely(!__pyx_t_4)) goto __pyx_L6_unpacking_failed;
5441       __Pyx_GOTREF(__pyx_t_4);
5442       index = 1; __pyx_t_5 = __pyx_t_7(__pyx_t_6); if (unlikely(!__pyx_t_5)) goto __pyx_L6_unpacking_failed;
5443       __Pyx_GOTREF(__pyx_t_5);
5444       if (__Pyx_IternextUnpackEndCheck(__pyx_t_7(__pyx_t_6), 2) < 0) __PYX_ERR(0, 244, __pyx_L1_error)
5445       __pyx_t_7 = NULL;
5446       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
5447       goto __pyx_L7_unpacking_done;
5448       __pyx_L6_unpacking_failed:;
5449       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
5450       __pyx_t_7 = NULL;
5451       if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
5452       __PYX_ERR(0, 244, __pyx_L1_error)
5453       __pyx_L7_unpacking_done:;
5454     }
5455     __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_name);
5456     __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_name, __pyx_t_4);
5457     __Pyx_GIVEREF(__pyx_t_4);
5458     __pyx_t_4 = 0;
5459     __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_val);
5460     __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_val, __pyx_t_5);
5461     __Pyx_GIVEREF(__pyx_t_5);
5462     __pyx_t_5 = 0;
5463     __pyx_t_3 = PyNumber_Add(__pyx_cur_scope->__pyx_v_name, __pyx_kp_u_); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 244, __pyx_L1_error)
5464     __Pyx_GOTREF(__pyx_t_3);
5465     __pyx_t_5 = PyObject_Repr(__pyx_cur_scope->__pyx_v_val); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 244, __pyx_L1_error)
5466     __Pyx_GOTREF(__pyx_t_5);
5467     __pyx_t_4 = PyNumber_Add(__pyx_t_3, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 244, __pyx_L1_error)
5468     __Pyx_GOTREF(__pyx_t_4);
5469     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
5470     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
5471     if (unlikely(__Pyx_ListComp_Append(__pyx_r, (PyObject*)__pyx_t_4))) __PYX_ERR(0, 244, __pyx_L1_error)
5472     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
5473   }
5474   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
5475   CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);
5476 
5477   /* function exit code */
5478   goto __pyx_L0;
5479   __pyx_L1_error:;
5480   __Pyx_XDECREF(__pyx_r); __pyx_r = 0;
5481   __Pyx_XDECREF(__pyx_t_1);
5482   __Pyx_XDECREF(__pyx_t_3);
5483   __Pyx_XDECREF(__pyx_t_4);
5484   __Pyx_XDECREF(__pyx_t_5);
5485   __Pyx_XDECREF(__pyx_t_6);
5486   __Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
5487   __pyx_L0:;
5488   __Pyx_XGIVEREF(__pyx_r);
5489   #if !CYTHON_USE_EXC_INFO_STACK
5490   __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
5491   #endif
5492   __pyx_generator->resume_label = -1;
5493   __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
5494   __Pyx_RefNannyFinishContext();
5495   return __pyx_r;
5496 }
5497 
5498 /* "aiohttp/_http_parser.pyx":233
5499  *         self.chunked = chunked
5500  *
5501  *     def __repr__(self):             # <<<<<<<<<<<<<<
5502  *         info = []
5503  *         info.append(("version", self.version))
5504  */
5505 
__pyx_pf_7aiohttp_12_http_parser_18RawResponseMessage_2__repr__(struct __pyx_obj_7aiohttp_12_http_parser_RawResponseMessage * __pyx_v_self)5506 static PyObject *__pyx_pf_7aiohttp_12_http_parser_18RawResponseMessage_2__repr__(struct __pyx_obj_7aiohttp_12_http_parser_RawResponseMessage *__pyx_v_self) {
5507   struct __pyx_obj_7aiohttp_12_http_parser___pyx_scope_struct_2___repr__ *__pyx_cur_scope;
5508   PyObject *__pyx_v_sinfo = NULL;
5509   PyObject *__pyx_r = NULL;
5510   __Pyx_RefNannyDeclarations
5511   PyObject *__pyx_t_1 = NULL;
5512   int __pyx_t_2;
5513   PyObject *__pyx_t_3 = NULL;
5514   int __pyx_lineno = 0;
5515   const char *__pyx_filename = NULL;
5516   int __pyx_clineno = 0;
5517   __Pyx_RefNannySetupContext("__repr__", 0);
5518   __pyx_cur_scope = (struct __pyx_obj_7aiohttp_12_http_parser___pyx_scope_struct_2___repr__ *)__pyx_tp_new_7aiohttp_12_http_parser___pyx_scope_struct_2___repr__(__pyx_ptype_7aiohttp_12_http_parser___pyx_scope_struct_2___repr__, __pyx_empty_tuple, NULL);
5519   if (unlikely(!__pyx_cur_scope)) {
5520     __pyx_cur_scope = ((struct __pyx_obj_7aiohttp_12_http_parser___pyx_scope_struct_2___repr__ *)Py_None);
5521     __Pyx_INCREF(Py_None);
5522     __PYX_ERR(0, 233, __pyx_L1_error)
5523   } else {
5524     __Pyx_GOTREF(__pyx_cur_scope);
5525   }
5526 
5527   /* "aiohttp/_http_parser.pyx":234
5528  *
5529  *     def __repr__(self):
5530  *         info = []             # <<<<<<<<<<<<<<
5531  *         info.append(("version", self.version))
5532  *         info.append(("code", self.code))
5533  */
5534   __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 234, __pyx_L1_error)
5535   __Pyx_GOTREF(__pyx_t_1);
5536   __Pyx_GIVEREF(__pyx_t_1);
5537   __pyx_cur_scope->__pyx_v_info = ((PyObject*)__pyx_t_1);
5538   __pyx_t_1 = 0;
5539 
5540   /* "aiohttp/_http_parser.pyx":235
5541  *     def __repr__(self):
5542  *         info = []
5543  *         info.append(("version", self.version))             # <<<<<<<<<<<<<<
5544  *         info.append(("code", self.code))
5545  *         info.append(("reason", self.reason))
5546  */
5547   __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 235, __pyx_L1_error)
5548   __Pyx_GOTREF(__pyx_t_1);
5549   __Pyx_INCREF(__pyx_n_u_version);
5550   __Pyx_GIVEREF(__pyx_n_u_version);
5551   PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_n_u_version);
5552   __Pyx_INCREF(__pyx_v_self->version);
5553   __Pyx_GIVEREF(__pyx_v_self->version);
5554   PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_self->version);
5555   __pyx_t_2 = __Pyx_PyList_Append(__pyx_cur_scope->__pyx_v_info, __pyx_t_1); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 235, __pyx_L1_error)
5556   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
5557 
5558   /* "aiohttp/_http_parser.pyx":236
5559  *         info = []
5560  *         info.append(("version", self.version))
5561  *         info.append(("code", self.code))             # <<<<<<<<<<<<<<
5562  *         info.append(("reason", self.reason))
5563  *         info.append(("headers", self.headers))
5564  */
5565   __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->code); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 236, __pyx_L1_error)
5566   __Pyx_GOTREF(__pyx_t_1);
5567   __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 236, __pyx_L1_error)
5568   __Pyx_GOTREF(__pyx_t_3);
5569   __Pyx_INCREF(__pyx_n_u_code);
5570   __Pyx_GIVEREF(__pyx_n_u_code);
5571   PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_n_u_code);
5572   __Pyx_GIVEREF(__pyx_t_1);
5573   PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_1);
5574   __pyx_t_1 = 0;
5575   __pyx_t_2 = __Pyx_PyList_Append(__pyx_cur_scope->__pyx_v_info, __pyx_t_3); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 236, __pyx_L1_error)
5576   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
5577 
5578   /* "aiohttp/_http_parser.pyx":237
5579  *         info.append(("version", self.version))
5580  *         info.append(("code", self.code))
5581  *         info.append(("reason", self.reason))             # <<<<<<<<<<<<<<
5582  *         info.append(("headers", self.headers))
5583  *         info.append(("raw_headers", self.raw_headers))
5584  */
5585   __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 237, __pyx_L1_error)
5586   __Pyx_GOTREF(__pyx_t_3);
5587   __Pyx_INCREF(__pyx_n_u_reason);
5588   __Pyx_GIVEREF(__pyx_n_u_reason);
5589   PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_n_u_reason);
5590   __Pyx_INCREF(__pyx_v_self->reason);
5591   __Pyx_GIVEREF(__pyx_v_self->reason);
5592   PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_self->reason);
5593   __pyx_t_2 = __Pyx_PyList_Append(__pyx_cur_scope->__pyx_v_info, __pyx_t_3); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 237, __pyx_L1_error)
5594   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
5595 
5596   /* "aiohttp/_http_parser.pyx":238
5597  *         info.append(("code", self.code))
5598  *         info.append(("reason", self.reason))
5599  *         info.append(("headers", self.headers))             # <<<<<<<<<<<<<<
5600  *         info.append(("raw_headers", self.raw_headers))
5601  *         info.append(("should_close", self.should_close))
5602  */
5603   __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 238, __pyx_L1_error)
5604   __Pyx_GOTREF(__pyx_t_3);
5605   __Pyx_INCREF(__pyx_n_u_headers);
5606   __Pyx_GIVEREF(__pyx_n_u_headers);
5607   PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_n_u_headers);
5608   __Pyx_INCREF(__pyx_v_self->headers);
5609   __Pyx_GIVEREF(__pyx_v_self->headers);
5610   PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_self->headers);
5611   __pyx_t_2 = __Pyx_PyList_Append(__pyx_cur_scope->__pyx_v_info, __pyx_t_3); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 238, __pyx_L1_error)
5612   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
5613 
5614   /* "aiohttp/_http_parser.pyx":239
5615  *         info.append(("reason", self.reason))
5616  *         info.append(("headers", self.headers))
5617  *         info.append(("raw_headers", self.raw_headers))             # <<<<<<<<<<<<<<
5618  *         info.append(("should_close", self.should_close))
5619  *         info.append(("compression", self.compression))
5620  */
5621   __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 239, __pyx_L1_error)
5622   __Pyx_GOTREF(__pyx_t_3);
5623   __Pyx_INCREF(__pyx_n_u_raw_headers);
5624   __Pyx_GIVEREF(__pyx_n_u_raw_headers);
5625   PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_n_u_raw_headers);
5626   __Pyx_INCREF(__pyx_v_self->raw_headers);
5627   __Pyx_GIVEREF(__pyx_v_self->raw_headers);
5628   PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_self->raw_headers);
5629   __pyx_t_2 = __Pyx_PyList_Append(__pyx_cur_scope->__pyx_v_info, __pyx_t_3); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 239, __pyx_L1_error)
5630   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
5631 
5632   /* "aiohttp/_http_parser.pyx":240
5633  *         info.append(("headers", self.headers))
5634  *         info.append(("raw_headers", self.raw_headers))
5635  *         info.append(("should_close", self.should_close))             # <<<<<<<<<<<<<<
5636  *         info.append(("compression", self.compression))
5637  *         info.append(("upgrade", self.upgrade))
5638  */
5639   __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 240, __pyx_L1_error)
5640   __Pyx_GOTREF(__pyx_t_3);
5641   __Pyx_INCREF(__pyx_n_u_should_close);
5642   __Pyx_GIVEREF(__pyx_n_u_should_close);
5643   PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_n_u_should_close);
5644   __Pyx_INCREF(__pyx_v_self->should_close);
5645   __Pyx_GIVEREF(__pyx_v_self->should_close);
5646   PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_self->should_close);
5647   __pyx_t_2 = __Pyx_PyList_Append(__pyx_cur_scope->__pyx_v_info, __pyx_t_3); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 240, __pyx_L1_error)
5648   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
5649 
5650   /* "aiohttp/_http_parser.pyx":241
5651  *         info.append(("raw_headers", self.raw_headers))
5652  *         info.append(("should_close", self.should_close))
5653  *         info.append(("compression", self.compression))             # <<<<<<<<<<<<<<
5654  *         info.append(("upgrade", self.upgrade))
5655  *         info.append(("chunked", self.chunked))
5656  */
5657   __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 241, __pyx_L1_error)
5658   __Pyx_GOTREF(__pyx_t_3);
5659   __Pyx_INCREF(__pyx_n_u_compression);
5660   __Pyx_GIVEREF(__pyx_n_u_compression);
5661   PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_n_u_compression);
5662   __Pyx_INCREF(__pyx_v_self->compression);
5663   __Pyx_GIVEREF(__pyx_v_self->compression);
5664   PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_self->compression);
5665   __pyx_t_2 = __Pyx_PyList_Append(__pyx_cur_scope->__pyx_v_info, __pyx_t_3); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 241, __pyx_L1_error)
5666   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
5667 
5668   /* "aiohttp/_http_parser.pyx":242
5669  *         info.append(("should_close", self.should_close))
5670  *         info.append(("compression", self.compression))
5671  *         info.append(("upgrade", self.upgrade))             # <<<<<<<<<<<<<<
5672  *         info.append(("chunked", self.chunked))
5673  *         sinfo = ', '.join(name + '=' + repr(val) for name, val in info)
5674  */
5675   __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 242, __pyx_L1_error)
5676   __Pyx_GOTREF(__pyx_t_3);
5677   __Pyx_INCREF(__pyx_n_u_upgrade);
5678   __Pyx_GIVEREF(__pyx_n_u_upgrade);
5679   PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_n_u_upgrade);
5680   __Pyx_INCREF(__pyx_v_self->upgrade);
5681   __Pyx_GIVEREF(__pyx_v_self->upgrade);
5682   PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_self->upgrade);
5683   __pyx_t_2 = __Pyx_PyList_Append(__pyx_cur_scope->__pyx_v_info, __pyx_t_3); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 242, __pyx_L1_error)
5684   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
5685 
5686   /* "aiohttp/_http_parser.pyx":243
5687  *         info.append(("compression", self.compression))
5688  *         info.append(("upgrade", self.upgrade))
5689  *         info.append(("chunked", self.chunked))             # <<<<<<<<<<<<<<
5690  *         sinfo = ', '.join(name + '=' + repr(val) for name, val in info)
5691  *         return '<RawResponseMessage(' + sinfo + ')>'
5692  */
5693   __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 243, __pyx_L1_error)
5694   __Pyx_GOTREF(__pyx_t_3);
5695   __Pyx_INCREF(__pyx_n_u_chunked);
5696   __Pyx_GIVEREF(__pyx_n_u_chunked);
5697   PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_n_u_chunked);
5698   __Pyx_INCREF(__pyx_v_self->chunked);
5699   __Pyx_GIVEREF(__pyx_v_self->chunked);
5700   PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_self->chunked);
5701   __pyx_t_2 = __Pyx_PyList_Append(__pyx_cur_scope->__pyx_v_info, __pyx_t_3); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 243, __pyx_L1_error)
5702   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
5703 
5704   /* "aiohttp/_http_parser.pyx":244
5705  *         info.append(("upgrade", self.upgrade))
5706  *         info.append(("chunked", self.chunked))
5707  *         sinfo = ', '.join(name + '=' + repr(val) for name, val in info)             # <<<<<<<<<<<<<<
5708  *         return '<RawResponseMessage(' + sinfo + ')>'
5709  *
5710  */
5711   __pyx_t_3 = __pyx_pf_7aiohttp_12_http_parser_18RawResponseMessage_8__repr___genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 244, __pyx_L1_error)
5712   __Pyx_GOTREF(__pyx_t_3);
5713   __pyx_t_1 = __Pyx_Generator_Next(__pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 244, __pyx_L1_error)
5714   __Pyx_GOTREF(__pyx_t_1);
5715   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
5716   __pyx_t_3 = PyUnicode_Join(__pyx_kp_u__2, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 244, __pyx_L1_error)
5717   __Pyx_GOTREF(__pyx_t_3);
5718   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
5719   __pyx_v_sinfo = ((PyObject*)__pyx_t_3);
5720   __pyx_t_3 = 0;
5721 
5722   /* "aiohttp/_http_parser.pyx":245
5723  *         info.append(("chunked", self.chunked))
5724  *         sinfo = ', '.join(name + '=' + repr(val) for name, val in info)
5725  *         return '<RawResponseMessage(' + sinfo + ')>'             # <<<<<<<<<<<<<<
5726  *
5727  *
5728  */
5729   __Pyx_XDECREF(__pyx_r);
5730   __pyx_t_3 = __Pyx_PyUnicode_ConcatSafe(__pyx_kp_u_RawResponseMessage, __pyx_v_sinfo); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 245, __pyx_L1_error)
5731   __Pyx_GOTREF(__pyx_t_3);
5732   __pyx_t_1 = __Pyx_PyUnicode_Concat(__pyx_t_3, __pyx_kp_u__3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 245, __pyx_L1_error)
5733   __Pyx_GOTREF(__pyx_t_1);
5734   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
5735   __pyx_r = __pyx_t_1;
5736   __pyx_t_1 = 0;
5737   goto __pyx_L0;
5738 
5739   /* "aiohttp/_http_parser.pyx":233
5740  *         self.chunked = chunked
5741  *
5742  *     def __repr__(self):             # <<<<<<<<<<<<<<
5743  *         info = []
5744  *         info.append(("version", self.version))
5745  */
5746 
5747   /* function exit code */
5748   __pyx_L1_error:;
5749   __Pyx_XDECREF(__pyx_t_1);
5750   __Pyx_XDECREF(__pyx_t_3);
5751   __Pyx_AddTraceback("aiohttp._http_parser.RawResponseMessage.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
5752   __pyx_r = NULL;
5753   __pyx_L0:;
5754   __Pyx_XDECREF(__pyx_v_sinfo);
5755   __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
5756   __Pyx_XGIVEREF(__pyx_r);
5757   __Pyx_RefNannyFinishContext();
5758   return __pyx_r;
5759 }
5760 
5761 /* "aiohttp/_http_parser.pyx":211
5762  * @cython.freelist(DEFAULT_FREELIST_SIZE)
5763  * cdef class RawResponseMessage:
5764  *     cdef readonly object version  # HttpVersion             # <<<<<<<<<<<<<<
5765  *     cdef readonly int code
5766  *     cdef readonly str reason
5767  */
5768 
5769 /* Python wrapper */
5770 static PyObject *__pyx_pw_7aiohttp_12_http_parser_18RawResponseMessage_7version_1__get__(PyObject *__pyx_v_self); /*proto*/
__pyx_pw_7aiohttp_12_http_parser_18RawResponseMessage_7version_1__get__(PyObject * __pyx_v_self)5771 static PyObject *__pyx_pw_7aiohttp_12_http_parser_18RawResponseMessage_7version_1__get__(PyObject *__pyx_v_self) {
5772   PyObject *__pyx_r = 0;
5773   __Pyx_RefNannyDeclarations
5774   __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
5775   __pyx_r = __pyx_pf_7aiohttp_12_http_parser_18RawResponseMessage_7version___get__(((struct __pyx_obj_7aiohttp_12_http_parser_RawResponseMessage *)__pyx_v_self));
5776 
5777   /* function exit code */
5778   __Pyx_RefNannyFinishContext();
5779   return __pyx_r;
5780 }
5781 
__pyx_pf_7aiohttp_12_http_parser_18RawResponseMessage_7version___get__(struct __pyx_obj_7aiohttp_12_http_parser_RawResponseMessage * __pyx_v_self)5782 static PyObject *__pyx_pf_7aiohttp_12_http_parser_18RawResponseMessage_7version___get__(struct __pyx_obj_7aiohttp_12_http_parser_RawResponseMessage *__pyx_v_self) {
5783   PyObject *__pyx_r = NULL;
5784   __Pyx_RefNannyDeclarations
5785   __Pyx_RefNannySetupContext("__get__", 0);
5786   __Pyx_XDECREF(__pyx_r);
5787   __Pyx_INCREF(__pyx_v_self->version);
5788   __pyx_r = __pyx_v_self->version;
5789   goto __pyx_L0;
5790 
5791   /* function exit code */
5792   __pyx_L0:;
5793   __Pyx_XGIVEREF(__pyx_r);
5794   __Pyx_RefNannyFinishContext();
5795   return __pyx_r;
5796 }
5797 
5798 /* "aiohttp/_http_parser.pyx":212
5799  * cdef class RawResponseMessage:
5800  *     cdef readonly object version  # HttpVersion
5801  *     cdef readonly int code             # <<<<<<<<<<<<<<
5802  *     cdef readonly str reason
5803  *     cdef readonly object headers  # CIMultiDict
5804  */
5805 
5806 /* Python wrapper */
5807 static PyObject *__pyx_pw_7aiohttp_12_http_parser_18RawResponseMessage_4code_1__get__(PyObject *__pyx_v_self); /*proto*/
__pyx_pw_7aiohttp_12_http_parser_18RawResponseMessage_4code_1__get__(PyObject * __pyx_v_self)5808 static PyObject *__pyx_pw_7aiohttp_12_http_parser_18RawResponseMessage_4code_1__get__(PyObject *__pyx_v_self) {
5809   PyObject *__pyx_r = 0;
5810   __Pyx_RefNannyDeclarations
5811   __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
5812   __pyx_r = __pyx_pf_7aiohttp_12_http_parser_18RawResponseMessage_4code___get__(((struct __pyx_obj_7aiohttp_12_http_parser_RawResponseMessage *)__pyx_v_self));
5813 
5814   /* function exit code */
5815   __Pyx_RefNannyFinishContext();
5816   return __pyx_r;
5817 }
5818 
__pyx_pf_7aiohttp_12_http_parser_18RawResponseMessage_4code___get__(struct __pyx_obj_7aiohttp_12_http_parser_RawResponseMessage * __pyx_v_self)5819 static PyObject *__pyx_pf_7aiohttp_12_http_parser_18RawResponseMessage_4code___get__(struct __pyx_obj_7aiohttp_12_http_parser_RawResponseMessage *__pyx_v_self) {
5820   PyObject *__pyx_r = NULL;
5821   __Pyx_RefNannyDeclarations
5822   PyObject *__pyx_t_1 = NULL;
5823   int __pyx_lineno = 0;
5824   const char *__pyx_filename = NULL;
5825   int __pyx_clineno = 0;
5826   __Pyx_RefNannySetupContext("__get__", 0);
5827   __Pyx_XDECREF(__pyx_r);
5828   __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->code); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 212, __pyx_L1_error)
5829   __Pyx_GOTREF(__pyx_t_1);
5830   __pyx_r = __pyx_t_1;
5831   __pyx_t_1 = 0;
5832   goto __pyx_L0;
5833 
5834   /* function exit code */
5835   __pyx_L1_error:;
5836   __Pyx_XDECREF(__pyx_t_1);
5837   __Pyx_AddTraceback("aiohttp._http_parser.RawResponseMessage.code.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
5838   __pyx_r = NULL;
5839   __pyx_L0:;
5840   __Pyx_XGIVEREF(__pyx_r);
5841   __Pyx_RefNannyFinishContext();
5842   return __pyx_r;
5843 }
5844 
5845 /* "aiohttp/_http_parser.pyx":213
5846  *     cdef readonly object version  # HttpVersion
5847  *     cdef readonly int code
5848  *     cdef readonly str reason             # <<<<<<<<<<<<<<
5849  *     cdef readonly object headers  # CIMultiDict
5850  *     cdef readonly object raw_headers  # tuple
5851  */
5852 
5853 /* Python wrapper */
5854 static PyObject *__pyx_pw_7aiohttp_12_http_parser_18RawResponseMessage_6reason_1__get__(PyObject *__pyx_v_self); /*proto*/
__pyx_pw_7aiohttp_12_http_parser_18RawResponseMessage_6reason_1__get__(PyObject * __pyx_v_self)5855 static PyObject *__pyx_pw_7aiohttp_12_http_parser_18RawResponseMessage_6reason_1__get__(PyObject *__pyx_v_self) {
5856   PyObject *__pyx_r = 0;
5857   __Pyx_RefNannyDeclarations
5858   __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
5859   __pyx_r = __pyx_pf_7aiohttp_12_http_parser_18RawResponseMessage_6reason___get__(((struct __pyx_obj_7aiohttp_12_http_parser_RawResponseMessage *)__pyx_v_self));
5860 
5861   /* function exit code */
5862   __Pyx_RefNannyFinishContext();
5863   return __pyx_r;
5864 }
5865 
__pyx_pf_7aiohttp_12_http_parser_18RawResponseMessage_6reason___get__(struct __pyx_obj_7aiohttp_12_http_parser_RawResponseMessage * __pyx_v_self)5866 static PyObject *__pyx_pf_7aiohttp_12_http_parser_18RawResponseMessage_6reason___get__(struct __pyx_obj_7aiohttp_12_http_parser_RawResponseMessage *__pyx_v_self) {
5867   PyObject *__pyx_r = NULL;
5868   __Pyx_RefNannyDeclarations
5869   __Pyx_RefNannySetupContext("__get__", 0);
5870   __Pyx_XDECREF(__pyx_r);
5871   __Pyx_INCREF(__pyx_v_self->reason);
5872   __pyx_r = __pyx_v_self->reason;
5873   goto __pyx_L0;
5874 
5875   /* function exit code */
5876   __pyx_L0:;
5877   __Pyx_XGIVEREF(__pyx_r);
5878   __Pyx_RefNannyFinishContext();
5879   return __pyx_r;
5880 }
5881 
5882 /* "aiohttp/_http_parser.pyx":214
5883  *     cdef readonly int code
5884  *     cdef readonly str reason
5885  *     cdef readonly object headers  # CIMultiDict             # <<<<<<<<<<<<<<
5886  *     cdef readonly object raw_headers  # tuple
5887  *     cdef readonly object should_close
5888  */
5889 
5890 /* Python wrapper */
5891 static PyObject *__pyx_pw_7aiohttp_12_http_parser_18RawResponseMessage_7headers_1__get__(PyObject *__pyx_v_self); /*proto*/
__pyx_pw_7aiohttp_12_http_parser_18RawResponseMessage_7headers_1__get__(PyObject * __pyx_v_self)5892 static PyObject *__pyx_pw_7aiohttp_12_http_parser_18RawResponseMessage_7headers_1__get__(PyObject *__pyx_v_self) {
5893   PyObject *__pyx_r = 0;
5894   __Pyx_RefNannyDeclarations
5895   __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
5896   __pyx_r = __pyx_pf_7aiohttp_12_http_parser_18RawResponseMessage_7headers___get__(((struct __pyx_obj_7aiohttp_12_http_parser_RawResponseMessage *)__pyx_v_self));
5897 
5898   /* function exit code */
5899   __Pyx_RefNannyFinishContext();
5900   return __pyx_r;
5901 }
5902 
__pyx_pf_7aiohttp_12_http_parser_18RawResponseMessage_7headers___get__(struct __pyx_obj_7aiohttp_12_http_parser_RawResponseMessage * __pyx_v_self)5903 static PyObject *__pyx_pf_7aiohttp_12_http_parser_18RawResponseMessage_7headers___get__(struct __pyx_obj_7aiohttp_12_http_parser_RawResponseMessage *__pyx_v_self) {
5904   PyObject *__pyx_r = NULL;
5905   __Pyx_RefNannyDeclarations
5906   __Pyx_RefNannySetupContext("__get__", 0);
5907   __Pyx_XDECREF(__pyx_r);
5908   __Pyx_INCREF(__pyx_v_self->headers);
5909   __pyx_r = __pyx_v_self->headers;
5910   goto __pyx_L0;
5911 
5912   /* function exit code */
5913   __pyx_L0:;
5914   __Pyx_XGIVEREF(__pyx_r);
5915   __Pyx_RefNannyFinishContext();
5916   return __pyx_r;
5917 }
5918 
5919 /* "aiohttp/_http_parser.pyx":215
5920  *     cdef readonly str reason
5921  *     cdef readonly object headers  # CIMultiDict
5922  *     cdef readonly object raw_headers  # tuple             # <<<<<<<<<<<<<<
5923  *     cdef readonly object should_close
5924  *     cdef readonly object compression
5925  */
5926 
5927 /* Python wrapper */
5928 static PyObject *__pyx_pw_7aiohttp_12_http_parser_18RawResponseMessage_11raw_headers_1__get__(PyObject *__pyx_v_self); /*proto*/
__pyx_pw_7aiohttp_12_http_parser_18RawResponseMessage_11raw_headers_1__get__(PyObject * __pyx_v_self)5929 static PyObject *__pyx_pw_7aiohttp_12_http_parser_18RawResponseMessage_11raw_headers_1__get__(PyObject *__pyx_v_self) {
5930   PyObject *__pyx_r = 0;
5931   __Pyx_RefNannyDeclarations
5932   __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
5933   __pyx_r = __pyx_pf_7aiohttp_12_http_parser_18RawResponseMessage_11raw_headers___get__(((struct __pyx_obj_7aiohttp_12_http_parser_RawResponseMessage *)__pyx_v_self));
5934 
5935   /* function exit code */
5936   __Pyx_RefNannyFinishContext();
5937   return __pyx_r;
5938 }
5939 
__pyx_pf_7aiohttp_12_http_parser_18RawResponseMessage_11raw_headers___get__(struct __pyx_obj_7aiohttp_12_http_parser_RawResponseMessage * __pyx_v_self)5940 static PyObject *__pyx_pf_7aiohttp_12_http_parser_18RawResponseMessage_11raw_headers___get__(struct __pyx_obj_7aiohttp_12_http_parser_RawResponseMessage *__pyx_v_self) {
5941   PyObject *__pyx_r = NULL;
5942   __Pyx_RefNannyDeclarations
5943   __Pyx_RefNannySetupContext("__get__", 0);
5944   __Pyx_XDECREF(__pyx_r);
5945   __Pyx_INCREF(__pyx_v_self->raw_headers);
5946   __pyx_r = __pyx_v_self->raw_headers;
5947   goto __pyx_L0;
5948 
5949   /* function exit code */
5950   __pyx_L0:;
5951   __Pyx_XGIVEREF(__pyx_r);
5952   __Pyx_RefNannyFinishContext();
5953   return __pyx_r;
5954 }
5955 
5956 /* "aiohttp/_http_parser.pyx":216
5957  *     cdef readonly object headers  # CIMultiDict
5958  *     cdef readonly object raw_headers  # tuple
5959  *     cdef readonly object should_close             # <<<<<<<<<<<<<<
5960  *     cdef readonly object compression
5961  *     cdef readonly object upgrade
5962  */
5963 
5964 /* Python wrapper */
5965 static PyObject *__pyx_pw_7aiohttp_12_http_parser_18RawResponseMessage_12should_close_1__get__(PyObject *__pyx_v_self); /*proto*/
__pyx_pw_7aiohttp_12_http_parser_18RawResponseMessage_12should_close_1__get__(PyObject * __pyx_v_self)5966 static PyObject *__pyx_pw_7aiohttp_12_http_parser_18RawResponseMessage_12should_close_1__get__(PyObject *__pyx_v_self) {
5967   PyObject *__pyx_r = 0;
5968   __Pyx_RefNannyDeclarations
5969   __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
5970   __pyx_r = __pyx_pf_7aiohttp_12_http_parser_18RawResponseMessage_12should_close___get__(((struct __pyx_obj_7aiohttp_12_http_parser_RawResponseMessage *)__pyx_v_self));
5971 
5972   /* function exit code */
5973   __Pyx_RefNannyFinishContext();
5974   return __pyx_r;
5975 }
5976 
__pyx_pf_7aiohttp_12_http_parser_18RawResponseMessage_12should_close___get__(struct __pyx_obj_7aiohttp_12_http_parser_RawResponseMessage * __pyx_v_self)5977 static PyObject *__pyx_pf_7aiohttp_12_http_parser_18RawResponseMessage_12should_close___get__(struct __pyx_obj_7aiohttp_12_http_parser_RawResponseMessage *__pyx_v_self) {
5978   PyObject *__pyx_r = NULL;
5979   __Pyx_RefNannyDeclarations
5980   __Pyx_RefNannySetupContext("__get__", 0);
5981   __Pyx_XDECREF(__pyx_r);
5982   __Pyx_INCREF(__pyx_v_self->should_close);
5983   __pyx_r = __pyx_v_self->should_close;
5984   goto __pyx_L0;
5985 
5986   /* function exit code */
5987   __pyx_L0:;
5988   __Pyx_XGIVEREF(__pyx_r);
5989   __Pyx_RefNannyFinishContext();
5990   return __pyx_r;
5991 }
5992 
5993 /* "aiohttp/_http_parser.pyx":217
5994  *     cdef readonly object raw_headers  # tuple
5995  *     cdef readonly object should_close
5996  *     cdef readonly object compression             # <<<<<<<<<<<<<<
5997  *     cdef readonly object upgrade
5998  *     cdef readonly object chunked
5999  */
6000 
6001 /* Python wrapper */
6002 static PyObject *__pyx_pw_7aiohttp_12_http_parser_18RawResponseMessage_11compression_1__get__(PyObject *__pyx_v_self); /*proto*/
__pyx_pw_7aiohttp_12_http_parser_18RawResponseMessage_11compression_1__get__(PyObject * __pyx_v_self)6003 static PyObject *__pyx_pw_7aiohttp_12_http_parser_18RawResponseMessage_11compression_1__get__(PyObject *__pyx_v_self) {
6004   PyObject *__pyx_r = 0;
6005   __Pyx_RefNannyDeclarations
6006   __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
6007   __pyx_r = __pyx_pf_7aiohttp_12_http_parser_18RawResponseMessage_11compression___get__(((struct __pyx_obj_7aiohttp_12_http_parser_RawResponseMessage *)__pyx_v_self));
6008 
6009   /* function exit code */
6010   __Pyx_RefNannyFinishContext();
6011   return __pyx_r;
6012 }
6013 
__pyx_pf_7aiohttp_12_http_parser_18RawResponseMessage_11compression___get__(struct __pyx_obj_7aiohttp_12_http_parser_RawResponseMessage * __pyx_v_self)6014 static PyObject *__pyx_pf_7aiohttp_12_http_parser_18RawResponseMessage_11compression___get__(struct __pyx_obj_7aiohttp_12_http_parser_RawResponseMessage *__pyx_v_self) {
6015   PyObject *__pyx_r = NULL;
6016   __Pyx_RefNannyDeclarations
6017   __Pyx_RefNannySetupContext("__get__", 0);
6018   __Pyx_XDECREF(__pyx_r);
6019   __Pyx_INCREF(__pyx_v_self->compression);
6020   __pyx_r = __pyx_v_self->compression;
6021   goto __pyx_L0;
6022 
6023   /* function exit code */
6024   __pyx_L0:;
6025   __Pyx_XGIVEREF(__pyx_r);
6026   __Pyx_RefNannyFinishContext();
6027   return __pyx_r;
6028 }
6029 
6030 /* "aiohttp/_http_parser.pyx":218
6031  *     cdef readonly object should_close
6032  *     cdef readonly object compression
6033  *     cdef readonly object upgrade             # <<<<<<<<<<<<<<
6034  *     cdef readonly object chunked
6035  *
6036  */
6037 
6038 /* Python wrapper */
6039 static PyObject *__pyx_pw_7aiohttp_12_http_parser_18RawResponseMessage_7upgrade_1__get__(PyObject *__pyx_v_self); /*proto*/
__pyx_pw_7aiohttp_12_http_parser_18RawResponseMessage_7upgrade_1__get__(PyObject * __pyx_v_self)6040 static PyObject *__pyx_pw_7aiohttp_12_http_parser_18RawResponseMessage_7upgrade_1__get__(PyObject *__pyx_v_self) {
6041   PyObject *__pyx_r = 0;
6042   __Pyx_RefNannyDeclarations
6043   __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
6044   __pyx_r = __pyx_pf_7aiohttp_12_http_parser_18RawResponseMessage_7upgrade___get__(((struct __pyx_obj_7aiohttp_12_http_parser_RawResponseMessage *)__pyx_v_self));
6045 
6046   /* function exit code */
6047   __Pyx_RefNannyFinishContext();
6048   return __pyx_r;
6049 }
6050 
__pyx_pf_7aiohttp_12_http_parser_18RawResponseMessage_7upgrade___get__(struct __pyx_obj_7aiohttp_12_http_parser_RawResponseMessage * __pyx_v_self)6051 static PyObject *__pyx_pf_7aiohttp_12_http_parser_18RawResponseMessage_7upgrade___get__(struct __pyx_obj_7aiohttp_12_http_parser_RawResponseMessage *__pyx_v_self) {
6052   PyObject *__pyx_r = NULL;
6053   __Pyx_RefNannyDeclarations
6054   __Pyx_RefNannySetupContext("__get__", 0);
6055   __Pyx_XDECREF(__pyx_r);
6056   __Pyx_INCREF(__pyx_v_self->upgrade);
6057   __pyx_r = __pyx_v_self->upgrade;
6058   goto __pyx_L0;
6059 
6060   /* function exit code */
6061   __pyx_L0:;
6062   __Pyx_XGIVEREF(__pyx_r);
6063   __Pyx_RefNannyFinishContext();
6064   return __pyx_r;
6065 }
6066 
6067 /* "aiohttp/_http_parser.pyx":219
6068  *     cdef readonly object compression
6069  *     cdef readonly object upgrade
6070  *     cdef readonly object chunked             # <<<<<<<<<<<<<<
6071  *
6072  *     def __init__(self, version, code, reason, headers, raw_headers,
6073  */
6074 
6075 /* Python wrapper */
6076 static PyObject *__pyx_pw_7aiohttp_12_http_parser_18RawResponseMessage_7chunked_1__get__(PyObject *__pyx_v_self); /*proto*/
__pyx_pw_7aiohttp_12_http_parser_18RawResponseMessage_7chunked_1__get__(PyObject * __pyx_v_self)6077 static PyObject *__pyx_pw_7aiohttp_12_http_parser_18RawResponseMessage_7chunked_1__get__(PyObject *__pyx_v_self) {
6078   PyObject *__pyx_r = 0;
6079   __Pyx_RefNannyDeclarations
6080   __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
6081   __pyx_r = __pyx_pf_7aiohttp_12_http_parser_18RawResponseMessage_7chunked___get__(((struct __pyx_obj_7aiohttp_12_http_parser_RawResponseMessage *)__pyx_v_self));
6082 
6083   /* function exit code */
6084   __Pyx_RefNannyFinishContext();
6085   return __pyx_r;
6086 }
6087 
__pyx_pf_7aiohttp_12_http_parser_18RawResponseMessage_7chunked___get__(struct __pyx_obj_7aiohttp_12_http_parser_RawResponseMessage * __pyx_v_self)6088 static PyObject *__pyx_pf_7aiohttp_12_http_parser_18RawResponseMessage_7chunked___get__(struct __pyx_obj_7aiohttp_12_http_parser_RawResponseMessage *__pyx_v_self) {
6089   PyObject *__pyx_r = NULL;
6090   __Pyx_RefNannyDeclarations
6091   __Pyx_RefNannySetupContext("__get__", 0);
6092   __Pyx_XDECREF(__pyx_r);
6093   __Pyx_INCREF(__pyx_v_self->chunked);
6094   __pyx_r = __pyx_v_self->chunked;
6095   goto __pyx_L0;
6096 
6097   /* function exit code */
6098   __pyx_L0:;
6099   __Pyx_XGIVEREF(__pyx_r);
6100   __Pyx_RefNannyFinishContext();
6101   return __pyx_r;
6102 }
6103 
6104 /* "(tree fragment)":1
6105  * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
6106  *     cdef tuple state
6107  *     cdef object _dict
6108  */
6109 
6110 /* Python wrapper */
6111 static PyObject *__pyx_pw_7aiohttp_12_http_parser_18RawResponseMessage_5__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
__pyx_pw_7aiohttp_12_http_parser_18RawResponseMessage_5__reduce_cython__(PyObject * __pyx_v_self,CYTHON_UNUSED PyObject * unused)6112 static PyObject *__pyx_pw_7aiohttp_12_http_parser_18RawResponseMessage_5__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
6113   PyObject *__pyx_r = 0;
6114   __Pyx_RefNannyDeclarations
6115   __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
6116   __pyx_r = __pyx_pf_7aiohttp_12_http_parser_18RawResponseMessage_4__reduce_cython__(((struct __pyx_obj_7aiohttp_12_http_parser_RawResponseMessage *)__pyx_v_self));
6117 
6118   /* function exit code */
6119   __Pyx_RefNannyFinishContext();
6120   return __pyx_r;
6121 }
6122 
__pyx_pf_7aiohttp_12_http_parser_18RawResponseMessage_4__reduce_cython__(struct __pyx_obj_7aiohttp_12_http_parser_RawResponseMessage * __pyx_v_self)6123 static PyObject *__pyx_pf_7aiohttp_12_http_parser_18RawResponseMessage_4__reduce_cython__(struct __pyx_obj_7aiohttp_12_http_parser_RawResponseMessage *__pyx_v_self) {
6124   PyObject *__pyx_v_state = 0;
6125   PyObject *__pyx_v__dict = 0;
6126   int __pyx_v_use_setstate;
6127   PyObject *__pyx_r = NULL;
6128   __Pyx_RefNannyDeclarations
6129   PyObject *__pyx_t_1 = NULL;
6130   PyObject *__pyx_t_2 = NULL;
6131   int __pyx_t_3;
6132   int __pyx_t_4;
6133   int __pyx_t_5;
6134   PyObject *__pyx_t_6 = NULL;
6135   int __pyx_lineno = 0;
6136   const char *__pyx_filename = NULL;
6137   int __pyx_clineno = 0;
6138   __Pyx_RefNannySetupContext("__reduce_cython__", 0);
6139 
6140   /* "(tree fragment)":5
6141  *     cdef object _dict
6142  *     cdef bint use_setstate
6143  *     state = (self.chunked, self.code, self.compression, self.headers, self.raw_headers, self.reason, self.should_close, self.upgrade, self.version)             # <<<<<<<<<<<<<<
6144  *     _dict = getattr(self, '__dict__', None)
6145  *     if _dict is not None:
6146  */
6147   __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->code); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
6148   __Pyx_GOTREF(__pyx_t_1);
6149   __pyx_t_2 = PyTuple_New(9); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error)
6150   __Pyx_GOTREF(__pyx_t_2);
6151   __Pyx_INCREF(__pyx_v_self->chunked);
6152   __Pyx_GIVEREF(__pyx_v_self->chunked);
6153   PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self->chunked);
6154   __Pyx_GIVEREF(__pyx_t_1);
6155   PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1);
6156   __Pyx_INCREF(__pyx_v_self->compression);
6157   __Pyx_GIVEREF(__pyx_v_self->compression);
6158   PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_self->compression);
6159   __Pyx_INCREF(__pyx_v_self->headers);
6160   __Pyx_GIVEREF(__pyx_v_self->headers);
6161   PyTuple_SET_ITEM(__pyx_t_2, 3, __pyx_v_self->headers);
6162   __Pyx_INCREF(__pyx_v_self->raw_headers);
6163   __Pyx_GIVEREF(__pyx_v_self->raw_headers);
6164   PyTuple_SET_ITEM(__pyx_t_2, 4, __pyx_v_self->raw_headers);
6165   __Pyx_INCREF(__pyx_v_self->reason);
6166   __Pyx_GIVEREF(__pyx_v_self->reason);
6167   PyTuple_SET_ITEM(__pyx_t_2, 5, __pyx_v_self->reason);
6168   __Pyx_INCREF(__pyx_v_self->should_close);
6169   __Pyx_GIVEREF(__pyx_v_self->should_close);
6170   PyTuple_SET_ITEM(__pyx_t_2, 6, __pyx_v_self->should_close);
6171   __Pyx_INCREF(__pyx_v_self->upgrade);
6172   __Pyx_GIVEREF(__pyx_v_self->upgrade);
6173   PyTuple_SET_ITEM(__pyx_t_2, 7, __pyx_v_self->upgrade);
6174   __Pyx_INCREF(__pyx_v_self->version);
6175   __Pyx_GIVEREF(__pyx_v_self->version);
6176   PyTuple_SET_ITEM(__pyx_t_2, 8, __pyx_v_self->version);
6177   __pyx_t_1 = 0;
6178   __pyx_v_state = ((PyObject*)__pyx_t_2);
6179   __pyx_t_2 = 0;
6180 
6181   /* "(tree fragment)":6
6182  *     cdef bint use_setstate
6183  *     state = (self.chunked, self.code, self.compression, self.headers, self.raw_headers, self.reason, self.should_close, self.upgrade, self.version)
6184  *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
6185  *     if _dict is not None:
6186  *         state += (_dict,)
6187  */
6188   __pyx_t_2 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 6, __pyx_L1_error)
6189   __Pyx_GOTREF(__pyx_t_2);
6190   __pyx_v__dict = __pyx_t_2;
6191   __pyx_t_2 = 0;
6192 
6193   /* "(tree fragment)":7
6194  *     state = (self.chunked, self.code, self.compression, self.headers, self.raw_headers, self.reason, self.should_close, self.upgrade, self.version)
6195  *     _dict = getattr(self, '__dict__', None)
6196  *     if _dict is not None:             # <<<<<<<<<<<<<<
6197  *         state += (_dict,)
6198  *         use_setstate = True
6199  */
6200   __pyx_t_3 = (__pyx_v__dict != Py_None);
6201   __pyx_t_4 = (__pyx_t_3 != 0);
6202   if (__pyx_t_4) {
6203 
6204     /* "(tree fragment)":8
6205  *     _dict = getattr(self, '__dict__', None)
6206  *     if _dict is not None:
6207  *         state += (_dict,)             # <<<<<<<<<<<<<<
6208  *         use_setstate = True
6209  *     else:
6210  */
6211     __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 8, __pyx_L1_error)
6212     __Pyx_GOTREF(__pyx_t_2);
6213     __Pyx_INCREF(__pyx_v__dict);
6214     __Pyx_GIVEREF(__pyx_v__dict);
6215     PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v__dict);
6216     __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 8, __pyx_L1_error)
6217     __Pyx_GOTREF(__pyx_t_1);
6218     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
6219     __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_1));
6220     __pyx_t_1 = 0;
6221 
6222     /* "(tree fragment)":9
6223  *     if _dict is not None:
6224  *         state += (_dict,)
6225  *         use_setstate = True             # <<<<<<<<<<<<<<
6226  *     else:
6227  *         use_setstate = self.chunked is not None or self.compression is not None or self.headers is not None or self.raw_headers is not None or self.reason is not None or self.should_close is not None or self.upgrade is not None or self.version is not None
6228  */
6229     __pyx_v_use_setstate = 1;
6230 
6231     /* "(tree fragment)":7
6232  *     state = (self.chunked, self.code, self.compression, self.headers, self.raw_headers, self.reason, self.should_close, self.upgrade, self.version)
6233  *     _dict = getattr(self, '__dict__', None)
6234  *     if _dict is not None:             # <<<<<<<<<<<<<<
6235  *         state += (_dict,)
6236  *         use_setstate = True
6237  */
6238     goto __pyx_L3;
6239   }
6240 
6241   /* "(tree fragment)":11
6242  *         use_setstate = True
6243  *     else:
6244  *         use_setstate = self.chunked is not None or self.compression is not None or self.headers is not None or self.raw_headers is not None or self.reason is not None or self.should_close is not None or self.upgrade is not None or self.version is not None             # <<<<<<<<<<<<<<
6245  *     if use_setstate:
6246  *         return __pyx_unpickle_RawResponseMessage, (type(self), 0xc7706dc, None), state
6247  */
6248   /*else*/ {
6249     __pyx_t_3 = (__pyx_v_self->chunked != Py_None);
6250     __pyx_t_5 = (__pyx_t_3 != 0);
6251     if (!__pyx_t_5) {
6252     } else {
6253       __pyx_t_4 = __pyx_t_5;
6254       goto __pyx_L4_bool_binop_done;
6255     }
6256     __pyx_t_5 = (__pyx_v_self->compression != Py_None);
6257     __pyx_t_3 = (__pyx_t_5 != 0);
6258     if (!__pyx_t_3) {
6259     } else {
6260       __pyx_t_4 = __pyx_t_3;
6261       goto __pyx_L4_bool_binop_done;
6262     }
6263     __pyx_t_3 = (__pyx_v_self->headers != Py_None);
6264     __pyx_t_5 = (__pyx_t_3 != 0);
6265     if (!__pyx_t_5) {
6266     } else {
6267       __pyx_t_4 = __pyx_t_5;
6268       goto __pyx_L4_bool_binop_done;
6269     }
6270     __pyx_t_5 = (__pyx_v_self->raw_headers != Py_None);
6271     __pyx_t_3 = (__pyx_t_5 != 0);
6272     if (!__pyx_t_3) {
6273     } else {
6274       __pyx_t_4 = __pyx_t_3;
6275       goto __pyx_L4_bool_binop_done;
6276     }
6277     __pyx_t_3 = (__pyx_v_self->reason != ((PyObject*)Py_None));
6278     __pyx_t_5 = (__pyx_t_3 != 0);
6279     if (!__pyx_t_5) {
6280     } else {
6281       __pyx_t_4 = __pyx_t_5;
6282       goto __pyx_L4_bool_binop_done;
6283     }
6284     __pyx_t_5 = (__pyx_v_self->should_close != Py_None);
6285     __pyx_t_3 = (__pyx_t_5 != 0);
6286     if (!__pyx_t_3) {
6287     } else {
6288       __pyx_t_4 = __pyx_t_3;
6289       goto __pyx_L4_bool_binop_done;
6290     }
6291     __pyx_t_3 = (__pyx_v_self->upgrade != Py_None);
6292     __pyx_t_5 = (__pyx_t_3 != 0);
6293     if (!__pyx_t_5) {
6294     } else {
6295       __pyx_t_4 = __pyx_t_5;
6296       goto __pyx_L4_bool_binop_done;
6297     }
6298     __pyx_t_5 = (__pyx_v_self->version != Py_None);
6299     __pyx_t_3 = (__pyx_t_5 != 0);
6300     __pyx_t_4 = __pyx_t_3;
6301     __pyx_L4_bool_binop_done:;
6302     __pyx_v_use_setstate = __pyx_t_4;
6303   }
6304   __pyx_L3:;
6305 
6306   /* "(tree fragment)":12
6307  *     else:
6308  *         use_setstate = self.chunked is not None or self.compression is not None or self.headers is not None or self.raw_headers is not None or self.reason is not None or self.should_close is not None or self.upgrade is not None or self.version is not None
6309  *     if use_setstate:             # <<<<<<<<<<<<<<
6310  *         return __pyx_unpickle_RawResponseMessage, (type(self), 0xc7706dc, None), state
6311  *     else:
6312  */
6313   __pyx_t_4 = (__pyx_v_use_setstate != 0);
6314   if (__pyx_t_4) {
6315 
6316     /* "(tree fragment)":13
6317  *         use_setstate = self.chunked is not None or self.compression is not None or self.headers is not None or self.raw_headers is not None or self.reason is not None or self.should_close is not None or self.upgrade is not None or self.version is not None
6318  *     if use_setstate:
6319  *         return __pyx_unpickle_RawResponseMessage, (type(self), 0xc7706dc, None), state             # <<<<<<<<<<<<<<
6320  *     else:
6321  *         return __pyx_unpickle_RawResponseMessage, (type(self), 0xc7706dc, state)
6322  */
6323     __Pyx_XDECREF(__pyx_r);
6324     __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_pyx_unpickle_RawResponseMessag); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 13, __pyx_L1_error)
6325     __Pyx_GOTREF(__pyx_t_1);
6326     __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 13, __pyx_L1_error)
6327     __Pyx_GOTREF(__pyx_t_2);
6328     __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
6329     __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
6330     PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
6331     __Pyx_INCREF(__pyx_int_209127132);
6332     __Pyx_GIVEREF(__pyx_int_209127132);
6333     PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_int_209127132);
6334     __Pyx_INCREF(Py_None);
6335     __Pyx_GIVEREF(Py_None);
6336     PyTuple_SET_ITEM(__pyx_t_2, 2, Py_None);
6337     __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 13, __pyx_L1_error)
6338     __Pyx_GOTREF(__pyx_t_6);
6339     __Pyx_GIVEREF(__pyx_t_1);
6340     PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1);
6341     __Pyx_GIVEREF(__pyx_t_2);
6342     PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_2);
6343     __Pyx_INCREF(__pyx_v_state);
6344     __Pyx_GIVEREF(__pyx_v_state);
6345     PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_v_state);
6346     __pyx_t_1 = 0;
6347     __pyx_t_2 = 0;
6348     __pyx_r = __pyx_t_6;
6349     __pyx_t_6 = 0;
6350     goto __pyx_L0;
6351 
6352     /* "(tree fragment)":12
6353  *     else:
6354  *         use_setstate = self.chunked is not None or self.compression is not None or self.headers is not None or self.raw_headers is not None or self.reason is not None or self.should_close is not None or self.upgrade is not None or self.version is not None
6355  *     if use_setstate:             # <<<<<<<<<<<<<<
6356  *         return __pyx_unpickle_RawResponseMessage, (type(self), 0xc7706dc, None), state
6357  *     else:
6358  */
6359   }
6360 
6361   /* "(tree fragment)":15
6362  *         return __pyx_unpickle_RawResponseMessage, (type(self), 0xc7706dc, None), state
6363  *     else:
6364  *         return __pyx_unpickle_RawResponseMessage, (type(self), 0xc7706dc, state)             # <<<<<<<<<<<<<<
6365  * def __setstate_cython__(self, __pyx_state):
6366  *     __pyx_unpickle_RawResponseMessage__set_state(self, __pyx_state)
6367  */
6368   /*else*/ {
6369     __Pyx_XDECREF(__pyx_r);
6370     __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_pyx_unpickle_RawResponseMessag); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 15, __pyx_L1_error)
6371     __Pyx_GOTREF(__pyx_t_6);
6372     __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 15, __pyx_L1_error)
6373     __Pyx_GOTREF(__pyx_t_2);
6374     __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
6375     __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
6376     PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
6377     __Pyx_INCREF(__pyx_int_209127132);
6378     __Pyx_GIVEREF(__pyx_int_209127132);
6379     PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_int_209127132);
6380     __Pyx_INCREF(__pyx_v_state);
6381     __Pyx_GIVEREF(__pyx_v_state);
6382     PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state);
6383     __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 15, __pyx_L1_error)
6384     __Pyx_GOTREF(__pyx_t_1);
6385     __Pyx_GIVEREF(__pyx_t_6);
6386     PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_6);
6387     __Pyx_GIVEREF(__pyx_t_2);
6388     PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_2);
6389     __pyx_t_6 = 0;
6390     __pyx_t_2 = 0;
6391     __pyx_r = __pyx_t_1;
6392     __pyx_t_1 = 0;
6393     goto __pyx_L0;
6394   }
6395 
6396   /* "(tree fragment)":1
6397  * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
6398  *     cdef tuple state
6399  *     cdef object _dict
6400  */
6401 
6402   /* function exit code */
6403   __pyx_L1_error:;
6404   __Pyx_XDECREF(__pyx_t_1);
6405   __Pyx_XDECREF(__pyx_t_2);
6406   __Pyx_XDECREF(__pyx_t_6);
6407   __Pyx_AddTraceback("aiohttp._http_parser.RawResponseMessage.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
6408   __pyx_r = NULL;
6409   __pyx_L0:;
6410   __Pyx_XDECREF(__pyx_v_state);
6411   __Pyx_XDECREF(__pyx_v__dict);
6412   __Pyx_XGIVEREF(__pyx_r);
6413   __Pyx_RefNannyFinishContext();
6414   return __pyx_r;
6415 }
6416 
6417 /* "(tree fragment)":16
6418  *     else:
6419  *         return __pyx_unpickle_RawResponseMessage, (type(self), 0xc7706dc, state)
6420  * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
6421  *     __pyx_unpickle_RawResponseMessage__set_state(self, __pyx_state)
6422  */
6423 
6424 /* Python wrapper */
6425 static PyObject *__pyx_pw_7aiohttp_12_http_parser_18RawResponseMessage_7__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
__pyx_pw_7aiohttp_12_http_parser_18RawResponseMessage_7__setstate_cython__(PyObject * __pyx_v_self,PyObject * __pyx_v___pyx_state)6426 static PyObject *__pyx_pw_7aiohttp_12_http_parser_18RawResponseMessage_7__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
6427   PyObject *__pyx_r = 0;
6428   __Pyx_RefNannyDeclarations
6429   __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
6430   __pyx_r = __pyx_pf_7aiohttp_12_http_parser_18RawResponseMessage_6__setstate_cython__(((struct __pyx_obj_7aiohttp_12_http_parser_RawResponseMessage *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));
6431 
6432   /* function exit code */
6433   __Pyx_RefNannyFinishContext();
6434   return __pyx_r;
6435 }
6436 
__pyx_pf_7aiohttp_12_http_parser_18RawResponseMessage_6__setstate_cython__(struct __pyx_obj_7aiohttp_12_http_parser_RawResponseMessage * __pyx_v_self,PyObject * __pyx_v___pyx_state)6437 static PyObject *__pyx_pf_7aiohttp_12_http_parser_18RawResponseMessage_6__setstate_cython__(struct __pyx_obj_7aiohttp_12_http_parser_RawResponseMessage *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
6438   PyObject *__pyx_r = NULL;
6439   __Pyx_RefNannyDeclarations
6440   PyObject *__pyx_t_1 = NULL;
6441   int __pyx_lineno = 0;
6442   const char *__pyx_filename = NULL;
6443   int __pyx_clineno = 0;
6444   __Pyx_RefNannySetupContext("__setstate_cython__", 0);
6445 
6446   /* "(tree fragment)":17
6447  *         return __pyx_unpickle_RawResponseMessage, (type(self), 0xc7706dc, state)
6448  * def __setstate_cython__(self, __pyx_state):
6449  *     __pyx_unpickle_RawResponseMessage__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
6450  */
6451   if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(1, 17, __pyx_L1_error)
6452   __pyx_t_1 = __pyx_f_7aiohttp_12_http_parser___pyx_unpickle_RawResponseMessage__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 17, __pyx_L1_error)
6453   __Pyx_GOTREF(__pyx_t_1);
6454   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
6455 
6456   /* "(tree fragment)":16
6457  *     else:
6458  *         return __pyx_unpickle_RawResponseMessage, (type(self), 0xc7706dc, state)
6459  * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
6460  *     __pyx_unpickle_RawResponseMessage__set_state(self, __pyx_state)
6461  */
6462 
6463   /* function exit code */
6464   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
6465   goto __pyx_L0;
6466   __pyx_L1_error:;
6467   __Pyx_XDECREF(__pyx_t_1);
6468   __Pyx_AddTraceback("aiohttp._http_parser.RawResponseMessage.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
6469   __pyx_r = NULL;
6470   __pyx_L0:;
6471   __Pyx_XGIVEREF(__pyx_r);
6472   __Pyx_RefNannyFinishContext();
6473   return __pyx_r;
6474 }
6475 
6476 /* "aiohttp/_http_parser.pyx":248
6477  *
6478  *
6479  * cdef _new_response_message(object version,             # <<<<<<<<<<<<<<
6480  *                            int code,
6481  *                            str reason,
6482  */
6483 
__pyx_f_7aiohttp_12_http_parser__new_response_message(PyObject * __pyx_v_version,int __pyx_v_code,PyObject * __pyx_v_reason,PyObject * __pyx_v_headers,PyObject * __pyx_v_raw_headers,int __pyx_v_should_close,PyObject * __pyx_v_compression,int __pyx_v_upgrade,int __pyx_v_chunked)6484 static PyObject *__pyx_f_7aiohttp_12_http_parser__new_response_message(PyObject *__pyx_v_version, int __pyx_v_code, PyObject *__pyx_v_reason, PyObject *__pyx_v_headers, PyObject *__pyx_v_raw_headers, int __pyx_v_should_close, PyObject *__pyx_v_compression, int __pyx_v_upgrade, int __pyx_v_chunked) {
6485   struct __pyx_obj_7aiohttp_12_http_parser_RawResponseMessage *__pyx_v_ret = 0;
6486   PyObject *__pyx_r = NULL;
6487   __Pyx_RefNannyDeclarations
6488   PyObject *__pyx_t_1 = NULL;
6489   int __pyx_lineno = 0;
6490   const char *__pyx_filename = NULL;
6491   int __pyx_clineno = 0;
6492   __Pyx_RefNannySetupContext("_new_response_message", 0);
6493 
6494   /* "aiohttp/_http_parser.pyx":258
6495  *                            bint chunked):
6496  *     cdef RawResponseMessage ret
6497  *     ret = RawResponseMessage.__new__(RawResponseMessage)             # <<<<<<<<<<<<<<
6498  *     ret.version = version
6499  *     ret.code = code
6500  */
6501   __pyx_t_1 = ((PyObject *)__pyx_tp_new_7aiohttp_12_http_parser_RawResponseMessage(((PyTypeObject *)__pyx_ptype_7aiohttp_12_http_parser_RawResponseMessage), __pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 258, __pyx_L1_error)
6502   __Pyx_GOTREF(((PyObject *)__pyx_t_1));
6503   __pyx_v_ret = ((struct __pyx_obj_7aiohttp_12_http_parser_RawResponseMessage *)__pyx_t_1);
6504   __pyx_t_1 = 0;
6505 
6506   /* "aiohttp/_http_parser.pyx":259
6507  *     cdef RawResponseMessage ret
6508  *     ret = RawResponseMessage.__new__(RawResponseMessage)
6509  *     ret.version = version             # <<<<<<<<<<<<<<
6510  *     ret.code = code
6511  *     ret.reason = reason
6512  */
6513   __Pyx_INCREF(__pyx_v_version);
6514   __Pyx_GIVEREF(__pyx_v_version);
6515   __Pyx_GOTREF(__pyx_v_ret->version);
6516   __Pyx_DECREF(__pyx_v_ret->version);
6517   __pyx_v_ret->version = __pyx_v_version;
6518 
6519   /* "aiohttp/_http_parser.pyx":260
6520  *     ret = RawResponseMessage.__new__(RawResponseMessage)
6521  *     ret.version = version
6522  *     ret.code = code             # <<<<<<<<<<<<<<
6523  *     ret.reason = reason
6524  *     ret.headers = headers
6525  */
6526   __pyx_v_ret->code = __pyx_v_code;
6527 
6528   /* "aiohttp/_http_parser.pyx":261
6529  *     ret.version = version
6530  *     ret.code = code
6531  *     ret.reason = reason             # <<<<<<<<<<<<<<
6532  *     ret.headers = headers
6533  *     ret.raw_headers = raw_headers
6534  */
6535   __Pyx_INCREF(__pyx_v_reason);
6536   __Pyx_GIVEREF(__pyx_v_reason);
6537   __Pyx_GOTREF(__pyx_v_ret->reason);
6538   __Pyx_DECREF(__pyx_v_ret->reason);
6539   __pyx_v_ret->reason = __pyx_v_reason;
6540 
6541   /* "aiohttp/_http_parser.pyx":262
6542  *     ret.code = code
6543  *     ret.reason = reason
6544  *     ret.headers = headers             # <<<<<<<<<<<<<<
6545  *     ret.raw_headers = raw_headers
6546  *     ret.should_close = should_close
6547  */
6548   __Pyx_INCREF(__pyx_v_headers);
6549   __Pyx_GIVEREF(__pyx_v_headers);
6550   __Pyx_GOTREF(__pyx_v_ret->headers);
6551   __Pyx_DECREF(__pyx_v_ret->headers);
6552   __pyx_v_ret->headers = __pyx_v_headers;
6553 
6554   /* "aiohttp/_http_parser.pyx":263
6555  *     ret.reason = reason
6556  *     ret.headers = headers
6557  *     ret.raw_headers = raw_headers             # <<<<<<<<<<<<<<
6558  *     ret.should_close = should_close
6559  *     ret.compression = compression
6560  */
6561   __Pyx_INCREF(__pyx_v_raw_headers);
6562   __Pyx_GIVEREF(__pyx_v_raw_headers);
6563   __Pyx_GOTREF(__pyx_v_ret->raw_headers);
6564   __Pyx_DECREF(__pyx_v_ret->raw_headers);
6565   __pyx_v_ret->raw_headers = __pyx_v_raw_headers;
6566 
6567   /* "aiohttp/_http_parser.pyx":264
6568  *     ret.headers = headers
6569  *     ret.raw_headers = raw_headers
6570  *     ret.should_close = should_close             # <<<<<<<<<<<<<<
6571  *     ret.compression = compression
6572  *     ret.upgrade = upgrade
6573  */
6574   __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_should_close); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 264, __pyx_L1_error)
6575   __Pyx_GOTREF(__pyx_t_1);
6576   __Pyx_GIVEREF(__pyx_t_1);
6577   __Pyx_GOTREF(__pyx_v_ret->should_close);
6578   __Pyx_DECREF(__pyx_v_ret->should_close);
6579   __pyx_v_ret->should_close = __pyx_t_1;
6580   __pyx_t_1 = 0;
6581 
6582   /* "aiohttp/_http_parser.pyx":265
6583  *     ret.raw_headers = raw_headers
6584  *     ret.should_close = should_close
6585  *     ret.compression = compression             # <<<<<<<<<<<<<<
6586  *     ret.upgrade = upgrade
6587  *     ret.chunked = chunked
6588  */
6589   __Pyx_INCREF(__pyx_v_compression);
6590   __Pyx_GIVEREF(__pyx_v_compression);
6591   __Pyx_GOTREF(__pyx_v_ret->compression);
6592   __Pyx_DECREF(__pyx_v_ret->compression);
6593   __pyx_v_ret->compression = __pyx_v_compression;
6594 
6595   /* "aiohttp/_http_parser.pyx":266
6596  *     ret.should_close = should_close
6597  *     ret.compression = compression
6598  *     ret.upgrade = upgrade             # <<<<<<<<<<<<<<
6599  *     ret.chunked = chunked
6600  *     return ret
6601  */
6602   __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_upgrade); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 266, __pyx_L1_error)
6603   __Pyx_GOTREF(__pyx_t_1);
6604   __Pyx_GIVEREF(__pyx_t_1);
6605   __Pyx_GOTREF(__pyx_v_ret->upgrade);
6606   __Pyx_DECREF(__pyx_v_ret->upgrade);
6607   __pyx_v_ret->upgrade = __pyx_t_1;
6608   __pyx_t_1 = 0;
6609 
6610   /* "aiohttp/_http_parser.pyx":267
6611  *     ret.compression = compression
6612  *     ret.upgrade = upgrade
6613  *     ret.chunked = chunked             # <<<<<<<<<<<<<<
6614  *     return ret
6615  *
6616  */
6617   __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_chunked); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 267, __pyx_L1_error)
6618   __Pyx_GOTREF(__pyx_t_1);
6619   __Pyx_GIVEREF(__pyx_t_1);
6620   __Pyx_GOTREF(__pyx_v_ret->chunked);
6621   __Pyx_DECREF(__pyx_v_ret->chunked);
6622   __pyx_v_ret->chunked = __pyx_t_1;
6623   __pyx_t_1 = 0;
6624 
6625   /* "aiohttp/_http_parser.pyx":268
6626  *     ret.upgrade = upgrade
6627  *     ret.chunked = chunked
6628  *     return ret             # <<<<<<<<<<<<<<
6629  *
6630  *
6631  */
6632   __Pyx_XDECREF(__pyx_r);
6633   __Pyx_INCREF(((PyObject *)__pyx_v_ret));
6634   __pyx_r = ((PyObject *)__pyx_v_ret);
6635   goto __pyx_L0;
6636 
6637   /* "aiohttp/_http_parser.pyx":248
6638  *
6639  *
6640  * cdef _new_response_message(object version,             # <<<<<<<<<<<<<<
6641  *                            int code,
6642  *                            str reason,
6643  */
6644 
6645   /* function exit code */
6646   __pyx_L1_error:;
6647   __Pyx_XDECREF(__pyx_t_1);
6648   __Pyx_AddTraceback("aiohttp._http_parser._new_response_message", __pyx_clineno, __pyx_lineno, __pyx_filename);
6649   __pyx_r = 0;
6650   __pyx_L0:;
6651   __Pyx_XDECREF((PyObject *)__pyx_v_ret);
6652   __Pyx_XGIVEREF(__pyx_r);
6653   __Pyx_RefNannyFinishContext();
6654   return __pyx_r;
6655 }
6656 
6657 /* "aiohttp/_http_parser.pyx":312
6658  *         Py_buffer py_buf
6659  *
6660  *     def __cinit__(self):             # <<<<<<<<<<<<<<
6661  *         self._cparser = <cparser.http_parser*> \
6662  *                                 PyMem_Malloc(sizeof(cparser.http_parser))
6663  */
6664 
6665 /* Python wrapper */
6666 static int __pyx_pw_7aiohttp_12_http_parser_10HttpParser_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
__pyx_pw_7aiohttp_12_http_parser_10HttpParser_1__cinit__(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)6667 static int __pyx_pw_7aiohttp_12_http_parser_10HttpParser_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
6668   int __pyx_r;
6669   __Pyx_RefNannyDeclarations
6670   __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
6671   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
6672     __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return -1;}
6673   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1;
6674   __pyx_r = __pyx_pf_7aiohttp_12_http_parser_10HttpParser___cinit__(((struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *)__pyx_v_self));
6675 
6676   /* function exit code */
6677   __Pyx_RefNannyFinishContext();
6678   return __pyx_r;
6679 }
6680 
__pyx_pf_7aiohttp_12_http_parser_10HttpParser___cinit__(struct __pyx_obj_7aiohttp_12_http_parser_HttpParser * __pyx_v_self)6681 static int __pyx_pf_7aiohttp_12_http_parser_10HttpParser___cinit__(struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *__pyx_v_self) {
6682   int __pyx_r;
6683   __Pyx_RefNannyDeclarations
6684   int __pyx_t_1;
6685   int __pyx_lineno = 0;
6686   const char *__pyx_filename = NULL;
6687   int __pyx_clineno = 0;
6688   __Pyx_RefNannySetupContext("__cinit__", 0);
6689 
6690   /* "aiohttp/_http_parser.pyx":313
6691  *
6692  *     def __cinit__(self):
6693  *         self._cparser = <cparser.http_parser*> \             # <<<<<<<<<<<<<<
6694  *                                 PyMem_Malloc(sizeof(cparser.http_parser))
6695  *         if self._cparser is NULL:
6696  */
6697   __pyx_v_self->_cparser = ((struct http_parser *)PyMem_Malloc((sizeof(struct http_parser))));
6698 
6699   /* "aiohttp/_http_parser.pyx":315
6700  *         self._cparser = <cparser.http_parser*> \
6701  *                                 PyMem_Malloc(sizeof(cparser.http_parser))
6702  *         if self._cparser is NULL:             # <<<<<<<<<<<<<<
6703  *             raise MemoryError()
6704  *
6705  */
6706   __pyx_t_1 = ((__pyx_v_self->_cparser == NULL) != 0);
6707   if (unlikely(__pyx_t_1)) {
6708 
6709     /* "aiohttp/_http_parser.pyx":316
6710  *                                 PyMem_Malloc(sizeof(cparser.http_parser))
6711  *         if self._cparser is NULL:
6712  *             raise MemoryError()             # <<<<<<<<<<<<<<
6713  *
6714  *         self._csettings = <cparser.http_parser_settings*> \
6715  */
6716     PyErr_NoMemory(); __PYX_ERR(0, 316, __pyx_L1_error)
6717 
6718     /* "aiohttp/_http_parser.pyx":315
6719  *         self._cparser = <cparser.http_parser*> \
6720  *                                 PyMem_Malloc(sizeof(cparser.http_parser))
6721  *         if self._cparser is NULL:             # <<<<<<<<<<<<<<
6722  *             raise MemoryError()
6723  *
6724  */
6725   }
6726 
6727   /* "aiohttp/_http_parser.pyx":318
6728  *             raise MemoryError()
6729  *
6730  *         self._csettings = <cparser.http_parser_settings*> \             # <<<<<<<<<<<<<<
6731  *                                 PyMem_Malloc(sizeof(cparser.http_parser_settings))
6732  *         if self._csettings is NULL:
6733  */
6734   __pyx_v_self->_csettings = ((struct http_parser_settings *)PyMem_Malloc((sizeof(struct http_parser_settings))));
6735 
6736   /* "aiohttp/_http_parser.pyx":320
6737  *         self._csettings = <cparser.http_parser_settings*> \
6738  *                                 PyMem_Malloc(sizeof(cparser.http_parser_settings))
6739  *         if self._csettings is NULL:             # <<<<<<<<<<<<<<
6740  *             raise MemoryError()
6741  *
6742  */
6743   __pyx_t_1 = ((__pyx_v_self->_csettings == NULL) != 0);
6744   if (unlikely(__pyx_t_1)) {
6745 
6746     /* "aiohttp/_http_parser.pyx":321
6747  *                                 PyMem_Malloc(sizeof(cparser.http_parser_settings))
6748  *         if self._csettings is NULL:
6749  *             raise MemoryError()             # <<<<<<<<<<<<<<
6750  *
6751  *     def __dealloc__(self):
6752  */
6753     PyErr_NoMemory(); __PYX_ERR(0, 321, __pyx_L1_error)
6754 
6755     /* "aiohttp/_http_parser.pyx":320
6756  *         self._csettings = <cparser.http_parser_settings*> \
6757  *                                 PyMem_Malloc(sizeof(cparser.http_parser_settings))
6758  *         if self._csettings is NULL:             # <<<<<<<<<<<<<<
6759  *             raise MemoryError()
6760  *
6761  */
6762   }
6763 
6764   /* "aiohttp/_http_parser.pyx":312
6765  *         Py_buffer py_buf
6766  *
6767  *     def __cinit__(self):             # <<<<<<<<<<<<<<
6768  *         self._cparser = <cparser.http_parser*> \
6769  *                                 PyMem_Malloc(sizeof(cparser.http_parser))
6770  */
6771 
6772   /* function exit code */
6773   __pyx_r = 0;
6774   goto __pyx_L0;
6775   __pyx_L1_error:;
6776   __Pyx_AddTraceback("aiohttp._http_parser.HttpParser.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
6777   __pyx_r = -1;
6778   __pyx_L0:;
6779   __Pyx_RefNannyFinishContext();
6780   return __pyx_r;
6781 }
6782 
6783 /* "aiohttp/_http_parser.pyx":323
6784  *             raise MemoryError()
6785  *
6786  *     def __dealloc__(self):             # <<<<<<<<<<<<<<
6787  *         PyMem_Free(self._cparser)
6788  *         PyMem_Free(self._csettings)
6789  */
6790 
6791 /* Python wrapper */
6792 static void __pyx_pw_7aiohttp_12_http_parser_10HttpParser_3__dealloc__(PyObject *__pyx_v_self); /*proto*/
__pyx_pw_7aiohttp_12_http_parser_10HttpParser_3__dealloc__(PyObject * __pyx_v_self)6793 static void __pyx_pw_7aiohttp_12_http_parser_10HttpParser_3__dealloc__(PyObject *__pyx_v_self) {
6794   __Pyx_RefNannyDeclarations
6795   __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
6796   __pyx_pf_7aiohttp_12_http_parser_10HttpParser_2__dealloc__(((struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *)__pyx_v_self));
6797 
6798   /* function exit code */
6799   __Pyx_RefNannyFinishContext();
6800 }
6801 
__pyx_pf_7aiohttp_12_http_parser_10HttpParser_2__dealloc__(struct __pyx_obj_7aiohttp_12_http_parser_HttpParser * __pyx_v_self)6802 static void __pyx_pf_7aiohttp_12_http_parser_10HttpParser_2__dealloc__(struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *__pyx_v_self) {
6803   __Pyx_RefNannyDeclarations
6804   __Pyx_RefNannySetupContext("__dealloc__", 0);
6805 
6806   /* "aiohttp/_http_parser.pyx":324
6807  *
6808  *     def __dealloc__(self):
6809  *         PyMem_Free(self._cparser)             # <<<<<<<<<<<<<<
6810  *         PyMem_Free(self._csettings)
6811  *
6812  */
6813   PyMem_Free(__pyx_v_self->_cparser);
6814 
6815   /* "aiohttp/_http_parser.pyx":325
6816  *     def __dealloc__(self):
6817  *         PyMem_Free(self._cparser)
6818  *         PyMem_Free(self._csettings)             # <<<<<<<<<<<<<<
6819  *
6820  *     cdef _init(self, cparser.http_parser_type mode,
6821  */
6822   PyMem_Free(__pyx_v_self->_csettings);
6823 
6824   /* "aiohttp/_http_parser.pyx":323
6825  *             raise MemoryError()
6826  *
6827  *     def __dealloc__(self):             # <<<<<<<<<<<<<<
6828  *         PyMem_Free(self._cparser)
6829  *         PyMem_Free(self._csettings)
6830  */
6831 
6832   /* function exit code */
6833   __Pyx_RefNannyFinishContext();
6834 }
6835 
6836 /* "aiohttp/_http_parser.pyx":327
6837  *         PyMem_Free(self._csettings)
6838  *
6839  *     cdef _init(self, cparser.http_parser_type mode,             # <<<<<<<<<<<<<<
6840  *                    object protocol, object loop, int limit,
6841  *                    object timer=None,
6842  */
6843 
__pyx_f_7aiohttp_12_http_parser_10HttpParser__init(struct __pyx_obj_7aiohttp_12_http_parser_HttpParser * __pyx_v_self,enum http_parser_type __pyx_v_mode,PyObject * __pyx_v_protocol,PyObject * __pyx_v_loop,int __pyx_v_limit,struct __pyx_opt_args_7aiohttp_12_http_parser_10HttpParser__init * __pyx_optional_args)6844 static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__init(struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *__pyx_v_self, enum http_parser_type __pyx_v_mode, PyObject *__pyx_v_protocol, PyObject *__pyx_v_loop, int __pyx_v_limit, struct __pyx_opt_args_7aiohttp_12_http_parser_10HttpParser__init *__pyx_optional_args) {
6845 
6846   /* "aiohttp/_http_parser.pyx":329
6847  *     cdef _init(self, cparser.http_parser_type mode,
6848  *                    object protocol, object loop, int limit,
6849  *                    object timer=None,             # <<<<<<<<<<<<<<
6850  *                    size_t max_line_size=8190, size_t max_headers=32768,
6851  *                    size_t max_field_size=8190, payload_exception=None,
6852  */
6853   PyObject *__pyx_v_timer = ((PyObject *)Py_None);
6854   size_t __pyx_v_max_line_size = ((size_t)0x1FFE);
6855   size_t __pyx_v_max_headers = ((size_t)0x8000);
6856   size_t __pyx_v_max_field_size = ((size_t)0x1FFE);
6857 
6858   /* "aiohttp/_http_parser.pyx":331
6859  *                    object timer=None,
6860  *                    size_t max_line_size=8190, size_t max_headers=32768,
6861  *                    size_t max_field_size=8190, payload_exception=None,             # <<<<<<<<<<<<<<
6862  *                    bint response_with_body=True, bint read_until_eof=False,
6863  *                    bint auto_decompress=True):
6864  */
6865   PyObject *__pyx_v_payload_exception = ((PyObject *)Py_None);
6866 
6867   /* "aiohttp/_http_parser.pyx":332
6868  *                    size_t max_line_size=8190, size_t max_headers=32768,
6869  *                    size_t max_field_size=8190, payload_exception=None,
6870  *                    bint response_with_body=True, bint read_until_eof=False,             # <<<<<<<<<<<<<<
6871  *                    bint auto_decompress=True):
6872  *         cparser.http_parser_init(self._cparser, mode)
6873  */
6874   int __pyx_v_response_with_body = ((int)1);
6875   int __pyx_v_read_until_eof = ((int)0);
6876 
6877   /* "aiohttp/_http_parser.pyx":333
6878  *                    size_t max_field_size=8190, payload_exception=None,
6879  *                    bint response_with_body=True, bint read_until_eof=False,
6880  *                    bint auto_decompress=True):             # <<<<<<<<<<<<<<
6881  *         cparser.http_parser_init(self._cparser, mode)
6882  *         self._cparser.data = <void*>self
6883  */
6884   int __pyx_v_auto_decompress = ((int)1);
6885   PyObject *__pyx_r = NULL;
6886   __Pyx_RefNannyDeclarations
6887   PyObject *__pyx_t_1 = NULL;
6888   int __pyx_lineno = 0;
6889   const char *__pyx_filename = NULL;
6890   int __pyx_clineno = 0;
6891   __Pyx_RefNannySetupContext("_init", 0);
6892   if (__pyx_optional_args) {
6893     if (__pyx_optional_args->__pyx_n > 0) {
6894       __pyx_v_timer = __pyx_optional_args->timer;
6895       if (__pyx_optional_args->__pyx_n > 1) {
6896         __pyx_v_max_line_size = __pyx_optional_args->max_line_size;
6897         if (__pyx_optional_args->__pyx_n > 2) {
6898           __pyx_v_max_headers = __pyx_optional_args->max_headers;
6899           if (__pyx_optional_args->__pyx_n > 3) {
6900             __pyx_v_max_field_size = __pyx_optional_args->max_field_size;
6901             if (__pyx_optional_args->__pyx_n > 4) {
6902               __pyx_v_payload_exception = __pyx_optional_args->payload_exception;
6903               if (__pyx_optional_args->__pyx_n > 5) {
6904                 __pyx_v_response_with_body = __pyx_optional_args->response_with_body;
6905                 if (__pyx_optional_args->__pyx_n > 6) {
6906                   __pyx_v_read_until_eof = __pyx_optional_args->read_until_eof;
6907                   if (__pyx_optional_args->__pyx_n > 7) {
6908                     __pyx_v_auto_decompress = __pyx_optional_args->auto_decompress;
6909                   }
6910                 }
6911               }
6912             }
6913           }
6914         }
6915       }
6916     }
6917   }
6918 
6919   /* "aiohttp/_http_parser.pyx":334
6920  *                    bint response_with_body=True, bint read_until_eof=False,
6921  *                    bint auto_decompress=True):
6922  *         cparser.http_parser_init(self._cparser, mode)             # <<<<<<<<<<<<<<
6923  *         self._cparser.data = <void*>self
6924  *         self._cparser.content_length = 0
6925  */
6926   http_parser_init(__pyx_v_self->_cparser, __pyx_v_mode);
6927 
6928   /* "aiohttp/_http_parser.pyx":335
6929  *                    bint auto_decompress=True):
6930  *         cparser.http_parser_init(self._cparser, mode)
6931  *         self._cparser.data = <void*>self             # <<<<<<<<<<<<<<
6932  *         self._cparser.content_length = 0
6933  *
6934  */
6935   __pyx_v_self->_cparser->data = ((void *)__pyx_v_self);
6936 
6937   /* "aiohttp/_http_parser.pyx":336
6938  *         cparser.http_parser_init(self._cparser, mode)
6939  *         self._cparser.data = <void*>self
6940  *         self._cparser.content_length = 0             # <<<<<<<<<<<<<<
6941  *
6942  *         cparser.http_parser_settings_init(self._csettings)
6943  */
6944   __pyx_v_self->_cparser->content_length = 0;
6945 
6946   /* "aiohttp/_http_parser.pyx":338
6947  *         self._cparser.content_length = 0
6948  *
6949  *         cparser.http_parser_settings_init(self._csettings)             # <<<<<<<<<<<<<<
6950  *
6951  *         self._protocol = protocol
6952  */
6953   http_parser_settings_init(__pyx_v_self->_csettings);
6954 
6955   /* "aiohttp/_http_parser.pyx":340
6956  *         cparser.http_parser_settings_init(self._csettings)
6957  *
6958  *         self._protocol = protocol             # <<<<<<<<<<<<<<
6959  *         self._loop = loop
6960  *         self._timer = timer
6961  */
6962   __Pyx_INCREF(__pyx_v_protocol);
6963   __Pyx_GIVEREF(__pyx_v_protocol);
6964   __Pyx_GOTREF(__pyx_v_self->_protocol);
6965   __Pyx_DECREF(__pyx_v_self->_protocol);
6966   __pyx_v_self->_protocol = __pyx_v_protocol;
6967 
6968   /* "aiohttp/_http_parser.pyx":341
6969  *
6970  *         self._protocol = protocol
6971  *         self._loop = loop             # <<<<<<<<<<<<<<
6972  *         self._timer = timer
6973  *
6974  */
6975   __Pyx_INCREF(__pyx_v_loop);
6976   __Pyx_GIVEREF(__pyx_v_loop);
6977   __Pyx_GOTREF(__pyx_v_self->_loop);
6978   __Pyx_DECREF(__pyx_v_self->_loop);
6979   __pyx_v_self->_loop = __pyx_v_loop;
6980 
6981   /* "aiohttp/_http_parser.pyx":342
6982  *         self._protocol = protocol
6983  *         self._loop = loop
6984  *         self._timer = timer             # <<<<<<<<<<<<<<
6985  *
6986  *         self._buf = bytearray()
6987  */
6988   __Pyx_INCREF(__pyx_v_timer);
6989   __Pyx_GIVEREF(__pyx_v_timer);
6990   __Pyx_GOTREF(__pyx_v_self->_timer);
6991   __Pyx_DECREF(__pyx_v_self->_timer);
6992   __pyx_v_self->_timer = __pyx_v_timer;
6993 
6994   /* "aiohttp/_http_parser.pyx":344
6995  *         self._timer = timer
6996  *
6997  *         self._buf = bytearray()             # <<<<<<<<<<<<<<
6998  *         self._payload = None
6999  *         self._payload_error = 0
7000  */
7001   __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)(&PyByteArray_Type))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 344, __pyx_L1_error)
7002   __Pyx_GOTREF(__pyx_t_1);
7003   __Pyx_GIVEREF(__pyx_t_1);
7004   __Pyx_GOTREF(__pyx_v_self->_buf);
7005   __Pyx_DECREF(__pyx_v_self->_buf);
7006   __pyx_v_self->_buf = ((PyObject*)__pyx_t_1);
7007   __pyx_t_1 = 0;
7008 
7009   /* "aiohttp/_http_parser.pyx":345
7010  *
7011  *         self._buf = bytearray()
7012  *         self._payload = None             # <<<<<<<<<<<<<<
7013  *         self._payload_error = 0
7014  *         self._payload_exception = payload_exception
7015  */
7016   __Pyx_INCREF(Py_None);
7017   __Pyx_GIVEREF(Py_None);
7018   __Pyx_GOTREF(__pyx_v_self->_payload);
7019   __Pyx_DECREF(__pyx_v_self->_payload);
7020   __pyx_v_self->_payload = Py_None;
7021 
7022   /* "aiohttp/_http_parser.pyx":346
7023  *         self._buf = bytearray()
7024  *         self._payload = None
7025  *         self._payload_error = 0             # <<<<<<<<<<<<<<
7026  *         self._payload_exception = payload_exception
7027  *         self._messages = []
7028  */
7029   __pyx_v_self->_payload_error = 0;
7030 
7031   /* "aiohttp/_http_parser.pyx":347
7032  *         self._payload = None
7033  *         self._payload_error = 0
7034  *         self._payload_exception = payload_exception             # <<<<<<<<<<<<<<
7035  *         self._messages = []
7036  *
7037  */
7038   __Pyx_INCREF(__pyx_v_payload_exception);
7039   __Pyx_GIVEREF(__pyx_v_payload_exception);
7040   __Pyx_GOTREF(__pyx_v_self->_payload_exception);
7041   __Pyx_DECREF(__pyx_v_self->_payload_exception);
7042   __pyx_v_self->_payload_exception = __pyx_v_payload_exception;
7043 
7044   /* "aiohttp/_http_parser.pyx":348
7045  *         self._payload_error = 0
7046  *         self._payload_exception = payload_exception
7047  *         self._messages = []             # <<<<<<<<<<<<<<
7048  *
7049  *         self._raw_name = bytearray()
7050  */
7051   __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 348, __pyx_L1_error)
7052   __Pyx_GOTREF(__pyx_t_1);
7053   __Pyx_GIVEREF(__pyx_t_1);
7054   __Pyx_GOTREF(__pyx_v_self->_messages);
7055   __Pyx_DECREF(__pyx_v_self->_messages);
7056   __pyx_v_self->_messages = ((PyObject*)__pyx_t_1);
7057   __pyx_t_1 = 0;
7058 
7059   /* "aiohttp/_http_parser.pyx":350
7060  *         self._messages = []
7061  *
7062  *         self._raw_name = bytearray()             # <<<<<<<<<<<<<<
7063  *         self._raw_value = bytearray()
7064  *         self._has_value = False
7065  */
7066   __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)(&PyByteArray_Type))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 350, __pyx_L1_error)
7067   __Pyx_GOTREF(__pyx_t_1);
7068   __Pyx_GIVEREF(__pyx_t_1);
7069   __Pyx_GOTREF(__pyx_v_self->_raw_name);
7070   __Pyx_DECREF(__pyx_v_self->_raw_name);
7071   __pyx_v_self->_raw_name = ((PyObject*)__pyx_t_1);
7072   __pyx_t_1 = 0;
7073 
7074   /* "aiohttp/_http_parser.pyx":351
7075  *
7076  *         self._raw_name = bytearray()
7077  *         self._raw_value = bytearray()             # <<<<<<<<<<<<<<
7078  *         self._has_value = False
7079  *
7080  */
7081   __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)(&PyByteArray_Type))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 351, __pyx_L1_error)
7082   __Pyx_GOTREF(__pyx_t_1);
7083   __Pyx_GIVEREF(__pyx_t_1);
7084   __Pyx_GOTREF(__pyx_v_self->_raw_value);
7085   __Pyx_DECREF(__pyx_v_self->_raw_value);
7086   __pyx_v_self->_raw_value = ((PyObject*)__pyx_t_1);
7087   __pyx_t_1 = 0;
7088 
7089   /* "aiohttp/_http_parser.pyx":352
7090  *         self._raw_name = bytearray()
7091  *         self._raw_value = bytearray()
7092  *         self._has_value = False             # <<<<<<<<<<<<<<
7093  *
7094  *         self._max_line_size = max_line_size
7095  */
7096   __pyx_v_self->_has_value = 0;
7097 
7098   /* "aiohttp/_http_parser.pyx":354
7099  *         self._has_value = False
7100  *
7101  *         self._max_line_size = max_line_size             # <<<<<<<<<<<<<<
7102  *         self._max_headers = max_headers
7103  *         self._max_field_size = max_field_size
7104  */
7105   __pyx_v_self->_max_line_size = __pyx_v_max_line_size;
7106 
7107   /* "aiohttp/_http_parser.pyx":355
7108  *
7109  *         self._max_line_size = max_line_size
7110  *         self._max_headers = max_headers             # <<<<<<<<<<<<<<
7111  *         self._max_field_size = max_field_size
7112  *         self._response_with_body = response_with_body
7113  */
7114   __pyx_v_self->_max_headers = __pyx_v_max_headers;
7115 
7116   /* "aiohttp/_http_parser.pyx":356
7117  *         self._max_line_size = max_line_size
7118  *         self._max_headers = max_headers
7119  *         self._max_field_size = max_field_size             # <<<<<<<<<<<<<<
7120  *         self._response_with_body = response_with_body
7121  *         self._read_until_eof = read_until_eof
7122  */
7123   __pyx_v_self->_max_field_size = __pyx_v_max_field_size;
7124 
7125   /* "aiohttp/_http_parser.pyx":357
7126  *         self._max_headers = max_headers
7127  *         self._max_field_size = max_field_size
7128  *         self._response_with_body = response_with_body             # <<<<<<<<<<<<<<
7129  *         self._read_until_eof = read_until_eof
7130  *         self._upgraded = False
7131  */
7132   __pyx_v_self->_response_with_body = __pyx_v_response_with_body;
7133 
7134   /* "aiohttp/_http_parser.pyx":358
7135  *         self._max_field_size = max_field_size
7136  *         self._response_with_body = response_with_body
7137  *         self._read_until_eof = read_until_eof             # <<<<<<<<<<<<<<
7138  *         self._upgraded = False
7139  *         self._auto_decompress = auto_decompress
7140  */
7141   __pyx_v_self->_read_until_eof = __pyx_v_read_until_eof;
7142 
7143   /* "aiohttp/_http_parser.pyx":359
7144  *         self._response_with_body = response_with_body
7145  *         self._read_until_eof = read_until_eof
7146  *         self._upgraded = False             # <<<<<<<<<<<<<<
7147  *         self._auto_decompress = auto_decompress
7148  *         self._content_encoding = None
7149  */
7150   __pyx_v_self->_upgraded = 0;
7151 
7152   /* "aiohttp/_http_parser.pyx":360
7153  *         self._read_until_eof = read_until_eof
7154  *         self._upgraded = False
7155  *         self._auto_decompress = auto_decompress             # <<<<<<<<<<<<<<
7156  *         self._content_encoding = None
7157  *
7158  */
7159   __pyx_v_self->_auto_decompress = __pyx_v_auto_decompress;
7160 
7161   /* "aiohttp/_http_parser.pyx":361
7162  *         self._upgraded = False
7163  *         self._auto_decompress = auto_decompress
7164  *         self._content_encoding = None             # <<<<<<<<<<<<<<
7165  *
7166  *         self._csettings.on_url = cb_on_url
7167  */
7168   __Pyx_INCREF(Py_None);
7169   __Pyx_GIVEREF(Py_None);
7170   __Pyx_GOTREF(__pyx_v_self->_content_encoding);
7171   __Pyx_DECREF(__pyx_v_self->_content_encoding);
7172   __pyx_v_self->_content_encoding = ((PyObject*)Py_None);
7173 
7174   /* "aiohttp/_http_parser.pyx":363
7175  *         self._content_encoding = None
7176  *
7177  *         self._csettings.on_url = cb_on_url             # <<<<<<<<<<<<<<
7178  *         self._csettings.on_status = cb_on_status
7179  *         self._csettings.on_header_field = cb_on_header_field
7180  */
7181   __pyx_v_self->_csettings->on_url = __pyx_f_7aiohttp_12_http_parser_cb_on_url;
7182 
7183   /* "aiohttp/_http_parser.pyx":364
7184  *
7185  *         self._csettings.on_url = cb_on_url
7186  *         self._csettings.on_status = cb_on_status             # <<<<<<<<<<<<<<
7187  *         self._csettings.on_header_field = cb_on_header_field
7188  *         self._csettings.on_header_value = cb_on_header_value
7189  */
7190   __pyx_v_self->_csettings->on_status = __pyx_f_7aiohttp_12_http_parser_cb_on_status;
7191 
7192   /* "aiohttp/_http_parser.pyx":365
7193  *         self._csettings.on_url = cb_on_url
7194  *         self._csettings.on_status = cb_on_status
7195  *         self._csettings.on_header_field = cb_on_header_field             # <<<<<<<<<<<<<<
7196  *         self._csettings.on_header_value = cb_on_header_value
7197  *         self._csettings.on_headers_complete = cb_on_headers_complete
7198  */
7199   __pyx_v_self->_csettings->on_header_field = __pyx_f_7aiohttp_12_http_parser_cb_on_header_field;
7200 
7201   /* "aiohttp/_http_parser.pyx":366
7202  *         self._csettings.on_status = cb_on_status
7203  *         self._csettings.on_header_field = cb_on_header_field
7204  *         self._csettings.on_header_value = cb_on_header_value             # <<<<<<<<<<<<<<
7205  *         self._csettings.on_headers_complete = cb_on_headers_complete
7206  *         self._csettings.on_body = cb_on_body
7207  */
7208   __pyx_v_self->_csettings->on_header_value = __pyx_f_7aiohttp_12_http_parser_cb_on_header_value;
7209 
7210   /* "aiohttp/_http_parser.pyx":367
7211  *         self._csettings.on_header_field = cb_on_header_field
7212  *         self._csettings.on_header_value = cb_on_header_value
7213  *         self._csettings.on_headers_complete = cb_on_headers_complete             # <<<<<<<<<<<<<<
7214  *         self._csettings.on_body = cb_on_body
7215  *         self._csettings.on_message_begin = cb_on_message_begin
7216  */
7217   __pyx_v_self->_csettings->on_headers_complete = __pyx_f_7aiohttp_12_http_parser_cb_on_headers_complete;
7218 
7219   /* "aiohttp/_http_parser.pyx":368
7220  *         self._csettings.on_header_value = cb_on_header_value
7221  *         self._csettings.on_headers_complete = cb_on_headers_complete
7222  *         self._csettings.on_body = cb_on_body             # <<<<<<<<<<<<<<
7223  *         self._csettings.on_message_begin = cb_on_message_begin
7224  *         self._csettings.on_message_complete = cb_on_message_complete
7225  */
7226   __pyx_v_self->_csettings->on_body = __pyx_f_7aiohttp_12_http_parser_cb_on_body;
7227 
7228   /* "aiohttp/_http_parser.pyx":369
7229  *         self._csettings.on_headers_complete = cb_on_headers_complete
7230  *         self._csettings.on_body = cb_on_body
7231  *         self._csettings.on_message_begin = cb_on_message_begin             # <<<<<<<<<<<<<<
7232  *         self._csettings.on_message_complete = cb_on_message_complete
7233  *         self._csettings.on_chunk_header = cb_on_chunk_header
7234  */
7235   __pyx_v_self->_csettings->on_message_begin = __pyx_f_7aiohttp_12_http_parser_cb_on_message_begin;
7236 
7237   /* "aiohttp/_http_parser.pyx":370
7238  *         self._csettings.on_body = cb_on_body
7239  *         self._csettings.on_message_begin = cb_on_message_begin
7240  *         self._csettings.on_message_complete = cb_on_message_complete             # <<<<<<<<<<<<<<
7241  *         self._csettings.on_chunk_header = cb_on_chunk_header
7242  *         self._csettings.on_chunk_complete = cb_on_chunk_complete
7243  */
7244   __pyx_v_self->_csettings->on_message_complete = __pyx_f_7aiohttp_12_http_parser_cb_on_message_complete;
7245 
7246   /* "aiohttp/_http_parser.pyx":371
7247  *         self._csettings.on_message_begin = cb_on_message_begin
7248  *         self._csettings.on_message_complete = cb_on_message_complete
7249  *         self._csettings.on_chunk_header = cb_on_chunk_header             # <<<<<<<<<<<<<<
7250  *         self._csettings.on_chunk_complete = cb_on_chunk_complete
7251  *
7252  */
7253   __pyx_v_self->_csettings->on_chunk_header = __pyx_f_7aiohttp_12_http_parser_cb_on_chunk_header;
7254 
7255   /* "aiohttp/_http_parser.pyx":372
7256  *         self._csettings.on_message_complete = cb_on_message_complete
7257  *         self._csettings.on_chunk_header = cb_on_chunk_header
7258  *         self._csettings.on_chunk_complete = cb_on_chunk_complete             # <<<<<<<<<<<<<<
7259  *
7260  *         self._last_error = None
7261  */
7262   __pyx_v_self->_csettings->on_chunk_complete = __pyx_f_7aiohttp_12_http_parser_cb_on_chunk_complete;
7263 
7264   /* "aiohttp/_http_parser.pyx":374
7265  *         self._csettings.on_chunk_complete = cb_on_chunk_complete
7266  *
7267  *         self._last_error = None             # <<<<<<<<<<<<<<
7268  *         self._limit = limit
7269  *
7270  */
7271   __Pyx_INCREF(Py_None);
7272   __Pyx_GIVEREF(Py_None);
7273   __Pyx_GOTREF(__pyx_v_self->_last_error);
7274   __Pyx_DECREF(__pyx_v_self->_last_error);
7275   __pyx_v_self->_last_error = Py_None;
7276 
7277   /* "aiohttp/_http_parser.pyx":375
7278  *
7279  *         self._last_error = None
7280  *         self._limit = limit             # <<<<<<<<<<<<<<
7281  *
7282  *     cdef _process_header(self):
7283  */
7284   __pyx_v_self->_limit = __pyx_v_limit;
7285 
7286   /* "aiohttp/_http_parser.pyx":327
7287  *         PyMem_Free(self._csettings)
7288  *
7289  *     cdef _init(self, cparser.http_parser_type mode,             # <<<<<<<<<<<<<<
7290  *                    object protocol, object loop, int limit,
7291  *                    object timer=None,
7292  */
7293 
7294   /* function exit code */
7295   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
7296   goto __pyx_L0;
7297   __pyx_L1_error:;
7298   __Pyx_XDECREF(__pyx_t_1);
7299   __Pyx_AddTraceback("aiohttp._http_parser.HttpParser._init", __pyx_clineno, __pyx_lineno, __pyx_filename);
7300   __pyx_r = 0;
7301   __pyx_L0:;
7302   __Pyx_XGIVEREF(__pyx_r);
7303   __Pyx_RefNannyFinishContext();
7304   return __pyx_r;
7305 }
7306 
7307 /* "aiohttp/_http_parser.pyx":377
7308  *         self._limit = limit
7309  *
7310  *     cdef _process_header(self):             # <<<<<<<<<<<<<<
7311  *         if self._raw_name:
7312  *             raw_name = bytes(self._raw_name)
7313  */
7314 
__pyx_f_7aiohttp_12_http_parser_10HttpParser__process_header(struct __pyx_obj_7aiohttp_12_http_parser_HttpParser * __pyx_v_self)7315 static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__process_header(struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *__pyx_v_self) {
7316   PyObject *__pyx_v_raw_name = NULL;
7317   PyObject *__pyx_v_raw_value = NULL;
7318   PyObject *__pyx_v_name = NULL;
7319   PyObject *__pyx_v_value = NULL;
7320   PyObject *__pyx_r = NULL;
7321   __Pyx_RefNannyDeclarations
7322   int __pyx_t_1;
7323   PyObject *__pyx_t_2 = NULL;
7324   PyObject *__pyx_t_3 = NULL;
7325   PyObject *__pyx_t_4 = NULL;
7326   int __pyx_t_5;
7327   PyObject *__pyx_t_6 = NULL;
7328   int __pyx_t_7;
7329   int __pyx_t_8;
7330   int __pyx_lineno = 0;
7331   const char *__pyx_filename = NULL;
7332   int __pyx_clineno = 0;
7333   __Pyx_RefNannySetupContext("_process_header", 0);
7334 
7335   /* "aiohttp/_http_parser.pyx":378
7336  *
7337  *     cdef _process_header(self):
7338  *         if self._raw_name:             # <<<<<<<<<<<<<<
7339  *             raw_name = bytes(self._raw_name)
7340  *             raw_value = bytes(self._raw_value)
7341  */
7342   __pyx_t_1 = (__pyx_v_self->_raw_name != Py_None)&&(PyByteArray_GET_SIZE(__pyx_v_self->_raw_name) != 0);
7343   if (__pyx_t_1) {
7344 
7345     /* "aiohttp/_http_parser.pyx":379
7346  *     cdef _process_header(self):
7347  *         if self._raw_name:
7348  *             raw_name = bytes(self._raw_name)             # <<<<<<<<<<<<<<
7349  *             raw_value = bytes(self._raw_value)
7350  *
7351  */
7352     __pyx_t_2 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyBytes_Type)), __pyx_v_self->_raw_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 379, __pyx_L1_error)
7353     __Pyx_GOTREF(__pyx_t_2);
7354     __pyx_v_raw_name = ((PyObject*)__pyx_t_2);
7355     __pyx_t_2 = 0;
7356 
7357     /* "aiohttp/_http_parser.pyx":380
7358  *         if self._raw_name:
7359  *             raw_name = bytes(self._raw_name)
7360  *             raw_value = bytes(self._raw_value)             # <<<<<<<<<<<<<<
7361  *
7362  *             name = find_header(raw_name)
7363  */
7364     __pyx_t_2 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyBytes_Type)), __pyx_v_self->_raw_value); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 380, __pyx_L1_error)
7365     __Pyx_GOTREF(__pyx_t_2);
7366     __pyx_v_raw_value = ((PyObject*)__pyx_t_2);
7367     __pyx_t_2 = 0;
7368 
7369     /* "aiohttp/_http_parser.pyx":382
7370  *             raw_value = bytes(self._raw_value)
7371  *
7372  *             name = find_header(raw_name)             # <<<<<<<<<<<<<<
7373  *             value = raw_value.decode('utf-8', 'surrogateescape')
7374  *
7375  */
7376     __pyx_t_2 = __pyx_f_7aiohttp_12_http_parser_find_header(__pyx_v_raw_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 382, __pyx_L1_error)
7377     __Pyx_GOTREF(__pyx_t_2);
7378     __pyx_v_name = __pyx_t_2;
7379     __pyx_t_2 = 0;
7380 
7381     /* "aiohttp/_http_parser.pyx":383
7382  *
7383  *             name = find_header(raw_name)
7384  *             value = raw_value.decode('utf-8', 'surrogateescape')             # <<<<<<<<<<<<<<
7385  *
7386  *             self._headers.add(name, value)
7387  */
7388     __pyx_t_2 = __Pyx_decode_bytes(__pyx_v_raw_value, 0, PY_SSIZE_T_MAX, NULL, ((char const *)"surrogateescape"), PyUnicode_DecodeUTF8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 383, __pyx_L1_error)
7389     __Pyx_GOTREF(__pyx_t_2);
7390     __pyx_v_value = __pyx_t_2;
7391     __pyx_t_2 = 0;
7392 
7393     /* "aiohttp/_http_parser.pyx":385
7394  *             value = raw_value.decode('utf-8', 'surrogateescape')
7395  *
7396  *             self._headers.add(name, value)             # <<<<<<<<<<<<<<
7397  *
7398  *             if name is CONTENT_ENCODING:
7399  */
7400     __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->_headers, __pyx_n_s_add); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 385, __pyx_L1_error)
7401     __Pyx_GOTREF(__pyx_t_3);
7402     __pyx_t_4 = NULL;
7403     __pyx_t_5 = 0;
7404     if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
7405       __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
7406       if (likely(__pyx_t_4)) {
7407         PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
7408         __Pyx_INCREF(__pyx_t_4);
7409         __Pyx_INCREF(function);
7410         __Pyx_DECREF_SET(__pyx_t_3, function);
7411         __pyx_t_5 = 1;
7412       }
7413     }
7414     #if CYTHON_FAST_PYCALL
7415     if (PyFunction_Check(__pyx_t_3)) {
7416       PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_name, __pyx_v_value};
7417       __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 385, __pyx_L1_error)
7418       __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
7419       __Pyx_GOTREF(__pyx_t_2);
7420     } else
7421     #endif
7422     #if CYTHON_FAST_PYCCALL
7423     if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
7424       PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_name, __pyx_v_value};
7425       __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 385, __pyx_L1_error)
7426       __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
7427       __Pyx_GOTREF(__pyx_t_2);
7428     } else
7429     #endif
7430     {
7431       __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 385, __pyx_L1_error)
7432       __Pyx_GOTREF(__pyx_t_6);
7433       if (__pyx_t_4) {
7434         __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = NULL;
7435       }
7436       __Pyx_INCREF(__pyx_v_name);
7437       __Pyx_GIVEREF(__pyx_v_name);
7438       PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_5, __pyx_v_name);
7439       __Pyx_INCREF(__pyx_v_value);
7440       __Pyx_GIVEREF(__pyx_v_value);
7441       PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, __pyx_v_value);
7442       __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 385, __pyx_L1_error)
7443       __Pyx_GOTREF(__pyx_t_2);
7444       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
7445     }
7446     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
7447     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
7448 
7449     /* "aiohttp/_http_parser.pyx":387
7450  *             self._headers.add(name, value)
7451  *
7452  *             if name is CONTENT_ENCODING:             # <<<<<<<<<<<<<<
7453  *                 self._content_encoding = value
7454  *
7455  */
7456     __pyx_t_1 = (__pyx_v_name == __pyx_v_7aiohttp_12_http_parser_CONTENT_ENCODING);
7457     __pyx_t_7 = (__pyx_t_1 != 0);
7458     if (__pyx_t_7) {
7459 
7460       /* "aiohttp/_http_parser.pyx":388
7461  *
7462  *             if name is CONTENT_ENCODING:
7463  *                 self._content_encoding = value             # <<<<<<<<<<<<<<
7464  *
7465  *             PyByteArray_Resize(self._raw_name, 0)
7466  */
7467       if (!(likely(PyUnicode_CheckExact(__pyx_v_value))||((__pyx_v_value) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_v_value)->tp_name), 0))) __PYX_ERR(0, 388, __pyx_L1_error)
7468       __pyx_t_2 = __pyx_v_value;
7469       __Pyx_INCREF(__pyx_t_2);
7470       __Pyx_GIVEREF(__pyx_t_2);
7471       __Pyx_GOTREF(__pyx_v_self->_content_encoding);
7472       __Pyx_DECREF(__pyx_v_self->_content_encoding);
7473       __pyx_v_self->_content_encoding = ((PyObject*)__pyx_t_2);
7474       __pyx_t_2 = 0;
7475 
7476       /* "aiohttp/_http_parser.pyx":387
7477  *             self._headers.add(name, value)
7478  *
7479  *             if name is CONTENT_ENCODING:             # <<<<<<<<<<<<<<
7480  *                 self._content_encoding = value
7481  *
7482  */
7483     }
7484 
7485     /* "aiohttp/_http_parser.pyx":390
7486  *                 self._content_encoding = value
7487  *
7488  *             PyByteArray_Resize(self._raw_name, 0)             # <<<<<<<<<<<<<<
7489  *             PyByteArray_Resize(self._raw_value, 0)
7490  *             self._has_value = False
7491  */
7492     __pyx_t_2 = __pyx_v_self->_raw_name;
7493     __Pyx_INCREF(__pyx_t_2);
7494     __pyx_t_5 = PyByteArray_Resize(__pyx_t_2, 0); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(0, 390, __pyx_L1_error)
7495     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
7496 
7497     /* "aiohttp/_http_parser.pyx":391
7498  *
7499  *             PyByteArray_Resize(self._raw_name, 0)
7500  *             PyByteArray_Resize(self._raw_value, 0)             # <<<<<<<<<<<<<<
7501  *             self._has_value = False
7502  *             self._raw_headers.append((raw_name, raw_value))
7503  */
7504     __pyx_t_2 = __pyx_v_self->_raw_value;
7505     __Pyx_INCREF(__pyx_t_2);
7506     __pyx_t_5 = PyByteArray_Resize(__pyx_t_2, 0); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(0, 391, __pyx_L1_error)
7507     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
7508 
7509     /* "aiohttp/_http_parser.pyx":392
7510  *             PyByteArray_Resize(self._raw_name, 0)
7511  *             PyByteArray_Resize(self._raw_value, 0)
7512  *             self._has_value = False             # <<<<<<<<<<<<<<
7513  *             self._raw_headers.append((raw_name, raw_value))
7514  *
7515  */
7516     __pyx_v_self->_has_value = 0;
7517 
7518     /* "aiohttp/_http_parser.pyx":393
7519  *             PyByteArray_Resize(self._raw_value, 0)
7520  *             self._has_value = False
7521  *             self._raw_headers.append((raw_name, raw_value))             # <<<<<<<<<<<<<<
7522  *
7523  *     cdef _on_header_field(self, char* at, size_t length):
7524  */
7525     if (unlikely(__pyx_v_self->_raw_headers == Py_None)) {
7526       PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "append");
7527       __PYX_ERR(0, 393, __pyx_L1_error)
7528     }
7529     __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 393, __pyx_L1_error)
7530     __Pyx_GOTREF(__pyx_t_2);
7531     __Pyx_INCREF(__pyx_v_raw_name);
7532     __Pyx_GIVEREF(__pyx_v_raw_name);
7533     PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_raw_name);
7534     __Pyx_INCREF(__pyx_v_raw_value);
7535     __Pyx_GIVEREF(__pyx_v_raw_value);
7536     PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_raw_value);
7537     __pyx_t_8 = __Pyx_PyList_Append(__pyx_v_self->_raw_headers, __pyx_t_2); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(0, 393, __pyx_L1_error)
7538     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
7539 
7540     /* "aiohttp/_http_parser.pyx":378
7541  *
7542  *     cdef _process_header(self):
7543  *         if self._raw_name:             # <<<<<<<<<<<<<<
7544  *             raw_name = bytes(self._raw_name)
7545  *             raw_value = bytes(self._raw_value)
7546  */
7547   }
7548 
7549   /* "aiohttp/_http_parser.pyx":377
7550  *         self._limit = limit
7551  *
7552  *     cdef _process_header(self):             # <<<<<<<<<<<<<<
7553  *         if self._raw_name:
7554  *             raw_name = bytes(self._raw_name)
7555  */
7556 
7557   /* function exit code */
7558   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
7559   goto __pyx_L0;
7560   __pyx_L1_error:;
7561   __Pyx_XDECREF(__pyx_t_2);
7562   __Pyx_XDECREF(__pyx_t_3);
7563   __Pyx_XDECREF(__pyx_t_4);
7564   __Pyx_XDECREF(__pyx_t_6);
7565   __Pyx_AddTraceback("aiohttp._http_parser.HttpParser._process_header", __pyx_clineno, __pyx_lineno, __pyx_filename);
7566   __pyx_r = 0;
7567   __pyx_L0:;
7568   __Pyx_XDECREF(__pyx_v_raw_name);
7569   __Pyx_XDECREF(__pyx_v_raw_value);
7570   __Pyx_XDECREF(__pyx_v_name);
7571   __Pyx_XDECREF(__pyx_v_value);
7572   __Pyx_XGIVEREF(__pyx_r);
7573   __Pyx_RefNannyFinishContext();
7574   return __pyx_r;
7575 }
7576 
7577 /* "aiohttp/_http_parser.pyx":395
7578  *             self._raw_headers.append((raw_name, raw_value))
7579  *
7580  *     cdef _on_header_field(self, char* at, size_t length):             # <<<<<<<<<<<<<<
7581  *         cdef Py_ssize_t size
7582  *         cdef char *buf
7583  */
7584 
__pyx_f_7aiohttp_12_http_parser_10HttpParser__on_header_field(struct __pyx_obj_7aiohttp_12_http_parser_HttpParser * __pyx_v_self,char * __pyx_v_at,size_t __pyx_v_length)7585 static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__on_header_field(struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *__pyx_v_self, char *__pyx_v_at, size_t __pyx_v_length) {
7586   Py_ssize_t __pyx_v_size;
7587   char *__pyx_v_buf;
7588   PyObject *__pyx_r = NULL;
7589   __Pyx_RefNannyDeclarations
7590   int __pyx_t_1;
7591   PyObject *__pyx_t_2 = NULL;
7592   Py_ssize_t __pyx_t_3;
7593   int __pyx_t_4;
7594   int __pyx_lineno = 0;
7595   const char *__pyx_filename = NULL;
7596   int __pyx_clineno = 0;
7597   __Pyx_RefNannySetupContext("_on_header_field", 0);
7598 
7599   /* "aiohttp/_http_parser.pyx":398
7600  *         cdef Py_ssize_t size
7601  *         cdef char *buf
7602  *         if self._has_value:             # <<<<<<<<<<<<<<
7603  *             self._process_header()
7604  *
7605  */
7606   __pyx_t_1 = (__pyx_v_self->_has_value != 0);
7607   if (__pyx_t_1) {
7608 
7609     /* "aiohttp/_http_parser.pyx":399
7610  *         cdef char *buf
7611  *         if self._has_value:
7612  *             self._process_header()             # <<<<<<<<<<<<<<
7613  *
7614  *         size = PyByteArray_Size(self._raw_name)
7615  */
7616     __pyx_t_2 = ((struct __pyx_vtabstruct_7aiohttp_12_http_parser_HttpParser *)__pyx_v_self->__pyx_vtab)->_process_header(__pyx_v_self); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 399, __pyx_L1_error)
7617     __Pyx_GOTREF(__pyx_t_2);
7618     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
7619 
7620     /* "aiohttp/_http_parser.pyx":398
7621  *         cdef Py_ssize_t size
7622  *         cdef char *buf
7623  *         if self._has_value:             # <<<<<<<<<<<<<<
7624  *             self._process_header()
7625  *
7626  */
7627   }
7628 
7629   /* "aiohttp/_http_parser.pyx":401
7630  *             self._process_header()
7631  *
7632  *         size = PyByteArray_Size(self._raw_name)             # <<<<<<<<<<<<<<
7633  *         PyByteArray_Resize(self._raw_name, size + length)
7634  *         buf = PyByteArray_AsString(self._raw_name)
7635  */
7636   __pyx_t_2 = __pyx_v_self->_raw_name;
7637   __Pyx_INCREF(__pyx_t_2);
7638   __pyx_t_3 = PyByteArray_Size(__pyx_t_2); if (unlikely(__pyx_t_3 == ((Py_ssize_t)-1L))) __PYX_ERR(0, 401, __pyx_L1_error)
7639   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
7640   __pyx_v_size = __pyx_t_3;
7641 
7642   /* "aiohttp/_http_parser.pyx":402
7643  *
7644  *         size = PyByteArray_Size(self._raw_name)
7645  *         PyByteArray_Resize(self._raw_name, size + length)             # <<<<<<<<<<<<<<
7646  *         buf = PyByteArray_AsString(self._raw_name)
7647  *         memcpy(buf + size, at, length)
7648  */
7649   __pyx_t_2 = __pyx_v_self->_raw_name;
7650   __Pyx_INCREF(__pyx_t_2);
7651   __pyx_t_4 = PyByteArray_Resize(__pyx_t_2, (__pyx_v_size + __pyx_v_length)); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(0, 402, __pyx_L1_error)
7652   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
7653 
7654   /* "aiohttp/_http_parser.pyx":403
7655  *         size = PyByteArray_Size(self._raw_name)
7656  *         PyByteArray_Resize(self._raw_name, size + length)
7657  *         buf = PyByteArray_AsString(self._raw_name)             # <<<<<<<<<<<<<<
7658  *         memcpy(buf + size, at, length)
7659  *
7660  */
7661   __pyx_t_2 = __pyx_v_self->_raw_name;
7662   __Pyx_INCREF(__pyx_t_2);
7663   __pyx_v_buf = PyByteArray_AsString(__pyx_t_2);
7664   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
7665 
7666   /* "aiohttp/_http_parser.pyx":404
7667  *         PyByteArray_Resize(self._raw_name, size + length)
7668  *         buf = PyByteArray_AsString(self._raw_name)
7669  *         memcpy(buf + size, at, length)             # <<<<<<<<<<<<<<
7670  *
7671  *     cdef _on_header_value(self, char* at, size_t length):
7672  */
7673   (void)(memcpy((__pyx_v_buf + __pyx_v_size), __pyx_v_at, __pyx_v_length));
7674 
7675   /* "aiohttp/_http_parser.pyx":395
7676  *             self._raw_headers.append((raw_name, raw_value))
7677  *
7678  *     cdef _on_header_field(self, char* at, size_t length):             # <<<<<<<<<<<<<<
7679  *         cdef Py_ssize_t size
7680  *         cdef char *buf
7681  */
7682 
7683   /* function exit code */
7684   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
7685   goto __pyx_L0;
7686   __pyx_L1_error:;
7687   __Pyx_XDECREF(__pyx_t_2);
7688   __Pyx_AddTraceback("aiohttp._http_parser.HttpParser._on_header_field", __pyx_clineno, __pyx_lineno, __pyx_filename);
7689   __pyx_r = 0;
7690   __pyx_L0:;
7691   __Pyx_XGIVEREF(__pyx_r);
7692   __Pyx_RefNannyFinishContext();
7693   return __pyx_r;
7694 }
7695 
7696 /* "aiohttp/_http_parser.pyx":406
7697  *         memcpy(buf + size, at, length)
7698  *
7699  *     cdef _on_header_value(self, char* at, size_t length):             # <<<<<<<<<<<<<<
7700  *         cdef Py_ssize_t size
7701  *         cdef char *buf
7702  */
7703 
__pyx_f_7aiohttp_12_http_parser_10HttpParser__on_header_value(struct __pyx_obj_7aiohttp_12_http_parser_HttpParser * __pyx_v_self,char * __pyx_v_at,size_t __pyx_v_length)7704 static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__on_header_value(struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *__pyx_v_self, char *__pyx_v_at, size_t __pyx_v_length) {
7705   Py_ssize_t __pyx_v_size;
7706   char *__pyx_v_buf;
7707   PyObject *__pyx_r = NULL;
7708   __Pyx_RefNannyDeclarations
7709   PyObject *__pyx_t_1 = NULL;
7710   Py_ssize_t __pyx_t_2;
7711   int __pyx_t_3;
7712   int __pyx_lineno = 0;
7713   const char *__pyx_filename = NULL;
7714   int __pyx_clineno = 0;
7715   __Pyx_RefNannySetupContext("_on_header_value", 0);
7716 
7717   /* "aiohttp/_http_parser.pyx":410
7718  *         cdef char *buf
7719  *
7720  *         size = PyByteArray_Size(self._raw_value)             # <<<<<<<<<<<<<<
7721  *         PyByteArray_Resize(self._raw_value, size + length)
7722  *         buf = PyByteArray_AsString(self._raw_value)
7723  */
7724   __pyx_t_1 = __pyx_v_self->_raw_value;
7725   __Pyx_INCREF(__pyx_t_1);
7726   __pyx_t_2 = PyByteArray_Size(__pyx_t_1); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1L))) __PYX_ERR(0, 410, __pyx_L1_error)
7727   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
7728   __pyx_v_size = __pyx_t_2;
7729 
7730   /* "aiohttp/_http_parser.pyx":411
7731  *
7732  *         size = PyByteArray_Size(self._raw_value)
7733  *         PyByteArray_Resize(self._raw_value, size + length)             # <<<<<<<<<<<<<<
7734  *         buf = PyByteArray_AsString(self._raw_value)
7735  *         memcpy(buf + size, at, length)
7736  */
7737   __pyx_t_1 = __pyx_v_self->_raw_value;
7738   __Pyx_INCREF(__pyx_t_1);
7739   __pyx_t_3 = PyByteArray_Resize(__pyx_t_1, (__pyx_v_size + __pyx_v_length)); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(0, 411, __pyx_L1_error)
7740   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
7741 
7742   /* "aiohttp/_http_parser.pyx":412
7743  *         size = PyByteArray_Size(self._raw_value)
7744  *         PyByteArray_Resize(self._raw_value, size + length)
7745  *         buf = PyByteArray_AsString(self._raw_value)             # <<<<<<<<<<<<<<
7746  *         memcpy(buf + size, at, length)
7747  *         self._has_value = True
7748  */
7749   __pyx_t_1 = __pyx_v_self->_raw_value;
7750   __Pyx_INCREF(__pyx_t_1);
7751   __pyx_v_buf = PyByteArray_AsString(__pyx_t_1);
7752   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
7753 
7754   /* "aiohttp/_http_parser.pyx":413
7755  *         PyByteArray_Resize(self._raw_value, size + length)
7756  *         buf = PyByteArray_AsString(self._raw_value)
7757  *         memcpy(buf + size, at, length)             # <<<<<<<<<<<<<<
7758  *         self._has_value = True
7759  *
7760  */
7761   (void)(memcpy((__pyx_v_buf + __pyx_v_size), __pyx_v_at, __pyx_v_length));
7762 
7763   /* "aiohttp/_http_parser.pyx":414
7764  *         buf = PyByteArray_AsString(self._raw_value)
7765  *         memcpy(buf + size, at, length)
7766  *         self._has_value = True             # <<<<<<<<<<<<<<
7767  *
7768  *     cdef _on_headers_complete(self):
7769  */
7770   __pyx_v_self->_has_value = 1;
7771 
7772   /* "aiohttp/_http_parser.pyx":406
7773  *         memcpy(buf + size, at, length)
7774  *
7775  *     cdef _on_header_value(self, char* at, size_t length):             # <<<<<<<<<<<<<<
7776  *         cdef Py_ssize_t size
7777  *         cdef char *buf
7778  */
7779 
7780   /* function exit code */
7781   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
7782   goto __pyx_L0;
7783   __pyx_L1_error:;
7784   __Pyx_XDECREF(__pyx_t_1);
7785   __Pyx_AddTraceback("aiohttp._http_parser.HttpParser._on_header_value", __pyx_clineno, __pyx_lineno, __pyx_filename);
7786   __pyx_r = 0;
7787   __pyx_L0:;
7788   __Pyx_XGIVEREF(__pyx_r);
7789   __Pyx_RefNannyFinishContext();
7790   return __pyx_r;
7791 }
7792 
7793 /* "aiohttp/_http_parser.pyx":416
7794  *         self._has_value = True
7795  *
7796  *     cdef _on_headers_complete(self):             # <<<<<<<<<<<<<<
7797  *         self._process_header()
7798  *
7799  */
7800 
__pyx_f_7aiohttp_12_http_parser_10HttpParser__on_headers_complete(struct __pyx_obj_7aiohttp_12_http_parser_HttpParser * __pyx_v_self)7801 static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__on_headers_complete(struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *__pyx_v_self) {
7802   PyObject *__pyx_v_method = NULL;
7803   int __pyx_v_should_close;
7804   unsigned int __pyx_v_upgrade;
7805   unsigned int __pyx_v_chunked;
7806   PyObject *__pyx_v_raw_headers = NULL;
7807   PyObject *__pyx_v_headers = NULL;
7808   PyObject *__pyx_v_encoding = NULL;
7809   PyObject *__pyx_v_enc = NULL;
7810   PyObject *__pyx_v_msg = NULL;
7811   PyObject *__pyx_v_payload = NULL;
7812   PyObject *__pyx_r = NULL;
7813   __Pyx_RefNannyDeclarations
7814   PyObject *__pyx_t_1 = NULL;
7815   unsigned int __pyx_t_2;
7816   PyObject *__pyx_t_3 = NULL;
7817   PyObject *__pyx_t_4 = NULL;
7818   int __pyx_t_5;
7819   int __pyx_t_6;
7820   PyObject *__pyx_t_7 = NULL;
7821   int __pyx_t_8;
7822   int __pyx_t_9;
7823   int __pyx_t_10;
7824   int __pyx_lineno = 0;
7825   const char *__pyx_filename = NULL;
7826   int __pyx_clineno = 0;
7827   __Pyx_RefNannySetupContext("_on_headers_complete", 0);
7828 
7829   /* "aiohttp/_http_parser.pyx":417
7830  *
7831  *     cdef _on_headers_complete(self):
7832  *         self._process_header()             # <<<<<<<<<<<<<<
7833  *
7834  *         method = http_method_str(self._cparser.method)
7835  */
7836   __pyx_t_1 = ((struct __pyx_vtabstruct_7aiohttp_12_http_parser_HttpParser *)__pyx_v_self->__pyx_vtab)->_process_header(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 417, __pyx_L1_error)
7837   __Pyx_GOTREF(__pyx_t_1);
7838   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
7839 
7840   /* "aiohttp/_http_parser.pyx":419
7841  *         self._process_header()
7842  *
7843  *         method = http_method_str(self._cparser.method)             # <<<<<<<<<<<<<<
7844  *         should_close = not cparser.http_should_keep_alive(self._cparser)
7845  *         upgrade = self._cparser.upgrade
7846  */
7847   __pyx_t_1 = __pyx_f_7aiohttp_12_http_parser_http_method_str(__pyx_v_self->_cparser->method); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 419, __pyx_L1_error)
7848   __Pyx_GOTREF(__pyx_t_1);
7849   __pyx_v_method = ((PyObject*)__pyx_t_1);
7850   __pyx_t_1 = 0;
7851 
7852   /* "aiohttp/_http_parser.pyx":420
7853  *
7854  *         method = http_method_str(self._cparser.method)
7855  *         should_close = not cparser.http_should_keep_alive(self._cparser)             # <<<<<<<<<<<<<<
7856  *         upgrade = self._cparser.upgrade
7857  *         chunked = self._cparser.flags & cparser.F_CHUNKED
7858  */
7859   __pyx_v_should_close = (!(http_should_keep_alive(__pyx_v_self->_cparser) != 0));
7860 
7861   /* "aiohttp/_http_parser.pyx":421
7862  *         method = http_method_str(self._cparser.method)
7863  *         should_close = not cparser.http_should_keep_alive(self._cparser)
7864  *         upgrade = self._cparser.upgrade             # <<<<<<<<<<<<<<
7865  *         chunked = self._cparser.flags & cparser.F_CHUNKED
7866  *
7867  */
7868   __pyx_t_2 = __pyx_v_self->_cparser->upgrade;
7869   __pyx_v_upgrade = __pyx_t_2;
7870 
7871   /* "aiohttp/_http_parser.pyx":422
7872  *         should_close = not cparser.http_should_keep_alive(self._cparser)
7873  *         upgrade = self._cparser.upgrade
7874  *         chunked = self._cparser.flags & cparser.F_CHUNKED             # <<<<<<<<<<<<<<
7875  *
7876  *         raw_headers = tuple(self._raw_headers)
7877  */
7878   __pyx_v_chunked = (__pyx_v_self->_cparser->flags & F_CHUNKED);
7879 
7880   /* "aiohttp/_http_parser.pyx":424
7881  *         chunked = self._cparser.flags & cparser.F_CHUNKED
7882  *
7883  *         raw_headers = tuple(self._raw_headers)             # <<<<<<<<<<<<<<
7884  *         headers = CIMultiDictProxy(self._headers)
7885  *
7886  */
7887   if (unlikely(__pyx_v_self->_raw_headers == Py_None)) {
7888     PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
7889     __PYX_ERR(0, 424, __pyx_L1_error)
7890   }
7891   __pyx_t_1 = PyList_AsTuple(__pyx_v_self->_raw_headers); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 424, __pyx_L1_error)
7892   __Pyx_GOTREF(__pyx_t_1);
7893   __pyx_v_raw_headers = ((PyObject*)__pyx_t_1);
7894   __pyx_t_1 = 0;
7895 
7896   /* "aiohttp/_http_parser.pyx":425
7897  *
7898  *         raw_headers = tuple(self._raw_headers)
7899  *         headers = CIMultiDictProxy(self._headers)             # <<<<<<<<<<<<<<
7900  *
7901  *         if upgrade or self._cparser.method == 5: # cparser.CONNECT:
7902  */
7903   __Pyx_INCREF(__pyx_v_7aiohttp_12_http_parser_CIMultiDictProxy);
7904   __pyx_t_3 = __pyx_v_7aiohttp_12_http_parser_CIMultiDictProxy; __pyx_t_4 = NULL;
7905   if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
7906     __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
7907     if (likely(__pyx_t_4)) {
7908       PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
7909       __Pyx_INCREF(__pyx_t_4);
7910       __Pyx_INCREF(function);
7911       __Pyx_DECREF_SET(__pyx_t_3, function);
7912     }
7913   }
7914   __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_v_self->_headers) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_self->_headers);
7915   __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
7916   if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 425, __pyx_L1_error)
7917   __Pyx_GOTREF(__pyx_t_1);
7918   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
7919   __pyx_v_headers = __pyx_t_1;
7920   __pyx_t_1 = 0;
7921 
7922   /* "aiohttp/_http_parser.pyx":427
7923  *         headers = CIMultiDictProxy(self._headers)
7924  *
7925  *         if upgrade or self._cparser.method == 5: # cparser.CONNECT:             # <<<<<<<<<<<<<<
7926  *             self._upgraded = True
7927  *
7928  */
7929   __pyx_t_6 = (__pyx_v_upgrade != 0);
7930   if (!__pyx_t_6) {
7931   } else {
7932     __pyx_t_5 = __pyx_t_6;
7933     goto __pyx_L4_bool_binop_done;
7934   }
7935   __pyx_t_6 = ((__pyx_v_self->_cparser->method == 5) != 0);
7936   __pyx_t_5 = __pyx_t_6;
7937   __pyx_L4_bool_binop_done:;
7938   if (__pyx_t_5) {
7939 
7940     /* "aiohttp/_http_parser.pyx":428
7941  *
7942  *         if upgrade or self._cparser.method == 5: # cparser.CONNECT:
7943  *             self._upgraded = True             # <<<<<<<<<<<<<<
7944  *
7945  *         # do not support old websocket spec
7946  */
7947     __pyx_v_self->_upgraded = 1;
7948 
7949     /* "aiohttp/_http_parser.pyx":427
7950  *         headers = CIMultiDictProxy(self._headers)
7951  *
7952  *         if upgrade or self._cparser.method == 5: # cparser.CONNECT:             # <<<<<<<<<<<<<<
7953  *             self._upgraded = True
7954  *
7955  */
7956   }
7957 
7958   /* "aiohttp/_http_parser.pyx":431
7959  *
7960  *         # do not support old websocket spec
7961  *         if SEC_WEBSOCKET_KEY1 in headers:             # <<<<<<<<<<<<<<
7962  *             raise InvalidHeader(SEC_WEBSOCKET_KEY1)
7963  *
7964  */
7965   __pyx_t_5 = (__Pyx_PySequence_ContainsTF(__pyx_v_7aiohttp_12_http_parser_SEC_WEBSOCKET_KEY1, __pyx_v_headers, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 431, __pyx_L1_error)
7966   __pyx_t_6 = (__pyx_t_5 != 0);
7967   if (unlikely(__pyx_t_6)) {
7968 
7969     /* "aiohttp/_http_parser.pyx":432
7970  *         # do not support old websocket spec
7971  *         if SEC_WEBSOCKET_KEY1 in headers:
7972  *             raise InvalidHeader(SEC_WEBSOCKET_KEY1)             # <<<<<<<<<<<<<<
7973  *
7974  *         encoding = None
7975  */
7976     __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_InvalidHeader); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 432, __pyx_L1_error)
7977     __Pyx_GOTREF(__pyx_t_3);
7978     __pyx_t_4 = NULL;
7979     if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
7980       __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
7981       if (likely(__pyx_t_4)) {
7982         PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
7983         __Pyx_INCREF(__pyx_t_4);
7984         __Pyx_INCREF(function);
7985         __Pyx_DECREF_SET(__pyx_t_3, function);
7986       }
7987     }
7988     __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_v_7aiohttp_12_http_parser_SEC_WEBSOCKET_KEY1) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_7aiohttp_12_http_parser_SEC_WEBSOCKET_KEY1);
7989     __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
7990     if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 432, __pyx_L1_error)
7991     __Pyx_GOTREF(__pyx_t_1);
7992     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
7993     __Pyx_Raise(__pyx_t_1, 0, 0, 0);
7994     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
7995     __PYX_ERR(0, 432, __pyx_L1_error)
7996 
7997     /* "aiohttp/_http_parser.pyx":431
7998  *
7999  *         # do not support old websocket spec
8000  *         if SEC_WEBSOCKET_KEY1 in headers:             # <<<<<<<<<<<<<<
8001  *             raise InvalidHeader(SEC_WEBSOCKET_KEY1)
8002  *
8003  */
8004   }
8005 
8006   /* "aiohttp/_http_parser.pyx":434
8007  *             raise InvalidHeader(SEC_WEBSOCKET_KEY1)
8008  *
8009  *         encoding = None             # <<<<<<<<<<<<<<
8010  *         enc = self._content_encoding
8011  *         if enc is not None:
8012  */
8013   __Pyx_INCREF(Py_None);
8014   __pyx_v_encoding = Py_None;
8015 
8016   /* "aiohttp/_http_parser.pyx":435
8017  *
8018  *         encoding = None
8019  *         enc = self._content_encoding             # <<<<<<<<<<<<<<
8020  *         if enc is not None:
8021  *             self._content_encoding = None
8022  */
8023   __pyx_t_1 = __pyx_v_self->_content_encoding;
8024   __Pyx_INCREF(__pyx_t_1);
8025   __pyx_v_enc = __pyx_t_1;
8026   __pyx_t_1 = 0;
8027 
8028   /* "aiohttp/_http_parser.pyx":436
8029  *         encoding = None
8030  *         enc = self._content_encoding
8031  *         if enc is not None:             # <<<<<<<<<<<<<<
8032  *             self._content_encoding = None
8033  *             enc = enc.lower()
8034  */
8035   __pyx_t_6 = (__pyx_v_enc != Py_None);
8036   __pyx_t_5 = (__pyx_t_6 != 0);
8037   if (__pyx_t_5) {
8038 
8039     /* "aiohttp/_http_parser.pyx":437
8040  *         enc = self._content_encoding
8041  *         if enc is not None:
8042  *             self._content_encoding = None             # <<<<<<<<<<<<<<
8043  *             enc = enc.lower()
8044  *             if enc in ('gzip', 'deflate', 'br'):
8045  */
8046     __Pyx_INCREF(Py_None);
8047     __Pyx_GIVEREF(Py_None);
8048     __Pyx_GOTREF(__pyx_v_self->_content_encoding);
8049     __Pyx_DECREF(__pyx_v_self->_content_encoding);
8050     __pyx_v_self->_content_encoding = ((PyObject*)Py_None);
8051 
8052     /* "aiohttp/_http_parser.pyx":438
8053  *         if enc is not None:
8054  *             self._content_encoding = None
8055  *             enc = enc.lower()             # <<<<<<<<<<<<<<
8056  *             if enc in ('gzip', 'deflate', 'br'):
8057  *                 encoding = enc
8058  */
8059     __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_enc, __pyx_n_s_lower); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 438, __pyx_L1_error)
8060     __Pyx_GOTREF(__pyx_t_3);
8061     __pyx_t_4 = NULL;
8062     if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
8063       __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
8064       if (likely(__pyx_t_4)) {
8065         PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
8066         __Pyx_INCREF(__pyx_t_4);
8067         __Pyx_INCREF(function);
8068         __Pyx_DECREF_SET(__pyx_t_3, function);
8069       }
8070     }
8071     __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4) : __Pyx_PyObject_CallNoArg(__pyx_t_3);
8072     __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
8073     if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 438, __pyx_L1_error)
8074     __Pyx_GOTREF(__pyx_t_1);
8075     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
8076     __Pyx_DECREF_SET(__pyx_v_enc, __pyx_t_1);
8077     __pyx_t_1 = 0;
8078 
8079     /* "aiohttp/_http_parser.pyx":439
8080  *             self._content_encoding = None
8081  *             enc = enc.lower()
8082  *             if enc in ('gzip', 'deflate', 'br'):             # <<<<<<<<<<<<<<
8083  *                 encoding = enc
8084  *
8085  */
8086     __Pyx_INCREF(__pyx_v_enc);
8087     __pyx_t_1 = __pyx_v_enc;
8088     __pyx_t_6 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_n_u_gzip, Py_EQ)); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 439, __pyx_L1_error)
8089     if (!__pyx_t_6) {
8090     } else {
8091       __pyx_t_5 = __pyx_t_6;
8092       goto __pyx_L9_bool_binop_done;
8093     }
8094     __pyx_t_6 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_n_u_deflate, Py_EQ)); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 439, __pyx_L1_error)
8095     if (!__pyx_t_6) {
8096     } else {
8097       __pyx_t_5 = __pyx_t_6;
8098       goto __pyx_L9_bool_binop_done;
8099     }
8100     __pyx_t_6 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_n_u_br, Py_EQ)); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 439, __pyx_L1_error)
8101     __pyx_t_5 = __pyx_t_6;
8102     __pyx_L9_bool_binop_done:;
8103     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
8104     __pyx_t_6 = (__pyx_t_5 != 0);
8105     if (__pyx_t_6) {
8106 
8107       /* "aiohttp/_http_parser.pyx":440
8108  *             enc = enc.lower()
8109  *             if enc in ('gzip', 'deflate', 'br'):
8110  *                 encoding = enc             # <<<<<<<<<<<<<<
8111  *
8112  *         if self._cparser.type == cparser.HTTP_REQUEST:
8113  */
8114       __Pyx_INCREF(__pyx_v_enc);
8115       __Pyx_DECREF_SET(__pyx_v_encoding, __pyx_v_enc);
8116 
8117       /* "aiohttp/_http_parser.pyx":439
8118  *             self._content_encoding = None
8119  *             enc = enc.lower()
8120  *             if enc in ('gzip', 'deflate', 'br'):             # <<<<<<<<<<<<<<
8121  *                 encoding = enc
8122  *
8123  */
8124     }
8125 
8126     /* "aiohttp/_http_parser.pyx":436
8127  *         encoding = None
8128  *         enc = self._content_encoding
8129  *         if enc is not None:             # <<<<<<<<<<<<<<
8130  *             self._content_encoding = None
8131  *             enc = enc.lower()
8132  */
8133   }
8134 
8135   /* "aiohttp/_http_parser.pyx":442
8136  *                 encoding = enc
8137  *
8138  *         if self._cparser.type == cparser.HTTP_REQUEST:             # <<<<<<<<<<<<<<
8139  *             msg = _new_request_message(
8140  *                 method, self._path,
8141  */
8142   __pyx_t_6 = ((__pyx_v_self->_cparser->type == HTTP_REQUEST) != 0);
8143   if (__pyx_t_6) {
8144 
8145     /* "aiohttp/_http_parser.pyx":444
8146  *         if self._cparser.type == cparser.HTTP_REQUEST:
8147  *             msg = _new_request_message(
8148  *                 method, self._path,             # <<<<<<<<<<<<<<
8149  *                 self.http_version(), headers, raw_headers,
8150  *                 should_close, encoding, upgrade, chunked, self._url)
8151  */
8152     __pyx_t_1 = __pyx_v_self->_path;
8153     __Pyx_INCREF(__pyx_t_1);
8154 
8155     /* "aiohttp/_http_parser.pyx":445
8156  *             msg = _new_request_message(
8157  *                 method, self._path,
8158  *                 self.http_version(), headers, raw_headers,             # <<<<<<<<<<<<<<
8159  *                 should_close, encoding, upgrade, chunked, self._url)
8160  *         else:
8161  */
8162     __pyx_t_3 = __pyx_f_7aiohttp_12_http_parser_10HttpParser_http_version(__pyx_v_self); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 445, __pyx_L1_error)
8163     __Pyx_GOTREF(__pyx_t_3);
8164 
8165     /* "aiohttp/_http_parser.pyx":446
8166  *                 method, self._path,
8167  *                 self.http_version(), headers, raw_headers,
8168  *                 should_close, encoding, upgrade, chunked, self._url)             # <<<<<<<<<<<<<<
8169  *         else:
8170  *             msg = _new_response_message(
8171  */
8172     __pyx_t_4 = __pyx_v_self->_url;
8173     __Pyx_INCREF(__pyx_t_4);
8174 
8175     /* "aiohttp/_http_parser.pyx":443
8176  *
8177  *         if self._cparser.type == cparser.HTTP_REQUEST:
8178  *             msg = _new_request_message(             # <<<<<<<<<<<<<<
8179  *                 method, self._path,
8180  *                 self.http_version(), headers, raw_headers,
8181  */
8182     __pyx_t_7 = __pyx_f_7aiohttp_12_http_parser__new_request_message(__pyx_v_method, ((PyObject*)__pyx_t_1), __pyx_t_3, __pyx_v_headers, __pyx_v_raw_headers, __pyx_v_should_close, __pyx_v_encoding, __pyx_v_upgrade, __pyx_v_chunked, __pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 443, __pyx_L1_error)
8183     __Pyx_GOTREF(__pyx_t_7);
8184     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
8185     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
8186     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
8187     __pyx_v_msg = __pyx_t_7;
8188     __pyx_t_7 = 0;
8189 
8190     /* "aiohttp/_http_parser.pyx":442
8191  *                 encoding = enc
8192  *
8193  *         if self._cparser.type == cparser.HTTP_REQUEST:             # <<<<<<<<<<<<<<
8194  *             msg = _new_request_message(
8195  *                 method, self._path,
8196  */
8197     goto __pyx_L12;
8198   }
8199 
8200   /* "aiohttp/_http_parser.pyx":448
8201  *                 should_close, encoding, upgrade, chunked, self._url)
8202  *         else:
8203  *             msg = _new_response_message(             # <<<<<<<<<<<<<<
8204  *                 self.http_version(), self._cparser.status_code, self._reason,
8205  *                 headers, raw_headers, should_close, encoding,
8206  */
8207   /*else*/ {
8208 
8209     /* "aiohttp/_http_parser.pyx":449
8210  *         else:
8211  *             msg = _new_response_message(
8212  *                 self.http_version(), self._cparser.status_code, self._reason,             # <<<<<<<<<<<<<<
8213  *                 headers, raw_headers, should_close, encoding,
8214  *                 upgrade, chunked)
8215  */
8216     __pyx_t_7 = __pyx_f_7aiohttp_12_http_parser_10HttpParser_http_version(__pyx_v_self); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 449, __pyx_L1_error)
8217     __Pyx_GOTREF(__pyx_t_7);
8218     __pyx_t_4 = __pyx_v_self->_reason;
8219     __Pyx_INCREF(__pyx_t_4);
8220 
8221     /* "aiohttp/_http_parser.pyx":448
8222  *                 should_close, encoding, upgrade, chunked, self._url)
8223  *         else:
8224  *             msg = _new_response_message(             # <<<<<<<<<<<<<<
8225  *                 self.http_version(), self._cparser.status_code, self._reason,
8226  *                 headers, raw_headers, should_close, encoding,
8227  */
8228     __pyx_t_3 = __pyx_f_7aiohttp_12_http_parser__new_response_message(__pyx_t_7, __pyx_v_self->_cparser->status_code, ((PyObject*)__pyx_t_4), __pyx_v_headers, __pyx_v_raw_headers, __pyx_v_should_close, __pyx_v_encoding, __pyx_v_upgrade, __pyx_v_chunked); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 448, __pyx_L1_error)
8229     __Pyx_GOTREF(__pyx_t_3);
8230     __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
8231     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
8232     __pyx_v_msg = __pyx_t_3;
8233     __pyx_t_3 = 0;
8234   }
8235   __pyx_L12:;
8236 
8237   /* "aiohttp/_http_parser.pyx":453
8238  *                 upgrade, chunked)
8239  *
8240  *         if (ULLONG_MAX > self._cparser.content_length > 0 or chunked or             # <<<<<<<<<<<<<<
8241  *                 self._cparser.method == 5 or  # CONNECT: 5
8242  *                 (self._cparser.status_code >= 199 and
8243  */
8244   __pyx_t_5 = (ULLONG_MAX > __pyx_v_self->_cparser->content_length);
8245   if (__pyx_t_5) {
8246     __pyx_t_5 = (__pyx_v_self->_cparser->content_length > 0);
8247   }
8248   __pyx_t_8 = (__pyx_t_5 != 0);
8249   if (!__pyx_t_8) {
8250   } else {
8251     __pyx_t_6 = __pyx_t_8;
8252     goto __pyx_L14_bool_binop_done;
8253   }
8254   __pyx_t_8 = (__pyx_v_chunked != 0);
8255   if (!__pyx_t_8) {
8256   } else {
8257     __pyx_t_6 = __pyx_t_8;
8258     goto __pyx_L14_bool_binop_done;
8259   }
8260 
8261   /* "aiohttp/_http_parser.pyx":454
8262  *
8263  *         if (ULLONG_MAX > self._cparser.content_length > 0 or chunked or
8264  *                 self._cparser.method == 5 or  # CONNECT: 5             # <<<<<<<<<<<<<<
8265  *                 (self._cparser.status_code >= 199 and
8266  *                  self._cparser.content_length == ULLONG_MAX and
8267  */
8268   __pyx_t_8 = ((__pyx_v_self->_cparser->method == 5) != 0);
8269   if (!__pyx_t_8) {
8270   } else {
8271     __pyx_t_6 = __pyx_t_8;
8272     goto __pyx_L14_bool_binop_done;
8273   }
8274 
8275   /* "aiohttp/_http_parser.pyx":455
8276  *         if (ULLONG_MAX > self._cparser.content_length > 0 or chunked or
8277  *                 self._cparser.method == 5 or  # CONNECT: 5
8278  *                 (self._cparser.status_code >= 199 and             # <<<<<<<<<<<<<<
8279  *                  self._cparser.content_length == ULLONG_MAX and
8280  *                  self._read_until_eof)
8281  */
8282   __pyx_t_8 = ((__pyx_v_self->_cparser->status_code >= 0xC7) != 0);
8283   if (__pyx_t_8) {
8284   } else {
8285     __pyx_t_6 = __pyx_t_8;
8286     goto __pyx_L14_bool_binop_done;
8287   }
8288 
8289   /* "aiohttp/_http_parser.pyx":456
8290  *                 self._cparser.method == 5 or  # CONNECT: 5
8291  *                 (self._cparser.status_code >= 199 and
8292  *                  self._cparser.content_length == ULLONG_MAX and             # <<<<<<<<<<<<<<
8293  *                  self._read_until_eof)
8294  *         ):
8295  */
8296   __pyx_t_8 = ((__pyx_v_self->_cparser->content_length == ULLONG_MAX) != 0);
8297   if (__pyx_t_8) {
8298   } else {
8299     __pyx_t_6 = __pyx_t_8;
8300     goto __pyx_L14_bool_binop_done;
8301   }
8302 
8303   /* "aiohttp/_http_parser.pyx":457
8304  *                 (self._cparser.status_code >= 199 and
8305  *                  self._cparser.content_length == ULLONG_MAX and
8306  *                  self._read_until_eof)             # <<<<<<<<<<<<<<
8307  *         ):
8308  *             payload = StreamReader(
8309  */
8310   __pyx_t_8 = (__pyx_v_self->_read_until_eof != 0);
8311   __pyx_t_6 = __pyx_t_8;
8312   __pyx_L14_bool_binop_done:;
8313 
8314   /* "aiohttp/_http_parser.pyx":453
8315  *                 upgrade, chunked)
8316  *
8317  *         if (ULLONG_MAX > self._cparser.content_length > 0 or chunked or             # <<<<<<<<<<<<<<
8318  *                 self._cparser.method == 5 or  # CONNECT: 5
8319  *                 (self._cparser.status_code >= 199 and
8320  */
8321   if (__pyx_t_6) {
8322 
8323     /* "aiohttp/_http_parser.pyx":459
8324  *                  self._read_until_eof)
8325  *         ):
8326  *             payload = StreamReader(             # <<<<<<<<<<<<<<
8327  *                 self._protocol, timer=self._timer, loop=self._loop,
8328  *                 limit=self._limit)
8329  */
8330     __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 459, __pyx_L1_error)
8331     __Pyx_GOTREF(__pyx_t_3);
8332     __Pyx_INCREF(__pyx_v_self->_protocol);
8333     __Pyx_GIVEREF(__pyx_v_self->_protocol);
8334     PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_self->_protocol);
8335 
8336     /* "aiohttp/_http_parser.pyx":460
8337  *         ):
8338  *             payload = StreamReader(
8339  *                 self._protocol, timer=self._timer, loop=self._loop,             # <<<<<<<<<<<<<<
8340  *                 limit=self._limit)
8341  *         else:
8342  */
8343     __pyx_t_4 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 460, __pyx_L1_error)
8344     __Pyx_GOTREF(__pyx_t_4);
8345     if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_timer, __pyx_v_self->_timer) < 0) __PYX_ERR(0, 460, __pyx_L1_error)
8346     if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_loop, __pyx_v_self->_loop) < 0) __PYX_ERR(0, 460, __pyx_L1_error)
8347 
8348     /* "aiohttp/_http_parser.pyx":461
8349  *             payload = StreamReader(
8350  *                 self._protocol, timer=self._timer, loop=self._loop,
8351  *                 limit=self._limit)             # <<<<<<<<<<<<<<
8352  *         else:
8353  *             payload = EMPTY_PAYLOAD
8354  */
8355     __pyx_t_7 = __Pyx_PyInt_From_int(__pyx_v_self->_limit); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 461, __pyx_L1_error)
8356     __Pyx_GOTREF(__pyx_t_7);
8357     if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_limit, __pyx_t_7) < 0) __PYX_ERR(0, 460, __pyx_L1_error)
8358     __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
8359 
8360     /* "aiohttp/_http_parser.pyx":459
8361  *                  self._read_until_eof)
8362  *         ):
8363  *             payload = StreamReader(             # <<<<<<<<<<<<<<
8364  *                 self._protocol, timer=self._timer, loop=self._loop,
8365  *                 limit=self._limit)
8366  */
8367     __pyx_t_7 = __Pyx_PyObject_Call(__pyx_v_7aiohttp_12_http_parser_StreamReader, __pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 459, __pyx_L1_error)
8368     __Pyx_GOTREF(__pyx_t_7);
8369     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
8370     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
8371     __pyx_v_payload = __pyx_t_7;
8372     __pyx_t_7 = 0;
8373 
8374     /* "aiohttp/_http_parser.pyx":453
8375  *                 upgrade, chunked)
8376  *
8377  *         if (ULLONG_MAX > self._cparser.content_length > 0 or chunked or             # <<<<<<<<<<<<<<
8378  *                 self._cparser.method == 5 or  # CONNECT: 5
8379  *                 (self._cparser.status_code >= 199 and
8380  */
8381     goto __pyx_L13;
8382   }
8383 
8384   /* "aiohttp/_http_parser.pyx":463
8385  *                 limit=self._limit)
8386  *         else:
8387  *             payload = EMPTY_PAYLOAD             # <<<<<<<<<<<<<<
8388  *
8389  *         self._payload = payload
8390  */
8391   /*else*/ {
8392     __Pyx_INCREF(__pyx_v_7aiohttp_12_http_parser_EMPTY_PAYLOAD);
8393     __pyx_v_payload = __pyx_v_7aiohttp_12_http_parser_EMPTY_PAYLOAD;
8394   }
8395   __pyx_L13:;
8396 
8397   /* "aiohttp/_http_parser.pyx":465
8398  *             payload = EMPTY_PAYLOAD
8399  *
8400  *         self._payload = payload             # <<<<<<<<<<<<<<
8401  *         if encoding is not None and self._auto_decompress:
8402  *             self._payload = DeflateBuffer(payload, encoding)
8403  */
8404   __Pyx_INCREF(__pyx_v_payload);
8405   __Pyx_GIVEREF(__pyx_v_payload);
8406   __Pyx_GOTREF(__pyx_v_self->_payload);
8407   __Pyx_DECREF(__pyx_v_self->_payload);
8408   __pyx_v_self->_payload = __pyx_v_payload;
8409 
8410   /* "aiohttp/_http_parser.pyx":466
8411  *
8412  *         self._payload = payload
8413  *         if encoding is not None and self._auto_decompress:             # <<<<<<<<<<<<<<
8414  *             self._payload = DeflateBuffer(payload, encoding)
8415  *
8416  */
8417   __pyx_t_8 = (__pyx_v_encoding != Py_None);
8418   __pyx_t_5 = (__pyx_t_8 != 0);
8419   if (__pyx_t_5) {
8420   } else {
8421     __pyx_t_6 = __pyx_t_5;
8422     goto __pyx_L21_bool_binop_done;
8423   }
8424   __pyx_t_5 = (__pyx_v_self->_auto_decompress != 0);
8425   __pyx_t_6 = __pyx_t_5;
8426   __pyx_L21_bool_binop_done:;
8427   if (__pyx_t_6) {
8428 
8429     /* "aiohttp/_http_parser.pyx":467
8430  *         self._payload = payload
8431  *         if encoding is not None and self._auto_decompress:
8432  *             self._payload = DeflateBuffer(payload, encoding)             # <<<<<<<<<<<<<<
8433  *
8434  *         if not self._response_with_body:
8435  */
8436     __Pyx_INCREF(__pyx_v_7aiohttp_12_http_parser_DeflateBuffer);
8437     __pyx_t_4 = __pyx_v_7aiohttp_12_http_parser_DeflateBuffer; __pyx_t_3 = NULL;
8438     __pyx_t_9 = 0;
8439     if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
8440       __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
8441       if (likely(__pyx_t_3)) {
8442         PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
8443         __Pyx_INCREF(__pyx_t_3);
8444         __Pyx_INCREF(function);
8445         __Pyx_DECREF_SET(__pyx_t_4, function);
8446         __pyx_t_9 = 1;
8447       }
8448     }
8449     #if CYTHON_FAST_PYCALL
8450     if (PyFunction_Check(__pyx_t_4)) {
8451       PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_v_payload, __pyx_v_encoding};
8452       __pyx_t_7 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 467, __pyx_L1_error)
8453       __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
8454       __Pyx_GOTREF(__pyx_t_7);
8455     } else
8456     #endif
8457     #if CYTHON_FAST_PYCCALL
8458     if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
8459       PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_v_payload, __pyx_v_encoding};
8460       __pyx_t_7 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 467, __pyx_L1_error)
8461       __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
8462       __Pyx_GOTREF(__pyx_t_7);
8463     } else
8464     #endif
8465     {
8466       __pyx_t_1 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 467, __pyx_L1_error)
8467       __Pyx_GOTREF(__pyx_t_1);
8468       if (__pyx_t_3) {
8469         __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3); __pyx_t_3 = NULL;
8470       }
8471       __Pyx_INCREF(__pyx_v_payload);
8472       __Pyx_GIVEREF(__pyx_v_payload);
8473       PyTuple_SET_ITEM(__pyx_t_1, 0+__pyx_t_9, __pyx_v_payload);
8474       __Pyx_INCREF(__pyx_v_encoding);
8475       __Pyx_GIVEREF(__pyx_v_encoding);
8476       PyTuple_SET_ITEM(__pyx_t_1, 1+__pyx_t_9, __pyx_v_encoding);
8477       __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_1, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 467, __pyx_L1_error)
8478       __Pyx_GOTREF(__pyx_t_7);
8479       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
8480     }
8481     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
8482     __Pyx_GIVEREF(__pyx_t_7);
8483     __Pyx_GOTREF(__pyx_v_self->_payload);
8484     __Pyx_DECREF(__pyx_v_self->_payload);
8485     __pyx_v_self->_payload = __pyx_t_7;
8486     __pyx_t_7 = 0;
8487 
8488     /* "aiohttp/_http_parser.pyx":466
8489  *
8490  *         self._payload = payload
8491  *         if encoding is not None and self._auto_decompress:             # <<<<<<<<<<<<<<
8492  *             self._payload = DeflateBuffer(payload, encoding)
8493  *
8494  */
8495   }
8496 
8497   /* "aiohttp/_http_parser.pyx":469
8498  *             self._payload = DeflateBuffer(payload, encoding)
8499  *
8500  *         if not self._response_with_body:             # <<<<<<<<<<<<<<
8501  *             payload = EMPTY_PAYLOAD
8502  *
8503  */
8504   __pyx_t_6 = ((!(__pyx_v_self->_response_with_body != 0)) != 0);
8505   if (__pyx_t_6) {
8506 
8507     /* "aiohttp/_http_parser.pyx":470
8508  *
8509  *         if not self._response_with_body:
8510  *             payload = EMPTY_PAYLOAD             # <<<<<<<<<<<<<<
8511  *
8512  *         self._messages.append((msg, payload))
8513  */
8514     __Pyx_INCREF(__pyx_v_7aiohttp_12_http_parser_EMPTY_PAYLOAD);
8515     __Pyx_DECREF_SET(__pyx_v_payload, __pyx_v_7aiohttp_12_http_parser_EMPTY_PAYLOAD);
8516 
8517     /* "aiohttp/_http_parser.pyx":469
8518  *             self._payload = DeflateBuffer(payload, encoding)
8519  *
8520  *         if not self._response_with_body:             # <<<<<<<<<<<<<<
8521  *             payload = EMPTY_PAYLOAD
8522  *
8523  */
8524   }
8525 
8526   /* "aiohttp/_http_parser.pyx":472
8527  *             payload = EMPTY_PAYLOAD
8528  *
8529  *         self._messages.append((msg, payload))             # <<<<<<<<<<<<<<
8530  *
8531  *     cdef _on_message_complete(self):
8532  */
8533   if (unlikely(__pyx_v_self->_messages == Py_None)) {
8534     PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "append");
8535     __PYX_ERR(0, 472, __pyx_L1_error)
8536   }
8537   __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 472, __pyx_L1_error)
8538   __Pyx_GOTREF(__pyx_t_7);
8539   __Pyx_INCREF(__pyx_v_msg);
8540   __Pyx_GIVEREF(__pyx_v_msg);
8541   PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_msg);
8542   __Pyx_INCREF(__pyx_v_payload);
8543   __Pyx_GIVEREF(__pyx_v_payload);
8544   PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_v_payload);
8545   __pyx_t_10 = __Pyx_PyList_Append(__pyx_v_self->_messages, __pyx_t_7); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(0, 472, __pyx_L1_error)
8546   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
8547 
8548   /* "aiohttp/_http_parser.pyx":416
8549  *         self._has_value = True
8550  *
8551  *     cdef _on_headers_complete(self):             # <<<<<<<<<<<<<<
8552  *         self._process_header()
8553  *
8554  */
8555 
8556   /* function exit code */
8557   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
8558   goto __pyx_L0;
8559   __pyx_L1_error:;
8560   __Pyx_XDECREF(__pyx_t_1);
8561   __Pyx_XDECREF(__pyx_t_3);
8562   __Pyx_XDECREF(__pyx_t_4);
8563   __Pyx_XDECREF(__pyx_t_7);
8564   __Pyx_AddTraceback("aiohttp._http_parser.HttpParser._on_headers_complete", __pyx_clineno, __pyx_lineno, __pyx_filename);
8565   __pyx_r = 0;
8566   __pyx_L0:;
8567   __Pyx_XDECREF(__pyx_v_method);
8568   __Pyx_XDECREF(__pyx_v_raw_headers);
8569   __Pyx_XDECREF(__pyx_v_headers);
8570   __Pyx_XDECREF(__pyx_v_encoding);
8571   __Pyx_XDECREF(__pyx_v_enc);
8572   __Pyx_XDECREF(__pyx_v_msg);
8573   __Pyx_XDECREF(__pyx_v_payload);
8574   __Pyx_XGIVEREF(__pyx_r);
8575   __Pyx_RefNannyFinishContext();
8576   return __pyx_r;
8577 }
8578 
8579 /* "aiohttp/_http_parser.pyx":474
8580  *         self._messages.append((msg, payload))
8581  *
8582  *     cdef _on_message_complete(self):             # <<<<<<<<<<<<<<
8583  *         self._payload.feed_eof()
8584  *         self._payload = None
8585  */
8586 
__pyx_f_7aiohttp_12_http_parser_10HttpParser__on_message_complete(struct __pyx_obj_7aiohttp_12_http_parser_HttpParser * __pyx_v_self)8587 static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__on_message_complete(struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *__pyx_v_self) {
8588   PyObject *__pyx_r = NULL;
8589   __Pyx_RefNannyDeclarations
8590   PyObject *__pyx_t_1 = NULL;
8591   PyObject *__pyx_t_2 = NULL;
8592   PyObject *__pyx_t_3 = NULL;
8593   int __pyx_lineno = 0;
8594   const char *__pyx_filename = NULL;
8595   int __pyx_clineno = 0;
8596   __Pyx_RefNannySetupContext("_on_message_complete", 0);
8597 
8598   /* "aiohttp/_http_parser.pyx":475
8599  *
8600  *     cdef _on_message_complete(self):
8601  *         self._payload.feed_eof()             # <<<<<<<<<<<<<<
8602  *         self._payload = None
8603  *
8604  */
8605   __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->_payload, __pyx_n_s_feed_eof); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 475, __pyx_L1_error)
8606   __Pyx_GOTREF(__pyx_t_2);
8607   __pyx_t_3 = NULL;
8608   if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
8609     __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
8610     if (likely(__pyx_t_3)) {
8611       PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
8612       __Pyx_INCREF(__pyx_t_3);
8613       __Pyx_INCREF(function);
8614       __Pyx_DECREF_SET(__pyx_t_2, function);
8615     }
8616   }
8617   __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
8618   __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
8619   if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 475, __pyx_L1_error)
8620   __Pyx_GOTREF(__pyx_t_1);
8621   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
8622   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
8623 
8624   /* "aiohttp/_http_parser.pyx":476
8625  *     cdef _on_message_complete(self):
8626  *         self._payload.feed_eof()
8627  *         self._payload = None             # <<<<<<<<<<<<<<
8628  *
8629  *     cdef _on_chunk_header(self):
8630  */
8631   __Pyx_INCREF(Py_None);
8632   __Pyx_GIVEREF(Py_None);
8633   __Pyx_GOTREF(__pyx_v_self->_payload);
8634   __Pyx_DECREF(__pyx_v_self->_payload);
8635   __pyx_v_self->_payload = Py_None;
8636 
8637   /* "aiohttp/_http_parser.pyx":474
8638  *         self._messages.append((msg, payload))
8639  *
8640  *     cdef _on_message_complete(self):             # <<<<<<<<<<<<<<
8641  *         self._payload.feed_eof()
8642  *         self._payload = None
8643  */
8644 
8645   /* function exit code */
8646   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
8647   goto __pyx_L0;
8648   __pyx_L1_error:;
8649   __Pyx_XDECREF(__pyx_t_1);
8650   __Pyx_XDECREF(__pyx_t_2);
8651   __Pyx_XDECREF(__pyx_t_3);
8652   __Pyx_AddTraceback("aiohttp._http_parser.HttpParser._on_message_complete", __pyx_clineno, __pyx_lineno, __pyx_filename);
8653   __pyx_r = 0;
8654   __pyx_L0:;
8655   __Pyx_XGIVEREF(__pyx_r);
8656   __Pyx_RefNannyFinishContext();
8657   return __pyx_r;
8658 }
8659 
8660 /* "aiohttp/_http_parser.pyx":478
8661  *         self._payload = None
8662  *
8663  *     cdef _on_chunk_header(self):             # <<<<<<<<<<<<<<
8664  *         self._payload.begin_http_chunk_receiving()
8665  *
8666  */
8667 
__pyx_f_7aiohttp_12_http_parser_10HttpParser__on_chunk_header(struct __pyx_obj_7aiohttp_12_http_parser_HttpParser * __pyx_v_self)8668 static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__on_chunk_header(struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *__pyx_v_self) {
8669   PyObject *__pyx_r = NULL;
8670   __Pyx_RefNannyDeclarations
8671   PyObject *__pyx_t_1 = NULL;
8672   PyObject *__pyx_t_2 = NULL;
8673   PyObject *__pyx_t_3 = NULL;
8674   int __pyx_lineno = 0;
8675   const char *__pyx_filename = NULL;
8676   int __pyx_clineno = 0;
8677   __Pyx_RefNannySetupContext("_on_chunk_header", 0);
8678 
8679   /* "aiohttp/_http_parser.pyx":479
8680  *
8681  *     cdef _on_chunk_header(self):
8682  *         self._payload.begin_http_chunk_receiving()             # <<<<<<<<<<<<<<
8683  *
8684  *     cdef _on_chunk_complete(self):
8685  */
8686   __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->_payload, __pyx_n_s_begin_http_chunk_receiving); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 479, __pyx_L1_error)
8687   __Pyx_GOTREF(__pyx_t_2);
8688   __pyx_t_3 = NULL;
8689   if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
8690     __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
8691     if (likely(__pyx_t_3)) {
8692       PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
8693       __Pyx_INCREF(__pyx_t_3);
8694       __Pyx_INCREF(function);
8695       __Pyx_DECREF_SET(__pyx_t_2, function);
8696     }
8697   }
8698   __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
8699   __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
8700   if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 479, __pyx_L1_error)
8701   __Pyx_GOTREF(__pyx_t_1);
8702   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
8703   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
8704 
8705   /* "aiohttp/_http_parser.pyx":478
8706  *         self._payload = None
8707  *
8708  *     cdef _on_chunk_header(self):             # <<<<<<<<<<<<<<
8709  *         self._payload.begin_http_chunk_receiving()
8710  *
8711  */
8712 
8713   /* function exit code */
8714   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
8715   goto __pyx_L0;
8716   __pyx_L1_error:;
8717   __Pyx_XDECREF(__pyx_t_1);
8718   __Pyx_XDECREF(__pyx_t_2);
8719   __Pyx_XDECREF(__pyx_t_3);
8720   __Pyx_AddTraceback("aiohttp._http_parser.HttpParser._on_chunk_header", __pyx_clineno, __pyx_lineno, __pyx_filename);
8721   __pyx_r = 0;
8722   __pyx_L0:;
8723   __Pyx_XGIVEREF(__pyx_r);
8724   __Pyx_RefNannyFinishContext();
8725   return __pyx_r;
8726 }
8727 
8728 /* "aiohttp/_http_parser.pyx":481
8729  *         self._payload.begin_http_chunk_receiving()
8730  *
8731  *     cdef _on_chunk_complete(self):             # <<<<<<<<<<<<<<
8732  *         self._payload.end_http_chunk_receiving()
8733  *
8734  */
8735 
__pyx_f_7aiohttp_12_http_parser_10HttpParser__on_chunk_complete(struct __pyx_obj_7aiohttp_12_http_parser_HttpParser * __pyx_v_self)8736 static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__on_chunk_complete(struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *__pyx_v_self) {
8737   PyObject *__pyx_r = NULL;
8738   __Pyx_RefNannyDeclarations
8739   PyObject *__pyx_t_1 = NULL;
8740   PyObject *__pyx_t_2 = NULL;
8741   PyObject *__pyx_t_3 = NULL;
8742   int __pyx_lineno = 0;
8743   const char *__pyx_filename = NULL;
8744   int __pyx_clineno = 0;
8745   __Pyx_RefNannySetupContext("_on_chunk_complete", 0);
8746 
8747   /* "aiohttp/_http_parser.pyx":482
8748  *
8749  *     cdef _on_chunk_complete(self):
8750  *         self._payload.end_http_chunk_receiving()             # <<<<<<<<<<<<<<
8751  *
8752  *     cdef object _on_status_complete(self):
8753  */
8754   __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->_payload, __pyx_n_s_end_http_chunk_receiving); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 482, __pyx_L1_error)
8755   __Pyx_GOTREF(__pyx_t_2);
8756   __pyx_t_3 = NULL;
8757   if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
8758     __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
8759     if (likely(__pyx_t_3)) {
8760       PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
8761       __Pyx_INCREF(__pyx_t_3);
8762       __Pyx_INCREF(function);
8763       __Pyx_DECREF_SET(__pyx_t_2, function);
8764     }
8765   }
8766   __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
8767   __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
8768   if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 482, __pyx_L1_error)
8769   __Pyx_GOTREF(__pyx_t_1);
8770   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
8771   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
8772 
8773   /* "aiohttp/_http_parser.pyx":481
8774  *         self._payload.begin_http_chunk_receiving()
8775  *
8776  *     cdef _on_chunk_complete(self):             # <<<<<<<<<<<<<<
8777  *         self._payload.end_http_chunk_receiving()
8778  *
8779  */
8780 
8781   /* function exit code */
8782   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
8783   goto __pyx_L0;
8784   __pyx_L1_error:;
8785   __Pyx_XDECREF(__pyx_t_1);
8786   __Pyx_XDECREF(__pyx_t_2);
8787   __Pyx_XDECREF(__pyx_t_3);
8788   __Pyx_AddTraceback("aiohttp._http_parser.HttpParser._on_chunk_complete", __pyx_clineno, __pyx_lineno, __pyx_filename);
8789   __pyx_r = 0;
8790   __pyx_L0:;
8791   __Pyx_XGIVEREF(__pyx_r);
8792   __Pyx_RefNannyFinishContext();
8793   return __pyx_r;
8794 }
8795 
8796 /* "aiohttp/_http_parser.pyx":484
8797  *         self._payload.end_http_chunk_receiving()
8798  *
8799  *     cdef object _on_status_complete(self):             # <<<<<<<<<<<<<<
8800  *         pass
8801  *
8802  */
8803 
__pyx_f_7aiohttp_12_http_parser_10HttpParser__on_status_complete(CYTHON_UNUSED struct __pyx_obj_7aiohttp_12_http_parser_HttpParser * __pyx_v_self)8804 static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__on_status_complete(CYTHON_UNUSED struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *__pyx_v_self) {
8805   PyObject *__pyx_r = NULL;
8806   __Pyx_RefNannyDeclarations
8807   __Pyx_RefNannySetupContext("_on_status_complete", 0);
8808 
8809   /* function exit code */
8810   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
8811   __Pyx_XGIVEREF(__pyx_r);
8812   __Pyx_RefNannyFinishContext();
8813   return __pyx_r;
8814 }
8815 
8816 /* "aiohttp/_http_parser.pyx":487
8817  *         pass
8818  *
8819  *     cdef inline http_version(self):             # <<<<<<<<<<<<<<
8820  *         cdef cparser.http_parser* parser = self._cparser
8821  *
8822  */
8823 
__pyx_f_7aiohttp_12_http_parser_10HttpParser_http_version(struct __pyx_obj_7aiohttp_12_http_parser_HttpParser * __pyx_v_self)8824 static CYTHON_INLINE PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser_http_version(struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *__pyx_v_self) {
8825   struct http_parser *__pyx_v_parser;
8826   PyObject *__pyx_r = NULL;
8827   __Pyx_RefNannyDeclarations
8828   struct http_parser *__pyx_t_1;
8829   int __pyx_t_2;
8830   PyObject *__pyx_t_3 = NULL;
8831   PyObject *__pyx_t_4 = NULL;
8832   PyObject *__pyx_t_5 = NULL;
8833   PyObject *__pyx_t_6 = NULL;
8834   PyObject *__pyx_t_7 = NULL;
8835   int __pyx_t_8;
8836   PyObject *__pyx_t_9 = NULL;
8837   int __pyx_lineno = 0;
8838   const char *__pyx_filename = NULL;
8839   int __pyx_clineno = 0;
8840   __Pyx_RefNannySetupContext("http_version", 0);
8841 
8842   /* "aiohttp/_http_parser.pyx":488
8843  *
8844  *     cdef inline http_version(self):
8845  *         cdef cparser.http_parser* parser = self._cparser             # <<<<<<<<<<<<<<
8846  *
8847  *         if parser.http_major == 1:
8848  */
8849   __pyx_t_1 = __pyx_v_self->_cparser;
8850   __pyx_v_parser = __pyx_t_1;
8851 
8852   /* "aiohttp/_http_parser.pyx":490
8853  *         cdef cparser.http_parser* parser = self._cparser
8854  *
8855  *         if parser.http_major == 1:             # <<<<<<<<<<<<<<
8856  *             if parser.http_minor == 0:
8857  *                 return HttpVersion10
8858  */
8859   __pyx_t_2 = ((__pyx_v_parser->http_major == 1) != 0);
8860   if (__pyx_t_2) {
8861 
8862     /* "aiohttp/_http_parser.pyx":491
8863  *
8864  *         if parser.http_major == 1:
8865  *             if parser.http_minor == 0:             # <<<<<<<<<<<<<<
8866  *                 return HttpVersion10
8867  *             elif parser.http_minor == 1:
8868  */
8869     switch (__pyx_v_parser->http_minor) {
8870       case 0:
8871 
8872       /* "aiohttp/_http_parser.pyx":492
8873  *         if parser.http_major == 1:
8874  *             if parser.http_minor == 0:
8875  *                 return HttpVersion10             # <<<<<<<<<<<<<<
8876  *             elif parser.http_minor == 1:
8877  *                 return HttpVersion11
8878  */
8879       __Pyx_XDECREF(__pyx_r);
8880       __Pyx_INCREF(__pyx_v_7aiohttp_12_http_parser_HttpVersion10);
8881       __pyx_r = __pyx_v_7aiohttp_12_http_parser_HttpVersion10;
8882       goto __pyx_L0;
8883 
8884       /* "aiohttp/_http_parser.pyx":491
8885  *
8886  *         if parser.http_major == 1:
8887  *             if parser.http_minor == 0:             # <<<<<<<<<<<<<<
8888  *                 return HttpVersion10
8889  *             elif parser.http_minor == 1:
8890  */
8891       break;
8892       case 1:
8893 
8894       /* "aiohttp/_http_parser.pyx":494
8895  *                 return HttpVersion10
8896  *             elif parser.http_minor == 1:
8897  *                 return HttpVersion11             # <<<<<<<<<<<<<<
8898  *
8899  *         return HttpVersion(parser.http_major, parser.http_minor)
8900  */
8901       __Pyx_XDECREF(__pyx_r);
8902       __Pyx_INCREF(__pyx_v_7aiohttp_12_http_parser_HttpVersion11);
8903       __pyx_r = __pyx_v_7aiohttp_12_http_parser_HttpVersion11;
8904       goto __pyx_L0;
8905 
8906       /* "aiohttp/_http_parser.pyx":493
8907  *             if parser.http_minor == 0:
8908  *                 return HttpVersion10
8909  *             elif parser.http_minor == 1:             # <<<<<<<<<<<<<<
8910  *                 return HttpVersion11
8911  *
8912  */
8913       break;
8914       default: break;
8915     }
8916 
8917     /* "aiohttp/_http_parser.pyx":490
8918  *         cdef cparser.http_parser* parser = self._cparser
8919  *
8920  *         if parser.http_major == 1:             # <<<<<<<<<<<<<<
8921  *             if parser.http_minor == 0:
8922  *                 return HttpVersion10
8923  */
8924   }
8925 
8926   /* "aiohttp/_http_parser.pyx":496
8927  *                 return HttpVersion11
8928  *
8929  *         return HttpVersion(parser.http_major, parser.http_minor)             # <<<<<<<<<<<<<<
8930  *
8931  *     ### Public API ###
8932  */
8933   __Pyx_XDECREF(__pyx_r);
8934   __pyx_t_4 = __Pyx_PyInt_From_unsigned_short(__pyx_v_parser->http_major); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 496, __pyx_L1_error)
8935   __Pyx_GOTREF(__pyx_t_4);
8936   __pyx_t_5 = __Pyx_PyInt_From_unsigned_short(__pyx_v_parser->http_minor); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 496, __pyx_L1_error)
8937   __Pyx_GOTREF(__pyx_t_5);
8938   __Pyx_INCREF(__pyx_v_7aiohttp_12_http_parser_HttpVersion);
8939   __pyx_t_6 = __pyx_v_7aiohttp_12_http_parser_HttpVersion; __pyx_t_7 = NULL;
8940   __pyx_t_8 = 0;
8941   if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
8942     __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
8943     if (likely(__pyx_t_7)) {
8944       PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
8945       __Pyx_INCREF(__pyx_t_7);
8946       __Pyx_INCREF(function);
8947       __Pyx_DECREF_SET(__pyx_t_6, function);
8948       __pyx_t_8 = 1;
8949     }
8950   }
8951   #if CYTHON_FAST_PYCALL
8952   if (PyFunction_Check(__pyx_t_6)) {
8953     PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_4, __pyx_t_5};
8954     __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 496, __pyx_L1_error)
8955     __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
8956     __Pyx_GOTREF(__pyx_t_3);
8957     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
8958     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
8959   } else
8960   #endif
8961   #if CYTHON_FAST_PYCCALL
8962   if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) {
8963     PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_4, __pyx_t_5};
8964     __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 496, __pyx_L1_error)
8965     __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
8966     __Pyx_GOTREF(__pyx_t_3);
8967     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
8968     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
8969   } else
8970   #endif
8971   {
8972     __pyx_t_9 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 496, __pyx_L1_error)
8973     __Pyx_GOTREF(__pyx_t_9);
8974     if (__pyx_t_7) {
8975       __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_7); __pyx_t_7 = NULL;
8976     }
8977     __Pyx_GIVEREF(__pyx_t_4);
8978     PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_8, __pyx_t_4);
8979     __Pyx_GIVEREF(__pyx_t_5);
8980     PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, __pyx_t_5);
8981     __pyx_t_4 = 0;
8982     __pyx_t_5 = 0;
8983     __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_9, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 496, __pyx_L1_error)
8984     __Pyx_GOTREF(__pyx_t_3);
8985     __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
8986   }
8987   __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
8988   __pyx_r = __pyx_t_3;
8989   __pyx_t_3 = 0;
8990   goto __pyx_L0;
8991 
8992   /* "aiohttp/_http_parser.pyx":487
8993  *         pass
8994  *
8995  *     cdef inline http_version(self):             # <<<<<<<<<<<<<<
8996  *         cdef cparser.http_parser* parser = self._cparser
8997  *
8998  */
8999 
9000   /* function exit code */
9001   __pyx_L1_error:;
9002   __Pyx_XDECREF(__pyx_t_3);
9003   __Pyx_XDECREF(__pyx_t_4);
9004   __Pyx_XDECREF(__pyx_t_5);
9005   __Pyx_XDECREF(__pyx_t_6);
9006   __Pyx_XDECREF(__pyx_t_7);
9007   __Pyx_XDECREF(__pyx_t_9);
9008   __Pyx_AddTraceback("aiohttp._http_parser.HttpParser.http_version", __pyx_clineno, __pyx_lineno, __pyx_filename);
9009   __pyx_r = 0;
9010   __pyx_L0:;
9011   __Pyx_XGIVEREF(__pyx_r);
9012   __Pyx_RefNannyFinishContext();
9013   return __pyx_r;
9014 }
9015 
9016 /* "aiohttp/_http_parser.pyx":500
9017  *     ### Public API ###
9018  *
9019  *     def feed_eof(self):             # <<<<<<<<<<<<<<
9020  *         cdef bytes desc
9021  *
9022  */
9023 
9024 /* Python wrapper */
9025 static PyObject *__pyx_pw_7aiohttp_12_http_parser_10HttpParser_5feed_eof(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
__pyx_pw_7aiohttp_12_http_parser_10HttpParser_5feed_eof(PyObject * __pyx_v_self,CYTHON_UNUSED PyObject * unused)9026 static PyObject *__pyx_pw_7aiohttp_12_http_parser_10HttpParser_5feed_eof(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
9027   PyObject *__pyx_r = 0;
9028   __Pyx_RefNannyDeclarations
9029   __Pyx_RefNannySetupContext("feed_eof (wrapper)", 0);
9030   __pyx_r = __pyx_pf_7aiohttp_12_http_parser_10HttpParser_4feed_eof(((struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *)__pyx_v_self));
9031 
9032   /* function exit code */
9033   __Pyx_RefNannyFinishContext();
9034   return __pyx_r;
9035 }
9036 
__pyx_pf_7aiohttp_12_http_parser_10HttpParser_4feed_eof(struct __pyx_obj_7aiohttp_12_http_parser_HttpParser * __pyx_v_self)9037 static PyObject *__pyx_pf_7aiohttp_12_http_parser_10HttpParser_4feed_eof(struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *__pyx_v_self) {
9038   PyObject *__pyx_v_desc = 0;
9039   PyObject *__pyx_r = NULL;
9040   __Pyx_RefNannyDeclarations
9041   int __pyx_t_1;
9042   int __pyx_t_2;
9043   PyObject *__pyx_t_3 = NULL;
9044   PyObject *__pyx_t_4 = NULL;
9045   PyObject *__pyx_t_5 = NULL;
9046   PyObject *__pyx_t_6 = NULL;
9047   int __pyx_lineno = 0;
9048   const char *__pyx_filename = NULL;
9049   int __pyx_clineno = 0;
9050   __Pyx_RefNannySetupContext("feed_eof", 0);
9051 
9052   /* "aiohttp/_http_parser.pyx":503
9053  *         cdef bytes desc
9054  *
9055  *         if self._payload is not None:             # <<<<<<<<<<<<<<
9056  *             if self._cparser.flags & cparser.F_CHUNKED:
9057  *                 raise TransferEncodingError(
9058  */
9059   __pyx_t_1 = (__pyx_v_self->_payload != Py_None);
9060   __pyx_t_2 = (__pyx_t_1 != 0);
9061   if (__pyx_t_2) {
9062 
9063     /* "aiohttp/_http_parser.pyx":504
9064  *
9065  *         if self._payload is not None:
9066  *             if self._cparser.flags & cparser.F_CHUNKED:             # <<<<<<<<<<<<<<
9067  *                 raise TransferEncodingError(
9068  *                     "Not enough data for satisfy transfer length header.")
9069  */
9070     __pyx_t_2 = ((__pyx_v_self->_cparser->flags & F_CHUNKED) != 0);
9071     if (unlikely(__pyx_t_2)) {
9072 
9073       /* "aiohttp/_http_parser.pyx":505
9074  *         if self._payload is not None:
9075  *             if self._cparser.flags & cparser.F_CHUNKED:
9076  *                 raise TransferEncodingError(             # <<<<<<<<<<<<<<
9077  *                     "Not enough data for satisfy transfer length header.")
9078  *             elif self._cparser.flags & cparser.F_CONTENTLENGTH:
9079  */
9080       __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_TransferEncodingError); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 505, __pyx_L1_error)
9081       __Pyx_GOTREF(__pyx_t_4);
9082       __pyx_t_5 = NULL;
9083       if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
9084         __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
9085         if (likely(__pyx_t_5)) {
9086           PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
9087           __Pyx_INCREF(__pyx_t_5);
9088           __Pyx_INCREF(function);
9089           __Pyx_DECREF_SET(__pyx_t_4, function);
9090         }
9091       }
9092       __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_kp_u_Not_enough_data_for_satisfy_tran) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_kp_u_Not_enough_data_for_satisfy_tran);
9093       __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
9094       if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 505, __pyx_L1_error)
9095       __Pyx_GOTREF(__pyx_t_3);
9096       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
9097       __Pyx_Raise(__pyx_t_3, 0, 0, 0);
9098       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
9099       __PYX_ERR(0, 505, __pyx_L1_error)
9100 
9101       /* "aiohttp/_http_parser.pyx":504
9102  *
9103  *         if self._payload is not None:
9104  *             if self._cparser.flags & cparser.F_CHUNKED:             # <<<<<<<<<<<<<<
9105  *                 raise TransferEncodingError(
9106  *                     "Not enough data for satisfy transfer length header.")
9107  */
9108     }
9109 
9110     /* "aiohttp/_http_parser.pyx":507
9111  *                 raise TransferEncodingError(
9112  *                     "Not enough data for satisfy transfer length header.")
9113  *             elif self._cparser.flags & cparser.F_CONTENTLENGTH:             # <<<<<<<<<<<<<<
9114  *                 raise ContentLengthError(
9115  *                     "Not enough data for satisfy content length header.")
9116  */
9117     __pyx_t_2 = ((__pyx_v_self->_cparser->flags & F_CONTENTLENGTH) != 0);
9118     if (unlikely(__pyx_t_2)) {
9119 
9120       /* "aiohttp/_http_parser.pyx":508
9121  *                     "Not enough data for satisfy transfer length header.")
9122  *             elif self._cparser.flags & cparser.F_CONTENTLENGTH:
9123  *                 raise ContentLengthError(             # <<<<<<<<<<<<<<
9124  *                     "Not enough data for satisfy content length header.")
9125  *             elif self._cparser.http_errno != cparser.HPE_OK:
9126  */
9127       __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_ContentLengthError); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 508, __pyx_L1_error)
9128       __Pyx_GOTREF(__pyx_t_4);
9129       __pyx_t_5 = NULL;
9130       if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
9131         __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
9132         if (likely(__pyx_t_5)) {
9133           PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
9134           __Pyx_INCREF(__pyx_t_5);
9135           __Pyx_INCREF(function);
9136           __Pyx_DECREF_SET(__pyx_t_4, function);
9137         }
9138       }
9139       __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_kp_u_Not_enough_data_for_satisfy_cont) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_kp_u_Not_enough_data_for_satisfy_cont);
9140       __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
9141       if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 508, __pyx_L1_error)
9142       __Pyx_GOTREF(__pyx_t_3);
9143       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
9144       __Pyx_Raise(__pyx_t_3, 0, 0, 0);
9145       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
9146       __PYX_ERR(0, 508, __pyx_L1_error)
9147 
9148       /* "aiohttp/_http_parser.pyx":507
9149  *                 raise TransferEncodingError(
9150  *                     "Not enough data for satisfy transfer length header.")
9151  *             elif self._cparser.flags & cparser.F_CONTENTLENGTH:             # <<<<<<<<<<<<<<
9152  *                 raise ContentLengthError(
9153  *                     "Not enough data for satisfy content length header.")
9154  */
9155     }
9156 
9157     /* "aiohttp/_http_parser.pyx":510
9158  *                 raise ContentLengthError(
9159  *                     "Not enough data for satisfy content length header.")
9160  *             elif self._cparser.http_errno != cparser.HPE_OK:             # <<<<<<<<<<<<<<
9161  *                 desc = cparser.http_errno_description(
9162  *                     <cparser.http_errno> self._cparser.http_errno)
9163  */
9164     __pyx_t_2 = ((__pyx_v_self->_cparser->http_errno != HPE_OK) != 0);
9165     if (unlikely(__pyx_t_2)) {
9166 
9167       /* "aiohttp/_http_parser.pyx":511
9168  *                     "Not enough data for satisfy content length header.")
9169  *             elif self._cparser.http_errno != cparser.HPE_OK:
9170  *                 desc = cparser.http_errno_description(             # <<<<<<<<<<<<<<
9171  *                     <cparser.http_errno> self._cparser.http_errno)
9172  *                 raise PayloadEncodingError(desc.decode('latin-1'))
9173  */
9174       __pyx_t_3 = __Pyx_PyBytes_FromString(http_errno_description(((enum http_errno)__pyx_v_self->_cparser->http_errno))); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 511, __pyx_L1_error)
9175       __Pyx_GOTREF(__pyx_t_3);
9176       __pyx_v_desc = ((PyObject*)__pyx_t_3);
9177       __pyx_t_3 = 0;
9178 
9179       /* "aiohttp/_http_parser.pyx":513
9180  *                 desc = cparser.http_errno_description(
9181  *                     <cparser.http_errno> self._cparser.http_errno)
9182  *                 raise PayloadEncodingError(desc.decode('latin-1'))             # <<<<<<<<<<<<<<
9183  *             else:
9184  *                 self._payload.feed_eof()
9185  */
9186       __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_PayloadEncodingError); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 513, __pyx_L1_error)
9187       __Pyx_GOTREF(__pyx_t_4);
9188       __pyx_t_5 = __Pyx_decode_bytes(__pyx_v_desc, 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeLatin1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 513, __pyx_L1_error)
9189       __Pyx_GOTREF(__pyx_t_5);
9190       __pyx_t_6 = NULL;
9191       if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
9192         __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
9193         if (likely(__pyx_t_6)) {
9194           PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
9195           __Pyx_INCREF(__pyx_t_6);
9196           __Pyx_INCREF(function);
9197           __Pyx_DECREF_SET(__pyx_t_4, function);
9198         }
9199       }
9200       __pyx_t_3 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_6, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5);
9201       __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
9202       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
9203       if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 513, __pyx_L1_error)
9204       __Pyx_GOTREF(__pyx_t_3);
9205       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
9206       __Pyx_Raise(__pyx_t_3, 0, 0, 0);
9207       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
9208       __PYX_ERR(0, 513, __pyx_L1_error)
9209 
9210       /* "aiohttp/_http_parser.pyx":510
9211  *                 raise ContentLengthError(
9212  *                     "Not enough data for satisfy content length header.")
9213  *             elif self._cparser.http_errno != cparser.HPE_OK:             # <<<<<<<<<<<<<<
9214  *                 desc = cparser.http_errno_description(
9215  *                     <cparser.http_errno> self._cparser.http_errno)
9216  */
9217     }
9218 
9219     /* "aiohttp/_http_parser.pyx":515
9220  *                 raise PayloadEncodingError(desc.decode('latin-1'))
9221  *             else:
9222  *                 self._payload.feed_eof()             # <<<<<<<<<<<<<<
9223  *         elif self._started:
9224  *             self._on_headers_complete()
9225  */
9226     /*else*/ {
9227       __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->_payload, __pyx_n_s_feed_eof); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 515, __pyx_L1_error)
9228       __Pyx_GOTREF(__pyx_t_4);
9229       __pyx_t_5 = NULL;
9230       if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
9231         __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
9232         if (likely(__pyx_t_5)) {
9233           PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
9234           __Pyx_INCREF(__pyx_t_5);
9235           __Pyx_INCREF(function);
9236           __Pyx_DECREF_SET(__pyx_t_4, function);
9237         }
9238       }
9239       __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5) : __Pyx_PyObject_CallNoArg(__pyx_t_4);
9240       __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
9241       if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 515, __pyx_L1_error)
9242       __Pyx_GOTREF(__pyx_t_3);
9243       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
9244       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
9245     }
9246 
9247     /* "aiohttp/_http_parser.pyx":503
9248  *         cdef bytes desc
9249  *
9250  *         if self._payload is not None:             # <<<<<<<<<<<<<<
9251  *             if self._cparser.flags & cparser.F_CHUNKED:
9252  *                 raise TransferEncodingError(
9253  */
9254     goto __pyx_L3;
9255   }
9256 
9257   /* "aiohttp/_http_parser.pyx":516
9258  *             else:
9259  *                 self._payload.feed_eof()
9260  *         elif self._started:             # <<<<<<<<<<<<<<
9261  *             self._on_headers_complete()
9262  *             if self._messages:
9263  */
9264   __pyx_t_2 = (__pyx_v_self->_started != 0);
9265   if (__pyx_t_2) {
9266 
9267     /* "aiohttp/_http_parser.pyx":517
9268  *                 self._payload.feed_eof()
9269  *         elif self._started:
9270  *             self._on_headers_complete()             # <<<<<<<<<<<<<<
9271  *             if self._messages:
9272  *                 return self._messages[-1][0]
9273  */
9274     __pyx_t_3 = ((struct __pyx_vtabstruct_7aiohttp_12_http_parser_HttpParser *)__pyx_v_self->__pyx_vtab)->_on_headers_complete(__pyx_v_self); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 517, __pyx_L1_error)
9275     __Pyx_GOTREF(__pyx_t_3);
9276     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
9277 
9278     /* "aiohttp/_http_parser.pyx":518
9279  *         elif self._started:
9280  *             self._on_headers_complete()
9281  *             if self._messages:             # <<<<<<<<<<<<<<
9282  *                 return self._messages[-1][0]
9283  *
9284  */
9285     __pyx_t_2 = (__pyx_v_self->_messages != Py_None)&&(PyList_GET_SIZE(__pyx_v_self->_messages) != 0);
9286     if (__pyx_t_2) {
9287 
9288       /* "aiohttp/_http_parser.pyx":519
9289  *             self._on_headers_complete()
9290  *             if self._messages:
9291  *                 return self._messages[-1][0]             # <<<<<<<<<<<<<<
9292  *
9293  *     def feed_data(self, data):
9294  */
9295       __Pyx_XDECREF(__pyx_r);
9296       if (unlikely(__pyx_v_self->_messages == Py_None)) {
9297         PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
9298         __PYX_ERR(0, 519, __pyx_L1_error)
9299       }
9300       __pyx_t_3 = __Pyx_GetItemInt_List(__pyx_v_self->_messages, -1L, long, 1, __Pyx_PyInt_From_long, 1, 1, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 519, __pyx_L1_error)
9301       __Pyx_GOTREF(__pyx_t_3);
9302       __pyx_t_4 = __Pyx_GetItemInt(__pyx_t_3, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 519, __pyx_L1_error)
9303       __Pyx_GOTREF(__pyx_t_4);
9304       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
9305       __pyx_r = __pyx_t_4;
9306       __pyx_t_4 = 0;
9307       goto __pyx_L0;
9308 
9309       /* "aiohttp/_http_parser.pyx":518
9310  *         elif self._started:
9311  *             self._on_headers_complete()
9312  *             if self._messages:             # <<<<<<<<<<<<<<
9313  *                 return self._messages[-1][0]
9314  *
9315  */
9316     }
9317 
9318     /* "aiohttp/_http_parser.pyx":516
9319  *             else:
9320  *                 self._payload.feed_eof()
9321  *         elif self._started:             # <<<<<<<<<<<<<<
9322  *             self._on_headers_complete()
9323  *             if self._messages:
9324  */
9325   }
9326   __pyx_L3:;
9327 
9328   /* "aiohttp/_http_parser.pyx":500
9329  *     ### Public API ###
9330  *
9331  *     def feed_eof(self):             # <<<<<<<<<<<<<<
9332  *         cdef bytes desc
9333  *
9334  */
9335 
9336   /* function exit code */
9337   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
9338   goto __pyx_L0;
9339   __pyx_L1_error:;
9340   __Pyx_XDECREF(__pyx_t_3);
9341   __Pyx_XDECREF(__pyx_t_4);
9342   __Pyx_XDECREF(__pyx_t_5);
9343   __Pyx_XDECREF(__pyx_t_6);
9344   __Pyx_AddTraceback("aiohttp._http_parser.HttpParser.feed_eof", __pyx_clineno, __pyx_lineno, __pyx_filename);
9345   __pyx_r = NULL;
9346   __pyx_L0:;
9347   __Pyx_XDECREF(__pyx_v_desc);
9348   __Pyx_XGIVEREF(__pyx_r);
9349   __Pyx_RefNannyFinishContext();
9350   return __pyx_r;
9351 }
9352 
9353 /* "aiohttp/_http_parser.pyx":521
9354  *                 return self._messages[-1][0]
9355  *
9356  *     def feed_data(self, data):             # <<<<<<<<<<<<<<
9357  *         cdef:
9358  *             size_t data_len
9359  */
9360 
9361 /* Python wrapper */
9362 static PyObject *__pyx_pw_7aiohttp_12_http_parser_10HttpParser_7feed_data(PyObject *__pyx_v_self, PyObject *__pyx_v_data); /*proto*/
__pyx_pw_7aiohttp_12_http_parser_10HttpParser_7feed_data(PyObject * __pyx_v_self,PyObject * __pyx_v_data)9363 static PyObject *__pyx_pw_7aiohttp_12_http_parser_10HttpParser_7feed_data(PyObject *__pyx_v_self, PyObject *__pyx_v_data) {
9364   PyObject *__pyx_r = 0;
9365   __Pyx_RefNannyDeclarations
9366   __Pyx_RefNannySetupContext("feed_data (wrapper)", 0);
9367   __pyx_r = __pyx_pf_7aiohttp_12_http_parser_10HttpParser_6feed_data(((struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *)__pyx_v_self), ((PyObject *)__pyx_v_data));
9368 
9369   /* function exit code */
9370   __Pyx_RefNannyFinishContext();
9371   return __pyx_r;
9372 }
9373 
__pyx_pf_7aiohttp_12_http_parser_10HttpParser_6feed_data(struct __pyx_obj_7aiohttp_12_http_parser_HttpParser * __pyx_v_self,PyObject * __pyx_v_data)9374 static PyObject *__pyx_pf_7aiohttp_12_http_parser_10HttpParser_6feed_data(struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *__pyx_v_self, PyObject *__pyx_v_data) {
9375   size_t __pyx_v_data_len;
9376   size_t __pyx_v_nb;
9377   PyObject *__pyx_v_ex = NULL;
9378   PyObject *__pyx_v_messages = NULL;
9379   PyObject *__pyx_r = NULL;
9380   __Pyx_RefNannyDeclarations
9381   int __pyx_t_1;
9382   int __pyx_t_2;
9383   int __pyx_t_3;
9384   PyObject *__pyx_t_4 = NULL;
9385   PyObject *__pyx_t_5 = NULL;
9386   int __pyx_lineno = 0;
9387   const char *__pyx_filename = NULL;
9388   int __pyx_clineno = 0;
9389   __Pyx_RefNannySetupContext("feed_data", 0);
9390 
9391   /* "aiohttp/_http_parser.pyx":526
9392  *             size_t nb
9393  *
9394  *         PyObject_GetBuffer(data, &self.py_buf, PyBUF_SIMPLE)             # <<<<<<<<<<<<<<
9395  *         data_len = <size_t>self.py_buf.len
9396  *
9397  */
9398   __pyx_t_1 = PyObject_GetBuffer(__pyx_v_data, (&__pyx_v_self->py_buf), PyBUF_SIMPLE); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 526, __pyx_L1_error)
9399 
9400   /* "aiohttp/_http_parser.pyx":527
9401  *
9402  *         PyObject_GetBuffer(data, &self.py_buf, PyBUF_SIMPLE)
9403  *         data_len = <size_t>self.py_buf.len             # <<<<<<<<<<<<<<
9404  *
9405  *         nb = cparser.http_parser_execute(
9406  */
9407   __pyx_v_data_len = ((size_t)__pyx_v_self->py_buf.len);
9408 
9409   /* "aiohttp/_http_parser.pyx":529
9410  *         data_len = <size_t>self.py_buf.len
9411  *
9412  *         nb = cparser.http_parser_execute(             # <<<<<<<<<<<<<<
9413  *             self._cparser,
9414  *             self._csettings,
9415  */
9416   __pyx_v_nb = http_parser_execute(__pyx_v_self->_cparser, __pyx_v_self->_csettings, ((char *)__pyx_v_self->py_buf.buf), __pyx_v_data_len);
9417 
9418   /* "aiohttp/_http_parser.pyx":535
9419  *             data_len)
9420  *
9421  *         PyBuffer_Release(&self.py_buf)             # <<<<<<<<<<<<<<
9422  *
9423  *         if (self._cparser.http_errno != cparser.HPE_OK):
9424  */
9425   PyBuffer_Release((&__pyx_v_self->py_buf));
9426 
9427   /* "aiohttp/_http_parser.pyx":537
9428  *         PyBuffer_Release(&self.py_buf)
9429  *
9430  *         if (self._cparser.http_errno != cparser.HPE_OK):             # <<<<<<<<<<<<<<
9431  *             if self._payload_error == 0:
9432  *                 if self._last_error is not None:
9433  */
9434   __pyx_t_2 = ((__pyx_v_self->_cparser->http_errno != HPE_OK) != 0);
9435   if (__pyx_t_2) {
9436 
9437     /* "aiohttp/_http_parser.pyx":538
9438  *
9439  *         if (self._cparser.http_errno != cparser.HPE_OK):
9440  *             if self._payload_error == 0:             # <<<<<<<<<<<<<<
9441  *                 if self._last_error is not None:
9442  *                     ex = self._last_error
9443  */
9444     __pyx_t_2 = ((__pyx_v_self->_payload_error == 0) != 0);
9445     if (__pyx_t_2) {
9446 
9447       /* "aiohttp/_http_parser.pyx":539
9448  *         if (self._cparser.http_errno != cparser.HPE_OK):
9449  *             if self._payload_error == 0:
9450  *                 if self._last_error is not None:             # <<<<<<<<<<<<<<
9451  *                     ex = self._last_error
9452  *                     self._last_error = None
9453  */
9454       __pyx_t_2 = (__pyx_v_self->_last_error != Py_None);
9455       __pyx_t_3 = (__pyx_t_2 != 0);
9456       if (__pyx_t_3) {
9457 
9458         /* "aiohttp/_http_parser.pyx":540
9459  *             if self._payload_error == 0:
9460  *                 if self._last_error is not None:
9461  *                     ex = self._last_error             # <<<<<<<<<<<<<<
9462  *                     self._last_error = None
9463  *                 else:
9464  */
9465         __pyx_t_4 = __pyx_v_self->_last_error;
9466         __Pyx_INCREF(__pyx_t_4);
9467         __pyx_v_ex = __pyx_t_4;
9468         __pyx_t_4 = 0;
9469 
9470         /* "aiohttp/_http_parser.pyx":541
9471  *                 if self._last_error is not None:
9472  *                     ex = self._last_error
9473  *                     self._last_error = None             # <<<<<<<<<<<<<<
9474  *                 else:
9475  *                     ex = parser_error_from_errno(
9476  */
9477         __Pyx_INCREF(Py_None);
9478         __Pyx_GIVEREF(Py_None);
9479         __Pyx_GOTREF(__pyx_v_self->_last_error);
9480         __Pyx_DECREF(__pyx_v_self->_last_error);
9481         __pyx_v_self->_last_error = Py_None;
9482 
9483         /* "aiohttp/_http_parser.pyx":539
9484  *         if (self._cparser.http_errno != cparser.HPE_OK):
9485  *             if self._payload_error == 0:
9486  *                 if self._last_error is not None:             # <<<<<<<<<<<<<<
9487  *                     ex = self._last_error
9488  *                     self._last_error = None
9489  */
9490         goto __pyx_L5;
9491       }
9492 
9493       /* "aiohttp/_http_parser.pyx":543
9494  *                     self._last_error = None
9495  *                 else:
9496  *                     ex = parser_error_from_errno(             # <<<<<<<<<<<<<<
9497  *                         <cparser.http_errno> self._cparser.http_errno)
9498  *                 self._payload = None
9499  */
9500       /*else*/ {
9501 
9502         /* "aiohttp/_http_parser.pyx":544
9503  *                 else:
9504  *                     ex = parser_error_from_errno(
9505  *                         <cparser.http_errno> self._cparser.http_errno)             # <<<<<<<<<<<<<<
9506  *                 self._payload = None
9507  *                 raise ex
9508  */
9509         __pyx_t_4 = __pyx_f_7aiohttp_12_http_parser_parser_error_from_errno(((enum http_errno)__pyx_v_self->_cparser->http_errno)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 543, __pyx_L1_error)
9510         __Pyx_GOTREF(__pyx_t_4);
9511         __pyx_v_ex = __pyx_t_4;
9512         __pyx_t_4 = 0;
9513       }
9514       __pyx_L5:;
9515 
9516       /* "aiohttp/_http_parser.pyx":545
9517  *                     ex = parser_error_from_errno(
9518  *                         <cparser.http_errno> self._cparser.http_errno)
9519  *                 self._payload = None             # <<<<<<<<<<<<<<
9520  *                 raise ex
9521  *
9522  */
9523       __Pyx_INCREF(Py_None);
9524       __Pyx_GIVEREF(Py_None);
9525       __Pyx_GOTREF(__pyx_v_self->_payload);
9526       __Pyx_DECREF(__pyx_v_self->_payload);
9527       __pyx_v_self->_payload = Py_None;
9528 
9529       /* "aiohttp/_http_parser.pyx":546
9530  *                         <cparser.http_errno> self._cparser.http_errno)
9531  *                 self._payload = None
9532  *                 raise ex             # <<<<<<<<<<<<<<
9533  *
9534  *         if self._messages:
9535  */
9536       __Pyx_Raise(__pyx_v_ex, 0, 0, 0);
9537       __PYX_ERR(0, 546, __pyx_L1_error)
9538 
9539       /* "aiohttp/_http_parser.pyx":538
9540  *
9541  *         if (self._cparser.http_errno != cparser.HPE_OK):
9542  *             if self._payload_error == 0:             # <<<<<<<<<<<<<<
9543  *                 if self._last_error is not None:
9544  *                     ex = self._last_error
9545  */
9546     }
9547 
9548     /* "aiohttp/_http_parser.pyx":537
9549  *         PyBuffer_Release(&self.py_buf)
9550  *
9551  *         if (self._cparser.http_errno != cparser.HPE_OK):             # <<<<<<<<<<<<<<
9552  *             if self._payload_error == 0:
9553  *                 if self._last_error is not None:
9554  */
9555   }
9556 
9557   /* "aiohttp/_http_parser.pyx":548
9558  *                 raise ex
9559  *
9560  *         if self._messages:             # <<<<<<<<<<<<<<
9561  *             messages = self._messages
9562  *             self._messages = []
9563  */
9564   __pyx_t_3 = (__pyx_v_self->_messages != Py_None)&&(PyList_GET_SIZE(__pyx_v_self->_messages) != 0);
9565   if (__pyx_t_3) {
9566 
9567     /* "aiohttp/_http_parser.pyx":549
9568  *
9569  *         if self._messages:
9570  *             messages = self._messages             # <<<<<<<<<<<<<<
9571  *             self._messages = []
9572  *         else:
9573  */
9574     __pyx_t_4 = __pyx_v_self->_messages;
9575     __Pyx_INCREF(__pyx_t_4);
9576     __pyx_v_messages = __pyx_t_4;
9577     __pyx_t_4 = 0;
9578 
9579     /* "aiohttp/_http_parser.pyx":550
9580  *         if self._messages:
9581  *             messages = self._messages
9582  *             self._messages = []             # <<<<<<<<<<<<<<
9583  *         else:
9584  *             messages = ()
9585  */
9586     __pyx_t_4 = PyList_New(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 550, __pyx_L1_error)
9587     __Pyx_GOTREF(__pyx_t_4);
9588     __Pyx_GIVEREF(__pyx_t_4);
9589     __Pyx_GOTREF(__pyx_v_self->_messages);
9590     __Pyx_DECREF(__pyx_v_self->_messages);
9591     __pyx_v_self->_messages = ((PyObject*)__pyx_t_4);
9592     __pyx_t_4 = 0;
9593 
9594     /* "aiohttp/_http_parser.pyx":548
9595  *                 raise ex
9596  *
9597  *         if self._messages:             # <<<<<<<<<<<<<<
9598  *             messages = self._messages
9599  *             self._messages = []
9600  */
9601     goto __pyx_L6;
9602   }
9603 
9604   /* "aiohttp/_http_parser.pyx":552
9605  *             self._messages = []
9606  *         else:
9607  *             messages = ()             # <<<<<<<<<<<<<<
9608  *
9609  *         if self._upgraded:
9610  */
9611   /*else*/ {
9612     __Pyx_INCREF(__pyx_empty_tuple);
9613     __pyx_v_messages = __pyx_empty_tuple;
9614   }
9615   __pyx_L6:;
9616 
9617   /* "aiohttp/_http_parser.pyx":554
9618  *             messages = ()
9619  *
9620  *         if self._upgraded:             # <<<<<<<<<<<<<<
9621  *             return messages, True, data[nb:]
9622  *         else:
9623  */
9624   __pyx_t_3 = (__pyx_v_self->_upgraded != 0);
9625   if (__pyx_t_3) {
9626 
9627     /* "aiohttp/_http_parser.pyx":555
9628  *
9629  *         if self._upgraded:
9630  *             return messages, True, data[nb:]             # <<<<<<<<<<<<<<
9631  *         else:
9632  *             return messages, False, b''
9633  */
9634     __Pyx_XDECREF(__pyx_r);
9635     __pyx_t_4 = __Pyx_PyObject_GetSlice(__pyx_v_data, __pyx_v_nb, 0, NULL, NULL, NULL, 1, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 555, __pyx_L1_error)
9636     __Pyx_GOTREF(__pyx_t_4);
9637     __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 555, __pyx_L1_error)
9638     __Pyx_GOTREF(__pyx_t_5);
9639     __Pyx_INCREF(__pyx_v_messages);
9640     __Pyx_GIVEREF(__pyx_v_messages);
9641     PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_messages);
9642     __Pyx_INCREF(Py_True);
9643     __Pyx_GIVEREF(Py_True);
9644     PyTuple_SET_ITEM(__pyx_t_5, 1, Py_True);
9645     __Pyx_GIVEREF(__pyx_t_4);
9646     PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_4);
9647     __pyx_t_4 = 0;
9648     __pyx_r = __pyx_t_5;
9649     __pyx_t_5 = 0;
9650     goto __pyx_L0;
9651 
9652     /* "aiohttp/_http_parser.pyx":554
9653  *             messages = ()
9654  *
9655  *         if self._upgraded:             # <<<<<<<<<<<<<<
9656  *             return messages, True, data[nb:]
9657  *         else:
9658  */
9659   }
9660 
9661   /* "aiohttp/_http_parser.pyx":557
9662  *             return messages, True, data[nb:]
9663  *         else:
9664  *             return messages, False, b''             # <<<<<<<<<<<<<<
9665  *
9666  *     def set_upgraded(self, val):
9667  */
9668   /*else*/ {
9669     __Pyx_XDECREF(__pyx_r);
9670     __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 557, __pyx_L1_error)
9671     __Pyx_GOTREF(__pyx_t_5);
9672     __Pyx_INCREF(__pyx_v_messages);
9673     __Pyx_GIVEREF(__pyx_v_messages);
9674     PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_messages);
9675     __Pyx_INCREF(Py_False);
9676     __Pyx_GIVEREF(Py_False);
9677     PyTuple_SET_ITEM(__pyx_t_5, 1, Py_False);
9678     __Pyx_INCREF(__pyx_kp_b__4);
9679     __Pyx_GIVEREF(__pyx_kp_b__4);
9680     PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_kp_b__4);
9681     __pyx_r = __pyx_t_5;
9682     __pyx_t_5 = 0;
9683     goto __pyx_L0;
9684   }
9685 
9686   /* "aiohttp/_http_parser.pyx":521
9687  *                 return self._messages[-1][0]
9688  *
9689  *     def feed_data(self, data):             # <<<<<<<<<<<<<<
9690  *         cdef:
9691  *             size_t data_len
9692  */
9693 
9694   /* function exit code */
9695   __pyx_L1_error:;
9696   __Pyx_XDECREF(__pyx_t_4);
9697   __Pyx_XDECREF(__pyx_t_5);
9698   __Pyx_AddTraceback("aiohttp._http_parser.HttpParser.feed_data", __pyx_clineno, __pyx_lineno, __pyx_filename);
9699   __pyx_r = NULL;
9700   __pyx_L0:;
9701   __Pyx_XDECREF(__pyx_v_ex);
9702   __Pyx_XDECREF(__pyx_v_messages);
9703   __Pyx_XGIVEREF(__pyx_r);
9704   __Pyx_RefNannyFinishContext();
9705   return __pyx_r;
9706 }
9707 
9708 /* "aiohttp/_http_parser.pyx":559
9709  *             return messages, False, b''
9710  *
9711  *     def set_upgraded(self, val):             # <<<<<<<<<<<<<<
9712  *         self._upgraded = val
9713  *
9714  */
9715 
9716 /* Python wrapper */
9717 static PyObject *__pyx_pw_7aiohttp_12_http_parser_10HttpParser_9set_upgraded(PyObject *__pyx_v_self, PyObject *__pyx_v_val); /*proto*/
__pyx_pw_7aiohttp_12_http_parser_10HttpParser_9set_upgraded(PyObject * __pyx_v_self,PyObject * __pyx_v_val)9718 static PyObject *__pyx_pw_7aiohttp_12_http_parser_10HttpParser_9set_upgraded(PyObject *__pyx_v_self, PyObject *__pyx_v_val) {
9719   PyObject *__pyx_r = 0;
9720   __Pyx_RefNannyDeclarations
9721   __Pyx_RefNannySetupContext("set_upgraded (wrapper)", 0);
9722   __pyx_r = __pyx_pf_7aiohttp_12_http_parser_10HttpParser_8set_upgraded(((struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *)__pyx_v_self), ((PyObject *)__pyx_v_val));
9723 
9724   /* function exit code */
9725   __Pyx_RefNannyFinishContext();
9726   return __pyx_r;
9727 }
9728 
__pyx_pf_7aiohttp_12_http_parser_10HttpParser_8set_upgraded(struct __pyx_obj_7aiohttp_12_http_parser_HttpParser * __pyx_v_self,PyObject * __pyx_v_val)9729 static PyObject *__pyx_pf_7aiohttp_12_http_parser_10HttpParser_8set_upgraded(struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *__pyx_v_self, PyObject *__pyx_v_val) {
9730   PyObject *__pyx_r = NULL;
9731   __Pyx_RefNannyDeclarations
9732   int __pyx_t_1;
9733   int __pyx_lineno = 0;
9734   const char *__pyx_filename = NULL;
9735   int __pyx_clineno = 0;
9736   __Pyx_RefNannySetupContext("set_upgraded", 0);
9737 
9738   /* "aiohttp/_http_parser.pyx":560
9739  *
9740  *     def set_upgraded(self, val):
9741  *         self._upgraded = val             # <<<<<<<<<<<<<<
9742  *
9743  *
9744  */
9745   __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_val); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 560, __pyx_L1_error)
9746   __pyx_v_self->_upgraded = __pyx_t_1;
9747 
9748   /* "aiohttp/_http_parser.pyx":559
9749  *             return messages, False, b''
9750  *
9751  *     def set_upgraded(self, val):             # <<<<<<<<<<<<<<
9752  *         self._upgraded = val
9753  *
9754  */
9755 
9756   /* function exit code */
9757   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
9758   goto __pyx_L0;
9759   __pyx_L1_error:;
9760   __Pyx_AddTraceback("aiohttp._http_parser.HttpParser.set_upgraded", __pyx_clineno, __pyx_lineno, __pyx_filename);
9761   __pyx_r = NULL;
9762   __pyx_L0:;
9763   __Pyx_XGIVEREF(__pyx_r);
9764   __Pyx_RefNannyFinishContext();
9765   return __pyx_r;
9766 }
9767 
9768 /* "(tree fragment)":1
9769  * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
9770  *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
9771  * def __setstate_cython__(self, __pyx_state):
9772  */
9773 
9774 /* Python wrapper */
9775 static PyObject *__pyx_pw_7aiohttp_12_http_parser_10HttpParser_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
__pyx_pw_7aiohttp_12_http_parser_10HttpParser_11__reduce_cython__(PyObject * __pyx_v_self,CYTHON_UNUSED PyObject * unused)9776 static PyObject *__pyx_pw_7aiohttp_12_http_parser_10HttpParser_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
9777   PyObject *__pyx_r = 0;
9778   __Pyx_RefNannyDeclarations
9779   __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
9780   __pyx_r = __pyx_pf_7aiohttp_12_http_parser_10HttpParser_10__reduce_cython__(((struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *)__pyx_v_self));
9781 
9782   /* function exit code */
9783   __Pyx_RefNannyFinishContext();
9784   return __pyx_r;
9785 }
9786 
__pyx_pf_7aiohttp_12_http_parser_10HttpParser_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7aiohttp_12_http_parser_HttpParser * __pyx_v_self)9787 static PyObject *__pyx_pf_7aiohttp_12_http_parser_10HttpParser_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *__pyx_v_self) {
9788   PyObject *__pyx_r = NULL;
9789   __Pyx_RefNannyDeclarations
9790   PyObject *__pyx_t_1 = NULL;
9791   int __pyx_lineno = 0;
9792   const char *__pyx_filename = NULL;
9793   int __pyx_clineno = 0;
9794   __Pyx_RefNannySetupContext("__reduce_cython__", 0);
9795 
9796   /* "(tree fragment)":2
9797  * def __reduce_cython__(self):
9798  *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
9799  * def __setstate_cython__(self, __pyx_state):
9800  *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
9801  */
9802   __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
9803   __Pyx_GOTREF(__pyx_t_1);
9804   __Pyx_Raise(__pyx_t_1, 0, 0, 0);
9805   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
9806   __PYX_ERR(1, 2, __pyx_L1_error)
9807 
9808   /* "(tree fragment)":1
9809  * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
9810  *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
9811  * def __setstate_cython__(self, __pyx_state):
9812  */
9813 
9814   /* function exit code */
9815   __pyx_L1_error:;
9816   __Pyx_XDECREF(__pyx_t_1);
9817   __Pyx_AddTraceback("aiohttp._http_parser.HttpParser.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
9818   __pyx_r = NULL;
9819   __Pyx_XGIVEREF(__pyx_r);
9820   __Pyx_RefNannyFinishContext();
9821   return __pyx_r;
9822 }
9823 
9824 /* "(tree fragment)":3
9825  * def __reduce_cython__(self):
9826  *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
9827  * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
9828  *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
9829  */
9830 
9831 /* Python wrapper */
9832 static PyObject *__pyx_pw_7aiohttp_12_http_parser_10HttpParser_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
__pyx_pw_7aiohttp_12_http_parser_10HttpParser_13__setstate_cython__(PyObject * __pyx_v_self,PyObject * __pyx_v___pyx_state)9833 static PyObject *__pyx_pw_7aiohttp_12_http_parser_10HttpParser_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
9834   PyObject *__pyx_r = 0;
9835   __Pyx_RefNannyDeclarations
9836   __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
9837   __pyx_r = __pyx_pf_7aiohttp_12_http_parser_10HttpParser_12__setstate_cython__(((struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));
9838 
9839   /* function exit code */
9840   __Pyx_RefNannyFinishContext();
9841   return __pyx_r;
9842 }
9843 
__pyx_pf_7aiohttp_12_http_parser_10HttpParser_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7aiohttp_12_http_parser_HttpParser * __pyx_v_self,CYTHON_UNUSED PyObject * __pyx_v___pyx_state)9844 static PyObject *__pyx_pf_7aiohttp_12_http_parser_10HttpParser_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
9845   PyObject *__pyx_r = NULL;
9846   __Pyx_RefNannyDeclarations
9847   PyObject *__pyx_t_1 = NULL;
9848   int __pyx_lineno = 0;
9849   const char *__pyx_filename = NULL;
9850   int __pyx_clineno = 0;
9851   __Pyx_RefNannySetupContext("__setstate_cython__", 0);
9852 
9853   /* "(tree fragment)":4
9854  *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
9855  * def __setstate_cython__(self, __pyx_state):
9856  *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
9857  */
9858   __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
9859   __Pyx_GOTREF(__pyx_t_1);
9860   __Pyx_Raise(__pyx_t_1, 0, 0, 0);
9861   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
9862   __PYX_ERR(1, 4, __pyx_L1_error)
9863 
9864   /* "(tree fragment)":3
9865  * def __reduce_cython__(self):
9866  *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
9867  * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
9868  *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
9869  */
9870 
9871   /* function exit code */
9872   __pyx_L1_error:;
9873   __Pyx_XDECREF(__pyx_t_1);
9874   __Pyx_AddTraceback("aiohttp._http_parser.HttpParser.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
9875   __pyx_r = NULL;
9876   __Pyx_XGIVEREF(__pyx_r);
9877   __Pyx_RefNannyFinishContext();
9878   return __pyx_r;
9879 }
9880 
9881 /* "aiohttp/_http_parser.pyx":565
9882  * cdef class HttpRequestParser(HttpParser):
9883  *
9884  *     def __init__(self, protocol, loop, int limit, timer=None,             # <<<<<<<<<<<<<<
9885  *                  size_t max_line_size=8190, size_t max_headers=32768,
9886  *                  size_t max_field_size=8190, payload_exception=None,
9887  */
9888 
9889 /* Python wrapper */
9890 static int __pyx_pw_7aiohttp_12_http_parser_17HttpRequestParser_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
__pyx_pw_7aiohttp_12_http_parser_17HttpRequestParser_1__init__(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)9891 static int __pyx_pw_7aiohttp_12_http_parser_17HttpRequestParser_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
9892   PyObject *__pyx_v_protocol = 0;
9893   PyObject *__pyx_v_loop = 0;
9894   int __pyx_v_limit;
9895   PyObject *__pyx_v_timer = 0;
9896   size_t __pyx_v_max_line_size;
9897   size_t __pyx_v_max_headers;
9898   size_t __pyx_v_max_field_size;
9899   PyObject *__pyx_v_payload_exception = 0;
9900   int __pyx_v_response_with_body;
9901   int __pyx_v_read_until_eof;
9902   int __pyx_lineno = 0;
9903   const char *__pyx_filename = NULL;
9904   int __pyx_clineno = 0;
9905   int __pyx_r;
9906   __Pyx_RefNannyDeclarations
9907   __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
9908   {
9909     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_protocol,&__pyx_n_s_loop,&__pyx_n_s_limit,&__pyx_n_s_timer,&__pyx_n_s_max_line_size,&__pyx_n_s_max_headers,&__pyx_n_s_max_field_size,&__pyx_n_s_payload_exception,&__pyx_n_s_response_with_body,&__pyx_n_s_read_until_eof,0};
9910     PyObject* values[10] = {0,0,0,0,0,0,0,0,0,0};
9911     values[3] = ((PyObject *)Py_None);
9912 
9913     /* "aiohttp/_http_parser.pyx":567
9914  *     def __init__(self, protocol, loop, int limit, timer=None,
9915  *                  size_t max_line_size=8190, size_t max_headers=32768,
9916  *                  size_t max_field_size=8190, payload_exception=None,             # <<<<<<<<<<<<<<
9917  *                  bint response_with_body=True, bint read_until_eof=False,
9918  *     ):
9919  */
9920     values[7] = ((PyObject *)Py_None);
9921     if (unlikely(__pyx_kwds)) {
9922       Py_ssize_t kw_args;
9923       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
9924       switch (pos_args) {
9925         case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
9926         CYTHON_FALLTHROUGH;
9927         case  9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
9928         CYTHON_FALLTHROUGH;
9929         case  8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
9930         CYTHON_FALLTHROUGH;
9931         case  7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
9932         CYTHON_FALLTHROUGH;
9933         case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
9934         CYTHON_FALLTHROUGH;
9935         case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
9936         CYTHON_FALLTHROUGH;
9937         case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
9938         CYTHON_FALLTHROUGH;
9939         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
9940         CYTHON_FALLTHROUGH;
9941         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
9942         CYTHON_FALLTHROUGH;
9943         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
9944         CYTHON_FALLTHROUGH;
9945         case  0: break;
9946         default: goto __pyx_L5_argtuple_error;
9947       }
9948       kw_args = PyDict_Size(__pyx_kwds);
9949       switch (pos_args) {
9950         case  0:
9951         if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_protocol)) != 0)) kw_args--;
9952         else goto __pyx_L5_argtuple_error;
9953         CYTHON_FALLTHROUGH;
9954         case  1:
9955         if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_loop)) != 0)) kw_args--;
9956         else {
9957           __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 10, 1); __PYX_ERR(0, 565, __pyx_L3_error)
9958         }
9959         CYTHON_FALLTHROUGH;
9960         case  2:
9961         if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_limit)) != 0)) kw_args--;
9962         else {
9963           __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 10, 2); __PYX_ERR(0, 565, __pyx_L3_error)
9964         }
9965         CYTHON_FALLTHROUGH;
9966         case  3:
9967         if (kw_args > 0) {
9968           PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timer);
9969           if (value) { values[3] = value; kw_args--; }
9970         }
9971         CYTHON_FALLTHROUGH;
9972         case  4:
9973         if (kw_args > 0) {
9974           PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_max_line_size);
9975           if (value) { values[4] = value; kw_args--; }
9976         }
9977         CYTHON_FALLTHROUGH;
9978         case  5:
9979         if (kw_args > 0) {
9980           PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_max_headers);
9981           if (value) { values[5] = value; kw_args--; }
9982         }
9983         CYTHON_FALLTHROUGH;
9984         case  6:
9985         if (kw_args > 0) {
9986           PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_max_field_size);
9987           if (value) { values[6] = value; kw_args--; }
9988         }
9989         CYTHON_FALLTHROUGH;
9990         case  7:
9991         if (kw_args > 0) {
9992           PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_payload_exception);
9993           if (value) { values[7] = value; kw_args--; }
9994         }
9995         CYTHON_FALLTHROUGH;
9996         case  8:
9997         if (kw_args > 0) {
9998           PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_response_with_body);
9999           if (value) { values[8] = value; kw_args--; }
10000         }
10001         CYTHON_FALLTHROUGH;
10002         case  9:
10003         if (kw_args > 0) {
10004           PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_read_until_eof);
10005           if (value) { values[9] = value; kw_args--; }
10006         }
10007       }
10008       if (unlikely(kw_args > 0)) {
10009         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 565, __pyx_L3_error)
10010       }
10011     } else {
10012       switch (PyTuple_GET_SIZE(__pyx_args)) {
10013         case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
10014         CYTHON_FALLTHROUGH;
10015         case  9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
10016         CYTHON_FALLTHROUGH;
10017         case  8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
10018         CYTHON_FALLTHROUGH;
10019         case  7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
10020         CYTHON_FALLTHROUGH;
10021         case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
10022         CYTHON_FALLTHROUGH;
10023         case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
10024         CYTHON_FALLTHROUGH;
10025         case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
10026         CYTHON_FALLTHROUGH;
10027         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
10028         values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
10029         values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
10030         break;
10031         default: goto __pyx_L5_argtuple_error;
10032       }
10033     }
10034     __pyx_v_protocol = values[0];
10035     __pyx_v_loop = values[1];
10036     __pyx_v_limit = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_limit == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 565, __pyx_L3_error)
10037     __pyx_v_timer = values[3];
10038     if (values[4]) {
10039       __pyx_v_max_line_size = __Pyx_PyInt_As_size_t(values[4]); if (unlikely((__pyx_v_max_line_size == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 566, __pyx_L3_error)
10040     } else {
10041       __pyx_v_max_line_size = ((size_t)0x1FFE);
10042     }
10043     if (values[5]) {
10044       __pyx_v_max_headers = __Pyx_PyInt_As_size_t(values[5]); if (unlikely((__pyx_v_max_headers == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 566, __pyx_L3_error)
10045     } else {
10046       __pyx_v_max_headers = ((size_t)0x8000);
10047     }
10048     if (values[6]) {
10049       __pyx_v_max_field_size = __Pyx_PyInt_As_size_t(values[6]); if (unlikely((__pyx_v_max_field_size == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 567, __pyx_L3_error)
10050     } else {
10051       __pyx_v_max_field_size = ((size_t)0x1FFE);
10052     }
10053     __pyx_v_payload_exception = values[7];
10054     if (values[8]) {
10055       __pyx_v_response_with_body = __Pyx_PyObject_IsTrue(values[8]); if (unlikely((__pyx_v_response_with_body == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 568, __pyx_L3_error)
10056     } else {
10057 
10058       /* "aiohttp/_http_parser.pyx":568
10059  *                  size_t max_line_size=8190, size_t max_headers=32768,
10060  *                  size_t max_field_size=8190, payload_exception=None,
10061  *                  bint response_with_body=True, bint read_until_eof=False,             # <<<<<<<<<<<<<<
10062  *     ):
10063  *          self._init(cparser.HTTP_REQUEST, protocol, loop, limit, timer,
10064  */
10065       __pyx_v_response_with_body = ((int)1);
10066     }
10067     if (values[9]) {
10068       __pyx_v_read_until_eof = __Pyx_PyObject_IsTrue(values[9]); if (unlikely((__pyx_v_read_until_eof == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 568, __pyx_L3_error)
10069     } else {
10070       __pyx_v_read_until_eof = ((int)0);
10071     }
10072   }
10073   goto __pyx_L4_argument_unpacking_done;
10074   __pyx_L5_argtuple_error:;
10075   __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 10, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 565, __pyx_L3_error)
10076   __pyx_L3_error:;
10077   __Pyx_AddTraceback("aiohttp._http_parser.HttpRequestParser.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
10078   __Pyx_RefNannyFinishContext();
10079   return -1;
10080   __pyx_L4_argument_unpacking_done:;
10081   __pyx_r = __pyx_pf_7aiohttp_12_http_parser_17HttpRequestParser___init__(((struct __pyx_obj_7aiohttp_12_http_parser_HttpRequestParser *)__pyx_v_self), __pyx_v_protocol, __pyx_v_loop, __pyx_v_limit, __pyx_v_timer, __pyx_v_max_line_size, __pyx_v_max_headers, __pyx_v_max_field_size, __pyx_v_payload_exception, __pyx_v_response_with_body, __pyx_v_read_until_eof);
10082 
10083   /* "aiohttp/_http_parser.pyx":565
10084  * cdef class HttpRequestParser(HttpParser):
10085  *
10086  *     def __init__(self, protocol, loop, int limit, timer=None,             # <<<<<<<<<<<<<<
10087  *                  size_t max_line_size=8190, size_t max_headers=32768,
10088  *                  size_t max_field_size=8190, payload_exception=None,
10089  */
10090 
10091   /* function exit code */
10092   __Pyx_RefNannyFinishContext();
10093   return __pyx_r;
10094 }
10095 
__pyx_pf_7aiohttp_12_http_parser_17HttpRequestParser___init__(struct __pyx_obj_7aiohttp_12_http_parser_HttpRequestParser * __pyx_v_self,PyObject * __pyx_v_protocol,PyObject * __pyx_v_loop,int __pyx_v_limit,PyObject * __pyx_v_timer,size_t __pyx_v_max_line_size,size_t __pyx_v_max_headers,size_t __pyx_v_max_field_size,PyObject * __pyx_v_payload_exception,int __pyx_v_response_with_body,int __pyx_v_read_until_eof)10096 static int __pyx_pf_7aiohttp_12_http_parser_17HttpRequestParser___init__(struct __pyx_obj_7aiohttp_12_http_parser_HttpRequestParser *__pyx_v_self, PyObject *__pyx_v_protocol, PyObject *__pyx_v_loop, int __pyx_v_limit, PyObject *__pyx_v_timer, size_t __pyx_v_max_line_size, size_t __pyx_v_max_headers, size_t __pyx_v_max_field_size, PyObject *__pyx_v_payload_exception, int __pyx_v_response_with_body, int __pyx_v_read_until_eof) {
10097   int __pyx_r;
10098   __Pyx_RefNannyDeclarations
10099   PyObject *__pyx_t_1 = NULL;
10100   struct __pyx_opt_args_7aiohttp_12_http_parser_10HttpParser__init __pyx_t_2;
10101   int __pyx_lineno = 0;
10102   const char *__pyx_filename = NULL;
10103   int __pyx_clineno = 0;
10104   __Pyx_RefNannySetupContext("__init__", 0);
10105 
10106   /* "aiohttp/_http_parser.pyx":570
10107  *                  bint response_with_body=True, bint read_until_eof=False,
10108  *     ):
10109  *          self._init(cparser.HTTP_REQUEST, protocol, loop, limit, timer,             # <<<<<<<<<<<<<<
10110  *                     max_line_size, max_headers, max_field_size,
10111  *                     payload_exception, response_with_body, read_until_eof)
10112  */
10113   __pyx_t_2.__pyx_n = 7;
10114   __pyx_t_2.timer = __pyx_v_timer;
10115   __pyx_t_2.max_line_size = __pyx_v_max_line_size;
10116   __pyx_t_2.max_headers = __pyx_v_max_headers;
10117   __pyx_t_2.max_field_size = __pyx_v_max_field_size;
10118   __pyx_t_2.payload_exception = __pyx_v_payload_exception;
10119   __pyx_t_2.response_with_body = __pyx_v_response_with_body;
10120   __pyx_t_2.read_until_eof = __pyx_v_read_until_eof;
10121   __pyx_t_1 = ((struct __pyx_vtabstruct_7aiohttp_12_http_parser_HttpRequestParser *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base._init(((struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *)__pyx_v_self), HTTP_REQUEST, __pyx_v_protocol, __pyx_v_loop, __pyx_v_limit, &__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 570, __pyx_L1_error)
10122   __Pyx_GOTREF(__pyx_t_1);
10123   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
10124 
10125   /* "aiohttp/_http_parser.pyx":565
10126  * cdef class HttpRequestParser(HttpParser):
10127  *
10128  *     def __init__(self, protocol, loop, int limit, timer=None,             # <<<<<<<<<<<<<<
10129  *                  size_t max_line_size=8190, size_t max_headers=32768,
10130  *                  size_t max_field_size=8190, payload_exception=None,
10131  */
10132 
10133   /* function exit code */
10134   __pyx_r = 0;
10135   goto __pyx_L0;
10136   __pyx_L1_error:;
10137   __Pyx_XDECREF(__pyx_t_1);
10138   __Pyx_AddTraceback("aiohttp._http_parser.HttpRequestParser.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
10139   __pyx_r = -1;
10140   __pyx_L0:;
10141   __Pyx_RefNannyFinishContext();
10142   return __pyx_r;
10143 }
10144 
10145 /* "aiohttp/_http_parser.pyx":574
10146  *                     payload_exception, response_with_body, read_until_eof)
10147  *
10148  *     cdef object _on_status_complete(self):             # <<<<<<<<<<<<<<
10149  *          cdef Py_buffer py_buf
10150  *          if not self._buf:
10151  */
10152 
__pyx_f_7aiohttp_12_http_parser_17HttpRequestParser__on_status_complete(struct __pyx_obj_7aiohttp_12_http_parser_HttpRequestParser * __pyx_v_self)10153 static PyObject *__pyx_f_7aiohttp_12_http_parser_17HttpRequestParser__on_status_complete(struct __pyx_obj_7aiohttp_12_http_parser_HttpRequestParser *__pyx_v_self) {
10154   Py_buffer __pyx_v_py_buf;
10155   PyObject *__pyx_r = NULL;
10156   __Pyx_RefNannyDeclarations
10157   int __pyx_t_1;
10158   int __pyx_t_2;
10159   PyObject *__pyx_t_3 = NULL;
10160   PyObject *__pyx_t_4 = NULL;
10161   PyObject *__pyx_t_5 = NULL;
10162   int __pyx_t_6;
10163   int __pyx_t_7;
10164   char const *__pyx_t_8;
10165   PyObject *__pyx_t_9 = NULL;
10166   PyObject *__pyx_t_10 = NULL;
10167   PyObject *__pyx_t_11 = NULL;
10168   PyObject *__pyx_t_12 = NULL;
10169   PyObject *__pyx_t_13 = NULL;
10170   PyObject *__pyx_t_14 = NULL;
10171   int __pyx_lineno = 0;
10172   const char *__pyx_filename = NULL;
10173   int __pyx_clineno = 0;
10174   __Pyx_RefNannySetupContext("_on_status_complete", 0);
10175 
10176   /* "aiohttp/_http_parser.pyx":576
10177  *     cdef object _on_status_complete(self):
10178  *          cdef Py_buffer py_buf
10179  *          if not self._buf:             # <<<<<<<<<<<<<<
10180  *              return
10181  *          self._path = self._buf.decode('utf-8', 'surrogateescape')
10182  */
10183   __pyx_t_1 = (__pyx_v_self->__pyx_base._buf != Py_None)&&(PyByteArray_GET_SIZE(__pyx_v_self->__pyx_base._buf) != 0);
10184   __pyx_t_2 = ((!__pyx_t_1) != 0);
10185   if (__pyx_t_2) {
10186 
10187     /* "aiohttp/_http_parser.pyx":577
10188  *          cdef Py_buffer py_buf
10189  *          if not self._buf:
10190  *              return             # <<<<<<<<<<<<<<
10191  *          self._path = self._buf.decode('utf-8', 'surrogateescape')
10192  *          if self._cparser.method == 5:  # CONNECT
10193  */
10194     __Pyx_XDECREF(__pyx_r);
10195     __pyx_r = Py_None; __Pyx_INCREF(Py_None);
10196     goto __pyx_L0;
10197 
10198     /* "aiohttp/_http_parser.pyx":576
10199  *     cdef object _on_status_complete(self):
10200  *          cdef Py_buffer py_buf
10201  *          if not self._buf:             # <<<<<<<<<<<<<<
10202  *              return
10203  *          self._path = self._buf.decode('utf-8', 'surrogateescape')
10204  */
10205   }
10206 
10207   /* "aiohttp/_http_parser.pyx":578
10208  *          if not self._buf:
10209  *              return
10210  *          self._path = self._buf.decode('utf-8', 'surrogateescape')             # <<<<<<<<<<<<<<
10211  *          if self._cparser.method == 5:  # CONNECT
10212  *              self._url = URL(self._path)
10213  */
10214   if (unlikely(__pyx_v_self->__pyx_base._buf == Py_None)) {
10215     PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "decode");
10216     __PYX_ERR(0, 578, __pyx_L1_error)
10217   }
10218   __pyx_t_3 = __Pyx_decode_bytearray(__pyx_v_self->__pyx_base._buf, 0, PY_SSIZE_T_MAX, NULL, ((char const *)"surrogateescape"), PyUnicode_DecodeUTF8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 578, __pyx_L1_error)
10219   __Pyx_GOTREF(__pyx_t_3);
10220   __Pyx_GIVEREF(__pyx_t_3);
10221   __Pyx_GOTREF(__pyx_v_self->__pyx_base._path);
10222   __Pyx_DECREF(__pyx_v_self->__pyx_base._path);
10223   __pyx_v_self->__pyx_base._path = ((PyObject*)__pyx_t_3);
10224   __pyx_t_3 = 0;
10225 
10226   /* "aiohttp/_http_parser.pyx":579
10227  *              return
10228  *          self._path = self._buf.decode('utf-8', 'surrogateescape')
10229  *          if self._cparser.method == 5:  # CONNECT             # <<<<<<<<<<<<<<
10230  *              self._url = URL(self._path)
10231  *          else:
10232  */
10233   __pyx_t_2 = ((__pyx_v_self->__pyx_base._cparser->method == 5) != 0);
10234   if (__pyx_t_2) {
10235 
10236     /* "aiohttp/_http_parser.pyx":580
10237  *          self._path = self._buf.decode('utf-8', 'surrogateescape')
10238  *          if self._cparser.method == 5:  # CONNECT
10239  *              self._url = URL(self._path)             # <<<<<<<<<<<<<<
10240  *          else:
10241  *              PyObject_GetBuffer(self._buf, &py_buf, PyBUF_SIMPLE)
10242  */
10243     __Pyx_INCREF(__pyx_v_7aiohttp_12_http_parser_URL);
10244     __pyx_t_4 = __pyx_v_7aiohttp_12_http_parser_URL; __pyx_t_5 = NULL;
10245     if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
10246       __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
10247       if (likely(__pyx_t_5)) {
10248         PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
10249         __Pyx_INCREF(__pyx_t_5);
10250         __Pyx_INCREF(function);
10251         __Pyx_DECREF_SET(__pyx_t_4, function);
10252       }
10253     }
10254     __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_v_self->__pyx_base._path) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_self->__pyx_base._path);
10255     __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
10256     if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 580, __pyx_L1_error)
10257     __Pyx_GOTREF(__pyx_t_3);
10258     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
10259     __Pyx_GIVEREF(__pyx_t_3);
10260     __Pyx_GOTREF(__pyx_v_self->__pyx_base._url);
10261     __Pyx_DECREF(__pyx_v_self->__pyx_base._url);
10262     __pyx_v_self->__pyx_base._url = __pyx_t_3;
10263     __pyx_t_3 = 0;
10264 
10265     /* "aiohttp/_http_parser.pyx":579
10266  *              return
10267  *          self._path = self._buf.decode('utf-8', 'surrogateescape')
10268  *          if self._cparser.method == 5:  # CONNECT             # <<<<<<<<<<<<<<
10269  *              self._url = URL(self._path)
10270  *          else:
10271  */
10272     goto __pyx_L4;
10273   }
10274 
10275   /* "aiohttp/_http_parser.pyx":582
10276  *              self._url = URL(self._path)
10277  *          else:
10278  *              PyObject_GetBuffer(self._buf, &py_buf, PyBUF_SIMPLE)             # <<<<<<<<<<<<<<
10279  *              try:
10280  *                  self._url = _parse_url(<char*>py_buf.buf,
10281  */
10282   /*else*/ {
10283     __pyx_t_3 = __pyx_v_self->__pyx_base._buf;
10284     __Pyx_INCREF(__pyx_t_3);
10285     __pyx_t_6 = PyObject_GetBuffer(__pyx_t_3, (&__pyx_v_py_buf), PyBUF_SIMPLE); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(0, 582, __pyx_L1_error)
10286     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
10287 
10288     /* "aiohttp/_http_parser.pyx":583
10289  *          else:
10290  *              PyObject_GetBuffer(self._buf, &py_buf, PyBUF_SIMPLE)
10291  *              try:             # <<<<<<<<<<<<<<
10292  *                  self._url = _parse_url(<char*>py_buf.buf,
10293  *                                         py_buf.len)
10294  */
10295     /*try:*/ {
10296 
10297       /* "aiohttp/_http_parser.pyx":584
10298  *              PyObject_GetBuffer(self._buf, &py_buf, PyBUF_SIMPLE)
10299  *              try:
10300  *                  self._url = _parse_url(<char*>py_buf.buf,             # <<<<<<<<<<<<<<
10301  *                                         py_buf.len)
10302  *              finally:
10303  */
10304       __pyx_t_3 = __pyx_f_7aiohttp_12_http_parser__parse_url(((char *)__pyx_v_py_buf.buf), __pyx_v_py_buf.len); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 584, __pyx_L6_error)
10305       __Pyx_GOTREF(__pyx_t_3);
10306       __Pyx_GIVEREF(__pyx_t_3);
10307       __Pyx_GOTREF(__pyx_v_self->__pyx_base._url);
10308       __Pyx_DECREF(__pyx_v_self->__pyx_base._url);
10309       __pyx_v_self->__pyx_base._url = __pyx_t_3;
10310       __pyx_t_3 = 0;
10311     }
10312 
10313     /* "aiohttp/_http_parser.pyx":587
10314  *                                         py_buf.len)
10315  *              finally:
10316  *                  PyBuffer_Release(&py_buf)             # <<<<<<<<<<<<<<
10317  *          PyByteArray_Resize(self._buf, 0)
10318  *
10319  */
10320     /*finally:*/ {
10321       /*normal exit:*/{
10322         PyBuffer_Release((&__pyx_v_py_buf));
10323         goto __pyx_L7;
10324       }
10325       __pyx_L6_error:;
10326       /*exception exit:*/{
10327         __Pyx_PyThreadState_declare
10328         __Pyx_PyThreadState_assign
10329         __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0;
10330         __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
10331         __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
10332         __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
10333         if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
10334         if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11) < 0)) __Pyx_ErrFetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
10335         __Pyx_XGOTREF(__pyx_t_9);
10336         __Pyx_XGOTREF(__pyx_t_10);
10337         __Pyx_XGOTREF(__pyx_t_11);
10338         __Pyx_XGOTREF(__pyx_t_12);
10339         __Pyx_XGOTREF(__pyx_t_13);
10340         __Pyx_XGOTREF(__pyx_t_14);
10341         __pyx_t_6 = __pyx_lineno; __pyx_t_7 = __pyx_clineno; __pyx_t_8 = __pyx_filename;
10342         {
10343           PyBuffer_Release((&__pyx_v_py_buf));
10344         }
10345         if (PY_MAJOR_VERSION >= 3) {
10346           __Pyx_XGIVEREF(__pyx_t_12);
10347           __Pyx_XGIVEREF(__pyx_t_13);
10348           __Pyx_XGIVEREF(__pyx_t_14);
10349           __Pyx_ExceptionReset(__pyx_t_12, __pyx_t_13, __pyx_t_14);
10350         }
10351         __Pyx_XGIVEREF(__pyx_t_9);
10352         __Pyx_XGIVEREF(__pyx_t_10);
10353         __Pyx_XGIVEREF(__pyx_t_11);
10354         __Pyx_ErrRestore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
10355         __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0;
10356         __pyx_lineno = __pyx_t_6; __pyx_clineno = __pyx_t_7; __pyx_filename = __pyx_t_8;
10357         goto __pyx_L1_error;
10358       }
10359       __pyx_L7:;
10360     }
10361   }
10362   __pyx_L4:;
10363 
10364   /* "aiohttp/_http_parser.pyx":588
10365  *              finally:
10366  *                  PyBuffer_Release(&py_buf)
10367  *          PyByteArray_Resize(self._buf, 0)             # <<<<<<<<<<<<<<
10368  *
10369  *
10370  */
10371   __pyx_t_3 = __pyx_v_self->__pyx_base._buf;
10372   __Pyx_INCREF(__pyx_t_3);
10373   __pyx_t_7 = PyByteArray_Resize(__pyx_t_3, 0); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(0, 588, __pyx_L1_error)
10374   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
10375 
10376   /* "aiohttp/_http_parser.pyx":574
10377  *                     payload_exception, response_with_body, read_until_eof)
10378  *
10379  *     cdef object _on_status_complete(self):             # <<<<<<<<<<<<<<
10380  *          cdef Py_buffer py_buf
10381  *          if not self._buf:
10382  */
10383 
10384   /* function exit code */
10385   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
10386   goto __pyx_L0;
10387   __pyx_L1_error:;
10388   __Pyx_XDECREF(__pyx_t_3);
10389   __Pyx_XDECREF(__pyx_t_4);
10390   __Pyx_XDECREF(__pyx_t_5);
10391   __Pyx_AddTraceback("aiohttp._http_parser.HttpRequestParser._on_status_complete", __pyx_clineno, __pyx_lineno, __pyx_filename);
10392   __pyx_r = 0;
10393   __pyx_L0:;
10394   __Pyx_XGIVEREF(__pyx_r);
10395   __Pyx_RefNannyFinishContext();
10396   return __pyx_r;
10397 }
10398 
10399 /* "(tree fragment)":1
10400  * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
10401  *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
10402  * def __setstate_cython__(self, __pyx_state):
10403  */
10404 
10405 /* Python wrapper */
10406 static PyObject *__pyx_pw_7aiohttp_12_http_parser_17HttpRequestParser_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
__pyx_pw_7aiohttp_12_http_parser_17HttpRequestParser_3__reduce_cython__(PyObject * __pyx_v_self,CYTHON_UNUSED PyObject * unused)10407 static PyObject *__pyx_pw_7aiohttp_12_http_parser_17HttpRequestParser_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
10408   PyObject *__pyx_r = 0;
10409   __Pyx_RefNannyDeclarations
10410   __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
10411   __pyx_r = __pyx_pf_7aiohttp_12_http_parser_17HttpRequestParser_2__reduce_cython__(((struct __pyx_obj_7aiohttp_12_http_parser_HttpRequestParser *)__pyx_v_self));
10412 
10413   /* function exit code */
10414   __Pyx_RefNannyFinishContext();
10415   return __pyx_r;
10416 }
10417 
__pyx_pf_7aiohttp_12_http_parser_17HttpRequestParser_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7aiohttp_12_http_parser_HttpRequestParser * __pyx_v_self)10418 static PyObject *__pyx_pf_7aiohttp_12_http_parser_17HttpRequestParser_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7aiohttp_12_http_parser_HttpRequestParser *__pyx_v_self) {
10419   PyObject *__pyx_r = NULL;
10420   __Pyx_RefNannyDeclarations
10421   PyObject *__pyx_t_1 = NULL;
10422   int __pyx_lineno = 0;
10423   const char *__pyx_filename = NULL;
10424   int __pyx_clineno = 0;
10425   __Pyx_RefNannySetupContext("__reduce_cython__", 0);
10426 
10427   /* "(tree fragment)":2
10428  * def __reduce_cython__(self):
10429  *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
10430  * def __setstate_cython__(self, __pyx_state):
10431  *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
10432  */
10433   __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__7, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
10434   __Pyx_GOTREF(__pyx_t_1);
10435   __Pyx_Raise(__pyx_t_1, 0, 0, 0);
10436   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
10437   __PYX_ERR(1, 2, __pyx_L1_error)
10438 
10439   /* "(tree fragment)":1
10440  * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
10441  *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
10442  * def __setstate_cython__(self, __pyx_state):
10443  */
10444 
10445   /* function exit code */
10446   __pyx_L1_error:;
10447   __Pyx_XDECREF(__pyx_t_1);
10448   __Pyx_AddTraceback("aiohttp._http_parser.HttpRequestParser.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
10449   __pyx_r = NULL;
10450   __Pyx_XGIVEREF(__pyx_r);
10451   __Pyx_RefNannyFinishContext();
10452   return __pyx_r;
10453 }
10454 
10455 /* "(tree fragment)":3
10456  * def __reduce_cython__(self):
10457  *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
10458  * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
10459  *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
10460  */
10461 
10462 /* Python wrapper */
10463 static PyObject *__pyx_pw_7aiohttp_12_http_parser_17HttpRequestParser_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
__pyx_pw_7aiohttp_12_http_parser_17HttpRequestParser_5__setstate_cython__(PyObject * __pyx_v_self,PyObject * __pyx_v___pyx_state)10464 static PyObject *__pyx_pw_7aiohttp_12_http_parser_17HttpRequestParser_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
10465   PyObject *__pyx_r = 0;
10466   __Pyx_RefNannyDeclarations
10467   __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
10468   __pyx_r = __pyx_pf_7aiohttp_12_http_parser_17HttpRequestParser_4__setstate_cython__(((struct __pyx_obj_7aiohttp_12_http_parser_HttpRequestParser *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));
10469 
10470   /* function exit code */
10471   __Pyx_RefNannyFinishContext();
10472   return __pyx_r;
10473 }
10474 
__pyx_pf_7aiohttp_12_http_parser_17HttpRequestParser_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7aiohttp_12_http_parser_HttpRequestParser * __pyx_v_self,CYTHON_UNUSED PyObject * __pyx_v___pyx_state)10475 static PyObject *__pyx_pf_7aiohttp_12_http_parser_17HttpRequestParser_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7aiohttp_12_http_parser_HttpRequestParser *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
10476   PyObject *__pyx_r = NULL;
10477   __Pyx_RefNannyDeclarations
10478   PyObject *__pyx_t_1 = NULL;
10479   int __pyx_lineno = 0;
10480   const char *__pyx_filename = NULL;
10481   int __pyx_clineno = 0;
10482   __Pyx_RefNannySetupContext("__setstate_cython__", 0);
10483 
10484   /* "(tree fragment)":4
10485  *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
10486  * def __setstate_cython__(self, __pyx_state):
10487  *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
10488  */
10489   __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__8, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
10490   __Pyx_GOTREF(__pyx_t_1);
10491   __Pyx_Raise(__pyx_t_1, 0, 0, 0);
10492   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
10493   __PYX_ERR(1, 4, __pyx_L1_error)
10494 
10495   /* "(tree fragment)":3
10496  * def __reduce_cython__(self):
10497  *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
10498  * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
10499  *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
10500  */
10501 
10502   /* function exit code */
10503   __pyx_L1_error:;
10504   __Pyx_XDECREF(__pyx_t_1);
10505   __Pyx_AddTraceback("aiohttp._http_parser.HttpRequestParser.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
10506   __pyx_r = NULL;
10507   __Pyx_XGIVEREF(__pyx_r);
10508   __Pyx_RefNannyFinishContext();
10509   return __pyx_r;
10510 }
10511 
10512 /* "aiohttp/_http_parser.pyx":593
10513  * cdef class HttpResponseParser(HttpParser):
10514  *
10515  *     def __init__(self, protocol, loop, int limit, timer=None,             # <<<<<<<<<<<<<<
10516  *                  size_t max_line_size=8190, size_t max_headers=32768,
10517  *                  size_t max_field_size=8190, payload_exception=None,
10518  */
10519 
10520 /* Python wrapper */
10521 static int __pyx_pw_7aiohttp_12_http_parser_18HttpResponseParser_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
__pyx_pw_7aiohttp_12_http_parser_18HttpResponseParser_1__init__(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)10522 static int __pyx_pw_7aiohttp_12_http_parser_18HttpResponseParser_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
10523   PyObject *__pyx_v_protocol = 0;
10524   PyObject *__pyx_v_loop = 0;
10525   int __pyx_v_limit;
10526   PyObject *__pyx_v_timer = 0;
10527   size_t __pyx_v_max_line_size;
10528   size_t __pyx_v_max_headers;
10529   size_t __pyx_v_max_field_size;
10530   PyObject *__pyx_v_payload_exception = 0;
10531   int __pyx_v_response_with_body;
10532   int __pyx_v_read_until_eof;
10533   int __pyx_v_auto_decompress;
10534   int __pyx_lineno = 0;
10535   const char *__pyx_filename = NULL;
10536   int __pyx_clineno = 0;
10537   int __pyx_r;
10538   __Pyx_RefNannyDeclarations
10539   __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
10540   {
10541     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_protocol,&__pyx_n_s_loop,&__pyx_n_s_limit,&__pyx_n_s_timer,&__pyx_n_s_max_line_size,&__pyx_n_s_max_headers,&__pyx_n_s_max_field_size,&__pyx_n_s_payload_exception,&__pyx_n_s_response_with_body,&__pyx_n_s_read_until_eof,&__pyx_n_s_auto_decompress,0};
10542     PyObject* values[11] = {0,0,0,0,0,0,0,0,0,0,0};
10543     values[3] = ((PyObject *)Py_None);
10544 
10545     /* "aiohttp/_http_parser.pyx":595
10546  *     def __init__(self, protocol, loop, int limit, timer=None,
10547  *                  size_t max_line_size=8190, size_t max_headers=32768,
10548  *                  size_t max_field_size=8190, payload_exception=None,             # <<<<<<<<<<<<<<
10549  *                  bint response_with_body=True, bint read_until_eof=False,
10550  *                  bint auto_decompress=True
10551  */
10552     values[7] = ((PyObject *)Py_None);
10553     if (unlikely(__pyx_kwds)) {
10554       Py_ssize_t kw_args;
10555       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
10556       switch (pos_args) {
10557         case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
10558         CYTHON_FALLTHROUGH;
10559         case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
10560         CYTHON_FALLTHROUGH;
10561         case  9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
10562         CYTHON_FALLTHROUGH;
10563         case  8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
10564         CYTHON_FALLTHROUGH;
10565         case  7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
10566         CYTHON_FALLTHROUGH;
10567         case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
10568         CYTHON_FALLTHROUGH;
10569         case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
10570         CYTHON_FALLTHROUGH;
10571         case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
10572         CYTHON_FALLTHROUGH;
10573         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
10574         CYTHON_FALLTHROUGH;
10575         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
10576         CYTHON_FALLTHROUGH;
10577         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
10578         CYTHON_FALLTHROUGH;
10579         case  0: break;
10580         default: goto __pyx_L5_argtuple_error;
10581       }
10582       kw_args = PyDict_Size(__pyx_kwds);
10583       switch (pos_args) {
10584         case  0:
10585         if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_protocol)) != 0)) kw_args--;
10586         else goto __pyx_L5_argtuple_error;
10587         CYTHON_FALLTHROUGH;
10588         case  1:
10589         if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_loop)) != 0)) kw_args--;
10590         else {
10591           __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 11, 1); __PYX_ERR(0, 593, __pyx_L3_error)
10592         }
10593         CYTHON_FALLTHROUGH;
10594         case  2:
10595         if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_limit)) != 0)) kw_args--;
10596         else {
10597           __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 11, 2); __PYX_ERR(0, 593, __pyx_L3_error)
10598         }
10599         CYTHON_FALLTHROUGH;
10600         case  3:
10601         if (kw_args > 0) {
10602           PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timer);
10603           if (value) { values[3] = value; kw_args--; }
10604         }
10605         CYTHON_FALLTHROUGH;
10606         case  4:
10607         if (kw_args > 0) {
10608           PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_max_line_size);
10609           if (value) { values[4] = value; kw_args--; }
10610         }
10611         CYTHON_FALLTHROUGH;
10612         case  5:
10613         if (kw_args > 0) {
10614           PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_max_headers);
10615           if (value) { values[5] = value; kw_args--; }
10616         }
10617         CYTHON_FALLTHROUGH;
10618         case  6:
10619         if (kw_args > 0) {
10620           PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_max_field_size);
10621           if (value) { values[6] = value; kw_args--; }
10622         }
10623         CYTHON_FALLTHROUGH;
10624         case  7:
10625         if (kw_args > 0) {
10626           PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_payload_exception);
10627           if (value) { values[7] = value; kw_args--; }
10628         }
10629         CYTHON_FALLTHROUGH;
10630         case  8:
10631         if (kw_args > 0) {
10632           PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_response_with_body);
10633           if (value) { values[8] = value; kw_args--; }
10634         }
10635         CYTHON_FALLTHROUGH;
10636         case  9:
10637         if (kw_args > 0) {
10638           PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_read_until_eof);
10639           if (value) { values[9] = value; kw_args--; }
10640         }
10641         CYTHON_FALLTHROUGH;
10642         case 10:
10643         if (kw_args > 0) {
10644           PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_auto_decompress);
10645           if (value) { values[10] = value; kw_args--; }
10646         }
10647       }
10648       if (unlikely(kw_args > 0)) {
10649         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 593, __pyx_L3_error)
10650       }
10651     } else {
10652       switch (PyTuple_GET_SIZE(__pyx_args)) {
10653         case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
10654         CYTHON_FALLTHROUGH;
10655         case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
10656         CYTHON_FALLTHROUGH;
10657         case  9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
10658         CYTHON_FALLTHROUGH;
10659         case  8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
10660         CYTHON_FALLTHROUGH;
10661         case  7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
10662         CYTHON_FALLTHROUGH;
10663         case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
10664         CYTHON_FALLTHROUGH;
10665         case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
10666         CYTHON_FALLTHROUGH;
10667         case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
10668         CYTHON_FALLTHROUGH;
10669         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
10670         values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
10671         values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
10672         break;
10673         default: goto __pyx_L5_argtuple_error;
10674       }
10675     }
10676     __pyx_v_protocol = values[0];
10677     __pyx_v_loop = values[1];
10678     __pyx_v_limit = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_limit == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 593, __pyx_L3_error)
10679     __pyx_v_timer = values[3];
10680     if (values[4]) {
10681       __pyx_v_max_line_size = __Pyx_PyInt_As_size_t(values[4]); if (unlikely((__pyx_v_max_line_size == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 594, __pyx_L3_error)
10682     } else {
10683       __pyx_v_max_line_size = ((size_t)0x1FFE);
10684     }
10685     if (values[5]) {
10686       __pyx_v_max_headers = __Pyx_PyInt_As_size_t(values[5]); if (unlikely((__pyx_v_max_headers == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 594, __pyx_L3_error)
10687     } else {
10688       __pyx_v_max_headers = ((size_t)0x8000);
10689     }
10690     if (values[6]) {
10691       __pyx_v_max_field_size = __Pyx_PyInt_As_size_t(values[6]); if (unlikely((__pyx_v_max_field_size == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 595, __pyx_L3_error)
10692     } else {
10693       __pyx_v_max_field_size = ((size_t)0x1FFE);
10694     }
10695     __pyx_v_payload_exception = values[7];
10696     if (values[8]) {
10697       __pyx_v_response_with_body = __Pyx_PyObject_IsTrue(values[8]); if (unlikely((__pyx_v_response_with_body == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 596, __pyx_L3_error)
10698     } else {
10699 
10700       /* "aiohttp/_http_parser.pyx":596
10701  *                  size_t max_line_size=8190, size_t max_headers=32768,
10702  *                  size_t max_field_size=8190, payload_exception=None,
10703  *                  bint response_with_body=True, bint read_until_eof=False,             # <<<<<<<<<<<<<<
10704  *                  bint auto_decompress=True
10705  *     ):
10706  */
10707       __pyx_v_response_with_body = ((int)1);
10708     }
10709     if (values[9]) {
10710       __pyx_v_read_until_eof = __Pyx_PyObject_IsTrue(values[9]); if (unlikely((__pyx_v_read_until_eof == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 596, __pyx_L3_error)
10711     } else {
10712       __pyx_v_read_until_eof = ((int)0);
10713     }
10714     if (values[10]) {
10715       __pyx_v_auto_decompress = __Pyx_PyObject_IsTrue(values[10]); if (unlikely((__pyx_v_auto_decompress == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 597, __pyx_L3_error)
10716     } else {
10717 
10718       /* "aiohttp/_http_parser.pyx":597
10719  *                  size_t max_field_size=8190, payload_exception=None,
10720  *                  bint response_with_body=True, bint read_until_eof=False,
10721  *                  bint auto_decompress=True             # <<<<<<<<<<<<<<
10722  *     ):
10723  *         self._init(cparser.HTTP_RESPONSE, protocol, loop, limit, timer,
10724  */
10725       __pyx_v_auto_decompress = ((int)1);
10726     }
10727   }
10728   goto __pyx_L4_argument_unpacking_done;
10729   __pyx_L5_argtuple_error:;
10730   __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 11, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 593, __pyx_L3_error)
10731   __pyx_L3_error:;
10732   __Pyx_AddTraceback("aiohttp._http_parser.HttpResponseParser.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
10733   __Pyx_RefNannyFinishContext();
10734   return -1;
10735   __pyx_L4_argument_unpacking_done:;
10736   __pyx_r = __pyx_pf_7aiohttp_12_http_parser_18HttpResponseParser___init__(((struct __pyx_obj_7aiohttp_12_http_parser_HttpResponseParser *)__pyx_v_self), __pyx_v_protocol, __pyx_v_loop, __pyx_v_limit, __pyx_v_timer, __pyx_v_max_line_size, __pyx_v_max_headers, __pyx_v_max_field_size, __pyx_v_payload_exception, __pyx_v_response_with_body, __pyx_v_read_until_eof, __pyx_v_auto_decompress);
10737 
10738   /* "aiohttp/_http_parser.pyx":593
10739  * cdef class HttpResponseParser(HttpParser):
10740  *
10741  *     def __init__(self, protocol, loop, int limit, timer=None,             # <<<<<<<<<<<<<<
10742  *                  size_t max_line_size=8190, size_t max_headers=32768,
10743  *                  size_t max_field_size=8190, payload_exception=None,
10744  */
10745 
10746   /* function exit code */
10747   __Pyx_RefNannyFinishContext();
10748   return __pyx_r;
10749 }
10750 
__pyx_pf_7aiohttp_12_http_parser_18HttpResponseParser___init__(struct __pyx_obj_7aiohttp_12_http_parser_HttpResponseParser * __pyx_v_self,PyObject * __pyx_v_protocol,PyObject * __pyx_v_loop,int __pyx_v_limit,PyObject * __pyx_v_timer,size_t __pyx_v_max_line_size,size_t __pyx_v_max_headers,size_t __pyx_v_max_field_size,PyObject * __pyx_v_payload_exception,int __pyx_v_response_with_body,int __pyx_v_read_until_eof,int __pyx_v_auto_decompress)10751 static int __pyx_pf_7aiohttp_12_http_parser_18HttpResponseParser___init__(struct __pyx_obj_7aiohttp_12_http_parser_HttpResponseParser *__pyx_v_self, PyObject *__pyx_v_protocol, PyObject *__pyx_v_loop, int __pyx_v_limit, PyObject *__pyx_v_timer, size_t __pyx_v_max_line_size, size_t __pyx_v_max_headers, size_t __pyx_v_max_field_size, PyObject *__pyx_v_payload_exception, int __pyx_v_response_with_body, int __pyx_v_read_until_eof, int __pyx_v_auto_decompress) {
10752   int __pyx_r;
10753   __Pyx_RefNannyDeclarations
10754   PyObject *__pyx_t_1 = NULL;
10755   struct __pyx_opt_args_7aiohttp_12_http_parser_10HttpParser__init __pyx_t_2;
10756   int __pyx_lineno = 0;
10757   const char *__pyx_filename = NULL;
10758   int __pyx_clineno = 0;
10759   __Pyx_RefNannySetupContext("__init__", 0);
10760 
10761   /* "aiohttp/_http_parser.pyx":599
10762  *                  bint auto_decompress=True
10763  *     ):
10764  *         self._init(cparser.HTTP_RESPONSE, protocol, loop, limit, timer,             # <<<<<<<<<<<<<<
10765  *                    max_line_size, max_headers, max_field_size,
10766  *                    payload_exception, response_with_body, read_until_eof,
10767  */
10768   __pyx_t_2.__pyx_n = 8;
10769   __pyx_t_2.timer = __pyx_v_timer;
10770   __pyx_t_2.max_line_size = __pyx_v_max_line_size;
10771   __pyx_t_2.max_headers = __pyx_v_max_headers;
10772   __pyx_t_2.max_field_size = __pyx_v_max_field_size;
10773   __pyx_t_2.payload_exception = __pyx_v_payload_exception;
10774   __pyx_t_2.response_with_body = __pyx_v_response_with_body;
10775   __pyx_t_2.read_until_eof = __pyx_v_read_until_eof;
10776   __pyx_t_2.auto_decompress = __pyx_v_auto_decompress;
10777   __pyx_t_1 = ((struct __pyx_vtabstruct_7aiohttp_12_http_parser_HttpResponseParser *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base._init(((struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *)__pyx_v_self), HTTP_RESPONSE, __pyx_v_protocol, __pyx_v_loop, __pyx_v_limit, &__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 599, __pyx_L1_error)
10778   __Pyx_GOTREF(__pyx_t_1);
10779   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
10780 
10781   /* "aiohttp/_http_parser.pyx":593
10782  * cdef class HttpResponseParser(HttpParser):
10783  *
10784  *     def __init__(self, protocol, loop, int limit, timer=None,             # <<<<<<<<<<<<<<
10785  *                  size_t max_line_size=8190, size_t max_headers=32768,
10786  *                  size_t max_field_size=8190, payload_exception=None,
10787  */
10788 
10789   /* function exit code */
10790   __pyx_r = 0;
10791   goto __pyx_L0;
10792   __pyx_L1_error:;
10793   __Pyx_XDECREF(__pyx_t_1);
10794   __Pyx_AddTraceback("aiohttp._http_parser.HttpResponseParser.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
10795   __pyx_r = -1;
10796   __pyx_L0:;
10797   __Pyx_RefNannyFinishContext();
10798   return __pyx_r;
10799 }
10800 
10801 /* "aiohttp/_http_parser.pyx":604
10802  *                    auto_decompress)
10803  *
10804  *     cdef object _on_status_complete(self):             # <<<<<<<<<<<<<<
10805  *         if self._buf:
10806  *             self._reason = self._buf.decode('utf-8', 'surrogateescape')
10807  */
10808 
__pyx_f_7aiohttp_12_http_parser_18HttpResponseParser__on_status_complete(struct __pyx_obj_7aiohttp_12_http_parser_HttpResponseParser * __pyx_v_self)10809 static PyObject *__pyx_f_7aiohttp_12_http_parser_18HttpResponseParser__on_status_complete(struct __pyx_obj_7aiohttp_12_http_parser_HttpResponseParser *__pyx_v_self) {
10810   PyObject *__pyx_r = NULL;
10811   __Pyx_RefNannyDeclarations
10812   int __pyx_t_1;
10813   PyObject *__pyx_t_2 = NULL;
10814   int __pyx_t_3;
10815   int __pyx_lineno = 0;
10816   const char *__pyx_filename = NULL;
10817   int __pyx_clineno = 0;
10818   __Pyx_RefNannySetupContext("_on_status_complete", 0);
10819 
10820   /* "aiohttp/_http_parser.pyx":605
10821  *
10822  *     cdef object _on_status_complete(self):
10823  *         if self._buf:             # <<<<<<<<<<<<<<
10824  *             self._reason = self._buf.decode('utf-8', 'surrogateescape')
10825  *             PyByteArray_Resize(self._buf, 0)
10826  */
10827   __pyx_t_1 = (__pyx_v_self->__pyx_base._buf != Py_None)&&(PyByteArray_GET_SIZE(__pyx_v_self->__pyx_base._buf) != 0);
10828   if (__pyx_t_1) {
10829 
10830     /* "aiohttp/_http_parser.pyx":606
10831  *     cdef object _on_status_complete(self):
10832  *         if self._buf:
10833  *             self._reason = self._buf.decode('utf-8', 'surrogateescape')             # <<<<<<<<<<<<<<
10834  *             PyByteArray_Resize(self._buf, 0)
10835  *         else:
10836  */
10837     if (unlikely(__pyx_v_self->__pyx_base._buf == Py_None)) {
10838       PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "decode");
10839       __PYX_ERR(0, 606, __pyx_L1_error)
10840     }
10841     __pyx_t_2 = __Pyx_decode_bytearray(__pyx_v_self->__pyx_base._buf, 0, PY_SSIZE_T_MAX, NULL, ((char const *)"surrogateescape"), PyUnicode_DecodeUTF8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 606, __pyx_L1_error)
10842     __Pyx_GOTREF(__pyx_t_2);
10843     __Pyx_GIVEREF(__pyx_t_2);
10844     __Pyx_GOTREF(__pyx_v_self->__pyx_base._reason);
10845     __Pyx_DECREF(__pyx_v_self->__pyx_base._reason);
10846     __pyx_v_self->__pyx_base._reason = ((PyObject*)__pyx_t_2);
10847     __pyx_t_2 = 0;
10848 
10849     /* "aiohttp/_http_parser.pyx":607
10850  *         if self._buf:
10851  *             self._reason = self._buf.decode('utf-8', 'surrogateescape')
10852  *             PyByteArray_Resize(self._buf, 0)             # <<<<<<<<<<<<<<
10853  *         else:
10854  *             self._reason = self._reason or ''
10855  */
10856     __pyx_t_2 = __pyx_v_self->__pyx_base._buf;
10857     __Pyx_INCREF(__pyx_t_2);
10858     __pyx_t_3 = PyByteArray_Resize(__pyx_t_2, 0); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(0, 607, __pyx_L1_error)
10859     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
10860 
10861     /* "aiohttp/_http_parser.pyx":605
10862  *
10863  *     cdef object _on_status_complete(self):
10864  *         if self._buf:             # <<<<<<<<<<<<<<
10865  *             self._reason = self._buf.decode('utf-8', 'surrogateescape')
10866  *             PyByteArray_Resize(self._buf, 0)
10867  */
10868     goto __pyx_L3;
10869   }
10870 
10871   /* "aiohttp/_http_parser.pyx":609
10872  *             PyByteArray_Resize(self._buf, 0)
10873  *         else:
10874  *             self._reason = self._reason or ''             # <<<<<<<<<<<<<<
10875  *
10876  * cdef int cb_on_message_begin(cparser.http_parser* parser) except -1:
10877  */
10878   /*else*/ {
10879     __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_self->__pyx_base._reason); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 609, __pyx_L1_error)
10880     if (!__pyx_t_1) {
10881     } else {
10882       __Pyx_INCREF(__pyx_v_self->__pyx_base._reason);
10883       __pyx_t_2 = __pyx_v_self->__pyx_base._reason;
10884       goto __pyx_L4_bool_binop_done;
10885     }
10886     __Pyx_INCREF(__pyx_kp_u__4);
10887     __pyx_t_2 = __pyx_kp_u__4;
10888     __pyx_L4_bool_binop_done:;
10889     __Pyx_GIVEREF(__pyx_t_2);
10890     __Pyx_GOTREF(__pyx_v_self->__pyx_base._reason);
10891     __Pyx_DECREF(__pyx_v_self->__pyx_base._reason);
10892     __pyx_v_self->__pyx_base._reason = ((PyObject*)__pyx_t_2);
10893     __pyx_t_2 = 0;
10894   }
10895   __pyx_L3:;
10896 
10897   /* "aiohttp/_http_parser.pyx":604
10898  *                    auto_decompress)
10899  *
10900  *     cdef object _on_status_complete(self):             # <<<<<<<<<<<<<<
10901  *         if self._buf:
10902  *             self._reason = self._buf.decode('utf-8', 'surrogateescape')
10903  */
10904 
10905   /* function exit code */
10906   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
10907   goto __pyx_L0;
10908   __pyx_L1_error:;
10909   __Pyx_XDECREF(__pyx_t_2);
10910   __Pyx_AddTraceback("aiohttp._http_parser.HttpResponseParser._on_status_complete", __pyx_clineno, __pyx_lineno, __pyx_filename);
10911   __pyx_r = 0;
10912   __pyx_L0:;
10913   __Pyx_XGIVEREF(__pyx_r);
10914   __Pyx_RefNannyFinishContext();
10915   return __pyx_r;
10916 }
10917 
10918 /* "(tree fragment)":1
10919  * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
10920  *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
10921  * def __setstate_cython__(self, __pyx_state):
10922  */
10923 
10924 /* Python wrapper */
10925 static PyObject *__pyx_pw_7aiohttp_12_http_parser_18HttpResponseParser_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
__pyx_pw_7aiohttp_12_http_parser_18HttpResponseParser_3__reduce_cython__(PyObject * __pyx_v_self,CYTHON_UNUSED PyObject * unused)10926 static PyObject *__pyx_pw_7aiohttp_12_http_parser_18HttpResponseParser_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
10927   PyObject *__pyx_r = 0;
10928   __Pyx_RefNannyDeclarations
10929   __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
10930   __pyx_r = __pyx_pf_7aiohttp_12_http_parser_18HttpResponseParser_2__reduce_cython__(((struct __pyx_obj_7aiohttp_12_http_parser_HttpResponseParser *)__pyx_v_self));
10931 
10932   /* function exit code */
10933   __Pyx_RefNannyFinishContext();
10934   return __pyx_r;
10935 }
10936 
__pyx_pf_7aiohttp_12_http_parser_18HttpResponseParser_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7aiohttp_12_http_parser_HttpResponseParser * __pyx_v_self)10937 static PyObject *__pyx_pf_7aiohttp_12_http_parser_18HttpResponseParser_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7aiohttp_12_http_parser_HttpResponseParser *__pyx_v_self) {
10938   PyObject *__pyx_r = NULL;
10939   __Pyx_RefNannyDeclarations
10940   PyObject *__pyx_t_1 = NULL;
10941   int __pyx_lineno = 0;
10942   const char *__pyx_filename = NULL;
10943   int __pyx_clineno = 0;
10944   __Pyx_RefNannySetupContext("__reduce_cython__", 0);
10945 
10946   /* "(tree fragment)":2
10947  * def __reduce_cython__(self):
10948  *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
10949  * def __setstate_cython__(self, __pyx_state):
10950  *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
10951  */
10952   __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__9, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
10953   __Pyx_GOTREF(__pyx_t_1);
10954   __Pyx_Raise(__pyx_t_1, 0, 0, 0);
10955   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
10956   __PYX_ERR(1, 2, __pyx_L1_error)
10957 
10958   /* "(tree fragment)":1
10959  * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
10960  *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
10961  * def __setstate_cython__(self, __pyx_state):
10962  */
10963 
10964   /* function exit code */
10965   __pyx_L1_error:;
10966   __Pyx_XDECREF(__pyx_t_1);
10967   __Pyx_AddTraceback("aiohttp._http_parser.HttpResponseParser.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
10968   __pyx_r = NULL;
10969   __Pyx_XGIVEREF(__pyx_r);
10970   __Pyx_RefNannyFinishContext();
10971   return __pyx_r;
10972 }
10973 
10974 /* "(tree fragment)":3
10975  * def __reduce_cython__(self):
10976  *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
10977  * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
10978  *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
10979  */
10980 
10981 /* Python wrapper */
10982 static PyObject *__pyx_pw_7aiohttp_12_http_parser_18HttpResponseParser_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
__pyx_pw_7aiohttp_12_http_parser_18HttpResponseParser_5__setstate_cython__(PyObject * __pyx_v_self,PyObject * __pyx_v___pyx_state)10983 static PyObject *__pyx_pw_7aiohttp_12_http_parser_18HttpResponseParser_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
10984   PyObject *__pyx_r = 0;
10985   __Pyx_RefNannyDeclarations
10986   __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
10987   __pyx_r = __pyx_pf_7aiohttp_12_http_parser_18HttpResponseParser_4__setstate_cython__(((struct __pyx_obj_7aiohttp_12_http_parser_HttpResponseParser *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));
10988 
10989   /* function exit code */
10990   __Pyx_RefNannyFinishContext();
10991   return __pyx_r;
10992 }
10993 
__pyx_pf_7aiohttp_12_http_parser_18HttpResponseParser_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7aiohttp_12_http_parser_HttpResponseParser * __pyx_v_self,CYTHON_UNUSED PyObject * __pyx_v___pyx_state)10994 static PyObject *__pyx_pf_7aiohttp_12_http_parser_18HttpResponseParser_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7aiohttp_12_http_parser_HttpResponseParser *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
10995   PyObject *__pyx_r = NULL;
10996   __Pyx_RefNannyDeclarations
10997   PyObject *__pyx_t_1 = NULL;
10998   int __pyx_lineno = 0;
10999   const char *__pyx_filename = NULL;
11000   int __pyx_clineno = 0;
11001   __Pyx_RefNannySetupContext("__setstate_cython__", 0);
11002 
11003   /* "(tree fragment)":4
11004  *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
11005  * def __setstate_cython__(self, __pyx_state):
11006  *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
11007  */
11008   __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__10, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
11009   __Pyx_GOTREF(__pyx_t_1);
11010   __Pyx_Raise(__pyx_t_1, 0, 0, 0);
11011   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
11012   __PYX_ERR(1, 4, __pyx_L1_error)
11013 
11014   /* "(tree fragment)":3
11015  * def __reduce_cython__(self):
11016  *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
11017  * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
11018  *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
11019  */
11020 
11021   /* function exit code */
11022   __pyx_L1_error:;
11023   __Pyx_XDECREF(__pyx_t_1);
11024   __Pyx_AddTraceback("aiohttp._http_parser.HttpResponseParser.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
11025   __pyx_r = NULL;
11026   __Pyx_XGIVEREF(__pyx_r);
11027   __Pyx_RefNannyFinishContext();
11028   return __pyx_r;
11029 }
11030 
11031 /* "aiohttp/_http_parser.pyx":611
11032  *             self._reason = self._reason or ''
11033  *
11034  * cdef int cb_on_message_begin(cparser.http_parser* parser) except -1:             # <<<<<<<<<<<<<<
11035  *     cdef HttpParser pyparser = <HttpParser>parser.data
11036  *
11037  */
11038 
__pyx_f_7aiohttp_12_http_parser_cb_on_message_begin(struct http_parser * __pyx_v_parser)11039 static int __pyx_f_7aiohttp_12_http_parser_cb_on_message_begin(struct http_parser *__pyx_v_parser) {
11040   struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *__pyx_v_pyparser = 0;
11041   int __pyx_r;
11042   __Pyx_RefNannyDeclarations
11043   PyObject *__pyx_t_1 = NULL;
11044   PyObject *__pyx_t_2 = NULL;
11045   PyObject *__pyx_t_3 = NULL;
11046   int __pyx_t_4;
11047   int __pyx_lineno = 0;
11048   const char *__pyx_filename = NULL;
11049   int __pyx_clineno = 0;
11050   __Pyx_RefNannySetupContext("cb_on_message_begin", 0);
11051 
11052   /* "aiohttp/_http_parser.pyx":612
11053  *
11054  * cdef int cb_on_message_begin(cparser.http_parser* parser) except -1:
11055  *     cdef HttpParser pyparser = <HttpParser>parser.data             # <<<<<<<<<<<<<<
11056  *
11057  *     pyparser._started = True
11058  */
11059   __pyx_t_1 = ((PyObject *)__pyx_v_parser->data);
11060   __Pyx_INCREF(__pyx_t_1);
11061   __pyx_v_pyparser = ((struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *)__pyx_t_1);
11062   __pyx_t_1 = 0;
11063 
11064   /* "aiohttp/_http_parser.pyx":614
11065  *     cdef HttpParser pyparser = <HttpParser>parser.data
11066  *
11067  *     pyparser._started = True             # <<<<<<<<<<<<<<
11068  *     pyparser._headers = CIMultiDict()
11069  *     pyparser._raw_headers = []
11070  */
11071   __pyx_v_pyparser->_started = 1;
11072 
11073   /* "aiohttp/_http_parser.pyx":615
11074  *
11075  *     pyparser._started = True
11076  *     pyparser._headers = CIMultiDict()             # <<<<<<<<<<<<<<
11077  *     pyparser._raw_headers = []
11078  *     PyByteArray_Resize(pyparser._buf, 0)
11079  */
11080   __Pyx_INCREF(__pyx_v_7aiohttp_12_http_parser_CIMultiDict);
11081   __pyx_t_2 = __pyx_v_7aiohttp_12_http_parser_CIMultiDict; __pyx_t_3 = NULL;
11082   if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
11083     __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
11084     if (likely(__pyx_t_3)) {
11085       PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
11086       __Pyx_INCREF(__pyx_t_3);
11087       __Pyx_INCREF(function);
11088       __Pyx_DECREF_SET(__pyx_t_2, function);
11089     }
11090   }
11091   __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
11092   __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
11093   if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 615, __pyx_L1_error)
11094   __Pyx_GOTREF(__pyx_t_1);
11095   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
11096   __Pyx_GIVEREF(__pyx_t_1);
11097   __Pyx_GOTREF(__pyx_v_pyparser->_headers);
11098   __Pyx_DECREF(__pyx_v_pyparser->_headers);
11099   __pyx_v_pyparser->_headers = __pyx_t_1;
11100   __pyx_t_1 = 0;
11101 
11102   /* "aiohttp/_http_parser.pyx":616
11103  *     pyparser._started = True
11104  *     pyparser._headers = CIMultiDict()
11105  *     pyparser._raw_headers = []             # <<<<<<<<<<<<<<
11106  *     PyByteArray_Resize(pyparser._buf, 0)
11107  *     pyparser._path = None
11108  */
11109   __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 616, __pyx_L1_error)
11110   __Pyx_GOTREF(__pyx_t_1);
11111   __Pyx_GIVEREF(__pyx_t_1);
11112   __Pyx_GOTREF(__pyx_v_pyparser->_raw_headers);
11113   __Pyx_DECREF(__pyx_v_pyparser->_raw_headers);
11114   __pyx_v_pyparser->_raw_headers = ((PyObject*)__pyx_t_1);
11115   __pyx_t_1 = 0;
11116 
11117   /* "aiohttp/_http_parser.pyx":617
11118  *     pyparser._headers = CIMultiDict()
11119  *     pyparser._raw_headers = []
11120  *     PyByteArray_Resize(pyparser._buf, 0)             # <<<<<<<<<<<<<<
11121  *     pyparser._path = None
11122  *     pyparser._reason = None
11123  */
11124   __pyx_t_1 = __pyx_v_pyparser->_buf;
11125   __Pyx_INCREF(__pyx_t_1);
11126   __pyx_t_4 = PyByteArray_Resize(__pyx_t_1, 0); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(0, 617, __pyx_L1_error)
11127   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
11128 
11129   /* "aiohttp/_http_parser.pyx":618
11130  *     pyparser._raw_headers = []
11131  *     PyByteArray_Resize(pyparser._buf, 0)
11132  *     pyparser._path = None             # <<<<<<<<<<<<<<
11133  *     pyparser._reason = None
11134  *     return 0
11135  */
11136   __Pyx_INCREF(Py_None);
11137   __Pyx_GIVEREF(Py_None);
11138   __Pyx_GOTREF(__pyx_v_pyparser->_path);
11139   __Pyx_DECREF(__pyx_v_pyparser->_path);
11140   __pyx_v_pyparser->_path = ((PyObject*)Py_None);
11141 
11142   /* "aiohttp/_http_parser.pyx":619
11143  *     PyByteArray_Resize(pyparser._buf, 0)
11144  *     pyparser._path = None
11145  *     pyparser._reason = None             # <<<<<<<<<<<<<<
11146  *     return 0
11147  *
11148  */
11149   __Pyx_INCREF(Py_None);
11150   __Pyx_GIVEREF(Py_None);
11151   __Pyx_GOTREF(__pyx_v_pyparser->_reason);
11152   __Pyx_DECREF(__pyx_v_pyparser->_reason);
11153   __pyx_v_pyparser->_reason = ((PyObject*)Py_None);
11154 
11155   /* "aiohttp/_http_parser.pyx":620
11156  *     pyparser._path = None
11157  *     pyparser._reason = None
11158  *     return 0             # <<<<<<<<<<<<<<
11159  *
11160  *
11161  */
11162   __pyx_r = 0;
11163   goto __pyx_L0;
11164 
11165   /* "aiohttp/_http_parser.pyx":611
11166  *             self._reason = self._reason or ''
11167  *
11168  * cdef int cb_on_message_begin(cparser.http_parser* parser) except -1:             # <<<<<<<<<<<<<<
11169  *     cdef HttpParser pyparser = <HttpParser>parser.data
11170  *
11171  */
11172 
11173   /* function exit code */
11174   __pyx_L1_error:;
11175   __Pyx_XDECREF(__pyx_t_1);
11176   __Pyx_XDECREF(__pyx_t_2);
11177   __Pyx_XDECREF(__pyx_t_3);
11178   __Pyx_AddTraceback("aiohttp._http_parser.cb_on_message_begin", __pyx_clineno, __pyx_lineno, __pyx_filename);
11179   __pyx_r = -1;
11180   __pyx_L0:;
11181   __Pyx_XDECREF((PyObject *)__pyx_v_pyparser);
11182   __Pyx_RefNannyFinishContext();
11183   return __pyx_r;
11184 }
11185 
11186 /* "aiohttp/_http_parser.pyx":623
11187  *
11188  *
11189  * cdef int cb_on_url(cparser.http_parser* parser,             # <<<<<<<<<<<<<<
11190  *                    const char *at, size_t length) except -1:
11191  *     cdef HttpParser pyparser = <HttpParser>parser.data
11192  */
11193 
__pyx_f_7aiohttp_12_http_parser_cb_on_url(struct http_parser * __pyx_v_parser,char const * __pyx_v_at,size_t __pyx_v_length)11194 static int __pyx_f_7aiohttp_12_http_parser_cb_on_url(struct http_parser *__pyx_v_parser, char const *__pyx_v_at, size_t __pyx_v_length) {
11195   struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *__pyx_v_pyparser = 0;
11196   PyObject *__pyx_v_ex = NULL;
11197   int __pyx_r;
11198   __Pyx_RefNannyDeclarations
11199   PyObject *__pyx_t_1 = NULL;
11200   PyObject *__pyx_t_2 = NULL;
11201   PyObject *__pyx_t_3 = NULL;
11202   PyObject *__pyx_t_4 = NULL;
11203   int __pyx_t_5;
11204   PyObject *__pyx_t_6 = NULL;
11205   PyObject *__pyx_t_7 = NULL;
11206   PyObject *__pyx_t_8 = NULL;
11207   PyObject *__pyx_t_9 = NULL;
11208   int __pyx_t_10;
11209   PyObject *__pyx_t_11 = NULL;
11210   int __pyx_lineno = 0;
11211   const char *__pyx_filename = NULL;
11212   int __pyx_clineno = 0;
11213   __Pyx_RefNannySetupContext("cb_on_url", 0);
11214 
11215   /* "aiohttp/_http_parser.pyx":625
11216  * cdef int cb_on_url(cparser.http_parser* parser,
11217  *                    const char *at, size_t length) except -1:
11218  *     cdef HttpParser pyparser = <HttpParser>parser.data             # <<<<<<<<<<<<<<
11219  *     try:
11220  *         if length > pyparser._max_line_size:
11221  */
11222   __pyx_t_1 = ((PyObject *)__pyx_v_parser->data);
11223   __Pyx_INCREF(__pyx_t_1);
11224   __pyx_v_pyparser = ((struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *)__pyx_t_1);
11225   __pyx_t_1 = 0;
11226 
11227   /* "aiohttp/_http_parser.pyx":626
11228  *                    const char *at, size_t length) except -1:
11229  *     cdef HttpParser pyparser = <HttpParser>parser.data
11230  *     try:             # <<<<<<<<<<<<<<
11231  *         if length > pyparser._max_line_size:
11232  *             raise LineTooLong(
11233  */
11234   {
11235     __Pyx_PyThreadState_declare
11236     __Pyx_PyThreadState_assign
11237     __Pyx_ExceptionSave(&__pyx_t_2, &__pyx_t_3, &__pyx_t_4);
11238     __Pyx_XGOTREF(__pyx_t_2);
11239     __Pyx_XGOTREF(__pyx_t_3);
11240     __Pyx_XGOTREF(__pyx_t_4);
11241     /*try:*/ {
11242 
11243       /* "aiohttp/_http_parser.pyx":627
11244  *     cdef HttpParser pyparser = <HttpParser>parser.data
11245  *     try:
11246  *         if length > pyparser._max_line_size:             # <<<<<<<<<<<<<<
11247  *             raise LineTooLong(
11248  *                 'Status line is too long', pyparser._max_line_size, length)
11249  */
11250       __pyx_t_5 = ((__pyx_v_length > __pyx_v_pyparser->_max_line_size) != 0);
11251       if (unlikely(__pyx_t_5)) {
11252 
11253         /* "aiohttp/_http_parser.pyx":628
11254  *     try:
11255  *         if length > pyparser._max_line_size:
11256  *             raise LineTooLong(             # <<<<<<<<<<<<<<
11257  *                 'Status line is too long', pyparser._max_line_size, length)
11258  *         extend(pyparser._buf, at, length)
11259  */
11260         __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_LineTooLong); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 628, __pyx_L3_error)
11261         __Pyx_GOTREF(__pyx_t_6);
11262 
11263         /* "aiohttp/_http_parser.pyx":629
11264  *         if length > pyparser._max_line_size:
11265  *             raise LineTooLong(
11266  *                 'Status line is too long', pyparser._max_line_size, length)             # <<<<<<<<<<<<<<
11267  *         extend(pyparser._buf, at, length)
11268  *     except BaseException as ex:
11269  */
11270         __pyx_t_7 = __Pyx_PyInt_FromSize_t(__pyx_v_pyparser->_max_line_size); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 629, __pyx_L3_error)
11271         __Pyx_GOTREF(__pyx_t_7);
11272         __pyx_t_8 = __Pyx_PyInt_FromSize_t(__pyx_v_length); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 629, __pyx_L3_error)
11273         __Pyx_GOTREF(__pyx_t_8);
11274         __pyx_t_9 = NULL;
11275         __pyx_t_10 = 0;
11276         if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
11277           __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_6);
11278           if (likely(__pyx_t_9)) {
11279             PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
11280             __Pyx_INCREF(__pyx_t_9);
11281             __Pyx_INCREF(function);
11282             __Pyx_DECREF_SET(__pyx_t_6, function);
11283             __pyx_t_10 = 1;
11284           }
11285         }
11286         #if CYTHON_FAST_PYCALL
11287         if (PyFunction_Check(__pyx_t_6)) {
11288           PyObject *__pyx_temp[4] = {__pyx_t_9, __pyx_kp_u_Status_line_is_too_long, __pyx_t_7, __pyx_t_8};
11289           __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_10, 3+__pyx_t_10); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 628, __pyx_L3_error)
11290           __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
11291           __Pyx_GOTREF(__pyx_t_1);
11292           __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
11293           __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
11294         } else
11295         #endif
11296         #if CYTHON_FAST_PYCCALL
11297         if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) {
11298           PyObject *__pyx_temp[4] = {__pyx_t_9, __pyx_kp_u_Status_line_is_too_long, __pyx_t_7, __pyx_t_8};
11299           __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_10, 3+__pyx_t_10); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 628, __pyx_L3_error)
11300           __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
11301           __Pyx_GOTREF(__pyx_t_1);
11302           __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
11303           __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
11304         } else
11305         #endif
11306         {
11307           __pyx_t_11 = PyTuple_New(3+__pyx_t_10); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 628, __pyx_L3_error)
11308           __Pyx_GOTREF(__pyx_t_11);
11309           if (__pyx_t_9) {
11310             __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_9); __pyx_t_9 = NULL;
11311           }
11312           __Pyx_INCREF(__pyx_kp_u_Status_line_is_too_long);
11313           __Pyx_GIVEREF(__pyx_kp_u_Status_line_is_too_long);
11314           PyTuple_SET_ITEM(__pyx_t_11, 0+__pyx_t_10, __pyx_kp_u_Status_line_is_too_long);
11315           __Pyx_GIVEREF(__pyx_t_7);
11316           PyTuple_SET_ITEM(__pyx_t_11, 1+__pyx_t_10, __pyx_t_7);
11317           __Pyx_GIVEREF(__pyx_t_8);
11318           PyTuple_SET_ITEM(__pyx_t_11, 2+__pyx_t_10, __pyx_t_8);
11319           __pyx_t_7 = 0;
11320           __pyx_t_8 = 0;
11321           __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_11, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 628, __pyx_L3_error)
11322           __Pyx_GOTREF(__pyx_t_1);
11323           __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
11324         }
11325         __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
11326         __Pyx_Raise(__pyx_t_1, 0, 0, 0);
11327         __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
11328         __PYX_ERR(0, 628, __pyx_L3_error)
11329 
11330         /* "aiohttp/_http_parser.pyx":627
11331  *     cdef HttpParser pyparser = <HttpParser>parser.data
11332  *     try:
11333  *         if length > pyparser._max_line_size:             # <<<<<<<<<<<<<<
11334  *             raise LineTooLong(
11335  *                 'Status line is too long', pyparser._max_line_size, length)
11336  */
11337       }
11338 
11339       /* "aiohttp/_http_parser.pyx":630
11340  *             raise LineTooLong(
11341  *                 'Status line is too long', pyparser._max_line_size, length)
11342  *         extend(pyparser._buf, at, length)             # <<<<<<<<<<<<<<
11343  *     except BaseException as ex:
11344  *         pyparser._last_error = ex
11345  */
11346       __pyx_t_1 = __pyx_v_pyparser->_buf;
11347       __Pyx_INCREF(__pyx_t_1);
11348       __pyx_t_6 = __pyx_f_7aiohttp_12_http_parser_extend(__pyx_t_1, __pyx_v_at, __pyx_v_length); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 630, __pyx_L3_error)
11349       __Pyx_GOTREF(__pyx_t_6);
11350       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
11351       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
11352 
11353       /* "aiohttp/_http_parser.pyx":626
11354  *                    const char *at, size_t length) except -1:
11355  *     cdef HttpParser pyparser = <HttpParser>parser.data
11356  *     try:             # <<<<<<<<<<<<<<
11357  *         if length > pyparser._max_line_size:
11358  *             raise LineTooLong(
11359  */
11360     }
11361 
11362     /* "aiohttp/_http_parser.pyx":635
11363  *         return -1
11364  *     else:
11365  *         return 0             # <<<<<<<<<<<<<<
11366  *
11367  *
11368  */
11369     /*else:*/ {
11370       __pyx_r = 0;
11371       goto __pyx_L6_except_return;
11372     }
11373     __pyx_L3_error:;
11374     __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
11375     __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
11376     __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
11377     __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
11378     __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
11379     __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
11380 
11381     /* "aiohttp/_http_parser.pyx":631
11382  *                 'Status line is too long', pyparser._max_line_size, length)
11383  *         extend(pyparser._buf, at, length)
11384  *     except BaseException as ex:             # <<<<<<<<<<<<<<
11385  *         pyparser._last_error = ex
11386  *         return -1
11387  */
11388     __pyx_t_10 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_BaseException);
11389     if (__pyx_t_10) {
11390       __Pyx_AddTraceback("aiohttp._http_parser.cb_on_url", __pyx_clineno, __pyx_lineno, __pyx_filename);
11391       if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_1, &__pyx_t_11) < 0) __PYX_ERR(0, 631, __pyx_L5_except_error)
11392       __Pyx_GOTREF(__pyx_t_6);
11393       __Pyx_GOTREF(__pyx_t_1);
11394       __Pyx_GOTREF(__pyx_t_11);
11395       __Pyx_INCREF(__pyx_t_1);
11396       __pyx_v_ex = __pyx_t_1;
11397       /*try:*/ {
11398 
11399         /* "aiohttp/_http_parser.pyx":632
11400  *         extend(pyparser._buf, at, length)
11401  *     except BaseException as ex:
11402  *         pyparser._last_error = ex             # <<<<<<<<<<<<<<
11403  *         return -1
11404  *     else:
11405  */
11406         __Pyx_INCREF(__pyx_v_ex);
11407         __Pyx_GIVEREF(__pyx_v_ex);
11408         __Pyx_GOTREF(__pyx_v_pyparser->_last_error);
11409         __Pyx_DECREF(__pyx_v_pyparser->_last_error);
11410         __pyx_v_pyparser->_last_error = __pyx_v_ex;
11411 
11412         /* "aiohttp/_http_parser.pyx":633
11413  *     except BaseException as ex:
11414  *         pyparser._last_error = ex
11415  *         return -1             # <<<<<<<<<<<<<<
11416  *     else:
11417  *         return 0
11418  */
11419         __pyx_r = -1;
11420         __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
11421         __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
11422         __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
11423         goto __pyx_L14_return;
11424       }
11425 
11426       /* "aiohttp/_http_parser.pyx":631
11427  *                 'Status line is too long', pyparser._max_line_size, length)
11428  *         extend(pyparser._buf, at, length)
11429  *     except BaseException as ex:             # <<<<<<<<<<<<<<
11430  *         pyparser._last_error = ex
11431  *         return -1
11432  */
11433       /*finally:*/ {
11434         __pyx_L14_return: {
11435           __pyx_t_10 = __pyx_r;
11436           __Pyx_DECREF(__pyx_v_ex);
11437           __pyx_v_ex = NULL;
11438           __pyx_r = __pyx_t_10;
11439           goto __pyx_L6_except_return;
11440         }
11441       }
11442     }
11443     goto __pyx_L5_except_error;
11444     __pyx_L5_except_error:;
11445 
11446     /* "aiohttp/_http_parser.pyx":626
11447  *                    const char *at, size_t length) except -1:
11448  *     cdef HttpParser pyparser = <HttpParser>parser.data
11449  *     try:             # <<<<<<<<<<<<<<
11450  *         if length > pyparser._max_line_size:
11451  *             raise LineTooLong(
11452  */
11453     __Pyx_XGIVEREF(__pyx_t_2);
11454     __Pyx_XGIVEREF(__pyx_t_3);
11455     __Pyx_XGIVEREF(__pyx_t_4);
11456     __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4);
11457     goto __pyx_L1_error;
11458     __pyx_L6_except_return:;
11459     __Pyx_XGIVEREF(__pyx_t_2);
11460     __Pyx_XGIVEREF(__pyx_t_3);
11461     __Pyx_XGIVEREF(__pyx_t_4);
11462     __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4);
11463     goto __pyx_L0;
11464   }
11465 
11466   /* "aiohttp/_http_parser.pyx":623
11467  *
11468  *
11469  * cdef int cb_on_url(cparser.http_parser* parser,             # <<<<<<<<<<<<<<
11470  *                    const char *at, size_t length) except -1:
11471  *     cdef HttpParser pyparser = <HttpParser>parser.data
11472  */
11473 
11474   /* function exit code */
11475   __pyx_L1_error:;
11476   __Pyx_XDECREF(__pyx_t_1);
11477   __Pyx_XDECREF(__pyx_t_6);
11478   __Pyx_XDECREF(__pyx_t_7);
11479   __Pyx_XDECREF(__pyx_t_8);
11480   __Pyx_XDECREF(__pyx_t_9);
11481   __Pyx_XDECREF(__pyx_t_11);
11482   __Pyx_AddTraceback("aiohttp._http_parser.cb_on_url", __pyx_clineno, __pyx_lineno, __pyx_filename);
11483   __pyx_r = -1;
11484   __pyx_L0:;
11485   __Pyx_XDECREF((PyObject *)__pyx_v_pyparser);
11486   __Pyx_XDECREF(__pyx_v_ex);
11487   __Pyx_RefNannyFinishContext();
11488   return __pyx_r;
11489 }
11490 
11491 /* "aiohttp/_http_parser.pyx":638
11492  *
11493  *
11494  * cdef int cb_on_status(cparser.http_parser* parser,             # <<<<<<<<<<<<<<
11495  *                       const char *at, size_t length) except -1:
11496  *     cdef HttpParser pyparser = <HttpParser>parser.data
11497  */
11498 
__pyx_f_7aiohttp_12_http_parser_cb_on_status(struct http_parser * __pyx_v_parser,char const * __pyx_v_at,size_t __pyx_v_length)11499 static int __pyx_f_7aiohttp_12_http_parser_cb_on_status(struct http_parser *__pyx_v_parser, char const *__pyx_v_at, size_t __pyx_v_length) {
11500   struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *__pyx_v_pyparser = 0;
11501   PyObject *__pyx_v_ex = NULL;
11502   int __pyx_r;
11503   __Pyx_RefNannyDeclarations
11504   PyObject *__pyx_t_1 = NULL;
11505   PyObject *__pyx_t_2 = NULL;
11506   PyObject *__pyx_t_3 = NULL;
11507   PyObject *__pyx_t_4 = NULL;
11508   int __pyx_t_5;
11509   PyObject *__pyx_t_6 = NULL;
11510   PyObject *__pyx_t_7 = NULL;
11511   PyObject *__pyx_t_8 = NULL;
11512   PyObject *__pyx_t_9 = NULL;
11513   int __pyx_t_10;
11514   PyObject *__pyx_t_11 = NULL;
11515   int __pyx_lineno = 0;
11516   const char *__pyx_filename = NULL;
11517   int __pyx_clineno = 0;
11518   __Pyx_RefNannySetupContext("cb_on_status", 0);
11519 
11520   /* "aiohttp/_http_parser.pyx":640
11521  * cdef int cb_on_status(cparser.http_parser* parser,
11522  *                       const char *at, size_t length) except -1:
11523  *     cdef HttpParser pyparser = <HttpParser>parser.data             # <<<<<<<<<<<<<<
11524  *     cdef str reason
11525  *     try:
11526  */
11527   __pyx_t_1 = ((PyObject *)__pyx_v_parser->data);
11528   __Pyx_INCREF(__pyx_t_1);
11529   __pyx_v_pyparser = ((struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *)__pyx_t_1);
11530   __pyx_t_1 = 0;
11531 
11532   /* "aiohttp/_http_parser.pyx":642
11533  *     cdef HttpParser pyparser = <HttpParser>parser.data
11534  *     cdef str reason
11535  *     try:             # <<<<<<<<<<<<<<
11536  *         if length > pyparser._max_line_size:
11537  *             raise LineTooLong(
11538  */
11539   {
11540     __Pyx_PyThreadState_declare
11541     __Pyx_PyThreadState_assign
11542     __Pyx_ExceptionSave(&__pyx_t_2, &__pyx_t_3, &__pyx_t_4);
11543     __Pyx_XGOTREF(__pyx_t_2);
11544     __Pyx_XGOTREF(__pyx_t_3);
11545     __Pyx_XGOTREF(__pyx_t_4);
11546     /*try:*/ {
11547 
11548       /* "aiohttp/_http_parser.pyx":643
11549  *     cdef str reason
11550  *     try:
11551  *         if length > pyparser._max_line_size:             # <<<<<<<<<<<<<<
11552  *             raise LineTooLong(
11553  *                 'Status line is too long', pyparser._max_line_size, length)
11554  */
11555       __pyx_t_5 = ((__pyx_v_length > __pyx_v_pyparser->_max_line_size) != 0);
11556       if (unlikely(__pyx_t_5)) {
11557 
11558         /* "aiohttp/_http_parser.pyx":644
11559  *     try:
11560  *         if length > pyparser._max_line_size:
11561  *             raise LineTooLong(             # <<<<<<<<<<<<<<
11562  *                 'Status line is too long', pyparser._max_line_size, length)
11563  *         extend(pyparser._buf, at, length)
11564  */
11565         __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_LineTooLong); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 644, __pyx_L3_error)
11566         __Pyx_GOTREF(__pyx_t_6);
11567 
11568         /* "aiohttp/_http_parser.pyx":645
11569  *         if length > pyparser._max_line_size:
11570  *             raise LineTooLong(
11571  *                 'Status line is too long', pyparser._max_line_size, length)             # <<<<<<<<<<<<<<
11572  *         extend(pyparser._buf, at, length)
11573  *     except BaseException as ex:
11574  */
11575         __pyx_t_7 = __Pyx_PyInt_FromSize_t(__pyx_v_pyparser->_max_line_size); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 645, __pyx_L3_error)
11576         __Pyx_GOTREF(__pyx_t_7);
11577         __pyx_t_8 = __Pyx_PyInt_FromSize_t(__pyx_v_length); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 645, __pyx_L3_error)
11578         __Pyx_GOTREF(__pyx_t_8);
11579         __pyx_t_9 = NULL;
11580         __pyx_t_10 = 0;
11581         if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
11582           __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_6);
11583           if (likely(__pyx_t_9)) {
11584             PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
11585             __Pyx_INCREF(__pyx_t_9);
11586             __Pyx_INCREF(function);
11587             __Pyx_DECREF_SET(__pyx_t_6, function);
11588             __pyx_t_10 = 1;
11589           }
11590         }
11591         #if CYTHON_FAST_PYCALL
11592         if (PyFunction_Check(__pyx_t_6)) {
11593           PyObject *__pyx_temp[4] = {__pyx_t_9, __pyx_kp_u_Status_line_is_too_long, __pyx_t_7, __pyx_t_8};
11594           __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_10, 3+__pyx_t_10); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 644, __pyx_L3_error)
11595           __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
11596           __Pyx_GOTREF(__pyx_t_1);
11597           __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
11598           __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
11599         } else
11600         #endif
11601         #if CYTHON_FAST_PYCCALL
11602         if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) {
11603           PyObject *__pyx_temp[4] = {__pyx_t_9, __pyx_kp_u_Status_line_is_too_long, __pyx_t_7, __pyx_t_8};
11604           __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_10, 3+__pyx_t_10); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 644, __pyx_L3_error)
11605           __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
11606           __Pyx_GOTREF(__pyx_t_1);
11607           __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
11608           __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
11609         } else
11610         #endif
11611         {
11612           __pyx_t_11 = PyTuple_New(3+__pyx_t_10); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 644, __pyx_L3_error)
11613           __Pyx_GOTREF(__pyx_t_11);
11614           if (__pyx_t_9) {
11615             __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_9); __pyx_t_9 = NULL;
11616           }
11617           __Pyx_INCREF(__pyx_kp_u_Status_line_is_too_long);
11618           __Pyx_GIVEREF(__pyx_kp_u_Status_line_is_too_long);
11619           PyTuple_SET_ITEM(__pyx_t_11, 0+__pyx_t_10, __pyx_kp_u_Status_line_is_too_long);
11620           __Pyx_GIVEREF(__pyx_t_7);
11621           PyTuple_SET_ITEM(__pyx_t_11, 1+__pyx_t_10, __pyx_t_7);
11622           __Pyx_GIVEREF(__pyx_t_8);
11623           PyTuple_SET_ITEM(__pyx_t_11, 2+__pyx_t_10, __pyx_t_8);
11624           __pyx_t_7 = 0;
11625           __pyx_t_8 = 0;
11626           __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_11, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 644, __pyx_L3_error)
11627           __Pyx_GOTREF(__pyx_t_1);
11628           __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
11629         }
11630         __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
11631         __Pyx_Raise(__pyx_t_1, 0, 0, 0);
11632         __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
11633         __PYX_ERR(0, 644, __pyx_L3_error)
11634 
11635         /* "aiohttp/_http_parser.pyx":643
11636  *     cdef str reason
11637  *     try:
11638  *         if length > pyparser._max_line_size:             # <<<<<<<<<<<<<<
11639  *             raise LineTooLong(
11640  *                 'Status line is too long', pyparser._max_line_size, length)
11641  */
11642       }
11643 
11644       /* "aiohttp/_http_parser.pyx":646
11645  *             raise LineTooLong(
11646  *                 'Status line is too long', pyparser._max_line_size, length)
11647  *         extend(pyparser._buf, at, length)             # <<<<<<<<<<<<<<
11648  *     except BaseException as ex:
11649  *         pyparser._last_error = ex
11650  */
11651       __pyx_t_1 = __pyx_v_pyparser->_buf;
11652       __Pyx_INCREF(__pyx_t_1);
11653       __pyx_t_6 = __pyx_f_7aiohttp_12_http_parser_extend(__pyx_t_1, __pyx_v_at, __pyx_v_length); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 646, __pyx_L3_error)
11654       __Pyx_GOTREF(__pyx_t_6);
11655       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
11656       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
11657 
11658       /* "aiohttp/_http_parser.pyx":642
11659  *     cdef HttpParser pyparser = <HttpParser>parser.data
11660  *     cdef str reason
11661  *     try:             # <<<<<<<<<<<<<<
11662  *         if length > pyparser._max_line_size:
11663  *             raise LineTooLong(
11664  */
11665     }
11666 
11667     /* "aiohttp/_http_parser.pyx":651
11668  *         return -1
11669  *     else:
11670  *         return 0             # <<<<<<<<<<<<<<
11671  *
11672  *
11673  */
11674     /*else:*/ {
11675       __pyx_r = 0;
11676       goto __pyx_L6_except_return;
11677     }
11678     __pyx_L3_error:;
11679     __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
11680     __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
11681     __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
11682     __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
11683     __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
11684     __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
11685 
11686     /* "aiohttp/_http_parser.pyx":647
11687  *                 'Status line is too long', pyparser._max_line_size, length)
11688  *         extend(pyparser._buf, at, length)
11689  *     except BaseException as ex:             # <<<<<<<<<<<<<<
11690  *         pyparser._last_error = ex
11691  *         return -1
11692  */
11693     __pyx_t_10 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_BaseException);
11694     if (__pyx_t_10) {
11695       __Pyx_AddTraceback("aiohttp._http_parser.cb_on_status", __pyx_clineno, __pyx_lineno, __pyx_filename);
11696       if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_1, &__pyx_t_11) < 0) __PYX_ERR(0, 647, __pyx_L5_except_error)
11697       __Pyx_GOTREF(__pyx_t_6);
11698       __Pyx_GOTREF(__pyx_t_1);
11699       __Pyx_GOTREF(__pyx_t_11);
11700       __Pyx_INCREF(__pyx_t_1);
11701       __pyx_v_ex = __pyx_t_1;
11702       /*try:*/ {
11703 
11704         /* "aiohttp/_http_parser.pyx":648
11705  *         extend(pyparser._buf, at, length)
11706  *     except BaseException as ex:
11707  *         pyparser._last_error = ex             # <<<<<<<<<<<<<<
11708  *         return -1
11709  *     else:
11710  */
11711         __Pyx_INCREF(__pyx_v_ex);
11712         __Pyx_GIVEREF(__pyx_v_ex);
11713         __Pyx_GOTREF(__pyx_v_pyparser->_last_error);
11714         __Pyx_DECREF(__pyx_v_pyparser->_last_error);
11715         __pyx_v_pyparser->_last_error = __pyx_v_ex;
11716 
11717         /* "aiohttp/_http_parser.pyx":649
11718  *     except BaseException as ex:
11719  *         pyparser._last_error = ex
11720  *         return -1             # <<<<<<<<<<<<<<
11721  *     else:
11722  *         return 0
11723  */
11724         __pyx_r = -1;
11725         __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
11726         __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
11727         __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
11728         goto __pyx_L14_return;
11729       }
11730 
11731       /* "aiohttp/_http_parser.pyx":647
11732  *                 'Status line is too long', pyparser._max_line_size, length)
11733  *         extend(pyparser._buf, at, length)
11734  *     except BaseException as ex:             # <<<<<<<<<<<<<<
11735  *         pyparser._last_error = ex
11736  *         return -1
11737  */
11738       /*finally:*/ {
11739         __pyx_L14_return: {
11740           __pyx_t_10 = __pyx_r;
11741           __Pyx_DECREF(__pyx_v_ex);
11742           __pyx_v_ex = NULL;
11743           __pyx_r = __pyx_t_10;
11744           goto __pyx_L6_except_return;
11745         }
11746       }
11747     }
11748     goto __pyx_L5_except_error;
11749     __pyx_L5_except_error:;
11750 
11751     /* "aiohttp/_http_parser.pyx":642
11752  *     cdef HttpParser pyparser = <HttpParser>parser.data
11753  *     cdef str reason
11754  *     try:             # <<<<<<<<<<<<<<
11755  *         if length > pyparser._max_line_size:
11756  *             raise LineTooLong(
11757  */
11758     __Pyx_XGIVEREF(__pyx_t_2);
11759     __Pyx_XGIVEREF(__pyx_t_3);
11760     __Pyx_XGIVEREF(__pyx_t_4);
11761     __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4);
11762     goto __pyx_L1_error;
11763     __pyx_L6_except_return:;
11764     __Pyx_XGIVEREF(__pyx_t_2);
11765     __Pyx_XGIVEREF(__pyx_t_3);
11766     __Pyx_XGIVEREF(__pyx_t_4);
11767     __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4);
11768     goto __pyx_L0;
11769   }
11770 
11771   /* "aiohttp/_http_parser.pyx":638
11772  *
11773  *
11774  * cdef int cb_on_status(cparser.http_parser* parser,             # <<<<<<<<<<<<<<
11775  *                       const char *at, size_t length) except -1:
11776  *     cdef HttpParser pyparser = <HttpParser>parser.data
11777  */
11778 
11779   /* function exit code */
11780   __pyx_L1_error:;
11781   __Pyx_XDECREF(__pyx_t_1);
11782   __Pyx_XDECREF(__pyx_t_6);
11783   __Pyx_XDECREF(__pyx_t_7);
11784   __Pyx_XDECREF(__pyx_t_8);
11785   __Pyx_XDECREF(__pyx_t_9);
11786   __Pyx_XDECREF(__pyx_t_11);
11787   __Pyx_AddTraceback("aiohttp._http_parser.cb_on_status", __pyx_clineno, __pyx_lineno, __pyx_filename);
11788   __pyx_r = -1;
11789   __pyx_L0:;
11790   __Pyx_XDECREF((PyObject *)__pyx_v_pyparser);
11791   __Pyx_XDECREF(__pyx_v_ex);
11792   __Pyx_RefNannyFinishContext();
11793   return __pyx_r;
11794 }
11795 
11796 /* "aiohttp/_http_parser.pyx":654
11797  *
11798  *
11799  * cdef int cb_on_header_field(cparser.http_parser* parser,             # <<<<<<<<<<<<<<
11800  *                             const char *at, size_t length) except -1:
11801  *     cdef HttpParser pyparser = <HttpParser>parser.data
11802  */
11803 
__pyx_f_7aiohttp_12_http_parser_cb_on_header_field(struct http_parser * __pyx_v_parser,char const * __pyx_v_at,size_t __pyx_v_length)11804 static int __pyx_f_7aiohttp_12_http_parser_cb_on_header_field(struct http_parser *__pyx_v_parser, char const *__pyx_v_at, size_t __pyx_v_length) {
11805   struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *__pyx_v_pyparser = 0;
11806   Py_ssize_t __pyx_v_size;
11807   PyObject *__pyx_v_ex = NULL;
11808   int __pyx_r;
11809   __Pyx_RefNannyDeclarations
11810   PyObject *__pyx_t_1 = NULL;
11811   PyObject *__pyx_t_2 = NULL;
11812   PyObject *__pyx_t_3 = NULL;
11813   PyObject *__pyx_t_4 = NULL;
11814   Py_ssize_t __pyx_t_5;
11815   int __pyx_t_6;
11816   PyObject *__pyx_t_7 = NULL;
11817   PyObject *__pyx_t_8 = NULL;
11818   PyObject *__pyx_t_9 = NULL;
11819   PyObject *__pyx_t_10 = NULL;
11820   int __pyx_t_11;
11821   PyObject *__pyx_t_12 = NULL;
11822   int __pyx_lineno = 0;
11823   const char *__pyx_filename = NULL;
11824   int __pyx_clineno = 0;
11825   __Pyx_RefNannySetupContext("cb_on_header_field", 0);
11826 
11827   /* "aiohttp/_http_parser.pyx":656
11828  * cdef int cb_on_header_field(cparser.http_parser* parser,
11829  *                             const char *at, size_t length) except -1:
11830  *     cdef HttpParser pyparser = <HttpParser>parser.data             # <<<<<<<<<<<<<<
11831  *     cdef Py_ssize_t size
11832  *     try:
11833  */
11834   __pyx_t_1 = ((PyObject *)__pyx_v_parser->data);
11835   __Pyx_INCREF(__pyx_t_1);
11836   __pyx_v_pyparser = ((struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *)__pyx_t_1);
11837   __pyx_t_1 = 0;
11838 
11839   /* "aiohttp/_http_parser.pyx":658
11840  *     cdef HttpParser pyparser = <HttpParser>parser.data
11841  *     cdef Py_ssize_t size
11842  *     try:             # <<<<<<<<<<<<<<
11843  *         pyparser._on_status_complete()
11844  *         size = len(pyparser._raw_name) + length
11845  */
11846   {
11847     __Pyx_PyThreadState_declare
11848     __Pyx_PyThreadState_assign
11849     __Pyx_ExceptionSave(&__pyx_t_2, &__pyx_t_3, &__pyx_t_4);
11850     __Pyx_XGOTREF(__pyx_t_2);
11851     __Pyx_XGOTREF(__pyx_t_3);
11852     __Pyx_XGOTREF(__pyx_t_4);
11853     /*try:*/ {
11854 
11855       /* "aiohttp/_http_parser.pyx":659
11856  *     cdef Py_ssize_t size
11857  *     try:
11858  *         pyparser._on_status_complete()             # <<<<<<<<<<<<<<
11859  *         size = len(pyparser._raw_name) + length
11860  *         if size > pyparser._max_field_size:
11861  */
11862       __pyx_t_1 = ((struct __pyx_vtabstruct_7aiohttp_12_http_parser_HttpParser *)__pyx_v_pyparser->__pyx_vtab)->_on_status_complete(__pyx_v_pyparser); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 659, __pyx_L3_error)
11863       __Pyx_GOTREF(__pyx_t_1);
11864       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
11865 
11866       /* "aiohttp/_http_parser.pyx":660
11867  *     try:
11868  *         pyparser._on_status_complete()
11869  *         size = len(pyparser._raw_name) + length             # <<<<<<<<<<<<<<
11870  *         if size > pyparser._max_field_size:
11871  *             raise LineTooLong(
11872  */
11873       __pyx_t_1 = __pyx_v_pyparser->_raw_name;
11874       __Pyx_INCREF(__pyx_t_1);
11875       if (unlikely(__pyx_t_1 == Py_None)) {
11876         PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
11877         __PYX_ERR(0, 660, __pyx_L3_error)
11878       }
11879       __pyx_t_5 = PyByteArray_GET_SIZE(__pyx_t_1); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 660, __pyx_L3_error)
11880       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
11881       __pyx_v_size = (__pyx_t_5 + __pyx_v_length);
11882 
11883       /* "aiohttp/_http_parser.pyx":661
11884  *         pyparser._on_status_complete()
11885  *         size = len(pyparser._raw_name) + length
11886  *         if size > pyparser._max_field_size:             # <<<<<<<<<<<<<<
11887  *             raise LineTooLong(
11888  *                 'Header name is too long', pyparser._max_field_size, size)
11889  */
11890       __pyx_t_6 = ((__pyx_v_size > __pyx_v_pyparser->_max_field_size) != 0);
11891       if (unlikely(__pyx_t_6)) {
11892 
11893         /* "aiohttp/_http_parser.pyx":662
11894  *         size = len(pyparser._raw_name) + length
11895  *         if size > pyparser._max_field_size:
11896  *             raise LineTooLong(             # <<<<<<<<<<<<<<
11897  *                 'Header name is too long', pyparser._max_field_size, size)
11898  *         pyparser._on_header_field(at, length)
11899  */
11900         __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_LineTooLong); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 662, __pyx_L3_error)
11901         __Pyx_GOTREF(__pyx_t_7);
11902 
11903         /* "aiohttp/_http_parser.pyx":663
11904  *         if size > pyparser._max_field_size:
11905  *             raise LineTooLong(
11906  *                 'Header name is too long', pyparser._max_field_size, size)             # <<<<<<<<<<<<<<
11907  *         pyparser._on_header_field(at, length)
11908  *     except BaseException as ex:
11909  */
11910         __pyx_t_8 = __Pyx_PyInt_FromSize_t(__pyx_v_pyparser->_max_field_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 663, __pyx_L3_error)
11911         __Pyx_GOTREF(__pyx_t_8);
11912         __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 663, __pyx_L3_error)
11913         __Pyx_GOTREF(__pyx_t_9);
11914         __pyx_t_10 = NULL;
11915         __pyx_t_11 = 0;
11916         if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) {
11917           __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_7);
11918           if (likely(__pyx_t_10)) {
11919             PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
11920             __Pyx_INCREF(__pyx_t_10);
11921             __Pyx_INCREF(function);
11922             __Pyx_DECREF_SET(__pyx_t_7, function);
11923             __pyx_t_11 = 1;
11924           }
11925         }
11926         #if CYTHON_FAST_PYCALL
11927         if (PyFunction_Check(__pyx_t_7)) {
11928           PyObject *__pyx_temp[4] = {__pyx_t_10, __pyx_kp_u_Header_name_is_too_long, __pyx_t_8, __pyx_t_9};
11929           __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_11, 3+__pyx_t_11); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 662, __pyx_L3_error)
11930           __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
11931           __Pyx_GOTREF(__pyx_t_1);
11932           __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
11933           __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
11934         } else
11935         #endif
11936         #if CYTHON_FAST_PYCCALL
11937         if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) {
11938           PyObject *__pyx_temp[4] = {__pyx_t_10, __pyx_kp_u_Header_name_is_too_long, __pyx_t_8, __pyx_t_9};
11939           __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_11, 3+__pyx_t_11); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 662, __pyx_L3_error)
11940           __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
11941           __Pyx_GOTREF(__pyx_t_1);
11942           __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
11943           __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
11944         } else
11945         #endif
11946         {
11947           __pyx_t_12 = PyTuple_New(3+__pyx_t_11); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 662, __pyx_L3_error)
11948           __Pyx_GOTREF(__pyx_t_12);
11949           if (__pyx_t_10) {
11950             __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_10); __pyx_t_10 = NULL;
11951           }
11952           __Pyx_INCREF(__pyx_kp_u_Header_name_is_too_long);
11953           __Pyx_GIVEREF(__pyx_kp_u_Header_name_is_too_long);
11954           PyTuple_SET_ITEM(__pyx_t_12, 0+__pyx_t_11, __pyx_kp_u_Header_name_is_too_long);
11955           __Pyx_GIVEREF(__pyx_t_8);
11956           PyTuple_SET_ITEM(__pyx_t_12, 1+__pyx_t_11, __pyx_t_8);
11957           __Pyx_GIVEREF(__pyx_t_9);
11958           PyTuple_SET_ITEM(__pyx_t_12, 2+__pyx_t_11, __pyx_t_9);
11959           __pyx_t_8 = 0;
11960           __pyx_t_9 = 0;
11961           __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_12, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 662, __pyx_L3_error)
11962           __Pyx_GOTREF(__pyx_t_1);
11963           __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
11964         }
11965         __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
11966         __Pyx_Raise(__pyx_t_1, 0, 0, 0);
11967         __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
11968         __PYX_ERR(0, 662, __pyx_L3_error)
11969 
11970         /* "aiohttp/_http_parser.pyx":661
11971  *         pyparser._on_status_complete()
11972  *         size = len(pyparser._raw_name) + length
11973  *         if size > pyparser._max_field_size:             # <<<<<<<<<<<<<<
11974  *             raise LineTooLong(
11975  *                 'Header name is too long', pyparser._max_field_size, size)
11976  */
11977       }
11978 
11979       /* "aiohttp/_http_parser.pyx":664
11980  *             raise LineTooLong(
11981  *                 'Header name is too long', pyparser._max_field_size, size)
11982  *         pyparser._on_header_field(at, length)             # <<<<<<<<<<<<<<
11983  *     except BaseException as ex:
11984  *         pyparser._last_error = ex
11985  */
11986       __pyx_t_1 = ((struct __pyx_vtabstruct_7aiohttp_12_http_parser_HttpParser *)__pyx_v_pyparser->__pyx_vtab)->_on_header_field(__pyx_v_pyparser, __pyx_v_at, __pyx_v_length); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 664, __pyx_L3_error)
11987       __Pyx_GOTREF(__pyx_t_1);
11988       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
11989 
11990       /* "aiohttp/_http_parser.pyx":658
11991  *     cdef HttpParser pyparser = <HttpParser>parser.data
11992  *     cdef Py_ssize_t size
11993  *     try:             # <<<<<<<<<<<<<<
11994  *         pyparser._on_status_complete()
11995  *         size = len(pyparser._raw_name) + length
11996  */
11997     }
11998 
11999     /* "aiohttp/_http_parser.pyx":669
12000  *         return -1
12001  *     else:
12002  *         return 0             # <<<<<<<<<<<<<<
12003  *
12004  *
12005  */
12006     /*else:*/ {
12007       __pyx_r = 0;
12008       goto __pyx_L6_except_return;
12009     }
12010     __pyx_L3_error:;
12011     __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
12012     __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
12013     __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
12014     __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
12015     __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
12016     __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
12017 
12018     /* "aiohttp/_http_parser.pyx":665
12019  *                 'Header name is too long', pyparser._max_field_size, size)
12020  *         pyparser._on_header_field(at, length)
12021  *     except BaseException as ex:             # <<<<<<<<<<<<<<
12022  *         pyparser._last_error = ex
12023  *         return -1
12024  */
12025     __pyx_t_11 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_BaseException);
12026     if (__pyx_t_11) {
12027       __Pyx_AddTraceback("aiohttp._http_parser.cb_on_header_field", __pyx_clineno, __pyx_lineno, __pyx_filename);
12028       if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_7, &__pyx_t_12) < 0) __PYX_ERR(0, 665, __pyx_L5_except_error)
12029       __Pyx_GOTREF(__pyx_t_1);
12030       __Pyx_GOTREF(__pyx_t_7);
12031       __Pyx_GOTREF(__pyx_t_12);
12032       __Pyx_INCREF(__pyx_t_7);
12033       __pyx_v_ex = __pyx_t_7;
12034       /*try:*/ {
12035 
12036         /* "aiohttp/_http_parser.pyx":666
12037  *         pyparser._on_header_field(at, length)
12038  *     except BaseException as ex:
12039  *         pyparser._last_error = ex             # <<<<<<<<<<<<<<
12040  *         return -1
12041  *     else:
12042  */
12043         __Pyx_INCREF(__pyx_v_ex);
12044         __Pyx_GIVEREF(__pyx_v_ex);
12045         __Pyx_GOTREF(__pyx_v_pyparser->_last_error);
12046         __Pyx_DECREF(__pyx_v_pyparser->_last_error);
12047         __pyx_v_pyparser->_last_error = __pyx_v_ex;
12048 
12049         /* "aiohttp/_http_parser.pyx":667
12050  *     except BaseException as ex:
12051  *         pyparser._last_error = ex
12052  *         return -1             # <<<<<<<<<<<<<<
12053  *     else:
12054  *         return 0
12055  */
12056         __pyx_r = -1;
12057         __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
12058         __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
12059         __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
12060         goto __pyx_L14_return;
12061       }
12062 
12063       /* "aiohttp/_http_parser.pyx":665
12064  *                 'Header name is too long', pyparser._max_field_size, size)
12065  *         pyparser._on_header_field(at, length)
12066  *     except BaseException as ex:             # <<<<<<<<<<<<<<
12067  *         pyparser._last_error = ex
12068  *         return -1
12069  */
12070       /*finally:*/ {
12071         __pyx_L14_return: {
12072           __pyx_t_11 = __pyx_r;
12073           __Pyx_DECREF(__pyx_v_ex);
12074           __pyx_v_ex = NULL;
12075           __pyx_r = __pyx_t_11;
12076           goto __pyx_L6_except_return;
12077         }
12078       }
12079     }
12080     goto __pyx_L5_except_error;
12081     __pyx_L5_except_error:;
12082 
12083     /* "aiohttp/_http_parser.pyx":658
12084  *     cdef HttpParser pyparser = <HttpParser>parser.data
12085  *     cdef Py_ssize_t size
12086  *     try:             # <<<<<<<<<<<<<<
12087  *         pyparser._on_status_complete()
12088  *         size = len(pyparser._raw_name) + length
12089  */
12090     __Pyx_XGIVEREF(__pyx_t_2);
12091     __Pyx_XGIVEREF(__pyx_t_3);
12092     __Pyx_XGIVEREF(__pyx_t_4);
12093     __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4);
12094     goto __pyx_L1_error;
12095     __pyx_L6_except_return:;
12096     __Pyx_XGIVEREF(__pyx_t_2);
12097     __Pyx_XGIVEREF(__pyx_t_3);
12098     __Pyx_XGIVEREF(__pyx_t_4);
12099     __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4);
12100     goto __pyx_L0;
12101   }
12102 
12103   /* "aiohttp/_http_parser.pyx":654
12104  *
12105  *
12106  * cdef int cb_on_header_field(cparser.http_parser* parser,             # <<<<<<<<<<<<<<
12107  *                             const char *at, size_t length) except -1:
12108  *     cdef HttpParser pyparser = <HttpParser>parser.data
12109  */
12110 
12111   /* function exit code */
12112   __pyx_L1_error:;
12113   __Pyx_XDECREF(__pyx_t_1);
12114   __Pyx_XDECREF(__pyx_t_7);
12115   __Pyx_XDECREF(__pyx_t_8);
12116   __Pyx_XDECREF(__pyx_t_9);
12117   __Pyx_XDECREF(__pyx_t_10);
12118   __Pyx_XDECREF(__pyx_t_12);
12119   __Pyx_AddTraceback("aiohttp._http_parser.cb_on_header_field", __pyx_clineno, __pyx_lineno, __pyx_filename);
12120   __pyx_r = -1;
12121   __pyx_L0:;
12122   __Pyx_XDECREF((PyObject *)__pyx_v_pyparser);
12123   __Pyx_XDECREF(__pyx_v_ex);
12124   __Pyx_RefNannyFinishContext();
12125   return __pyx_r;
12126 }
12127 
12128 /* "aiohttp/_http_parser.pyx":672
12129  *
12130  *
12131  * cdef int cb_on_header_value(cparser.http_parser* parser,             # <<<<<<<<<<<<<<
12132  *                             const char *at, size_t length) except -1:
12133  *     cdef HttpParser pyparser = <HttpParser>parser.data
12134  */
12135 
__pyx_f_7aiohttp_12_http_parser_cb_on_header_value(struct http_parser * __pyx_v_parser,char const * __pyx_v_at,size_t __pyx_v_length)12136 static int __pyx_f_7aiohttp_12_http_parser_cb_on_header_value(struct http_parser *__pyx_v_parser, char const *__pyx_v_at, size_t __pyx_v_length) {
12137   struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *__pyx_v_pyparser = 0;
12138   Py_ssize_t __pyx_v_size;
12139   PyObject *__pyx_v_ex = NULL;
12140   int __pyx_r;
12141   __Pyx_RefNannyDeclarations
12142   PyObject *__pyx_t_1 = NULL;
12143   PyObject *__pyx_t_2 = NULL;
12144   PyObject *__pyx_t_3 = NULL;
12145   PyObject *__pyx_t_4 = NULL;
12146   Py_ssize_t __pyx_t_5;
12147   int __pyx_t_6;
12148   PyObject *__pyx_t_7 = NULL;
12149   PyObject *__pyx_t_8 = NULL;
12150   PyObject *__pyx_t_9 = NULL;
12151   PyObject *__pyx_t_10 = NULL;
12152   int __pyx_t_11;
12153   PyObject *__pyx_t_12 = NULL;
12154   int __pyx_lineno = 0;
12155   const char *__pyx_filename = NULL;
12156   int __pyx_clineno = 0;
12157   __Pyx_RefNannySetupContext("cb_on_header_value", 0);
12158 
12159   /* "aiohttp/_http_parser.pyx":674
12160  * cdef int cb_on_header_value(cparser.http_parser* parser,
12161  *                             const char *at, size_t length) except -1:
12162  *     cdef HttpParser pyparser = <HttpParser>parser.data             # <<<<<<<<<<<<<<
12163  *     cdef Py_ssize_t size
12164  *     try:
12165  */
12166   __pyx_t_1 = ((PyObject *)__pyx_v_parser->data);
12167   __Pyx_INCREF(__pyx_t_1);
12168   __pyx_v_pyparser = ((struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *)__pyx_t_1);
12169   __pyx_t_1 = 0;
12170 
12171   /* "aiohttp/_http_parser.pyx":676
12172  *     cdef HttpParser pyparser = <HttpParser>parser.data
12173  *     cdef Py_ssize_t size
12174  *     try:             # <<<<<<<<<<<<<<
12175  *         size = len(pyparser._raw_value) + length
12176  *         if size > pyparser._max_field_size:
12177  */
12178   {
12179     __Pyx_PyThreadState_declare
12180     __Pyx_PyThreadState_assign
12181     __Pyx_ExceptionSave(&__pyx_t_2, &__pyx_t_3, &__pyx_t_4);
12182     __Pyx_XGOTREF(__pyx_t_2);
12183     __Pyx_XGOTREF(__pyx_t_3);
12184     __Pyx_XGOTREF(__pyx_t_4);
12185     /*try:*/ {
12186 
12187       /* "aiohttp/_http_parser.pyx":677
12188  *     cdef Py_ssize_t size
12189  *     try:
12190  *         size = len(pyparser._raw_value) + length             # <<<<<<<<<<<<<<
12191  *         if size > pyparser._max_field_size:
12192  *             raise LineTooLong(
12193  */
12194       __pyx_t_1 = __pyx_v_pyparser->_raw_value;
12195       __Pyx_INCREF(__pyx_t_1);
12196       if (unlikely(__pyx_t_1 == Py_None)) {
12197         PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
12198         __PYX_ERR(0, 677, __pyx_L3_error)
12199       }
12200       __pyx_t_5 = PyByteArray_GET_SIZE(__pyx_t_1); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 677, __pyx_L3_error)
12201       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
12202       __pyx_v_size = (__pyx_t_5 + __pyx_v_length);
12203 
12204       /* "aiohttp/_http_parser.pyx":678
12205  *     try:
12206  *         size = len(pyparser._raw_value) + length
12207  *         if size > pyparser._max_field_size:             # <<<<<<<<<<<<<<
12208  *             raise LineTooLong(
12209  *                 'Header value is too long', pyparser._max_field_size, size)
12210  */
12211       __pyx_t_6 = ((__pyx_v_size > __pyx_v_pyparser->_max_field_size) != 0);
12212       if (unlikely(__pyx_t_6)) {
12213 
12214         /* "aiohttp/_http_parser.pyx":679
12215  *         size = len(pyparser._raw_value) + length
12216  *         if size > pyparser._max_field_size:
12217  *             raise LineTooLong(             # <<<<<<<<<<<<<<
12218  *                 'Header value is too long', pyparser._max_field_size, size)
12219  *         pyparser._on_header_value(at, length)
12220  */
12221         __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_LineTooLong); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 679, __pyx_L3_error)
12222         __Pyx_GOTREF(__pyx_t_7);
12223 
12224         /* "aiohttp/_http_parser.pyx":680
12225  *         if size > pyparser._max_field_size:
12226  *             raise LineTooLong(
12227  *                 'Header value is too long', pyparser._max_field_size, size)             # <<<<<<<<<<<<<<
12228  *         pyparser._on_header_value(at, length)
12229  *     except BaseException as ex:
12230  */
12231         __pyx_t_8 = __Pyx_PyInt_FromSize_t(__pyx_v_pyparser->_max_field_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 680, __pyx_L3_error)
12232         __Pyx_GOTREF(__pyx_t_8);
12233         __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 680, __pyx_L3_error)
12234         __Pyx_GOTREF(__pyx_t_9);
12235         __pyx_t_10 = NULL;
12236         __pyx_t_11 = 0;
12237         if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) {
12238           __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_7);
12239           if (likely(__pyx_t_10)) {
12240             PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
12241             __Pyx_INCREF(__pyx_t_10);
12242             __Pyx_INCREF(function);
12243             __Pyx_DECREF_SET(__pyx_t_7, function);
12244             __pyx_t_11 = 1;
12245           }
12246         }
12247         #if CYTHON_FAST_PYCALL
12248         if (PyFunction_Check(__pyx_t_7)) {
12249           PyObject *__pyx_temp[4] = {__pyx_t_10, __pyx_kp_u_Header_value_is_too_long, __pyx_t_8, __pyx_t_9};
12250           __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_11, 3+__pyx_t_11); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 679, __pyx_L3_error)
12251           __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
12252           __Pyx_GOTREF(__pyx_t_1);
12253           __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
12254           __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
12255         } else
12256         #endif
12257         #if CYTHON_FAST_PYCCALL
12258         if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) {
12259           PyObject *__pyx_temp[4] = {__pyx_t_10, __pyx_kp_u_Header_value_is_too_long, __pyx_t_8, __pyx_t_9};
12260           __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_11, 3+__pyx_t_11); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 679, __pyx_L3_error)
12261           __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
12262           __Pyx_GOTREF(__pyx_t_1);
12263           __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
12264           __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
12265         } else
12266         #endif
12267         {
12268           __pyx_t_12 = PyTuple_New(3+__pyx_t_11); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 679, __pyx_L3_error)
12269           __Pyx_GOTREF(__pyx_t_12);
12270           if (__pyx_t_10) {
12271             __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_10); __pyx_t_10 = NULL;
12272           }
12273           __Pyx_INCREF(__pyx_kp_u_Header_value_is_too_long);
12274           __Pyx_GIVEREF(__pyx_kp_u_Header_value_is_too_long);
12275           PyTuple_SET_ITEM(__pyx_t_12, 0+__pyx_t_11, __pyx_kp_u_Header_value_is_too_long);
12276           __Pyx_GIVEREF(__pyx_t_8);
12277           PyTuple_SET_ITEM(__pyx_t_12, 1+__pyx_t_11, __pyx_t_8);
12278           __Pyx_GIVEREF(__pyx_t_9);
12279           PyTuple_SET_ITEM(__pyx_t_12, 2+__pyx_t_11, __pyx_t_9);
12280           __pyx_t_8 = 0;
12281           __pyx_t_9 = 0;
12282           __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_12, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 679, __pyx_L3_error)
12283           __Pyx_GOTREF(__pyx_t_1);
12284           __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
12285         }
12286         __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
12287         __Pyx_Raise(__pyx_t_1, 0, 0, 0);
12288         __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
12289         __PYX_ERR(0, 679, __pyx_L3_error)
12290 
12291         /* "aiohttp/_http_parser.pyx":678
12292  *     try:
12293  *         size = len(pyparser._raw_value) + length
12294  *         if size > pyparser._max_field_size:             # <<<<<<<<<<<<<<
12295  *             raise LineTooLong(
12296  *                 'Header value is too long', pyparser._max_field_size, size)
12297  */
12298       }
12299 
12300       /* "aiohttp/_http_parser.pyx":681
12301  *             raise LineTooLong(
12302  *                 'Header value is too long', pyparser._max_field_size, size)
12303  *         pyparser._on_header_value(at, length)             # <<<<<<<<<<<<<<
12304  *     except BaseException as ex:
12305  *         pyparser._last_error = ex
12306  */
12307       __pyx_t_1 = ((struct __pyx_vtabstruct_7aiohttp_12_http_parser_HttpParser *)__pyx_v_pyparser->__pyx_vtab)->_on_header_value(__pyx_v_pyparser, __pyx_v_at, __pyx_v_length); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 681, __pyx_L3_error)
12308       __Pyx_GOTREF(__pyx_t_1);
12309       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
12310 
12311       /* "aiohttp/_http_parser.pyx":676
12312  *     cdef HttpParser pyparser = <HttpParser>parser.data
12313  *     cdef Py_ssize_t size
12314  *     try:             # <<<<<<<<<<<<<<
12315  *         size = len(pyparser._raw_value) + length
12316  *         if size > pyparser._max_field_size:
12317  */
12318     }
12319 
12320     /* "aiohttp/_http_parser.pyx":686
12321  *         return -1
12322  *     else:
12323  *         return 0             # <<<<<<<<<<<<<<
12324  *
12325  *
12326  */
12327     /*else:*/ {
12328       __pyx_r = 0;
12329       goto __pyx_L6_except_return;
12330     }
12331     __pyx_L3_error:;
12332     __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
12333     __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
12334     __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
12335     __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
12336     __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
12337     __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
12338 
12339     /* "aiohttp/_http_parser.pyx":682
12340  *                 'Header value is too long', pyparser._max_field_size, size)
12341  *         pyparser._on_header_value(at, length)
12342  *     except BaseException as ex:             # <<<<<<<<<<<<<<
12343  *         pyparser._last_error = ex
12344  *         return -1
12345  */
12346     __pyx_t_11 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_BaseException);
12347     if (__pyx_t_11) {
12348       __Pyx_AddTraceback("aiohttp._http_parser.cb_on_header_value", __pyx_clineno, __pyx_lineno, __pyx_filename);
12349       if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_7, &__pyx_t_12) < 0) __PYX_ERR(0, 682, __pyx_L5_except_error)
12350       __Pyx_GOTREF(__pyx_t_1);
12351       __Pyx_GOTREF(__pyx_t_7);
12352       __Pyx_GOTREF(__pyx_t_12);
12353       __Pyx_INCREF(__pyx_t_7);
12354       __pyx_v_ex = __pyx_t_7;
12355       /*try:*/ {
12356 
12357         /* "aiohttp/_http_parser.pyx":683
12358  *         pyparser._on_header_value(at, length)
12359  *     except BaseException as ex:
12360  *         pyparser._last_error = ex             # <<<<<<<<<<<<<<
12361  *         return -1
12362  *     else:
12363  */
12364         __Pyx_INCREF(__pyx_v_ex);
12365         __Pyx_GIVEREF(__pyx_v_ex);
12366         __Pyx_GOTREF(__pyx_v_pyparser->_last_error);
12367         __Pyx_DECREF(__pyx_v_pyparser->_last_error);
12368         __pyx_v_pyparser->_last_error = __pyx_v_ex;
12369 
12370         /* "aiohttp/_http_parser.pyx":684
12371  *     except BaseException as ex:
12372  *         pyparser._last_error = ex
12373  *         return -1             # <<<<<<<<<<<<<<
12374  *     else:
12375  *         return 0
12376  */
12377         __pyx_r = -1;
12378         __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
12379         __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
12380         __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
12381         goto __pyx_L14_return;
12382       }
12383 
12384       /* "aiohttp/_http_parser.pyx":682
12385  *                 'Header value is too long', pyparser._max_field_size, size)
12386  *         pyparser._on_header_value(at, length)
12387  *     except BaseException as ex:             # <<<<<<<<<<<<<<
12388  *         pyparser._last_error = ex
12389  *         return -1
12390  */
12391       /*finally:*/ {
12392         __pyx_L14_return: {
12393           __pyx_t_11 = __pyx_r;
12394           __Pyx_DECREF(__pyx_v_ex);
12395           __pyx_v_ex = NULL;
12396           __pyx_r = __pyx_t_11;
12397           goto __pyx_L6_except_return;
12398         }
12399       }
12400     }
12401     goto __pyx_L5_except_error;
12402     __pyx_L5_except_error:;
12403 
12404     /* "aiohttp/_http_parser.pyx":676
12405  *     cdef HttpParser pyparser = <HttpParser>parser.data
12406  *     cdef Py_ssize_t size
12407  *     try:             # <<<<<<<<<<<<<<
12408  *         size = len(pyparser._raw_value) + length
12409  *         if size > pyparser._max_field_size:
12410  */
12411     __Pyx_XGIVEREF(__pyx_t_2);
12412     __Pyx_XGIVEREF(__pyx_t_3);
12413     __Pyx_XGIVEREF(__pyx_t_4);
12414     __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4);
12415     goto __pyx_L1_error;
12416     __pyx_L6_except_return:;
12417     __Pyx_XGIVEREF(__pyx_t_2);
12418     __Pyx_XGIVEREF(__pyx_t_3);
12419     __Pyx_XGIVEREF(__pyx_t_4);
12420     __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4);
12421     goto __pyx_L0;
12422   }
12423 
12424   /* "aiohttp/_http_parser.pyx":672
12425  *
12426  *
12427  * cdef int cb_on_header_value(cparser.http_parser* parser,             # <<<<<<<<<<<<<<
12428  *                             const char *at, size_t length) except -1:
12429  *     cdef HttpParser pyparser = <HttpParser>parser.data
12430  */
12431 
12432   /* function exit code */
12433   __pyx_L1_error:;
12434   __Pyx_XDECREF(__pyx_t_1);
12435   __Pyx_XDECREF(__pyx_t_7);
12436   __Pyx_XDECREF(__pyx_t_8);
12437   __Pyx_XDECREF(__pyx_t_9);
12438   __Pyx_XDECREF(__pyx_t_10);
12439   __Pyx_XDECREF(__pyx_t_12);
12440   __Pyx_AddTraceback("aiohttp._http_parser.cb_on_header_value", __pyx_clineno, __pyx_lineno, __pyx_filename);
12441   __pyx_r = -1;
12442   __pyx_L0:;
12443   __Pyx_XDECREF((PyObject *)__pyx_v_pyparser);
12444   __Pyx_XDECREF(__pyx_v_ex);
12445   __Pyx_RefNannyFinishContext();
12446   return __pyx_r;
12447 }
12448 
12449 /* "aiohttp/_http_parser.pyx":689
12450  *
12451  *
12452  * cdef int cb_on_headers_complete(cparser.http_parser* parser) except -1:             # <<<<<<<<<<<<<<
12453  *     cdef HttpParser pyparser = <HttpParser>parser.data
12454  *     try:
12455  */
12456 
__pyx_f_7aiohttp_12_http_parser_cb_on_headers_complete(struct http_parser * __pyx_v_parser)12457 static int __pyx_f_7aiohttp_12_http_parser_cb_on_headers_complete(struct http_parser *__pyx_v_parser) {
12458   struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *__pyx_v_pyparser = 0;
12459   PyObject *__pyx_v_exc = NULL;
12460   int __pyx_r;
12461   __Pyx_RefNannyDeclarations
12462   PyObject *__pyx_t_1 = NULL;
12463   PyObject *__pyx_t_2 = NULL;
12464   PyObject *__pyx_t_3 = NULL;
12465   PyObject *__pyx_t_4 = NULL;
12466   int __pyx_t_5;
12467   int __pyx_t_6;
12468   int __pyx_t_7;
12469   PyObject *__pyx_t_8 = NULL;
12470   PyObject *__pyx_t_9 = NULL;
12471   int __pyx_lineno = 0;
12472   const char *__pyx_filename = NULL;
12473   int __pyx_clineno = 0;
12474   __Pyx_RefNannySetupContext("cb_on_headers_complete", 0);
12475 
12476   /* "aiohttp/_http_parser.pyx":690
12477  *
12478  * cdef int cb_on_headers_complete(cparser.http_parser* parser) except -1:
12479  *     cdef HttpParser pyparser = <HttpParser>parser.data             # <<<<<<<<<<<<<<
12480  *     try:
12481  *         pyparser._on_status_complete()
12482  */
12483   __pyx_t_1 = ((PyObject *)__pyx_v_parser->data);
12484   __Pyx_INCREF(__pyx_t_1);
12485   __pyx_v_pyparser = ((struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *)__pyx_t_1);
12486   __pyx_t_1 = 0;
12487 
12488   /* "aiohttp/_http_parser.pyx":691
12489  * cdef int cb_on_headers_complete(cparser.http_parser* parser) except -1:
12490  *     cdef HttpParser pyparser = <HttpParser>parser.data
12491  *     try:             # <<<<<<<<<<<<<<
12492  *         pyparser._on_status_complete()
12493  *         pyparser._on_headers_complete()
12494  */
12495   {
12496     __Pyx_PyThreadState_declare
12497     __Pyx_PyThreadState_assign
12498     __Pyx_ExceptionSave(&__pyx_t_2, &__pyx_t_3, &__pyx_t_4);
12499     __Pyx_XGOTREF(__pyx_t_2);
12500     __Pyx_XGOTREF(__pyx_t_3);
12501     __Pyx_XGOTREF(__pyx_t_4);
12502     /*try:*/ {
12503 
12504       /* "aiohttp/_http_parser.pyx":692
12505  *     cdef HttpParser pyparser = <HttpParser>parser.data
12506  *     try:
12507  *         pyparser._on_status_complete()             # <<<<<<<<<<<<<<
12508  *         pyparser._on_headers_complete()
12509  *     except BaseException as exc:
12510  */
12511       __pyx_t_1 = ((struct __pyx_vtabstruct_7aiohttp_12_http_parser_HttpParser *)__pyx_v_pyparser->__pyx_vtab)->_on_status_complete(__pyx_v_pyparser); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 692, __pyx_L3_error)
12512       __Pyx_GOTREF(__pyx_t_1);
12513       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
12514 
12515       /* "aiohttp/_http_parser.pyx":693
12516  *     try:
12517  *         pyparser._on_status_complete()
12518  *         pyparser._on_headers_complete()             # <<<<<<<<<<<<<<
12519  *     except BaseException as exc:
12520  *         pyparser._last_error = exc
12521  */
12522       __pyx_t_1 = ((struct __pyx_vtabstruct_7aiohttp_12_http_parser_HttpParser *)__pyx_v_pyparser->__pyx_vtab)->_on_headers_complete(__pyx_v_pyparser); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 693, __pyx_L3_error)
12523       __Pyx_GOTREF(__pyx_t_1);
12524       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
12525 
12526       /* "aiohttp/_http_parser.pyx":691
12527  * cdef int cb_on_headers_complete(cparser.http_parser* parser) except -1:
12528  *     cdef HttpParser pyparser = <HttpParser>parser.data
12529  *     try:             # <<<<<<<<<<<<<<
12530  *         pyparser._on_status_complete()
12531  *         pyparser._on_headers_complete()
12532  */
12533     }
12534 
12535     /* "aiohttp/_http_parser.pyx":698
12536  *         return -1
12537  *     else:
12538  *         if pyparser._cparser.upgrade or pyparser._cparser.method == 5: # CONNECT             # <<<<<<<<<<<<<<
12539  *             return 2
12540  *         else:
12541  */
12542     /*else:*/ {
12543       __pyx_t_6 = (__pyx_v_pyparser->_cparser->upgrade != 0);
12544       if (!__pyx_t_6) {
12545       } else {
12546         __pyx_t_5 = __pyx_t_6;
12547         goto __pyx_L10_bool_binop_done;
12548       }
12549       __pyx_t_6 = ((__pyx_v_pyparser->_cparser->method == 5) != 0);
12550       __pyx_t_5 = __pyx_t_6;
12551       __pyx_L10_bool_binop_done:;
12552       if (__pyx_t_5) {
12553 
12554         /* "aiohttp/_http_parser.pyx":699
12555  *     else:
12556  *         if pyparser._cparser.upgrade or pyparser._cparser.method == 5: # CONNECT
12557  *             return 2             # <<<<<<<<<<<<<<
12558  *         else:
12559  *             return 0
12560  */
12561         __pyx_r = 2;
12562         goto __pyx_L6_except_return;
12563 
12564         /* "aiohttp/_http_parser.pyx":698
12565  *         return -1
12566  *     else:
12567  *         if pyparser._cparser.upgrade or pyparser._cparser.method == 5: # CONNECT             # <<<<<<<<<<<<<<
12568  *             return 2
12569  *         else:
12570  */
12571       }
12572 
12573       /* "aiohttp/_http_parser.pyx":701
12574  *             return 2
12575  *         else:
12576  *             return 0             # <<<<<<<<<<<<<<
12577  *
12578  *
12579  */
12580       /*else*/ {
12581         __pyx_r = 0;
12582         goto __pyx_L6_except_return;
12583       }
12584     }
12585     __pyx_L3_error:;
12586     __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
12587 
12588     /* "aiohttp/_http_parser.pyx":694
12589  *         pyparser._on_status_complete()
12590  *         pyparser._on_headers_complete()
12591  *     except BaseException as exc:             # <<<<<<<<<<<<<<
12592  *         pyparser._last_error = exc
12593  *         return -1
12594  */
12595     __pyx_t_7 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_BaseException);
12596     if (__pyx_t_7) {
12597       __Pyx_AddTraceback("aiohttp._http_parser.cb_on_headers_complete", __pyx_clineno, __pyx_lineno, __pyx_filename);
12598       if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_8, &__pyx_t_9) < 0) __PYX_ERR(0, 694, __pyx_L5_except_error)
12599       __Pyx_GOTREF(__pyx_t_1);
12600       __Pyx_GOTREF(__pyx_t_8);
12601       __Pyx_GOTREF(__pyx_t_9);
12602       __Pyx_INCREF(__pyx_t_8);
12603       __pyx_v_exc = __pyx_t_8;
12604       /*try:*/ {
12605 
12606         /* "aiohttp/_http_parser.pyx":695
12607  *         pyparser._on_headers_complete()
12608  *     except BaseException as exc:
12609  *         pyparser._last_error = exc             # <<<<<<<<<<<<<<
12610  *         return -1
12611  *     else:
12612  */
12613         __Pyx_INCREF(__pyx_v_exc);
12614         __Pyx_GIVEREF(__pyx_v_exc);
12615         __Pyx_GOTREF(__pyx_v_pyparser->_last_error);
12616         __Pyx_DECREF(__pyx_v_pyparser->_last_error);
12617         __pyx_v_pyparser->_last_error = __pyx_v_exc;
12618 
12619         /* "aiohttp/_http_parser.pyx":696
12620  *     except BaseException as exc:
12621  *         pyparser._last_error = exc
12622  *         return -1             # <<<<<<<<<<<<<<
12623  *     else:
12624  *         if pyparser._cparser.upgrade or pyparser._cparser.method == 5: # CONNECT
12625  */
12626         __pyx_r = -1;
12627         __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
12628         __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
12629         __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
12630         goto __pyx_L16_return;
12631       }
12632 
12633       /* "aiohttp/_http_parser.pyx":694
12634  *         pyparser._on_status_complete()
12635  *         pyparser._on_headers_complete()
12636  *     except BaseException as exc:             # <<<<<<<<<<<<<<
12637  *         pyparser._last_error = exc
12638  *         return -1
12639  */
12640       /*finally:*/ {
12641         __pyx_L16_return: {
12642           __pyx_t_7 = __pyx_r;
12643           __Pyx_DECREF(__pyx_v_exc);
12644           __pyx_v_exc = NULL;
12645           __pyx_r = __pyx_t_7;
12646           goto __pyx_L6_except_return;
12647         }
12648       }
12649     }
12650     goto __pyx_L5_except_error;
12651     __pyx_L5_except_error:;
12652 
12653     /* "aiohttp/_http_parser.pyx":691
12654  * cdef int cb_on_headers_complete(cparser.http_parser* parser) except -1:
12655  *     cdef HttpParser pyparser = <HttpParser>parser.data
12656  *     try:             # <<<<<<<<<<<<<<
12657  *         pyparser._on_status_complete()
12658  *         pyparser._on_headers_complete()
12659  */
12660     __Pyx_XGIVEREF(__pyx_t_2);
12661     __Pyx_XGIVEREF(__pyx_t_3);
12662     __Pyx_XGIVEREF(__pyx_t_4);
12663     __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4);
12664     goto __pyx_L1_error;
12665     __pyx_L6_except_return:;
12666     __Pyx_XGIVEREF(__pyx_t_2);
12667     __Pyx_XGIVEREF(__pyx_t_3);
12668     __Pyx_XGIVEREF(__pyx_t_4);
12669     __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4);
12670     goto __pyx_L0;
12671   }
12672 
12673   /* "aiohttp/_http_parser.pyx":689
12674  *
12675  *
12676  * cdef int cb_on_headers_complete(cparser.http_parser* parser) except -1:             # <<<<<<<<<<<<<<
12677  *     cdef HttpParser pyparser = <HttpParser>parser.data
12678  *     try:
12679  */
12680 
12681   /* function exit code */
12682   __pyx_L1_error:;
12683   __Pyx_XDECREF(__pyx_t_1);
12684   __Pyx_XDECREF(__pyx_t_8);
12685   __Pyx_XDECREF(__pyx_t_9);
12686   __Pyx_AddTraceback("aiohttp._http_parser.cb_on_headers_complete", __pyx_clineno, __pyx_lineno, __pyx_filename);
12687   __pyx_r = -1;
12688   __pyx_L0:;
12689   __Pyx_XDECREF((PyObject *)__pyx_v_pyparser);
12690   __Pyx_XDECREF(__pyx_v_exc);
12691   __Pyx_RefNannyFinishContext();
12692   return __pyx_r;
12693 }
12694 
12695 /* "aiohttp/_http_parser.pyx":704
12696  *
12697  *
12698  * cdef int cb_on_body(cparser.http_parser* parser,             # <<<<<<<<<<<<<<
12699  *                     const char *at, size_t length) except -1:
12700  *     cdef HttpParser pyparser = <HttpParser>parser.data
12701  */
12702 
__pyx_f_7aiohttp_12_http_parser_cb_on_body(struct http_parser * __pyx_v_parser,char const * __pyx_v_at,size_t __pyx_v_length)12703 static int __pyx_f_7aiohttp_12_http_parser_cb_on_body(struct http_parser *__pyx_v_parser, char const *__pyx_v_at, size_t __pyx_v_length) {
12704   struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *__pyx_v_pyparser = 0;
12705   PyObject *__pyx_v_body = 0;
12706   PyObject *__pyx_v_exc = NULL;
12707   int __pyx_r;
12708   __Pyx_RefNannyDeclarations
12709   PyObject *__pyx_t_1 = NULL;
12710   PyObject *__pyx_t_2 = NULL;
12711   PyObject *__pyx_t_3 = NULL;
12712   PyObject *__pyx_t_4 = NULL;
12713   PyObject *__pyx_t_5 = NULL;
12714   PyObject *__pyx_t_6 = NULL;
12715   PyObject *__pyx_t_7 = NULL;
12716   int __pyx_t_8;
12717   PyObject *__pyx_t_9 = NULL;
12718   int __pyx_t_10;
12719   int __pyx_t_11;
12720   PyObject *__pyx_t_12 = NULL;
12721   PyObject *__pyx_t_13 = NULL;
12722   PyObject *__pyx_t_14 = NULL;
12723   PyObject *__pyx_t_15 = NULL;
12724   int __pyx_t_16;
12725   char const *__pyx_t_17;
12726   PyObject *__pyx_t_18 = NULL;
12727   PyObject *__pyx_t_19 = NULL;
12728   PyObject *__pyx_t_20 = NULL;
12729   PyObject *__pyx_t_21 = NULL;
12730   PyObject *__pyx_t_22 = NULL;
12731   PyObject *__pyx_t_23 = NULL;
12732   int __pyx_lineno = 0;
12733   const char *__pyx_filename = NULL;
12734   int __pyx_clineno = 0;
12735   __Pyx_RefNannySetupContext("cb_on_body", 0);
12736 
12737   /* "aiohttp/_http_parser.pyx":706
12738  * cdef int cb_on_body(cparser.http_parser* parser,
12739  *                     const char *at, size_t length) except -1:
12740  *     cdef HttpParser pyparser = <HttpParser>parser.data             # <<<<<<<<<<<<<<
12741  *     cdef bytes body = at[:length]
12742  *     try:
12743  */
12744   __pyx_t_1 = ((PyObject *)__pyx_v_parser->data);
12745   __Pyx_INCREF(__pyx_t_1);
12746   __pyx_v_pyparser = ((struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *)__pyx_t_1);
12747   __pyx_t_1 = 0;
12748 
12749   /* "aiohttp/_http_parser.pyx":707
12750  *                     const char *at, size_t length) except -1:
12751  *     cdef HttpParser pyparser = <HttpParser>parser.data
12752  *     cdef bytes body = at[:length]             # <<<<<<<<<<<<<<
12753  *     try:
12754  *         pyparser._payload.feed_data(body, length)
12755  */
12756   __pyx_t_1 = __Pyx_PyBytes_FromStringAndSize(__pyx_v_at + 0, __pyx_v_length - 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 707, __pyx_L1_error)
12757   __Pyx_GOTREF(__pyx_t_1);
12758   __pyx_v_body = ((PyObject*)__pyx_t_1);
12759   __pyx_t_1 = 0;
12760 
12761   /* "aiohttp/_http_parser.pyx":708
12762  *     cdef HttpParser pyparser = <HttpParser>parser.data
12763  *     cdef bytes body = at[:length]
12764  *     try:             # <<<<<<<<<<<<<<
12765  *         pyparser._payload.feed_data(body, length)
12766  *     except BaseException as exc:
12767  */
12768   {
12769     __Pyx_PyThreadState_declare
12770     __Pyx_PyThreadState_assign
12771     __Pyx_ExceptionSave(&__pyx_t_2, &__pyx_t_3, &__pyx_t_4);
12772     __Pyx_XGOTREF(__pyx_t_2);
12773     __Pyx_XGOTREF(__pyx_t_3);
12774     __Pyx_XGOTREF(__pyx_t_4);
12775     /*try:*/ {
12776 
12777       /* "aiohttp/_http_parser.pyx":709
12778  *     cdef bytes body = at[:length]
12779  *     try:
12780  *         pyparser._payload.feed_data(body, length)             # <<<<<<<<<<<<<<
12781  *     except BaseException as exc:
12782  *         if pyparser._payload_exception is not None:
12783  */
12784       __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_pyparser->_payload, __pyx_n_s_feed_data); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 709, __pyx_L3_error)
12785       __Pyx_GOTREF(__pyx_t_5);
12786       __pyx_t_6 = __Pyx_PyInt_FromSize_t(__pyx_v_length); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 709, __pyx_L3_error)
12787       __Pyx_GOTREF(__pyx_t_6);
12788       __pyx_t_7 = NULL;
12789       __pyx_t_8 = 0;
12790       if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
12791         __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5);
12792         if (likely(__pyx_t_7)) {
12793           PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
12794           __Pyx_INCREF(__pyx_t_7);
12795           __Pyx_INCREF(function);
12796           __Pyx_DECREF_SET(__pyx_t_5, function);
12797           __pyx_t_8 = 1;
12798         }
12799       }
12800       #if CYTHON_FAST_PYCALL
12801       if (PyFunction_Check(__pyx_t_5)) {
12802         PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_v_body, __pyx_t_6};
12803         __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 709, __pyx_L3_error)
12804         __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
12805         __Pyx_GOTREF(__pyx_t_1);
12806         __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
12807       } else
12808       #endif
12809       #if CYTHON_FAST_PYCCALL
12810       if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
12811         PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_v_body, __pyx_t_6};
12812         __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 709, __pyx_L3_error)
12813         __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
12814         __Pyx_GOTREF(__pyx_t_1);
12815         __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
12816       } else
12817       #endif
12818       {
12819         __pyx_t_9 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 709, __pyx_L3_error)
12820         __Pyx_GOTREF(__pyx_t_9);
12821         if (__pyx_t_7) {
12822           __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_7); __pyx_t_7 = NULL;
12823         }
12824         __Pyx_INCREF(__pyx_v_body);
12825         __Pyx_GIVEREF(__pyx_v_body);
12826         PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_8, __pyx_v_body);
12827         __Pyx_GIVEREF(__pyx_t_6);
12828         PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, __pyx_t_6);
12829         __pyx_t_6 = 0;
12830         __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_9, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 709, __pyx_L3_error)
12831         __Pyx_GOTREF(__pyx_t_1);
12832         __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
12833       }
12834       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
12835       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
12836 
12837       /* "aiohttp/_http_parser.pyx":708
12838  *     cdef HttpParser pyparser = <HttpParser>parser.data
12839  *     cdef bytes body = at[:length]
12840  *     try:             # <<<<<<<<<<<<<<
12841  *         pyparser._payload.feed_data(body, length)
12842  *     except BaseException as exc:
12843  */
12844     }
12845 
12846     /* "aiohttp/_http_parser.pyx":718
12847  *         return -1
12848  *     else:
12849  *         return 0             # <<<<<<<<<<<<<<
12850  *
12851  *
12852  */
12853     /*else:*/ {
12854       __pyx_r = 0;
12855       goto __pyx_L6_except_return;
12856     }
12857     __pyx_L3_error:;
12858     __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
12859     __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
12860     __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
12861     __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
12862     __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
12863 
12864     /* "aiohttp/_http_parser.pyx":710
12865  *     try:
12866  *         pyparser._payload.feed_data(body, length)
12867  *     except BaseException as exc:             # <<<<<<<<<<<<<<
12868  *         if pyparser._payload_exception is not None:
12869  *             pyparser._payload.set_exception(pyparser._payload_exception(str(exc)))
12870  */
12871     __pyx_t_8 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_BaseException);
12872     if (__pyx_t_8) {
12873       __Pyx_AddTraceback("aiohttp._http_parser.cb_on_body", __pyx_clineno, __pyx_lineno, __pyx_filename);
12874       if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_5, &__pyx_t_9) < 0) __PYX_ERR(0, 710, __pyx_L5_except_error)
12875       __Pyx_GOTREF(__pyx_t_1);
12876       __Pyx_GOTREF(__pyx_t_5);
12877       __Pyx_GOTREF(__pyx_t_9);
12878       __Pyx_INCREF(__pyx_t_5);
12879       __pyx_v_exc = __pyx_t_5;
12880       /*try:*/ {
12881 
12882         /* "aiohttp/_http_parser.pyx":711
12883  *         pyparser._payload.feed_data(body, length)
12884  *     except BaseException as exc:
12885  *         if pyparser._payload_exception is not None:             # <<<<<<<<<<<<<<
12886  *             pyparser._payload.set_exception(pyparser._payload_exception(str(exc)))
12887  *         else:
12888  */
12889         __pyx_t_10 = (__pyx_v_pyparser->_payload_exception != Py_None);
12890         __pyx_t_11 = (__pyx_t_10 != 0);
12891         if (__pyx_t_11) {
12892 
12893           /* "aiohttp/_http_parser.pyx":712
12894  *     except BaseException as exc:
12895  *         if pyparser._payload_exception is not None:
12896  *             pyparser._payload.set_exception(pyparser._payload_exception(str(exc)))             # <<<<<<<<<<<<<<
12897  *         else:
12898  *             pyparser._payload.set_exception(exc)
12899  */
12900           __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_pyparser->_payload, __pyx_n_s_set_exception); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 712, __pyx_L14_error)
12901           __Pyx_GOTREF(__pyx_t_7);
12902           __pyx_t_13 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_v_exc); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 712, __pyx_L14_error)
12903           __Pyx_GOTREF(__pyx_t_13);
12904           __Pyx_INCREF(__pyx_v_pyparser->_payload_exception);
12905           __pyx_t_14 = __pyx_v_pyparser->_payload_exception; __pyx_t_15 = NULL;
12906           if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_14))) {
12907             __pyx_t_15 = PyMethod_GET_SELF(__pyx_t_14);
12908             if (likely(__pyx_t_15)) {
12909               PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14);
12910               __Pyx_INCREF(__pyx_t_15);
12911               __Pyx_INCREF(function);
12912               __Pyx_DECREF_SET(__pyx_t_14, function);
12913             }
12914           }
12915           __pyx_t_12 = (__pyx_t_15) ? __Pyx_PyObject_Call2Args(__pyx_t_14, __pyx_t_15, __pyx_t_13) : __Pyx_PyObject_CallOneArg(__pyx_t_14, __pyx_t_13);
12916           __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
12917           __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
12918           if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 712, __pyx_L14_error)
12919           __Pyx_GOTREF(__pyx_t_12);
12920           __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
12921           __pyx_t_14 = NULL;
12922           if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) {
12923             __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_7);
12924             if (likely(__pyx_t_14)) {
12925               PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
12926               __Pyx_INCREF(__pyx_t_14);
12927               __Pyx_INCREF(function);
12928               __Pyx_DECREF_SET(__pyx_t_7, function);
12929             }
12930           }
12931           __pyx_t_6 = (__pyx_t_14) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_14, __pyx_t_12) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_12);
12932           __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
12933           __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
12934           if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 712, __pyx_L14_error)
12935           __Pyx_GOTREF(__pyx_t_6);
12936           __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
12937           __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
12938 
12939           /* "aiohttp/_http_parser.pyx":711
12940  *         pyparser._payload.feed_data(body, length)
12941  *     except BaseException as exc:
12942  *         if pyparser._payload_exception is not None:             # <<<<<<<<<<<<<<
12943  *             pyparser._payload.set_exception(pyparser._payload_exception(str(exc)))
12944  *         else:
12945  */
12946           goto __pyx_L16;
12947         }
12948 
12949         /* "aiohttp/_http_parser.pyx":714
12950  *             pyparser._payload.set_exception(pyparser._payload_exception(str(exc)))
12951  *         else:
12952  *             pyparser._payload.set_exception(exc)             # <<<<<<<<<<<<<<
12953  *         pyparser._payload_error = 1
12954  *         return -1
12955  */
12956         /*else*/ {
12957           __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_pyparser->_payload, __pyx_n_s_set_exception); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 714, __pyx_L14_error)
12958           __Pyx_GOTREF(__pyx_t_7);
12959           __pyx_t_12 = NULL;
12960           if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) {
12961             __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_7);
12962             if (likely(__pyx_t_12)) {
12963               PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
12964               __Pyx_INCREF(__pyx_t_12);
12965               __Pyx_INCREF(function);
12966               __Pyx_DECREF_SET(__pyx_t_7, function);
12967             }
12968           }
12969           __pyx_t_6 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_12, __pyx_v_exc) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_v_exc);
12970           __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
12971           if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 714, __pyx_L14_error)
12972           __Pyx_GOTREF(__pyx_t_6);
12973           __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
12974           __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
12975         }
12976         __pyx_L16:;
12977 
12978         /* "aiohttp/_http_parser.pyx":715
12979  *         else:
12980  *             pyparser._payload.set_exception(exc)
12981  *         pyparser._payload_error = 1             # <<<<<<<<<<<<<<
12982  *         return -1
12983  *     else:
12984  */
12985         __pyx_v_pyparser->_payload_error = 1;
12986 
12987         /* "aiohttp/_http_parser.pyx":716
12988  *             pyparser._payload.set_exception(exc)
12989  *         pyparser._payload_error = 1
12990  *         return -1             # <<<<<<<<<<<<<<
12991  *     else:
12992  *         return 0
12993  */
12994         __pyx_r = -1;
12995         __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
12996         __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
12997         __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
12998         goto __pyx_L13_return;
12999       }
13000 
13001       /* "aiohttp/_http_parser.pyx":710
13002  *     try:
13003  *         pyparser._payload.feed_data(body, length)
13004  *     except BaseException as exc:             # <<<<<<<<<<<<<<
13005  *         if pyparser._payload_exception is not None:
13006  *             pyparser._payload.set_exception(pyparser._payload_exception(str(exc)))
13007  */
13008       /*finally:*/ {
13009         __pyx_L14_error:;
13010         /*exception exit:*/{
13011           __Pyx_PyThreadState_declare
13012           __Pyx_PyThreadState_assign
13013           __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_21 = 0; __pyx_t_22 = 0; __pyx_t_23 = 0;
13014           __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
13015           __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
13016           __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
13017           __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
13018           __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
13019           __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
13020           if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_21, &__pyx_t_22, &__pyx_t_23);
13021           if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_18, &__pyx_t_19, &__pyx_t_20) < 0)) __Pyx_ErrFetch(&__pyx_t_18, &__pyx_t_19, &__pyx_t_20);
13022           __Pyx_XGOTREF(__pyx_t_18);
13023           __Pyx_XGOTREF(__pyx_t_19);
13024           __Pyx_XGOTREF(__pyx_t_20);
13025           __Pyx_XGOTREF(__pyx_t_21);
13026           __Pyx_XGOTREF(__pyx_t_22);
13027           __Pyx_XGOTREF(__pyx_t_23);
13028           __pyx_t_8 = __pyx_lineno; __pyx_t_16 = __pyx_clineno; __pyx_t_17 = __pyx_filename;
13029           {
13030             __Pyx_DECREF(__pyx_v_exc);
13031             __pyx_v_exc = NULL;
13032           }
13033           if (PY_MAJOR_VERSION >= 3) {
13034             __Pyx_XGIVEREF(__pyx_t_21);
13035             __Pyx_XGIVEREF(__pyx_t_22);
13036             __Pyx_XGIVEREF(__pyx_t_23);
13037             __Pyx_ExceptionReset(__pyx_t_21, __pyx_t_22, __pyx_t_23);
13038           }
13039           __Pyx_XGIVEREF(__pyx_t_18);
13040           __Pyx_XGIVEREF(__pyx_t_19);
13041           __Pyx_XGIVEREF(__pyx_t_20);
13042           __Pyx_ErrRestore(__pyx_t_18, __pyx_t_19, __pyx_t_20);
13043           __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_21 = 0; __pyx_t_22 = 0; __pyx_t_23 = 0;
13044           __pyx_lineno = __pyx_t_8; __pyx_clineno = __pyx_t_16; __pyx_filename = __pyx_t_17;
13045           goto __pyx_L5_except_error;
13046         }
13047         __pyx_L13_return: {
13048           __pyx_t_16 = __pyx_r;
13049           __Pyx_DECREF(__pyx_v_exc);
13050           __pyx_v_exc = NULL;
13051           __pyx_r = __pyx_t_16;
13052           goto __pyx_L6_except_return;
13053         }
13054       }
13055     }
13056     goto __pyx_L5_except_error;
13057     __pyx_L5_except_error:;
13058 
13059     /* "aiohttp/_http_parser.pyx":708
13060  *     cdef HttpParser pyparser = <HttpParser>parser.data
13061  *     cdef bytes body = at[:length]
13062  *     try:             # <<<<<<<<<<<<<<
13063  *         pyparser._payload.feed_data(body, length)
13064  *     except BaseException as exc:
13065  */
13066     __Pyx_XGIVEREF(__pyx_t_2);
13067     __Pyx_XGIVEREF(__pyx_t_3);
13068     __Pyx_XGIVEREF(__pyx_t_4);
13069     __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4);
13070     goto __pyx_L1_error;
13071     __pyx_L6_except_return:;
13072     __Pyx_XGIVEREF(__pyx_t_2);
13073     __Pyx_XGIVEREF(__pyx_t_3);
13074     __Pyx_XGIVEREF(__pyx_t_4);
13075     __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4);
13076     goto __pyx_L0;
13077   }
13078 
13079   /* "aiohttp/_http_parser.pyx":704
13080  *
13081  *
13082  * cdef int cb_on_body(cparser.http_parser* parser,             # <<<<<<<<<<<<<<
13083  *                     const char *at, size_t length) except -1:
13084  *     cdef HttpParser pyparser = <HttpParser>parser.data
13085  */
13086 
13087   /* function exit code */
13088   __pyx_L1_error:;
13089   __Pyx_XDECREF(__pyx_t_1);
13090   __Pyx_XDECREF(__pyx_t_5);
13091   __Pyx_XDECREF(__pyx_t_6);
13092   __Pyx_XDECREF(__pyx_t_7);
13093   __Pyx_XDECREF(__pyx_t_9);
13094   __Pyx_XDECREF(__pyx_t_12);
13095   __Pyx_XDECREF(__pyx_t_13);
13096   __Pyx_XDECREF(__pyx_t_14);
13097   __Pyx_XDECREF(__pyx_t_15);
13098   __Pyx_AddTraceback("aiohttp._http_parser.cb_on_body", __pyx_clineno, __pyx_lineno, __pyx_filename);
13099   __pyx_r = -1;
13100   __pyx_L0:;
13101   __Pyx_XDECREF((PyObject *)__pyx_v_pyparser);
13102   __Pyx_XDECREF(__pyx_v_body);
13103   __Pyx_XDECREF(__pyx_v_exc);
13104   __Pyx_RefNannyFinishContext();
13105   return __pyx_r;
13106 }
13107 
13108 /* "aiohttp/_http_parser.pyx":721
13109  *
13110  *
13111  * cdef int cb_on_message_complete(cparser.http_parser* parser) except -1:             # <<<<<<<<<<<<<<
13112  *     cdef HttpParser pyparser = <HttpParser>parser.data
13113  *     try:
13114  */
13115 
__pyx_f_7aiohttp_12_http_parser_cb_on_message_complete(struct http_parser * __pyx_v_parser)13116 static int __pyx_f_7aiohttp_12_http_parser_cb_on_message_complete(struct http_parser *__pyx_v_parser) {
13117   struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *__pyx_v_pyparser = 0;
13118   PyObject *__pyx_v_exc = NULL;
13119   int __pyx_r;
13120   __Pyx_RefNannyDeclarations
13121   PyObject *__pyx_t_1 = NULL;
13122   PyObject *__pyx_t_2 = NULL;
13123   PyObject *__pyx_t_3 = NULL;
13124   PyObject *__pyx_t_4 = NULL;
13125   int __pyx_t_5;
13126   PyObject *__pyx_t_6 = NULL;
13127   PyObject *__pyx_t_7 = NULL;
13128   int __pyx_lineno = 0;
13129   const char *__pyx_filename = NULL;
13130   int __pyx_clineno = 0;
13131   __Pyx_RefNannySetupContext("cb_on_message_complete", 0);
13132 
13133   /* "aiohttp/_http_parser.pyx":722
13134  *
13135  * cdef int cb_on_message_complete(cparser.http_parser* parser) except -1:
13136  *     cdef HttpParser pyparser = <HttpParser>parser.data             # <<<<<<<<<<<<<<
13137  *     try:
13138  *         pyparser._started = False
13139  */
13140   __pyx_t_1 = ((PyObject *)__pyx_v_parser->data);
13141   __Pyx_INCREF(__pyx_t_1);
13142   __pyx_v_pyparser = ((struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *)__pyx_t_1);
13143   __pyx_t_1 = 0;
13144 
13145   /* "aiohttp/_http_parser.pyx":723
13146  * cdef int cb_on_message_complete(cparser.http_parser* parser) except -1:
13147  *     cdef HttpParser pyparser = <HttpParser>parser.data
13148  *     try:             # <<<<<<<<<<<<<<
13149  *         pyparser._started = False
13150  *         pyparser._on_message_complete()
13151  */
13152   {
13153     __Pyx_PyThreadState_declare
13154     __Pyx_PyThreadState_assign
13155     __Pyx_ExceptionSave(&__pyx_t_2, &__pyx_t_3, &__pyx_t_4);
13156     __Pyx_XGOTREF(__pyx_t_2);
13157     __Pyx_XGOTREF(__pyx_t_3);
13158     __Pyx_XGOTREF(__pyx_t_4);
13159     /*try:*/ {
13160 
13161       /* "aiohttp/_http_parser.pyx":724
13162  *     cdef HttpParser pyparser = <HttpParser>parser.data
13163  *     try:
13164  *         pyparser._started = False             # <<<<<<<<<<<<<<
13165  *         pyparser._on_message_complete()
13166  *     except BaseException as exc:
13167  */
13168       __pyx_v_pyparser->_started = 0;
13169 
13170       /* "aiohttp/_http_parser.pyx":725
13171  *     try:
13172  *         pyparser._started = False
13173  *         pyparser._on_message_complete()             # <<<<<<<<<<<<<<
13174  *     except BaseException as exc:
13175  *         pyparser._last_error = exc
13176  */
13177       __pyx_t_1 = ((struct __pyx_vtabstruct_7aiohttp_12_http_parser_HttpParser *)__pyx_v_pyparser->__pyx_vtab)->_on_message_complete(__pyx_v_pyparser); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 725, __pyx_L3_error)
13178       __Pyx_GOTREF(__pyx_t_1);
13179       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
13180 
13181       /* "aiohttp/_http_parser.pyx":723
13182  * cdef int cb_on_message_complete(cparser.http_parser* parser) except -1:
13183  *     cdef HttpParser pyparser = <HttpParser>parser.data
13184  *     try:             # <<<<<<<<<<<<<<
13185  *         pyparser._started = False
13186  *         pyparser._on_message_complete()
13187  */
13188     }
13189 
13190     /* "aiohttp/_http_parser.pyx":730
13191  *         return -1
13192  *     else:
13193  *         return 0             # <<<<<<<<<<<<<<
13194  *
13195  *
13196  */
13197     /*else:*/ {
13198       __pyx_r = 0;
13199       goto __pyx_L6_except_return;
13200     }
13201     __pyx_L3_error:;
13202     __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
13203 
13204     /* "aiohttp/_http_parser.pyx":726
13205  *         pyparser._started = False
13206  *         pyparser._on_message_complete()
13207  *     except BaseException as exc:             # <<<<<<<<<<<<<<
13208  *         pyparser._last_error = exc
13209  *         return -1
13210  */
13211     __pyx_t_5 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_BaseException);
13212     if (__pyx_t_5) {
13213       __Pyx_AddTraceback("aiohttp._http_parser.cb_on_message_complete", __pyx_clineno, __pyx_lineno, __pyx_filename);
13214       if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(0, 726, __pyx_L5_except_error)
13215       __Pyx_GOTREF(__pyx_t_1);
13216       __Pyx_GOTREF(__pyx_t_6);
13217       __Pyx_GOTREF(__pyx_t_7);
13218       __Pyx_INCREF(__pyx_t_6);
13219       __pyx_v_exc = __pyx_t_6;
13220       /*try:*/ {
13221 
13222         /* "aiohttp/_http_parser.pyx":727
13223  *         pyparser._on_message_complete()
13224  *     except BaseException as exc:
13225  *         pyparser._last_error = exc             # <<<<<<<<<<<<<<
13226  *         return -1
13227  *     else:
13228  */
13229         __Pyx_INCREF(__pyx_v_exc);
13230         __Pyx_GIVEREF(__pyx_v_exc);
13231         __Pyx_GOTREF(__pyx_v_pyparser->_last_error);
13232         __Pyx_DECREF(__pyx_v_pyparser->_last_error);
13233         __pyx_v_pyparser->_last_error = __pyx_v_exc;
13234 
13235         /* "aiohttp/_http_parser.pyx":728
13236  *     except BaseException as exc:
13237  *         pyparser._last_error = exc
13238  *         return -1             # <<<<<<<<<<<<<<
13239  *     else:
13240  *         return 0
13241  */
13242         __pyx_r = -1;
13243         __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
13244         __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
13245         __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
13246         goto __pyx_L13_return;
13247       }
13248 
13249       /* "aiohttp/_http_parser.pyx":726
13250  *         pyparser._started = False
13251  *         pyparser._on_message_complete()
13252  *     except BaseException as exc:             # <<<<<<<<<<<<<<
13253  *         pyparser._last_error = exc
13254  *         return -1
13255  */
13256       /*finally:*/ {
13257         __pyx_L13_return: {
13258           __pyx_t_5 = __pyx_r;
13259           __Pyx_DECREF(__pyx_v_exc);
13260           __pyx_v_exc = NULL;
13261           __pyx_r = __pyx_t_5;
13262           goto __pyx_L6_except_return;
13263         }
13264       }
13265     }
13266     goto __pyx_L5_except_error;
13267     __pyx_L5_except_error:;
13268 
13269     /* "aiohttp/_http_parser.pyx":723
13270  * cdef int cb_on_message_complete(cparser.http_parser* parser) except -1:
13271  *     cdef HttpParser pyparser = <HttpParser>parser.data
13272  *     try:             # <<<<<<<<<<<<<<
13273  *         pyparser._started = False
13274  *         pyparser._on_message_complete()
13275  */
13276     __Pyx_XGIVEREF(__pyx_t_2);
13277     __Pyx_XGIVEREF(__pyx_t_3);
13278     __Pyx_XGIVEREF(__pyx_t_4);
13279     __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4);
13280     goto __pyx_L1_error;
13281     __pyx_L6_except_return:;
13282     __Pyx_XGIVEREF(__pyx_t_2);
13283     __Pyx_XGIVEREF(__pyx_t_3);
13284     __Pyx_XGIVEREF(__pyx_t_4);
13285     __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4);
13286     goto __pyx_L0;
13287   }
13288 
13289   /* "aiohttp/_http_parser.pyx":721
13290  *
13291  *
13292  * cdef int cb_on_message_complete(cparser.http_parser* parser) except -1:             # <<<<<<<<<<<<<<
13293  *     cdef HttpParser pyparser = <HttpParser>parser.data
13294  *     try:
13295  */
13296 
13297   /* function exit code */
13298   __pyx_L1_error:;
13299   __Pyx_XDECREF(__pyx_t_1);
13300   __Pyx_XDECREF(__pyx_t_6);
13301   __Pyx_XDECREF(__pyx_t_7);
13302   __Pyx_AddTraceback("aiohttp._http_parser.cb_on_message_complete", __pyx_clineno, __pyx_lineno, __pyx_filename);
13303   __pyx_r = -1;
13304   __pyx_L0:;
13305   __Pyx_XDECREF((PyObject *)__pyx_v_pyparser);
13306   __Pyx_XDECREF(__pyx_v_exc);
13307   __Pyx_RefNannyFinishContext();
13308   return __pyx_r;
13309 }
13310 
13311 /* "aiohttp/_http_parser.pyx":733
13312  *
13313  *
13314  * cdef int cb_on_chunk_header(cparser.http_parser* parser) except -1:             # <<<<<<<<<<<<<<
13315  *     cdef HttpParser pyparser = <HttpParser>parser.data
13316  *     try:
13317  */
13318 
__pyx_f_7aiohttp_12_http_parser_cb_on_chunk_header(struct http_parser * __pyx_v_parser)13319 static int __pyx_f_7aiohttp_12_http_parser_cb_on_chunk_header(struct http_parser *__pyx_v_parser) {
13320   struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *__pyx_v_pyparser = 0;
13321   PyObject *__pyx_v_exc = NULL;
13322   int __pyx_r;
13323   __Pyx_RefNannyDeclarations
13324   PyObject *__pyx_t_1 = NULL;
13325   PyObject *__pyx_t_2 = NULL;
13326   PyObject *__pyx_t_3 = NULL;
13327   PyObject *__pyx_t_4 = NULL;
13328   int __pyx_t_5;
13329   PyObject *__pyx_t_6 = NULL;
13330   PyObject *__pyx_t_7 = NULL;
13331   int __pyx_lineno = 0;
13332   const char *__pyx_filename = NULL;
13333   int __pyx_clineno = 0;
13334   __Pyx_RefNannySetupContext("cb_on_chunk_header", 0);
13335 
13336   /* "aiohttp/_http_parser.pyx":734
13337  *
13338  * cdef int cb_on_chunk_header(cparser.http_parser* parser) except -1:
13339  *     cdef HttpParser pyparser = <HttpParser>parser.data             # <<<<<<<<<<<<<<
13340  *     try:
13341  *         pyparser._on_chunk_header()
13342  */
13343   __pyx_t_1 = ((PyObject *)__pyx_v_parser->data);
13344   __Pyx_INCREF(__pyx_t_1);
13345   __pyx_v_pyparser = ((struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *)__pyx_t_1);
13346   __pyx_t_1 = 0;
13347 
13348   /* "aiohttp/_http_parser.pyx":735
13349  * cdef int cb_on_chunk_header(cparser.http_parser* parser) except -1:
13350  *     cdef HttpParser pyparser = <HttpParser>parser.data
13351  *     try:             # <<<<<<<<<<<<<<
13352  *         pyparser._on_chunk_header()
13353  *     except BaseException as exc:
13354  */
13355   {
13356     __Pyx_PyThreadState_declare
13357     __Pyx_PyThreadState_assign
13358     __Pyx_ExceptionSave(&__pyx_t_2, &__pyx_t_3, &__pyx_t_4);
13359     __Pyx_XGOTREF(__pyx_t_2);
13360     __Pyx_XGOTREF(__pyx_t_3);
13361     __Pyx_XGOTREF(__pyx_t_4);
13362     /*try:*/ {
13363 
13364       /* "aiohttp/_http_parser.pyx":736
13365  *     cdef HttpParser pyparser = <HttpParser>parser.data
13366  *     try:
13367  *         pyparser._on_chunk_header()             # <<<<<<<<<<<<<<
13368  *     except BaseException as exc:
13369  *         pyparser._last_error = exc
13370  */
13371       __pyx_t_1 = ((struct __pyx_vtabstruct_7aiohttp_12_http_parser_HttpParser *)__pyx_v_pyparser->__pyx_vtab)->_on_chunk_header(__pyx_v_pyparser); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 736, __pyx_L3_error)
13372       __Pyx_GOTREF(__pyx_t_1);
13373       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
13374 
13375       /* "aiohttp/_http_parser.pyx":735
13376  * cdef int cb_on_chunk_header(cparser.http_parser* parser) except -1:
13377  *     cdef HttpParser pyparser = <HttpParser>parser.data
13378  *     try:             # <<<<<<<<<<<<<<
13379  *         pyparser._on_chunk_header()
13380  *     except BaseException as exc:
13381  */
13382     }
13383 
13384     /* "aiohttp/_http_parser.pyx":741
13385  *         return -1
13386  *     else:
13387  *         return 0             # <<<<<<<<<<<<<<
13388  *
13389  *
13390  */
13391     /*else:*/ {
13392       __pyx_r = 0;
13393       goto __pyx_L6_except_return;
13394     }
13395     __pyx_L3_error:;
13396     __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
13397 
13398     /* "aiohttp/_http_parser.pyx":737
13399  *     try:
13400  *         pyparser._on_chunk_header()
13401  *     except BaseException as exc:             # <<<<<<<<<<<<<<
13402  *         pyparser._last_error = exc
13403  *         return -1
13404  */
13405     __pyx_t_5 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_BaseException);
13406     if (__pyx_t_5) {
13407       __Pyx_AddTraceback("aiohttp._http_parser.cb_on_chunk_header", __pyx_clineno, __pyx_lineno, __pyx_filename);
13408       if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(0, 737, __pyx_L5_except_error)
13409       __Pyx_GOTREF(__pyx_t_1);
13410       __Pyx_GOTREF(__pyx_t_6);
13411       __Pyx_GOTREF(__pyx_t_7);
13412       __Pyx_INCREF(__pyx_t_6);
13413       __pyx_v_exc = __pyx_t_6;
13414       /*try:*/ {
13415 
13416         /* "aiohttp/_http_parser.pyx":738
13417  *         pyparser._on_chunk_header()
13418  *     except BaseException as exc:
13419  *         pyparser._last_error = exc             # <<<<<<<<<<<<<<
13420  *         return -1
13421  *     else:
13422  */
13423         __Pyx_INCREF(__pyx_v_exc);
13424         __Pyx_GIVEREF(__pyx_v_exc);
13425         __Pyx_GOTREF(__pyx_v_pyparser->_last_error);
13426         __Pyx_DECREF(__pyx_v_pyparser->_last_error);
13427         __pyx_v_pyparser->_last_error = __pyx_v_exc;
13428 
13429         /* "aiohttp/_http_parser.pyx":739
13430  *     except BaseException as exc:
13431  *         pyparser._last_error = exc
13432  *         return -1             # <<<<<<<<<<<<<<
13433  *     else:
13434  *         return 0
13435  */
13436         __pyx_r = -1;
13437         __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
13438         __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
13439         __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
13440         goto __pyx_L13_return;
13441       }
13442 
13443       /* "aiohttp/_http_parser.pyx":737
13444  *     try:
13445  *         pyparser._on_chunk_header()
13446  *     except BaseException as exc:             # <<<<<<<<<<<<<<
13447  *         pyparser._last_error = exc
13448  *         return -1
13449  */
13450       /*finally:*/ {
13451         __pyx_L13_return: {
13452           __pyx_t_5 = __pyx_r;
13453           __Pyx_DECREF(__pyx_v_exc);
13454           __pyx_v_exc = NULL;
13455           __pyx_r = __pyx_t_5;
13456           goto __pyx_L6_except_return;
13457         }
13458       }
13459     }
13460     goto __pyx_L5_except_error;
13461     __pyx_L5_except_error:;
13462 
13463     /* "aiohttp/_http_parser.pyx":735
13464  * cdef int cb_on_chunk_header(cparser.http_parser* parser) except -1:
13465  *     cdef HttpParser pyparser = <HttpParser>parser.data
13466  *     try:             # <<<<<<<<<<<<<<
13467  *         pyparser._on_chunk_header()
13468  *     except BaseException as exc:
13469  */
13470     __Pyx_XGIVEREF(__pyx_t_2);
13471     __Pyx_XGIVEREF(__pyx_t_3);
13472     __Pyx_XGIVEREF(__pyx_t_4);
13473     __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4);
13474     goto __pyx_L1_error;
13475     __pyx_L6_except_return:;
13476     __Pyx_XGIVEREF(__pyx_t_2);
13477     __Pyx_XGIVEREF(__pyx_t_3);
13478     __Pyx_XGIVEREF(__pyx_t_4);
13479     __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4);
13480     goto __pyx_L0;
13481   }
13482 
13483   /* "aiohttp/_http_parser.pyx":733
13484  *
13485  *
13486  * cdef int cb_on_chunk_header(cparser.http_parser* parser) except -1:             # <<<<<<<<<<<<<<
13487  *     cdef HttpParser pyparser = <HttpParser>parser.data
13488  *     try:
13489  */
13490 
13491   /* function exit code */
13492   __pyx_L1_error:;
13493   __Pyx_XDECREF(__pyx_t_1);
13494   __Pyx_XDECREF(__pyx_t_6);
13495   __Pyx_XDECREF(__pyx_t_7);
13496   __Pyx_AddTraceback("aiohttp._http_parser.cb_on_chunk_header", __pyx_clineno, __pyx_lineno, __pyx_filename);
13497   __pyx_r = -1;
13498   __pyx_L0:;
13499   __Pyx_XDECREF((PyObject *)__pyx_v_pyparser);
13500   __Pyx_XDECREF(__pyx_v_exc);
13501   __Pyx_RefNannyFinishContext();
13502   return __pyx_r;
13503 }
13504 
13505 /* "aiohttp/_http_parser.pyx":744
13506  *
13507  *
13508  * cdef int cb_on_chunk_complete(cparser.http_parser* parser) except -1:             # <<<<<<<<<<<<<<
13509  *     cdef HttpParser pyparser = <HttpParser>parser.data
13510  *     try:
13511  */
13512 
__pyx_f_7aiohttp_12_http_parser_cb_on_chunk_complete(struct http_parser * __pyx_v_parser)13513 static int __pyx_f_7aiohttp_12_http_parser_cb_on_chunk_complete(struct http_parser *__pyx_v_parser) {
13514   struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *__pyx_v_pyparser = 0;
13515   PyObject *__pyx_v_exc = NULL;
13516   int __pyx_r;
13517   __Pyx_RefNannyDeclarations
13518   PyObject *__pyx_t_1 = NULL;
13519   PyObject *__pyx_t_2 = NULL;
13520   PyObject *__pyx_t_3 = NULL;
13521   PyObject *__pyx_t_4 = NULL;
13522   int __pyx_t_5;
13523   PyObject *__pyx_t_6 = NULL;
13524   PyObject *__pyx_t_7 = NULL;
13525   int __pyx_lineno = 0;
13526   const char *__pyx_filename = NULL;
13527   int __pyx_clineno = 0;
13528   __Pyx_RefNannySetupContext("cb_on_chunk_complete", 0);
13529 
13530   /* "aiohttp/_http_parser.pyx":745
13531  *
13532  * cdef int cb_on_chunk_complete(cparser.http_parser* parser) except -1:
13533  *     cdef HttpParser pyparser = <HttpParser>parser.data             # <<<<<<<<<<<<<<
13534  *     try:
13535  *         pyparser._on_chunk_complete()
13536  */
13537   __pyx_t_1 = ((PyObject *)__pyx_v_parser->data);
13538   __Pyx_INCREF(__pyx_t_1);
13539   __pyx_v_pyparser = ((struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *)__pyx_t_1);
13540   __pyx_t_1 = 0;
13541 
13542   /* "aiohttp/_http_parser.pyx":746
13543  * cdef int cb_on_chunk_complete(cparser.http_parser* parser) except -1:
13544  *     cdef HttpParser pyparser = <HttpParser>parser.data
13545  *     try:             # <<<<<<<<<<<<<<
13546  *         pyparser._on_chunk_complete()
13547  *     except BaseException as exc:
13548  */
13549   {
13550     __Pyx_PyThreadState_declare
13551     __Pyx_PyThreadState_assign
13552     __Pyx_ExceptionSave(&__pyx_t_2, &__pyx_t_3, &__pyx_t_4);
13553     __Pyx_XGOTREF(__pyx_t_2);
13554     __Pyx_XGOTREF(__pyx_t_3);
13555     __Pyx_XGOTREF(__pyx_t_4);
13556     /*try:*/ {
13557 
13558       /* "aiohttp/_http_parser.pyx":747
13559  *     cdef HttpParser pyparser = <HttpParser>parser.data
13560  *     try:
13561  *         pyparser._on_chunk_complete()             # <<<<<<<<<<<<<<
13562  *     except BaseException as exc:
13563  *         pyparser._last_error = exc
13564  */
13565       __pyx_t_1 = ((struct __pyx_vtabstruct_7aiohttp_12_http_parser_HttpParser *)__pyx_v_pyparser->__pyx_vtab)->_on_chunk_complete(__pyx_v_pyparser); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 747, __pyx_L3_error)
13566       __Pyx_GOTREF(__pyx_t_1);
13567       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
13568 
13569       /* "aiohttp/_http_parser.pyx":746
13570  * cdef int cb_on_chunk_complete(cparser.http_parser* parser) except -1:
13571  *     cdef HttpParser pyparser = <HttpParser>parser.data
13572  *     try:             # <<<<<<<<<<<<<<
13573  *         pyparser._on_chunk_complete()
13574  *     except BaseException as exc:
13575  */
13576     }
13577 
13578     /* "aiohttp/_http_parser.pyx":752
13579  *         return -1
13580  *     else:
13581  *         return 0             # <<<<<<<<<<<<<<
13582  *
13583  *
13584  */
13585     /*else:*/ {
13586       __pyx_r = 0;
13587       goto __pyx_L6_except_return;
13588     }
13589     __pyx_L3_error:;
13590     __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
13591 
13592     /* "aiohttp/_http_parser.pyx":748
13593  *     try:
13594  *         pyparser._on_chunk_complete()
13595  *     except BaseException as exc:             # <<<<<<<<<<<<<<
13596  *         pyparser._last_error = exc
13597  *         return -1
13598  */
13599     __pyx_t_5 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_BaseException);
13600     if (__pyx_t_5) {
13601       __Pyx_AddTraceback("aiohttp._http_parser.cb_on_chunk_complete", __pyx_clineno, __pyx_lineno, __pyx_filename);
13602       if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(0, 748, __pyx_L5_except_error)
13603       __Pyx_GOTREF(__pyx_t_1);
13604       __Pyx_GOTREF(__pyx_t_6);
13605       __Pyx_GOTREF(__pyx_t_7);
13606       __Pyx_INCREF(__pyx_t_6);
13607       __pyx_v_exc = __pyx_t_6;
13608       /*try:*/ {
13609 
13610         /* "aiohttp/_http_parser.pyx":749
13611  *         pyparser._on_chunk_complete()
13612  *     except BaseException as exc:
13613  *         pyparser._last_error = exc             # <<<<<<<<<<<<<<
13614  *         return -1
13615  *     else:
13616  */
13617         __Pyx_INCREF(__pyx_v_exc);
13618         __Pyx_GIVEREF(__pyx_v_exc);
13619         __Pyx_GOTREF(__pyx_v_pyparser->_last_error);
13620         __Pyx_DECREF(__pyx_v_pyparser->_last_error);
13621         __pyx_v_pyparser->_last_error = __pyx_v_exc;
13622 
13623         /* "aiohttp/_http_parser.pyx":750
13624  *     except BaseException as exc:
13625  *         pyparser._last_error = exc
13626  *         return -1             # <<<<<<<<<<<<<<
13627  *     else:
13628  *         return 0
13629  */
13630         __pyx_r = -1;
13631         __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
13632         __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
13633         __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
13634         goto __pyx_L13_return;
13635       }
13636 
13637       /* "aiohttp/_http_parser.pyx":748
13638  *     try:
13639  *         pyparser._on_chunk_complete()
13640  *     except BaseException as exc:             # <<<<<<<<<<<<<<
13641  *         pyparser._last_error = exc
13642  *         return -1
13643  */
13644       /*finally:*/ {
13645         __pyx_L13_return: {
13646           __pyx_t_5 = __pyx_r;
13647           __Pyx_DECREF(__pyx_v_exc);
13648           __pyx_v_exc = NULL;
13649           __pyx_r = __pyx_t_5;
13650           goto __pyx_L6_except_return;
13651         }
13652       }
13653     }
13654     goto __pyx_L5_except_error;
13655     __pyx_L5_except_error:;
13656 
13657     /* "aiohttp/_http_parser.pyx":746
13658  * cdef int cb_on_chunk_complete(cparser.http_parser* parser) except -1:
13659  *     cdef HttpParser pyparser = <HttpParser>parser.data
13660  *     try:             # <<<<<<<<<<<<<<
13661  *         pyparser._on_chunk_complete()
13662  *     except BaseException as exc:
13663  */
13664     __Pyx_XGIVEREF(__pyx_t_2);
13665     __Pyx_XGIVEREF(__pyx_t_3);
13666     __Pyx_XGIVEREF(__pyx_t_4);
13667     __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4);
13668     goto __pyx_L1_error;
13669     __pyx_L6_except_return:;
13670     __Pyx_XGIVEREF(__pyx_t_2);
13671     __Pyx_XGIVEREF(__pyx_t_3);
13672     __Pyx_XGIVEREF(__pyx_t_4);
13673     __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4);
13674     goto __pyx_L0;
13675   }
13676 
13677   /* "aiohttp/_http_parser.pyx":744
13678  *
13679  *
13680  * cdef int cb_on_chunk_complete(cparser.http_parser* parser) except -1:             # <<<<<<<<<<<<<<
13681  *     cdef HttpParser pyparser = <HttpParser>parser.data
13682  *     try:
13683  */
13684 
13685   /* function exit code */
13686   __pyx_L1_error:;
13687   __Pyx_XDECREF(__pyx_t_1);
13688   __Pyx_XDECREF(__pyx_t_6);
13689   __Pyx_XDECREF(__pyx_t_7);
13690   __Pyx_AddTraceback("aiohttp._http_parser.cb_on_chunk_complete", __pyx_clineno, __pyx_lineno, __pyx_filename);
13691   __pyx_r = -1;
13692   __pyx_L0:;
13693   __Pyx_XDECREF((PyObject *)__pyx_v_pyparser);
13694   __Pyx_XDECREF(__pyx_v_exc);
13695   __Pyx_RefNannyFinishContext();
13696   return __pyx_r;
13697 }
13698 
13699 /* "aiohttp/_http_parser.pyx":755
13700  *
13701  *
13702  * cdef parser_error_from_errno(cparser.http_errno errno):             # <<<<<<<<<<<<<<
13703  *     cdef bytes desc = cparser.http_errno_description(errno)
13704  *
13705  */
13706 
__pyx_f_7aiohttp_12_http_parser_parser_error_from_errno(enum http_errno __pyx_v_errno)13707 static PyObject *__pyx_f_7aiohttp_12_http_parser_parser_error_from_errno(enum http_errno __pyx_v_errno) {
13708   PyObject *__pyx_v_desc = 0;
13709   PyObject *__pyx_v_cls = NULL;
13710   PyObject *__pyx_r = NULL;
13711   __Pyx_RefNannyDeclarations
13712   PyObject *__pyx_t_1 = NULL;
13713   PyObject *__pyx_t_2 = NULL;
13714   PyObject *__pyx_t_3 = NULL;
13715   PyObject *__pyx_t_4 = NULL;
13716   int __pyx_lineno = 0;
13717   const char *__pyx_filename = NULL;
13718   int __pyx_clineno = 0;
13719   __Pyx_RefNannySetupContext("parser_error_from_errno", 0);
13720 
13721   /* "aiohttp/_http_parser.pyx":756
13722  *
13723  * cdef parser_error_from_errno(cparser.http_errno errno):
13724  *     cdef bytes desc = cparser.http_errno_description(errno)             # <<<<<<<<<<<<<<
13725  *
13726  *     if errno in (cparser.HPE_CB_message_begin,
13727  */
13728   __pyx_t_1 = __Pyx_PyBytes_FromString(http_errno_description(__pyx_v_errno)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 756, __pyx_L1_error)
13729   __Pyx_GOTREF(__pyx_t_1);
13730   __pyx_v_desc = ((PyObject*)__pyx_t_1);
13731   __pyx_t_1 = 0;
13732 
13733   /* "aiohttp/_http_parser.pyx":758
13734  *     cdef bytes desc = cparser.http_errno_description(errno)
13735  *
13736  *     if errno in (cparser.HPE_CB_message_begin,             # <<<<<<<<<<<<<<
13737  *                  cparser.HPE_CB_url,
13738  *                  cparser.HPE_CB_header_field,
13739  */
13740   switch (__pyx_v_errno) {
13741     case HPE_CB_message_begin:
13742     case HPE_CB_url:
13743 
13744     /* "aiohttp/_http_parser.pyx":759
13745  *
13746  *     if errno in (cparser.HPE_CB_message_begin,
13747  *                  cparser.HPE_CB_url,             # <<<<<<<<<<<<<<
13748  *                  cparser.HPE_CB_header_field,
13749  *                  cparser.HPE_CB_header_value,
13750  */
13751     case HPE_CB_header_field:
13752 
13753     /* "aiohttp/_http_parser.pyx":760
13754  *     if errno in (cparser.HPE_CB_message_begin,
13755  *                  cparser.HPE_CB_url,
13756  *                  cparser.HPE_CB_header_field,             # <<<<<<<<<<<<<<
13757  *                  cparser.HPE_CB_header_value,
13758  *                  cparser.HPE_CB_headers_complete,
13759  */
13760     case HPE_CB_header_value:
13761 
13762     /* "aiohttp/_http_parser.pyx":761
13763  *                  cparser.HPE_CB_url,
13764  *                  cparser.HPE_CB_header_field,
13765  *                  cparser.HPE_CB_header_value,             # <<<<<<<<<<<<<<
13766  *                  cparser.HPE_CB_headers_complete,
13767  *                  cparser.HPE_CB_body,
13768  */
13769     case HPE_CB_headers_complete:
13770 
13771     /* "aiohttp/_http_parser.pyx":762
13772  *                  cparser.HPE_CB_header_field,
13773  *                  cparser.HPE_CB_header_value,
13774  *                  cparser.HPE_CB_headers_complete,             # <<<<<<<<<<<<<<
13775  *                  cparser.HPE_CB_body,
13776  *                  cparser.HPE_CB_message_complete,
13777  */
13778     case HPE_CB_body:
13779 
13780     /* "aiohttp/_http_parser.pyx":763
13781  *                  cparser.HPE_CB_header_value,
13782  *                  cparser.HPE_CB_headers_complete,
13783  *                  cparser.HPE_CB_body,             # <<<<<<<<<<<<<<
13784  *                  cparser.HPE_CB_message_complete,
13785  *                  cparser.HPE_CB_status,
13786  */
13787     case HPE_CB_message_complete:
13788 
13789     /* "aiohttp/_http_parser.pyx":764
13790  *                  cparser.HPE_CB_headers_complete,
13791  *                  cparser.HPE_CB_body,
13792  *                  cparser.HPE_CB_message_complete,             # <<<<<<<<<<<<<<
13793  *                  cparser.HPE_CB_status,
13794  *                  cparser.HPE_CB_chunk_header,
13795  */
13796     case HPE_CB_status:
13797 
13798     /* "aiohttp/_http_parser.pyx":765
13799  *                  cparser.HPE_CB_body,
13800  *                  cparser.HPE_CB_message_complete,
13801  *                  cparser.HPE_CB_status,             # <<<<<<<<<<<<<<
13802  *                  cparser.HPE_CB_chunk_header,
13803  *                  cparser.HPE_CB_chunk_complete):
13804  */
13805     case HPE_CB_chunk_header:
13806 
13807     /* "aiohttp/_http_parser.pyx":766
13808  *                  cparser.HPE_CB_message_complete,
13809  *                  cparser.HPE_CB_status,
13810  *                  cparser.HPE_CB_chunk_header,             # <<<<<<<<<<<<<<
13811  *                  cparser.HPE_CB_chunk_complete):
13812  *         cls = BadHttpMessage
13813  */
13814     case HPE_CB_chunk_complete:
13815 
13816     /* "aiohttp/_http_parser.pyx":768
13817  *                  cparser.HPE_CB_chunk_header,
13818  *                  cparser.HPE_CB_chunk_complete):
13819  *         cls = BadHttpMessage             # <<<<<<<<<<<<<<
13820  *
13821  *     elif errno == cparser.HPE_INVALID_STATUS:
13822  */
13823     __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_BadHttpMessage); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 768, __pyx_L1_error)
13824     __Pyx_GOTREF(__pyx_t_1);
13825     __pyx_v_cls = __pyx_t_1;
13826     __pyx_t_1 = 0;
13827 
13828     /* "aiohttp/_http_parser.pyx":758
13829  *     cdef bytes desc = cparser.http_errno_description(errno)
13830  *
13831  *     if errno in (cparser.HPE_CB_message_begin,             # <<<<<<<<<<<<<<
13832  *                  cparser.HPE_CB_url,
13833  *                  cparser.HPE_CB_header_field,
13834  */
13835     break;
13836     case HPE_INVALID_STATUS:
13837 
13838     /* "aiohttp/_http_parser.pyx":771
13839  *
13840  *     elif errno == cparser.HPE_INVALID_STATUS:
13841  *         cls = BadStatusLine             # <<<<<<<<<<<<<<
13842  *
13843  *     elif errno == cparser.HPE_INVALID_METHOD:
13844  */
13845     __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_BadStatusLine); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 771, __pyx_L1_error)
13846     __Pyx_GOTREF(__pyx_t_1);
13847     __pyx_v_cls = __pyx_t_1;
13848     __pyx_t_1 = 0;
13849 
13850     /* "aiohttp/_http_parser.pyx":770
13851  *         cls = BadHttpMessage
13852  *
13853  *     elif errno == cparser.HPE_INVALID_STATUS:             # <<<<<<<<<<<<<<
13854  *         cls = BadStatusLine
13855  *
13856  */
13857     break;
13858     case HPE_INVALID_METHOD:
13859 
13860     /* "aiohttp/_http_parser.pyx":774
13861  *
13862  *     elif errno == cparser.HPE_INVALID_METHOD:
13863  *         cls = BadStatusLine             # <<<<<<<<<<<<<<
13864  *
13865  *     elif errno == cparser.HPE_INVALID_URL:
13866  */
13867     __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_BadStatusLine); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 774, __pyx_L1_error)
13868     __Pyx_GOTREF(__pyx_t_1);
13869     __pyx_v_cls = __pyx_t_1;
13870     __pyx_t_1 = 0;
13871 
13872     /* "aiohttp/_http_parser.pyx":773
13873  *         cls = BadStatusLine
13874  *
13875  *     elif errno == cparser.HPE_INVALID_METHOD:             # <<<<<<<<<<<<<<
13876  *         cls = BadStatusLine
13877  *
13878  */
13879     break;
13880     case HPE_INVALID_URL:
13881 
13882     /* "aiohttp/_http_parser.pyx":777
13883  *
13884  *     elif errno == cparser.HPE_INVALID_URL:
13885  *         cls = InvalidURLError             # <<<<<<<<<<<<<<
13886  *
13887  *     else:
13888  */
13889     __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_InvalidURLError); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 777, __pyx_L1_error)
13890     __Pyx_GOTREF(__pyx_t_1);
13891     __pyx_v_cls = __pyx_t_1;
13892     __pyx_t_1 = 0;
13893 
13894     /* "aiohttp/_http_parser.pyx":776
13895  *         cls = BadStatusLine
13896  *
13897  *     elif errno == cparser.HPE_INVALID_URL:             # <<<<<<<<<<<<<<
13898  *         cls = InvalidURLError
13899  *
13900  */
13901     break;
13902     default:
13903 
13904     /* "aiohttp/_http_parser.pyx":780
13905  *
13906  *     else:
13907  *         cls = BadHttpMessage             # <<<<<<<<<<<<<<
13908  *
13909  *     return cls(desc.decode('latin-1'))
13910  */
13911     __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_BadHttpMessage); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 780, __pyx_L1_error)
13912     __Pyx_GOTREF(__pyx_t_1);
13913     __pyx_v_cls = __pyx_t_1;
13914     __pyx_t_1 = 0;
13915     break;
13916   }
13917 
13918   /* "aiohttp/_http_parser.pyx":782
13919  *         cls = BadHttpMessage
13920  *
13921  *     return cls(desc.decode('latin-1'))             # <<<<<<<<<<<<<<
13922  *
13923  *
13924  */
13925   __Pyx_XDECREF(__pyx_r);
13926   __pyx_t_2 = __Pyx_decode_bytes(__pyx_v_desc, 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeLatin1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 782, __pyx_L1_error)
13927   __Pyx_GOTREF(__pyx_t_2);
13928   __Pyx_INCREF(__pyx_v_cls);
13929   __pyx_t_3 = __pyx_v_cls; __pyx_t_4 = NULL;
13930   if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
13931     __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
13932     if (likely(__pyx_t_4)) {
13933       PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
13934       __Pyx_INCREF(__pyx_t_4);
13935       __Pyx_INCREF(function);
13936       __Pyx_DECREF_SET(__pyx_t_3, function);
13937     }
13938   }
13939   __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_t_2) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_2);
13940   __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
13941   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
13942   if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 782, __pyx_L1_error)
13943   __Pyx_GOTREF(__pyx_t_1);
13944   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
13945   __pyx_r = __pyx_t_1;
13946   __pyx_t_1 = 0;
13947   goto __pyx_L0;
13948 
13949   /* "aiohttp/_http_parser.pyx":755
13950  *
13951  *
13952  * cdef parser_error_from_errno(cparser.http_errno errno):             # <<<<<<<<<<<<<<
13953  *     cdef bytes desc = cparser.http_errno_description(errno)
13954  *
13955  */
13956 
13957   /* function exit code */
13958   __pyx_L1_error:;
13959   __Pyx_XDECREF(__pyx_t_1);
13960   __Pyx_XDECREF(__pyx_t_2);
13961   __Pyx_XDECREF(__pyx_t_3);
13962   __Pyx_XDECREF(__pyx_t_4);
13963   __Pyx_AddTraceback("aiohttp._http_parser.parser_error_from_errno", __pyx_clineno, __pyx_lineno, __pyx_filename);
13964   __pyx_r = 0;
13965   __pyx_L0:;
13966   __Pyx_XDECREF(__pyx_v_desc);
13967   __Pyx_XDECREF(__pyx_v_cls);
13968   __Pyx_XGIVEREF(__pyx_r);
13969   __Pyx_RefNannyFinishContext();
13970   return __pyx_r;
13971 }
13972 
13973 /* "aiohttp/_http_parser.pyx":785
13974  *
13975  *
13976  * def parse_url(url):             # <<<<<<<<<<<<<<
13977  *     cdef:
13978  *         Py_buffer py_buf
13979  */
13980 
13981 /* Python wrapper */
13982 static PyObject *__pyx_pw_7aiohttp_12_http_parser_1parse_url(PyObject *__pyx_self, PyObject *__pyx_v_url); /*proto*/
13983 static PyMethodDef __pyx_mdef_7aiohttp_12_http_parser_1parse_url = {"parse_url", (PyCFunction)__pyx_pw_7aiohttp_12_http_parser_1parse_url, METH_O, 0};
__pyx_pw_7aiohttp_12_http_parser_1parse_url(PyObject * __pyx_self,PyObject * __pyx_v_url)13984 static PyObject *__pyx_pw_7aiohttp_12_http_parser_1parse_url(PyObject *__pyx_self, PyObject *__pyx_v_url) {
13985   PyObject *__pyx_r = 0;
13986   __Pyx_RefNannyDeclarations
13987   __Pyx_RefNannySetupContext("parse_url (wrapper)", 0);
13988   __pyx_r = __pyx_pf_7aiohttp_12_http_parser_parse_url(__pyx_self, ((PyObject *)__pyx_v_url));
13989 
13990   /* function exit code */
13991   __Pyx_RefNannyFinishContext();
13992   return __pyx_r;
13993 }
13994 
__pyx_pf_7aiohttp_12_http_parser_parse_url(CYTHON_UNUSED PyObject * __pyx_self,PyObject * __pyx_v_url)13995 static PyObject *__pyx_pf_7aiohttp_12_http_parser_parse_url(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_url) {
13996   Py_buffer __pyx_v_py_buf;
13997   char *__pyx_v_buf_data;
13998   PyObject *__pyx_r = NULL;
13999   __Pyx_RefNannyDeclarations
14000   int __pyx_t_1;
14001   PyObject *__pyx_t_2 = NULL;
14002   int __pyx_t_3;
14003   char const *__pyx_t_4;
14004   PyObject *__pyx_t_5 = NULL;
14005   PyObject *__pyx_t_6 = NULL;
14006   PyObject *__pyx_t_7 = NULL;
14007   PyObject *__pyx_t_8 = NULL;
14008   PyObject *__pyx_t_9 = NULL;
14009   PyObject *__pyx_t_10 = NULL;
14010   int __pyx_lineno = 0;
14011   const char *__pyx_filename = NULL;
14012   int __pyx_clineno = 0;
14013   __Pyx_RefNannySetupContext("parse_url", 0);
14014 
14015   /* "aiohttp/_http_parser.pyx":790
14016  *         char* buf_data
14017  *
14018  *     PyObject_GetBuffer(url, &py_buf, PyBUF_SIMPLE)             # <<<<<<<<<<<<<<
14019  *     try:
14020  *         buf_data = <char*>py_buf.buf
14021  */
14022   __pyx_t_1 = PyObject_GetBuffer(__pyx_v_url, (&__pyx_v_py_buf), PyBUF_SIMPLE); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 790, __pyx_L1_error)
14023 
14024   /* "aiohttp/_http_parser.pyx":791
14025  *
14026  *     PyObject_GetBuffer(url, &py_buf, PyBUF_SIMPLE)
14027  *     try:             # <<<<<<<<<<<<<<
14028  *         buf_data = <char*>py_buf.buf
14029  *         return _parse_url(buf_data, py_buf.len)
14030  */
14031   /*try:*/ {
14032 
14033     /* "aiohttp/_http_parser.pyx":792
14034  *     PyObject_GetBuffer(url, &py_buf, PyBUF_SIMPLE)
14035  *     try:
14036  *         buf_data = <char*>py_buf.buf             # <<<<<<<<<<<<<<
14037  *         return _parse_url(buf_data, py_buf.len)
14038  *     finally:
14039  */
14040     __pyx_v_buf_data = ((char *)__pyx_v_py_buf.buf);
14041 
14042     /* "aiohttp/_http_parser.pyx":793
14043  *     try:
14044  *         buf_data = <char*>py_buf.buf
14045  *         return _parse_url(buf_data, py_buf.len)             # <<<<<<<<<<<<<<
14046  *     finally:
14047  *         PyBuffer_Release(&py_buf)
14048  */
14049     __Pyx_XDECREF(__pyx_r);
14050     __pyx_t_2 = __pyx_f_7aiohttp_12_http_parser__parse_url(__pyx_v_buf_data, __pyx_v_py_buf.len); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 793, __pyx_L4_error)
14051     __Pyx_GOTREF(__pyx_t_2);
14052     __pyx_r = __pyx_t_2;
14053     __pyx_t_2 = 0;
14054     goto __pyx_L3_return;
14055   }
14056 
14057   /* "aiohttp/_http_parser.pyx":795
14058  *         return _parse_url(buf_data, py_buf.len)
14059  *     finally:
14060  *         PyBuffer_Release(&py_buf)             # <<<<<<<<<<<<<<
14061  *
14062  *
14063  */
14064   /*finally:*/ {
14065     __pyx_L4_error:;
14066     /*exception exit:*/{
14067       __Pyx_PyThreadState_declare
14068       __Pyx_PyThreadState_assign
14069       __pyx_t_5 = 0; __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0;
14070       __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
14071       if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_8, &__pyx_t_9, &__pyx_t_10);
14072       if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0)) __Pyx_ErrFetch(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7);
14073       __Pyx_XGOTREF(__pyx_t_5);
14074       __Pyx_XGOTREF(__pyx_t_6);
14075       __Pyx_XGOTREF(__pyx_t_7);
14076       __Pyx_XGOTREF(__pyx_t_8);
14077       __Pyx_XGOTREF(__pyx_t_9);
14078       __Pyx_XGOTREF(__pyx_t_10);
14079       __pyx_t_1 = __pyx_lineno; __pyx_t_3 = __pyx_clineno; __pyx_t_4 = __pyx_filename;
14080       {
14081         PyBuffer_Release((&__pyx_v_py_buf));
14082       }
14083       if (PY_MAJOR_VERSION >= 3) {
14084         __Pyx_XGIVEREF(__pyx_t_8);
14085         __Pyx_XGIVEREF(__pyx_t_9);
14086         __Pyx_XGIVEREF(__pyx_t_10);
14087         __Pyx_ExceptionReset(__pyx_t_8, __pyx_t_9, __pyx_t_10);
14088       }
14089       __Pyx_XGIVEREF(__pyx_t_5);
14090       __Pyx_XGIVEREF(__pyx_t_6);
14091       __Pyx_XGIVEREF(__pyx_t_7);
14092       __Pyx_ErrRestore(__pyx_t_5, __pyx_t_6, __pyx_t_7);
14093       __pyx_t_5 = 0; __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0;
14094       __pyx_lineno = __pyx_t_1; __pyx_clineno = __pyx_t_3; __pyx_filename = __pyx_t_4;
14095       goto __pyx_L1_error;
14096     }
14097     __pyx_L3_return: {
14098       __pyx_t_10 = __pyx_r;
14099       __pyx_r = 0;
14100       PyBuffer_Release((&__pyx_v_py_buf));
14101       __pyx_r = __pyx_t_10;
14102       __pyx_t_10 = 0;
14103       goto __pyx_L0;
14104     }
14105   }
14106 
14107   /* "aiohttp/_http_parser.pyx":785
14108  *
14109  *
14110  * def parse_url(url):             # <<<<<<<<<<<<<<
14111  *     cdef:
14112  *         Py_buffer py_buf
14113  */
14114 
14115   /* function exit code */
14116   __pyx_L1_error:;
14117   __Pyx_XDECREF(__pyx_t_2);
14118   __Pyx_AddTraceback("aiohttp._http_parser.parse_url", __pyx_clineno, __pyx_lineno, __pyx_filename);
14119   __pyx_r = NULL;
14120   __pyx_L0:;
14121   __Pyx_XGIVEREF(__pyx_r);
14122   __Pyx_RefNannyFinishContext();
14123   return __pyx_r;
14124 }
14125 
14126 /* "aiohttp/_http_parser.pyx":798
14127  *
14128  *
14129  * cdef _parse_url(char* buf_data, size_t length):             # <<<<<<<<<<<<<<
14130  *     cdef:
14131  *         cparser.http_parser_url* parsed
14132  */
14133 
__pyx_f_7aiohttp_12_http_parser__parse_url(char * __pyx_v_buf_data,size_t __pyx_v_length)14134 static PyObject *__pyx_f_7aiohttp_12_http_parser__parse_url(char *__pyx_v_buf_data, size_t __pyx_v_length) {
14135   struct http_parser_url *__pyx_v_parsed;
14136   int __pyx_v_res;
14137   PyObject *__pyx_v_schema = 0;
14138   PyObject *__pyx_v_host = 0;
14139   PyObject *__pyx_v_port = 0;
14140   PyObject *__pyx_v_path = 0;
14141   PyObject *__pyx_v_query = 0;
14142   PyObject *__pyx_v_fragment = 0;
14143   PyObject *__pyx_v_user = 0;
14144   PyObject *__pyx_v_password = 0;
14145   PyObject *__pyx_v_userinfo = 0;
14146   CYTHON_UNUSED PyObject *__pyx_v_result = 0;
14147   int __pyx_v_off;
14148   int __pyx_v_ln;
14149   CYTHON_UNUSED PyObject *__pyx_v_sep = NULL;
14150   PyObject *__pyx_r = NULL;
14151   __Pyx_RefNannyDeclarations
14152   int __pyx_t_1;
14153   uint16_t __pyx_t_2;
14154   PyObject *__pyx_t_3 = NULL;
14155   PyObject *__pyx_t_4 = NULL;
14156   PyObject *__pyx_t_5 = NULL;
14157   PyObject *__pyx_t_6 = NULL;
14158   PyObject *__pyx_t_7 = NULL;
14159   PyObject *(*__pyx_t_8)(PyObject *);
14160   PyObject *__pyx_t_9 = NULL;
14161   int __pyx_t_10;
14162   int __pyx_t_11;
14163   char const *__pyx_t_12;
14164   PyObject *__pyx_t_13 = NULL;
14165   PyObject *__pyx_t_14 = NULL;
14166   PyObject *__pyx_t_15 = NULL;
14167   PyObject *__pyx_t_16 = NULL;
14168   PyObject *__pyx_t_17 = NULL;
14169   PyObject *__pyx_t_18 = NULL;
14170   int __pyx_lineno = 0;
14171   const char *__pyx_filename = NULL;
14172   int __pyx_clineno = 0;
14173   __Pyx_RefNannySetupContext("_parse_url", 0);
14174 
14175   /* "aiohttp/_http_parser.pyx":802
14176  *         cparser.http_parser_url* parsed
14177  *         int res
14178  *         str schema = None             # <<<<<<<<<<<<<<
14179  *         str host = None
14180  *         object port = None
14181  */
14182   __Pyx_INCREF(Py_None);
14183   __pyx_v_schema = ((PyObject*)Py_None);
14184 
14185   /* "aiohttp/_http_parser.pyx":803
14186  *         int res
14187  *         str schema = None
14188  *         str host = None             # <<<<<<<<<<<<<<
14189  *         object port = None
14190  *         str path = None
14191  */
14192   __Pyx_INCREF(Py_None);
14193   __pyx_v_host = ((PyObject*)Py_None);
14194 
14195   /* "aiohttp/_http_parser.pyx":804
14196  *         str schema = None
14197  *         str host = None
14198  *         object port = None             # <<<<<<<<<<<<<<
14199  *         str path = None
14200  *         str query = None
14201  */
14202   __Pyx_INCREF(Py_None);
14203   __pyx_v_port = Py_None;
14204 
14205   /* "aiohttp/_http_parser.pyx":805
14206  *         str host = None
14207  *         object port = None
14208  *         str path = None             # <<<<<<<<<<<<<<
14209  *         str query = None
14210  *         str fragment = None
14211  */
14212   __Pyx_INCREF(Py_None);
14213   __pyx_v_path = ((PyObject*)Py_None);
14214 
14215   /* "aiohttp/_http_parser.pyx":806
14216  *         object port = None
14217  *         str path = None
14218  *         str query = None             # <<<<<<<<<<<<<<
14219  *         str fragment = None
14220  *         str user = None
14221  */
14222   __Pyx_INCREF(Py_None);
14223   __pyx_v_query = ((PyObject*)Py_None);
14224 
14225   /* "aiohttp/_http_parser.pyx":807
14226  *         str path = None
14227  *         str query = None
14228  *         str fragment = None             # <<<<<<<<<<<<<<
14229  *         str user = None
14230  *         str password = None
14231  */
14232   __Pyx_INCREF(Py_None);
14233   __pyx_v_fragment = ((PyObject*)Py_None);
14234 
14235   /* "aiohttp/_http_parser.pyx":808
14236  *         str query = None
14237  *         str fragment = None
14238  *         str user = None             # <<<<<<<<<<<<<<
14239  *         str password = None
14240  *         str userinfo = None
14241  */
14242   __Pyx_INCREF(Py_None);
14243   __pyx_v_user = ((PyObject*)Py_None);
14244 
14245   /* "aiohttp/_http_parser.pyx":809
14246  *         str fragment = None
14247  *         str user = None
14248  *         str password = None             # <<<<<<<<<<<<<<
14249  *         str userinfo = None
14250  *         object result = None
14251  */
14252   __Pyx_INCREF(Py_None);
14253   __pyx_v_password = ((PyObject*)Py_None);
14254 
14255   /* "aiohttp/_http_parser.pyx":810
14256  *         str user = None
14257  *         str password = None
14258  *         str userinfo = None             # <<<<<<<<<<<<<<
14259  *         object result = None
14260  *         int off
14261  */
14262   __Pyx_INCREF(Py_None);
14263   __pyx_v_userinfo = ((PyObject*)Py_None);
14264 
14265   /* "aiohttp/_http_parser.pyx":811
14266  *         str password = None
14267  *         str userinfo = None
14268  *         object result = None             # <<<<<<<<<<<<<<
14269  *         int off
14270  *         int ln
14271  */
14272   __Pyx_INCREF(Py_None);
14273   __pyx_v_result = Py_None;
14274 
14275   /* "aiohttp/_http_parser.pyx":815
14276  *         int ln
14277  *
14278  *     parsed = <cparser.http_parser_url*> \             # <<<<<<<<<<<<<<
14279  *                         PyMem_Malloc(sizeof(cparser.http_parser_url))
14280  *     if parsed is NULL:
14281  */
14282   __pyx_v_parsed = ((struct http_parser_url *)PyMem_Malloc((sizeof(struct http_parser_url))));
14283 
14284   /* "aiohttp/_http_parser.pyx":817
14285  *     parsed = <cparser.http_parser_url*> \
14286  *                         PyMem_Malloc(sizeof(cparser.http_parser_url))
14287  *     if parsed is NULL:             # <<<<<<<<<<<<<<
14288  *         raise MemoryError()
14289  *     cparser.http_parser_url_init(parsed)
14290  */
14291   __pyx_t_1 = ((__pyx_v_parsed == NULL) != 0);
14292   if (unlikely(__pyx_t_1)) {
14293 
14294     /* "aiohttp/_http_parser.pyx":818
14295  *                         PyMem_Malloc(sizeof(cparser.http_parser_url))
14296  *     if parsed is NULL:
14297  *         raise MemoryError()             # <<<<<<<<<<<<<<
14298  *     cparser.http_parser_url_init(parsed)
14299  *     try:
14300  */
14301     PyErr_NoMemory(); __PYX_ERR(0, 818, __pyx_L1_error)
14302 
14303     /* "aiohttp/_http_parser.pyx":817
14304  *     parsed = <cparser.http_parser_url*> \
14305  *                         PyMem_Malloc(sizeof(cparser.http_parser_url))
14306  *     if parsed is NULL:             # <<<<<<<<<<<<<<
14307  *         raise MemoryError()
14308  *     cparser.http_parser_url_init(parsed)
14309  */
14310   }
14311 
14312   /* "aiohttp/_http_parser.pyx":819
14313  *     if parsed is NULL:
14314  *         raise MemoryError()
14315  *     cparser.http_parser_url_init(parsed)             # <<<<<<<<<<<<<<
14316  *     try:
14317  *         res = cparser.http_parser_parse_url(buf_data, length, 0, parsed)
14318  */
14319   http_parser_url_init(__pyx_v_parsed);
14320 
14321   /* "aiohttp/_http_parser.pyx":820
14322  *         raise MemoryError()
14323  *     cparser.http_parser_url_init(parsed)
14324  *     try:             # <<<<<<<<<<<<<<
14325  *         res = cparser.http_parser_parse_url(buf_data, length, 0, parsed)
14326  *
14327  */
14328   /*try:*/ {
14329 
14330     /* "aiohttp/_http_parser.pyx":821
14331  *     cparser.http_parser_url_init(parsed)
14332  *     try:
14333  *         res = cparser.http_parser_parse_url(buf_data, length, 0, parsed)             # <<<<<<<<<<<<<<
14334  *
14335  *         if res == 0:
14336  */
14337     __pyx_v_res = http_parser_parse_url(__pyx_v_buf_data, __pyx_v_length, 0, __pyx_v_parsed);
14338 
14339     /* "aiohttp/_http_parser.pyx":823
14340  *         res = cparser.http_parser_parse_url(buf_data, length, 0, parsed)
14341  *
14342  *         if res == 0:             # <<<<<<<<<<<<<<
14343  *             if parsed.field_set & (1 << cparser.UF_SCHEMA):
14344  *                 off = parsed.field_data[<int>cparser.UF_SCHEMA].off
14345  */
14346     __pyx_t_1 = ((__pyx_v_res == 0) != 0);
14347     if (likely(__pyx_t_1)) {
14348 
14349       /* "aiohttp/_http_parser.pyx":824
14350  *
14351  *         if res == 0:
14352  *             if parsed.field_set & (1 << cparser.UF_SCHEMA):             # <<<<<<<<<<<<<<
14353  *                 off = parsed.field_data[<int>cparser.UF_SCHEMA].off
14354  *                 ln = parsed.field_data[<int>cparser.UF_SCHEMA].len
14355  */
14356       __pyx_t_1 = ((__pyx_v_parsed->field_set & (1 << UF_SCHEMA)) != 0);
14357       if (__pyx_t_1) {
14358 
14359         /* "aiohttp/_http_parser.pyx":825
14360  *         if res == 0:
14361  *             if parsed.field_set & (1 << cparser.UF_SCHEMA):
14362  *                 off = parsed.field_data[<int>cparser.UF_SCHEMA].off             # <<<<<<<<<<<<<<
14363  *                 ln = parsed.field_data[<int>cparser.UF_SCHEMA].len
14364  *                 schema = buf_data[off:off+ln].decode('utf-8', 'surrogateescape')
14365  */
14366         __pyx_t_2 = (__pyx_v_parsed->field_data[((int)UF_SCHEMA)]).off;
14367         __pyx_v_off = __pyx_t_2;
14368 
14369         /* "aiohttp/_http_parser.pyx":826
14370  *             if parsed.field_set & (1 << cparser.UF_SCHEMA):
14371  *                 off = parsed.field_data[<int>cparser.UF_SCHEMA].off
14372  *                 ln = parsed.field_data[<int>cparser.UF_SCHEMA].len             # <<<<<<<<<<<<<<
14373  *                 schema = buf_data[off:off+ln].decode('utf-8', 'surrogateescape')
14374  *             else:
14375  */
14376         __pyx_t_2 = (__pyx_v_parsed->field_data[((int)UF_SCHEMA)]).len;
14377         __pyx_v_ln = __pyx_t_2;
14378 
14379         /* "aiohttp/_http_parser.pyx":827
14380  *                 off = parsed.field_data[<int>cparser.UF_SCHEMA].off
14381  *                 ln = parsed.field_data[<int>cparser.UF_SCHEMA].len
14382  *                 schema = buf_data[off:off+ln].decode('utf-8', 'surrogateescape')             # <<<<<<<<<<<<<<
14383  *             else:
14384  *                 schema = ''
14385  */
14386         __pyx_t_3 = __Pyx_decode_c_string(__pyx_v_buf_data, __pyx_v_off, (__pyx_v_off + __pyx_v_ln), NULL, ((char const *)"surrogateescape"), PyUnicode_DecodeUTF8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 827, __pyx_L5_error)
14387         __Pyx_GOTREF(__pyx_t_3);
14388         __Pyx_DECREF_SET(__pyx_v_schema, ((PyObject*)__pyx_t_3));
14389         __pyx_t_3 = 0;
14390 
14391         /* "aiohttp/_http_parser.pyx":824
14392  *
14393  *         if res == 0:
14394  *             if parsed.field_set & (1 << cparser.UF_SCHEMA):             # <<<<<<<<<<<<<<
14395  *                 off = parsed.field_data[<int>cparser.UF_SCHEMA].off
14396  *                 ln = parsed.field_data[<int>cparser.UF_SCHEMA].len
14397  */
14398         goto __pyx_L8;
14399       }
14400 
14401       /* "aiohttp/_http_parser.pyx":829
14402  *                 schema = buf_data[off:off+ln].decode('utf-8', 'surrogateescape')
14403  *             else:
14404  *                 schema = ''             # <<<<<<<<<<<<<<
14405  *
14406  *             if parsed.field_set & (1 << cparser.UF_HOST):
14407  */
14408       /*else*/ {
14409         __Pyx_INCREF(__pyx_kp_u__4);
14410         __Pyx_DECREF_SET(__pyx_v_schema, __pyx_kp_u__4);
14411       }
14412       __pyx_L8:;
14413 
14414       /* "aiohttp/_http_parser.pyx":831
14415  *                 schema = ''
14416  *
14417  *             if parsed.field_set & (1 << cparser.UF_HOST):             # <<<<<<<<<<<<<<
14418  *                 off = parsed.field_data[<int>cparser.UF_HOST].off
14419  *                 ln = parsed.field_data[<int>cparser.UF_HOST].len
14420  */
14421       __pyx_t_1 = ((__pyx_v_parsed->field_set & (1 << UF_HOST)) != 0);
14422       if (__pyx_t_1) {
14423 
14424         /* "aiohttp/_http_parser.pyx":832
14425  *
14426  *             if parsed.field_set & (1 << cparser.UF_HOST):
14427  *                 off = parsed.field_data[<int>cparser.UF_HOST].off             # <<<<<<<<<<<<<<
14428  *                 ln = parsed.field_data[<int>cparser.UF_HOST].len
14429  *                 host = buf_data[off:off+ln].decode('utf-8', 'surrogateescape')
14430  */
14431         __pyx_t_2 = (__pyx_v_parsed->field_data[((int)UF_HOST)]).off;
14432         __pyx_v_off = __pyx_t_2;
14433 
14434         /* "aiohttp/_http_parser.pyx":833
14435  *             if parsed.field_set & (1 << cparser.UF_HOST):
14436  *                 off = parsed.field_data[<int>cparser.UF_HOST].off
14437  *                 ln = parsed.field_data[<int>cparser.UF_HOST].len             # <<<<<<<<<<<<<<
14438  *                 host = buf_data[off:off+ln].decode('utf-8', 'surrogateescape')
14439  *             else:
14440  */
14441         __pyx_t_2 = (__pyx_v_parsed->field_data[((int)UF_HOST)]).len;
14442         __pyx_v_ln = __pyx_t_2;
14443 
14444         /* "aiohttp/_http_parser.pyx":834
14445  *                 off = parsed.field_data[<int>cparser.UF_HOST].off
14446  *                 ln = parsed.field_data[<int>cparser.UF_HOST].len
14447  *                 host = buf_data[off:off+ln].decode('utf-8', 'surrogateescape')             # <<<<<<<<<<<<<<
14448  *             else:
14449  *                 host = ''
14450  */
14451         __pyx_t_3 = __Pyx_decode_c_string(__pyx_v_buf_data, __pyx_v_off, (__pyx_v_off + __pyx_v_ln), NULL, ((char const *)"surrogateescape"), PyUnicode_DecodeUTF8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 834, __pyx_L5_error)
14452         __Pyx_GOTREF(__pyx_t_3);
14453         __Pyx_DECREF_SET(__pyx_v_host, ((PyObject*)__pyx_t_3));
14454         __pyx_t_3 = 0;
14455 
14456         /* "aiohttp/_http_parser.pyx":831
14457  *                 schema = ''
14458  *
14459  *             if parsed.field_set & (1 << cparser.UF_HOST):             # <<<<<<<<<<<<<<
14460  *                 off = parsed.field_data[<int>cparser.UF_HOST].off
14461  *                 ln = parsed.field_data[<int>cparser.UF_HOST].len
14462  */
14463         goto __pyx_L9;
14464       }
14465 
14466       /* "aiohttp/_http_parser.pyx":836
14467  *                 host = buf_data[off:off+ln].decode('utf-8', 'surrogateescape')
14468  *             else:
14469  *                 host = ''             # <<<<<<<<<<<<<<
14470  *
14471  *             if parsed.field_set & (1 << cparser.UF_PORT):
14472  */
14473       /*else*/ {
14474         __Pyx_INCREF(__pyx_kp_u__4);
14475         __Pyx_DECREF_SET(__pyx_v_host, __pyx_kp_u__4);
14476       }
14477       __pyx_L9:;
14478 
14479       /* "aiohttp/_http_parser.pyx":838
14480  *                 host = ''
14481  *
14482  *             if parsed.field_set & (1 << cparser.UF_PORT):             # <<<<<<<<<<<<<<
14483  *                 port = parsed.port
14484  *
14485  */
14486       __pyx_t_1 = ((__pyx_v_parsed->field_set & (1 << UF_PORT)) != 0);
14487       if (__pyx_t_1) {
14488 
14489         /* "aiohttp/_http_parser.pyx":839
14490  *
14491  *             if parsed.field_set & (1 << cparser.UF_PORT):
14492  *                 port = parsed.port             # <<<<<<<<<<<<<<
14493  *
14494  *             if parsed.field_set & (1 << cparser.UF_PATH):
14495  */
14496         __pyx_t_3 = __Pyx_PyInt_From_uint16_t(__pyx_v_parsed->port); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 839, __pyx_L5_error)
14497         __Pyx_GOTREF(__pyx_t_3);
14498         __Pyx_DECREF_SET(__pyx_v_port, __pyx_t_3);
14499         __pyx_t_3 = 0;
14500 
14501         /* "aiohttp/_http_parser.pyx":838
14502  *                 host = ''
14503  *
14504  *             if parsed.field_set & (1 << cparser.UF_PORT):             # <<<<<<<<<<<<<<
14505  *                 port = parsed.port
14506  *
14507  */
14508       }
14509 
14510       /* "aiohttp/_http_parser.pyx":841
14511  *                 port = parsed.port
14512  *
14513  *             if parsed.field_set & (1 << cparser.UF_PATH):             # <<<<<<<<<<<<<<
14514  *                 off = parsed.field_data[<int>cparser.UF_PATH].off
14515  *                 ln = parsed.field_data[<int>cparser.UF_PATH].len
14516  */
14517       __pyx_t_1 = ((__pyx_v_parsed->field_set & (1 << UF_PATH)) != 0);
14518       if (__pyx_t_1) {
14519 
14520         /* "aiohttp/_http_parser.pyx":842
14521  *
14522  *             if parsed.field_set & (1 << cparser.UF_PATH):
14523  *                 off = parsed.field_data[<int>cparser.UF_PATH].off             # <<<<<<<<<<<<<<
14524  *                 ln = parsed.field_data[<int>cparser.UF_PATH].len
14525  *                 path = buf_data[off:off+ln].decode('utf-8', 'surrogateescape')
14526  */
14527         __pyx_t_2 = (__pyx_v_parsed->field_data[((int)UF_PATH)]).off;
14528         __pyx_v_off = __pyx_t_2;
14529 
14530         /* "aiohttp/_http_parser.pyx":843
14531  *             if parsed.field_set & (1 << cparser.UF_PATH):
14532  *                 off = parsed.field_data[<int>cparser.UF_PATH].off
14533  *                 ln = parsed.field_data[<int>cparser.UF_PATH].len             # <<<<<<<<<<<<<<
14534  *                 path = buf_data[off:off+ln].decode('utf-8', 'surrogateescape')
14535  *             else:
14536  */
14537         __pyx_t_2 = (__pyx_v_parsed->field_data[((int)UF_PATH)]).len;
14538         __pyx_v_ln = __pyx_t_2;
14539 
14540         /* "aiohttp/_http_parser.pyx":844
14541  *                 off = parsed.field_data[<int>cparser.UF_PATH].off
14542  *                 ln = parsed.field_data[<int>cparser.UF_PATH].len
14543  *                 path = buf_data[off:off+ln].decode('utf-8', 'surrogateescape')             # <<<<<<<<<<<<<<
14544  *             else:
14545  *                 path = ''
14546  */
14547         __pyx_t_3 = __Pyx_decode_c_string(__pyx_v_buf_data, __pyx_v_off, (__pyx_v_off + __pyx_v_ln), NULL, ((char const *)"surrogateescape"), PyUnicode_DecodeUTF8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 844, __pyx_L5_error)
14548         __Pyx_GOTREF(__pyx_t_3);
14549         __Pyx_DECREF_SET(__pyx_v_path, ((PyObject*)__pyx_t_3));
14550         __pyx_t_3 = 0;
14551 
14552         /* "aiohttp/_http_parser.pyx":841
14553  *                 port = parsed.port
14554  *
14555  *             if parsed.field_set & (1 << cparser.UF_PATH):             # <<<<<<<<<<<<<<
14556  *                 off = parsed.field_data[<int>cparser.UF_PATH].off
14557  *                 ln = parsed.field_data[<int>cparser.UF_PATH].len
14558  */
14559         goto __pyx_L11;
14560       }
14561 
14562       /* "aiohttp/_http_parser.pyx":846
14563  *                 path = buf_data[off:off+ln].decode('utf-8', 'surrogateescape')
14564  *             else:
14565  *                 path = ''             # <<<<<<<<<<<<<<
14566  *
14567  *             if parsed.field_set & (1 << cparser.UF_QUERY):
14568  */
14569       /*else*/ {
14570         __Pyx_INCREF(__pyx_kp_u__4);
14571         __Pyx_DECREF_SET(__pyx_v_path, __pyx_kp_u__4);
14572       }
14573       __pyx_L11:;
14574 
14575       /* "aiohttp/_http_parser.pyx":848
14576  *                 path = ''
14577  *
14578  *             if parsed.field_set & (1 << cparser.UF_QUERY):             # <<<<<<<<<<<<<<
14579  *                 off = parsed.field_data[<int>cparser.UF_QUERY].off
14580  *                 ln = parsed.field_data[<int>cparser.UF_QUERY].len
14581  */
14582       __pyx_t_1 = ((__pyx_v_parsed->field_set & (1 << UF_QUERY)) != 0);
14583       if (__pyx_t_1) {
14584 
14585         /* "aiohttp/_http_parser.pyx":849
14586  *
14587  *             if parsed.field_set & (1 << cparser.UF_QUERY):
14588  *                 off = parsed.field_data[<int>cparser.UF_QUERY].off             # <<<<<<<<<<<<<<
14589  *                 ln = parsed.field_data[<int>cparser.UF_QUERY].len
14590  *                 query = buf_data[off:off+ln].decode('utf-8', 'surrogateescape')
14591  */
14592         __pyx_t_2 = (__pyx_v_parsed->field_data[((int)UF_QUERY)]).off;
14593         __pyx_v_off = __pyx_t_2;
14594 
14595         /* "aiohttp/_http_parser.pyx":850
14596  *             if parsed.field_set & (1 << cparser.UF_QUERY):
14597  *                 off = parsed.field_data[<int>cparser.UF_QUERY].off
14598  *                 ln = parsed.field_data[<int>cparser.UF_QUERY].len             # <<<<<<<<<<<<<<
14599  *                 query = buf_data[off:off+ln].decode('utf-8', 'surrogateescape')
14600  *             else:
14601  */
14602         __pyx_t_2 = (__pyx_v_parsed->field_data[((int)UF_QUERY)]).len;
14603         __pyx_v_ln = __pyx_t_2;
14604 
14605         /* "aiohttp/_http_parser.pyx":851
14606  *                 off = parsed.field_data[<int>cparser.UF_QUERY].off
14607  *                 ln = parsed.field_data[<int>cparser.UF_QUERY].len
14608  *                 query = buf_data[off:off+ln].decode('utf-8', 'surrogateescape')             # <<<<<<<<<<<<<<
14609  *             else:
14610  *                 query = ''
14611  */
14612         __pyx_t_3 = __Pyx_decode_c_string(__pyx_v_buf_data, __pyx_v_off, (__pyx_v_off + __pyx_v_ln), NULL, ((char const *)"surrogateescape"), PyUnicode_DecodeUTF8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 851, __pyx_L5_error)
14613         __Pyx_GOTREF(__pyx_t_3);
14614         __Pyx_DECREF_SET(__pyx_v_query, ((PyObject*)__pyx_t_3));
14615         __pyx_t_3 = 0;
14616 
14617         /* "aiohttp/_http_parser.pyx":848
14618  *                 path = ''
14619  *
14620  *             if parsed.field_set & (1 << cparser.UF_QUERY):             # <<<<<<<<<<<<<<
14621  *                 off = parsed.field_data[<int>cparser.UF_QUERY].off
14622  *                 ln = parsed.field_data[<int>cparser.UF_QUERY].len
14623  */
14624         goto __pyx_L12;
14625       }
14626 
14627       /* "aiohttp/_http_parser.pyx":853
14628  *                 query = buf_data[off:off+ln].decode('utf-8', 'surrogateescape')
14629  *             else:
14630  *                 query = ''             # <<<<<<<<<<<<<<
14631  *
14632  *             if parsed.field_set & (1 << cparser.UF_FRAGMENT):
14633  */
14634       /*else*/ {
14635         __Pyx_INCREF(__pyx_kp_u__4);
14636         __Pyx_DECREF_SET(__pyx_v_query, __pyx_kp_u__4);
14637       }
14638       __pyx_L12:;
14639 
14640       /* "aiohttp/_http_parser.pyx":855
14641  *                 query = ''
14642  *
14643  *             if parsed.field_set & (1 << cparser.UF_FRAGMENT):             # <<<<<<<<<<<<<<
14644  *                 off = parsed.field_data[<int>cparser.UF_FRAGMENT].off
14645  *                 ln = parsed.field_data[<int>cparser.UF_FRAGMENT].len
14646  */
14647       __pyx_t_1 = ((__pyx_v_parsed->field_set & (1 << UF_FRAGMENT)) != 0);
14648       if (__pyx_t_1) {
14649 
14650         /* "aiohttp/_http_parser.pyx":856
14651  *
14652  *             if parsed.field_set & (1 << cparser.UF_FRAGMENT):
14653  *                 off = parsed.field_data[<int>cparser.UF_FRAGMENT].off             # <<<<<<<<<<<<<<
14654  *                 ln = parsed.field_data[<int>cparser.UF_FRAGMENT].len
14655  *                 fragment = buf_data[off:off+ln].decode('utf-8', 'surrogateescape')
14656  */
14657         __pyx_t_2 = (__pyx_v_parsed->field_data[((int)UF_FRAGMENT)]).off;
14658         __pyx_v_off = __pyx_t_2;
14659 
14660         /* "aiohttp/_http_parser.pyx":857
14661  *             if parsed.field_set & (1 << cparser.UF_FRAGMENT):
14662  *                 off = parsed.field_data[<int>cparser.UF_FRAGMENT].off
14663  *                 ln = parsed.field_data[<int>cparser.UF_FRAGMENT].len             # <<<<<<<<<<<<<<
14664  *                 fragment = buf_data[off:off+ln].decode('utf-8', 'surrogateescape')
14665  *             else:
14666  */
14667         __pyx_t_2 = (__pyx_v_parsed->field_data[((int)UF_FRAGMENT)]).len;
14668         __pyx_v_ln = __pyx_t_2;
14669 
14670         /* "aiohttp/_http_parser.pyx":858
14671  *                 off = parsed.field_data[<int>cparser.UF_FRAGMENT].off
14672  *                 ln = parsed.field_data[<int>cparser.UF_FRAGMENT].len
14673  *                 fragment = buf_data[off:off+ln].decode('utf-8', 'surrogateescape')             # <<<<<<<<<<<<<<
14674  *             else:
14675  *                 fragment = ''
14676  */
14677         __pyx_t_3 = __Pyx_decode_c_string(__pyx_v_buf_data, __pyx_v_off, (__pyx_v_off + __pyx_v_ln), NULL, ((char const *)"surrogateescape"), PyUnicode_DecodeUTF8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 858, __pyx_L5_error)
14678         __Pyx_GOTREF(__pyx_t_3);
14679         __Pyx_DECREF_SET(__pyx_v_fragment, ((PyObject*)__pyx_t_3));
14680         __pyx_t_3 = 0;
14681 
14682         /* "aiohttp/_http_parser.pyx":855
14683  *                 query = ''
14684  *
14685  *             if parsed.field_set & (1 << cparser.UF_FRAGMENT):             # <<<<<<<<<<<<<<
14686  *                 off = parsed.field_data[<int>cparser.UF_FRAGMENT].off
14687  *                 ln = parsed.field_data[<int>cparser.UF_FRAGMENT].len
14688  */
14689         goto __pyx_L13;
14690       }
14691 
14692       /* "aiohttp/_http_parser.pyx":860
14693  *                 fragment = buf_data[off:off+ln].decode('utf-8', 'surrogateescape')
14694  *             else:
14695  *                 fragment = ''             # <<<<<<<<<<<<<<
14696  *
14697  *             if parsed.field_set & (1 << cparser.UF_USERINFO):
14698  */
14699       /*else*/ {
14700         __Pyx_INCREF(__pyx_kp_u__4);
14701         __Pyx_DECREF_SET(__pyx_v_fragment, __pyx_kp_u__4);
14702       }
14703       __pyx_L13:;
14704 
14705       /* "aiohttp/_http_parser.pyx":862
14706  *                 fragment = ''
14707  *
14708  *             if parsed.field_set & (1 << cparser.UF_USERINFO):             # <<<<<<<<<<<<<<
14709  *                 off = parsed.field_data[<int>cparser.UF_USERINFO].off
14710  *                 ln = parsed.field_data[<int>cparser.UF_USERINFO].len
14711  */
14712       __pyx_t_1 = ((__pyx_v_parsed->field_set & (1 << UF_USERINFO)) != 0);
14713       if (__pyx_t_1) {
14714 
14715         /* "aiohttp/_http_parser.pyx":863
14716  *
14717  *             if parsed.field_set & (1 << cparser.UF_USERINFO):
14718  *                 off = parsed.field_data[<int>cparser.UF_USERINFO].off             # <<<<<<<<<<<<<<
14719  *                 ln = parsed.field_data[<int>cparser.UF_USERINFO].len
14720  *                 userinfo = buf_data[off:off+ln].decode('utf-8', 'surrogateescape')
14721  */
14722         __pyx_t_2 = (__pyx_v_parsed->field_data[((int)UF_USERINFO)]).off;
14723         __pyx_v_off = __pyx_t_2;
14724 
14725         /* "aiohttp/_http_parser.pyx":864
14726  *             if parsed.field_set & (1 << cparser.UF_USERINFO):
14727  *                 off = parsed.field_data[<int>cparser.UF_USERINFO].off
14728  *                 ln = parsed.field_data[<int>cparser.UF_USERINFO].len             # <<<<<<<<<<<<<<
14729  *                 userinfo = buf_data[off:off+ln].decode('utf-8', 'surrogateescape')
14730  *
14731  */
14732         __pyx_t_2 = (__pyx_v_parsed->field_data[((int)UF_USERINFO)]).len;
14733         __pyx_v_ln = __pyx_t_2;
14734 
14735         /* "aiohttp/_http_parser.pyx":865
14736  *                 off = parsed.field_data[<int>cparser.UF_USERINFO].off
14737  *                 ln = parsed.field_data[<int>cparser.UF_USERINFO].len
14738  *                 userinfo = buf_data[off:off+ln].decode('utf-8', 'surrogateescape')             # <<<<<<<<<<<<<<
14739  *
14740  *                 user, sep, password = userinfo.partition(':')
14741  */
14742         __pyx_t_3 = __Pyx_decode_c_string(__pyx_v_buf_data, __pyx_v_off, (__pyx_v_off + __pyx_v_ln), NULL, ((char const *)"surrogateescape"), PyUnicode_DecodeUTF8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 865, __pyx_L5_error)
14743         __Pyx_GOTREF(__pyx_t_3);
14744         __Pyx_DECREF_SET(__pyx_v_userinfo, ((PyObject*)__pyx_t_3));
14745         __pyx_t_3 = 0;
14746 
14747         /* "aiohttp/_http_parser.pyx":867
14748  *                 userinfo = buf_data[off:off+ln].decode('utf-8', 'surrogateescape')
14749  *
14750  *                 user, sep, password = userinfo.partition(':')             # <<<<<<<<<<<<<<
14751  *
14752  *             return URL_build(scheme=schema,
14753  */
14754         __pyx_t_3 = __Pyx_CallUnboundCMethod1(&__pyx_umethod_PyUnicode_Type_partition, __pyx_v_userinfo, __pyx_kp_u__11); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 867, __pyx_L5_error)
14755         __Pyx_GOTREF(__pyx_t_3);
14756         if ((likely(PyTuple_CheckExact(__pyx_t_3))) || (PyList_CheckExact(__pyx_t_3))) {
14757           PyObject* sequence = __pyx_t_3;
14758           Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
14759           if (unlikely(size != 3)) {
14760             if (size > 3) __Pyx_RaiseTooManyValuesError(3);
14761             else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
14762             __PYX_ERR(0, 867, __pyx_L5_error)
14763           }
14764           #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
14765           if (likely(PyTuple_CheckExact(sequence))) {
14766             __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0);
14767             __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1);
14768             __pyx_t_6 = PyTuple_GET_ITEM(sequence, 2);
14769           } else {
14770             __pyx_t_4 = PyList_GET_ITEM(sequence, 0);
14771             __pyx_t_5 = PyList_GET_ITEM(sequence, 1);
14772             __pyx_t_6 = PyList_GET_ITEM(sequence, 2);
14773           }
14774           __Pyx_INCREF(__pyx_t_4);
14775           __Pyx_INCREF(__pyx_t_5);
14776           __Pyx_INCREF(__pyx_t_6);
14777           #else
14778           __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 867, __pyx_L5_error)
14779           __Pyx_GOTREF(__pyx_t_4);
14780           __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 867, __pyx_L5_error)
14781           __Pyx_GOTREF(__pyx_t_5);
14782           __pyx_t_6 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 867, __pyx_L5_error)
14783           __Pyx_GOTREF(__pyx_t_6);
14784           #endif
14785           __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
14786         } else {
14787           Py_ssize_t index = -1;
14788           __pyx_t_7 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 867, __pyx_L5_error)
14789           __Pyx_GOTREF(__pyx_t_7);
14790           __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
14791           __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext;
14792           index = 0; __pyx_t_4 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_4)) goto __pyx_L15_unpacking_failed;
14793           __Pyx_GOTREF(__pyx_t_4);
14794           index = 1; __pyx_t_5 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_5)) goto __pyx_L15_unpacking_failed;
14795           __Pyx_GOTREF(__pyx_t_5);
14796           index = 2; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L15_unpacking_failed;
14797           __Pyx_GOTREF(__pyx_t_6);
14798           if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 3) < 0) __PYX_ERR(0, 867, __pyx_L5_error)
14799           __pyx_t_8 = NULL;
14800           __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
14801           goto __pyx_L16_unpacking_done;
14802           __pyx_L15_unpacking_failed:;
14803           __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
14804           __pyx_t_8 = NULL;
14805           if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
14806           __PYX_ERR(0, 867, __pyx_L5_error)
14807           __pyx_L16_unpacking_done:;
14808         }
14809         if (!(likely(PyUnicode_CheckExact(__pyx_t_4))||((__pyx_t_4) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_4)->tp_name), 0))) __PYX_ERR(0, 867, __pyx_L5_error)
14810         if (!(likely(PyUnicode_CheckExact(__pyx_t_6))||((__pyx_t_6) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_6)->tp_name), 0))) __PYX_ERR(0, 867, __pyx_L5_error)
14811         __Pyx_DECREF_SET(__pyx_v_user, ((PyObject*)__pyx_t_4));
14812         __pyx_t_4 = 0;
14813         __pyx_v_sep = __pyx_t_5;
14814         __pyx_t_5 = 0;
14815         __Pyx_DECREF_SET(__pyx_v_password, ((PyObject*)__pyx_t_6));
14816         __pyx_t_6 = 0;
14817 
14818         /* "aiohttp/_http_parser.pyx":862
14819  *                 fragment = ''
14820  *
14821  *             if parsed.field_set & (1 << cparser.UF_USERINFO):             # <<<<<<<<<<<<<<
14822  *                 off = parsed.field_data[<int>cparser.UF_USERINFO].off
14823  *                 ln = parsed.field_data[<int>cparser.UF_USERINFO].len
14824  */
14825       }
14826 
14827       /* "aiohttp/_http_parser.pyx":869
14828  *                 user, sep, password = userinfo.partition(':')
14829  *
14830  *             return URL_build(scheme=schema,             # <<<<<<<<<<<<<<
14831  *                              user=user, password=password, host=host, port=port,
14832  *                              path=path, query_string=query, fragment=fragment, encoded=True)
14833  */
14834       __Pyx_XDECREF(__pyx_r);
14835       __pyx_t_3 = __Pyx_PyDict_NewPresized(9); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 869, __pyx_L5_error)
14836       __Pyx_GOTREF(__pyx_t_3);
14837       if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_scheme, __pyx_v_schema) < 0) __PYX_ERR(0, 869, __pyx_L5_error)
14838 
14839       /* "aiohttp/_http_parser.pyx":870
14840  *
14841  *             return URL_build(scheme=schema,
14842  *                              user=user, password=password, host=host, port=port,             # <<<<<<<<<<<<<<
14843  *                              path=path, query_string=query, fragment=fragment, encoded=True)
14844  *         else:
14845  */
14846       if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_user, __pyx_v_user) < 0) __PYX_ERR(0, 869, __pyx_L5_error)
14847       if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_password, __pyx_v_password) < 0) __PYX_ERR(0, 869, __pyx_L5_error)
14848       if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_host, __pyx_v_host) < 0) __PYX_ERR(0, 869, __pyx_L5_error)
14849       if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_port, __pyx_v_port) < 0) __PYX_ERR(0, 869, __pyx_L5_error)
14850 
14851       /* "aiohttp/_http_parser.pyx":871
14852  *             return URL_build(scheme=schema,
14853  *                              user=user, password=password, host=host, port=port,
14854  *                              path=path, query_string=query, fragment=fragment, encoded=True)             # <<<<<<<<<<<<<<
14855  *         else:
14856  *             raise InvalidURLError("invalid url {!r}".format(buf_data))
14857  */
14858       if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_path, __pyx_v_path) < 0) __PYX_ERR(0, 869, __pyx_L5_error)
14859       if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_query_string, __pyx_v_query) < 0) __PYX_ERR(0, 869, __pyx_L5_error)
14860       if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_fragment, __pyx_v_fragment) < 0) __PYX_ERR(0, 869, __pyx_L5_error)
14861       if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_encoded, Py_True) < 0) __PYX_ERR(0, 869, __pyx_L5_error)
14862 
14863       /* "aiohttp/_http_parser.pyx":869
14864  *                 user, sep, password = userinfo.partition(':')
14865  *
14866  *             return URL_build(scheme=schema,             # <<<<<<<<<<<<<<
14867  *                              user=user, password=password, host=host, port=port,
14868  *                              path=path, query_string=query, fragment=fragment, encoded=True)
14869  */
14870       __pyx_t_6 = __Pyx_PyObject_Call(__pyx_v_7aiohttp_12_http_parser_URL_build, __pyx_empty_tuple, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 869, __pyx_L5_error)
14871       __Pyx_GOTREF(__pyx_t_6);
14872       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
14873       __pyx_r = __pyx_t_6;
14874       __pyx_t_6 = 0;
14875       goto __pyx_L4_return;
14876 
14877       /* "aiohttp/_http_parser.pyx":823
14878  *         res = cparser.http_parser_parse_url(buf_data, length, 0, parsed)
14879  *
14880  *         if res == 0:             # <<<<<<<<<<<<<<
14881  *             if parsed.field_set & (1 << cparser.UF_SCHEMA):
14882  *                 off = parsed.field_data[<int>cparser.UF_SCHEMA].off
14883  */
14884     }
14885 
14886     /* "aiohttp/_http_parser.pyx":873
14887  *                              path=path, query_string=query, fragment=fragment, encoded=True)
14888  *         else:
14889  *             raise InvalidURLError("invalid url {!r}".format(buf_data))             # <<<<<<<<<<<<<<
14890  *     finally:
14891  *         PyMem_Free(parsed)
14892  */
14893     /*else*/ {
14894       __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_InvalidURLError); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 873, __pyx_L5_error)
14895       __Pyx_GOTREF(__pyx_t_3);
14896       __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_invalid_url_r, __pyx_n_s_format); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 873, __pyx_L5_error)
14897       __Pyx_GOTREF(__pyx_t_4);
14898       __pyx_t_7 = __Pyx_PyBytes_FromString(__pyx_v_buf_data); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 873, __pyx_L5_error)
14899       __Pyx_GOTREF(__pyx_t_7);
14900       __pyx_t_9 = NULL;
14901       if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
14902         __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_4);
14903         if (likely(__pyx_t_9)) {
14904           PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
14905           __Pyx_INCREF(__pyx_t_9);
14906           __Pyx_INCREF(function);
14907           __Pyx_DECREF_SET(__pyx_t_4, function);
14908         }
14909       }
14910       __pyx_t_5 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_9, __pyx_t_7) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_7);
14911       __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
14912       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
14913       if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 873, __pyx_L5_error)
14914       __Pyx_GOTREF(__pyx_t_5);
14915       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
14916       __pyx_t_4 = NULL;
14917       if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
14918         __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
14919         if (likely(__pyx_t_4)) {
14920           PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
14921           __Pyx_INCREF(__pyx_t_4);
14922           __Pyx_INCREF(function);
14923           __Pyx_DECREF_SET(__pyx_t_3, function);
14924         }
14925       }
14926       __pyx_t_6 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_5);
14927       __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
14928       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
14929       if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 873, __pyx_L5_error)
14930       __Pyx_GOTREF(__pyx_t_6);
14931       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
14932       __Pyx_Raise(__pyx_t_6, 0, 0, 0);
14933       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
14934       __PYX_ERR(0, 873, __pyx_L5_error)
14935     }
14936   }
14937 
14938   /* "aiohttp/_http_parser.pyx":875
14939  *             raise InvalidURLError("invalid url {!r}".format(buf_data))
14940  *     finally:
14941  *         PyMem_Free(parsed)             # <<<<<<<<<<<<<<
14942  */
14943   /*finally:*/ {
14944     __pyx_L5_error:;
14945     /*exception exit:*/{
14946       __Pyx_PyThreadState_declare
14947       __Pyx_PyThreadState_assign
14948       __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0;
14949       __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
14950       __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
14951       __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
14952       __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
14953       __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
14954       __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
14955       if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18);
14956       if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_13, &__pyx_t_14, &__pyx_t_15) < 0)) __Pyx_ErrFetch(&__pyx_t_13, &__pyx_t_14, &__pyx_t_15);
14957       __Pyx_XGOTREF(__pyx_t_13);
14958       __Pyx_XGOTREF(__pyx_t_14);
14959       __Pyx_XGOTREF(__pyx_t_15);
14960       __Pyx_XGOTREF(__pyx_t_16);
14961       __Pyx_XGOTREF(__pyx_t_17);
14962       __Pyx_XGOTREF(__pyx_t_18);
14963       __pyx_t_10 = __pyx_lineno; __pyx_t_11 = __pyx_clineno; __pyx_t_12 = __pyx_filename;
14964       {
14965         PyMem_Free(__pyx_v_parsed);
14966       }
14967       if (PY_MAJOR_VERSION >= 3) {
14968         __Pyx_XGIVEREF(__pyx_t_16);
14969         __Pyx_XGIVEREF(__pyx_t_17);
14970         __Pyx_XGIVEREF(__pyx_t_18);
14971         __Pyx_ExceptionReset(__pyx_t_16, __pyx_t_17, __pyx_t_18);
14972       }
14973       __Pyx_XGIVEREF(__pyx_t_13);
14974       __Pyx_XGIVEREF(__pyx_t_14);
14975       __Pyx_XGIVEREF(__pyx_t_15);
14976       __Pyx_ErrRestore(__pyx_t_13, __pyx_t_14, __pyx_t_15);
14977       __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0;
14978       __pyx_lineno = __pyx_t_10; __pyx_clineno = __pyx_t_11; __pyx_filename = __pyx_t_12;
14979       goto __pyx_L1_error;
14980     }
14981     __pyx_L4_return: {
14982       __pyx_t_18 = __pyx_r;
14983       __pyx_r = 0;
14984       PyMem_Free(__pyx_v_parsed);
14985       __pyx_r = __pyx_t_18;
14986       __pyx_t_18 = 0;
14987       goto __pyx_L0;
14988     }
14989   }
14990 
14991   /* "aiohttp/_http_parser.pyx":798
14992  *
14993  *
14994  * cdef _parse_url(char* buf_data, size_t length):             # <<<<<<<<<<<<<<
14995  *     cdef:
14996  *         cparser.http_parser_url* parsed
14997  */
14998 
14999   /* function exit code */
15000   __pyx_L1_error:;
15001   __Pyx_XDECREF(__pyx_t_3);
15002   __Pyx_XDECREF(__pyx_t_4);
15003   __Pyx_XDECREF(__pyx_t_5);
15004   __Pyx_XDECREF(__pyx_t_6);
15005   __Pyx_XDECREF(__pyx_t_7);
15006   __Pyx_XDECREF(__pyx_t_9);
15007   __Pyx_AddTraceback("aiohttp._http_parser._parse_url", __pyx_clineno, __pyx_lineno, __pyx_filename);
15008   __pyx_r = 0;
15009   __pyx_L0:;
15010   __Pyx_XDECREF(__pyx_v_schema);
15011   __Pyx_XDECREF(__pyx_v_host);
15012   __Pyx_XDECREF(__pyx_v_port);
15013   __Pyx_XDECREF(__pyx_v_path);
15014   __Pyx_XDECREF(__pyx_v_query);
15015   __Pyx_XDECREF(__pyx_v_fragment);
15016   __Pyx_XDECREF(__pyx_v_user);
15017   __Pyx_XDECREF(__pyx_v_password);
15018   __Pyx_XDECREF(__pyx_v_userinfo);
15019   __Pyx_XDECREF(__pyx_v_result);
15020   __Pyx_XDECREF(__pyx_v_sep);
15021   __Pyx_XGIVEREF(__pyx_r);
15022   __Pyx_RefNannyFinishContext();
15023   return __pyx_r;
15024 }
15025 
15026 /* "(tree fragment)":1
15027  * def __pyx_unpickle_RawRequestMessage(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
15028  *     cdef object __pyx_PickleError
15029  *     cdef object __pyx_result
15030  */
15031 
15032 /* Python wrapper */
15033 static PyObject *__pyx_pw_7aiohttp_12_http_parser_3__pyx_unpickle_RawRequestMessage(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
15034 static PyMethodDef __pyx_mdef_7aiohttp_12_http_parser_3__pyx_unpickle_RawRequestMessage = {"__pyx_unpickle_RawRequestMessage", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_7aiohttp_12_http_parser_3__pyx_unpickle_RawRequestMessage, METH_VARARGS|METH_KEYWORDS, 0};
__pyx_pw_7aiohttp_12_http_parser_3__pyx_unpickle_RawRequestMessage(PyObject * __pyx_self,PyObject * __pyx_args,PyObject * __pyx_kwds)15035 static PyObject *__pyx_pw_7aiohttp_12_http_parser_3__pyx_unpickle_RawRequestMessage(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
15036   PyObject *__pyx_v___pyx_type = 0;
15037   long __pyx_v___pyx_checksum;
15038   PyObject *__pyx_v___pyx_state = 0;
15039   int __pyx_lineno = 0;
15040   const char *__pyx_filename = NULL;
15041   int __pyx_clineno = 0;
15042   PyObject *__pyx_r = 0;
15043   __Pyx_RefNannyDeclarations
15044   __Pyx_RefNannySetupContext("__pyx_unpickle_RawRequestMessage (wrapper)", 0);
15045   {
15046     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
15047     PyObject* values[3] = {0,0,0};
15048     if (unlikely(__pyx_kwds)) {
15049       Py_ssize_t kw_args;
15050       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
15051       switch (pos_args) {
15052         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
15053         CYTHON_FALLTHROUGH;
15054         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
15055         CYTHON_FALLTHROUGH;
15056         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
15057         CYTHON_FALLTHROUGH;
15058         case  0: break;
15059         default: goto __pyx_L5_argtuple_error;
15060       }
15061       kw_args = PyDict_Size(__pyx_kwds);
15062       switch (pos_args) {
15063         case  0:
15064         if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_type)) != 0)) kw_args--;
15065         else goto __pyx_L5_argtuple_error;
15066         CYTHON_FALLTHROUGH;
15067         case  1:
15068         if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_checksum)) != 0)) kw_args--;
15069         else {
15070           __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_RawRequestMessage", 1, 3, 3, 1); __PYX_ERR(1, 1, __pyx_L3_error)
15071         }
15072         CYTHON_FALLTHROUGH;
15073         case  2:
15074         if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_state)) != 0)) kw_args--;
15075         else {
15076           __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_RawRequestMessage", 1, 3, 3, 2); __PYX_ERR(1, 1, __pyx_L3_error)
15077         }
15078       }
15079       if (unlikely(kw_args > 0)) {
15080         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_unpickle_RawRequestMessage") < 0)) __PYX_ERR(1, 1, __pyx_L3_error)
15081       }
15082     } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
15083       goto __pyx_L5_argtuple_error;
15084     } else {
15085       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
15086       values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
15087       values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
15088     }
15089     __pyx_v___pyx_type = values[0];
15090     __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
15091     __pyx_v___pyx_state = values[2];
15092   }
15093   goto __pyx_L4_argument_unpacking_done;
15094   __pyx_L5_argtuple_error:;
15095   __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_RawRequestMessage", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 1, __pyx_L3_error)
15096   __pyx_L3_error:;
15097   __Pyx_AddTraceback("aiohttp._http_parser.__pyx_unpickle_RawRequestMessage", __pyx_clineno, __pyx_lineno, __pyx_filename);
15098   __Pyx_RefNannyFinishContext();
15099   return NULL;
15100   __pyx_L4_argument_unpacking_done:;
15101   __pyx_r = __pyx_pf_7aiohttp_12_http_parser_2__pyx_unpickle_RawRequestMessage(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);
15102 
15103   /* function exit code */
15104   __Pyx_RefNannyFinishContext();
15105   return __pyx_r;
15106 }
15107 
__pyx_pf_7aiohttp_12_http_parser_2__pyx_unpickle_RawRequestMessage(CYTHON_UNUSED PyObject * __pyx_self,PyObject * __pyx_v___pyx_type,long __pyx_v___pyx_checksum,PyObject * __pyx_v___pyx_state)15108 static PyObject *__pyx_pf_7aiohttp_12_http_parser_2__pyx_unpickle_RawRequestMessage(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
15109   PyObject *__pyx_v___pyx_PickleError = 0;
15110   PyObject *__pyx_v___pyx_result = 0;
15111   PyObject *__pyx_r = NULL;
15112   __Pyx_RefNannyDeclarations
15113   int __pyx_t_1;
15114   PyObject *__pyx_t_2 = NULL;
15115   PyObject *__pyx_t_3 = NULL;
15116   PyObject *__pyx_t_4 = NULL;
15117   PyObject *__pyx_t_5 = NULL;
15118   int __pyx_t_6;
15119   int __pyx_lineno = 0;
15120   const char *__pyx_filename = NULL;
15121   int __pyx_clineno = 0;
15122   __Pyx_RefNannySetupContext("__pyx_unpickle_RawRequestMessage", 0);
15123 
15124   /* "(tree fragment)":4
15125  *     cdef object __pyx_PickleError
15126  *     cdef object __pyx_result
15127  *     if __pyx_checksum != 0x1408252:             # <<<<<<<<<<<<<<
15128  *         from pickle import PickleError as __pyx_PickleError
15129  *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x1408252 = (chunked, compression, headers, method, path, raw_headers, should_close, upgrade, url, version))" % __pyx_checksum)
15130  */
15131   __pyx_t_1 = ((__pyx_v___pyx_checksum != 0x1408252) != 0);
15132   if (__pyx_t_1) {
15133 
15134     /* "(tree fragment)":5
15135  *     cdef object __pyx_result
15136  *     if __pyx_checksum != 0x1408252:
15137  *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
15138  *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x1408252 = (chunked, compression, headers, method, path, raw_headers, should_close, upgrade, url, version))" % __pyx_checksum)
15139  *     __pyx_result = RawRequestMessage.__new__(__pyx_type)
15140  */
15141     __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error)
15142     __Pyx_GOTREF(__pyx_t_2);
15143     __Pyx_INCREF(__pyx_n_s_PickleError);
15144     __Pyx_GIVEREF(__pyx_n_s_PickleError);
15145     PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_PickleError);
15146     __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_2, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
15147     __Pyx_GOTREF(__pyx_t_3);
15148     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
15149     __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error)
15150     __Pyx_GOTREF(__pyx_t_2);
15151     __Pyx_INCREF(__pyx_t_2);
15152     __pyx_v___pyx_PickleError = __pyx_t_2;
15153     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
15154     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
15155 
15156     /* "(tree fragment)":6
15157  *     if __pyx_checksum != 0x1408252:
15158  *         from pickle import PickleError as __pyx_PickleError
15159  *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x1408252 = (chunked, compression, headers, method, path, raw_headers, should_close, upgrade, url, version))" % __pyx_checksum)             # <<<<<<<<<<<<<<
15160  *     __pyx_result = RawRequestMessage.__new__(__pyx_type)
15161  *     if __pyx_state is not None:
15162  */
15163     __pyx_t_2 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 6, __pyx_L1_error)
15164     __Pyx_GOTREF(__pyx_t_2);
15165     __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_s_vs_0x14, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 6, __pyx_L1_error)
15166     __Pyx_GOTREF(__pyx_t_4);
15167     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
15168     __Pyx_INCREF(__pyx_v___pyx_PickleError);
15169     __pyx_t_2 = __pyx_v___pyx_PickleError; __pyx_t_5 = NULL;
15170     if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
15171       __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2);
15172       if (likely(__pyx_t_5)) {
15173         PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
15174         __Pyx_INCREF(__pyx_t_5);
15175         __Pyx_INCREF(function);
15176         __Pyx_DECREF_SET(__pyx_t_2, function);
15177       }
15178     }
15179     __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4);
15180     __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
15181     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
15182     if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 6, __pyx_L1_error)
15183     __Pyx_GOTREF(__pyx_t_3);
15184     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
15185     __Pyx_Raise(__pyx_t_3, 0, 0, 0);
15186     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
15187     __PYX_ERR(1, 6, __pyx_L1_error)
15188 
15189     /* "(tree fragment)":4
15190  *     cdef object __pyx_PickleError
15191  *     cdef object __pyx_result
15192  *     if __pyx_checksum != 0x1408252:             # <<<<<<<<<<<<<<
15193  *         from pickle import PickleError as __pyx_PickleError
15194  *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x1408252 = (chunked, compression, headers, method, path, raw_headers, should_close, upgrade, url, version))" % __pyx_checksum)
15195  */
15196   }
15197 
15198   /* "(tree fragment)":7
15199  *         from pickle import PickleError as __pyx_PickleError
15200  *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x1408252 = (chunked, compression, headers, method, path, raw_headers, should_close, upgrade, url, version))" % __pyx_checksum)
15201  *     __pyx_result = RawRequestMessage.__new__(__pyx_type)             # <<<<<<<<<<<<<<
15202  *     if __pyx_state is not None:
15203  *         __pyx_unpickle_RawRequestMessage__set_state(<RawRequestMessage> __pyx_result, __pyx_state)
15204  */
15205   __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_7aiohttp_12_http_parser_RawRequestMessage), __pyx_n_s_new); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 7, __pyx_L1_error)
15206   __Pyx_GOTREF(__pyx_t_2);
15207   __pyx_t_4 = NULL;
15208   if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
15209     __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
15210     if (likely(__pyx_t_4)) {
15211       PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
15212       __Pyx_INCREF(__pyx_t_4);
15213       __Pyx_INCREF(function);
15214       __Pyx_DECREF_SET(__pyx_t_2, function);
15215     }
15216   }
15217   __pyx_t_3 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_v___pyx_type) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v___pyx_type);
15218   __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
15219   if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 7, __pyx_L1_error)
15220   __Pyx_GOTREF(__pyx_t_3);
15221   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
15222   __pyx_v___pyx_result = __pyx_t_3;
15223   __pyx_t_3 = 0;
15224 
15225   /* "(tree fragment)":8
15226  *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x1408252 = (chunked, compression, headers, method, path, raw_headers, should_close, upgrade, url, version))" % __pyx_checksum)
15227  *     __pyx_result = RawRequestMessage.__new__(__pyx_type)
15228  *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
15229  *         __pyx_unpickle_RawRequestMessage__set_state(<RawRequestMessage> __pyx_result, __pyx_state)
15230  *     return __pyx_result
15231  */
15232   __pyx_t_1 = (__pyx_v___pyx_state != Py_None);
15233   __pyx_t_6 = (__pyx_t_1 != 0);
15234   if (__pyx_t_6) {
15235 
15236     /* "(tree fragment)":9
15237  *     __pyx_result = RawRequestMessage.__new__(__pyx_type)
15238  *     if __pyx_state is not None:
15239  *         __pyx_unpickle_RawRequestMessage__set_state(<RawRequestMessage> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
15240  *     return __pyx_result
15241  * cdef __pyx_unpickle_RawRequestMessage__set_state(RawRequestMessage __pyx_result, tuple __pyx_state):
15242  */
15243     if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(1, 9, __pyx_L1_error)
15244     __pyx_t_3 = __pyx_f_7aiohttp_12_http_parser___pyx_unpickle_RawRequestMessage__set_state(((struct __pyx_obj_7aiohttp_12_http_parser_RawRequestMessage *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 9, __pyx_L1_error)
15245     __Pyx_GOTREF(__pyx_t_3);
15246     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
15247 
15248     /* "(tree fragment)":8
15249  *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x1408252 = (chunked, compression, headers, method, path, raw_headers, should_close, upgrade, url, version))" % __pyx_checksum)
15250  *     __pyx_result = RawRequestMessage.__new__(__pyx_type)
15251  *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
15252  *         __pyx_unpickle_RawRequestMessage__set_state(<RawRequestMessage> __pyx_result, __pyx_state)
15253  *     return __pyx_result
15254  */
15255   }
15256 
15257   /* "(tree fragment)":10
15258  *     if __pyx_state is not None:
15259  *         __pyx_unpickle_RawRequestMessage__set_state(<RawRequestMessage> __pyx_result, __pyx_state)
15260  *     return __pyx_result             # <<<<<<<<<<<<<<
15261  * cdef __pyx_unpickle_RawRequestMessage__set_state(RawRequestMessage __pyx_result, tuple __pyx_state):
15262  *     __pyx_result.chunked = __pyx_state[0]; __pyx_result.compression = __pyx_state[1]; __pyx_result.headers = __pyx_state[2]; __pyx_result.method = __pyx_state[3]; __pyx_result.path = __pyx_state[4]; __pyx_result.raw_headers = __pyx_state[5]; __pyx_result.should_close = __pyx_state[6]; __pyx_result.upgrade = __pyx_state[7]; __pyx_result.url = __pyx_state[8]; __pyx_result.version = __pyx_state[9]
15263  */
15264   __Pyx_XDECREF(__pyx_r);
15265   __Pyx_INCREF(__pyx_v___pyx_result);
15266   __pyx_r = __pyx_v___pyx_result;
15267   goto __pyx_L0;
15268 
15269   /* "(tree fragment)":1
15270  * def __pyx_unpickle_RawRequestMessage(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
15271  *     cdef object __pyx_PickleError
15272  *     cdef object __pyx_result
15273  */
15274 
15275   /* function exit code */
15276   __pyx_L1_error:;
15277   __Pyx_XDECREF(__pyx_t_2);
15278   __Pyx_XDECREF(__pyx_t_3);
15279   __Pyx_XDECREF(__pyx_t_4);
15280   __Pyx_XDECREF(__pyx_t_5);
15281   __Pyx_AddTraceback("aiohttp._http_parser.__pyx_unpickle_RawRequestMessage", __pyx_clineno, __pyx_lineno, __pyx_filename);
15282   __pyx_r = NULL;
15283   __pyx_L0:;
15284   __Pyx_XDECREF(__pyx_v___pyx_PickleError);
15285   __Pyx_XDECREF(__pyx_v___pyx_result);
15286   __Pyx_XGIVEREF(__pyx_r);
15287   __Pyx_RefNannyFinishContext();
15288   return __pyx_r;
15289 }
15290 
15291 /* "(tree fragment)":11
15292  *         __pyx_unpickle_RawRequestMessage__set_state(<RawRequestMessage> __pyx_result, __pyx_state)
15293  *     return __pyx_result
15294  * cdef __pyx_unpickle_RawRequestMessage__set_state(RawRequestMessage __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
15295  *     __pyx_result.chunked = __pyx_state[0]; __pyx_result.compression = __pyx_state[1]; __pyx_result.headers = __pyx_state[2]; __pyx_result.method = __pyx_state[3]; __pyx_result.path = __pyx_state[4]; __pyx_result.raw_headers = __pyx_state[5]; __pyx_result.should_close = __pyx_state[6]; __pyx_result.upgrade = __pyx_state[7]; __pyx_result.url = __pyx_state[8]; __pyx_result.version = __pyx_state[9]
15296  *     if len(__pyx_state) > 10 and hasattr(__pyx_result, '__dict__'):
15297  */
15298 
__pyx_f_7aiohttp_12_http_parser___pyx_unpickle_RawRequestMessage__set_state(struct __pyx_obj_7aiohttp_12_http_parser_RawRequestMessage * __pyx_v___pyx_result,PyObject * __pyx_v___pyx_state)15299 static PyObject *__pyx_f_7aiohttp_12_http_parser___pyx_unpickle_RawRequestMessage__set_state(struct __pyx_obj_7aiohttp_12_http_parser_RawRequestMessage *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
15300   PyObject *__pyx_r = NULL;
15301   __Pyx_RefNannyDeclarations
15302   PyObject *__pyx_t_1 = NULL;
15303   int __pyx_t_2;
15304   Py_ssize_t __pyx_t_3;
15305   int __pyx_t_4;
15306   int __pyx_t_5;
15307   PyObject *__pyx_t_6 = NULL;
15308   PyObject *__pyx_t_7 = NULL;
15309   PyObject *__pyx_t_8 = NULL;
15310   int __pyx_lineno = 0;
15311   const char *__pyx_filename = NULL;
15312   int __pyx_clineno = 0;
15313   __Pyx_RefNannySetupContext("__pyx_unpickle_RawRequestMessage__set_state", 0);
15314 
15315   /* "(tree fragment)":12
15316  *     return __pyx_result
15317  * cdef __pyx_unpickle_RawRequestMessage__set_state(RawRequestMessage __pyx_result, tuple __pyx_state):
15318  *     __pyx_result.chunked = __pyx_state[0]; __pyx_result.compression = __pyx_state[1]; __pyx_result.headers = __pyx_state[2]; __pyx_result.method = __pyx_state[3]; __pyx_result.path = __pyx_state[4]; __pyx_result.raw_headers = __pyx_state[5]; __pyx_result.should_close = __pyx_state[6]; __pyx_result.upgrade = __pyx_state[7]; __pyx_result.url = __pyx_state[8]; __pyx_result.version = __pyx_state[9]             # <<<<<<<<<<<<<<
15319  *     if len(__pyx_state) > 10 and hasattr(__pyx_result, '__dict__'):
15320  *         __pyx_result.__dict__.update(__pyx_state[10])
15321  */
15322   if (unlikely(__pyx_v___pyx_state == Py_None)) {
15323     PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
15324     __PYX_ERR(1, 12, __pyx_L1_error)
15325   }
15326   __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
15327   __Pyx_GOTREF(__pyx_t_1);
15328   __Pyx_GIVEREF(__pyx_t_1);
15329   __Pyx_GOTREF(__pyx_v___pyx_result->chunked);
15330   __Pyx_DECREF(__pyx_v___pyx_result->chunked);
15331   __pyx_v___pyx_result->chunked = __pyx_t_1;
15332   __pyx_t_1 = 0;
15333   if (unlikely(__pyx_v___pyx_state == Py_None)) {
15334     PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
15335     __PYX_ERR(1, 12, __pyx_L1_error)
15336   }
15337   __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
15338   __Pyx_GOTREF(__pyx_t_1);
15339   __Pyx_GIVEREF(__pyx_t_1);
15340   __Pyx_GOTREF(__pyx_v___pyx_result->compression);
15341   __Pyx_DECREF(__pyx_v___pyx_result->compression);
15342   __pyx_v___pyx_result->compression = __pyx_t_1;
15343   __pyx_t_1 = 0;
15344   if (unlikely(__pyx_v___pyx_state == Py_None)) {
15345     PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
15346     __PYX_ERR(1, 12, __pyx_L1_error)
15347   }
15348   __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
15349   __Pyx_GOTREF(__pyx_t_1);
15350   __Pyx_GIVEREF(__pyx_t_1);
15351   __Pyx_GOTREF(__pyx_v___pyx_result->headers);
15352   __Pyx_DECREF(__pyx_v___pyx_result->headers);
15353   __pyx_v___pyx_result->headers = __pyx_t_1;
15354   __pyx_t_1 = 0;
15355   if (unlikely(__pyx_v___pyx_state == Py_None)) {
15356     PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
15357     __PYX_ERR(1, 12, __pyx_L1_error)
15358   }
15359   __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
15360   __Pyx_GOTREF(__pyx_t_1);
15361   if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(1, 12, __pyx_L1_error)
15362   __Pyx_GIVEREF(__pyx_t_1);
15363   __Pyx_GOTREF(__pyx_v___pyx_result->method);
15364   __Pyx_DECREF(__pyx_v___pyx_result->method);
15365   __pyx_v___pyx_result->method = ((PyObject*)__pyx_t_1);
15366   __pyx_t_1 = 0;
15367   if (unlikely(__pyx_v___pyx_state == Py_None)) {
15368     PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
15369     __PYX_ERR(1, 12, __pyx_L1_error)
15370   }
15371   __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
15372   __Pyx_GOTREF(__pyx_t_1);
15373   if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(1, 12, __pyx_L1_error)
15374   __Pyx_GIVEREF(__pyx_t_1);
15375   __Pyx_GOTREF(__pyx_v___pyx_result->path);
15376   __Pyx_DECREF(__pyx_v___pyx_result->path);
15377   __pyx_v___pyx_result->path = ((PyObject*)__pyx_t_1);
15378   __pyx_t_1 = 0;
15379   if (unlikely(__pyx_v___pyx_state == Py_None)) {
15380     PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
15381     __PYX_ERR(1, 12, __pyx_L1_error)
15382   }
15383   __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 5, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
15384   __Pyx_GOTREF(__pyx_t_1);
15385   __Pyx_GIVEREF(__pyx_t_1);
15386   __Pyx_GOTREF(__pyx_v___pyx_result->raw_headers);
15387   __Pyx_DECREF(__pyx_v___pyx_result->raw_headers);
15388   __pyx_v___pyx_result->raw_headers = __pyx_t_1;
15389   __pyx_t_1 = 0;
15390   if (unlikely(__pyx_v___pyx_state == Py_None)) {
15391     PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
15392     __PYX_ERR(1, 12, __pyx_L1_error)
15393   }
15394   __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 6, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
15395   __Pyx_GOTREF(__pyx_t_1);
15396   __Pyx_GIVEREF(__pyx_t_1);
15397   __Pyx_GOTREF(__pyx_v___pyx_result->should_close);
15398   __Pyx_DECREF(__pyx_v___pyx_result->should_close);
15399   __pyx_v___pyx_result->should_close = __pyx_t_1;
15400   __pyx_t_1 = 0;
15401   if (unlikely(__pyx_v___pyx_state == Py_None)) {
15402     PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
15403     __PYX_ERR(1, 12, __pyx_L1_error)
15404   }
15405   __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 7, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
15406   __Pyx_GOTREF(__pyx_t_1);
15407   __Pyx_GIVEREF(__pyx_t_1);
15408   __Pyx_GOTREF(__pyx_v___pyx_result->upgrade);
15409   __Pyx_DECREF(__pyx_v___pyx_result->upgrade);
15410   __pyx_v___pyx_result->upgrade = __pyx_t_1;
15411   __pyx_t_1 = 0;
15412   if (unlikely(__pyx_v___pyx_state == Py_None)) {
15413     PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
15414     __PYX_ERR(1, 12, __pyx_L1_error)
15415   }
15416   __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 8, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
15417   __Pyx_GOTREF(__pyx_t_1);
15418   __Pyx_GIVEREF(__pyx_t_1);
15419   __Pyx_GOTREF(__pyx_v___pyx_result->url);
15420   __Pyx_DECREF(__pyx_v___pyx_result->url);
15421   __pyx_v___pyx_result->url = __pyx_t_1;
15422   __pyx_t_1 = 0;
15423   if (unlikely(__pyx_v___pyx_state == Py_None)) {
15424     PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
15425     __PYX_ERR(1, 12, __pyx_L1_error)
15426   }
15427   __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 9, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
15428   __Pyx_GOTREF(__pyx_t_1);
15429   __Pyx_GIVEREF(__pyx_t_1);
15430   __Pyx_GOTREF(__pyx_v___pyx_result->version);
15431   __Pyx_DECREF(__pyx_v___pyx_result->version);
15432   __pyx_v___pyx_result->version = __pyx_t_1;
15433   __pyx_t_1 = 0;
15434 
15435   /* "(tree fragment)":13
15436  * cdef __pyx_unpickle_RawRequestMessage__set_state(RawRequestMessage __pyx_result, tuple __pyx_state):
15437  *     __pyx_result.chunked = __pyx_state[0]; __pyx_result.compression = __pyx_state[1]; __pyx_result.headers = __pyx_state[2]; __pyx_result.method = __pyx_state[3]; __pyx_result.path = __pyx_state[4]; __pyx_result.raw_headers = __pyx_state[5]; __pyx_result.should_close = __pyx_state[6]; __pyx_result.upgrade = __pyx_state[7]; __pyx_result.url = __pyx_state[8]; __pyx_result.version = __pyx_state[9]
15438  *     if len(__pyx_state) > 10 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
15439  *         __pyx_result.__dict__.update(__pyx_state[10])
15440  */
15441   if (unlikely(__pyx_v___pyx_state == Py_None)) {
15442     PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
15443     __PYX_ERR(1, 13, __pyx_L1_error)
15444   }
15445   __pyx_t_3 = PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_3 == ((Py_ssize_t)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
15446   __pyx_t_4 = ((__pyx_t_3 > 10) != 0);
15447   if (__pyx_t_4) {
15448   } else {
15449     __pyx_t_2 = __pyx_t_4;
15450     goto __pyx_L4_bool_binop_done;
15451   }
15452   __pyx_t_4 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
15453   __pyx_t_5 = (__pyx_t_4 != 0);
15454   __pyx_t_2 = __pyx_t_5;
15455   __pyx_L4_bool_binop_done:;
15456   if (__pyx_t_2) {
15457 
15458     /* "(tree fragment)":14
15459  *     __pyx_result.chunked = __pyx_state[0]; __pyx_result.compression = __pyx_state[1]; __pyx_result.headers = __pyx_state[2]; __pyx_result.method = __pyx_state[3]; __pyx_result.path = __pyx_state[4]; __pyx_result.raw_headers = __pyx_state[5]; __pyx_result.should_close = __pyx_state[6]; __pyx_result.upgrade = __pyx_state[7]; __pyx_result.url = __pyx_state[8]; __pyx_result.version = __pyx_state[9]
15460  *     if len(__pyx_state) > 10 and hasattr(__pyx_result, '__dict__'):
15461  *         __pyx_result.__dict__.update(__pyx_state[10])             # <<<<<<<<<<<<<<
15462  */
15463     __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
15464     __Pyx_GOTREF(__pyx_t_6);
15465     __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_update); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 14, __pyx_L1_error)
15466     __Pyx_GOTREF(__pyx_t_7);
15467     __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
15468     if (unlikely(__pyx_v___pyx_state == Py_None)) {
15469       PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
15470       __PYX_ERR(1, 14, __pyx_L1_error)
15471     }
15472     __pyx_t_6 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 10, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
15473     __Pyx_GOTREF(__pyx_t_6);
15474     __pyx_t_8 = NULL;
15475     if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) {
15476       __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
15477       if (likely(__pyx_t_8)) {
15478         PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
15479         __Pyx_INCREF(__pyx_t_8);
15480         __Pyx_INCREF(function);
15481         __Pyx_DECREF_SET(__pyx_t_7, function);
15482       }
15483     }
15484     __pyx_t_1 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_8, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_6);
15485     __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
15486     __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
15487     if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 14, __pyx_L1_error)
15488     __Pyx_GOTREF(__pyx_t_1);
15489     __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
15490     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
15491 
15492     /* "(tree fragment)":13
15493  * cdef __pyx_unpickle_RawRequestMessage__set_state(RawRequestMessage __pyx_result, tuple __pyx_state):
15494  *     __pyx_result.chunked = __pyx_state[0]; __pyx_result.compression = __pyx_state[1]; __pyx_result.headers = __pyx_state[2]; __pyx_result.method = __pyx_state[3]; __pyx_result.path = __pyx_state[4]; __pyx_result.raw_headers = __pyx_state[5]; __pyx_result.should_close = __pyx_state[6]; __pyx_result.upgrade = __pyx_state[7]; __pyx_result.url = __pyx_state[8]; __pyx_result.version = __pyx_state[9]
15495  *     if len(__pyx_state) > 10 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
15496  *         __pyx_result.__dict__.update(__pyx_state[10])
15497  */
15498   }
15499 
15500   /* "(tree fragment)":11
15501  *         __pyx_unpickle_RawRequestMessage__set_state(<RawRequestMessage> __pyx_result, __pyx_state)
15502  *     return __pyx_result
15503  * cdef __pyx_unpickle_RawRequestMessage__set_state(RawRequestMessage __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
15504  *     __pyx_result.chunked = __pyx_state[0]; __pyx_result.compression = __pyx_state[1]; __pyx_result.headers = __pyx_state[2]; __pyx_result.method = __pyx_state[3]; __pyx_result.path = __pyx_state[4]; __pyx_result.raw_headers = __pyx_state[5]; __pyx_result.should_close = __pyx_state[6]; __pyx_result.upgrade = __pyx_state[7]; __pyx_result.url = __pyx_state[8]; __pyx_result.version = __pyx_state[9]
15505  *     if len(__pyx_state) > 10 and hasattr(__pyx_result, '__dict__'):
15506  */
15507 
15508   /* function exit code */
15509   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
15510   goto __pyx_L0;
15511   __pyx_L1_error:;
15512   __Pyx_XDECREF(__pyx_t_1);
15513   __Pyx_XDECREF(__pyx_t_6);
15514   __Pyx_XDECREF(__pyx_t_7);
15515   __Pyx_XDECREF(__pyx_t_8);
15516   __Pyx_AddTraceback("aiohttp._http_parser.__pyx_unpickle_RawRequestMessage__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
15517   __pyx_r = 0;
15518   __pyx_L0:;
15519   __Pyx_XGIVEREF(__pyx_r);
15520   __Pyx_RefNannyFinishContext();
15521   return __pyx_r;
15522 }
15523 
15524 /* "(tree fragment)":1
15525  * def __pyx_unpickle_RawResponseMessage(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
15526  *     cdef object __pyx_PickleError
15527  *     cdef object __pyx_result
15528  */
15529 
15530 /* Python wrapper */
15531 static PyObject *__pyx_pw_7aiohttp_12_http_parser_5__pyx_unpickle_RawResponseMessage(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
15532 static PyMethodDef __pyx_mdef_7aiohttp_12_http_parser_5__pyx_unpickle_RawResponseMessage = {"__pyx_unpickle_RawResponseMessage", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_7aiohttp_12_http_parser_5__pyx_unpickle_RawResponseMessage, METH_VARARGS|METH_KEYWORDS, 0};
__pyx_pw_7aiohttp_12_http_parser_5__pyx_unpickle_RawResponseMessage(PyObject * __pyx_self,PyObject * __pyx_args,PyObject * __pyx_kwds)15533 static PyObject *__pyx_pw_7aiohttp_12_http_parser_5__pyx_unpickle_RawResponseMessage(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
15534   PyObject *__pyx_v___pyx_type = 0;
15535   long __pyx_v___pyx_checksum;
15536   PyObject *__pyx_v___pyx_state = 0;
15537   int __pyx_lineno = 0;
15538   const char *__pyx_filename = NULL;
15539   int __pyx_clineno = 0;
15540   PyObject *__pyx_r = 0;
15541   __Pyx_RefNannyDeclarations
15542   __Pyx_RefNannySetupContext("__pyx_unpickle_RawResponseMessage (wrapper)", 0);
15543   {
15544     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
15545     PyObject* values[3] = {0,0,0};
15546     if (unlikely(__pyx_kwds)) {
15547       Py_ssize_t kw_args;
15548       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
15549       switch (pos_args) {
15550         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
15551         CYTHON_FALLTHROUGH;
15552         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
15553         CYTHON_FALLTHROUGH;
15554         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
15555         CYTHON_FALLTHROUGH;
15556         case  0: break;
15557         default: goto __pyx_L5_argtuple_error;
15558       }
15559       kw_args = PyDict_Size(__pyx_kwds);
15560       switch (pos_args) {
15561         case  0:
15562         if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_type)) != 0)) kw_args--;
15563         else goto __pyx_L5_argtuple_error;
15564         CYTHON_FALLTHROUGH;
15565         case  1:
15566         if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_checksum)) != 0)) kw_args--;
15567         else {
15568           __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_RawResponseMessage", 1, 3, 3, 1); __PYX_ERR(1, 1, __pyx_L3_error)
15569         }
15570         CYTHON_FALLTHROUGH;
15571         case  2:
15572         if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_state)) != 0)) kw_args--;
15573         else {
15574           __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_RawResponseMessage", 1, 3, 3, 2); __PYX_ERR(1, 1, __pyx_L3_error)
15575         }
15576       }
15577       if (unlikely(kw_args > 0)) {
15578         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_unpickle_RawResponseMessage") < 0)) __PYX_ERR(1, 1, __pyx_L3_error)
15579       }
15580     } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
15581       goto __pyx_L5_argtuple_error;
15582     } else {
15583       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
15584       values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
15585       values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
15586     }
15587     __pyx_v___pyx_type = values[0];
15588     __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
15589     __pyx_v___pyx_state = values[2];
15590   }
15591   goto __pyx_L4_argument_unpacking_done;
15592   __pyx_L5_argtuple_error:;
15593   __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_RawResponseMessage", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 1, __pyx_L3_error)
15594   __pyx_L3_error:;
15595   __Pyx_AddTraceback("aiohttp._http_parser.__pyx_unpickle_RawResponseMessage", __pyx_clineno, __pyx_lineno, __pyx_filename);
15596   __Pyx_RefNannyFinishContext();
15597   return NULL;
15598   __pyx_L4_argument_unpacking_done:;
15599   __pyx_r = __pyx_pf_7aiohttp_12_http_parser_4__pyx_unpickle_RawResponseMessage(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);
15600 
15601   /* function exit code */
15602   __Pyx_RefNannyFinishContext();
15603   return __pyx_r;
15604 }
15605 
__pyx_pf_7aiohttp_12_http_parser_4__pyx_unpickle_RawResponseMessage(CYTHON_UNUSED PyObject * __pyx_self,PyObject * __pyx_v___pyx_type,long __pyx_v___pyx_checksum,PyObject * __pyx_v___pyx_state)15606 static PyObject *__pyx_pf_7aiohttp_12_http_parser_4__pyx_unpickle_RawResponseMessage(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
15607   PyObject *__pyx_v___pyx_PickleError = 0;
15608   PyObject *__pyx_v___pyx_result = 0;
15609   PyObject *__pyx_r = NULL;
15610   __Pyx_RefNannyDeclarations
15611   int __pyx_t_1;
15612   PyObject *__pyx_t_2 = NULL;
15613   PyObject *__pyx_t_3 = NULL;
15614   PyObject *__pyx_t_4 = NULL;
15615   PyObject *__pyx_t_5 = NULL;
15616   int __pyx_t_6;
15617   int __pyx_lineno = 0;
15618   const char *__pyx_filename = NULL;
15619   int __pyx_clineno = 0;
15620   __Pyx_RefNannySetupContext("__pyx_unpickle_RawResponseMessage", 0);
15621 
15622   /* "(tree fragment)":4
15623  *     cdef object __pyx_PickleError
15624  *     cdef object __pyx_result
15625  *     if __pyx_checksum != 0xc7706dc:             # <<<<<<<<<<<<<<
15626  *         from pickle import PickleError as __pyx_PickleError
15627  *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xc7706dc = (chunked, code, compression, headers, raw_headers, reason, should_close, upgrade, version))" % __pyx_checksum)
15628  */
15629   __pyx_t_1 = ((__pyx_v___pyx_checksum != 0xc7706dc) != 0);
15630   if (__pyx_t_1) {
15631 
15632     /* "(tree fragment)":5
15633  *     cdef object __pyx_result
15634  *     if __pyx_checksum != 0xc7706dc:
15635  *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
15636  *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xc7706dc = (chunked, code, compression, headers, raw_headers, reason, should_close, upgrade, version))" % __pyx_checksum)
15637  *     __pyx_result = RawResponseMessage.__new__(__pyx_type)
15638  */
15639     __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error)
15640     __Pyx_GOTREF(__pyx_t_2);
15641     __Pyx_INCREF(__pyx_n_s_PickleError);
15642     __Pyx_GIVEREF(__pyx_n_s_PickleError);
15643     PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_PickleError);
15644     __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_2, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
15645     __Pyx_GOTREF(__pyx_t_3);
15646     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
15647     __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error)
15648     __Pyx_GOTREF(__pyx_t_2);
15649     __Pyx_INCREF(__pyx_t_2);
15650     __pyx_v___pyx_PickleError = __pyx_t_2;
15651     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
15652     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
15653 
15654     /* "(tree fragment)":6
15655  *     if __pyx_checksum != 0xc7706dc:
15656  *         from pickle import PickleError as __pyx_PickleError
15657  *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xc7706dc = (chunked, code, compression, headers, raw_headers, reason, should_close, upgrade, version))" % __pyx_checksum)             # <<<<<<<<<<<<<<
15658  *     __pyx_result = RawResponseMessage.__new__(__pyx_type)
15659  *     if __pyx_state is not None:
15660  */
15661     __pyx_t_2 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 6, __pyx_L1_error)
15662     __Pyx_GOTREF(__pyx_t_2);
15663     __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_s_vs_0xc7, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 6, __pyx_L1_error)
15664     __Pyx_GOTREF(__pyx_t_4);
15665     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
15666     __Pyx_INCREF(__pyx_v___pyx_PickleError);
15667     __pyx_t_2 = __pyx_v___pyx_PickleError; __pyx_t_5 = NULL;
15668     if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
15669       __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2);
15670       if (likely(__pyx_t_5)) {
15671         PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
15672         __Pyx_INCREF(__pyx_t_5);
15673         __Pyx_INCREF(function);
15674         __Pyx_DECREF_SET(__pyx_t_2, function);
15675       }
15676     }
15677     __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4);
15678     __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
15679     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
15680     if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 6, __pyx_L1_error)
15681     __Pyx_GOTREF(__pyx_t_3);
15682     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
15683     __Pyx_Raise(__pyx_t_3, 0, 0, 0);
15684     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
15685     __PYX_ERR(1, 6, __pyx_L1_error)
15686 
15687     /* "(tree fragment)":4
15688  *     cdef object __pyx_PickleError
15689  *     cdef object __pyx_result
15690  *     if __pyx_checksum != 0xc7706dc:             # <<<<<<<<<<<<<<
15691  *         from pickle import PickleError as __pyx_PickleError
15692  *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xc7706dc = (chunked, code, compression, headers, raw_headers, reason, should_close, upgrade, version))" % __pyx_checksum)
15693  */
15694   }
15695 
15696   /* "(tree fragment)":7
15697  *         from pickle import PickleError as __pyx_PickleError
15698  *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xc7706dc = (chunked, code, compression, headers, raw_headers, reason, should_close, upgrade, version))" % __pyx_checksum)
15699  *     __pyx_result = RawResponseMessage.__new__(__pyx_type)             # <<<<<<<<<<<<<<
15700  *     if __pyx_state is not None:
15701  *         __pyx_unpickle_RawResponseMessage__set_state(<RawResponseMessage> __pyx_result, __pyx_state)
15702  */
15703   __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_7aiohttp_12_http_parser_RawResponseMessage), __pyx_n_s_new); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 7, __pyx_L1_error)
15704   __Pyx_GOTREF(__pyx_t_2);
15705   __pyx_t_4 = NULL;
15706   if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
15707     __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
15708     if (likely(__pyx_t_4)) {
15709       PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
15710       __Pyx_INCREF(__pyx_t_4);
15711       __Pyx_INCREF(function);
15712       __Pyx_DECREF_SET(__pyx_t_2, function);
15713     }
15714   }
15715   __pyx_t_3 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_v___pyx_type) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v___pyx_type);
15716   __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
15717   if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 7, __pyx_L1_error)
15718   __Pyx_GOTREF(__pyx_t_3);
15719   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
15720   __pyx_v___pyx_result = __pyx_t_3;
15721   __pyx_t_3 = 0;
15722 
15723   /* "(tree fragment)":8
15724  *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xc7706dc = (chunked, code, compression, headers, raw_headers, reason, should_close, upgrade, version))" % __pyx_checksum)
15725  *     __pyx_result = RawResponseMessage.__new__(__pyx_type)
15726  *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
15727  *         __pyx_unpickle_RawResponseMessage__set_state(<RawResponseMessage> __pyx_result, __pyx_state)
15728  *     return __pyx_result
15729  */
15730   __pyx_t_1 = (__pyx_v___pyx_state != Py_None);
15731   __pyx_t_6 = (__pyx_t_1 != 0);
15732   if (__pyx_t_6) {
15733 
15734     /* "(tree fragment)":9
15735  *     __pyx_result = RawResponseMessage.__new__(__pyx_type)
15736  *     if __pyx_state is not None:
15737  *         __pyx_unpickle_RawResponseMessage__set_state(<RawResponseMessage> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
15738  *     return __pyx_result
15739  * cdef __pyx_unpickle_RawResponseMessage__set_state(RawResponseMessage __pyx_result, tuple __pyx_state):
15740  */
15741     if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(1, 9, __pyx_L1_error)
15742     __pyx_t_3 = __pyx_f_7aiohttp_12_http_parser___pyx_unpickle_RawResponseMessage__set_state(((struct __pyx_obj_7aiohttp_12_http_parser_RawResponseMessage *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 9, __pyx_L1_error)
15743     __Pyx_GOTREF(__pyx_t_3);
15744     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
15745 
15746     /* "(tree fragment)":8
15747  *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xc7706dc = (chunked, code, compression, headers, raw_headers, reason, should_close, upgrade, version))" % __pyx_checksum)
15748  *     __pyx_result = RawResponseMessage.__new__(__pyx_type)
15749  *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
15750  *         __pyx_unpickle_RawResponseMessage__set_state(<RawResponseMessage> __pyx_result, __pyx_state)
15751  *     return __pyx_result
15752  */
15753   }
15754 
15755   /* "(tree fragment)":10
15756  *     if __pyx_state is not None:
15757  *         __pyx_unpickle_RawResponseMessage__set_state(<RawResponseMessage> __pyx_result, __pyx_state)
15758  *     return __pyx_result             # <<<<<<<<<<<<<<
15759  * cdef __pyx_unpickle_RawResponseMessage__set_state(RawResponseMessage __pyx_result, tuple __pyx_state):
15760  *     __pyx_result.chunked = __pyx_state[0]; __pyx_result.code = __pyx_state[1]; __pyx_result.compression = __pyx_state[2]; __pyx_result.headers = __pyx_state[3]; __pyx_result.raw_headers = __pyx_state[4]; __pyx_result.reason = __pyx_state[5]; __pyx_result.should_close = __pyx_state[6]; __pyx_result.upgrade = __pyx_state[7]; __pyx_result.version = __pyx_state[8]
15761  */
15762   __Pyx_XDECREF(__pyx_r);
15763   __Pyx_INCREF(__pyx_v___pyx_result);
15764   __pyx_r = __pyx_v___pyx_result;
15765   goto __pyx_L0;
15766 
15767   /* "(tree fragment)":1
15768  * def __pyx_unpickle_RawResponseMessage(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
15769  *     cdef object __pyx_PickleError
15770  *     cdef object __pyx_result
15771  */
15772 
15773   /* function exit code */
15774   __pyx_L1_error:;
15775   __Pyx_XDECREF(__pyx_t_2);
15776   __Pyx_XDECREF(__pyx_t_3);
15777   __Pyx_XDECREF(__pyx_t_4);
15778   __Pyx_XDECREF(__pyx_t_5);
15779   __Pyx_AddTraceback("aiohttp._http_parser.__pyx_unpickle_RawResponseMessage", __pyx_clineno, __pyx_lineno, __pyx_filename);
15780   __pyx_r = NULL;
15781   __pyx_L0:;
15782   __Pyx_XDECREF(__pyx_v___pyx_PickleError);
15783   __Pyx_XDECREF(__pyx_v___pyx_result);
15784   __Pyx_XGIVEREF(__pyx_r);
15785   __Pyx_RefNannyFinishContext();
15786   return __pyx_r;
15787 }
15788 
15789 /* "(tree fragment)":11
15790  *         __pyx_unpickle_RawResponseMessage__set_state(<RawResponseMessage> __pyx_result, __pyx_state)
15791  *     return __pyx_result
15792  * cdef __pyx_unpickle_RawResponseMessage__set_state(RawResponseMessage __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
15793  *     __pyx_result.chunked = __pyx_state[0]; __pyx_result.code = __pyx_state[1]; __pyx_result.compression = __pyx_state[2]; __pyx_result.headers = __pyx_state[3]; __pyx_result.raw_headers = __pyx_state[4]; __pyx_result.reason = __pyx_state[5]; __pyx_result.should_close = __pyx_state[6]; __pyx_result.upgrade = __pyx_state[7]; __pyx_result.version = __pyx_state[8]
15794  *     if len(__pyx_state) > 9 and hasattr(__pyx_result, '__dict__'):
15795  */
15796 
__pyx_f_7aiohttp_12_http_parser___pyx_unpickle_RawResponseMessage__set_state(struct __pyx_obj_7aiohttp_12_http_parser_RawResponseMessage * __pyx_v___pyx_result,PyObject * __pyx_v___pyx_state)15797 static PyObject *__pyx_f_7aiohttp_12_http_parser___pyx_unpickle_RawResponseMessage__set_state(struct __pyx_obj_7aiohttp_12_http_parser_RawResponseMessage *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
15798   PyObject *__pyx_r = NULL;
15799   __Pyx_RefNannyDeclarations
15800   PyObject *__pyx_t_1 = NULL;
15801   int __pyx_t_2;
15802   int __pyx_t_3;
15803   Py_ssize_t __pyx_t_4;
15804   int __pyx_t_5;
15805   int __pyx_t_6;
15806   PyObject *__pyx_t_7 = NULL;
15807   PyObject *__pyx_t_8 = NULL;
15808   PyObject *__pyx_t_9 = NULL;
15809   int __pyx_lineno = 0;
15810   const char *__pyx_filename = NULL;
15811   int __pyx_clineno = 0;
15812   __Pyx_RefNannySetupContext("__pyx_unpickle_RawResponseMessage__set_state", 0);
15813 
15814   /* "(tree fragment)":12
15815  *     return __pyx_result
15816  * cdef __pyx_unpickle_RawResponseMessage__set_state(RawResponseMessage __pyx_result, tuple __pyx_state):
15817  *     __pyx_result.chunked = __pyx_state[0]; __pyx_result.code = __pyx_state[1]; __pyx_result.compression = __pyx_state[2]; __pyx_result.headers = __pyx_state[3]; __pyx_result.raw_headers = __pyx_state[4]; __pyx_result.reason = __pyx_state[5]; __pyx_result.should_close = __pyx_state[6]; __pyx_result.upgrade = __pyx_state[7]; __pyx_result.version = __pyx_state[8]             # <<<<<<<<<<<<<<
15818  *     if len(__pyx_state) > 9 and hasattr(__pyx_result, '__dict__'):
15819  *         __pyx_result.__dict__.update(__pyx_state[9])
15820  */
15821   if (unlikely(__pyx_v___pyx_state == Py_None)) {
15822     PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
15823     __PYX_ERR(1, 12, __pyx_L1_error)
15824   }
15825   __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
15826   __Pyx_GOTREF(__pyx_t_1);
15827   __Pyx_GIVEREF(__pyx_t_1);
15828   __Pyx_GOTREF(__pyx_v___pyx_result->chunked);
15829   __Pyx_DECREF(__pyx_v___pyx_result->chunked);
15830   __pyx_v___pyx_result->chunked = __pyx_t_1;
15831   __pyx_t_1 = 0;
15832   if (unlikely(__pyx_v___pyx_state == Py_None)) {
15833     PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
15834     __PYX_ERR(1, 12, __pyx_L1_error)
15835   }
15836   __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
15837   __Pyx_GOTREF(__pyx_t_1);
15838   __pyx_t_2 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
15839   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
15840   __pyx_v___pyx_result->code = __pyx_t_2;
15841   if (unlikely(__pyx_v___pyx_state == Py_None)) {
15842     PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
15843     __PYX_ERR(1, 12, __pyx_L1_error)
15844   }
15845   __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
15846   __Pyx_GOTREF(__pyx_t_1);
15847   __Pyx_GIVEREF(__pyx_t_1);
15848   __Pyx_GOTREF(__pyx_v___pyx_result->compression);
15849   __Pyx_DECREF(__pyx_v___pyx_result->compression);
15850   __pyx_v___pyx_result->compression = __pyx_t_1;
15851   __pyx_t_1 = 0;
15852   if (unlikely(__pyx_v___pyx_state == Py_None)) {
15853     PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
15854     __PYX_ERR(1, 12, __pyx_L1_error)
15855   }
15856   __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
15857   __Pyx_GOTREF(__pyx_t_1);
15858   __Pyx_GIVEREF(__pyx_t_1);
15859   __Pyx_GOTREF(__pyx_v___pyx_result->headers);
15860   __Pyx_DECREF(__pyx_v___pyx_result->headers);
15861   __pyx_v___pyx_result->headers = __pyx_t_1;
15862   __pyx_t_1 = 0;
15863   if (unlikely(__pyx_v___pyx_state == Py_None)) {
15864     PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
15865     __PYX_ERR(1, 12, __pyx_L1_error)
15866   }
15867   __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
15868   __Pyx_GOTREF(__pyx_t_1);
15869   __Pyx_GIVEREF(__pyx_t_1);
15870   __Pyx_GOTREF(__pyx_v___pyx_result->raw_headers);
15871   __Pyx_DECREF(__pyx_v___pyx_result->raw_headers);
15872   __pyx_v___pyx_result->raw_headers = __pyx_t_1;
15873   __pyx_t_1 = 0;
15874   if (unlikely(__pyx_v___pyx_state == Py_None)) {
15875     PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
15876     __PYX_ERR(1, 12, __pyx_L1_error)
15877   }
15878   __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 5, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
15879   __Pyx_GOTREF(__pyx_t_1);
15880   if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(1, 12, __pyx_L1_error)
15881   __Pyx_GIVEREF(__pyx_t_1);
15882   __Pyx_GOTREF(__pyx_v___pyx_result->reason);
15883   __Pyx_DECREF(__pyx_v___pyx_result->reason);
15884   __pyx_v___pyx_result->reason = ((PyObject*)__pyx_t_1);
15885   __pyx_t_1 = 0;
15886   if (unlikely(__pyx_v___pyx_state == Py_None)) {
15887     PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
15888     __PYX_ERR(1, 12, __pyx_L1_error)
15889   }
15890   __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 6, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
15891   __Pyx_GOTREF(__pyx_t_1);
15892   __Pyx_GIVEREF(__pyx_t_1);
15893   __Pyx_GOTREF(__pyx_v___pyx_result->should_close);
15894   __Pyx_DECREF(__pyx_v___pyx_result->should_close);
15895   __pyx_v___pyx_result->should_close = __pyx_t_1;
15896   __pyx_t_1 = 0;
15897   if (unlikely(__pyx_v___pyx_state == Py_None)) {
15898     PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
15899     __PYX_ERR(1, 12, __pyx_L1_error)
15900   }
15901   __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 7, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
15902   __Pyx_GOTREF(__pyx_t_1);
15903   __Pyx_GIVEREF(__pyx_t_1);
15904   __Pyx_GOTREF(__pyx_v___pyx_result->upgrade);
15905   __Pyx_DECREF(__pyx_v___pyx_result->upgrade);
15906   __pyx_v___pyx_result->upgrade = __pyx_t_1;
15907   __pyx_t_1 = 0;
15908   if (unlikely(__pyx_v___pyx_state == Py_None)) {
15909     PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
15910     __PYX_ERR(1, 12, __pyx_L1_error)
15911   }
15912   __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 8, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
15913   __Pyx_GOTREF(__pyx_t_1);
15914   __Pyx_GIVEREF(__pyx_t_1);
15915   __Pyx_GOTREF(__pyx_v___pyx_result->version);
15916   __Pyx_DECREF(__pyx_v___pyx_result->version);
15917   __pyx_v___pyx_result->version = __pyx_t_1;
15918   __pyx_t_1 = 0;
15919 
15920   /* "(tree fragment)":13
15921  * cdef __pyx_unpickle_RawResponseMessage__set_state(RawResponseMessage __pyx_result, tuple __pyx_state):
15922  *     __pyx_result.chunked = __pyx_state[0]; __pyx_result.code = __pyx_state[1]; __pyx_result.compression = __pyx_state[2]; __pyx_result.headers = __pyx_state[3]; __pyx_result.raw_headers = __pyx_state[4]; __pyx_result.reason = __pyx_state[5]; __pyx_result.should_close = __pyx_state[6]; __pyx_result.upgrade = __pyx_state[7]; __pyx_result.version = __pyx_state[8]
15923  *     if len(__pyx_state) > 9 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
15924  *         __pyx_result.__dict__.update(__pyx_state[9])
15925  */
15926   if (unlikely(__pyx_v___pyx_state == Py_None)) {
15927     PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
15928     __PYX_ERR(1, 13, __pyx_L1_error)
15929   }
15930   __pyx_t_4 = PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
15931   __pyx_t_5 = ((__pyx_t_4 > 9) != 0);
15932   if (__pyx_t_5) {
15933   } else {
15934     __pyx_t_3 = __pyx_t_5;
15935     goto __pyx_L4_bool_binop_done;
15936   }
15937   __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
15938   __pyx_t_6 = (__pyx_t_5 != 0);
15939   __pyx_t_3 = __pyx_t_6;
15940   __pyx_L4_bool_binop_done:;
15941   if (__pyx_t_3) {
15942 
15943     /* "(tree fragment)":14
15944  *     __pyx_result.chunked = __pyx_state[0]; __pyx_result.code = __pyx_state[1]; __pyx_result.compression = __pyx_state[2]; __pyx_result.headers = __pyx_state[3]; __pyx_result.raw_headers = __pyx_state[4]; __pyx_result.reason = __pyx_state[5]; __pyx_result.should_close = __pyx_state[6]; __pyx_result.upgrade = __pyx_state[7]; __pyx_result.version = __pyx_state[8]
15945  *     if len(__pyx_state) > 9 and hasattr(__pyx_result, '__dict__'):
15946  *         __pyx_result.__dict__.update(__pyx_state[9])             # <<<<<<<<<<<<<<
15947  */
15948     __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 14, __pyx_L1_error)
15949     __Pyx_GOTREF(__pyx_t_7);
15950     __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_update); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 14, __pyx_L1_error)
15951     __Pyx_GOTREF(__pyx_t_8);
15952     __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
15953     if (unlikely(__pyx_v___pyx_state == Py_None)) {
15954       PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
15955       __PYX_ERR(1, 14, __pyx_L1_error)
15956     }
15957     __pyx_t_7 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 9, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 14, __pyx_L1_error)
15958     __Pyx_GOTREF(__pyx_t_7);
15959     __pyx_t_9 = NULL;
15960     if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
15961       __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8);
15962       if (likely(__pyx_t_9)) {
15963         PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
15964         __Pyx_INCREF(__pyx_t_9);
15965         __Pyx_INCREF(function);
15966         __Pyx_DECREF_SET(__pyx_t_8, function);
15967       }
15968     }
15969     __pyx_t_1 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_9, __pyx_t_7) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_7);
15970     __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
15971     __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
15972     if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 14, __pyx_L1_error)
15973     __Pyx_GOTREF(__pyx_t_1);
15974     __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
15975     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
15976 
15977     /* "(tree fragment)":13
15978  * cdef __pyx_unpickle_RawResponseMessage__set_state(RawResponseMessage __pyx_result, tuple __pyx_state):
15979  *     __pyx_result.chunked = __pyx_state[0]; __pyx_result.code = __pyx_state[1]; __pyx_result.compression = __pyx_state[2]; __pyx_result.headers = __pyx_state[3]; __pyx_result.raw_headers = __pyx_state[4]; __pyx_result.reason = __pyx_state[5]; __pyx_result.should_close = __pyx_state[6]; __pyx_result.upgrade = __pyx_state[7]; __pyx_result.version = __pyx_state[8]
15980  *     if len(__pyx_state) > 9 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
15981  *         __pyx_result.__dict__.update(__pyx_state[9])
15982  */
15983   }
15984 
15985   /* "(tree fragment)":11
15986  *         __pyx_unpickle_RawResponseMessage__set_state(<RawResponseMessage> __pyx_result, __pyx_state)
15987  *     return __pyx_result
15988  * cdef __pyx_unpickle_RawResponseMessage__set_state(RawResponseMessage __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
15989  *     __pyx_result.chunked = __pyx_state[0]; __pyx_result.code = __pyx_state[1]; __pyx_result.compression = __pyx_state[2]; __pyx_result.headers = __pyx_state[3]; __pyx_result.raw_headers = __pyx_state[4]; __pyx_result.reason = __pyx_state[5]; __pyx_result.should_close = __pyx_state[6]; __pyx_result.upgrade = __pyx_state[7]; __pyx_result.version = __pyx_state[8]
15990  *     if len(__pyx_state) > 9 and hasattr(__pyx_result, '__dict__'):
15991  */
15992 
15993   /* function exit code */
15994   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
15995   goto __pyx_L0;
15996   __pyx_L1_error:;
15997   __Pyx_XDECREF(__pyx_t_1);
15998   __Pyx_XDECREF(__pyx_t_7);
15999   __Pyx_XDECREF(__pyx_t_8);
16000   __Pyx_XDECREF(__pyx_t_9);
16001   __Pyx_AddTraceback("aiohttp._http_parser.__pyx_unpickle_RawResponseMessage__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
16002   __pyx_r = 0;
16003   __pyx_L0:;
16004   __Pyx_XGIVEREF(__pyx_r);
16005   __Pyx_RefNannyFinishContext();
16006   return __pyx_r;
16007 }
16008 
16009 static struct __pyx_obj_7aiohttp_12_http_parser_RawRequestMessage *__pyx_freelist_7aiohttp_12_http_parser_RawRequestMessage[250];
16010 static int __pyx_freecount_7aiohttp_12_http_parser_RawRequestMessage = 0;
16011 
__pyx_tp_new_7aiohttp_12_http_parser_RawRequestMessage(PyTypeObject * t,CYTHON_UNUSED PyObject * a,CYTHON_UNUSED PyObject * k)16012 static PyObject *__pyx_tp_new_7aiohttp_12_http_parser_RawRequestMessage(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
16013   struct __pyx_obj_7aiohttp_12_http_parser_RawRequestMessage *p;
16014   PyObject *o;
16015   if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_7aiohttp_12_http_parser_RawRequestMessage > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_7aiohttp_12_http_parser_RawRequestMessage)) & ((t->tp_flags & (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)) == 0))) {
16016     o = (PyObject*)__pyx_freelist_7aiohttp_12_http_parser_RawRequestMessage[--__pyx_freecount_7aiohttp_12_http_parser_RawRequestMessage];
16017     memset(o, 0, sizeof(struct __pyx_obj_7aiohttp_12_http_parser_RawRequestMessage));
16018     (void) PyObject_INIT(o, t);
16019     PyObject_GC_Track(o);
16020   } else {
16021     if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
16022       o = (*t->tp_alloc)(t, 0);
16023     } else {
16024       o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
16025     }
16026     if (unlikely(!o)) return 0;
16027   }
16028   p = ((struct __pyx_obj_7aiohttp_12_http_parser_RawRequestMessage *)o);
16029   p->method = ((PyObject*)Py_None); Py_INCREF(Py_None);
16030   p->path = ((PyObject*)Py_None); Py_INCREF(Py_None);
16031   p->version = Py_None; Py_INCREF(Py_None);
16032   p->headers = Py_None; Py_INCREF(Py_None);
16033   p->raw_headers = Py_None; Py_INCREF(Py_None);
16034   p->should_close = Py_None; Py_INCREF(Py_None);
16035   p->compression = Py_None; Py_INCREF(Py_None);
16036   p->upgrade = Py_None; Py_INCREF(Py_None);
16037   p->chunked = Py_None; Py_INCREF(Py_None);
16038   p->url = Py_None; Py_INCREF(Py_None);
16039   return o;
16040 }
16041 
__pyx_tp_dealloc_7aiohttp_12_http_parser_RawRequestMessage(PyObject * o)16042 static void __pyx_tp_dealloc_7aiohttp_12_http_parser_RawRequestMessage(PyObject *o) {
16043   struct __pyx_obj_7aiohttp_12_http_parser_RawRequestMessage *p = (struct __pyx_obj_7aiohttp_12_http_parser_RawRequestMessage *)o;
16044   #if CYTHON_USE_TP_FINALIZE
16045   if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
16046     if (PyObject_CallFinalizerFromDealloc(o)) return;
16047   }
16048   #endif
16049   PyObject_GC_UnTrack(o);
16050   Py_CLEAR(p->method);
16051   Py_CLEAR(p->path);
16052   Py_CLEAR(p->version);
16053   Py_CLEAR(p->headers);
16054   Py_CLEAR(p->raw_headers);
16055   Py_CLEAR(p->should_close);
16056   Py_CLEAR(p->compression);
16057   Py_CLEAR(p->upgrade);
16058   Py_CLEAR(p->chunked);
16059   Py_CLEAR(p->url);
16060   if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_7aiohttp_12_http_parser_RawRequestMessage < 250) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_7aiohttp_12_http_parser_RawRequestMessage)) & ((Py_TYPE(o)->tp_flags & (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)) == 0))) {
16061     __pyx_freelist_7aiohttp_12_http_parser_RawRequestMessage[__pyx_freecount_7aiohttp_12_http_parser_RawRequestMessage++] = ((struct __pyx_obj_7aiohttp_12_http_parser_RawRequestMessage *)o);
16062   } else {
16063     (*Py_TYPE(o)->tp_free)(o);
16064   }
16065 }
16066 
__pyx_tp_traverse_7aiohttp_12_http_parser_RawRequestMessage(PyObject * o,visitproc v,void * a)16067 static int __pyx_tp_traverse_7aiohttp_12_http_parser_RawRequestMessage(PyObject *o, visitproc v, void *a) {
16068   int e;
16069   struct __pyx_obj_7aiohttp_12_http_parser_RawRequestMessage *p = (struct __pyx_obj_7aiohttp_12_http_parser_RawRequestMessage *)o;
16070   if (p->version) {
16071     e = (*v)(p->version, a); if (e) return e;
16072   }
16073   if (p->headers) {
16074     e = (*v)(p->headers, a); if (e) return e;
16075   }
16076   if (p->raw_headers) {
16077     e = (*v)(p->raw_headers, a); if (e) return e;
16078   }
16079   if (p->should_close) {
16080     e = (*v)(p->should_close, a); if (e) return e;
16081   }
16082   if (p->compression) {
16083     e = (*v)(p->compression, a); if (e) return e;
16084   }
16085   if (p->upgrade) {
16086     e = (*v)(p->upgrade, a); if (e) return e;
16087   }
16088   if (p->chunked) {
16089     e = (*v)(p->chunked, a); if (e) return e;
16090   }
16091   if (p->url) {
16092     e = (*v)(p->url, a); if (e) return e;
16093   }
16094   return 0;
16095 }
16096 
__pyx_tp_clear_7aiohttp_12_http_parser_RawRequestMessage(PyObject * o)16097 static int __pyx_tp_clear_7aiohttp_12_http_parser_RawRequestMessage(PyObject *o) {
16098   PyObject* tmp;
16099   struct __pyx_obj_7aiohttp_12_http_parser_RawRequestMessage *p = (struct __pyx_obj_7aiohttp_12_http_parser_RawRequestMessage *)o;
16100   tmp = ((PyObject*)p->version);
16101   p->version = Py_None; Py_INCREF(Py_None);
16102   Py_XDECREF(tmp);
16103   tmp = ((PyObject*)p->headers);
16104   p->headers = Py_None; Py_INCREF(Py_None);
16105   Py_XDECREF(tmp);
16106   tmp = ((PyObject*)p->raw_headers);
16107   p->raw_headers = Py_None; Py_INCREF(Py_None);
16108   Py_XDECREF(tmp);
16109   tmp = ((PyObject*)p->should_close);
16110   p->should_close = Py_None; Py_INCREF(Py_None);
16111   Py_XDECREF(tmp);
16112   tmp = ((PyObject*)p->compression);
16113   p->compression = Py_None; Py_INCREF(Py_None);
16114   Py_XDECREF(tmp);
16115   tmp = ((PyObject*)p->upgrade);
16116   p->upgrade = Py_None; Py_INCREF(Py_None);
16117   Py_XDECREF(tmp);
16118   tmp = ((PyObject*)p->chunked);
16119   p->chunked = Py_None; Py_INCREF(Py_None);
16120   Py_XDECREF(tmp);
16121   tmp = ((PyObject*)p->url);
16122   p->url = Py_None; Py_INCREF(Py_None);
16123   Py_XDECREF(tmp);
16124   return 0;
16125 }
16126 
__pyx_getprop_7aiohttp_12_http_parser_17RawRequestMessage_method(PyObject * o,CYTHON_UNUSED void * x)16127 static PyObject *__pyx_getprop_7aiohttp_12_http_parser_17RawRequestMessage_method(PyObject *o, CYTHON_UNUSED void *x) {
16128   return __pyx_pw_7aiohttp_12_http_parser_17RawRequestMessage_6method_1__get__(o);
16129 }
16130 
__pyx_getprop_7aiohttp_12_http_parser_17RawRequestMessage_path(PyObject * o,CYTHON_UNUSED void * x)16131 static PyObject *__pyx_getprop_7aiohttp_12_http_parser_17RawRequestMessage_path(PyObject *o, CYTHON_UNUSED void *x) {
16132   return __pyx_pw_7aiohttp_12_http_parser_17RawRequestMessage_4path_1__get__(o);
16133 }
16134 
__pyx_getprop_7aiohttp_12_http_parser_17RawRequestMessage_version(PyObject * o,CYTHON_UNUSED void * x)16135 static PyObject *__pyx_getprop_7aiohttp_12_http_parser_17RawRequestMessage_version(PyObject *o, CYTHON_UNUSED void *x) {
16136   return __pyx_pw_7aiohttp_12_http_parser_17RawRequestMessage_7version_1__get__(o);
16137 }
16138 
__pyx_getprop_7aiohttp_12_http_parser_17RawRequestMessage_headers(PyObject * o,CYTHON_UNUSED void * x)16139 static PyObject *__pyx_getprop_7aiohttp_12_http_parser_17RawRequestMessage_headers(PyObject *o, CYTHON_UNUSED void *x) {
16140   return __pyx_pw_7aiohttp_12_http_parser_17RawRequestMessage_7headers_1__get__(o);
16141 }
16142 
__pyx_getprop_7aiohttp_12_http_parser_17RawRequestMessage_raw_headers(PyObject * o,CYTHON_UNUSED void * x)16143 static PyObject *__pyx_getprop_7aiohttp_12_http_parser_17RawRequestMessage_raw_headers(PyObject *o, CYTHON_UNUSED void *x) {
16144   return __pyx_pw_7aiohttp_12_http_parser_17RawRequestMessage_11raw_headers_1__get__(o);
16145 }
16146 
__pyx_getprop_7aiohttp_12_http_parser_17RawRequestMessage_should_close(PyObject * o,CYTHON_UNUSED void * x)16147 static PyObject *__pyx_getprop_7aiohttp_12_http_parser_17RawRequestMessage_should_close(PyObject *o, CYTHON_UNUSED void *x) {
16148   return __pyx_pw_7aiohttp_12_http_parser_17RawRequestMessage_12should_close_1__get__(o);
16149 }
16150 
__pyx_getprop_7aiohttp_12_http_parser_17RawRequestMessage_compression(PyObject * o,CYTHON_UNUSED void * x)16151 static PyObject *__pyx_getprop_7aiohttp_12_http_parser_17RawRequestMessage_compression(PyObject *o, CYTHON_UNUSED void *x) {
16152   return __pyx_pw_7aiohttp_12_http_parser_17RawRequestMessage_11compression_1__get__(o);
16153 }
16154 
__pyx_getprop_7aiohttp_12_http_parser_17RawRequestMessage_upgrade(PyObject * o,CYTHON_UNUSED void * x)16155 static PyObject *__pyx_getprop_7aiohttp_12_http_parser_17RawRequestMessage_upgrade(PyObject *o, CYTHON_UNUSED void *x) {
16156   return __pyx_pw_7aiohttp_12_http_parser_17RawRequestMessage_7upgrade_1__get__(o);
16157 }
16158 
__pyx_getprop_7aiohttp_12_http_parser_17RawRequestMessage_chunked(PyObject * o,CYTHON_UNUSED void * x)16159 static PyObject *__pyx_getprop_7aiohttp_12_http_parser_17RawRequestMessage_chunked(PyObject *o, CYTHON_UNUSED void *x) {
16160   return __pyx_pw_7aiohttp_12_http_parser_17RawRequestMessage_7chunked_1__get__(o);
16161 }
16162 
__pyx_getprop_7aiohttp_12_http_parser_17RawRequestMessage_url(PyObject * o,CYTHON_UNUSED void * x)16163 static PyObject *__pyx_getprop_7aiohttp_12_http_parser_17RawRequestMessage_url(PyObject *o, CYTHON_UNUSED void *x) {
16164   return __pyx_pw_7aiohttp_12_http_parser_17RawRequestMessage_3url_1__get__(o);
16165 }
16166 
16167 static PyMethodDef __pyx_methods_7aiohttp_12_http_parser_RawRequestMessage[] = {
16168   {"_replace", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_7aiohttp_12_http_parser_17RawRequestMessage_5_replace, METH_VARARGS|METH_KEYWORDS, 0},
16169   {"__reduce_cython__", (PyCFunction)__pyx_pw_7aiohttp_12_http_parser_17RawRequestMessage_7__reduce_cython__, METH_NOARGS, 0},
16170   {"__setstate_cython__", (PyCFunction)__pyx_pw_7aiohttp_12_http_parser_17RawRequestMessage_9__setstate_cython__, METH_O, 0},
16171   {0, 0, 0, 0}
16172 };
16173 
16174 static struct PyGetSetDef __pyx_getsets_7aiohttp_12_http_parser_RawRequestMessage[] = {
16175   {(char *)"method", __pyx_getprop_7aiohttp_12_http_parser_17RawRequestMessage_method, 0, (char *)0, 0},
16176   {(char *)"path", __pyx_getprop_7aiohttp_12_http_parser_17RawRequestMessage_path, 0, (char *)0, 0},
16177   {(char *)"version", __pyx_getprop_7aiohttp_12_http_parser_17RawRequestMessage_version, 0, (char *)0, 0},
16178   {(char *)"headers", __pyx_getprop_7aiohttp_12_http_parser_17RawRequestMessage_headers, 0, (char *)0, 0},
16179   {(char *)"raw_headers", __pyx_getprop_7aiohttp_12_http_parser_17RawRequestMessage_raw_headers, 0, (char *)0, 0},
16180   {(char *)"should_close", __pyx_getprop_7aiohttp_12_http_parser_17RawRequestMessage_should_close, 0, (char *)0, 0},
16181   {(char *)"compression", __pyx_getprop_7aiohttp_12_http_parser_17RawRequestMessage_compression, 0, (char *)0, 0},
16182   {(char *)"upgrade", __pyx_getprop_7aiohttp_12_http_parser_17RawRequestMessage_upgrade, 0, (char *)0, 0},
16183   {(char *)"chunked", __pyx_getprop_7aiohttp_12_http_parser_17RawRequestMessage_chunked, 0, (char *)0, 0},
16184   {(char *)"url", __pyx_getprop_7aiohttp_12_http_parser_17RawRequestMessage_url, 0, (char *)0, 0},
16185   {0, 0, 0, 0, 0}
16186 };
16187 
16188 static PyTypeObject __pyx_type_7aiohttp_12_http_parser_RawRequestMessage = {
16189   PyVarObject_HEAD_INIT(0, 0)
16190   "aiohttp._http_parser.RawRequestMessage", /*tp_name*/
16191   sizeof(struct __pyx_obj_7aiohttp_12_http_parser_RawRequestMessage), /*tp_basicsize*/
16192   0, /*tp_itemsize*/
16193   __pyx_tp_dealloc_7aiohttp_12_http_parser_RawRequestMessage, /*tp_dealloc*/
16194   #if PY_VERSION_HEX < 0x030800b4
16195   0, /*tp_print*/
16196   #endif
16197   #if PY_VERSION_HEX >= 0x030800b4
16198   0, /*tp_vectorcall_offset*/
16199   #endif
16200   0, /*tp_getattr*/
16201   0, /*tp_setattr*/
16202   #if PY_MAJOR_VERSION < 3
16203   0, /*tp_compare*/
16204   #endif
16205   #if PY_MAJOR_VERSION >= 3
16206   0, /*tp_as_async*/
16207   #endif
16208   __pyx_pw_7aiohttp_12_http_parser_17RawRequestMessage_3__repr__, /*tp_repr*/
16209   0, /*tp_as_number*/
16210   0, /*tp_as_sequence*/
16211   0, /*tp_as_mapping*/
16212   0, /*tp_hash*/
16213   0, /*tp_call*/
16214   0, /*tp_str*/
16215   0, /*tp_getattro*/
16216   0, /*tp_setattro*/
16217   0, /*tp_as_buffer*/
16218   Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
16219   0, /*tp_doc*/
16220   __pyx_tp_traverse_7aiohttp_12_http_parser_RawRequestMessage, /*tp_traverse*/
16221   __pyx_tp_clear_7aiohttp_12_http_parser_RawRequestMessage, /*tp_clear*/
16222   0, /*tp_richcompare*/
16223   0, /*tp_weaklistoffset*/
16224   0, /*tp_iter*/
16225   0, /*tp_iternext*/
16226   __pyx_methods_7aiohttp_12_http_parser_RawRequestMessage, /*tp_methods*/
16227   0, /*tp_members*/
16228   __pyx_getsets_7aiohttp_12_http_parser_RawRequestMessage, /*tp_getset*/
16229   0, /*tp_base*/
16230   0, /*tp_dict*/
16231   0, /*tp_descr_get*/
16232   0, /*tp_descr_set*/
16233   0, /*tp_dictoffset*/
16234   __pyx_pw_7aiohttp_12_http_parser_17RawRequestMessage_1__init__, /*tp_init*/
16235   0, /*tp_alloc*/
16236   __pyx_tp_new_7aiohttp_12_http_parser_RawRequestMessage, /*tp_new*/
16237   0, /*tp_free*/
16238   0, /*tp_is_gc*/
16239   0, /*tp_bases*/
16240   0, /*tp_mro*/
16241   0, /*tp_cache*/
16242   0, /*tp_subclasses*/
16243   0, /*tp_weaklist*/
16244   0, /*tp_del*/
16245   0, /*tp_version_tag*/
16246   #if PY_VERSION_HEX >= 0x030400a1
16247   0, /*tp_finalize*/
16248   #endif
16249   #if PY_VERSION_HEX >= 0x030800b1
16250   0, /*tp_vectorcall*/
16251   #endif
16252   #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
16253   0, /*tp_print*/
16254   #endif
16255 };
16256 
16257 static struct __pyx_obj_7aiohttp_12_http_parser_RawResponseMessage *__pyx_freelist_7aiohttp_12_http_parser_RawResponseMessage[250];
16258 static int __pyx_freecount_7aiohttp_12_http_parser_RawResponseMessage = 0;
16259 
__pyx_tp_new_7aiohttp_12_http_parser_RawResponseMessage(PyTypeObject * t,CYTHON_UNUSED PyObject * a,CYTHON_UNUSED PyObject * k)16260 static PyObject *__pyx_tp_new_7aiohttp_12_http_parser_RawResponseMessage(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
16261   struct __pyx_obj_7aiohttp_12_http_parser_RawResponseMessage *p;
16262   PyObject *o;
16263   if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_7aiohttp_12_http_parser_RawResponseMessage > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_7aiohttp_12_http_parser_RawResponseMessage)) & ((t->tp_flags & (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)) == 0))) {
16264     o = (PyObject*)__pyx_freelist_7aiohttp_12_http_parser_RawResponseMessage[--__pyx_freecount_7aiohttp_12_http_parser_RawResponseMessage];
16265     memset(o, 0, sizeof(struct __pyx_obj_7aiohttp_12_http_parser_RawResponseMessage));
16266     (void) PyObject_INIT(o, t);
16267     PyObject_GC_Track(o);
16268   } else {
16269     if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
16270       o = (*t->tp_alloc)(t, 0);
16271     } else {
16272       o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
16273     }
16274     if (unlikely(!o)) return 0;
16275   }
16276   p = ((struct __pyx_obj_7aiohttp_12_http_parser_RawResponseMessage *)o);
16277   p->version = Py_None; Py_INCREF(Py_None);
16278   p->reason = ((PyObject*)Py_None); Py_INCREF(Py_None);
16279   p->headers = Py_None; Py_INCREF(Py_None);
16280   p->raw_headers = Py_None; Py_INCREF(Py_None);
16281   p->should_close = Py_None; Py_INCREF(Py_None);
16282   p->compression = Py_None; Py_INCREF(Py_None);
16283   p->upgrade = Py_None; Py_INCREF(Py_None);
16284   p->chunked = Py_None; Py_INCREF(Py_None);
16285   return o;
16286 }
16287 
__pyx_tp_dealloc_7aiohttp_12_http_parser_RawResponseMessage(PyObject * o)16288 static void __pyx_tp_dealloc_7aiohttp_12_http_parser_RawResponseMessage(PyObject *o) {
16289   struct __pyx_obj_7aiohttp_12_http_parser_RawResponseMessage *p = (struct __pyx_obj_7aiohttp_12_http_parser_RawResponseMessage *)o;
16290   #if CYTHON_USE_TP_FINALIZE
16291   if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
16292     if (PyObject_CallFinalizerFromDealloc(o)) return;
16293   }
16294   #endif
16295   PyObject_GC_UnTrack(o);
16296   Py_CLEAR(p->version);
16297   Py_CLEAR(p->reason);
16298   Py_CLEAR(p->headers);
16299   Py_CLEAR(p->raw_headers);
16300   Py_CLEAR(p->should_close);
16301   Py_CLEAR(p->compression);
16302   Py_CLEAR(p->upgrade);
16303   Py_CLEAR(p->chunked);
16304   if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_7aiohttp_12_http_parser_RawResponseMessage < 250) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_7aiohttp_12_http_parser_RawResponseMessage)) & ((Py_TYPE(o)->tp_flags & (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)) == 0))) {
16305     __pyx_freelist_7aiohttp_12_http_parser_RawResponseMessage[__pyx_freecount_7aiohttp_12_http_parser_RawResponseMessage++] = ((struct __pyx_obj_7aiohttp_12_http_parser_RawResponseMessage *)o);
16306   } else {
16307     (*Py_TYPE(o)->tp_free)(o);
16308   }
16309 }
16310 
__pyx_tp_traverse_7aiohttp_12_http_parser_RawResponseMessage(PyObject * o,visitproc v,void * a)16311 static int __pyx_tp_traverse_7aiohttp_12_http_parser_RawResponseMessage(PyObject *o, visitproc v, void *a) {
16312   int e;
16313   struct __pyx_obj_7aiohttp_12_http_parser_RawResponseMessage *p = (struct __pyx_obj_7aiohttp_12_http_parser_RawResponseMessage *)o;
16314   if (p->version) {
16315     e = (*v)(p->version, a); if (e) return e;
16316   }
16317   if (p->headers) {
16318     e = (*v)(p->headers, a); if (e) return e;
16319   }
16320   if (p->raw_headers) {
16321     e = (*v)(p->raw_headers, a); if (e) return e;
16322   }
16323   if (p->should_close) {
16324     e = (*v)(p->should_close, a); if (e) return e;
16325   }
16326   if (p->compression) {
16327     e = (*v)(p->compression, a); if (e) return e;
16328   }
16329   if (p->upgrade) {
16330     e = (*v)(p->upgrade, a); if (e) return e;
16331   }
16332   if (p->chunked) {
16333     e = (*v)(p->chunked, a); if (e) return e;
16334   }
16335   return 0;
16336 }
16337 
__pyx_tp_clear_7aiohttp_12_http_parser_RawResponseMessage(PyObject * o)16338 static int __pyx_tp_clear_7aiohttp_12_http_parser_RawResponseMessage(PyObject *o) {
16339   PyObject* tmp;
16340   struct __pyx_obj_7aiohttp_12_http_parser_RawResponseMessage *p = (struct __pyx_obj_7aiohttp_12_http_parser_RawResponseMessage *)o;
16341   tmp = ((PyObject*)p->version);
16342   p->version = Py_None; Py_INCREF(Py_None);
16343   Py_XDECREF(tmp);
16344   tmp = ((PyObject*)p->headers);
16345   p->headers = Py_None; Py_INCREF(Py_None);
16346   Py_XDECREF(tmp);
16347   tmp = ((PyObject*)p->raw_headers);
16348   p->raw_headers = Py_None; Py_INCREF(Py_None);
16349   Py_XDECREF(tmp);
16350   tmp = ((PyObject*)p->should_close);
16351   p->should_close = Py_None; Py_INCREF(Py_None);
16352   Py_XDECREF(tmp);
16353   tmp = ((PyObject*)p->compression);
16354   p->compression = Py_None; Py_INCREF(Py_None);
16355   Py_XDECREF(tmp);
16356   tmp = ((PyObject*)p->upgrade);
16357   p->upgrade = Py_None; Py_INCREF(Py_None);
16358   Py_XDECREF(tmp);
16359   tmp = ((PyObject*)p->chunked);
16360   p->chunked = Py_None; Py_INCREF(Py_None);
16361   Py_XDECREF(tmp);
16362   return 0;
16363 }
16364 
__pyx_getprop_7aiohttp_12_http_parser_18RawResponseMessage_version(PyObject * o,CYTHON_UNUSED void * x)16365 static PyObject *__pyx_getprop_7aiohttp_12_http_parser_18RawResponseMessage_version(PyObject *o, CYTHON_UNUSED void *x) {
16366   return __pyx_pw_7aiohttp_12_http_parser_18RawResponseMessage_7version_1__get__(o);
16367 }
16368 
__pyx_getprop_7aiohttp_12_http_parser_18RawResponseMessage_code(PyObject * o,CYTHON_UNUSED void * x)16369 static PyObject *__pyx_getprop_7aiohttp_12_http_parser_18RawResponseMessage_code(PyObject *o, CYTHON_UNUSED void *x) {
16370   return __pyx_pw_7aiohttp_12_http_parser_18RawResponseMessage_4code_1__get__(o);
16371 }
16372 
__pyx_getprop_7aiohttp_12_http_parser_18RawResponseMessage_reason(PyObject * o,CYTHON_UNUSED void * x)16373 static PyObject *__pyx_getprop_7aiohttp_12_http_parser_18RawResponseMessage_reason(PyObject *o, CYTHON_UNUSED void *x) {
16374   return __pyx_pw_7aiohttp_12_http_parser_18RawResponseMessage_6reason_1__get__(o);
16375 }
16376 
__pyx_getprop_7aiohttp_12_http_parser_18RawResponseMessage_headers(PyObject * o,CYTHON_UNUSED void * x)16377 static PyObject *__pyx_getprop_7aiohttp_12_http_parser_18RawResponseMessage_headers(PyObject *o, CYTHON_UNUSED void *x) {
16378   return __pyx_pw_7aiohttp_12_http_parser_18RawResponseMessage_7headers_1__get__(o);
16379 }
16380 
__pyx_getprop_7aiohttp_12_http_parser_18RawResponseMessage_raw_headers(PyObject * o,CYTHON_UNUSED void * x)16381 static PyObject *__pyx_getprop_7aiohttp_12_http_parser_18RawResponseMessage_raw_headers(PyObject *o, CYTHON_UNUSED void *x) {
16382   return __pyx_pw_7aiohttp_12_http_parser_18RawResponseMessage_11raw_headers_1__get__(o);
16383 }
16384 
__pyx_getprop_7aiohttp_12_http_parser_18RawResponseMessage_should_close(PyObject * o,CYTHON_UNUSED void * x)16385 static PyObject *__pyx_getprop_7aiohttp_12_http_parser_18RawResponseMessage_should_close(PyObject *o, CYTHON_UNUSED void *x) {
16386   return __pyx_pw_7aiohttp_12_http_parser_18RawResponseMessage_12should_close_1__get__(o);
16387 }
16388 
__pyx_getprop_7aiohttp_12_http_parser_18RawResponseMessage_compression(PyObject * o,CYTHON_UNUSED void * x)16389 static PyObject *__pyx_getprop_7aiohttp_12_http_parser_18RawResponseMessage_compression(PyObject *o, CYTHON_UNUSED void *x) {
16390   return __pyx_pw_7aiohttp_12_http_parser_18RawResponseMessage_11compression_1__get__(o);
16391 }
16392 
__pyx_getprop_7aiohttp_12_http_parser_18RawResponseMessage_upgrade(PyObject * o,CYTHON_UNUSED void * x)16393 static PyObject *__pyx_getprop_7aiohttp_12_http_parser_18RawResponseMessage_upgrade(PyObject *o, CYTHON_UNUSED void *x) {
16394   return __pyx_pw_7aiohttp_12_http_parser_18RawResponseMessage_7upgrade_1__get__(o);
16395 }
16396 
__pyx_getprop_7aiohttp_12_http_parser_18RawResponseMessage_chunked(PyObject * o,CYTHON_UNUSED void * x)16397 static PyObject *__pyx_getprop_7aiohttp_12_http_parser_18RawResponseMessage_chunked(PyObject *o, CYTHON_UNUSED void *x) {
16398   return __pyx_pw_7aiohttp_12_http_parser_18RawResponseMessage_7chunked_1__get__(o);
16399 }
16400 
16401 static PyMethodDef __pyx_methods_7aiohttp_12_http_parser_RawResponseMessage[] = {
16402   {"__reduce_cython__", (PyCFunction)__pyx_pw_7aiohttp_12_http_parser_18RawResponseMessage_5__reduce_cython__, METH_NOARGS, 0},
16403   {"__setstate_cython__", (PyCFunction)__pyx_pw_7aiohttp_12_http_parser_18RawResponseMessage_7__setstate_cython__, METH_O, 0},
16404   {0, 0, 0, 0}
16405 };
16406 
16407 static struct PyGetSetDef __pyx_getsets_7aiohttp_12_http_parser_RawResponseMessage[] = {
16408   {(char *)"version", __pyx_getprop_7aiohttp_12_http_parser_18RawResponseMessage_version, 0, (char *)0, 0},
16409   {(char *)"code", __pyx_getprop_7aiohttp_12_http_parser_18RawResponseMessage_code, 0, (char *)0, 0},
16410   {(char *)"reason", __pyx_getprop_7aiohttp_12_http_parser_18RawResponseMessage_reason, 0, (char *)0, 0},
16411   {(char *)"headers", __pyx_getprop_7aiohttp_12_http_parser_18RawResponseMessage_headers, 0, (char *)0, 0},
16412   {(char *)"raw_headers", __pyx_getprop_7aiohttp_12_http_parser_18RawResponseMessage_raw_headers, 0, (char *)0, 0},
16413   {(char *)"should_close", __pyx_getprop_7aiohttp_12_http_parser_18RawResponseMessage_should_close, 0, (char *)0, 0},
16414   {(char *)"compression", __pyx_getprop_7aiohttp_12_http_parser_18RawResponseMessage_compression, 0, (char *)0, 0},
16415   {(char *)"upgrade", __pyx_getprop_7aiohttp_12_http_parser_18RawResponseMessage_upgrade, 0, (char *)0, 0},
16416   {(char *)"chunked", __pyx_getprop_7aiohttp_12_http_parser_18RawResponseMessage_chunked, 0, (char *)0, 0},
16417   {0, 0, 0, 0, 0}
16418 };
16419 
16420 static PyTypeObject __pyx_type_7aiohttp_12_http_parser_RawResponseMessage = {
16421   PyVarObject_HEAD_INIT(0, 0)
16422   "aiohttp._http_parser.RawResponseMessage", /*tp_name*/
16423   sizeof(struct __pyx_obj_7aiohttp_12_http_parser_RawResponseMessage), /*tp_basicsize*/
16424   0, /*tp_itemsize*/
16425   __pyx_tp_dealloc_7aiohttp_12_http_parser_RawResponseMessage, /*tp_dealloc*/
16426   #if PY_VERSION_HEX < 0x030800b4
16427   0, /*tp_print*/
16428   #endif
16429   #if PY_VERSION_HEX >= 0x030800b4
16430   0, /*tp_vectorcall_offset*/
16431   #endif
16432   0, /*tp_getattr*/
16433   0, /*tp_setattr*/
16434   #if PY_MAJOR_VERSION < 3
16435   0, /*tp_compare*/
16436   #endif
16437   #if PY_MAJOR_VERSION >= 3
16438   0, /*tp_as_async*/
16439   #endif
16440   __pyx_pw_7aiohttp_12_http_parser_18RawResponseMessage_3__repr__, /*tp_repr*/
16441   0, /*tp_as_number*/
16442   0, /*tp_as_sequence*/
16443   0, /*tp_as_mapping*/
16444   0, /*tp_hash*/
16445   0, /*tp_call*/
16446   0, /*tp_str*/
16447   0, /*tp_getattro*/
16448   0, /*tp_setattro*/
16449   0, /*tp_as_buffer*/
16450   Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
16451   0, /*tp_doc*/
16452   __pyx_tp_traverse_7aiohttp_12_http_parser_RawResponseMessage, /*tp_traverse*/
16453   __pyx_tp_clear_7aiohttp_12_http_parser_RawResponseMessage, /*tp_clear*/
16454   0, /*tp_richcompare*/
16455   0, /*tp_weaklistoffset*/
16456   0, /*tp_iter*/
16457   0, /*tp_iternext*/
16458   __pyx_methods_7aiohttp_12_http_parser_RawResponseMessage, /*tp_methods*/
16459   0, /*tp_members*/
16460   __pyx_getsets_7aiohttp_12_http_parser_RawResponseMessage, /*tp_getset*/
16461   0, /*tp_base*/
16462   0, /*tp_dict*/
16463   0, /*tp_descr_get*/
16464   0, /*tp_descr_set*/
16465   0, /*tp_dictoffset*/
16466   __pyx_pw_7aiohttp_12_http_parser_18RawResponseMessage_1__init__, /*tp_init*/
16467   0, /*tp_alloc*/
16468   __pyx_tp_new_7aiohttp_12_http_parser_RawResponseMessage, /*tp_new*/
16469   0, /*tp_free*/
16470   0, /*tp_is_gc*/
16471   0, /*tp_bases*/
16472   0, /*tp_mro*/
16473   0, /*tp_cache*/
16474   0, /*tp_subclasses*/
16475   0, /*tp_weaklist*/
16476   0, /*tp_del*/
16477   0, /*tp_version_tag*/
16478   #if PY_VERSION_HEX >= 0x030400a1
16479   0, /*tp_finalize*/
16480   #endif
16481   #if PY_VERSION_HEX >= 0x030800b1
16482   0, /*tp_vectorcall*/
16483   #endif
16484   #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
16485   0, /*tp_print*/
16486   #endif
16487 };
16488 static struct __pyx_vtabstruct_7aiohttp_12_http_parser_HttpParser __pyx_vtable_7aiohttp_12_http_parser_HttpParser;
16489 
__pyx_tp_new_7aiohttp_12_http_parser_HttpParser(PyTypeObject * t,CYTHON_UNUSED PyObject * a,CYTHON_UNUSED PyObject * k)16490 static PyObject *__pyx_tp_new_7aiohttp_12_http_parser_HttpParser(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
16491   struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *p;
16492   PyObject *o;
16493   if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
16494     o = (*t->tp_alloc)(t, 0);
16495   } else {
16496     o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
16497   }
16498   if (unlikely(!o)) return 0;
16499   p = ((struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *)o);
16500   p->__pyx_vtab = __pyx_vtabptr_7aiohttp_12_http_parser_HttpParser;
16501   p->_raw_name = ((PyObject*)Py_None); Py_INCREF(Py_None);
16502   p->_raw_value = ((PyObject*)Py_None); Py_INCREF(Py_None);
16503   p->_protocol = Py_None; Py_INCREF(Py_None);
16504   p->_loop = Py_None; Py_INCREF(Py_None);
16505   p->_timer = Py_None; Py_INCREF(Py_None);
16506   p->_url = Py_None; Py_INCREF(Py_None);
16507   p->_buf = ((PyObject*)Py_None); Py_INCREF(Py_None);
16508   p->_path = ((PyObject*)Py_None); Py_INCREF(Py_None);
16509   p->_reason = ((PyObject*)Py_None); Py_INCREF(Py_None);
16510   p->_headers = Py_None; Py_INCREF(Py_None);
16511   p->_raw_headers = ((PyObject*)Py_None); Py_INCREF(Py_None);
16512   p->_messages = ((PyObject*)Py_None); Py_INCREF(Py_None);
16513   p->_payload = Py_None; Py_INCREF(Py_None);
16514   p->_payload_exception = Py_None; Py_INCREF(Py_None);
16515   p->_last_error = Py_None; Py_INCREF(Py_None);
16516   p->_content_encoding = ((PyObject*)Py_None); Py_INCREF(Py_None);
16517   p->py_buf.obj = NULL;
16518   if (unlikely(__pyx_pw_7aiohttp_12_http_parser_10HttpParser_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) goto bad;
16519   return o;
16520   bad:
16521   Py_DECREF(o); o = 0;
16522   return NULL;
16523 }
16524 
__pyx_tp_dealloc_7aiohttp_12_http_parser_HttpParser(PyObject * o)16525 static void __pyx_tp_dealloc_7aiohttp_12_http_parser_HttpParser(PyObject *o) {
16526   struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *p = (struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *)o;
16527   #if CYTHON_USE_TP_FINALIZE
16528   if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
16529     if (PyObject_CallFinalizerFromDealloc(o)) return;
16530   }
16531   #endif
16532   PyObject_GC_UnTrack(o);
16533   {
16534     PyObject *etype, *eval, *etb;
16535     PyErr_Fetch(&etype, &eval, &etb);
16536     __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
16537     __pyx_pw_7aiohttp_12_http_parser_10HttpParser_3__dealloc__(o);
16538     __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
16539     PyErr_Restore(etype, eval, etb);
16540   }
16541   Py_CLEAR(p->_raw_name);
16542   Py_CLEAR(p->_raw_value);
16543   Py_CLEAR(p->_protocol);
16544   Py_CLEAR(p->_loop);
16545   Py_CLEAR(p->_timer);
16546   Py_CLEAR(p->_url);
16547   Py_CLEAR(p->_buf);
16548   Py_CLEAR(p->_path);
16549   Py_CLEAR(p->_reason);
16550   Py_CLEAR(p->_headers);
16551   Py_CLEAR(p->_raw_headers);
16552   Py_CLEAR(p->_messages);
16553   Py_CLEAR(p->_payload);
16554   Py_CLEAR(p->_payload_exception);
16555   Py_CLEAR(p->_last_error);
16556   Py_CLEAR(p->_content_encoding);
16557   (*Py_TYPE(o)->tp_free)(o);
16558 }
16559 
__pyx_tp_traverse_7aiohttp_12_http_parser_HttpParser(PyObject * o,visitproc v,void * a)16560 static int __pyx_tp_traverse_7aiohttp_12_http_parser_HttpParser(PyObject *o, visitproc v, void *a) {
16561   int e;
16562   struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *p = (struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *)o;
16563   if (p->_protocol) {
16564     e = (*v)(p->_protocol, a); if (e) return e;
16565   }
16566   if (p->_loop) {
16567     e = (*v)(p->_loop, a); if (e) return e;
16568   }
16569   if (p->_timer) {
16570     e = (*v)(p->_timer, a); if (e) return e;
16571   }
16572   if (p->_url) {
16573     e = (*v)(p->_url, a); if (e) return e;
16574   }
16575   if (p->_headers) {
16576     e = (*v)(p->_headers, a); if (e) return e;
16577   }
16578   if (p->_raw_headers) {
16579     e = (*v)(p->_raw_headers, a); if (e) return e;
16580   }
16581   if (p->_messages) {
16582     e = (*v)(p->_messages, a); if (e) return e;
16583   }
16584   if (p->_payload) {
16585     e = (*v)(p->_payload, a); if (e) return e;
16586   }
16587   if (p->_payload_exception) {
16588     e = (*v)(p->_payload_exception, a); if (e) return e;
16589   }
16590   if (p->_last_error) {
16591     e = (*v)(p->_last_error, a); if (e) return e;
16592   }
16593   if (p->py_buf.obj) {
16594     e = (*v)(p->py_buf.obj, a); if (e) return e;
16595   }
16596   return 0;
16597 }
16598 
__pyx_tp_clear_7aiohttp_12_http_parser_HttpParser(PyObject * o)16599 static int __pyx_tp_clear_7aiohttp_12_http_parser_HttpParser(PyObject *o) {
16600   PyObject* tmp;
16601   struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *p = (struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *)o;
16602   tmp = ((PyObject*)p->_protocol);
16603   p->_protocol = Py_None; Py_INCREF(Py_None);
16604   Py_XDECREF(tmp);
16605   tmp = ((PyObject*)p->_loop);
16606   p->_loop = Py_None; Py_INCREF(Py_None);
16607   Py_XDECREF(tmp);
16608   tmp = ((PyObject*)p->_timer);
16609   p->_timer = Py_None; Py_INCREF(Py_None);
16610   Py_XDECREF(tmp);
16611   tmp = ((PyObject*)p->_url);
16612   p->_url = Py_None; Py_INCREF(Py_None);
16613   Py_XDECREF(tmp);
16614   tmp = ((PyObject*)p->_headers);
16615   p->_headers = Py_None; Py_INCREF(Py_None);
16616   Py_XDECREF(tmp);
16617   tmp = ((PyObject*)p->_raw_headers);
16618   p->_raw_headers = ((PyObject*)Py_None); Py_INCREF(Py_None);
16619   Py_XDECREF(tmp);
16620   tmp = ((PyObject*)p->_messages);
16621   p->_messages = ((PyObject*)Py_None); Py_INCREF(Py_None);
16622   Py_XDECREF(tmp);
16623   tmp = ((PyObject*)p->_payload);
16624   p->_payload = Py_None; Py_INCREF(Py_None);
16625   Py_XDECREF(tmp);
16626   tmp = ((PyObject*)p->_payload_exception);
16627   p->_payload_exception = Py_None; Py_INCREF(Py_None);
16628   Py_XDECREF(tmp);
16629   tmp = ((PyObject*)p->_last_error);
16630   p->_last_error = Py_None; Py_INCREF(Py_None);
16631   Py_XDECREF(tmp);
16632   Py_CLEAR(p->py_buf.obj);
16633   return 0;
16634 }
16635 
16636 static PyMethodDef __pyx_methods_7aiohttp_12_http_parser_HttpParser[] = {
16637   {"feed_eof", (PyCFunction)__pyx_pw_7aiohttp_12_http_parser_10HttpParser_5feed_eof, METH_NOARGS, 0},
16638   {"feed_data", (PyCFunction)__pyx_pw_7aiohttp_12_http_parser_10HttpParser_7feed_data, METH_O, 0},
16639   {"set_upgraded", (PyCFunction)__pyx_pw_7aiohttp_12_http_parser_10HttpParser_9set_upgraded, METH_O, 0},
16640   {"__reduce_cython__", (PyCFunction)__pyx_pw_7aiohttp_12_http_parser_10HttpParser_11__reduce_cython__, METH_NOARGS, 0},
16641   {"__setstate_cython__", (PyCFunction)__pyx_pw_7aiohttp_12_http_parser_10HttpParser_13__setstate_cython__, METH_O, 0},
16642   {0, 0, 0, 0}
16643 };
16644 
16645 static PyTypeObject __pyx_type_7aiohttp_12_http_parser_HttpParser = {
16646   PyVarObject_HEAD_INIT(0, 0)
16647   "aiohttp._http_parser.HttpParser", /*tp_name*/
16648   sizeof(struct __pyx_obj_7aiohttp_12_http_parser_HttpParser), /*tp_basicsize*/
16649   0, /*tp_itemsize*/
16650   __pyx_tp_dealloc_7aiohttp_12_http_parser_HttpParser, /*tp_dealloc*/
16651   #if PY_VERSION_HEX < 0x030800b4
16652   0, /*tp_print*/
16653   #endif
16654   #if PY_VERSION_HEX >= 0x030800b4
16655   0, /*tp_vectorcall_offset*/
16656   #endif
16657   0, /*tp_getattr*/
16658   0, /*tp_setattr*/
16659   #if PY_MAJOR_VERSION < 3
16660   0, /*tp_compare*/
16661   #endif
16662   #if PY_MAJOR_VERSION >= 3
16663   0, /*tp_as_async*/
16664   #endif
16665   0, /*tp_repr*/
16666   0, /*tp_as_number*/
16667   0, /*tp_as_sequence*/
16668   0, /*tp_as_mapping*/
16669   0, /*tp_hash*/
16670   0, /*tp_call*/
16671   0, /*tp_str*/
16672   0, /*tp_getattro*/
16673   0, /*tp_setattro*/
16674   0, /*tp_as_buffer*/
16675   Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
16676   0, /*tp_doc*/
16677   __pyx_tp_traverse_7aiohttp_12_http_parser_HttpParser, /*tp_traverse*/
16678   __pyx_tp_clear_7aiohttp_12_http_parser_HttpParser, /*tp_clear*/
16679   0, /*tp_richcompare*/
16680   0, /*tp_weaklistoffset*/
16681   0, /*tp_iter*/
16682   0, /*tp_iternext*/
16683   __pyx_methods_7aiohttp_12_http_parser_HttpParser, /*tp_methods*/
16684   0, /*tp_members*/
16685   0, /*tp_getset*/
16686   0, /*tp_base*/
16687   0, /*tp_dict*/
16688   0, /*tp_descr_get*/
16689   0, /*tp_descr_set*/
16690   0, /*tp_dictoffset*/
16691   0, /*tp_init*/
16692   0, /*tp_alloc*/
16693   __pyx_tp_new_7aiohttp_12_http_parser_HttpParser, /*tp_new*/
16694   0, /*tp_free*/
16695   0, /*tp_is_gc*/
16696   0, /*tp_bases*/
16697   0, /*tp_mro*/
16698   0, /*tp_cache*/
16699   0, /*tp_subclasses*/
16700   0, /*tp_weaklist*/
16701   0, /*tp_del*/
16702   0, /*tp_version_tag*/
16703   #if PY_VERSION_HEX >= 0x030400a1
16704   0, /*tp_finalize*/
16705   #endif
16706   #if PY_VERSION_HEX >= 0x030800b1
16707   0, /*tp_vectorcall*/
16708   #endif
16709   #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
16710   0, /*tp_print*/
16711   #endif
16712 };
16713 static struct __pyx_vtabstruct_7aiohttp_12_http_parser_HttpRequestParser __pyx_vtable_7aiohttp_12_http_parser_HttpRequestParser;
16714 
__pyx_tp_new_7aiohttp_12_http_parser_HttpRequestParser(PyTypeObject * t,PyObject * a,PyObject * k)16715 static PyObject *__pyx_tp_new_7aiohttp_12_http_parser_HttpRequestParser(PyTypeObject *t, PyObject *a, PyObject *k) {
16716   struct __pyx_obj_7aiohttp_12_http_parser_HttpRequestParser *p;
16717   PyObject *o = __pyx_tp_new_7aiohttp_12_http_parser_HttpParser(t, a, k);
16718   if (unlikely(!o)) return 0;
16719   p = ((struct __pyx_obj_7aiohttp_12_http_parser_HttpRequestParser *)o);
16720   p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7aiohttp_12_http_parser_HttpParser*)__pyx_vtabptr_7aiohttp_12_http_parser_HttpRequestParser;
16721   return o;
16722 }
16723 
16724 static PyMethodDef __pyx_methods_7aiohttp_12_http_parser_HttpRequestParser[] = {
16725   {"__reduce_cython__", (PyCFunction)__pyx_pw_7aiohttp_12_http_parser_17HttpRequestParser_3__reduce_cython__, METH_NOARGS, 0},
16726   {"__setstate_cython__", (PyCFunction)__pyx_pw_7aiohttp_12_http_parser_17HttpRequestParser_5__setstate_cython__, METH_O, 0},
16727   {0, 0, 0, 0}
16728 };
16729 
16730 static PyTypeObject __pyx_type_7aiohttp_12_http_parser_HttpRequestParser = {
16731   PyVarObject_HEAD_INIT(0, 0)
16732   "aiohttp._http_parser.HttpRequestParser", /*tp_name*/
16733   sizeof(struct __pyx_obj_7aiohttp_12_http_parser_HttpRequestParser), /*tp_basicsize*/
16734   0, /*tp_itemsize*/
16735   __pyx_tp_dealloc_7aiohttp_12_http_parser_HttpParser, /*tp_dealloc*/
16736   #if PY_VERSION_HEX < 0x030800b4
16737   0, /*tp_print*/
16738   #endif
16739   #if PY_VERSION_HEX >= 0x030800b4
16740   0, /*tp_vectorcall_offset*/
16741   #endif
16742   0, /*tp_getattr*/
16743   0, /*tp_setattr*/
16744   #if PY_MAJOR_VERSION < 3
16745   0, /*tp_compare*/
16746   #endif
16747   #if PY_MAJOR_VERSION >= 3
16748   0, /*tp_as_async*/
16749   #endif
16750   0, /*tp_repr*/
16751   0, /*tp_as_number*/
16752   0, /*tp_as_sequence*/
16753   0, /*tp_as_mapping*/
16754   0, /*tp_hash*/
16755   0, /*tp_call*/
16756   0, /*tp_str*/
16757   0, /*tp_getattro*/
16758   0, /*tp_setattro*/
16759   0, /*tp_as_buffer*/
16760   Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
16761   0, /*tp_doc*/
16762   __pyx_tp_traverse_7aiohttp_12_http_parser_HttpParser, /*tp_traverse*/
16763   __pyx_tp_clear_7aiohttp_12_http_parser_HttpParser, /*tp_clear*/
16764   0, /*tp_richcompare*/
16765   0, /*tp_weaklistoffset*/
16766   0, /*tp_iter*/
16767   0, /*tp_iternext*/
16768   __pyx_methods_7aiohttp_12_http_parser_HttpRequestParser, /*tp_methods*/
16769   0, /*tp_members*/
16770   0, /*tp_getset*/
16771   0, /*tp_base*/
16772   0, /*tp_dict*/
16773   0, /*tp_descr_get*/
16774   0, /*tp_descr_set*/
16775   0, /*tp_dictoffset*/
16776   __pyx_pw_7aiohttp_12_http_parser_17HttpRequestParser_1__init__, /*tp_init*/
16777   0, /*tp_alloc*/
16778   __pyx_tp_new_7aiohttp_12_http_parser_HttpRequestParser, /*tp_new*/
16779   0, /*tp_free*/
16780   0, /*tp_is_gc*/
16781   0, /*tp_bases*/
16782   0, /*tp_mro*/
16783   0, /*tp_cache*/
16784   0, /*tp_subclasses*/
16785   0, /*tp_weaklist*/
16786   0, /*tp_del*/
16787   0, /*tp_version_tag*/
16788   #if PY_VERSION_HEX >= 0x030400a1
16789   0, /*tp_finalize*/
16790   #endif
16791   #if PY_VERSION_HEX >= 0x030800b1
16792   0, /*tp_vectorcall*/
16793   #endif
16794   #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
16795   0, /*tp_print*/
16796   #endif
16797 };
16798 static struct __pyx_vtabstruct_7aiohttp_12_http_parser_HttpResponseParser __pyx_vtable_7aiohttp_12_http_parser_HttpResponseParser;
16799 
__pyx_tp_new_7aiohttp_12_http_parser_HttpResponseParser(PyTypeObject * t,PyObject * a,PyObject * k)16800 static PyObject *__pyx_tp_new_7aiohttp_12_http_parser_HttpResponseParser(PyTypeObject *t, PyObject *a, PyObject *k) {
16801   struct __pyx_obj_7aiohttp_12_http_parser_HttpResponseParser *p;
16802   PyObject *o = __pyx_tp_new_7aiohttp_12_http_parser_HttpParser(t, a, k);
16803   if (unlikely(!o)) return 0;
16804   p = ((struct __pyx_obj_7aiohttp_12_http_parser_HttpResponseParser *)o);
16805   p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7aiohttp_12_http_parser_HttpParser*)__pyx_vtabptr_7aiohttp_12_http_parser_HttpResponseParser;
16806   return o;
16807 }
16808 
16809 static PyMethodDef __pyx_methods_7aiohttp_12_http_parser_HttpResponseParser[] = {
16810   {"__reduce_cython__", (PyCFunction)__pyx_pw_7aiohttp_12_http_parser_18HttpResponseParser_3__reduce_cython__, METH_NOARGS, 0},
16811   {"__setstate_cython__", (PyCFunction)__pyx_pw_7aiohttp_12_http_parser_18HttpResponseParser_5__setstate_cython__, METH_O, 0},
16812   {0, 0, 0, 0}
16813 };
16814 
16815 static PyTypeObject __pyx_type_7aiohttp_12_http_parser_HttpResponseParser = {
16816   PyVarObject_HEAD_INIT(0, 0)
16817   "aiohttp._http_parser.HttpResponseParser", /*tp_name*/
16818   sizeof(struct __pyx_obj_7aiohttp_12_http_parser_HttpResponseParser), /*tp_basicsize*/
16819   0, /*tp_itemsize*/
16820   __pyx_tp_dealloc_7aiohttp_12_http_parser_HttpParser, /*tp_dealloc*/
16821   #if PY_VERSION_HEX < 0x030800b4
16822   0, /*tp_print*/
16823   #endif
16824   #if PY_VERSION_HEX >= 0x030800b4
16825   0, /*tp_vectorcall_offset*/
16826   #endif
16827   0, /*tp_getattr*/
16828   0, /*tp_setattr*/
16829   #if PY_MAJOR_VERSION < 3
16830   0, /*tp_compare*/
16831   #endif
16832   #if PY_MAJOR_VERSION >= 3
16833   0, /*tp_as_async*/
16834   #endif
16835   0, /*tp_repr*/
16836   0, /*tp_as_number*/
16837   0, /*tp_as_sequence*/
16838   0, /*tp_as_mapping*/
16839   0, /*tp_hash*/
16840   0, /*tp_call*/
16841   0, /*tp_str*/
16842   0, /*tp_getattro*/
16843   0, /*tp_setattro*/
16844   0, /*tp_as_buffer*/
16845   Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
16846   0, /*tp_doc*/
16847   __pyx_tp_traverse_7aiohttp_12_http_parser_HttpParser, /*tp_traverse*/
16848   __pyx_tp_clear_7aiohttp_12_http_parser_HttpParser, /*tp_clear*/
16849   0, /*tp_richcompare*/
16850   0, /*tp_weaklistoffset*/
16851   0, /*tp_iter*/
16852   0, /*tp_iternext*/
16853   __pyx_methods_7aiohttp_12_http_parser_HttpResponseParser, /*tp_methods*/
16854   0, /*tp_members*/
16855   0, /*tp_getset*/
16856   0, /*tp_base*/
16857   0, /*tp_dict*/
16858   0, /*tp_descr_get*/
16859   0, /*tp_descr_set*/
16860   0, /*tp_dictoffset*/
16861   __pyx_pw_7aiohttp_12_http_parser_18HttpResponseParser_1__init__, /*tp_init*/
16862   0, /*tp_alloc*/
16863   __pyx_tp_new_7aiohttp_12_http_parser_HttpResponseParser, /*tp_new*/
16864   0, /*tp_free*/
16865   0, /*tp_is_gc*/
16866   0, /*tp_bases*/
16867   0, /*tp_mro*/
16868   0, /*tp_cache*/
16869   0, /*tp_subclasses*/
16870   0, /*tp_weaklist*/
16871   0, /*tp_del*/
16872   0, /*tp_version_tag*/
16873   #if PY_VERSION_HEX >= 0x030400a1
16874   0, /*tp_finalize*/
16875   #endif
16876   #if PY_VERSION_HEX >= 0x030800b1
16877   0, /*tp_vectorcall*/
16878   #endif
16879   #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
16880   0, /*tp_print*/
16881   #endif
16882 };
16883 
16884 static struct __pyx_obj_7aiohttp_12_http_parser___pyx_scope_struct____repr__ *__pyx_freelist_7aiohttp_12_http_parser___pyx_scope_struct____repr__[8];
16885 static int __pyx_freecount_7aiohttp_12_http_parser___pyx_scope_struct____repr__ = 0;
16886 
__pyx_tp_new_7aiohttp_12_http_parser___pyx_scope_struct____repr__(PyTypeObject * t,CYTHON_UNUSED PyObject * a,CYTHON_UNUSED PyObject * k)16887 static PyObject *__pyx_tp_new_7aiohttp_12_http_parser___pyx_scope_struct____repr__(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
16888   PyObject *o;
16889   if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_7aiohttp_12_http_parser___pyx_scope_struct____repr__ > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_7aiohttp_12_http_parser___pyx_scope_struct____repr__)))) {
16890     o = (PyObject*)__pyx_freelist_7aiohttp_12_http_parser___pyx_scope_struct____repr__[--__pyx_freecount_7aiohttp_12_http_parser___pyx_scope_struct____repr__];
16891     memset(o, 0, sizeof(struct __pyx_obj_7aiohttp_12_http_parser___pyx_scope_struct____repr__));
16892     (void) PyObject_INIT(o, t);
16893     PyObject_GC_Track(o);
16894   } else {
16895     o = (*t->tp_alloc)(t, 0);
16896     if (unlikely(!o)) return 0;
16897   }
16898   return o;
16899 }
16900 
__pyx_tp_dealloc_7aiohttp_12_http_parser___pyx_scope_struct____repr__(PyObject * o)16901 static void __pyx_tp_dealloc_7aiohttp_12_http_parser___pyx_scope_struct____repr__(PyObject *o) {
16902   struct __pyx_obj_7aiohttp_12_http_parser___pyx_scope_struct____repr__ *p = (struct __pyx_obj_7aiohttp_12_http_parser___pyx_scope_struct____repr__ *)o;
16903   PyObject_GC_UnTrack(o);
16904   Py_CLEAR(p->__pyx_v_info);
16905   if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_7aiohttp_12_http_parser___pyx_scope_struct____repr__ < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_7aiohttp_12_http_parser___pyx_scope_struct____repr__)))) {
16906     __pyx_freelist_7aiohttp_12_http_parser___pyx_scope_struct____repr__[__pyx_freecount_7aiohttp_12_http_parser___pyx_scope_struct____repr__++] = ((struct __pyx_obj_7aiohttp_12_http_parser___pyx_scope_struct____repr__ *)o);
16907   } else {
16908     (*Py_TYPE(o)->tp_free)(o);
16909   }
16910 }
16911 
__pyx_tp_traverse_7aiohttp_12_http_parser___pyx_scope_struct____repr__(PyObject * o,visitproc v,void * a)16912 static int __pyx_tp_traverse_7aiohttp_12_http_parser___pyx_scope_struct____repr__(PyObject *o, visitproc v, void *a) {
16913   int e;
16914   struct __pyx_obj_7aiohttp_12_http_parser___pyx_scope_struct____repr__ *p = (struct __pyx_obj_7aiohttp_12_http_parser___pyx_scope_struct____repr__ *)o;
16915   if (p->__pyx_v_info) {
16916     e = (*v)(p->__pyx_v_info, a); if (e) return e;
16917   }
16918   return 0;
16919 }
16920 
__pyx_tp_clear_7aiohttp_12_http_parser___pyx_scope_struct____repr__(PyObject * o)16921 static int __pyx_tp_clear_7aiohttp_12_http_parser___pyx_scope_struct____repr__(PyObject *o) {
16922   PyObject* tmp;
16923   struct __pyx_obj_7aiohttp_12_http_parser___pyx_scope_struct____repr__ *p = (struct __pyx_obj_7aiohttp_12_http_parser___pyx_scope_struct____repr__ *)o;
16924   tmp = ((PyObject*)p->__pyx_v_info);
16925   p->__pyx_v_info = ((PyObject*)Py_None); Py_INCREF(Py_None);
16926   Py_XDECREF(tmp);
16927   return 0;
16928 }
16929 
16930 static PyTypeObject __pyx_type_7aiohttp_12_http_parser___pyx_scope_struct____repr__ = {
16931   PyVarObject_HEAD_INIT(0, 0)
16932   "aiohttp._http_parser.__pyx_scope_struct____repr__", /*tp_name*/
16933   sizeof(struct __pyx_obj_7aiohttp_12_http_parser___pyx_scope_struct____repr__), /*tp_basicsize*/
16934   0, /*tp_itemsize*/
16935   __pyx_tp_dealloc_7aiohttp_12_http_parser___pyx_scope_struct____repr__, /*tp_dealloc*/
16936   #if PY_VERSION_HEX < 0x030800b4
16937   0, /*tp_print*/
16938   #endif
16939   #if PY_VERSION_HEX >= 0x030800b4
16940   0, /*tp_vectorcall_offset*/
16941   #endif
16942   0, /*tp_getattr*/
16943   0, /*tp_setattr*/
16944   #if PY_MAJOR_VERSION < 3
16945   0, /*tp_compare*/
16946   #endif
16947   #if PY_MAJOR_VERSION >= 3
16948   0, /*tp_as_async*/
16949   #endif
16950   0, /*tp_repr*/
16951   0, /*tp_as_number*/
16952   0, /*tp_as_sequence*/
16953   0, /*tp_as_mapping*/
16954   0, /*tp_hash*/
16955   0, /*tp_call*/
16956   0, /*tp_str*/
16957   0, /*tp_getattro*/
16958   0, /*tp_setattro*/
16959   0, /*tp_as_buffer*/
16960   Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
16961   0, /*tp_doc*/
16962   __pyx_tp_traverse_7aiohttp_12_http_parser___pyx_scope_struct____repr__, /*tp_traverse*/
16963   __pyx_tp_clear_7aiohttp_12_http_parser___pyx_scope_struct____repr__, /*tp_clear*/
16964   0, /*tp_richcompare*/
16965   0, /*tp_weaklistoffset*/
16966   0, /*tp_iter*/
16967   0, /*tp_iternext*/
16968   0, /*tp_methods*/
16969   0, /*tp_members*/
16970   0, /*tp_getset*/
16971   0, /*tp_base*/
16972   0, /*tp_dict*/
16973   0, /*tp_descr_get*/
16974   0, /*tp_descr_set*/
16975   0, /*tp_dictoffset*/
16976   0, /*tp_init*/
16977   0, /*tp_alloc*/
16978   __pyx_tp_new_7aiohttp_12_http_parser___pyx_scope_struct____repr__, /*tp_new*/
16979   0, /*tp_free*/
16980   0, /*tp_is_gc*/
16981   0, /*tp_bases*/
16982   0, /*tp_mro*/
16983   0, /*tp_cache*/
16984   0, /*tp_subclasses*/
16985   0, /*tp_weaklist*/
16986   0, /*tp_del*/
16987   0, /*tp_version_tag*/
16988   #if PY_VERSION_HEX >= 0x030400a1
16989   0, /*tp_finalize*/
16990   #endif
16991   #if PY_VERSION_HEX >= 0x030800b1
16992   0, /*tp_vectorcall*/
16993   #endif
16994   #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
16995   0, /*tp_print*/
16996   #endif
16997 };
16998 
16999 static struct __pyx_obj_7aiohttp_12_http_parser___pyx_scope_struct_1_genexpr *__pyx_freelist_7aiohttp_12_http_parser___pyx_scope_struct_1_genexpr[8];
17000 static int __pyx_freecount_7aiohttp_12_http_parser___pyx_scope_struct_1_genexpr = 0;
17001 
__pyx_tp_new_7aiohttp_12_http_parser___pyx_scope_struct_1_genexpr(PyTypeObject * t,CYTHON_UNUSED PyObject * a,CYTHON_UNUSED PyObject * k)17002 static PyObject *__pyx_tp_new_7aiohttp_12_http_parser___pyx_scope_struct_1_genexpr(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
17003   PyObject *o;
17004   if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_7aiohttp_12_http_parser___pyx_scope_struct_1_genexpr > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_7aiohttp_12_http_parser___pyx_scope_struct_1_genexpr)))) {
17005     o = (PyObject*)__pyx_freelist_7aiohttp_12_http_parser___pyx_scope_struct_1_genexpr[--__pyx_freecount_7aiohttp_12_http_parser___pyx_scope_struct_1_genexpr];
17006     memset(o, 0, sizeof(struct __pyx_obj_7aiohttp_12_http_parser___pyx_scope_struct_1_genexpr));
17007     (void) PyObject_INIT(o, t);
17008     PyObject_GC_Track(o);
17009   } else {
17010     o = (*t->tp_alloc)(t, 0);
17011     if (unlikely(!o)) return 0;
17012   }
17013   return o;
17014 }
17015 
__pyx_tp_dealloc_7aiohttp_12_http_parser___pyx_scope_struct_1_genexpr(PyObject * o)17016 static void __pyx_tp_dealloc_7aiohttp_12_http_parser___pyx_scope_struct_1_genexpr(PyObject *o) {
17017   struct __pyx_obj_7aiohttp_12_http_parser___pyx_scope_struct_1_genexpr *p = (struct __pyx_obj_7aiohttp_12_http_parser___pyx_scope_struct_1_genexpr *)o;
17018   PyObject_GC_UnTrack(o);
17019   Py_CLEAR(p->__pyx_outer_scope);
17020   Py_CLEAR(p->__pyx_v_name);
17021   Py_CLEAR(p->__pyx_v_val);
17022   if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_7aiohttp_12_http_parser___pyx_scope_struct_1_genexpr < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_7aiohttp_12_http_parser___pyx_scope_struct_1_genexpr)))) {
17023     __pyx_freelist_7aiohttp_12_http_parser___pyx_scope_struct_1_genexpr[__pyx_freecount_7aiohttp_12_http_parser___pyx_scope_struct_1_genexpr++] = ((struct __pyx_obj_7aiohttp_12_http_parser___pyx_scope_struct_1_genexpr *)o);
17024   } else {
17025     (*Py_TYPE(o)->tp_free)(o);
17026   }
17027 }
17028 
__pyx_tp_traverse_7aiohttp_12_http_parser___pyx_scope_struct_1_genexpr(PyObject * o,visitproc v,void * a)17029 static int __pyx_tp_traverse_7aiohttp_12_http_parser___pyx_scope_struct_1_genexpr(PyObject *o, visitproc v, void *a) {
17030   int e;
17031   struct __pyx_obj_7aiohttp_12_http_parser___pyx_scope_struct_1_genexpr *p = (struct __pyx_obj_7aiohttp_12_http_parser___pyx_scope_struct_1_genexpr *)o;
17032   if (p->__pyx_outer_scope) {
17033     e = (*v)(((PyObject *)p->__pyx_outer_scope), a); if (e) return e;
17034   }
17035   if (p->__pyx_v_name) {
17036     e = (*v)(p->__pyx_v_name, a); if (e) return e;
17037   }
17038   if (p->__pyx_v_val) {
17039     e = (*v)(p->__pyx_v_val, a); if (e) return e;
17040   }
17041   return 0;
17042 }
17043 
17044 static PyTypeObject __pyx_type_7aiohttp_12_http_parser___pyx_scope_struct_1_genexpr = {
17045   PyVarObject_HEAD_INIT(0, 0)
17046   "aiohttp._http_parser.__pyx_scope_struct_1_genexpr", /*tp_name*/
17047   sizeof(struct __pyx_obj_7aiohttp_12_http_parser___pyx_scope_struct_1_genexpr), /*tp_basicsize*/
17048   0, /*tp_itemsize*/
17049   __pyx_tp_dealloc_7aiohttp_12_http_parser___pyx_scope_struct_1_genexpr, /*tp_dealloc*/
17050   #if PY_VERSION_HEX < 0x030800b4
17051   0, /*tp_print*/
17052   #endif
17053   #if PY_VERSION_HEX >= 0x030800b4
17054   0, /*tp_vectorcall_offset*/
17055   #endif
17056   0, /*tp_getattr*/
17057   0, /*tp_setattr*/
17058   #if PY_MAJOR_VERSION < 3
17059   0, /*tp_compare*/
17060   #endif
17061   #if PY_MAJOR_VERSION >= 3
17062   0, /*tp_as_async*/
17063   #endif
17064   0, /*tp_repr*/
17065   0, /*tp_as_number*/
17066   0, /*tp_as_sequence*/
17067   0, /*tp_as_mapping*/
17068   0, /*tp_hash*/
17069   0, /*tp_call*/
17070   0, /*tp_str*/
17071   0, /*tp_getattro*/
17072   0, /*tp_setattro*/
17073   0, /*tp_as_buffer*/
17074   Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
17075   0, /*tp_doc*/
17076   __pyx_tp_traverse_7aiohttp_12_http_parser___pyx_scope_struct_1_genexpr, /*tp_traverse*/
17077   0, /*tp_clear*/
17078   0, /*tp_richcompare*/
17079   0, /*tp_weaklistoffset*/
17080   0, /*tp_iter*/
17081   0, /*tp_iternext*/
17082   0, /*tp_methods*/
17083   0, /*tp_members*/
17084   0, /*tp_getset*/
17085   0, /*tp_base*/
17086   0, /*tp_dict*/
17087   0, /*tp_descr_get*/
17088   0, /*tp_descr_set*/
17089   0, /*tp_dictoffset*/
17090   0, /*tp_init*/
17091   0, /*tp_alloc*/
17092   __pyx_tp_new_7aiohttp_12_http_parser___pyx_scope_struct_1_genexpr, /*tp_new*/
17093   0, /*tp_free*/
17094   0, /*tp_is_gc*/
17095   0, /*tp_bases*/
17096   0, /*tp_mro*/
17097   0, /*tp_cache*/
17098   0, /*tp_subclasses*/
17099   0, /*tp_weaklist*/
17100   0, /*tp_del*/
17101   0, /*tp_version_tag*/
17102   #if PY_VERSION_HEX >= 0x030400a1
17103   0, /*tp_finalize*/
17104   #endif
17105   #if PY_VERSION_HEX >= 0x030800b1
17106   0, /*tp_vectorcall*/
17107   #endif
17108   #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
17109   0, /*tp_print*/
17110   #endif
17111 };
17112 
17113 static struct __pyx_obj_7aiohttp_12_http_parser___pyx_scope_struct_2___repr__ *__pyx_freelist_7aiohttp_12_http_parser___pyx_scope_struct_2___repr__[8];
17114 static int __pyx_freecount_7aiohttp_12_http_parser___pyx_scope_struct_2___repr__ = 0;
17115 
__pyx_tp_new_7aiohttp_12_http_parser___pyx_scope_struct_2___repr__(PyTypeObject * t,CYTHON_UNUSED PyObject * a,CYTHON_UNUSED PyObject * k)17116 static PyObject *__pyx_tp_new_7aiohttp_12_http_parser___pyx_scope_struct_2___repr__(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
17117   PyObject *o;
17118   if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_7aiohttp_12_http_parser___pyx_scope_struct_2___repr__ > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_7aiohttp_12_http_parser___pyx_scope_struct_2___repr__)))) {
17119     o = (PyObject*)__pyx_freelist_7aiohttp_12_http_parser___pyx_scope_struct_2___repr__[--__pyx_freecount_7aiohttp_12_http_parser___pyx_scope_struct_2___repr__];
17120     memset(o, 0, sizeof(struct __pyx_obj_7aiohttp_12_http_parser___pyx_scope_struct_2___repr__));
17121     (void) PyObject_INIT(o, t);
17122     PyObject_GC_Track(o);
17123   } else {
17124     o = (*t->tp_alloc)(t, 0);
17125     if (unlikely(!o)) return 0;
17126   }
17127   return o;
17128 }
17129 
__pyx_tp_dealloc_7aiohttp_12_http_parser___pyx_scope_struct_2___repr__(PyObject * o)17130 static void __pyx_tp_dealloc_7aiohttp_12_http_parser___pyx_scope_struct_2___repr__(PyObject *o) {
17131   struct __pyx_obj_7aiohttp_12_http_parser___pyx_scope_struct_2___repr__ *p = (struct __pyx_obj_7aiohttp_12_http_parser___pyx_scope_struct_2___repr__ *)o;
17132   PyObject_GC_UnTrack(o);
17133   Py_CLEAR(p->__pyx_v_info);
17134   if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_7aiohttp_12_http_parser___pyx_scope_struct_2___repr__ < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_7aiohttp_12_http_parser___pyx_scope_struct_2___repr__)))) {
17135     __pyx_freelist_7aiohttp_12_http_parser___pyx_scope_struct_2___repr__[__pyx_freecount_7aiohttp_12_http_parser___pyx_scope_struct_2___repr__++] = ((struct __pyx_obj_7aiohttp_12_http_parser___pyx_scope_struct_2___repr__ *)o);
17136   } else {
17137     (*Py_TYPE(o)->tp_free)(o);
17138   }
17139 }
17140 
__pyx_tp_traverse_7aiohttp_12_http_parser___pyx_scope_struct_2___repr__(PyObject * o,visitproc v,void * a)17141 static int __pyx_tp_traverse_7aiohttp_12_http_parser___pyx_scope_struct_2___repr__(PyObject *o, visitproc v, void *a) {
17142   int e;
17143   struct __pyx_obj_7aiohttp_12_http_parser___pyx_scope_struct_2___repr__ *p = (struct __pyx_obj_7aiohttp_12_http_parser___pyx_scope_struct_2___repr__ *)o;
17144   if (p->__pyx_v_info) {
17145     e = (*v)(p->__pyx_v_info, a); if (e) return e;
17146   }
17147   return 0;
17148 }
17149 
__pyx_tp_clear_7aiohttp_12_http_parser___pyx_scope_struct_2___repr__(PyObject * o)17150 static int __pyx_tp_clear_7aiohttp_12_http_parser___pyx_scope_struct_2___repr__(PyObject *o) {
17151   PyObject* tmp;
17152   struct __pyx_obj_7aiohttp_12_http_parser___pyx_scope_struct_2___repr__ *p = (struct __pyx_obj_7aiohttp_12_http_parser___pyx_scope_struct_2___repr__ *)o;
17153   tmp = ((PyObject*)p->__pyx_v_info);
17154   p->__pyx_v_info = ((PyObject*)Py_None); Py_INCREF(Py_None);
17155   Py_XDECREF(tmp);
17156   return 0;
17157 }
17158 
17159 static PyTypeObject __pyx_type_7aiohttp_12_http_parser___pyx_scope_struct_2___repr__ = {
17160   PyVarObject_HEAD_INIT(0, 0)
17161   "aiohttp._http_parser.__pyx_scope_struct_2___repr__", /*tp_name*/
17162   sizeof(struct __pyx_obj_7aiohttp_12_http_parser___pyx_scope_struct_2___repr__), /*tp_basicsize*/
17163   0, /*tp_itemsize*/
17164   __pyx_tp_dealloc_7aiohttp_12_http_parser___pyx_scope_struct_2___repr__, /*tp_dealloc*/
17165   #if PY_VERSION_HEX < 0x030800b4
17166   0, /*tp_print*/
17167   #endif
17168   #if PY_VERSION_HEX >= 0x030800b4
17169   0, /*tp_vectorcall_offset*/
17170   #endif
17171   0, /*tp_getattr*/
17172   0, /*tp_setattr*/
17173   #if PY_MAJOR_VERSION < 3
17174   0, /*tp_compare*/
17175   #endif
17176   #if PY_MAJOR_VERSION >= 3
17177   0, /*tp_as_async*/
17178   #endif
17179   0, /*tp_repr*/
17180   0, /*tp_as_number*/
17181   0, /*tp_as_sequence*/
17182   0, /*tp_as_mapping*/
17183   0, /*tp_hash*/
17184   0, /*tp_call*/
17185   0, /*tp_str*/
17186   0, /*tp_getattro*/
17187   0, /*tp_setattro*/
17188   0, /*tp_as_buffer*/
17189   Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
17190   0, /*tp_doc*/
17191   __pyx_tp_traverse_7aiohttp_12_http_parser___pyx_scope_struct_2___repr__, /*tp_traverse*/
17192   __pyx_tp_clear_7aiohttp_12_http_parser___pyx_scope_struct_2___repr__, /*tp_clear*/
17193   0, /*tp_richcompare*/
17194   0, /*tp_weaklistoffset*/
17195   0, /*tp_iter*/
17196   0, /*tp_iternext*/
17197   0, /*tp_methods*/
17198   0, /*tp_members*/
17199   0, /*tp_getset*/
17200   0, /*tp_base*/
17201   0, /*tp_dict*/
17202   0, /*tp_descr_get*/
17203   0, /*tp_descr_set*/
17204   0, /*tp_dictoffset*/
17205   0, /*tp_init*/
17206   0, /*tp_alloc*/
17207   __pyx_tp_new_7aiohttp_12_http_parser___pyx_scope_struct_2___repr__, /*tp_new*/
17208   0, /*tp_free*/
17209   0, /*tp_is_gc*/
17210   0, /*tp_bases*/
17211   0, /*tp_mro*/
17212   0, /*tp_cache*/
17213   0, /*tp_subclasses*/
17214   0, /*tp_weaklist*/
17215   0, /*tp_del*/
17216   0, /*tp_version_tag*/
17217   #if PY_VERSION_HEX >= 0x030400a1
17218   0, /*tp_finalize*/
17219   #endif
17220   #if PY_VERSION_HEX >= 0x030800b1
17221   0, /*tp_vectorcall*/
17222   #endif
17223   #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
17224   0, /*tp_print*/
17225   #endif
17226 };
17227 
17228 static struct __pyx_obj_7aiohttp_12_http_parser___pyx_scope_struct_3_genexpr *__pyx_freelist_7aiohttp_12_http_parser___pyx_scope_struct_3_genexpr[8];
17229 static int __pyx_freecount_7aiohttp_12_http_parser___pyx_scope_struct_3_genexpr = 0;
17230 
__pyx_tp_new_7aiohttp_12_http_parser___pyx_scope_struct_3_genexpr(PyTypeObject * t,CYTHON_UNUSED PyObject * a,CYTHON_UNUSED PyObject * k)17231 static PyObject *__pyx_tp_new_7aiohttp_12_http_parser___pyx_scope_struct_3_genexpr(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
17232   PyObject *o;
17233   if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_7aiohttp_12_http_parser___pyx_scope_struct_3_genexpr > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_7aiohttp_12_http_parser___pyx_scope_struct_3_genexpr)))) {
17234     o = (PyObject*)__pyx_freelist_7aiohttp_12_http_parser___pyx_scope_struct_3_genexpr[--__pyx_freecount_7aiohttp_12_http_parser___pyx_scope_struct_3_genexpr];
17235     memset(o, 0, sizeof(struct __pyx_obj_7aiohttp_12_http_parser___pyx_scope_struct_3_genexpr));
17236     (void) PyObject_INIT(o, t);
17237     PyObject_GC_Track(o);
17238   } else {
17239     o = (*t->tp_alloc)(t, 0);
17240     if (unlikely(!o)) return 0;
17241   }
17242   return o;
17243 }
17244 
__pyx_tp_dealloc_7aiohttp_12_http_parser___pyx_scope_struct_3_genexpr(PyObject * o)17245 static void __pyx_tp_dealloc_7aiohttp_12_http_parser___pyx_scope_struct_3_genexpr(PyObject *o) {
17246   struct __pyx_obj_7aiohttp_12_http_parser___pyx_scope_struct_3_genexpr *p = (struct __pyx_obj_7aiohttp_12_http_parser___pyx_scope_struct_3_genexpr *)o;
17247   PyObject_GC_UnTrack(o);
17248   Py_CLEAR(p->__pyx_outer_scope);
17249   Py_CLEAR(p->__pyx_v_name);
17250   Py_CLEAR(p->__pyx_v_val);
17251   if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_7aiohttp_12_http_parser___pyx_scope_struct_3_genexpr < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_7aiohttp_12_http_parser___pyx_scope_struct_3_genexpr)))) {
17252     __pyx_freelist_7aiohttp_12_http_parser___pyx_scope_struct_3_genexpr[__pyx_freecount_7aiohttp_12_http_parser___pyx_scope_struct_3_genexpr++] = ((struct __pyx_obj_7aiohttp_12_http_parser___pyx_scope_struct_3_genexpr *)o);
17253   } else {
17254     (*Py_TYPE(o)->tp_free)(o);
17255   }
17256 }
17257 
__pyx_tp_traverse_7aiohttp_12_http_parser___pyx_scope_struct_3_genexpr(PyObject * o,visitproc v,void * a)17258 static int __pyx_tp_traverse_7aiohttp_12_http_parser___pyx_scope_struct_3_genexpr(PyObject *o, visitproc v, void *a) {
17259   int e;
17260   struct __pyx_obj_7aiohttp_12_http_parser___pyx_scope_struct_3_genexpr *p = (struct __pyx_obj_7aiohttp_12_http_parser___pyx_scope_struct_3_genexpr *)o;
17261   if (p->__pyx_outer_scope) {
17262     e = (*v)(((PyObject *)p->__pyx_outer_scope), a); if (e) return e;
17263   }
17264   if (p->__pyx_v_name) {
17265     e = (*v)(p->__pyx_v_name, a); if (e) return e;
17266   }
17267   if (p->__pyx_v_val) {
17268     e = (*v)(p->__pyx_v_val, a); if (e) return e;
17269   }
17270   return 0;
17271 }
17272 
17273 static PyTypeObject __pyx_type_7aiohttp_12_http_parser___pyx_scope_struct_3_genexpr = {
17274   PyVarObject_HEAD_INIT(0, 0)
17275   "aiohttp._http_parser.__pyx_scope_struct_3_genexpr", /*tp_name*/
17276   sizeof(struct __pyx_obj_7aiohttp_12_http_parser___pyx_scope_struct_3_genexpr), /*tp_basicsize*/
17277   0, /*tp_itemsize*/
17278   __pyx_tp_dealloc_7aiohttp_12_http_parser___pyx_scope_struct_3_genexpr, /*tp_dealloc*/
17279   #if PY_VERSION_HEX < 0x030800b4
17280   0, /*tp_print*/
17281   #endif
17282   #if PY_VERSION_HEX >= 0x030800b4
17283   0, /*tp_vectorcall_offset*/
17284   #endif
17285   0, /*tp_getattr*/
17286   0, /*tp_setattr*/
17287   #if PY_MAJOR_VERSION < 3
17288   0, /*tp_compare*/
17289   #endif
17290   #if PY_MAJOR_VERSION >= 3
17291   0, /*tp_as_async*/
17292   #endif
17293   0, /*tp_repr*/
17294   0, /*tp_as_number*/
17295   0, /*tp_as_sequence*/
17296   0, /*tp_as_mapping*/
17297   0, /*tp_hash*/
17298   0, /*tp_call*/
17299   0, /*tp_str*/
17300   0, /*tp_getattro*/
17301   0, /*tp_setattro*/
17302   0, /*tp_as_buffer*/
17303   Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
17304   0, /*tp_doc*/
17305   __pyx_tp_traverse_7aiohttp_12_http_parser___pyx_scope_struct_3_genexpr, /*tp_traverse*/
17306   0, /*tp_clear*/
17307   0, /*tp_richcompare*/
17308   0, /*tp_weaklistoffset*/
17309   0, /*tp_iter*/
17310   0, /*tp_iternext*/
17311   0, /*tp_methods*/
17312   0, /*tp_members*/
17313   0, /*tp_getset*/
17314   0, /*tp_base*/
17315   0, /*tp_dict*/
17316   0, /*tp_descr_get*/
17317   0, /*tp_descr_set*/
17318   0, /*tp_dictoffset*/
17319   0, /*tp_init*/
17320   0, /*tp_alloc*/
17321   __pyx_tp_new_7aiohttp_12_http_parser___pyx_scope_struct_3_genexpr, /*tp_new*/
17322   0, /*tp_free*/
17323   0, /*tp_is_gc*/
17324   0, /*tp_bases*/
17325   0, /*tp_mro*/
17326   0, /*tp_cache*/
17327   0, /*tp_subclasses*/
17328   0, /*tp_weaklist*/
17329   0, /*tp_del*/
17330   0, /*tp_version_tag*/
17331   #if PY_VERSION_HEX >= 0x030400a1
17332   0, /*tp_finalize*/
17333   #endif
17334   #if PY_VERSION_HEX >= 0x030800b1
17335   0, /*tp_vectorcall*/
17336   #endif
17337   #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
17338   0, /*tp_print*/
17339   #endif
17340 };
17341 
17342 static PyMethodDef __pyx_methods[] = {
17343   {0, 0, 0, 0}
17344 };
17345 
17346 #if PY_MAJOR_VERSION >= 3
17347 #if CYTHON_PEP489_MULTI_PHASE_INIT
17348 static PyObject* __pyx_pymod_create(PyObject *spec, PyModuleDef *def); /*proto*/
17349 static int __pyx_pymod_exec__http_parser(PyObject* module); /*proto*/
17350 static PyModuleDef_Slot __pyx_moduledef_slots[] = {
17351   {Py_mod_create, (void*)__pyx_pymod_create},
17352   {Py_mod_exec, (void*)__pyx_pymod_exec__http_parser},
17353   {0, NULL}
17354 };
17355 #endif
17356 
17357 static struct PyModuleDef __pyx_moduledef = {
17358     PyModuleDef_HEAD_INIT,
17359     "_http_parser",
17360     0, /* m_doc */
17361   #if CYTHON_PEP489_MULTI_PHASE_INIT
17362     0, /* m_size */
17363   #else
17364     -1, /* m_size */
17365   #endif
17366     __pyx_methods /* m_methods */,
17367   #if CYTHON_PEP489_MULTI_PHASE_INIT
17368     __pyx_moduledef_slots, /* m_slots */
17369   #else
17370     NULL, /* m_reload */
17371   #endif
17372     NULL, /* m_traverse */
17373     NULL, /* m_clear */
17374     NULL /* m_free */
17375 };
17376 #endif
17377 #ifndef CYTHON_SMALL_CODE
17378 #if defined(__clang__)
17379     #define CYTHON_SMALL_CODE
17380 #elif defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3))
17381     #define CYTHON_SMALL_CODE __attribute__((cold))
17382 #else
17383     #define CYTHON_SMALL_CODE
17384 #endif
17385 #endif
17386 
17387 static __Pyx_StringTabEntry __pyx_string_tab[] = {
17388   {&__pyx_kp_u_, __pyx_k_, sizeof(__pyx_k_), 0, 1, 0, 0},
17389   {&__pyx_n_s_ACCEPT, __pyx_k_ACCEPT, sizeof(__pyx_k_ACCEPT), 0, 0, 1, 1},
17390   {&__pyx_n_s_ACCEPT_CHARSET, __pyx_k_ACCEPT_CHARSET, sizeof(__pyx_k_ACCEPT_CHARSET), 0, 0, 1, 1},
17391   {&__pyx_n_s_ACCEPT_ENCODING, __pyx_k_ACCEPT_ENCODING, sizeof(__pyx_k_ACCEPT_ENCODING), 0, 0, 1, 1},
17392   {&__pyx_n_s_ACCEPT_LANGUAGE, __pyx_k_ACCEPT_LANGUAGE, sizeof(__pyx_k_ACCEPT_LANGUAGE), 0, 0, 1, 1},
17393   {&__pyx_n_s_ACCEPT_RANGES, __pyx_k_ACCEPT_RANGES, sizeof(__pyx_k_ACCEPT_RANGES), 0, 0, 1, 1},
17394   {&__pyx_n_s_ACCESS_CONTROL_ALLOW_CREDENTIALS, __pyx_k_ACCESS_CONTROL_ALLOW_CREDENTIALS, sizeof(__pyx_k_ACCESS_CONTROL_ALLOW_CREDENTIALS), 0, 0, 1, 1},
17395   {&__pyx_n_s_ACCESS_CONTROL_ALLOW_HEADERS, __pyx_k_ACCESS_CONTROL_ALLOW_HEADERS, sizeof(__pyx_k_ACCESS_CONTROL_ALLOW_HEADERS), 0, 0, 1, 1},
17396   {&__pyx_n_s_ACCESS_CONTROL_ALLOW_METHODS, __pyx_k_ACCESS_CONTROL_ALLOW_METHODS, sizeof(__pyx_k_ACCESS_CONTROL_ALLOW_METHODS), 0, 0, 1, 1},
17397   {&__pyx_n_s_ACCESS_CONTROL_ALLOW_ORIGIN, __pyx_k_ACCESS_CONTROL_ALLOW_ORIGIN, sizeof(__pyx_k_ACCESS_CONTROL_ALLOW_ORIGIN), 0, 0, 1, 1},
17398   {&__pyx_n_s_ACCESS_CONTROL_EXPOSE_HEADERS, __pyx_k_ACCESS_CONTROL_EXPOSE_HEADERS, sizeof(__pyx_k_ACCESS_CONTROL_EXPOSE_HEADERS), 0, 0, 1, 1},
17399   {&__pyx_n_s_ACCESS_CONTROL_MAX_AGE, __pyx_k_ACCESS_CONTROL_MAX_AGE, sizeof(__pyx_k_ACCESS_CONTROL_MAX_AGE), 0, 0, 1, 1},
17400   {&__pyx_n_s_ACCESS_CONTROL_REQUEST_HEADERS, __pyx_k_ACCESS_CONTROL_REQUEST_HEADERS, sizeof(__pyx_k_ACCESS_CONTROL_REQUEST_HEADERS), 0, 0, 1, 1},
17401   {&__pyx_n_s_ACCESS_CONTROL_REQUEST_METHOD, __pyx_k_ACCESS_CONTROL_REQUEST_METHOD, sizeof(__pyx_k_ACCESS_CONTROL_REQUEST_METHOD), 0, 0, 1, 1},
17402   {&__pyx_n_s_AGE, __pyx_k_AGE, sizeof(__pyx_k_AGE), 0, 0, 1, 1},
17403   {&__pyx_n_s_ALLOW, __pyx_k_ALLOW, sizeof(__pyx_k_ALLOW), 0, 0, 1, 1},
17404   {&__pyx_n_s_AUTHORIZATION, __pyx_k_AUTHORIZATION, sizeof(__pyx_k_AUTHORIZATION), 0, 0, 1, 1},
17405   {&__pyx_n_s_BadHttpMessage, __pyx_k_BadHttpMessage, sizeof(__pyx_k_BadHttpMessage), 0, 0, 1, 1},
17406   {&__pyx_n_s_BadStatusLine, __pyx_k_BadStatusLine, sizeof(__pyx_k_BadStatusLine), 0, 0, 1, 1},
17407   {&__pyx_n_s_BaseException, __pyx_k_BaseException, sizeof(__pyx_k_BaseException), 0, 0, 1, 1},
17408   {&__pyx_n_s_CACHE_CONTROL, __pyx_k_CACHE_CONTROL, sizeof(__pyx_k_CACHE_CONTROL), 0, 0, 1, 1},
17409   {&__pyx_n_s_CIMultiDict, __pyx_k_CIMultiDict, sizeof(__pyx_k_CIMultiDict), 0, 0, 1, 1},
17410   {&__pyx_n_s_CIMultiDictProxy, __pyx_k_CIMultiDictProxy, sizeof(__pyx_k_CIMultiDictProxy), 0, 0, 1, 1},
17411   {&__pyx_n_s_CIMultiDictProxy_2, __pyx_k_CIMultiDictProxy_2, sizeof(__pyx_k_CIMultiDictProxy_2), 0, 0, 1, 1},
17412   {&__pyx_n_s_CIMultiDict_2, __pyx_k_CIMultiDict_2, sizeof(__pyx_k_CIMultiDict_2), 0, 0, 1, 1},
17413   {&__pyx_n_s_CONNECTION, __pyx_k_CONNECTION, sizeof(__pyx_k_CONNECTION), 0, 0, 1, 1},
17414   {&__pyx_n_s_CONTENT_DISPOSITION, __pyx_k_CONTENT_DISPOSITION, sizeof(__pyx_k_CONTENT_DISPOSITION), 0, 0, 1, 1},
17415   {&__pyx_n_s_CONTENT_ENCODING, __pyx_k_CONTENT_ENCODING, sizeof(__pyx_k_CONTENT_ENCODING), 0, 0, 1, 1},
17416   {&__pyx_n_s_CONTENT_LANGUAGE, __pyx_k_CONTENT_LANGUAGE, sizeof(__pyx_k_CONTENT_LANGUAGE), 0, 0, 1, 1},
17417   {&__pyx_n_s_CONTENT_LENGTH, __pyx_k_CONTENT_LENGTH, sizeof(__pyx_k_CONTENT_LENGTH), 0, 0, 1, 1},
17418   {&__pyx_n_s_CONTENT_LOCATION, __pyx_k_CONTENT_LOCATION, sizeof(__pyx_k_CONTENT_LOCATION), 0, 0, 1, 1},
17419   {&__pyx_n_s_CONTENT_MD5, __pyx_k_CONTENT_MD5, sizeof(__pyx_k_CONTENT_MD5), 0, 0, 1, 1},
17420   {&__pyx_n_s_CONTENT_RANGE, __pyx_k_CONTENT_RANGE, sizeof(__pyx_k_CONTENT_RANGE), 0, 0, 1, 1},
17421   {&__pyx_n_s_CONTENT_TRANSFER_ENCODING, __pyx_k_CONTENT_TRANSFER_ENCODING, sizeof(__pyx_k_CONTENT_TRANSFER_ENCODING), 0, 0, 1, 1},
17422   {&__pyx_n_s_CONTENT_TYPE, __pyx_k_CONTENT_TYPE, sizeof(__pyx_k_CONTENT_TYPE), 0, 0, 1, 1},
17423   {&__pyx_n_s_COOKIE, __pyx_k_COOKIE, sizeof(__pyx_k_COOKIE), 0, 0, 1, 1},
17424   {&__pyx_n_s_ContentLengthError, __pyx_k_ContentLengthError, sizeof(__pyx_k_ContentLengthError), 0, 0, 1, 1},
17425   {&__pyx_n_s_DATE, __pyx_k_DATE, sizeof(__pyx_k_DATE), 0, 0, 1, 1},
17426   {&__pyx_n_s_DESTINATION, __pyx_k_DESTINATION, sizeof(__pyx_k_DESTINATION), 0, 0, 1, 1},
17427   {&__pyx_n_s_DIGEST, __pyx_k_DIGEST, sizeof(__pyx_k_DIGEST), 0, 0, 1, 1},
17428   {&__pyx_n_s_DeflateBuffer, __pyx_k_DeflateBuffer, sizeof(__pyx_k_DeflateBuffer), 0, 0, 1, 1},
17429   {&__pyx_n_s_DeflateBuffer_2, __pyx_k_DeflateBuffer_2, sizeof(__pyx_k_DeflateBuffer_2), 0, 0, 1, 1},
17430   {&__pyx_n_s_EMPTY_PAYLOAD, __pyx_k_EMPTY_PAYLOAD, sizeof(__pyx_k_EMPTY_PAYLOAD), 0, 0, 1, 1},
17431   {&__pyx_n_s_EMPTY_PAYLOAD_2, __pyx_k_EMPTY_PAYLOAD_2, sizeof(__pyx_k_EMPTY_PAYLOAD_2), 0, 0, 1, 1},
17432   {&__pyx_n_s_ETAG, __pyx_k_ETAG, sizeof(__pyx_k_ETAG), 0, 0, 1, 1},
17433   {&__pyx_n_s_EXPECT, __pyx_k_EXPECT, sizeof(__pyx_k_EXPECT), 0, 0, 1, 1},
17434   {&__pyx_n_s_EXPIRES, __pyx_k_EXPIRES, sizeof(__pyx_k_EXPIRES), 0, 0, 1, 1},
17435   {&__pyx_n_s_FORWARDED, __pyx_k_FORWARDED, sizeof(__pyx_k_FORWARDED), 0, 0, 1, 1},
17436   {&__pyx_n_s_FROM, __pyx_k_FROM, sizeof(__pyx_k_FROM), 0, 0, 1, 1},
17437   {&__pyx_n_s_HOST, __pyx_k_HOST, sizeof(__pyx_k_HOST), 0, 0, 1, 1},
17438   {&__pyx_kp_u_Header_name_is_too_long, __pyx_k_Header_name_is_too_long, sizeof(__pyx_k_Header_name_is_too_long), 0, 1, 0, 0},
17439   {&__pyx_kp_u_Header_value_is_too_long, __pyx_k_Header_value_is_too_long, sizeof(__pyx_k_Header_value_is_too_long), 0, 1, 0, 0},
17440   {&__pyx_n_s_HttpRequestParser, __pyx_k_HttpRequestParser, sizeof(__pyx_k_HttpRequestParser), 0, 0, 1, 1},
17441   {&__pyx_n_u_HttpRequestParser, __pyx_k_HttpRequestParser, sizeof(__pyx_k_HttpRequestParser), 0, 1, 0, 1},
17442   {&__pyx_n_s_HttpResponseParser, __pyx_k_HttpResponseParser, sizeof(__pyx_k_HttpResponseParser), 0, 0, 1, 1},
17443   {&__pyx_n_u_HttpResponseParser, __pyx_k_HttpResponseParser, sizeof(__pyx_k_HttpResponseParser), 0, 1, 0, 1},
17444   {&__pyx_n_s_HttpVersion, __pyx_k_HttpVersion, sizeof(__pyx_k_HttpVersion), 0, 0, 1, 1},
17445   {&__pyx_n_s_HttpVersion10, __pyx_k_HttpVersion10, sizeof(__pyx_k_HttpVersion10), 0, 0, 1, 1},
17446   {&__pyx_n_s_HttpVersion10_2, __pyx_k_HttpVersion10_2, sizeof(__pyx_k_HttpVersion10_2), 0, 0, 1, 1},
17447   {&__pyx_n_s_HttpVersion11, __pyx_k_HttpVersion11, sizeof(__pyx_k_HttpVersion11), 0, 0, 1, 1},
17448   {&__pyx_n_s_HttpVersion11_2, __pyx_k_HttpVersion11_2, sizeof(__pyx_k_HttpVersion11_2), 0, 0, 1, 1},
17449   {&__pyx_n_s_HttpVersion_2, __pyx_k_HttpVersion_2, sizeof(__pyx_k_HttpVersion_2), 0, 0, 1, 1},
17450   {&__pyx_n_s_IF_MATCH, __pyx_k_IF_MATCH, sizeof(__pyx_k_IF_MATCH), 0, 0, 1, 1},
17451   {&__pyx_n_s_IF_MODIFIED_SINCE, __pyx_k_IF_MODIFIED_SINCE, sizeof(__pyx_k_IF_MODIFIED_SINCE), 0, 0, 1, 1},
17452   {&__pyx_n_s_IF_NONE_MATCH, __pyx_k_IF_NONE_MATCH, sizeof(__pyx_k_IF_NONE_MATCH), 0, 0, 1, 1},
17453   {&__pyx_n_s_IF_RANGE, __pyx_k_IF_RANGE, sizeof(__pyx_k_IF_RANGE), 0, 0, 1, 1},
17454   {&__pyx_n_s_IF_UNMODIFIED_SINCE, __pyx_k_IF_UNMODIFIED_SINCE, sizeof(__pyx_k_IF_UNMODIFIED_SINCE), 0, 0, 1, 1},
17455   {&__pyx_kp_s_Incompatible_checksums_s_vs_0x14, __pyx_k_Incompatible_checksums_s_vs_0x14, sizeof(__pyx_k_Incompatible_checksums_s_vs_0x14), 0, 0, 1, 0},
17456   {&__pyx_kp_s_Incompatible_checksums_s_vs_0xc7, __pyx_k_Incompatible_checksums_s_vs_0xc7, sizeof(__pyx_k_Incompatible_checksums_s_vs_0xc7), 0, 0, 1, 0},
17457   {&__pyx_n_s_InvalidHeader, __pyx_k_InvalidHeader, sizeof(__pyx_k_InvalidHeader), 0, 0, 1, 1},
17458   {&__pyx_n_s_InvalidURLError, __pyx_k_InvalidURLError, sizeof(__pyx_k_InvalidURLError), 0, 0, 1, 1},
17459   {&__pyx_n_s_KEEP_ALIVE, __pyx_k_KEEP_ALIVE, sizeof(__pyx_k_KEEP_ALIVE), 0, 0, 1, 1},
17460   {&__pyx_n_s_LAST_EVENT_ID, __pyx_k_LAST_EVENT_ID, sizeof(__pyx_k_LAST_EVENT_ID), 0, 0, 1, 1},
17461   {&__pyx_n_s_LAST_MODIFIED, __pyx_k_LAST_MODIFIED, sizeof(__pyx_k_LAST_MODIFIED), 0, 0, 1, 1},
17462   {&__pyx_n_s_LINK, __pyx_k_LINK, sizeof(__pyx_k_LINK), 0, 0, 1, 1},
17463   {&__pyx_n_s_LOCATION, __pyx_k_LOCATION, sizeof(__pyx_k_LOCATION), 0, 0, 1, 1},
17464   {&__pyx_n_s_LineTooLong, __pyx_k_LineTooLong, sizeof(__pyx_k_LineTooLong), 0, 0, 1, 1},
17465   {&__pyx_n_s_MAX_FORWARDS, __pyx_k_MAX_FORWARDS, sizeof(__pyx_k_MAX_FORWARDS), 0, 0, 1, 1},
17466   {&__pyx_n_s_MemoryError, __pyx_k_MemoryError, sizeof(__pyx_k_MemoryError), 0, 0, 1, 1},
17467   {&__pyx_kp_u_Not_enough_data_for_satisfy_cont, __pyx_k_Not_enough_data_for_satisfy_cont, sizeof(__pyx_k_Not_enough_data_for_satisfy_cont), 0, 1, 0, 0},
17468   {&__pyx_kp_u_Not_enough_data_for_satisfy_tran, __pyx_k_Not_enough_data_for_satisfy_tran, sizeof(__pyx_k_Not_enough_data_for_satisfy_tran), 0, 1, 0, 0},
17469   {&__pyx_n_s_ORIGIN, __pyx_k_ORIGIN, sizeof(__pyx_k_ORIGIN), 0, 0, 1, 1},
17470   {&__pyx_n_s_PRAGMA, __pyx_k_PRAGMA, sizeof(__pyx_k_PRAGMA), 0, 0, 1, 1},
17471   {&__pyx_n_s_PROXY_AUTHENTICATE, __pyx_k_PROXY_AUTHENTICATE, sizeof(__pyx_k_PROXY_AUTHENTICATE), 0, 0, 1, 1},
17472   {&__pyx_n_s_PROXY_AUTHORIZATION, __pyx_k_PROXY_AUTHORIZATION, sizeof(__pyx_k_PROXY_AUTHORIZATION), 0, 0, 1, 1},
17473   {&__pyx_n_s_PayloadEncodingError, __pyx_k_PayloadEncodingError, sizeof(__pyx_k_PayloadEncodingError), 0, 0, 1, 1},
17474   {&__pyx_n_s_PickleError, __pyx_k_PickleError, sizeof(__pyx_k_PickleError), 0, 0, 1, 1},
17475   {&__pyx_n_s_RANGE, __pyx_k_RANGE, sizeof(__pyx_k_RANGE), 0, 0, 1, 1},
17476   {&__pyx_n_s_REFERER, __pyx_k_REFERER, sizeof(__pyx_k_REFERER), 0, 0, 1, 1},
17477   {&__pyx_n_s_RETRY_AFTER, __pyx_k_RETRY_AFTER, sizeof(__pyx_k_RETRY_AFTER), 0, 0, 1, 1},
17478   {&__pyx_kp_u_RawRequestMessage, __pyx_k_RawRequestMessage, sizeof(__pyx_k_RawRequestMessage), 0, 1, 0, 0},
17479   {&__pyx_n_s_RawRequestMessage_2, __pyx_k_RawRequestMessage_2, sizeof(__pyx_k_RawRequestMessage_2), 0, 0, 1, 1},
17480   {&__pyx_n_u_RawRequestMessage_2, __pyx_k_RawRequestMessage_2, sizeof(__pyx_k_RawRequestMessage_2), 0, 1, 0, 1},
17481   {&__pyx_kp_u_RawResponseMessage, __pyx_k_RawResponseMessage, sizeof(__pyx_k_RawResponseMessage), 0, 1, 0, 0},
17482   {&__pyx_n_s_RawResponseMessage_2, __pyx_k_RawResponseMessage_2, sizeof(__pyx_k_RawResponseMessage_2), 0, 0, 1, 1},
17483   {&__pyx_n_u_RawResponseMessage_2, __pyx_k_RawResponseMessage_2, sizeof(__pyx_k_RawResponseMessage_2), 0, 1, 0, 1},
17484   {&__pyx_n_s_SEC_WEBSOCKET_ACCEPT, __pyx_k_SEC_WEBSOCKET_ACCEPT, sizeof(__pyx_k_SEC_WEBSOCKET_ACCEPT), 0, 0, 1, 1},
17485   {&__pyx_n_s_SEC_WEBSOCKET_EXTENSIONS, __pyx_k_SEC_WEBSOCKET_EXTENSIONS, sizeof(__pyx_k_SEC_WEBSOCKET_EXTENSIONS), 0, 0, 1, 1},
17486   {&__pyx_n_s_SEC_WEBSOCKET_KEY, __pyx_k_SEC_WEBSOCKET_KEY, sizeof(__pyx_k_SEC_WEBSOCKET_KEY), 0, 0, 1, 1},
17487   {&__pyx_n_s_SEC_WEBSOCKET_KEY1, __pyx_k_SEC_WEBSOCKET_KEY1, sizeof(__pyx_k_SEC_WEBSOCKET_KEY1), 0, 0, 1, 1},
17488   {&__pyx_n_s_SEC_WEBSOCKET_PROTOCOL, __pyx_k_SEC_WEBSOCKET_PROTOCOL, sizeof(__pyx_k_SEC_WEBSOCKET_PROTOCOL), 0, 0, 1, 1},
17489   {&__pyx_n_s_SEC_WEBSOCKET_VERSION, __pyx_k_SEC_WEBSOCKET_VERSION, sizeof(__pyx_k_SEC_WEBSOCKET_VERSION), 0, 0, 1, 1},
17490   {&__pyx_n_s_SERVER, __pyx_k_SERVER, sizeof(__pyx_k_SERVER), 0, 0, 1, 1},
17491   {&__pyx_n_s_SET_COOKIE, __pyx_k_SET_COOKIE, sizeof(__pyx_k_SET_COOKIE), 0, 0, 1, 1},
17492   {&__pyx_kp_u_Status_line_is_too_long, __pyx_k_Status_line_is_too_long, sizeof(__pyx_k_Status_line_is_too_long), 0, 1, 0, 0},
17493   {&__pyx_n_s_StreamReader, __pyx_k_StreamReader, sizeof(__pyx_k_StreamReader), 0, 0, 1, 1},
17494   {&__pyx_n_s_StreamReader_2, __pyx_k_StreamReader_2, sizeof(__pyx_k_StreamReader_2), 0, 0, 1, 1},
17495   {&__pyx_n_s_TE, __pyx_k_TE, sizeof(__pyx_k_TE), 0, 0, 1, 1},
17496   {&__pyx_n_s_TRAILER, __pyx_k_TRAILER, sizeof(__pyx_k_TRAILER), 0, 0, 1, 1},
17497   {&__pyx_n_s_TRANSFER_ENCODING, __pyx_k_TRANSFER_ENCODING, sizeof(__pyx_k_TRANSFER_ENCODING), 0, 0, 1, 1},
17498   {&__pyx_n_s_TransferEncodingError, __pyx_k_TransferEncodingError, sizeof(__pyx_k_TransferEncodingError), 0, 0, 1, 1},
17499   {&__pyx_n_s_TypeError, __pyx_k_TypeError, sizeof(__pyx_k_TypeError), 0, 0, 1, 1},
17500   {&__pyx_n_s_UPGRADE, __pyx_k_UPGRADE, sizeof(__pyx_k_UPGRADE), 0, 0, 1, 1},
17501   {&__pyx_n_s_URI, __pyx_k_URI, sizeof(__pyx_k_URI), 0, 0, 1, 1},
17502   {&__pyx_n_s_URL, __pyx_k_URL, sizeof(__pyx_k_URL), 0, 0, 1, 1},
17503   {&__pyx_n_s_URL_2, __pyx_k_URL_2, sizeof(__pyx_k_URL_2), 0, 0, 1, 1},
17504   {&__pyx_n_s_USER_AGENT, __pyx_k_USER_AGENT, sizeof(__pyx_k_USER_AGENT), 0, 0, 1, 1},
17505   {&__pyx_n_s_VARY, __pyx_k_VARY, sizeof(__pyx_k_VARY), 0, 0, 1, 1},
17506   {&__pyx_n_s_VIA, __pyx_k_VIA, sizeof(__pyx_k_VIA), 0, 0, 1, 1},
17507   {&__pyx_n_s_WANT_DIGEST, __pyx_k_WANT_DIGEST, sizeof(__pyx_k_WANT_DIGEST), 0, 0, 1, 1},
17508   {&__pyx_n_s_WARNING, __pyx_k_WARNING, sizeof(__pyx_k_WARNING), 0, 0, 1, 1},
17509   {&__pyx_n_s_WWW_AUTHENTICATE, __pyx_k_WWW_AUTHENTICATE, sizeof(__pyx_k_WWW_AUTHENTICATE), 0, 0, 1, 1},
17510   {&__pyx_n_s_X_FORWARDED_FOR, __pyx_k_X_FORWARDED_FOR, sizeof(__pyx_k_X_FORWARDED_FOR), 0, 0, 1, 1},
17511   {&__pyx_n_s_X_FORWARDED_HOST, __pyx_k_X_FORWARDED_HOST, sizeof(__pyx_k_X_FORWARDED_HOST), 0, 0, 1, 1},
17512   {&__pyx_n_s_X_FORWARDED_PROTO, __pyx_k_X_FORWARDED_PROTO, sizeof(__pyx_k_X_FORWARDED_PROTO), 0, 0, 1, 1},
17513   {&__pyx_kp_u__11, __pyx_k__11, sizeof(__pyx_k__11), 0, 1, 0, 0},
17514   {&__pyx_kp_u__2, __pyx_k__2, sizeof(__pyx_k__2), 0, 1, 0, 0},
17515   {&__pyx_kp_u__3, __pyx_k__3, sizeof(__pyx_k__3), 0, 1, 0, 0},
17516   {&__pyx_n_s__4, __pyx_k__4, sizeof(__pyx_k__4), 0, 0, 1, 1},
17517   {&__pyx_kp_b__4, __pyx_k__4, sizeof(__pyx_k__4), 0, 0, 0, 0},
17518   {&__pyx_kp_u__4, __pyx_k__4, sizeof(__pyx_k__4), 0, 1, 0, 0},
17519   {&__pyx_n_s_add, __pyx_k_add, sizeof(__pyx_k_add), 0, 0, 1, 1},
17520   {&__pyx_n_s_aiohttp, __pyx_k_aiohttp, sizeof(__pyx_k_aiohttp), 0, 0, 1, 1},
17521   {&__pyx_n_s_aiohttp__http_parser, __pyx_k_aiohttp__http_parser, sizeof(__pyx_k_aiohttp__http_parser), 0, 0, 1, 1},
17522   {&__pyx_kp_s_aiohttp__http_parser_pyx, __pyx_k_aiohttp__http_parser_pyx, sizeof(__pyx_k_aiohttp__http_parser_pyx), 0, 0, 1, 0},
17523   {&__pyx_n_s_all, __pyx_k_all, sizeof(__pyx_k_all), 0, 0, 1, 1},
17524   {&__pyx_n_s_args, __pyx_k_args, sizeof(__pyx_k_args), 0, 0, 1, 1},
17525   {&__pyx_n_s_auto_decompress, __pyx_k_auto_decompress, sizeof(__pyx_k_auto_decompress), 0, 0, 1, 1},
17526   {&__pyx_n_s_begin_http_chunk_receiving, __pyx_k_begin_http_chunk_receiving, sizeof(__pyx_k_begin_http_chunk_receiving), 0, 0, 1, 1},
17527   {&__pyx_n_u_br, __pyx_k_br, sizeof(__pyx_k_br), 0, 1, 0, 1},
17528   {&__pyx_n_s_buf_data, __pyx_k_buf_data, sizeof(__pyx_k_buf_data), 0, 0, 1, 1},
17529   {&__pyx_n_s_build, __pyx_k_build, sizeof(__pyx_k_build), 0, 0, 1, 1},
17530   {&__pyx_n_s_chunked, __pyx_k_chunked, sizeof(__pyx_k_chunked), 0, 0, 1, 1},
17531   {&__pyx_n_u_chunked, __pyx_k_chunked, sizeof(__pyx_k_chunked), 0, 1, 0, 1},
17532   {&__pyx_n_s_cline_in_traceback, __pyx_k_cline_in_traceback, sizeof(__pyx_k_cline_in_traceback), 0, 0, 1, 1},
17533   {&__pyx_n_s_close, __pyx_k_close, sizeof(__pyx_k_close), 0, 0, 1, 1},
17534   {&__pyx_n_s_code, __pyx_k_code, sizeof(__pyx_k_code), 0, 0, 1, 1},
17535   {&__pyx_n_u_code, __pyx_k_code, sizeof(__pyx_k_code), 0, 1, 0, 1},
17536   {&__pyx_n_s_compression, __pyx_k_compression, sizeof(__pyx_k_compression), 0, 0, 1, 1},
17537   {&__pyx_n_u_compression, __pyx_k_compression, sizeof(__pyx_k_compression), 0, 1, 0, 1},
17538   {&__pyx_n_u_deflate, __pyx_k_deflate, sizeof(__pyx_k_deflate), 0, 1, 0, 1},
17539   {&__pyx_n_s_dict, __pyx_k_dict, sizeof(__pyx_k_dict), 0, 0, 1, 1},
17540   {&__pyx_n_s_encoded, __pyx_k_encoded, sizeof(__pyx_k_encoded), 0, 0, 1, 1},
17541   {&__pyx_n_s_end_http_chunk_receiving, __pyx_k_end_http_chunk_receiving, sizeof(__pyx_k_end_http_chunk_receiving), 0, 0, 1, 1},
17542   {&__pyx_n_s_feed_data, __pyx_k_feed_data, sizeof(__pyx_k_feed_data), 0, 0, 1, 1},
17543   {&__pyx_n_s_feed_eof, __pyx_k_feed_eof, sizeof(__pyx_k_feed_eof), 0, 0, 1, 1},
17544   {&__pyx_n_s_format, __pyx_k_format, sizeof(__pyx_k_format), 0, 0, 1, 1},
17545   {&__pyx_n_s_fragment, __pyx_k_fragment, sizeof(__pyx_k_fragment), 0, 0, 1, 1},
17546   {&__pyx_n_s_genexpr, __pyx_k_genexpr, sizeof(__pyx_k_genexpr), 0, 0, 1, 1},
17547   {&__pyx_n_s_getstate, __pyx_k_getstate, sizeof(__pyx_k_getstate), 0, 0, 1, 1},
17548   {&__pyx_n_u_gzip, __pyx_k_gzip, sizeof(__pyx_k_gzip), 0, 1, 0, 1},
17549   {&__pyx_n_s_hdrs, __pyx_k_hdrs, sizeof(__pyx_k_hdrs), 0, 0, 1, 1},
17550   {&__pyx_n_s_headers, __pyx_k_headers, sizeof(__pyx_k_headers), 0, 0, 1, 1},
17551   {&__pyx_n_u_headers, __pyx_k_headers, sizeof(__pyx_k_headers), 0, 1, 0, 1},
17552   {&__pyx_n_s_host, __pyx_k_host, sizeof(__pyx_k_host), 0, 0, 1, 1},
17553   {&__pyx_n_s_http_exceptions, __pyx_k_http_exceptions, sizeof(__pyx_k_http_exceptions), 0, 0, 1, 1},
17554   {&__pyx_n_s_http_parser, __pyx_k_http_parser, sizeof(__pyx_k_http_parser), 0, 0, 1, 1},
17555   {&__pyx_n_s_http_writer, __pyx_k_http_writer, sizeof(__pyx_k_http_writer), 0, 0, 1, 1},
17556   {&__pyx_n_s_i, __pyx_k_i, sizeof(__pyx_k_i), 0, 0, 1, 1},
17557   {&__pyx_n_s_import, __pyx_k_import, sizeof(__pyx_k_import), 0, 0, 1, 1},
17558   {&__pyx_kp_u_invalid_url_r, __pyx_k_invalid_url_r, sizeof(__pyx_k_invalid_url_r), 0, 1, 0, 0},
17559   {&__pyx_n_s_limit, __pyx_k_limit, sizeof(__pyx_k_limit), 0, 0, 1, 1},
17560   {&__pyx_n_s_loop, __pyx_k_loop, sizeof(__pyx_k_loop), 0, 0, 1, 1},
17561   {&__pyx_n_s_lower, __pyx_k_lower, sizeof(__pyx_k_lower), 0, 0, 1, 1},
17562   {&__pyx_n_s_main, __pyx_k_main, sizeof(__pyx_k_main), 0, 0, 1, 1},
17563   {&__pyx_n_s_max_field_size, __pyx_k_max_field_size, sizeof(__pyx_k_max_field_size), 0, 0, 1, 1},
17564   {&__pyx_n_s_max_headers, __pyx_k_max_headers, sizeof(__pyx_k_max_headers), 0, 0, 1, 1},
17565   {&__pyx_n_s_max_line_size, __pyx_k_max_line_size, sizeof(__pyx_k_max_line_size), 0, 0, 1, 1},
17566   {&__pyx_n_s_method, __pyx_k_method, sizeof(__pyx_k_method), 0, 0, 1, 1},
17567   {&__pyx_n_u_method, __pyx_k_method, sizeof(__pyx_k_method), 0, 1, 0, 1},
17568   {&__pyx_n_s_multidict, __pyx_k_multidict, sizeof(__pyx_k_multidict), 0, 0, 1, 1},
17569   {&__pyx_n_s_name, __pyx_k_name, sizeof(__pyx_k_name), 0, 0, 1, 1},
17570   {&__pyx_n_s_new, __pyx_k_new, sizeof(__pyx_k_new), 0, 0, 1, 1},
17571   {&__pyx_kp_s_no_default___reduce___due_to_non, __pyx_k_no_default___reduce___due_to_non, sizeof(__pyx_k_no_default___reduce___due_to_non), 0, 0, 1, 0},
17572   {&__pyx_n_s_parse_url, __pyx_k_parse_url, sizeof(__pyx_k_parse_url), 0, 0, 1, 1},
17573   {&__pyx_n_s_partition, __pyx_k_partition, sizeof(__pyx_k_partition), 0, 0, 1, 1},
17574   {&__pyx_n_s_password, __pyx_k_password, sizeof(__pyx_k_password), 0, 0, 1, 1},
17575   {&__pyx_n_s_path, __pyx_k_path, sizeof(__pyx_k_path), 0, 0, 1, 1},
17576   {&__pyx_n_u_path, __pyx_k_path, sizeof(__pyx_k_path), 0, 1, 0, 1},
17577   {&__pyx_n_s_payload_exception, __pyx_k_payload_exception, sizeof(__pyx_k_payload_exception), 0, 0, 1, 1},
17578   {&__pyx_n_s_pickle, __pyx_k_pickle, sizeof(__pyx_k_pickle), 0, 0, 1, 1},
17579   {&__pyx_n_s_port, __pyx_k_port, sizeof(__pyx_k_port), 0, 0, 1, 1},
17580   {&__pyx_n_s_protocol, __pyx_k_protocol, sizeof(__pyx_k_protocol), 0, 0, 1, 1},
17581   {&__pyx_n_s_py_buf, __pyx_k_py_buf, sizeof(__pyx_k_py_buf), 0, 0, 1, 1},
17582   {&__pyx_n_s_pyx_PickleError, __pyx_k_pyx_PickleError, sizeof(__pyx_k_pyx_PickleError), 0, 0, 1, 1},
17583   {&__pyx_n_s_pyx_checksum, __pyx_k_pyx_checksum, sizeof(__pyx_k_pyx_checksum), 0, 0, 1, 1},
17584   {&__pyx_n_s_pyx_result, __pyx_k_pyx_result, sizeof(__pyx_k_pyx_result), 0, 0, 1, 1},
17585   {&__pyx_n_s_pyx_state, __pyx_k_pyx_state, sizeof(__pyx_k_pyx_state), 0, 0, 1, 1},
17586   {&__pyx_n_s_pyx_type, __pyx_k_pyx_type, sizeof(__pyx_k_pyx_type), 0, 0, 1, 1},
17587   {&__pyx_n_s_pyx_unpickle_RawRequestMessage, __pyx_k_pyx_unpickle_RawRequestMessage, sizeof(__pyx_k_pyx_unpickle_RawRequestMessage), 0, 0, 1, 1},
17588   {&__pyx_n_s_pyx_unpickle_RawResponseMessag, __pyx_k_pyx_unpickle_RawResponseMessag, sizeof(__pyx_k_pyx_unpickle_RawResponseMessag), 0, 0, 1, 1},
17589   {&__pyx_n_s_pyx_vtable, __pyx_k_pyx_vtable, sizeof(__pyx_k_pyx_vtable), 0, 0, 1, 1},
17590   {&__pyx_n_s_query_string, __pyx_k_query_string, sizeof(__pyx_k_query_string), 0, 0, 1, 1},
17591   {&__pyx_n_s_range, __pyx_k_range, sizeof(__pyx_k_range), 0, 0, 1, 1},
17592   {&__pyx_n_s_raw_headers, __pyx_k_raw_headers, sizeof(__pyx_k_raw_headers), 0, 0, 1, 1},
17593   {&__pyx_n_u_raw_headers, __pyx_k_raw_headers, sizeof(__pyx_k_raw_headers), 0, 1, 0, 1},
17594   {&__pyx_n_s_read_until_eof, __pyx_k_read_until_eof, sizeof(__pyx_k_read_until_eof), 0, 0, 1, 1},
17595   {&__pyx_n_s_reason, __pyx_k_reason, sizeof(__pyx_k_reason), 0, 0, 1, 1},
17596   {&__pyx_n_u_reason, __pyx_k_reason, sizeof(__pyx_k_reason), 0, 1, 0, 1},
17597   {&__pyx_n_s_reduce, __pyx_k_reduce, sizeof(__pyx_k_reduce), 0, 0, 1, 1},
17598   {&__pyx_n_s_reduce_cython, __pyx_k_reduce_cython, sizeof(__pyx_k_reduce_cython), 0, 0, 1, 1},
17599   {&__pyx_n_s_reduce_ex, __pyx_k_reduce_ex, sizeof(__pyx_k_reduce_ex), 0, 0, 1, 1},
17600   {&__pyx_n_s_repr___locals_genexpr, __pyx_k_repr___locals_genexpr, sizeof(__pyx_k_repr___locals_genexpr), 0, 0, 1, 1},
17601   {&__pyx_n_s_response_with_body, __pyx_k_response_with_body, sizeof(__pyx_k_response_with_body), 0, 0, 1, 1},
17602   {&__pyx_n_s_scheme, __pyx_k_scheme, sizeof(__pyx_k_scheme), 0, 0, 1, 1},
17603   {&__pyx_n_s_send, __pyx_k_send, sizeof(__pyx_k_send), 0, 0, 1, 1},
17604   {&__pyx_n_s_set_exception, __pyx_k_set_exception, sizeof(__pyx_k_set_exception), 0, 0, 1, 1},
17605   {&__pyx_n_s_setstate, __pyx_k_setstate, sizeof(__pyx_k_setstate), 0, 0, 1, 1},
17606   {&__pyx_n_s_setstate_cython, __pyx_k_setstate_cython, sizeof(__pyx_k_setstate_cython), 0, 0, 1, 1},
17607   {&__pyx_n_s_should_close, __pyx_k_should_close, sizeof(__pyx_k_should_close), 0, 0, 1, 1},
17608   {&__pyx_n_u_should_close, __pyx_k_should_close, sizeof(__pyx_k_should_close), 0, 1, 0, 1},
17609   {&__pyx_n_s_streams, __pyx_k_streams, sizeof(__pyx_k_streams), 0, 0, 1, 1},
17610   {&__pyx_kp_s_stringsource, __pyx_k_stringsource, sizeof(__pyx_k_stringsource), 0, 0, 1, 0},
17611   {&__pyx_n_s_test, __pyx_k_test, sizeof(__pyx_k_test), 0, 0, 1, 1},
17612   {&__pyx_n_s_throw, __pyx_k_throw, sizeof(__pyx_k_throw), 0, 0, 1, 1},
17613   {&__pyx_n_s_timer, __pyx_k_timer, sizeof(__pyx_k_timer), 0, 0, 1, 1},
17614   {&__pyx_kp_u_unknown, __pyx_k_unknown, sizeof(__pyx_k_unknown), 0, 1, 0, 0},
17615   {&__pyx_n_s_update, __pyx_k_update, sizeof(__pyx_k_update), 0, 0, 1, 1},
17616   {&__pyx_n_s_upgrade, __pyx_k_upgrade, sizeof(__pyx_k_upgrade), 0, 0, 1, 1},
17617   {&__pyx_n_u_upgrade, __pyx_k_upgrade, sizeof(__pyx_k_upgrade), 0, 1, 0, 1},
17618   {&__pyx_n_s_url, __pyx_k_url, sizeof(__pyx_k_url), 0, 0, 1, 1},
17619   {&__pyx_n_u_url, __pyx_k_url, sizeof(__pyx_k_url), 0, 1, 0, 1},
17620   {&__pyx_n_s_user, __pyx_k_user, sizeof(__pyx_k_user), 0, 0, 1, 1},
17621   {&__pyx_n_s_version, __pyx_k_version, sizeof(__pyx_k_version), 0, 0, 1, 1},
17622   {&__pyx_n_u_version, __pyx_k_version, sizeof(__pyx_k_version), 0, 1, 0, 1},
17623   {&__pyx_n_s_yarl, __pyx_k_yarl, sizeof(__pyx_k_yarl), 0, 0, 1, 1},
17624   {0, 0, 0, 0, 0, 0, 0}
17625 };
__Pyx_InitCachedBuiltins(void)17626 static CYTHON_SMALL_CODE int __Pyx_InitCachedBuiltins(void) {
17627   __pyx_builtin_range = __Pyx_GetBuiltinName(__pyx_n_s_range); if (!__pyx_builtin_range) __PYX_ERR(0, 87, __pyx_L1_error)
17628   __pyx_builtin_MemoryError = __Pyx_GetBuiltinName(__pyx_n_s_MemoryError); if (!__pyx_builtin_MemoryError) __PYX_ERR(0, 316, __pyx_L1_error)
17629   __pyx_builtin_TypeError = __Pyx_GetBuiltinName(__pyx_n_s_TypeError); if (!__pyx_builtin_TypeError) __PYX_ERR(1, 2, __pyx_L1_error)
17630   __pyx_builtin_BaseException = __Pyx_GetBuiltinName(__pyx_n_s_BaseException); if (!__pyx_builtin_BaseException) __PYX_ERR(0, 631, __pyx_L1_error)
17631   return 0;
17632   __pyx_L1_error:;
17633   return -1;
17634 }
17635 
__Pyx_InitCachedConstants(void)17636 static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) {
17637   __Pyx_RefNannyDeclarations
17638   __Pyx_RefNannySetupContext("__Pyx_InitCachedConstants", 0);
17639 
17640   /* "(tree fragment)":2
17641  * def __reduce_cython__(self):
17642  *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
17643  * def __setstate_cython__(self, __pyx_state):
17644  *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
17645  */
17646   __pyx_tuple__5 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__5)) __PYX_ERR(1, 2, __pyx_L1_error)
17647   __Pyx_GOTREF(__pyx_tuple__5);
17648   __Pyx_GIVEREF(__pyx_tuple__5);
17649 
17650   /* "(tree fragment)":4
17651  *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
17652  * def __setstate_cython__(self, __pyx_state):
17653  *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
17654  */
17655   __pyx_tuple__6 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__6)) __PYX_ERR(1, 4, __pyx_L1_error)
17656   __Pyx_GOTREF(__pyx_tuple__6);
17657   __Pyx_GIVEREF(__pyx_tuple__6);
17658 
17659   /* "(tree fragment)":2
17660  * def __reduce_cython__(self):
17661  *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
17662  * def __setstate_cython__(self, __pyx_state):
17663  *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
17664  */
17665   __pyx_tuple__7 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__7)) __PYX_ERR(1, 2, __pyx_L1_error)
17666   __Pyx_GOTREF(__pyx_tuple__7);
17667   __Pyx_GIVEREF(__pyx_tuple__7);
17668 
17669   /* "(tree fragment)":4
17670  *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
17671  * def __setstate_cython__(self, __pyx_state):
17672  *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
17673  */
17674   __pyx_tuple__8 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__8)) __PYX_ERR(1, 4, __pyx_L1_error)
17675   __Pyx_GOTREF(__pyx_tuple__8);
17676   __Pyx_GIVEREF(__pyx_tuple__8);
17677 
17678   /* "(tree fragment)":2
17679  * def __reduce_cython__(self):
17680  *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
17681  * def __setstate_cython__(self, __pyx_state):
17682  *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
17683  */
17684   __pyx_tuple__9 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__9)) __PYX_ERR(1, 2, __pyx_L1_error)
17685   __Pyx_GOTREF(__pyx_tuple__9);
17686   __Pyx_GIVEREF(__pyx_tuple__9);
17687 
17688   /* "(tree fragment)":4
17689  *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
17690  * def __setstate_cython__(self, __pyx_state):
17691  *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
17692  */
17693   __pyx_tuple__10 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__10)) __PYX_ERR(1, 4, __pyx_L1_error)
17694   __Pyx_GOTREF(__pyx_tuple__10);
17695   __Pyx_GIVEREF(__pyx_tuple__10);
17696 
17697   /* "aiohttp/_http_parser.pyx":57
17698  *     char* PyByteArray_AsString(object)
17699  *
17700  * __all__ = ('HttpRequestParser', 'HttpResponseParser',             # <<<<<<<<<<<<<<
17701  *            'RawRequestMessage', 'RawResponseMessage')
17702  *
17703  */
17704   __pyx_tuple__12 = PyTuple_Pack(4, __pyx_n_u_HttpRequestParser, __pyx_n_u_HttpResponseParser, __pyx_n_u_RawRequestMessage_2, __pyx_n_u_RawResponseMessage_2); if (unlikely(!__pyx_tuple__12)) __PYX_ERR(0, 57, __pyx_L1_error)
17705   __Pyx_GOTREF(__pyx_tuple__12);
17706   __Pyx_GIVEREF(__pyx_tuple__12);
17707 
17708   /* "aiohttp/_http_parser.pyx":785
17709  *
17710  *
17711  * def parse_url(url):             # <<<<<<<<<<<<<<
17712  *     cdef:
17713  *         Py_buffer py_buf
17714  */
17715   __pyx_tuple__13 = PyTuple_Pack(3, __pyx_n_s_url, __pyx_n_s_py_buf, __pyx_n_s_buf_data); if (unlikely(!__pyx_tuple__13)) __PYX_ERR(0, 785, __pyx_L1_error)
17716   __Pyx_GOTREF(__pyx_tuple__13);
17717   __Pyx_GIVEREF(__pyx_tuple__13);
17718   __pyx_codeobj__14 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__13, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_aiohttp__http_parser_pyx, __pyx_n_s_parse_url, 785, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__14)) __PYX_ERR(0, 785, __pyx_L1_error)
17719 
17720   /* "(tree fragment)":1
17721  * def __pyx_unpickle_RawRequestMessage(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
17722  *     cdef object __pyx_PickleError
17723  *     cdef object __pyx_result
17724  */
17725   __pyx_tuple__15 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__15)) __PYX_ERR(1, 1, __pyx_L1_error)
17726   __Pyx_GOTREF(__pyx_tuple__15);
17727   __Pyx_GIVEREF(__pyx_tuple__15);
17728   __pyx_codeobj__16 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__15, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_RawRequestMessage, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__16)) __PYX_ERR(1, 1, __pyx_L1_error)
17729   __pyx_tuple__17 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__17)) __PYX_ERR(1, 1, __pyx_L1_error)
17730   __Pyx_GOTREF(__pyx_tuple__17);
17731   __Pyx_GIVEREF(__pyx_tuple__17);
17732   __pyx_codeobj__18 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__17, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_RawResponseMessag, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__18)) __PYX_ERR(1, 1, __pyx_L1_error)
17733   __Pyx_RefNannyFinishContext();
17734   return 0;
17735   __pyx_L1_error:;
17736   __Pyx_RefNannyFinishContext();
17737   return -1;
17738 }
17739 
__Pyx_InitGlobals(void)17740 static CYTHON_SMALL_CODE int __Pyx_InitGlobals(void) {
17741   __pyx_umethod_PyUnicode_Type_partition.type = (PyObject*)&PyUnicode_Type;
17742   if (__Pyx_InitStrings(__pyx_string_tab) < 0) __PYX_ERR(0, 1, __pyx_L1_error);
17743   __pyx_int_21004882 = PyInt_FromLong(21004882L); if (unlikely(!__pyx_int_21004882)) __PYX_ERR(0, 1, __pyx_L1_error)
17744   __pyx_int_209127132 = PyInt_FromLong(209127132L); if (unlikely(!__pyx_int_209127132)) __PYX_ERR(0, 1, __pyx_L1_error)
17745   return 0;
17746   __pyx_L1_error:;
17747   return -1;
17748 }
17749 
17750 static CYTHON_SMALL_CODE int __Pyx_modinit_global_init_code(void); /*proto*/
17751 static CYTHON_SMALL_CODE int __Pyx_modinit_variable_export_code(void); /*proto*/
17752 static CYTHON_SMALL_CODE int __Pyx_modinit_function_export_code(void); /*proto*/
17753 static CYTHON_SMALL_CODE int __Pyx_modinit_type_init_code(void); /*proto*/
17754 static CYTHON_SMALL_CODE int __Pyx_modinit_type_import_code(void); /*proto*/
17755 static CYTHON_SMALL_CODE int __Pyx_modinit_variable_import_code(void); /*proto*/
17756 static CYTHON_SMALL_CODE int __Pyx_modinit_function_import_code(void); /*proto*/
17757 
__Pyx_modinit_global_init_code(void)17758 static int __Pyx_modinit_global_init_code(void) {
17759   __Pyx_RefNannyDeclarations
17760   __Pyx_RefNannySetupContext("__Pyx_modinit_global_init_code", 0);
17761   /*--- Global init code ---*/
17762   __pyx_v_7aiohttp_12_http_parser_headers = ((PyObject*)Py_None); Py_INCREF(Py_None);
17763   __pyx_v_7aiohttp_12_http_parser_URL = Py_None; Py_INCREF(Py_None);
17764   __pyx_v_7aiohttp_12_http_parser_URL_build = Py_None; Py_INCREF(Py_None);
17765   __pyx_v_7aiohttp_12_http_parser_CIMultiDict = Py_None; Py_INCREF(Py_None);
17766   __pyx_v_7aiohttp_12_http_parser_CIMultiDictProxy = Py_None; Py_INCREF(Py_None);
17767   __pyx_v_7aiohttp_12_http_parser_HttpVersion = Py_None; Py_INCREF(Py_None);
17768   __pyx_v_7aiohttp_12_http_parser_HttpVersion10 = Py_None; Py_INCREF(Py_None);
17769   __pyx_v_7aiohttp_12_http_parser_HttpVersion11 = Py_None; Py_INCREF(Py_None);
17770   __pyx_v_7aiohttp_12_http_parser_SEC_WEBSOCKET_KEY1 = Py_None; Py_INCREF(Py_None);
17771   __pyx_v_7aiohttp_12_http_parser_CONTENT_ENCODING = Py_None; Py_INCREF(Py_None);
17772   __pyx_v_7aiohttp_12_http_parser_EMPTY_PAYLOAD = Py_None; Py_INCREF(Py_None);
17773   __pyx_v_7aiohttp_12_http_parser_StreamReader = Py_None; Py_INCREF(Py_None);
17774   __pyx_v_7aiohttp_12_http_parser_DeflateBuffer = Py_None; Py_INCREF(Py_None);
17775   __pyx_v_7aiohttp_12_http_parser__http_method = ((PyObject*)Py_None); Py_INCREF(Py_None);
17776   __Pyx_RefNannyFinishContext();
17777   return 0;
17778 }
17779 
__Pyx_modinit_variable_export_code(void)17780 static int __Pyx_modinit_variable_export_code(void) {
17781   __Pyx_RefNannyDeclarations
17782   __Pyx_RefNannySetupContext("__Pyx_modinit_variable_export_code", 0);
17783   /*--- Variable export code ---*/
17784   __Pyx_RefNannyFinishContext();
17785   return 0;
17786 }
17787 
__Pyx_modinit_function_export_code(void)17788 static int __Pyx_modinit_function_export_code(void) {
17789   __Pyx_RefNannyDeclarations
17790   __Pyx_RefNannySetupContext("__Pyx_modinit_function_export_code", 0);
17791   /*--- Function export code ---*/
17792   __Pyx_RefNannyFinishContext();
17793   return 0;
17794 }
17795 
__Pyx_modinit_type_init_code(void)17796 static int __Pyx_modinit_type_init_code(void) {
17797   __Pyx_RefNannyDeclarations
17798   int __pyx_lineno = 0;
17799   const char *__pyx_filename = NULL;
17800   int __pyx_clineno = 0;
17801   __Pyx_RefNannySetupContext("__Pyx_modinit_type_init_code", 0);
17802   /*--- Type init code ---*/
17803   if (PyType_Ready(&__pyx_type_7aiohttp_12_http_parser_RawRequestMessage) < 0) __PYX_ERR(0, 110, __pyx_L1_error)
17804   #if PY_VERSION_HEX < 0x030800B1
17805   __pyx_type_7aiohttp_12_http_parser_RawRequestMessage.tp_print = 0;
17806   #endif
17807   if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7aiohttp_12_http_parser_RawRequestMessage.tp_dictoffset && __pyx_type_7aiohttp_12_http_parser_RawRequestMessage.tp_getattro == PyObject_GenericGetAttr)) {
17808     __pyx_type_7aiohttp_12_http_parser_RawRequestMessage.tp_getattro = __Pyx_PyObject_GenericGetAttr;
17809   }
17810   if (PyObject_SetAttr(__pyx_m, __pyx_n_s_RawRequestMessage_2, (PyObject *)&__pyx_type_7aiohttp_12_http_parser_RawRequestMessage) < 0) __PYX_ERR(0, 110, __pyx_L1_error)
17811   if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7aiohttp_12_http_parser_RawRequestMessage) < 0) __PYX_ERR(0, 110, __pyx_L1_error)
17812   __pyx_ptype_7aiohttp_12_http_parser_RawRequestMessage = &__pyx_type_7aiohttp_12_http_parser_RawRequestMessage;
17813   if (PyType_Ready(&__pyx_type_7aiohttp_12_http_parser_RawResponseMessage) < 0) __PYX_ERR(0, 210, __pyx_L1_error)
17814   #if PY_VERSION_HEX < 0x030800B1
17815   __pyx_type_7aiohttp_12_http_parser_RawResponseMessage.tp_print = 0;
17816   #endif
17817   if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7aiohttp_12_http_parser_RawResponseMessage.tp_dictoffset && __pyx_type_7aiohttp_12_http_parser_RawResponseMessage.tp_getattro == PyObject_GenericGetAttr)) {
17818     __pyx_type_7aiohttp_12_http_parser_RawResponseMessage.tp_getattro = __Pyx_PyObject_GenericGetAttr;
17819   }
17820   if (PyObject_SetAttr(__pyx_m, __pyx_n_s_RawResponseMessage_2, (PyObject *)&__pyx_type_7aiohttp_12_http_parser_RawResponseMessage) < 0) __PYX_ERR(0, 210, __pyx_L1_error)
17821   if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7aiohttp_12_http_parser_RawResponseMessage) < 0) __PYX_ERR(0, 210, __pyx_L1_error)
17822   __pyx_ptype_7aiohttp_12_http_parser_RawResponseMessage = &__pyx_type_7aiohttp_12_http_parser_RawResponseMessage;
17823   __pyx_vtabptr_7aiohttp_12_http_parser_HttpParser = &__pyx_vtable_7aiohttp_12_http_parser_HttpParser;
17824   __pyx_vtable_7aiohttp_12_http_parser_HttpParser._init = (PyObject *(*)(struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *, enum http_parser_type, PyObject *, PyObject *, int, struct __pyx_opt_args_7aiohttp_12_http_parser_10HttpParser__init *__pyx_optional_args))__pyx_f_7aiohttp_12_http_parser_10HttpParser__init;
17825   __pyx_vtable_7aiohttp_12_http_parser_HttpParser._process_header = (PyObject *(*)(struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *))__pyx_f_7aiohttp_12_http_parser_10HttpParser__process_header;
17826   __pyx_vtable_7aiohttp_12_http_parser_HttpParser._on_header_field = (PyObject *(*)(struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *, char *, size_t))__pyx_f_7aiohttp_12_http_parser_10HttpParser__on_header_field;
17827   __pyx_vtable_7aiohttp_12_http_parser_HttpParser._on_header_value = (PyObject *(*)(struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *, char *, size_t))__pyx_f_7aiohttp_12_http_parser_10HttpParser__on_header_value;
17828   __pyx_vtable_7aiohttp_12_http_parser_HttpParser._on_headers_complete = (PyObject *(*)(struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *))__pyx_f_7aiohttp_12_http_parser_10HttpParser__on_headers_complete;
17829   __pyx_vtable_7aiohttp_12_http_parser_HttpParser._on_message_complete = (PyObject *(*)(struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *))__pyx_f_7aiohttp_12_http_parser_10HttpParser__on_message_complete;
17830   __pyx_vtable_7aiohttp_12_http_parser_HttpParser._on_chunk_header = (PyObject *(*)(struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *))__pyx_f_7aiohttp_12_http_parser_10HttpParser__on_chunk_header;
17831   __pyx_vtable_7aiohttp_12_http_parser_HttpParser._on_chunk_complete = (PyObject *(*)(struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *))__pyx_f_7aiohttp_12_http_parser_10HttpParser__on_chunk_complete;
17832   __pyx_vtable_7aiohttp_12_http_parser_HttpParser._on_status_complete = (PyObject *(*)(struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *))__pyx_f_7aiohttp_12_http_parser_10HttpParser__on_status_complete;
17833   __pyx_vtable_7aiohttp_12_http_parser_HttpParser.http_version = (PyObject *(*)(struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *))__pyx_f_7aiohttp_12_http_parser_10HttpParser_http_version;
17834   if (PyType_Ready(&__pyx_type_7aiohttp_12_http_parser_HttpParser) < 0) __PYX_ERR(0, 272, __pyx_L1_error)
17835   #if PY_VERSION_HEX < 0x030800B1
17836   __pyx_type_7aiohttp_12_http_parser_HttpParser.tp_print = 0;
17837   #endif
17838   if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7aiohttp_12_http_parser_HttpParser.tp_dictoffset && __pyx_type_7aiohttp_12_http_parser_HttpParser.tp_getattro == PyObject_GenericGetAttr)) {
17839     __pyx_type_7aiohttp_12_http_parser_HttpParser.tp_getattro = __Pyx_PyObject_GenericGetAttr;
17840   }
17841   if (__Pyx_SetVtable(__pyx_type_7aiohttp_12_http_parser_HttpParser.tp_dict, __pyx_vtabptr_7aiohttp_12_http_parser_HttpParser) < 0) __PYX_ERR(0, 272, __pyx_L1_error)
17842   if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7aiohttp_12_http_parser_HttpParser) < 0) __PYX_ERR(0, 272, __pyx_L1_error)
17843   __pyx_ptype_7aiohttp_12_http_parser_HttpParser = &__pyx_type_7aiohttp_12_http_parser_HttpParser;
17844   __pyx_vtabptr_7aiohttp_12_http_parser_HttpRequestParser = &__pyx_vtable_7aiohttp_12_http_parser_HttpRequestParser;
17845   __pyx_vtable_7aiohttp_12_http_parser_HttpRequestParser.__pyx_base = *__pyx_vtabptr_7aiohttp_12_http_parser_HttpParser;
17846   __pyx_vtable_7aiohttp_12_http_parser_HttpRequestParser.__pyx_base._on_status_complete = (PyObject *(*)(struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *))__pyx_f_7aiohttp_12_http_parser_17HttpRequestParser__on_status_complete;
17847   __pyx_type_7aiohttp_12_http_parser_HttpRequestParser.tp_base = __pyx_ptype_7aiohttp_12_http_parser_HttpParser;
17848   if (PyType_Ready(&__pyx_type_7aiohttp_12_http_parser_HttpRequestParser) < 0) __PYX_ERR(0, 563, __pyx_L1_error)
17849   #if PY_VERSION_HEX < 0x030800B1
17850   __pyx_type_7aiohttp_12_http_parser_HttpRequestParser.tp_print = 0;
17851   #endif
17852   if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7aiohttp_12_http_parser_HttpRequestParser.tp_dictoffset && __pyx_type_7aiohttp_12_http_parser_HttpRequestParser.tp_getattro == PyObject_GenericGetAttr)) {
17853     __pyx_type_7aiohttp_12_http_parser_HttpRequestParser.tp_getattro = __Pyx_PyObject_GenericGetAttr;
17854   }
17855   if (__Pyx_SetVtable(__pyx_type_7aiohttp_12_http_parser_HttpRequestParser.tp_dict, __pyx_vtabptr_7aiohttp_12_http_parser_HttpRequestParser) < 0) __PYX_ERR(0, 563, __pyx_L1_error)
17856   if (PyObject_SetAttr(__pyx_m, __pyx_n_s_HttpRequestParser, (PyObject *)&__pyx_type_7aiohttp_12_http_parser_HttpRequestParser) < 0) __PYX_ERR(0, 563, __pyx_L1_error)
17857   if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7aiohttp_12_http_parser_HttpRequestParser) < 0) __PYX_ERR(0, 563, __pyx_L1_error)
17858   __pyx_ptype_7aiohttp_12_http_parser_HttpRequestParser = &__pyx_type_7aiohttp_12_http_parser_HttpRequestParser;
17859   __pyx_vtabptr_7aiohttp_12_http_parser_HttpResponseParser = &__pyx_vtable_7aiohttp_12_http_parser_HttpResponseParser;
17860   __pyx_vtable_7aiohttp_12_http_parser_HttpResponseParser.__pyx_base = *__pyx_vtabptr_7aiohttp_12_http_parser_HttpParser;
17861   __pyx_vtable_7aiohttp_12_http_parser_HttpResponseParser.__pyx_base._on_status_complete = (PyObject *(*)(struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *))__pyx_f_7aiohttp_12_http_parser_18HttpResponseParser__on_status_complete;
17862   __pyx_type_7aiohttp_12_http_parser_HttpResponseParser.tp_base = __pyx_ptype_7aiohttp_12_http_parser_HttpParser;
17863   if (PyType_Ready(&__pyx_type_7aiohttp_12_http_parser_HttpResponseParser) < 0) __PYX_ERR(0, 591, __pyx_L1_error)
17864   #if PY_VERSION_HEX < 0x030800B1
17865   __pyx_type_7aiohttp_12_http_parser_HttpResponseParser.tp_print = 0;
17866   #endif
17867   if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7aiohttp_12_http_parser_HttpResponseParser.tp_dictoffset && __pyx_type_7aiohttp_12_http_parser_HttpResponseParser.tp_getattro == PyObject_GenericGetAttr)) {
17868     __pyx_type_7aiohttp_12_http_parser_HttpResponseParser.tp_getattro = __Pyx_PyObject_GenericGetAttr;
17869   }
17870   if (__Pyx_SetVtable(__pyx_type_7aiohttp_12_http_parser_HttpResponseParser.tp_dict, __pyx_vtabptr_7aiohttp_12_http_parser_HttpResponseParser) < 0) __PYX_ERR(0, 591, __pyx_L1_error)
17871   if (PyObject_SetAttr(__pyx_m, __pyx_n_s_HttpResponseParser, (PyObject *)&__pyx_type_7aiohttp_12_http_parser_HttpResponseParser) < 0) __PYX_ERR(0, 591, __pyx_L1_error)
17872   if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7aiohttp_12_http_parser_HttpResponseParser) < 0) __PYX_ERR(0, 591, __pyx_L1_error)
17873   __pyx_ptype_7aiohttp_12_http_parser_HttpResponseParser = &__pyx_type_7aiohttp_12_http_parser_HttpResponseParser;
17874   if (PyType_Ready(&__pyx_type_7aiohttp_12_http_parser___pyx_scope_struct____repr__) < 0) __PYX_ERR(0, 135, __pyx_L1_error)
17875   #if PY_VERSION_HEX < 0x030800B1
17876   __pyx_type_7aiohttp_12_http_parser___pyx_scope_struct____repr__.tp_print = 0;
17877   #endif
17878   if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7aiohttp_12_http_parser___pyx_scope_struct____repr__.tp_dictoffset && __pyx_type_7aiohttp_12_http_parser___pyx_scope_struct____repr__.tp_getattro == PyObject_GenericGetAttr)) {
17879     __pyx_type_7aiohttp_12_http_parser___pyx_scope_struct____repr__.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
17880   }
17881   __pyx_ptype_7aiohttp_12_http_parser___pyx_scope_struct____repr__ = &__pyx_type_7aiohttp_12_http_parser___pyx_scope_struct____repr__;
17882   if (PyType_Ready(&__pyx_type_7aiohttp_12_http_parser___pyx_scope_struct_1_genexpr) < 0) __PYX_ERR(0, 147, __pyx_L1_error)
17883   #if PY_VERSION_HEX < 0x030800B1
17884   __pyx_type_7aiohttp_12_http_parser___pyx_scope_struct_1_genexpr.tp_print = 0;
17885   #endif
17886   if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7aiohttp_12_http_parser___pyx_scope_struct_1_genexpr.tp_dictoffset && __pyx_type_7aiohttp_12_http_parser___pyx_scope_struct_1_genexpr.tp_getattro == PyObject_GenericGetAttr)) {
17887     __pyx_type_7aiohttp_12_http_parser___pyx_scope_struct_1_genexpr.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
17888   }
17889   __pyx_ptype_7aiohttp_12_http_parser___pyx_scope_struct_1_genexpr = &__pyx_type_7aiohttp_12_http_parser___pyx_scope_struct_1_genexpr;
17890   if (PyType_Ready(&__pyx_type_7aiohttp_12_http_parser___pyx_scope_struct_2___repr__) < 0) __PYX_ERR(0, 233, __pyx_L1_error)
17891   #if PY_VERSION_HEX < 0x030800B1
17892   __pyx_type_7aiohttp_12_http_parser___pyx_scope_struct_2___repr__.tp_print = 0;
17893   #endif
17894   if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7aiohttp_12_http_parser___pyx_scope_struct_2___repr__.tp_dictoffset && __pyx_type_7aiohttp_12_http_parser___pyx_scope_struct_2___repr__.tp_getattro == PyObject_GenericGetAttr)) {
17895     __pyx_type_7aiohttp_12_http_parser___pyx_scope_struct_2___repr__.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
17896   }
17897   __pyx_ptype_7aiohttp_12_http_parser___pyx_scope_struct_2___repr__ = &__pyx_type_7aiohttp_12_http_parser___pyx_scope_struct_2___repr__;
17898   if (PyType_Ready(&__pyx_type_7aiohttp_12_http_parser___pyx_scope_struct_3_genexpr) < 0) __PYX_ERR(0, 244, __pyx_L1_error)
17899   #if PY_VERSION_HEX < 0x030800B1
17900   __pyx_type_7aiohttp_12_http_parser___pyx_scope_struct_3_genexpr.tp_print = 0;
17901   #endif
17902   if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7aiohttp_12_http_parser___pyx_scope_struct_3_genexpr.tp_dictoffset && __pyx_type_7aiohttp_12_http_parser___pyx_scope_struct_3_genexpr.tp_getattro == PyObject_GenericGetAttr)) {
17903     __pyx_type_7aiohttp_12_http_parser___pyx_scope_struct_3_genexpr.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
17904   }
17905   __pyx_ptype_7aiohttp_12_http_parser___pyx_scope_struct_3_genexpr = &__pyx_type_7aiohttp_12_http_parser___pyx_scope_struct_3_genexpr;
17906   __Pyx_RefNannyFinishContext();
17907   return 0;
17908   __pyx_L1_error:;
17909   __Pyx_RefNannyFinishContext();
17910   return -1;
17911 }
17912 
__Pyx_modinit_type_import_code(void)17913 static int __Pyx_modinit_type_import_code(void) {
17914   __Pyx_RefNannyDeclarations
17915   PyObject *__pyx_t_1 = NULL;
17916   int __pyx_lineno = 0;
17917   const char *__pyx_filename = NULL;
17918   int __pyx_clineno = 0;
17919   __Pyx_RefNannySetupContext("__Pyx_modinit_type_import_code", 0);
17920   /*--- Type import code ---*/
17921   __pyx_t_1 = PyImport_ImportModule(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 9, __pyx_L1_error)
17922   __Pyx_GOTREF(__pyx_t_1);
17923   __pyx_ptype_7cpython_4type_type = __Pyx_ImportType(__pyx_t_1, __Pyx_BUILTIN_MODULE_NAME, "type",
17924   #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
17925   sizeof(PyTypeObject),
17926   #else
17927   sizeof(PyHeapTypeObject),
17928   #endif
17929   __Pyx_ImportType_CheckSize_Warn);
17930    if (!__pyx_ptype_7cpython_4type_type) __PYX_ERR(2, 9, __pyx_L1_error)
17931   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
17932   __pyx_t_1 = PyImport_ImportModule(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8, __pyx_L1_error)
17933   __Pyx_GOTREF(__pyx_t_1);
17934   __pyx_ptype_7cpython_4bool_bool = __Pyx_ImportType(__pyx_t_1, __Pyx_BUILTIN_MODULE_NAME, "bool", sizeof(PyBoolObject), __Pyx_ImportType_CheckSize_Warn);
17935    if (!__pyx_ptype_7cpython_4bool_bool) __PYX_ERR(3, 8, __pyx_L1_error)
17936   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
17937   __pyx_t_1 = PyImport_ImportModule(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 15, __pyx_L1_error)
17938   __Pyx_GOTREF(__pyx_t_1);
17939   __pyx_ptype_7cpython_7complex_complex = __Pyx_ImportType(__pyx_t_1, __Pyx_BUILTIN_MODULE_NAME, "complex", sizeof(PyComplexObject), __Pyx_ImportType_CheckSize_Warn);
17940    if (!__pyx_ptype_7cpython_7complex_complex) __PYX_ERR(4, 15, __pyx_L1_error)
17941   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
17942   __Pyx_RefNannyFinishContext();
17943   return 0;
17944   __pyx_L1_error:;
17945   __Pyx_XDECREF(__pyx_t_1);
17946   __Pyx_RefNannyFinishContext();
17947   return -1;
17948 }
17949 
__Pyx_modinit_variable_import_code(void)17950 static int __Pyx_modinit_variable_import_code(void) {
17951   __Pyx_RefNannyDeclarations
17952   __Pyx_RefNannySetupContext("__Pyx_modinit_variable_import_code", 0);
17953   /*--- Variable import code ---*/
17954   __Pyx_RefNannyFinishContext();
17955   return 0;
17956 }
17957 
__Pyx_modinit_function_import_code(void)17958 static int __Pyx_modinit_function_import_code(void) {
17959   __Pyx_RefNannyDeclarations
17960   __Pyx_RefNannySetupContext("__Pyx_modinit_function_import_code", 0);
17961   /*--- Function import code ---*/
17962   __Pyx_RefNannyFinishContext();
17963   return 0;
17964 }
17965 
17966 
17967 #ifndef CYTHON_NO_PYINIT_EXPORT
17968 #define __Pyx_PyMODINIT_FUNC PyMODINIT_FUNC
17969 #elif PY_MAJOR_VERSION < 3
17970 #ifdef __cplusplus
17971 #define __Pyx_PyMODINIT_FUNC extern "C" void
17972 #else
17973 #define __Pyx_PyMODINIT_FUNC void
17974 #endif
17975 #else
17976 #ifdef __cplusplus
17977 #define __Pyx_PyMODINIT_FUNC extern "C" PyObject *
17978 #else
17979 #define __Pyx_PyMODINIT_FUNC PyObject *
17980 #endif
17981 #endif
17982 
17983 
17984 #if PY_MAJOR_VERSION < 3
17985 __Pyx_PyMODINIT_FUNC init_http_parser(void) CYTHON_SMALL_CODE; /*proto*/
init_http_parser(void)17986 __Pyx_PyMODINIT_FUNC init_http_parser(void)
17987 #else
17988 __Pyx_PyMODINIT_FUNC PyInit__http_parser(void) CYTHON_SMALL_CODE; /*proto*/
17989 __Pyx_PyMODINIT_FUNC PyInit__http_parser(void)
17990 #if CYTHON_PEP489_MULTI_PHASE_INIT
17991 {
17992   return PyModuleDef_Init(&__pyx_moduledef);
17993 }
17994 static CYTHON_SMALL_CODE int __Pyx_check_single_interpreter(void) {
17995     #if PY_VERSION_HEX >= 0x030700A1
17996     static PY_INT64_T main_interpreter_id = -1;
17997     PY_INT64_T current_id = PyInterpreterState_GetID(PyThreadState_Get()->interp);
17998     if (main_interpreter_id == -1) {
17999         main_interpreter_id = current_id;
18000         return (unlikely(current_id == -1)) ? -1 : 0;
18001     } else if (unlikely(main_interpreter_id != current_id))
18002     #else
18003     static PyInterpreterState *main_interpreter = NULL;
18004     PyInterpreterState *current_interpreter = PyThreadState_Get()->interp;
18005     if (!main_interpreter) {
18006         main_interpreter = current_interpreter;
18007     } else if (unlikely(main_interpreter != current_interpreter))
18008     #endif
18009     {
18010         PyErr_SetString(
18011             PyExc_ImportError,
18012             "Interpreter change detected - this module can only be loaded into one interpreter per process.");
18013         return -1;
18014     }
18015     return 0;
18016 }
18017 static CYTHON_SMALL_CODE int __Pyx_copy_spec_to_module(PyObject *spec, PyObject *moddict, const char* from_name, const char* to_name, int allow_none) {
18018     PyObject *value = PyObject_GetAttrString(spec, from_name);
18019     int result = 0;
18020     if (likely(value)) {
18021         if (allow_none || value != Py_None) {
18022             result = PyDict_SetItemString(moddict, to_name, value);
18023         }
18024         Py_DECREF(value);
18025     } else if (PyErr_ExceptionMatches(PyExc_AttributeError)) {
18026         PyErr_Clear();
18027     } else {
18028         result = -1;
18029     }
18030     return result;
18031 }
18032 static CYTHON_SMALL_CODE PyObject* __pyx_pymod_create(PyObject *spec, CYTHON_UNUSED PyModuleDef *def) {
18033     PyObject *module = NULL, *moddict, *modname;
18034     if (__Pyx_check_single_interpreter())
18035         return NULL;
18036     if (__pyx_m)
18037         return __Pyx_NewRef(__pyx_m);
18038     modname = PyObject_GetAttrString(spec, "name");
18039     if (unlikely(!modname)) goto bad;
18040     module = PyModule_NewObject(modname);
18041     Py_DECREF(modname);
18042     if (unlikely(!module)) goto bad;
18043     moddict = PyModule_GetDict(module);
18044     if (unlikely(!moddict)) goto bad;
18045     if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "loader", "__loader__", 1) < 0)) goto bad;
18046     if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "origin", "__file__", 1) < 0)) goto bad;
18047     if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "parent", "__package__", 1) < 0)) goto bad;
18048     if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "submodule_search_locations", "__path__", 0) < 0)) goto bad;
18049     return module;
18050 bad:
18051     Py_XDECREF(module);
18052     return NULL;
18053 }
18054 
18055 
18056 static CYTHON_SMALL_CODE int __pyx_pymod_exec__http_parser(PyObject *__pyx_pyinit_module)
18057 #endif
18058 #endif
18059 {
18060   PyObject *__pyx_t_1 = NULL;
18061   PyObject *__pyx_t_2 = NULL;
18062   PyObject *__pyx_t_3 = NULL;
18063   PyObject *__pyx_t_4 = NULL;
18064   PyObject *__pyx_t_5 = NULL;
18065   PyObject *__pyx_t_6 = NULL;
18066   PyObject *__pyx_t_7 = NULL;
18067   PyObject *__pyx_t_8 = NULL;
18068   PyObject *__pyx_t_9 = NULL;
18069   PyObject *__pyx_t_10 = NULL;
18070   PyObject *__pyx_t_11 = NULL;
18071   PyObject *__pyx_t_12 = NULL;
18072   PyObject *__pyx_t_13 = NULL;
18073   PyObject *__pyx_t_14 = NULL;
18074   PyObject *__pyx_t_15 = NULL;
18075   PyObject *__pyx_t_16 = NULL;
18076   PyObject *__pyx_t_17 = NULL;
18077   PyObject *__pyx_t_18 = NULL;
18078   PyObject *__pyx_t_19 = NULL;
18079   PyObject *__pyx_t_20 = NULL;
18080   PyObject *__pyx_t_21 = NULL;
18081   PyObject *__pyx_t_22 = NULL;
18082   PyObject *__pyx_t_23 = NULL;
18083   PyObject *__pyx_t_24 = NULL;
18084   PyObject *__pyx_t_25 = NULL;
18085   PyObject *__pyx_t_26 = NULL;
18086   PyObject *__pyx_t_27 = NULL;
18087   PyObject *__pyx_t_28 = NULL;
18088   PyObject *__pyx_t_29 = NULL;
18089   PyObject *__pyx_t_30 = NULL;
18090   PyObject *__pyx_t_31 = NULL;
18091   PyObject *__pyx_t_32 = NULL;
18092   PyObject *__pyx_t_33 = NULL;
18093   PyObject *__pyx_t_34 = NULL;
18094   PyObject *__pyx_t_35 = NULL;
18095   PyObject *__pyx_t_36 = NULL;
18096   PyObject *__pyx_t_37 = NULL;
18097   PyObject *__pyx_t_38 = NULL;
18098   PyObject *__pyx_t_39 = NULL;
18099   PyObject *__pyx_t_40 = NULL;
18100   PyObject *__pyx_t_41 = NULL;
18101   PyObject *__pyx_t_42 = NULL;
18102   PyObject *__pyx_t_43 = NULL;
18103   PyObject *__pyx_t_44 = NULL;
18104   PyObject *__pyx_t_45 = NULL;
18105   PyObject *__pyx_t_46 = NULL;
18106   PyObject *__pyx_t_47 = NULL;
18107   PyObject *__pyx_t_48 = NULL;
18108   PyObject *__pyx_t_49 = NULL;
18109   PyObject *__pyx_t_50 = NULL;
18110   PyObject *__pyx_t_51 = NULL;
18111   PyObject *__pyx_t_52 = NULL;
18112   PyObject *__pyx_t_53 = NULL;
18113   PyObject *__pyx_t_54 = NULL;
18114   PyObject *__pyx_t_55 = NULL;
18115   PyObject *__pyx_t_56 = NULL;
18116   PyObject *__pyx_t_57 = NULL;
18117   PyObject *__pyx_t_58 = NULL;
18118   PyObject *__pyx_t_59 = NULL;
18119   PyObject *__pyx_t_60 = NULL;
18120   PyObject *__pyx_t_61 = NULL;
18121   PyObject *__pyx_t_62 = NULL;
18122   PyObject *__pyx_t_63 = NULL;
18123   PyObject *__pyx_t_64 = NULL;
18124   PyObject *__pyx_t_65 = NULL;
18125   PyObject *__pyx_t_66 = NULL;
18126   PyObject *__pyx_t_67 = NULL;
18127   PyObject *__pyx_t_68 = NULL;
18128   PyObject *__pyx_t_69 = NULL;
18129   PyObject *__pyx_t_70 = NULL;
18130   PyObject *__pyx_t_71 = NULL;
18131   PyObject *__pyx_t_72 = NULL;
18132   PyObject *__pyx_t_73 = NULL;
18133   PyObject *__pyx_t_74 = NULL;
18134   PyObject *__pyx_t_75 = NULL;
18135   PyObject *__pyx_t_76 = NULL;
18136   PyObject *__pyx_t_77 = NULL;
18137   PyObject *__pyx_t_78 = NULL;
18138   long __pyx_t_79;
18139   enum http_method __pyx_t_80;
18140   char const *__pyx_t_81;
18141   int __pyx_t_82;
18142   int __pyx_lineno = 0;
18143   const char *__pyx_filename = NULL;
18144   int __pyx_clineno = 0;
18145   __Pyx_RefNannyDeclarations
18146   #if CYTHON_PEP489_MULTI_PHASE_INIT
18147   if (__pyx_m) {
18148     if (__pyx_m == __pyx_pyinit_module) return 0;
18149     PyErr_SetString(PyExc_RuntimeError, "Module '_http_parser' has already been imported. Re-initialisation is not supported.");
18150     return -1;
18151   }
18152   #elif PY_MAJOR_VERSION >= 3
18153   if (__pyx_m) return __Pyx_NewRef(__pyx_m);
18154   #endif
18155   #if CYTHON_REFNANNY
18156 __Pyx_RefNanny = __Pyx_RefNannyImportAPI("refnanny");
18157 if (!__Pyx_RefNanny) {
18158   PyErr_Clear();
18159   __Pyx_RefNanny = __Pyx_RefNannyImportAPI("Cython.Runtime.refnanny");
18160   if (!__Pyx_RefNanny)
18161       Py_FatalError("failed to import 'refnanny' module");
18162 }
18163 #endif
18164   __Pyx_RefNannySetupContext("__Pyx_PyMODINIT_FUNC PyInit__http_parser(void)", 0);
18165   if (__Pyx_check_binary_version() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
18166   #ifdef __Pxy_PyFrame_Initialize_Offsets
18167   __Pxy_PyFrame_Initialize_Offsets();
18168   #endif
18169   __pyx_empty_tuple = PyTuple_New(0); if (unlikely(!__pyx_empty_tuple)) __PYX_ERR(0, 1, __pyx_L1_error)
18170   __pyx_empty_bytes = PyBytes_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_bytes)) __PYX_ERR(0, 1, __pyx_L1_error)
18171   __pyx_empty_unicode = PyUnicode_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_unicode)) __PYX_ERR(0, 1, __pyx_L1_error)
18172   #ifdef __Pyx_CyFunction_USED
18173   if (__pyx_CyFunction_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
18174   #endif
18175   #ifdef __Pyx_FusedFunction_USED
18176   if (__pyx_FusedFunction_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
18177   #endif
18178   #ifdef __Pyx_Coroutine_USED
18179   if (__pyx_Coroutine_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
18180   #endif
18181   #ifdef __Pyx_Generator_USED
18182   if (__pyx_Generator_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
18183   #endif
18184   #ifdef __Pyx_AsyncGen_USED
18185   if (__pyx_AsyncGen_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
18186   #endif
18187   #ifdef __Pyx_StopAsyncIteration_USED
18188   if (__pyx_StopAsyncIteration_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
18189   #endif
18190   /*--- Library function declarations ---*/
18191   /*--- Threads initialization code ---*/
18192   #if defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS
18193   #ifdef WITH_THREAD /* Python build with threading support? */
18194   PyEval_InitThreads();
18195   #endif
18196   #endif
18197   /*--- Module creation code ---*/
18198   #if CYTHON_PEP489_MULTI_PHASE_INIT
18199   __pyx_m = __pyx_pyinit_module;
18200   Py_INCREF(__pyx_m);
18201   #else
18202   #if PY_MAJOR_VERSION < 3
18203   __pyx_m = Py_InitModule4("_http_parser", __pyx_methods, 0, 0, PYTHON_API_VERSION); Py_XINCREF(__pyx_m);
18204   #else
18205   __pyx_m = PyModule_Create(&__pyx_moduledef);
18206   #endif
18207   if (unlikely(!__pyx_m)) __PYX_ERR(0, 1, __pyx_L1_error)
18208   #endif
18209   __pyx_d = PyModule_GetDict(__pyx_m); if (unlikely(!__pyx_d)) __PYX_ERR(0, 1, __pyx_L1_error)
18210   Py_INCREF(__pyx_d);
18211   __pyx_b = PyImport_AddModule(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_b)) __PYX_ERR(0, 1, __pyx_L1_error)
18212   Py_INCREF(__pyx_b);
18213   __pyx_cython_runtime = PyImport_AddModule((char *) "cython_runtime"); if (unlikely(!__pyx_cython_runtime)) __PYX_ERR(0, 1, __pyx_L1_error)
18214   Py_INCREF(__pyx_cython_runtime);
18215   if (PyObject_SetAttrString(__pyx_m, "__builtins__", __pyx_b) < 0) __PYX_ERR(0, 1, __pyx_L1_error);
18216   /*--- Initialize various global constants etc. ---*/
18217   if (__Pyx_InitGlobals() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
18218   #if PY_MAJOR_VERSION < 3 && (__PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT)
18219   if (__Pyx_init_sys_getdefaultencoding_params() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
18220   #endif
18221   if (__pyx_module_is_main_aiohttp___http_parser) {
18222     if (PyObject_SetAttr(__pyx_m, __pyx_n_s_name, __pyx_n_s_main) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
18223   }
18224   #if PY_MAJOR_VERSION >= 3
18225   {
18226     PyObject *modules = PyImport_GetModuleDict(); if (unlikely(!modules)) __PYX_ERR(0, 1, __pyx_L1_error)
18227     if (!PyDict_GetItemString(modules, "aiohttp._http_parser")) {
18228       if (unlikely(PyDict_SetItemString(modules, "aiohttp._http_parser", __pyx_m) < 0)) __PYX_ERR(0, 1, __pyx_L1_error)
18229     }
18230   }
18231   #endif
18232   /*--- Builtin init code ---*/
18233   if (__Pyx_InitCachedBuiltins() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
18234   /*--- Constants init code ---*/
18235   if (__Pyx_InitCachedConstants() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
18236   /*--- Global type/function init code ---*/
18237   (void)__Pyx_modinit_global_init_code();
18238   (void)__Pyx_modinit_variable_export_code();
18239   (void)__Pyx_modinit_function_export_code();
18240   if (unlikely(__Pyx_modinit_type_init_code() < 0)) __PYX_ERR(0, 1, __pyx_L1_error)
18241   if (unlikely(__Pyx_modinit_type_import_code() < 0)) __PYX_ERR(0, 1, __pyx_L1_error)
18242   (void)__Pyx_modinit_variable_import_code();
18243   (void)__Pyx_modinit_function_import_code();
18244   /*--- Execution code ---*/
18245   #if defined(__Pyx_Generator_USED) || defined(__Pyx_Coroutine_USED)
18246   if (__Pyx_patch_abc() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
18247   #endif
18248 
18249   /* "aiohttp/_http_parser.pyx":19
18250  * from libc.string cimport memcpy
18251  *
18252  * from multidict import CIMultiDict as _CIMultiDict, CIMultiDictProxy as _CIMultiDictProxy             # <<<<<<<<<<<<<<
18253  * from yarl import URL as _URL
18254  *
18255  */
18256   __pyx_t_1 = PyList_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 19, __pyx_L1_error)
18257   __Pyx_GOTREF(__pyx_t_1);
18258   __Pyx_INCREF(__pyx_n_s_CIMultiDict);
18259   __Pyx_GIVEREF(__pyx_n_s_CIMultiDict);
18260   PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_CIMultiDict);
18261   __Pyx_INCREF(__pyx_n_s_CIMultiDictProxy);
18262   __Pyx_GIVEREF(__pyx_n_s_CIMultiDictProxy);
18263   PyList_SET_ITEM(__pyx_t_1, 1, __pyx_n_s_CIMultiDictProxy);
18264   __pyx_t_2 = __Pyx_Import(__pyx_n_s_multidict, __pyx_t_1, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 19, __pyx_L1_error)
18265   __Pyx_GOTREF(__pyx_t_2);
18266   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
18267   __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_CIMultiDict); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 19, __pyx_L1_error)
18268   __Pyx_GOTREF(__pyx_t_1);
18269   if (PyDict_SetItem(__pyx_d, __pyx_n_s_CIMultiDict_2, __pyx_t_1) < 0) __PYX_ERR(0, 19, __pyx_L1_error)
18270   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
18271   __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_CIMultiDictProxy); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 19, __pyx_L1_error)
18272   __Pyx_GOTREF(__pyx_t_1);
18273   if (PyDict_SetItem(__pyx_d, __pyx_n_s_CIMultiDictProxy_2, __pyx_t_1) < 0) __PYX_ERR(0, 19, __pyx_L1_error)
18274   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
18275   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
18276 
18277   /* "aiohttp/_http_parser.pyx":20
18278  *
18279  * from multidict import CIMultiDict as _CIMultiDict, CIMultiDictProxy as _CIMultiDictProxy
18280  * from yarl import URL as _URL             # <<<<<<<<<<<<<<
18281  *
18282  * from aiohttp import hdrs
18283  */
18284   __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 20, __pyx_L1_error)
18285   __Pyx_GOTREF(__pyx_t_2);
18286   __Pyx_INCREF(__pyx_n_s_URL);
18287   __Pyx_GIVEREF(__pyx_n_s_URL);
18288   PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_URL);
18289   __pyx_t_1 = __Pyx_Import(__pyx_n_s_yarl, __pyx_t_2, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 20, __pyx_L1_error)
18290   __Pyx_GOTREF(__pyx_t_1);
18291   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
18292   __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_URL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 20, __pyx_L1_error)
18293   __Pyx_GOTREF(__pyx_t_2);
18294   if (PyDict_SetItem(__pyx_d, __pyx_n_s_URL_2, __pyx_t_2) < 0) __PYX_ERR(0, 20, __pyx_L1_error)
18295   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
18296   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
18297 
18298   /* "aiohttp/_http_parser.pyx":22
18299  * from yarl import URL as _URL
18300  *
18301  * from aiohttp import hdrs             # <<<<<<<<<<<<<<
18302  *
18303  * from .http_exceptions import (
18304  */
18305   __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22, __pyx_L1_error)
18306   __Pyx_GOTREF(__pyx_t_1);
18307   __Pyx_INCREF(__pyx_n_s_hdrs);
18308   __Pyx_GIVEREF(__pyx_n_s_hdrs);
18309   PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_hdrs);
18310   __pyx_t_2 = __Pyx_Import(__pyx_n_s_aiohttp, __pyx_t_1, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 22, __pyx_L1_error)
18311   __Pyx_GOTREF(__pyx_t_2);
18312   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
18313   __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22, __pyx_L1_error)
18314   __Pyx_GOTREF(__pyx_t_1);
18315   if (PyDict_SetItem(__pyx_d, __pyx_n_s_hdrs, __pyx_t_1) < 0) __PYX_ERR(0, 22, __pyx_L1_error)
18316   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
18317   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
18318 
18319   /* "aiohttp/_http_parser.pyx":25
18320  *
18321  * from .http_exceptions import (
18322  *     BadHttpMessage,             # <<<<<<<<<<<<<<
18323  *     BadStatusLine,
18324  *     ContentLengthError,
18325  */
18326   __pyx_t_2 = PyList_New(8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 25, __pyx_L1_error)
18327   __Pyx_GOTREF(__pyx_t_2);
18328   __Pyx_INCREF(__pyx_n_s_BadHttpMessage);
18329   __Pyx_GIVEREF(__pyx_n_s_BadHttpMessage);
18330   PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_BadHttpMessage);
18331   __Pyx_INCREF(__pyx_n_s_BadStatusLine);
18332   __Pyx_GIVEREF(__pyx_n_s_BadStatusLine);
18333   PyList_SET_ITEM(__pyx_t_2, 1, __pyx_n_s_BadStatusLine);
18334   __Pyx_INCREF(__pyx_n_s_ContentLengthError);
18335   __Pyx_GIVEREF(__pyx_n_s_ContentLengthError);
18336   PyList_SET_ITEM(__pyx_t_2, 2, __pyx_n_s_ContentLengthError);
18337   __Pyx_INCREF(__pyx_n_s_InvalidHeader);
18338   __Pyx_GIVEREF(__pyx_n_s_InvalidHeader);
18339   PyList_SET_ITEM(__pyx_t_2, 3, __pyx_n_s_InvalidHeader);
18340   __Pyx_INCREF(__pyx_n_s_InvalidURLError);
18341   __Pyx_GIVEREF(__pyx_n_s_InvalidURLError);
18342   PyList_SET_ITEM(__pyx_t_2, 4, __pyx_n_s_InvalidURLError);
18343   __Pyx_INCREF(__pyx_n_s_LineTooLong);
18344   __Pyx_GIVEREF(__pyx_n_s_LineTooLong);
18345   PyList_SET_ITEM(__pyx_t_2, 5, __pyx_n_s_LineTooLong);
18346   __Pyx_INCREF(__pyx_n_s_PayloadEncodingError);
18347   __Pyx_GIVEREF(__pyx_n_s_PayloadEncodingError);
18348   PyList_SET_ITEM(__pyx_t_2, 6, __pyx_n_s_PayloadEncodingError);
18349   __Pyx_INCREF(__pyx_n_s_TransferEncodingError);
18350   __Pyx_GIVEREF(__pyx_n_s_TransferEncodingError);
18351   PyList_SET_ITEM(__pyx_t_2, 7, __pyx_n_s_TransferEncodingError);
18352 
18353   /* "aiohttp/_http_parser.pyx":24
18354  * from aiohttp import hdrs
18355  *
18356  * from .http_exceptions import (             # <<<<<<<<<<<<<<
18357  *     BadHttpMessage,
18358  *     BadStatusLine,
18359  */
18360   __pyx_t_1 = __Pyx_Import(__pyx_n_s_http_exceptions, __pyx_t_2, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 24, __pyx_L1_error)
18361   __Pyx_GOTREF(__pyx_t_1);
18362   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
18363   __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_BadHttpMessage); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 24, __pyx_L1_error)
18364   __Pyx_GOTREF(__pyx_t_2);
18365   if (PyDict_SetItem(__pyx_d, __pyx_n_s_BadHttpMessage, __pyx_t_2) < 0) __PYX_ERR(0, 25, __pyx_L1_error)
18366   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
18367   __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_BadStatusLine); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 24, __pyx_L1_error)
18368   __Pyx_GOTREF(__pyx_t_2);
18369   if (PyDict_SetItem(__pyx_d, __pyx_n_s_BadStatusLine, __pyx_t_2) < 0) __PYX_ERR(0, 26, __pyx_L1_error)
18370   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
18371   __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_ContentLengthError); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 24, __pyx_L1_error)
18372   __Pyx_GOTREF(__pyx_t_2);
18373   if (PyDict_SetItem(__pyx_d, __pyx_n_s_ContentLengthError, __pyx_t_2) < 0) __PYX_ERR(0, 27, __pyx_L1_error)
18374   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
18375   __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_InvalidHeader); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 24, __pyx_L1_error)
18376   __Pyx_GOTREF(__pyx_t_2);
18377   if (PyDict_SetItem(__pyx_d, __pyx_n_s_InvalidHeader, __pyx_t_2) < 0) __PYX_ERR(0, 28, __pyx_L1_error)
18378   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
18379   __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_InvalidURLError); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 24, __pyx_L1_error)
18380   __Pyx_GOTREF(__pyx_t_2);
18381   if (PyDict_SetItem(__pyx_d, __pyx_n_s_InvalidURLError, __pyx_t_2) < 0) __PYX_ERR(0, 29, __pyx_L1_error)
18382   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
18383   __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_LineTooLong); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 24, __pyx_L1_error)
18384   __Pyx_GOTREF(__pyx_t_2);
18385   if (PyDict_SetItem(__pyx_d, __pyx_n_s_LineTooLong, __pyx_t_2) < 0) __PYX_ERR(0, 30, __pyx_L1_error)
18386   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
18387   __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_PayloadEncodingError); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 24, __pyx_L1_error)
18388   __Pyx_GOTREF(__pyx_t_2);
18389   if (PyDict_SetItem(__pyx_d, __pyx_n_s_PayloadEncodingError, __pyx_t_2) < 0) __PYX_ERR(0, 31, __pyx_L1_error)
18390   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
18391   __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_TransferEncodingError); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 24, __pyx_L1_error)
18392   __Pyx_GOTREF(__pyx_t_2);
18393   if (PyDict_SetItem(__pyx_d, __pyx_n_s_TransferEncodingError, __pyx_t_2) < 0) __PYX_ERR(0, 32, __pyx_L1_error)
18394   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
18395   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
18396 
18397   /* "aiohttp/_http_parser.pyx":34
18398  *     TransferEncodingError,
18399  * )
18400  * from .http_parser import DeflateBuffer as _DeflateBuffer             # <<<<<<<<<<<<<<
18401  * from .http_writer import (
18402  *     HttpVersion as _HttpVersion,
18403  */
18404   __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 34, __pyx_L1_error)
18405   __Pyx_GOTREF(__pyx_t_1);
18406   __Pyx_INCREF(__pyx_n_s_DeflateBuffer);
18407   __Pyx_GIVEREF(__pyx_n_s_DeflateBuffer);
18408   PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_DeflateBuffer);
18409   __pyx_t_2 = __Pyx_Import(__pyx_n_s_http_parser, __pyx_t_1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 34, __pyx_L1_error)
18410   __Pyx_GOTREF(__pyx_t_2);
18411   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
18412   __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_DeflateBuffer); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 34, __pyx_L1_error)
18413   __Pyx_GOTREF(__pyx_t_1);
18414   if (PyDict_SetItem(__pyx_d, __pyx_n_s_DeflateBuffer_2, __pyx_t_1) < 0) __PYX_ERR(0, 34, __pyx_L1_error)
18415   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
18416   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
18417 
18418   /* "aiohttp/_http_parser.pyx":36
18419  * from .http_parser import DeflateBuffer as _DeflateBuffer
18420  * from .http_writer import (
18421  *     HttpVersion as _HttpVersion,             # <<<<<<<<<<<<<<
18422  *     HttpVersion10 as _HttpVersion10,
18423  *     HttpVersion11 as _HttpVersion11,
18424  */
18425   __pyx_t_2 = PyList_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 36, __pyx_L1_error)
18426   __Pyx_GOTREF(__pyx_t_2);
18427   __Pyx_INCREF(__pyx_n_s_HttpVersion);
18428   __Pyx_GIVEREF(__pyx_n_s_HttpVersion);
18429   PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_HttpVersion);
18430   __Pyx_INCREF(__pyx_n_s_HttpVersion10);
18431   __Pyx_GIVEREF(__pyx_n_s_HttpVersion10);
18432   PyList_SET_ITEM(__pyx_t_2, 1, __pyx_n_s_HttpVersion10);
18433   __Pyx_INCREF(__pyx_n_s_HttpVersion11);
18434   __Pyx_GIVEREF(__pyx_n_s_HttpVersion11);
18435   PyList_SET_ITEM(__pyx_t_2, 2, __pyx_n_s_HttpVersion11);
18436 
18437   /* "aiohttp/_http_parser.pyx":35
18438  * )
18439  * from .http_parser import DeflateBuffer as _DeflateBuffer
18440  * from .http_writer import (             # <<<<<<<<<<<<<<
18441  *     HttpVersion as _HttpVersion,
18442  *     HttpVersion10 as _HttpVersion10,
18443  */
18444   __pyx_t_1 = __Pyx_Import(__pyx_n_s_http_writer, __pyx_t_2, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 35, __pyx_L1_error)
18445   __Pyx_GOTREF(__pyx_t_1);
18446   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
18447   __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_HttpVersion); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 35, __pyx_L1_error)
18448   __Pyx_GOTREF(__pyx_t_2);
18449   if (PyDict_SetItem(__pyx_d, __pyx_n_s_HttpVersion_2, __pyx_t_2) < 0) __PYX_ERR(0, 36, __pyx_L1_error)
18450   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
18451   __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_HttpVersion10); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 35, __pyx_L1_error)
18452   __Pyx_GOTREF(__pyx_t_2);
18453   if (PyDict_SetItem(__pyx_d, __pyx_n_s_HttpVersion10_2, __pyx_t_2) < 0) __PYX_ERR(0, 37, __pyx_L1_error)
18454   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
18455   __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_HttpVersion11); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 35, __pyx_L1_error)
18456   __Pyx_GOTREF(__pyx_t_2);
18457   if (PyDict_SetItem(__pyx_d, __pyx_n_s_HttpVersion11_2, __pyx_t_2) < 0) __PYX_ERR(0, 38, __pyx_L1_error)
18458   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
18459   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
18460 
18461   /* "aiohttp/_http_parser.pyx":40
18462  *     HttpVersion11 as _HttpVersion11,
18463  * )
18464  * from .streams import EMPTY_PAYLOAD as _EMPTY_PAYLOAD, StreamReader as _StreamReader             # <<<<<<<<<<<<<<
18465  *
18466  * cimport cython
18467  */
18468   __pyx_t_1 = PyList_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 40, __pyx_L1_error)
18469   __Pyx_GOTREF(__pyx_t_1);
18470   __Pyx_INCREF(__pyx_n_s_EMPTY_PAYLOAD);
18471   __Pyx_GIVEREF(__pyx_n_s_EMPTY_PAYLOAD);
18472   PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_EMPTY_PAYLOAD);
18473   __Pyx_INCREF(__pyx_n_s_StreamReader);
18474   __Pyx_GIVEREF(__pyx_n_s_StreamReader);
18475   PyList_SET_ITEM(__pyx_t_1, 1, __pyx_n_s_StreamReader);
18476   __pyx_t_2 = __Pyx_Import(__pyx_n_s_streams, __pyx_t_1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 40, __pyx_L1_error)
18477   __Pyx_GOTREF(__pyx_t_2);
18478   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
18479   __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_EMPTY_PAYLOAD); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 40, __pyx_L1_error)
18480   __Pyx_GOTREF(__pyx_t_1);
18481   if (PyDict_SetItem(__pyx_d, __pyx_n_s_EMPTY_PAYLOAD_2, __pyx_t_1) < 0) __PYX_ERR(0, 40, __pyx_L1_error)
18482   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
18483   __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_StreamReader); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 40, __pyx_L1_error)
18484   __Pyx_GOTREF(__pyx_t_1);
18485   if (PyDict_SetItem(__pyx_d, __pyx_n_s_StreamReader_2, __pyx_t_1) < 0) __PYX_ERR(0, 40, __pyx_L1_error)
18486   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
18487   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
18488 
18489   /* "aiohttp/_headers.pxi":4
18490  * # Run ./tools/gen.py to update it after the origin changing.
18491  *
18492  * from . import hdrs             # <<<<<<<<<<<<<<
18493  * cdef tuple headers = (
18494  *     hdrs.ACCEPT,
18495  */
18496   __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 4, __pyx_L1_error)
18497   __Pyx_GOTREF(__pyx_t_2);
18498   __Pyx_INCREF(__pyx_n_s_hdrs);
18499   __Pyx_GIVEREF(__pyx_n_s_hdrs);
18500   PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_hdrs);
18501   __pyx_t_1 = __Pyx_Import(__pyx_n_s__4, __pyx_t_2, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4, __pyx_L1_error)
18502   __Pyx_GOTREF(__pyx_t_1);
18503   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
18504   __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 4, __pyx_L1_error)
18505   __Pyx_GOTREF(__pyx_t_2);
18506   if (PyDict_SetItem(__pyx_d, __pyx_n_s_hdrs, __pyx_t_2) < 0) __PYX_ERR(5, 4, __pyx_L1_error)
18507   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
18508   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
18509 
18510   /* "aiohttp/_headers.pxi":6
18511  * from . import hdrs
18512  * cdef tuple headers = (
18513  *     hdrs.ACCEPT,             # <<<<<<<<<<<<<<
18514  *     hdrs.ACCEPT_CHARSET,
18515  *     hdrs.ACCEPT_ENCODING,
18516  */
18517   __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6, __pyx_L1_error)
18518   __Pyx_GOTREF(__pyx_t_1);
18519   __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_ACCEPT); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 6, __pyx_L1_error)
18520   __Pyx_GOTREF(__pyx_t_2);
18521   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
18522 
18523   /* "aiohttp/_headers.pxi":7
18524  * cdef tuple headers = (
18525  *     hdrs.ACCEPT,
18526  *     hdrs.ACCEPT_CHARSET,             # <<<<<<<<<<<<<<
18527  *     hdrs.ACCEPT_ENCODING,
18528  *     hdrs.ACCEPT_LANGUAGE,
18529  */
18530   __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 7, __pyx_L1_error)
18531   __Pyx_GOTREF(__pyx_t_1);
18532   __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_ACCEPT_CHARSET); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 7, __pyx_L1_error)
18533   __Pyx_GOTREF(__pyx_t_3);
18534   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
18535 
18536   /* "aiohttp/_headers.pxi":8
18537  *     hdrs.ACCEPT,
18538  *     hdrs.ACCEPT_CHARSET,
18539  *     hdrs.ACCEPT_ENCODING,             # <<<<<<<<<<<<<<
18540  *     hdrs.ACCEPT_LANGUAGE,
18541  *     hdrs.ACCEPT_RANGES,
18542  */
18543   __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 8, __pyx_L1_error)
18544   __Pyx_GOTREF(__pyx_t_1);
18545   __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_ACCEPT_ENCODING); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 8, __pyx_L1_error)
18546   __Pyx_GOTREF(__pyx_t_4);
18547   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
18548 
18549   /* "aiohttp/_headers.pxi":9
18550  *     hdrs.ACCEPT_CHARSET,
18551  *     hdrs.ACCEPT_ENCODING,
18552  *     hdrs.ACCEPT_LANGUAGE,             # <<<<<<<<<<<<<<
18553  *     hdrs.ACCEPT_RANGES,
18554  *     hdrs.ACCESS_CONTROL_ALLOW_CREDENTIALS,
18555  */
18556   __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 9, __pyx_L1_error)
18557   __Pyx_GOTREF(__pyx_t_1);
18558   __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_ACCEPT_LANGUAGE); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 9, __pyx_L1_error)
18559   __Pyx_GOTREF(__pyx_t_5);
18560   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
18561 
18562   /* "aiohttp/_headers.pxi":10
18563  *     hdrs.ACCEPT_ENCODING,
18564  *     hdrs.ACCEPT_LANGUAGE,
18565  *     hdrs.ACCEPT_RANGES,             # <<<<<<<<<<<<<<
18566  *     hdrs.ACCESS_CONTROL_ALLOW_CREDENTIALS,
18567  *     hdrs.ACCESS_CONTROL_ALLOW_HEADERS,
18568  */
18569   __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 10, __pyx_L1_error)
18570   __Pyx_GOTREF(__pyx_t_1);
18571   __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_ACCEPT_RANGES); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 10, __pyx_L1_error)
18572   __Pyx_GOTREF(__pyx_t_6);
18573   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
18574 
18575   /* "aiohttp/_headers.pxi":11
18576  *     hdrs.ACCEPT_LANGUAGE,
18577  *     hdrs.ACCEPT_RANGES,
18578  *     hdrs.ACCESS_CONTROL_ALLOW_CREDENTIALS,             # <<<<<<<<<<<<<<
18579  *     hdrs.ACCESS_CONTROL_ALLOW_HEADERS,
18580  *     hdrs.ACCESS_CONTROL_ALLOW_METHODS,
18581  */
18582   __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 11, __pyx_L1_error)
18583   __Pyx_GOTREF(__pyx_t_1);
18584   __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_ACCESS_CONTROL_ALLOW_CREDENTIALS); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 11, __pyx_L1_error)
18585   __Pyx_GOTREF(__pyx_t_7);
18586   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
18587 
18588   /* "aiohttp/_headers.pxi":12
18589  *     hdrs.ACCEPT_RANGES,
18590  *     hdrs.ACCESS_CONTROL_ALLOW_CREDENTIALS,
18591  *     hdrs.ACCESS_CONTROL_ALLOW_HEADERS,             # <<<<<<<<<<<<<<
18592  *     hdrs.ACCESS_CONTROL_ALLOW_METHODS,
18593  *     hdrs.ACCESS_CONTROL_ALLOW_ORIGIN,
18594  */
18595   __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 12, __pyx_L1_error)
18596   __Pyx_GOTREF(__pyx_t_1);
18597   __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_ACCESS_CONTROL_ALLOW_HEADERS); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 12, __pyx_L1_error)
18598   __Pyx_GOTREF(__pyx_t_8);
18599   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
18600 
18601   /* "aiohttp/_headers.pxi":13
18602  *     hdrs.ACCESS_CONTROL_ALLOW_CREDENTIALS,
18603  *     hdrs.ACCESS_CONTROL_ALLOW_HEADERS,
18604  *     hdrs.ACCESS_CONTROL_ALLOW_METHODS,             # <<<<<<<<<<<<<<
18605  *     hdrs.ACCESS_CONTROL_ALLOW_ORIGIN,
18606  *     hdrs.ACCESS_CONTROL_EXPOSE_HEADERS,
18607  */
18608   __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 13, __pyx_L1_error)
18609   __Pyx_GOTREF(__pyx_t_1);
18610   __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_ACCESS_CONTROL_ALLOW_METHODS); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 13, __pyx_L1_error)
18611   __Pyx_GOTREF(__pyx_t_9);
18612   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
18613 
18614   /* "aiohttp/_headers.pxi":14
18615  *     hdrs.ACCESS_CONTROL_ALLOW_HEADERS,
18616  *     hdrs.ACCESS_CONTROL_ALLOW_METHODS,
18617  *     hdrs.ACCESS_CONTROL_ALLOW_ORIGIN,             # <<<<<<<<<<<<<<
18618  *     hdrs.ACCESS_CONTROL_EXPOSE_HEADERS,
18619  *     hdrs.ACCESS_CONTROL_MAX_AGE,
18620  */
18621   __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 14, __pyx_L1_error)
18622   __Pyx_GOTREF(__pyx_t_1);
18623   __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_ACCESS_CONTROL_ALLOW_ORIGIN); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 14, __pyx_L1_error)
18624   __Pyx_GOTREF(__pyx_t_10);
18625   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
18626 
18627   /* "aiohttp/_headers.pxi":15
18628  *     hdrs.ACCESS_CONTROL_ALLOW_METHODS,
18629  *     hdrs.ACCESS_CONTROL_ALLOW_ORIGIN,
18630  *     hdrs.ACCESS_CONTROL_EXPOSE_HEADERS,             # <<<<<<<<<<<<<<
18631  *     hdrs.ACCESS_CONTROL_MAX_AGE,
18632  *     hdrs.ACCESS_CONTROL_REQUEST_HEADERS,
18633  */
18634   __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 15, __pyx_L1_error)
18635   __Pyx_GOTREF(__pyx_t_1);
18636   __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_ACCESS_CONTROL_EXPOSE_HEADERS); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 15, __pyx_L1_error)
18637   __Pyx_GOTREF(__pyx_t_11);
18638   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
18639 
18640   /* "aiohttp/_headers.pxi":16
18641  *     hdrs.ACCESS_CONTROL_ALLOW_ORIGIN,
18642  *     hdrs.ACCESS_CONTROL_EXPOSE_HEADERS,
18643  *     hdrs.ACCESS_CONTROL_MAX_AGE,             # <<<<<<<<<<<<<<
18644  *     hdrs.ACCESS_CONTROL_REQUEST_HEADERS,
18645  *     hdrs.ACCESS_CONTROL_REQUEST_METHOD,
18646  */
18647   __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 16, __pyx_L1_error)
18648   __Pyx_GOTREF(__pyx_t_1);
18649   __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_ACCESS_CONTROL_MAX_AGE); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 16, __pyx_L1_error)
18650   __Pyx_GOTREF(__pyx_t_12);
18651   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
18652 
18653   /* "aiohttp/_headers.pxi":17
18654  *     hdrs.ACCESS_CONTROL_EXPOSE_HEADERS,
18655  *     hdrs.ACCESS_CONTROL_MAX_AGE,
18656  *     hdrs.ACCESS_CONTROL_REQUEST_HEADERS,             # <<<<<<<<<<<<<<
18657  *     hdrs.ACCESS_CONTROL_REQUEST_METHOD,
18658  *     hdrs.AGE,
18659  */
18660   __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 17, __pyx_L1_error)
18661   __Pyx_GOTREF(__pyx_t_1);
18662   __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_ACCESS_CONTROL_REQUEST_HEADERS); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 17, __pyx_L1_error)
18663   __Pyx_GOTREF(__pyx_t_13);
18664   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
18665 
18666   /* "aiohttp/_headers.pxi":18
18667  *     hdrs.ACCESS_CONTROL_MAX_AGE,
18668  *     hdrs.ACCESS_CONTROL_REQUEST_HEADERS,
18669  *     hdrs.ACCESS_CONTROL_REQUEST_METHOD,             # <<<<<<<<<<<<<<
18670  *     hdrs.AGE,
18671  *     hdrs.ALLOW,
18672  */
18673   __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 18, __pyx_L1_error)
18674   __Pyx_GOTREF(__pyx_t_1);
18675   __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_ACCESS_CONTROL_REQUEST_METHOD); if (unlikely(!__pyx_t_14)) __PYX_ERR(5, 18, __pyx_L1_error)
18676   __Pyx_GOTREF(__pyx_t_14);
18677   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
18678 
18679   /* "aiohttp/_headers.pxi":19
18680  *     hdrs.ACCESS_CONTROL_REQUEST_HEADERS,
18681  *     hdrs.ACCESS_CONTROL_REQUEST_METHOD,
18682  *     hdrs.AGE,             # <<<<<<<<<<<<<<
18683  *     hdrs.ALLOW,
18684  *     hdrs.AUTHORIZATION,
18685  */
18686   __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 19, __pyx_L1_error)
18687   __Pyx_GOTREF(__pyx_t_1);
18688   __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_AGE); if (unlikely(!__pyx_t_15)) __PYX_ERR(5, 19, __pyx_L1_error)
18689   __Pyx_GOTREF(__pyx_t_15);
18690   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
18691 
18692   /* "aiohttp/_headers.pxi":20
18693  *     hdrs.ACCESS_CONTROL_REQUEST_METHOD,
18694  *     hdrs.AGE,
18695  *     hdrs.ALLOW,             # <<<<<<<<<<<<<<
18696  *     hdrs.AUTHORIZATION,
18697  *     hdrs.CACHE_CONTROL,
18698  */
18699   __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 20, __pyx_L1_error)
18700   __Pyx_GOTREF(__pyx_t_1);
18701   __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_ALLOW); if (unlikely(!__pyx_t_16)) __PYX_ERR(5, 20, __pyx_L1_error)
18702   __Pyx_GOTREF(__pyx_t_16);
18703   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
18704 
18705   /* "aiohttp/_headers.pxi":21
18706  *     hdrs.AGE,
18707  *     hdrs.ALLOW,
18708  *     hdrs.AUTHORIZATION,             # <<<<<<<<<<<<<<
18709  *     hdrs.CACHE_CONTROL,
18710  *     hdrs.CONNECTION,
18711  */
18712   __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 21, __pyx_L1_error)
18713   __Pyx_GOTREF(__pyx_t_1);
18714   __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_AUTHORIZATION); if (unlikely(!__pyx_t_17)) __PYX_ERR(5, 21, __pyx_L1_error)
18715   __Pyx_GOTREF(__pyx_t_17);
18716   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
18717 
18718   /* "aiohttp/_headers.pxi":22
18719  *     hdrs.ALLOW,
18720  *     hdrs.AUTHORIZATION,
18721  *     hdrs.CACHE_CONTROL,             # <<<<<<<<<<<<<<
18722  *     hdrs.CONNECTION,
18723  *     hdrs.CONTENT_DISPOSITION,
18724  */
18725   __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 22, __pyx_L1_error)
18726   __Pyx_GOTREF(__pyx_t_1);
18727   __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_CACHE_CONTROL); if (unlikely(!__pyx_t_18)) __PYX_ERR(5, 22, __pyx_L1_error)
18728   __Pyx_GOTREF(__pyx_t_18);
18729   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
18730 
18731   /* "aiohttp/_headers.pxi":23
18732  *     hdrs.AUTHORIZATION,
18733  *     hdrs.CACHE_CONTROL,
18734  *     hdrs.CONNECTION,             # <<<<<<<<<<<<<<
18735  *     hdrs.CONTENT_DISPOSITION,
18736  *     hdrs.CONTENT_ENCODING,
18737  */
18738   __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 23, __pyx_L1_error)
18739   __Pyx_GOTREF(__pyx_t_1);
18740   __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_CONNECTION); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 23, __pyx_L1_error)
18741   __Pyx_GOTREF(__pyx_t_19);
18742   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
18743 
18744   /* "aiohttp/_headers.pxi":24
18745  *     hdrs.CACHE_CONTROL,
18746  *     hdrs.CONNECTION,
18747  *     hdrs.CONTENT_DISPOSITION,             # <<<<<<<<<<<<<<
18748  *     hdrs.CONTENT_ENCODING,
18749  *     hdrs.CONTENT_LANGUAGE,
18750  */
18751   __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 24, __pyx_L1_error)
18752   __Pyx_GOTREF(__pyx_t_1);
18753   __pyx_t_20 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_CONTENT_DISPOSITION); if (unlikely(!__pyx_t_20)) __PYX_ERR(5, 24, __pyx_L1_error)
18754   __Pyx_GOTREF(__pyx_t_20);
18755   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
18756 
18757   /* "aiohttp/_headers.pxi":25
18758  *     hdrs.CONNECTION,
18759  *     hdrs.CONTENT_DISPOSITION,
18760  *     hdrs.CONTENT_ENCODING,             # <<<<<<<<<<<<<<
18761  *     hdrs.CONTENT_LANGUAGE,
18762  *     hdrs.CONTENT_LENGTH,
18763  */
18764   __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 25, __pyx_L1_error)
18765   __Pyx_GOTREF(__pyx_t_1);
18766   __pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_CONTENT_ENCODING); if (unlikely(!__pyx_t_21)) __PYX_ERR(5, 25, __pyx_L1_error)
18767   __Pyx_GOTREF(__pyx_t_21);
18768   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
18769 
18770   /* "aiohttp/_headers.pxi":26
18771  *     hdrs.CONTENT_DISPOSITION,
18772  *     hdrs.CONTENT_ENCODING,
18773  *     hdrs.CONTENT_LANGUAGE,             # <<<<<<<<<<<<<<
18774  *     hdrs.CONTENT_LENGTH,
18775  *     hdrs.CONTENT_LOCATION,
18776  */
18777   __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 26, __pyx_L1_error)
18778   __Pyx_GOTREF(__pyx_t_1);
18779   __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_CONTENT_LANGUAGE); if (unlikely(!__pyx_t_22)) __PYX_ERR(5, 26, __pyx_L1_error)
18780   __Pyx_GOTREF(__pyx_t_22);
18781   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
18782 
18783   /* "aiohttp/_headers.pxi":27
18784  *     hdrs.CONTENT_ENCODING,
18785  *     hdrs.CONTENT_LANGUAGE,
18786  *     hdrs.CONTENT_LENGTH,             # <<<<<<<<<<<<<<
18787  *     hdrs.CONTENT_LOCATION,
18788  *     hdrs.CONTENT_MD5,
18789  */
18790   __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 27, __pyx_L1_error)
18791   __Pyx_GOTREF(__pyx_t_1);
18792   __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_CONTENT_LENGTH); if (unlikely(!__pyx_t_23)) __PYX_ERR(5, 27, __pyx_L1_error)
18793   __Pyx_GOTREF(__pyx_t_23);
18794   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
18795 
18796   /* "aiohttp/_headers.pxi":28
18797  *     hdrs.CONTENT_LANGUAGE,
18798  *     hdrs.CONTENT_LENGTH,
18799  *     hdrs.CONTENT_LOCATION,             # <<<<<<<<<<<<<<
18800  *     hdrs.CONTENT_MD5,
18801  *     hdrs.CONTENT_RANGE,
18802  */
18803   __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 28, __pyx_L1_error)
18804   __Pyx_GOTREF(__pyx_t_1);
18805   __pyx_t_24 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_CONTENT_LOCATION); if (unlikely(!__pyx_t_24)) __PYX_ERR(5, 28, __pyx_L1_error)
18806   __Pyx_GOTREF(__pyx_t_24);
18807   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
18808 
18809   /* "aiohttp/_headers.pxi":29
18810  *     hdrs.CONTENT_LENGTH,
18811  *     hdrs.CONTENT_LOCATION,
18812  *     hdrs.CONTENT_MD5,             # <<<<<<<<<<<<<<
18813  *     hdrs.CONTENT_RANGE,
18814  *     hdrs.CONTENT_TRANSFER_ENCODING,
18815  */
18816   __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 29, __pyx_L1_error)
18817   __Pyx_GOTREF(__pyx_t_1);
18818   __pyx_t_25 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_CONTENT_MD5); if (unlikely(!__pyx_t_25)) __PYX_ERR(5, 29, __pyx_L1_error)
18819   __Pyx_GOTREF(__pyx_t_25);
18820   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
18821 
18822   /* "aiohttp/_headers.pxi":30
18823  *     hdrs.CONTENT_LOCATION,
18824  *     hdrs.CONTENT_MD5,
18825  *     hdrs.CONTENT_RANGE,             # <<<<<<<<<<<<<<
18826  *     hdrs.CONTENT_TRANSFER_ENCODING,
18827  *     hdrs.CONTENT_TYPE,
18828  */
18829   __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 30, __pyx_L1_error)
18830   __Pyx_GOTREF(__pyx_t_1);
18831   __pyx_t_26 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_CONTENT_RANGE); if (unlikely(!__pyx_t_26)) __PYX_ERR(5, 30, __pyx_L1_error)
18832   __Pyx_GOTREF(__pyx_t_26);
18833   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
18834 
18835   /* "aiohttp/_headers.pxi":31
18836  *     hdrs.CONTENT_MD5,
18837  *     hdrs.CONTENT_RANGE,
18838  *     hdrs.CONTENT_TRANSFER_ENCODING,             # <<<<<<<<<<<<<<
18839  *     hdrs.CONTENT_TYPE,
18840  *     hdrs.COOKIE,
18841  */
18842   __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 31, __pyx_L1_error)
18843   __Pyx_GOTREF(__pyx_t_1);
18844   __pyx_t_27 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_CONTENT_TRANSFER_ENCODING); if (unlikely(!__pyx_t_27)) __PYX_ERR(5, 31, __pyx_L1_error)
18845   __Pyx_GOTREF(__pyx_t_27);
18846   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
18847 
18848   /* "aiohttp/_headers.pxi":32
18849  *     hdrs.CONTENT_RANGE,
18850  *     hdrs.CONTENT_TRANSFER_ENCODING,
18851  *     hdrs.CONTENT_TYPE,             # <<<<<<<<<<<<<<
18852  *     hdrs.COOKIE,
18853  *     hdrs.DATE,
18854  */
18855   __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 32, __pyx_L1_error)
18856   __Pyx_GOTREF(__pyx_t_1);
18857   __pyx_t_28 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_CONTENT_TYPE); if (unlikely(!__pyx_t_28)) __PYX_ERR(5, 32, __pyx_L1_error)
18858   __Pyx_GOTREF(__pyx_t_28);
18859   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
18860 
18861   /* "aiohttp/_headers.pxi":33
18862  *     hdrs.CONTENT_TRANSFER_ENCODING,
18863  *     hdrs.CONTENT_TYPE,
18864  *     hdrs.COOKIE,             # <<<<<<<<<<<<<<
18865  *     hdrs.DATE,
18866  *     hdrs.DESTINATION,
18867  */
18868   __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 33, __pyx_L1_error)
18869   __Pyx_GOTREF(__pyx_t_1);
18870   __pyx_t_29 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_COOKIE); if (unlikely(!__pyx_t_29)) __PYX_ERR(5, 33, __pyx_L1_error)
18871   __Pyx_GOTREF(__pyx_t_29);
18872   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
18873 
18874   /* "aiohttp/_headers.pxi":34
18875  *     hdrs.CONTENT_TYPE,
18876  *     hdrs.COOKIE,
18877  *     hdrs.DATE,             # <<<<<<<<<<<<<<
18878  *     hdrs.DESTINATION,
18879  *     hdrs.DIGEST,
18880  */
18881   __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 34, __pyx_L1_error)
18882   __Pyx_GOTREF(__pyx_t_1);
18883   __pyx_t_30 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_DATE); if (unlikely(!__pyx_t_30)) __PYX_ERR(5, 34, __pyx_L1_error)
18884   __Pyx_GOTREF(__pyx_t_30);
18885   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
18886 
18887   /* "aiohttp/_headers.pxi":35
18888  *     hdrs.COOKIE,
18889  *     hdrs.DATE,
18890  *     hdrs.DESTINATION,             # <<<<<<<<<<<<<<
18891  *     hdrs.DIGEST,
18892  *     hdrs.ETAG,
18893  */
18894   __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 35, __pyx_L1_error)
18895   __Pyx_GOTREF(__pyx_t_1);
18896   __pyx_t_31 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_DESTINATION); if (unlikely(!__pyx_t_31)) __PYX_ERR(5, 35, __pyx_L1_error)
18897   __Pyx_GOTREF(__pyx_t_31);
18898   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
18899 
18900   /* "aiohttp/_headers.pxi":36
18901  *     hdrs.DATE,
18902  *     hdrs.DESTINATION,
18903  *     hdrs.DIGEST,             # <<<<<<<<<<<<<<
18904  *     hdrs.ETAG,
18905  *     hdrs.EXPECT,
18906  */
18907   __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 36, __pyx_L1_error)
18908   __Pyx_GOTREF(__pyx_t_1);
18909   __pyx_t_32 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_DIGEST); if (unlikely(!__pyx_t_32)) __PYX_ERR(5, 36, __pyx_L1_error)
18910   __Pyx_GOTREF(__pyx_t_32);
18911   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
18912 
18913   /* "aiohttp/_headers.pxi":37
18914  *     hdrs.DESTINATION,
18915  *     hdrs.DIGEST,
18916  *     hdrs.ETAG,             # <<<<<<<<<<<<<<
18917  *     hdrs.EXPECT,
18918  *     hdrs.EXPIRES,
18919  */
18920   __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 37, __pyx_L1_error)
18921   __Pyx_GOTREF(__pyx_t_1);
18922   __pyx_t_33 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_ETAG); if (unlikely(!__pyx_t_33)) __PYX_ERR(5, 37, __pyx_L1_error)
18923   __Pyx_GOTREF(__pyx_t_33);
18924   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
18925 
18926   /* "aiohttp/_headers.pxi":38
18927  *     hdrs.DIGEST,
18928  *     hdrs.ETAG,
18929  *     hdrs.EXPECT,             # <<<<<<<<<<<<<<
18930  *     hdrs.EXPIRES,
18931  *     hdrs.FORWARDED,
18932  */
18933   __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 38, __pyx_L1_error)
18934   __Pyx_GOTREF(__pyx_t_1);
18935   __pyx_t_34 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_EXPECT); if (unlikely(!__pyx_t_34)) __PYX_ERR(5, 38, __pyx_L1_error)
18936   __Pyx_GOTREF(__pyx_t_34);
18937   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
18938 
18939   /* "aiohttp/_headers.pxi":39
18940  *     hdrs.ETAG,
18941  *     hdrs.EXPECT,
18942  *     hdrs.EXPIRES,             # <<<<<<<<<<<<<<
18943  *     hdrs.FORWARDED,
18944  *     hdrs.FROM,
18945  */
18946   __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 39, __pyx_L1_error)
18947   __Pyx_GOTREF(__pyx_t_1);
18948   __pyx_t_35 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_EXPIRES); if (unlikely(!__pyx_t_35)) __PYX_ERR(5, 39, __pyx_L1_error)
18949   __Pyx_GOTREF(__pyx_t_35);
18950   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
18951 
18952   /* "aiohttp/_headers.pxi":40
18953  *     hdrs.EXPECT,
18954  *     hdrs.EXPIRES,
18955  *     hdrs.FORWARDED,             # <<<<<<<<<<<<<<
18956  *     hdrs.FROM,
18957  *     hdrs.HOST,
18958  */
18959   __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 40, __pyx_L1_error)
18960   __Pyx_GOTREF(__pyx_t_1);
18961   __pyx_t_36 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_FORWARDED); if (unlikely(!__pyx_t_36)) __PYX_ERR(5, 40, __pyx_L1_error)
18962   __Pyx_GOTREF(__pyx_t_36);
18963   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
18964 
18965   /* "aiohttp/_headers.pxi":41
18966  *     hdrs.EXPIRES,
18967  *     hdrs.FORWARDED,
18968  *     hdrs.FROM,             # <<<<<<<<<<<<<<
18969  *     hdrs.HOST,
18970  *     hdrs.IF_MATCH,
18971  */
18972   __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 41, __pyx_L1_error)
18973   __Pyx_GOTREF(__pyx_t_1);
18974   __pyx_t_37 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_FROM); if (unlikely(!__pyx_t_37)) __PYX_ERR(5, 41, __pyx_L1_error)
18975   __Pyx_GOTREF(__pyx_t_37);
18976   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
18977 
18978   /* "aiohttp/_headers.pxi":42
18979  *     hdrs.FORWARDED,
18980  *     hdrs.FROM,
18981  *     hdrs.HOST,             # <<<<<<<<<<<<<<
18982  *     hdrs.IF_MATCH,
18983  *     hdrs.IF_MODIFIED_SINCE,
18984  */
18985   __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 42, __pyx_L1_error)
18986   __Pyx_GOTREF(__pyx_t_1);
18987   __pyx_t_38 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_HOST); if (unlikely(!__pyx_t_38)) __PYX_ERR(5, 42, __pyx_L1_error)
18988   __Pyx_GOTREF(__pyx_t_38);
18989   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
18990 
18991   /* "aiohttp/_headers.pxi":43
18992  *     hdrs.FROM,
18993  *     hdrs.HOST,
18994  *     hdrs.IF_MATCH,             # <<<<<<<<<<<<<<
18995  *     hdrs.IF_MODIFIED_SINCE,
18996  *     hdrs.IF_NONE_MATCH,
18997  */
18998   __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 43, __pyx_L1_error)
18999   __Pyx_GOTREF(__pyx_t_1);
19000   __pyx_t_39 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_IF_MATCH); if (unlikely(!__pyx_t_39)) __PYX_ERR(5, 43, __pyx_L1_error)
19001   __Pyx_GOTREF(__pyx_t_39);
19002   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
19003 
19004   /* "aiohttp/_headers.pxi":44
19005  *     hdrs.HOST,
19006  *     hdrs.IF_MATCH,
19007  *     hdrs.IF_MODIFIED_SINCE,             # <<<<<<<<<<<<<<
19008  *     hdrs.IF_NONE_MATCH,
19009  *     hdrs.IF_RANGE,
19010  */
19011   __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 44, __pyx_L1_error)
19012   __Pyx_GOTREF(__pyx_t_1);
19013   __pyx_t_40 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_IF_MODIFIED_SINCE); if (unlikely(!__pyx_t_40)) __PYX_ERR(5, 44, __pyx_L1_error)
19014   __Pyx_GOTREF(__pyx_t_40);
19015   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
19016 
19017   /* "aiohttp/_headers.pxi":45
19018  *     hdrs.IF_MATCH,
19019  *     hdrs.IF_MODIFIED_SINCE,
19020  *     hdrs.IF_NONE_MATCH,             # <<<<<<<<<<<<<<
19021  *     hdrs.IF_RANGE,
19022  *     hdrs.IF_UNMODIFIED_SINCE,
19023  */
19024   __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 45, __pyx_L1_error)
19025   __Pyx_GOTREF(__pyx_t_1);
19026   __pyx_t_41 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_IF_NONE_MATCH); if (unlikely(!__pyx_t_41)) __PYX_ERR(5, 45, __pyx_L1_error)
19027   __Pyx_GOTREF(__pyx_t_41);
19028   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
19029 
19030   /* "aiohttp/_headers.pxi":46
19031  *     hdrs.IF_MODIFIED_SINCE,
19032  *     hdrs.IF_NONE_MATCH,
19033  *     hdrs.IF_RANGE,             # <<<<<<<<<<<<<<
19034  *     hdrs.IF_UNMODIFIED_SINCE,
19035  *     hdrs.KEEP_ALIVE,
19036  */
19037   __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 46, __pyx_L1_error)
19038   __Pyx_GOTREF(__pyx_t_1);
19039   __pyx_t_42 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_IF_RANGE); if (unlikely(!__pyx_t_42)) __PYX_ERR(5, 46, __pyx_L1_error)
19040   __Pyx_GOTREF(__pyx_t_42);
19041   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
19042 
19043   /* "aiohttp/_headers.pxi":47
19044  *     hdrs.IF_NONE_MATCH,
19045  *     hdrs.IF_RANGE,
19046  *     hdrs.IF_UNMODIFIED_SINCE,             # <<<<<<<<<<<<<<
19047  *     hdrs.KEEP_ALIVE,
19048  *     hdrs.LAST_EVENT_ID,
19049  */
19050   __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 47, __pyx_L1_error)
19051   __Pyx_GOTREF(__pyx_t_1);
19052   __pyx_t_43 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_IF_UNMODIFIED_SINCE); if (unlikely(!__pyx_t_43)) __PYX_ERR(5, 47, __pyx_L1_error)
19053   __Pyx_GOTREF(__pyx_t_43);
19054   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
19055 
19056   /* "aiohttp/_headers.pxi":48
19057  *     hdrs.IF_RANGE,
19058  *     hdrs.IF_UNMODIFIED_SINCE,
19059  *     hdrs.KEEP_ALIVE,             # <<<<<<<<<<<<<<
19060  *     hdrs.LAST_EVENT_ID,
19061  *     hdrs.LAST_MODIFIED,
19062  */
19063   __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 48, __pyx_L1_error)
19064   __Pyx_GOTREF(__pyx_t_1);
19065   __pyx_t_44 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_KEEP_ALIVE); if (unlikely(!__pyx_t_44)) __PYX_ERR(5, 48, __pyx_L1_error)
19066   __Pyx_GOTREF(__pyx_t_44);
19067   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
19068 
19069   /* "aiohttp/_headers.pxi":49
19070  *     hdrs.IF_UNMODIFIED_SINCE,
19071  *     hdrs.KEEP_ALIVE,
19072  *     hdrs.LAST_EVENT_ID,             # <<<<<<<<<<<<<<
19073  *     hdrs.LAST_MODIFIED,
19074  *     hdrs.LINK,
19075  */
19076   __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 49, __pyx_L1_error)
19077   __Pyx_GOTREF(__pyx_t_1);
19078   __pyx_t_45 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_LAST_EVENT_ID); if (unlikely(!__pyx_t_45)) __PYX_ERR(5, 49, __pyx_L1_error)
19079   __Pyx_GOTREF(__pyx_t_45);
19080   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
19081 
19082   /* "aiohttp/_headers.pxi":50
19083  *     hdrs.KEEP_ALIVE,
19084  *     hdrs.LAST_EVENT_ID,
19085  *     hdrs.LAST_MODIFIED,             # <<<<<<<<<<<<<<
19086  *     hdrs.LINK,
19087  *     hdrs.LOCATION,
19088  */
19089   __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 50, __pyx_L1_error)
19090   __Pyx_GOTREF(__pyx_t_1);
19091   __pyx_t_46 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_LAST_MODIFIED); if (unlikely(!__pyx_t_46)) __PYX_ERR(5, 50, __pyx_L1_error)
19092   __Pyx_GOTREF(__pyx_t_46);
19093   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
19094 
19095   /* "aiohttp/_headers.pxi":51
19096  *     hdrs.LAST_EVENT_ID,
19097  *     hdrs.LAST_MODIFIED,
19098  *     hdrs.LINK,             # <<<<<<<<<<<<<<
19099  *     hdrs.LOCATION,
19100  *     hdrs.MAX_FORWARDS,
19101  */
19102   __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 51, __pyx_L1_error)
19103   __Pyx_GOTREF(__pyx_t_1);
19104   __pyx_t_47 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_LINK); if (unlikely(!__pyx_t_47)) __PYX_ERR(5, 51, __pyx_L1_error)
19105   __Pyx_GOTREF(__pyx_t_47);
19106   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
19107 
19108   /* "aiohttp/_headers.pxi":52
19109  *     hdrs.LAST_MODIFIED,
19110  *     hdrs.LINK,
19111  *     hdrs.LOCATION,             # <<<<<<<<<<<<<<
19112  *     hdrs.MAX_FORWARDS,
19113  *     hdrs.ORIGIN,
19114  */
19115   __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 52, __pyx_L1_error)
19116   __Pyx_GOTREF(__pyx_t_1);
19117   __pyx_t_48 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_LOCATION); if (unlikely(!__pyx_t_48)) __PYX_ERR(5, 52, __pyx_L1_error)
19118   __Pyx_GOTREF(__pyx_t_48);
19119   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
19120 
19121   /* "aiohttp/_headers.pxi":53
19122  *     hdrs.LINK,
19123  *     hdrs.LOCATION,
19124  *     hdrs.MAX_FORWARDS,             # <<<<<<<<<<<<<<
19125  *     hdrs.ORIGIN,
19126  *     hdrs.PRAGMA,
19127  */
19128   __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 53, __pyx_L1_error)
19129   __Pyx_GOTREF(__pyx_t_1);
19130   __pyx_t_49 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_MAX_FORWARDS); if (unlikely(!__pyx_t_49)) __PYX_ERR(5, 53, __pyx_L1_error)
19131   __Pyx_GOTREF(__pyx_t_49);
19132   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
19133 
19134   /* "aiohttp/_headers.pxi":54
19135  *     hdrs.LOCATION,
19136  *     hdrs.MAX_FORWARDS,
19137  *     hdrs.ORIGIN,             # <<<<<<<<<<<<<<
19138  *     hdrs.PRAGMA,
19139  *     hdrs.PROXY_AUTHENTICATE,
19140  */
19141   __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 54, __pyx_L1_error)
19142   __Pyx_GOTREF(__pyx_t_1);
19143   __pyx_t_50 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_ORIGIN); if (unlikely(!__pyx_t_50)) __PYX_ERR(5, 54, __pyx_L1_error)
19144   __Pyx_GOTREF(__pyx_t_50);
19145   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
19146 
19147   /* "aiohttp/_headers.pxi":55
19148  *     hdrs.MAX_FORWARDS,
19149  *     hdrs.ORIGIN,
19150  *     hdrs.PRAGMA,             # <<<<<<<<<<<<<<
19151  *     hdrs.PROXY_AUTHENTICATE,
19152  *     hdrs.PROXY_AUTHORIZATION,
19153  */
19154   __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 55, __pyx_L1_error)
19155   __Pyx_GOTREF(__pyx_t_1);
19156   __pyx_t_51 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_PRAGMA); if (unlikely(!__pyx_t_51)) __PYX_ERR(5, 55, __pyx_L1_error)
19157   __Pyx_GOTREF(__pyx_t_51);
19158   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
19159 
19160   /* "aiohttp/_headers.pxi":56
19161  *     hdrs.ORIGIN,
19162  *     hdrs.PRAGMA,
19163  *     hdrs.PROXY_AUTHENTICATE,             # <<<<<<<<<<<<<<
19164  *     hdrs.PROXY_AUTHORIZATION,
19165  *     hdrs.RANGE,
19166  */
19167   __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 56, __pyx_L1_error)
19168   __Pyx_GOTREF(__pyx_t_1);
19169   __pyx_t_52 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_PROXY_AUTHENTICATE); if (unlikely(!__pyx_t_52)) __PYX_ERR(5, 56, __pyx_L1_error)
19170   __Pyx_GOTREF(__pyx_t_52);
19171   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
19172 
19173   /* "aiohttp/_headers.pxi":57
19174  *     hdrs.PRAGMA,
19175  *     hdrs.PROXY_AUTHENTICATE,
19176  *     hdrs.PROXY_AUTHORIZATION,             # <<<<<<<<<<<<<<
19177  *     hdrs.RANGE,
19178  *     hdrs.REFERER,
19179  */
19180   __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 57, __pyx_L1_error)
19181   __Pyx_GOTREF(__pyx_t_1);
19182   __pyx_t_53 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_PROXY_AUTHORIZATION); if (unlikely(!__pyx_t_53)) __PYX_ERR(5, 57, __pyx_L1_error)
19183   __Pyx_GOTREF(__pyx_t_53);
19184   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
19185 
19186   /* "aiohttp/_headers.pxi":58
19187  *     hdrs.PROXY_AUTHENTICATE,
19188  *     hdrs.PROXY_AUTHORIZATION,
19189  *     hdrs.RANGE,             # <<<<<<<<<<<<<<
19190  *     hdrs.REFERER,
19191  *     hdrs.RETRY_AFTER,
19192  */
19193   __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 58, __pyx_L1_error)
19194   __Pyx_GOTREF(__pyx_t_1);
19195   __pyx_t_54 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_RANGE); if (unlikely(!__pyx_t_54)) __PYX_ERR(5, 58, __pyx_L1_error)
19196   __Pyx_GOTREF(__pyx_t_54);
19197   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
19198 
19199   /* "aiohttp/_headers.pxi":59
19200  *     hdrs.PROXY_AUTHORIZATION,
19201  *     hdrs.RANGE,
19202  *     hdrs.REFERER,             # <<<<<<<<<<<<<<
19203  *     hdrs.RETRY_AFTER,
19204  *     hdrs.SEC_WEBSOCKET_ACCEPT,
19205  */
19206   __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 59, __pyx_L1_error)
19207   __Pyx_GOTREF(__pyx_t_1);
19208   __pyx_t_55 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_REFERER); if (unlikely(!__pyx_t_55)) __PYX_ERR(5, 59, __pyx_L1_error)
19209   __Pyx_GOTREF(__pyx_t_55);
19210   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
19211 
19212   /* "aiohttp/_headers.pxi":60
19213  *     hdrs.RANGE,
19214  *     hdrs.REFERER,
19215  *     hdrs.RETRY_AFTER,             # <<<<<<<<<<<<<<
19216  *     hdrs.SEC_WEBSOCKET_ACCEPT,
19217  *     hdrs.SEC_WEBSOCKET_EXTENSIONS,
19218  */
19219   __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 60, __pyx_L1_error)
19220   __Pyx_GOTREF(__pyx_t_1);
19221   __pyx_t_56 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_RETRY_AFTER); if (unlikely(!__pyx_t_56)) __PYX_ERR(5, 60, __pyx_L1_error)
19222   __Pyx_GOTREF(__pyx_t_56);
19223   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
19224 
19225   /* "aiohttp/_headers.pxi":61
19226  *     hdrs.REFERER,
19227  *     hdrs.RETRY_AFTER,
19228  *     hdrs.SEC_WEBSOCKET_ACCEPT,             # <<<<<<<<<<<<<<
19229  *     hdrs.SEC_WEBSOCKET_EXTENSIONS,
19230  *     hdrs.SEC_WEBSOCKET_KEY,
19231  */
19232   __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 61, __pyx_L1_error)
19233   __Pyx_GOTREF(__pyx_t_1);
19234   __pyx_t_57 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_SEC_WEBSOCKET_ACCEPT); if (unlikely(!__pyx_t_57)) __PYX_ERR(5, 61, __pyx_L1_error)
19235   __Pyx_GOTREF(__pyx_t_57);
19236   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
19237 
19238   /* "aiohttp/_headers.pxi":62
19239  *     hdrs.RETRY_AFTER,
19240  *     hdrs.SEC_WEBSOCKET_ACCEPT,
19241  *     hdrs.SEC_WEBSOCKET_EXTENSIONS,             # <<<<<<<<<<<<<<
19242  *     hdrs.SEC_WEBSOCKET_KEY,
19243  *     hdrs.SEC_WEBSOCKET_KEY1,
19244  */
19245   __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 62, __pyx_L1_error)
19246   __Pyx_GOTREF(__pyx_t_1);
19247   __pyx_t_58 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_SEC_WEBSOCKET_EXTENSIONS); if (unlikely(!__pyx_t_58)) __PYX_ERR(5, 62, __pyx_L1_error)
19248   __Pyx_GOTREF(__pyx_t_58);
19249   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
19250 
19251   /* "aiohttp/_headers.pxi":63
19252  *     hdrs.SEC_WEBSOCKET_ACCEPT,
19253  *     hdrs.SEC_WEBSOCKET_EXTENSIONS,
19254  *     hdrs.SEC_WEBSOCKET_KEY,             # <<<<<<<<<<<<<<
19255  *     hdrs.SEC_WEBSOCKET_KEY1,
19256  *     hdrs.SEC_WEBSOCKET_PROTOCOL,
19257  */
19258   __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 63, __pyx_L1_error)
19259   __Pyx_GOTREF(__pyx_t_1);
19260   __pyx_t_59 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_SEC_WEBSOCKET_KEY); if (unlikely(!__pyx_t_59)) __PYX_ERR(5, 63, __pyx_L1_error)
19261   __Pyx_GOTREF(__pyx_t_59);
19262   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
19263 
19264   /* "aiohttp/_headers.pxi":64
19265  *     hdrs.SEC_WEBSOCKET_EXTENSIONS,
19266  *     hdrs.SEC_WEBSOCKET_KEY,
19267  *     hdrs.SEC_WEBSOCKET_KEY1,             # <<<<<<<<<<<<<<
19268  *     hdrs.SEC_WEBSOCKET_PROTOCOL,
19269  *     hdrs.SEC_WEBSOCKET_VERSION,
19270  */
19271   __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 64, __pyx_L1_error)
19272   __Pyx_GOTREF(__pyx_t_1);
19273   __pyx_t_60 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_SEC_WEBSOCKET_KEY1); if (unlikely(!__pyx_t_60)) __PYX_ERR(5, 64, __pyx_L1_error)
19274   __Pyx_GOTREF(__pyx_t_60);
19275   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
19276 
19277   /* "aiohttp/_headers.pxi":65
19278  *     hdrs.SEC_WEBSOCKET_KEY,
19279  *     hdrs.SEC_WEBSOCKET_KEY1,
19280  *     hdrs.SEC_WEBSOCKET_PROTOCOL,             # <<<<<<<<<<<<<<
19281  *     hdrs.SEC_WEBSOCKET_VERSION,
19282  *     hdrs.SERVER,
19283  */
19284   __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 65, __pyx_L1_error)
19285   __Pyx_GOTREF(__pyx_t_1);
19286   __pyx_t_61 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_SEC_WEBSOCKET_PROTOCOL); if (unlikely(!__pyx_t_61)) __PYX_ERR(5, 65, __pyx_L1_error)
19287   __Pyx_GOTREF(__pyx_t_61);
19288   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
19289 
19290   /* "aiohttp/_headers.pxi":66
19291  *     hdrs.SEC_WEBSOCKET_KEY1,
19292  *     hdrs.SEC_WEBSOCKET_PROTOCOL,
19293  *     hdrs.SEC_WEBSOCKET_VERSION,             # <<<<<<<<<<<<<<
19294  *     hdrs.SERVER,
19295  *     hdrs.SET_COOKIE,
19296  */
19297   __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 66, __pyx_L1_error)
19298   __Pyx_GOTREF(__pyx_t_1);
19299   __pyx_t_62 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_SEC_WEBSOCKET_VERSION); if (unlikely(!__pyx_t_62)) __PYX_ERR(5, 66, __pyx_L1_error)
19300   __Pyx_GOTREF(__pyx_t_62);
19301   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
19302 
19303   /* "aiohttp/_headers.pxi":67
19304  *     hdrs.SEC_WEBSOCKET_PROTOCOL,
19305  *     hdrs.SEC_WEBSOCKET_VERSION,
19306  *     hdrs.SERVER,             # <<<<<<<<<<<<<<
19307  *     hdrs.SET_COOKIE,
19308  *     hdrs.TE,
19309  */
19310   __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 67, __pyx_L1_error)
19311   __Pyx_GOTREF(__pyx_t_1);
19312   __pyx_t_63 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_SERVER); if (unlikely(!__pyx_t_63)) __PYX_ERR(5, 67, __pyx_L1_error)
19313   __Pyx_GOTREF(__pyx_t_63);
19314   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
19315 
19316   /* "aiohttp/_headers.pxi":68
19317  *     hdrs.SEC_WEBSOCKET_VERSION,
19318  *     hdrs.SERVER,
19319  *     hdrs.SET_COOKIE,             # <<<<<<<<<<<<<<
19320  *     hdrs.TE,
19321  *     hdrs.TRAILER,
19322  */
19323   __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 68, __pyx_L1_error)
19324   __Pyx_GOTREF(__pyx_t_1);
19325   __pyx_t_64 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_SET_COOKIE); if (unlikely(!__pyx_t_64)) __PYX_ERR(5, 68, __pyx_L1_error)
19326   __Pyx_GOTREF(__pyx_t_64);
19327   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
19328 
19329   /* "aiohttp/_headers.pxi":69
19330  *     hdrs.SERVER,
19331  *     hdrs.SET_COOKIE,
19332  *     hdrs.TE,             # <<<<<<<<<<<<<<
19333  *     hdrs.TRAILER,
19334  *     hdrs.TRANSFER_ENCODING,
19335  */
19336   __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 69, __pyx_L1_error)
19337   __Pyx_GOTREF(__pyx_t_1);
19338   __pyx_t_65 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_TE); if (unlikely(!__pyx_t_65)) __PYX_ERR(5, 69, __pyx_L1_error)
19339   __Pyx_GOTREF(__pyx_t_65);
19340   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
19341 
19342   /* "aiohttp/_headers.pxi":70
19343  *     hdrs.SET_COOKIE,
19344  *     hdrs.TE,
19345  *     hdrs.TRAILER,             # <<<<<<<<<<<<<<
19346  *     hdrs.TRANSFER_ENCODING,
19347  *     hdrs.URI,
19348  */
19349   __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 70, __pyx_L1_error)
19350   __Pyx_GOTREF(__pyx_t_1);
19351   __pyx_t_66 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_TRAILER); if (unlikely(!__pyx_t_66)) __PYX_ERR(5, 70, __pyx_L1_error)
19352   __Pyx_GOTREF(__pyx_t_66);
19353   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
19354 
19355   /* "aiohttp/_headers.pxi":71
19356  *     hdrs.TE,
19357  *     hdrs.TRAILER,
19358  *     hdrs.TRANSFER_ENCODING,             # <<<<<<<<<<<<<<
19359  *     hdrs.URI,
19360  *     hdrs.UPGRADE,
19361  */
19362   __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 71, __pyx_L1_error)
19363   __Pyx_GOTREF(__pyx_t_1);
19364   __pyx_t_67 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_TRANSFER_ENCODING); if (unlikely(!__pyx_t_67)) __PYX_ERR(5, 71, __pyx_L1_error)
19365   __Pyx_GOTREF(__pyx_t_67);
19366   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
19367 
19368   /* "aiohttp/_headers.pxi":72
19369  *     hdrs.TRAILER,
19370  *     hdrs.TRANSFER_ENCODING,
19371  *     hdrs.URI,             # <<<<<<<<<<<<<<
19372  *     hdrs.UPGRADE,
19373  *     hdrs.USER_AGENT,
19374  */
19375   __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 72, __pyx_L1_error)
19376   __Pyx_GOTREF(__pyx_t_1);
19377   __pyx_t_68 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_URI); if (unlikely(!__pyx_t_68)) __PYX_ERR(5, 72, __pyx_L1_error)
19378   __Pyx_GOTREF(__pyx_t_68);
19379   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
19380 
19381   /* "aiohttp/_headers.pxi":73
19382  *     hdrs.TRANSFER_ENCODING,
19383  *     hdrs.URI,
19384  *     hdrs.UPGRADE,             # <<<<<<<<<<<<<<
19385  *     hdrs.USER_AGENT,
19386  *     hdrs.VARY,
19387  */
19388   __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 73, __pyx_L1_error)
19389   __Pyx_GOTREF(__pyx_t_1);
19390   __pyx_t_69 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_UPGRADE); if (unlikely(!__pyx_t_69)) __PYX_ERR(5, 73, __pyx_L1_error)
19391   __Pyx_GOTREF(__pyx_t_69);
19392   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
19393 
19394   /* "aiohttp/_headers.pxi":74
19395  *     hdrs.URI,
19396  *     hdrs.UPGRADE,
19397  *     hdrs.USER_AGENT,             # <<<<<<<<<<<<<<
19398  *     hdrs.VARY,
19399  *     hdrs.VIA,
19400  */
19401   __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 74, __pyx_L1_error)
19402   __Pyx_GOTREF(__pyx_t_1);
19403   __pyx_t_70 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_USER_AGENT); if (unlikely(!__pyx_t_70)) __PYX_ERR(5, 74, __pyx_L1_error)
19404   __Pyx_GOTREF(__pyx_t_70);
19405   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
19406 
19407   /* "aiohttp/_headers.pxi":75
19408  *     hdrs.UPGRADE,
19409  *     hdrs.USER_AGENT,
19410  *     hdrs.VARY,             # <<<<<<<<<<<<<<
19411  *     hdrs.VIA,
19412  *     hdrs.WWW_AUTHENTICATE,
19413  */
19414   __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 75, __pyx_L1_error)
19415   __Pyx_GOTREF(__pyx_t_1);
19416   __pyx_t_71 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_VARY); if (unlikely(!__pyx_t_71)) __PYX_ERR(5, 75, __pyx_L1_error)
19417   __Pyx_GOTREF(__pyx_t_71);
19418   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
19419 
19420   /* "aiohttp/_headers.pxi":76
19421  *     hdrs.USER_AGENT,
19422  *     hdrs.VARY,
19423  *     hdrs.VIA,             # <<<<<<<<<<<<<<
19424  *     hdrs.WWW_AUTHENTICATE,
19425  *     hdrs.WANT_DIGEST,
19426  */
19427   __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 76, __pyx_L1_error)
19428   __Pyx_GOTREF(__pyx_t_1);
19429   __pyx_t_72 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_VIA); if (unlikely(!__pyx_t_72)) __PYX_ERR(5, 76, __pyx_L1_error)
19430   __Pyx_GOTREF(__pyx_t_72);
19431   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
19432 
19433   /* "aiohttp/_headers.pxi":77
19434  *     hdrs.VARY,
19435  *     hdrs.VIA,
19436  *     hdrs.WWW_AUTHENTICATE,             # <<<<<<<<<<<<<<
19437  *     hdrs.WANT_DIGEST,
19438  *     hdrs.WARNING,
19439  */
19440   __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 77, __pyx_L1_error)
19441   __Pyx_GOTREF(__pyx_t_1);
19442   __pyx_t_73 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_WWW_AUTHENTICATE); if (unlikely(!__pyx_t_73)) __PYX_ERR(5, 77, __pyx_L1_error)
19443   __Pyx_GOTREF(__pyx_t_73);
19444   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
19445 
19446   /* "aiohttp/_headers.pxi":78
19447  *     hdrs.VIA,
19448  *     hdrs.WWW_AUTHENTICATE,
19449  *     hdrs.WANT_DIGEST,             # <<<<<<<<<<<<<<
19450  *     hdrs.WARNING,
19451  *     hdrs.X_FORWARDED_FOR,
19452  */
19453   __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 78, __pyx_L1_error)
19454   __Pyx_GOTREF(__pyx_t_1);
19455   __pyx_t_74 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_WANT_DIGEST); if (unlikely(!__pyx_t_74)) __PYX_ERR(5, 78, __pyx_L1_error)
19456   __Pyx_GOTREF(__pyx_t_74);
19457   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
19458 
19459   /* "aiohttp/_headers.pxi":79
19460  *     hdrs.WWW_AUTHENTICATE,
19461  *     hdrs.WANT_DIGEST,
19462  *     hdrs.WARNING,             # <<<<<<<<<<<<<<
19463  *     hdrs.X_FORWARDED_FOR,
19464  *     hdrs.X_FORWARDED_HOST,
19465  */
19466   __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 79, __pyx_L1_error)
19467   __Pyx_GOTREF(__pyx_t_1);
19468   __pyx_t_75 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_WARNING); if (unlikely(!__pyx_t_75)) __PYX_ERR(5, 79, __pyx_L1_error)
19469   __Pyx_GOTREF(__pyx_t_75);
19470   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
19471 
19472   /* "aiohttp/_headers.pxi":80
19473  *     hdrs.WANT_DIGEST,
19474  *     hdrs.WARNING,
19475  *     hdrs.X_FORWARDED_FOR,             # <<<<<<<<<<<<<<
19476  *     hdrs.X_FORWARDED_HOST,
19477  *     hdrs.X_FORWARDED_PROTO,
19478  */
19479   __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 80, __pyx_L1_error)
19480   __Pyx_GOTREF(__pyx_t_1);
19481   __pyx_t_76 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_X_FORWARDED_FOR); if (unlikely(!__pyx_t_76)) __PYX_ERR(5, 80, __pyx_L1_error)
19482   __Pyx_GOTREF(__pyx_t_76);
19483   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
19484 
19485   /* "aiohttp/_headers.pxi":81
19486  *     hdrs.WARNING,
19487  *     hdrs.X_FORWARDED_FOR,
19488  *     hdrs.X_FORWARDED_HOST,             # <<<<<<<<<<<<<<
19489  *     hdrs.X_FORWARDED_PROTO,
19490  * )
19491  */
19492   __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 81, __pyx_L1_error)
19493   __Pyx_GOTREF(__pyx_t_1);
19494   __pyx_t_77 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_X_FORWARDED_HOST); if (unlikely(!__pyx_t_77)) __PYX_ERR(5, 81, __pyx_L1_error)
19495   __Pyx_GOTREF(__pyx_t_77);
19496   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
19497 
19498   /* "aiohttp/_headers.pxi":82
19499  *     hdrs.X_FORWARDED_FOR,
19500  *     hdrs.X_FORWARDED_HOST,
19501  *     hdrs.X_FORWARDED_PROTO,             # <<<<<<<<<<<<<<
19502  * )
19503  */
19504   __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 82, __pyx_L1_error)
19505   __Pyx_GOTREF(__pyx_t_1);
19506   __pyx_t_78 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_X_FORWARDED_PROTO); if (unlikely(!__pyx_t_78)) __PYX_ERR(5, 82, __pyx_L1_error)
19507   __Pyx_GOTREF(__pyx_t_78);
19508   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
19509 
19510   /* "aiohttp/_headers.pxi":6
19511  * from . import hdrs
19512  * cdef tuple headers = (
19513  *     hdrs.ACCEPT,             # <<<<<<<<<<<<<<
19514  *     hdrs.ACCEPT_CHARSET,
19515  *     hdrs.ACCEPT_ENCODING,
19516  */
19517   __pyx_t_1 = PyTuple_New(77); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6, __pyx_L1_error)
19518   __Pyx_GOTREF(__pyx_t_1);
19519   __Pyx_GIVEREF(__pyx_t_2);
19520   PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
19521   __Pyx_GIVEREF(__pyx_t_3);
19522   PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_3);
19523   __Pyx_GIVEREF(__pyx_t_4);
19524   PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_4);
19525   __Pyx_GIVEREF(__pyx_t_5);
19526   PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_t_5);
19527   __Pyx_GIVEREF(__pyx_t_6);
19528   PyTuple_SET_ITEM(__pyx_t_1, 4, __pyx_t_6);
19529   __Pyx_GIVEREF(__pyx_t_7);
19530   PyTuple_SET_ITEM(__pyx_t_1, 5, __pyx_t_7);
19531   __Pyx_GIVEREF(__pyx_t_8);
19532   PyTuple_SET_ITEM(__pyx_t_1, 6, __pyx_t_8);
19533   __Pyx_GIVEREF(__pyx_t_9);
19534   PyTuple_SET_ITEM(__pyx_t_1, 7, __pyx_t_9);
19535   __Pyx_GIVEREF(__pyx_t_10);
19536   PyTuple_SET_ITEM(__pyx_t_1, 8, __pyx_t_10);
19537   __Pyx_GIVEREF(__pyx_t_11);
19538   PyTuple_SET_ITEM(__pyx_t_1, 9, __pyx_t_11);
19539   __Pyx_GIVEREF(__pyx_t_12);
19540   PyTuple_SET_ITEM(__pyx_t_1, 10, __pyx_t_12);
19541   __Pyx_GIVEREF(__pyx_t_13);
19542   PyTuple_SET_ITEM(__pyx_t_1, 11, __pyx_t_13);
19543   __Pyx_GIVEREF(__pyx_t_14);
19544   PyTuple_SET_ITEM(__pyx_t_1, 12, __pyx_t_14);
19545   __Pyx_GIVEREF(__pyx_t_15);
19546   PyTuple_SET_ITEM(__pyx_t_1, 13, __pyx_t_15);
19547   __Pyx_GIVEREF(__pyx_t_16);
19548   PyTuple_SET_ITEM(__pyx_t_1, 14, __pyx_t_16);
19549   __Pyx_GIVEREF(__pyx_t_17);
19550   PyTuple_SET_ITEM(__pyx_t_1, 15, __pyx_t_17);
19551   __Pyx_GIVEREF(__pyx_t_18);
19552   PyTuple_SET_ITEM(__pyx_t_1, 16, __pyx_t_18);
19553   __Pyx_GIVEREF(__pyx_t_19);
19554   PyTuple_SET_ITEM(__pyx_t_1, 17, __pyx_t_19);
19555   __Pyx_GIVEREF(__pyx_t_20);
19556   PyTuple_SET_ITEM(__pyx_t_1, 18, __pyx_t_20);
19557   __Pyx_GIVEREF(__pyx_t_21);
19558   PyTuple_SET_ITEM(__pyx_t_1, 19, __pyx_t_21);
19559   __Pyx_GIVEREF(__pyx_t_22);
19560   PyTuple_SET_ITEM(__pyx_t_1, 20, __pyx_t_22);
19561   __Pyx_GIVEREF(__pyx_t_23);
19562   PyTuple_SET_ITEM(__pyx_t_1, 21, __pyx_t_23);
19563   __Pyx_GIVEREF(__pyx_t_24);
19564   PyTuple_SET_ITEM(__pyx_t_1, 22, __pyx_t_24);
19565   __Pyx_GIVEREF(__pyx_t_25);
19566   PyTuple_SET_ITEM(__pyx_t_1, 23, __pyx_t_25);
19567   __Pyx_GIVEREF(__pyx_t_26);
19568   PyTuple_SET_ITEM(__pyx_t_1, 24, __pyx_t_26);
19569   __Pyx_GIVEREF(__pyx_t_27);
19570   PyTuple_SET_ITEM(__pyx_t_1, 25, __pyx_t_27);
19571   __Pyx_GIVEREF(__pyx_t_28);
19572   PyTuple_SET_ITEM(__pyx_t_1, 26, __pyx_t_28);
19573   __Pyx_GIVEREF(__pyx_t_29);
19574   PyTuple_SET_ITEM(__pyx_t_1, 27, __pyx_t_29);
19575   __Pyx_GIVEREF(__pyx_t_30);
19576   PyTuple_SET_ITEM(__pyx_t_1, 28, __pyx_t_30);
19577   __Pyx_GIVEREF(__pyx_t_31);
19578   PyTuple_SET_ITEM(__pyx_t_1, 29, __pyx_t_31);
19579   __Pyx_GIVEREF(__pyx_t_32);
19580   PyTuple_SET_ITEM(__pyx_t_1, 30, __pyx_t_32);
19581   __Pyx_GIVEREF(__pyx_t_33);
19582   PyTuple_SET_ITEM(__pyx_t_1, 31, __pyx_t_33);
19583   __Pyx_GIVEREF(__pyx_t_34);
19584   PyTuple_SET_ITEM(__pyx_t_1, 32, __pyx_t_34);
19585   __Pyx_GIVEREF(__pyx_t_35);
19586   PyTuple_SET_ITEM(__pyx_t_1, 33, __pyx_t_35);
19587   __Pyx_GIVEREF(__pyx_t_36);
19588   PyTuple_SET_ITEM(__pyx_t_1, 34, __pyx_t_36);
19589   __Pyx_GIVEREF(__pyx_t_37);
19590   PyTuple_SET_ITEM(__pyx_t_1, 35, __pyx_t_37);
19591   __Pyx_GIVEREF(__pyx_t_38);
19592   PyTuple_SET_ITEM(__pyx_t_1, 36, __pyx_t_38);
19593   __Pyx_GIVEREF(__pyx_t_39);
19594   PyTuple_SET_ITEM(__pyx_t_1, 37, __pyx_t_39);
19595   __Pyx_GIVEREF(__pyx_t_40);
19596   PyTuple_SET_ITEM(__pyx_t_1, 38, __pyx_t_40);
19597   __Pyx_GIVEREF(__pyx_t_41);
19598   PyTuple_SET_ITEM(__pyx_t_1, 39, __pyx_t_41);
19599   __Pyx_GIVEREF(__pyx_t_42);
19600   PyTuple_SET_ITEM(__pyx_t_1, 40, __pyx_t_42);
19601   __Pyx_GIVEREF(__pyx_t_43);
19602   PyTuple_SET_ITEM(__pyx_t_1, 41, __pyx_t_43);
19603   __Pyx_GIVEREF(__pyx_t_44);
19604   PyTuple_SET_ITEM(__pyx_t_1, 42, __pyx_t_44);
19605   __Pyx_GIVEREF(__pyx_t_45);
19606   PyTuple_SET_ITEM(__pyx_t_1, 43, __pyx_t_45);
19607   __Pyx_GIVEREF(__pyx_t_46);
19608   PyTuple_SET_ITEM(__pyx_t_1, 44, __pyx_t_46);
19609   __Pyx_GIVEREF(__pyx_t_47);
19610   PyTuple_SET_ITEM(__pyx_t_1, 45, __pyx_t_47);
19611   __Pyx_GIVEREF(__pyx_t_48);
19612   PyTuple_SET_ITEM(__pyx_t_1, 46, __pyx_t_48);
19613   __Pyx_GIVEREF(__pyx_t_49);
19614   PyTuple_SET_ITEM(__pyx_t_1, 47, __pyx_t_49);
19615   __Pyx_GIVEREF(__pyx_t_50);
19616   PyTuple_SET_ITEM(__pyx_t_1, 48, __pyx_t_50);
19617   __Pyx_GIVEREF(__pyx_t_51);
19618   PyTuple_SET_ITEM(__pyx_t_1, 49, __pyx_t_51);
19619   __Pyx_GIVEREF(__pyx_t_52);
19620   PyTuple_SET_ITEM(__pyx_t_1, 50, __pyx_t_52);
19621   __Pyx_GIVEREF(__pyx_t_53);
19622   PyTuple_SET_ITEM(__pyx_t_1, 51, __pyx_t_53);
19623   __Pyx_GIVEREF(__pyx_t_54);
19624   PyTuple_SET_ITEM(__pyx_t_1, 52, __pyx_t_54);
19625   __Pyx_GIVEREF(__pyx_t_55);
19626   PyTuple_SET_ITEM(__pyx_t_1, 53, __pyx_t_55);
19627   __Pyx_GIVEREF(__pyx_t_56);
19628   PyTuple_SET_ITEM(__pyx_t_1, 54, __pyx_t_56);
19629   __Pyx_GIVEREF(__pyx_t_57);
19630   PyTuple_SET_ITEM(__pyx_t_1, 55, __pyx_t_57);
19631   __Pyx_GIVEREF(__pyx_t_58);
19632   PyTuple_SET_ITEM(__pyx_t_1, 56, __pyx_t_58);
19633   __Pyx_GIVEREF(__pyx_t_59);
19634   PyTuple_SET_ITEM(__pyx_t_1, 57, __pyx_t_59);
19635   __Pyx_GIVEREF(__pyx_t_60);
19636   PyTuple_SET_ITEM(__pyx_t_1, 58, __pyx_t_60);
19637   __Pyx_GIVEREF(__pyx_t_61);
19638   PyTuple_SET_ITEM(__pyx_t_1, 59, __pyx_t_61);
19639   __Pyx_GIVEREF(__pyx_t_62);
19640   PyTuple_SET_ITEM(__pyx_t_1, 60, __pyx_t_62);
19641   __Pyx_GIVEREF(__pyx_t_63);
19642   PyTuple_SET_ITEM(__pyx_t_1, 61, __pyx_t_63);
19643   __Pyx_GIVEREF(__pyx_t_64);
19644   PyTuple_SET_ITEM(__pyx_t_1, 62, __pyx_t_64);
19645   __Pyx_GIVEREF(__pyx_t_65);
19646   PyTuple_SET_ITEM(__pyx_t_1, 63, __pyx_t_65);
19647   __Pyx_GIVEREF(__pyx_t_66);
19648   PyTuple_SET_ITEM(__pyx_t_1, 64, __pyx_t_66);
19649   __Pyx_GIVEREF(__pyx_t_67);
19650   PyTuple_SET_ITEM(__pyx_t_1, 65, __pyx_t_67);
19651   __Pyx_GIVEREF(__pyx_t_68);
19652   PyTuple_SET_ITEM(__pyx_t_1, 66, __pyx_t_68);
19653   __Pyx_GIVEREF(__pyx_t_69);
19654   PyTuple_SET_ITEM(__pyx_t_1, 67, __pyx_t_69);
19655   __Pyx_GIVEREF(__pyx_t_70);
19656   PyTuple_SET_ITEM(__pyx_t_1, 68, __pyx_t_70);
19657   __Pyx_GIVEREF(__pyx_t_71);
19658   PyTuple_SET_ITEM(__pyx_t_1, 69, __pyx_t_71);
19659   __Pyx_GIVEREF(__pyx_t_72);
19660   PyTuple_SET_ITEM(__pyx_t_1, 70, __pyx_t_72);
19661   __Pyx_GIVEREF(__pyx_t_73);
19662   PyTuple_SET_ITEM(__pyx_t_1, 71, __pyx_t_73);
19663   __Pyx_GIVEREF(__pyx_t_74);
19664   PyTuple_SET_ITEM(__pyx_t_1, 72, __pyx_t_74);
19665   __Pyx_GIVEREF(__pyx_t_75);
19666   PyTuple_SET_ITEM(__pyx_t_1, 73, __pyx_t_75);
19667   __Pyx_GIVEREF(__pyx_t_76);
19668   PyTuple_SET_ITEM(__pyx_t_1, 74, __pyx_t_76);
19669   __Pyx_GIVEREF(__pyx_t_77);
19670   PyTuple_SET_ITEM(__pyx_t_1, 75, __pyx_t_77);
19671   __Pyx_GIVEREF(__pyx_t_78);
19672   PyTuple_SET_ITEM(__pyx_t_1, 76, __pyx_t_78);
19673   __pyx_t_2 = 0;
19674   __pyx_t_3 = 0;
19675   __pyx_t_4 = 0;
19676   __pyx_t_5 = 0;
19677   __pyx_t_6 = 0;
19678   __pyx_t_7 = 0;
19679   __pyx_t_8 = 0;
19680   __pyx_t_9 = 0;
19681   __pyx_t_10 = 0;
19682   __pyx_t_11 = 0;
19683   __pyx_t_12 = 0;
19684   __pyx_t_13 = 0;
19685   __pyx_t_14 = 0;
19686   __pyx_t_15 = 0;
19687   __pyx_t_16 = 0;
19688   __pyx_t_17 = 0;
19689   __pyx_t_18 = 0;
19690   __pyx_t_19 = 0;
19691   __pyx_t_20 = 0;
19692   __pyx_t_21 = 0;
19693   __pyx_t_22 = 0;
19694   __pyx_t_23 = 0;
19695   __pyx_t_24 = 0;
19696   __pyx_t_25 = 0;
19697   __pyx_t_26 = 0;
19698   __pyx_t_27 = 0;
19699   __pyx_t_28 = 0;
19700   __pyx_t_29 = 0;
19701   __pyx_t_30 = 0;
19702   __pyx_t_31 = 0;
19703   __pyx_t_32 = 0;
19704   __pyx_t_33 = 0;
19705   __pyx_t_34 = 0;
19706   __pyx_t_35 = 0;
19707   __pyx_t_36 = 0;
19708   __pyx_t_37 = 0;
19709   __pyx_t_38 = 0;
19710   __pyx_t_39 = 0;
19711   __pyx_t_40 = 0;
19712   __pyx_t_41 = 0;
19713   __pyx_t_42 = 0;
19714   __pyx_t_43 = 0;
19715   __pyx_t_44 = 0;
19716   __pyx_t_45 = 0;
19717   __pyx_t_46 = 0;
19718   __pyx_t_47 = 0;
19719   __pyx_t_48 = 0;
19720   __pyx_t_49 = 0;
19721   __pyx_t_50 = 0;
19722   __pyx_t_51 = 0;
19723   __pyx_t_52 = 0;
19724   __pyx_t_53 = 0;
19725   __pyx_t_54 = 0;
19726   __pyx_t_55 = 0;
19727   __pyx_t_56 = 0;
19728   __pyx_t_57 = 0;
19729   __pyx_t_58 = 0;
19730   __pyx_t_59 = 0;
19731   __pyx_t_60 = 0;
19732   __pyx_t_61 = 0;
19733   __pyx_t_62 = 0;
19734   __pyx_t_63 = 0;
19735   __pyx_t_64 = 0;
19736   __pyx_t_65 = 0;
19737   __pyx_t_66 = 0;
19738   __pyx_t_67 = 0;
19739   __pyx_t_68 = 0;
19740   __pyx_t_69 = 0;
19741   __pyx_t_70 = 0;
19742   __pyx_t_71 = 0;
19743   __pyx_t_72 = 0;
19744   __pyx_t_73 = 0;
19745   __pyx_t_74 = 0;
19746   __pyx_t_75 = 0;
19747   __pyx_t_76 = 0;
19748   __pyx_t_77 = 0;
19749   __pyx_t_78 = 0;
19750   __Pyx_XGOTREF(__pyx_v_7aiohttp_12_http_parser_headers);
19751   __Pyx_DECREF_SET(__pyx_v_7aiohttp_12_http_parser_headers, ((PyObject*)__pyx_t_1));
19752   __Pyx_GIVEREF(__pyx_t_1);
19753   __pyx_t_1 = 0;
19754 
19755   /* "aiohttp/_http_parser.pyx":57
19756  *     char* PyByteArray_AsString(object)
19757  *
19758  * __all__ = ('HttpRequestParser', 'HttpResponseParser',             # <<<<<<<<<<<<<<
19759  *            'RawRequestMessage', 'RawResponseMessage')
19760  *
19761  */
19762   if (PyDict_SetItem(__pyx_d, __pyx_n_s_all, __pyx_tuple__12) < 0) __PYX_ERR(0, 57, __pyx_L1_error)
19763 
19764   /* "aiohttp/_http_parser.pyx":60
19765  *            'RawRequestMessage', 'RawResponseMessage')
19766  *
19767  * cdef object URL = _URL             # <<<<<<<<<<<<<<
19768  * cdef object URL_build = URL.build
19769  * cdef object CIMultiDict = _CIMultiDict
19770  */
19771   __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_URL_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 60, __pyx_L1_error)
19772   __Pyx_GOTREF(__pyx_t_1);
19773   __Pyx_XGOTREF(__pyx_v_7aiohttp_12_http_parser_URL);
19774   __Pyx_DECREF_SET(__pyx_v_7aiohttp_12_http_parser_URL, __pyx_t_1);
19775   __Pyx_GIVEREF(__pyx_t_1);
19776   __pyx_t_1 = 0;
19777 
19778   /* "aiohttp/_http_parser.pyx":61
19779  *
19780  * cdef object URL = _URL
19781  * cdef object URL_build = URL.build             # <<<<<<<<<<<<<<
19782  * cdef object CIMultiDict = _CIMultiDict
19783  * cdef object CIMultiDictProxy = _CIMultiDictProxy
19784  */
19785   __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_7aiohttp_12_http_parser_URL, __pyx_n_s_build); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 61, __pyx_L1_error)
19786   __Pyx_GOTREF(__pyx_t_1);
19787   __Pyx_XGOTREF(__pyx_v_7aiohttp_12_http_parser_URL_build);
19788   __Pyx_DECREF_SET(__pyx_v_7aiohttp_12_http_parser_URL_build, __pyx_t_1);
19789   __Pyx_GIVEREF(__pyx_t_1);
19790   __pyx_t_1 = 0;
19791 
19792   /* "aiohttp/_http_parser.pyx":62
19793  * cdef object URL = _URL
19794  * cdef object URL_build = URL.build
19795  * cdef object CIMultiDict = _CIMultiDict             # <<<<<<<<<<<<<<
19796  * cdef object CIMultiDictProxy = _CIMultiDictProxy
19797  * cdef object HttpVersion = _HttpVersion
19798  */
19799   __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_CIMultiDict_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 62, __pyx_L1_error)
19800   __Pyx_GOTREF(__pyx_t_1);
19801   __Pyx_XGOTREF(__pyx_v_7aiohttp_12_http_parser_CIMultiDict);
19802   __Pyx_DECREF_SET(__pyx_v_7aiohttp_12_http_parser_CIMultiDict, __pyx_t_1);
19803   __Pyx_GIVEREF(__pyx_t_1);
19804   __pyx_t_1 = 0;
19805 
19806   /* "aiohttp/_http_parser.pyx":63
19807  * cdef object URL_build = URL.build
19808  * cdef object CIMultiDict = _CIMultiDict
19809  * cdef object CIMultiDictProxy = _CIMultiDictProxy             # <<<<<<<<<<<<<<
19810  * cdef object HttpVersion = _HttpVersion
19811  * cdef object HttpVersion10 = _HttpVersion10
19812  */
19813   __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_CIMultiDictProxy_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 63, __pyx_L1_error)
19814   __Pyx_GOTREF(__pyx_t_1);
19815   __Pyx_XGOTREF(__pyx_v_7aiohttp_12_http_parser_CIMultiDictProxy);
19816   __Pyx_DECREF_SET(__pyx_v_7aiohttp_12_http_parser_CIMultiDictProxy, __pyx_t_1);
19817   __Pyx_GIVEREF(__pyx_t_1);
19818   __pyx_t_1 = 0;
19819 
19820   /* "aiohttp/_http_parser.pyx":64
19821  * cdef object CIMultiDict = _CIMultiDict
19822  * cdef object CIMultiDictProxy = _CIMultiDictProxy
19823  * cdef object HttpVersion = _HttpVersion             # <<<<<<<<<<<<<<
19824  * cdef object HttpVersion10 = _HttpVersion10
19825  * cdef object HttpVersion11 = _HttpVersion11
19826  */
19827   __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_HttpVersion_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 64, __pyx_L1_error)
19828   __Pyx_GOTREF(__pyx_t_1);
19829   __Pyx_XGOTREF(__pyx_v_7aiohttp_12_http_parser_HttpVersion);
19830   __Pyx_DECREF_SET(__pyx_v_7aiohttp_12_http_parser_HttpVersion, __pyx_t_1);
19831   __Pyx_GIVEREF(__pyx_t_1);
19832   __pyx_t_1 = 0;
19833 
19834   /* "aiohttp/_http_parser.pyx":65
19835  * cdef object CIMultiDictProxy = _CIMultiDictProxy
19836  * cdef object HttpVersion = _HttpVersion
19837  * cdef object HttpVersion10 = _HttpVersion10             # <<<<<<<<<<<<<<
19838  * cdef object HttpVersion11 = _HttpVersion11
19839  * cdef object SEC_WEBSOCKET_KEY1 = hdrs.SEC_WEBSOCKET_KEY1
19840  */
19841   __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_HttpVersion10_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 65, __pyx_L1_error)
19842   __Pyx_GOTREF(__pyx_t_1);
19843   __Pyx_XGOTREF(__pyx_v_7aiohttp_12_http_parser_HttpVersion10);
19844   __Pyx_DECREF_SET(__pyx_v_7aiohttp_12_http_parser_HttpVersion10, __pyx_t_1);
19845   __Pyx_GIVEREF(__pyx_t_1);
19846   __pyx_t_1 = 0;
19847 
19848   /* "aiohttp/_http_parser.pyx":66
19849  * cdef object HttpVersion = _HttpVersion
19850  * cdef object HttpVersion10 = _HttpVersion10
19851  * cdef object HttpVersion11 = _HttpVersion11             # <<<<<<<<<<<<<<
19852  * cdef object SEC_WEBSOCKET_KEY1 = hdrs.SEC_WEBSOCKET_KEY1
19853  * cdef object CONTENT_ENCODING = hdrs.CONTENT_ENCODING
19854  */
19855   __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_HttpVersion11_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 66, __pyx_L1_error)
19856   __Pyx_GOTREF(__pyx_t_1);
19857   __Pyx_XGOTREF(__pyx_v_7aiohttp_12_http_parser_HttpVersion11);
19858   __Pyx_DECREF_SET(__pyx_v_7aiohttp_12_http_parser_HttpVersion11, __pyx_t_1);
19859   __Pyx_GIVEREF(__pyx_t_1);
19860   __pyx_t_1 = 0;
19861 
19862   /* "aiohttp/_http_parser.pyx":67
19863  * cdef object HttpVersion10 = _HttpVersion10
19864  * cdef object HttpVersion11 = _HttpVersion11
19865  * cdef object SEC_WEBSOCKET_KEY1 = hdrs.SEC_WEBSOCKET_KEY1             # <<<<<<<<<<<<<<
19866  * cdef object CONTENT_ENCODING = hdrs.CONTENT_ENCODING
19867  * cdef object EMPTY_PAYLOAD = _EMPTY_PAYLOAD
19868  */
19869   __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 67, __pyx_L1_error)
19870   __Pyx_GOTREF(__pyx_t_1);
19871   __pyx_t_78 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_SEC_WEBSOCKET_KEY1); if (unlikely(!__pyx_t_78)) __PYX_ERR(0, 67, __pyx_L1_error)
19872   __Pyx_GOTREF(__pyx_t_78);
19873   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
19874   __Pyx_XGOTREF(__pyx_v_7aiohttp_12_http_parser_SEC_WEBSOCKET_KEY1);
19875   __Pyx_DECREF_SET(__pyx_v_7aiohttp_12_http_parser_SEC_WEBSOCKET_KEY1, __pyx_t_78);
19876   __Pyx_GIVEREF(__pyx_t_78);
19877   __pyx_t_78 = 0;
19878 
19879   /* "aiohttp/_http_parser.pyx":68
19880  * cdef object HttpVersion11 = _HttpVersion11
19881  * cdef object SEC_WEBSOCKET_KEY1 = hdrs.SEC_WEBSOCKET_KEY1
19882  * cdef object CONTENT_ENCODING = hdrs.CONTENT_ENCODING             # <<<<<<<<<<<<<<
19883  * cdef object EMPTY_PAYLOAD = _EMPTY_PAYLOAD
19884  * cdef object StreamReader = _StreamReader
19885  */
19886   __Pyx_GetModuleGlobalName(__pyx_t_78, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_78)) __PYX_ERR(0, 68, __pyx_L1_error)
19887   __Pyx_GOTREF(__pyx_t_78);
19888   __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_78, __pyx_n_s_CONTENT_ENCODING); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 68, __pyx_L1_error)
19889   __Pyx_GOTREF(__pyx_t_1);
19890   __Pyx_DECREF(__pyx_t_78); __pyx_t_78 = 0;
19891   __Pyx_XGOTREF(__pyx_v_7aiohttp_12_http_parser_CONTENT_ENCODING);
19892   __Pyx_DECREF_SET(__pyx_v_7aiohttp_12_http_parser_CONTENT_ENCODING, __pyx_t_1);
19893   __Pyx_GIVEREF(__pyx_t_1);
19894   __pyx_t_1 = 0;
19895 
19896   /* "aiohttp/_http_parser.pyx":69
19897  * cdef object SEC_WEBSOCKET_KEY1 = hdrs.SEC_WEBSOCKET_KEY1
19898  * cdef object CONTENT_ENCODING = hdrs.CONTENT_ENCODING
19899  * cdef object EMPTY_PAYLOAD = _EMPTY_PAYLOAD             # <<<<<<<<<<<<<<
19900  * cdef object StreamReader = _StreamReader
19901  * cdef object DeflateBuffer = _DeflateBuffer
19902  */
19903   __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_EMPTY_PAYLOAD_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 69, __pyx_L1_error)
19904   __Pyx_GOTREF(__pyx_t_1);
19905   __Pyx_XGOTREF(__pyx_v_7aiohttp_12_http_parser_EMPTY_PAYLOAD);
19906   __Pyx_DECREF_SET(__pyx_v_7aiohttp_12_http_parser_EMPTY_PAYLOAD, __pyx_t_1);
19907   __Pyx_GIVEREF(__pyx_t_1);
19908   __pyx_t_1 = 0;
19909 
19910   /* "aiohttp/_http_parser.pyx":70
19911  * cdef object CONTENT_ENCODING = hdrs.CONTENT_ENCODING
19912  * cdef object EMPTY_PAYLOAD = _EMPTY_PAYLOAD
19913  * cdef object StreamReader = _StreamReader             # <<<<<<<<<<<<<<
19914  * cdef object DeflateBuffer = _DeflateBuffer
19915  *
19916  */
19917   __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_StreamReader_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 70, __pyx_L1_error)
19918   __Pyx_GOTREF(__pyx_t_1);
19919   __Pyx_XGOTREF(__pyx_v_7aiohttp_12_http_parser_StreamReader);
19920   __Pyx_DECREF_SET(__pyx_v_7aiohttp_12_http_parser_StreamReader, __pyx_t_1);
19921   __Pyx_GIVEREF(__pyx_t_1);
19922   __pyx_t_1 = 0;
19923 
19924   /* "aiohttp/_http_parser.pyx":71
19925  * cdef object EMPTY_PAYLOAD = _EMPTY_PAYLOAD
19926  * cdef object StreamReader = _StreamReader
19927  * cdef object DeflateBuffer = _DeflateBuffer             # <<<<<<<<<<<<<<
19928  *
19929  *
19930  */
19931   __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_DeflateBuffer_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 71, __pyx_L1_error)
19932   __Pyx_GOTREF(__pyx_t_1);
19933   __Pyx_XGOTREF(__pyx_v_7aiohttp_12_http_parser_DeflateBuffer);
19934   __Pyx_DECREF_SET(__pyx_v_7aiohttp_12_http_parser_DeflateBuffer, __pyx_t_1);
19935   __Pyx_GIVEREF(__pyx_t_1);
19936   __pyx_t_1 = 0;
19937 
19938   /* "aiohttp/_http_parser.pyx":85
19939  * DEF METHODS_COUNT = 34;
19940  *
19941  * cdef list _http_method = []             # <<<<<<<<<<<<<<
19942  *
19943  * for i in range(METHODS_COUNT):
19944  */
19945   __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 85, __pyx_L1_error)
19946   __Pyx_GOTREF(__pyx_t_1);
19947   __Pyx_XGOTREF(__pyx_v_7aiohttp_12_http_parser__http_method);
19948   __Pyx_DECREF_SET(__pyx_v_7aiohttp_12_http_parser__http_method, ((PyObject*)__pyx_t_1));
19949   __Pyx_GIVEREF(__pyx_t_1);
19950   __pyx_t_1 = 0;
19951 
19952   /* "aiohttp/_http_parser.pyx":87
19953  * cdef list _http_method = []
19954  *
19955  * for i in range(METHODS_COUNT):             # <<<<<<<<<<<<<<
19956  *     _http_method.append(
19957  *         cparser.http_method_str(<cparser.http_method> i).decode('ascii'))
19958  */
19959   for (__pyx_t_79 = 0; __pyx_t_79 < 34; __pyx_t_79+=1) {
19960     __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_t_79); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 87, __pyx_L1_error)
19961     __Pyx_GOTREF(__pyx_t_1);
19962     if (PyDict_SetItem(__pyx_d, __pyx_n_s_i, __pyx_t_1) < 0) __PYX_ERR(0, 87, __pyx_L1_error)
19963     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
19964 
19965     /* "aiohttp/_http_parser.pyx":88
19966  *
19967  * for i in range(METHODS_COUNT):
19968  *     _http_method.append(             # <<<<<<<<<<<<<<
19969  *         cparser.http_method_str(<cparser.http_method> i).decode('ascii'))
19970  *
19971  */
19972     if (unlikely(__pyx_v_7aiohttp_12_http_parser__http_method == Py_None)) {
19973       PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "append");
19974       __PYX_ERR(0, 88, __pyx_L1_error)
19975     }
19976 
19977     /* "aiohttp/_http_parser.pyx":89
19978  * for i in range(METHODS_COUNT):
19979  *     _http_method.append(
19980  *         cparser.http_method_str(<cparser.http_method> i).decode('ascii'))             # <<<<<<<<<<<<<<
19981  *
19982  *
19983  */
19984     __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_i); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 89, __pyx_L1_error)
19985     __Pyx_GOTREF(__pyx_t_1);
19986     __pyx_t_80 = ((enum http_method)__Pyx_PyInt_As_enum__http_method(__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 89, __pyx_L1_error)
19987     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
19988     __pyx_t_81 = http_method_str(((enum http_method)__pyx_t_80));
19989     __pyx_t_1 = __Pyx_decode_c_string(__pyx_t_81, 0, strlen(__pyx_t_81), NULL, NULL, PyUnicode_DecodeASCII); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 89, __pyx_L1_error)
19990     __Pyx_GOTREF(__pyx_t_1);
19991 
19992     /* "aiohttp/_http_parser.pyx":88
19993  *
19994  * for i in range(METHODS_COUNT):
19995  *     _http_method.append(             # <<<<<<<<<<<<<<
19996  *         cparser.http_method_str(<cparser.http_method> i).decode('ascii'))
19997  *
19998  */
19999     __pyx_t_82 = __Pyx_PyList_Append(__pyx_v_7aiohttp_12_http_parser__http_method, __pyx_t_1); if (unlikely(__pyx_t_82 == ((int)-1))) __PYX_ERR(0, 88, __pyx_L1_error)
20000     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
20001   }
20002 
20003   /* "aiohttp/_http_parser.pyx":785
20004  *
20005  *
20006  * def parse_url(url):             # <<<<<<<<<<<<<<
20007  *     cdef:
20008  *         Py_buffer py_buf
20009  */
20010   __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_7aiohttp_12_http_parser_1parse_url, NULL, __pyx_n_s_aiohttp__http_parser); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 785, __pyx_L1_error)
20011   __Pyx_GOTREF(__pyx_t_1);
20012   if (PyDict_SetItem(__pyx_d, __pyx_n_s_parse_url, __pyx_t_1) < 0) __PYX_ERR(0, 785, __pyx_L1_error)
20013   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
20014 
20015   /* "(tree fragment)":1
20016  * def __pyx_unpickle_RawRequestMessage(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
20017  *     cdef object __pyx_PickleError
20018  *     cdef object __pyx_result
20019  */
20020   __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_7aiohttp_12_http_parser_3__pyx_unpickle_RawRequestMessage, NULL, __pyx_n_s_aiohttp__http_parser); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error)
20021   __Pyx_GOTREF(__pyx_t_1);
20022   if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_RawRequestMessage, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
20023   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
20024 
20025   /* "(tree fragment)":11
20026  *         __pyx_unpickle_RawRequestMessage__set_state(<RawRequestMessage> __pyx_result, __pyx_state)
20027  *     return __pyx_result
20028  * cdef __pyx_unpickle_RawRequestMessage__set_state(RawRequestMessage __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
20029  *     __pyx_result.chunked = __pyx_state[0]; __pyx_result.compression = __pyx_state[1]; __pyx_result.headers = __pyx_state[2]; __pyx_result.method = __pyx_state[3]; __pyx_result.path = __pyx_state[4]; __pyx_result.raw_headers = __pyx_state[5]; __pyx_result.should_close = __pyx_state[6]; __pyx_result.upgrade = __pyx_state[7]; __pyx_result.url = __pyx_state[8]; __pyx_result.version = __pyx_state[9]
20030  *     if len(__pyx_state) > 10 and hasattr(__pyx_result, '__dict__'):
20031  */
20032   __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_7aiohttp_12_http_parser_5__pyx_unpickle_RawResponseMessage, NULL, __pyx_n_s_aiohttp__http_parser); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error)
20033   __Pyx_GOTREF(__pyx_t_1);
20034   if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_RawResponseMessag, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
20035   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
20036 
20037   /* "aiohttp/_http_parser.pyx":1
20038  * #cython: language_level=3             # <<<<<<<<<<<<<<
20039  * #
20040  * # Based on https://github.com/MagicStack/httptools
20041  */
20042   __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1, __pyx_L1_error)
20043   __Pyx_GOTREF(__pyx_t_1);
20044   if (PyDict_SetItem(__pyx_d, __pyx_n_s_test, __pyx_t_1) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
20045   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
20046 
20047   /*--- Wrapped vars code ---*/
20048 
20049   goto __pyx_L0;
20050   __pyx_L1_error:;
20051   __Pyx_XDECREF(__pyx_t_1);
20052   __Pyx_XDECREF(__pyx_t_2);
20053   __Pyx_XDECREF(__pyx_t_3);
20054   __Pyx_XDECREF(__pyx_t_4);
20055   __Pyx_XDECREF(__pyx_t_5);
20056   __Pyx_XDECREF(__pyx_t_6);
20057   __Pyx_XDECREF(__pyx_t_7);
20058   __Pyx_XDECREF(__pyx_t_8);
20059   __Pyx_XDECREF(__pyx_t_9);
20060   __Pyx_XDECREF(__pyx_t_10);
20061   __Pyx_XDECREF(__pyx_t_11);
20062   __Pyx_XDECREF(__pyx_t_12);
20063   __Pyx_XDECREF(__pyx_t_13);
20064   __Pyx_XDECREF(__pyx_t_14);
20065   __Pyx_XDECREF(__pyx_t_15);
20066   __Pyx_XDECREF(__pyx_t_16);
20067   __Pyx_XDECREF(__pyx_t_17);
20068   __Pyx_XDECREF(__pyx_t_18);
20069   __Pyx_XDECREF(__pyx_t_19);
20070   __Pyx_XDECREF(__pyx_t_20);
20071   __Pyx_XDECREF(__pyx_t_21);
20072   __Pyx_XDECREF(__pyx_t_22);
20073   __Pyx_XDECREF(__pyx_t_23);
20074   __Pyx_XDECREF(__pyx_t_24);
20075   __Pyx_XDECREF(__pyx_t_25);
20076   __Pyx_XDECREF(__pyx_t_26);
20077   __Pyx_XDECREF(__pyx_t_27);
20078   __Pyx_XDECREF(__pyx_t_28);
20079   __Pyx_XDECREF(__pyx_t_29);
20080   __Pyx_XDECREF(__pyx_t_30);
20081   __Pyx_XDECREF(__pyx_t_31);
20082   __Pyx_XDECREF(__pyx_t_32);
20083   __Pyx_XDECREF(__pyx_t_33);
20084   __Pyx_XDECREF(__pyx_t_34);
20085   __Pyx_XDECREF(__pyx_t_35);
20086   __Pyx_XDECREF(__pyx_t_36);
20087   __Pyx_XDECREF(__pyx_t_37);
20088   __Pyx_XDECREF(__pyx_t_38);
20089   __Pyx_XDECREF(__pyx_t_39);
20090   __Pyx_XDECREF(__pyx_t_40);
20091   __Pyx_XDECREF(__pyx_t_41);
20092   __Pyx_XDECREF(__pyx_t_42);
20093   __Pyx_XDECREF(__pyx_t_43);
20094   __Pyx_XDECREF(__pyx_t_44);
20095   __Pyx_XDECREF(__pyx_t_45);
20096   __Pyx_XDECREF(__pyx_t_46);
20097   __Pyx_XDECREF(__pyx_t_47);
20098   __Pyx_XDECREF(__pyx_t_48);
20099   __Pyx_XDECREF(__pyx_t_49);
20100   __Pyx_XDECREF(__pyx_t_50);
20101   __Pyx_XDECREF(__pyx_t_51);
20102   __Pyx_XDECREF(__pyx_t_52);
20103   __Pyx_XDECREF(__pyx_t_53);
20104   __Pyx_XDECREF(__pyx_t_54);
20105   __Pyx_XDECREF(__pyx_t_55);
20106   __Pyx_XDECREF(__pyx_t_56);
20107   __Pyx_XDECREF(__pyx_t_57);
20108   __Pyx_XDECREF(__pyx_t_58);
20109   __Pyx_XDECREF(__pyx_t_59);
20110   __Pyx_XDECREF(__pyx_t_60);
20111   __Pyx_XDECREF(__pyx_t_61);
20112   __Pyx_XDECREF(__pyx_t_62);
20113   __Pyx_XDECREF(__pyx_t_63);
20114   __Pyx_XDECREF(__pyx_t_64);
20115   __Pyx_XDECREF(__pyx_t_65);
20116   __Pyx_XDECREF(__pyx_t_66);
20117   __Pyx_XDECREF(__pyx_t_67);
20118   __Pyx_XDECREF(__pyx_t_68);
20119   __Pyx_XDECREF(__pyx_t_69);
20120   __Pyx_XDECREF(__pyx_t_70);
20121   __Pyx_XDECREF(__pyx_t_71);
20122   __Pyx_XDECREF(__pyx_t_72);
20123   __Pyx_XDECREF(__pyx_t_73);
20124   __Pyx_XDECREF(__pyx_t_74);
20125   __Pyx_XDECREF(__pyx_t_75);
20126   __Pyx_XDECREF(__pyx_t_76);
20127   __Pyx_XDECREF(__pyx_t_77);
20128   __Pyx_XDECREF(__pyx_t_78);
20129   if (__pyx_m) {
20130     if (__pyx_d) {
20131       __Pyx_AddTraceback("init aiohttp._http_parser", __pyx_clineno, __pyx_lineno, __pyx_filename);
20132     }
20133     Py_CLEAR(__pyx_m);
20134   } else if (!PyErr_Occurred()) {
20135     PyErr_SetString(PyExc_ImportError, "init aiohttp._http_parser");
20136   }
20137   __pyx_L0:;
20138   __Pyx_RefNannyFinishContext();
20139   #if CYTHON_PEP489_MULTI_PHASE_INIT
20140   return (__pyx_m != NULL) ? 0 : -1;
20141   #elif PY_MAJOR_VERSION >= 3
20142   return __pyx_m;
20143   #else
20144   return;
20145   #endif
20146 }
20147 
20148 /* --- Runtime support code --- */
20149 /* Refnanny */
20150 #if CYTHON_REFNANNY
__Pyx_RefNannyImportAPI(const char * modname)20151 static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname) {
20152     PyObject *m = NULL, *p = NULL;
20153     void *r = NULL;
20154     m = PyImport_ImportModule(modname);
20155     if (!m) goto end;
20156     p = PyObject_GetAttrString(m, "RefNannyAPI");
20157     if (!p) goto end;
20158     r = PyLong_AsVoidPtr(p);
20159 end:
20160     Py_XDECREF(p);
20161     Py_XDECREF(m);
20162     return (__Pyx_RefNannyAPIStruct *)r;
20163 }
20164 #endif
20165 
20166 /* PyObjectGetAttrStr */
20167 #if CYTHON_USE_TYPE_SLOTS
__Pyx_PyObject_GetAttrStr(PyObject * obj,PyObject * attr_name)20168 static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name) {
20169     PyTypeObject* tp = Py_TYPE(obj);
20170     if (likely(tp->tp_getattro))
20171         return tp->tp_getattro(obj, attr_name);
20172 #if PY_MAJOR_VERSION < 3
20173     if (likely(tp->tp_getattr))
20174         return tp->tp_getattr(obj, PyString_AS_STRING(attr_name));
20175 #endif
20176     return PyObject_GetAttr(obj, attr_name);
20177 }
20178 #endif
20179 
20180 /* GetBuiltinName */
__Pyx_GetBuiltinName(PyObject * name)20181 static PyObject *__Pyx_GetBuiltinName(PyObject *name) {
20182     PyObject* result = __Pyx_PyObject_GetAttrStr(__pyx_b, name);
20183     if (unlikely(!result)) {
20184         PyErr_Format(PyExc_NameError,
20185 #if PY_MAJOR_VERSION >= 3
20186             "name '%U' is not defined", name);
20187 #else
20188             "name '%.200s' is not defined", PyString_AS_STRING(name));
20189 #endif
20190     }
20191     return result;
20192 }
20193 
20194 /* GetItemInt */
__Pyx_GetItemInt_Generic(PyObject * o,PyObject * j)20195 static PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j) {
20196     PyObject *r;
20197     if (!j) return NULL;
20198     r = PyObject_GetItem(o, j);
20199     Py_DECREF(j);
20200     return r;
20201 }
__Pyx_GetItemInt_List_Fast(PyObject * o,Py_ssize_t i,CYTHON_NCP_UNUSED int wraparound,CYTHON_NCP_UNUSED int boundscheck)20202 static CYTHON_INLINE PyObject *__Pyx_GetItemInt_List_Fast(PyObject *o, Py_ssize_t i,
20203                                                               CYTHON_NCP_UNUSED int wraparound,
20204                                                               CYTHON_NCP_UNUSED int boundscheck) {
20205 #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
20206     Py_ssize_t wrapped_i = i;
20207     if (wraparound & unlikely(i < 0)) {
20208         wrapped_i += PyList_GET_SIZE(o);
20209     }
20210     if ((!boundscheck) || likely(__Pyx_is_valid_index(wrapped_i, PyList_GET_SIZE(o)))) {
20211         PyObject *r = PyList_GET_ITEM(o, wrapped_i);
20212         Py_INCREF(r);
20213         return r;
20214     }
20215     return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i));
20216 #else
20217     return PySequence_GetItem(o, i);
20218 #endif
20219 }
__Pyx_GetItemInt_Tuple_Fast(PyObject * o,Py_ssize_t i,CYTHON_NCP_UNUSED int wraparound,CYTHON_NCP_UNUSED int boundscheck)20220 static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Tuple_Fast(PyObject *o, Py_ssize_t i,
20221                                                               CYTHON_NCP_UNUSED int wraparound,
20222                                                               CYTHON_NCP_UNUSED int boundscheck) {
20223 #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
20224     Py_ssize_t wrapped_i = i;
20225     if (wraparound & unlikely(i < 0)) {
20226         wrapped_i += PyTuple_GET_SIZE(o);
20227     }
20228     if ((!boundscheck) || likely(__Pyx_is_valid_index(wrapped_i, PyTuple_GET_SIZE(o)))) {
20229         PyObject *r = PyTuple_GET_ITEM(o, wrapped_i);
20230         Py_INCREF(r);
20231         return r;
20232     }
20233     return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i));
20234 #else
20235     return PySequence_GetItem(o, i);
20236 #endif
20237 }
__Pyx_GetItemInt_Fast(PyObject * o,Py_ssize_t i,int is_list,CYTHON_NCP_UNUSED int wraparound,CYTHON_NCP_UNUSED int boundscheck)20238 static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i, int is_list,
20239                                                      CYTHON_NCP_UNUSED int wraparound,
20240                                                      CYTHON_NCP_UNUSED int boundscheck) {
20241 #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS && CYTHON_USE_TYPE_SLOTS
20242     if (is_list || PyList_CheckExact(o)) {
20243         Py_ssize_t n = ((!wraparound) | likely(i >= 0)) ? i : i + PyList_GET_SIZE(o);
20244         if ((!boundscheck) || (likely(__Pyx_is_valid_index(n, PyList_GET_SIZE(o))))) {
20245             PyObject *r = PyList_GET_ITEM(o, n);
20246             Py_INCREF(r);
20247             return r;
20248         }
20249     }
20250     else if (PyTuple_CheckExact(o)) {
20251         Py_ssize_t n = ((!wraparound) | likely(i >= 0)) ? i : i + PyTuple_GET_SIZE(o);
20252         if ((!boundscheck) || likely(__Pyx_is_valid_index(n, PyTuple_GET_SIZE(o)))) {
20253             PyObject *r = PyTuple_GET_ITEM(o, n);
20254             Py_INCREF(r);
20255             return r;
20256         }
20257     } else {
20258         PySequenceMethods *m = Py_TYPE(o)->tp_as_sequence;
20259         if (likely(m && m->sq_item)) {
20260             if (wraparound && unlikely(i < 0) && likely(m->sq_length)) {
20261                 Py_ssize_t l = m->sq_length(o);
20262                 if (likely(l >= 0)) {
20263                     i += l;
20264                 } else {
20265                     if (!PyErr_ExceptionMatches(PyExc_OverflowError))
20266                         return NULL;
20267                     PyErr_Clear();
20268                 }
20269             }
20270             return m->sq_item(o, i);
20271         }
20272     }
20273 #else
20274     if (is_list || PySequence_Check(o)) {
20275         return PySequence_GetItem(o, i);
20276     }
20277 #endif
20278     return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i));
20279 }
20280 
20281 /* decode_c_bytes */
__Pyx_decode_c_bytes(const char * cstring,Py_ssize_t length,Py_ssize_t start,Py_ssize_t stop,const char * encoding,const char * errors,PyObject * (* decode_func)(const char * s,Py_ssize_t size,const char * errors))20282 static CYTHON_INLINE PyObject* __Pyx_decode_c_bytes(
20283          const char* cstring, Py_ssize_t length, Py_ssize_t start, Py_ssize_t stop,
20284          const char* encoding, const char* errors,
20285          PyObject* (*decode_func)(const char *s, Py_ssize_t size, const char *errors)) {
20286     if (unlikely((start < 0) | (stop < 0))) {
20287         if (start < 0) {
20288             start += length;
20289             if (start < 0)
20290                 start = 0;
20291         }
20292         if (stop < 0)
20293             stop += length;
20294     }
20295     if (stop > length)
20296         stop = length;
20297     if (unlikely(stop <= start))
20298         return __Pyx_NewRef(__pyx_empty_unicode);
20299     length = stop - start;
20300     cstring += start;
20301     if (decode_func) {
20302         return decode_func(cstring, length, errors);
20303     } else {
20304         return PyUnicode_Decode(cstring, length, encoding, errors);
20305     }
20306 }
20307 
20308 /* RaiseArgTupleInvalid */
__Pyx_RaiseArgtupleInvalid(const char * func_name,int exact,Py_ssize_t num_min,Py_ssize_t num_max,Py_ssize_t num_found)20309 static void __Pyx_RaiseArgtupleInvalid(
20310     const char* func_name,
20311     int exact,
20312     Py_ssize_t num_min,
20313     Py_ssize_t num_max,
20314     Py_ssize_t num_found)
20315 {
20316     Py_ssize_t num_expected;
20317     const char *more_or_less;
20318     if (num_found < num_min) {
20319         num_expected = num_min;
20320         more_or_less = "at least";
20321     } else {
20322         num_expected = num_max;
20323         more_or_less = "at most";
20324     }
20325     if (exact) {
20326         more_or_less = "exactly";
20327     }
20328     PyErr_Format(PyExc_TypeError,
20329                  "%.200s() takes %.8s %" CYTHON_FORMAT_SSIZE_T "d positional argument%.1s (%" CYTHON_FORMAT_SSIZE_T "d given)",
20330                  func_name, more_or_less, num_expected,
20331                  (num_expected == 1) ? "" : "s", num_found);
20332 }
20333 
20334 /* RaiseDoubleKeywords */
__Pyx_RaiseDoubleKeywordsError(const char * func_name,PyObject * kw_name)20335 static void __Pyx_RaiseDoubleKeywordsError(
20336     const char* func_name,
20337     PyObject* kw_name)
20338 {
20339     PyErr_Format(PyExc_TypeError,
20340         #if PY_MAJOR_VERSION >= 3
20341         "%s() got multiple values for keyword argument '%U'", func_name, kw_name);
20342         #else
20343         "%s() got multiple values for keyword argument '%s'", func_name,
20344         PyString_AsString(kw_name));
20345         #endif
20346 }
20347 
20348 /* ParseKeywords */
__Pyx_ParseOptionalKeywords(PyObject * kwds,PyObject ** argnames[],PyObject * kwds2,PyObject * values[],Py_ssize_t num_pos_args,const char * function_name)20349 static int __Pyx_ParseOptionalKeywords(
20350     PyObject *kwds,
20351     PyObject **argnames[],
20352     PyObject *kwds2,
20353     PyObject *values[],
20354     Py_ssize_t num_pos_args,
20355     const char* function_name)
20356 {
20357     PyObject *key = 0, *value = 0;
20358     Py_ssize_t pos = 0;
20359     PyObject*** name;
20360     PyObject*** first_kw_arg = argnames + num_pos_args;
20361     while (PyDict_Next(kwds, &pos, &key, &value)) {
20362         name = first_kw_arg;
20363         while (*name && (**name != key)) name++;
20364         if (*name) {
20365             values[name-argnames] = value;
20366             continue;
20367         }
20368         name = first_kw_arg;
20369         #if PY_MAJOR_VERSION < 3
20370         if (likely(PyString_Check(key))) {
20371             while (*name) {
20372                 if ((CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**name) == PyString_GET_SIZE(key))
20373                         && _PyString_Eq(**name, key)) {
20374                     values[name-argnames] = value;
20375                     break;
20376                 }
20377                 name++;
20378             }
20379             if (*name) continue;
20380             else {
20381                 PyObject*** argname = argnames;
20382                 while (argname != first_kw_arg) {
20383                     if ((**argname == key) || (
20384                             (CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**argname) == PyString_GET_SIZE(key))
20385                              && _PyString_Eq(**argname, key))) {
20386                         goto arg_passed_twice;
20387                     }
20388                     argname++;
20389                 }
20390             }
20391         } else
20392         #endif
20393         if (likely(PyUnicode_Check(key))) {
20394             while (*name) {
20395                 int cmp = (**name == key) ? 0 :
20396                 #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3
20397                     (__Pyx_PyUnicode_GET_LENGTH(**name) != __Pyx_PyUnicode_GET_LENGTH(key)) ? 1 :
20398                 #endif
20399                     PyUnicode_Compare(**name, key);
20400                 if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad;
20401                 if (cmp == 0) {
20402                     values[name-argnames] = value;
20403                     break;
20404                 }
20405                 name++;
20406             }
20407             if (*name) continue;
20408             else {
20409                 PyObject*** argname = argnames;
20410                 while (argname != first_kw_arg) {
20411                     int cmp = (**argname == key) ? 0 :
20412                     #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3
20413                         (__Pyx_PyUnicode_GET_LENGTH(**argname) != __Pyx_PyUnicode_GET_LENGTH(key)) ? 1 :
20414                     #endif
20415                         PyUnicode_Compare(**argname, key);
20416                     if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad;
20417                     if (cmp == 0) goto arg_passed_twice;
20418                     argname++;
20419                 }
20420             }
20421         } else
20422             goto invalid_keyword_type;
20423         if (kwds2) {
20424             if (unlikely(PyDict_SetItem(kwds2, key, value))) goto bad;
20425         } else {
20426             goto invalid_keyword;
20427         }
20428     }
20429     return 0;
20430 arg_passed_twice:
20431     __Pyx_RaiseDoubleKeywordsError(function_name, key);
20432     goto bad;
20433 invalid_keyword_type:
20434     PyErr_Format(PyExc_TypeError,
20435         "%.200s() keywords must be strings", function_name);
20436     goto bad;
20437 invalid_keyword:
20438     PyErr_Format(PyExc_TypeError,
20439     #if PY_MAJOR_VERSION < 3
20440         "%.200s() got an unexpected keyword argument '%.200s'",
20441         function_name, PyString_AsString(key));
20442     #else
20443         "%s() got an unexpected keyword argument '%U'",
20444         function_name, key);
20445     #endif
20446 bad:
20447     return -1;
20448 }
20449 
20450 /* None */
__Pyx_RaiseClosureNameError(const char * varname)20451 static CYTHON_INLINE void __Pyx_RaiseClosureNameError(const char *varname) {
20452     PyErr_Format(PyExc_NameError, "free variable '%s' referenced before assignment in enclosing scope", varname);
20453 }
20454 
20455 /* RaiseTooManyValuesToUnpack */
__Pyx_RaiseTooManyValuesError(Py_ssize_t expected)20456 static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected) {
20457     PyErr_Format(PyExc_ValueError,
20458                  "too many values to unpack (expected %" CYTHON_FORMAT_SSIZE_T "d)", expected);
20459 }
20460 
20461 /* RaiseNeedMoreValuesToUnpack */
__Pyx_RaiseNeedMoreValuesError(Py_ssize_t index)20462 static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index) {
20463     PyErr_Format(PyExc_ValueError,
20464                  "need more than %" CYTHON_FORMAT_SSIZE_T "d value%.1s to unpack",
20465                  index, (index == 1) ? "" : "s");
20466 }
20467 
20468 /* IterFinish */
__Pyx_IterFinish(void)20469 static CYTHON_INLINE int __Pyx_IterFinish(void) {
20470 #if CYTHON_FAST_THREAD_STATE
20471     PyThreadState *tstate = __Pyx_PyThreadState_Current;
20472     PyObject* exc_type = tstate->curexc_type;
20473     if (unlikely(exc_type)) {
20474         if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) {
20475             PyObject *exc_value, *exc_tb;
20476             exc_value = tstate->curexc_value;
20477             exc_tb = tstate->curexc_traceback;
20478             tstate->curexc_type = 0;
20479             tstate->curexc_value = 0;
20480             tstate->curexc_traceback = 0;
20481             Py_DECREF(exc_type);
20482             Py_XDECREF(exc_value);
20483             Py_XDECREF(exc_tb);
20484             return 0;
20485         } else {
20486             return -1;
20487         }
20488     }
20489     return 0;
20490 #else
20491     if (unlikely(PyErr_Occurred())) {
20492         if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) {
20493             PyErr_Clear();
20494             return 0;
20495         } else {
20496             return -1;
20497         }
20498     }
20499     return 0;
20500 #endif
20501 }
20502 
20503 /* UnpackItemEndCheck */
__Pyx_IternextUnpackEndCheck(PyObject * retval,Py_ssize_t expected)20504 static int __Pyx_IternextUnpackEndCheck(PyObject *retval, Py_ssize_t expected) {
20505     if (unlikely(retval)) {
20506         Py_DECREF(retval);
20507         __Pyx_RaiseTooManyValuesError(expected);
20508         return -1;
20509     } else {
20510         return __Pyx_IterFinish();
20511     }
20512     return 0;
20513 }
20514 
20515 /* KeywordStringCheck */
__Pyx_CheckKeywordStrings(PyObject * kwdict,const char * function_name,int kw_allowed)20516 static int __Pyx_CheckKeywordStrings(
20517     PyObject *kwdict,
20518     const char* function_name,
20519     int kw_allowed)
20520 {
20521     PyObject* key = 0;
20522     Py_ssize_t pos = 0;
20523 #if CYTHON_COMPILING_IN_PYPY
20524     if (!kw_allowed && PyDict_Next(kwdict, &pos, &key, 0))
20525         goto invalid_keyword;
20526     return 1;
20527 #else
20528     while (PyDict_Next(kwdict, &pos, &key, 0)) {
20529         #if PY_MAJOR_VERSION < 3
20530         if (unlikely(!PyString_Check(key)))
20531         #endif
20532             if (unlikely(!PyUnicode_Check(key)))
20533                 goto invalid_keyword_type;
20534     }
20535     if ((!kw_allowed) && unlikely(key))
20536         goto invalid_keyword;
20537     return 1;
20538 invalid_keyword_type:
20539     PyErr_Format(PyExc_TypeError,
20540         "%.200s() keywords must be strings", function_name);
20541     return 0;
20542 #endif
20543 invalid_keyword:
20544     PyErr_Format(PyExc_TypeError,
20545     #if PY_MAJOR_VERSION < 3
20546         "%.200s() got an unexpected keyword argument '%.200s'",
20547         function_name, PyString_AsString(key));
20548     #else
20549         "%s() got an unexpected keyword argument '%U'",
20550         function_name, key);
20551     #endif
20552     return 0;
20553 }
20554 
20555 /* ExtTypeTest */
__Pyx_TypeTest(PyObject * obj,PyTypeObject * type)20556 static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type) {
20557     if (unlikely(!type)) {
20558         PyErr_SetString(PyExc_SystemError, "Missing type object");
20559         return 0;
20560     }
20561     if (likely(__Pyx_TypeCheck(obj, type)))
20562         return 1;
20563     PyErr_Format(PyExc_TypeError, "Cannot convert %.200s to %.200s",
20564                  Py_TYPE(obj)->tp_name, type->tp_name);
20565     return 0;
20566 }
20567 
20568 /* DictGetItem */
20569 #if PY_MAJOR_VERSION >= 3 && !CYTHON_COMPILING_IN_PYPY
__Pyx_PyDict_GetItem(PyObject * d,PyObject * key)20570 static PyObject *__Pyx_PyDict_GetItem(PyObject *d, PyObject* key) {
20571     PyObject *value;
20572     value = PyDict_GetItemWithError(d, key);
20573     if (unlikely(!value)) {
20574         if (!PyErr_Occurred()) {
20575             if (unlikely(PyTuple_Check(key))) {
20576                 PyObject* args = PyTuple_Pack(1, key);
20577                 if (likely(args)) {
20578                     PyErr_SetObject(PyExc_KeyError, args);
20579                     Py_DECREF(args);
20580                 }
20581             } else {
20582                 PyErr_SetObject(PyExc_KeyError, key);
20583             }
20584         }
20585         return NULL;
20586     }
20587     Py_INCREF(value);
20588     return value;
20589 }
20590 #endif
20591 
20592 /* PyErrExceptionMatches */
20593 #if CYTHON_FAST_THREAD_STATE
__Pyx_PyErr_ExceptionMatchesTuple(PyObject * exc_type,PyObject * tuple)20594 static int __Pyx_PyErr_ExceptionMatchesTuple(PyObject *exc_type, PyObject *tuple) {
20595     Py_ssize_t i, n;
20596     n = PyTuple_GET_SIZE(tuple);
20597 #if PY_MAJOR_VERSION >= 3
20598     for (i=0; i<n; i++) {
20599         if (exc_type == PyTuple_GET_ITEM(tuple, i)) return 1;
20600     }
20601 #endif
20602     for (i=0; i<n; i++) {
20603         if (__Pyx_PyErr_GivenExceptionMatches(exc_type, PyTuple_GET_ITEM(tuple, i))) return 1;
20604     }
20605     return 0;
20606 }
__Pyx_PyErr_ExceptionMatchesInState(PyThreadState * tstate,PyObject * err)20607 static CYTHON_INLINE int __Pyx_PyErr_ExceptionMatchesInState(PyThreadState* tstate, PyObject* err) {
20608     PyObject *exc_type = tstate->curexc_type;
20609     if (exc_type == err) return 1;
20610     if (unlikely(!exc_type)) return 0;
20611     if (unlikely(PyTuple_Check(err)))
20612         return __Pyx_PyErr_ExceptionMatchesTuple(exc_type, err);
20613     return __Pyx_PyErr_GivenExceptionMatches(exc_type, err);
20614 }
20615 #endif
20616 
20617 /* PyErrFetchRestore */
20618 #if CYTHON_FAST_THREAD_STATE
__Pyx_ErrRestoreInState(PyThreadState * tstate,PyObject * type,PyObject * value,PyObject * tb)20619 static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb) {
20620     PyObject *tmp_type, *tmp_value, *tmp_tb;
20621     tmp_type = tstate->curexc_type;
20622     tmp_value = tstate->curexc_value;
20623     tmp_tb = tstate->curexc_traceback;
20624     tstate->curexc_type = type;
20625     tstate->curexc_value = value;
20626     tstate->curexc_traceback = tb;
20627     Py_XDECREF(tmp_type);
20628     Py_XDECREF(tmp_value);
20629     Py_XDECREF(tmp_tb);
20630 }
__Pyx_ErrFetchInState(PyThreadState * tstate,PyObject ** type,PyObject ** value,PyObject ** tb)20631 static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) {
20632     *type = tstate->curexc_type;
20633     *value = tstate->curexc_value;
20634     *tb = tstate->curexc_traceback;
20635     tstate->curexc_type = 0;
20636     tstate->curexc_value = 0;
20637     tstate->curexc_traceback = 0;
20638 }
20639 #endif
20640 
20641 /* GetAttr */
__Pyx_GetAttr(PyObject * o,PyObject * n)20642 static CYTHON_INLINE PyObject *__Pyx_GetAttr(PyObject *o, PyObject *n) {
20643 #if CYTHON_USE_TYPE_SLOTS
20644 #if PY_MAJOR_VERSION >= 3
20645     if (likely(PyUnicode_Check(n)))
20646 #else
20647     if (likely(PyString_Check(n)))
20648 #endif
20649         return __Pyx_PyObject_GetAttrStr(o, n);
20650 #endif
20651     return PyObject_GetAttr(o, n);
20652 }
20653 
20654 /* GetAttr3 */
__Pyx_GetAttr3Default(PyObject * d)20655 static PyObject *__Pyx_GetAttr3Default(PyObject *d) {
20656     __Pyx_PyThreadState_declare
20657     __Pyx_PyThreadState_assign
20658     if (unlikely(!__Pyx_PyErr_ExceptionMatches(PyExc_AttributeError)))
20659         return NULL;
20660     __Pyx_PyErr_Clear();
20661     Py_INCREF(d);
20662     return d;
20663 }
__Pyx_GetAttr3(PyObject * o,PyObject * n,PyObject * d)20664 static CYTHON_INLINE PyObject *__Pyx_GetAttr3(PyObject *o, PyObject *n, PyObject *d) {
20665     PyObject *r = __Pyx_GetAttr(o, n);
20666     return (likely(r)) ? r : __Pyx_GetAttr3Default(d);
20667 }
20668 
20669 /* PyDictVersioning */
20670 #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS
__Pyx_get_tp_dict_version(PyObject * obj)20671 static CYTHON_INLINE PY_UINT64_T __Pyx_get_tp_dict_version(PyObject *obj) {
20672     PyObject *dict = Py_TYPE(obj)->tp_dict;
20673     return likely(dict) ? __PYX_GET_DICT_VERSION(dict) : 0;
20674 }
__Pyx_get_object_dict_version(PyObject * obj)20675 static CYTHON_INLINE PY_UINT64_T __Pyx_get_object_dict_version(PyObject *obj) {
20676     PyObject **dictptr = NULL;
20677     Py_ssize_t offset = Py_TYPE(obj)->tp_dictoffset;
20678     if (offset) {
20679 #if CYTHON_COMPILING_IN_CPYTHON
20680         dictptr = (likely(offset > 0)) ? (PyObject **) ((char *)obj + offset) : _PyObject_GetDictPtr(obj);
20681 #else
20682         dictptr = _PyObject_GetDictPtr(obj);
20683 #endif
20684     }
20685     return (dictptr && *dictptr) ? __PYX_GET_DICT_VERSION(*dictptr) : 0;
20686 }
__Pyx_object_dict_version_matches(PyObject * obj,PY_UINT64_T tp_dict_version,PY_UINT64_T obj_dict_version)20687 static CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UINT64_T tp_dict_version, PY_UINT64_T obj_dict_version) {
20688     PyObject *dict = Py_TYPE(obj)->tp_dict;
20689     if (unlikely(!dict) || unlikely(tp_dict_version != __PYX_GET_DICT_VERSION(dict)))
20690         return 0;
20691     return obj_dict_version == __Pyx_get_object_dict_version(obj);
20692 }
20693 #endif
20694 
20695 /* GetModuleGlobalName */
20696 #if CYTHON_USE_DICT_VERSIONS
__Pyx__GetModuleGlobalName(PyObject * name,PY_UINT64_T * dict_version,PyObject ** dict_cached_value)20697 static PyObject *__Pyx__GetModuleGlobalName(PyObject *name, PY_UINT64_T *dict_version, PyObject **dict_cached_value)
20698 #else
20699 static CYTHON_INLINE PyObject *__Pyx__GetModuleGlobalName(PyObject *name)
20700 #endif
20701 {
20702     PyObject *result;
20703 #if !CYTHON_AVOID_BORROWED_REFS
20704 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030500A1
20705     result = _PyDict_GetItem_KnownHash(__pyx_d, name, ((PyASCIIObject *) name)->hash);
20706     __PYX_UPDATE_DICT_CACHE(__pyx_d, result, *dict_cached_value, *dict_version)
20707     if (likely(result)) {
20708         return __Pyx_NewRef(result);
20709     } else if (unlikely(PyErr_Occurred())) {
20710         return NULL;
20711     }
20712 #else
20713     result = PyDict_GetItem(__pyx_d, name);
20714     __PYX_UPDATE_DICT_CACHE(__pyx_d, result, *dict_cached_value, *dict_version)
20715     if (likely(result)) {
20716         return __Pyx_NewRef(result);
20717     }
20718 #endif
20719 #else
20720     result = PyObject_GetItem(__pyx_d, name);
20721     __PYX_UPDATE_DICT_CACHE(__pyx_d, result, *dict_cached_value, *dict_version)
20722     if (likely(result)) {
20723         return __Pyx_NewRef(result);
20724     }
20725     PyErr_Clear();
20726 #endif
20727     return __Pyx_GetBuiltinName(name);
20728 }
20729 
20730 /* PyFunctionFastCall */
20731 #if CYTHON_FAST_PYCALL
__Pyx_PyFunction_FastCallNoKw(PyCodeObject * co,PyObject ** args,Py_ssize_t na,PyObject * globals)20732 static PyObject* __Pyx_PyFunction_FastCallNoKw(PyCodeObject *co, PyObject **args, Py_ssize_t na,
20733                                                PyObject *globals) {
20734     PyFrameObject *f;
20735     PyThreadState *tstate = __Pyx_PyThreadState_Current;
20736     PyObject **fastlocals;
20737     Py_ssize_t i;
20738     PyObject *result;
20739     assert(globals != NULL);
20740     /* XXX Perhaps we should create a specialized
20741        PyFrame_New() that doesn't take locals, but does
20742        take builtins without sanity checking them.
20743        */
20744     assert(tstate != NULL);
20745     f = PyFrame_New(tstate, co, globals, NULL);
20746     if (f == NULL) {
20747         return NULL;
20748     }
20749     fastlocals = __Pyx_PyFrame_GetLocalsplus(f);
20750     for (i = 0; i < na; i++) {
20751         Py_INCREF(*args);
20752         fastlocals[i] = *args++;
20753     }
20754     result = PyEval_EvalFrameEx(f,0);
20755     ++tstate->recursion_depth;
20756     Py_DECREF(f);
20757     --tstate->recursion_depth;
20758     return result;
20759 }
20760 #if 1 || PY_VERSION_HEX < 0x030600B1
__Pyx_PyFunction_FastCallDict(PyObject * func,PyObject ** args,Py_ssize_t nargs,PyObject * kwargs)20761 static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, Py_ssize_t nargs, PyObject *kwargs) {
20762     PyCodeObject *co = (PyCodeObject *)PyFunction_GET_CODE(func);
20763     PyObject *globals = PyFunction_GET_GLOBALS(func);
20764     PyObject *argdefs = PyFunction_GET_DEFAULTS(func);
20765     PyObject *closure;
20766 #if PY_MAJOR_VERSION >= 3
20767     PyObject *kwdefs;
20768 #endif
20769     PyObject *kwtuple, **k;
20770     PyObject **d;
20771     Py_ssize_t nd;
20772     Py_ssize_t nk;
20773     PyObject *result;
20774     assert(kwargs == NULL || PyDict_Check(kwargs));
20775     nk = kwargs ? PyDict_Size(kwargs) : 0;
20776     if (Py_EnterRecursiveCall((char*)" while calling a Python object")) {
20777         return NULL;
20778     }
20779     if (
20780 #if PY_MAJOR_VERSION >= 3
20781             co->co_kwonlyargcount == 0 &&
20782 #endif
20783             likely(kwargs == NULL || nk == 0) &&
20784             co->co_flags == (CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE)) {
20785         if (argdefs == NULL && co->co_argcount == nargs) {
20786             result = __Pyx_PyFunction_FastCallNoKw(co, args, nargs, globals);
20787             goto done;
20788         }
20789         else if (nargs == 0 && argdefs != NULL
20790                  && co->co_argcount == Py_SIZE(argdefs)) {
20791             /* function called with no arguments, but all parameters have
20792                a default value: use default values as arguments .*/
20793             args = &PyTuple_GET_ITEM(argdefs, 0);
20794             result =__Pyx_PyFunction_FastCallNoKw(co, args, Py_SIZE(argdefs), globals);
20795             goto done;
20796         }
20797     }
20798     if (kwargs != NULL) {
20799         Py_ssize_t pos, i;
20800         kwtuple = PyTuple_New(2 * nk);
20801         if (kwtuple == NULL) {
20802             result = NULL;
20803             goto done;
20804         }
20805         k = &PyTuple_GET_ITEM(kwtuple, 0);
20806         pos = i = 0;
20807         while (PyDict_Next(kwargs, &pos, &k[i], &k[i+1])) {
20808             Py_INCREF(k[i]);
20809             Py_INCREF(k[i+1]);
20810             i += 2;
20811         }
20812         nk = i / 2;
20813     }
20814     else {
20815         kwtuple = NULL;
20816         k = NULL;
20817     }
20818     closure = PyFunction_GET_CLOSURE(func);
20819 #if PY_MAJOR_VERSION >= 3
20820     kwdefs = PyFunction_GET_KW_DEFAULTS(func);
20821 #endif
20822     if (argdefs != NULL) {
20823         d = &PyTuple_GET_ITEM(argdefs, 0);
20824         nd = Py_SIZE(argdefs);
20825     }
20826     else {
20827         d = NULL;
20828         nd = 0;
20829     }
20830 #if PY_MAJOR_VERSION >= 3
20831     result = PyEval_EvalCodeEx((PyObject*)co, globals, (PyObject *)NULL,
20832                                args, (int)nargs,
20833                                k, (int)nk,
20834                                d, (int)nd, kwdefs, closure);
20835 #else
20836     result = PyEval_EvalCodeEx(co, globals, (PyObject *)NULL,
20837                                args, (int)nargs,
20838                                k, (int)nk,
20839                                d, (int)nd, closure);
20840 #endif
20841     Py_XDECREF(kwtuple);
20842 done:
20843     Py_LeaveRecursiveCall();
20844     return result;
20845 }
20846 #endif
20847 #endif
20848 
20849 /* PyObjectCall */
20850 #if CYTHON_COMPILING_IN_CPYTHON
__Pyx_PyObject_Call(PyObject * func,PyObject * arg,PyObject * kw)20851 static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw) {
20852     PyObject *result;
20853     ternaryfunc call = func->ob_type->tp_call;
20854     if (unlikely(!call))
20855         return PyObject_Call(func, arg, kw);
20856     if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object")))
20857         return NULL;
20858     result = (*call)(func, arg, kw);
20859     Py_LeaveRecursiveCall();
20860     if (unlikely(!result) && unlikely(!PyErr_Occurred())) {
20861         PyErr_SetString(
20862             PyExc_SystemError,
20863             "NULL result without error in PyObject_Call");
20864     }
20865     return result;
20866 }
20867 #endif
20868 
20869 /* PyObjectCallMethO */
20870 #if CYTHON_COMPILING_IN_CPYTHON
__Pyx_PyObject_CallMethO(PyObject * func,PyObject * arg)20871 static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg) {
20872     PyObject *self, *result;
20873     PyCFunction cfunc;
20874     cfunc = PyCFunction_GET_FUNCTION(func);
20875     self = PyCFunction_GET_SELF(func);
20876     if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object")))
20877         return NULL;
20878     result = cfunc(self, arg);
20879     Py_LeaveRecursiveCall();
20880     if (unlikely(!result) && unlikely(!PyErr_Occurred())) {
20881         PyErr_SetString(
20882             PyExc_SystemError,
20883             "NULL result without error in PyObject_Call");
20884     }
20885     return result;
20886 }
20887 #endif
20888 
20889 /* PyObjectCallNoArg */
20890 #if CYTHON_COMPILING_IN_CPYTHON
__Pyx_PyObject_CallNoArg(PyObject * func)20891 static CYTHON_INLINE PyObject* __Pyx_PyObject_CallNoArg(PyObject *func) {
20892 #if CYTHON_FAST_PYCALL
20893     if (PyFunction_Check(func)) {
20894         return __Pyx_PyFunction_FastCall(func, NULL, 0);
20895     }
20896 #endif
20897 #ifdef __Pyx_CyFunction_USED
20898     if (likely(PyCFunction_Check(func) || __Pyx_CyFunction_Check(func)))
20899 #else
20900     if (likely(PyCFunction_Check(func)))
20901 #endif
20902     {
20903         if (likely(PyCFunction_GET_FLAGS(func) & METH_NOARGS)) {
20904             return __Pyx_PyObject_CallMethO(func, NULL);
20905         }
20906     }
20907     return __Pyx_PyObject_Call(func, __pyx_empty_tuple, NULL);
20908 }
20909 #endif
20910 
20911 /* PyCFunctionFastCall */
20912 #if CYTHON_FAST_PYCCALL
__Pyx_PyCFunction_FastCall(PyObject * func_obj,PyObject ** args,Py_ssize_t nargs)20913 static CYTHON_INLINE PyObject * __Pyx_PyCFunction_FastCall(PyObject *func_obj, PyObject **args, Py_ssize_t nargs) {
20914     PyCFunctionObject *func = (PyCFunctionObject*)func_obj;
20915     PyCFunction meth = PyCFunction_GET_FUNCTION(func);
20916     PyObject *self = PyCFunction_GET_SELF(func);
20917     int flags = PyCFunction_GET_FLAGS(func);
20918     assert(PyCFunction_Check(func));
20919     assert(METH_FASTCALL == (flags & ~(METH_CLASS | METH_STATIC | METH_COEXIST | METH_KEYWORDS | METH_STACKLESS)));
20920     assert(nargs >= 0);
20921     assert(nargs == 0 || args != NULL);
20922     /* _PyCFunction_FastCallDict() must not be called with an exception set,
20923        because it may clear it (directly or indirectly) and so the
20924        caller loses its exception */
20925     assert(!PyErr_Occurred());
20926     if ((PY_VERSION_HEX < 0x030700A0) || unlikely(flags & METH_KEYWORDS)) {
20927         return (*((__Pyx_PyCFunctionFastWithKeywords)(void*)meth)) (self, args, nargs, NULL);
20928     } else {
20929         return (*((__Pyx_PyCFunctionFast)(void*)meth)) (self, args, nargs);
20930     }
20931 }
20932 #endif
20933 
20934 /* PyObjectCallOneArg */
20935 #if CYTHON_COMPILING_IN_CPYTHON
__Pyx__PyObject_CallOneArg(PyObject * func,PyObject * arg)20936 static PyObject* __Pyx__PyObject_CallOneArg(PyObject *func, PyObject *arg) {
20937     PyObject *result;
20938     PyObject *args = PyTuple_New(1);
20939     if (unlikely(!args)) return NULL;
20940     Py_INCREF(arg);
20941     PyTuple_SET_ITEM(args, 0, arg);
20942     result = __Pyx_PyObject_Call(func, args, NULL);
20943     Py_DECREF(args);
20944     return result;
20945 }
__Pyx_PyObject_CallOneArg(PyObject * func,PyObject * arg)20946 static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg) {
20947 #if CYTHON_FAST_PYCALL
20948     if (PyFunction_Check(func)) {
20949         return __Pyx_PyFunction_FastCall(func, &arg, 1);
20950     }
20951 #endif
20952     if (likely(PyCFunction_Check(func))) {
20953         if (likely(PyCFunction_GET_FLAGS(func) & METH_O)) {
20954             return __Pyx_PyObject_CallMethO(func, arg);
20955 #if CYTHON_FAST_PYCCALL
20956         } else if (PyCFunction_GET_FLAGS(func) & METH_FASTCALL) {
20957             return __Pyx_PyCFunction_FastCall(func, &arg, 1);
20958 #endif
20959         }
20960     }
20961     return __Pyx__PyObject_CallOneArg(func, arg);
20962 }
20963 #else
__Pyx_PyObject_CallOneArg(PyObject * func,PyObject * arg)20964 static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg) {
20965     PyObject *result;
20966     PyObject *args = PyTuple_Pack(1, arg);
20967     if (unlikely(!args)) return NULL;
20968     result = __Pyx_PyObject_Call(func, args, NULL);
20969     Py_DECREF(args);
20970     return result;
20971 }
20972 #endif
20973 
20974 /* PyObjectCall2Args */
__Pyx_PyObject_Call2Args(PyObject * function,PyObject * arg1,PyObject * arg2)20975 static CYTHON_UNUSED PyObject* __Pyx_PyObject_Call2Args(PyObject* function, PyObject* arg1, PyObject* arg2) {
20976     PyObject *args, *result = NULL;
20977     #if CYTHON_FAST_PYCALL
20978     if (PyFunction_Check(function)) {
20979         PyObject *args[2] = {arg1, arg2};
20980         return __Pyx_PyFunction_FastCall(function, args, 2);
20981     }
20982     #endif
20983     #if CYTHON_FAST_PYCCALL
20984     if (__Pyx_PyFastCFunction_Check(function)) {
20985         PyObject *args[2] = {arg1, arg2};
20986         return __Pyx_PyCFunction_FastCall(function, args, 2);
20987     }
20988     #endif
20989     args = PyTuple_New(2);
20990     if (unlikely(!args)) goto done;
20991     Py_INCREF(arg1);
20992     PyTuple_SET_ITEM(args, 0, arg1);
20993     Py_INCREF(arg2);
20994     PyTuple_SET_ITEM(args, 1, arg2);
20995     Py_INCREF(function);
20996     result = __Pyx_PyObject_Call(function, args, NULL);
20997     Py_DECREF(args);
20998     Py_DECREF(function);
20999 done:
21000     return result;
21001 }
21002 
21003 /* RaiseException */
21004 #if PY_MAJOR_VERSION < 3
__Pyx_Raise(PyObject * type,PyObject * value,PyObject * tb,CYTHON_UNUSED PyObject * cause)21005 static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb,
21006                         CYTHON_UNUSED PyObject *cause) {
21007     __Pyx_PyThreadState_declare
21008     Py_XINCREF(type);
21009     if (!value || value == Py_None)
21010         value = NULL;
21011     else
21012         Py_INCREF(value);
21013     if (!tb || tb == Py_None)
21014         tb = NULL;
21015     else {
21016         Py_INCREF(tb);
21017         if (!PyTraceBack_Check(tb)) {
21018             PyErr_SetString(PyExc_TypeError,
21019                 "raise: arg 3 must be a traceback or None");
21020             goto raise_error;
21021         }
21022     }
21023     if (PyType_Check(type)) {
21024 #if CYTHON_COMPILING_IN_PYPY
21025         if (!value) {
21026             Py_INCREF(Py_None);
21027             value = Py_None;
21028         }
21029 #endif
21030         PyErr_NormalizeException(&type, &value, &tb);
21031     } else {
21032         if (value) {
21033             PyErr_SetString(PyExc_TypeError,
21034                 "instance exception may not have a separate value");
21035             goto raise_error;
21036         }
21037         value = type;
21038         type = (PyObject*) Py_TYPE(type);
21039         Py_INCREF(type);
21040         if (!PyType_IsSubtype((PyTypeObject *)type, (PyTypeObject *)PyExc_BaseException)) {
21041             PyErr_SetString(PyExc_TypeError,
21042                 "raise: exception class must be a subclass of BaseException");
21043             goto raise_error;
21044         }
21045     }
21046     __Pyx_PyThreadState_assign
21047     __Pyx_ErrRestore(type, value, tb);
21048     return;
21049 raise_error:
21050     Py_XDECREF(value);
21051     Py_XDECREF(type);
21052     Py_XDECREF(tb);
21053     return;
21054 }
21055 #else
__Pyx_Raise(PyObject * type,PyObject * value,PyObject * tb,PyObject * cause)21056 static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause) {
21057     PyObject* owned_instance = NULL;
21058     if (tb == Py_None) {
21059         tb = 0;
21060     } else if (tb && !PyTraceBack_Check(tb)) {
21061         PyErr_SetString(PyExc_TypeError,
21062             "raise: arg 3 must be a traceback or None");
21063         goto bad;
21064     }
21065     if (value == Py_None)
21066         value = 0;
21067     if (PyExceptionInstance_Check(type)) {
21068         if (value) {
21069             PyErr_SetString(PyExc_TypeError,
21070                 "instance exception may not have a separate value");
21071             goto bad;
21072         }
21073         value = type;
21074         type = (PyObject*) Py_TYPE(value);
21075     } else if (PyExceptionClass_Check(type)) {
21076         PyObject *instance_class = NULL;
21077         if (value && PyExceptionInstance_Check(value)) {
21078             instance_class = (PyObject*) Py_TYPE(value);
21079             if (instance_class != type) {
21080                 int is_subclass = PyObject_IsSubclass(instance_class, type);
21081                 if (!is_subclass) {
21082                     instance_class = NULL;
21083                 } else if (unlikely(is_subclass == -1)) {
21084                     goto bad;
21085                 } else {
21086                     type = instance_class;
21087                 }
21088             }
21089         }
21090         if (!instance_class) {
21091             PyObject *args;
21092             if (!value)
21093                 args = PyTuple_New(0);
21094             else if (PyTuple_Check(value)) {
21095                 Py_INCREF(value);
21096                 args = value;
21097             } else
21098                 args = PyTuple_Pack(1, value);
21099             if (!args)
21100                 goto bad;
21101             owned_instance = PyObject_Call(type, args, NULL);
21102             Py_DECREF(args);
21103             if (!owned_instance)
21104                 goto bad;
21105             value = owned_instance;
21106             if (!PyExceptionInstance_Check(value)) {
21107                 PyErr_Format(PyExc_TypeError,
21108                              "calling %R should have returned an instance of "
21109                              "BaseException, not %R",
21110                              type, Py_TYPE(value));
21111                 goto bad;
21112             }
21113         }
21114     } else {
21115         PyErr_SetString(PyExc_TypeError,
21116             "raise: exception class must be a subclass of BaseException");
21117         goto bad;
21118     }
21119     if (cause) {
21120         PyObject *fixed_cause;
21121         if (cause == Py_None) {
21122             fixed_cause = NULL;
21123         } else if (PyExceptionClass_Check(cause)) {
21124             fixed_cause = PyObject_CallObject(cause, NULL);
21125             if (fixed_cause == NULL)
21126                 goto bad;
21127         } else if (PyExceptionInstance_Check(cause)) {
21128             fixed_cause = cause;
21129             Py_INCREF(fixed_cause);
21130         } else {
21131             PyErr_SetString(PyExc_TypeError,
21132                             "exception causes must derive from "
21133                             "BaseException");
21134             goto bad;
21135         }
21136         PyException_SetCause(value, fixed_cause);
21137     }
21138     PyErr_SetObject(type, value);
21139     if (tb) {
21140 #if CYTHON_COMPILING_IN_PYPY
21141         PyObject *tmp_type, *tmp_value, *tmp_tb;
21142         PyErr_Fetch(&tmp_type, &tmp_value, &tmp_tb);
21143         Py_INCREF(tb);
21144         PyErr_Restore(tmp_type, tmp_value, tb);
21145         Py_XDECREF(tmp_tb);
21146 #else
21147         PyThreadState *tstate = __Pyx_PyThreadState_Current;
21148         PyObject* tmp_tb = tstate->curexc_traceback;
21149         if (tb != tmp_tb) {
21150             Py_INCREF(tb);
21151             tstate->curexc_traceback = tb;
21152             Py_XDECREF(tmp_tb);
21153         }
21154 #endif
21155     }
21156 bad:
21157     Py_XDECREF(owned_instance);
21158     return;
21159 }
21160 #endif
21161 
21162 /* BytesEquals */
__Pyx_PyBytes_Equals(PyObject * s1,PyObject * s2,int equals)21163 static CYTHON_INLINE int __Pyx_PyBytes_Equals(PyObject* s1, PyObject* s2, int equals) {
21164 #if CYTHON_COMPILING_IN_PYPY
21165     return PyObject_RichCompareBool(s1, s2, equals);
21166 #else
21167     if (s1 == s2) {
21168         return (equals == Py_EQ);
21169     } else if (PyBytes_CheckExact(s1) & PyBytes_CheckExact(s2)) {
21170         const char *ps1, *ps2;
21171         Py_ssize_t length = PyBytes_GET_SIZE(s1);
21172         if (length != PyBytes_GET_SIZE(s2))
21173             return (equals == Py_NE);
21174         ps1 = PyBytes_AS_STRING(s1);
21175         ps2 = PyBytes_AS_STRING(s2);
21176         if (ps1[0] != ps2[0]) {
21177             return (equals == Py_NE);
21178         } else if (length == 1) {
21179             return (equals == Py_EQ);
21180         } else {
21181             int result;
21182 #if CYTHON_USE_UNICODE_INTERNALS
21183             Py_hash_t hash1, hash2;
21184             hash1 = ((PyBytesObject*)s1)->ob_shash;
21185             hash2 = ((PyBytesObject*)s2)->ob_shash;
21186             if (hash1 != hash2 && hash1 != -1 && hash2 != -1) {
21187                 return (equals == Py_NE);
21188             }
21189 #endif
21190             result = memcmp(ps1, ps2, (size_t)length);
21191             return (equals == Py_EQ) ? (result == 0) : (result != 0);
21192         }
21193     } else if ((s1 == Py_None) & PyBytes_CheckExact(s2)) {
21194         return (equals == Py_NE);
21195     } else if ((s2 == Py_None) & PyBytes_CheckExact(s1)) {
21196         return (equals == Py_NE);
21197     } else {
21198         int result;
21199         PyObject* py_result = PyObject_RichCompare(s1, s2, equals);
21200         if (!py_result)
21201             return -1;
21202         result = __Pyx_PyObject_IsTrue(py_result);
21203         Py_DECREF(py_result);
21204         return result;
21205     }
21206 #endif
21207 }
21208 
21209 /* UnicodeEquals */
__Pyx_PyUnicode_Equals(PyObject * s1,PyObject * s2,int equals)21210 static CYTHON_INLINE int __Pyx_PyUnicode_Equals(PyObject* s1, PyObject* s2, int equals) {
21211 #if CYTHON_COMPILING_IN_PYPY
21212     return PyObject_RichCompareBool(s1, s2, equals);
21213 #else
21214 #if PY_MAJOR_VERSION < 3
21215     PyObject* owned_ref = NULL;
21216 #endif
21217     int s1_is_unicode, s2_is_unicode;
21218     if (s1 == s2) {
21219         goto return_eq;
21220     }
21221     s1_is_unicode = PyUnicode_CheckExact(s1);
21222     s2_is_unicode = PyUnicode_CheckExact(s2);
21223 #if PY_MAJOR_VERSION < 3
21224     if ((s1_is_unicode & (!s2_is_unicode)) && PyString_CheckExact(s2)) {
21225         owned_ref = PyUnicode_FromObject(s2);
21226         if (unlikely(!owned_ref))
21227             return -1;
21228         s2 = owned_ref;
21229         s2_is_unicode = 1;
21230     } else if ((s2_is_unicode & (!s1_is_unicode)) && PyString_CheckExact(s1)) {
21231         owned_ref = PyUnicode_FromObject(s1);
21232         if (unlikely(!owned_ref))
21233             return -1;
21234         s1 = owned_ref;
21235         s1_is_unicode = 1;
21236     } else if (((!s2_is_unicode) & (!s1_is_unicode))) {
21237         return __Pyx_PyBytes_Equals(s1, s2, equals);
21238     }
21239 #endif
21240     if (s1_is_unicode & s2_is_unicode) {
21241         Py_ssize_t length;
21242         int kind;
21243         void *data1, *data2;
21244         if (unlikely(__Pyx_PyUnicode_READY(s1) < 0) || unlikely(__Pyx_PyUnicode_READY(s2) < 0))
21245             return -1;
21246         length = __Pyx_PyUnicode_GET_LENGTH(s1);
21247         if (length != __Pyx_PyUnicode_GET_LENGTH(s2)) {
21248             goto return_ne;
21249         }
21250 #if CYTHON_USE_UNICODE_INTERNALS
21251         {
21252             Py_hash_t hash1, hash2;
21253         #if CYTHON_PEP393_ENABLED
21254             hash1 = ((PyASCIIObject*)s1)->hash;
21255             hash2 = ((PyASCIIObject*)s2)->hash;
21256         #else
21257             hash1 = ((PyUnicodeObject*)s1)->hash;
21258             hash2 = ((PyUnicodeObject*)s2)->hash;
21259         #endif
21260             if (hash1 != hash2 && hash1 != -1 && hash2 != -1) {
21261                 goto return_ne;
21262             }
21263         }
21264 #endif
21265         kind = __Pyx_PyUnicode_KIND(s1);
21266         if (kind != __Pyx_PyUnicode_KIND(s2)) {
21267             goto return_ne;
21268         }
21269         data1 = __Pyx_PyUnicode_DATA(s1);
21270         data2 = __Pyx_PyUnicode_DATA(s2);
21271         if (__Pyx_PyUnicode_READ(kind, data1, 0) != __Pyx_PyUnicode_READ(kind, data2, 0)) {
21272             goto return_ne;
21273         } else if (length == 1) {
21274             goto return_eq;
21275         } else {
21276             int result = memcmp(data1, data2, (size_t)(length * kind));
21277             #if PY_MAJOR_VERSION < 3
21278             Py_XDECREF(owned_ref);
21279             #endif
21280             return (equals == Py_EQ) ? (result == 0) : (result != 0);
21281         }
21282     } else if ((s1 == Py_None) & s2_is_unicode) {
21283         goto return_ne;
21284     } else if ((s2 == Py_None) & s1_is_unicode) {
21285         goto return_ne;
21286     } else {
21287         int result;
21288         PyObject* py_result = PyObject_RichCompare(s1, s2, equals);
21289         #if PY_MAJOR_VERSION < 3
21290         Py_XDECREF(owned_ref);
21291         #endif
21292         if (!py_result)
21293             return -1;
21294         result = __Pyx_PyObject_IsTrue(py_result);
21295         Py_DECREF(py_result);
21296         return result;
21297     }
21298 return_eq:
21299     #if PY_MAJOR_VERSION < 3
21300     Py_XDECREF(owned_ref);
21301     #endif
21302     return (equals == Py_EQ);
21303 return_ne:
21304     #if PY_MAJOR_VERSION < 3
21305     Py_XDECREF(owned_ref);
21306     #endif
21307     return (equals == Py_NE);
21308 #endif
21309 }
21310 
21311 /* SliceObject */
__Pyx_PyObject_GetSlice(PyObject * obj,Py_ssize_t cstart,Py_ssize_t cstop,PyObject ** _py_start,PyObject ** _py_stop,PyObject ** _py_slice,int has_cstart,int has_cstop,CYTHON_UNUSED int wraparound)21312 static CYTHON_INLINE PyObject* __Pyx_PyObject_GetSlice(PyObject* obj,
21313         Py_ssize_t cstart, Py_ssize_t cstop,
21314         PyObject** _py_start, PyObject** _py_stop, PyObject** _py_slice,
21315         int has_cstart, int has_cstop, CYTHON_UNUSED int wraparound) {
21316 #if CYTHON_USE_TYPE_SLOTS
21317     PyMappingMethods* mp;
21318 #if PY_MAJOR_VERSION < 3
21319     PySequenceMethods* ms = Py_TYPE(obj)->tp_as_sequence;
21320     if (likely(ms && ms->sq_slice)) {
21321         if (!has_cstart) {
21322             if (_py_start && (*_py_start != Py_None)) {
21323                 cstart = __Pyx_PyIndex_AsSsize_t(*_py_start);
21324                 if ((cstart == (Py_ssize_t)-1) && PyErr_Occurred()) goto bad;
21325             } else
21326                 cstart = 0;
21327         }
21328         if (!has_cstop) {
21329             if (_py_stop && (*_py_stop != Py_None)) {
21330                 cstop = __Pyx_PyIndex_AsSsize_t(*_py_stop);
21331                 if ((cstop == (Py_ssize_t)-1) && PyErr_Occurred()) goto bad;
21332             } else
21333                 cstop = PY_SSIZE_T_MAX;
21334         }
21335         if (wraparound && unlikely((cstart < 0) | (cstop < 0)) && likely(ms->sq_length)) {
21336             Py_ssize_t l = ms->sq_length(obj);
21337             if (likely(l >= 0)) {
21338                 if (cstop < 0) {
21339                     cstop += l;
21340                     if (cstop < 0) cstop = 0;
21341                 }
21342                 if (cstart < 0) {
21343                     cstart += l;
21344                     if (cstart < 0) cstart = 0;
21345                 }
21346             } else {
21347                 if (!PyErr_ExceptionMatches(PyExc_OverflowError))
21348                     goto bad;
21349                 PyErr_Clear();
21350             }
21351         }
21352         return ms->sq_slice(obj, cstart, cstop);
21353     }
21354 #endif
21355     mp = Py_TYPE(obj)->tp_as_mapping;
21356     if (likely(mp && mp->mp_subscript))
21357 #endif
21358     {
21359         PyObject* result;
21360         PyObject *py_slice, *py_start, *py_stop;
21361         if (_py_slice) {
21362             py_slice = *_py_slice;
21363         } else {
21364             PyObject* owned_start = NULL;
21365             PyObject* owned_stop = NULL;
21366             if (_py_start) {
21367                 py_start = *_py_start;
21368             } else {
21369                 if (has_cstart) {
21370                     owned_start = py_start = PyInt_FromSsize_t(cstart);
21371                     if (unlikely(!py_start)) goto bad;
21372                 } else
21373                     py_start = Py_None;
21374             }
21375             if (_py_stop) {
21376                 py_stop = *_py_stop;
21377             } else {
21378                 if (has_cstop) {
21379                     owned_stop = py_stop = PyInt_FromSsize_t(cstop);
21380                     if (unlikely(!py_stop)) {
21381                         Py_XDECREF(owned_start);
21382                         goto bad;
21383                     }
21384                 } else
21385                     py_stop = Py_None;
21386             }
21387             py_slice = PySlice_New(py_start, py_stop, Py_None);
21388             Py_XDECREF(owned_start);
21389             Py_XDECREF(owned_stop);
21390             if (unlikely(!py_slice)) goto bad;
21391         }
21392 #if CYTHON_USE_TYPE_SLOTS
21393         result = mp->mp_subscript(obj, py_slice);
21394 #else
21395         result = PyObject_GetItem(obj, py_slice);
21396 #endif
21397         if (!_py_slice) {
21398             Py_DECREF(py_slice);
21399         }
21400         return result;
21401     }
21402     PyErr_Format(PyExc_TypeError,
21403         "'%.200s' object is unsliceable", Py_TYPE(obj)->tp_name);
21404 bad:
21405     return NULL;
21406 }
21407 
21408 /* GetException */
21409 #if CYTHON_FAST_THREAD_STATE
__Pyx__GetException(PyThreadState * tstate,PyObject ** type,PyObject ** value,PyObject ** tb)21410 static int __Pyx__GetException(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb)
21411 #else
21412 static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb)
21413 #endif
21414 {
21415     PyObject *local_type, *local_value, *local_tb;
21416 #if CYTHON_FAST_THREAD_STATE
21417     PyObject *tmp_type, *tmp_value, *tmp_tb;
21418     local_type = tstate->curexc_type;
21419     local_value = tstate->curexc_value;
21420     local_tb = tstate->curexc_traceback;
21421     tstate->curexc_type = 0;
21422     tstate->curexc_value = 0;
21423     tstate->curexc_traceback = 0;
21424 #else
21425     PyErr_Fetch(&local_type, &local_value, &local_tb);
21426 #endif
21427     PyErr_NormalizeException(&local_type, &local_value, &local_tb);
21428 #if CYTHON_FAST_THREAD_STATE
21429     if (unlikely(tstate->curexc_type))
21430 #else
21431     if (unlikely(PyErr_Occurred()))
21432 #endif
21433         goto bad;
21434     #if PY_MAJOR_VERSION >= 3
21435     if (local_tb) {
21436         if (unlikely(PyException_SetTraceback(local_value, local_tb) < 0))
21437             goto bad;
21438     }
21439     #endif
21440     Py_XINCREF(local_tb);
21441     Py_XINCREF(local_type);
21442     Py_XINCREF(local_value);
21443     *type = local_type;
21444     *value = local_value;
21445     *tb = local_tb;
21446 #if CYTHON_FAST_THREAD_STATE
21447     #if CYTHON_USE_EXC_INFO_STACK
21448     {
21449         _PyErr_StackItem *exc_info = tstate->exc_info;
21450         tmp_type = exc_info->exc_type;
21451         tmp_value = exc_info->exc_value;
21452         tmp_tb = exc_info->exc_traceback;
21453         exc_info->exc_type = local_type;
21454         exc_info->exc_value = local_value;
21455         exc_info->exc_traceback = local_tb;
21456     }
21457     #else
21458     tmp_type = tstate->exc_type;
21459     tmp_value = tstate->exc_value;
21460     tmp_tb = tstate->exc_traceback;
21461     tstate->exc_type = local_type;
21462     tstate->exc_value = local_value;
21463     tstate->exc_traceback = local_tb;
21464     #endif
21465     Py_XDECREF(tmp_type);
21466     Py_XDECREF(tmp_value);
21467     Py_XDECREF(tmp_tb);
21468 #else
21469     PyErr_SetExcInfo(local_type, local_value, local_tb);
21470 #endif
21471     return 0;
21472 bad:
21473     *type = 0;
21474     *value = 0;
21475     *tb = 0;
21476     Py_XDECREF(local_type);
21477     Py_XDECREF(local_value);
21478     Py_XDECREF(local_tb);
21479     return -1;
21480 }
21481 
21482 /* SwapException */
21483 #if CYTHON_FAST_THREAD_STATE
__Pyx__ExceptionSwap(PyThreadState * tstate,PyObject ** type,PyObject ** value,PyObject ** tb)21484 static CYTHON_INLINE void __Pyx__ExceptionSwap(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) {
21485     PyObject *tmp_type, *tmp_value, *tmp_tb;
21486     #if CYTHON_USE_EXC_INFO_STACK
21487     _PyErr_StackItem *exc_info = tstate->exc_info;
21488     tmp_type = exc_info->exc_type;
21489     tmp_value = exc_info->exc_value;
21490     tmp_tb = exc_info->exc_traceback;
21491     exc_info->exc_type = *type;
21492     exc_info->exc_value = *value;
21493     exc_info->exc_traceback = *tb;
21494     #else
21495     tmp_type = tstate->exc_type;
21496     tmp_value = tstate->exc_value;
21497     tmp_tb = tstate->exc_traceback;
21498     tstate->exc_type = *type;
21499     tstate->exc_value = *value;
21500     tstate->exc_traceback = *tb;
21501     #endif
21502     *type = tmp_type;
21503     *value = tmp_value;
21504     *tb = tmp_tb;
21505 }
21506 #else
__Pyx_ExceptionSwap(PyObject ** type,PyObject ** value,PyObject ** tb)21507 static CYTHON_INLINE void __Pyx_ExceptionSwap(PyObject **type, PyObject **value, PyObject **tb) {
21508     PyObject *tmp_type, *tmp_value, *tmp_tb;
21509     PyErr_GetExcInfo(&tmp_type, &tmp_value, &tmp_tb);
21510     PyErr_SetExcInfo(*type, *value, *tb);
21511     *type = tmp_type;
21512     *value = tmp_value;
21513     *tb = tmp_tb;
21514 }
21515 #endif
21516 
21517 /* GetTopmostException */
21518 #if CYTHON_USE_EXC_INFO_STACK
21519 static _PyErr_StackItem *
__Pyx_PyErr_GetTopmostException(PyThreadState * tstate)21520 __Pyx_PyErr_GetTopmostException(PyThreadState *tstate)
21521 {
21522     _PyErr_StackItem *exc_info = tstate->exc_info;
21523     while ((exc_info->exc_type == NULL || exc_info->exc_type == Py_None) &&
21524            exc_info->previous_item != NULL)
21525     {
21526         exc_info = exc_info->previous_item;
21527     }
21528     return exc_info;
21529 }
21530 #endif
21531 
21532 /* SaveResetException */
21533 #if CYTHON_FAST_THREAD_STATE
__Pyx__ExceptionSave(PyThreadState * tstate,PyObject ** type,PyObject ** value,PyObject ** tb)21534 static CYTHON_INLINE void __Pyx__ExceptionSave(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) {
21535     #if CYTHON_USE_EXC_INFO_STACK
21536     _PyErr_StackItem *exc_info = __Pyx_PyErr_GetTopmostException(tstate);
21537     *type = exc_info->exc_type;
21538     *value = exc_info->exc_value;
21539     *tb = exc_info->exc_traceback;
21540     #else
21541     *type = tstate->exc_type;
21542     *value = tstate->exc_value;
21543     *tb = tstate->exc_traceback;
21544     #endif
21545     Py_XINCREF(*type);
21546     Py_XINCREF(*value);
21547     Py_XINCREF(*tb);
21548 }
__Pyx__ExceptionReset(PyThreadState * tstate,PyObject * type,PyObject * value,PyObject * tb)21549 static CYTHON_INLINE void __Pyx__ExceptionReset(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb) {
21550     PyObject *tmp_type, *tmp_value, *tmp_tb;
21551     #if CYTHON_USE_EXC_INFO_STACK
21552     _PyErr_StackItem *exc_info = tstate->exc_info;
21553     tmp_type = exc_info->exc_type;
21554     tmp_value = exc_info->exc_value;
21555     tmp_tb = exc_info->exc_traceback;
21556     exc_info->exc_type = type;
21557     exc_info->exc_value = value;
21558     exc_info->exc_traceback = tb;
21559     #else
21560     tmp_type = tstate->exc_type;
21561     tmp_value = tstate->exc_value;
21562     tmp_tb = tstate->exc_traceback;
21563     tstate->exc_type = type;
21564     tstate->exc_value = value;
21565     tstate->exc_traceback = tb;
21566     #endif
21567     Py_XDECREF(tmp_type);
21568     Py_XDECREF(tmp_value);
21569     Py_XDECREF(tmp_tb);
21570 }
21571 #endif
21572 
21573 /* decode_c_string */
__Pyx_decode_c_string(const char * cstring,Py_ssize_t start,Py_ssize_t stop,const char * encoding,const char * errors,PyObject * (* decode_func)(const char * s,Py_ssize_t size,const char * errors))21574 static CYTHON_INLINE PyObject* __Pyx_decode_c_string(
21575          const char* cstring, Py_ssize_t start, Py_ssize_t stop,
21576          const char* encoding, const char* errors,
21577          PyObject* (*decode_func)(const char *s, Py_ssize_t size, const char *errors)) {
21578     Py_ssize_t length;
21579     if (unlikely((start < 0) | (stop < 0))) {
21580         size_t slen = strlen(cstring);
21581         if (unlikely(slen > (size_t) PY_SSIZE_T_MAX)) {
21582             PyErr_SetString(PyExc_OverflowError,
21583                             "c-string too long to convert to Python");
21584             return NULL;
21585         }
21586         length = (Py_ssize_t) slen;
21587         if (start < 0) {
21588             start += length;
21589             if (start < 0)
21590                 start = 0;
21591         }
21592         if (stop < 0)
21593             stop += length;
21594     }
21595     if (unlikely(stop <= start))
21596         return __Pyx_NewRef(__pyx_empty_unicode);
21597     length = stop - start;
21598     cstring += start;
21599     if (decode_func) {
21600         return decode_func(cstring, length, errors);
21601     } else {
21602         return PyUnicode_Decode(cstring, length, encoding, errors);
21603     }
21604 }
21605 
21606 /* UnpackUnboundCMethod */
__Pyx_TryUnpackUnboundCMethod(__Pyx_CachedCFunction * target)21607 static int __Pyx_TryUnpackUnboundCMethod(__Pyx_CachedCFunction* target) {
21608     PyObject *method;
21609     method = __Pyx_PyObject_GetAttrStr(target->type, *target->method_name);
21610     if (unlikely(!method))
21611         return -1;
21612     target->method = method;
21613 #if CYTHON_COMPILING_IN_CPYTHON
21614     #if PY_MAJOR_VERSION >= 3
21615     if (likely(__Pyx_TypeCheck(method, &PyMethodDescr_Type)))
21616     #endif
21617     {
21618         PyMethodDescrObject *descr = (PyMethodDescrObject*) method;
21619         target->func = descr->d_method->ml_meth;
21620         target->flag = descr->d_method->ml_flags & ~(METH_CLASS | METH_STATIC | METH_COEXIST | METH_STACKLESS);
21621     }
21622 #endif
21623     return 0;
21624 }
21625 
21626 /* CallUnboundCMethod1 */
21627 #if CYTHON_COMPILING_IN_CPYTHON
__Pyx_CallUnboundCMethod1(__Pyx_CachedCFunction * cfunc,PyObject * self,PyObject * arg)21628 static CYTHON_INLINE PyObject* __Pyx_CallUnboundCMethod1(__Pyx_CachedCFunction* cfunc, PyObject* self, PyObject* arg) {
21629     if (likely(cfunc->func)) {
21630         int flag = cfunc->flag;
21631         if (flag == METH_O) {
21632             return (*(cfunc->func))(self, arg);
21633         } else if (PY_VERSION_HEX >= 0x030600B1 && flag == METH_FASTCALL) {
21634             if (PY_VERSION_HEX >= 0x030700A0) {
21635                 return (*(__Pyx_PyCFunctionFast)(void*)(PyCFunction)cfunc->func)(self, &arg, 1);
21636             } else {
21637                 return (*(__Pyx_PyCFunctionFastWithKeywords)(void*)(PyCFunction)cfunc->func)(self, &arg, 1, NULL);
21638             }
21639         } else if (PY_VERSION_HEX >= 0x030700A0 && flag == (METH_FASTCALL | METH_KEYWORDS)) {
21640             return (*(__Pyx_PyCFunctionFastWithKeywords)(void*)(PyCFunction)cfunc->func)(self, &arg, 1, NULL);
21641         }
21642     }
21643     return __Pyx__CallUnboundCMethod1(cfunc, self, arg);
21644 }
21645 #endif
__Pyx__CallUnboundCMethod1(__Pyx_CachedCFunction * cfunc,PyObject * self,PyObject * arg)21646 static PyObject* __Pyx__CallUnboundCMethod1(__Pyx_CachedCFunction* cfunc, PyObject* self, PyObject* arg){
21647     PyObject *args, *result = NULL;
21648     if (unlikely(!cfunc->func && !cfunc->method) && unlikely(__Pyx_TryUnpackUnboundCMethod(cfunc) < 0)) return NULL;
21649 #if CYTHON_COMPILING_IN_CPYTHON
21650     if (cfunc->func && (cfunc->flag & METH_VARARGS)) {
21651         args = PyTuple_New(1);
21652         if (unlikely(!args)) goto bad;
21653         Py_INCREF(arg);
21654         PyTuple_SET_ITEM(args, 0, arg);
21655         if (cfunc->flag & METH_KEYWORDS)
21656             result = (*(PyCFunctionWithKeywords)(void*)(PyCFunction)cfunc->func)(self, args, NULL);
21657         else
21658             result = (*cfunc->func)(self, args);
21659     } else {
21660         args = PyTuple_New(2);
21661         if (unlikely(!args)) goto bad;
21662         Py_INCREF(self);
21663         PyTuple_SET_ITEM(args, 0, self);
21664         Py_INCREF(arg);
21665         PyTuple_SET_ITEM(args, 1, arg);
21666         result = __Pyx_PyObject_Call(cfunc->method, args, NULL);
21667     }
21668 #else
21669     args = PyTuple_Pack(2, self, arg);
21670     if (unlikely(!args)) goto bad;
21671     result = __Pyx_PyObject_Call(cfunc->method, args, NULL);
21672 #endif
21673 bad:
21674     Py_XDECREF(args);
21675     return result;
21676 }
21677 
21678 /* Import */
__Pyx_Import(PyObject * name,PyObject * from_list,int level)21679 static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level) {
21680     PyObject *empty_list = 0;
21681     PyObject *module = 0;
21682     PyObject *global_dict = 0;
21683     PyObject *empty_dict = 0;
21684     PyObject *list;
21685     #if PY_MAJOR_VERSION < 3
21686     PyObject *py_import;
21687     py_import = __Pyx_PyObject_GetAttrStr(__pyx_b, __pyx_n_s_import);
21688     if (!py_import)
21689         goto bad;
21690     #endif
21691     if (from_list)
21692         list = from_list;
21693     else {
21694         empty_list = PyList_New(0);
21695         if (!empty_list)
21696             goto bad;
21697         list = empty_list;
21698     }
21699     global_dict = PyModule_GetDict(__pyx_m);
21700     if (!global_dict)
21701         goto bad;
21702     empty_dict = PyDict_New();
21703     if (!empty_dict)
21704         goto bad;
21705     {
21706         #if PY_MAJOR_VERSION >= 3
21707         if (level == -1) {
21708             if ((1) && (strchr(__Pyx_MODULE_NAME, '.'))) {
21709                 module = PyImport_ImportModuleLevelObject(
21710                     name, global_dict, empty_dict, list, 1);
21711                 if (!module) {
21712                     if (!PyErr_ExceptionMatches(PyExc_ImportError))
21713                         goto bad;
21714                     PyErr_Clear();
21715                 }
21716             }
21717             level = 0;
21718         }
21719         #endif
21720         if (!module) {
21721             #if PY_MAJOR_VERSION < 3
21722             PyObject *py_level = PyInt_FromLong(level);
21723             if (!py_level)
21724                 goto bad;
21725             module = PyObject_CallFunctionObjArgs(py_import,
21726                 name, global_dict, empty_dict, list, py_level, (PyObject *)NULL);
21727             Py_DECREF(py_level);
21728             #else
21729             module = PyImport_ImportModuleLevelObject(
21730                 name, global_dict, empty_dict, list, level);
21731             #endif
21732         }
21733     }
21734 bad:
21735     #if PY_MAJOR_VERSION < 3
21736     Py_XDECREF(py_import);
21737     #endif
21738     Py_XDECREF(empty_list);
21739     Py_XDECREF(empty_dict);
21740     return module;
21741 }
21742 
21743 /* ImportFrom */
__Pyx_ImportFrom(PyObject * module,PyObject * name)21744 static PyObject* __Pyx_ImportFrom(PyObject* module, PyObject* name) {
21745     PyObject* value = __Pyx_PyObject_GetAttrStr(module, name);
21746     if (unlikely(!value) && PyErr_ExceptionMatches(PyExc_AttributeError)) {
21747         PyErr_Format(PyExc_ImportError,
21748         #if PY_MAJOR_VERSION < 3
21749             "cannot import name %.230s", PyString_AS_STRING(name));
21750         #else
21751             "cannot import name %S", name);
21752         #endif
21753     }
21754     return value;
21755 }
21756 
21757 /* HasAttr */
__Pyx_HasAttr(PyObject * o,PyObject * n)21758 static CYTHON_INLINE int __Pyx_HasAttr(PyObject *o, PyObject *n) {
21759     PyObject *r;
21760     if (unlikely(!__Pyx_PyBaseString_Check(n))) {
21761         PyErr_SetString(PyExc_TypeError,
21762                         "hasattr(): attribute name must be string");
21763         return -1;
21764     }
21765     r = __Pyx_GetAttr(o, n);
21766     if (unlikely(!r)) {
21767         PyErr_Clear();
21768         return 0;
21769     } else {
21770         Py_DECREF(r);
21771         return 1;
21772     }
21773 }
21774 
21775 /* PyObject_GenericGetAttrNoDict */
21776 #if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000
__Pyx_RaiseGenericGetAttributeError(PyTypeObject * tp,PyObject * attr_name)21777 static PyObject *__Pyx_RaiseGenericGetAttributeError(PyTypeObject *tp, PyObject *attr_name) {
21778     PyErr_Format(PyExc_AttributeError,
21779 #if PY_MAJOR_VERSION >= 3
21780                  "'%.50s' object has no attribute '%U'",
21781                  tp->tp_name, attr_name);
21782 #else
21783                  "'%.50s' object has no attribute '%.400s'",
21784                  tp->tp_name, PyString_AS_STRING(attr_name));
21785 #endif
21786     return NULL;
21787 }
__Pyx_PyObject_GenericGetAttrNoDict(PyObject * obj,PyObject * attr_name)21788 static CYTHON_INLINE PyObject* __Pyx_PyObject_GenericGetAttrNoDict(PyObject* obj, PyObject* attr_name) {
21789     PyObject *descr;
21790     PyTypeObject *tp = Py_TYPE(obj);
21791     if (unlikely(!PyString_Check(attr_name))) {
21792         return PyObject_GenericGetAttr(obj, attr_name);
21793     }
21794     assert(!tp->tp_dictoffset);
21795     descr = _PyType_Lookup(tp, attr_name);
21796     if (unlikely(!descr)) {
21797         return __Pyx_RaiseGenericGetAttributeError(tp, attr_name);
21798     }
21799     Py_INCREF(descr);
21800     #if PY_MAJOR_VERSION < 3
21801     if (likely(PyType_HasFeature(Py_TYPE(descr), Py_TPFLAGS_HAVE_CLASS)))
21802     #endif
21803     {
21804         descrgetfunc f = Py_TYPE(descr)->tp_descr_get;
21805         if (unlikely(f)) {
21806             PyObject *res = f(descr, obj, (PyObject *)tp);
21807             Py_DECREF(descr);
21808             return res;
21809         }
21810     }
21811     return descr;
21812 }
21813 #endif
21814 
21815 /* PyObject_GenericGetAttr */
21816 #if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000
__Pyx_PyObject_GenericGetAttr(PyObject * obj,PyObject * attr_name)21817 static PyObject* __Pyx_PyObject_GenericGetAttr(PyObject* obj, PyObject* attr_name) {
21818     if (unlikely(Py_TYPE(obj)->tp_dictoffset)) {
21819         return PyObject_GenericGetAttr(obj, attr_name);
21820     }
21821     return __Pyx_PyObject_GenericGetAttrNoDict(obj, attr_name);
21822 }
21823 #endif
21824 
21825 /* PyObjectGetAttrStrNoError */
__Pyx_PyObject_GetAttrStr_ClearAttributeError(void)21826 static void __Pyx_PyObject_GetAttrStr_ClearAttributeError(void) {
21827     __Pyx_PyThreadState_declare
21828     __Pyx_PyThreadState_assign
21829     if (likely(__Pyx_PyErr_ExceptionMatches(PyExc_AttributeError)))
21830         __Pyx_PyErr_Clear();
21831 }
__Pyx_PyObject_GetAttrStrNoError(PyObject * obj,PyObject * attr_name)21832 static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, PyObject* attr_name) {
21833     PyObject *result;
21834 #if CYTHON_COMPILING_IN_CPYTHON && CYTHON_USE_TYPE_SLOTS && PY_VERSION_HEX >= 0x030700B1
21835     PyTypeObject* tp = Py_TYPE(obj);
21836     if (likely(tp->tp_getattro == PyObject_GenericGetAttr)) {
21837         return _PyObject_GenericGetAttrWithDict(obj, attr_name, NULL, 1);
21838     }
21839 #endif
21840     result = __Pyx_PyObject_GetAttrStr(obj, attr_name);
21841     if (unlikely(!result)) {
21842         __Pyx_PyObject_GetAttrStr_ClearAttributeError();
21843     }
21844     return result;
21845 }
21846 
21847 /* SetupReduce */
__Pyx_setup_reduce_is_named(PyObject * meth,PyObject * name)21848 static int __Pyx_setup_reduce_is_named(PyObject* meth, PyObject* name) {
21849   int ret;
21850   PyObject *name_attr;
21851   name_attr = __Pyx_PyObject_GetAttrStr(meth, __pyx_n_s_name);
21852   if (likely(name_attr)) {
21853       ret = PyObject_RichCompareBool(name_attr, name, Py_EQ);
21854   } else {
21855       ret = -1;
21856   }
21857   if (unlikely(ret < 0)) {
21858       PyErr_Clear();
21859       ret = 0;
21860   }
21861   Py_XDECREF(name_attr);
21862   return ret;
21863 }
__Pyx_setup_reduce(PyObject * type_obj)21864 static int __Pyx_setup_reduce(PyObject* type_obj) {
21865     int ret = 0;
21866     PyObject *object_reduce = NULL;
21867     PyObject *object_reduce_ex = NULL;
21868     PyObject *reduce = NULL;
21869     PyObject *reduce_ex = NULL;
21870     PyObject *reduce_cython = NULL;
21871     PyObject *setstate = NULL;
21872     PyObject *setstate_cython = NULL;
21873 #if CYTHON_USE_PYTYPE_LOOKUP
21874     if (_PyType_Lookup((PyTypeObject*)type_obj, __pyx_n_s_getstate)) goto __PYX_GOOD;
21875 #else
21876     if (PyObject_HasAttr(type_obj, __pyx_n_s_getstate)) goto __PYX_GOOD;
21877 #endif
21878 #if CYTHON_USE_PYTYPE_LOOKUP
21879     object_reduce_ex = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto __PYX_BAD;
21880 #else
21881     object_reduce_ex = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto __PYX_BAD;
21882 #endif
21883     reduce_ex = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce_ex); if (unlikely(!reduce_ex)) goto __PYX_BAD;
21884     if (reduce_ex == object_reduce_ex) {
21885 #if CYTHON_USE_PYTYPE_LOOKUP
21886         object_reduce = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto __PYX_BAD;
21887 #else
21888         object_reduce = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto __PYX_BAD;
21889 #endif
21890         reduce = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce); if (unlikely(!reduce)) goto __PYX_BAD;
21891         if (reduce == object_reduce || __Pyx_setup_reduce_is_named(reduce, __pyx_n_s_reduce_cython)) {
21892             reduce_cython = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_n_s_reduce_cython);
21893             if (likely(reduce_cython)) {
21894                 ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce, reduce_cython); if (unlikely(ret < 0)) goto __PYX_BAD;
21895                 ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce_cython); if (unlikely(ret < 0)) goto __PYX_BAD;
21896             } else if (reduce == object_reduce || PyErr_Occurred()) {
21897                 goto __PYX_BAD;
21898             }
21899             setstate = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_setstate);
21900             if (!setstate) PyErr_Clear();
21901             if (!setstate || __Pyx_setup_reduce_is_named(setstate, __pyx_n_s_setstate_cython)) {
21902                 setstate_cython = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_n_s_setstate_cython);
21903                 if (likely(setstate_cython)) {
21904                     ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate, setstate_cython); if (unlikely(ret < 0)) goto __PYX_BAD;
21905                     ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate_cython); if (unlikely(ret < 0)) goto __PYX_BAD;
21906                 } else if (!setstate || PyErr_Occurred()) {
21907                     goto __PYX_BAD;
21908                 }
21909             }
21910             PyType_Modified((PyTypeObject*)type_obj);
21911         }
21912     }
21913     goto __PYX_GOOD;
21914 __PYX_BAD:
21915     if (!PyErr_Occurred())
21916         PyErr_Format(PyExc_RuntimeError, "Unable to initialize pickling for %s", ((PyTypeObject*)type_obj)->tp_name);
21917     ret = -1;
21918 __PYX_GOOD:
21919 #if !CYTHON_USE_PYTYPE_LOOKUP
21920     Py_XDECREF(object_reduce);
21921     Py_XDECREF(object_reduce_ex);
21922 #endif
21923     Py_XDECREF(reduce);
21924     Py_XDECREF(reduce_ex);
21925     Py_XDECREF(reduce_cython);
21926     Py_XDECREF(setstate);
21927     Py_XDECREF(setstate_cython);
21928     return ret;
21929 }
21930 
21931 /* SetVTable */
__Pyx_SetVtable(PyObject * dict,void * vtable)21932 static int __Pyx_SetVtable(PyObject *dict, void *vtable) {
21933 #if PY_VERSION_HEX >= 0x02070000
21934     PyObject *ob = PyCapsule_New(vtable, 0, 0);
21935 #else
21936     PyObject *ob = PyCObject_FromVoidPtr(vtable, 0);
21937 #endif
21938     if (!ob)
21939         goto bad;
21940     if (PyDict_SetItem(dict, __pyx_n_s_pyx_vtable, ob) < 0)
21941         goto bad;
21942     Py_DECREF(ob);
21943     return 0;
21944 bad:
21945     Py_XDECREF(ob);
21946     return -1;
21947 }
21948 
21949 /* TypeImport */
21950 #ifndef __PYX_HAVE_RT_ImportType
21951 #define __PYX_HAVE_RT_ImportType
__Pyx_ImportType(PyObject * module,const char * module_name,const char * class_name,size_t size,enum __Pyx_ImportType_CheckSize check_size)21952 static PyTypeObject *__Pyx_ImportType(PyObject *module, const char *module_name, const char *class_name,
21953     size_t size, enum __Pyx_ImportType_CheckSize check_size)
21954 {
21955     PyObject *result = 0;
21956     char warning[200];
21957     Py_ssize_t basicsize;
21958 #ifdef Py_LIMITED_API
21959     PyObject *py_basicsize;
21960 #endif
21961     result = PyObject_GetAttrString(module, class_name);
21962     if (!result)
21963         goto bad;
21964     if (!PyType_Check(result)) {
21965         PyErr_Format(PyExc_TypeError,
21966             "%.200s.%.200s is not a type object",
21967             module_name, class_name);
21968         goto bad;
21969     }
21970 #ifndef Py_LIMITED_API
21971     basicsize = ((PyTypeObject *)result)->tp_basicsize;
21972 #else
21973     py_basicsize = PyObject_GetAttrString(result, "__basicsize__");
21974     if (!py_basicsize)
21975         goto bad;
21976     basicsize = PyLong_AsSsize_t(py_basicsize);
21977     Py_DECREF(py_basicsize);
21978     py_basicsize = 0;
21979     if (basicsize == (Py_ssize_t)-1 && PyErr_Occurred())
21980         goto bad;
21981 #endif
21982     if ((size_t)basicsize < size) {
21983         PyErr_Format(PyExc_ValueError,
21984             "%.200s.%.200s size changed, may indicate binary incompatibility. "
21985             "Expected %zd from C header, got %zd from PyObject",
21986             module_name, class_name, size, basicsize);
21987         goto bad;
21988     }
21989     if (check_size == __Pyx_ImportType_CheckSize_Error && (size_t)basicsize != size) {
21990         PyErr_Format(PyExc_ValueError,
21991             "%.200s.%.200s size changed, may indicate binary incompatibility. "
21992             "Expected %zd from C header, got %zd from PyObject",
21993             module_name, class_name, size, basicsize);
21994         goto bad;
21995     }
21996     else if (check_size == __Pyx_ImportType_CheckSize_Warn && (size_t)basicsize > size) {
21997         PyOS_snprintf(warning, sizeof(warning),
21998             "%s.%s size changed, may indicate binary incompatibility. "
21999             "Expected %zd from C header, got %zd from PyObject",
22000             module_name, class_name, size, basicsize);
22001         if (PyErr_WarnEx(NULL, warning, 0) < 0) goto bad;
22002     }
22003     return (PyTypeObject *)result;
22004 bad:
22005     Py_XDECREF(result);
22006     return NULL;
22007 }
22008 #endif
22009 
22010 /* CLineInTraceback */
22011 #ifndef CYTHON_CLINE_IN_TRACEBACK
__Pyx_CLineForTraceback(CYTHON_NCP_UNUSED PyThreadState * tstate,int c_line)22012 static int __Pyx_CLineForTraceback(CYTHON_NCP_UNUSED PyThreadState *tstate, int c_line) {
22013     PyObject *use_cline;
22014     PyObject *ptype, *pvalue, *ptraceback;
22015 #if CYTHON_COMPILING_IN_CPYTHON
22016     PyObject **cython_runtime_dict;
22017 #endif
22018     if (unlikely(!__pyx_cython_runtime)) {
22019         return c_line;
22020     }
22021     __Pyx_ErrFetchInState(tstate, &ptype, &pvalue, &ptraceback);
22022 #if CYTHON_COMPILING_IN_CPYTHON
22023     cython_runtime_dict = _PyObject_GetDictPtr(__pyx_cython_runtime);
22024     if (likely(cython_runtime_dict)) {
22025         __PYX_PY_DICT_LOOKUP_IF_MODIFIED(
22026             use_cline, *cython_runtime_dict,
22027             __Pyx_PyDict_GetItemStr(*cython_runtime_dict, __pyx_n_s_cline_in_traceback))
22028     } else
22029 #endif
22030     {
22031       PyObject *use_cline_obj = __Pyx_PyObject_GetAttrStr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback);
22032       if (use_cline_obj) {
22033         use_cline = PyObject_Not(use_cline_obj) ? Py_False : Py_True;
22034         Py_DECREF(use_cline_obj);
22035       } else {
22036         PyErr_Clear();
22037         use_cline = NULL;
22038       }
22039     }
22040     if (!use_cline) {
22041         c_line = 0;
22042         PyObject_SetAttr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback, Py_False);
22043     }
22044     else if (use_cline == Py_False || (use_cline != Py_True && PyObject_Not(use_cline) != 0)) {
22045         c_line = 0;
22046     }
22047     __Pyx_ErrRestoreInState(tstate, ptype, pvalue, ptraceback);
22048     return c_line;
22049 }
22050 #endif
22051 
22052 /* CodeObjectCache */
__pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry * entries,int count,int code_line)22053 static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line) {
22054     int start = 0, mid = 0, end = count - 1;
22055     if (end >= 0 && code_line > entries[end].code_line) {
22056         return count;
22057     }
22058     while (start < end) {
22059         mid = start + (end - start) / 2;
22060         if (code_line < entries[mid].code_line) {
22061             end = mid;
22062         } else if (code_line > entries[mid].code_line) {
22063              start = mid + 1;
22064         } else {
22065             return mid;
22066         }
22067     }
22068     if (code_line <= entries[mid].code_line) {
22069         return mid;
22070     } else {
22071         return mid + 1;
22072     }
22073 }
__pyx_find_code_object(int code_line)22074 static PyCodeObject *__pyx_find_code_object(int code_line) {
22075     PyCodeObject* code_object;
22076     int pos;
22077     if (unlikely(!code_line) || unlikely(!__pyx_code_cache.entries)) {
22078         return NULL;
22079     }
22080     pos = __pyx_bisect_code_objects(__pyx_code_cache.entries, __pyx_code_cache.count, code_line);
22081     if (unlikely(pos >= __pyx_code_cache.count) || unlikely(__pyx_code_cache.entries[pos].code_line != code_line)) {
22082         return NULL;
22083     }
22084     code_object = __pyx_code_cache.entries[pos].code_object;
22085     Py_INCREF(code_object);
22086     return code_object;
22087 }
__pyx_insert_code_object(int code_line,PyCodeObject * code_object)22088 static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object) {
22089     int pos, i;
22090     __Pyx_CodeObjectCacheEntry* entries = __pyx_code_cache.entries;
22091     if (unlikely(!code_line)) {
22092         return;
22093     }
22094     if (unlikely(!entries)) {
22095         entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Malloc(64*sizeof(__Pyx_CodeObjectCacheEntry));
22096         if (likely(entries)) {
22097             __pyx_code_cache.entries = entries;
22098             __pyx_code_cache.max_count = 64;
22099             __pyx_code_cache.count = 1;
22100             entries[0].code_line = code_line;
22101             entries[0].code_object = code_object;
22102             Py_INCREF(code_object);
22103         }
22104         return;
22105     }
22106     pos = __pyx_bisect_code_objects(__pyx_code_cache.entries, __pyx_code_cache.count, code_line);
22107     if ((pos < __pyx_code_cache.count) && unlikely(__pyx_code_cache.entries[pos].code_line == code_line)) {
22108         PyCodeObject* tmp = entries[pos].code_object;
22109         entries[pos].code_object = code_object;
22110         Py_DECREF(tmp);
22111         return;
22112     }
22113     if (__pyx_code_cache.count == __pyx_code_cache.max_count) {
22114         int new_max = __pyx_code_cache.max_count + 64;
22115         entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Realloc(
22116             __pyx_code_cache.entries, ((size_t)new_max) * sizeof(__Pyx_CodeObjectCacheEntry));
22117         if (unlikely(!entries)) {
22118             return;
22119         }
22120         __pyx_code_cache.entries = entries;
22121         __pyx_code_cache.max_count = new_max;
22122     }
22123     for (i=__pyx_code_cache.count; i>pos; i--) {
22124         entries[i] = entries[i-1];
22125     }
22126     entries[pos].code_line = code_line;
22127     entries[pos].code_object = code_object;
22128     __pyx_code_cache.count++;
22129     Py_INCREF(code_object);
22130 }
22131 
22132 /* AddTraceback */
22133 #include "compile.h"
22134 #include "frameobject.h"
22135 #include "traceback.h"
__Pyx_CreateCodeObjectForTraceback(const char * funcname,int c_line,int py_line,const char * filename)22136 static PyCodeObject* __Pyx_CreateCodeObjectForTraceback(
22137             const char *funcname, int c_line,
22138             int py_line, const char *filename) {
22139     PyCodeObject *py_code = 0;
22140     PyObject *py_srcfile = 0;
22141     PyObject *py_funcname = 0;
22142     #if PY_MAJOR_VERSION < 3
22143     py_srcfile = PyString_FromString(filename);
22144     #else
22145     py_srcfile = PyUnicode_FromString(filename);
22146     #endif
22147     if (!py_srcfile) goto bad;
22148     if (c_line) {
22149         #if PY_MAJOR_VERSION < 3
22150         py_funcname = PyString_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line);
22151         #else
22152         py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line);
22153         #endif
22154     }
22155     else {
22156         #if PY_MAJOR_VERSION < 3
22157         py_funcname = PyString_FromString(funcname);
22158         #else
22159         py_funcname = PyUnicode_FromString(funcname);
22160         #endif
22161     }
22162     if (!py_funcname) goto bad;
22163     py_code = __Pyx_PyCode_New(
22164         0,
22165         0,
22166         0,
22167         0,
22168         0,
22169         __pyx_empty_bytes, /*PyObject *code,*/
22170         __pyx_empty_tuple, /*PyObject *consts,*/
22171         __pyx_empty_tuple, /*PyObject *names,*/
22172         __pyx_empty_tuple, /*PyObject *varnames,*/
22173         __pyx_empty_tuple, /*PyObject *freevars,*/
22174         __pyx_empty_tuple, /*PyObject *cellvars,*/
22175         py_srcfile,   /*PyObject *filename,*/
22176         py_funcname,  /*PyObject *name,*/
22177         py_line,
22178         __pyx_empty_bytes  /*PyObject *lnotab*/
22179     );
22180     Py_DECREF(py_srcfile);
22181     Py_DECREF(py_funcname);
22182     return py_code;
22183 bad:
22184     Py_XDECREF(py_srcfile);
22185     Py_XDECREF(py_funcname);
22186     return NULL;
22187 }
__Pyx_AddTraceback(const char * funcname,int c_line,int py_line,const char * filename)22188 static void __Pyx_AddTraceback(const char *funcname, int c_line,
22189                                int py_line, const char *filename) {
22190     PyCodeObject *py_code = 0;
22191     PyFrameObject *py_frame = 0;
22192     PyThreadState *tstate = __Pyx_PyThreadState_Current;
22193     if (c_line) {
22194         c_line = __Pyx_CLineForTraceback(tstate, c_line);
22195     }
22196     py_code = __pyx_find_code_object(c_line ? -c_line : py_line);
22197     if (!py_code) {
22198         py_code = __Pyx_CreateCodeObjectForTraceback(
22199             funcname, c_line, py_line, filename);
22200         if (!py_code) goto bad;
22201         __pyx_insert_code_object(c_line ? -c_line : py_line, py_code);
22202     }
22203     py_frame = PyFrame_New(
22204         tstate,            /*PyThreadState *tstate,*/
22205         py_code,           /*PyCodeObject *code,*/
22206         __pyx_d,    /*PyObject *globals,*/
22207         0                  /*PyObject *locals*/
22208     );
22209     if (!py_frame) goto bad;
22210     __Pyx_PyFrame_SetLineNumber(py_frame, py_line);
22211     PyTraceBack_Here(py_frame);
22212 bad:
22213     Py_XDECREF(py_code);
22214     Py_XDECREF(py_frame);
22215 }
22216 
22217 /* CIntToPy */
__Pyx_PyInt_From_int(int value)22218 static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) {
22219     const int neg_one = (int) ((int) 0 - (int) 1), const_zero = (int) 0;
22220     const int is_unsigned = neg_one > const_zero;
22221     if (is_unsigned) {
22222         if (sizeof(int) < sizeof(long)) {
22223             return PyInt_FromLong((long) value);
22224         } else if (sizeof(int) <= sizeof(unsigned long)) {
22225             return PyLong_FromUnsignedLong((unsigned long) value);
22226 #ifdef HAVE_LONG_LONG
22227         } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) {
22228             return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
22229 #endif
22230         }
22231     } else {
22232         if (sizeof(int) <= sizeof(long)) {
22233             return PyInt_FromLong((long) value);
22234 #ifdef HAVE_LONG_LONG
22235         } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) {
22236             return PyLong_FromLongLong((PY_LONG_LONG) value);
22237 #endif
22238         }
22239     }
22240     {
22241         int one = 1; int little = (int)*(unsigned char *)&one;
22242         unsigned char *bytes = (unsigned char *)&value;
22243         return _PyLong_FromByteArray(bytes, sizeof(int),
22244                                      little, !is_unsigned);
22245     }
22246 }
22247 
22248 /* CIntFromPyVerify */
22249 #define __PYX_VERIFY_RETURN_INT(target_type, func_type, func_value)\
22250     __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 0)
22251 #define __PYX_VERIFY_RETURN_INT_EXC(target_type, func_type, func_value)\
22252     __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 1)
22253 #define __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, exc)\
22254     {\
22255         func_type value = func_value;\
22256         if (sizeof(target_type) < sizeof(func_type)) {\
22257             if (unlikely(value != (func_type) (target_type) value)) {\
22258                 func_type zero = 0;\
22259                 if (exc && unlikely(value == (func_type)-1 && PyErr_Occurred()))\
22260                     return (target_type) -1;\
22261                 if (is_unsigned && unlikely(value < zero))\
22262                     goto raise_neg_overflow;\
22263                 else\
22264                     goto raise_overflow;\
22265             }\
22266         }\
22267         return (target_type) value;\
22268     }
22269 
22270 /* CIntToPy */
__Pyx_PyInt_From_unsigned_int(unsigned int value)22271 static CYTHON_INLINE PyObject* __Pyx_PyInt_From_unsigned_int(unsigned int value) {
22272     const unsigned int neg_one = (unsigned int) ((unsigned int) 0 - (unsigned int) 1), const_zero = (unsigned int) 0;
22273     const int is_unsigned = neg_one > const_zero;
22274     if (is_unsigned) {
22275         if (sizeof(unsigned int) < sizeof(long)) {
22276             return PyInt_FromLong((long) value);
22277         } else if (sizeof(unsigned int) <= sizeof(unsigned long)) {
22278             return PyLong_FromUnsignedLong((unsigned long) value);
22279 #ifdef HAVE_LONG_LONG
22280         } else if (sizeof(unsigned int) <= sizeof(unsigned PY_LONG_LONG)) {
22281             return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
22282 #endif
22283         }
22284     } else {
22285         if (sizeof(unsigned int) <= sizeof(long)) {
22286             return PyInt_FromLong((long) value);
22287 #ifdef HAVE_LONG_LONG
22288         } else if (sizeof(unsigned int) <= sizeof(PY_LONG_LONG)) {
22289             return PyLong_FromLongLong((PY_LONG_LONG) value);
22290 #endif
22291         }
22292     }
22293     {
22294         int one = 1; int little = (int)*(unsigned char *)&one;
22295         unsigned char *bytes = (unsigned char *)&value;
22296         return _PyLong_FromByteArray(bytes, sizeof(unsigned int),
22297                                      little, !is_unsigned);
22298     }
22299 }
22300 
22301 /* CIntToPy */
__Pyx_PyInt_From_unsigned_short(unsigned short value)22302 static CYTHON_INLINE PyObject* __Pyx_PyInt_From_unsigned_short(unsigned short value) {
22303     const unsigned short neg_one = (unsigned short) ((unsigned short) 0 - (unsigned short) 1), const_zero = (unsigned short) 0;
22304     const int is_unsigned = neg_one > const_zero;
22305     if (is_unsigned) {
22306         if (sizeof(unsigned short) < sizeof(long)) {
22307             return PyInt_FromLong((long) value);
22308         } else if (sizeof(unsigned short) <= sizeof(unsigned long)) {
22309             return PyLong_FromUnsignedLong((unsigned long) value);
22310 #ifdef HAVE_LONG_LONG
22311         } else if (sizeof(unsigned short) <= sizeof(unsigned PY_LONG_LONG)) {
22312             return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
22313 #endif
22314         }
22315     } else {
22316         if (sizeof(unsigned short) <= sizeof(long)) {
22317             return PyInt_FromLong((long) value);
22318 #ifdef HAVE_LONG_LONG
22319         } else if (sizeof(unsigned short) <= sizeof(PY_LONG_LONG)) {
22320             return PyLong_FromLongLong((PY_LONG_LONG) value);
22321 #endif
22322         }
22323     }
22324     {
22325         int one = 1; int little = (int)*(unsigned char *)&one;
22326         unsigned char *bytes = (unsigned char *)&value;
22327         return _PyLong_FromByteArray(bytes, sizeof(unsigned short),
22328                                      little, !is_unsigned);
22329     }
22330 }
22331 
22332 /* CIntToPy */
__Pyx_PyInt_From_long(long value)22333 static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) {
22334     const long neg_one = (long) ((long) 0 - (long) 1), const_zero = (long) 0;
22335     const int is_unsigned = neg_one > const_zero;
22336     if (is_unsigned) {
22337         if (sizeof(long) < sizeof(long)) {
22338             return PyInt_FromLong((long) value);
22339         } else if (sizeof(long) <= sizeof(unsigned long)) {
22340             return PyLong_FromUnsignedLong((unsigned long) value);
22341 #ifdef HAVE_LONG_LONG
22342         } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) {
22343             return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
22344 #endif
22345         }
22346     } else {
22347         if (sizeof(long) <= sizeof(long)) {
22348             return PyInt_FromLong((long) value);
22349 #ifdef HAVE_LONG_LONG
22350         } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) {
22351             return PyLong_FromLongLong((PY_LONG_LONG) value);
22352 #endif
22353         }
22354     }
22355     {
22356         int one = 1; int little = (int)*(unsigned char *)&one;
22357         unsigned char *bytes = (unsigned char *)&value;
22358         return _PyLong_FromByteArray(bytes, sizeof(long),
22359                                      little, !is_unsigned);
22360     }
22361 }
22362 
22363 /* CIntToPy */
__Pyx_PyInt_From_uint16_t(uint16_t value)22364 static CYTHON_INLINE PyObject* __Pyx_PyInt_From_uint16_t(uint16_t value) {
22365     const uint16_t neg_one = (uint16_t) ((uint16_t) 0 - (uint16_t) 1), const_zero = (uint16_t) 0;
22366     const int is_unsigned = neg_one > const_zero;
22367     if (is_unsigned) {
22368         if (sizeof(uint16_t) < sizeof(long)) {
22369             return PyInt_FromLong((long) value);
22370         } else if (sizeof(uint16_t) <= sizeof(unsigned long)) {
22371             return PyLong_FromUnsignedLong((unsigned long) value);
22372 #ifdef HAVE_LONG_LONG
22373         } else if (sizeof(uint16_t) <= sizeof(unsigned PY_LONG_LONG)) {
22374             return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
22375 #endif
22376         }
22377     } else {
22378         if (sizeof(uint16_t) <= sizeof(long)) {
22379             return PyInt_FromLong((long) value);
22380 #ifdef HAVE_LONG_LONG
22381         } else if (sizeof(uint16_t) <= sizeof(PY_LONG_LONG)) {
22382             return PyLong_FromLongLong((PY_LONG_LONG) value);
22383 #endif
22384         }
22385     }
22386     {
22387         int one = 1; int little = (int)*(unsigned char *)&one;
22388         unsigned char *bytes = (unsigned char *)&value;
22389         return _PyLong_FromByteArray(bytes, sizeof(uint16_t),
22390                                      little, !is_unsigned);
22391     }
22392 }
22393 
22394 /* CIntFromPy */
__Pyx_PyInt_As_int(PyObject * x)22395 static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) {
22396     const int neg_one = (int) ((int) 0 - (int) 1), const_zero = (int) 0;
22397     const int is_unsigned = neg_one > const_zero;
22398 #if PY_MAJOR_VERSION < 3
22399     if (likely(PyInt_Check(x))) {
22400         if (sizeof(int) < sizeof(long)) {
22401             __PYX_VERIFY_RETURN_INT(int, long, PyInt_AS_LONG(x))
22402         } else {
22403             long val = PyInt_AS_LONG(x);
22404             if (is_unsigned && unlikely(val < 0)) {
22405                 goto raise_neg_overflow;
22406             }
22407             return (int) val;
22408         }
22409     } else
22410 #endif
22411     if (likely(PyLong_Check(x))) {
22412         if (is_unsigned) {
22413 #if CYTHON_USE_PYLONG_INTERNALS
22414             const digit* digits = ((PyLongObject*)x)->ob_digit;
22415             switch (Py_SIZE(x)) {
22416                 case  0: return (int) 0;
22417                 case  1: __PYX_VERIFY_RETURN_INT(int, digit, digits[0])
22418                 case 2:
22419                     if (8 * sizeof(int) > 1 * PyLong_SHIFT) {
22420                         if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
22421                             __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
22422                         } else if (8 * sizeof(int) >= 2 * PyLong_SHIFT) {
22423                             return (int) (((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]));
22424                         }
22425                     }
22426                     break;
22427                 case 3:
22428                     if (8 * sizeof(int) > 2 * PyLong_SHIFT) {
22429                         if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
22430                             __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
22431                         } else if (8 * sizeof(int) >= 3 * PyLong_SHIFT) {
22432                             return (int) (((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]));
22433                         }
22434                     }
22435                     break;
22436                 case 4:
22437                     if (8 * sizeof(int) > 3 * PyLong_SHIFT) {
22438                         if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
22439                             __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
22440                         } else if (8 * sizeof(int) >= 4 * PyLong_SHIFT) {
22441                             return (int) (((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]));
22442                         }
22443                     }
22444                     break;
22445             }
22446 #endif
22447 #if CYTHON_COMPILING_IN_CPYTHON
22448             if (unlikely(Py_SIZE(x) < 0)) {
22449                 goto raise_neg_overflow;
22450             }
22451 #else
22452             {
22453                 int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
22454                 if (unlikely(result < 0))
22455                     return (int) -1;
22456                 if (unlikely(result == 1))
22457                     goto raise_neg_overflow;
22458             }
22459 #endif
22460             if (sizeof(int) <= sizeof(unsigned long)) {
22461                 __PYX_VERIFY_RETURN_INT_EXC(int, unsigned long, PyLong_AsUnsignedLong(x))
22462 #ifdef HAVE_LONG_LONG
22463             } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) {
22464                 __PYX_VERIFY_RETURN_INT_EXC(int, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
22465 #endif
22466             }
22467         } else {
22468 #if CYTHON_USE_PYLONG_INTERNALS
22469             const digit* digits = ((PyLongObject*)x)->ob_digit;
22470             switch (Py_SIZE(x)) {
22471                 case  0: return (int) 0;
22472                 case -1: __PYX_VERIFY_RETURN_INT(int, sdigit, (sdigit) (-(sdigit)digits[0]))
22473                 case  1: __PYX_VERIFY_RETURN_INT(int,  digit, +digits[0])
22474                 case -2:
22475                     if (8 * sizeof(int) - 1 > 1 * PyLong_SHIFT) {
22476                         if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
22477                             __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
22478                         } else if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) {
22479                             return (int) (((int)-1)*(((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
22480                         }
22481                     }
22482                     break;
22483                 case 2:
22484                     if (8 * sizeof(int) > 1 * PyLong_SHIFT) {
22485                         if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
22486                             __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
22487                         } else if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) {
22488                             return (int) ((((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
22489                         }
22490                     }
22491                     break;
22492                 case -3:
22493                     if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) {
22494                         if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
22495                             __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
22496                         } else if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) {
22497                             return (int) (((int)-1)*(((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
22498                         }
22499                     }
22500                     break;
22501                 case 3:
22502                     if (8 * sizeof(int) > 2 * PyLong_SHIFT) {
22503                         if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
22504                             __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
22505                         } else if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) {
22506                             return (int) ((((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
22507                         }
22508                     }
22509                     break;
22510                 case -4:
22511                     if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) {
22512                         if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
22513                             __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
22514                         } else if (8 * sizeof(int) - 1 > 4 * PyLong_SHIFT) {
22515                             return (int) (((int)-1)*(((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
22516                         }
22517                     }
22518                     break;
22519                 case 4:
22520                     if (8 * sizeof(int) > 3 * PyLong_SHIFT) {
22521                         if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
22522                             __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
22523                         } else if (8 * sizeof(int) - 1 > 4 * PyLong_SHIFT) {
22524                             return (int) ((((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
22525                         }
22526                     }
22527                     break;
22528             }
22529 #endif
22530             if (sizeof(int) <= sizeof(long)) {
22531                 __PYX_VERIFY_RETURN_INT_EXC(int, long, PyLong_AsLong(x))
22532 #ifdef HAVE_LONG_LONG
22533             } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) {
22534                 __PYX_VERIFY_RETURN_INT_EXC(int, PY_LONG_LONG, PyLong_AsLongLong(x))
22535 #endif
22536             }
22537         }
22538         {
22539 #if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
22540             PyErr_SetString(PyExc_RuntimeError,
22541                             "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
22542 #else
22543             int val;
22544             PyObject *v = __Pyx_PyNumber_IntOrLong(x);
22545  #if PY_MAJOR_VERSION < 3
22546             if (likely(v) && !PyLong_Check(v)) {
22547                 PyObject *tmp = v;
22548                 v = PyNumber_Long(tmp);
22549                 Py_DECREF(tmp);
22550             }
22551  #endif
22552             if (likely(v)) {
22553                 int one = 1; int is_little = (int)*(unsigned char *)&one;
22554                 unsigned char *bytes = (unsigned char *)&val;
22555                 int ret = _PyLong_AsByteArray((PyLongObject *)v,
22556                                               bytes, sizeof(val),
22557                                               is_little, !is_unsigned);
22558                 Py_DECREF(v);
22559                 if (likely(!ret))
22560                     return val;
22561             }
22562 #endif
22563             return (int) -1;
22564         }
22565     } else {
22566         int val;
22567         PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
22568         if (!tmp) return (int) -1;
22569         val = __Pyx_PyInt_As_int(tmp);
22570         Py_DECREF(tmp);
22571         return val;
22572     }
22573 raise_overflow:
22574     PyErr_SetString(PyExc_OverflowError,
22575         "value too large to convert to int");
22576     return (int) -1;
22577 raise_neg_overflow:
22578     PyErr_SetString(PyExc_OverflowError,
22579         "can't convert negative value to int");
22580     return (int) -1;
22581 }
22582 
22583 /* CIntFromPy */
__Pyx_PyInt_As_enum__http_method(PyObject * x)22584 static CYTHON_INLINE enum http_method __Pyx_PyInt_As_enum__http_method(PyObject *x) {
22585     const enum http_method neg_one = (enum http_method) ((enum http_method) 0 - (enum http_method) 1), const_zero = (enum http_method) 0;
22586     const int is_unsigned = neg_one > const_zero;
22587 #if PY_MAJOR_VERSION < 3
22588     if (likely(PyInt_Check(x))) {
22589         if (sizeof(enum http_method) < sizeof(long)) {
22590             __PYX_VERIFY_RETURN_INT(enum http_method, long, PyInt_AS_LONG(x))
22591         } else {
22592             long val = PyInt_AS_LONG(x);
22593             if (is_unsigned && unlikely(val < 0)) {
22594                 goto raise_neg_overflow;
22595             }
22596             return (enum http_method) val;
22597         }
22598     } else
22599 #endif
22600     if (likely(PyLong_Check(x))) {
22601         if (is_unsigned) {
22602 #if CYTHON_USE_PYLONG_INTERNALS
22603             const digit* digits = ((PyLongObject*)x)->ob_digit;
22604             switch (Py_SIZE(x)) {
22605                 case  0: return (enum http_method) 0;
22606                 case  1: __PYX_VERIFY_RETURN_INT(enum http_method, digit, digits[0])
22607                 case 2:
22608                     if (8 * sizeof(enum http_method) > 1 * PyLong_SHIFT) {
22609                         if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
22610                             __PYX_VERIFY_RETURN_INT(enum http_method, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
22611                         } else if (8 * sizeof(enum http_method) >= 2 * PyLong_SHIFT) {
22612                             return (enum http_method) (((((enum http_method)digits[1]) << PyLong_SHIFT) | (enum http_method)digits[0]));
22613                         }
22614                     }
22615                     break;
22616                 case 3:
22617                     if (8 * sizeof(enum http_method) > 2 * PyLong_SHIFT) {
22618                         if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
22619                             __PYX_VERIFY_RETURN_INT(enum http_method, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
22620                         } else if (8 * sizeof(enum http_method) >= 3 * PyLong_SHIFT) {
22621                             return (enum http_method) (((((((enum http_method)digits[2]) << PyLong_SHIFT) | (enum http_method)digits[1]) << PyLong_SHIFT) | (enum http_method)digits[0]));
22622                         }
22623                     }
22624                     break;
22625                 case 4:
22626                     if (8 * sizeof(enum http_method) > 3 * PyLong_SHIFT) {
22627                         if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
22628                             __PYX_VERIFY_RETURN_INT(enum http_method, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
22629                         } else if (8 * sizeof(enum http_method) >= 4 * PyLong_SHIFT) {
22630                             return (enum http_method) (((((((((enum http_method)digits[3]) << PyLong_SHIFT) | (enum http_method)digits[2]) << PyLong_SHIFT) | (enum http_method)digits[1]) << PyLong_SHIFT) | (enum http_method)digits[0]));
22631                         }
22632                     }
22633                     break;
22634             }
22635 #endif
22636 #if CYTHON_COMPILING_IN_CPYTHON
22637             if (unlikely(Py_SIZE(x) < 0)) {
22638                 goto raise_neg_overflow;
22639             }
22640 #else
22641             {
22642                 int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
22643                 if (unlikely(result < 0))
22644                     return (enum http_method) -1;
22645                 if (unlikely(result == 1))
22646                     goto raise_neg_overflow;
22647             }
22648 #endif
22649             if (sizeof(enum http_method) <= sizeof(unsigned long)) {
22650                 __PYX_VERIFY_RETURN_INT_EXC(enum http_method, unsigned long, PyLong_AsUnsignedLong(x))
22651 #ifdef HAVE_LONG_LONG
22652             } else if (sizeof(enum http_method) <= sizeof(unsigned PY_LONG_LONG)) {
22653                 __PYX_VERIFY_RETURN_INT_EXC(enum http_method, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
22654 #endif
22655             }
22656         } else {
22657 #if CYTHON_USE_PYLONG_INTERNALS
22658             const digit* digits = ((PyLongObject*)x)->ob_digit;
22659             switch (Py_SIZE(x)) {
22660                 case  0: return (enum http_method) 0;
22661                 case -1: __PYX_VERIFY_RETURN_INT(enum http_method, sdigit, (sdigit) (-(sdigit)digits[0]))
22662                 case  1: __PYX_VERIFY_RETURN_INT(enum http_method,  digit, +digits[0])
22663                 case -2:
22664                     if (8 * sizeof(enum http_method) - 1 > 1 * PyLong_SHIFT) {
22665                         if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
22666                             __PYX_VERIFY_RETURN_INT(enum http_method, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
22667                         } else if (8 * sizeof(enum http_method) - 1 > 2 * PyLong_SHIFT) {
22668                             return (enum http_method) (((enum http_method)-1)*(((((enum http_method)digits[1]) << PyLong_SHIFT) | (enum http_method)digits[0])));
22669                         }
22670                     }
22671                     break;
22672                 case 2:
22673                     if (8 * sizeof(enum http_method) > 1 * PyLong_SHIFT) {
22674                         if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
22675                             __PYX_VERIFY_RETURN_INT(enum http_method, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
22676                         } else if (8 * sizeof(enum http_method) - 1 > 2 * PyLong_SHIFT) {
22677                             return (enum http_method) ((((((enum http_method)digits[1]) << PyLong_SHIFT) | (enum http_method)digits[0])));
22678                         }
22679                     }
22680                     break;
22681                 case -3:
22682                     if (8 * sizeof(enum http_method) - 1 > 2 * PyLong_SHIFT) {
22683                         if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
22684                             __PYX_VERIFY_RETURN_INT(enum http_method, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
22685                         } else if (8 * sizeof(enum http_method) - 1 > 3 * PyLong_SHIFT) {
22686                             return (enum http_method) (((enum http_method)-1)*(((((((enum http_method)digits[2]) << PyLong_SHIFT) | (enum http_method)digits[1]) << PyLong_SHIFT) | (enum http_method)digits[0])));
22687                         }
22688                     }
22689                     break;
22690                 case 3:
22691                     if (8 * sizeof(enum http_method) > 2 * PyLong_SHIFT) {
22692                         if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
22693                             __PYX_VERIFY_RETURN_INT(enum http_method, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
22694                         } else if (8 * sizeof(enum http_method) - 1 > 3 * PyLong_SHIFT) {
22695                             return (enum http_method) ((((((((enum http_method)digits[2]) << PyLong_SHIFT) | (enum http_method)digits[1]) << PyLong_SHIFT) | (enum http_method)digits[0])));
22696                         }
22697                     }
22698                     break;
22699                 case -4:
22700                     if (8 * sizeof(enum http_method) - 1 > 3 * PyLong_SHIFT) {
22701                         if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
22702                             __PYX_VERIFY_RETURN_INT(enum http_method, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
22703                         } else if (8 * sizeof(enum http_method) - 1 > 4 * PyLong_SHIFT) {
22704                             return (enum http_method) (((enum http_method)-1)*(((((((((enum http_method)digits[3]) << PyLong_SHIFT) | (enum http_method)digits[2]) << PyLong_SHIFT) | (enum http_method)digits[1]) << PyLong_SHIFT) | (enum http_method)digits[0])));
22705                         }
22706                     }
22707                     break;
22708                 case 4:
22709                     if (8 * sizeof(enum http_method) > 3 * PyLong_SHIFT) {
22710                         if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
22711                             __PYX_VERIFY_RETURN_INT(enum http_method, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
22712                         } else if (8 * sizeof(enum http_method) - 1 > 4 * PyLong_SHIFT) {
22713                             return (enum http_method) ((((((((((enum http_method)digits[3]) << PyLong_SHIFT) | (enum http_method)digits[2]) << PyLong_SHIFT) | (enum http_method)digits[1]) << PyLong_SHIFT) | (enum http_method)digits[0])));
22714                         }
22715                     }
22716                     break;
22717             }
22718 #endif
22719             if (sizeof(enum http_method) <= sizeof(long)) {
22720                 __PYX_VERIFY_RETURN_INT_EXC(enum http_method, long, PyLong_AsLong(x))
22721 #ifdef HAVE_LONG_LONG
22722             } else if (sizeof(enum http_method) <= sizeof(PY_LONG_LONG)) {
22723                 __PYX_VERIFY_RETURN_INT_EXC(enum http_method, PY_LONG_LONG, PyLong_AsLongLong(x))
22724 #endif
22725             }
22726         }
22727         {
22728 #if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
22729             PyErr_SetString(PyExc_RuntimeError,
22730                             "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
22731 #else
22732             enum http_method val;
22733             PyObject *v = __Pyx_PyNumber_IntOrLong(x);
22734  #if PY_MAJOR_VERSION < 3
22735             if (likely(v) && !PyLong_Check(v)) {
22736                 PyObject *tmp = v;
22737                 v = PyNumber_Long(tmp);
22738                 Py_DECREF(tmp);
22739             }
22740  #endif
22741             if (likely(v)) {
22742                 int one = 1; int is_little = (int)*(unsigned char *)&one;
22743                 unsigned char *bytes = (unsigned char *)&val;
22744                 int ret = _PyLong_AsByteArray((PyLongObject *)v,
22745                                               bytes, sizeof(val),
22746                                               is_little, !is_unsigned);
22747                 Py_DECREF(v);
22748                 if (likely(!ret))
22749                     return val;
22750             }
22751 #endif
22752             return (enum http_method) -1;
22753         }
22754     } else {
22755         enum http_method val;
22756         PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
22757         if (!tmp) return (enum http_method) -1;
22758         val = __Pyx_PyInt_As_enum__http_method(tmp);
22759         Py_DECREF(tmp);
22760         return val;
22761     }
22762 raise_overflow:
22763     PyErr_SetString(PyExc_OverflowError,
22764         "value too large to convert to enum http_method");
22765     return (enum http_method) -1;
22766 raise_neg_overflow:
22767     PyErr_SetString(PyExc_OverflowError,
22768         "can't convert negative value to enum http_method");
22769     return (enum http_method) -1;
22770 }
22771 
22772 /* CIntFromPy */
__Pyx_PyInt_As_size_t(PyObject * x)22773 static CYTHON_INLINE size_t __Pyx_PyInt_As_size_t(PyObject *x) {
22774     const size_t neg_one = (size_t) ((size_t) 0 - (size_t) 1), const_zero = (size_t) 0;
22775     const int is_unsigned = neg_one > const_zero;
22776 #if PY_MAJOR_VERSION < 3
22777     if (likely(PyInt_Check(x))) {
22778         if (sizeof(size_t) < sizeof(long)) {
22779             __PYX_VERIFY_RETURN_INT(size_t, long, PyInt_AS_LONG(x))
22780         } else {
22781             long val = PyInt_AS_LONG(x);
22782             if (is_unsigned && unlikely(val < 0)) {
22783                 goto raise_neg_overflow;
22784             }
22785             return (size_t) val;
22786         }
22787     } else
22788 #endif
22789     if (likely(PyLong_Check(x))) {
22790         if (is_unsigned) {
22791 #if CYTHON_USE_PYLONG_INTERNALS
22792             const digit* digits = ((PyLongObject*)x)->ob_digit;
22793             switch (Py_SIZE(x)) {
22794                 case  0: return (size_t) 0;
22795                 case  1: __PYX_VERIFY_RETURN_INT(size_t, digit, digits[0])
22796                 case 2:
22797                     if (8 * sizeof(size_t) > 1 * PyLong_SHIFT) {
22798                         if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
22799                             __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
22800                         } else if (8 * sizeof(size_t) >= 2 * PyLong_SHIFT) {
22801                             return (size_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
22802                         }
22803                     }
22804                     break;
22805                 case 3:
22806                     if (8 * sizeof(size_t) > 2 * PyLong_SHIFT) {
22807                         if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
22808                             __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
22809                         } else if (8 * sizeof(size_t) >= 3 * PyLong_SHIFT) {
22810                             return (size_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
22811                         }
22812                     }
22813                     break;
22814                 case 4:
22815                     if (8 * sizeof(size_t) > 3 * PyLong_SHIFT) {
22816                         if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
22817                             __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
22818                         } else if (8 * sizeof(size_t) >= 4 * PyLong_SHIFT) {
22819                             return (size_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
22820                         }
22821                     }
22822                     break;
22823             }
22824 #endif
22825 #if CYTHON_COMPILING_IN_CPYTHON
22826             if (unlikely(Py_SIZE(x) < 0)) {
22827                 goto raise_neg_overflow;
22828             }
22829 #else
22830             {
22831                 int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
22832                 if (unlikely(result < 0))
22833                     return (size_t) -1;
22834                 if (unlikely(result == 1))
22835                     goto raise_neg_overflow;
22836             }
22837 #endif
22838             if (sizeof(size_t) <= sizeof(unsigned long)) {
22839                 __PYX_VERIFY_RETURN_INT_EXC(size_t, unsigned long, PyLong_AsUnsignedLong(x))
22840 #ifdef HAVE_LONG_LONG
22841             } else if (sizeof(size_t) <= sizeof(unsigned PY_LONG_LONG)) {
22842                 __PYX_VERIFY_RETURN_INT_EXC(size_t, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
22843 #endif
22844             }
22845         } else {
22846 #if CYTHON_USE_PYLONG_INTERNALS
22847             const digit* digits = ((PyLongObject*)x)->ob_digit;
22848             switch (Py_SIZE(x)) {
22849                 case  0: return (size_t) 0;
22850                 case -1: __PYX_VERIFY_RETURN_INT(size_t, sdigit, (sdigit) (-(sdigit)digits[0]))
22851                 case  1: __PYX_VERIFY_RETURN_INT(size_t,  digit, +digits[0])
22852                 case -2:
22853                     if (8 * sizeof(size_t) - 1 > 1 * PyLong_SHIFT) {
22854                         if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
22855                             __PYX_VERIFY_RETURN_INT(size_t, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
22856                         } else if (8 * sizeof(size_t) - 1 > 2 * PyLong_SHIFT) {
22857                             return (size_t) (((size_t)-1)*(((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])));
22858                         }
22859                     }
22860                     break;
22861                 case 2:
22862                     if (8 * sizeof(size_t) > 1 * PyLong_SHIFT) {
22863                         if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
22864                             __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
22865                         } else if (8 * sizeof(size_t) - 1 > 2 * PyLong_SHIFT) {
22866                             return (size_t) ((((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])));
22867                         }
22868                     }
22869                     break;
22870                 case -3:
22871                     if (8 * sizeof(size_t) - 1 > 2 * PyLong_SHIFT) {
22872                         if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
22873                             __PYX_VERIFY_RETURN_INT(size_t, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
22874                         } else if (8 * sizeof(size_t) - 1 > 3 * PyLong_SHIFT) {
22875                             return (size_t) (((size_t)-1)*(((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])));
22876                         }
22877                     }
22878                     break;
22879                 case 3:
22880                     if (8 * sizeof(size_t) > 2 * PyLong_SHIFT) {
22881                         if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
22882                             __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
22883                         } else if (8 * sizeof(size_t) - 1 > 3 * PyLong_SHIFT) {
22884                             return (size_t) ((((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])));
22885                         }
22886                     }
22887                     break;
22888                 case -4:
22889                     if (8 * sizeof(size_t) - 1 > 3 * PyLong_SHIFT) {
22890                         if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
22891                             __PYX_VERIFY_RETURN_INT(size_t, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
22892                         } else if (8 * sizeof(size_t) - 1 > 4 * PyLong_SHIFT) {
22893                             return (size_t) (((size_t)-1)*(((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])));
22894                         }
22895                     }
22896                     break;
22897                 case 4:
22898                     if (8 * sizeof(size_t) > 3 * PyLong_SHIFT) {
22899                         if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
22900                             __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
22901                         } else if (8 * sizeof(size_t) - 1 > 4 * PyLong_SHIFT) {
22902                             return (size_t) ((((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])));
22903                         }
22904                     }
22905                     break;
22906             }
22907 #endif
22908             if (sizeof(size_t) <= sizeof(long)) {
22909                 __PYX_VERIFY_RETURN_INT_EXC(size_t, long, PyLong_AsLong(x))
22910 #ifdef HAVE_LONG_LONG
22911             } else if (sizeof(size_t) <= sizeof(PY_LONG_LONG)) {
22912                 __PYX_VERIFY_RETURN_INT_EXC(size_t, PY_LONG_LONG, PyLong_AsLongLong(x))
22913 #endif
22914             }
22915         }
22916         {
22917 #if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
22918             PyErr_SetString(PyExc_RuntimeError,
22919                             "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
22920 #else
22921             size_t val;
22922             PyObject *v = __Pyx_PyNumber_IntOrLong(x);
22923  #if PY_MAJOR_VERSION < 3
22924             if (likely(v) && !PyLong_Check(v)) {
22925                 PyObject *tmp = v;
22926                 v = PyNumber_Long(tmp);
22927                 Py_DECREF(tmp);
22928             }
22929  #endif
22930             if (likely(v)) {
22931                 int one = 1; int is_little = (int)*(unsigned char *)&one;
22932                 unsigned char *bytes = (unsigned char *)&val;
22933                 int ret = _PyLong_AsByteArray((PyLongObject *)v,
22934                                               bytes, sizeof(val),
22935                                               is_little, !is_unsigned);
22936                 Py_DECREF(v);
22937                 if (likely(!ret))
22938                     return val;
22939             }
22940 #endif
22941             return (size_t) -1;
22942         }
22943     } else {
22944         size_t val;
22945         PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
22946         if (!tmp) return (size_t) -1;
22947         val = __Pyx_PyInt_As_size_t(tmp);
22948         Py_DECREF(tmp);
22949         return val;
22950     }
22951 raise_overflow:
22952     PyErr_SetString(PyExc_OverflowError,
22953         "value too large to convert to size_t");
22954     return (size_t) -1;
22955 raise_neg_overflow:
22956     PyErr_SetString(PyExc_OverflowError,
22957         "can't convert negative value to size_t");
22958     return (size_t) -1;
22959 }
22960 
22961 /* CIntFromPy */
__Pyx_PyInt_As_long(PyObject * x)22962 static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) {
22963     const long neg_one = (long) ((long) 0 - (long) 1), const_zero = (long) 0;
22964     const int is_unsigned = neg_one > const_zero;
22965 #if PY_MAJOR_VERSION < 3
22966     if (likely(PyInt_Check(x))) {
22967         if (sizeof(long) < sizeof(long)) {
22968             __PYX_VERIFY_RETURN_INT(long, long, PyInt_AS_LONG(x))
22969         } else {
22970             long val = PyInt_AS_LONG(x);
22971             if (is_unsigned && unlikely(val < 0)) {
22972                 goto raise_neg_overflow;
22973             }
22974             return (long) val;
22975         }
22976     } else
22977 #endif
22978     if (likely(PyLong_Check(x))) {
22979         if (is_unsigned) {
22980 #if CYTHON_USE_PYLONG_INTERNALS
22981             const digit* digits = ((PyLongObject*)x)->ob_digit;
22982             switch (Py_SIZE(x)) {
22983                 case  0: return (long) 0;
22984                 case  1: __PYX_VERIFY_RETURN_INT(long, digit, digits[0])
22985                 case 2:
22986                     if (8 * sizeof(long) > 1 * PyLong_SHIFT) {
22987                         if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
22988                             __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
22989                         } else if (8 * sizeof(long) >= 2 * PyLong_SHIFT) {
22990                             return (long) (((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0]));
22991                         }
22992                     }
22993                     break;
22994                 case 3:
22995                     if (8 * sizeof(long) > 2 * PyLong_SHIFT) {
22996                         if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
22997                             __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
22998                         } else if (8 * sizeof(long) >= 3 * PyLong_SHIFT) {
22999                             return (long) (((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]));
23000                         }
23001                     }
23002                     break;
23003                 case 4:
23004                     if (8 * sizeof(long) > 3 * PyLong_SHIFT) {
23005                         if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
23006                             __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
23007                         } else if (8 * sizeof(long) >= 4 * PyLong_SHIFT) {
23008                             return (long) (((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]));
23009                         }
23010                     }
23011                     break;
23012             }
23013 #endif
23014 #if CYTHON_COMPILING_IN_CPYTHON
23015             if (unlikely(Py_SIZE(x) < 0)) {
23016                 goto raise_neg_overflow;
23017             }
23018 #else
23019             {
23020                 int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
23021                 if (unlikely(result < 0))
23022                     return (long) -1;
23023                 if (unlikely(result == 1))
23024                     goto raise_neg_overflow;
23025             }
23026 #endif
23027             if (sizeof(long) <= sizeof(unsigned long)) {
23028                 __PYX_VERIFY_RETURN_INT_EXC(long, unsigned long, PyLong_AsUnsignedLong(x))
23029 #ifdef HAVE_LONG_LONG
23030             } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) {
23031                 __PYX_VERIFY_RETURN_INT_EXC(long, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
23032 #endif
23033             }
23034         } else {
23035 #if CYTHON_USE_PYLONG_INTERNALS
23036             const digit* digits = ((PyLongObject*)x)->ob_digit;
23037             switch (Py_SIZE(x)) {
23038                 case  0: return (long) 0;
23039                 case -1: __PYX_VERIFY_RETURN_INT(long, sdigit, (sdigit) (-(sdigit)digits[0]))
23040                 case  1: __PYX_VERIFY_RETURN_INT(long,  digit, +digits[0])
23041                 case -2:
23042                     if (8 * sizeof(long) - 1 > 1 * PyLong_SHIFT) {
23043                         if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
23044                             __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
23045                         } else if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) {
23046                             return (long) (((long)-1)*(((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
23047                         }
23048                     }
23049                     break;
23050                 case 2:
23051                     if (8 * sizeof(long) > 1 * PyLong_SHIFT) {
23052                         if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
23053                             __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
23054                         } else if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) {
23055                             return (long) ((((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
23056                         }
23057                     }
23058                     break;
23059                 case -3:
23060                     if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) {
23061                         if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
23062                             __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
23063                         } else if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) {
23064                             return (long) (((long)-1)*(((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
23065                         }
23066                     }
23067                     break;
23068                 case 3:
23069                     if (8 * sizeof(long) > 2 * PyLong_SHIFT) {
23070                         if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
23071                             __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
23072                         } else if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) {
23073                             return (long) ((((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
23074                         }
23075                     }
23076                     break;
23077                 case -4:
23078                     if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) {
23079                         if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
23080                             __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
23081                         } else if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) {
23082                             return (long) (((long)-1)*(((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
23083                         }
23084                     }
23085                     break;
23086                 case 4:
23087                     if (8 * sizeof(long) > 3 * PyLong_SHIFT) {
23088                         if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
23089                             __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
23090                         } else if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) {
23091                             return (long) ((((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
23092                         }
23093                     }
23094                     break;
23095             }
23096 #endif
23097             if (sizeof(long) <= sizeof(long)) {
23098                 __PYX_VERIFY_RETURN_INT_EXC(long, long, PyLong_AsLong(x))
23099 #ifdef HAVE_LONG_LONG
23100             } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) {
23101                 __PYX_VERIFY_RETURN_INT_EXC(long, PY_LONG_LONG, PyLong_AsLongLong(x))
23102 #endif
23103             }
23104         }
23105         {
23106 #if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
23107             PyErr_SetString(PyExc_RuntimeError,
23108                             "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
23109 #else
23110             long val;
23111             PyObject *v = __Pyx_PyNumber_IntOrLong(x);
23112  #if PY_MAJOR_VERSION < 3
23113             if (likely(v) && !PyLong_Check(v)) {
23114                 PyObject *tmp = v;
23115                 v = PyNumber_Long(tmp);
23116                 Py_DECREF(tmp);
23117             }
23118  #endif
23119             if (likely(v)) {
23120                 int one = 1; int is_little = (int)*(unsigned char *)&one;
23121                 unsigned char *bytes = (unsigned char *)&val;
23122                 int ret = _PyLong_AsByteArray((PyLongObject *)v,
23123                                               bytes, sizeof(val),
23124                                               is_little, !is_unsigned);
23125                 Py_DECREF(v);
23126                 if (likely(!ret))
23127                     return val;
23128             }
23129 #endif
23130             return (long) -1;
23131         }
23132     } else {
23133         long val;
23134         PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
23135         if (!tmp) return (long) -1;
23136         val = __Pyx_PyInt_As_long(tmp);
23137         Py_DECREF(tmp);
23138         return val;
23139     }
23140 raise_overflow:
23141     PyErr_SetString(PyExc_OverflowError,
23142         "value too large to convert to long");
23143     return (long) -1;
23144 raise_neg_overflow:
23145     PyErr_SetString(PyExc_OverflowError,
23146         "can't convert negative value to long");
23147     return (long) -1;
23148 }
23149 
23150 /* FastTypeChecks */
23151 #if CYTHON_COMPILING_IN_CPYTHON
__Pyx_InBases(PyTypeObject * a,PyTypeObject * b)23152 static int __Pyx_InBases(PyTypeObject *a, PyTypeObject *b) {
23153     while (a) {
23154         a = a->tp_base;
23155         if (a == b)
23156             return 1;
23157     }
23158     return b == &PyBaseObject_Type;
23159 }
__Pyx_IsSubtype(PyTypeObject * a,PyTypeObject * b)23160 static CYTHON_INLINE int __Pyx_IsSubtype(PyTypeObject *a, PyTypeObject *b) {
23161     PyObject *mro;
23162     if (a == b) return 1;
23163     mro = a->tp_mro;
23164     if (likely(mro)) {
23165         Py_ssize_t i, n;
23166         n = PyTuple_GET_SIZE(mro);
23167         for (i = 0; i < n; i++) {
23168             if (PyTuple_GET_ITEM(mro, i) == (PyObject *)b)
23169                 return 1;
23170         }
23171         return 0;
23172     }
23173     return __Pyx_InBases(a, b);
23174 }
23175 #if PY_MAJOR_VERSION == 2
__Pyx_inner_PyErr_GivenExceptionMatches2(PyObject * err,PyObject * exc_type1,PyObject * exc_type2)23176 static int __Pyx_inner_PyErr_GivenExceptionMatches2(PyObject *err, PyObject* exc_type1, PyObject* exc_type2) {
23177     PyObject *exception, *value, *tb;
23178     int res;
23179     __Pyx_PyThreadState_declare
23180     __Pyx_PyThreadState_assign
23181     __Pyx_ErrFetch(&exception, &value, &tb);
23182     res = exc_type1 ? PyObject_IsSubclass(err, exc_type1) : 0;
23183     if (unlikely(res == -1)) {
23184         PyErr_WriteUnraisable(err);
23185         res = 0;
23186     }
23187     if (!res) {
23188         res = PyObject_IsSubclass(err, exc_type2);
23189         if (unlikely(res == -1)) {
23190             PyErr_WriteUnraisable(err);
23191             res = 0;
23192         }
23193     }
23194     __Pyx_ErrRestore(exception, value, tb);
23195     return res;
23196 }
23197 #else
__Pyx_inner_PyErr_GivenExceptionMatches2(PyObject * err,PyObject * exc_type1,PyObject * exc_type2)23198 static CYTHON_INLINE int __Pyx_inner_PyErr_GivenExceptionMatches2(PyObject *err, PyObject* exc_type1, PyObject *exc_type2) {
23199     int res = exc_type1 ? __Pyx_IsSubtype((PyTypeObject*)err, (PyTypeObject*)exc_type1) : 0;
23200     if (!res) {
23201         res = __Pyx_IsSubtype((PyTypeObject*)err, (PyTypeObject*)exc_type2);
23202     }
23203     return res;
23204 }
23205 #endif
__Pyx_PyErr_GivenExceptionMatchesTuple(PyObject * exc_type,PyObject * tuple)23206 static int __Pyx_PyErr_GivenExceptionMatchesTuple(PyObject *exc_type, PyObject *tuple) {
23207     Py_ssize_t i, n;
23208     assert(PyExceptionClass_Check(exc_type));
23209     n = PyTuple_GET_SIZE(tuple);
23210 #if PY_MAJOR_VERSION >= 3
23211     for (i=0; i<n; i++) {
23212         if (exc_type == PyTuple_GET_ITEM(tuple, i)) return 1;
23213     }
23214 #endif
23215     for (i=0; i<n; i++) {
23216         PyObject *t = PyTuple_GET_ITEM(tuple, i);
23217         #if PY_MAJOR_VERSION < 3
23218         if (likely(exc_type == t)) return 1;
23219         #endif
23220         if (likely(PyExceptionClass_Check(t))) {
23221             if (__Pyx_inner_PyErr_GivenExceptionMatches2(exc_type, NULL, t)) return 1;
23222         } else {
23223         }
23224     }
23225     return 0;
23226 }
__Pyx_PyErr_GivenExceptionMatches(PyObject * err,PyObject * exc_type)23227 static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches(PyObject *err, PyObject* exc_type) {
23228     if (likely(err == exc_type)) return 1;
23229     if (likely(PyExceptionClass_Check(err))) {
23230         if (likely(PyExceptionClass_Check(exc_type))) {
23231             return __Pyx_inner_PyErr_GivenExceptionMatches2(err, NULL, exc_type);
23232         } else if (likely(PyTuple_Check(exc_type))) {
23233             return __Pyx_PyErr_GivenExceptionMatchesTuple(err, exc_type);
23234         } else {
23235         }
23236     }
23237     return PyErr_GivenExceptionMatches(err, exc_type);
23238 }
__Pyx_PyErr_GivenExceptionMatches2(PyObject * err,PyObject * exc_type1,PyObject * exc_type2)23239 static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches2(PyObject *err, PyObject *exc_type1, PyObject *exc_type2) {
23240     assert(PyExceptionClass_Check(exc_type1));
23241     assert(PyExceptionClass_Check(exc_type2));
23242     if (likely(err == exc_type1 || err == exc_type2)) return 1;
23243     if (likely(PyExceptionClass_Check(err))) {
23244         return __Pyx_inner_PyErr_GivenExceptionMatches2(err, exc_type1, exc_type2);
23245     }
23246     return (PyErr_GivenExceptionMatches(err, exc_type1) || PyErr_GivenExceptionMatches(err, exc_type2));
23247 }
23248 #endif
23249 
23250 /* FetchCommonType */
__Pyx_FetchCommonType(PyTypeObject * type)23251 static PyTypeObject* __Pyx_FetchCommonType(PyTypeObject* type) {
23252     PyObject* fake_module;
23253     PyTypeObject* cached_type = NULL;
23254     fake_module = PyImport_AddModule((char*) "_cython_" CYTHON_ABI);
23255     if (!fake_module) return NULL;
23256     Py_INCREF(fake_module);
23257     cached_type = (PyTypeObject*) PyObject_GetAttrString(fake_module, type->tp_name);
23258     if (cached_type) {
23259         if (!PyType_Check((PyObject*)cached_type)) {
23260             PyErr_Format(PyExc_TypeError,
23261                 "Shared Cython type %.200s is not a type object",
23262                 type->tp_name);
23263             goto bad;
23264         }
23265         if (cached_type->tp_basicsize != type->tp_basicsize) {
23266             PyErr_Format(PyExc_TypeError,
23267                 "Shared Cython type %.200s has the wrong size, try recompiling",
23268                 type->tp_name);
23269             goto bad;
23270         }
23271     } else {
23272         if (!PyErr_ExceptionMatches(PyExc_AttributeError)) goto bad;
23273         PyErr_Clear();
23274         if (PyType_Ready(type) < 0) goto bad;
23275         if (PyObject_SetAttrString(fake_module, type->tp_name, (PyObject*) type) < 0)
23276             goto bad;
23277         Py_INCREF(type);
23278         cached_type = type;
23279     }
23280 done:
23281     Py_DECREF(fake_module);
23282     return cached_type;
23283 bad:
23284     Py_XDECREF(cached_type);
23285     cached_type = NULL;
23286     goto done;
23287 }
23288 
23289 /* PyObjectGetMethod */
__Pyx_PyObject_GetMethod(PyObject * obj,PyObject * name,PyObject ** method)23290 static int __Pyx_PyObject_GetMethod(PyObject *obj, PyObject *name, PyObject **method) {
23291     PyObject *attr;
23292 #if CYTHON_UNPACK_METHODS && CYTHON_COMPILING_IN_CPYTHON && CYTHON_USE_PYTYPE_LOOKUP
23293     PyTypeObject *tp = Py_TYPE(obj);
23294     PyObject *descr;
23295     descrgetfunc f = NULL;
23296     PyObject **dictptr, *dict;
23297     int meth_found = 0;
23298     assert (*method == NULL);
23299     if (unlikely(tp->tp_getattro != PyObject_GenericGetAttr)) {
23300         attr = __Pyx_PyObject_GetAttrStr(obj, name);
23301         goto try_unpack;
23302     }
23303     if (unlikely(tp->tp_dict == NULL) && unlikely(PyType_Ready(tp) < 0)) {
23304         return 0;
23305     }
23306     descr = _PyType_Lookup(tp, name);
23307     if (likely(descr != NULL)) {
23308         Py_INCREF(descr);
23309 #if PY_MAJOR_VERSION >= 3
23310         #ifdef __Pyx_CyFunction_USED
23311         if (likely(PyFunction_Check(descr) || (Py_TYPE(descr) == &PyMethodDescr_Type) || __Pyx_CyFunction_Check(descr)))
23312         #else
23313         if (likely(PyFunction_Check(descr) || (Py_TYPE(descr) == &PyMethodDescr_Type)))
23314         #endif
23315 #else
23316         #ifdef __Pyx_CyFunction_USED
23317         if (likely(PyFunction_Check(descr) || __Pyx_CyFunction_Check(descr)))
23318         #else
23319         if (likely(PyFunction_Check(descr)))
23320         #endif
23321 #endif
23322         {
23323             meth_found = 1;
23324         } else {
23325             f = Py_TYPE(descr)->tp_descr_get;
23326             if (f != NULL && PyDescr_IsData(descr)) {
23327                 attr = f(descr, obj, (PyObject *)Py_TYPE(obj));
23328                 Py_DECREF(descr);
23329                 goto try_unpack;
23330             }
23331         }
23332     }
23333     dictptr = _PyObject_GetDictPtr(obj);
23334     if (dictptr != NULL && (dict = *dictptr) != NULL) {
23335         Py_INCREF(dict);
23336         attr = __Pyx_PyDict_GetItemStr(dict, name);
23337         if (attr != NULL) {
23338             Py_INCREF(attr);
23339             Py_DECREF(dict);
23340             Py_XDECREF(descr);
23341             goto try_unpack;
23342         }
23343         Py_DECREF(dict);
23344     }
23345     if (meth_found) {
23346         *method = descr;
23347         return 1;
23348     }
23349     if (f != NULL) {
23350         attr = f(descr, obj, (PyObject *)Py_TYPE(obj));
23351         Py_DECREF(descr);
23352         goto try_unpack;
23353     }
23354     if (descr != NULL) {
23355         *method = descr;
23356         return 0;
23357     }
23358     PyErr_Format(PyExc_AttributeError,
23359 #if PY_MAJOR_VERSION >= 3
23360                  "'%.50s' object has no attribute '%U'",
23361                  tp->tp_name, name);
23362 #else
23363                  "'%.50s' object has no attribute '%.400s'",
23364                  tp->tp_name, PyString_AS_STRING(name));
23365 #endif
23366     return 0;
23367 #else
23368     attr = __Pyx_PyObject_GetAttrStr(obj, name);
23369     goto try_unpack;
23370 #endif
23371 try_unpack:
23372 #if CYTHON_UNPACK_METHODS
23373     if (likely(attr) && PyMethod_Check(attr) && likely(PyMethod_GET_SELF(attr) == obj)) {
23374         PyObject *function = PyMethod_GET_FUNCTION(attr);
23375         Py_INCREF(function);
23376         Py_DECREF(attr);
23377         *method = function;
23378         return 1;
23379     }
23380 #endif
23381     *method = attr;
23382     return 0;
23383 }
23384 
23385 /* PyObjectCallMethod1 */
__Pyx__PyObject_CallMethod1(PyObject * method,PyObject * arg)23386 static PyObject* __Pyx__PyObject_CallMethod1(PyObject* method, PyObject* arg) {
23387     PyObject *result = __Pyx_PyObject_CallOneArg(method, arg);
23388     Py_DECREF(method);
23389     return result;
23390 }
__Pyx_PyObject_CallMethod1(PyObject * obj,PyObject * method_name,PyObject * arg)23391 static PyObject* __Pyx_PyObject_CallMethod1(PyObject* obj, PyObject* method_name, PyObject* arg) {
23392     PyObject *method = NULL, *result;
23393     int is_method = __Pyx_PyObject_GetMethod(obj, method_name, &method);
23394     if (likely(is_method)) {
23395         result = __Pyx_PyObject_Call2Args(method, obj, arg);
23396         Py_DECREF(method);
23397         return result;
23398     }
23399     if (unlikely(!method)) return NULL;
23400     return __Pyx__PyObject_CallMethod1(method, arg);
23401 }
23402 
23403 /* CoroutineBase */
23404 #include <structmember.h>
23405 #include <frameobject.h>
23406 #define __Pyx_Coroutine_Undelegate(gen) Py_CLEAR((gen)->yieldfrom)
__Pyx_PyGen__FetchStopIterationValue(CYTHON_UNUSED PyThreadState * __pyx_tstate,PyObject ** pvalue)23407 static int __Pyx_PyGen__FetchStopIterationValue(CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject **pvalue) {
23408     PyObject *et, *ev, *tb;
23409     PyObject *value = NULL;
23410     __Pyx_ErrFetch(&et, &ev, &tb);
23411     if (!et) {
23412         Py_XDECREF(tb);
23413         Py_XDECREF(ev);
23414         Py_INCREF(Py_None);
23415         *pvalue = Py_None;
23416         return 0;
23417     }
23418     if (likely(et == PyExc_StopIteration)) {
23419         if (!ev) {
23420             Py_INCREF(Py_None);
23421             value = Py_None;
23422         }
23423 #if PY_VERSION_HEX >= 0x030300A0
23424         else if (Py_TYPE(ev) == (PyTypeObject*)PyExc_StopIteration) {
23425             value = ((PyStopIterationObject *)ev)->value;
23426             Py_INCREF(value);
23427             Py_DECREF(ev);
23428         }
23429 #endif
23430         else if (unlikely(PyTuple_Check(ev))) {
23431             if (PyTuple_GET_SIZE(ev) >= 1) {
23432 #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
23433                 value = PyTuple_GET_ITEM(ev, 0);
23434                 Py_INCREF(value);
23435 #else
23436                 value = PySequence_ITEM(ev, 0);
23437 #endif
23438             } else {
23439                 Py_INCREF(Py_None);
23440                 value = Py_None;
23441             }
23442             Py_DECREF(ev);
23443         }
23444         else if (!__Pyx_TypeCheck(ev, (PyTypeObject*)PyExc_StopIteration)) {
23445             value = ev;
23446         }
23447         if (likely(value)) {
23448             Py_XDECREF(tb);
23449             Py_DECREF(et);
23450             *pvalue = value;
23451             return 0;
23452         }
23453     } else if (!__Pyx_PyErr_GivenExceptionMatches(et, PyExc_StopIteration)) {
23454         __Pyx_ErrRestore(et, ev, tb);
23455         return -1;
23456     }
23457     PyErr_NormalizeException(&et, &ev, &tb);
23458     if (unlikely(!PyObject_TypeCheck(ev, (PyTypeObject*)PyExc_StopIteration))) {
23459         __Pyx_ErrRestore(et, ev, tb);
23460         return -1;
23461     }
23462     Py_XDECREF(tb);
23463     Py_DECREF(et);
23464 #if PY_VERSION_HEX >= 0x030300A0
23465     value = ((PyStopIterationObject *)ev)->value;
23466     Py_INCREF(value);
23467     Py_DECREF(ev);
23468 #else
23469     {
23470         PyObject* args = __Pyx_PyObject_GetAttrStr(ev, __pyx_n_s_args);
23471         Py_DECREF(ev);
23472         if (likely(args)) {
23473             value = PySequence_GetItem(args, 0);
23474             Py_DECREF(args);
23475         }
23476         if (unlikely(!value)) {
23477             __Pyx_ErrRestore(NULL, NULL, NULL);
23478             Py_INCREF(Py_None);
23479             value = Py_None;
23480         }
23481     }
23482 #endif
23483     *pvalue = value;
23484     return 0;
23485 }
23486 static CYTHON_INLINE
__Pyx_Coroutine_ExceptionClear(__Pyx_ExcInfoStruct * exc_state)23487 void __Pyx_Coroutine_ExceptionClear(__Pyx_ExcInfoStruct *exc_state) {
23488     PyObject *t, *v, *tb;
23489     t = exc_state->exc_type;
23490     v = exc_state->exc_value;
23491     tb = exc_state->exc_traceback;
23492     exc_state->exc_type = NULL;
23493     exc_state->exc_value = NULL;
23494     exc_state->exc_traceback = NULL;
23495     Py_XDECREF(t);
23496     Py_XDECREF(v);
23497     Py_XDECREF(tb);
23498 }
23499 #define __Pyx_Coroutine_AlreadyRunningError(gen)  (__Pyx__Coroutine_AlreadyRunningError(gen), (PyObject*)NULL)
__Pyx__Coroutine_AlreadyRunningError(CYTHON_UNUSED __pyx_CoroutineObject * gen)23500 static void __Pyx__Coroutine_AlreadyRunningError(CYTHON_UNUSED __pyx_CoroutineObject *gen) {
23501     const char *msg;
23502     if ((0)) {
23503     #ifdef __Pyx_Coroutine_USED
23504     } else if (__Pyx_Coroutine_Check((PyObject*)gen)) {
23505         msg = "coroutine already executing";
23506     #endif
23507     #ifdef __Pyx_AsyncGen_USED
23508     } else if (__Pyx_AsyncGen_CheckExact((PyObject*)gen)) {
23509         msg = "async generator already executing";
23510     #endif
23511     } else {
23512         msg = "generator already executing";
23513     }
23514     PyErr_SetString(PyExc_ValueError, msg);
23515 }
23516 #define __Pyx_Coroutine_NotStartedError(gen)  (__Pyx__Coroutine_NotStartedError(gen), (PyObject*)NULL)
__Pyx__Coroutine_NotStartedError(CYTHON_UNUSED PyObject * gen)23517 static void __Pyx__Coroutine_NotStartedError(CYTHON_UNUSED PyObject *gen) {
23518     const char *msg;
23519     if ((0)) {
23520     #ifdef __Pyx_Coroutine_USED
23521     } else if (__Pyx_Coroutine_Check(gen)) {
23522         msg = "can't send non-None value to a just-started coroutine";
23523     #endif
23524     #ifdef __Pyx_AsyncGen_USED
23525     } else if (__Pyx_AsyncGen_CheckExact(gen)) {
23526         msg = "can't send non-None value to a just-started async generator";
23527     #endif
23528     } else {
23529         msg = "can't send non-None value to a just-started generator";
23530     }
23531     PyErr_SetString(PyExc_TypeError, msg);
23532 }
23533 #define __Pyx_Coroutine_AlreadyTerminatedError(gen, value, closing)  (__Pyx__Coroutine_AlreadyTerminatedError(gen, value, closing), (PyObject*)NULL)
__Pyx__Coroutine_AlreadyTerminatedError(CYTHON_UNUSED PyObject * gen,PyObject * value,CYTHON_UNUSED int closing)23534 static void __Pyx__Coroutine_AlreadyTerminatedError(CYTHON_UNUSED PyObject *gen, PyObject *value, CYTHON_UNUSED int closing) {
23535     #ifdef __Pyx_Coroutine_USED
23536     if (!closing && __Pyx_Coroutine_Check(gen)) {
23537         PyErr_SetString(PyExc_RuntimeError, "cannot reuse already awaited coroutine");
23538     } else
23539     #endif
23540     if (value) {
23541         #ifdef __Pyx_AsyncGen_USED
23542         if (__Pyx_AsyncGen_CheckExact(gen))
23543             PyErr_SetNone(__Pyx_PyExc_StopAsyncIteration);
23544         else
23545         #endif
23546         PyErr_SetNone(PyExc_StopIteration);
23547     }
23548 }
23549 static
__Pyx_Coroutine_SendEx(__pyx_CoroutineObject * self,PyObject * value,int closing)23550 PyObject *__Pyx_Coroutine_SendEx(__pyx_CoroutineObject *self, PyObject *value, int closing) {
23551     __Pyx_PyThreadState_declare
23552     PyThreadState *tstate;
23553     __Pyx_ExcInfoStruct *exc_state;
23554     PyObject *retval;
23555     assert(!self->is_running);
23556     if (unlikely(self->resume_label == 0)) {
23557         if (unlikely(value && value != Py_None)) {
23558             return __Pyx_Coroutine_NotStartedError((PyObject*)self);
23559         }
23560     }
23561     if (unlikely(self->resume_label == -1)) {
23562         return __Pyx_Coroutine_AlreadyTerminatedError((PyObject*)self, value, closing);
23563     }
23564 #if CYTHON_FAST_THREAD_STATE
23565     __Pyx_PyThreadState_assign
23566     tstate = __pyx_tstate;
23567 #else
23568     tstate = __Pyx_PyThreadState_Current;
23569 #endif
23570     exc_state = &self->gi_exc_state;
23571     if (exc_state->exc_type) {
23572         #if CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_PYSTON
23573         #else
23574         if (exc_state->exc_traceback) {
23575             PyTracebackObject *tb = (PyTracebackObject *) exc_state->exc_traceback;
23576             PyFrameObject *f = tb->tb_frame;
23577             Py_XINCREF(tstate->frame);
23578             assert(f->f_back == NULL);
23579             f->f_back = tstate->frame;
23580         }
23581         #endif
23582     }
23583 #if CYTHON_USE_EXC_INFO_STACK
23584     exc_state->previous_item = tstate->exc_info;
23585     tstate->exc_info = exc_state;
23586 #else
23587     if (exc_state->exc_type) {
23588         __Pyx_ExceptionSwap(&exc_state->exc_type, &exc_state->exc_value, &exc_state->exc_traceback);
23589     } else {
23590         __Pyx_Coroutine_ExceptionClear(exc_state);
23591         __Pyx_ExceptionSave(&exc_state->exc_type, &exc_state->exc_value, &exc_state->exc_traceback);
23592     }
23593 #endif
23594     self->is_running = 1;
23595     retval = self->body((PyObject *) self, tstate, value);
23596     self->is_running = 0;
23597 #if CYTHON_USE_EXC_INFO_STACK
23598     exc_state = &self->gi_exc_state;
23599     tstate->exc_info = exc_state->previous_item;
23600     exc_state->previous_item = NULL;
23601     __Pyx_Coroutine_ResetFrameBackpointer(exc_state);
23602 #endif
23603     return retval;
23604 }
__Pyx_Coroutine_ResetFrameBackpointer(__Pyx_ExcInfoStruct * exc_state)23605 static CYTHON_INLINE void __Pyx_Coroutine_ResetFrameBackpointer(__Pyx_ExcInfoStruct *exc_state) {
23606     PyObject *exc_tb = exc_state->exc_traceback;
23607     if (likely(exc_tb)) {
23608 #if CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_PYSTON
23609 #else
23610         PyTracebackObject *tb = (PyTracebackObject *) exc_tb;
23611         PyFrameObject *f = tb->tb_frame;
23612         Py_CLEAR(f->f_back);
23613 #endif
23614     }
23615 }
23616 static CYTHON_INLINE
__Pyx_Coroutine_MethodReturn(CYTHON_UNUSED PyObject * gen,PyObject * retval)23617 PyObject *__Pyx_Coroutine_MethodReturn(CYTHON_UNUSED PyObject* gen, PyObject *retval) {
23618     if (unlikely(!retval)) {
23619         __Pyx_PyThreadState_declare
23620         __Pyx_PyThreadState_assign
23621         if (!__Pyx_PyErr_Occurred()) {
23622             PyObject *exc = PyExc_StopIteration;
23623             #ifdef __Pyx_AsyncGen_USED
23624             if (__Pyx_AsyncGen_CheckExact(gen))
23625                 exc = __Pyx_PyExc_StopAsyncIteration;
23626             #endif
23627             __Pyx_PyErr_SetNone(exc);
23628         }
23629     }
23630     return retval;
23631 }
23632 static CYTHON_INLINE
__Pyx_Coroutine_FinishDelegation(__pyx_CoroutineObject * gen)23633 PyObject *__Pyx_Coroutine_FinishDelegation(__pyx_CoroutineObject *gen) {
23634     PyObject *ret;
23635     PyObject *val = NULL;
23636     __Pyx_Coroutine_Undelegate(gen);
23637     __Pyx_PyGen__FetchStopIterationValue(__Pyx_PyThreadState_Current, &val);
23638     ret = __Pyx_Coroutine_SendEx(gen, val, 0);
23639     Py_XDECREF(val);
23640     return ret;
23641 }
__Pyx_Coroutine_Send(PyObject * self,PyObject * value)23642 static PyObject *__Pyx_Coroutine_Send(PyObject *self, PyObject *value) {
23643     PyObject *retval;
23644     __pyx_CoroutineObject *gen = (__pyx_CoroutineObject*) self;
23645     PyObject *yf = gen->yieldfrom;
23646     if (unlikely(gen->is_running))
23647         return __Pyx_Coroutine_AlreadyRunningError(gen);
23648     if (yf) {
23649         PyObject *ret;
23650         gen->is_running = 1;
23651         #ifdef __Pyx_Generator_USED
23652         if (__Pyx_Generator_CheckExact(yf)) {
23653             ret = __Pyx_Coroutine_Send(yf, value);
23654         } else
23655         #endif
23656         #ifdef __Pyx_Coroutine_USED
23657         if (__Pyx_Coroutine_Check(yf)) {
23658             ret = __Pyx_Coroutine_Send(yf, value);
23659         } else
23660         #endif
23661         #ifdef __Pyx_AsyncGen_USED
23662         if (__pyx_PyAsyncGenASend_CheckExact(yf)) {
23663             ret = __Pyx_async_gen_asend_send(yf, value);
23664         } else
23665         #endif
23666         #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x03030000 && (defined(__linux__) || PY_VERSION_HEX >= 0x030600B3)
23667         if (PyGen_CheckExact(yf)) {
23668             ret = _PyGen_Send((PyGenObject*)yf, value == Py_None ? NULL : value);
23669         } else
23670         #endif
23671         #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x03050000 && defined(PyCoro_CheckExact) && (defined(__linux__) || PY_VERSION_HEX >= 0x030600B3)
23672         if (PyCoro_CheckExact(yf)) {
23673             ret = _PyGen_Send((PyGenObject*)yf, value == Py_None ? NULL : value);
23674         } else
23675         #endif
23676         {
23677             if (value == Py_None)
23678                 ret = Py_TYPE(yf)->tp_iternext(yf);
23679             else
23680                 ret = __Pyx_PyObject_CallMethod1(yf, __pyx_n_s_send, value);
23681         }
23682         gen->is_running = 0;
23683         if (likely(ret)) {
23684             return ret;
23685         }
23686         retval = __Pyx_Coroutine_FinishDelegation(gen);
23687     } else {
23688         retval = __Pyx_Coroutine_SendEx(gen, value, 0);
23689     }
23690     return __Pyx_Coroutine_MethodReturn(self, retval);
23691 }
__Pyx_Coroutine_CloseIter(__pyx_CoroutineObject * gen,PyObject * yf)23692 static int __Pyx_Coroutine_CloseIter(__pyx_CoroutineObject *gen, PyObject *yf) {
23693     PyObject *retval = NULL;
23694     int err = 0;
23695     #ifdef __Pyx_Generator_USED
23696     if (__Pyx_Generator_CheckExact(yf)) {
23697         retval = __Pyx_Coroutine_Close(yf);
23698         if (!retval)
23699             return -1;
23700     } else
23701     #endif
23702     #ifdef __Pyx_Coroutine_USED
23703     if (__Pyx_Coroutine_Check(yf)) {
23704         retval = __Pyx_Coroutine_Close(yf);
23705         if (!retval)
23706             return -1;
23707     } else
23708     if (__Pyx_CoroutineAwait_CheckExact(yf)) {
23709         retval = __Pyx_CoroutineAwait_Close((__pyx_CoroutineAwaitObject*)yf, NULL);
23710         if (!retval)
23711             return -1;
23712     } else
23713     #endif
23714     #ifdef __Pyx_AsyncGen_USED
23715     if (__pyx_PyAsyncGenASend_CheckExact(yf)) {
23716         retval = __Pyx_async_gen_asend_close(yf, NULL);
23717     } else
23718     if (__pyx_PyAsyncGenAThrow_CheckExact(yf)) {
23719         retval = __Pyx_async_gen_athrow_close(yf, NULL);
23720     } else
23721     #endif
23722     {
23723         PyObject *meth;
23724         gen->is_running = 1;
23725         meth = __Pyx_PyObject_GetAttrStr(yf, __pyx_n_s_close);
23726         if (unlikely(!meth)) {
23727             if (!PyErr_ExceptionMatches(PyExc_AttributeError)) {
23728                 PyErr_WriteUnraisable(yf);
23729             }
23730             PyErr_Clear();
23731         } else {
23732             retval = PyObject_CallFunction(meth, NULL);
23733             Py_DECREF(meth);
23734             if (!retval)
23735                 err = -1;
23736         }
23737         gen->is_running = 0;
23738     }
23739     Py_XDECREF(retval);
23740     return err;
23741 }
__Pyx_Generator_Next(PyObject * self)23742 static PyObject *__Pyx_Generator_Next(PyObject *self) {
23743     __pyx_CoroutineObject *gen = (__pyx_CoroutineObject*) self;
23744     PyObject *yf = gen->yieldfrom;
23745     if (unlikely(gen->is_running))
23746         return __Pyx_Coroutine_AlreadyRunningError(gen);
23747     if (yf) {
23748         PyObject *ret;
23749         gen->is_running = 1;
23750         #ifdef __Pyx_Generator_USED
23751         if (__Pyx_Generator_CheckExact(yf)) {
23752             ret = __Pyx_Generator_Next(yf);
23753         } else
23754         #endif
23755         #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x03030000 && (defined(__linux__) || PY_VERSION_HEX >= 0x030600B3)
23756         if (PyGen_CheckExact(yf)) {
23757             ret = _PyGen_Send((PyGenObject*)yf, NULL);
23758         } else
23759         #endif
23760         #ifdef __Pyx_Coroutine_USED
23761         if (__Pyx_Coroutine_Check(yf)) {
23762             ret = __Pyx_Coroutine_Send(yf, Py_None);
23763         } else
23764         #endif
23765             ret = Py_TYPE(yf)->tp_iternext(yf);
23766         gen->is_running = 0;
23767         if (likely(ret)) {
23768             return ret;
23769         }
23770         return __Pyx_Coroutine_FinishDelegation(gen);
23771     }
23772     return __Pyx_Coroutine_SendEx(gen, Py_None, 0);
23773 }
__Pyx_Coroutine_Close_Method(PyObject * self,CYTHON_UNUSED PyObject * arg)23774 static PyObject *__Pyx_Coroutine_Close_Method(PyObject *self, CYTHON_UNUSED PyObject *arg) {
23775     return __Pyx_Coroutine_Close(self);
23776 }
__Pyx_Coroutine_Close(PyObject * self)23777 static PyObject *__Pyx_Coroutine_Close(PyObject *self) {
23778     __pyx_CoroutineObject *gen = (__pyx_CoroutineObject *) self;
23779     PyObject *retval, *raised_exception;
23780     PyObject *yf = gen->yieldfrom;
23781     int err = 0;
23782     if (unlikely(gen->is_running))
23783         return __Pyx_Coroutine_AlreadyRunningError(gen);
23784     if (yf) {
23785         Py_INCREF(yf);
23786         err = __Pyx_Coroutine_CloseIter(gen, yf);
23787         __Pyx_Coroutine_Undelegate(gen);
23788         Py_DECREF(yf);
23789     }
23790     if (err == 0)
23791         PyErr_SetNone(PyExc_GeneratorExit);
23792     retval = __Pyx_Coroutine_SendEx(gen, NULL, 1);
23793     if (unlikely(retval)) {
23794         const char *msg;
23795         Py_DECREF(retval);
23796         if ((0)) {
23797         #ifdef __Pyx_Coroutine_USED
23798         } else if (__Pyx_Coroutine_Check(self)) {
23799             msg = "coroutine ignored GeneratorExit";
23800         #endif
23801         #ifdef __Pyx_AsyncGen_USED
23802         } else if (__Pyx_AsyncGen_CheckExact(self)) {
23803 #if PY_VERSION_HEX < 0x03060000
23804             msg = "async generator ignored GeneratorExit - might require Python 3.6+ finalisation (PEP 525)";
23805 #else
23806             msg = "async generator ignored GeneratorExit";
23807 #endif
23808         #endif
23809         } else {
23810             msg = "generator ignored GeneratorExit";
23811         }
23812         PyErr_SetString(PyExc_RuntimeError, msg);
23813         return NULL;
23814     }
23815     raised_exception = PyErr_Occurred();
23816     if (likely(!raised_exception || __Pyx_PyErr_GivenExceptionMatches2(raised_exception, PyExc_GeneratorExit, PyExc_StopIteration))) {
23817         if (raised_exception) PyErr_Clear();
23818         Py_INCREF(Py_None);
23819         return Py_None;
23820     }
23821     return NULL;
23822 }
__Pyx__Coroutine_Throw(PyObject * self,PyObject * typ,PyObject * val,PyObject * tb,PyObject * args,int close_on_genexit)23823 static PyObject *__Pyx__Coroutine_Throw(PyObject *self, PyObject *typ, PyObject *val, PyObject *tb,
23824                                         PyObject *args, int close_on_genexit) {
23825     __pyx_CoroutineObject *gen = (__pyx_CoroutineObject *) self;
23826     PyObject *yf = gen->yieldfrom;
23827     if (unlikely(gen->is_running))
23828         return __Pyx_Coroutine_AlreadyRunningError(gen);
23829     if (yf) {
23830         PyObject *ret;
23831         Py_INCREF(yf);
23832         if (__Pyx_PyErr_GivenExceptionMatches(typ, PyExc_GeneratorExit) && close_on_genexit) {
23833             int err = __Pyx_Coroutine_CloseIter(gen, yf);
23834             Py_DECREF(yf);
23835             __Pyx_Coroutine_Undelegate(gen);
23836             if (err < 0)
23837                 return __Pyx_Coroutine_MethodReturn(self, __Pyx_Coroutine_SendEx(gen, NULL, 0));
23838             goto throw_here;
23839         }
23840         gen->is_running = 1;
23841         if (0
23842         #ifdef __Pyx_Generator_USED
23843             || __Pyx_Generator_CheckExact(yf)
23844         #endif
23845         #ifdef __Pyx_Coroutine_USED
23846             || __Pyx_Coroutine_Check(yf)
23847         #endif
23848             ) {
23849             ret = __Pyx__Coroutine_Throw(yf, typ, val, tb, args, close_on_genexit);
23850         #ifdef __Pyx_Coroutine_USED
23851         } else if (__Pyx_CoroutineAwait_CheckExact(yf)) {
23852             ret = __Pyx__Coroutine_Throw(((__pyx_CoroutineAwaitObject*)yf)->coroutine, typ, val, tb, args, close_on_genexit);
23853         #endif
23854         } else {
23855             PyObject *meth = __Pyx_PyObject_GetAttrStr(yf, __pyx_n_s_throw);
23856             if (unlikely(!meth)) {
23857                 Py_DECREF(yf);
23858                 if (!PyErr_ExceptionMatches(PyExc_AttributeError)) {
23859                     gen->is_running = 0;
23860                     return NULL;
23861                 }
23862                 PyErr_Clear();
23863                 __Pyx_Coroutine_Undelegate(gen);
23864                 gen->is_running = 0;
23865                 goto throw_here;
23866             }
23867             if (likely(args)) {
23868                 ret = PyObject_CallObject(meth, args);
23869             } else {
23870                 ret = PyObject_CallFunctionObjArgs(meth, typ, val, tb, NULL);
23871             }
23872             Py_DECREF(meth);
23873         }
23874         gen->is_running = 0;
23875         Py_DECREF(yf);
23876         if (!ret) {
23877             ret = __Pyx_Coroutine_FinishDelegation(gen);
23878         }
23879         return __Pyx_Coroutine_MethodReturn(self, ret);
23880     }
23881 throw_here:
23882     __Pyx_Raise(typ, val, tb, NULL);
23883     return __Pyx_Coroutine_MethodReturn(self, __Pyx_Coroutine_SendEx(gen, NULL, 0));
23884 }
__Pyx_Coroutine_Throw(PyObject * self,PyObject * args)23885 static PyObject *__Pyx_Coroutine_Throw(PyObject *self, PyObject *args) {
23886     PyObject *typ;
23887     PyObject *val = NULL;
23888     PyObject *tb = NULL;
23889     if (!PyArg_UnpackTuple(args, (char *)"throw", 1, 3, &typ, &val, &tb))
23890         return NULL;
23891     return __Pyx__Coroutine_Throw(self, typ, val, tb, args, 1);
23892 }
__Pyx_Coroutine_traverse_excstate(__Pyx_ExcInfoStruct * exc_state,visitproc visit,void * arg)23893 static CYTHON_INLINE int __Pyx_Coroutine_traverse_excstate(__Pyx_ExcInfoStruct *exc_state, visitproc visit, void *arg) {
23894     Py_VISIT(exc_state->exc_type);
23895     Py_VISIT(exc_state->exc_value);
23896     Py_VISIT(exc_state->exc_traceback);
23897     return 0;
23898 }
__Pyx_Coroutine_traverse(__pyx_CoroutineObject * gen,visitproc visit,void * arg)23899 static int __Pyx_Coroutine_traverse(__pyx_CoroutineObject *gen, visitproc visit, void *arg) {
23900     Py_VISIT(gen->closure);
23901     Py_VISIT(gen->classobj);
23902     Py_VISIT(gen->yieldfrom);
23903     return __Pyx_Coroutine_traverse_excstate(&gen->gi_exc_state, visit, arg);
23904 }
__Pyx_Coroutine_clear(PyObject * self)23905 static int __Pyx_Coroutine_clear(PyObject *self) {
23906     __pyx_CoroutineObject *gen = (__pyx_CoroutineObject *) self;
23907     Py_CLEAR(gen->closure);
23908     Py_CLEAR(gen->classobj);
23909     Py_CLEAR(gen->yieldfrom);
23910     __Pyx_Coroutine_ExceptionClear(&gen->gi_exc_state);
23911 #ifdef __Pyx_AsyncGen_USED
23912     if (__Pyx_AsyncGen_CheckExact(self)) {
23913         Py_CLEAR(((__pyx_PyAsyncGenObject*)gen)->ag_finalizer);
23914     }
23915 #endif
23916     Py_CLEAR(gen->gi_code);
23917     Py_CLEAR(gen->gi_name);
23918     Py_CLEAR(gen->gi_qualname);
23919     Py_CLEAR(gen->gi_modulename);
23920     return 0;
23921 }
__Pyx_Coroutine_dealloc(PyObject * self)23922 static void __Pyx_Coroutine_dealloc(PyObject *self) {
23923     __pyx_CoroutineObject *gen = (__pyx_CoroutineObject *) self;
23924     PyObject_GC_UnTrack(gen);
23925     if (gen->gi_weakreflist != NULL)
23926         PyObject_ClearWeakRefs(self);
23927     if (gen->resume_label >= 0) {
23928         PyObject_GC_Track(self);
23929 #if PY_VERSION_HEX >= 0x030400a1 && CYTHON_USE_TP_FINALIZE
23930         if (PyObject_CallFinalizerFromDealloc(self))
23931 #else
23932         Py_TYPE(gen)->tp_del(self);
23933         if (self->ob_refcnt > 0)
23934 #endif
23935         {
23936             return;
23937         }
23938         PyObject_GC_UnTrack(self);
23939     }
23940 #ifdef __Pyx_AsyncGen_USED
23941     if (__Pyx_AsyncGen_CheckExact(self)) {
23942         /* We have to handle this case for asynchronous generators
23943            right here, because this code has to be between UNTRACK
23944            and GC_Del. */
23945         Py_CLEAR(((__pyx_PyAsyncGenObject*)self)->ag_finalizer);
23946     }
23947 #endif
23948     __Pyx_Coroutine_clear(self);
23949     PyObject_GC_Del(gen);
23950 }
__Pyx_Coroutine_del(PyObject * self)23951 static void __Pyx_Coroutine_del(PyObject *self) {
23952     PyObject *error_type, *error_value, *error_traceback;
23953     __pyx_CoroutineObject *gen = (__pyx_CoroutineObject *) self;
23954     __Pyx_PyThreadState_declare
23955     if (gen->resume_label < 0) {
23956         return;
23957     }
23958 #if !CYTHON_USE_TP_FINALIZE
23959     assert(self->ob_refcnt == 0);
23960     self->ob_refcnt = 1;
23961 #endif
23962     __Pyx_PyThreadState_assign
23963     __Pyx_ErrFetch(&error_type, &error_value, &error_traceback);
23964 #ifdef __Pyx_AsyncGen_USED
23965     if (__Pyx_AsyncGen_CheckExact(self)) {
23966         __pyx_PyAsyncGenObject *agen = (__pyx_PyAsyncGenObject*)self;
23967         PyObject *finalizer = agen->ag_finalizer;
23968         if (finalizer && !agen->ag_closed) {
23969             PyObject *res = __Pyx_PyObject_CallOneArg(finalizer, self);
23970             if (unlikely(!res)) {
23971                 PyErr_WriteUnraisable(self);
23972             } else {
23973                 Py_DECREF(res);
23974             }
23975             __Pyx_ErrRestore(error_type, error_value, error_traceback);
23976             return;
23977         }
23978     }
23979 #endif
23980     if (unlikely(gen->resume_label == 0 && !error_value)) {
23981 #ifdef __Pyx_Coroutine_USED
23982 #ifdef __Pyx_Generator_USED
23983     if (!__Pyx_Generator_CheckExact(self))
23984 #endif
23985         {
23986         PyObject_GC_UnTrack(self);
23987 #if PY_MAJOR_VERSION >= 3  || defined(PyErr_WarnFormat)
23988         if (unlikely(PyErr_WarnFormat(PyExc_RuntimeWarning, 1, "coroutine '%.50S' was never awaited", gen->gi_qualname) < 0))
23989             PyErr_WriteUnraisable(self);
23990 #else
23991         {PyObject *msg;
23992         char *cmsg;
23993         #if CYTHON_COMPILING_IN_PYPY
23994         msg = NULL;
23995         cmsg = (char*) "coroutine was never awaited";
23996         #else
23997         char *cname;
23998         PyObject *qualname;
23999         qualname = gen->gi_qualname;
24000         cname = PyString_AS_STRING(qualname);
24001         msg = PyString_FromFormat("coroutine '%.50s' was never awaited", cname);
24002         if (unlikely(!msg)) {
24003             PyErr_Clear();
24004             cmsg = (char*) "coroutine was never awaited";
24005         } else {
24006             cmsg = PyString_AS_STRING(msg);
24007         }
24008         #endif
24009         if (unlikely(PyErr_WarnEx(PyExc_RuntimeWarning, cmsg, 1) < 0))
24010             PyErr_WriteUnraisable(self);
24011         Py_XDECREF(msg);}
24012 #endif
24013         PyObject_GC_Track(self);
24014         }
24015 #endif
24016     } else {
24017         PyObject *res = __Pyx_Coroutine_Close(self);
24018         if (unlikely(!res)) {
24019             if (PyErr_Occurred())
24020                 PyErr_WriteUnraisable(self);
24021         } else {
24022             Py_DECREF(res);
24023         }
24024     }
24025     __Pyx_ErrRestore(error_type, error_value, error_traceback);
24026 #if !CYTHON_USE_TP_FINALIZE
24027     assert(self->ob_refcnt > 0);
24028     if (--self->ob_refcnt == 0) {
24029         return;
24030     }
24031     {
24032         Py_ssize_t refcnt = self->ob_refcnt;
24033         _Py_NewReference(self);
24034         self->ob_refcnt = refcnt;
24035     }
24036 #if CYTHON_COMPILING_IN_CPYTHON
24037     assert(PyType_IS_GC(self->ob_type) &&
24038            _Py_AS_GC(self)->gc.gc_refs != _PyGC_REFS_UNTRACKED);
24039     _Py_DEC_REFTOTAL;
24040 #endif
24041 #ifdef COUNT_ALLOCS
24042     --Py_TYPE(self)->tp_frees;
24043     --Py_TYPE(self)->tp_allocs;
24044 #endif
24045 #endif
24046 }
24047 static PyObject *
__Pyx_Coroutine_get_name(__pyx_CoroutineObject * self,CYTHON_UNUSED void * context)24048 __Pyx_Coroutine_get_name(__pyx_CoroutineObject *self, CYTHON_UNUSED void *context)
24049 {
24050     PyObject *name = self->gi_name;
24051     if (unlikely(!name)) name = Py_None;
24052     Py_INCREF(name);
24053     return name;
24054 }
24055 static int
__Pyx_Coroutine_set_name(__pyx_CoroutineObject * self,PyObject * value,CYTHON_UNUSED void * context)24056 __Pyx_Coroutine_set_name(__pyx_CoroutineObject *self, PyObject *value, CYTHON_UNUSED void *context)
24057 {
24058     PyObject *tmp;
24059 #if PY_MAJOR_VERSION >= 3
24060     if (unlikely(value == NULL || !PyUnicode_Check(value)))
24061 #else
24062     if (unlikely(value == NULL || !PyString_Check(value)))
24063 #endif
24064     {
24065         PyErr_SetString(PyExc_TypeError,
24066                         "__name__ must be set to a string object");
24067         return -1;
24068     }
24069     tmp = self->gi_name;
24070     Py_INCREF(value);
24071     self->gi_name = value;
24072     Py_XDECREF(tmp);
24073     return 0;
24074 }
24075 static PyObject *
__Pyx_Coroutine_get_qualname(__pyx_CoroutineObject * self,CYTHON_UNUSED void * context)24076 __Pyx_Coroutine_get_qualname(__pyx_CoroutineObject *self, CYTHON_UNUSED void *context)
24077 {
24078     PyObject *name = self->gi_qualname;
24079     if (unlikely(!name)) name = Py_None;
24080     Py_INCREF(name);
24081     return name;
24082 }
24083 static int
__Pyx_Coroutine_set_qualname(__pyx_CoroutineObject * self,PyObject * value,CYTHON_UNUSED void * context)24084 __Pyx_Coroutine_set_qualname(__pyx_CoroutineObject *self, PyObject *value, CYTHON_UNUSED void *context)
24085 {
24086     PyObject *tmp;
24087 #if PY_MAJOR_VERSION >= 3
24088     if (unlikely(value == NULL || !PyUnicode_Check(value)))
24089 #else
24090     if (unlikely(value == NULL || !PyString_Check(value)))
24091 #endif
24092     {
24093         PyErr_SetString(PyExc_TypeError,
24094                         "__qualname__ must be set to a string object");
24095         return -1;
24096     }
24097     tmp = self->gi_qualname;
24098     Py_INCREF(value);
24099     self->gi_qualname = value;
24100     Py_XDECREF(tmp);
24101     return 0;
24102 }
__Pyx__Coroutine_New(PyTypeObject * type,__pyx_coroutine_body_t body,PyObject * code,PyObject * closure,PyObject * name,PyObject * qualname,PyObject * module_name)24103 static __pyx_CoroutineObject *__Pyx__Coroutine_New(
24104             PyTypeObject* type, __pyx_coroutine_body_t body, PyObject *code, PyObject *closure,
24105             PyObject *name, PyObject *qualname, PyObject *module_name) {
24106     __pyx_CoroutineObject *gen = PyObject_GC_New(__pyx_CoroutineObject, type);
24107     if (unlikely(!gen))
24108         return NULL;
24109     return __Pyx__Coroutine_NewInit(gen, body, code, closure, name, qualname, module_name);
24110 }
__Pyx__Coroutine_NewInit(__pyx_CoroutineObject * gen,__pyx_coroutine_body_t body,PyObject * code,PyObject * closure,PyObject * name,PyObject * qualname,PyObject * module_name)24111 static __pyx_CoroutineObject *__Pyx__Coroutine_NewInit(
24112             __pyx_CoroutineObject *gen, __pyx_coroutine_body_t body, PyObject *code, PyObject *closure,
24113             PyObject *name, PyObject *qualname, PyObject *module_name) {
24114     gen->body = body;
24115     gen->closure = closure;
24116     Py_XINCREF(closure);
24117     gen->is_running = 0;
24118     gen->resume_label = 0;
24119     gen->classobj = NULL;
24120     gen->yieldfrom = NULL;
24121     gen->gi_exc_state.exc_type = NULL;
24122     gen->gi_exc_state.exc_value = NULL;
24123     gen->gi_exc_state.exc_traceback = NULL;
24124 #if CYTHON_USE_EXC_INFO_STACK
24125     gen->gi_exc_state.previous_item = NULL;
24126 #endif
24127     gen->gi_weakreflist = NULL;
24128     Py_XINCREF(qualname);
24129     gen->gi_qualname = qualname;
24130     Py_XINCREF(name);
24131     gen->gi_name = name;
24132     Py_XINCREF(module_name);
24133     gen->gi_modulename = module_name;
24134     Py_XINCREF(code);
24135     gen->gi_code = code;
24136     PyObject_GC_Track(gen);
24137     return gen;
24138 }
24139 
24140 /* PatchModuleWithCoroutine */
__Pyx_Coroutine_patch_module(PyObject * module,const char * py_code)24141 static PyObject* __Pyx_Coroutine_patch_module(PyObject* module, const char* py_code) {
24142 #if defined(__Pyx_Generator_USED) || defined(__Pyx_Coroutine_USED)
24143     int result;
24144     PyObject *globals, *result_obj;
24145     globals = PyDict_New();  if (unlikely(!globals)) goto ignore;
24146     result = PyDict_SetItemString(globals, "_cython_coroutine_type",
24147     #ifdef __Pyx_Coroutine_USED
24148         (PyObject*)__pyx_CoroutineType);
24149     #else
24150         Py_None);
24151     #endif
24152     if (unlikely(result < 0)) goto ignore;
24153     result = PyDict_SetItemString(globals, "_cython_generator_type",
24154     #ifdef __Pyx_Generator_USED
24155         (PyObject*)__pyx_GeneratorType);
24156     #else
24157         Py_None);
24158     #endif
24159     if (unlikely(result < 0)) goto ignore;
24160     if (unlikely(PyDict_SetItemString(globals, "_module", module) < 0)) goto ignore;
24161     if (unlikely(PyDict_SetItemString(globals, "__builtins__", __pyx_b) < 0)) goto ignore;
24162     result_obj = PyRun_String(py_code, Py_file_input, globals, globals);
24163     if (unlikely(!result_obj)) goto ignore;
24164     Py_DECREF(result_obj);
24165     Py_DECREF(globals);
24166     return module;
24167 ignore:
24168     Py_XDECREF(globals);
24169     PyErr_WriteUnraisable(module);
24170     if (unlikely(PyErr_WarnEx(PyExc_RuntimeWarning, "Cython module failed to patch module with custom type", 1) < 0)) {
24171         Py_DECREF(module);
24172         module = NULL;
24173     }
24174 #else
24175     py_code++;
24176 #endif
24177     return module;
24178 }
24179 
24180 /* PatchGeneratorABC */
24181 #ifndef CYTHON_REGISTER_ABCS
24182 #define CYTHON_REGISTER_ABCS 1
24183 #endif
24184 #if defined(__Pyx_Generator_USED) || defined(__Pyx_Coroutine_USED)
24185 static PyObject* __Pyx_patch_abc_module(PyObject *module);
__Pyx_patch_abc_module(PyObject * module)24186 static PyObject* __Pyx_patch_abc_module(PyObject *module) {
24187     module = __Pyx_Coroutine_patch_module(
24188         module, ""
24189 "if _cython_generator_type is not None:\n"
24190 "    try: Generator = _module.Generator\n"
24191 "    except AttributeError: pass\n"
24192 "    else: Generator.register(_cython_generator_type)\n"
24193 "if _cython_coroutine_type is not None:\n"
24194 "    try: Coroutine = _module.Coroutine\n"
24195 "    except AttributeError: pass\n"
24196 "    else: Coroutine.register(_cython_coroutine_type)\n"
24197     );
24198     return module;
24199 }
24200 #endif
__Pyx_patch_abc(void)24201 static int __Pyx_patch_abc(void) {
24202 #if defined(__Pyx_Generator_USED) || defined(__Pyx_Coroutine_USED)
24203     static int abc_patched = 0;
24204     if (CYTHON_REGISTER_ABCS && !abc_patched) {
24205         PyObject *module;
24206         module = PyImport_ImportModule((PY_MAJOR_VERSION >= 3) ? "collections.abc" : "collections");
24207         if (!module) {
24208             PyErr_WriteUnraisable(NULL);
24209             if (unlikely(PyErr_WarnEx(PyExc_RuntimeWarning,
24210                     ((PY_MAJOR_VERSION >= 3) ?
24211                         "Cython module failed to register with collections.abc module" :
24212                         "Cython module failed to register with collections module"), 1) < 0)) {
24213                 return -1;
24214             }
24215         } else {
24216             module = __Pyx_patch_abc_module(module);
24217             abc_patched = 1;
24218             if (unlikely(!module))
24219                 return -1;
24220             Py_DECREF(module);
24221         }
24222         module = PyImport_ImportModule("backports_abc");
24223         if (module) {
24224             module = __Pyx_patch_abc_module(module);
24225             Py_XDECREF(module);
24226         }
24227         if (!module) {
24228             PyErr_Clear();
24229         }
24230     }
24231 #else
24232     if ((0)) __Pyx_Coroutine_patch_module(NULL, NULL);
24233 #endif
24234     return 0;
24235 }
24236 
24237 /* Generator */
24238 static PyMethodDef __pyx_Generator_methods[] = {
24239     {"send", (PyCFunction) __Pyx_Coroutine_Send, METH_O,
24240      (char*) PyDoc_STR("send(arg) -> send 'arg' into generator,\nreturn next yielded value or raise StopIteration.")},
24241     {"throw", (PyCFunction) __Pyx_Coroutine_Throw, METH_VARARGS,
24242      (char*) PyDoc_STR("throw(typ[,val[,tb]]) -> raise exception in generator,\nreturn next yielded value or raise StopIteration.")},
24243     {"close", (PyCFunction) __Pyx_Coroutine_Close_Method, METH_NOARGS,
24244      (char*) PyDoc_STR("close() -> raise GeneratorExit inside generator.")},
24245     {0, 0, 0, 0}
24246 };
24247 static PyMemberDef __pyx_Generator_memberlist[] = {
24248     {(char *) "gi_running", T_BOOL, offsetof(__pyx_CoroutineObject, is_running), READONLY, NULL},
24249     {(char*) "gi_yieldfrom", T_OBJECT, offsetof(__pyx_CoroutineObject, yieldfrom), READONLY,
24250      (char*) PyDoc_STR("object being iterated by 'yield from', or None")},
24251     {(char*) "gi_code", T_OBJECT, offsetof(__pyx_CoroutineObject, gi_code), READONLY, NULL},
24252     {0, 0, 0, 0, 0}
24253 };
24254 static PyGetSetDef __pyx_Generator_getsets[] = {
24255     {(char *) "__name__", (getter)__Pyx_Coroutine_get_name, (setter)__Pyx_Coroutine_set_name,
24256      (char*) PyDoc_STR("name of the generator"), 0},
24257     {(char *) "__qualname__", (getter)__Pyx_Coroutine_get_qualname, (setter)__Pyx_Coroutine_set_qualname,
24258      (char*) PyDoc_STR("qualified name of the generator"), 0},
24259     {0, 0, 0, 0, 0}
24260 };
24261 static PyTypeObject __pyx_GeneratorType_type = {
24262     PyVarObject_HEAD_INIT(0, 0)
24263     "generator",
24264     sizeof(__pyx_CoroutineObject),
24265     0,
24266     (destructor) __Pyx_Coroutine_dealloc,
24267     0,
24268     0,
24269     0,
24270     0,
24271     0,
24272     0,
24273     0,
24274     0,
24275     0,
24276     0,
24277     0,
24278     0,
24279     0,
24280     0,
24281     Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC | Py_TPFLAGS_HAVE_FINALIZE,
24282     0,
24283     (traverseproc) __Pyx_Coroutine_traverse,
24284     0,
24285     0,
24286     offsetof(__pyx_CoroutineObject, gi_weakreflist),
24287     0,
24288     (iternextfunc) __Pyx_Generator_Next,
24289     __pyx_Generator_methods,
24290     __pyx_Generator_memberlist,
24291     __pyx_Generator_getsets,
24292     0,
24293     0,
24294     0,
24295     0,
24296     0,
24297     0,
24298     0,
24299     0,
24300     0,
24301     0,
24302     0,
24303     0,
24304     0,
24305     0,
24306     0,
24307 #if CYTHON_USE_TP_FINALIZE
24308     0,
24309 #else
24310     __Pyx_Coroutine_del,
24311 #endif
24312     0,
24313 #if CYTHON_USE_TP_FINALIZE
24314     __Pyx_Coroutine_del,
24315 #elif PY_VERSION_HEX >= 0x030400a1
24316     0,
24317 #endif
24318 #if PY_VERSION_HEX >= 0x030800b1
24319     0,
24320 #endif
24321 #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
24322     0,
24323 #endif
24324 };
__pyx_Generator_init(void)24325 static int __pyx_Generator_init(void) {
24326     __pyx_GeneratorType_type.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
24327     __pyx_GeneratorType_type.tp_iter = PyObject_SelfIter;
24328     __pyx_GeneratorType = __Pyx_FetchCommonType(&__pyx_GeneratorType_type);
24329     if (unlikely(!__pyx_GeneratorType)) {
24330         return -1;
24331     }
24332     return 0;
24333 }
24334 
24335 /* CheckBinaryVersion */
__Pyx_check_binary_version(void)24336 static int __Pyx_check_binary_version(void) {
24337     char ctversion[4], rtversion[4];
24338     PyOS_snprintf(ctversion, 4, "%d.%d", PY_MAJOR_VERSION, PY_MINOR_VERSION);
24339     PyOS_snprintf(rtversion, 4, "%s", Py_GetVersion());
24340     if (ctversion[0] != rtversion[0] || ctversion[2] != rtversion[2]) {
24341         char message[200];
24342         PyOS_snprintf(message, sizeof(message),
24343                       "compiletime version %s of module '%.100s' "
24344                       "does not match runtime version %s",
24345                       ctversion, __Pyx_MODULE_NAME, rtversion);
24346         return PyErr_WarnEx(NULL, message, 1);
24347     }
24348     return 0;
24349 }
24350 
24351 /* InitStrings */
__Pyx_InitStrings(__Pyx_StringTabEntry * t)24352 static int __Pyx_InitStrings(__Pyx_StringTabEntry *t) {
24353     while (t->p) {
24354         #if PY_MAJOR_VERSION < 3
24355         if (t->is_unicode) {
24356             *t->p = PyUnicode_DecodeUTF8(t->s, t->n - 1, NULL);
24357         } else if (t->intern) {
24358             *t->p = PyString_InternFromString(t->s);
24359         } else {
24360             *t->p = PyString_FromStringAndSize(t->s, t->n - 1);
24361         }
24362         #else
24363         if (t->is_unicode | t->is_str) {
24364             if (t->intern) {
24365                 *t->p = PyUnicode_InternFromString(t->s);
24366             } else if (t->encoding) {
24367                 *t->p = PyUnicode_Decode(t->s, t->n - 1, t->encoding, NULL);
24368             } else {
24369                 *t->p = PyUnicode_FromStringAndSize(t->s, t->n - 1);
24370             }
24371         } else {
24372             *t->p = PyBytes_FromStringAndSize(t->s, t->n - 1);
24373         }
24374         #endif
24375         if (!*t->p)
24376             return -1;
24377         if (PyObject_Hash(*t->p) == -1)
24378             return -1;
24379         ++t;
24380     }
24381     return 0;
24382 }
24383 
__Pyx_PyUnicode_FromString(const char * c_str)24384 static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(const char* c_str) {
24385     return __Pyx_PyUnicode_FromStringAndSize(c_str, (Py_ssize_t)strlen(c_str));
24386 }
__Pyx_PyObject_AsString(PyObject * o)24387 static CYTHON_INLINE const char* __Pyx_PyObject_AsString(PyObject* o) {
24388     Py_ssize_t ignore;
24389     return __Pyx_PyObject_AsStringAndSize(o, &ignore);
24390 }
24391 #if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT
24392 #if !CYTHON_PEP393_ENABLED
__Pyx_PyUnicode_AsStringAndSize(PyObject * o,Py_ssize_t * length)24393 static const char* __Pyx_PyUnicode_AsStringAndSize(PyObject* o, Py_ssize_t *length) {
24394     char* defenc_c;
24395     PyObject* defenc = _PyUnicode_AsDefaultEncodedString(o, NULL);
24396     if (!defenc) return NULL;
24397     defenc_c = PyBytes_AS_STRING(defenc);
24398 #if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
24399     {
24400         char* end = defenc_c + PyBytes_GET_SIZE(defenc);
24401         char* c;
24402         for (c = defenc_c; c < end; c++) {
24403             if ((unsigned char) (*c) >= 128) {
24404                 PyUnicode_AsASCIIString(o);
24405                 return NULL;
24406             }
24407         }
24408     }
24409 #endif
24410     *length = PyBytes_GET_SIZE(defenc);
24411     return defenc_c;
24412 }
24413 #else
__Pyx_PyUnicode_AsStringAndSize(PyObject * o,Py_ssize_t * length)24414 static CYTHON_INLINE const char* __Pyx_PyUnicode_AsStringAndSize(PyObject* o, Py_ssize_t *length) {
24415     if (unlikely(__Pyx_PyUnicode_READY(o) == -1)) return NULL;
24416 #if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
24417     if (likely(PyUnicode_IS_ASCII(o))) {
24418         *length = PyUnicode_GET_LENGTH(o);
24419         return PyUnicode_AsUTF8(o);
24420     } else {
24421         PyUnicode_AsASCIIString(o);
24422         return NULL;
24423     }
24424 #else
24425     return PyUnicode_AsUTF8AndSize(o, length);
24426 #endif
24427 }
24428 #endif
24429 #endif
__Pyx_PyObject_AsStringAndSize(PyObject * o,Py_ssize_t * length)24430 static CYTHON_INLINE const char* __Pyx_PyObject_AsStringAndSize(PyObject* o, Py_ssize_t *length) {
24431 #if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT
24432     if (
24433 #if PY_MAJOR_VERSION < 3 && __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
24434             __Pyx_sys_getdefaultencoding_not_ascii &&
24435 #endif
24436             PyUnicode_Check(o)) {
24437         return __Pyx_PyUnicode_AsStringAndSize(o, length);
24438     } else
24439 #endif
24440 #if (!CYTHON_COMPILING_IN_PYPY) || (defined(PyByteArray_AS_STRING) && defined(PyByteArray_GET_SIZE))
24441     if (PyByteArray_Check(o)) {
24442         *length = PyByteArray_GET_SIZE(o);
24443         return PyByteArray_AS_STRING(o);
24444     } else
24445 #endif
24446     {
24447         char* result;
24448         int r = PyBytes_AsStringAndSize(o, &result, length);
24449         if (unlikely(r < 0)) {
24450             return NULL;
24451         } else {
24452             return result;
24453         }
24454     }
24455 }
__Pyx_PyObject_IsTrue(PyObject * x)24456 static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject* x) {
24457    int is_true = x == Py_True;
24458    if (is_true | (x == Py_False) | (x == Py_None)) return is_true;
24459    else return PyObject_IsTrue(x);
24460 }
__Pyx_PyObject_IsTrueAndDecref(PyObject * x)24461 static CYTHON_INLINE int __Pyx_PyObject_IsTrueAndDecref(PyObject* x) {
24462     int retval;
24463     if (unlikely(!x)) return -1;
24464     retval = __Pyx_PyObject_IsTrue(x);
24465     Py_DECREF(x);
24466     return retval;
24467 }
__Pyx_PyNumber_IntOrLongWrongResultType(PyObject * result,const char * type_name)24468 static PyObject* __Pyx_PyNumber_IntOrLongWrongResultType(PyObject* result, const char* type_name) {
24469 #if PY_MAJOR_VERSION >= 3
24470     if (PyLong_Check(result)) {
24471         if (PyErr_WarnFormat(PyExc_DeprecationWarning, 1,
24472                 "__int__ returned non-int (type %.200s).  "
24473                 "The ability to return an instance of a strict subclass of int "
24474                 "is deprecated, and may be removed in a future version of Python.",
24475                 Py_TYPE(result)->tp_name)) {
24476             Py_DECREF(result);
24477             return NULL;
24478         }
24479         return result;
24480     }
24481 #endif
24482     PyErr_Format(PyExc_TypeError,
24483                  "__%.4s__ returned non-%.4s (type %.200s)",
24484                  type_name, type_name, Py_TYPE(result)->tp_name);
24485     Py_DECREF(result);
24486     return NULL;
24487 }
__Pyx_PyNumber_IntOrLong(PyObject * x)24488 static CYTHON_INLINE PyObject* __Pyx_PyNumber_IntOrLong(PyObject* x) {
24489 #if CYTHON_USE_TYPE_SLOTS
24490   PyNumberMethods *m;
24491 #endif
24492   const char *name = NULL;
24493   PyObject *res = NULL;
24494 #if PY_MAJOR_VERSION < 3
24495   if (likely(PyInt_Check(x) || PyLong_Check(x)))
24496 #else
24497   if (likely(PyLong_Check(x)))
24498 #endif
24499     return __Pyx_NewRef(x);
24500 #if CYTHON_USE_TYPE_SLOTS
24501   m = Py_TYPE(x)->tp_as_number;
24502   #if PY_MAJOR_VERSION < 3
24503   if (m && m->nb_int) {
24504     name = "int";
24505     res = m->nb_int(x);
24506   }
24507   else if (m && m->nb_long) {
24508     name = "long";
24509     res = m->nb_long(x);
24510   }
24511   #else
24512   if (likely(m && m->nb_int)) {
24513     name = "int";
24514     res = m->nb_int(x);
24515   }
24516   #endif
24517 #else
24518   if (!PyBytes_CheckExact(x) && !PyUnicode_CheckExact(x)) {
24519     res = PyNumber_Int(x);
24520   }
24521 #endif
24522   if (likely(res)) {
24523 #if PY_MAJOR_VERSION < 3
24524     if (unlikely(!PyInt_Check(res) && !PyLong_Check(res))) {
24525 #else
24526     if (unlikely(!PyLong_CheckExact(res))) {
24527 #endif
24528         return __Pyx_PyNumber_IntOrLongWrongResultType(res, name);
24529     }
24530   }
24531   else if (!PyErr_Occurred()) {
24532     PyErr_SetString(PyExc_TypeError,
24533                     "an integer is required");
24534   }
24535   return res;
24536 }
24537 static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject* b) {
24538   Py_ssize_t ival;
24539   PyObject *x;
24540 #if PY_MAJOR_VERSION < 3
24541   if (likely(PyInt_CheckExact(b))) {
24542     if (sizeof(Py_ssize_t) >= sizeof(long))
24543         return PyInt_AS_LONG(b);
24544     else
24545         return PyInt_AsSsize_t(b);
24546   }
24547 #endif
24548   if (likely(PyLong_CheckExact(b))) {
24549     #if CYTHON_USE_PYLONG_INTERNALS
24550     const digit* digits = ((PyLongObject*)b)->ob_digit;
24551     const Py_ssize_t size = Py_SIZE(b);
24552     if (likely(__Pyx_sst_abs(size) <= 1)) {
24553         ival = likely(size) ? digits[0] : 0;
24554         if (size == -1) ival = -ival;
24555         return ival;
24556     } else {
24557       switch (size) {
24558          case 2:
24559            if (8 * sizeof(Py_ssize_t) > 2 * PyLong_SHIFT) {
24560              return (Py_ssize_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
24561            }
24562            break;
24563          case -2:
24564            if (8 * sizeof(Py_ssize_t) > 2 * PyLong_SHIFT) {
24565              return -(Py_ssize_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
24566            }
24567            break;
24568          case 3:
24569            if (8 * sizeof(Py_ssize_t) > 3 * PyLong_SHIFT) {
24570              return (Py_ssize_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
24571            }
24572            break;
24573          case -3:
24574            if (8 * sizeof(Py_ssize_t) > 3 * PyLong_SHIFT) {
24575              return -(Py_ssize_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
24576            }
24577            break;
24578          case 4:
24579            if (8 * sizeof(Py_ssize_t) > 4 * PyLong_SHIFT) {
24580              return (Py_ssize_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
24581            }
24582            break;
24583          case -4:
24584            if (8 * sizeof(Py_ssize_t) > 4 * PyLong_SHIFT) {
24585              return -(Py_ssize_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
24586            }
24587            break;
24588       }
24589     }
24590     #endif
24591     return PyLong_AsSsize_t(b);
24592   }
24593   x = PyNumber_Index(b);
24594   if (!x) return -1;
24595   ival = PyInt_AsSsize_t(x);
24596   Py_DECREF(x);
24597   return ival;
24598 }
24599 static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b) {
24600   return b ? __Pyx_NewRef(Py_True) : __Pyx_NewRef(Py_False);
24601 }
24602 static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t ival) {
24603     return PyInt_FromSize_t(ival);
24604 }
24605 
24606 
24607 #endif /* Py_PYTHON_H */
24608