
    z%i
                        	 d  Z dZdZdZdad Zd Z G d de      Z G d d      Z	i Z
da G d d	      Z G d
 de      Zd Z G d d      Z G d d      Z G d d      Zd Zd Zd ZdddZd Zd Zd Zd Z G d d      Zdddd ZdAd!Zd"d#d$Zd% Zd& Z d' Z!d( Z"d) Z#d* Z$ G d+ d,      Z% G d- d.      Z& G d/ d0      Z'd1 Z(dBd2Z)d3 Z*d4Z+e+d5z   Z,d6 Z- e.       Z/d7 Z0dCd8Z1d"d9d:Z2d; Z3dDd<Z4d= Z5d> Z6d? Z7d@ Z8y)Ec                 d    	 | j                   S # t        $ r t        |       j                   cY S w xY wN)__qualname__AttributeErrortype)objs    H/home/uftp/.pyenv/versions/3.12.0/lib/python3.12/importlib/_bootstrap.py_object_namer	      s2    & &Cy%%%&s    //Nc           	          	 dD ]&  }t        ||      st        | |t        ||             ( | j                  j	                  |j                         y )N)
__module____name__r   __doc__)hasattrsetattrgetattr__dict__update)newoldreplaces      r   _wrapr   (   sI    9H 93 C'#w"789 LL%    c                 ,     t        t              |       S r   )r   sysnames    r   _new_moduler   0   s    49T?r   c                       e Zd Zy)_ListNr   r   r    r   r   r   r   7       r   r   c                   .    e Zd Zd Zd Zd ZddZddZy)_WeakValueDictionaryc                     t         j                  |        G fddt         j                        }|| _        | j                          y )Nc                   B     e Zd ZdZ fdZ fdZefd       Z xZS )/_WeakValueDictionary.__init__.<locals>.KeyedRef)keyc                 L    t         |   | || j                        }||_        |S r   )super__new__remover'   )r   obr'   self	__class__s       r   r*   z7_WeakValueDictionary.__init__.<locals>.KeyedRef.__new__J   s%    wtR=r   c                 :    t         |   || j                         y r   )r)   __init__r+   )r-   r,   r'   r.   s      r   r0   z8_WeakValueDictionary.__init__.<locals>.KeyedRef.__init__O   s     T[[1r   c                             }|]|j                   r&|j                  j                  | j                         y t        j                  |j                  | j                         y y r   )
_iterating_pending_removalsappendr'   _weakref_remove_dead_weakrefdata)wrr-   self_weakrefs     r   r+   z6_WeakValueDictionary.__init__.<locals>.KeyedRef.removeR   sN     $~#..55bff= 55diiH	 $r   )	r   r   r   	__slots__r*   r0   staticmethodr+   __classcell__)r.   r9   s   @r   KeyedRefr&   F   s(    I
2 I Ir   r=   )r5   ref	_KeyedRefclear)r-   r=   r9   s     @r   r0   z_WeakValueDictionary.__init__@   s5    ||D)
	Ix|| 	I. "

r   c                 >    g | _         t               | _        i | _        y r   )r3   setr2   r7   r-   s    r   r@   z_WeakValueDictionary.clear`   s    !#%	r   c                     | j                   j                  }| j                  }	 	  |       }t        j                  ||       # t        $ r Y y w xY wr   )r3   popr7   
IndexErrorr5   r6   )r-   rE   dr'   s       r   _commit_removalsz%_WeakValueDictionary._commit_removalse   sV    $$((IIe ))!S1   s   A 	AANc                     | j                   r| j                          	 | j                  |   } |       x}|S |S # t        $ r |cY S w xY wr   )r3   rH   r7   KeyError)r-   r'   defaultr8   os        r   getz_WeakValueDictionary.geto   sW    !!!!#	3B T	"  	N	s   : AAc                     	  | j                   |          }|=| j                  r| j                          | j	                  ||      | j                   |<   |S |S # t        $ r d }Y Nw xY wr   )r7   rJ   r3   rH   r?   )r-   r'   rK   rL   s       r   
setdefaultz_WeakValueDictionary.setdefault|   sm    			# A 9%%%%'!^^GS9DIIcNNH  	A	s   A A%$A%r   )r   r   r   r0   r@   rH   rM   rO   r    r   r   r#   r#   >   s    @
2r   r#   c                        e Zd Z	 d Zd Zd Zy)_BlockingOnManagerc                      || _         || _        y r   )	thread_idlock)r-   rS   rT   s      r   r0   z_BlockingOnManager.__init__   s    "	r   c                     	 t         j                  | j                  t                     | _        | j                  j                  | j                         y r   )_blocking_onrO   rS   r   
blocked_onr4   rT   rC   s    r   	__enter__z_BlockingOnManager.__enter__   s7    Q '11$..%'Jtyy)r   c                 P    	 | j                   j                  | j                         y r   )rW   r+   rT   r-   argskwargss      r   __exit__z_BlockingOnManager.__exit__   s    Dtyy)r   Nr   r   r   r0   rX   r]   r    r   r   rQ   rQ      s    E	**r   rQ   c                       e Zd Zy)_DeadlockErrorNr   r    r   r   r`   r`      r!   r   r`   c                    	 | |v ry|D ]W  }|j                  |      x}s||v r y|j                  |       |D cg c]  }|j                   }}t        | |||      sW y yc c}w )NTF)seen_idscandidate_idsblocking_on)rM   addowner_has_deadlocked)	target_idrb   rc   rd   tidcandidate_blocking_onrT   edgess           r   rg   rg      s     M!   )4)==%=H_
 S )>>>>9xu')!$  ?s   A$c                   ,    e Zd Z	 d Zd Zd Zd Zd Zy)_ModuleLockc                     t         j                         | _        t         j                         | _        || _        d | _        g | _        g | _        y r   )	_threadRLockrT   allocate_lockwakeupr   rf   countwaitersr-   r   s     r   r0   z_ModuleLock.__init__   sE    * MMO	++- 	 
 
 r   c                 r    t        t        j                         t               | j                  gt
              S )N)rh   rb   rc   rd   )rg   ro   	get_identrB   rf   rV   rC   s    r   has_deadlockz_ModuleLock.has_deadlock   s0    
 '')U  ::,$	
 		
r   c                 X   	 t         j                         }t        ||       5  	 | j                  5  | j                  g k(  s| j
                  |k(  r4|| _        | j                  j                  d       	 d d d        d d d        y| j                         rt        d|       | j                  j                  d      r| j                  j                  d        d d d        | j                  j                          | j                  j                          # 1 sw Y   >xY w# 1 sw Y   y xY w)NTzdeadlock detected by F)ro   rw   rQ   rT   rs   rf   r4   rx   r`   rr   acquirert   releaser-   ri   s     r   rz   z_ModuleLock.acquire0  s
   	
 !T* ;	& YY ,2zzR'4::+< &)


))$/#,2;	& ;	&D ((*,/DTH-MNN {{**51++D1Y,2b ##%
 ##%u ,2 ,2;	& ;	&s0   D AD2D AD=D D	D  D)c                    t         j                         }| j                  5  | j                  |k7  rt	        d      | j
                  j                          t        | j
                        sSd | _        t        | j                        dkD  r4| j                  j                          | j                  j                          d d d        y # 1 sw Y   y xY w)Ncannot release un-acquired lock    )ro   rw   rT   rf   RuntimeErrorrs   rE   lenrt   rr   r{   r|   s     r   r{   z_ModuleLock.releaset  s    !YY 		*zzS "#DEEJJNNtzz?!
t||$q(LL$$&KK'')		* 		* 		*s   BCCc                 8    d| j                   dt        |        S )Nz_ModuleLock() at r   idrC   s    r   __repr__z_ModuleLock.__repr__  s    dii]%4z::r   N)r   r   r   r0   rx   rz   r{   r   r    r   r   rm   rm      s#    
6p
 B&H*;r   rm   c                   &    e Zd Z	 d Zd Zd Zd Zy)_DummyModuleLockc                      || _         d| _        y Nr   )r   rs   ru   s     r   r0   z_DummyModuleLock.__init__  s    	
r   c                 .    | xj                   dz  c_         y)N   T)rs   rC   s    r   rz   z_DummyModuleLock.acquire  s    

a
r   c                 b    | j                   dk(  rt        d      | xj                   dz  c_         y )Nr   r~   r   )rs   r   rC   s    r   r{   z_DummyModuleLock.release  s&    ::?@AA

a
r   c                 8    d| j                   dt        |        S )Nz_DummyModuleLock(r   r   rC   s    r   r   z_DummyModuleLock.__repr__  s    "499-uRXJ??r   N)r   r   r   r0   rz   r{   r   r    r   r   r   r     s     
@r   r   c                       e Zd Zd Zd Zd Zy)_ModuleLockManagerc                      || _         d | _        y r   )_name_lockru   s     r   r0   z_ModuleLockManager.__init__  s    

r   c                 l    t        | j                        | _        | j                  j                          y r   )_get_module_lockr   r   rz   rC   s    r   rX   z_ModuleLockManager.__enter__  s"    %djj1


r   c                 8    | j                   j                          y r   )r   r{   rZ   s      r   r]   z_ModuleLockManager.__exit__  s    

r   Nr^   r    r   r   r   r     s    r   r   c                 L   	 t         j                          	 	 t        |           }|?t        t        |       }nt        |       }| fd}t        j                  ||      t        | <   t         j                          |S # t        $ r d }Y dw xY w# t         j                          w xY w)Nc                     t         j                          	 t        j                  |      | u rt        |= t         j	                          y # t         j	                          w xY wr   )_impacquire_lock_module_locksrM   release_lock)r>   r   s     r   cbz_get_module_lock.<locals>.cb  sI    !!#( %((.#5)$/%%'D%%'s   A	 	A)
r   r   r   rJ   ro   r   rm   r5   r>   r   )r   rT   r   s      r   r   r     s    
 		 &(D <'-"4(! 	( #+,,tR"8M$K1  	D	, 	s)   A< AB <B
B 	B

B B#c                 |    	 t        |       }	 |j                          |j                          y # t        $ r Y y w xY wr   )r   rz   r{   r`   )r   rT   s     r   _lock_unlock_moduler     sB    
 D!D 	   	s   / 	;;c                     	  | |i |S r   r    )fr[   kwdss      r   _call_with_frames_removedr     s     ddr   r   )	verbosityc                    	 t         j                  j                  |k\  r?| j                  d      sd| z   } t	         | j
                  | t         j                         y y )N)#zimport z# )file)r   flagsverbose
startswithprintformatstderr)messager   r[   s      r   _verbose_messager     sM    G
yyI%!!"23WnGngnnd##**5 &r   c                 ,     	  fd}t        |        |S )Nc                 Z    |t         j                  vrt        |d|       | |      S Nz is not a built-in moduler   )r   builtin_module_namesImportErrorr-   fullnamefxns     r   _requires_builtin_wrapperz4_requires_builtin.<locals>._requires_builtin_wrapper  s8    3333,EF#+- -4""r   r   )r   r   s   ` r   _requires_builtinr     s    ;#
 

#S)$$r   c                 ,     	  fd}t        |        |S )Nc                 `    t         j                  |      st        |d|       | |      S )Nz is not a frozen moduler   )r   	is_frozenr   r   s     r   _requires_frozen_wrapperz2_requires_frozen.<locals>._requires_frozen_wrapper   s6    ~~h',CD#+- -4""r   r   )r   r   s   ` r   _requires_frozenr     s    9#
 

"C(##r   c                     	 d}t         j                  |t               t        ||       }|t        j
                  v r2t        j
                  |   }t        ||       t        j
                  |   S t        |      S )Nzgthe load_module() method is deprecated and slated for removal in Python 3.12; use exec_module() instead)	_warningswarnDeprecationWarningspec_from_loaderr   modules_exec_load)r-   r   msgspecmodules        r   _load_module_shimr   
  sf    
3CNN3*+Hd+D3;;X&dF{{8$$T{r   c                     	 t        | dd       }t        | dd       x}rt        |      S 	 | j                  }	 | j                  }d|d|dS # t        $ r d}Y #w xY w# t        $ r |d|dcY S d|d|dcY S w xY w)	N
__loader____spec__?<module  from > ()>)r   _module_repr_from_specr   r   __file__)r   loaderr   r   filenames        r   _module_reprr     s    6V\40Fvz400t0%d++6?? $|155    5>dXQ''dXRz44	5s(   A A AAA<0	A<;A<c                       e Zd Z	 dddddZd Zd Zed        Zej                  d        Zed        Z	ed	        Z
e
j                  d
        Z
y)
ModuleSpecN)originloader_state
is_packagec                |    || _         || _        || _        || _        |rg nd | _        g | _        d| _        d | _        y NF)r   r   r   r   submodule_search_locations_uninitialized_submodules_set_fileattr_cached)r-   r   r   r   r   r   s         r   r0   zModuleSpec.__init__W  sD    	(0:"')+& #r   c                 <   d| j                   d| j                  g}| j                  |j                  d| j                         | j                  |j                  d| j                          | j
                  j                   ddj                  |       dS )Nzname=zloader=zorigin=zsubmodule_search_locations=(z, ))r   r   r   r4   r   r.   r   join)r-   r[   s     r   r   zModuleSpec.__repr__d  s    		}%'@A;;"KK'$++12**6KK5d6U6U5VWX..))*!DIIdO+<A>>r   c                 r   | j                   }	 | j                  |j                  k(  xr{ | j                  |j                  k(  xr` | j                  |j                  k(  xrE ||j                   k(  xr4 | j                  |j                  k(  xr | j
                  |j
                  k(  S # t        $ r	 t        cY S w xY wr   )r   r   r   r   cachedhas_locationr   NotImplemented)r-   othersmsls      r   __eq__zModuleSpec.__eq__l  s    ..	"II+ <KK5<</<KK5<</< E<<<< KK5<</	<
 %%););;=  	"!!	"s   BB$ $B65B6c                     | j                   H| j                  <| j                  r0t        t        t        j                  | j                        | _         | j                   S r   )r   r   r   _bootstrap_externalNotImplementedError_get_cachedrC   s    r   r   zModuleSpec.cachedx  sJ    <<{{&4+=+=&.--2>>t{{K||r   c                     || _         y r   )r   )r-   r   s     r   r   zModuleSpec.cached  s	    r   c                 p    	 | j                   | j                  j                  d      d   S | j                  S )N.r   )r   r   
rpartitionrC   s    r   parentzModuleSpec.parent  s5    .**299'',Q//99r   c                     | j                   S r   )r   rC   s    r   r   zModuleSpec.has_location  s    !!!r   c                 $    t        |      | _        y r   )boolr   )r-   values     r   r   zModuleSpec.has_location  s    !%[r   )r   r   r   r0   r   r   propertyr   setterr   r   r    r   r   r   r   2  s    "H 04$ ?
"   ]]    " " ) )r   r   r   r   c                6   	 |t        |dd       }|sEt        |d      r9t        t        t        j                  }|
 || |      S |rg nd } || ||      S |!t        |d      r	 |j                  |       }nd}t        | |||      S # t        $ r d }Y w xY w)N_ORIGINget_filename)r   )r   r   r   Fr   )r   r   r   r   spec_from_file_locationr   r   r   )r   r   r   r   r  searchs         r   r   r     s    ?~D1gfn5&%%"5"M"M*4??!t&tFBHJ 	J 6<("#..t4

 JdF6jII  "!
"s   'B
 
BBc                    	 | j                   }||S | j                  }|	 | j                  }	 | j                  }||t        |dd       }|s||}	 | j                  }	 t        | j                        }t        |||      }|dn||k(  |_
        ||_        ||_        |S # t        $ r Y w xY w# t        $ r Y w xY w# t        $ r d }Y w xY w# t        $ r d }Y ~w xY w# t        $ r d }Y yw xY w)Nr  r   F)r   r   r   r   r   r   
__cached__list__path__r   r   r   r   )r   r   r   r   r   locationr   r   s           r   _spec_from_moduler    s5    K??D~	&&F?? ~VY5F(.F""*%)&//%:" dF62D"*"289KDDK&@D#KG    		
      *%)"*sW   B  B/ B> C C   	B,+B,/	B;:B;>CCCC C.-C.Foverridec                |   |st        |dd       	 | j                  |_        |st        |dd       n| j                  }|X| j
                  Lt        t        t        j                  }|j                  |      }| j
                  |_
        || _        d |_        	 ||_        |st        |dd       	 | j                  |_        	 | |_        |st        |dd       | j
                  	 | j
                  |_        | j"                  rP|st        |dd       	 | j$                  |_        |st        |dd        | j&                  	 | j&                  |_        |S |S # t        $ r Y =w xY w# t        $ r Y w xY w# t        $ r Y w xY w# t        $ r Y w xY w# t        $ r Y w xY w# t        $ r Y w xY w# t        $ r Y |S w xY w)Nr   r   __package__r	  r   r  )r   r   r   r   r   r   r   r   NamespaceLoaderr*   _pathr   r   r   r  r   r	  r   r   r   r  )r   r   r  r   r  s        r   _init_module_attrsr    s    	GFJ5=	"iiFO 76<6>>..:&.--"5"E"E(00A#>>$ #'	 &F 76=$7?	!%F 76:t4<**6"&"A"A wvz48@"&++ wv|T:B{{&(,F% M6M  		8  		  		
   "  "  & Ms}   E E# /E2 F $F F >F. 	E E #	E/.E/2	E>=E>	FF	FF	F+*F+.	F;:F;c                     	 d }t        | j                  d      r| j                  j                  |       }n!t        | j                  d      rt        d      |t	        | j
                        }t        | |       |S )Ncreate_moduleexec_modulezBloaders that define exec_module() must also define create_module())r   r   r  r   r   r   r  r   r   s     r   module_from_specr  &  sp    5Ft{{O, **40	m	, = > 	>~TYY'tV$Mr   c                 8   	 | j                   dn| j                   }| j                  8| j                  d|dS d|dt        | j                  j                         dS | j
                  rd|d| j                  dS d| j                   d| j                   dS )Nr   r   r   z (namespace) from r   r   r   )r   r   r   r  r  r   )r   r   s     r   r   r   7  s    0))#3D{{;;dXQ''dX%7T[[=N=N8O7PPQRRdXVDKK?!<<dii]"T[[M<<r   c                    	 | j                   }t        |      5  t        j                  j	                  |      |urd|d}t        ||      	 | j                  2| j                  t        d| j                         t        | |d       nt        | |d       t        | j                  d      sNt        | j                         d}t        j                  |t               | j                  j                  |       n| j                  j                  |       t        j                  j!                  | j                         }|t        j                  | j                   <   	 d d d        |S # t        j                  j!                  | j                         }|t        j                  | j                   <   w xY w# 1 sw Y   |S xY w)	Nzmodule z not in sys.modulesr   missing loaderTr  r  7.exec_module() not found; falling back to load_module())r   r   r   r   rM   r   r   r   r  r   r	   r   r   ImportWarningload_moduler  rE   )r   r   r   r   s       r   r   r   G  s[   P99D	D	! ,;;??4 .D8#67Cc--	,{{"22:%&6TYYGG"4$?"4$?t{{M:*4;;78 9; ;CNN36KK++D1KK++F3 [[__TYY/F%+CKK		"/,0 M [[__TYY/F%+CKK		"/,0 Ms&   5F6CE+AF6+AF33F66G c                    	 | j                   j                  | j                         t        j                  j                  | j                        }|t        j                  | j                  <   t        |dd       	 | j                   |_        t        |dd       A	 |j                  |_
        t        |d      s#| j                  j                  d      d   |_
        t        |dd       
	 | |_        |S |S #  | j                  t        j                  v rFt        j                  j                  | j                        }|t        j                  | j                  <    xY w# t        $ r Y w xY w# t        $ r Y w xY w# t        $ r Y |S w xY w)Nr   r  r	  r   r   r   )r   r  r   r   r   rE   r   r   r   r   r  r   r   r   r  s     r   _load_backward_compatibler  e  sY   		* [[__TYY'F#CKK		v|T*2	 $F v}d+3	 "(F6:.%)YY%9%9#%>q%A" vz4(0	"FO M6M;99#[[__TYY/F%+CKK		"  		  		
  	M	sC   %C3 ;E A E* (E9 3A%E	E'&E'*	E65E69	FFc                    | j                   St        | j                   d      s=t        | j                          d}t        j	                  |t
               t        |       S t        |       }d| _        	 |t        j                  | j                  <   	 | j                   #| j                  2t        d| j                        | j                   j                  |       t        j                  j!                  | j                        }|t        j                  | j                  <   t#        d| j                  | j                          d| _        |S #  	 t        j                  | j                  =  # t        $ r Y  w xY wxY w# d| _        w xY w)Nr  r  Tr  r   zimport {!r} # {!r}F)r   r   r	   r   r   r  r  r  _initializingr   r   r   r   r   r  rJ   rE   r   )r   r   r   s      r   _load_unlockedr"    sH   {{t{{M2"4;;/0 14 4CNN3.,T22d#F
 D#!'DII	{{"22:%&6TYYGG ''/ +!'DII-tyy$++F"M!	KK		*    #sJ   3E< A
E A'E< E9E*)E9*	E63E95E66E99E< <	Fc                 p    	 t        | j                        5  t        |       cd d d        S # 1 sw Y   y xY wr   )r   r   r"  r   s    r   r   r     s2     
DII	& $d#$ $ $s   ,5c                       e Zd Z	 dZed	d       Zed        Zed        Zee	d               Z
ee	d               Zee	d               Z ee      Zy)
BuiltinImporterzbuilt-inNc                 ^    t         j                  |      rt        || | j                        S y )Nr  )r   
is_builtinr   r  )clsr   pathtargets       r   	find_speczBuiltinImporter.find_spec  s$    ??8$#Hc#++FFr   c                     	 | j                   t        j                  vr$t        | j                   d| j                         t	        t
        j                  |       S r   )r   r   r   r   r   r   create_builtinr$  s    r   r  zBuiltinImporter.create_module  sL    &99C444-FG#'99. .()<)<dCCr   c                 :    	 t        t        j                  |        y r   )r   r   exec_builtin)r   s    r   r  zBuiltinImporter.exec_module  s    $!$"3"3V<r   c                      	 y r   r    r)  r   s     r   get_codezBuiltinImporter.get_code  s     	Hr   c                      	 y r   r    r2  s     r   
get_sourcezBuiltinImporter.get_source  s     	Gr   c                      	 yr   r    r2  s     r   r   zBuiltinImporter.is_package  s     	Cr   NN)r   r   r   r  classmethodr,  r;   r  r  r   r3  r5  r   r   r  r    r   r   r&  r&    s     G  D D = =          /0Kr   r&  c                       e Zd Z	 dZed        Zedd       Zedd       Zed        Z	ed        Z
ed        Zeed	               Zeed
               Zeed               Zy)FrozenImporterfrozenc                    |j                   }|j                  }|t        |      j                  dd       }t	        |d      }| j                  ||j                  |      \  }} t        t        j                        ||      |_        |j                  }|r|r|j                  j                  d|       	 |r	 ||_        |r,|j                  |k7  r|j                  j                  |       y y y |j                  }|d u}|j                   r-| j                  |j                   |j                  |      \  }	}|rnd }	|	r	 |ry y # t        $ r Y w xY w)N__origname__r	  r   orignamer   )r   r   varsrE   r   _resolve_filenamer   r   r   implementationr   insertr   r   r	  extendr?  )
r)  r   r   stater?  ispkgr   pkgdirr	  r   s
             r   _fix_up_modulezFrozenImporter._fix_up_module  sS   !!= F|''=HFJ/E"44Xtyy%PHf 8S%7%7 8!!!D 66H33::1fE &.FO ??h.OO**84 /  66HD(E ~~ **5>>499eL6 
   
 A & s   8E   	EENc                    |rt        t        dd       sy	 | j                  }||k7  r |j                  d      r|dd  }|s| d}nd	}|j                  d
|      }|r!t        j                   | | }| | d}||fS d }t        j                   | | d}||fS # t        $ r! t        j                  dk(  rdndx}| _        Y w xY w)N_stdlib_dirr7  win32\/<r   z	.__init__Fr   z__init__.pyz.py)r   r   _SEPr   platformr   r   rJ  )r)  r   aliasrF  seprelfilerG  r   s           r   rA  z FrozenImporter._resolve_filenameI  s    wsM4@	F((C u""3'#AB<"*95H""3,(gY7F #k2H  F//*3%y<H#  	F%(\\W%<T#EC#(	Fs   B 'CCc                 2   t        t        j                  |      }|y |\  }}}t        || | j                  |      }| j                  |||      \  }	}
 t        t        j                        |	|      |_	        |
r|j                  j                  d|
       |S )Nr   r>  r   )r   r   find_frozenr   r  rA  r   r   rB  r   r   rC  )r)  r   r*  r+  info_rF  r?  r   r   rG  s              r   r,  zFrozenImporter.find_specb  s    ()9)98D< "5(#'*{{+02 008UK&4D!3!34
 ++221f=r   c                     	 t        | j                        }	 | j                  j                  }|r||_        |S # t
        $ r Y |S w xY wr   )r   r   r   r   r   r   )r   r   r   s      r   r  zFrozenImporter.create_module  sU    $TYY'	+((11H "*  	 	s   9 	AAc                     | j                   }|j                  }t        t        j                  |      }t        || j                         y r   )r   r   r   r   get_frozen_objectexecr   )r   r   r   codes       r   r  zFrozenImporter.exec_module  s4    yy()?)?FT6??#r   c                     	 t        | |      }t        j                  |      }|\  }}}||_        t	        |      j                  dd        |rg |_        | j                  |       |S )Nr   )r   r   rU  r=  r@  rE   r	  rH  )r)  r   r   rV  rW  rF  r?  s          r   r  zFrozenImporter.load_module  sj    	 #31)!5(&VT* FO6"r   c                 .    	 t         j                  |      S r   )r   rZ  r2  s     r   r3  zFrozenImporter.get_code  s     	<%%h//r   c                      	 y r   r    r2  s     r   r5  zFrozenImporter.get_source  s     	Er   c                 .    	 t         j                  |      S r   )r   is_frozen_packager2  s     r   r   zFrozenImporter.is_package  s     	=%%h//r   r   r7  )r   r   r   r  r8  rH  rA  r,  r;   r  r  r  r   r3  r5  r   r    r   r   r:  r:    s     GB% B%H    0  : 
 
 $ $  $ 0  0    0  0r   r:  c                       e Zd Z	 d Zd Zy)_ImportLockContextc                 .    	 t         j                          y r   )r   r   rC   s    r   rX   z_ImportLockContext.__enter__  s    &r   c                 .    	 t         j                          y r   )r   r   )r-   exc_type	exc_valueexc_tracebacks       r   r]   z_ImportLockContext.__exit__  s    Jr   N)r   r   r   rX   r]   r    r   r   rc  rc    s    .r   rc  c                     	 |j                  d|dz
        }t        |      |k  rt        d      |d   }| r| d|  S |S )Nr   r   z2attempted relative import beyond top-level packager   )rsplitr   r   )r   packagelevelbitsbases        r   _resolve_namero    sR    <>>#uqy)D
4y5NOO7D#dV1TF--r   c                    	 t         j                  }|t        d      |st        j	                  dt
               | t         j                  v }|D ]q  }t               5  	 |j                  } || ||      }	 d d d        1|s<| t         j                  v r*t         j                  |    }	 |j                  }	|	|c S |	c S |c S  y # t        $ r Y d d d        w xY w# 1 sw Y   gxY w# t        $ r |cY c S w xY w)Nz5sys.meta_path is None, Python is likely shutting downzsys.meta_path is empty)r   	meta_pathr   r   r   r  r   rc  r,  r   r   )
r   r*  r+  rq  	is_reloadfinderr,  r   r   r   s
             r   
_find_specrt    s   I * + 	+ /?
 #I ! 	55",,	 !tV4	5 !4T*(%H  '#'36 / " 		5 	5	5 	5 &    K	 sB   CC*
C(C'	CCCCC$	'C76C7c                     	 t        | t              st        dt        |              |dk  rt	        d      |dkD  r(t        |t              st        d      |st        d      | s|dk(  rt	        d      y y )Nzmodule name must be str, not r   zlevel must be >= 0z__package__ not set to a stringz6attempted relative import with no known parent packagezEmpty module name)
isinstancestr	TypeErrorr   
ValueErrorr   r   rk  rl  s      r   _sanity_checkr{    s    &dC 7T
|DEEqy-..qy'3'=>> ( ) )EQJ,-- 4r   zNo module named z{!r}c                 V   d }| j                  d      d   }d }|r|t        j                  vrt        ||       | t        j                  v rt        j                  |    S t        j                  |   }	 |j                  }|j                  }| j                  d      d   }t        | |      }|t        t         | |       |r|j                  j                         	 t        |      }	|r|j                  j                          	 |r#t        j                  |   }	 t        ||	       |	S |	S # t
        $ r t         | d|d}t        ||       d w xY w# |r|j                  j                          w w xY w# t
        $ r& d|d}t        j!                  |t"               Y |	S w xY w)	Nr   r   z; z is not a packager      zCannot set an attribute on z for child module )r   r   r   r   r	  r   _ERR_MSG_PREFIXModuleNotFoundErrorr   rt  r   r4   r"  rE   r   r   r   r  )
r   import_r*  r   parent_specparent_moduler   childr   r   s
             r   _find_and_load_unlockedr    s   D__S!!$FK$%gv63;;;;t$$F+	@ ))D $,,$Q'dD!D|!_$5dX">TJJ 1188?	<#D)F5599;F+	/M5&1 M6M5  	@$%dXRz9JKC%c54?	@  5599;   	//z9KE9UCNN3.M	/s*   2D. E E9 .&EE69+F('F(c                    	 t         j                  j                  | t              }|t        u st	        t	        |dd       dd      rat        |       5  t         j                  j                  | t              }|t        u rt        | |      cd d d        S 	 d d d        t        |        |d|  d}t        ||       |S # 1 sw Y   +xY w)Nr   r!  Fz
import of z halted; None in sys.modulesr   )	r   r   rM   _NEEDS_LOADINGr   r   r  r   r  )r   r  r   r   s       r   _find_and_loadr  ?  s    # [[__T>2F. 
D1?EJ% 	>[[__T>:F'.tW=	> 	>'	> 	D!~tf$@A!'55M	> 	>s   8B>>Cc                 b    	 t        | ||       |dkD  rt        | ||      } t        | t              S r   )r{  ro  r  _gcd_importrz  s      r   r  r  Y  s7     $'qyT7E2$,,r   	recursivec          	         	 |D ]  }t        |t              s8|r| j                  dz   }nd}t        d| dt	        |      j                         |dk(  r*|rSt        | d      s`t        | | j                  |d       zt        | |      r| j                   d	| }	 t        ||        | S # t        $ r>}|j                  |k(  r)t        j                  j                  |t              Y d }~ d }~ww xY w)
Nz.__all__z``from list''zItem in z must be str, not *__all__Tr  r   )rv  rw  r   rx  r   r   _handle_fromlistr  r   r  r   r   r   rM   r  )r   fromlistr  r  xwhere	from_nameexcs           r   r  r  h  s      !S!*4'hug .##'7#3#3"46 7 7#X!; +/1#!??+1QC0I	)'9=0 M '  HH	)KKOOI~>Js   B--	C463C/.C//C4c                 ^   	 | j                  d      }| j                  d      }|@|<||j                  k7  r-t        j                  d|d|j                  dt        d       |S ||j                  S t        j                  dt
        d       | d	   }d
| vr|j                  d      d   }|S )Nr  r   z __package__ != __spec__.parent (z != r      )
stacklevelzYcan't resolve package from __spec__ or __package__, falling back on __name__ and __path__r   r	  r   r   )rM   r   r   r   r   r  r   )globalsrk  r   s      r   _calc___package__r    s     kk-(G;;z"D4;; 6NN &kdkk_A?-!  = 		{{ ?$ 	 	4 *%W$((-a0GNr   c                    	 |dk(  rt        |       }n||ni }t        |      }t        | ||      }|s|dk(  rt        | j                  d      d         S | s|S t        |       t        | j                  d      d         z
  }t        j
                  |j                  d t        |j                        |z
      S t        |d      rt        ||t               S |S )Nr   r   r	  )	r  r  	partitionr   r   r   r   r   r  )	r   r  localsr  rl  r   globals_rk  cut_offs	            r   
__import__r    s    	 zT"%17r#H-T7E2 A:t~~c21566M $i#dnnS&9!&<"==G ;;v/LFOO0DW0LMNN		$+>>r   c                 b    t         j                  |       }|t        d| z         t        |      S )Nzno built-in module named )r&  r,  r   r"  )r   r   s     r   _builtin_from_namer    s3    $$T*D|5<==$r   c                 .   	 |a | at        t              }t        j                  j	                         D ]z  \  }}t        ||      s|t        j                  v rt        }nt         j                  |      rt        }nIt        ||      }t        ||       |t        u sj|j                  |       | t        j                  t           }dD ]@  }|t        j                  vrt        |      }	nt        j                  |   }	t        |||	       B t!               ay )N)ro   r   r5   )r   r   r   r   itemsrv  r   r&  r   r:  r  r  rH  r   r  r   r#   rV   )

sys_module_imp_modulemodule_typer   r   r   r   self_modulebuiltin_namebuiltin_modules
             r   _setupr    s     D
C s)K))+ .ffk*s///(%'$VV4DtV,'%%f-. ++h'K< ;s{{*/=N [[6N\>:; ()Lr   c                     	 t        | |       t        j                  j                  t               t        j                  j                  t
               y r   )r  r   rq  r4   r&  r:  )r  r  s     r   _installr    s3    :
:{#MM)MM(r   c                  ^    	 dd l } | a| j                  t        j                  t
                  y r   )_frozen_importlib_externalr   r  r   r   r   )r  s    r   _install_external_importersr    s%    C%4''H(=>r   r7  r   r   )NNr    r   )9r	   ro   r   r5   r   r   r   r  r   r#   r   rV   rQ   r   r`   rg   rm   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r   r   r  r"  r   r&  r:  rc  ro  rt  r{  r~  _ERR_MSGr  objectr  r  r  r  r  r  r  r  r  r  r    r   r   <module>r     s  ,& 	  &	D 	I I\  * *,	\ 	
(V`; `;F@ @*  "J" 01 6%$&6*a) a)H .2d J:'T 27 FR"= <"H)Z
$11 11h~0 ~0F
 
.*Z.  %V#'T 4- >C "J6"J %*P)?r   