y)@ddlZddlZddlZddlZddlmZejdkreZn e Z e Z e ZdZGddeZGdd eZGd d eZGd d eZGddeZGddeZGddeZGddeZdS)N)model)c"t|gSN)bytes)nums g/builddir/build/BUILD/cloudlinux-venv-1.0.10/venv/lib64/python3.11/site-packages/cffi/backend_ctypes.pyr s%,,ceZdZdS) CTypesTypeN__name__ __module__ __qualname__r r rr sDr rceZdZeZdgZdZdZedZe dZ edZ edZ e dZ ed d Zed Zd Zd Zd!dZdZedZdZedZdZedZdZdZedZedZedZedZedZedZ dZ!dZ"dS)" CTypesData __weakref__zc0td|j)Nzcannot instantiate ) TypeError __class__)selfargss r __init__zCTypesData.__init__si4>>CDDDr cLtd|d)Nz(expected a pointer or array ctype, got ''r _get_c_nameclsinits r _newpzCTypesData._newps.i??,,,,/00 0r ctrrvalues r _to_ctypeszCTypesData._to_ctypesr c |j}n #t$rtd|wxYw|r0|j|}t ||s||}n|}|S)Nzcannot create an instance of )_ctypeAttributeErrorrr) isinstance)r"r(ctyperess r _arg_to_ctypeszCTypesData._arg_to_ctypes s HJEE H H H)FGG G H   #.%(Cc5)) &jjoo**,,C s 'cX||S||Srr1r!s r _create_ctype_objzCTypesData._create_ctype_obj.s- <%%'' '%%d++ +r ctrr&) ctypes_values r _from_ctypeszCTypesData._from_ctypes5r*r c8|jd|SN &) _reftypenamereplace)r" replace_withs r r zCTypesData._get_c_name9s''l;;;r cd|d|_d|d|_d|_dS)NzCData<>ffi)r rrrr"s r _fix_classzCTypesData._fix_class=sF&)oo&7&7&7&79 *-//*;*;*;*;=r ctrNotImplementedErrorrs r _get_own_reprzCTypesData._get_own_reprCs!!r cv|dkrdS|dkr'|ddtjtjzzz }d|zS)NrNULLrz0x%x)ctypessizeofc_void_p)raddresss r _addr_reprzCTypesData._addr_reprFsD a<<6{{16=#A#A!ABBG# #r Ncd|}d|p|d|dS)NzD,<,<,>,>">">DDr c|%td|dtd|d|)Nzcannot convert z to an addressz to rrBClasss r _convert_to_addresszCTypesData._convert_to_addressRsv >)  """"%&& &)  """"F$6$6$8$8$8:;; ;r c4tj|jSrrLrMr,rBs r _get_sizezCTypesData._get_sizeZs}SZ(((r c4tj|jSrr[rGs r _get_size_of_instancez CTypesData._get_size_of_instance^s}T[)))r cJtd|)Nzcannot cast to rr"sources r _cast_fromzCTypesData._cast_fromas"is/@/@/@BCCCr c,|dSr)rYrGs r _cast_to_integerzCTypesData._cast_to_integeres''---r c4tj|jSr)rL alignmentr,rBs r _alignmentzCTypesData._alignmenths +++r cJtd|z)Nz#cdata %r does not support iterationrrGs r __iter__zCTypesData.__iter__ls+=      "" "r cJtt|fd}||_|S)Nct|t }t|tot|t }|r4|r2|d|dS|s|rtSt|tr|j}t|tr|j}||Sr)r.CTypesGenericPrimitiverrYNotImplemented_value)rotherv_is_ptrw_is_ptrcmpfuncs r cmpz!CTypesData._make_cmp..cmprs%d,BCCCH"5*55I)%1GHHH  ,H ,wt77==$88>>@@@ ,X ,%%d$:;;';De%;<<)!LEwtU+++r )getattroperator func_name)namersrrs @r _make_cmpzCTypesData._make_cmpps9(D)) , , , , ,  r __eq____ne____lt____le____gt____ge__cFt|dSr)hashrYrGs r __hash__zCTypesData.__hash__sD,,T22333r c&td|)Nz string(): r&rmaxlens r _to_stringzCTypesData._to_stringsi$$0111r )r8r)#rrrr __metaclass__ __slots__r classmethodr$ staticmethodr)r1r4r7r rCrHrPrUrYr\r^rbrdrgrirxryrzr{r|r}r~rrrr r rrsHMIHEEE00[0\  [ ,,[, \<<<[<[ """$$$EEEE;;;))[)***DD[D...,,[,"""(Yx F Yx F Yx F Yx F Yx F Yx F44422222r rceZdZgZdZdZdS)rlc*t|jSr)rrnrGs r rzCTypesGenericPrimitive.__hash__sDK   r cPt||jSr)reprr7rnrGs r rHz$CTypesGenericPrimitive._get_own_reprs D%%dk22333r N)rrrrrrHrr r rlrls7I!!!44444r rlc4eZdZgZedZdZdZdS)CTypesGenericArrayc||Srrr!s r r$zCTypesGenericArray._newps4yyr c#\Ktt|D] }||V dSr)xrangelen)ris r rizCTypesGenericArray.__iter__s<D ""  Aq'MMMM  r cZ|tj|jSrrPrL addressof_blobrGs r rHz CTypesGenericArray._get_own_repr!v/ ;;<<GG  + + :--//GG d , , :GG) SS$v,,"7"79:: :""7+++r c|||}||_tj||j|_|Sr)__new__rrLcastr,r)r"rOrs r rz CTypesGenericPtr._new_pointer_ats5{{3 #[#*== r cZ ||jS#t$rYdSwxYw)Nz???)rPrr-rGs r rHzCTypesGenericPtr._get_own_reprs= ??4=11 1   55 s  **c|jSr)rrGs r rdz!CTypesGenericPtr._cast_to_integers }r c*t|jSr)boolrrGs r __nonzero__zCTypesGenericPtr.__nonzero__sDM"""r ct|ts$tdt|jz||}t j||jS)Nzunexpected %s object) r.rrrrrYrLrr,)r"r(rOs r r)zCTypesGenericPtr._to_ctypessY%,, K2T%[[5IIJJ J++C00{7CJ///r cxtj|tjjpd}||SNr)rLrrNr(r)r" ctypes_ptrrOs r r7zCTypesGenericPtr._from_ctypess1+j&/::@EA""7+++r cL|r!||j|_dSdSr)r)contents)r"rr(s r _initializezCTypesGenericPtr._initializes4  A"%.."7"7"@J    A Ar cx||jdfvs|js|jr|jSt||Sr)r_automatic_castsrrrYrWs r rYz$CTypesGenericPtr._convert_to_addresssE t~t, , ,0G ,$ -= 11$?? ?r N)rrrrrkindrr$rbrrHrdr__bool__r)r7rrYrr r rrs_-I D[ , ,[ ,[  ###H00[0 ,,[,AA[A@@@@@r rceZdZdgZedZdZedZdZedZ edZ d d Z dS) CTypesBaseStructOrUnionrc&td|)Nzcannot instantiate opaque type r&r!s r r4z)CTypesBaseStructOrUnion._create_ctype_objsissDEEEr cZ|tj|jSrrrGs r rHz%CTypesBaseStructOrUnion._get_own_reprrr c6t|j|jSr)rtr,offset)r" fieldnames r _offsetofz!CTypesBaseStructOrUnion._offsetofssz9--44r ct|dd|jurtj|jSt ||S)N_BItem)rtrrLrrrrYrWs r rYz+CTypesBaseStructOrUnion._convert_to_addresssD 68T * *dn < <#DJ// /11$?? ?r c>||}||_|Srrr)r"ctypes_struct_or_unionrs r r7z$CTypesBaseStructOrUnion._from_ctypess{{3+  r c|jSr)r)r"r(s r r)z"CTypesBaseStructOrUnion._to_ctypes s {r Ncbt||p|dSr:)rrUr )rrSs r rUz CTypesBaseStructOrUnion.__repr__ s+""4)I43C3CD3I3IJJJr r) rrrrrr4rHrrYr7r)rUrr r rrs IFF[F===55[5@@@ [ [KKKKKKr rc^eZdZejejejejejej ej ej ej ej ejejejejdZdD]qZejeeZeeeddezz<eejejkr eeed<eejejkr eeed<rdD]|ZejeeZeeeddezz<eejejkreeed <eeed <eejejkr eeed <}d Zd ZdZd*dZdZdZdZdZdZ dZ!dZ" d+dZ#dZ$dZ%dZ&dZ'd,dZ(d,dZ)d Zd!Z*d"Z+d#Z,d$Z-d%Z.d*d&Z/e0Z1d'Z2d*d(Z3d-d)Z4d%S). CTypesBackend)charshortrr long long signed char unsigned charunsigned short unsigned int unsigned longunsigned long longfloatdouble_Bool)rrrrrzuint%d_trK uintptr_tsize_t)rrrrrzint%d_tintptr_t ptrdiff_tssize_tcfd|_d|_tj|_tj|_dSr) RTLD_LAZYRTLD_NOWrL RTLD_GLOBAL RTLD_LOCALrGs r rzCTypesBackend.__init__7s) !- +r c||_dSr)rA)rrAs r set_ffizCTypesBackend.set_ffi=s r cttfSr)rrrGs r _get_typeszCTypesBackend._get_types@s :%%r rcLtj||}t||Sr)rLCDLL CTypesLibrary)rpathflagscdlls r load_libraryzCTypesBackend.load_libraryCs#{4''T4(((r cTGddt}||S)NcBeZdZgZdZedZedZdS)/CTypesBackend.new_void_type..CTypesVoidzvoid &cdSrrnovalues r r7z.CTypesVoid._from_ctypesKstr cT|%tdt|jddS)NzNone expected, got z object)rrrrs r r)z:CTypesBackend.new_void_type..CTypesVoid._to_ctypesNs8&#)%)']]%;%;%;%>???tr N)rrrrr<rr7r)rr r CTypesVoidrHsPI#L   \    \   r r)rrC)rrs r new_void_typezCTypesBackend.new_void_typeGsF         r c,dkrt|jdkrd}n-dvrd}n&dvrd}n dkrd}nd }d jd kfd |Gfd d tS)Nwchar_tr)rrr)rrbyterrrcbt|tttfrt|}n{t|tr|}nQt|t rt|}n,|d}n'tddt|j |Sr) r.rrrrrdrordrrr)raCTypesPrimitives r _cast_source_to_intz=CTypesBackend.new_primitive_type.._cast_source_to_inths&3e"455 JVFJ// J0022FE** JVi!0$v,,2G2G!IJJJMr c eZdZdgZZdzZZdZefdZ edksedkre fdZ dZ ed kre fd Z d Z ed kre fd Z dZ edkre fdZ dZ dZ e Zedks edksed krefdZed krefdZdZndZeZedkr efdZedZefdZed krdZedkrdZdSdS)9CTypesBackend.new_primitive_type..CTypesPrimitivern%s &c||_dSrrnrr(s r rzBCTypesBackend.new_primitive_type..CTypesPrimitive.__init__}s # r cX| S|Sr)r))r#rr/s r r4zKCTypesBackend.new_primitive_type..CTypesPrimitive._create_ctype_objs1< 577Nu_77==>>>r rrcP|}|j}||Srr'r"rarr/s r rbzDCTypesBackend.new_primitive_type..CTypesPrimitive._cast_froms10088F"U6]]0F3v;;&r c|jSrrrGs r __int__zACTypesBackend.new_primitive_type..CTypesPrimitive.__int__ ;&r rct|tttfs |}|t |Sr)r.rrrrr"rars r rbzDCTypesBackend.new_primitive_type..CTypesPrimitive._cast_fromsB%fsD%.@AA=!4!4V!.CTypesPrimitive.__int__t{+++r rcT|}t|dz}||SN)bytechrr s r rbzDCTypesBackend.new_primitive_type..CTypesPrimitive._cast_froms20088F$Vd]33F3v;;&r c*t|jSrrrnrGs r rzACTypesBackend.new_primitive_type..CTypesPrimitive.__int__r r rct|trnPt|tr0t|drt|}nt |}n |}|j}||S)N __float__)r.rrlhasattrrr(rs r rbzDCTypesBackend.new_primitive_type..CTypesPrimitive._cast_froms!&%00=#F,BCC="6;771%*6]]FF%([[FF!4!4V!.CTypesPrimitive.__int__r r c|jSrrrGs r rzCCTypesBackend.new_primitive_type..CTypesPrimitive.__float__rr cRt|ttfsIt|trt|}n$t dt |jz|j|kr,s|dkrtdztdz|S)Nzinteger expected, got %srz%s: negative integerz%s: integer out of bounds) r.rrrrrrr( OverflowError)xr/ is_signedrws r r)zDCTypesBackend.new_primitive_type..CTypesPrimitive._to_ctypess%a#t55>%a44> #AAA"+,F,0GG,<-=#>#>>uQxx~**(8QUU"/0F0M"N"NN"/0K2617#8#88Hr ct|trt|dkr|St|r|jSt dt |jz)Nrzcharacter expected, got %s)r.rrrnrrr)rrs r r)zDCTypesBackend.new_primitive_type..CTypesPrimitive._to_ctypessg!!U++!A!  !!_55( x#$@$(GG$4%5666r c2t|jdkSrrrGs r rzECTypesBackend.new_primitive_type..CTypesPrimitive.__nonzero__st{++q00r c|jdkSrrrGs r rzECTypesBackend.new_primitive_type..CTypesPrimitive.__nonzero__s;!++r ct|ttttfs$t dt |jz|jS)Nzfloat expected, got %s) r.rrrrrrrr()rr/s r r)zDCTypesBackend.new_primitive_type..CTypesPrimitive._to_ctypessT%a#tUJ)GHH:'(@(,Q(8)9::: 588>)r c$t|d|S)Nr(rtr's r r7zFCTypesBackend.new_primitive_type..CTypesPrimitive._from_ctypessugu555r c<||_dSr)r)r()blobr#rs r rzECTypesBackend.new_primitive_type..CTypesPrimitive._initializes,77== r c|jSrrrs r rzDCTypesBackend.new_primitive_type..CTypesPrimitive._to_stringrr c0t|jdzSr)chrrnrs r rzDCTypesBackend.new_primitive_type..CTypesPrimitive._to_stringst{T1222r N)rrrrr,r<rrrr4rrbrrrdr)rrr7rr)rrr/rkind1rwsr rrws! IF!D=LD $ $ $ ? ? ? ? ?\ ? u}}'''''''''v~~-----,,,v~~''''',,,w ' ' ' ' ' ',,,''' ' u}}$&..       v~~666661111,,,"Hw*****  6 6\ 6 > > > >\ >v~~'''v~~33333~r r)rFPRIMITIVE_TYPESr(rlrC)rrwrrrr/rr(s ` @@@@@r new_primitive_typez CTypesBackend.new_primitive_typeWs% 9  %d++ +$T* 6>>DD ( ( (DD777rB.I     u 3u 3u 3u 3u 3u 3u 3u 3u 3u 3u 3u 34u 3u 3u 3n ""$$$r c*|jj}|tjdurdn[|tjd|tjdfvrdn|tjurdndGfdd t |jtjus.|jtjdurd _S) NrcharprrbytepvoidpgenericceZdZdgZdkredgz ZZedr+ejjZej jZ nej Ze e rdZndZfdZdZd Zfd Zfd Zdksd krefd ZdksdkrdZfdZxZS)1CTypesBackend.new_pointer_type..CTypesPtr_ownr, __as_strbufr,(* &)z * &cf|}dkrFtj|jdz|_tj|j|j|_ntj||_tj|jtj j|_ d|_ dS)Nr,T) r4rLcreate_string_bufferr(_CTypesPtr__as_strbufrr,rrrNrr2)rr#ctypeobjBItemrs r rz:CTypesBackend.new_pointer_type..CTypesPtr.__init__ s 224887??'-'B 0(2(2D$)/($+*7*7D&&*0)A)AD& & D,>,2O!=!==B   r ct|ttfr%||j||jzzSt Sr)r.rrrr _bitem_sizermrros r __add__z9CTypesBackend.new_pointer_type..CTypesPtr.__add__sPec4[11*// 058H0H1IJJJ*)r ct|ttfr%||j||jzz St |t |ur|j|jz |jzStSr)r.rrrrr<rrmr=s r __sub__z9CTypesBackend.new_pointer_type..CTypesPtr.__sub__ s|ec4[11*// 058H0H1IJJJ$ZZ4;;.. MEN:t?OOO))r ct|ddr |dkrt|j|S)Nr2Fr)rt IndexErrorr7rrindexr:s r __getitem__z=CTypesBackend.new_pointer_type..CTypesPtr.__getitem__)sA4//%EQJJ$$))$*.CTypesPtr.__setitem__.s$,1,<,.CTypesPtr._arg_to_ctypes2sPLE!He!zPCTypesBackend.new_pointer_type..CTypesPtr._to_string..B$<$<$.CTypesPtr._to_string:szz!$ D$6$*N6=$A$ACCAAf**1Qf**188$<$<$<$<588$<$<$<===r ct|ddr"dtj|jjfzSt |SNr2Fzowning %d bytes)rtrLrMrrrKrH)rrLrs r rHz?CTypesBackend.new_pointer_type..CTypesPtr._get_own_reprDs\4//E, d&8&ABB0EEEY--;;===r )rrrrrrrLrVr,rMr<rN issubclassrr r<rr>r@rErHrr1rrH __classcell__)rr:rLrs@r rLr1sIwm_, Fwuh'' )' 55+fmEL99 z%!344 9$0099 $0088  ! ! ! ! ! ! * * * * * * E E E E E  D D D D Dw$'//LLLLLL w$'//>>> > > > > > > > > > >r rLT)rA_get_cached_btyper PrimitiveType void_typerrrC)rr:getbtyperLrs ` @@r new_pointer_typezCTypesBackend.new_pointer_typesU8- HHU08899 9 9DD xx 3M B BCCx 3O D DEEGGGDD hhu// / /DDDK >K >K >K >K >K >K >K >K >(K >K >K >Z TX//@@ @ @ TX//0CF0K0KLL L L)-I &r cndndzj|jj}|tjdurdnA|tjd|tjdfvrdndGfdd t S) Nz &[]z &[%d]rrrrr/cbeZdZddgZ jzZnedZZZ fdZ e fdZ dZ fdZfd Zd ksd krd Zfd ZfdZe fdZe fdZfdZedZxZS)1CTypesBackend.new_array_type..CTypesArrayrr2Nr,c|t|ttfr|}d}nLdkr(t|trt |dz}nt |}t |}j|z|_||_d|_|| |j|dSdS)NrrT) r.rrrrtupler,rr2r)rr#len1r:rlengths r rz:CTypesBackend.new_array_type..CTypesArray.__init__js>!$d 44)##JtU,C,C"4yy1}$T{{"4yy"',"5DK![[]]   #$$TZ66666$#r cttr)fdttDnfttrBtt|kst st dt tt|krtdtj |tj j }tj j }tjj }tD];\}}tj |||zz|}|j|.CTypesArray._initialize..}s%BBBAD1Q3KBBBr zlength/type mismatch: ztoo many initializers)r.rrYrrrrirBrLrrNr(rVr,rM enumeraterr) r$r#addrPTRitemsizerr(rQr: CTypesArrays ` r rz=CTypesBackend.new_array_type..CTypesArray._initializezsRdE**'BBBBs4yy1A1ABBBDD!$(:;;RIIT22 *4 = =3"+)$$,P"Q"QQ ;;Dt99s4yy(($%<==={499?nU\22!=66 )$99HAu D1x<$7==A%%aj%888899r c*t|jSr)rrrGs r __len__z9CTypesBackend.new_array_type..CTypesArray.__len__s4:&r cd|cxkrt|jks nt|j|Sr)rrrBr7rCs r rEz=CTypesBackend.new_array_type..CTypesArray.__getitem__sKU4444S__4444$$))$*U*;<<.CTypesArray.__setitem__sPU4444S__4444$$$)$4$4U$;$; 5!!!r rrcV|dkrt|j}tj|jtjtjd}||kr#|dkr|dz }||kr |dkdfdt|DS)Nrr6rr c g|] }| SrrrOs r rRzPCTypesBackend.new_array_type..CTypesArray._to_string..rSr )rrrLrrVrWrXrYrZs @r rz.CTypesArray._to_stringszz!$TZ DJ$*N6=$A$ACCAAf**1Qf**188$<$<$<$<588$<$<$<===r ct|ddrdtj|jfzSt |Sr])rtrLrMrrKrH)rrrrs r rHz?CTypesBackend.new_array_type..CTypesArray._get_own_reprsN4//L, dj0I0I/KKK[$//==???r c|dfvs|jrtj|jSt||Sr)rrLrrrrY)rrXrLs r rYzECTypesBackend.new_array_type..CTypesArray._convert_to_addresssDi...&2I.!+DJ777%99$GGGr c@}||_|Srr) ctypes_arrayrrrs r r7z>CTypesBackend.new_array_type..CTypesArray._from_ctypess""**;77)  r c.|Srr3)r(rLs r r1z@CTypesBackend.new_array_type..CTypesArray._arg_to_ctypess //666r ct|ttfrIt j|j|t jjzzStSr) r.rrrrLrrrMr,rm)rror:rLs r r>z9CTypesBackend.new_array_type..CTypesArray.__add__sbec4[11*$44(44 el ; ;;<===*)r cJtd|)Nz casting to )rFr r`s r rbz.CTypesArray._cast_froms,))OO%%%+()))r )rrrrr,appendr r<_declared_length_CTPtrrrrrtrErHrrHrYr7r1r>rrbr_)rr:rrrLbracketsrrks@r rrrg`s &)I!.  *** ,,X66L% F 7 7 7 7 7 7 7  9 9 9 9 9\ 9$ ' ' ' = = = = =  < < < < < v~~>>> @ @ @ @ @ @  H H H H H     \   7 7 7 7\ 7 * * * * * * ) )[ ) ) ) ) )r rr)rrAr`rrarrC)rrLrkrcr:rrrrs `` @@@@r new_array_typezCTypesBackend.new_array_typeQs >HH&(H 8- HHU08899 9 9DD xx 3M B BCCx 3O D DEEGGGDDDe )e )e )e )e )e )e )e )e )e )e )e ),e )e )e )N    r cGdd||d_|Gfddt}||S)NceZdZdS);CTypesBackend._new_struct_or_union..struct_or_unionNrrr r struct_or_unionrs Dr r_c,eZdZdgZZdZxZZdS)?CTypesBackend._new_struct_or_union..CTypesStructOrUnionrr;N)rrrrr,r<_kindr)r(rwrsr CTypesStructOrUnionrs1 I$F%)TT+L EDDDr r)rrrC)rrrwbase_ctypes_classrr(rs ` @@r _new_struct_or_unionz"CTypesBackend._new_struct_or_unions     /   .2ddDD#9  ! ! ! ! ! ! ! ! !"9 ! ! ! &&(((""r cD|d|tjS)Nstruct)rrL Structurerrws r new_struct_typezCTypesBackend.new_struct_types((49IJJJr cD|d|tjS)Nunion)rrLUnionrs r new_union_typezCTypesBackend.new_union_types(($ EEEr rc P|dks|dkrtdjd|Dd|D}d|D} i} g} |D]U\} } }|dkr"| | | jf| | | <.| | | j|ft| | <V|dzrd_n |r|_| _| _tfd}|_fd j d kttt|| |D]\} } }| d krtd t| rtd | z|dkr| | | tj| jfd}| | fd}t#| t$rDd}| jdkr7| | j| tj| jfd}n | | fd}| | fd}t+| t-|||jt3j|}D]M} t|| rtd | z| fd}| fd}t+|| t-||NdS)Nrzthe ctypes backend of CFFI does not support structures completed by verify(); please compile and install the _cffi_backend module.cg|]\}}}| SrrrPfnameBFieldbitsizes r rRz:CTypesBackend.complete_struct_or_union..s???4UFG%???r cg|]\}}}| Srrrs r rRz:CTypesBackend.complete_struct_or_union..s@@@5eVW&@@@r cg|]\}}}| Srrrs r rRz:CTypesBackend.complete_struct_or_union..sDDD!9%WDDDr rKrc8}| |||Srr)r#result initializers r r4zACTypesBackend.complete_struct_or_union.._create_ctype_objs-$_&&F 64(((Mr c& r3t|dkr tdt|fzt|tst|tt frt dt|}t|t kr$td ztt |}tj |}| D]\}} |\}}|dks Jd |}tj|j}tj||z|} || j|dS)NrzPunion initializer: %d items given, but only one supported (use a dict if needed)zunion initializer: got a strz"too many values for %s initializerrz,not implemented: initializer with bit fields)r ValueErrorr.dictrunicoderrir ziprLritemsrrVr,rrr)r$r#rorr(rrrrprQrfnamesis_unionname2fieldtypes r rz:CTypesBackend.complete_struct_or_union..initializes 5t99q==$&P(+D |&4555dD)) /dUG$455D#$BCCCT{{t99s6{{**$%I%8%D%D%F%F&GHHHC--..#D))D $  6 6 u"0"7{{{E#{{,66u==nV]33Kv s33""1:u5555 6 6r rr8znested anonymous structs/unionsz1the field name %r conflicts in the ctypes backendctj|j}tj||z|}||jSr)rLrrrr7r)rrrrrprorQs r getterz6CTypesBackend.complete_struct_or_union..getter%sA"+DJ77D D6M377A!..qz:::r cXt|j|||dSr)setattrrr))rr(rrs r setterz6CTypesBackend.complete_struct_or_union..setter+s*DJv/@/@/G/GHHHHHr ctj|j}tj||z|}||Sr)rLrrrr7)rr BFieldPtrrrprorQs r rz6CTypesBackend.complete_struct_or_union..getter1s?$*#3DJ#?#?D & D6M3 ? ?A#,#9#9!#<#<.getter9s"!..wtz5/I/IJJJr c||}t|j|}t|j|||t|j|kr%t|j||t ddS)Nzvalue too large for bitfield)r)rtrrr)rr(rroldvalues r rz6CTypesBackend.complete_struct_or_union..setter;s|"--e44E&tz599HDJu555 E : ::: E8<<<+,JKKK;:r c.t|d|Srr")rrs r rz6CTypesBackend.complete_struct_or_union..getterJstAw...r c4t|d||dSr)r)rr(rs r rz6CTypesBackend.complete_struct_or_union..setterLsQ.....r )rFr,rEllipsis_pack__fields_ _bfield_typesrr4rrrrrrrLrVr^rrrrpropertyrAr`r PointerType)rrfieldstp totalsizetotalalignmentsflagspackbtypes bitfields bfield_typescfieldsrrrr4rrrLrrrrrs ` @@@@@r complete_struct_or_unionz&CTypesBackend.complete_struct_or_unions >>^q00%'VWW W.4?????@@@@@DDVDDD  (. / / $UFG{{v}5666&, U##v}g>???&. U## A: *%&O " "  *%)O "#* ,8)         1B- 6 6 6 6 6 6 6 6.',7c&#fi*@*@AABB&,% J% J "E67{{)*KLLL*E22 ? "68=">???{{',V"5"?"?"F"F%~fm<<;;;; /4FIIIIf&899=!F.!33/4 *=*G*G*N*N'-~fm'D'D====(-VKKKK.3FLLLL '0H0H I I I IH..u/@/D/DEE  @ @Ey%(( ? "68=">???#( / / / /*/ / / / / Iuhvv&>&> ? ? ? ? @ @r cdDrddGfddtS)Nc6g|]}|Srr rPBArgs r rRz3CTypesBackend.new_function_type..Qs$9994D$$&&999r z...z, ceZdZddgZejeddgdDRddiZdd Z dfd Z e d Z d Z fd ZfdZxZS):CTypesBackend.new_function_type..CTypesFunctionPtr _own_callback_namer,Ncg|] }|j Srr,rs r rRzECTypesBackend.new_function_type..CTypesFunctionPtr.Ys'F'F'F 'F'F'Fr use_errnoTz(* &)()cddl r Jdtdd)ndfd}t t r*t jt jgdDRddi}nj }|||_ t j |j t jj |_ |_dS)Nrz#varargs not supported for callbacksr,cvg}t|D]-\}}|||. |}|}n# }YnxYwt t r)|r%tj|tj j }nd}|Sr) rrr7r) print_excr^rrLrrNr() rargs2argrres2BArgsBResulterrorr# tracebacks r callbackzUCTypesBackend.new_function_type..CTypesFunctionPtr.__init__..callbackfsE%(u%5%5== T T%6%6s%;%;<<<<%#tU|&11$77%!++---$!'+;<<((#);tV_#E#E#KDD$(DKs AA8cg|] }|j Srrrs r rRzWCTypesBackend.new_function_type..CTypesFunctionPtr.__init__..}s888$$+888r rT)rrtr7r4r^rrL CFUNCTYPErNr,rrr(rr) rr#rrcallback_ctyperrrCTypesFunctionPtr has_varargss `` @r rzCCTypesBackend.new_function_type..CTypesFunctionPtr.__init__]s;    &MM(MMM7Hd33?#0011%88::EE!E         $g'788>&,%5&(88%888&(&(&(#'&(&(NN &7%=N%3^H%=%=" & D,>,2O!=!==B %)"""r c(|rtddS)NzActypes backend: not supported: initializers for function pointersrE)rr(s r rzFCTypesBackend.new_function_type..CTypesFunctionPtr._initializes2P-/OPPPPPr ct|dd}|rL|jd}|j|dz dvrd|z}|jd|}t||S)Nrr4rz )*rR)rtr<rDr=rrU)rrSrs r rUzCCTypesBackend.new_function_type..CTypesFunctionPtr.__repr__s w55H)//88A(1-U::!$v!.66wGGF!**4888r c~t|dd d|jSt|S)Nrzcalling )rtrrKrH)rrrs r rHzHCTypesBackend.new_function_type..CTypesFunctionPtr._get_own_reprsD4$77CC+/+=+=??.55CCEEEr c rQt|tksJ|td}|dt}n"t|tksJg}t|D]-\}}|||. rt |D]\}}|(|t jd/t|ts9tddtz|zt|j fz||||j |} |S)NrzKargument %d passed in the variadic part needs to be a cdata object (got %s)r)rrrr1rnrLrNr.rrrrrr7) rr extraargs ctypes_argsrrrrrrrs r __call__zCCTypesBackend.new_function_type..CTypesFunctionPtr.__call__s3t99E 2222 $SZZ[[ 1I U ,DDt99E 2222 !$T5!1!1AAIC&&t':':3'?'?@@@@ D"+I"6"6 D D3;'..vq/A/ABBB$)#z::J"+!F!"SZZ!!3T#YY5G H!I#J#JJ$**3+=+=c+B+BCCCC++[9++F333r r)rrrrrLrrtr,r r<rrrrUrHrr_)rrrrrnameargss@r rrVs7('2I%V%gggx&F&F6'F'F'F'F'F6660466F#...hhh/HIIL' *' *' *' *' *' *' *' *' *R P P\ P  9 9 9 F F F F F F  4 4 4 4 4 4 4 4 4 4 4r r)rrXrrC)rrrrrrs ```@@r new_function_typezCTypesBackend.new_function_typePs995999  # OOE " " "99X&&Z 4Z 4Z 4Z 4Z 4Z 4Z 4Z 4Z 4Z 4Z 4 0Z 4Z 4Z 4x $$&&&  r cttsJttt |t |Gfdd|}||S)Nc2eZdZgZdzZfdZfdZdS)/CTypesBackend.new_enum_type..CTypesEnumrcl|j} d||fzS#t$rt|cYSwxYw)Nz%d: %srnKeyErrorstr)rr(reverse_mappings r rHz=CTypesBackend.new_enum_type..CTypesEnum._get_own_reprsQ &#uoe.D&EEE&&&u::%%%&s 33cb|j} |S#t$rt|cYSwxYwrr)rrr(rs r rz:CTypesBackend.new_enum_type..CTypesEnum._to_stringsG &*511&&&u::%%%&s ..N)rrrrr<rHr)rwrsr CTypesEnumrsUI!D=L & & & & & & & & & & & &r r)r.rrrreversedrC)rrw enumerators enumvalues CTypesIntrrs ` @r new_enum_typezCTypesBackend.new_enum_types$$$$$$s8J#7#7#+K#8#8 : :;; & & & & & & & & & & &$ r c(tjSr)rL get_errnorGs r rzCTypesBackend.get_errnos!!!r c.tj|dSr)rL set_errnors r rzCTypesBackend.set_errnosr c,||Sr)r)rbrs r stringzCTypesBackend.strings||F###r c td)Nzbuffer() with ctypes backendrE)rbptrsizes r bufferzCTypesBackend.buffers!"@AAAr ct|tr|St|tsJ|Sr)r.rr^r^r\)rcdata_or_BTypes r rMzCTypesBackend.sizeofsN nj 1 1 .!7799 9nj99 9 99!++-- -r cXt|tsJ|Sr)r^rrg)rBTypes r alignofzCTypesBackend.alignofs*%,,,,,!!!r cdt|tst||Sr)r^rrr$rr ras r newpzCTypesBackend.newps+%,, O{{6"""r c,||Sr)rbrs r rzCTypesBackend.casts'''r c"|J|||Srr)rr raronerrors r rzCTypesBackend.callbacksuVU###r NcR|j ddl}Gdd|j}i|f|_|j\}|- ||=n#t$rt dwxYwdSfd}||||}||usJ||f|||<|S)Nrc eZdZdZdZdZdS) CTypesBackend.gcp..MyRefc>|}||up|duo ||uSrr)rromyrefs r ryz'CTypesBackend.gcp..MyRef.__eq__s8 DFFE5=@T)>euuww.>@r c||k Srrr=s r rzz'CTypesBackend.gcp..MyRef.__ne__s $ ..r cx |jS#t$r&t||_|jcYSwxYwr)_hashr-rrGs r rz)CTypesBackend.gcp..MyRef.__hash__sK*#z))***%)$$&&\\ #z)))*s  -99N)rrrryrzrrr r MyRefrsD@@@///*****r rzFCan remove destructor only on a object previously returned by ffi.gc()cX|d\}}| ||dSdS)N)NN)pop)kcdata destructor weak_caches r removez!CTypesBackend.gcp..removes? *q, ? ? E:% 5!!!!!&%r )_weakref_cache_refweakrefrefrrrtypeof) rr!r"rr&rr$ new_cdatar#s @r gcpzCTypesBackend.gcps(  " * NNN * * * * * * * *')%iD # 3 E   CuuU||,, C C C!BCCC C4 " " " " " IIdkk%00%88 %%%%05z/B 55F++,s AAc,||Srr)rr r>s r getcnamezCTypesBackend.getcnames  ...r ct|tr|dkrt|tr|j}t|t st d|j|}|turt d|| |fSt|ttfryt|tr|j }t|tst d|j}||z}|tjkrt"||fSt t%|)Nrz expected a struct or union ctypeznot supported for bitfieldszexpected an array or ptr ctype)r.rr^rrrrrrrrrrrr\rTrUrr)rr rr rr:rs r typeoffsetofzCTypesBackend.typeoffsetofs3 i % % -axxJu.>??x e%<== D BCCC(3F!! =>>>EOOI667 7  C; / / -%!344 % e%566 B @AAALE__&&2F ####6? "DOO,, ,r ct|tr5tjt ||}nt|t r[|'tt |jtstdt ||}nGt|tr#t ||}ntd|rYtj tj tj |tj j |zt |}||S)Nzunexpected cdata typez$expected a )r.rrLrrr)rr^rrrrrNr(r7)rBTypePtrr!rptrs r rawaddressofzCTypesBackend.rawaddressof5s< e4 5 5 D.e!7!7!>!>??CC / 0 0 D~ZU 0B0G&I&I~ 7888u++((//CC 1 2 2 Du++((//CCBCC C  +KV_55;fDFFS C$$S)))r )r)rrrr)rr)5rrrrLrWc_shortc_intc_long c_longlongc_bytec_ubytec_ushortc_uintc_ulong c_ulonglongc_floatc_doublec_boolr)rrM_sizerNc_size_trrrrrr*rdrrrrrrrrrrr rrrrr%r*rr(r,r.r2rr r rrs | &} / $0/  O"E?? oe4552A%2H ag./ MFM&/22 2 2+:5+AOK ( MFM&/22 2 2(7(>OH %E@@ oe4551@1G QuW-. MFM&/22 2 2*9%*@OJ '+:5+AOK ( MFM&/22 2 2)8)?OI &,,, &&&)))) XXXt^^^@wwwr### KKKFFFJK&'n@n@n@n@`c!c!c!J4"""   $$$$BBBB..."""### ((($$$####JF///----.******r rc&eZdZdZdZdZdZdS)rc"||_||_dSr)backendr)rrDrs r rzCTypesLibrary.__init__Ks  r cht|j|}||}||_|Sr)rtrr7r)rr rwc_funcfuncobjs r load_functionzCTypesLibrary.load_functionOs2D))$$V,, r c |j|j|}n!#t$r}t |d}~wwxYw||Sr)r,in_dllrr-rFr7)rr rw ctypes_objes r read_variablezCTypesLibrary.read_variableUsc ),,TY==JJ ) ) )%a(( ( )!!*---s # A<Ac||}|j|j|}t jt j|t j|t j|jdSr)r)r,rJrrLmemmoverrM)rr rwr(new_ctypes_objrKs r write_variablezCTypesLibrary.write_variable\sv))%00\((D99 v' 33'77}U\22 4 4 4 4 4r N)rrrrrHrMrQrr r rrIsP ...44444r r)rL ctypes.utilrurTr8r version_infor'rrrrrrYrrrobjectrrlrrrrrrr r rUs))))))))))))))))dGGG D F&&G        @2@2@2@2@2@2@2@2F44444Z444 = = = = = = = =@@@@@@@@@@z@@@@@@F K K K K Kj K K KFu *u *u *u *u *Fu *u *u *p44444F44444r