§
    ‹Ÿjs.  ã                   óT  — d dl Z d dlZd dlZd dlZd dlZd dlZd dlmZ d dlZ	d dl	m
Z
 d dlmZ d dlmZmZmZ d dlmZmZmZmZ d dlmZ d dlmZmZ  G d	„ d
e¦  «        Z G d„ dej        ¦  «        Z G d„ dej        ¦  «        Z G d„ dej        ¦  «        Z G d„ de¦  «        ZdS )é    N)ÚThreadPoolExecutor)Úgen)ÚIOLoop)ÚAsyncIOLoopÚto_asyncio_futureÚAddThreadSelectorEventLoop)ÚAsyncTestCaseÚgen_testÚsetup_with_context_managerÚAsyncHTTPTestCase)Úignore_deprecation)ÚApplicationÚRequestHandlerc                   ób   — e Zd Zed„ ¦   «         Zd„ Zed„ ¦   «         Zed„ ¦   «         Zd„ Z	d„ Z
dS )ÚAsyncIOLoopTestc                 ó   — | j         j        S ©N)Úio_loopÚasyncio_loop©Úselfs    úf/var/www/finuniver-perm.ru/html/student/venv/lib/python3.11/site-packages/tornado/test/asyncio_test.pyr   zAsyncIOLoopTest.asyncio_loop(   s   € àŒ|Ô(Ð(ó    c                 ó~   ‡ — ˆ fd„}‰ j                               |¦   «         ¦  «         ‰                      ¦   «          d S )Nc               “   ób   •K  — t          j        ¦   «                              ‰ j        ¦  «         d S r   )ÚasyncioÚget_event_loopÚ	call_soonÚstopr   s   €r   Úadd_callbackz;AsyncIOLoopTest.test_asyncio_callback.<locals>.add_callback.   s,   øè è € ÝÔ"Ñ$Ô$×.Ò.¨t¬yÑ9Ô9Ð9Ð9Ð9r   )r   Úrun_until_completeÚwait)r   r    s   ` r   Útest_asyncio_callbackz%AsyncIOLoopTest.test_asyncio_callback,   sL   ø€ ð	:ð 	:ð 	:ð 	:ð 	:ð 	Ô×,Ò,¨\¨\©^¬^Ñ<Ô<Ð<Ø�	Š	‰Œˆˆˆr   c              #   ó®   K  — t          j        t          j        ¦   «                              d d„ ¦  «        ¦  «        V —}|                      |d¦  «         d S )Nc                  ó   — dS ©Né*   © r(   r   r   ú<lambda>z5AsyncIOLoopTest.test_asyncio_future.<locals>.<lambda>9   s   € À2€ r   r'   )r   Úensure_futurer   Úrun_in_executorÚassertEqual)r   Úxs     r   Útest_asyncio_futurez#AsyncIOLoopTest.test_asyncio_future4   s`   è è € õ Ô'ÝÔ"Ñ$Ô$×4Ò4°T¸:¸:ÑFÔFñ
ô 
ð 
ð 
ˆð 	×Ò˜˜BÑÔÐÐÐr   c              #   óx   K  — t           j        d„ ¦   «         } |¦   «         V —}|                      |d¦  «         d S )Nc               3   ój   K  — t          j        ¦   «         } |                      d d„ ¦  «        E d {V —†}|S )Nc                  ó   — dS r&   r(   r(   r   r   r)   zDAsyncIOLoopTest.test_asyncio_yield_from.<locals>.f.<locals>.<lambda>B   s   € ÀB€ r   )r   r   r+   )Ú
event_loopr-   s     r   Úfz2AsyncIOLoopTest.test_asyncio_yield_from.<locals>.f?   sB   è è € å Ô/Ñ1Ô1ˆJØ%×5Ò5°d¸J¸JÑGÔGÐGÐGÐGÐGÐGÐGˆAØˆHr   r'   )r   Ú	coroutiner,   )r   r3   Úresults      r   Útest_asyncio_yield_fromz'AsyncIOLoopTest.test_asyncio_yield_from=   sN   è è € å	Œð	ð 	ñ 
Œð	ð
 �q‘s”s��ˆØ×Ò˜ Ñ$Ô$Ð$Ð$Ð$r   c                 óª  ‡‡— t           j        d„ ¦   «         Šˆfd„Šˆfd„}ˆfd„}|                      | j                             ‰¦  «        d¦  «         |                      | j                             |¦  «        d¦  «         |                      | j                             |¦  «        d¦  «         |                      | j                              ‰¦   «         ¦  «        d¦  «         |                      | j                              |¦   «         ¦  «        d¦  «         |                      | j                              |¦   «         ¦  «        d¦  «         d S )Nc               3   óJ   K  — t           j        V — t          j        d¦  «        ‚r&   )r   ÚmomentÚReturnr(   r   r   Útornado_coroutinez?AsyncIOLoopTest.test_asyncio_adapter.<locals>.tornado_coroutineM   s"   è è € å”*ÐÐÐÝ”*˜R‘.”.Ð r   c               “   ó(   •K  —  ‰ ¦   «         ƒ d {V —†S r   r(   ©r;   s   €r   Ú native_coroutine_without_adapterzNAsyncIOLoopTest.test_asyncio_adapter.<locals>.native_coroutine_without_adapterR   s(   øè è € Ø*Ð*Ñ,Ô,Ð,Ð,Ð,Ð,Ð,Ð,Ð,r   c               “   óB   •K  — t           ‰ ¦   «         ¦  «        ƒ d {V —†S r   ©r   r=   s   €r   Únative_coroutine_with_adapterzKAsyncIOLoopTest.test_asyncio_adapter.<locals>.native_coroutine_with_adapterU   s1   øè è € Ý*Ð+<Ð+<Ñ+>Ô+>Ñ?Ô?Ð?Ð?Ð?Ð?Ð?Ð?Ð?r   c               “   óB   •K  — t           ‰ ¦   «         ¦  «        ƒ d {V —†S r   r@   )r>   s   €r   Únative_coroutine_with_adapter2zLAsyncIOLoopTest.test_asyncio_adapter.<locals>.native_coroutine_with_adapter2Y   s1   øè è € Ý*Ð+KÐ+KÑ+MÔ+MÑNÔNÐNÐNÐNÐNÐNÐNÐNr   r'   )r   r4   r,   r   Úrun_syncr   r!   )r   rA   rC   r>   r;   s      @@r   Útest_asyncio_adapterz$AsyncIOLoopTest.test_asyncio_adapterH   sª  øø€ õ
 
Œð	!ð 	!ñ 
Œð	!ð	-ð 	-ð 	-ð 	-ð 	-ð	@ð 	@ð 	@ð 	@ð 	@ð	Oð 	Oð 	Oð 	Oð 	Oð 	×Ò˜œ×.Ò.Ð/OÑPÔPÐRTÑUÔUÐUØ×Ò˜œ×.Ò.Ð/LÑMÔMÈrÑRÔRÐRØ×Ò˜œ×.Ò.Ð/MÑNÔNÐPRÑSÔSÐSð 	×ÒØÔ×0Ò0Ð1QÐ1QÑ1SÔ1SÑTÔTØñ	
ô 	
ð 	
ð 	×ÒØÔ×0Ò0Ð1NÐ1NÑ1PÔ1PÑQÔQØñ	
ô 	
ð 	
ð 	×ÒØÔ×0Ò0Ð1OÐ1OÑ1QÔ1QÑRÔRØñ	
ô 	
ð 	
ð 	
ð 	
r   c                 ó–   — t          t          j        ¦   «         ¦  «        }|                     ¦   «          |                     ¦   «          d S r   )r   r   r   Úclose©r   Úloops     r   Ú test_add_thread_close_idempotentz0AsyncIOLoopTest.test_add_thread_close_idempotentp   s6   € Ý)­'Ô*@Ñ*BÔ*BÑCÔCˆØ�
Š
‰ŒˆØ�
Š
‰Œˆˆˆr   N)Ú__name__Ú
__module__Ú__qualname__Úpropertyr   r#   r
   r.   r6   rE   rJ   r(   r   r   r   r   '   s‘   € € € € € Øð)ð )ñ „Xð)ðð ð ð ð ð  ñ „Xð ð ð%ð %ñ „Xð%ð&
ð &
ð &
ðPð ð ð ð r   r   c                   ó&   — e Zd Zd„ Zd„ Zd„ Zd„ ZdS )ÚLeakTestc                 óJ   — t          d¬¦  «                             ¦   «          d S )NF©Úmake_current)r   rG   r   s    r   ÚsetUpzLeakTest.setUpw   s%   € å Ð'Ñ'Ô'×-Ò-Ñ/Ô/Ð/Ð/Ð/r   c                 óœ   — 	 t          j        ¦   «                              ¦   «         }|                     ¦   «          d S # t          $ r Y d S w xY wr   )r   Úget_event_loop_policyr   rG   Ú	ExceptionrH   s     r   ÚtearDownzLeakTest.tearDown{   sX   € ð	ÝÔ0Ñ2Ô2×AÒAÑCÔCˆDð
 �JŠJ‰LŒLˆLˆLˆLøõ	 ð 	ð 	ð 	àˆDˆDð	øøøs   ‚%= ½
AÁ
Ac                 óŽ  — t          t          j        ¦  «        }t          d¦  «        D ]i}t	          j        ¦   «         5  t	          j        dt          ¦  «         t          ¦   «         }| 	                    ¦   «          d d d ¦  «         n# 1 swxY w Y   Œjt          t          j        ¦  «        |z
  }|  
                    |d¦  «         d S )Né
   Úignorer   )Úlenr   Ú_ioloop_for_asyncioÚrangeÚwarningsÚcatch_warningsÚsimplefilterÚDeprecationWarningr   rG   r,   ©r   Ú
orig_countÚirI   Ú	new_counts        r   Útest_ioloop_close_leakzLeakTest.test_ioloop_close_leak„   sé   € Ý�Ô3Ñ4Ô4ˆ
Ý�r‘”ð 	ð 	ˆAåÔ(Ñ*Ô*ð ð ÝÔ% hÕ0BÑCÔCÐCÝ"‘}”}�Ø—
’
‘”�ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð øõ �Ô2Ñ3Ô3°jÑ@ˆ	Ø×Ò˜ AÑ&Ô&Ð&Ð&Ð&s   ¾=BÂB	ÂB	c                 ó¨  — t          t          j        ¦  «        }t          d¦  «        D ]v}t	          j        ¦   «         }|                     t          j        ¦  «         |                     |j        ¦  «         | 	                    ¦   «          | 
                    ¦   «          Œwt          t          j        ¦  «        |z
  }|                      |d¦  «         d S )NrZ   é   )r\   r   r]   r^   r   Únew_event_loopr   Úcurrentr   Úrun_foreverrG   r,   rc   s        r   Útest_asyncio_close_leakz LeakTest.test_asyncio_close_leak�   s±   € Ý�Ô3Ñ4Ô4ˆ
Ý�r‘”ð 	ð 	ˆAåÔ)Ñ+Ô+ˆDØ�NŠN�6œ>Ñ*Ô*Ð*Ø�NŠN˜4œ9Ñ%Ô%Ð%Ø×ÒÑÔÐØ�JŠJ‰LŒLˆLˆLÝ�Ô2Ñ3Ô3°jÑ@ˆ	ð 	×Ò˜ AÑ&Ô&Ð&Ð&Ð&r   N)rK   rL   rM   rT   rX   rg   rm   r(   r   r   rP   rP   v   sP   € € € € € ð0ð 0ð 0ðð ð ð	'ð 	'ð 	'ð'ð 'ð 'ð 'ð 'r   rP   c                   ó2   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚSelectorThreadLeakTestc                 ó‚   — t          j        |                      ¦   «         ¦  «         t          j        ¦   «         | _        d S r   )r   ÚrunÚdummy_tornado_coroutineÚ	threadingÚactive_countÚorig_thread_countr   s    r   rT   zSelectorThreadLeakTest.setUp    s7   € õ 	Œ�D×0Ò0Ñ2Ô2Ñ3Ô3Ð3Ý!*Ô!7Ñ!9Ô!9ˆÔÐÐr   c                 óz  — t          j         ¦   «         dz   }t          j         ¦   «         |k     rdt          t          j        ¦   «         ¦  «        }t	          |¦  «        | j        k    rn+t          j        d¦  «         t          j         ¦   «         |k     °d|                      t	          |¦  «        | j        |¦  «         d S )Nri   gš™™™™™¹?)ÚtimeÚlistrs   Ú	enumerater\   ru   ÚsleepÚassertLessEqual)r   ÚdeadlineÚthreadss      r   Úassert_no_thread_leakz,SelectorThreadLeakTest.assert_no_thread_leak¦   sš   € õ ”9‘;”; ‘?ˆÝŒi‰kŒk˜HÒ$Ð$Ý�9Ô.Ñ0Ô0Ñ1Ô1ˆGÝ�7‰|Œ|˜tÔ5Ò5Ð5ØÝŒJ�s‰OŒOˆOõ	 Œi‰kŒk˜HÒ$Ð$ð
 	×Ò�S ™\œ\¨4Ô+AÀ7ÑKÔKÐKÐKÐKr   c              ƒ   ó0   K  — t          j        ¦   «          d S r   )r   rk   r   s    r   rr   z.SelectorThreadLeakTest.dummy_tornado_coroutine´   s   è è € åŒÑÔÐÐÐr   c                 óž   — t          d¦  «        D ](}t          j        |                      ¦   «         ¦  «         Œ)|                      ¦   «          d S ©NrZ   )r^   r   rq   rr   r~   )r   re   s     r   Útest_asyncio_runz'SelectorThreadLeakTest.test_asyncio_run¸   sN   € Ý�r‘”ð 	8ð 	8ˆAåŒK˜×4Ò4Ñ6Ô6Ñ7Ô7Ð7Ð7Ø×"Ò"Ñ$Ô$Ð$Ð$Ð$r   c                 ó<  — t          d¦  «        D ]w}t          j        ¦   «         }|                     |                      ¦   «         ¦  «         |                     |                     ¦   «         ¦  «         |                     ¦   «          Œx|                      ¦   «          d S r�   )r^   r   rj   r!   rr   Úshutdown_asyncgensrG   r~   ©r   re   rI   s      r   Útest_asyncio_manualz*SelectorThreadLeakTest.test_asyncio_manual¾   sŒ   € Ý�r‘”ð 	ð 	ˆAÝÔ)Ñ+Ô+ˆDØ×#Ò# D×$@Ò$@Ñ$BÔ$BÑCÔCÐCà×#Ò# D×$;Ò$;Ñ$=Ô$=Ñ>Ô>Ð>Ø�JŠJ‰LŒLˆLˆLØ×"Ò"Ñ$Ô$Ð$Ð$Ð$r   c                 óÎ   — t          d¦  «        D ]@}t          d¬¦  «        }|                     | j        ¦  «         |                     ¦   «          ŒA|                      ¦   «          d S )NrZ   FrR   )r^   r   rD   rr   rG   r~   r…   s      r   Útest_tornadoz#SelectorThreadLeakTest.test_tornadoÇ   se   € Ý�r‘”ð 	ð 	ˆAõ  uÐ-Ñ-Ô-ˆDØ�MŠM˜$Ô6Ñ7Ô7Ð7Ø�JŠJ‰LŒLˆLˆLØ×"Ò"Ñ$Ô$Ð$Ð$Ð$r   N)	rK   rL   rM   rT   r~   rr   r‚   r†   rˆ   r(   r   r   ro   ro   ž   sq   € € € € € ð:ð :ð :ðLð Lð Lðð ð ð%ð %ð %ð%ð %ð %ð%ð %ð %ð %ð %r   ro   c                   ó,   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚAnyThreadEventLoopPolicyTestc                 óÌ   — t          | t          ¦   «         ¦  «         t          j        j        j        | _        t	          j        ¦   «         | _        t          d¦  «        | _	        d S )Nri   )
r   r   ÚtornadoÚplatformr   ÚAnyThreadEventLoopPolicyrV   Úorig_policyr   Úexecutorr   s    r   rT   z"AnyThreadEventLoopPolicyTest.setUpÒ   sU   € Ý" 4Õ);Ñ)=Ô)=Ñ>Ô>Ð>õ ÔÔ$Ô=ð 	Ô%õ #Ô8Ñ:Ô:ˆÔÝ*¨1Ñ-Ô-ˆŒˆˆr   c                 ój   — t          j        | j        ¦  «         | j                             ¦   «          d S r   )r   Úset_event_loop_policyr�   r�   Úshutdownr   s    r   rX   z%AnyThreadEventLoopPolicyTest.tearDownÜ   s0   € ÝÔ% dÔ&6Ñ7Ô7Ð7ØŒ×ÒÑ Ô Ð Ð Ð r   c                 ód   — d„ }| j                              |¦  «        }|                     ¦   «         S )Nc                  óT   — t          j        ¦   «         } |                      ¦   «          | S )a#  Get the event loop. Close it if one is returned.

            Returns the (closed) event loop. This is a silly thing
            to do and leaves the thread in a broken state, but it's
            enough for this test. Closing the loop avoids resource
            leak warnings.
            ©r   r   rG   )rI   s    r   Úget_and_close_event_loopzWAnyThreadEventLoopPolicyTest.get_event_loop_on_thread.<locals>.get_and_close_event_loopá   s$   € õ Ô)Ñ+Ô+ˆDØ�JŠJ‰LŒLˆLØˆKr   )r�   Úsubmitr5   )r   r—   Úfutures      r   Úget_event_loop_on_threadz5AnyThreadEventLoopPolicyTest.get_event_loop_on_threadà   s7   € ð
	ð 
	ð 
	ð ”×%Ò%Ð&>Ñ?Ô?ˆØ�}Š}‰ŒÐr   c                 ód  — t          j        ¦   «         5  t          j        dt          ¦  «         |                      t
          | j                             t          j	        ¦  «        j
        ¦  «         t          j        |                      ¦   «         ¦  «         |                      | j                             t          j	        ¦  «         
                    ¦   «         t          j        ¦  «         | j                             d„ ¦  «         
                    ¦   «          d d d ¦  «         d S # 1 swxY w Y   d S )Nr[   c                  óL   — t          j        ¦   «                              ¦   «         S r   r–   r(   r   r   r)   zDAnyThreadEventLoopPolicyTest.test_asyncio_accessor.<locals>.<lambda>   ó   € ­Ô)?Ñ)AÔ)A×)GÒ)GÑ)IÔ)I€ r   )r_   r`   ra   rb   ÚassertRaisesÚRuntimeErrorr�   r˜   r   r   r5   r’   rŽ   ÚassertIsInstanceÚAbstractEventLoopr   s    r   Útest_asyncio_accessorz2AnyThreadEventLoopPolicyTest.test_asyncio_accessorð   sY  € ÝÔ$Ñ&Ô&ð 	Tð 	TÝÔ! (Õ,>Ñ?Ô?Ð?ð ×ÒÝ˜dœm×2Ò2µ7Ô3IÑJÔJÔQñô ð õ Ô)¨$×*GÒ*GÑ*IÔ*IÑJÔJÐJØ×!Ò!Ø”×$Ò$¥WÔ%;Ñ<Ô<×CÒCÑEÔEÝÔ)ñô ð ð ŒM× Ò Ð!IÐ!IÑJÔJ×QÒQÑSÔSÐSð	Tð 	Tð 	Tñ 	Tô 	Tð 	Tð 	Tð 	Tð 	Tð 	Tð 	Tð 	Tøøøð 	Tð 	Tð 	Tð 	Tð 	Tð 	Ts   ”DD%Ä%D)Ä,D)c                 óÎ  — t          j        ¦   «         5  t          j        dt          ¦  «         |                      | j                             t          j        ¦  «         	                    ¦   «         t          ¦  «         | j                             d„ ¦  «         	                    ¦   «          t          j        |                      ¦   «         ¦  «         |                      | j                             t          j        ¦  «         	                    ¦   «         t          ¦  «         | j                             d„ ¦  «         	                    ¦   «          d d d ¦  «         d S # 1 swxY w Y   d S )Nr[   c                  óL   — t          j        ¦   «                              ¦   «         S r   r–   r(   r   r   r)   zDAnyThreadEventLoopPolicyTest.test_tornado_accessor.<locals>.<lambda>
  r�   r   c                  óL   — t          j        ¦   «                              ¦   «         S r   r–   r(   r   r   r)   zDAnyThreadEventLoopPolicyTest.test_tornado_accessor.<locals>.<lambda>  r�   r   )r_   r`   ra   rb   r    r�   r˜   r   rk   r5   r   r’   rŽ   r   s    r   Útest_tornado_accessorz2AnyThreadEventLoopPolicyTest.test_tornado_accessor  st  € õ Ô$Ñ&Ô&ð 		Tð 		TÝÔ! (Õ,>Ñ?Ô?Ð?Ø×!Ò! $¤-×"6Ò"6µv´~Ñ"FÔ"F×"MÒ"MÑ"OÔ"OÕQWÑXÔXÐXð ŒM× Ò Ð!IÐ!IÑJÔJ×QÒQÑSÔSÐSåÔ)¨$×*GÒ*GÑ*IÔ*IÑJÔJÐJØ×!Ò! $¤-×"6Ò"6µv´~Ñ"FÔ"F×"MÒ"MÑ"OÔ"OÕQWÑXÔXÐXØŒM× Ò Ð!IÐ!IÑJÔJ×QÒQÑSÔSÐSð		Tð 		Tð 		Tñ 		Tô 		Tð 		Tð 		Tð 		Tð 		Tð 		Tð 		Tð 		Tøøøð 		Tð 		Tð 		Tð 		Tð 		Tð 		Ts   ”D9EÅEÅ!EN)rK   rL   rM   rT   rX   rš   r¢   r¦   r(   r   r   rŠ   rŠ   Ñ   sg   € € € € € ð.ð .ð .ð!ð !ð !ðð ð ð Tð Tð Tð$Tð Tð Tð Tð Tr   rŠ   c                   óv   — e Zd ZdZdZ ej        dd¬¦  «        Ze                     e¦  «         de	fd„Z
d„ Zd	S )
ÚSelectorThreadContextvarsTestÚfooú/Útornado_test_ctxÚdefault)r¬   Úreturnc                 ój   ‡— | j         Š G ˆfd„dt          ¦  «        }t          | j        |fg¦  «        S )Nc                   ó   •— e Zd Zˆ fd„ZdS )ú6SelectorThreadContextvarsTest.get_app.<locals>.Handlerc              “   óZ   •K  — |                       ‰                     ¦   «         ¦  «         d S r   )ÚwriteÚget)r   r«   s    €r   r³   z:SelectorThreadContextvarsTest.get_app.<locals>.Handler.get  s.   øè è € ð —
’
Ð+×/Ò/Ñ1Ô1Ñ2Ô2Ð2Ð2Ð2r   N)rK   rL   rM   r³   )r«   s   €r   ÚHandlerr°     s.   ø€ € € € € ð
3ð 
3ð 
3ð 
3ð 
3ð 
3ð 
3r   r´   )r«   r   r   Útest_endpoint)r   r´   r«   s     @r   Úget_appz%SelectorThreadContextvarsTest.get_app  s[   ø€ ØÔ0Ðð	3ð 	3ð 	3ð 	3ð 	3ð 	3ð 	3•nñ 	3ô 	3ð 	3õ ˜TÔ/°Ð9Ð:Ñ;Ô;Ð;r   c                 óš   — |                       | j        |                      | j        ¦  «        j                             ¦   «         ¦  «         d S r   )r,   Ú	ctx_valueÚfetchrµ   ÚbodyÚdecoder   s    r   Útest_context_varsz/SelectorThreadContextvarsTest.test_context_vars)  s>   € Ø×Ò˜œ¨¯ª°DÔ4FÑ)GÔ)GÔ)L×)SÒ)SÑ)UÔ)UÑVÔVÐVÐVÐVr   N)rK   rL   rM   r¸   rµ   ÚcontextvarsÚ
ContextVarr«   Úsetr   r¶   r¼   r(   r   r   r¨   r¨     sz   € € € € € Ø€IØ€MØ-�{Ô-Ð.@È)ÐTÑTÔTÐØ×Ò˜Ñ#Ô#Ð#ð<˜ð <ð <ð <ð <ð$Wð Wð Wð Wð Wr   r¨   ) r   r½   rs   rw   Úunittestr_   Úconcurrent.futuresr   Útornado.platform.asynciorŒ   r   Útornado.ioloopr   r   r   r   Útornado.testingr	   r
   r   r   Útornado.test.utilr   Útornado.webr   r   r   ÚTestCaserP   ro   rŠ   r¨   r(   r   r   ú<module>rÈ      s#  ðð €€€Ø Ð Ð Ð Ø Ð Ð Ð Ø €€€Ø €€€Ø €€€à 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø !Ð !Ð !Ð !Ð !Ð !ðð ð ð ð ð ð ð ð ð ð
ð ð ð ð ð ð ð ð ð ð ð ð 1Ð 0Ð 0Ð 0Ð 0Ð 0Ø 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3ðLð Lð Lð Lð L�mñ Lô Lð Lð^%'ð %'ð %'ð %'ð %'ˆxÔ ñ %'ô %'ð %'ðP0%ð 0%ð 0%ð 0%ð 0%˜XÔ.ñ 0%ô 0%ð 0%ðf=Tð =Tð =Tð =Tð =T 8Ô#4ñ =Tô =Tð =Tð@Wð Wð Wð Wð WÐ$5ñ Wô Wð Wð Wð Wr   