
    Mh%U                     
   d dl Z d dlZddlmZ ddlmZmZmZ dZdZ	dZ
d Z G d d	e          Z G d
 de          Z G d de          Z e            Z G d de          Z G d de          Z G d de          Z G d de          Z G d de          Z G d de          Z G d de          Z G d de          Z ee          Zd Z ee          Z G d d e          Z G d! d"e          Z e ed#          d          Z G d$ d%e          Z G d& d'e          Z  G d( d)e           Z! G d* d+e           Z" G d, d-e          Z#d4d.Z$d4d/Z% e            Z& ej'                    Z(d0 Z)d1 Z*d2 Z+d3 Z,dS )5    N   )allocate_lock)	CDefErrorVerificationErrorVerificationMissing      c                     | t           z  rd|                                z   }| t          z  rd|                                z   }| t          z  rd|                                z   }|S )Nz const z
 volatile z __restrict )Q_CONSTlstrip
Q_VOLATILE
Q_RESTRICT)qualsreplace_withs     J/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/cffi/model.pyqualifyr      sr    w 9 <#6#6#8#88z <#l&9&9&;&;;z > &(;(;(=(==    c                   D    e Zd ZdZdZddZd Zd Zd Zdd	Z	d
 Z
d ZdS )BaseTypeByIdentityF a C filer   c                 v   | j         }|                    d          dk    sJ |                                }|r.|                    d          r
d|v rd|z  }n|d         dvrd|z   }t	          ||          }|                    d|          }d	|v r(t          d
|                                 d|d          |S )N&r   *z&[z(%s)r   z[( $zcannot generate 'z' in z: unknown type name)c_name_with_markercountstrip
startswithr   replacer   _get_c_name)selfr   contextr   results        r   
get_c_namezBaseTypeByIdentity.get_c_name   s    (||C  A%%%%#))++ 	2&&s++ 2%4!!_,,"\1ul33\22&==####%%%%www01 1 1 r   c                 8    | j                             dd          S )Nr   r   )r   r!   r#   s    r   r"   zBaseTypeByIdentity._get_c_name/   s    &..sB777r   c                 .    d|                                  vS )Nr   r"   r(   s    r   
has_c_namezBaseTypeByIdentity.has_c_name2   s    $**,,,,r   c                     dS NF r(   s    r   is_integer_typez"BaseTypeByIdentity.is_integer_type5       ur   c                     	 |j         |          }nG# t          $ r: |                     ||          }|j                             | |          }||u sJ Y nw xY w|S N)_cached_btypesKeyErrorbuild_backend_type
setdefault)r#   ffi
finishlist	can_delayBTypeBType2s         r   get_cached_btypez#BaseTypeByIdentity.get_cached_btype8   sv    	#&t,EE 	# 	# 	#++C<<E'224??FU??????	# s    AAAc                 2    d|                                  dS )N<>r*   r(   s    r   __repr__zBaseTypeByIdentity.__repr__A   s     ))++++--r   c                 *      fd j         D             S )Nc                 4    g | ]}|t          |          fS r.   )getattr).0namer#   s     r   
<listcomp>z1BaseTypeByIdentity._get_items.<locals>.<listcomp>E   s(    EEEwtT**+EEEr   )_attrs_r(   s   `r   
_get_itemszBaseTypeByIdentity._get_itemsD   s    EEEEEEEEr   N)r   r   r   F)__name__
__module____qualname__is_array_typeis_raw_functionr&   r"   r+   r/   r<   r@   rH   r.   r   r   r   r      s        MO   $8 8 8- - -     . . .F F F F Fr   r   c                        e Zd Zd Zd Zd ZdS )BaseTypec                 v    | j         |j         k    o)|                                 |                                k    S r2   )	__class__rH   r#   others     r   __eq__zBaseType.__eq__J   s6    %/1 8!!U%5%5%7%77	9r   c                     | |k     S r2   r.   rS   s     r   __ne__zBaseType.__ne__N   s    5=  r   c                 l    t          | j        t          |                                           f          S r2   )hashrR   tuplerH   r(   s    r   __hash__zBaseType.__hash__Q   s)    T^U4??+<+<%=%=>???r   N)rJ   rK   rL   rU   rW   r[   r.   r   r   rP   rP   H   sF        9 9 9! ! !@ @ @ @ @r   rP   c                       e Zd ZdZd Zd ZdS )VoidTyper.   c                     d| _         d S )Nzvoid&)r   r(   s    r   __init__zVoidType.__init__X   s    ")r   c                 $    t          | |d          S )Nnew_void_typeglobal_cacher#   r7   r8   s      r   r5   zVoidType.build_backend_type[   s    D#777r   NrJ   rK   rL   rG   r_   r5   r.   r   r   r]   r]   U   s7        G* * *8 8 8 8 8r   r]   c                       e Zd Zd ZdS )BasePrimitiveTypec                     dS r-   r.   r(   s    r   is_complex_typez!BasePrimitiveType.is_complex_typeb   r0   r   N)rJ   rK   rL   ri   r.   r   r   rg   rg   a   s#            r   rg   c                   t   e Zd ZdZi ddddddddddd	dd
dddddddddddddddddddddi ddddddddddddddddddd dd!dd"dd#dd$dd%dd&dd'di d(dd)dd*dd+dd,dd-dd.dd/dd0dd1dd2dd3dd4dd5dd6dd7dd8dZd9 Zd: Zd; Zd< Zd= Z	d> Z
d?S )@PrimitiveTyperE   charcshortiintlongz	long longzsigned charzunsigned charzunsigned shortunsigned intunsigned longzunsigned long longfloatfdoublezlong double_cffi_float_complex_tj_cffi_double_complex_t_Boolwchar_tchar16_tchar32_tint8_tuint8_tint16_tuint16_tint32_tuint32_tint64_tuint64_tint_least8_tuint_least8_tint_least16_tuint_least16_tint_least32_tuint_least32_tint_least64_tuint_least64_tint_fast8_tuint_fast8_tint_fast16_tuint_fast16_tint_fast32_tuint_fast32_tint_fast64_tuint_fast64_tintptr_t	uintptr_tintmax_t	uintmax_t	ptrdiff_tsize_tssize_tc                 >    || j         v sJ || _        |dz   | _        d S Nr   )ALL_PRIMITIVE_TYPESrE   r   r#   rE   s     r   r_   zPrimitiveType.__init__   s/    t/////	"&*r   c                 .    | j         | j                 dk    S )Nrn   r   rE   r(   s    r   is_char_typezPrimitiveType.is_char_type       '	2c99r   c                 .    | j         | j                 dk    S )Nrp   r   r(   s    r   r/   zPrimitiveType.is_integer_type   r   r   c                 .    | j         | j                 dk    S )Nrv   r   r(   s    r   is_float_typezPrimitiveType.is_float_type   r   r   c                 .    | j         | j                 dk    S )Nry   r   r(   s    r   ri   zPrimitiveType.is_complex_type   r   r   c                 0    t          | |d| j                  S )Nnew_primitive_type)rc   rE   rd   s      r   r5   z PrimitiveType.build_backend_type   s    D#';TYGGGr   N)rJ   rK   rL   rG   r   r_   r   r/   r   ri   r5   r.   r   r   rk   rk   f   s       G5
c5
c5
 	c5
 	c	5

 	c5
 	c5
 	c5
 	c5
 	c5
 	c5
 	c5
 	c5
 	c5
 	c5
 	 5
  	!#!5
" 	c#5
 5
& 	c'5
( 	c)5
* 	c+5
, 	c-5
. 	c/5
0 	c15
2 	c35
4 	c55
6 	c75
8 	c95
: 	c;5
< 	c=5
> 	c?5
@ 	cA5
B 	cC5
D 	cE5
F 	cG5
 5
 5
H 	cI5
J 	cK5
L 	cM5
N 	cO5
P 	cQ5
R 	cS5
T 	cU5
V 	cW5
X 	cY5
Z 	c[5
\ 	c]5
^ 	c_5
` 	ca5
b 	cc5
d 	ce5
f 	cg5
h 	ci5
 5
n- - -
: : :: : :: : :: : :H H H H Hr   rk   c                   $    e Zd ZdZd Zd Zd ZdS )UnknownIntegerTyperl   c                 (    || _         |dz   | _        d S r   rE   r   r   s     r   r_   zUnknownIntegerType.__init__       	"&*r   c                     dS )NTr.   r(   s    r   r/   z"UnknownIntegerType.is_integer_type   s    tr   c                 0    t          d| j        z            )Nz4integer type '%s' can only be used after compilationNotImplementedErrorrE   rd   s      r   r5   z%UnknownIntegerType.build_backend_type   #    ! #026)#< = = 	=r   N)rJ   rK   rL   rG   r_   r/   r5   r.   r   r   r   r      sF        G- - -  = = = = =r   r   c                       e Zd ZdZd Zd ZdS )UnknownFloatTyperl   c                 (    || _         |dz   | _        d S r   r   r   s     r   r_   zUnknownFloatType.__init__   r   r   c                 0    t          d| j        z            )Nz2float type '%s' can only be used after compilationr   rd   s      r   r5   z#UnknownFloatType.build_backend_type   r   r   Nre   r.   r   r   r   r      s7        G- - -= = = = =r   r   c                       e Zd ZdZddZdS )BaseFunctionType)argsr%   ellipsisabiNc                 b   || _         || _        || _        || _        d | j         D             }| j        r|                    d           |pdg}| j        d                    |          fz  }||d d         |z   dz   |dd          z   }| j        j                            d|          | _        d S )Nc                 6    g | ]}|                                 S r.   r*   )rD   args     r   rF   z-BaseFunctionType.__init__.<locals>.<listcomp>   s"    ;;;#COO%%;;;r   ...voidz, r   r   r   )	r   r%   r   r   append_base_patternjoinr   r!   )r#   r   r%   r   r   reprargsr   s          r   r_   zBaseFunctionType.__init__   s    	 ;;;;;= 	#OOE"""'x)TYYx-@-@,BB?'+c1C7,qrr:JJLK*223EE 	r   r2   rJ   rK   rL   rG   r_   r.   r   r   r   r      s3        3GG G G G G Gr   r   c                   "    e Zd ZdZdZd Zd ZdS )RawFunctionTypez(&)(%s)Tc                 (    t          d| d          )Ncannot render the type z7: it is a function type, not a pointer-to-function type)r   rd   s      r   r5   z"RawFunctionType.build_backend_type   s&    iBF$$I J J 	Jr   c                 N    t          | j        | j        | j        | j                  S r2   )FunctionPtrTyper   r%   r   r   r(   s    r   as_function_pointerz#RawFunctionType.as_function_pointer       ty$+t}dhOOOr   N)rJ   rK   rL   r   rN   r5   r   r.   r   r   r   r      sF         MOJ J JP P P P Pr   r   c                       e Zd ZdZd Zd ZdS )r   z(*&)(%s)c                 P   | j                             ||          }g }| j        D ]+}|                    |                    ||                     ,d}| j        dk    r&| j        s	 |j        j        f}n# t          $ r Y nw xY wt          | |dt          |          || j        g|R  S )Nr.   	__stdcallnew_function_type)r%   r<   r   r   r   r   _backendFFI_STDCALLAttributeErrorrc   rZ   )r#   r7   r8   r%   r   tpabi_argss          r   r5   z"FunctionPtrType.build_backend_type   s    --c:>>) 	> 	>BKK++C<<====8{""=  # 8:HH%   DD#':!$KKKAIK K K 	Ks   &A4 4
B Bc                 N    t          | j        | j        | j        | j                  S r2   )r   r   r%   r   r   r(   s    r   as_raw_functionzFunctionPtrType.as_raw_function  r   r   N)rJ   rK   rL   r   r5   r   r.   r   r   r   r      s?        MK K KP P P P Pr   r   c                        e Zd ZdZddZd ZdS )PointerType)totyper   r   c                     || _         || _        d}|j        rd|                                d}t	          ||          }|j                            d|          | _        d S )Nz *&()r   )r   r   rM   r   r   r   r!   )r#   r   r   extras       r   r_   zPointerType.__init__  si    
 	/ 	/#llnnnn.Eu%%"(";"C"CC"O"Or   c                 `    | j                             ||d          }t          | |d|          S )NT)r9   new_pointer_type)r   r<   rc   )r#   r7   r8   BItems       r   r5   zPointerType.build_backend_type  s3    ,,S*,MMD#'95AAAr   Nr   re   r.   r   r   r   r     sE        !GP P P PB B B B Br   r   c                 ,    t          | t                    S r2   )r   r   )r   s    r   ConstPointerTyper     s    vw'''r   c                       e Zd ZdZddZdS )NamedPointerType)r   rE   r   c                 `    t                               | ||           || _        |dz   | _        d S r   )r   r_   rE   r   )r#   r   rE   r   s       r   r_   zNamedPointerType.__init__   s3    T65111	"&*r   Nr   r   r.   r   r   r   r     s-         G- - - - - -r   r   c                   .    e Zd ZdZdZd Zd Zd Zd ZdS )	ArrayType)itemlengthTc                     || _         || _        |d}n|dk    rd}nd|z  }| j         j                            d|          | _        d S )Nz&[]r   z
&[/*...*/]z&[%s]r   )r   r   r   r!   )r#   r   r   bracketss       r   r_   zArrayType.__init__*  s\    	>HHu__#HH'HI(00h?? 	r   c                 6    t          | j        t                    S r2   )
isinstancer   strr(   s    r   length_is_unknownzArrayType.length_is_unknown7  s    $+s+++r   c                 ,    t          | j        |          S r2   )r   r   )r#   	newlengths     r   resolve_lengthzArrayType.resolve_length:  s    I...r   c                    |                                  rt          d| d          | j                            ||           t	          | j                                      ||          }t          | |d|| j                  S )Nr   z: unknown lengthnew_array_type)r   r   r   r<   r   rc   r   )r#   r7   r8   BPtrItems       r   r5   zArrayType.build_backend_type=  s    !!## 	%)!TT$ % % %	""3
333ty))::3
KKD#'74;OOOr   N)	rJ   rK   rL   rG   rM   r_   r   r   r5   r.   r   r   r   r   &  sb         GMA A A, , ,/ / /P P P P Pr   r   rm   c                   (    e Zd ZdZdZd Zd Zd ZdS )StructOrUnionOrEnumrl   Nc                 J    | j         p| j        d| j        }|dz   | _        d S )Nr   r   )	forcenamekindrE   r   r   s     r   build_c_name_with_markerz,StructOrUnionOrEnum.build_c_name_with_markerL  s/    ~ADIIItyy!A"&*r   c                 <    || _         |                                  d S r2   )r   r  )r#   r   s     r   force_the_namez"StructOrUnionOrEnum.force_the_nameP  s!    "%%'''''r   c                 X    | j                             d          sJ | j         d d         S )Nr   )r   endswithr(   s    r   get_official_namez%StructOrUnionOrEnum.get_official_nameT  s1    &//44444&ss++r   )rJ   rK   rL   rG   r   r  r  r  r.   r   r   r   r   H  sK        GI- - -( ( (, , , , ,r   r   c                   Z    e Zd ZdZdZdZdZddZd ZddZ	d Z
dd	Zd
 Zd Zd Zd ZdS )StructOrUnionNr   Fc                 t    || _         || _        || _        || _        || _        |                                  d S r2   )rE   fldnamesfldtypes
fldbitsizefldqualsr  )r#   rE   r  r  r  r  s         r   r_   zStructOrUnion.__init___  s=    	  $ %%'''''r   c              #      K   | j         ?t          | j        | j                   D ]&\  }}|dk    rt          |t                    r|V  %d S d S )Nr   )r  zipr  r   r	  )r#   rE   types      r   anonymous_struct_fieldsz%StructOrUnion.anonymous_struct_fieldsg  sb      =$!$-??  
d2::*T="A"A:JJJ %$ r   Tc              #     K   | j         }|dt          | j                  z  }t          | j        | j        | j        |          D ]H\  }}}}|dk    r3t          |t                    r|r|                                D ]}|V  @||||fV  Id S )Nr   r   )	r  lenr  r  r  r  r   r	  
enumfields)r#   expand_anonymous_struct_unionr  rE   r  bitsizer   r%   s           r   r  zStructOrUnion.enumfieldsm  s      =c$-000H*-dmT].2ox+I +I 	3 	3&D$

z$>>
5  #oo// ! !F LLLL! T7E22222	3 	3r   c                    g }g }g }g }|                                  D ]V\  }}}}|                    |            |j        |           |                    |           |                    |           Wt          |          | _        t          |          | _        t          |          | _        t          |          | _        d S r2   )r  r   rZ   r  r  r  r  )	r#   namestypesbitsizesr  rE   r  r  r   s	            r   force_flattenzStructOrUnion.force_flatten{  s     *.//*;*; 	# 	#&D$LLELOOG$$$OOE""""ee//hr   c                 p    t                               | |||          }|s|                     ||           |S r2   )r   r<   finish_backend_type)r#   r7   r8   r9   r:   s        r   r<   zStructOrUnion.get_cached_btype  sE    #44T3
5>@ @ 	6$$S*555r   c                    | j         r%| j         dk    rt          d| j        d          d S j        |          }d| _         | j        n| j        ufd| j        D             }t          t          | j        || j	                            }d}| j
        r| j
        dk    rd}n	d| j
        f} j        j        ||| d	d	g|R   ng }| j        \  }}}	}
t          t          | j                            D ]}||         }| j        |         }t          |t                     r|                                r|j                                      }t)          |                    |                    \  }}|dk    r.|                     d
| j        d| j        |         pdd           |                    |          }| j        d |         |fz   | j        |dz   d          z   | _        |                              }t          |t                     r|j        	|dk    sJ nI                    |          }||k    r.|                     d| j        | j        |         pd||fz             |                    |           t          t          | j        || j	        |                    }j                            ||| |	|
           d| _         d S )Nr   z%recursive structure declaration for ''r   c                 <    g | ]}|                               S r.   )r<   )rD   r   r7   r8   s     r   rF   z5StructOrUnion.finish_backend_type.<locals>.<listcomp>  s9     1 1 1 ++C<< 1 1 1r   r.   )   r   r  zfield '.z{}z' has a bogus size?z=field '%s.%s' is declared as %d bytes, but is really %d bytes)	completedr   rE   r3   r  fixedlayoutlistr  r  r  packedr   complete_struct_or_unionranger  r   r   r   r   r<   divmodsizeof_verification_errorr   r   r   )r#   r7   r8   r:   r  lstextra_flagsfieldofs	fieldsize	totalsizetotalalignmentrp   fsizeftype	BItemTypenlennrest
BFieldType	bitemsizes    ``                r   r  z!StructOrUnion.finish_backend_type  sh   > 	~""))8<			+D E E EF"4(= %1 1 1 1 1"&-1 1 1Hs4=(DODDEECK{ 3;!##"&KK#$dk"2K1CL1%d24bH;FH H H H H H=A=M:HiN3t}--.. , ,!!a(eY// 
:E4K4K4M4M 
: %
 ; ;C L LI"(

90E0E"F"FKD%zz000 IIIt}Q'7'?4'?'?AB B B "0066E%)]2A2%6%%A%)]1Q344%8&9DM #33CDD
eY// 	DEL4H A::::: #

: 6 6I E))00.1515q1A1IT1:E1CCD D D
 
++++s4=(DOXNNOOCL11%d2;^M M Mr   c                      t          |          r2   )r   )r#   msgs     r   r,  z!StructOrUnion._verification_error  s    $$$r   c                 h    | j         r(| j        #t          |                                           d S d S r2   )partialr%  r   r"   r(   s    r   check_not_partialzStructOrUnion.check_not_partial  s>    < 	:D,4%d&6&6&8&8999	: 	:44r   c                     |                                   |                    |            t          | |d| j        z  |                                 |           S )Nznew_%s_typekey)r>  r   rc   r   r  rd   s      r   r5   z StructOrUnion.build_backend_type  sa       $D#}ty'@ 2244$@ @ @ 	@r   r2   )TrI   )rJ   rK   rL   r%  r$  r=  r'  r_   r  r  r  r<   r  r,  r>  r5   r.   r   r   r	  r	  Y  s        KIGF( ( ( (  3 3 3 3( ( ($   = = =~% % %: : :@ @ @ @ @r   r	  c                       e Zd ZdZdS )
StructTypestructNrJ   rK   rL   r   r.   r   r   rC  rC    s        DDDr   rC  c                       e Zd ZdZdS )	UnionTypeunionNrE  r.   r   r   rG  rG    s        DDDr   rG  c                   :    e Zd ZdZdZdZd	dZd Zd Zd Z	d Z
dS )
EnumTypeenumFNc                 f    || _         || _        || _        || _        |                                  d S r2   )rE   enumerators
enumvaluesbaseinttyper  )r#   rE   rM  rN  rO  s        r   r_   zEnumType.__init__  s8    	&$&%%'''''r   c                     t                               | |           | j        4|                                 }d|                    dd          z   | _        d S d S )Nr   r   _)r   r  r   r  r!   )r#   r   rE   s      r   r  zEnumType.force_the_name  sW    **4;;;>!))++D 4<<S#9#99DNNN "!r   c                 h    | j         r(| j        s#t          |                                           d S d S r2   )r=  partial_resolvedr   r"   r(   s    r   r>  zEnumType.check_not_partial  sD    < 	: 5 	:%d&6&6&8&8999	: 	: 	: 	:r   c           
          |                                   |                     ||          }t          | |d|                                 | j        | j        ||           S )Nnew_enum_typer@  )r>  build_baseinttyperc   r  rM  rN  )r#   r7   r8   
base_btypes       r   r5   zEnumType.build_backend_type   sd       ++C<<
D# 2244 ,do&D2 2 2 	2r   c                 b   | j         | j                             ||          S | j        r)t          | j                  }t	          | j                  }n]dd l}	 t                                           n# t          $ r Y nw xY w|	                    d| 
                                z             dx}}|dk     r!d}t          d          }t          d          }n d}t          d          }t          d          }|                    ||          }	|                    ||          }
|                    |	          }|                    |
          }|dd	|z  dz
  z  k    r|dd	|z  |z
  z  k     r|	S |dd	|z  dz
  z  k    r|dd	|z  |z
  z  k     r|
S t          d
| 
                                z            )Nr   zU%r has no values explicitly defined; guessing that it is equivalent to 'unsigned int'r   rq   rr   rs   rt   r  r"  z=%s values don't all fit into either 'long' or 'unsigned long')rO  r<   rN  minmaxwarnings__warningregistry__clear	NameErrorwarnr"   rk   r+  r   )r#   r7   r8   smallest_valuelargest_valuer[  sign
candidate1
candidate2btype1btype2size1size2s                r   rV  zEnumType.build_baseinttype  s   '#44S*EEE? 	/ 11N00MMOOO $))++++   MM M ,,../ 0 0 0 ./.N]AD&u--J&v..JJD&~66J&77J,,S*==,,S*==

6""

6""%	233Q1U74<011M%	233Q1U74<011M -/3/?/?/A/AB C C 	Cs   A2 2
A?>A?r2   )rJ   rK   rL   r   r=  rS  r_   r  r>  r5   rV  r.   r   r   rJ  rJ    sy        DG( ( ( (: : :: : :2 2 2'C 'C 'C 'C 'Cr   rJ  c                 p    |d| z  }t          |d d d           }|                    |            d|_        |S )Nz$%sunknown_type)rC  r  originrE   
structnamer   s      r   rj  rj  1  sD    T\
	JdD	1	1BdBIIr   c                 T    |d| z  }t          |d d d           }t          ||           S )Nz$$%s)rC  r   rl  s      r   unknown_ptr_typero  9  s4    d]
	JdD	1	1BB%%%r   c                 2   t          | t          j                  rt          S t          5  t          t          |           d          s%t          j                    t          |           _	        t          |           j	        cd d d            S # 1 swxY w Y   d S )N__typecache)
r   r  
ModuleType_typecache_cffi_backendglobal_lockhasattrr  weakrefWeakValueDictionaryrq  )backends    r   get_typecachery  C  s     '5+,, '&&	 ) )tG}}m44 	F(/(C(E(EDMM%G}}() ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )s   ABBBc                    |                     d||f          }|rJ 	 |j        |         S # t          $ r Y nw xY w	  t          |j        |          | }n)# t
          $ r}t          |d| d|          d }~ww xY w|j        }t          5  |                    |          }	|	|||<   |cd d d            S |	cd d d            S # 1 swxY w Y   d S )NrA  : )pop
_typecacher4   rC   r   r   rt  get)
srctyper7   funcnamer   kwdsrA  resecacheres1s
             r   rc   rc   N  sw   
((58T*
+
+COOO~c""   I-gclH--t4 I I I!(((GGGQQ"GHHHI
 NE	  yy~~<E#J	                         s;   + 
88A 
A;A66A;C7CC	C	c                 &    t          d| d|          S )N?r   rb   )r7   r:   s     r   pointer_cacher  e  s    S"4e<<<r   c                     | j         rKt          | j         d                   t          u r,|d| j         d         f| j         dd          z   | _         d S d S d S )Nr   r{  r   )r   r  r   )r  rE   s     r   attach_exception_infor  h  s`    v >$qvay//S(("ddAF1II.016!"":=> >((r   r2   )-r  rv  lockr   errorr   r   r   r   r   r   r   objectr   rP   r]   	void_typerg   rk   r   r   r   r   r   r   
voidp_typer   const_voidp_typer   r   char_array_typer   r	  rC  rG  rJ  rj  ro  rt  rw  rs  ry  rc   r  r  r.   r   r   <module>r     s           D D D D D D D D D D 


 
 
,F ,F ,F ,F ,F ,F ,F ,F^
@ 
@ 
@ 
@ 
@! 
@ 
@ 
@8 8 8 8 8x 8 8 8 HJJ	       
IH IH IH IH IH% IH IH IHX= = = = =* = = =	= 	= 	= 	= 	=( 	= 	= 	=G G G G Gx G G G(P P P P P& P P PP P P P P& P P P,B B B B B( B B B  [##
( ( ( $#I.. - - - - -{ - - -P P P P P P P P> )MM&11488, , , , ,, , , ,"F@ F@ F@ F@ F@' F@ F@ F@R              EC EC EC EC EC" EC EC ECN   & & & & moo5'577 	) 	) 	)  .= = => > > > >r   