Ë
    ±éägèª  ã                   óJ   — d dl Z ddlmZ ddlmZ ddlmZ  G d„ de«      ZdZ	y)	é    Né   )Úmodel©ÚVerificationError)Ú_imp_emulationc                   ó¦  — e Zd ZdZdZd„ Zd„ Zd„ Zd„ Zd7d„Z	d„ Z
d	„ Zd
„ Zd8d„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ ZeZeZeZeZeZd„ Zd„ Zd„ ZeZd„ Z eZ!d„ Z"d„ Z#d„ Z$d„ Z%eZ&d„ Z'd„ Z(d „ Z)d!„ Z*d"„ Z+d#„ Z,d$„ Z-d%„ Z.eZ/d&„ Z0d'„ Z1d(„ Z2d)„ Z3	 	 	 d9d*„Z4d+„ Z5d,„ Z6eZ7eZ8eZ9d7d-„Z:d.„ Z;d:d/„Z<eZ=eZ>d0„ Z?d1„ Z@d2„ ZAeZBeZCeZDeZEd3„ ZFd4„ ZGeZHeZId5„ ZJd6„ ZKy);ÚVCPythonEngineÚxTc                 óP   — || _         |j                  | _        i | _        i | _        y ©N)ÚverifierÚffiÚ_struct_pending_verificationÚ_types_of_builtin_functions)Úselfr   s     úN/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/cffi/vengine_cpy.pyÚ__init__zVCPythonEngine.__init__   s$   € Ø ˆŒØ—<‘<ˆŒØ,.ˆÔ)Ø+-ˆÕ(ó    c                  ó   — y r   © )r   Úkwdss     r   Úpatch_extension_kwdsz#VCPythonEngine.patch_extension_kwds   ó   € Ør   c                 óŽ   — 	 t        j                  ||«      \  }}}|�|j                  «        |d   |vry |S # t        $ r Y y w xY w©Nr   )ÚimpÚfind_moduleÚImportErrorÚclose)r   Úmodule_nameÚpathÚso_suffixesÚfÚfilenameÚdescrs          r   r   zVCPythonEngine.find_module   sX   € ð	Ü!$§¡°¸dÓ!CÑˆAˆx˜ð ˆ=Ø�G‰GŒIð �‰8˜;Ñ&ØØˆøô ò 	Ùð	ús   ‚8 ¸	AÁAc                 ó4   — i | _         | j                  d«       y )NÚcollecttype)Ú
_typesdictÚ	_generate)r   s    r   Úcollect_typeszVCPythonEngine.collect_types%   s   € ØˆŒØ�‰�}Õ%r   c                 ó@   — | j                   j                  |dz   «       y )Nú
)Ú_fÚwrite)r   Úwhats     r   Ú_prntzVCPythonEngine._prnt)   s   € Ø�‰�‰�d˜T‘kÕ"r   c                 ó    — | j                   |   S r   )r(   )r   Útypes     r   Ú_gettypenumzVCPythonEngine._gettypenum,   s   € à�‰˜tÑ$Ð$r   c                 ó¾   — t        |t        j                  «      r|j                  dk(  r4|| j                  vr%t        | j                  «      }|| j                  |<   y y y )Núlong double)Ú
isinstancer   ÚPrimitiveTypeÚnamer(   Úlen)r   ÚtpÚnums      r   Ú_do_collect_typezVCPythonEngine._do_collect_type0   sP   € Ü˜B¤× 3Ñ 3Ô4Ø—‘˜=Ò(Ø˜dŸo™oÑ-Ü�d—o‘oÓ&ˆCØ"%ˆD�O‰O˜BÒð .ð )r   c                 ój  — | j                  «        ddg| _        | j                  } |t        «        |«         || j                  j
                  «        |«        | j                  d«       | j                  «         |«         |d«       | j                  d«        |d«        |d«        |d«        |«        | j                  j                  «       }| j                  d   } |d	«        |«         |d
«        |d«        |d|z  «        |d«        |d«        |d«        |d«        |d«        |«         |d«        |d|z  «        |d«        |d«        |d«        |d«        |d«        |d|›d�«        |d«        |d«        |d«        |d«        |d«        |«         |d«        |«         |d«        |d|z  «        |d«        |d«        |d |z  «        |d«        |d!«        |d|›d"�«        |d!«        |d#«        |d«        |«         |d$«       y )%Nz((void)lib,0)Údeclz&static PyMethodDef _cffi_methods[] = {Úmethodz3  {"_cffi_setup", _cffi_setup, METH_VARARGS, NULL},z)  {NULL, NULL, 0, NULL}    /* Sentinel */z};Fz#if PY_MAJOR_VERSION >= 3z.static struct PyModuleDef _cffi_module_def = {z  PyModuleDef_HEAD_INIT,z  "%s",z  NULL,z  -1,z  _cffi_methods,z  NULL, NULL, NULL, NULLÚPyMODINIT_FUNCzPyInit_%s(void)ú{z  PyObject *lib;z+  lib = PyModule_Create(&_cffi_module_def);z  if (lib == NULL)ú    return NULL;ú  if (z < 0 || _cffi_init() < 0) {z    Py_DECREF(lib);ú  }z  return lib;ú}z#elsezinit%s(void)z+  lib = Py_InitModule("%s", _cffi_methods);z    return;z < 0 || _cffi_init() < 0)z	  return;z#endif)	r*   Ú_chained_list_constantsr0   Úcffimod_headerr   Úpreambler)   Ú_generate_setup_customÚget_module_name)r   ÚprntÚmodnameÚ	constantss       r   Úwrite_source_to_fz VCPythonEngine.write_source_to_f7   s  € Ø×ÑÔð" )8¸Ð'IˆÔ$à�z‰zˆáŒ^ÔÙŒáˆT�]‰]×#Ñ#Ô$ÙŒð 	�‰�vÔð 	×#Ñ#Ô%ÙŒñ
 	Ð5Ô6Ø�‰�xÔ ÙÐBÔCÙÐ8Ô9ÙˆTŒ
ÙŒð —-‘-×/Ñ/Ó1ˆØ×0Ñ0°Ñ7ˆ	ÙÐ(Ô)ÙŒÙÐ=Ô>ÙÐ'Ô(ÙˆY˜Ñ Ô!ÙˆYŒÙˆWŒÙÐÔ ÙÐ'Ô(ÙˆTŒ
ÙŒÙÐÔÙÐ Ñ(Ô)ÙˆSŒ	ÙÐÔ ÙÐ:Ô;ÙÐ!Ô"ÙÐÔ Ú²iÐAÔBÙÐ"Ô#ÙÐÔ ÙˆUŒÙˆ_ÔÙˆSŒ	ÙŒÙˆWŒÙŒÙÐÔÙˆ^˜gÑ%Ô&ÙˆSŒ	ÙÐÔ ÙÐ:¸WÑDÔEÙÐ!Ô"Ùˆ]ÔÚ²IÐ?Ô@Ùˆ]ÔÙˆ[ÔÙˆSŒ	ÙŒÙˆX�r   Nc                 ó2  ‡ ‡‡— t        j                  «        	 t        t        d«      rt        j                  «       }	 t        t        d«      r|�t        j
                  |«       t        j                  ‰ j                  j                  «       ‰ j                  j                  «      Š	 t        t        d«      rt        j
                  «       	 t        j                  «        ‰ j                  ‰d«       t        ‰ j                  j!                  «       D ��cg c]	  \  }}||f‘Œ c}}«      }t#        t%        |«      «      D �cg c]  }||   ‘Œ	 }	}t'        t)        ‰ j*                  j,                  |	«      «      }	 G ˆˆˆ fd„dt.        «      Š ‰«       }
‰j1                  |	t        |
«      r0dd l}|j5                  d	‰ j                  j                  «       z  «       ‰ j                  ‰d
|
¬«       ‰ j*                  ‰_        ‰ j8                  ‰_        |
S # t        $ r,}d‰ j                  j                  ›d|›�}t        |«      ‚d }~ww xY w# t        t        d«      rt        j
                  «       w w xY w# t        j                  «        w xY wc c}}w c c}w )NÚgetdlopenflagsÚsetdlopenflagsz
importing z: Úloadingc                   ó<   •— e Zd ZW °ZW °j                  Zg Zˆ fd„Zy)ú/VCPythonEngine.load_library.<locals>.FFILibraryc                 óH   •— ‰j                   t        | j                  «      z   S r   )Ú	_cffi_dirÚlistÚ__dict__)r   Ú
FFILibrarys    €r   Ú__dir__z7VCPythonEngine.load_library.<locals>.FFILibrary.__dir__»   s   ø€ Ø!×+Ñ+¬d°4·=±=Ó.AÑAÐAr   N)Ú__name__Ú
__module__Ú__qualname__Ú_cffi_python_moduler   Ú	_cffi_ffirV   rZ   )rY   Úmoduler   s   €€€r   rY   rT   ·   s   ø„ Ù"(ÐÙŸ™ˆIØˆIõBr   rY   r   z0reimporting %r might overwrite older definitionsÚloaded)Úlibrary)r   Úacquire_lockÚhasattrÚsysrP   rQ   Úload_dynamicr   rJ   Úmodulefilenamer   r   Úrelease_lockÚ_loadÚdictr(   ÚitemsÚranger9   rW   Úmapr   Ú_get_cached_btypeÚobjectÚ_cffi_setupÚwarningsÚwarnÚ_cffi_original_ffir   Ú_cffi_types_of_builtin_funcs)r   ÚflagsÚprevious_flagsÚeÚerrorÚkeyÚvalueÚ
revmappingÚiÚlstrb   rq   rY   r`   s   `           @@r   Úload_libraryzVCPythonEngine.load_library’   s  ú€ ô 	×ÑÔð	Ü”sÐ,Ô-Ü!$×!3Ñ!3Ó!5�ð
7Üœ3Ð 0Ô1°eÐ6GÜ×&Ñ& uÔ-Ü×)Ñ)¨$¯-©-×*GÑ*GÓ*IØ*.¯-©-×*FÑ*FóH‘ô œ3Ð 0Ô1Ü×&Ñ& ~Õ6ä×ÑÔð 	�
‰
�6˜9Ô%ô Ø/3¯©×/DÑ/DÓ/F÷HÙ+  Uð " 3š<ó Hó Iˆ
ä&+¬C°
«OÓ&<Ö= ˆz˜!‹}Ð=ˆÐ=Ü”3�t—x‘x×1Ñ1°3Ó7Ó8ˆ÷	Bð 	Bœô 	Bñ “,ˆØ×Ñ˜cÔ#4°gÔ>ÛØ�M‰MÐLØ!Ÿ]™]×:Ñ:Ó<ñ>ô ?ð 	�
‰
�6˜8¨Wˆ
Ô5Ø$(§H¡HˆÔ!Ø.2×.NÑ.NˆÔ+ØˆøôY ó /Ø.2¯m©m×.JÓ.JÉAÐN�Ü'¨Ó.Ð.ûð/ûô œ3Ð 0Ô1Ü×&Ñ& ~Õ6ð 2ûô ×ÑÕüóHùâ=sG   ™$I5 ¾A)H Â(&I5 ÄJ
ÅJÈ	IÈ'IÉIÉI
 É
(I2É2I5 É5Jc                 óÂ   — | j                   j                  j                  j                  «       D ���cg c]  \  }\  }}||f‘Œ }}}}|j	                  «        |S c c}}}w r   )r   Ú_parserÚ_declarationsrk   Úsort)r   ry   r:   Úqualr}   s        r   Ú_get_declarationsz VCPythonEngine._get_declarationsÌ   s^   € à $§¡× 0Ñ 0× >Ñ >× DÑ DÓ F÷Hð HÑ.˜c¡: B¨��RŠyð Hˆò Hà�‰Œ
Øˆ
ùôHs   ³Ac                 ó  — | j                  «       D ]7  \  }}|j                  dd«      \  }}	 t        | d|›d|›�«      }	  |||«       Œ9 y # t        $ r t	        d|z  «      ‚w xY w# t
        $ r}t        j                  ||«       ‚ d }~ww xY w)Nú r   Ú_generate_cpy_Ú_znot implemented in verify(): %r)r„   ÚsplitÚgetattrÚAttributeErrorr   Ú	Exceptionr   Úattach_exception_info)r   Ú	step_namer8   r:   ÚkindÚrealnamer?   rw   s           r   r)   zVCPythonEngine._generateÒ   s¨   € Ø×.Ñ.Ó0ò 	‰HˆD�"Ø!ŸZ™Z¨¨QÓ/‰NˆD�(ð>Ü ¡ÂÙ@Ið(Kó L�ð
Ù�r˜8Õ$ñ	øô
 "ò >Ü'Ø5¸Ñ<ó>ð >ð>ûô
 ò Ü×+Ñ+¨A¨tÔ4Øûðús#   ­AÁ 	A'ÁA$Á'	BÁ0BÂBc                 óê   — | j                  «       D ]8  \  }}|j                  dd«      \  }}t        | d|›d|›�«      }	  ||||fi |¤Ž Œ: y # t        $ r}	t	        j
                  |	|«       ‚ d }	~	ww xY w)Nr†   r   rˆ   Ú_cpy_)r„   r‰   rŠ   rŒ   r   r�   )
r   r`   rŽ   r   r8   r:   r�   r�   r?   rw   s
             r   ri   zVCPythonEngine._loadá   s~   € Ø×.Ñ.Ó0ò 	‰HˆD�"Ø!ŸZ™Z¨¨QÓ/‰NˆD�(Ü™T²9¹dÐ#CÓDˆFðÙ�r˜8 VÑ4¨tÓ4ñ		øô
 ò Ü×+Ñ+¨A¨tÔ4Øûðús   ¿AÁ	A2ÁA-Á-A2c                  ó   — y r   r   ©r   r:   r8   s      r   Ú_generate_nothingz VCPythonEngine._generate_nothingë   r   r   c                  ó   — y r   r   ©r   r:   r8   r`   r   s        r   Ú_loaded_noopzVCPythonEngine._loaded_noopî   r   r   c           
      óº  — d}t        |t        j                  «      r€|j                  «       r!|j                  dk7  rd}d|j                  z  }nL|j                  «       rt        d«      ‚d|j                  d«      ›d|j                  j                  dd	«      ›�}d
}nät        |t        j                  «      r| j                  ||||«       y t        |t        j                  t        j                  f«      r;| j                  d|| j                  |«      |fz  «       | j                  d|z  «       y t        |t        j                  «      r+d|j                  d«      z  }d| j                  |«      z  }d}nt!        |«      ‚| j                  d|›d|›d|›|›d�«       | j                  d|›d|j                  d«      ›d|›d�«       | j                  d|z  «       y )NÚ Ú_BoolÚ_cffi_to_c_intz, %sz*not implemented in verify(): complex typesú(z)_cffi_to_c_r†   rˆ   z-1z6  if (_cffi_to_c((char *)&%s, _cffi_type(%d), %s) < 0)z    %s;z(%s)_cffi_to_c_pointerz, _cffi_type(%d)ÚNULLú  z = ú);rC   z == (ú)z && PyErr_Occurred()))r6   r   r7   Úis_integer_typer8   Úis_complex_typer   Ú
get_c_nameÚreplaceÚPointerTypeÚ"_convert_funcarg_to_c_ptr_or_arrayÚStructOrUnionÚEnumTyper0   r3   ÚFunctionPtrTypeÚNotImplementedError)r   r:   ÚfromvarÚtovarÚerrcodeÚextraargÚ	converterÚerrvalues           r   Ú_convert_funcarg_to_cz$VCPythonEngine._convert_funcarg_to_có   s¤  € ØˆÜ�bœ%×-Ñ-Ô.Ø×!Ñ!Ô#¨¯©°7Ò(:Ø,�	Ø! B§G¡GÑ+‘Ø×#Ñ#Ô%Ü'Ø@óBð Bð &ð 46·=±=ÀÕ3DØ35·7±7·?±?À3ÈÔ3LðN�	à‰Hä˜œE×-Ñ-Ô.Ø×3Ñ3°B¸Ø49¸7ôDàä˜œU×0Ñ0´%·.±.ÐAÔBà�J‰JÐOØ × 0Ñ 0°Ó 4°gÐ>ñ?ô @à�J‰J�y 7Ñ*Ô+Øä˜œE×1Ñ1Ô2Ø0°2·=±=ÀÓ3DÑDˆIØ)¨D×,<Ñ,<¸RÓ,@Ñ@ˆHØ‰Hô & bÓ)Ð)à�
Š
ª²	¹7ÂHÐMÔNØ�
Š
Ú�2—=‘= Õ$¢hð0ô 	1à�
‰
�9˜wÑ&Õ'r   c                 ó    — t        |t        j                  «      r4|j                  d«       |j                  d«       |j                  d«       y y )NzPy_ssize_t datasizez-struct _cffi_freeme_s *large_args_free = NULLzIif (large_args_free != NULL) _cffi_free_array_arguments(large_args_free);)r6   r   r¦   Úadd)r   r:   Ú	localvarsÚ	freeliness       r   Ú_extra_local_variablesz%VCPythonEngine._extra_local_variables  sD   € Ü�bœ%×+Ñ+Ô,Ø�M‰MÐ/Ô0Ø�M‰MÐIÔJØ�M‰Mð Jõ Kð -r   c                 óv  — | j                  d«       | j                  d| j                  |«      ||fz  «       | j                  d«       | j                  d|›d�«       | j                  d| j                  |«      ||fz  «       | j                  d«       | j                  d|z  «       | j                  d	«       y )
Nz1  datasize = _cffi_prepare_pointer_call_argument(z(      _cffi_type(%d), %s, (char **)&%s);z  if (datasize != 0) {z    z? = ((size_t)datasize) <= 640 ? alloca((size_t)datasize) : NULL;zF    if (_cffi_convert_array_argument(_cffi_type(%d), %s, (char **)&%s,z,            datasize, &large_args_free) < 0)z	      %s;rD   )r0   r3   )r   r:   r¬   r­   r®   s        r   r§   z1VCPythonEngine._convert_funcarg_to_c_ptr_or_array!  sµ   € Ø�
‰
ÐFÔGØ�
‰
Ð=Ø×Ñ˜RÓ  '¨5ðA2ñ 2ô 	3à�
‰
Ð+Ô,Ø�
Š
Ú9>ðAô 	Bà�
‰
ð #Ø&*×&6Ñ&6°rÓ&:¸GÀUÐ%KñLô 	Mà�
‰
ÐAÔBØ�
‰
�; Ñ(Ô)Ø�
‰
�5Õr   c                 ór  — t        |t        j                  «      rz|j                  «       r"|j                  dk7  rd|›d|j                  ›d�S |j                  dk7  r#d|j                  j                  dd«      ›d	|›d�S d
|| j                  |«      fz  S t        |t        j                  t        j                  f«      rd|| j                  |«      fz  S t        |t        j                  «      r3d|| j                  t        j                  |j                  «      «      fz  S t        |t        j                  «      rB|j                  € t        d|j                  «       ›d|›d�«      ‚d|| j                  |«      fz  S t        |t        j                  «      rd
|| j                  |«      fz  S t!        |«      ‚)Nr›   z_cffi_from_c_int(ú, r¡   r5   Ú_cffi_from_c_r†   rˆ   r�   z/_cffi_from_c_deref((char *)&%s, _cffi_type(%d))z0_cffi_from_c_pointer((char *)%s, _cffi_type(%d))ú'z' is used as z, but is opaquez0_cffi_from_c_struct((char *)&%s, _cffi_type(%d)))r6   r   r7   r¢   r8   r¥   r3   r¦   rª   Ú	ArrayTypeÚitemr¨   ÚfldnamesÚ	TypeErrorÚ_get_c_namer©   r«   )r   r:   ÚvarÚcontexts       r   Ú_convert_expr_from_cz#VCPythonEngine._convert_expr_from_c.  s›  € Ü�bœ%×-Ñ-Ô.Ø×!Ñ!Ô#¨¯©°7Ó(:Ú58¸"¿'»'ÐBÐBØ—‘˜MÓ)Ø02·±·±ÀÀSÕ0IÊ3ÐOÐOàHØ˜×)Ñ)¨"Ó-ðL/ñ /ð /ä˜œU×.Ñ.´×0EÑ0EÐFÔGØEØ�T×%Ñ% bÓ)ðI+ñ +ð +ä˜œEŸO™OÔ,ØEØ�T×%Ñ%¤e×&7Ñ&7¸¿¹Ó&@ÓAðICñ Cð Cä˜œE×/Ñ/Ô0Ø�{‰{Ð"ÝØ—N‘NÕ$¢gð!/ó 0ð 0àEØ�T×%Ñ% bÓ)ðI+ñ +ð +ä˜œEŸN™NÔ+ØDØ�T×%Ñ% bÓ)ðH+ñ +ð +ô & bÓ)Ð)r   c                 óò   — t        |t        j                  «      sJ ‚|j                  r| j	                  |«       y |j
                  D ]  }| j	                  |«       Œ | j	                  |j                  «       y r   )r6   r   rª   Úellipsisr<   ÚargsÚresult)r   r:   r8   r2   s       r   Ú"_generate_cpy_function_collecttypez1VCPythonEngine._generate_cpy_function_collecttypeU  sb   € Ü˜"œe×3Ñ3Ô4Ð4Ð4Ø�;Š;Ø×!Ñ! "Õ%ð Ÿ™ò ,�Ø×%Ñ% dÕ+ð,à×!Ñ! "§)¡)Õ,r   c                 ó®  — t        |t        j                  «      sJ ‚|j                  r| j	                  d||«       y | j
                  }t        |j                  «      }|dk(  rd}n
|dk(  rd}nd} |d«        |d|›d	|›d
�«        |d«       d|z  }t        |j                  «      D ]#  \  }} |d|j                  d|z  |«      z  «       Œ% t        «       }	t        «       }
|j                  D ]  }| j                  ||	|
«       Œ t        |	«      D ]  } |d|›d�«       Œ t        |j                  t        j                  «      s5d}d|z  } |d|j                  j                  d|«      z  «        |d«       nd}t        |j                  «      dkD  rtt        t        |j                  «      «      }|D ]  } |d|z  «       Œ  |«         |dd|z  ›d|›ddj!                  |D �cg c]  }d|z  ‘Œ	 c}«      ›d�«        |d«        |«        t        |j                  «      D ]&  \  }}| j#                  |d|z  d |z  d!«        |«        Œ(  |d"«        |d#«        |d$|›|›d%dj!                  t        t        |j                  «      «      D �cg c]  }d |z  ‘Œ	 c}«      ›d&�«        |d'«        |d(«        |«         |d)«       |dk(  r |d*«       |rA |d+| j%                  |j                  d,d-«      z  «       |
D ]  } |d|z   «       Œ  |d.«       n"|
D ]  } |d|z   «       Œ  |d/«        |d0«        |d1«        |«        y c c}w c c}w )2NFr   Únoargr   Úarg0rÇ   ústatic PyObject *Ú_cffi_f_z(PyObject *self, PyObject *r¡   rA   zargument of %sú  %s;z x%drŸ   ú;z	result = zresult of %sz resultz  PyObject *pyresult;rš   z  PyObject *arg%d;z  if (!PyArg_ParseTuple(args, "ÚOú:ú", rº   z&arg%dz))rB   zarg%dzx%dzreturn NULLz  Py_BEGIN_ALLOW_THREADSz  _cffi_restore_errno();ú  { r�   z); }z  _cffi_save_errno();z  Py_END_ALLOW_THREADSú  (void)self; /* unused */ú  (void)noarg; /* unused */z  pyresult = %s;rÈ   zresult typez  return pyresult;z  Py_INCREF(Py_None);z  return Py_None;rE   )r6   r   rª   rÆ   Ú_generate_cpy_constr0   r9   rÇ   Ú	enumerater¤   Úsetr·   ÚsortedrÈ   ÚVoidTyperl   Újoinr²   rÄ   )r   r:   r8   rK   ÚnumargsÚargnamerÃ   r|   r2   rµ   r¶   r>   Úresult_codeÚrngÚfreelines                  r   Ú_generate_cpy_function_declz*VCPythonEngine._generate_cpy_function_decl`  sI  € Ü˜"œe×3Ñ3Ô4Ð4Ð4Ø�;Š;ð ×$Ñ$ U¨D°"Ô5ØØ�z‰zˆÜ�b—g‘g“,ˆØ�aŠ<Ø‰GØ˜Š\Ø‰GàˆGÙÐ Ô!Úº4ÂÐIÔJÙˆSŒ	à" TÑ)ˆÜ  §¡Ó)ò 	A‰GˆAˆtÙ�˜4Ÿ?™?¨6°A©:°wÓ?Ñ?Õ@ð	Aô “Eˆ	Ü“Eˆ	Ø—G‘Gò 	DˆDØ×'Ñ'¨¨i¸ÕCð	Dä˜9Ó%ò 	$ˆDÚšDÐ"Õ#ð	$ô ˜"Ÿ)™)¤U§^¡^Ô4Ø%ˆKØ$ tÑ+ˆGÙ�˜2Ÿ9™9×/Ñ/°	¸7ÓCÑCÔDÙÐ(Õ)àˆKäˆr�w‰w‹<˜!ÒÜœ˜BŸG™G›Ó%ˆCØò /�ÙÐ)¨AÑ-Õ.ð/áŒFÚØ�g“št T§Y¡YÀcÖ/JÀ°¸1³Ò/JÕ%KðMô NáÐ#Ô$ÙŒä  §¡Ó)ò 	‰GˆAˆtØ×&Ñ& t¨W°q©[¸%À!¹)Ø'4ô6á�Fð	ñ
 	Ð'Ô(ÙÐ'Ô(ÚÙšØ�I‰I¬%´°B·G±G³Ó*=Ö> Q�u˜q“yÒ>Õ?ðAô 	Bñ 	Ð$Ô%ÙÐ%Ô&ÙŒáÐ)Ô*Ø�aŠ<ÙÐ.Ô/ÙÙÐ#Ø×*Ñ*¨2¯9©9°hÀÓNñOô Pà%ò &�Ù�T˜H‘_Õ%ð&áÐ%Õ&à%ò &�Ù�T˜H‘_Õ%ð&áÐ(Ô)ÙÐ$Ô%ÙˆSŒ	Ù�ùòC 0Kùò ?s   Ç(MÊMc           	      ó¢   — |j                   ry t        |j                  «      }|dk(  rd}n
|dk(  rd}nd}| j                  d|›d|›d|›d	�«       y )
Nr   ÚMETH_NOARGSr   ÚMETH_OÚMETH_VARARGSú  {"z", _cffi_f_rº   z, NULL},)rÆ   r9   rÇ   r0   )r   r:   r8   rÝ   Úmeths        r   Ú_generate_cpy_function_methodz,VCPythonEngine._generate_cpy_function_method°  sI   € Ø�;Š;ØÜ�b—g‘g“,ˆØ�aŠ<Ø ‰DØ˜Š\Ø‰Dà!ˆDØ�
Š
ººdÂDÐIÕJr   c                 ón   — |j                   ry t        ||«      }t        |||«       || j                  |<   y r   )rÆ   rŠ   Úsetattrr   )r   r:   r8   r`   rb   Úfuncs         r   Ú_loaded_cpy_functionz#VCPythonEngine._loaded_cpy_function¾  s4   € Ø�;Š;ØÜ�v˜tÓ$ˆÜ�˜˜tÔ$Ø13ˆ×(Ñ(¨Ò.r   c                 óL   — ||j                   k(  sJ ‚| j                  |d|«       y ©NÚstruct©r8   Ú_generate_struct_or_union_declr”   s      r   Ú_generate_cpy_struct_declz(VCPythonEngine._generate_cpy_struct_declÉ  s$   € Ø�r—w‘wŠÐˆØ×+Ñ+¨B°¸$Õ?r   c                 ó*   — | j                  |d|«       y rï   ©Ú _generate_struct_or_union_methodr”   s      r   Ú_generate_cpy_struct_methodz*VCPythonEngine._generate_cpy_struct_methodÌ  s   € Ø×-Ñ-¨b°(¸DÕAr   c                 ó,   — | j                  |d||«       y rï   ©Ú_loading_struct_or_union©r   r:   r8   r`   s       r   Ú_loading_cpy_structz"VCPythonEngine._loading_cpy_structÎ  s   € Ø×%Ñ% b¨(°D¸&ÕAr   c                 ó&   — | j                  |«       y r   ©Ú_loaded_struct_or_unionr—   s        r   Ú_loaded_cpy_structz!VCPythonEngine._loaded_cpy_structÐ  ó   € Ø×$Ñ$ RÕ(r   c                 óL   — ||j                   k(  sJ ‚| j                  |d|«       y ©NÚunionrñ   r”   s      r   Ú_generate_cpy_union_declz'VCPythonEngine._generate_cpy_union_declÔ  s$   € Ø�r—w‘wŠÐˆØ×+Ñ+¨B°¸Õ>r   c                 ó*   — | j                  |d|«       y r  rõ   r”   s      r   Ú_generate_cpy_union_methodz)VCPythonEngine._generate_cpy_union_method×  s   € Ø×-Ñ-¨b°'¸4Õ@r   c                 ó,   — | j                  |d||«       y r  rù   rû   s       r   Ú_loading_cpy_unionz!VCPythonEngine._loading_cpy_unionÙ  s   € Ø×%Ñ% b¨'°4¸Õ@r   c                 ó&   — | j                  |«       y r   rþ   r—   s        r   Ú_loaded_cpy_unionz VCPythonEngine._loaded_cpy_unionÛ  r  r   c           	      ó<  — |j                   €y d|›d|›�}d|›d|›�}|›d|›�j                  «       }| j                  } |d|›d|›d�«        |d«        |d	«        |d
«       |j                  «       D ]g  \  }}	}
}t	        |	t
        j                  «      r|	j                  «       s|
dk\  r |d|z  «       ŒC	  |d|	j                  dd|z  |¬«      ›d|›d�«       Œi  |d«        |d«        ||›d�«        |d«        |d|z  «        |d«        |d|z  «        |d«       |j                  «       D ]k  \  }}	}
}|
dk\  rŒ |d|›d|›d�«       t	        |	t
        j                  «      r&|	j                  € |d|	j                  «       z  «       Œ] |d|›d |›d�«       Œm  |d!«        |d"«        |d#«        |d$«        |d%«        |d&«        |d'|›d(�«        |d«        |«        y # t        $ r} |dt        |«      z  «       Y d }~�Œ d }~ww xY w))NÚ_cffi_check_rˆ   Ú_cffi_layout_r†   zstatic void r�   z *p)rA   z8  /* only to generate compile-time warnings or errors */z
  (void)p;r   z  (void)((p->%s) << 1);rÔ   z*tmpzfield %r)Úqualsz = &p->z; (void)tmp; }z
  /* %s */rE   rÍ   z!(PyObject *self, PyObject *noarg)z,  struct _cffi_aligncheck { char x; %s y; };z  static Py_ssize_t nums[] = {z    sizeof(%s),z)    offsetof(struct _cffi_aligncheck, y),z    offsetof(rº   z),z    0,  /* %s */z    sizeof(((z *)0)->z    -1z  };rÕ   rÖ   z'  return _cffi_get_struct_layout(nums);z3  /* the next line is not executed, but compiled */rŸ   z(0);)r¿   Ústripr0   Ú
enumfieldsr6   r   r7   r¢   r¤   r   Ústrr½   ÚlengthrÁ   )r   r:   Úprefixr8   ÚcheckfuncnameÚlayoutfuncnameÚcnamerK   ÚfnameÚftypeÚfbitsizeÚfqualrw   s                r   rò   z-VCPythonEngine._generate_struct_or_union_declÞ  s  € Ø�;‰;ÐØð â/5±tÐ<‰Ú17¹Ð>ˆÚ"¡DÐ)×0Ñ0Ó2ˆà�z‰zˆÚª²uÐ=Ô>ÙˆSŒ	ÙÐGÔHÙˆ\ÔØ-/¯]©]«_ò 	0Ñ)ˆE�5˜( EÜ˜5¤%×"5Ñ"5Ô6Ø×)Ñ)Ô+°¸A²áÐ.°Ñ6Õ7ð0ÚØ×(Ñ(¨°¸EÑ1AÈÐ(ÕOÚðõ  ð	0ñ 	ˆSŒ	ÙÐ Ô!Ù²nÐFÔGÙˆSŒ	ÙÐ;¸eÑCÔDÙÐ-Ô.ÙÐ Ñ&Ô'ÙÐ8Ô9Ø-/¯]©]«_ò 	DÑ)ˆE�5˜( EØ˜1Š}ØÚªE²5Ð9Ô:Ü˜%¤§¡Ô1°e·l±lÐ6JÙÐ'¨%×*;Ñ*;Ó*=Ñ=Õ>â²UºEÐBÕCð	Dñ 	ˆXŒÙˆVŒÙÐ)Ô*ÙÐ*Ô+ÙÐ6Ô7ÙÐBÔCÚš=Ð*Ô+ÙˆSŒ	Ù�øô5 )ò 0Ù˜¬¨A«Ñ.×/Ò/ûð0ús   Â:$G3Ç3	HÇ<HÈHc                 ó^   — |j                   €y d|›d|›�}| j                  d|›d|›d�«       y )Nr  rˆ   rç   rÓ   z, METH_NOARGS, NULL},)r¿   r0   )r   r:   r  r8   r  s        r   rö   z/VCPythonEngine._generate_struct_or_union_method  s6   € Ø�;‰;ÐØð â17¹Ð>ˆØ�
Š
ºÚ9GðIõ 	Jr   c                 óÂ  — |j                   €y d|›d|›�}t        ||«      } |«       }t        |t        j                  «      rw|j
                  rk|d   }|d   }	|dd d…   }
|dd d…   }|j                  «        t        |
«      t        |«      cxk(  rt        |j                   «      k(  sJ ‚ J ‚|
|||	f|_        y |›d|›�j                  «       }||f| j                  |<   y )Nr  rˆ   r   r   é   é   r†   )r¿   rŠ   r6   r   r¨   ÚpartialÚforce_flattenr9   Úfixedlayoutr  r   )r   r:   r  r8   r`   r  ÚfunctionÚlayoutÚ	totalsizeÚtotalalignmentÚfieldofsÚ	fieldsizer  s                r   rú   z'VCPythonEngine._loading_struct_or_union  sæ   € Ø�;‰;ÐØð â17¹Ð>ˆä˜6 >Ó2ˆÙ“ˆÜ�bœ%×-Ñ-Ô.°2·:²:ð ˜q™	ˆIØ# A™YˆNØ˜a˜d ˜d‘|ˆHØ˜q˜t !˜t™ˆIØ×ÑÔÜ�x“=¤C¨	£NÔF´c¸"¿+¹+Ó6FÒFÐFÑFÐFÐFØ% y°)¸^ÐKˆB�Nâ &©Ð-×4Ñ4Ó6ˆEØ4:¸E°MˆD×-Ñ-¨bÒ1r   c                 óŠ  — |j                   €y | j                  j                  |«       || j                  v �rd„ }| j                  }|j                  |«      }| j                  j	                  |«      \  }} ||d   |j                  |«      d«        ||d   |j                  |«      d«       d}|j                  «       D ]p  \  }}	}
}|
dk\  rŒ |||   |j                  ||«      d|›�«       ||dz      dk7  r3|j                  |	«      } |||dz      |j                  |«      d|›�«       |dz  }Œr |t        |«      k(  sJ ‚y y )	Nc                 ó0   — | |k7  rt        d||| fz  «      ‚y )Nz'%s (we have %d, but C compiler says %d)r   )Ú	realvalueÚexpectedvalueÚmsgs      r   Úcheckz5VCPythonEngine._loaded_struct_or_union.<locals>.check4  s.   € Ø Ò-Ü+ØAØ ¨yÐ9ñ:ó;ð ;ð .r   r   zwrong total sizer   zwrong total alignmentr  zwrong offset for field zwrong size for field )
r¿   r   rn   r   ÚpopÚsizeofÚalignofr  Úoffsetofr9   )r   r:   r.  r   ÚBStructr$  r  r|   r  r  r  r  ÚBFields                r   rÿ   z&VCPythonEngine._loaded_struct_or_union-  sQ  € Ø�;‰;ÐØØ�‰×"Ñ" 2Ô&à�×2Ñ2Ò2ò;ð
 —(‘(ˆCØ×+Ñ+¨BÓ/ˆGØ ×=Ñ=×AÑAÀ"ÓE‰MˆF�EÙ�&˜‘)˜SŸZ™Z¨Ó0Ð2DÔEÙ�&˜‘)˜SŸ[™[¨Ó1Ð3JÔKØˆAØ13·±³ò 	Ñ-��u˜h¨Ø˜q’=ØÙ�f˜Q‘i §¡¨g°uÔ!=Ù5:Ð<ô>à˜!˜A™#‘; !Ò#Ø ×2Ñ2°5Ó9�FÙ˜&  1¡™+ s§z¡z°&Ô'9Ù7<Ð>ô@à�Q‘‘ð	ð œ˜F›Ò#Ð#Ñ#ð/ 3r   c                 ó†   — t        |t        j                  «      r| j                  ||d«       y | j	                  |d|«       y ©Nrš   )r6   r   r©   Ú_generate_cpy_enum_declrò   r”   s      r   Ú_generate_cpy_anonymous_declz+VCPythonEngine._generate_cpy_anonymous_declQ  s4   € Ü�bœ%Ÿ.™.Ô)Ø×(Ñ(¨¨T°2Õ6à×/Ñ/°°B¸Õ=r   c                 ó`   — t        |t        j                  «      s| j                  |d|«       y y r6  )r6   r   r©   rö   r”   s      r   Ú_generate_cpy_anonymous_methodz-VCPythonEngine._generate_cpy_anonymous_methodW  s'   € Ü˜"œeŸn™nÔ-Ø×1Ñ1°"°b¸$Õ?ð .r   c                 óˆ   — t        |t        j                  «      r| j                  |||«       y | j	                  |d||«       y r6  )r6   r   r©   Ú_loading_cpy_enumrú   rû   s       r   Ú_loading_cpy_anonymousz%VCPythonEngine._loading_cpy_anonymous[  s6   € Ü�bœ%Ÿ.™.Ô)Ø×"Ñ" 2 t¨VÕ4à×)Ñ)¨"¨b°$¸Õ?r   c                 ó†   — t        |t        j                  «      r | j                  |||fi |¤Ž y | j	                  |«       y r   )r6   r   r©   Ú_loaded_cpy_enumrÿ   r—   s        r   Ú_loaded_cpy_anonymousz$VCPythonEngine._loaded_cpy_anonymousa  s7   € Ü�bœ%Ÿ.™.Ô)Ø!ˆD×!Ñ! " d¨FÑ;°dÓ;à×(Ñ(¨Õ,r   c	                 óÎ  — | j                   }	d|›d|›�}
 |	d|
z  «        |	d«        |	d«        |	d«       |s  |	d|xs |j                  d|«      z  «       n|d	k(  sJ ‚|�| j                  ||«       |s:|d
k(  rd|z   }n|} |	d|›d�«        |	d| j                  |dd«      ›d�«       |sJ ‚ |	d|z  «        |	d«        |	d«       |r< |	d«        |	d«        |	d|›d�«        |	d«        |	d«        |	d«        |	d«        |	d|z  «        |	d«        |	d«        |	d«        |	d | j                  |   z  «       |
d!z   | j                  |<    |	d"«        |	«        y )#NÚ_cffi_rˆ   ústatic int %s(PyObject *lib)rA   z  PyObject *o;z
  int res;rÏ   z iÚconstrÂ   ú&z  i = (r    z  o = r|   zvariable typerÐ   z!  o = _cffi_from_c_int_const(%s);z  if (o == NULL)ú    return -1;z  {z    PyObject *o1 = o;z3    o = Py_BuildValue("On", o1, (Py_ssize_t)sizeof(z));z    Py_DECREF(o1);z    if (o == NULL)z      return -1;rD   z-  res = PyObject_SetAttrString(lib, "%s", o);z  Py_DECREF(o);z  if (res < 0)ú  return %s;ú(lib)rE   )r0   r¤   Ú_check_int_constant_valuerÄ   rF   )r   Úis_intr8   r:   ÚcategoryÚvartpÚdelayedÚsize_tooÚcheck_valuerK   ÚfuncnameÚrealexprs               r   r×   z"VCPythonEngine._generate_cpy_constj  s˜  € ð �z‰z‰Ú$,©dÐ3ˆÙÐ+¨hÑ6Ô7ÙˆSŒ	ÙÐÔÙˆ\ÔÙÙ�˜EšK R×3Ñ3°D¸$Ó?Ñ?Õ@à˜wÒ&Ð&Ð&àÐ"Ø×*Ñ*¨4°Ô=áØ˜5Ò Ø ™:‘à�Ú¢(Ð,Ô-Ú × 9Ñ 9¸"¸cØ:Iõ!Kð Mô NáˆN�7áÐ4°tÑ;Ô<ÙÐÔ ÙÐÔÙÙ�ŒKÙÐ(Ô)ÚÚðô áÐ%Ô&ÙÐ%Ô&ÙÐ#Ô$Ù�ŒKÙÐ<¸tÑCÔDÙÐÔÙÐÔÙÐÔÙˆ^˜d×:Ñ:¸7ÑCÑCÔDØ08¸7Ñ0Bˆ×$Ñ$ WÑ-ÙˆSŒ	Ù�r   c                 ó„   — t        |t        j                  «      xr |j                  «       }|s| j	                  |«       y y r   )r6   r   r7   r¢   r<   ©r   r:   r8   rJ  s       r   Ú"_generate_cpy_constant_collecttypez1VCPythonEngine._generate_cpy_constant_collecttypeš  s8   € Ü˜B¤× 3Ñ 3Ó4ÒM¸×9KÑ9KÓ9MˆÙØ×!Ñ! "Õ%ð r   c                 ó‚   — t        |t        j                  «      xr |j                  «       }| j	                  |||«       y r   )r6   r   r7   r¢   r×   rS  s       r   Ú_generate_cpy_constant_declz*VCPythonEngine._generate_cpy_constant_declŸ  s4   € Ü˜B¤× 3Ñ 3Ó4ÒM¸×9KÑ9KÓ9MˆØ× Ñ  ¨¨rÕ2r   c                 ó  — | j                   }|dk  r |d|||fz  «       n |d|||fz  «        |d«        |d|z  «        |d|z  «        |d«        |d|z  «        |d	«        |d
«        |d|||fz  «        |d«        |d«       y )Nr   z&  if ((%s) > 0 || (long)(%s) != %dL) {z1  if ((%s) <= 0 || (unsigned long)(%s) != %dUL) {z    char buf[64];z    if ((%s) <= 0)z.        snprintf(buf, 63, "%%ld", (long)(%s));z    elsez7        snprintf(buf, 63, "%%lu", (unsigned long)(%s));z)    PyErr_Format(_cffi_VerificationError,z6                 "%s%s has the real value %s, not %s",z(                 "%s", "%s", buf, "%d");rF  rD   )r0   )r   r8   rz   Ú
err_prefixrK   s        r   rI  z(VCPythonEngine._check_int_constant_valueª  sË   € Ø�z‰zˆØ�AŠ:ÙÐ9Ø�d˜Eð=#ñ #õ $ñ ÐDØ�d˜EðH#ñ #ô $áÐ Ô!ÙÐ! DÑ(Ô)ÙÐ=ÀÑDÔEÙˆZÔÙÐFØñô 	áÐ8Ô9ÙÐEÔFÙÐ7Ø˜˜eð;%ñ %ô 	&áÐÔÙˆU�r   c                 ó6   — |j                  dd«      }d|›d|›�S )Nú$Ú___D_Ú_cffi_e_rˆ   )r¥   )r   r  r8   s      r   Ú_enum_funcnamezVCPythonEngine._enum_funcname¿  s   € à�|‰|˜C Ó)‰Ú"(©$Ð/Ð/r   c                 ó¸  — |j                   r&|j                  D ]  }| j                  d|d¬«       Œ y | j                  ||«      }| j                  } |d|z  «        |d«       t        |j                  |j                  «      D ]  \  }}| j                  ||d|z  «       Œ  |d| j                  d   z  «       |dz   | j                  d<    |d	«        |«        y )
NTF)rM  rC  rA   z	enum %s: rG  rH  rE   )	r   Úenumeratorsr×   r]  r0   ÚzipÚ
enumvaluesrI  rF   )r   r:   r8   r  Ú
enumeratorrP  rK   Ú	enumvalues           r   r7  z&VCPythonEngine._generate_cpy_enum_declÄ  sÞ   € Ø�:Š:Ø Ÿn™nò J�
Ø×(Ñ(¨¨zÀ5Ð(ÕIðJàà×&Ñ& v¨tÓ4ˆØ�z‰zˆÙÐ+¨hÑ6Ô7ÙˆSŒ	Ü%(¨¯©¸¿¹Ó%Gò 	?Ñ!ˆJ˜	Ø×*Ñ*¨:°yØ+6¸Ñ+=õ?ð	?ñ 	ˆ^˜d×:Ñ:¸4Ñ@Ñ@ÔAØ-5¸Ñ-?ˆ×$Ñ$ TÑ*ÙˆSŒ	Ù�r   c                 óœ   — |j                   r;|j                  D �cg c]  }t        ||«      ‘Œ }}t        |«      |_        d|_        y y c c}w )NT)r   r_  rŠ   Útuplera  Úpartial_resolved)r   r:   r8   r`   rb  ra  s         r   r<  z VCPythonEngine._loading_cpy_enumÙ  sO   € Ø�:Š:à,.¯N©Nö<Ø(ô " &¨*Õ5ð <ˆJð <ä! *Ó-ˆBŒMØ"&ˆBÕð	 ùò<s   ›A	c                 ón   — t        |j                  |j                  «      D ]  \  }}t        |||«       Œ y r   )r`  r_  ra  rë   )r   r:   r8   r`   rb   rb  rc  s          r   r?  zVCPythonEngine._loaded_cpy_enumà  s1   € Ü%(¨¯©¸¿¹Ó%Gò 	4Ñ!ˆJ˜	Ü�G˜Z¨Õ3ñ	4r   c                 ó@   — |dk(  rd }n|}| j                  d||¬«       y )Nz...T)rO  )r×   )r   r:   r8   rO  s       r   Ú_generate_cpy_macro_declz'VCPythonEngine._generate_cpy_macro_declç  s(   € Ø�Š;Ø‰KàˆKØ× Ñ   t¸Ð ÕEr   c                 óÄ   — t        |t        j                  «      r t        j                  |j                  «      }nt        j                  |«      }| j                  |«       y r   )r6   r   r½   r¦   r¾   r<   ©r   r:   r8   Útp_ptrs       r   Ú"_generate_cpy_variable_collecttypez1VCPythonEngine._generate_cpy_variable_collecttypeö  sB   € Ü�bœ%Ÿ/™/Ô*Ü×&Ñ& r§w¡wÓ/‰Fä×&Ñ& rÓ*ˆFØ×Ñ˜fÕ%r   c                 ó  — t        |t        j                  «      rDt        j                  |j                  «      }| j                  d||||j                  «       ¬«       y t        j                  |«      }| j                  d||d¬«       y )NF)rL  rN  rÂ   )rK  )r6   r   r½   r¦   r¾   r×   Úlength_is_unknownrk  s       r   Ú_generate_cpy_variable_declz*VCPythonEngine._generate_cpy_variable_declý  su   € Ü�bœ%Ÿ/™/Ô*Ü×&Ñ& r§w¡wÓ/ˆFØ×$Ñ$ U¨D°"¸FØ02×0DÑ0DÓ0Fð %õ Hô ×&Ñ& rÓ*ˆFØ×$Ñ$ U¨D°&À5Ð$ÕIr   c                 óö  ‡— t        ||«      }t        |t        j                  «      rö|j	                  «       r•t        |t
        «      sJ ‚|\  }}| j                  j                  |j                  «      }t        || j                  j                  |«      «      \  }}	|	dk7  rt        d|›d|j                  ›�«      ‚|j                  |«      }|j                  �D| j                  j                  |«      }
| j                  j                  |
|«      }t        |||«       y |Št!        ||«       ˆfd„}ˆfd„}t        t#        |«      |t%        ||«      «       t#        |«      j&                  j)                  |«       y )Nr   z
bad size: z! does not seem to be an array of c                 ó   •— ‰d   S r   r   )rb   Úptrs    €r   Úgetterz3VCPythonEngine._loaded_cpy_variable.<locals>.getter"  s   ø€ Ø�q‘6ˆMr   c                 ó   •— |‰d<   y r   r   )rb   rz   rs  s     €r   Úsetterz3VCPythonEngine._loaded_cpy_variable.<locals>.setter$  s   ø€ ØˆC�ŠFr   )rŠ   r6   r   r½   ro  re  r   rn   r¾   Údivmodr0  r   Úresolve_lengthr  Úcastrë   Údelattrr2   ÚpropertyrV   Úappend)r   r:   r8   r`   rb   rz   ÚsizeÚ	BItemTyper  ÚrestÚBArrayrt  rv  rs  s                @r   Ú_loaded_cpy_variablez#VCPythonEngine._loaded_cpy_variable	  s8  ø€ Ü˜ Ó&ˆÜ�bœ%Ÿ/™/Ô*à×#Ñ#Ô%Ü! %¬Ô/Ð/Ð/Ø %‘�˜Ø ŸH™H×6Ñ6°r·w±wÓ?�	Ü% d¨D¯H©H¯O©O¸IÓ,FÓG‘�˜Ø˜1’9Ý+â˜rŸwšwð(ó)ð )ð ×&Ñ& vÓ.�ð �y‰yÐ$ØŸ™×3Ñ3°BÓ7�ØŸ™Ÿ™ f¨eÓ4�Ü˜  uÔ-Øð ˆÜ�˜Ôô	ô	ä”�W“˜t¤X¨f°fÓ%=Ô>ÜˆW‹×Ñ×&Ñ& tÕ,r   c                 ó|   — | j                   } |d«        |d«        |d| j                  d   z  «        |d«       y )Nz,static int _cffi_setup_custom(PyObject *lib)rA   rG  TrE   )r0   rF   )r   rK   s     r   rI   z%VCPythonEngine._generate_setup_custom+  s:   € Ø�z‰zˆÙÐ;Ô<ÙˆSŒ	Ùˆ^˜d×:Ñ:¸4Ñ@Ñ@ÔAÙˆS�	r   )rš   r   )NrD  NTFN)Úenum)Lr[   r\   r]   Ú
_class_keyÚ_gen_python_moduler   r   r   r*   r0   r3   r<   rN   r~   r„   r)   ri   r•   r˜   r²   r·   r§   rÄ   Ú!_generate_cpy_typedef_collecttypeÚ_generate_cpy_typedef_declÚ_generate_cpy_typedef_methodÚ_loading_cpy_typedefÚ_loaded_cpy_typedefrÉ   râ   ré   Ú_loading_cpy_functionrí   Ú _generate_cpy_struct_collecttyperó   r÷   rü   r   Ú_generate_cpy_union_collecttyper  r  r	  r  rò   rö   rú   rÿ   Ú#_generate_cpy_anonymous_collecttyper8  r:  r=  r@  r×   rT  rV  Ú_generate_cpy_constant_methodÚ_loading_cpy_constantÚ_loaded_cpy_constantrI  r]  r7  Ú_generate_cpy_enum_collecttypeÚ_generate_cpy_enum_methodr<  r?  ri  Ú_generate_cpy_macro_collecttypeÚ_generate_cpy_macro_methodÚ_loading_cpy_macroÚ_loaded_cpy_macrorm  rp  Ú_generate_cpy_variable_methodÚ_loading_cpy_variabler�  rI   r   r   r   r	   r	   
   sº  „ Ø€JØÐò.òòò&ó#ò%ò&òYóv8òtòòòòò
%(òNKòò*ð< ):Ð%Ø#4ÐØ#4Ð Ø#/ÐØ#/Ðò
	-òNò`
Kð )Ðò4ð (9Ð$ò@òBòBò)ð '8Ð#ò?òAòAò)ò1òfJòBò*$ðD +<Ð'ò>ò@ò@ò-ð CJØ?DØ(,ó.ò`&ò
3ð %6Ð!Ø(ÐØ(Ðó
ò*0ó
ð$ &7Ð"Ø 1Ðò'ò4òFð '8Ð#Ø!2ÐØ%ÐØ%Ðò
&òJð %6Ð!Ø(Ðò-óDr   r	   aì)  
#include <Python.h>
#include <stddef.h>

/* this block of #ifs should be kept exactly identical between
   c/_cffi_backend.c, cffi/vengine_cpy.py, cffi/vengine_gen.py
   and cffi/_cffi_include.h */
#if defined(_MSC_VER)
# include <malloc.h>   /* for alloca() */
# if _MSC_VER < 1600   /* MSVC < 2010 */
   typedef __int8 int8_t;
   typedef __int16 int16_t;
   typedef __int32 int32_t;
   typedef __int64 int64_t;
   typedef unsigned __int8 uint8_t;
   typedef unsigned __int16 uint16_t;
   typedef unsigned __int32 uint32_t;
   typedef unsigned __int64 uint64_t;
   typedef __int8 int_least8_t;
   typedef __int16 int_least16_t;
   typedef __int32 int_least32_t;
   typedef __int64 int_least64_t;
   typedef unsigned __int8 uint_least8_t;
   typedef unsigned __int16 uint_least16_t;
   typedef unsigned __int32 uint_least32_t;
   typedef unsigned __int64 uint_least64_t;
   typedef __int8 int_fast8_t;
   typedef __int16 int_fast16_t;
   typedef __int32 int_fast32_t;
   typedef __int64 int_fast64_t;
   typedef unsigned __int8 uint_fast8_t;
   typedef unsigned __int16 uint_fast16_t;
   typedef unsigned __int32 uint_fast32_t;
   typedef unsigned __int64 uint_fast64_t;
   typedef __int64 intmax_t;
   typedef unsigned __int64 uintmax_t;
# else
#  include <stdint.h>
# endif
# if _MSC_VER < 1800   /* MSVC < 2013 */
#  ifndef __cplusplus
    typedef unsigned char _Bool;
#  endif
# endif
# define _cffi_float_complex_t   _Fcomplex    /* include <complex.h> for it */
# define _cffi_double_complex_t  _Dcomplex    /* include <complex.h> for it */
#else
# include <stdint.h>
# if (defined (__SVR4) && defined (__sun)) || defined(_AIX) || defined(__hpux)
#  include <alloca.h>
# endif
# define _cffi_float_complex_t   float _Complex
# define _cffi_double_complex_t  double _Complex
#endif

#if PY_MAJOR_VERSION < 3
# undef PyCapsule_CheckExact
# undef PyCapsule_GetPointer
# define PyCapsule_CheckExact(capsule) (PyCObject_Check(capsule))
# define PyCapsule_GetPointer(capsule, name) \
    (PyCObject_AsVoidPtr(capsule))
#endif

#if PY_MAJOR_VERSION >= 3
# define PyInt_FromLong PyLong_FromLong
#endif

#define _cffi_from_c_double PyFloat_FromDouble
#define _cffi_from_c_float PyFloat_FromDouble
#define _cffi_from_c_long PyInt_FromLong
#define _cffi_from_c_ulong PyLong_FromUnsignedLong
#define _cffi_from_c_longlong PyLong_FromLongLong
#define _cffi_from_c_ulonglong PyLong_FromUnsignedLongLong
#define _cffi_from_c__Bool PyBool_FromLong

#define _cffi_to_c_double PyFloat_AsDouble
#define _cffi_to_c_float PyFloat_AsDouble

#define _cffi_from_c_int_const(x)                                        \
    (((x) > 0) ?                                                         \
        ((unsigned long long)(x) <= (unsigned long long)LONG_MAX) ?      \
            PyInt_FromLong((long)(x)) :                                  \
            PyLong_FromUnsignedLongLong((unsigned long long)(x)) :       \
        ((long long)(x) >= (long long)LONG_MIN) ?                        \
            PyInt_FromLong((long)(x)) :                                  \
            PyLong_FromLongLong((long long)(x)))

#define _cffi_from_c_int(x, type)                                        \
    (((type)-1) > 0 ? /* unsigned */                                     \
        (sizeof(type) < sizeof(long) ?                                   \
            PyInt_FromLong((long)x) :                                    \
         sizeof(type) == sizeof(long) ?                                  \
            PyLong_FromUnsignedLong((unsigned long)x) :                  \
            PyLong_FromUnsignedLongLong((unsigned long long)x)) :        \
        (sizeof(type) <= sizeof(long) ?                                  \
            PyInt_FromLong((long)x) :                                    \
            PyLong_FromLongLong((long long)x)))

#define _cffi_to_c_int(o, type)                                          \
    ((type)(                                                             \
     sizeof(type) == 1 ? (((type)-1) > 0 ? (type)_cffi_to_c_u8(o)        \
                                         : (type)_cffi_to_c_i8(o)) :     \
     sizeof(type) == 2 ? (((type)-1) > 0 ? (type)_cffi_to_c_u16(o)       \
                                         : (type)_cffi_to_c_i16(o)) :    \
     sizeof(type) == 4 ? (((type)-1) > 0 ? (type)_cffi_to_c_u32(o)       \
                                         : (type)_cffi_to_c_i32(o)) :    \
     sizeof(type) == 8 ? (((type)-1) > 0 ? (type)_cffi_to_c_u64(o)       \
                                         : (type)_cffi_to_c_i64(o)) :    \
     (Py_FatalError("unsupported size for type " #type), (type)0)))

#define _cffi_to_c_i8                                                    \
                 ((int(*)(PyObject *))_cffi_exports[1])
#define _cffi_to_c_u8                                                    \
                 ((int(*)(PyObject *))_cffi_exports[2])
#define _cffi_to_c_i16                                                   \
                 ((int(*)(PyObject *))_cffi_exports[3])
#define _cffi_to_c_u16                                                   \
                 ((int(*)(PyObject *))_cffi_exports[4])
#define _cffi_to_c_i32                                                   \
                 ((int(*)(PyObject *))_cffi_exports[5])
#define _cffi_to_c_u32                                                   \
                 ((unsigned int(*)(PyObject *))_cffi_exports[6])
#define _cffi_to_c_i64                                                   \
                 ((long long(*)(PyObject *))_cffi_exports[7])
#define _cffi_to_c_u64                                                   \
                 ((unsigned long long(*)(PyObject *))_cffi_exports[8])
#define _cffi_to_c_char                                                  \
                 ((int(*)(PyObject *))_cffi_exports[9])
#define _cffi_from_c_pointer                                             \
    ((PyObject *(*)(char *, CTypeDescrObject *))_cffi_exports[10])
#define _cffi_to_c_pointer                                               \
    ((char *(*)(PyObject *, CTypeDescrObject *))_cffi_exports[11])
#define _cffi_get_struct_layout                                          \
    ((PyObject *(*)(Py_ssize_t[]))_cffi_exports[12])
#define _cffi_restore_errno                                              \
    ((void(*)(void))_cffi_exports[13])
#define _cffi_save_errno                                                 \
    ((void(*)(void))_cffi_exports[14])
#define _cffi_from_c_char                                                \
    ((PyObject *(*)(char))_cffi_exports[15])
#define _cffi_from_c_deref                                               \
    ((PyObject *(*)(char *, CTypeDescrObject *))_cffi_exports[16])
#define _cffi_to_c                                                       \
    ((int(*)(char *, CTypeDescrObject *, PyObject *))_cffi_exports[17])
#define _cffi_from_c_struct                                              \
    ((PyObject *(*)(char *, CTypeDescrObject *))_cffi_exports[18])
#define _cffi_to_c_wchar_t                                               \
    ((wchar_t(*)(PyObject *))_cffi_exports[19])
#define _cffi_from_c_wchar_t                                             \
    ((PyObject *(*)(wchar_t))_cffi_exports[20])
#define _cffi_to_c_long_double                                           \
    ((long double(*)(PyObject *))_cffi_exports[21])
#define _cffi_to_c__Bool                                                 \
    ((_Bool(*)(PyObject *))_cffi_exports[22])
#define _cffi_prepare_pointer_call_argument                              \
    ((Py_ssize_t(*)(CTypeDescrObject *, PyObject *, char **))_cffi_exports[23])
#define _cffi_convert_array_from_object                                  \
    ((int(*)(char *, CTypeDescrObject *, PyObject *))_cffi_exports[24])
#define _CFFI_NUM_EXPORTS 25

typedef struct _ctypedescr CTypeDescrObject;

static void *_cffi_exports[_CFFI_NUM_EXPORTS];
static PyObject *_cffi_types, *_cffi_VerificationError;

static int _cffi_setup_custom(PyObject *lib);   /* forward */

static PyObject *_cffi_setup(PyObject *self, PyObject *args)
{
    PyObject *library;
    int was_alive = (_cffi_types != NULL);
    (void)self; /* unused */
    if (!PyArg_ParseTuple(args, "OOO", &_cffi_types, &_cffi_VerificationError,
                                       &library))
        return NULL;
    Py_INCREF(_cffi_types);
    Py_INCREF(_cffi_VerificationError);
    if (_cffi_setup_custom(library) < 0)
        return NULL;
    return PyBool_FromLong(was_alive);
}

union _cffi_union_alignment_u {
    unsigned char m_char;
    unsigned short m_short;
    unsigned int m_int;
    unsigned long m_long;
    unsigned long long m_longlong;
    float m_float;
    double m_double;
    long double m_longdouble;
};

struct _cffi_freeme_s {
    struct _cffi_freeme_s *next;
    union _cffi_union_alignment_u alignment;
};

#ifdef __GNUC__
  __attribute__((unused))
#endif
static int _cffi_convert_array_argument(CTypeDescrObject *ctptr, PyObject *arg,
                                        char **output_data, Py_ssize_t datasize,
                                        struct _cffi_freeme_s **freeme)
{
    char *p;
    if (datasize < 0)
        return -1;

    p = *output_data;
    if (p == NULL) {
        struct _cffi_freeme_s *fp = (struct _cffi_freeme_s *)PyObject_Malloc(
            offsetof(struct _cffi_freeme_s, alignment) + (size_t)datasize);
        if (fp == NULL)
            return -1;
        fp->next = *freeme;
        *freeme = fp;
        p = *output_data = (char *)&fp->alignment;
    }
    memset((void *)p, 0, (size_t)datasize);
    return _cffi_convert_array_from_object(p, ctptr, arg);
}

#ifdef __GNUC__
  __attribute__((unused))
#endif
static void _cffi_free_array_arguments(struct _cffi_freeme_s *freeme)
{
    do {
        void *p = (void *)freeme;
        freeme = freeme->next;
        PyObject_Free(p);
    } while (freeme != NULL);
}

static int _cffi_init(void)
{
    PyObject *module, *c_api_object = NULL;

    module = PyImport_ImportModule("_cffi_backend");
    if (module == NULL)
        goto failure;

    c_api_object = PyObject_GetAttrString(module, "_C_API");
    if (c_api_object == NULL)
        goto failure;
    if (!PyCapsule_CheckExact(c_api_object)) {
        PyErr_SetNone(PyExc_ImportError);
        goto failure;
    }
    memcpy(_cffi_exports, PyCapsule_GetPointer(c_api_object, "cffi"),
           _CFFI_NUM_EXPORTS * sizeof(void *));

    Py_DECREF(module);
    Py_DECREF(c_api_object);
    return 0;

  failure:
    Py_XDECREF(module);
    Py_XDECREF(c_api_object);
    return -1;
}

#define _cffi_type(num) ((CTypeDescrObject *)PyList_GET_ITEM(_cffi_types, num))

/**********/
)
re   rš   r   rx   r   r   r   ro   r	   rG   r   r   r   ú<module>rš     s*   ðó Ý Ý $Ý #ôf�Vô fðPJ�r   