HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //snap/certbot/4965/lib/python3.12/site-packages/cffi/__pycache__/vengine_gen.cpython-312.pyc
�

M�h;i��N�ddlZddlZddlZddlmZddlmZGd�de�ZdZ	y)�N�)�model��VerificationErrorc�6�eZdZdZdZd�Zd�Zd�Zd�Zd-d�Z	d�Z
d.d	�Zd
�Zd�Z
d�Zd
�Zd�ZeZeZeZd�ZeZd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z d�Z!d�Z"d�Z#		d/d�Z$d �Z%eZ&d0d!�Z'd"�Z(d#�Z)d$�Z*d%�Z+d1d&�Z,d1d'�Z-d(�Z.d)�Z/eZ0d*�Z1d+�Z2eZ3d,�Z4y)2�VGenericEngine�gFc�P�||_|j|_g|_i|_y�N)�verifier�ffi�export_symbols�_struct_pending_verification)�selfrs  ��/build/snapcraft-certbot-c9561b03ef7f16aa90eb6754ca5f17a1/parts/certbot/install/lib/python3.12/site-packages/cffi/vengine_gen.py�__init__zVGenericEngine.__init__s$�� ��
��<�<��� ���,.��)�c�<�|jd|j�y)Nr)�
setdefaultr)r�kwdss  r�patch_extension_kwdsz#VGenericEngine.patch_extension_kwdss��	
���(�$�*=�*=�>rc���|D]e}||z}|�tj}|D]G}tjj||�}tjj	|�s�C|ccS�gyr)�sys�path�os�join�isfile)r�module_namer�so_suffixes�	so_suffix�basename�dirname�filenames        r�find_modulezVGenericEngine.find_modulesa��$�	$�I�"�Y�.�H��|��x�x���
$���7�7�<�<���:���7�7�>�>�(�+�#�O�
$�		$rc��yr�)rs r�
collect_typeszVGenericEngine.collect_types%���rc�@�|jj|dz�y)N�
)�_f�write)r�whats  r�_prntzVGenericEngine._prnt(s�����
�
�d�T�k�"rc�6�|j}|t�||jj�|j	d�t
jdk(rAt
jdk\rd}nd}|jj�}|d|�|�d��yy)N�decl�win32���PyInit_�initzvoid z(void) { }
)	r.�cffimod_headerr�preamble�	_generater�platform�version_info�get_module_name)r�prnt�prefix�modnames    r�write_source_to_fz VGenericEngine.write_source_to_f+s}���z�z���^���T�]�]�
#�
#�$�	
���v��
�<�<�7�"����4�'�"�����m�m�3�3�5�G��F�G�<�=�
#rc�v�����jj}tjj	tj
�jj�}|j||���j�d�G���fd�dtj���d�}�j�d|��|S)N�loadingc�<��eZdZW�ZW�jZgZ�fd�Zy)�/VGenericEngine.load_library.<locals>.FFILibraryc����jSr)�	_cffi_dir)r�
FFILibrarys �r�__dir__z7VGenericEngine.load_library.<locals>.FFILibrary.__dir__Ts���!�+�+�+rN)�__name__�
__module__�__qualname__�_cffi_generic_moduler
�	_cffi_ffirErG)rF�modulers���rrFrCPs���#)� ����I��I�
,rrF��loaded)�library)r
�_backendrrr�curdirr�modulefilename�load_library�_load�types�
ModuleType)r�flags�backendr#rPrFrMs`    @@rrTzVGenericEngine.load_libraryAs�����(�(�#�#���7�7�<�<��	�	�4�=�=�+G�+G�H���%�%�h��6��	
�
�
�6�9�%�	,�	,��)�)�	,��R�.��	
�
�
�6�8�W�
�5��rc���|jjjj�D���cgc]\}\}}||f��}}}}|j	�|Scc}}}wr)r
�_parser�
_declarations�items�sort)r�key�tp�qual�lsts     r�_get_declarationsz VGenericEngine._get_declarations]s^�� $��� 0� 0� >� >� D� D� F�H�H�.�c�:�B���R�y�H��H����
��
��Hs�Ac��|j�D]7\}}|jdd�\}}	t|d|�d|���}	|||��9y#t$rt	d|z��wxYw#t
$r}t
j||��d}~wwxYw)N� r�_generate_gen_�_znot implemented in verify(): %r)rc�split�getattr�AttributeErrorr�	Exceptionr�attach_exception_info)r�	step_name�namer`�kind�realname�method�es        rr8zVGenericEngine._generatecs����.�.�0�	�H�D�"�!�Z�Z��Q�/�N�D�(�
>� ���@I�(K�L��

��r�8�$�	��
"�
>�'�5��<�>�>�
>��
�
��+�+�A�t�4���
�s#�A�	A'�A$�'	B�0B�Bc���|j�D]8\}}|jdd�\}}t|d|�d|���}	||||fi|���:y#t$r}	t	j
|	|��d}	~	wwxYw)Nrerrg�_gen_)rcrhrirkrrl)
rrMrmrrnr`rorprqrrs
          rrUzVGenericEngine._loadrs~���.�.�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-�-A2c��yrr&�rr`rns   r�_generate_nothingz VGenericEngine._generate_nothing|r(rc��yrr&�rr`rnrMrs     r�_loaded_noopzVGenericEngine._loaded_noopr(rc	��t|tj�sJ�|jr|j	d||�y|j
}t
|j�}g}t|j�D]9\}}d}t|tj�rd}|jd||fz��;d|z}	t|j|�D��
cgc]\}}
|jd|
z|	���}}}
|j}t|tj�r2|jd|jd|	��tj}d	j!|�xsd
}d|z}
|j"j|
�|j$r|j$dz}nd}d|�|
�d
|�d�}d|z}	||j||	��|d�t|jtj�rd}n)t|jtj&�sd}nd}|d|�|�d
d	j!|��d��|d�|�ycc}
}w)NFrN�*z%sx%dzargument of %sz %srz *r�, �void�
_cffi_f_%sre�(�)zresult of %s�{z*r = zreturn �  �);�})�
isinstancer�FunctionPtrType�ellipsis�_generate_gen_constr.�len�args�	enumerate�
StructOrUnion�append�zip�
get_c_name�result�insert�	void_typerr�abi�VoidType)rr`rnr<�numargs�argnames�i�type�indirection�context�arg�arglist�tpresult�wrappernamer��funcdecl�result_codes                 r�_generate_gen_function_declz*VGenericEngine._generate_gen_function_decl�s����"�e�3�3�4�4�4�
�;�;�
�$�$�U�D�"�5���z�z���b�g�g�,���� ����)�	8�G�A�t��K��$�� 3� 3�4�!���O�O�G�{�A�&6�6�7�		8�
#�T�)��$'�����$:�<� �t�S��?�?�5�3�;��8�<��<��9�9���h�� 3� 3�4��N�N�1�h�1�1�%��A�B����H��)�)�G�$�.���"�T�)�����"�"�;�/�
�6�6��&�&�3�,�C��C��"%�{�G�<�� �4�'���X�
 �
 ��7�
3�4��S�	��b�i�i��!4�!4�5�!�K��B�I�I�u�~�~�6�#�K��K��k�4����8�1D�
E�F��S�	����5<s�Ic�x�t|tj�sJ�|jr|j	d|||�}�n�g}|}td�|jD��s%t|jtj��r6g}t|j�D]X\}	}
t|
tj�r(tj|
�}
|j|	|
f�|j|
��Z|j}t|tj�rt|j�td|j��d���tj|�}|jd|�|jdd|f�tj }tjt#|�||j�}|j$j'|�}d|z}
|j)||
�}|D]\}	}
|j+||	|
|�}�t-|||�t/|�j0j|�y)NFc3�PK�|]}t|tj���� y�wr)r�rr�)�.0�typs  r�	<genexpr>z6VGenericEngine._loaded_gen_function.<locals>.<genexpr>�s����L�S�J�s�E�$7�$7�8�L�s�$&�'z'' is used as result type, but is opaquerr�r)r�rr�r��_load_constant�anyr�r�r�r��PointerTyper��fldtypes�	TypeError�_get_c_namer�r��tupler
�_get_cached_btype�
load_function�_make_struct_wrapper�setattrr�rE)rr`rnrMrP�newfunction�indirections�base_tp�
indirect_argsr�r��indirect_result�BFuncr�s              r�_loaded_gen_functionz#VGenericEngine._loaded_gen_function�s����"�e�3�3�4�4�4�
�;�;��-�-�e�R��v�F�K��L��G��L�B�G�G�L�L�!�"�)�)�U�-@�-@�A� "�
�'����0�.�F�A�s�!�#�u�':�':�;�#�/�/��4��$�+�+�Q��H�5�!�(�(��-�	.�
#%�)�)���o�u�/B�/B�C�&�/�/�7�'�,;�,G�,G�,I�)L�M�M�',�&7�&7��&H�O�!�(�(��O�<� �'�'��H�o�+F�G�&+�o�o�O��*�*�5��+?�+:�B�K�K�I���H�H�.�.�r�2�E�&��-�K� �.�.�u�k�B�K�&�
A���3�"�7�7��Q��8?�A��
A�	���{�+��W�
���&�&�t�,rc��������|jj�|jj|���dk(r|j����fd�}n����fd�}||_|S)Nr�c�B���j��}�|g|���|dS�Nr)�new)r��res�BTyper
�oldfuncs  ���r�newfuncz4VGenericEngine._make_struct_wrapper.<locals>.newfunc�s&����g�g�e�n����#�d�#��1�v�
rc�X��|d��j�|��fz|�dzdz}�|�S)Nr)�newp)r�r�rYr�r�s ����rr�z4VGenericEngine._make_struct_wrapper.<locals>.newfunc�s>����B�Q�x�7�<�<��t�A�w�#?�"A�A�D��1���J�N����~�%r)r
rQr��_cffi_base_type)	rr�r�r`r�r�r�rYr
s	 ``   @@@rr�z#VGenericEngine._make_struct_wrapper�sO����(�(�#�#�����*�*�2�.����=��(�(�C�
�

&�#*����rc�L�||jk(sJ�|j|d|�y�N�struct�rn�_generate_struct_or_union_declrvs   r�_generate_gen_struct_declz(VGenericEngine._generate_gen_struct_decl�s$���r�w�w�����+�+�B��$�?rc�,�|j|d||�yr���_loading_struct_or_union�rr`rnrMs    r�_loading_gen_structz"VGenericEngine._loading_gen_struct�s���%�%�b�(�D�&�Arc�&�|j|�yr��_loaded_struct_or_unionrys     r�_loaded_gen_structz!VGenericEngine._loaded_gen_struct�����$�$�R�(rc�L�||jk(sJ�|j|d|�y�N�unionr�rvs   r�_generate_gen_union_declz'VGenericEngine._generate_gen_union_decl�s$���r�w�w�����+�+�B���>rc�,�|j|d||�yr�r�r�s    r�_loading_gen_unionz!VGenericEngine._loading_gen_unions���%�%�b�'�4��@rc�&�|j|�yrr�rys     r�_loaded_gen_unionz VGenericEngine._loaded_gen_unionr�rc	�D�|j�yd|�d|��}d|�d|��}|�d|��j�}|j}|d|�d|�d��|d�|d	�|d
�|j�D]g\}}	}
}t	|	t
j�r|	j�s|
dk\r|d|z��C	|d
|	jdd|z|���d|�d���i|d�|jj|�|d|�d��|d�|d|z�|d�|d|z�|d�|j�D]k\}}	}
}|
dk\r�|d|�d|�d��t	|	t
j�r&|	j�|d|	j�z��]|d|�d |�d���m|d!�|d"�|d#�|d$�|d%|�d&��|d�|�y#t$r}|dt|�z�Yd}~���d}~wwxYw)'N�_cffi_check_rg�
_cffi_layout_rezstatic void r�z *p)r�z8  /* only to generate compile-time warnings or errors */z
  (void)p;rz  (void)((p->%s) << 1);z  { z*tmpzfield %r)�qualsz = &p->z; (void)tmp; }z
  /* %s */r�z	intptr_t z(intptr_t i)z,  struct _cffi_aligncheck { char x; %s y; };z  static intptr_t nums[] = {z    sizeof(%s),z)    offsetof(struct _cffi_aligncheck, y),z
    offsetof(r}z),z    0,  /* %s */z
    sizeof(((z *)0)->z    -1z  };z  return nums[i];z3  /* the next line is not executed, but compiled */r�z(0);)�fldnames�stripr.�
enumfieldsr�r�
PrimitiveType�is_integer_typer�r�strrr��	ArrayType�lengthr�)
rr`r=rn�
checkfuncname�layoutfuncname�cnamer<�fname�ftype�fbitsize�fqualrrs
             rr�z-VGenericEngine._generate_struct_or_union_decls��
�;�;����/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�	����"�"�>�2��.�
:�;��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���
 �!��
B�C��=�
*�+��S�	����1)�0����A��.�/�/��0�s�:$G7�7	H�H�Hc�P�|j�yd|�d|��}|jjd�d}|j||�}g}d}		||	�}
|
dkrn|j	|
�|	dz
}	�%t|tj�rw|jrk|d}|d}|ddd�}
|ddd�}|j�t|
�t|�cxk(rt|j�k(sJ�J�|
|||f|_y|�d|��j�}||f|j|<y)	Nr�rgzintptr_t(*)(intptr_t)rr�r3re)r�r
�_typeof_lockedr�r�r�rr��partial�
force_flattenr��fixedlayoutr�r)rr`r=rnrMr�r��function�layout�num�x�	totalsize�totalalignment�fieldofs�	fieldsizer�s                rr�z'VGenericEngine._loading_struct_or_union7s:��
�;�;����17��>�����'�'�(?�@��C���'�'��~�>���������
�A��1�u�e��M�M�!���1�H�C�	�
�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�1rc��|j�y|jj|�||jv�rd�}|j}|j|�}|jj	|�\}}||d|j|�d�||d|j
|�d�d}|j�D]p\}}	}
}|
dk\r�||||j||�d|���||dzdk7r3|j|	�}|||dz|j|�d|���|dz
}�r|t|�k(sJ�yy)	Nc�0�||k7rtd|||fz��y)Nz'%s (we have %d, but C compiler says %d)r)�	realvalue�
expectedvalue�msgs   r�checkz5VGenericEngine._loaded_struct_or_union.<locals>.checkZs.���
�-�+�A��
�y�9�:�;�;�.rrzwrong total sizerzwrong total alignmentr�zwrong offset for field zwrong size for field )
r�r
r�r�pop�sizeof�alignofr��offsetofr�)
rr`rr
�BStructr�r�r�r�r�r�r��BFields
             rr�z&VGenericEngine._loaded_struct_or_unionSsQ��
�;�;������"�"�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��#�#�#�/3rc��t|tj�r|j||d�y|j	|d|�y�NrN)r�r�EnumType�_generate_gen_enum_declr�rvs   r�_generate_gen_anonymous_declz+VGenericEngine._generate_gen_anonymous_declus4���b�%�.�.�)��(�(��T�2�6��/�/��B��=rc��t|tj�r|j|||d�y|j	|d||�yr)r�rr
�_loading_gen_enumr�r�s    r�_loading_gen_anonymousz%VGenericEngine._loading_gen_anonymous{s8���b�%�.�.�)��"�"�2�t�V�R�8��)�)�"�b�$��?rc��t|tj�r|j|||fi|��y|j	|�yr)r�rr
�_loaded_gen_enumr�rys     r�_loaded_gen_anonymousz$VGenericEngine._loaded_gen_anonymous�s7���b�%�.�.�)�!�D�!�!�"�d�F�;�d�;��(�(��,rNc�V�|j}d|�d|��}|jj|�|�A|sJ�|dk(sJ�|d|z�|d�|j||�|d�|d�n�|r;|dk(sJ�|d|z�|d�|d	|�d
��|d|�d��|d�ns|�J�|�J�|d
k(rd}nd}d}	|dk(rt	|t
j�rd}	d}||jd|	�|�d�|��|d�|d|�|�d
��|d�|�y)N�_cffi_rg�const�int %s(char *out_error)r��  return 0;r�zint %s(long long *out_value)z  *out_value = (long long)(r�z
  return (z) <= 0;�var�&rNzconst *rez(void))r.rr��_check_int_constant_valuer�rr�r�)
r�is_intrnr`�category�check_valuer<�funcname�	ampersand�extras
          rr�z"VGenericEngine._generate_gen_const�sA���z�z��$,�d�3�����"�"�8�,��"��M�6��w�&�&�&��*�X�5�6���I��*�*�4��=������I�
��w�&�&�&��/�(�:�;���I��d�<�=��$�0�1���I��>�!�>��&�&�&��5� ��	��	��E��7�"�z�"�e�6I�6I�'J�!���	������x�@�$�G�H���I��y�$�7�8���I��rc��t|tj�xr|j�}|j	|||�yr)r�rr�r�r�)rr`rnrs    r�_generate_gen_constant_declz*VGenericEngine._generate_gen_constant_decl�s4���B�� 3� 3�4�M��9K�9K�9M��� � ���r�2rc��d|z}|�|sJ�|j||�|}|S|r�|jjd�d}|jjd�d}	|j|	|�}
|jj	|�}|
|�}t|d�}|dkrD|sB|jjd�d}
|dd|jj
|
�zzz
}|S|�J�d}t|tj�rd	|z}|jj|j||��d}	|j|	|�}
|
�}t|tj�r|d}|S)
Nz_cffi_const_%sz
long long*rzint(*)(long long*)z	long longr�z	(*)(void)r|)�_load_known_int_constantr
r�r�r��intrr�rr�r�)rrr`rnrMr r!�valuer�r�r��p�negative�	BLongLong�fntypeextras               rr�zVGenericEngine._load_constant�sy��#�d�*���"��M�6��)�)�&�(�;��E�*��)��H�H�+�+�L�9�!�<�E��H�H�+�+�,@�A�!�D�E��+�+�E�8�<�H������U�#�A���{�H���!��I�E��q�y�� �H�H�3�3�K�@��C�	��!��$�(�(�/�/�)�"<� <�=�>�����&�&�&�%�K��"�e�1�1�2�!�K�/���H�H�+�+�B�M�M�+�t�,L�M�a�P�E��+�+�E�8�<�H��J�E��"�e�1�1�2��a����rc���t|tj�xr|j�}|j	||||�}t|||�t
|�jj|�yr)	r�rr�r�r�r�r�rEr�)rr`rnrMrPrr*s       r�_loaded_gen_constantz#VGenericEngine._loaded_gen_constant�s\���B�� 3� 3�4�M��9K�9K�9M���#�#�F�B��f�=�����u�%��W�
���&�&�t�,rc��|j}|dkr|d|||fz�n|d|||fz�|d�|d|z�|d|z�|d�|d|z�|d	�|d
|dd|fz�|d�|d
�y)Nrz&  if ((%s) > 0 || (long)(%s) != %dL) {z1  if ((%s) <= 0 || (unsigned long)(%s) != %dUL) {z    char buf[64];z    if ((%s) <= 0)z)        sprintf(buf, "%%ld", (long)(%s));z    elsez2        sprintf(buf, "%%lu", (unsigned long)(%s));z:    sprintf(out_error, "%s has the real value %s, not %s",z            "%s", buf, "%d");�dz    return -1;z  })r.)rrnr*r<s    rrz(VGenericEngine._check_int_constant_value�s����z�z���A�:��9��d�E�=#�#�
$�
�D��d�E�H#�#�
$��
 �!��
!�D�
(�)��
8�4�
?�@��Z���
A�
��	��
I�J��
,��T�c�
�E�/B�
B�C��
���U�rc�x�|jjd�d}|jjd�d}|j||�}|jj|d�}||�dkrE|jj	|�}t
jdk\rt|d�}t|��y)Nzchar[]rz
int(*)(char*)�r2zutf-8)	r
r�r�r��stringrr:r�r)rrMr!r�r�r�r+�errors        rr(z'VGenericEngine._load_known_int_constant�s������'�'��1�!�4�����'�'��8��;���'�'��x�8���H�H�L�L���$���A�;��?��H�H�O�O�A�&�E����4�'��E�7�+��#�E�*�*�	rc�6�|jdd�}d|�d|��S)N�$�___D_�_cffi_e_rg)�replace)rr=rns   r�_enum_funcnamezVGenericEngine._enum_funcname�s���|�|�C��)��"(�$�/�/rc��|jr$|jD]}|jd|��y|j||�}|jj|�|j}|d|z�|d�t|j|j�D]\}}|j||��|d�|d�|�y)NTrr�rr�)
r��enumeratorsr�r<rr�r.r��
enumvaluesr)rr`rnr=�
enumeratorr!r<�	enumvalues        rrz&VGenericEngine._generate_gen_enum_decl�s���
�:�:� �n�n�
;�
��(�(��z�:�
;���&�&�v�t�4�����"�"�8�,��z�z���
&��
1�2��S�	�%(�������%G�	B�!�J�	��*�*�:�y�A�	B��]���S�	��rc	���|jrC|jD�cgc]}|jd|||���}}t|�|_d|_y|j
||�}|j||�ycc}w)NT)r�r>r�r�r?�partial_resolvedr<r()rr`rnrMr=r@r?r!s        rrz VGenericEngine._loading_gen_enumsv��
�:�:�,.�N�N�<�(��-�-�d�B�
�F�K�<�J�<�!�*�-�B�M�"&�B���*�*�6�4�8�H��)�)�&�(�;��
<s�A5c��t|j|j�D]6\}}t|||�t	|�j
j
|��8yr)r�r>r?r�r�rEr�)rr`rnrMrPr@rAs       rrzVGenericEngine._loaded_gen_enumsI��%(�������%G�	7�!�J�	��G�Z��3���M�#�#�*�*�:�6�	7rc�@�|dk(rd}n|}|jd||��y�Nz...T)r )r�)rr`rnr s    r�_generate_gen_macro_declz'VGenericEngine._generate_gen_macro_decl s(��
��;��K��K�� � ��t�� �Erc��|dk(rd}n|}|jd||||��}t|||�t|�jj	|�yrF)r�r�r�rEr�)rr`rnrMrPr r*s       r�_loaded_gen_macroz VGenericEngine._loaded_gen_macro)sW��
��;��K��K��#�#�D�"�d�F�0;�$�=�����u�%��W�
���&�&�t�,rc��t|tj�r�|j�rS|j}d|��}|j
j
|�|d|z�|d�|d|�d��|d�tj|j�}|jd||�ytj|�}|jd||d�	�y)
N�
_cffi_sizeof_zsize_t %s(void)r�z  return sizeof(r�r�Fr)r)
r�rr��length_is_unknownr.rr�r��itemr�)rr`rnr<r!�tp_ptrs      r�_generate_gen_variable_declz*VGenericEngine._generate_gen_variable_decl6s����b�%�/�/�*��#�#�%��z�z��04�6���#�#�*�*�8�4��&��1�2��S�	��t�5�6��S�	��&�&�r�w�w�/�F��$�$�U�D�&�9��&�&�r�*�F��$�$�U�D�&�5�$�Irc�T��t|tj��rr|j�r�d|��}|jjd�d}|j
||�}|�}|jj|j�}	t||jj|	��\}
}|dk7rtd|�d|j����|j|
�}tj|j�}|jd|||�}
|j�7|jj|�}|jj!||
�}
t#|||
�t%|�j&j)|�yd|z}|jj|j+d|��d}|j
||�}|���fd	�}�fd
�}t#t%|�|t-||��t%|�j&j)|�y)NrKzsize_t(*)(void)rz
bad size: z! does not seem to be an array of Fz_cffi_var_%sz
*(*)(void)c����dSr�r&)rP�ptrs �r�getterz3VGenericEngine._loaded_gen_variable.<locals>.gettergs����q�6�Mrc���|�d<yr�r&)rPr*rRs  �r�setterz3VGenericEngine._loaded_gen_variable.<locals>.setteris����C��Fr)r�rr�rLr
r�r�r�rM�divmodrr�resolve_lengthr�r�r��castr�r�rEr�r��property)rr`rnrMrPr!r�r��size�	BItemTyper��restrNr*�BArrayrSrUrRs                 @r�_loaded_gen_variablez#VGenericEngine._loaded_gen_variableHs�����b�%�/�/�*��#�#�%�04�6�����/�/�0A�B�1�E��!�/�/��x�@���z�� �H�H�6�6�r�w�w�?�	�%�d�D�H�H�O�O�I�,F�G�����1�9�+��r�w�w�(�)�)��&�&�v�.���&�&�r�w�w�/�F��'�'��v�t�V�D�E��y�y�$����3�3�B�7�����
�
�f�e�4���G�T�5�)���M�#�#�*�*�4�0��"�D�(�����'�'��
�
�l�D�(I�J�1�M���'�'��x�8���j��	�	���W�
�t�X�f�f�%=�>��W�
���&�&�t�,r)rN)r)NrNr)�enum)5rHrIrJ�
_class_key�_gen_python_modulerrr$r'r.r?rTrcr8rUrwrz�_generate_gen_typedef_decl�_loading_gen_typedef�_loaded_gen_typedefr��_loading_gen_functionr�r�r�r�r�r�r�r�r�r�r�rrrr�r%�_loading_gen_constantr�r0rr(r<rrrrG�_loading_gen_macrorIrO�_loading_gen_variabler^r&rrrrs$���J���/�?�$�
�#�>�,�8�
��
�
�$5��#/��#/��
+�Z)��"-�H�&@�B�)�?�A�)�/�bB�8$�D>�@�-�CJ�(,�#�J3�)���8-��&	+�0�
�"<�7�F�&��-�J� )��$-rrac
#include <stdio.h>
#include <stddef.h>
#include <stdarg.h>
#include <errno.h>
#include <sys/types.h>   /* XXX for ssize_t on some platforms */

/* 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
)
rrrVrNrr6r�objectrr6r&rr�<module>rjs)�����$�a	-�V�a	-�F9�r