3 M��Z\�4@s<ddlmZGdd�de�Zdd�ZdZdZdZdZd Z d Z d Z d Z d Z dZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!dZ"d Z#dZ$d Z%d Z&d Z'd!Z(d Z)d"Z*d Z+d#Z,dZ-d$Z.dZ/d%Z0dZ1d&Z2dZ3d'Z4dZ5d(Z6dZ7d)Z8dZ9d*Z:dZ;d+ZdZ?d-Z@dZAd.ZBdZCd/ZDd0ZEd1ZFd2ZGd3ZHd4ZId5ZJd6ZKd7ZLd8ZMd9ZNdDZOdEZPdFZQdGZReee!e#e%eee e"e$e&e'e(e)eJeKee*eLeMe+e,e-e.e/e0e1e2e3e4e5e6e7e8e9e:e;ee?e@eAeBeCeDeEeFeGeHeId:�3ZSdZTdZUdZVdZWd"ZXeYd;d<�dHD��ZZiZ[xDe\e]�j^��D]2\Z_Z`e_jadB��rebe`ec��re_ddC�e[e`<�qWdCS)I�)�VerificationErrorc@s,eZdZdd�Zdd�Zdd�Zdd�Zd S) �CffiOpcCs||_||_dS)N)�op�arg)�selfrr�r�#/usr/lib64/python3.6/cffi_opcode.py�__init__szCffiOp.__init__cCs>|jdkr&t|jt�st�d|jfSt|j}d||jfS)Nz(_cffi_opcode_t)(%s)z_CFFI_OP(_CFFI_OP_%s, %s))r� isinstancer�str�AssertionError� CLASS_NAME)r� classnamerrr� as_c_exprs    zCffiOp.as_c_exprcCsn|jdkr>|jj�r>t|j�}|dkr6td|jf��t|�St|jt�rZtd|jf��t|jd>|jB�S)N��z"cannot emit %r: limited to 2**31-1zcannot emit to Python: %r�l) rr�isdigit�int� OverflowError�format_four_bytesr r r)r�valuerrr�as_python_bytess   zCffiOp.as_python_bytescCstj|j|j�}d||jfS)Nz(%s %s))r �getrr)rrrrr�__str__szCffiOp.__str__N)�__name__� __module__� __qualname__r rrrrrrrrs rcCs,d|d?d@|d?d@|d?d@|d@fS)Nz\x%02X\x%02X\x%02X\x%02X����rr)Znumrrrrs    r���� � � ��������r�!�#�%�'�)�r��r� � �r ���r���� �"�$�&�(�*�+�,�-�.�/�0�1�2�3�4)3�charZshortrZlongz long longz signed charz unsigned charzunsigned shortz unsigned intz unsigned longzunsigned long long�floatZdoublez long doublezfloat _Complexzdouble _ComplexZ_BoolZwchar_tZchar16_tZchar32_tZint8_tZuint8_tZint16_tZuint16_tZint32_tZuint32_tZint64_tZuint64_tZintptr_tZ uintptr_tZ ptrdiff_tZsize_tZssize_tZ int_least8_tZ uint_least8_tZ int_least16_tZuint_least16_tZ int_least32_tZuint_least32_tZ int_least64_tZuint_least64_tZ int_fast8_tZ uint_fast8_tZ int_fast16_tZ uint_fast16_tZ int_fast32_tZ uint_fast32_tZ int_fast64_tZ uint_fast64_tZintmax_tZ uintmax_tcCsg|]}d|t�|f�qS)Z_CFFI_)�globals)�.0Z_keyrrr� �srT�F_UNION�F_CHECK_FIELDS�F_PACKED� F_EXTERNAL�F_OPAQUEZOP_N���������������rZ)rUrVrWrXrY)d�errorr�objectrrZ OP_PRIMITIVEZ OP_POINTERZOP_ARRAYZ OP_OPEN_ARRAYZOP_STRUCT_UNIONZOP_ENUMZ OP_FUNCTIONZOP_FUNCTION_ENDZOP_NOOPZ OP_BITFIELDZ OP_TYPENAMEZOP_CPYTHON_BLTN_VZOP_CPYTHON_BLTN_NZOP_CPYTHON_BLTN_OZ OP_CONSTANTZOP_CONSTANT_INTZ OP_GLOBAL_VARZOP_DLOPEN_FUNCZOP_DLOPEN_CONSTZOP_GLOBAL_VAR_FZOP_EXTERN_PYTHONZ PRIM_VOIDZ PRIM_BOOLZ PRIM_CHARZ PRIM_SCHARZ PRIM_UCHARZ PRIM_SHORTZ PRIM_USHORTZPRIM_INTZ PRIM_UINTZ PRIM_LONGZ PRIM_ULONGZ PRIM_LONGLONGZPRIM_ULONGLONGZ PRIM_FLOATZ PRIM_DOUBLEZPRIM_LONGDOUBLEZ PRIM_WCHARZ PRIM_INT8Z PRIM_UINT8Z PRIM_INT16Z PRIM_UINT16Z PRIM_INT32Z PRIM_UINT32Z PRIM_INT64Z PRIM_UINT64Z PRIM_INTPTRZ PRIM_UINTPTRZ PRIM_PTRDIFFZ PRIM_SIZEZ PRIM_SSIZEZPRIM_INT_LEAST8ZPRIM_UINT_LEAST8ZPRIM_INT_LEAST16ZPRIM_UINT_LEAST16ZPRIM_INT_LEAST32ZPRIM_UINT_LEAST32ZPRIM_INT_LEAST64ZPRIM_UINT_LEAST64ZPRIM_INT_FAST8ZPRIM_UINT_FAST8ZPRIM_INT_FAST16ZPRIM_UINT_FAST16ZPRIM_INT_FAST32ZPRIM_UINT_FAST32ZPRIM_INT_FAST64ZPRIM_UINT_FAST64Z PRIM_INTMAXZ PRIM_UINTMAXZPRIM_FLOATCOMPLEXZPRIM_DOUBLECOMPLEXZ PRIM_CHAR16Z PRIM_CHAR32Z _NUM_PRIMZ _UNKNOWN_PRIMZ_UNKNOWN_FLOAT_PRIMZ_UNKNOWN_LONG_DOUBLEZ_IO_FILE_STRUCTZPRIMITIVE_TO_INDEXrUrVrWrXrY�dictZG_FLAGSr �listrR�items�_nameZ_value� startswithr rrrrr�s