§ y<ˆjÏaãóš—dZddlmZddlmZmZmZmZmZm Z m Z m Z m Z m Z mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!ddlm"Z"ej#Z$ddgd¢dd d d d d œZ%ididd“dd“dd“dd“dd“dd“dd“dd“dd“dd“dd“dd“dd“d d“d!d“d"d“d#d““dd$“dd%“dd&“dg“dd“d'd“d(d“dd)“dg“dd“d*d“dg“dd“d+d“d,d“dd-“ddd.d/d0d1dddd2d3d4d5e d6ee ¦«did7œ¥d8ed9id:ed;igdgd?eeee¦«ee ¦«¦«d@œedAidBdCdDedEidFedGigddSge dTœdUdVe d6igdWedXœedJdYœgZ&eee¦«dZieee¦«dZiedUieee¦«d[e d6igieee¦«d[e d6igiedVee e¦«d6ee e¦«d\igieee¦«d]ieee¦«d]idd^œ eee¦«d_eeee¦«¦«d`e daed_ieee¦«dbeeee¦«¦«dce dbedbieee¦«dSeeee¦«¦«dde ddedSieee e¦«dSiedeiedfiedgidhœee¦«diieeee!dj¦«¦«diedkiedlieeeee ¦«e¦«¦«dmieeeee ¦«ee¦«¦«¦«dnieeee e¦«¦«doieeee ee¦«¦«¦«dpigedgied=igedqœedriedsigedtieduie dSigeee¦«ddvœedwidxedyigdSdIed=idHgeee¦«dzœed{ied|ied}iged~ieduigeee¦«ddvœdd€e dd�œed‚iedƒee¦«d„id…gee eeee¦«¦«dd†œedkid‡edˆid‰edŠigd‹e dSigee e¦«dzœd]edŒœg Z'iZ(d�„Z)dŽ„Z*d�S)�aK Build call-back mechanism for f2py2e. Copyright 2000 Pearu Peterson all rights reserved, Pearu Peterson Permission to use, modify, and distribute this software is given under the terms of the NumPy License. NO WARRANTY IS EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK. $Date: 2005/07/20 11:27:58 $ Pearu Peterson é)Ú __version__)Ú applyrulesÚ debugcapiÚ dictappendÚerrmessÚgetargsÚhasnoteÚisarrayÚ iscomplexÚiscomplexarrayÚiscomplexfunctionÚ isfunctionÚ isintent_cÚ isintent_hideÚ isintent_inÚisintent_inoutÚisintent_nothideÚ isintent_outÚ isoptionalÚ isrequiredÚisscalarÚisstringÚisstringfunctionÚ issubroutineÚl_andÚl_notÚl_orÚoutmessÚreplaceÚ stripcommaÚ throw_error)ÚcfuncszPtypedef #rctype#(*#name#_typedef)(#optargs_td##args_td##strarglens_td##noargs#);a^ #begintitle# typedef struct { PyObject *capi; PyTupleObject *args_capi; int nofargs; jmp_buf jmpbuf; } #name#_t; #if defined(F2PY_THREAD_LOCAL_DECL) && !defined(F2PY_USE_PYTHON_TLS) static F2PY_THREAD_LOCAL_DECL #name#_t *_active_#name# = NULL; static #name#_t *swap_active_#name#(#name#_t *ptr) { #name#_t *prev = _active_#name#; _active_#name# = ptr; return prev; } static #name#_t *get_active_#name#(void) { return _active_#name#; } #else static #name#_t *swap_active_#name#(#name#_t *ptr) { char *key = "__f2py_cb_#name#"; return (#name#_t *)F2PySwapThreadLocalCallbackPtr(key, ptr); } static #name#_t *get_active_#name#(void) { char *key = "__f2py_cb_#name#"; return (#name#_t *)F2PyGetThreadLocalCallbackPtr(key); } #endif /*typedef #rctype#(*#name#_typedef)(#optargs_td##args_td##strarglens_td##noargs#);*/ #static# #rctype# #callbackname# (#optargs##args##strarglens##noargs#) { #name#_t cb_local = { NULL, NULL, 0 }; #name#_t *cb = NULL; PyTupleObject *capi_arglist = NULL; PyObject *capi_return = NULL; PyObject *capi_tmp = NULL; PyObject *capi_arglist_list = NULL; int capi_j,capi_i = 0; int capi_longjmp_ok = 1; #decl# #ifdef F2PY_REPORT_ATEXIT f2py_cb_start_clock(); #endif cb = get_active_#name#(); if (cb == NULL) { capi_longjmp_ok = 0; cb = &cb_local; } capi_arglist = cb->args_capi; CFUNCSMESS("cb:Call-back function #name# (maxnofargs=#maxnofargs#(-#nofoptargs#))\n"); CFUNCSMESSPY("cb:#name#_capi=",cb->capi); if (cb->capi==NULL) { capi_longjmp_ok = 0; cb->capi = PyObject_GetAttrString(#modulename#_module,"#argname#"); CFUNCSMESSPY("cb:#name#_capi=",cb->capi); } if (cb->capi==NULL) { PyErr_SetString(#modulename#_error,"cb: Callback #argname# not defined (as an argument or module #modulename# attribute).\n"); goto capi_fail; } if (F2PyCapsule_Check(cb->capi)) { #name#_typedef #name#_cptr; #name#_cptr = F2PyCapsule_AsVoidPtr(cb->capi); #returncptr#(*#name#_cptr)(#optargs_nm##args_nm##strarglens_nm#); #return# } if (capi_arglist==NULL) { capi_longjmp_ok = 0; capi_tmp = PyObject_GetAttrString(#modulename#_module,"#argname#_extra_args"); if (capi_tmp) { capi_arglist = (PyTupleObject *)PySequence_Tuple(capi_tmp); Py_DECREF(capi_tmp); if (capi_arglist==NULL) { PyErr_SetString(#modulename#_error,"Failed to convert #modulename#.#argname#_extra_args to tuple.\n"); goto capi_fail; } } else { PyErr_Clear(); capi_arglist = (PyTupleObject *)Py_BuildValue("()"); } } if (capi_arglist == NULL) { PyErr_SetString(#modulename#_error,"Callback #argname# argument list is not set.\n"); goto capi_fail; } #setdims# #ifdef PYPY_VERSION #define CAPI_ARGLIST_SETITEM(idx, value) PyList_SetItem((PyObject *)capi_arglist_list, idx, value) capi_arglist_list = PySequence_List(capi_arglist); if (capi_arglist_list == NULL) goto capi_fail; #else #define CAPI_ARGLIST_SETITEM(idx, value) PyTuple_SetItem((PyObject *)capi_arglist, idx, value) #endif #pyobjfrom# #undef CAPI_ARGLIST_SETITEM #ifdef PYPY_VERSION CFUNCSMESSPY("cb:capi_arglist=",capi_arglist_list); #else CFUNCSMESSPY("cb:capi_arglist=",capi_arglist); #endif CFUNCSMESS("cb:Call-back calling Python function #argname#.\n"); #ifdef F2PY_REPORT_ATEXIT f2py_cb_start_call_clock(); #endif #ifdef PYPY_VERSION capi_return = PyObject_CallObject(cb->capi,(PyObject *)capi_arglist_list); Py_DECREF(capi_arglist_list); capi_arglist_list = NULL; #else capi_return = PyObject_CallObject(cb->capi,(PyObject *)capi_arglist); #endif #ifdef F2PY_REPORT_ATEXIT f2py_cb_stop_call_clock(); #endif CFUNCSMESSPY("cb:capi_return=",capi_return); if (capi_return == NULL) { fprintf(stderr,"capi_return is NULL\n"); goto capi_fail; } if (capi_return == Py_None) { Py_DECREF(capi_return); capi_return = Py_BuildValue("()"); } else if (!PyTuple_Check(capi_return)) { capi_return = Py_BuildValue("(N)",capi_return); } capi_j = PyTuple_Size(capi_return); capi_i = 0; #frompyobj# CFUNCSMESS("cb:#name#:successful\n"); Py_DECREF(capi_return); #ifdef F2PY_REPORT_ATEXIT f2py_cb_stop_clock(); #endif goto capi_return_pt; capi_fail: fprintf(stderr,"Call-back #name# failed.\n"); Py_XDECREF(capi_return); Py_XDECREF(capi_arglist_list); if (capi_longjmp_ok) { longjmp(cb->jmpbuf,-1); } capi_return_pt: ; #return# } #endtitle# )zsetjmp.hÚ CFUNCSMESSÚF2PY_THREAD_LOCAL_DECLz #maxnofargs#z #nofoptargs#zF def #argname#(#docsignature#): return #docreturn#\n\ #docstrsigns#zc {{}\verb@def #argname#(#latexdocsignature#): return #docreturn#@{}} #routnote# #latexdocstrsigns#z1def #argname#(#docsignature#): return #docreturn#)Ú cbtypedefsÚbodyÚneedÚ maxnofargsÚ nofoptargsÚdocstrÚ latexdocstrÚ docstrshortÚ separatorsforÚdeclú Úargsú,ÚoptargsÚÚ pyobjfromÚfreememÚargs_tdÚ optargs_tdÚargs_nmÚ optargs_nmÚ frompyobjÚsetdimsÚ docstrsignsz\n" "ÚlatexdocstrsignsÚlatexdocstrreqÚlatexdocstroptÚlatexdocstroutÚlatexdocstrcbsz/*decl*/z /*pyobjfrom*/z /*frompyobj*/ÚreturnÚ strarglensz /*freemem*/Ú strarglens_tdÚ strarglens_nmÚnoargsz /*setdims*/z Required arguments:z Optional arguments:z Return objects:z Call-back functions:z\noindent Required arguments:z\noindent Optional arguments:z\noindent Return objects:z\noindent Call-back functions:z --- #note#)r<r=Ú docstrreqÚ docstroptÚ docstroutÚ docstrcbsÚ docreturnÚdocsignÚ docsignoptr>r?r@rAÚroutnotez #ctype# return_value = 0;z, CFUNCSMESS("cb:Getting return_value->");a‡ if (capi_j>capi_i) { GETSCALARFROMPYTUPLE(capi_return,capi_i++,&return_value,#ctype#, "#ctype#_from_pyobj failed in converting return_value of" " call-back function #name# to C #ctype#\n"); } else { fprintf(stderr,"Warning: call-back function #name# did not provide" " return value (index=%d, type=#ctype#)\n",capi_i); }z8 fprintf(stderr,"#showvalueformat#.\n",return_value);z#ctype#_from_pyobjr#ÚGETSCALARFROMPYTUPLEz return return_value;)r.r:r'rBÚ_checkzB fprintf(stderr,"debug-capi:cb:#name#:%d:\n",return_value_len);z)#ctype# return_value,int return_value_lenzreturn_value,&return_value_lenz #ctype# ,intz. CFUNCSMESS("cb:Getting return_value->\"");a if (capi_j>capi_i) { GETSTRFROMPYTUPLE(capi_return,capi_i++,return_value,return_value_len); } else { fprintf(stderr,"Warning: call-back function #name# did not provide" " return value (index=%d, type=#ctype#)\n",capi_i); }z: fprintf(stderr,"#showvalueformat#\".\n",return_value);zstring.hÚGETSTRFROMPYTUPLEzreturn;)r4r0r8r6r:r'rBrPz< #ifndef F2PY_CB_RETURNCOMPLEX #ctype# *return_value #endif z3 #ifndef F2PY_CB_RETURNCOMPLEX return_value #endif z0 #ifndef F2PY_CB_RETURNCOMPLEX #ctype# * #endif zH #ifdef F2PY_CB_RETURNCOMPLEX #ctype# return_value = {0, 0}; #endif a if (capi_j>capi_i) { #ifdef F2PY_CB_RETURNCOMPLEX GETSCALARFROMPYTUPLE(capi_return,capi_i++,&return_value,#ctype#, "#ctype#_from_pyobj failed in converting return_value of call-back" " function #name# to C #ctype#\n"); #else GETSCALARFROMPYTUPLE(capi_return,capi_i++,return_value,#ctype#, "#ctype#_from_pyobj failed in converting return_value of call-back" " function #name# to C #ctype#\n"); #endif } else { fprintf(stderr, "Warning: call-back function #name# did not provide" " return value (index=%d, type=#ctype#)\n",capi_i); }zÈ#ifdef F2PY_CB_RETURNCOMPLEX fprintf(stderr,"#showvalueformat#.\n",(return_value).r,(return_value).i); #else fprintf(stderr,"#showvalueformat#.\n",(*return_value).r,(*return_value).i); #endif zP #ifdef F2PY_CB_RETURNCOMPLEX return return_value; #else return; #endif z#ctype#)r2r9r7r.r:rBr'rPz #pydocsignout#z"\item[]{{}\verb@#pydocsignout#@{}}z#rname#,)rIr@rKrP)rPrBz #pydocsign#z\item[]{{}\verb@#pydocsign#@{}}z--- See above.z #varname#,) rHrGrIr?r>r@rLrMÚdependz#ctype# #varname_i#z#ctype# *#varname_i#_cb_capiz#ctype# *#varname_i#z #varname_i#z#varname_i#_cb_capiz #ctype# *z,int #varname_i#_cb_lenz,intz,#varname_i#_cb_len)r0r8r6r'rCrDrEz/ #ctype# #varname_i#=(*#varname_i#_cb_capi);z8intent(c,out) is forbidden for callback scalar argumentsz) CFUNCSMESS("cb:Getting #varname#->");zÏ if (capi_j>capi_i) GETSCALARFROMPYTUPLE(capi_return,capi_i++,#varname_i#_cb_capi,#ctype#,"#ctype#_from_pyobj failed in converting argument #varname# of call-back function #name# to C #ctype#\n");z7 fprintf(stderr,"#showvalueformat#.\n",#varname_i#);z@ fprintf(stderr,"#showvalueformat#.\n",*#varname_i#_cb_capi);zK fprintf(stderr,"#showvalueformat#.\n",(#varname_i#).r,(#varname_i#).i);z] fprintf(stderr,"#showvalueformat#.\n",(*#varname_i#_cb_capi).r,(*#varname_i#_cb_capi).i);)r.Úerrorr:r'rPz„ if (cb->nofargs>capi_i) if (CAPI_ARGLIST_SETITEM(capi_i++,pyobj_from_#ctype#1(#varname_i#))) goto capi_fail;zŽ if (cb->nofargs>capi_i) if (CAPI_ARGLIST_SETITEM(capi_i++,pyarr_from_p_#ctype#1(#varname_i#_cb_capi))) goto capi_fail;zpyobj_from_#ctype#1zpyarr_from_p_#ctype#1)r4r'rPÚ _optionalz+ CFUNCSMESS("cb:Getting #varname#->\"");zf if (capi_j>capi_i) GETSTRFROMPYTUPLE(capi_return,capi_i++,#varname_i#,#varname_i#_cb_len);zP fprintf(stderr,"#showvalueformat#\":%d:.\n",#varname_i#,#varname_i#_cb_len);)r:r'rPze fprintf(stderr,"debug-capi:cb:#varname#=#showvalueformat#:%d:\n",#varname_i#,#varname_i#_cb_len);z› if (cb->nofargs>capi_i) if (CAPI_ARGLIST_SETITEM(capi_i++,pyobj_from_#ctype#1size(#varname_i#,#varname_i#_cb_len))) goto capi_fail;zÜ if (cb->nofargs>capi_i) { int #varname_i#_cb_dims[] = {#varname_i#_cb_len}; if (CAPI_ARGLIST_SETITEM(capi_i++,pyarr_from_p_#ctype#1(#varname_i#,#varname_i#_cb_dims))) goto capi_fail; }zpyobj_from_#ctype#1sizez6 npy_intp #varname_i#_Dims[#rank#] = {#rank*[-1]#};z #cbsetdims#;)r.r;rPÚ_dependz0 fprintf(stderr,"debug-capi:cb:#varname#\n");a€ if (cb->nofargs>capi_i) { /* tmp_arr will be inserted to capi_arglist_list that will be destroyed when leaving callback function wrapper together with tmp_arr. */ PyArrayObject *tmp_arr = (PyArrayObject *)PyArray_New(&PyArray_Type, #rank#,#varname_i#_Dims,#atype#,NULL,(char*)#varname_i#,#elsize#, NPY_ARRAY_CARRAY,NULL); a€ if (cb->nofargs>capi_i) { /* tmp_arr will be inserted to capi_arglist_list that will be destroyed when leaving callback function wrapper together with tmp_arr. */ PyArrayObject *tmp_arr = (PyArrayObject *)PyArray_New(&PyArray_Type, #rank#,#varname_i#_Dims,#atype#,NULL,(char*)#varname_i#,#elsize#, NPY_ARRAY_FARRAY,NULL); z• if (tmp_arr==NULL) goto capi_fail; if (CAPI_ARGLIST_SETITEM(capi_i++,(PyObject *)tmp_arr)) goto capi_fail; })r4rPrTzì if (capi_j>capi_i) { PyArrayObject *rv_cb_arr = NULL; if ((capi_tmp = PyTuple_GetItem(capi_return,capi_i++))==NULL) goto capi_fail; rv_cb_arr = array_from_pyobj(#atype#,#varname_i#_Dims,#rank#,F2PY_INTENT_INz|F2PY_INTENT_Ca8,capi_tmp); if (rv_cb_arr == NULL) { fprintf(stderr,"rv_cb_arr is NULL\n"); goto capi_fail; } MEMCOPY(#varname_i#,PyArray_DATA(rv_cb_arr),PyArray_NBYTES(rv_cb_arr)); if (capi_tmp != (PyObject *)rv_cb_arr) { Py_DECREF(rv_cb_arr); } }z fprintf(stderr,"<-.\n");ÚMEMCOPY)rKrPcóÌ—gt|d<|dD]J}|ddkr<|dD]3}|rt||d¦«Œtd|dz¦«Œ4ŒKdS)NÚnamer&ÚblockÚ interfacezwarning: empty body for %s )Úcb_mapÚ buildcallbackr)ÚmÚbiÚbs úg/builddir/build/BUILD/cloudlinux-venv-1.0.12/venv/lib64/python3.11/site-packages/numpy/f2py/cb_rules.pyÚbuildcallbacksras‘€Ø…Fˆ1ˆVŒ9ÑØ�ŒiðJðJˆØ ˆgŒ;˜+Ò %Ð %ؘ”Zð Jð J�ØðJÝ! ! Q v¤YÑ/Ô/Ð/Ð/åÐ:¸aÀ¼iÑHÑIÔIÐIÐIøð JðJócóú —ddlm}td|d›d|›d�¦«t|¦«\}}||_|d}| ||¦«}t i|¦«}t| |d|dg¦«tD]<}d|vr|d|¦«sd|vr!t|||¦«} t || ¦«}Œ=i} t|¦«D]�\} } |  | || | ¬ ¦«}|| | <tD]m}d |vrŒd |vrt|| ¦«rŒ!d|vr|d|| ¦«sd|vr-t|||| ¦«} t || ¦«}d |vrnŒnŒž|D]ƒ} | | }tD]q}d |vrŒd |vsd |vrt|| ¦«rŒ%d|vr|d|| ¦«sd|vr-t|||| ¦«} t || ¦«}d |vrnŒrŒ„|D]j} | | }tD]X}d |vrŒd |vrŒ d|vr|d|| ¦«sd|vr-t|||| ¦«} t || ¦«}d |vrnŒYŒkd |vrLd|vrHt!|dt"¦«r-|ddgz|d<|ddgz|d<|ddgz|d<t!|dt"¦«r(t%t'dd|di¦«¦«|d<t%t'dd|di¦«¦«} | dkr)t%t'dd|di¦«¦«|d<nt'd|d| dœ¦«|d<|d dd¦«|d<|d dd ¦«|d<g|d!<g|d"<d#D]Ž}||vr/t!||t"¦«r|d!||z|d!<d$|z}||vrPt!||t"¦«r5|d"||d%d…zd&gz||dd…zd'gz|d"<Œ�d |vrd|d <d|d(<d|d)<| d ¦«s/| d¦«s| d*¦«sd+|d,<tt*|¦«} | d-t,j|d<t!| d.t0¦«r | d.g| d.<d.|vrFt,j ¦«D]'}||d.vr| d. |¦«Œ(| d/t,j|dd0z<| d. |dd0z¦«| d.t,j|d<| d1| d2| d3| d4|d5d6œ|j|d<td7| d8z¦«dS)9Nr)Ú capi_mapsz( Constructing call-back function "cb_rXÚ_in_z" ÚvarsrP)ÚindexrUrTÚ_breakr0r2z( #ifndef F2PY_CB_RETURNCOMPLEX , #endif r9r7rKz #docreturn#z #docsignopt#rMr3z #docsign#rLÚ docsignaturez#docsign#[#docsignopt#])rLrMÚ_z\_Úlatexdocsignaturer1z, r<r=)rGrHrIrJÚlatexéz\begin{description}z\end{description}r6r8rCÚvoidrFr&r'r%Ú_typedefr(r)r*r+Úargname)r(r)r*r+rpz %s r,)r3rdrrÚdepargsÚcb_routsign2maprr[ÚappendÚ cb_rout_rulesrÚ enumerateÚ cb_sign2mapÚ cb_arg_rulesrrÚ isinstanceÚlistr rÚgetÚcb_routine_rulesr"Ú callbacksÚstrÚtypedefsÚkeysÚtypedefs_generatedÚneedsÚlcb2_map)ÚroutÚumrdr0rqÚvarÚvrdÚrdÚrÚarÚsavevrdÚiÚar2ÚkÚts r`r\r\ s>€ØÐÐÐÐÐå €GØ �&Œ\ˆ\ˆ\˜2˜2˜2ð ñ ô ð å˜D‘M”M�M€Dˆ'Ø€IÔØ ˆvŒ,€CØ × #Ò # D¨"Ñ -Ô -€CÝ �B˜Ñ Ô €BÝ ˆ2„J×Ò�t˜F”| R¨¤ZÐ0Ñ1Ô1Ð1Ý ð$ð$ˆØ ˜ˆMˆM˜k˜a œk¨$Ñ/Ô/ˆM°XÀQÐ5FÐ5FݘA˜s DÑ)Ô)ˆBݘB Ñ#Ô#ˆBøØ€Gݘ$‘”ð 𠉈ˆ1Ø×#Ò# A s¨1¤v°QÐ#Ñ7Ô7ˆØˆ�‰ Ýð ð ˆAؘAˆ~ˆ~ØØ˜aÐÐ¥J¨s°1¬vÑ$6Ô$6ÐØØ˜A� �  + ! H¤+¨c°!¬fÑ"5Ô"5� ¸8È1Ð;LÐ;LÝ  3¨¨A¬Ñ/Ô/�Ý  BÑ'Ô'�ؘq�=�=Ø�EøøØ ð ð ˆØ�aŒjˆÝð ð ˆAؘAˆ~ˆ~ØØ 1Ð$Ð$¨+¸Ð*:Ð*:½zÈ#ÈaÌ&Ñ?QÔ?QÐ*:ØØ˜A� �  + ! H¤+¨c°!¬fÑ"5Ô"5� ¸8È1Ð;LÐ;LÝ  3¨¨A¬Ñ/Ô/�Ý  BÑ'Ô'�ؘq�=�=Ø�EøøØ ð ð ˆØ�aŒjˆÝð ð ˆAØ Ð!Ð!ØØ˜aÐÐØØ˜A� �  + ! H¤+¨c°!¬fÑ"5Ô"5� ¸8È1Ð;LÐ;LÝ  3¨¨A¬Ñ/Ô/�Ý  BÑ'Ô'�ؘq�=�=Ø�EøøØ �€|€|˜  R˜˜Ý �b˜”m¥TÑ *Ô *ð Ø˜yœMð.ð-ñˆBˆy‰Mð " ,Ô/ð4ð3ñ ˆBˆ|Ñ ð " ,Ô/ð4ð3ñ ˆBˆ|Ñ õ �"�[”/¥4Ñ(Ô(ðDÝ$Ý �M K°°K´Ð#AÑ BÔ BñDôDˆˆ;‰å� Ø".°°<Ô0@Ð!Añ#ô#ñ$ô$€Gð�"‚}€}Ý'Ý �K )¨R° ¬]Ð!;Ñ <Ô <ñ>ô>ˆˆ>ÑÐõ%Ð%>Ø13°I´Ø4;ð&(ð&(ñ)ô)ˆˆ>Ñð! Ô0×8Ò8¸¸eÑDÔD€BÐÑØ Ð!4Ô5×=Ò=¸cÀ4ÑHÔH€BÐÑØ€B€}ÑØ€BÐÑØ Að'ð'ˆØ �ˆ7ˆ7•z " Q¤%­Ñ.Ô.ˆ7Ø " =Ô 1°B°q´EÑ 9ˆBˆ}Ñ Ø �a‰KˆØ �ˆ7ˆ7•z " Q¤%­Ñ.Ô.ˆ7Ø%'Ð(:Ô%;¸bÀ¼eÀAÀaÀC¼jÑ%HØ'Ð(ñ&)Ø+-¨a¬5°°°¬9ñ&5à%Ð&ñ&'ˆBÐ!Ñ "øð�RÐÐØˆˆ6‰ ؈ˆ9‰ ؈ˆ9‰ Ø �FŠF�6‰NŒNð˜bŸfšf YÑ/Ô/ð°2·6²6¸,Ñ3GÔ3GðØˆˆ8‰ å Õ$ bÑ )Ô )€BØ#% f¤:…FÔ�R˜”ZÑ Ý�"�V”*�cÑ"Ô"ð"ؘ”j�\ˆˆ6‰ à �€|€|Ý”×%Ò%Ñ'Ô'ð %ð %ˆAØ�B�v”JˆˆØ�6” ×!Ò! !Ñ$Ô$Ð$øà9;¸LÔ9I…FÔ˜b œj¨:Ñ5Ñ6Ø€v„J×Ò�b˜”j :Ñ-Ñ.Ô.Ð.Ø! &œz…F„L��F”Ñà46°|Ô4DØ46°|Ô4DØ02°8´ Ø57¸ Ô5FØ13°I´ð &(ð&(€IÔ�r˜&”zÑ"õ  ˆL˜B˜}Ô-Ñ .Ñ/Ô/Ð/Ø €FrbN)+Ú__doc__r3rÚauxfuncsrrrrrr r r r r rrrrrrrrrrrrrrrrrrr r!r"ÚversionÚ f2py_versionr{rtrwr[rar\©rbr`úr”s‚ ðð ð ðÐÐÐÐÐðððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððÐÐÐÐÐàÔ"€ ð eð[ ðx AÐ @Ð @Ø Ø ððð GðSjðjÐðXØð ˜& $ð Ø  #ð Ø'0°"ð Ø6AÀ4ð ØIRÐTXð à# Sð à*6¸ð ð$ Sð ð+7¸ð ð& tð ð.7¸ð ð (¨ð ð -¨dð ð+¨Dð ð3CÀDð ð+¨Dð ð3CÀDð ðð � ðð(¨ðð;FÀðð �ðð˜rðð$,¨Rðð2>¸rððDMÈmðð �2ðð$ Rðð*9¸"ðð �2ðð$ Rðð*9¸"ðð �"ðð �=ð!ð"¨rØ.Ø.Ø*Ø/Ø B°bØ:Ø:Ø6Ø;ؘl¨E¨E°'©N¬N¸BÐ?ð7ððð:0à ÐFÐ Gð ðØ Hð Jð  ð&¨ °<Ð'@ÐBXÐYØ,Ø�%˜  E EÐ*:Ñ$;Ô$;¸U¸UÐCTÑ=UÔ=UÑVÔVð%ðð* Ð!fÐgØ;Ø3Ø!à ÐIÐ Jð ðØ Kð Mð  ð&¨ °<Ð'@ØÐ0ð2àØ"ð)ðð.ð ð ð ð ÐFÐ Gð ð ðð ð% ð4ð&¨ °<Ð'@ØÐ3°Yð@à#ðq9ð9ðt+Ø>Ø  ,Ð/ð1àØð ðð  yÐ1Ð1ðMG€ ðV�e˜JÐ(8Ñ9Ô9Ð;PÐQØ�e˜JÐ(8Ñ9Ô9Ð;PÐQØ"Ð$<Ð=Ø ˜5 Ð-=Ñ>Ô>ÐAdØBIÈ<ÐAXðAZð[à ˜5 Ð-=Ñ>Ô>ÐAdØBIÈ<ÐAXðAZð[à'Ð*PØ+0¨5°¸-Ñ+HÔ+HÈ,Ø+0¨5°Ð:JÑ+KÔ+KÐM]ð+_ð*`ðað�E˜*Ð&6Ñ7Ô7¸ÐFØ�u˜ZÐ)9Ñ:Ô:¸LÐIØððð" ˆE�(˜JÑ 'Ô 'Ð)>Ø ˆE�(˜E˜E *Ñ-Ô-Ñ .Ô .Ð0NØ Ð+Ø Ð+ð  ð ˆE�(˜JÑ 'Ô '¨Ø ˆE�(˜E˜E *Ñ-Ô-Ñ .Ô .Ð0EØ �]Ø �mð  ð ˆE�(˜JÑ 'Ô '¨Ø ˆE�(˜E˜E *Ñ-Ô-Ñ .Ô .° Ø �[Ø �ið  ð ��h ¨Ñ2Ô2°IÐ>àÐ!:Ð;Ø" FÐ+à"Ð$9Ð:ð1ðð6��zÑ"Ô"Ð$UÐVØ�%˜  LØ#˜ Ð$^Ñ_Ô_ñaôaàðð!Ð"MÐNØ#ðkðlà�u˜Y¨¨¨e¨e°IÑ.>Ô.>À Ñ(KÔ(KÑLÔLØTðVà�u˜Y¨¨¨e¨e°IÑ.>Ô.>ÀÀÀzÑ@RÔ@RÑ(SÔ(SÑTÔTØ]ð_à�u˜Y¨¨¨i¸Ñ(DÔ(DÑEÔEØhðjà�u˜Y¨¨¨i¸¸À Ñ9KÔ9KÑ(LÔ(LÑMÔMØzð|ð ðÐ!5Ð7MÐ NÐOؘ\Ð*ð,àð'ðð*#ð%ð ð&ð(ð ð !ðÐ4Ð5Ø Ð"9Ð:ؘYÐ'ð)ð�%˜Ð"2Ñ3Ô3Øððð!Ð"PÐQðSà Økðmðð Ð/ؘ\Ð*¨Jð8à�%˜ ,Ñ/Ô/ð ð ðð9ð ;ððð ð&ð( ð ð  ðÐ8Ð9Ø Ð"9Ð:ð<à�%˜Ð"2Ñ3Ô3Øð%ðð,IØ%ØØð ðð!Ð"UÐVØ!ð$ð�u˜ZÑ(Ô(ð+ðð&ð)ð4�%˜Ð!1°4°4¸ À^Ñ3TÔ3TÑUÔUØð9ðð<!Ð"MÐNðXð"Ð#3Ð4ð  ð!Ð"AÐBð!ð$˜^¨YÐ7Ð8Ø�%˜ Ñ.Ô.ð)ðð,"ØðððGg€ ðT €ðJðJðJð| ð| ð| ð| ð| rb