ÿØÿà JFIF      ÿÛ „ 	 ( %!1!%)+//.383,7(-.+



-%%-////---/-.+/--+------/------/--0+--/-/-----.-----ÿÀ  ¥2" ÿÄ               ÿÄ J  	     ! 1AQ"aq2‘#BR‚¡ÁÑ3br’¢±Âð$CSƒ²á4c“%DsÓñÿÄ              ÿÄ *        !1AQa‘"2q3±ð#b¡ÿÚ   ? ¼QxJQaÍuò¸Zö Úü8,ÐÚú
"SSn<rçù–´âE—^ªBÖ9À\†¸ÔÁT­ÃÛ5
ëd´³Í#Ý;Þ38œî ¶H£M:wÎ3…³…âpÔF&‚FK¸9„â4àGEõªfÿ ‘ñ(ßw­pŽF|È¥ù®häðÍÑ¶¹‘[ÒinÙW¶ùñY˜Q{›K"išÒ[Ú8žë\F¹@-?v"ÔU”,ìöžkÿ {I‡£šÍ?e
ríV
..............................................................................................................................................................................
.............................................................................                                                  
                                                                                                                                                                                     ÿØÿà JFIF      ÿÛ „ 	 ( %!1!%)+//.383,7(-.+



-%%-////---/-.+/--+------/------/--0+--/-/-----.-----ÿÀ  ¥2" ÿÄ               ÿÄ J  	     ! 1AQ"aq2‘#BR‚¡ÁÑ3br’¢±Âð$CSƒ²á4c“%DsÓñÿÄ              ÿÄ *        !1AQa‘"2q3±ð#b¡ÿÚ   ? ¼QxJQaÍuò¸Zö Úü8,ÐÚú
"SSn<rçù–´âE—^ªBÖ9À\†¸ÔÁT­ÃÛ5
ëd´³Í#Ý;Þ38œî ¶H£M:wÎ3…³…âpÔF&‚FK¸9„â4àGEõªfÿ ‘ñ(ßw­pŽF|È¥ù®häðÍÑ¶¹‘[ÒinÙW¶ùñY˜Q{›K"išÒ[Ú8žë\F¹@-?v"ÔU”,ìöžkÿ {I‡£šÍ?e
ríV
..............................................................................................................................................................................
.............................................................................                                                  
                                                                                                                                                                                     U
    e5dS                     @   s   d dl mZmZmZmZmZmZmZmZ d dl	m
Z
mZ d dlZd dlZd dlZeefZdddddd	d
ddddddgZG dd deZG dd dejZG dd deZG dd dejZG dd dZdS )    )getweakrefcountgetweakrefsrefproxyCallableProxyType	ProxyTypeReferenceType_remove_dead_weakref)WeakSet_IterationGuardNr   r   r   r   WeakKeyDictionaryr   r   r   
ProxyTypesWeakValueDictionaryr
   
WeakMethodfinalizec                       s@   e Zd ZdZdddZ fddZdd Zd	d
 Zej	Z	  Z
S )r   )	_func_ref
_meth_type_alive__weakref__Nc                    s~   z|j }|j}W n( tk
r8   tdt|d Y nX  fdd}t| ||}t|||_t||_	d|_
t||S )Nz)argument should be a bound method, not {}c                    s&    }|j r"d|_  d k	r" | d S NF)r   )argselfcallbackZself_wr /usr/lib64/python3.8/weakref.py_cb3   s
    zWeakMethod.__new__.<locals>._cbT)__self____func__AttributeError	TypeErrorformattyper   __new__r   r   r   )clsZmethr   objfuncr   r   r   r   r   r#   ,   s     

zWeakMethod.__new__c                    s2   t   }|  }|d ks"|d kr&d S | ||S N)super__call__r   r   )r   r%   r&   	__class__r   r   r)   B   s
    
zWeakMethod.__call__c                 C   s:   t |tr6| jr|js| |kS t| |o4| j|jkS dS r   )
isinstancer   r   r   __eq__r   r   otherr   r   r   r-   I   s
    
zWeakMethod.__eq__c                 C   s:   t |tr6| jr|js| |k	S t| |p4| j|jkS dS NT)r,   r   r   r   __ne__r   r.   r   r   r   r1   P   s
    
zWeakMethod.__ne__)N)__name__
__module____qualname__	__slots__r#   r)   r-   r1   r   __hash____classcell__r   r   r*   r   r   $   s   
c                   @   s   e Zd Zd+ddZdd Zdd Zdd	 Zd
d Zdd Zdd Z	dd Z
dd ZeZdd Zd,ddZdd Zdd ZeZdd Zdd  Zd!d" Zd#d$ Zd-d%d&Zd.d'd(Zd)d* ZdS )/r   r   c                K   s>   t | tfdd}|| _g | _t | _i | _| j|f| d S )Nc                 S   s6   | }|d k	r2|j r$|j| j n||j| j d S r'   )
_iterating_pending_removalsappendkeydata)wrselfrefZ_atomic_removalr   r   r   r   removeg   s
    z,WeakValueDictionary.__init__.<locals>.remove)r   r	   _remover9   setr8   r<   update)r   r/   kwr?   r   r   r   __init__f   s    	zWeakValueDictionary.__init__c                 C   s(   | j }| j}|r$| }t|| qd S r'   )r9   r<   popr	   )r   ldr;   r   r   r   _commit_removalsw   s
    z$WeakValueDictionary._commit_removalsc                 C   s4   | j r|   | j|  }|d kr,t|n|S d S r'   r9   rH   r<   KeyErrorr   r;   or   r   r   __getitem__   s    
zWeakValueDictionary.__getitem__c                 C   s   | j r|   | j|= d S r'   )r9   rH   r<   r   r;   r   r   r   __delitem__   s    zWeakValueDictionary.__delitem__c                 C   s   | j r|   t| jS r'   )r9   rH   lenr<   r   r   r   r   __len__   s    zWeakValueDictionary.__len__c                 C   s>   | j r|   z| j|  }W n tk
r4   Y dS X |d k	S r   rI   rK   r   r   r   __contains__   s    z WeakValueDictionary.__contains__c                 C   s   d| j jt| f S Nz<%s at %#x>r+   r2   idrQ   r   r   r   __repr__   s    zWeakValueDictionary.__repr__c                 C   s&   | j r|   t|| j|| j|< d S r'   )r9   rH   KeyedRefr@   r<   r   r;   valuer   r   r   __setitem__   s    zWeakValueDictionary.__setitem__c              	   C   sV   | j r|   t }t| 0 | j D ]\}}| }|d k	r(|||< q(W 5 Q R X |S r'   )r9   rH   r   r   r<   items)r   newr;   r=   rL   r   r   r   copy   s    
zWeakValueDictionary.copyc              	   C   sj   ddl m} | jr|   |  }t| 6 | j D ]$\}}| }|d k	r6|||||< q6W 5 Q R X |S Nr   )deepcopy)r^   r`   r9   rH   r+   r   r<   r\   )r   memor`   r]   r;   r=   rL   r   r   r   __deepcopy__   s    
z WeakValueDictionary.__deepcopy__Nc                 C   sP   | j r|   z| j| }W n tk
r4   | Y S X | }|d krH|S |S d S r'   rI   )r   r;   defaultr=   rL   r   r   r   get   s    
zWeakValueDictionary.getc              	   c   sR   | j r|   t| 2 | j D ] \}}| }|d k	r"||fV  q"W 5 Q R X d S r'   r9   rH   r   r<   r\   )r   kr=   vr   r   r   r\      s    
zWeakValueDictionary.itemsc              	   c   sJ   | j r|   t| * | j D ]\}}| d k	r"|V  q"W 5 Q R X d S r'   re   )r   rf   r=   r   r   r   keys   s    

zWeakValueDictionary.keysc              	   c   s6   | j r|   t|  | j E d H  W 5 Q R X d S r'   r9   rH   r   r<   valuesrQ   r   r   r   itervaluerefs   s    

z!WeakValueDictionary.itervaluerefsc              	   c   sJ   | j r|   t| * | j D ]}| }|d k	r"|V  q"W 5 Q R X d S r'   ri   r   r=   r%   r   r   r   rj      s    
zWeakValueDictionary.valuesc                 C   s8   | j r|   | j \}}| }|d k	r||fS qd S r'   )r9   rH   r<   popitem)r   r;   r=   rL   r   r   r   rm      s    zWeakValueDictionary.popitemc                 G   s`   | j r|   z| j| }W n tk
r8   d }Y nX |d krX|rN|d S t|n|S d S )Nr   )r9   rH   r<   rE   rJ   )r   r;   argsrL   r   r   r   rE      s    

zWeakValueDictionary.popc                 C   s`   z| j |  }W n tk
r(   d }Y nX |d krX| jr@|   t|| j|| j |< |S |S d S r'   )r<   rJ   r9   rH   rX   r@   )r   r;   rc   rL   r   r   r   
setdefault  s    
zWeakValueDictionary.setdefaultc                K   sz   | j r|   | j}|d k	rRt|ds.t|}| D ]\}}t|| j|||< q6| D ]\}}t|| j|||< qZd S Nr\   )r9   rH   r<   hasattrdictr\   rX   r@   )r   r/   kwargsrG   r;   rL   r   r   r   rB     s    
zWeakValueDictionary.updatec                 C   s   | j r|   t| j S r'   )r9   rH   listr<   rj   rQ   r   r   r   	valuerefs(  s    
zWeakValueDictionary.valuerefs)r   )N)N)N)r2   r3   r4   rD   rH   rM   rO   rR   rS   rW   r[   r^   __copy__rb   rd   r\   rh   __iter__rk   rj   rm   rE   ro   rB   ru   r   r   r   r   r   Z   s,   
			
			

c                       s(   e Zd ZdZdd Z fddZ  ZS )rX   r;   c                 C   s   t | ||}||_|S r'   )r   r#   r;   )r"   obr   r;   r   r   r   r   r#   C  s    zKeyedRef.__new__c                    s   t  || d S r'   )r(   rD   )r   ry   r   r;   r*   r   r   rD   H  s    zKeyedRef.__init__)r2   r3   r4   r5   r#   rD   r7   r   r   r*   r   rX   7  s   
rX   c                   @   s   e Zd Zd*ddZdd Zdd Zdd	 Zd
d Zdd Zdd Z	dd Z
dd ZeZdd Zd+ddZdd Zdd Zdd ZeZdd Zd d! Zd"d# Zd$d% Zd,d&d'Zd-d(d)ZdS ).r   Nc                 C   sF   i | _ t| fdd}|| _g | _t | _d| _|d k	rB| | d S )Nc                 S   s.   | }|d k	r*|j r"|j|  n|j| = d S r'   )r8   r9   r:   r<   )rf   r>   r   r   r   r   r?   Y  s
    z*WeakKeyDictionary.__init__.<locals>.removeF)r<   r   r@   r9   rA   r8   
_dirty_lenrB   )r   rr   r?   r   r   r   rD   W  s    zWeakKeyDictionary.__init__c                 C   s:   | j }| j}|r6z|| = W q tk
r2   Y qX qd S r'   )r9   r<   rE   rJ   )r   rF   rG   r   r   r   rH   h  s    z"WeakKeyDictionary._commit_removalsc                    s&   | j   fdd| jD | _d| _d S )Nc                    s   g | ]}| kr|qS r   r   ).0rf   rG   r   r   
<listcomp>w  s      z5WeakKeyDictionary._scrub_removals.<locals>.<listcomp>F)r<   r9   rz   rQ   r   r|   r   _scrub_removalsu  s    z!WeakKeyDictionary._scrub_removalsc                 C   s   d| _ | jt|= d S r0   )rz   r<   r   rN   r   r   r   rO   z  s    zWeakKeyDictionary.__delitem__c                 C   s   | j t| S r'   )r<   r   rN   r   r   r   rM   ~  s    zWeakKeyDictionary.__getitem__c                 C   s(   | j r| jr|   t| jt| j S r'   )rz   r9   r~   rP   r<   rQ   r   r   r   rR     s    zWeakKeyDictionary.__len__c                 C   s   d| j jt| f S rT   rU   rQ   r   r   r   rW     s    zWeakKeyDictionary.__repr__c                 C   s   || j t|| j< d S r'   )r<   r   r@   rY   r   r   r   r[     s    zWeakKeyDictionary.__setitem__c              	   C   sH   t  }t| 0 | j D ]\}}| }|d k	r|||< qW 5 Q R X |S r'   )r   r   r<   r\   )r   r]   r;   rZ   rL   r   r   r   r^     s    
zWeakKeyDictionary.copyc              	   C   s\   ddl m} |  }t| 6 | j D ]$\}}| }|d k	r(|||||< q(W 5 Q R X |S r_   )r^   r`   r+   r   r<   r\   )r   ra   r`   r]   r;   rZ   rL   r   r   r   rb     s    
zWeakKeyDictionary.__deepcopy__c                 C   s   | j t||S r'   )r<   rd   r   r   r;   rc   r   r   r   rd     s    zWeakKeyDictionary.getc                 C   s.   zt |}W n tk
r"   Y dS X || jkS r   )r   r    r<   )r   r;   r=   r   r   r   rS     s
    zWeakKeyDictionary.__contains__c              	   c   sD   t | 2 | j D ] \}}| }|d k	r||fV  qW 5 Q R X d S r'   r   r<   r\   )r   r=   rZ   r;   r   r   r   r\     s
    
zWeakKeyDictionary.itemsc              	   c   s8   t | & | jD ]}| }|d k	r|V  qW 5 Q R X d S r'   )r   r<   rl   r   r   r   rh     s
    

zWeakKeyDictionary.keysc              	   c   s<   t | * | j D ]\}}| d k	r|V  qW 5 Q R X d S r'   r   )r   r=   rZ   r   r   r   rj     s    

zWeakKeyDictionary.valuesc                 C   s
   t | jS r'   )rt   r<   rQ   r   r   r   keyrefs  s    
zWeakKeyDictionary.keyrefsc                 C   s0   d| _ | j \}}| }|d k	r||fS qd S r0   )rz   r<   rm   )r   r;   rZ   rL   r   r   r   rm     s
    zWeakKeyDictionary.popitemc                 G   s   d| _ | jjt|f| S r0   )rz   r<   rE   r   )r   r;   rn   r   r   r   rE     s    zWeakKeyDictionary.popc                 C   s   | j t|| j|S r'   )r<   ro   r   r@   r   r   r   r   ro     s    zWeakKeyDictionary.setdefaultc                K   s\   | j }|d k	rFt|ds$ti |}| D ]\}}||t|| j< q,t|rX| | d S rp   )r<   rq   r"   r\   r   r@   rP   rB   )r   rr   rs   rG   r;   rZ   r   r   r   rB     s    
zWeakKeyDictionary.update)N)N)N)N)r2   r3   r4   rD   rH   r~   rO   rM   rR   rW   r[   r^   rv   rb   rd   rS   r\   rh   rw   rj   r   rm   rE   ro   rB   r   r   r   r   r   L  s,   
	


c                   @   s   e Zd ZdZi ZdZe ZdZ	dZ
G dd dZdd Zde_dd	d
Zdd Zdd Zedd Zedd Zejdd Zdd Zedd Zedd ZdS )r   r   Fc                   @   s   e Zd ZdZdS )zfinalize._Info)weakrefr&   rn   rs   atexitindexN)r2   r3   r4   r5   r   r   r   r   _Info  s   r   c                  O   s>  t | dkr| ^}}}} n| s(tdnd|krDtdt | d  |d}t | dkr~| ^}}} dd l}|jdtdd	 nFd
|krtdt | d  |d
}| ^}} dd l}|jdtdd	 t| } |jsdd l}|	|j
 dt_| }t|||_||_| |_|pd |_d|_t|j|_||j|< dt_d S )N   z<descriptor '__init__' of 'finalize' object needs an argumentr&   z9finalize expected at least 2 positional arguments, got %d      r   z0Passing 'func' as keyword argument is deprecated)
stacklevelr%   z/Passing 'obj' as keyword argument is deprecatedT)rP   r    rE   warningswarnDeprecationWarningtuple_registered_with_atexitr   register	_exitfuncr   r   r   r   r&   rn   rs   next_index_iterr   	_registry_dirty)rn   rs   r   r%   r&   r   r   infor   r   r   rD     sR    



 

 
zfinalize.__init__z&($self, obj, func, /, *args, **kwargs)Nc                 C   s0   | j | d }|r,| js,|j|j|jp(i S d S r'   )r   rE   	_shutdownr&   rn   rs   )r   _r   r   r   r   r)   1  s    
zfinalize.__call__c                 C   sH   | j | }|o| }|d k	rD| j | d rD||j|j|jp@i fS d S r'   )r   rd   r   rE   r&   rn   rs   r   r   r%   r   r   r   detach8  s    zfinalize.detachc                 C   s:   | j | }|o| }|d k	r6||j|j|jp2i fS d S r'   )r   rd   r   r&   rn   rs   r   r   r   r   peek@  s    zfinalize.peekc                 C   s
   | | j kS r'   )r   rQ   r   r   r   aliveH  s    zfinalize.alivec                 C   s   | j | }t|o|jS r'   r   rd   boolr   )r   r   r   r   r   r   M  s    zfinalize.atexitc                 C   s   | j | }|rt||_d S r'   r   )r   rZ   r   r   r   r   r   S  s    c                 C   s^   | j | }|o| }|d kr6dt| jt| f S dt| jt| t|jt|f S d S )Nz<%s object at %#x; dead>z!<%s object at %#x; for %r at %#x>)r   rd   r   r"   r2   rV   r   r   r   r   rW   Y  s    zfinalize.__repr__c                 C   s2   dd | j  D }|jdd d dd |D S )Nc                 S   s   g | ]\}}|j r||fqS r   )r   r{   fir   r   r   r}   e  s      z-finalize._select_for_exit.<locals>.<listcomp>c                 S   s
   | d j S )Nr   )r   )itemr   r   r   <lambda>f      z+finalize._select_for_exit.<locals>.<lambda>rx   c                 S   s   g | ]\}}|qS r   r   r   r   r   r   r}   g  s     )r   r\   sort)r$   Lr   r   r   _select_for_exitb  s    zfinalize._select_for_exitc                 C   s   d}z| jrdd l}| r(d}|  d }|d ks:t jrH|  }dt _|sNq|	 }z
|  W q, t
k
r   tjt   Y q,X q,W 5 dt _|r|  X d S )NFTr   )r   r   Zenabler   gcZ	isenabledZdisabler   r   rE   	Exceptionsys
excepthookexc_info)r$   Zreenable_gcr   Zpendingr   r   r   r   r   i  s,    
zfinalize._exitfunc)N)r2   r3   r4   r5   r   r   	itertoolscountr   r   r   r   rD   __text_signature__r)   r   r   propertyr   r   setterrW   classmethodr   r   r   r   r   r   r     s.   *



	
)_weakrefr   r   r   r   r   r   r   r	   Z_weakrefsetr
   r   _collections_abcr   r   r   __all__r   MutableMappingr   rX   r   r   r   r   r   r   <module>   s.   (
      6 ^ 