
    hR                        S r SSKr\R                  " \\\\\\\\\\\\\\\S9  SSKrSSKrSSKrSSKrSSK	r	SSK
r
SSKr\R                  S:  a  SSKJrJr  S rS rOSSKJr  S	S
KJr  SrSR,                  r\R0                  " S5      r\R4                  R6                  rS\-  r\R=                  S5      r " S S5      r S r! SSKJ"r#  / r&S r'S r(S r)S r*S r+S r,S r-S r.SDS jr/S  r0S! r1S" r2S# r3\(S$ 5       r4\(S% 5       r5\(S& 5       r6S' r7\(S( 5       r8\R0                  " S)5      Rr                  r:\(\;" \Rx                  " S*S+\5      5      4S, j5       r=S- r>\R0                  " S.5      R~                  r@SES/ jrAS0 rBSFS1 jrC SFS2 jrDS3 rES4 rFS5 rG\!SGS6 j5       rHS7 rIS8 rJSHS9 jrKSS:\R                  S4S; jrM " S< S=5      rNS> rOS? rPS@ rQSA rRSB rSSC rTg! \$ a    SSKJ%r%  \%" SS9r# GN"f = f)Iz@
Cython -- Things that don't belong anywhere else in particular
    N)ossysreioglobshutiltempfileupdate_wrapperpartialwrapscython_version_cache_function_function_caches_parse_file_version_match_file_encoding)   	   )r
   r   c                 >     [        X5      $ ! [         a    U s $ f = fN)r
   AttributeError)wrapperwrappeds     F/var/www/fran/franai/venv/lib/python3.13/site-packages/Cython/Utils.py_update_wrapperr   "   s&    	!'33 	N	s   
 c                     [        [        U S9$ )Nr   )r   r   r   s    r   r   r   (   s    88    r      )__version__)z__init__.pyz__init__.pycz__init__.pyxz__init__.pxdz
__{}_cachez^__(.+)_cache$z/* Generated by Cython %s */zus-asciic                   *    \ rS rSrSrS rS rS rSrg)"_TryFinallyGeneratorContextManager;   zW
Fast, bare minimum @contextmanager, only for try-finally, not for exception handling.
c                     Xl         g r   _gen)selfgens     r   __init__+_TryFinallyGeneratorContextManager.__init__?   s    	r   c                 ,    [        U R                  5      $ r   )nextr&   r'   s    r   	__enter__,_TryFinallyGeneratorContextManager.__enter__B       DIIr   c                 \     [        U R                  5        g ! [        [        4 a     g f = fr   )r,   r&   StopIterationGeneratorExit)r'   exc_typeexc_valexc_tbs       r   __exit__+_TryFinallyGeneratorContextManager.__exit__E   s)    	O}- 		s    ++r%   N)	__name__
__module____qualname____firstlineno____doc__r)   r.   r7   __static_attributes__ r   r   r"   r"   ;   s    r   r"   c                 0   ^  [        T 5      U 4S j5       nU$ )Nc                  &   > [        T" U 0 UD65      $ r   )r"   )argskwargsgen_funcs     r   make_gen,try_finally_contextmanager.<locals>.make_genM   s    1(D2KF2KLLr   r   )rD   rE   s   ` r   try_finally_contextmanagerrG   L   s     
8_M MOr   cache)	lru_cache)maxsizec                  >    [          H  n U R                  5         M     g r   )r   cache_clearrH   s    r   clear_function_cachesrN   ]   s    ! "r   c                 R    [        U 5      n[        R                  U5        Xl        U$ r   )r   r   appenduncached)fcfs     r   cached_functionrT   b   s$    		BBKIr   c              #      #    [        U 5       H1  n[        R                  U5      nUc  M  XR                  S5      4v   M3     g7f)zThe function iterates over the attributes of the object and,
if it finds the name of the cache, it returns it and the corresponding method name.
The method may not be present in the object.
Nr   )dir_CACHE_NAME_PATTERNmatchgroup)obj	attr_namerX   s      r   _find_cache_attributesr\   j   s<     
 X	#)))4[[^++ s
   %AAc                 f    [        U 5       H"  u  p[        X5      (       d  M  [        X5        M$     g)zZRemoves every cache found in the object,
if a corresponding method exists for that cache.
N)r\   hasattrdelattr)rZ   
cache_namemethod_names      r   clear_method_cachesrb   u   s)     $:##>
3$$C$ $?r   c                 B   ^ ^ [        T R                  5      mUU 4S jnU$ )Nc                 r   > [        U TS 5      nUc  0 n[        U TU5        X;   a  X!   $ T" U /UQ76 =o2U'   U$ r   )getattrsetattr)r'   rB   rI   resr`   rR   s       r   r   cached_method.<locals>.wrapper   sM    j$/=ED*e,=;dNTN*Dk
r   )_build_cache_namer9   )rR   r   r`   s   ` @r   cached_methodrj      s    "1::.J Nr   c                 L    [         R                  R                  U 5      u  p#X!-   $ r   )r   pathsplitext)rl   newsufbase_s       r   replace_suffixrq      s     ggt$GD=r   c                     [         R                  R                  U 5      (       a  [         R                  " U 5        [	        U SSS9$ )NwUTF-8)encoding)r   rl   existsunlinkopenrl   s    r   open_new_filerz      s3    	ww~~d 			$ cG,,r   c                    [        U SSS9(       d  g  [        U 5      nUR                  S5        UR                  5         U(       a0  [        R
                  " XR                  UR                  S-
  45        g g ! [         a     g f = f)NTF)allow_failedif_not_foundzN#error Do not use this file, it is the result of a failed Cython compilation.
r   )	is_cython_generated_filerz   writecloser   utimest_atimest_mtimeOSError)rl   strR   s      r   castrate_filer      sv    
 $Dt%P	9$ 	
]	_		HHTKKQ78   s   A7 7
BBTc                 d   SnS n[         R                  R                  U 5      (       a0   [        U S5       nUR	                  [        U5      5      nS S S 5        Uc  U$ UR                  S5      =(       d    U=(       a    XC:H  =(       d    U(       + $ ! , (       d  f       NF= f! [         a     NUf = f)NsM   #error Do not use this file, it is the result of a failed Cython compilation.rbs   /* Generated by Cython )r   rl   rv   rx   readlenr   
startswith)rl   r|   r}   failure_markerfile_contentrR   s         r   r~   r~      s    eNL	ww~~d	dD!Q vvc.&9: "
  	 :; 			8,8	  "! 		s.   B" BB" 
BB" B" "
B/.B/c                 4   Sn[         R                  R                  U 5      (       a4   [        U S5       nUR	                  [        [        5      5      nS S S 5        U=(       a    UR                  [        5      $ ! , (       d  f       N,= f! [         a     N;f = f)Nr   r   )	r   rl   rv   rx   r   r   GENERATED_BY_MARKER_BYTESr   r   )rl   r   rR   s      r   file_generated_by_this_cythonr      sw    L	ww~~d	dD!Q vvc*C&DE " NL334MNN	 "! 		s.   B
 A9B
 9
BB
 B
 

BBc                      [        U 5      nX!:  $ r   )modification_time)rl   timeftimes      r   file_newer_thanr      s    d#E<r   c                      [         R                  " U 5        g ! [         a(    [         R                  R	                  U 5      (       d  e  g f = fr   )r   makedirsr   rl   isdirry   s    r   safe_makedirsr      s=    
D ww}}T"" #s    /A
Ac                    [         R                  R                  U[         R                  R                  U 5      5      n [	        U5      n[        X5      (       d  g [        R                  " X5        g! [         a    [        U5         N.f = f)z
Copy file sourcefile to directory destdir (creating it if needed),
preserving metadata. If the destination file exists and is not
older than the source file, the copying is skipped.
N)
r   rl   joinbasenamer   r   r   r   r   copy2)
sourcefiledestdirdestfiledesttimes       r   copy_file_to_dir_if_newerr      sp     ww||GRWW%5%5j%ABH$X. z44 5
LL&  gs   A3 3B
Bc                     [         R                  R                  U 5      nX:X  a  U$ [        U5      (       a  [	        U5      $ U$ r   )r   rl   dirnameis_package_dirfind_root_package_dir)	file_pathrV   s     r   r   r      s:    
''//)
$C
			$S))
r   c                     SnU H8  n[         R                  R                  X5      n [        U 5      nU(       d  M6  SnM:     X4$ )NTF)r   rl   r   contains_init)dir_pathpackage_names	namespacer   has_inits        r   check_package_dirr     sB    I 77<<2 *8I	 !
 r   c                     [          H4  n[        R                  R                  X5      n[	        U5      (       d  M4    g   g Nr   )PACKAGE_FILESr   rl   r   path_exists)r   filenamerl   s      r   r   r     s,    !ww||H/t "r   c                 &    [        U 5      (       a  gg r   )r   )r   s    r   r   r     s    X r   c                 v   [         R                  R                  U 5      (       a  g [        n[	        USS 5      nU(       aY  [         R                  R                  U 5      nUR                  U5      (       a$  U[        U5      S-   S  n UR                  U5        gg! [         a     gf = f! [         a     gf = f)NTarchiver   F)r   rl   rv   
__loader__re   normpathr   r   get_datar   	NameError)rl   loaderarchive_pathr   arcnames        r   r   r     s     
ww~~d vy$7ww''-H""<00"3|#4Q#6#78!OOG,
 	  ! ! s0   A B+ B 
B(%B+ 'B((B+ +
B87B8z .*[.]cython-([0-9]+)[.][^./\\]+$z^([0-9]+)[.]([0-9]+).*z\1\2c                    U(       a  USS S:X  d   e[         R                  R                  X5      n[        R                  " [        R                  " U5      S-   U-   5      nXB-   n[         R                  R                  U5      (       d  SnSU4nU H>  n[        U5      nU(       d  M  [        US   5      n	US   U	s=:  a  U::  d  M7  O  M;  X4nM@     US   $ )a'  
Search a directory for versioned pxd files, e.g. "lib.cython-30.pxd" for a Cython 3.0+ version.

@param directory: the directory to search
@param filename: the filename without suffix
@param suffix: the filename extension including the dot, e.g. ".pxd"
@return: the file path if found, or None
Nr   .z	.cython-*r   )r   rl   r   r   escaperv   r   int)
	directoryr   suffix_current_versionpath_prefixmatching_filesrl   
best_matchversionsint_versions
             r   find_versioned_filer   6  s     s***'',,y3KYYt{{;7+ENOND77>>$dJ&t,8hqk*K!}{>.>>>)0
  a=r   c                     [        U [        5      (       aA   [        R                  " 5       nUc  [        R                  " 5       nU R                  U5      n U $ U $ ! [         a     U $ f = fr   )
isinstancebytesr   getfilesystemencodinggetdefaultencodingdecodeUnicodeDecodeError)r   filename_encodings     r   decode_filenamer   V  sk    (E""	 # 9 9 ; ($'$:$:$<!'89H O8O " 	O	s   >A 
A'&A's   (\w*coding)[:=]\s*([-\w.]+)c                    SnSn[        U5      S:  a?  U R                  S5      nX4-  nUR                  S5      nU(       d  O[        U5      S:  a  M?  [        US   5      nU(       a5  UR	                  S5      S:w  a   UR	                  S	5      R                  S
5      $ [        U5      S:  a5  [        US   5      nU(       a   UR	                  S	5      R                  S
5      $ U$ )Nr?   r   r   i     
r   r   s   c_string_encoding   z	iso8859-1)r   r   splitr   rY   r   )rR   defaultlinesstartdatams         r   detect_opened_file_encodingr   g  s     EE
e*q.vvc{E" e*q. 	U1X&AQWWQZ//wwqz  --	Ua q*771:$$[11Nr   c                 R    U R                  S5      S:w  a  U R                  S5        gg)z
Read past a BOM at the beginning of a source file.
This could be added to the scanner, but it's *substantially* easier
to keep it at this level.
r   u   ﻿r   N)r   seek)rR   s    r   skip_bomr   ~  s$     	vvayH	q	 r   c                    S n Uc>  [        U S5      n[        U5      nUR                  S5        [        R                  " XAUS9nO[        XUS9n Uc  [        U 5      e[!        U5        U$ ! [
         ar    [        R                  R                  U 5      (       a  e  [        nU R                  UR                  5      (       a  [        XPX5      n N! [        [        4 a      Nf = ff = f)Nr   r   ru   errors)rx   r   r   r   TextIOWrapperr   r   rl   rv   r   r   r   open_source_from_loaderr   r   FileNotFoundErrorr   )source_filenameru   error_handlingstreamrR   r   s         r   open_source_filer     s    F_d+A215HFF1I%%a>RF/^TF ~00VM!  77>>/**	F))&..990. >* 		s0   A A+ 
A+ +/C'2CC#C'"C##C'c                     [         R                  R                  U5      nU[        U R                  5      S-   S  nU R                  U5      n[        R                  " [        R                  " U5      UUS9$ )Nr   r   )	r   rl   r   r   r   r   r   r   BytesIO)r   r   ru   r   nrmpathr   r   s          r   r   r     se     gg/Gc&..)!+,-G??7#DBJJt,%-#13 3r   c                 ^   SnU S S S:X  a  SnU SS  n [        U 5      S:  a  [        U S5      n OtU S   S:X  a_  U S   nUS;   a  [        U 5      n [        U SS  S	5      n OEUS
;   a  [        U SS  S5      n O/US;   a  [        U SS  S5      n O[        U S5      n O[        U S5      n U(       a  U * $ U $ )NFr   -Tr   r   0xX   oO   bB)r   r   strip_py2_long_suffix)valueis_negliteral_types      r   str_to_numberr     s     FRayCab	
5zA~E1	qSQx4)%0Eab	2&ET!ab	1%ET!ab	1%E qMEE1E6&&r   c                 "    U S   S;   a  U SS $ U $ )zr
Python 2 likes to append 'L' to stringified numbers
which in then can't process when converting them to numbers.
r   lLNr?   )	value_strs    r   r   r     s"    
 }"~r   c                     [        U [        5      (       a  [        U 5      n SU s=:*  =(       a
    S:  (       + $ s  (       + $ )Ni   l        )r   strr   )r   s    r   long_literalr    s8    %e$&&&&&&&&r   c              #     ^^^#    [         R                  " U 5      n [        R                  " SS9 mS/4U4S jjm[         R                  " TR                  5       U 5        UU4S jnUv   [         R                  " X 5        T" 5         S S S 5        [         R                  " U5        g ! , (       d  f       N%= f! [         R                  " U5        f = f7f)Nza+b)moder   c                 x   > TR                   (       d$  TR                  S5        TR                  5       U S'   U S   $ )Nr   )closedr   r   )_output	temp_files    r   read_output captured_fd.<locals>.read_output  s2     ''NN1%!*!1GAJqz!r   c                  F   > T" 5       n T(       a  U R                  T5      $ U $ r   )r   )resultru   r  s    r   
get_outputcaptured_fd.<locals>.get_output  s     $2:v}}X.FFr   )r   dupr	   TemporaryFiledup2filenor   )r   ru   orig_streamr  r  r  s    `  @@r   captured_fdr    s     &&.K##/9%(E " GGI$$&/G GGK(M 0" 	# 0/" 	s4   CB9 AB(	B9 C(
B62B9 9CCc                     [         R                  " 5       /n [         R                  [         R                  [         R                  [         R
                  4 H-  n[        USS 5      nUc  M  X ;  d  M  U R                  U5        M/     U $ )Nru   )r   r   stdoutstdin
__stdout__	__stdin__re   rP   )
candidatesr   ru   s      r   get_encoding_candidatesr    sf    ((*+J::syy#..#--H6:t4H$>h'	 I
 r   c                     U R                  5       nU(       d  g [        5        H  n UR                  U5      s  $    UR                  S5      $ ! [         a     M7  f = f)Nzlatin-1)stripr  r   r   )capturedcaptured_bytesru   s      r   prepare_capturedr    s^    ^^%N+-	!((22 .   ++ " 		s   A
AAc                 |    [        U 5      n U (       a*  U(       a  UR                  U5        UR                  U 5        g g r   )r  r   )r  outputheader_lines      r   print_capturedr#    s/    )HLL%X r   r   c                     U(       a  UR                  U5        UR                  5         UR                  nUR                  U 5        U(       a  UR                  U5        U(       a  UR                  5         g g r   )r   flushbuffer)sheader_textendfiler%  outs         r   print_bytesr,    sM    

;JJL
++CIIaL
		#		 r   c                   :    \ rS rSrS	S jrS rS rS rS r\r	Sr
g)

OrderedSeti"  c                 R    / U l         [        5       U l        U R                  U5        g r   )_listset_setupdate)r'   elementss     r   r)   OrderedSet.__init__#  s    
E	Hr   c                 ,    [        U R                  5      $ r   )iterr0  r-   s    r   __iter__OrderedSet.__iter__(  s    DJJr   c                 8    U H  nU R                  U5        M     g r   )add)r'   r4  es      r   r3  OrderedSet.update+  s    AHHQK r   c                     XR                   ;  a7  U R                  R                  U5        U R                   R                  U5        g g r   )r2  r0  rP   r;  )r'   r<  s     r   r;  OrderedSet.add/  s3    IIJJa IIMM! r   c                 ,    [        U R                  5      $ r   )boolr2  r-   s    r   __bool__OrderedSet.__bool__4  r0   r   )r0  r2  N)r?   )r9   r:   r;   r<   r)   r8  r3  r;  rB  __nonzero__r>   r?   r   r   r.  r.  "  s"    
 
 Kr   r.  c                    ^  U 4S jnU$ )z6Class decorator for creating a class with a metaclass.c                 H  > U R                   R                  5       nUR                  S5      nUb2  [        U[        5      (       a  U/nU H  nUR                  U5        M     UR                  SS 5        UR                  SS 5        T" U R                  U R                  U5      $ )N	__slots____dict____weakref__)rH  copygetr   r   popr9   	__bases__)cls	orig_varsslots	slots_var	metaclasss       r   r   add_metaclass.<locals>.wrapper>  s    LL%%'	k*%%%"	i( #j$'mT*s}}i@@r   r?   )rR  r   s   ` r   add_metaclassrT  <  s    
A Nr   c                 R    U S:X  d  U R                  S5      (       a  [        S5      eg )Ncythonzcython.z;cython is a special module, cannot be used as a module name)r   
ValueError)full_module_names    r   $raise_error_if_module_name_forbiddenrY  L  s-    8#'7'B'B9'M'MVWW (Nr   c                 2   / nSn[         R                  " SU 5       HH  nUS;   a  SSSS.U   nUSS/-   SS	 nM  US
;   a    O&US:w  d  M.  UR                  [        U5      5        MJ     US/S	-  -   SS nUS	==   U-  ss'   SnU H  nUS-  U-   nM     SU-  $ )z
Parse and translate public version identifier like '4.3a1' into the readable hex representation '0x040300A1' (like PY_VERSION_HEX).

SEE: https://peps.python.org/pep-0440/#public-version-identifiers
   z(\D+))abrc         r   Nr   )z.devz.prez.postr      r   z0x%08X)r   r   rP   r   )version_stringdigitsrelease_statussegment
hexversiondigits         r   build_hex_versionri  R  s     FN88Hn5&&#'d$?HN1vor*F11^MM#g,' 6 sQw#F
1II J Ao.
  j  r   c                    [         R                  R                  U5      n[         R                  " 5       nUR	                  [         R
                  5      (       d  U[         R
                  -  n/ nU H4  n [         R                  R                  Xd5      nUR                  U5        M6     [         R                  R                  X5      S-   nUSR                  U5      S-   -  n[        U S-   S5       n	U	R                  U5        S S S 5        g ! [         a"    [         R                  R                  U5      n Nf = f! , (       d  f       g = f)Nz: \
  z \
  
z.deprs   )r   rl   r   getcwdendswithseprelpathrW  abspathrP   r   rx   r   )
targetsourcedependenciessrc_base_dircwdpathsfnamenewpathdeplineoutfiles
             r   write_depfiler{  p  s    77??6*L
))+C  ((E	-ggooe1G
 	W  ggoof*Z7Gy~~e$t++G	fVmS	!Wg 
"	!  	-ggooe,G	- 
"	!s   4D0D:)D76D7:
Ec                  ^   [        S[        -  5        [        R                  R	                  5       (       d"  [        R
                  [        R                  :X  a  g [        R                  " S5      [        R                  " S5      :X  a  g [        R                  R                  S[        -  5        g )NzCython version %sr   r   zCython version %s
)	printr   r   stderrisattyr  r   fstatr   r?   r   r   print_versionr    sl    	

./ zzcjjCJJ6	xx{bhhqk! 	JJ*^;<r   c                    U R                  5       R                  S5      nSnSU;   d  SU;   a'  UR                  SU;   a  SOSS5      u  p[        U5      nSU;   a  UR	                  S5      nUSU XS-   S -   nO[        U5      nX#-  nUSU SU[        U5      -
  -  -   S-   SU* -  -   XS -   R                  S5      nUS:w  a  U$ S$ )	z
Generate a 'normalised', simple digits string representation of a float value
to allow string comparisons.  Examples: '.123', '123.456', '123.'
r   r   Er<  r   r   Nz.0)lowerlstripr   r   indexr   rstrip)	float_str	str_valueexpnum_int_digitsr  s        r   normalise_float_reprr    s    
 !((-I
C
i3)+"y0@c1M	#h
i"-o~.A;M;N1OO	YC 	$3
s9~%
&	'
	 *	 D/		
 fSk  s]6,,r   )FT)rt   )NN)r   Nr   )Ur=   rV  declareobjectlistr   r   r   r   r   r   r	   version_info	functoolsr
   r   r   r    r    r   r   formatri   compilerW   rl   getmtimer   GENERATED_BY_MARKERencoder   r"   rG   rI   r   ImportErrorrJ   r   rN   rT   r\   rb   rj   rq   rz   r   r~   r   r   r   r   r   r   r   r   r   findallr   r   subr   r   searchr   r   r   r   r   r   r   r  r  r  r  r#  r  r,  r.  rT  rY  ri  r{  r  r  r?   r   r   <module>r     s  
  6ffVV\6Tvdj 
 
 	 	    f 29   ,O '' jj!23 GG$$ 4~E /66zB  ".2  
,% 
-9(0O
'&      
  0 jj!DEMM  ),RVV4MwXf-g)h >	 zz"ABII .B ;?3':'  .
,  $SZZt 	 4 X!<.
=-  .#-O.s   G G/.G/