§
    ¯õi$U  ã                  ó¦  — U d dl mZ d dlZd dlZd dlmZ d dlmZ d dlZd dl	m
Z
mZ ddlmZ ddlmZ dd	lT dd
lmZ ddlmZmZ d3d„Zd3d„Zd3d„Zd3d„Zd3d„Zd3d„Zd3d„Zd3d„Zej                             de e!gd„ ¬¦  «        d4d„¦   «         Z"d3d„Z#ddl$m%Z% ddlm&Z&  G d„ de&¦  «        Z' G d „ d!e&¦  «        Z( G d"„ d#e&¦  «        Z)d$„ d%„ e e!d&„ d'„ e(e)gZ*g d(¢Z+ej                             d)e*e+¬¦  «        Z,e-e.z  e z  e!z  e'z  e(z  e)z  Z/d*e0d+<   eg e/f         Z1d*e0d,<   e,d5d-„¦   «         Z2e,d5d.„¦   «         Z3e,d5d/„¦   «         Z4d3d0„Z5d3d1„Z6d3d2„Z7dS )6é    )ÚannotationsN)ÚCallable)Ú	TypeAlias)ÚMatcherÚRaisesGroupé   )Ú_core)ÚGLOBAL_PARKING_LOT_BREAKER)Ú*)Úsleep_forever)Úassert_checkpointsÚwait_all_tasks_blockedÚreturnÚNonec               ƒ  óÔ  ‡‡K  — t          ¦   «         Š‰                     ¦   «         rJ ‚‰                     ¦   «         j        dk    sJ ‚t	          j        t          d¬¦  «        5  ‰                     ¦   «          d d d ¦  «         n# 1 swxY w Y   ‰                     ¦   «          ‰                     ¦   «         sJ ‚t          ¦   «         5  ‰ 
                    ¦   «         ƒ d {V —† d d d ¦  «         n# 1 swxY w Y   t          ¦   «         Šg Šd
ˆˆfd„} t          j        ¦   «         4 ƒd {V —†}|                     | ¦  «         |                     | ¦  «         t          ¦   «         ƒ d {V —† ‰ddgk    sJ ‚‰                     ¦   «         j        dk    sJ ‚‰                     ¦   «          t          ¦   «         ƒ d {V —† ‰g d	¢k    sJ ‚	 d d d ¦  «        ƒd {V —† d S # 1 ƒd {V —†swxY w Y   d S )Nr   zŒtrio\.Event\.__bool__ is deprecated since Trio 0\.31\.0; use trio\.Event\.is_set instead \(https://github.com/python-trio/trio/issues/3238\)©Úmatchr   r   c               “  ó”   •K  — ‰                      d¦  «         ‰                      ¦   «         ƒ d {V —† ‰                      d¦  «         d S )NÚsleepingÚwoken)ÚappendÚwait)ÚeÚrecords   €€úa/var/www/html/nodeJS/PythonScripts/venv3.11/lib/python3.11/site-packages/trio/_tests/test_sync.pyÚchildztest_Event.<locals>.child'   sJ   øè è € Ø�Š�jÑ!Ô!Ð!Ø�fŠf‰hŒhˆˆˆˆˆˆˆØ�Š�gÑÔÐÐÐó    r   r   )r   r   r   r   ©r   r   )ÚEventÚis_setÚ
statisticsÚtasks_waitingÚpytestÚwarnsÚDeprecationWarningÚ__bool__Úsetr   r   r	   Úopen_nurseryÚ
start_soonr   )r   Únurseryr   r   s     @@r   Ú
test_Eventr+      sD  øøè è € Ý‰Œ€AØ�xŠx‰zŒzÐÐÐØ�<Š<‰>Œ>Ô'¨1Ò,Ð,Ð,Ð,å	ŒÝð ^ð
ñ 
ô 
ð ð ð 	
�
Š
‰Œˆð	ð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð ‡E‚E�G„G€GØ�8Š8‰:Œ:ÐÐÐÝ	Ñ	Ô	ð ð Ø�fŠf‰hŒhˆˆˆˆˆˆˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ 	‰Œ€Aà€Fðð ð ð ð ð ð õ
 Ô!Ñ#Ô#ð Dð Dð Dð Dð Dð Dð D wØ×Ò˜5Ñ!Ô!Ð!Ø×Ò˜5Ñ!Ô!Ð!Ý$Ñ&Ô&Ð&Ð&Ð&Ð&Ð&Ð&Ð&Ø˜* jÐ1Ò1Ð1Ð1Ð1Ø�|Š|‰~Œ~Ô+¨qÒ0Ð0Ð0Ð0Ø	�Š‰ŒˆÝ$Ñ&Ô&Ð&Ð&Ð&Ð&Ð&Ð&Ð&ØÐCÐCÐCÒCÐCÐCÐCÐCðDð Dð Dñ Dô Dð Dð Dð Dð Dð Dð Dð Dð Dð Dð Dð Dð Dð Dð Dð Dð Dð Dð Dð Døøøð Dð Dð Dð Dð Dð Ds7   Á#BÂBÂBÃC.Ã.C2Ã5C2Ä)BGÇ
G!Ç$G!c               ƒ  óÜ
  K  — t          d¦  «        j        dk    sJ ‚t          j        t          ¦  «        5  t          d¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t
          d¬¦  «        5  t          d¦  «         d d d ¦  «         n# 1 swxY w Y   t          d¦  «        } t          | ¦  «         | j        dk    sJ ‚| j        dk    sJ ‚| j        dk    sJ ‚t          j        t          ¦  «        5  |  
                    ¦   «          d d d ¦  «         n# 1 swxY w Y   | j        dk    sJ ‚|                      ¦   «          | j        dk    sJ ‚| j        dk    sJ ‚|                      ¦   «         }|j        dk    sJ ‚|j        dk    sJ ‚|j        t          j        ¦   «         gk    sJ ‚|j        dk    sJ ‚t          j        t          ¦  «        5  |                      ¦   «          d d d ¦  «         n# 1 swxY w Y   | j        dk    sJ ‚t          j        t          ¦  «        5  |                      ¦   «         ƒ d {V —† d d d ¦  «         n# 1 swxY w Y   | j        dk    sJ ‚t%          ¦   «         5  |                      d¦  «        ƒ d {V —† d d d ¦  «         n# 1 swxY w Y   | j        dk    sJ ‚t          j        t          j        ¦  «        5  |                      d	¦  «         d d d ¦  «         n# 1 swxY w Y   t-          |                      ¦   «         j        ¦  «        t          j        ¦   «         dhk    sJ ‚|                      t          j        ¦   «         ¦  «         |                      ¦   «         j        dgk    sJ ‚|                      d¦  «         | j        dk    sJ ‚t%          ¦   «         5  | 4 ƒd {V —† | j        dk    sJ ‚	 d d d ¦  «        ƒd {V —† n# 1 ƒd {V —†swxY w Y   d d d ¦  «         n# 1 swxY w Y   t          j        ¦   «         4 ƒd {V —†}|                      d
¦  «        ƒ d {V —† |                      d¦  «        ƒ d {V —† |                     | j        d¦  «         t5          ¦   «         ƒ d {V —† | j        dk    sJ ‚|                      ¦   «         j        dk    sJ ‚|                      d¦  «         | j        dk    sJ ‚t          j        t          j        ¦  «        5  |                      ¦   «          d d d ¦  «         n# 1 swxY w Y   d d d ¦  «        ƒd {V —† n# 1 ƒd {V —†swxY w Y   |                      d¦  «         |                      d
¦  «         d S )Nr   ç      ð?ú^total_tokens must be >= 0$r   éÿÿÿÿr   é   Úsomeonezthird partyzvalue 1zvalue 2zvalue 3)ÚCapacityLimiterÚtotal_tokensr#   ÚraisesÚ	TypeErrorÚ
ValueErrorÚreprÚborrowed_tokensÚavailable_tokensÚRuntimeErrorÚreleaseÚacquire_nowaitr!   Ú	borrowersr	   Úcurrent_taskr"   Úacquirer   Úacquire_on_behalf_ofÚ
WouldBlockÚacquire_on_behalf_of_nowaitr'   Úrelease_on_behalf_ofr(   r)   r   )ÚcÚstatsr*   s      r   Útest_CapacityLimiterrF   7   sÒ  è è € Ý˜1ÑÔÔ*¨aÒ/Ð/Ð/Ð/Ý	Œ•yÑ	!Ô	!ð ð Ý˜ÑÔÐðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð å	Œ•zÐ)GÐ	HÑ	HÔ	Hð ð Ý˜ÑÔÐðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð å˜ÑÔ€AÝˆ�G„G€GØŒ>˜QÒÐÐÐØÔ Ò!Ð!Ð!Ð!ØÔ Ò"Ð"Ð"Ð"Ý	Œ•|Ñ	$Ô	$ð ð Ø	�	Š	‰Œˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð àÔ Ò!Ð!Ð!Ð!Ø×ÒÑÔÐØÔ Ò!Ð!Ð!Ð!ØÔ Ò"Ð"Ð"Ð"à�LŠL‰NŒN€EØÔ  AÒ%Ð%Ð%Ð%ØÔ Ò"Ð"Ð"Ð"ØŒ?�uÔ1Ñ3Ô3Ð4Ò4Ð4Ð4Ð4ØÔ !Ò#Ð#Ð#Ð#õ 
Œ•|Ñ	$Ô	$ð ð Ø	×ÒÑÔÐðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð àÔ Ò!Ð!Ð!Ð!Ý	Œ•|Ñ	$Ô	$ð ð Ø�iŠi‰kŒkÐÐÐÐÐÐÐðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð àÔ Ò!Ð!Ð!Ð!õ 
Ñ	Ô	ð 0ð 0Ø×$Ò$ YÑ/Ô/Ð/Ð/Ð/Ð/Ð/Ð/Ð/ð0ð 0ð 0ñ 0ô 0ð 0ð 0ð 0ð 0ð 0ð 0øøøð 0ð 0ð 0ð 0ð Ô Ò!Ð!Ð!Ð!Ý	Œ•uÔ'Ñ	(Ô	(ð 5ð 5Ø	×%Ò% mÑ4Ô4Ð4ð5ð 5ð 5ñ 5ô 5ð 5ð 5ð 5ð 5ð 5ð 5øøøð 5ð 5ð 5ð 5õ ˆq�|Š|‰~Œ~Ô'Ñ(Ô(­UÔ-?Ñ-AÔ-AÀ9Ð,MÒMÐMÐMÐMð ×Ò�5Ô-Ñ/Ô/Ñ0Ô0Ð0Ø�<Š<‰>Œ>Ô#¨	 {Ò2Ð2Ð2Ð2à×Ò˜9Ñ%Ô%Ð%ØÔ Ò!Ð!Ð!Ð!Ý	Ñ	Ô	ð *ð *Øð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ØÔ$¨Ò)Ð)Ð)Ð)Ð)ð	*ð 	*ð 	*ñ 	*ô 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*øøøð 	*ð 	*ð 	*ð 	*ð*ð *ð *ñ *ô *ð *ð *ð *ð *ð *ð *øøøð *ð *ð *ð *õ Ô!Ñ#Ô#ð ð ð ð ð ð ð  wØ×$Ò$ YÑ/Ô/Ð/Ð/Ð/Ð/Ð/Ð/Ð/Ø×$Ò$ YÑ/Ô/Ð/Ð/Ð/Ð/Ð/Ð/Ð/Ø×Ò˜1Ô1°9Ñ=Ô=Ð=Ý$Ñ&Ô&Ð&Ð&Ð&Ð&Ð&Ð&Ð&ØÔ  AÒ%Ð%Ð%Ð%Ø�|Š|‰~Œ~Ô+¨qÒ0Ð0Ð0Ð0Ø	×Ò˜yÑ)Ô)Ð)àÔ  AÒ%Ð%Ð%Ð%ÝŒ]�5Ô+Ñ,Ô,ð 	ð 	Ø×ÒÑÔÐð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ðð ð ñ ô ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð øøøð ð ð ð ð ×Ò˜9Ñ%Ô%Ð%Ø×Ò˜9Ñ%Ô%Ð%Ð%Ð%sê   ¶AÁAÁAÁ8BÂBÂBÃ=DÄD"Ä%D"ÇG8Ç8G<Ç?G<È)IÉIÉIÉ6JÊJ"Ê%J"ËK6Ë6K:Ë=K:Î6	O=Î?O ÏO=Ï 
O*	Ï*O=Ï-O*	Ï.O=Ï=PÐPÐ!CT1Ó3TÔT1ÔT	ÔT1ÔT	ÔT1Ô1
T;Ô>T;c               ƒ  ó   K  — ddl m}  t          | ¦  «        }t          |¦  «         |j        | k    sJ ‚|j        dk    sJ ‚|j        | k    sJ ‚t          j        t          ¦  «        5  | 
                    ¦   «          d d d ¦  «         n# 1 swxY w Y   |j        dk    sJ ‚|                     ¦   «          |j        dk    sJ ‚|j        | k    sJ ‚d S )Nr   )Úinfr0   )ÚmathrH   r2   r7   r3   r8   r9   r#   r4   r:   r;   r<   )rH   rD   s     r   Útest_CapacityLimiter_infrJ   }   s1  è è € ØÐÐÐÐÐå˜ÑÔ€AÝˆ�G„G€GØŒ>˜SÒ Ð Ð Ð ØÔ Ò!Ð!Ð!Ð!ØÔ Ò$Ð$Ð$Ð$Ý	Œ•|Ñ	$Ô	$ð ð Ø	�	Š	‰Œˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð àÔ Ò!Ð!Ð!Ð!Ø×ÒÑÔÐØÔ Ò!Ð!Ð!Ð!ØÔ Ò$Ð$Ð$Ð$Ð$Ð$s   Á'BÂBÂBc               ƒ  ó  K  — t          d¦  «        } t          j        t          ¦  «        5  d| _        d d d ¦  «         n# 1 swxY w Y   t          j        t
          d¬¦  «        5  d| _        d d d ¦  «         n# 1 swxY w Y   t          j        t
          d¬¦  «        5  d| _        d d d ¦  «         n# 1 swxY w Y   | j        dk    sJ ‚t          j        ¦   «         4 ƒd {V —†}t          d¦  «        D ]1}| 	                    | j
        |¦  «         t          ¦   «         ƒ d {V —† Œ2t          |                      ¦   «         j        ¦  «        dd	hk    sJ ‚|                      ¦   «         j        d
k    sJ ‚| xj        dz  c_        t          |                      ¦   «         j        ¦  «        h d£k    sJ ‚|                      ¦   «         j        d	k    sJ ‚| xj        d
z  c_        | j        dk    sJ ‚| j        d	k    sJ ‚|                      d¦  «         |                      d	¦  «         |                      d¦  «         t          |                      ¦   «         j        ¦  «        d
hk    sJ ‚|                      ¦   «         j        d	k    sJ ‚|                      d
¦  «         t          |                      ¦   «         j        ¦  «        dhk    sJ ‚|                      ¦   «         j        dk    sJ ‚	 d d d ¦  «        ƒd {V —† d S # 1 ƒd {V —†swxY w Y   d S )Nr   r-   r.   r   r/   iöÿÿÿé   r   r0   é   >   r   r0   r   rM   é   )r2   r#   r4   r5   r3   r6   r	   r(   Úranger)   r@   r   r'   r!   r=   r"   r8   rC   ©rD   r*   Úis      r   Ú(test_CapacityLimiter_change_total_tokensrR   �   s;  è è € Ý˜ÑÔ€Aå	Œ•yÑ	!Ô	!ð ð ØˆŒðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ 
Œ•zÐ)GÐ	HÑ	HÔ	Hð ð ØˆŒðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ 
Œ•zÐ)GÐ	HÑ	HÔ	Hð ð ØˆŒðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð Œ>˜QÒÐÐÐåÔ!Ñ#Ô#ð 1ð 1ð 1ð 1ð 1ð 1ð 1 wÝ�q‘”ð 	+ð 	+ˆAØ×Ò˜qÔ5°qÑ9Ô9Ð9Ý(Ñ*Ô*Ð*Ð*Ð*Ð*Ð*Ð*Ð*Ð*Ý�1—<’<‘>”>Ô+Ñ,Ô,°°A°Ò6Ð6Ð6Ð6Ø�|Š|‰~Œ~Ô+¨qÒ0Ð0Ð0Ð0Ø	ˆŒ˜!ÑˆŒÝ�1—<’<‘>”>Ô+Ñ,Ô,°°°Ò<Ð<Ð<Ð<Ø�|Š|‰~Œ~Ô+¨qÒ0Ð0Ð0Ð0Ø	ˆŒ˜!ÑˆŒØÔ  AÒ%Ð%Ð%Ð%ØŒ~ Ò"Ð"Ð"Ð"Ø	×Ò˜qÑ!Ô!Ð!Ø	×Ò˜qÑ!Ô!Ð!Ø	×Ò˜qÑ!Ô!Ð!Ý�1—<’<‘>”>Ô+Ñ,Ô,°°Ò3Ð3Ð3Ð3Ø�|Š|‰~Œ~Ô+¨qÒ0Ð0Ð0Ð0Ø	×Ò˜qÑ!Ô!Ð!Ý�1—<’<‘>”>Ô+Ñ,Ô,°°Ò3Ð3Ð3Ð3Ø�|Š|‰~Œ~Ô+¨qÒ0Ð0Ð0Ð0Ð0ð'1ð 1ð 1ñ 1ô 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1øøøð 1ð 1ð 1ð 1ð 1ð 1sF   «?¿AÁAÁ%A9Á9A=Â A=ÂB3Â3B7Â:B7Ã$HK:Ë:
LÌLc               ƒ  óš  K  — t          d¬¦  «        } |                      ¦   «         ƒ d {V —† t          j        ¦   «         4 ƒd {V —†}|                     | j        ¦  «         t          ¦   «         ƒ d {V —† |j                             ¦   «          d d d ¦  «        ƒd {V —† n# 1 ƒd {V —†swxY w Y   t          | j	        ¦  «        dk    sJ ‚d S )Nr0   )r3   r   )
r2   r?   r	   r(   r)   r   Úcancel_scopeÚcancelÚlenÚ_pending_borrowers)ÚlimiterÚns     r   Ú test_CapacityLimiter_memleak_548rZ   ²   s]  è è € Ý¨1Ð-Ñ-Ô-€GØ
�/Š/Ñ
Ô
ÐÐÐÐÐÐÐåÔ!Ñ#Ô#ð  ð  ð  ð  ð  ð  ð   qØ	�Š�W”_Ñ%Ô%Ð%Ý$Ñ&Ô&Ð&Ð&Ð&Ð&Ð&Ð&Ð&Ø	Œ×ÒÑÔÐð ð  ð  ñ  ô  ð  ð  ð  ð  ð  ð  ð  ð  ð  ð  ð  ð  ð  ð  ð  ð  ð  ð  øøøð  ð  ð  ð  õ ˆwÔ)Ñ*Ô*¨aÒ/Ð/Ð/Ð/Ð/Ð/s   ÁAB Â 
B*Â-B*c               ƒ  ó(	  K  — t          d¦  «        } | j        dk    sJ ‚t          j        ¦   «         4 ƒd {V —†}d| _        t	          d¦  «        D ]1}|                     | j        |¦  «         t          ¦   «         ƒ d {V —† Œ2t          |  	                    ¦   «         j
        ¦  «        t          ¦   «         k    sJ ‚|  	                    ¦   «         j        dk    sJ ‚d| _        t          |  	                    ¦   «         j
        ¦  «        h d£k    sJ ‚|                     | j        d¦  «         t          ¦   «         ƒ d {V —† |  	                    ¦   «         j        dk    sJ ‚t	          d¦  «        D ]}|                      |¦  «         Œ|  	                    ¦   «         j        dk    sJ ‚|                      d¦  «         d| _        t          j        t          j        ¦  «        5  |                      ¦   «          d d d ¦  «         n# 1 swxY w Y   |                     | j        d¦  «         t          ¦   «         ƒ d {V —† |  	                    ¦   «         j        dk    sJ ‚|  	                    ¦   «         j
        g k    sJ ‚d| _        |  	                    ¦   «         j        dk    sJ ‚|  	                    ¦   «         j
        dgk    sJ ‚|                      d¦  «         |                      d¦  «        ƒ d {V —† |                     | j        d¦  «         t          ¦   «         ƒ d {V —† d| _        |  	                    ¦   «         j
        dgk    sJ ‚|                      d¦  «         t          ¦   «         ƒ d {V —† |  	                    ¦   «         j
        g k    sJ ‚|  	                    ¦   «         j        dk    sJ ‚d| _        t          ¦   «         ƒ d {V —† |  	                    ¦   «         j
        dgk    sJ ‚|  	                    ¦   «         j        dk    sJ ‚|                      d¦  «         d| _        |j                             ¦   «          d d d ¦  «        ƒd {V —† n# 1 ƒd {V —†swxY w Y   | j        dk    sJ ‚|  	                    ¦   «         j
        g k    sJ ‚| j        i k    sJ ‚d S )NrL   r   >   r   r0   r   rM   rN   r0   é   )r2   r3   r	   r(   rO   r)   r@   r   r'   r!   r=   r"   rC   r#   r4   rA   r<   rT   rU   rW   rP   s      r   Ú&test_CapacityLimiter_zero_limit_tokensr]   À   sŒ  è è € Ý˜ÑÔ€AàŒ>˜QÒÐÐÐåÔ!Ñ#Ô#ð A&ð A&ð A&ð A&ð A&ð A&ð A& wØˆŒå�q‘”ð 	+ð 	+ˆAØ×Ò˜qÔ5°qÑ9Ô9Ð9Ý(Ñ*Ô*Ð*Ð*Ð*Ð*Ð*Ð*Ð*Ð*å�1—<’<‘>”>Ô+Ñ,Ô,µ±´Ò5Ð5Ð5Ð5Ø�|Š|‰~Œ~Ô+¨qÒ0Ð0Ð0Ð0àˆŒå�1—<’<‘>”>Ô+Ñ,Ô,°°°Ò?Ð?Ð?Ð?à×Ò˜1Ô1°1Ñ5Ô5Ð5Ý$Ñ&Ô&Ð&Ð&Ð&Ð&Ð&Ð&Ð&à�|Š|‰~Œ~Ô+¨qÒ0Ð0Ð0Ð0å�q‘”ð 	&ð 	&ˆAØ×"Ò" 1Ñ%Ô%Ð%Ð%à�|Š|‰~Œ~Ô+¨qÒ0Ð0Ð0Ð0Ø	×Ò˜qÑ!Ô!Ð!ð ˆŒåŒ]�5Ô+Ñ,Ô,ð 	ð 	Ø×ÒÑÔÐð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	×Ò˜1Ô1°1Ñ5Ô5Ð5Ý$Ñ&Ô&Ð&Ð&Ð&Ð&Ð&Ð&Ð&à�|Š|‰~Œ~Ô+¨qÒ0Ð0Ð0Ð0Ø�|Š|‰~Œ~Ô'¨2Ò-Ð-Ð-Ð-àˆŒØ�|Š|‰~Œ~Ô+¨qÒ0Ð0Ð0Ð0Ø�|Š|‰~Œ~Ô'¨A¨3Ò.Ð.Ð.Ð.Ø	×Ò˜qÑ!Ô!Ð!à×$Ò$ QÑ'Ô'Ð'Ð'Ð'Ð'Ð'Ð'Ð'à×Ò˜1Ô1°1Ñ5Ô5Ð5Ý$Ñ&Ô&Ð&Ð&Ð&Ð&Ð&Ð&Ð&ØˆŒà�|Š|‰~Œ~Ô'¨A¨3Ò.Ð.Ð.Ð.à	×Ò˜qÑ!Ô!Ð!Ý$Ñ&Ô&Ð&Ð&Ð&Ð&Ð&Ð&Ð&Ø�|Š|‰~Œ~Ô'¨2Ò-Ð-Ð-Ð-Ø�|Š|‰~Œ~Ô+¨qÒ0Ð0Ð0Ð0àˆŒÝ$Ñ&Ô&Ð&Ð&Ð&Ð&Ð&Ð&Ð&Ø�|Š|‰~Œ~Ô'¨A¨3Ò.Ð.Ð.Ð.Ø�|Š|‰~Œ~Ô+¨qÒ0Ð0Ð0Ð0à	×Ò˜qÑ!Ô!Ð!àˆŒàÔ×#Ò#Ñ%Ô%Ð%ðCA&ð A&ð A&ñ A&ô A&ð A&ð A&ð A&ð A&ð A&ð A&ð A&ð A&ð A&ð A&ð A&ð A&ð A&ð A&ð A&ð A&ð A&ð A&øøøð A&ð A&ð A&ð A&ðF Œ>˜QÒÐÐÐØ�<Š<‰>Œ>Ô# rÒ)Ð)Ð)Ð)ØÔ 2Ò%Ð%Ð%Ð%Ð%Ð%s7   ¸F#QÇG<Ç0QÇ<H 	È QÈH 	ÈH2QÑ
QÑQc               ƒ  ó   ‡K  — t          j        t          ¦  «        5  t          d¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          d¬¦  «        5  t          d¦  «         d d d ¦  «         n# 1 swxY w Y   t          d¦  «        } t          | ¦  «         | j        dk    sJ ‚| j        �J ‚|                      ¦   «          | j        dk    sJ ‚|  	                    ¦   «         j
        dk    sJ ‚|                      ¦   «          | j        dk    sJ ‚t          ¦   «         5  |                      ¦   «         ƒ d {V —† d d d ¦  «         n# 1 swxY w Y   | j        dk    sJ ‚t          j        t          j        ¦  «        5  |                      ¦   «          d d d ¦  «         n# 1 swxY w Y   |                      ¦   «          | j        dk    sJ ‚t          ¦   «         5  | 4 ƒd {V —† | j        dk    sJ ‚	 d d d ¦  «        ƒd {V —† n# 1 ƒd {V —†swxY w Y   d d d ¦  «         n# 1 swxY w Y   | j        dk    sJ ‚|                      ¦   «          g Šdˆfd„}t          j        ¦   «         4 ƒd {V —†}|                     || ¦  «         t%          ¦   «         ƒ d {V —† ‰dgk    sJ ‚| j        dk    sJ ‚|                      ¦   «          | j        dk    sJ ‚t          j        t          j        ¦  «        5  |                      ¦   «          d d d ¦  «         n# 1 swxY w Y   d d d ¦  «        ƒd {V —† n# 1 ƒd {V —†swxY w Y   ‰ddgk    sJ ‚d S )Nr-   z^initial value must be >= 0$r   r/   r0   r   r   ÚsÚ	Semaphorer   r   c              “  ó”   •K  — ‰                      d¦  «         |                      ¦   «         ƒ d {V —† ‰                      d¦  «         d S ©NÚstartedÚfinished)r   r?   )r_   r   s    €r   Ú
do_acquirez"test_Semaphore.<locals>.do_acquire+  sQ   øè è € Ø�Š�iÑ Ô Ð Ø�iŠi‰kŒkÐÐÐÐÐÐÐØ�Š�jÑ!Ô!Ð!Ð!Ð!r   rc   rd   )r_   r`   r   r   )r#   r4   r5   r`   r6   r7   ÚvalueÚ	max_valuer;   r!   r"   r<   r   r?   r	   rA   r(   r)   r   )r_   re   r*   r   s      @r   Útest_Semaphorerh     sÕ  øè è € Ý	Œ•yÑ	!Ô	!ð ð Ý�#‰Œˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð å	Œ•zÐ)HÐ	IÑ	IÔ	Ið ð Ý�"‰Œˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð å�!‰Œ€AÝˆ�G„G€GØŒ7�aŠ<ˆ<ˆ<ˆ<ØŒ;ÐÐÐØ‡I‚I�K„K€KØŒ7�aŠ<ˆ<ˆ<ˆ<Ø�<Š<‰>Œ>Ô'¨1Ò,Ð,Ð,Ð,Ø×ÒÑÔÐØŒ7�aŠ<ˆ<ˆ<ˆ<Ý	Ñ	Ô	ð ð Ø�iŠi‰kŒkÐÐÐÐÐÐÐðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð àŒ7�aŠ<ˆ<ˆ<ˆ<Ý	Œ•uÔ'Ñ	(Ô	(ð ð Ø	×ÒÑÔÐðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð ‡I‚I�K„K€KØŒ7�aŠ<ˆ<ˆ<ˆ<Ý	Ñ	Ô	ð  ð  Øð 	 ð 	 ð 	 ð 	 ð 	 ð 	 ð 	 ð 	 Ø”7˜a’<�<�<�<�<ð	 ð 	 ð 	 ñ 	 ô 	 ð 	 ð 	 ð 	 ð 	 ð 	 ð 	 ð 	 ð 	 ð 	 ð 	 ð 	 ð 	 ð 	 ð 	 ð 	 ð 	 ð 	 ð 	 øøøð 	 ð 	 ð 	 ð 	 ð ð  ð  ñ  ô  ð  ð  ð  ð  ð  ð  øøøð  ð  ð  ð  ð Œ7�aŠ<ˆ<ˆ<ˆ<Ø×ÒÑÔÐà€Fð"ð "ð "ð "ð "ð "õ
 Ô!Ñ#Ô#ð 	ð 	ð 	ð 	ð 	ð 	ð 	 wØ×Ò˜: qÑ)Ô)Ð)Ý$Ñ&Ô&Ð&Ð&Ð&Ð&Ð&Ð&Ð&Ø˜)˜Ò$Ð$Ð$Ð$ØŒw˜!Š|ˆ|ˆ|ˆ|Ø	�	Š	‰ŒˆàŒw˜!Š|ˆ|ˆ|ˆ|ÝŒ]�5Ô+Ñ,Ô,ð 	ð 	Ø×ÒÑÔÐð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð �i Ð,Ò,Ð,Ð,Ð,Ð,Ð,s°   �9¹=Á =ÁA;Á;A?ÂA?Ä)EÅEÅEÆF'Æ'F+Æ.F+Ç!	H(Ç*HÇ9H(È
H	ÈH(ÈH	ÈH(È(H,È/H,É5B L3Ë5LÌ
L3ÌL	ÌL3ÌL	ÌL3Ì3
L=Í L=c                 ó˜  — t          j        t          ¦  «        5  t          dd¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          d¬¦  «        5  t          dd¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          dd¬¦  «        } | j        dk    sJ ‚t          | ¦  «         t          j        t          d¬¦  «        5  |                      ¦   «          d d d ¦  «         n# 1 swxY w Y   | j        dk    sJ ‚|  	                    ¦   «          | j        dk    sJ ‚|                      ¦   «          | j        dk    sJ ‚d S )	Nr0   r-   )rg   z%^max_values must be >= initial_value$r   r   z#^semaphore released too many times$r   )
r#   r4   r5   r`   r6   rg   r7   r;   rf   r<   )Úbss    r   Útest_Semaphore_boundedrk   =  sð  € Ý	Œ•yÑ	!Ô	!ð $ð $Ý�!˜sÐ#Ñ#Ô#Ð#ð$ð $ð $ñ $ô $ð $ð $ð $ð $ð $ð $øøøð $ð $ð $ð $å	Œ•zÐ)QÐ	RÑ	RÔ	Rð "ð "Ý�!˜qÐ!Ñ!Ô!Ð!ð"ð "ð "ñ "ô "ð "ð "ð "ð "ð "ð "øøøð "ð "ð "ð "å	�1 Ð	"Ñ	"Ô	"€BØŒ<˜1ÒÐÐÐÝˆ�H„H€HÝ	Œ•zÐ)OÐ	PÑ	PÔ	Pð ð Ø
�
Š
‰Œˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð àŒ8�qŠ=ˆ=ˆ=ˆ=Ø×ÒÑÔÐØŒ8�qŠ=ˆ=ˆ=ˆ=Ø‡J‚J�L„L€LØŒ8�qŠ=ˆ=ˆ=ˆ=ˆ=ˆ=s0   š8¸<¿<ÁA<Á<B ÂB ÃC0Ã0C4Ã7C4Úlockclsc                ó   — | j         S ©N)Ú__name__)Úfns    r   ú<lambda>rq   N  s   € È2Ì;€ r   )Úidsútype[Lock | StrictFIFOLock]c              ƒ  ó,	  ‡‡K  —  | ¦   «         Š‰                      ¦   «         rJ ‚t          j        ‰¦  «        } |¦   «         ‰u sJ ‚t          ‰¦  «         | j        t          ‰¦  «        v sJ ‚t          ¦   «         5  ‰4 ƒd {V —† ‰                      ¦   «         sJ ‚t          ‰¦  «         d d d ¦  «        ƒd {V —† n# 1 ƒd {V —†swxY w Y   d d d ¦  «         n# 1 swxY w Y   ‰                      ¦   «         rJ ‚‰                     ¦   «          ‰                      ¦   «         sJ ‚‰                     ¦   «          ‰                      ¦   «         rJ ‚t          ¦   «         5  ‰                     ¦   «         ƒ d {V —† d d d ¦  «         n# 1 swxY w Y   ‰                      ¦   «         sJ ‚‰                     ¦   «          ‰                      ¦   «         rJ ‚‰                     ¦   «          t          j
        t          ¦  «        5  ‰                     ¦   «          d d d ¦  «         n# 1 swxY w Y   ‰                     ¦   «          t          j
        t          ¦  «        5  ‰                     ¦   «          d d d ¦  «         n# 1 swxY w Y   d Šdˆˆfd„}t          j        ¦   «         4 ƒd {V —†}‰                      ¦   «         rJ ‚|                     |¦  «         t          ¦   «         ƒ d {V —† ‰                      ¦   «         sJ ‚t          j
        t          j        ¦  «        5  ‰                     ¦   «          d d d ¦  «         n# 1 swxY w Y   t          j
        t          ¦  «        5  ‰                     ¦   «          d d d ¦  «         n# 1 swxY w Y   ‰                     ¦   «         }t%          |¦  «         |j         sJ ‚|j        ‰u sJ ‚|j        dk    sJ ‚|                     |¦  «         t          ¦   «         ƒ d {V —† ‰                     ¦   «         }t%          |¦  «         |j        dk    sJ ‚|j                             ¦   «          d d d ¦  «        ƒd {V —† n# 1 ƒd {V —†swxY w Y   ‰                     ¦   «         }|j         rJ ‚|j        �J ‚|j        dk    sJ ‚d S )Nr   r   c               “  ó´   •K  — t          j        ¦   «         Š ‰4 ƒd {V —† t          ¦   «         ƒ d {V —† d d d ¦  «        ƒd {V —† d S # 1 ƒd {V —†swxY w Y   d S rn   )r	   r>   r   )Úholder_taskÚls   €€r   Úholderz,test_Lock_and_StrictFIFOLock.<locals>.holderv  sõ   øè è € åÔ(Ñ*Ô*ˆØð 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"Ý‘/”/Ð!Ð!Ð!Ð!Ð!Ð!Ð!ð	"ð 	"ð 	"ñ 	"ô 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"øøøð 	"ð 	"ð 	"ð 	"ð 	"ð 	"s   ŸAÁ
AÁAr   r0   r   )ÚlockedÚweakrefÚrefr7   ro   r   r<   r;   r?   r#   r4   r:   r	   r(   r)   r   rA   r!   ÚprintÚownerr"   rT   rU   )rl   Úrrx   r*   r!   rv   rw   s        @@r   Útest_Lock_and_StrictFIFOLockr   N  s  øøè è € ð 	ˆ‰	Œ	€AØ�xŠx‰zŒzÐÐÐõ 	Œ�A‰Œ€AØˆ1‰3Œ3�!ˆ8ˆ8ˆ8ˆ8åˆ�G„G€GàÔ�t A™wœwÐ&Ð&Ð&Ð&Ý	Ñ	Ô	ð ð Øð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	Ø—8’8‘:”:ÐÐÐÝ�‰GŒGˆGð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð �xŠx‰zŒzÐÐÐØ×ÒÑÔÐØ�8Š8‰:Œ:ÐÐÐØ‡I‚I�K„K€KØ�xŠx‰zŒzÐÐÐÝ	Ñ	Ô	ð ð Ø�iŠi‰kŒkÐÐÐÐÐÐÐðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð à�8Š8‰:Œ:ÐÐÐØ‡I‚I�K„K€KØ�xŠx‰zŒzÐÐÐà×ÒÑÔÐÝ	Œ•|Ñ	$Ô	$ð ð à	×ÒÑÔÐðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð ‡I‚I�K„K€KÝ	Œ•|Ñ	$Ô	$ð ð à	�	Š	‰Œˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð €Kð"ð "ð "ð "ð "ð "ð "õ Ô!Ñ#Ô#ð &ð &ð &ð &ð &ð &ð & wØ—8’8‘:”:ÐÐÐØ×Ò˜6Ñ"Ô"Ð"Ý$Ñ&Ô&Ð&Ð&Ð&Ð&Ð&Ð&Ð&Ø�xŠx‰zŒzÐÐÐåŒ]�5Ô+Ñ,Ô,ð 	ð 	Ø×ÒÑÔÐð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	õ Œ]�<Ñ(Ô(ð 	ð 	Ø�IŠI‰KŒKˆKð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð —\’\‘^”^ˆ
ÝˆjÑÔÐØÔ Ð Ð Ð ØÔ ;Ð.Ð.Ð.Ð.ØÔ'¨1Ò,Ð,Ð,Ð,à×Ò˜6Ñ"Ô"Ð"Ý$Ñ&Ô&Ð&Ð&Ð&Ð&Ð&Ð&Ð&Ø—\’\‘^”^ˆ
ÝˆjÑÔÐØÔ'¨1Ò,Ð,Ð,Ð,àÔ×#Ò#Ñ%Ô%Ð%ð1&ð &ð &ñ &ô &ð &ð &ð &ð &ð &ð &ð &ð &ð &ð &ð &ð &ð &ð &ð &ð &ð &ð &øøøð &ð &ð &ð &ð4 —’‘”€JØÔ Ð Ð Ð ØÔÐ#Ð#Ð#ØÔ# qÒ(Ð(Ð(Ð(Ð(Ð(sÈ   Á<	CÂ&B=Â+CÂ=
C	ÃCÃ
C	ÃCÃCÃ!CÅFÆFÆFÇ<HÈH!È$H!ÉI6É6I:É=I:Ê#A4QÌL8Ì,QÌ8L<	Ì<QÌ?L<	Í QÍM=Í1QÍ=N	ÎQÎN	ÎB9QÑ
QÑQc               ƒ  óâ  ‡‡K  — t          j        t          ¦  «        5  t          t	          d¦  «        ¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5  t          t
          ¦  «         d d d ¦  «         n# 1 swxY w Y   t          ¦   «         } t          | ¦  «        Š|                      ¦   «         rJ ‚‰                     ¦   «         rJ ‚t          ¦   «         5  ‰ 	                    ¦   «         ƒ d {V —† d d d ¦  «         n# 1 swxY w Y   |                      ¦   «         sJ ‚‰                     ¦   «         sJ ‚t          ¦   «         Š‰                     ¦   «         rJ ‚‰ 
                    ¦   «          ‰                     ¦   «         sJ ‚t          j        t          ¦  «        5  ‰ 
                    ¦   «          d d d ¦  «         n# 1 swxY w Y   ‰                     ¦   «          t          j        t          ¦  «        5  ‰                     ¦   «         ƒ d {V —† d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5  ‰                     ¦   «          d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5  ‰                     ¦   «          d d d ¦  «         n# 1 swxY w Y   t!          ¦   «         Šdˆˆfd„}t#          j        ¦   «         4 ƒd {V —†}t'          d¦  «        D ],}|                     ||¦  «         t+          ¦   «         ƒ d {V —† Œ-‰4 ƒd {V —† ‰                     ¦   «          d d d ¦  «        ƒd {V —† n# 1 ƒd {V —†swxY w Y   ‰                     ¦   «         sJ ‚t+          ¦   «         ƒ d {V —† ‰dhk    sJ ‚‰4 ƒd {V —† ‰                     ¦   «          d d d ¦  «        ƒd {V —† n# 1 ƒd {V —†swxY w Y   t+          ¦   «         ƒ d {V —† ‰h d	£k    sJ ‚	 d d d ¦  «        ƒd {V —† n# 1 ƒd {V —†swxY w Y   t!          ¦   «         Št#          j        ¦   «         4 ƒd {V —†}t'          d¦  «        D ],}|                     ||¦  «         t+          ¦   «         ƒ d {V —† Œ-‰4 ƒd {V —† ‰                     d
¦  «         ‰                     ¦   «         }t/          |¦  «         |j        dk    sJ ‚|j        j        d
k    sJ ‚	 d d d ¦  «        ƒd {V —† n# 1 ƒd {V —†swxY w Y   ‰                     ¦   «         j        j        dk    sJ ‚t+          ¦   «         ƒ d {V —† ‰ddhk    sJ ‚‰4 ƒd {V —† ‰                     ¦   «          d d d ¦  «        ƒd {V —† n# 1 ƒd {V —†swxY w Y   d d d ¦  «        ƒd {V —† n# 1 ƒd {V —†swxY w Y   t#          j        ¦   «         5 }‰4 ƒd {V —† |                     ¦   «          	 ‰                     ¦   «         ƒ d {V —† ‰                     ¦   «         sJ ‚n# ‰                     ¦   «         sJ ‚w xY w	 d d d ¦  «        ƒd {V —† n# 1 ƒd {V —†swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )Nr0   rQ   Úintr   r   c              “  óÂ   •K  — ‰4 ƒd {V —† ‰                      ¦   «         ƒ d {V —† d d d ¦  «        ƒd {V —† n# 1 ƒd {V —†swxY w Y   ‰                     | ¦  «         d S rn   )r   Úadd)rQ   rD   Úfinished_waiterss    €€r   Úwaiterztest_Condition.<locals>.waiter¾  sï   øè è € Øð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	Ø—&’&‘(”(ˆNˆNˆNˆNˆNˆNˆNð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	à×Ò˜QÑÔÐÐÐs   Œ9¹
AÁArM   r   >   r   r0   r   r   )rQ   r�   r   r   )r#   r4   r5   Ú	Conditionr`   ÚStrictFIFOLockÚLockry   r   r?   r<   r:   r;   r   ÚnotifyÚ
notify_allr'   r	   r(   rO   r)   r   r!   r|   r"   Úlock_statisticsÚCancelScoperU   )rw   r…   r*   rQ   r!   ÚscoperD   r„   s         @@r   Útest_ConditionrŽ   œ  s"  øøè è € Ý	Œ•yÑ	!Ô	!ð  ð  Ý•)˜A‘,”,ÑÔÐð ð  ð  ñ  ô  ð  ð  ð  ð  ð  ð  øøøð  ð  ð  ð  å	Œ•yÑ	!Ô	!ð "ð "Ý•.Ñ!Ô!Ð!ð"ð "ð "ñ "ô "ð "ð "ð "ð "ð "ð "øøøð "ð "ð "ð "å‰Œ€AÝ�!‰Œ€AØ�xŠx‰zŒzÐÐÐØ�xŠx‰zŒzÐÐÐÝ	Ñ	Ô	ð ð Ø�iŠi‰kŒkÐÐÐÐÐÐÐðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð à�8Š8‰:Œ:ÐÐÐØ�8Š8‰:Œ:ÐÐÐå‰Œ€AØ�xŠx‰zŒzÐÐÐØ×ÒÑÔÐØ�8Š8‰:Œ:ÐÐÐÝ	Œ•|Ñ	$Ô	$ð ð Ø	×ÒÑÔÐðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð à‡I‚I�K„K€Kå	Œ•|Ñ	$Ô	$ð ð à�fŠf‰hŒhˆˆˆˆˆˆˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ 
Œ•|Ñ	$Ô	$ð ð à	�Š‰
Œ
ˆ
ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ 
Œ•|Ñ	$Ô	$ð ð à	�Š‰Œˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ ‘u”uÐð ð  ð  ð  ð  ð  ð  õ
 Ô!Ñ#Ô#ð -ð -ð -ð -ð -ð -ð - wÝ�q‘”ð 	+ð 	+ˆAØ×Ò˜v qÑ)Ô)Ð)Ý(Ñ*Ô*Ð*Ð*Ð*Ð*Ð*Ð*Ð*Ð*Øð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	Ø�HŠH‰JŒJˆJð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	à�xŠx‰zŒzÐÐÐÝ$Ñ&Ô&Ð&Ð&Ð&Ð&Ð&Ð&Ð&Ø A 3Ò&Ð&Ð&Ð&Øð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	Ø�LŠL‰NŒNˆNð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	å$Ñ&Ô&Ð&Ð&Ð&Ð&Ð&Ð&Ð&Ø 9 9 9Ò,Ð,Ð,Ð,Ð,ð-ð -ð -ñ -ô -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -øøøð -ð -ð -ð -õ ‘u”uÐÝÔ!Ñ#Ô#ð ð ð ð ð ð ð  wÝ�q‘”ð 	+ð 	+ˆAØ×Ò˜v qÑ)Ô)Ð)Ý(Ñ*Ô*Ð*Ð*Ð*Ð*Ð*Ð*Ð*Ð*Øð 	Að 	Að 	Að 	Að 	Að 	Að 	Að 	AØ�HŠH�Q‰KŒKˆKØŸš™œˆJÝ�*ÑÔÐØÔ+¨qÒ0Ð0Ð0Ð0ØÔ-Ô;¸qÒ@Ð@Ð@Ð@Ð@ð	Að 	Að 	Añ 	Aô 	Að 	Að 	Að 	Að 	Að 	Að 	Að 	Að 	Að 	Að 	Að 	Að 	Að 	Að 	Að 	Að 	Að 	Að 	Aøøøð 	Að 	Að 	Að 	Að �|Š|‰~Œ~Ô-Ô;¸qÒ@Ð@Ð@Ð@å$Ñ&Ô&Ð&Ð&Ð&Ð&Ð&Ð&Ð&Ø A q 6Ò)Ð)Ð)Ð)àð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	Ø�LŠL‰NŒNˆNð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð!ð ð ñ ô ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð øøøð ð ð ð õ* 
Ô	Ñ	Ô	ð " Øð 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"Ø�LŠL‰NŒNˆNð"Ø—f’f‘h”h�������à—x’x‘z”zÐ!Ð!Ð!Ð!ø�q—x’x‘z”zÐ!Ð!Ð!Ð!Ð!Ð!Ð!Ð!ð	"ð 	"ð 	"ñ 	"ô 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"øøøð 	"ð 	"ð 	"ð 	"ð"ð "ð "ñ "ô "ð "ð "ð "ð "ð "ð "ð "øøøð "ð "ð "ð "ð "ð "sƒ  žAÁAÁAÁ+BÂBÂBÃ.DÄDÄDÆ3GÇGÇGÈH3È3H7È:H7ÉI8É8I<É?I<ÊJ=Ê=KËKË6APÌ;M"ÍPÍ"
M,	Í,PÍ/M,	Í0>PÎ.OÏPÏ
O	ÏPÏ"O	Ï#!PÐ
P!Ð$P!ÑAV$ÒAS?Ó-V$Ó?
T		Ô	V$ÔT		ÔAV$ÕVÕ/V$Ö
V	ÖV$ÖV	ÖV$Ö$
V.Ö1V.×	Y$×Y×'XØYØX0Ø0YØ4Y$Ù
Y	ÙY$ÙY	ÙY$Ù$Y(Ù+Y()Úopen_memory_channel)ÚAsyncContextManagerMixinc                  ó.   — e Zd Zd
d„Zdd„Zdd„Zdd„Zd	S )ÚChannelLock1Úcapacityr�   r   r   c                ó¨   — t          d          |¦  «        \  | _        | _        t          |dz
  ¦  «        D ]}| j                             d ¦  «         Œd S ©Nr0   )r�   r_   r~   rO   Úsend_nowait)Úselfr“   Ú_s      r   Ú__init__zChannelLock1.__init__ø  sZ   € Ý,¨TÔ2°8Ñ<Ô<‰ˆŒ�”Ý�x !‘|Ñ$Ô$ð 	%ð 	%ˆAØŒF×Ò˜tÑ$Ô$Ð$Ð$ð	%ð 	%r   c                ó:   — | j                              d ¦  «         d S rn   ©r_   r–   ©r—   s    r   r<   zChannelLock1.acquire_nowaitý  ó   € ØŒ×Ò˜4Ñ Ô Ð Ð Ð r   c              ƒ  óJ   K  — | j                              d ¦  «        ƒ d {V —† d S rn   )r_   Úsendrœ   s    r   r?   zChannelLock1.acquire   s2   è è € ØŒf�kŠk˜$ÑÔÐÐÐÐÐÐÐÐÐr   c                ó8   — | j                              ¦   «          d S rn   ©r~   Úreceive_nowaitrœ   s    r   r;   zChannelLock1.release  ó   € ØŒ×ÒÑÔÐÐÐr   N)r“   r�   r   r   r   ©ro   Ú
__module__Ú__qualname__r™   r<   r?   r;   © r   r   r’   r’   ÷  sd   € € € € € ð%ð %ð %ð %ð
!ð !ð !ð !ð ð  ð  ð  ð ð  ð  ð  ð  ð  r   r’   c                  ó.   — e Zd Zdd„Zdd„Zdd„Zdd„ZdS )	ÚChannelLock2r   r   c                ó~   — t          d          d¦  «        \  | _        | _        | j                             d ¦  «         d S ©Né
   )r�   r_   r~   r–   rœ   s    r   r™   zChannelLock2.__init__  s8   € Ý,¨TÔ2°2Ñ6Ô6‰ˆŒ�”ØŒ×Ò˜4Ñ Ô Ð Ð Ð r   c                ó8   — | j                              ¦   «          d S rn   r¡   rœ   s    r   r<   zChannelLock2.acquire_nowait  r£   r   c              ƒ  óH   K  — | j                              ¦   «         ƒ d {V —† d S rn   )r~   Úreceiverœ   s    r   r?   zChannelLock2.acquire  s0   è è € ØŒf�nŠnÑÔÐÐÐÐÐÐÐÐÐr   c                ó:   — | j                              d ¦  «         d S rn   r›   rœ   s    r   r;   zChannelLock2.release  r�   r   Nr   r¤   r§   r   r   r©   r©     sd   € € € € € ð!ð !ð !ð !ð ð  ð  ð  ðð ð ð ð!ð !ð !ð !ð !ð !r   r©   c                  ó.   — e Zd Zdd„Zdd„Zdd„Zdd„ZdS )	ÚChannelLock3r   r   c                óX   — t          d          d¦  «        \  | _        | _        d| _        d S )Nr   F)r�   r_   r~   Úacquiredrœ   s    r   r™   zChannelLock3.__init__  s)   € Ý,¨TÔ2°1Ñ5Ô5‰ˆŒ�”ð ˆŒˆˆr   c                ó&   — | j         rJ ‚d| _         d S ©NT)r´   rœ   s    r   r<   zChannelLock3.acquire_nowait  s   € Ø”=Ð Ð Ð ØˆŒˆˆr   c              ƒ  óœ   K  — | j         r"| j                             d ¦  «        ƒ d {V —† d S d| _         t          j        ¦   «         ƒ d {V —† d S r¶   )r´   r_   rŸ   r	   Ú
checkpointrœ   s    r   r?   zChannelLock3.acquire"  sj   è è € ØŒ=ð 	%Ø”&—+’+˜dÑ#Ô#Ð#Ð#Ð#Ð#Ð#Ð#Ð#Ð#Ð#à ˆDŒMÝÔ"Ñ$Ô$Ð$Ð$Ð$Ð$Ð$Ð$Ð$Ð$Ð$r   c                ó†   — 	 | j                              ¦   «          d S # t          j        $ r | j        sJ ‚d| _        Y d S w xY w)NF)r~   r¢   r	   rA   r´   rœ   s    r   r;   zChannelLock3.release)  sZ   € ð	"ØŒF×!Ò!Ñ#Ô#Ð#Ð#Ð#øÝÔð 	"ð 	"ð 	"Ø”=Ð Ð Ð Ø!ˆDŒMˆMˆMˆMð	"øøøs   ‚ �A ¿A Nr   r¤   r§   r   r   r²   r²     sd   € € € € € ðð ð ð ðð ð ð ð%ð %ð %ð %ð"ð "ð "ð "ð "ð "r   r²   c                 ó    — t          d¦  «        S r•   )r2   r§   r   r   rq   rq   2  s   € �O˜AÑÔ€ r   c                 ó    — t          d¦  «        S r•   )r`   r§   r   r   rq   rq   3  s   € �I�a‰LŒL€ r   c                 ó    — t          d¦  «        S r«   ©r’   r§   r   r   rq   rq   6  s   € �L˜ÑÔ€ r   c                 ó    — t          d¦  «        S r•   r½   r§   r   r   rq   rq   7  s   € �L˜‰OŒO€ r   )zCapacityLimiter(1)zSemaphore(1)rˆ   r‡   zChannelLock1(10)zChannelLock1(1)r©   r²   Úlock_factoryr   ÚLockLikeÚLockFactoryc              ƒ  ó.  ‡‡‡K  — dŠd}dŠdŠd
ˆˆˆfd	„}t          j        ¦   «         4 ƒd {V —†} | ¦   «         }t          |¦  «        D ]}|                     ||¦  «         Œ	 d d d ¦  «        ƒd {V —† n# 1 ƒd {V —†swxY w Y   ‰rJ ‚‰‰|z  k    sJ ‚d S )Nr¬   rL   Fr   Ú	lock_likerÀ   r   r   c              “  ó  •K  — t          ‰¦  «        D ]q}| 4 ƒd {V —† ‰dz  Š‰rJ ‚dŠt          j        ¦   «         ƒ d {V —† t          j        ¦   «         ƒ d {V —† ‰sJ ‚dŠd d d ¦  «        ƒd {V —† n# 1 ƒd {V —†swxY w Y   Œrd S )Nr0   TF)rO   r	   r¸   )rÃ   r˜   ÚLOOPSÚacquiresÚin_critical_sections     €€€r   Úworkerz+test_generic_lock_exclusion.<locals>.workera  sK  øè è € å�u‘”ð 	,ð 	,ˆAØ ð ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,Ø˜A‘�Ø.Ð.Ð.Ð.Ø&*Ð#ÝÔ&Ñ(Ô(Ð(Ð(Ð(Ð(Ð(Ð(Ð(ÝÔ&Ñ(Ô(Ð(Ð(Ð(Ð(Ð(Ð(Ð(Ø*Ð*Ð*Ð*Ø&+Ð#ð,ð ,ð ,ñ ,ô ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,øøøð ,ð ,ð ,ð ,øð	,ð 	,s   �AA3Á3
A=	Â A=	)rÃ   rÀ   r   r   )r	   r(   rO   r)   )	r¿   ÚWORKERSrÈ   r*   rÃ   r˜   rÅ   rÆ   rÇ   s	         @@@r   Útest_generic_lock_exclusionrÊ   Z  sj  øøøè è € à€EØ€GØÐØ€Hð
,ð 
,ð 
,ð 
,ð 
,ð 
,ð 
,ð 
,õ Ô!Ñ#Ô#ð 2ð 2ð 2ð 2ð 2ð 2ð 2 wØ �L‘N”Nˆ	Ý�w‘”ð 	2ð 	2ˆAØ×Ò˜v yÑ1Ô1Ð1Ð1ð	2ð2ð 2ð 2ñ 2ô 2ð 2ð 2ð 2ð 2ð 2ð 2ð 2ð 2ð 2ð 2ð 2ð 2ð 2ð 2ð 2ð 2ð 2ð 2øøøð 2ð 2ð 2ð 2ð #Ð"Ð"Ð"Ø�u˜w‘Ò&Ð&Ð&Ð&Ð&Ð&s   ¯3A5Á5
A?ÂA?c              ƒ  óš  ‡‡‡K  — g Šg ŠdŠdˆˆˆfd„} | ¦   «         }t          j        ¦   «         4 ƒd {V —†}|                     |d	|¦  «         |                     |d
|¦  «         |                     |d|¦  «         d d d ¦  «        ƒd {V —† n# 1 ƒd {V —†swxY w Y   t          ‰¦  «        D ]}‰d|z  d|d	z   z  …         ‰k    sJ ‚Œd S )NrL   Únamer�   rÃ   rÀ   r   r   c              “  óÜ   •K  — ‰                      | ¦  «         t          ‰¦  «        D ]C}|4 ƒd {V —† ‰                      | ¦  «         d d d ¦  «        ƒd {V —† n# 1 ƒd {V —†swxY w Y   ŒDd S rn   )r   rO   )rÌ   rÃ   r˜   rÅ   Úinitial_orderr   s      €€€r   Úloopyz.test_generic_lock_fifo_fairness.<locals>.loopy}  s  øè è € à×Ò˜TÑ"Ô"Ð"Ý�u‘”ð 	$ð 	$ˆAØ ð $ð $ð $ð $ð $ð $ð $ð $Ø—’˜dÑ#Ô#Ð#ð$ð $ð $ñ $ô $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $øøøð $ð $ð $ð $øð	$ð 	$s   ²AÁ
A$	Á'A$	r0   r   rM   )rÌ   r�   rÃ   rÀ   r   r   )r	   r(   r)   rO   )r¿   rÏ   rÃ   r*   rQ   rÅ   rÎ   r   s        @@@r   Útest_generic_lock_fifo_fairnessrÐ   w  s›  øøøè è € à€MØ€FØ€Eð$ð $ð $ð $ð $ð $ð $ð $ð �‘”€IÝÔ!Ñ#Ô#ð 0ð 0ð 0ð 0ð 0ð 0ð 0 wØ×Ò˜5 ! YÑ/Ô/Ð/Ø×Ò˜5 ! YÑ/Ô/Ð/Ø×Ò˜5 ! YÑ/Ô/Ð/ð0ð 0ð 0ñ 0ô 0ð 0ð 0ð 0ð 0ð 0ð 0ð 0ð 0ð 0ð 0ð 0ð 0ð 0ð 0ð 0ð 0ð 0ð 0øøøð 0ð 0ð 0ð 0õ �5‰\Œ\ð <ð <ˆØ�a˜!‘e˜a 1 q¡5™kÐ)Ô*¨mÒ;Ð;Ð;Ð;Ð;ð<ð <s   ·ABÂ
BÂBc              ƒ  ód  ‡‡K  —  | ¦   «         Šg Šdˆˆfd„}t          j        ¦   «         4 ƒd {V —†}‰                     ¦   «          |                     |¦  «         t	          ¦   «         ƒ d {V —† ‰dgk    sJ ‚‰                     ¦   «          d d d ¦  «        ƒd {V —† d S # 1 ƒd {V —†swxY w Y   d S )Nr   r   c               “  óº   •K  — ‰                      d¦  «         ‰ 4 ƒd {V —† 	 d d d ¦  «        ƒd {V —† n# 1 ƒd {V —†swxY w Y   ‰                      d¦  «         d S rb   )r   )rÃ   r   s   €€r   Ú
lock_takerzCtest_generic_lock_acquire_nowait_blocks_acquire.<locals>.lock_taker—  sé   øè è € Ø�Š�iÑ Ô Ð Øð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	Øð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	à�Š�jÑ!Ô!Ð!Ð!Ð!s   ¡5µ
?Á?rc   r   )r	   r(   r<   r)   r   r;   )r¿   rÓ   r*   rÃ   r   s      @@r   Ú/test_generic_lock_acquire_nowait_blocks_acquirerÔ   �  sr  øøè è € ð �‘”€Ià€Fð"ð "ð "ð "ð "ð "ð "õ Ô!Ñ#Ô#ð ð ð ð ð ð ð  wØ× Ò Ñ"Ô"Ð"Ø×Ò˜:Ñ&Ô&Ð&Ý$Ñ&Ô&Ð&Ð&Ð&Ð&Ð&Ð&Ð&Ø˜)˜Ò$Ð$Ð$Ð$Ø×ÒÑÔÐðð ð ñ ô ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   ±ABÂ
B)Â,B)c               ƒ  ó(  K  — t           rJ ‚t                               ¦   «         } t                               ¦   «         4 ƒd{V —†}|                     | j        ¦  «         ddd¦  «        ƒd{V —† n# 1 ƒd{V —†swxY w Y   t          j        t          | j	        j
        d         ¦  «        ¦  «        }t          j        t          j        d|› d�¬¦  «        5  |                      ¦   «         ƒ d{V —† ddd¦  «         n# 1 swxY w Y   t           rJ ‚dS )z‡Test that trying to acquire a lock whose owner has exited raises an error.
    see https://github.com/python-trio/trio/issues/3035
    Nr   ú.^Owner of this lock exited without releasing: ú$r   )r
   Útriorˆ   r(   r)   r?   ÚreÚescapeÚstrÚ_lotÚ	broken_byr#   r4   ÚBrokenResourceError)Úlockr*   Ú	owner_strs      r   Útest_lock_acquire_unowned_lockrá   ¥  sÌ  è è € õ *Ð)Ð)Ð)Ý�9Š9‰;Œ;€DÝ× Ò Ñ"Ô"ð )ð )ð )ð )ð )ð )ð ) gØ×Ò˜4œ<Ñ(Ô(Ð(ð)ð )ð )ñ )ô )ð )ð )ð )ð )ð )ð )ð )ð )ð )ð )ð )ð )ð )ð )ð )ð )ð )ð )øøøð )ð )ð )ð )å”	�#˜dœiÔ1°!Ô4Ñ5Ô5Ñ6Ô6€IÝ	ŒÝÔ ØK¸yÐKÐKÐKð
ñ 
ô 
ð ð ð �lŠl‰nŒnÐÐÐÐÐÐÐð	ð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ
 *Ð)Ð)Ð)Ð)Ð)s$   ÁA1Á1
A;Á>A;ÃC>Ã>DÄDc               ƒ  óÎ  K  — t           rJ ‚t                               ¦   «         } t          t	          t          j        d¬¦  «        ¦  «        5  t                               ¦   «         4 ƒd{V —†}|                     | j        ¦  «         |                     | j        ¦  «         ddd¦  «        ƒd{V —† n# 1 ƒd{V —†swxY w Y   ddd¦  «         n# 1 swxY w Y   t           rJ ‚dS )z�Test for error if awaiting on a lock whose owner exits without releasing.
    see https://github.com/python-trio/trio/issues/3035rÖ   r   N)	r
   rØ   rˆ   r   r   rÞ   r(   r)   r?   )rß   r*   s     r   Útest_lock_multiple_acquirerã   ¶  s¡  è è € õ *Ð)Ð)Ð)Ý�9Š9‰;Œ;€DÝ	ÝÝÔ$ØBð	
ñ 	
ô 	
ñ
ô 
ð -ð -õ ×$Ò$Ñ&Ô&ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-¨'Ø×Ò˜tœ|Ñ,Ô,Ð,Ø×Ò˜tœ|Ñ,Ô,Ð,ð	-ð 	-ð 	-ñ 	-ô 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-øøøð 	-ð 	-ð 	-ð 	-ð-ð -ð -ñ -ô -ð -ð -ð -ð -ð -ð -øøøð -ð -ð -ð -õ *Ð)Ð)Ð)Ð)Ð)s6   Á CÁ-5B4Â"CÂ4
B>	Â>CÃB>	ÃCÃCÃCc               ƒ  ó²  K  — t           rJ ‚d } t                               ¦   «         }|                     ¦   «          t	          j        ¦   «         |j        git           k    sJ ‚t                               ¦   «         4 ƒd {V —†}|                     |j	        ¦  «         t          ¦   «         ƒ d {V —† |                     ¦   «          t          t           ¦  «        dk    sJ ‚t          t          t           ¦  «        ¦  «        } t           |          |j        gk    sJ ‚	 d d d ¦  «        ƒd {V —† n# 1 ƒd {V —†swxY w Y   |j        j        | gk    sJ ‚t           rJ ‚d S r•   )r
   rØ   rˆ   r<   r	   r>   rÜ   r(   r)   r?   r   r;   rV   ÚnextÚiterrÝ   )Ú
child_taskrß   r*   s      r   Útest_lock_handoverrè   Ç  s  è è € Ý)Ð)Ð)Ð)Ø"€JÝ�9Š9‰;Œ;€Dð 	×ÒÑÔÐåÔÑÔØŒIð
ðõ 
$ò	$ð $ð $ð $õ × Ò Ñ"Ô"ð 
Eð 
Eð 
Eð 
Eð 
Eð 
Eð 
E gØ×Ò˜4œ<Ñ(Ô(Ð(Ý$Ñ&Ô&Ð&Ð&Ð&Ð&Ð&Ð&Ð&ð 	�Š‰Œˆõ Õ-Ñ.Ô.°!Ò3Ð3Ð3Ð3Ý�$Õ9Ñ:Ô:Ñ;Ô;ˆ
Ý)¨*Ô5¸$¼)¸ÒDÐDÐDÐDÐDð
Eð 
Eð 
Eñ 
Eô 
Eð 
Eð 
Eð 
Eð 
Eð 
Eð 
Eð 
Eð 
Eð 
Eð 
Eð 
Eð 
Eð 
Eð 
Eð 
Eð 
Eð 
Eð 
Eøøøð 
Eð 
Eð 
Eð 
Eð Œ9Ô : ,Ò.Ð.Ð.Ð.Ý)Ð)Ð)Ð)Ð)Ð)s   Â BD*Ä*
D4Ä7D4r   )rl   rs   r   r   )r¿   rÁ   r   r   )8Ú
__future__r   rÙ   rz   Úcollections.abcr   Útypingr   r#   Útrio.testingr   r   Ú r	   Ú_core._parking_lotr
   Ú_syncÚ	_timeoutsr   Útestingr   r   r+   rF   rJ   rR   rZ   r]   rh   rk   ÚmarkÚparametrizerˆ   r‡   r   rŽ   Ú_channelr�   r�   r’   r©   r²   Úlock_factoriesÚlock_factory_namesÚgeneric_lock_testr2   r`   rÀ   Ú__annotations__rÁ   rÊ   rÐ   rÔ   rá   rã   rè   r§   r   r   ú<module>rù      s  ðØ "Ð "Ð "Ð "Ð "Ð "Ð "à 	€	€	€	Ø €€€Ø $Ð $Ð $Ð $Ð $Ð $Ø Ð Ð Ð Ð Ð à €€€à -Ð -Ð -Ð -Ð -Ð -Ð -Ð -à Ð Ð Ð Ð Ð Ø ;Ð ;Ð ;Ð ;Ð ;Ð ;Ø Ð Ð Ð Ø %Ð %Ð %Ð %Ð %Ð %Ø @Ð @Ð @Ð @Ð @Ð @Ð @Ð @ð!Dð !Dð !Dð !DðHC&ð C&ð C&ð C&ðL%ð %ð %ð %ð !1ð !1ð !1ð !1ðJ0ð 0ð 0ð 0ðJ&ð J&ð J&ð J&ðZ--ð --ð --ð --ð`ð ð ð ð" „×Ò˜ T¨>Ð$:Ð@VÐ@VÐÑWÔWðJ)ð J)ð J)ñ XÔWðJ)ðZQ"ð Q"ð Q"ð Q"ðh +Ð *Ð *Ð *Ð *Ð *Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,ð ð  ð  ð  ð  Ð+ñ  ô  ð  ð !ð !ð !ð !ð !Ð+ñ !ô !ð !ð"ð "ð "ð "ð "Ð+ñ "ô "ð "ð8 ÐØÐØØØÐØÐØØð	€ð	ð 	ð 	Ð ð ”K×+Ò+ØØØð ,ñ ô Ð ð Øñà
ñð ñð ñ	ð
 ñð ñð 	ð ð ð ñ ð " " h ,Ô/€Ð /Ð /Ð /Ñ /ð
 ð'ð 'ð 'ñ Ôð'ð8 ð<ð <ð <ñ Ôð<ð. ðð ð ñ Ôðð**ð *ð *ð *ð"*ð *ð *ð *ð"*ð *ð *ð *ð *ð *r   