§
    YŠtjšU  ã                  ó˜  — d Z 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	m
Z
mZmZmZ ddlmZ ddlmZmZ d	d
lmZ d	dlmZmZ d	dlmZmZmZmZmZmZmZ d	dlm Z  d	dl!m"Z" d	dl#m$Z$m%Z%m&Z&m'Z' d	dl(m)Z) d	dl*m+Z+ d	dl,m-Z-m.Z. d	dl/m0Z0 d	dl1m2Z2m3Z3m4Z4 d	dl1m5Z5 d	dl6m7Z7 d	dl8m9Z9 d	dl:m;Z; d	dl<m=Z= d	dl>m?Z? d	dl@mAZA d	dlBmCZCmDZDmEZE d	dlFmGZG 	 ddlHZHddlIZIe
rd	dlJmKZK d ZLejM        jN        ZNejM        jO        ZOejP        jQ        ZQejP        jR        ZRejP        jS        ZS	 eIjT        eUfZV ejW        d!¦  «        ZX G d"„ d#eCe%         ¦  «        ZYdS )$z+
Psycopg connection object (async version)
é    )ÚannotationsN)Ú	monotonic)ÚTracebackType)ÚTYPE_CHECKINGÚAnyÚcastÚoverload)Úasynccontextmanager)ÚAsyncGeneratorÚAsyncIteratoré   )Úerrors)ÚpqÚwaiting)ÚRVÚAdaptContextÚConnDictÚ	ConnParamÚParamsÚPQGenÚQuery)ÚQueryNoTemplate)ÚXid)ÚAsyncRowFactoryÚRowÚargs_rowÚ	tuple_row)ÚAdaptersMap)ÚIsolationLevel)ÚSelfÚTemplate)ÚALock)Úconninfo_attempts_asyncÚconninfo_to_dictÚmake_conninfo)Útimeout_from_conninfo)Únotifies)ÚAsyncTransaction)ÚAsyncCursor)Úcapabilities)Úgssapi_requested)ÚAsyncPipeline)ÚBaseConnectionÚ	CursorRowÚNotify)ÚAsyncServerCursorT)ÚPGconngš™™™™™¹?Úpsycopgc                  óÊ  ‡ — e Zd ZU dZdZded<   ded<   ded<   d	ed
<    eee         e¦  «        fdˆ fd„Z	e
	 d€ddddddœd�d!„¦   «         Zd‚d"„Zdƒd*„Ze
d„d-„¦   «         Zd…d.„Zedd/œd†d2„¦   «         Zedd/œd‡d5„¦   «         Zedddd6œdˆd<„¦   «         Zedddd6œd‰d>„¦   «         Z	 d€ddddd?œdŠdB„Ze	 d‹dddCœdŒdI„¦   «         ZedddCœd�dK„¦   «         Z	 d‹dddCœdŽdM„Zd…dN„Zd…dO„ZdPdQœd�dT„ZdUdQœd�dV„Ze	 d�d‘d[„¦   «         Zddd\œd’d`„Zed“db„¦   «         Zed“dc„¦   «         Zefd”dh„Zd•dj„Zd•dk„Zd–dm„Z d–dn„Z!d—do„Z"d—dp„Z#d—dq„Z$d—dr„Z%	 d˜du„Z&d™dx„Z'd…dy„Z(d‹dšd{„Z)d‹dšd|„Z*d›d~„Z+ˆ xZ,S )œÚAsyncConnectionz3
    Wrapper for a connection to the database.
    r2   ztype[AsyncCursor[Row]]Úcursor_factoryztype[AsyncServerCursor[Row]]Úserver_cursor_factoryúAsyncRowFactory[Row]Úrow_factoryzAsyncPipeline | NoneÚ	_pipelineÚpgconnr1   c                ó®   •— t          ¦   «                              |¦  «         || _        t          ¦   «         | _        t
          | _        t          | _        d S ©N)	ÚsuperÚ__init__r8   r"   Úlockr)   r5   r0   r6   )Úselfr:   r8   Ú	__class__s      €úV/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/psycopg/connection_async.pyr>   zAsyncConnection.__init__J   sF   ø€ õ
 	‰Œ×Ò˜Ñ Ô Ð Ø&ˆÔÝ‘G”GˆŒ	Ý)ˆÔÝ%6ˆÔ"Ð"Ð"ó    Ú Fé   N)Ú
autocommitÚprepare_thresholdÚcontextr8   r5   ÚconninfoÚstrrF   ÚboolrG   ú
int | NonerH   úAdaptContext | NoneúAsyncRowFactory[Row] | Noneútype[AsyncCursor[Row]] | NoneÚkwargsr   Úreturnr    c          	   ‹  óv  K  — 	 t           j        dk    rMt          j        ¦   «         }t	          |t          j        ¦  «        r ddlm}	 t          j	        dd|	› �z   ¦  «        ‚ | j
        |fi |¤Žƒ d{V —†}
t          |
¦  «        }d}t          |
¦  «        ƒ d{V —†}g }|D �]E}|                     d¦  «        |                     d	¦  «        |                     d
¦  «        f}d|z  }t                               d|¦  «         	 t!          di |¤Ž}|                      ||¬¦  «        }t%          j        |t(          ¬¦  «        ƒ d{V —†}t                               d|¦  «          n„# t          j        $ rK}t                               d|t-          |¦  «        ¦  «         |                     ||f¦  «         Y d}~�Œd}~wt          j        $ r}|                     d¦  «        ‚d}~ww xY w|sÁ|d         d         }t5          |¦  «        dk    r|                     d¦  «        ‚t-          |¦  «        g}|                     d¦  «         |                     d„ |D ¦   «         ¦  «          t9          |¦  «        d                     |¦  «        |j        ¬¦  «        }|                     d¦  «        ‚t?          j         ¦   «         r5|j        j!        r)tE          |
¦  «        stG          j$        dtJ          ¦  «         tM          |¦  «        |_'        |r||_(        |r||_)        |rtU          |j+        ¦  «        |_,        ||_-        |S )z[
        Connect to a database server and return a new `AsyncConnection` instance.
        TÚwin32r   )Ú_asyncio_run_snippetztPsycopg cannot use the 'ProactorEventLoop' to run in async mode. Please use a compatible event loop, for instance byú NÚhostÚportÚhostaddrz host: %r, port: %r, hostaddr: %rzconnection attempt: %srD   ©Útimeout©Úintervalzconnection succeeded: %szconnection failed: %s: %séÿÿÿÿr   z7Multiple connection attempts failed. All failures were:c              3  ó,   K  — | ]\  }}d |› d|› �V — ŒdS )z- z: N© )Ú.0ÚerrorÚdescrs      rB   ú	<genexpr>z*AsyncConnection.connect.<locals>.<genexpr>�   s7   è è € ÐOÐO±<°5¸%Ð.˜eÐ.Ð. uÐ.Ð.ÐOÐOÐOÐOÐOÐOrC   ú
)r:   au  the connection was obtained using the GSSAPI relying on the 'gssencmode=prefer' libpq default. The value for this default might be 'disable' instead, in certain psycopg[binary] implementations. If you wish to interact with the GSSAPI reliably please set the 'gssencmode' parameter in the connection string or the 'PGGSSENCMODE' environment variable to 'prefer' or 'require'©rD   ).ÚsysÚplatformÚasyncioÚget_running_loopÚ
isinstanceÚProactorEventLoopÚ_compatrT   ÚeÚInterfaceErrorÚ_get_connection_paramsr&   r#   ÚgetÚloggerÚdebugr%   Ú_connect_genr   Úwait_conn_asyncÚ_WAIT_INTERVALÚErrorrJ   ÚappendÚ_NO_TRACEBACKÚwith_tracebackÚlenÚextendÚtypeÚjoinr:   r*   Úhas_used_gssapiÚused_gssapir+   ÚwarningsÚwarnÚRuntimeWarningrK   Ú_autocommitr8   r5   r   ÚadaptersÚ	_adaptersrG   )ÚclsrI   rF   rG   rH   r8   r5   rP   ÚlooprT   ÚparamsrZ   ÚrvÚattemptsÚconn_errorsÚattemptÚtdescrrb   ÚgenÚexÚlast_exÚlinesÚnew_exs                          rB   ÚconnectzAsyncConnection.connectU   s©  è è € ð	ÝŒ|˜wÒ&Ð&ÝÔ/Ñ1Ô1�Ý˜d¥GÔ$=Ñ>Ô>ð à=Ð=Ð=Ð=Ð=Ð=åÔ*ðUà4Ð2Ð4Ð4ñ5ñô ð ð 2�sÔ1°(ÐEÐE¸fÐEÐEÐEÐEÐEÐEÐEÐEˆÝ'¨Ñ/Ô/ˆØˆÝ0°Ñ8Ô8Ð8Ð8Ð8Ð8Ð8Ð8ˆØ13ˆØð 	ñ 	ˆGØ—k’k &Ñ)Ô)¨7¯;ª;°vÑ+>Ô+>ÀÇÂÈJÑ@WÔ@WÐXˆFØ6¸Ñ?ˆEÝ�LŠLÐ1°5Ñ9Ô9Ð9ðÝ(Ð7Ð7¨wÐ7Ð7�Ø×&Ò& x¸Ð&ÑAÔA�Ý"Ô2°3ÅÐPÑPÔPÐPÐPÐPÐPÐPÐP�õ —’Ð7¸Ñ?Ô?Ð?Ø�øõ ”7ð 0ð 0ð 0Ý—’Ð8¸%ÅÀRÁÄÑIÔIÐIØ×"Ò" B¨ ;Ñ/Ô/Ð/Ð/Ð/Ð/Ð/Ñ/øøøøÝ”?ð .ð .ð .Ø×'Ò'¨Ñ-Ô-Ð-øøøøð.øøøð ð 	.Ø! "”o aÔ(ˆGÝ�;ÑÔ 1Ò$Ð$Ø×,Ò,¨TÑ2Ô2Ð2õ ˜‘\”\�NˆEØ�LŠLÐRÑSÔSÐSØ�LŠLÐOÐOÀ;ÐOÑOÔOÑOÔOÐOØ"•T˜'‘]”] 4§9¢9¨UÑ#3Ô#3¸G¼NÐKÑKÔKˆFØ×'Ò'¨Ñ-Ô-Ð-õ Ô(Ñ*Ô*ð	à”	Ô%ð	õ % VÑ,Ô,ð	õ
 ŒMðPõ ñô ð õ ˜jÑ)Ô)ˆŒØð 	)Ø(ˆBŒNØð 	/Ø .ˆBÔØð 	9Ý& wÔ'7Ñ8Ô8ˆBŒLØ0ˆÔØˆ	s&   ÄAE"Å"G#Å1A F7Æ7G#Ç	GÇG#c              ƒ  ó
   K  — | S r<   r_   ©r@   s    rB   Ú
__aenter__zAsyncConnection.__aenter__­   s   è è € ØˆrC   Úexc_typeútype[BaseException] | NoneÚexc_valúBaseException | NoneÚexc_tbúTracebackType | NoneÚNonec              ƒ  óL  K  — | j         rd S |rO	 |                      ¦   «         ƒ d {V —† nM# t          $ r&}t                               d| |¦  «         Y d }~n"d }~ww xY w|                      ¦   «         ƒ d {V —† t          | dd ¦  «        s|                      ¦   «         ƒ d {V —† d S d S )Nz#error ignored in rollback on %s: %sÚ_pool)ÚclosedÚrollbackÚ	Exceptionrq   ÚwarningÚcommitÚgetattrÚclose)r@   r—   r™   r›   Úexc2s        rB   Ú	__aexit__zAsyncConnection.__aexit__°   sù   è è € ð Œ;ð 	ØˆFàð 	 ðRØ—m’m‘o”oÐ%Ð%Ð%Ð%Ð%Ð%Ð%Ð%øÝð Rð Rð RÝ—’ÐDÀdÈDÑQÔQÐQÐQÐQÐQÐQÐQøøøøðRøøøð —+’+‘-”-ÐÐÐÐÐÐÐõ �t˜W dÑ+Ô+ð 	Ø—*’*‘,”,ÐÐÐÐÐÐÐÐÐð	ð 	s   �* ª
A´AÁAr   r   c              ‹  ó    K  — t          |fi |¤ŽS )z3Manipulate connection parameters before connecting.)r$   )r†   rI   rP   s      rB   ro   z&AsyncConnection._get_connection_paramsÇ   s   è è € õ   Ð3Ð3¨FÐ3Ð3Ð3rC   c              ƒ  óÞ   K  — | j         rdS t          | dd¦  «        }|r.t          |dd¦  «        r|                     | ¦  «        ƒ d{V —† dS d| _        | j                             ¦   «          dS )zClose the database connection.NrŸ   Úclose_returnsFT)r    r¥   ÚputconnÚ_closedr:   Úfinish)r@   Úpools     rB   r¦   zAsyncConnection.closeÌ   s�   è è € àŒ;ð 	ØˆFå�t˜W dÑ+Ô+ˆØð 	•G˜D /°5Ñ9Ô9ð 	Ø—,’,˜tÑ$Ô$Ð$Ð$Ð$Ð$Ð$Ð$Ð$ØˆFàˆŒð 	Œ×ÒÑÔÐÐÐrC   )Úbinaryr°   úAsyncCursor[Row]c               ó   — d S r<   r_   )r@   r°   s     rB   ÚcursorzAsyncConnection.cursorÜ   s   € ØCFÀ3rC   úAsyncRowFactory[CursorRow]úAsyncCursor[CursorRow]c               ó   — d S r<   r_   )r@   r°   r8   s      rB   r³   zAsyncConnection.cursorß   s	   € ð "% rC   )r°   Ú
scrollableÚwithholdÚnamer·   úbool | Noner¸   úAsyncServerCursor[Row]c               ó   — d S r<   r_   )r@   r¹   r°   r·   r¸   s        rB   r³   zAsyncConnection.cursorä   s	   € ð "% rC   úAsyncServerCursor[CursorRow]c               ó   — d S r<   r_   )r@   r¹   r°   r8   r·   r¸   s         rB   r³   zAsyncConnection.cursorî   s	   € ð (+ srC   )r°   r8   r·   r¸   úAsyncRowFactory[Any] | Noneú)AsyncCursor[Any] | AsyncServerCursor[Any]c               óÄ   — |                       ¦   «          |s| j        }|r|                      | ||||¬¦  «        }n|                      | |¬¦  «        }|rt          |_        |S )z\
        Return a new `AsyncCursor` to send commands and queries to the connection.
        )r¹   r8   r·   r¸   ©r8   )Ú_check_connection_okr8   r6   r5   ÚBINARYÚformat)r@   r¹   r°   r8   r·   r¸   Úcurs          rB   r³   zAsyncConnection.cursorù   sŠ   € ð 	×!Ò!Ñ#Ô#Ð#àð 	+ØÔ*ˆKð ð 		EØ×,Ò,ØØØ'Ø%Ø!ð -ñ ô ˆCˆCð ×%Ò% d¸Ð%ÑDÔDˆCàð 	 ÝˆCŒJàˆ
rC   )Úpreparer°   Úqueryr   rˆ   úParams | NonerÇ   c             ƒ  ó
   K  — d S r<   r_   )r@   rÈ   rˆ   rÇ   r°   s        rB   ÚexecutezAsyncConnection.execute  s   è è € ð ˜3rC   r!   c             ƒ  ó
   K  — d S r<   r_   )r@   rÈ   rÇ   r°   s       rB   rË   zAsyncConnection.execute%  s   è è € ð ˜3rC   r   c             ƒ  óf  K  — 	 |                       ¦   «         }|rt          |_        t          |t          ¦  «        r.|�t          d¦  «        ‚|                     ||¬¦  «        ƒ d{V —†S |                     |||¬¦  «        ƒ d{V —†S # t          j        $ r}| 	                    d¦  «        ‚d}~ww xY w)z8Execute a query and return a cursor to read its results.NzA'execute()' with string template query doesn't support parameters)rÇ   )
r³   rÄ   rÅ   rj   r!   Ú	TypeErrorrË   rm   rx   ry   )r@   rÈ   rˆ   rÇ   r°   rÆ   r�   s          rB   rË   zAsyncConnection.execute.  sà   è è € ð	*Ø—+’+‘-”-ˆCØð $Ý#�”
å˜%¥Ñ*Ô*ð IØÐ%Ý#ð6ñô ð ð !Ÿ[š[¨¸˜[Ñ@Ô@Ð@Ð@Ð@Ð@Ð@Ð@Ð@à Ÿ[š[¨°À˜[ÑHÔHÐHÐHÐHÐHÐHÐHÐHøåŒð 	*ð 	*ð 	*Ø×#Ò# DÑ)Ô)Ð)øøøøð	*øøøs   „A$B Á)B ÂB0ÂB+Â+B0c              ƒ  óÈ   K  — | j         4 ƒd{V —† |                      |                      ¦   «         ¦  «        ƒ d{V —† ddd¦  «        ƒd{V —† dS # 1 ƒd{V —†swxY w Y   dS )z/Commit any pending transaction to the database.N)r?   ÚwaitÚ_commit_genr•   s    rB   r¤   zAsyncConnection.commitI  sü   è è € à”9ð 	0ð 	0ð 	0ð 	0ð 	0ð 	0ð 	0ð 	0Ø—)’)˜D×,Ò,Ñ.Ô.Ñ/Ô/Ð/Ð/Ð/Ð/Ð/Ð/Ð/ð	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ð 	0ð 	0ð 	0ó   �.AÁ
AÁAc              ƒ  óÈ   K  — | j         4 ƒd{V —† |                      |                      ¦   «         ¦  «        ƒ d{V —† ddd¦  «        ƒd{V —† dS # 1 ƒd{V —†swxY w Y   dS )z2Roll back to the start of any pending transaction.N)r?   rÐ   Ú_rollback_genr•   s    rB   r¡   zAsyncConnection.rollbackN  sü   è è € à”9ð 	2ð 	2ð 	2ð 	2ð 	2ð 	2ð 	2ð 	2Ø—)’)˜D×.Ò.Ñ0Ô0Ñ1Ô1Ð1Ð1Ð1Ð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ð 	2ð 	2rÒ   g      >@rY   rZ   Úfloatc             ƒ  ó
  K  — |                       ¦   «         sdS t          j        ¦   «         r7t          j        |                      |¬¦  «        t          ¬¦  «        ƒ d{V —† dS 	 t          j        | j	        ¦  «        ƒ d{V —† dS )a»  Cancel the current operation on the connection.

        :param timeout: raise a `~errors.CancellationTimeout` if the
            cancellation request does not succeed within `timeout` seconds.

        Note that a successful cancel attempt on the client is not a guarantee
        that the server will successfully manage to cancel the operation.

        This is a non-blocking version of `~Connection.cancel()` which
        leverages a more secure and improved cancellation feature of the libpq,
        which is only available from version 17.

        If the underlying libpq is older than version 17, the method will fall
        back to using the same implementation of `!cancel()`.
        NrY   r[   )
Ú_should_cancelr*   Úhas_cancel_safer   rt   Ú_cancel_genru   rh   Ú	to_threadÚcancel)r@   rZ   s     rB   Úcancel_safezAsyncConnection.cancel_safeS  sº   è è € ð  ×"Ò"Ñ$Ô$ð 	ØˆFåÔ'Ñ)Ô)ð 	ÝÔ)Ø× Ò ¨Ð Ñ1Ô1½Nðñ ô ð ð ð ð ð ð ð ð ð ðÝÔ'¨¬Ñ4Ô4Ð4Ð4Ð4Ð4Ð4Ð4Ð4Ð4Ð4rC   ç      @c             ƒ  óª   K  — 	 |                       |¬¦  «        ƒ d {V —† d S # t          $ r&}t                               d|¦  «         Y d }~d S d }~ww xY w)NrY   zquery cancellation failed: %s)rÜ   r¢   rq   r£   )r@   rZ   r�   s      rB   Ú_try_cancelzAsyncConnection._try_cancelp  s…   è è € ð	@Ø×"Ò"¨7Ð"Ñ3Ô3Ð3Ð3Ð3Ð3Ð3Ð3Ð3Ð3Ð3øÝð 	@ð 	@ð 	@Ý�NŠNÐ:¸BÑ?Ô?Ð?Ð?Ð?Ð?Ð?Ð?Ð?øøøøð	@øøøs   „" ¢
A¬AÁAÚsavepoint_nameú
str | NoneÚforce_rollbackúAsyncIterator[AsyncTransaction]c               óþ  K  — t          | ||¦  «        }| j        r°|                      ¦   «         4 ƒd{V —† |4 ƒd{V —† |                      ¦   «         4 ƒd{V —† |W 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   ddd¦  «        ƒd{V —† dS # 1 ƒd{V —†swxY w Y   dS |4 ƒd{V —† |W V — ddd¦  «        ƒd{V —† dS # 1 ƒd{V —†swxY w Y   dS )a£  
        Start a context block with a new transaction or nested transaction.

        :param savepoint_name: Name of the savepoint used to manage a nested
            transaction. If `!None`, one will be chosen automatically.
        :param force_rollback: Roll back the transaction at the end of the
            block even if there were no error (e.g. to try a no-op process).
        :rtype: AsyncTransaction
        N)r(   r9   Úpipeline)r@   rà   râ   Útxs       rB   ÚtransactionzAsyncConnection.transactionv  s;  è è € õ ˜d N°NÑCÔCˆØŒ>ð 	Ø—}’}‘”ð ð ð ð ð ð ð ð ¨ð ð ð ð ð ð ð ð ¨D¯MªM©O¬Oð ð ð ð ð ð ð ð Ø����ðð ð ñ ô ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð øøøð ð ð ð ð ð ð ñ ô ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð øøøð ð ð ð ð ð ð ñ ô ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð øøøð ð ð ð ð ð ð ð ð ð ð ð ð ð ð Ø����ðð ð ñ ô ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð øøøð ð ð ð ð ð sj   µ	B8¾BÁA1ÁBÁ1
A;Á;BÁ>A;Á?BÂB8Â
B	ÂB8Â!B	Â"B8Â8
CÃCÃC,Ã,
C6Ã9C6)rZ   Ú
stop_afterúfloat | Nonerè   úAsyncGenerator[Notify]c              ó’  K  — |�'t          ¦   «         |z   }t          |t          ¦  «        }n	d}t          }d}| j        rt	          j        dt          ¦  «         | j        4 ƒd{V —† | j        j	        }d| j
        c| _
        }	 	 |r!|r|                     ¦   «         W V — |dz  }|°n°	 |                      t          | j        ¦  «        |¬¦  «        ƒ d{V —†}n,# t          j        $ r}	|	                     d¦  «        ‚d}	~	ww xY w|D ]P}
t#          |
j                             |¦  «        |
j                             |¦  «        |
j        ¦  «        W V — |dz  }ŒQ|�||k    rn/|r+t          t          |t          ¦   «         z
  ¦  «        }|dk     rn�Œ|| _
        n# || _
        w xY w	 ddd¦  «        ƒd{V —† dS # 1 ƒd{V —†swxY w Y   dS )a›  
        Yield `Notify` objects as soon as they are received from the database.

        :param timeout: maximum amount of time to wait for notifications.
            `!None` means no timeout.
        :param stop_after: stop after receiving this number of notifications.
            You might actually receive more than this number if more than one
            notifications arrives in the same packet.
        Nr   zusing 'notifies()' together with notifies handlers on the same connection is not reliable. Please use only one of these methodsTr   r[   g        )r   Úminru   Ú_notify_handlersr€   r�   r‚   r?   r:   Ú	_encodingÚ_notifies_backlogÚpopleftrÐ   r'   rm   rx   ry   r/   ÚrelnameÚdecodeÚextraÚbe_pid)r@   rZ   rè   Údeadliner\   Ú	nreceivedÚencÚdÚpgnsr�   Úpgns              rB   r'   zAsyncConnection.notifies‹  sî  è è € ð ÐÝ ‘{”{ WÑ,ˆHÝ˜7¥NÑ3Ô3ˆHˆHàˆHÝ%ˆHàˆ	àÔ ð 	ÝŒMð8õ ñ	ô ð ð ”9ð +	+ð +	+ð +	+ð +	+ð +	+ð +	+ð +	+ð +	+Ø”+Ô'ˆCð )-¨dÔ.DÐ%ˆDÔ" Að$+ð!"ð ð +Øð +Ø"#§)¢)¡+¤+Ð-Ð-Ð-Ð-Ø%¨™N˜Ið  ð +øð:Ø)-¯ªÝ (¨¬Ñ 5Ô 5Àð *3ñ *ô *ð $ð $ð $ð $ð $ð $˜D˜Døõ  !œð :ð :ð :Ø"$×"3Ò"3°DÑ"9Ô"9Ð9øøøøð:øøøð $(ð +ð +˜CÝ"(Ø #¤× 2Ò 2°3Ñ 7Ô 7Ø #¤	× 0Ò 0°Ñ 5Ô 5Ø #¤
ñ#ô #ð ð ð ð ð
 &¨™N˜I˜Ið "Ð-°)¸zÒ2IÐ2IØð  ð "Ý#&¥~°xÅ)Á+Ä+Ñ7MÑ#NÔ#N˜Ø# cš>˜>Ø!ñC!"ðF *+�Ô&Ð&ø¨�Ô&Ð*Ð*Ð*Ð*Ð*ðW+	+ð +	+ð +	+ñ +	+ô +	+ð +	+ð +	+ð +	+ð +	+ð +	+ð +	+ð +	+ð +	+ð +	+ð +	+ð +	+ð +	+ð +	+ð +	+ð +	+ð +	+ð +	+ð +	+ð +	+øøøð +	+ð +	+ð +	+ð +	+ð +	+ð +	+sO   Á%F6Â$FÂ'/CÃFÃD Ã&C;Ã;D Ä BFÆF6Æ	FÆF6Æ6
G ÇG úAsyncIterator[AsyncPipeline]c               ó‚  K  — | j         4 ƒd{V —† |                      ¦   «          | j        x}€t          | ¦  «        x}| _        	 ddd¦  «        ƒd{V —† n# 1 ƒd{V —†swxY w Y   	 |4 ƒd{V —† |W V — ddd¦  «        ƒd{V —† n# 1 ƒd{V —†swxY w Y   |j        dk    rF| j         4 ƒd{V —† || j        u sJ ‚d| _        ddd¦  «        ƒd{V —† dS # 1 ƒd{V —†swxY w Y   dS dS # |j        dk    rD| j         4 ƒd{V —† || j        u sJ ‚d| _        ddd¦  «        ƒd{V —† w # 1 ƒd{V —†swxY w Y   w w xY w)z<Context manager to switch the connection into pipeline mode.Nr   )r?   rÃ   r9   r,   Úlevel©r@   rå   s     rB   rå   zAsyncConnection.pipeline×  s¿  è è € ð ”9ð 	@ð 	@ð 	@ð 	@ð 	@ð 	@ð 	@ð 	@Ø×%Ò%Ñ'Ô'Ð'à œNÐ*�Ð3å,9¸$Ñ,?Ô,?Ð?�˜4œ>Ð?ð	@ð 	@ð 	@ñ 	@ô 	@ð 	@ð 	@ð 	@ð 	@ð 	@ð 	@ð 	@ð 	@ð 	@ð 	@ð 	@ð 	@ð 	@ð 	@ð 	@ð 	@ð 	@ð 	@øøøð 	@ð 	@ð 	@ð 	@ð	*Øð ð ð ð ð ð ð ð Ø����ðð ð ñ ô ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð øøøð ð ð ð ð Œ~ Ò"Ð"Øœ9ð *ð *ð *ð *ð *ð *ð *ð *Ø# t¤~Ð5Ð5Ð5Ð5Ø%)�D”Nð*ð *ð *ñ *ô *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *øøøð *ð *ð *ð *ð *ð *ð #Ð"øˆxŒ~ Ò"Ð"Øœ9ð *ð *ð *ð *ð *ð *ð *ð *Ø# t¤~Ð5Ð5Ð5Ð5Ø%)�D”Nð*ð *ð *ñ *ô *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *øøøð *ð *ð *ð *ð *ð #øøøsw   �4AÁ
A!Á$A!Á)C- Á1B	Á7C- Â	
BÂC- ÂBÂC- Â2CÃ
C"Ã%C"Ã-D>ÄD+ÄD>Ä+
D5Ä5D>Ä8D5Ä9D>c               ó6  K  — | j         rJ ‚t          | d¬¦  «        x}| _         	 |4 ƒd{V —† |W V — ddd¦  «        ƒd{V —† n# 1 ƒd{V —†swxY w Y   |j        dk    sJ ‚|| j         u sJ ‚d| _         dS # |j        dk    sJ ‚|| j         u sJ ‚d| _         w xY w)zglike pipeline() but don't acquire a lock.

        Assume that the caller is holding the lock.
        T)Ú_no_lockNr   )r9   r,   rý   rþ   s     rB   Ú_pipeline_nolockz AsyncConnection._pipeline_nolockê  sc  è è € ð ”>Ð!Ð!Ð!å$1°$ÀÐ$FÑ$FÔ$FÐFˆ�4”>ð	"Øð ð ð ð ð ð ð ð Ø����ðð ð ñ ô ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð øøøð ð ð ð ð ”> QÒ&Ð&Ð&Ð&Ø˜tœ~Ð-Ð-Ð-Ð-Ø!ˆDŒNˆNˆNøð ”> QÒ&Ð&Ð&Ð&Ø˜tœ~Ð-Ð-Ð-Ð-Ø!ˆDŒNÐ!Ð!Ð!Ð!s-   ¥A7 ­A³A7 Á
AÁA7 ÁAÁA7 Á7!BrŽ   ú	PQGen[RV]r\   r   c              ƒ  óR  K  — 	 t          j        || j        j        |¬¦  «        ƒ d{V —†S # t          $ rq | j        j        t          k    rZ|                      d¬¦  «        ƒ d{V —† 	 t          j        || j        j        |¬¦  «        ƒ d{V —† n# t          j	        $ r Y nw xY w‚ w xY w)z¼
        Consume a generator operating on the connection.

        The function must be used on generators that don't change connection
        fd (i.e. not on connect and reset).
        r[   NrÝ   rY   )
r   Ú
wait_asyncr:   ÚsocketÚ_INTERRUPTEDÚtransaction_statusÚACTIVErß   rm   ÚQueryCanceled)r@   rŽ   r\   s      rB   rÐ   zAsyncConnection.waitÿ  sì   è è € ð	Ý Ô+¨C°´Ô1CÈhÐWÑWÔWÐWÐWÐWÐWÐWÐWÐWøÝð 		ð 		ð 		ØŒ{Ô-µÒ7Ð7ð ×&Ò&¨sÐ&Ñ3Ô3Ð3Ð3Ð3Ð3Ð3Ð3Ð3ðÝ!Ô,¨S°$´+Ô2DÈxÐXÑXÔXÐXÐXÐXÐXÐXÐXÐXÐXøÝ”ð ð ð Ø�Dðøøøàð		øøøs-   „&+ «;B&Á''BÂB&ÂB!ÂB&Â B!Â!B&Úvaluec                ó2   — 	 |                       d¦  «         d S )NTrF   )Ú_no_set_asyncÚset_autocommit©r@   r
  s     rB   Ú_set_autocommitzAsyncConnection._set_autocommit  ó!   € ð	'Ø×Ò˜|Ñ,Ô,Ð,Ð,Ð,rC   c              ƒ  óÊ   K  — | j         4 ƒd{V —† |                      |                      |¦  «        ¦  «        ƒ d{V —† ddd¦  «        ƒd{V —† dS # 1 ƒd{V —†swxY w Y   dS )z6Method version of the `~Connection.autocommit` setter.N)r?   rÐ   Ú_set_autocommit_genr  s     rB   r  zAsyncConnection.set_autocommit  óþ   è è € à”9ð 	=ð 	=ð 	=ð 	=ð 	=ð 	=ð 	=ð 	=Ø—)’)˜D×4Ò4°UÑ;Ô;Ñ<Ô<Ð<Ð<Ð<Ð<Ð<Ð<Ð<ð	=ð 	=ð 	=ñ 	=ô 	=ð 	=ð 	=ð 	=ð 	=ð 	=ð 	=ð 	=ð 	=ð 	=ð 	=ð 	=ð 	=ð 	=ð 	=ð 	=ð 	=ð 	=ð 	=ð 	=øøøð 	=ð 	=ð 	=ð 	=ð 	=ð 	=ó   �/AÁ
AÁAúIsolationLevel | Nonec                ó2   — 	 |                       d¦  «         d S )NTÚisolation_level)r  Úset_isolation_levelr  s     rB   Ú_set_isolation_levelz$AsyncConnection._set_isolation_level  s"   € ð	,Ø×ÒÐ0Ñ1Ô1Ð1Ð1Ð1rC   c              ƒ  óÊ   K  — | j         4 ƒd{V —† |                      |                      |¦  «        ¦  «        ƒ d{V —† ddd¦  «        ƒd{V —† dS # 1 ƒd{V —†swxY w Y   dS )z;Method version of the `~Connection.isolation_level` setter.N)r?   rÐ   Ú_set_isolation_level_genr  s     rB   r  z#AsyncConnection.set_isolation_level$  s$  è è € à”9ð 	Bð 	Bð 	Bð 	Bð 	Bð 	Bð 	Bð 	BØ—)’)˜D×9Ò9¸%Ñ@Ô@ÑAÔAÐAÐAÐAÐAÐAÐAÐAð	Bð 	Bð 	Bñ 	Bô 	Bð 	Bð 	Bð 	Bð 	Bð 	Bð 	Bð 	Bð 	Bð 	Bð 	Bð 	Bð 	Bð 	Bð 	Bð 	Bð 	Bð 	Bð 	Bð 	Bøøøð 	Bð 	Bð 	Bð 	Bð 	Bð 	Br  c                ó2   — 	 |                       d¦  «         d S )NTÚ	read_only)r  Úset_read_onlyr  s     rB   Ú_set_read_onlyzAsyncConnection._set_read_only)  s!   € ð	&Ø×Ò˜{Ñ+Ô+Ð+Ð+Ð+rC   c              ƒ  óÊ   K  — | j         4 ƒd{V —† |                      |                      |¦  «        ¦  «        ƒ d{V —† ddd¦  «        ƒd{V —† dS # 1 ƒd{V —†swxY w Y   dS )z5Method version of the `~Connection.read_only` setter.N)r?   rÐ   Ú_set_read_only_genr  s     rB   r  zAsyncConnection.set_read_only/  sþ   è è € à”9ð 	<ð 	<ð 	<ð 	<ð 	<ð 	<ð 	<ð 	<Ø—)’)˜D×3Ò3°EÑ:Ô:Ñ;Ô;Ð;Ð;Ð;Ð;Ð;Ð;Ð;ð	<ð 	<ð 	<ñ 	<ô 	<ð 	<ð 	<ð 	<ð 	<ð 	<ð 	<ð 	<ð 	<ð 	<ð 	<ð 	<ð 	<ð 	<ð 	<ð 	<ð 	<ð 	<ð 	<ð 	<øøøð 	<ð 	<ð 	<ð 	<ð 	<ð 	<r  c                ó2   — 	 |                       d¦  «         d S )NTÚ
deferrable)r  Úset_deferrabler  s     rB   Ú_set_deferrablezAsyncConnection._set_deferrable4  r  rC   c              ƒ  óÊ   K  — | j         4 ƒd{V —† |                      |                      |¦  «        ¦  «        ƒ d{V —† ddd¦  «        ƒd{V —† dS # 1 ƒd{V —†swxY w Y   dS )z6Method version of the `~Connection.deferrable` setter.N)r?   rÐ   Ú_set_deferrable_genr  s     rB   r$  zAsyncConnection.set_deferrable:  r  r  TÚ	attributec                ó.   — t          d|›d|› d�¦  «        ‚)Nz'the zD property is read-only on async connections: please use 'await .set_z()' instead.)ÚAttributeError)r@   r(  s     rB   r  zAsyncConnection._no_set_asyncA  s=   € Ý ðC˜	ð Cð CØ+4ðCð Cð Cñô ð rC   Úxidú	Xid | strc              ƒ  óÊ   K  — | j         4 ƒd{V —† |                      |                      |¦  «        ¦  «        ƒ d{V —† ddd¦  «        ƒd{V —† dS # 1 ƒd{V —†swxY w Y   dS )zO
        Begin a TPC transaction with the given transaction ID `!xid`.
        N)r?   rÐ   Ú_tpc_begin_gen©r@   r+  s     rB   Ú	tpc_beginzAsyncConnection.tpc_beginG  s   è è € ð ”9ð 	6ð 	6ð 	6ð 	6ð 	6ð 	6ð 	6ð 	6Ø—)’)˜D×/Ò/°Ñ4Ô4Ñ5Ô5Ð5Ð5Ð5Ð5Ð5Ð5Ð5ð	6ð 	6ð 	6ñ 	6ô 	6ð 	6ð 	6ð 	6ð 	6ð 	6ð 	6ð 	6ð 	6ð 	6ð 	6ð 	6ð 	6ð 	6ð 	6ð 	6ð 	6ð 	6ð 	6ð 	6øøøð 	6ð 	6ð 	6ð 	6ð 	6ð 	6r  c              ƒ  ó<  K  — 	 | j         4 ƒd{V —† |                      |                      ¦   «         ¦  «        ƒ d{V —† ddd¦  «        ƒd{V —† dS # 1 ƒd{V —†swxY w Y   dS # t          j        $ r'}t          j        t          |¦  «        ¦  «        d‚d}~ww xY w)zV
        Perform the first phase of a transaction started with `tpc_begin()`.
        N)r?   rÐ   Ú_tpc_prepare_genrm   ÚObjectNotInPrerequisiteStateÚNotSupportedErrorrJ   )r@   r�   s     rB   Útpc_preparezAsyncConnection.tpc_prepareN  s<  è è € ð	9Ø”yð 9ð 9ð 9ð 9ð 9ð 9ð 9ð 9Ø—i’i × 5Ò 5Ñ 7Ô 7Ñ8Ô8Ð8Ð8Ð8Ð8Ð8Ð8Ð8ð9ð 9ð 9ñ 9ô 9ð 9ð 9ð 9ð 9ð 9ð 9ð 9ð 9ð 9ð 9ð 9ð 9ð 9ð 9ð 9ð 9ð 9ð 9ð 9øøøð 9ð 9ð 9ð 9ð 9ð 9øåÔ-ð 	9ð 	9ð 	9ÝÔ%¥c¨"¡g¤gÑ.Ô.°DÐ8øøøøð	9øøøs9   „A% ‘.A¿A% Á
AÁA% ÁAÁ A% Á%BÁ4"BÂBúXid | str | Nonec              ƒ  óÌ   K  — | j         4 ƒd{V —† |                      |                      d|¦  «        ¦  «        ƒ d{V —† ddd¦  «        ƒd{V —† dS # 1 ƒd{V —†swxY w Y   dS )z:
        Commit a prepared two-phase transaction.
        NÚCOMMIT©r?   rÐ   Ú_tpc_finish_genr/  s     rB   Ú
tpc_commitzAsyncConnection.tpc_commitX  s(  è è € ð ”9ð 	Að 	Að 	Að 	Að 	Að 	Að 	Að 	AØ—)’)˜D×0Ò0°¸3Ñ?Ô?Ñ@Ô@Ð@Ð@Ð@Ð@Ð@Ð@Ð@ð	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ð 	Að 	Að 	Aó   �0AÁ
AÁ Ac              ƒ  óÌ   K  — | j         4 ƒd{V —† |                      |                      d|¦  «        ¦  «        ƒ d{V —† ddd¦  «        ƒd{V —† dS # 1 ƒd{V —†swxY w Y   dS )z=
        Roll back a prepared two-phase transaction.
        NÚROLLBACKr9  r/  s     rB   Útpc_rollbackzAsyncConnection.tpc_rollback_  s(  è è € ð ”9ð 	Cð 	Cð 	Cð 	Cð 	Cð 	Cð 	Cð 	CØ—)’)˜D×0Ò0°¸SÑAÔAÑBÔBÐBÐBÐBÐBÐBÐBÐBð	Cð 	Cð 	Cñ 	Cô 	Cð 	Cð 	Cð 	Cð 	Cð 	Cð 	Cð 	Cð 	Cð 	Cð 	Cð 	Cð 	Cð 	Cð 	Cð 	Cð 	Cð 	Cð 	Cð 	Cøøøð 	Cð 	Cð 	Cð 	Cð 	Cð 	Cr<  ú	list[Xid]c              ƒ  óø  K  — |                       ¦   «          | j        j        }|                      t	          t
          j        ¦  «        ¬¦  «        4 ƒd {V —†}|                     t          j        ¦   «         ¦  «        ƒ d {V —† | 	                    ¦   «         ƒ d {V —†}d d d ¦  «        ƒd {V —† n# 1 ƒd {V —†swxY w Y   |t          k    r/| j        j        t          k    r|                      ¦   «         ƒ d {V —† |S )NrÂ   )Ú
_check_tpcÚinfor  r³   r   r   Ú_from_recordrË   Ú_get_recover_queryÚfetchallÚIDLEÚINTRANSr¡   )r@   ÚstatusrÆ   Úress       rB   Útpc_recoverzAsyncConnection.tpc_recoverf  sv  è è € Ø�ŠÑÔÐØ”Ô-ˆØ—;’;­8µCÔ4DÑ+EÔ+E�;ÑFÔFð 	'ð 	'ð 	'ð 	'ð 	'ð 	'ð 	'È#Ø—+’+�cÔ4Ñ6Ô6Ñ7Ô7Ð7Ð7Ð7Ð7Ð7Ð7Ð7ØŸš™œÐ&Ð&Ð&Ð&Ð&Ð&ˆCð	'ð 	'ð 	'ñ 	'ô 	'ð 	'ð 	'ð 	'ð 	'ð 	'ð 	'ð 	'ð 	'ð 	'ð 	'ð 	'ð 	'ð 	'ð 	'ð 	'ð 	'ð 	'ð 	'øøøð 	'ð 	'ð 	'ð 	'ð •TŠ>ˆ>˜dœiÔ:½gÒEÐEØ—-’-‘/”/Ð!Ð!Ð!Ð!Ð!Ð!Ð!àˆ
s   ÁAB/Â/
B9Â<B9)r:   r1   r8   r7   re   )rI   rJ   rF   rK   rG   rL   rH   rM   r8   rN   r5   rO   rP   r   rQ   r    )rQ   r    )r—   r˜   r™   rš   r›   rœ   rQ   r�   )rI   rJ   rP   r   rQ   r   )rQ   r�   )r°   rK   rQ   r±   )r°   rK   r8   r´   rQ   rµ   )
r¹   rJ   r°   rK   r·   rº   r¸   rK   rQ   r»   )r¹   rJ   r°   rK   r8   r´   r·   rº   r¸   rK   rQ   r½   )r¹   rJ   r°   rK   r8   r¿   r·   rº   r¸   rK   rQ   rÀ   r<   )
rÈ   r   rˆ   rÉ   rÇ   rº   r°   rK   rQ   r±   )rÈ   r!   rÇ   rº   r°   rK   rQ   r±   )
rÈ   r   rˆ   rÉ   rÇ   rº   r°   rK   rQ   r±   )rZ   rÕ   rQ   r�   )NF)rà   rá   râ   rK   rQ   rã   )rZ   ré   rè   rL   rQ   rê   )rQ   rû   )rŽ   r  r\   rÕ   rQ   r   )r
  rK   rQ   r�   )r
  r  rQ   r�   )r
  rº   rQ   r�   )r(  rJ   rQ   r�   )r+  r,  rQ   r�   )r+  r6  rQ   r�   )rQ   r@  )-Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú__annotations__r   r   r   r   r>   Úclassmethodr“   r–   r¨   ro   r¦   r	   r³   rË   r¤   r¡   rÜ   rß   r
   rç   r'   rå   r  ru   rÐ   r  r  r  r  r  r  r%  r$  r  r0  r5  r;  r?  rK  Ú__classcell__)rA   s   @rB   r4   r4   >   s.  ø€ € € € € € ðð ð €Jà*Ð*Ð*Ñ*Ø7Ð7Ð7Ñ7Ø%Ð%Ð%Ñ%Ø#Ð#Ð#Ñ#ð
 -1¨D°ÀÔ1EÀyÑ,QÔ,Qð	7ð 	7ð 	7ð 	7ð 	7ð 	7ð 	7ð ð ðUð !Ø()Ø'+Ø37Ø8<ðUð Uð Uð Uð Uñ „[ðUðnð ð ð ðð ð ð ð. ð4ð 4ð 4ñ „[ð4ðð ð ð ð  Ø',ÐFÐFÐFÐFÐFñ „XØFàà %ð%ð %ð %ð %ð %ñ „Xð%ð ð
 Ø"&Øð%ð %ð %ð %ð %ñ „Xð%ð ð
 à"&Øð+ð +ð +ð +ð +ñ „Xð+ð ð ð Ø37Ø"&Øð ð  ð  ð  ð  ð  ðD ð !%ðð
  $Øðð ð ð ð ñ „Xðð ð
  $Øðð ð ð ð ñ „Xðð !%ð*ð
  $Øð*ð *ð *ð *ð *ð *ð60ð 0ð 0ð 0ð
2ð 2ð 2ð 2ð
 59ð ð ð ð ð ð ð: 58ð @ð @ð @ð @ð @ð @ð àHMðð ð ð ñ Ôðð* *.ÈðJ+ð J+ð J+ð J+ð J+ð J+ðX ð*ð *ð *ñ Ôð*ð$ ð"ð "ð "ñ Ôð"ð( <Jð ð ð ð ð ð('ð 'ð 'ð 'ð=ð =ð =ð =ð
,ð ,ð ,ð ,ðBð Bð Bð Bð
&ð &ð &ð &ð<ð <ð <ð <ð
'ð 'ð 'ð 'ð=ð =ð =ð =ð
ð	ð 	ð 	ð 	ð6ð 6ð 6ð 6ð9ð 9ð 9ð 9ðAð Að Að Að AðCð Cð Cð Cð Cð
ð 
ð 
ð 
ð 
ð 
ð 
ð 
rC   r4   )ZrO  Ú
__future__r   Úloggingr€   Útimer   Útypesr   Útypingr   r   r   r	   Ú
contextlibr
   Úcollections.abcr   r   rD   r   rm   r   r   Úabcr   r   r   r   r   r   r   r   Ú_tpcr   Úrowsr   r   r   r   Úadaptr   Ú_enumsr   rl   r    r!   Ú_acompatr"   rI   r#   r$   r%   r&   Ú
generatorsr'   rç   r(   Úcursor_asyncr)   Ú_capabilitiesr*   Ú_conninfo_utilsr+   Ú_pipeline_asyncr,   Ú_connection_baser-   r.   r/   Ú_server_cursor_asyncr0   rf   rh   Úpq.abcr1   ru   ÚFormatÚTEXTrÄ   ÚTransactionStatusrG  r  rH  ÚCancelledErrorÚKeyboardInterruptr  Ú	getLoggerrq   r4   r_   rC   rB   ú<module>rn     s=  ððð ð #Ð "Ð "Ð "Ð "Ð "à €€€Ø €€€Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ø *Ð *Ð *Ð *Ð *Ð *Ø 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9à Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ð Ð Ø LÐ LÐ LÐ LÐ LÐ LÐ LÐ LÐ LÐ LÐ LÐ LÐ LÐ LÐ LÐ LÐ LÐ LØ  Ð  Ð  Ð  Ð  Ð  Ø Ð Ð Ð Ð Ð Ø ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ø Ð Ð Ð Ð Ð Ø "Ð "Ð "Ð "Ð "Ð "Ø #Ð #Ð #Ð #Ð #Ð #Ð #Ð #Ø Ð Ð Ð Ð Ð Ø NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NØ +Ð +Ð +Ð +Ð +Ð +Ø  Ð  Ð  Ð  Ð  Ð  Ø )Ð )Ð )Ð )Ð )Ð )Ø %Ð %Ð %Ð %Ð %Ð %Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø -Ð -Ð -Ð -Ð -Ð -Ø *Ð *Ð *Ð *Ð *Ð *Ø ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ø 3Ð 3Ð 3Ð 3Ð 3Ð 3ðØ€J€J€JØ€N€N€Nàð ØÐÐÐÐÐà€à	„y„~€Ø	ŒÔ	€à	ÔÔ €Ø	Ô	Ô	$€Ø
Ô
Ô
&€ð%ØÔ*Ð,=Ð>€Lð 
ˆÔ	˜9Ñ	%Ô	%€ðrð rð rð rð r�n SÔ)ñ rô rð rð rð rrC   