§
    šŠtj/  ã                   ó®  — d dl Z d dlZd dlmZ d dlmZmZmZmZm	Z	m
Z
mZmZ d dlZd dlmZmZ d dlmZmZmZ d dlmZmZmZmZmZmZmZmZmZ d dlm Z m!Z!m"Z" d dl#m$Z$m%Z%m&Z& d d	l'm(Z(m)Z)m*Z*  ej+        e,¦  «        Z-d
Z.dZ/dede0fd„Z1de
e2ef         defd„Z3de
e2ef         dee         defd„Z4edede2de2dedef
d„¦   «         Z5 G d„ de¦  «        Z6dS )é    N)Úasynccontextmanager)ÚAnyÚAsyncIteratorÚDictÚIteratorÚListÚMappingÚOptionalÚType)ÚAsyncCallbackManagerForLLMRunÚCallbackManagerForLLMRun)ÚBaseChatModelÚagenerate_from_streamÚgenerate_from_stream)	Ú	AIMessageÚAIMessageChunkÚBaseMessageÚBaseMessageChunkÚChatMessageÚChatMessageChunkÚHumanMessageÚHumanMessageChunkÚSystemMessage)ÚChatGenerationÚChatGenerationChunkÚ
ChatResult)Úconvert_to_secret_strÚget_from_dict_or_envÚget_pydantic_field_names)Ú
ConfigDictÚFieldÚ	SecretStrz/https://api.lingyiwanwu.com/v1/chat/completionsz%https://api.01.ai/v1/chat/completionsÚmessageÚreturnc                 ó4  — t          | t          ¦  «        r| j        | j        dœ}nrt          | t          ¦  «        rd| j        dœ}nRt          | t
          ¦  «        rd| j        dœ}n2t          | t          ¦  «        rd| j        dœ}nt          d| › �¦  «        ‚|S )N)ÚroleÚcontentÚuserÚ	assistantzGot unknown type )Ú
isinstancer   r&   r'   r   r   r   Ú	TypeError)r#   Úmessage_dicts     ú`/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/langchain_community/chat_models/yi.pyÚ_convert_message_to_dictr.   )   s­   € å�'�;Ñ'Ô'ð 	7Ø '¤¸¼ÐIÐIˆˆÝ	�G�\Ñ	*Ô	*ð 7Ø &°7´?ÐCÐCˆˆÝ	�G�YÑ	'Ô	'ð 7Ø +¸¼ÐHÐHˆˆÝ	�G�]Ñ	+Ô	+ð 7Ø +¸¼ÐHÐHˆˆåÐ5¨GÐ5Ð5Ñ6Ô6Ð6àÐó    Ú_dictc                 ó  — | d         }|dk    rt          | d         ¬¦  «        S |dk    r&t          |                      dd¦  «        pd¬¦  «        S |dk    rt          | d         ¬¦  «        S t          | d         |¬¦  «        S )	Nr&   r(   r'   ©r'   r)   Ú Úsystem©r'   r&   )r   r   Úgetr   )r0   r&   s     r-   Ú_convert_dict_to_messager7   9   s’   € Ø�Œ=€DØˆv‚~€~Ý E¨)Ô$4Ð5Ñ5Ô5Ð5Ø	�Ò	Ð	Ý §¢¨9°bÑ!9Ô!9Ð!?¸RÐ@Ñ@Ô@Ð@Ø	�Ò	Ð	Ý  yÔ!1Ð2Ñ2Ô2Ð2å 5¨Ô#3¸$Ð?Ñ?Ô?Ð?r/   Údefault_classc                 ó  — | d         }|                       d¦  «        pd}|dk    s|t          k    rt          |¬¦  «        S |dk    s|t          k    rt          |¬¦  «        S |s|t          k    rt          ||¬¦  «        S  |||¬¦  «        S )	Nr&   r'   r3   r(   r2   r)   r5   )r'   Útype)r6   r   r   r   )r0   r8   r&   r'   s       r-   Ú_convert_delta_to_message_chunkr;   E   s©   € ð �f”€DØ�iŠi˜	Ñ"Ô"Ð( b€Gàˆv‚~€~˜Õ*;Ò;Ð;Ý ¨Ð1Ñ1Ô1Ð1Ø	�Ò	Ð	 µÒ ?Ð ?Ý gÐ.Ñ.Ô.Ð.Ø	ð 9�Õ"2Ò2Ð2Ý¨°dÐ;Ñ;Ô;Ð;àˆ} W°4Ð8Ñ8Ô8Ð8r/   ÚclientÚmethodÚurlÚkwargsc                ó¦   K  — ddl m}  | j        ||fi |¤Ž4 ƒd {V —†} ||¦  «        W V — d d d ¦  «        ƒd {V —† d S # 1 ƒd {V —†swxY w Y   d S )Nr   )ÚEventSource)Ú	httpx_sserA   Ústream)r<   r=   r>   r?   rA   Úresponses         r-   Úaconnect_httpx_sserE   U   s
  è è € ð &Ð%Ð%Ð%Ð%Ð%àˆvŒ}˜V SÐ3Ð3¨FÐ3Ð3ð $ð $ð $ð $ð $ð $ð $°xØˆk˜(Ñ#Ô#Ð#Ð#Ð#Ð#ð$ð $ð $ñ $ô $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $øøøð $ð $ð $ð $ð $ð $s   žA Á 
A
ÁA
c                   óö  ‡ — e Zd ZU dZedeeef         fd„¦   «         Zedefd„¦   «         Z	 e
e¬¦  «        Zeed<    e
d¬¦  «        Zeed	<    e
d
¬¦  «        Zeed<   dZeed<    e
dd¬¦  «        Zeed<   dZeed<    e
d¬¦  «        Zee         ed<   dZeed<    e
e¬¦  «        Zeeef         ed<    ed¬¦  «        Zdeddfˆ fd„Zedeeef         fd„¦   «         Z	 	 d-de e!         d ee e                  d!ee"         dede#f
d"„Z$	 	 d-de e!         d ee e                  d!ee"         dede%e&         f
d#„Z'	 	 	 d.de e!         d ee e                  d!ee(         d$ee         dede#fd%„Z)	 	 d-de e!         d ee e                  d!ee(         dede*e&         f
d&„Z+de e!         dede,j-        fd'„Z.de e!         dedeeef         fd(„Z/dedeeef         fd)„Z0d*e1eef         de#fd+„Z2edefd,„¦   «         Z3ˆ xZ4S )/ÚChatYizYi chat models API.r$   c                 ó
   — ddiS )NÚ
yi_api_keyÚ
YI_API_KEY© ©Úselfs    r-   Ú
lc_secretszChatYi.lc_secretsb   s   € ð ˜,ð
ð 	
r/   c                 ó   — dS )NTrK   rL   s    r-   Úlc_serializablezChatYi.lc_serializableh   s   € àˆtr/   )ÚdefaultÚyi_api_baseÚapi_key)ÚaliasrI   ÚcnÚregionFÚ	streamingé<   Útimeout)rQ   rT   Úrequest_timeoutzyi-largeÚmodelçffffffæ?ÚtemperatureÚtop_p)Údefault_factoryÚmodel_kwargsT)Úpopulate_by_namer?   Nc                 ó�  •— t          t          |ddgd¦  «        ¦  «        |d<   |                     d¦  «        €C|                     dd¦  «                             ¦   «         }|dk    rt          |d<   n
t
          |d<   t          | j        ¦  «        }|                     di ¦  «        }t          |¦  «        D ]5}||v rt          d	|› d
�¦  «        ‚||vr| 
                    |¦  «        ||<   Œ6|                     |                     ¦   «         ¦  «        }|rt          d|› d�¦  «        ‚||d<    t          ¦   «         j        di |¤Ž d S )NrI   rS   rJ   rR   rV   rU   Úglobalr`   zFound z supplied twice.zParameters za should be specified explicitly. Instead they were passed in as part of `model_kwargs` parameter.rK   )r   r   r6   ÚlowerÚDEFAULT_API_BASE_GLOBALÚDEFAULT_API_BASE_CNr   Ú	__class__ÚlistÚ
ValueErrorÚpopÚintersectionÚkeysÚsuperÚ__init__)rM   r?   rV   Úall_required_field_namesÚextraÚ
field_nameÚinvalid_model_kwargsrg   s          €r-   rn   zChatYi.__init__z   s‡  ø€ Ý4Ý ØØ˜yÐ)Øñô ñ 
ô  
ˆˆ|Ñð �:Š:�mÑ$Ô$Ð,Ø—Z’Z ¨$Ñ/Ô/×5Ò5Ñ7Ô7ˆFØ˜Ò!Ð!Ý(?��}Ñ%Ð%å(;��}Ñ%å#;¸D¼NÑ#KÔ#KÐ Ø—
’
˜>¨2Ñ.Ô.ˆÝ˜v™,œ,ð 	;ð 	;ˆJØ˜UÐ"Ð"Ý Ð!F¨*Ð!FÐ!FÐ!FÑGÔGÐGØÐ!9Ð9Ð9Ø$*§J¢J¨zÑ$:Ô$:��jÑ!øà7×DÒDÀUÇZÂZÁ\Ä\ÑRÔRÐØð 	ÝðTÐ2ð Tð Tð Tñô ð ð
 "'ˆˆ~ÑØ�‰ŒÔÐ"Ð"˜6Ð"Ð"Ð"Ð"Ð"r/   c                 ó8   — | j         | j        | j        | j        dœS )N)r[   r]   r^   rC   )r[   r]   r^   rW   rL   s    r-   Ú_default_paramszChatYi._default_params›   s(   € ð ”ZØÔ+Ø”ZØ”nð	
ð 
ð 	
r/   ÚmessagesÚstopÚrun_managerc                 óø   — | j         r  | j        d|||dœ|¤Ž}t          |¦  «        S  | j        |fi |¤Ž}|j        dk    rt          d|› �¦  «        ‚|                     ¦   «         }|                      |¦  «        S )N)ru   rv   rw   éÈ   úError from Yi api response: rK   )rW   Ú_streamr   Ú_chatÚstatus_coderi   ÚjsonÚ_create_chat_result)rM   ru   rv   rw   r?   Ústream_iterÚresrD   s           r-   Ú	_generatezChatYi._generate¤   s¨   € ð Œ>ð 	5Ø&˜$œ,ð Ø!¨¸+ðð ØIOðð ˆKõ (¨Ñ4Ô4Ð4àˆdŒj˜Ð,Ð, VÐ,Ð,ˆØŒ?˜cÒ!Ð!ÝÐA¸CÐAÐAÑBÔBÐBØ—8’8‘:”:ˆØ×'Ò'¨Ñ1Ô1Ð1r/   c              +   ó˜  K  —  | j         |fddi|¤Ž}|j        dk    rt          d|› �¦  «        ‚t          }|                     ¦   «         D ]þ}|                     d¦  «                             d¦  «        }|                     dd¦  «        }t          |¦  «        dk    r|d         nd }|€Œ`|d	k    r d S t          j
        |¦  «        }	|	                     d
¦  «        D ]k}
t          |
                     d¦  «        |¦  «        }|j        }t          |¬¦  «        }|r)|                     t!          |j        ¦  «        |¬¦  «         |V — ŒlŒÿd S )NrC   Try   rz   zutf-8z
zdata: é   z[DONE]ÚchoicesÚdelta©r#   ©Úchunk)r|   r}   ri   r   Ú
iter_linesÚdecodeÚstripÚsplitÚlenr~   Úloadsr6   r;   rg   r   Úon_llm_new_tokenÚstrr'   )rM   ru   rv   rw   r?   r�   Údefault_chunk_classr‰   ÚpartsrD   ÚmÚcg_chunks               r-   r{   zChatYi._stream·   sy  è è € ð ˆdŒj˜Ð9Ð9¨$Ð9°&Ð9Ð9ˆØŒ?˜cÒ!Ð!ÝÐA¸CÐAÐAÑBÔBÐBÝ6DÐØ—^’^Ñ%Ô%ð 	ð 	ˆEØ—L’L Ñ)Ô)×/Ò/°Ñ7Ô7ˆEØ—K’K ¨!Ñ,Ô,ˆEÝ # E¡
¤
¨Q¢ �E˜!”H�H°DˆEØˆ}ØØ˜Ò Ð Ø��Ý”z %Ñ(Ô(ˆHØ—\’\ )Ñ,Ô,ð ð �Ý7Ø—E’E˜'‘N”NÐ$7ñô �ð ',¤oÐ#Ý.°uÐ=Ñ=Ô=�Øð UØ×0Ò0µ°U´]Ñ1CÔ1CÈ8Ð0ÑTÔTÐTØ����ðð	ð 	r/   rC   c              ‹   óò  K  — |�|n| j         }|r& | j        |f||dœ|¤Ž}t          |¦  «        ƒ d {V —†S  | j        di |¤Ž} | j        |fi |¤Ž}	dd l}
|
                     || j        ¬¦  «        4 ƒd {V —†	 }|                     | j	        |	¬¦  «        ƒ d {V —†}| 
                    ¦   «          d d d ¦  «        ƒd {V —† n# 1 ƒd {V —†swxY w Y   |                      |                     ¦   «         ¦  «        S )N)rv   rw   r   ©ÚheadersrY   ©r~   rK   )rW   Ú_astreamr   Ú_create_headers_parametersÚ_create_payload_parametersÚhttpxÚAsyncClientrZ   ÚpostrR   Úraise_for_statusr   r~   )rM   ru   rv   rw   rC   r?   Úshould_streamr€   r˜   Úpayloadr�   r<   rD   s                r-   Ú
_ageneratezChatYi._agenerateÕ   sÙ  è è € ð #)Ð"4˜˜¸$¼.ˆØð 	<Ø'˜$œ-ØðØ#°ðð Ø@Fðð ˆKõ /¨{Ñ;Ô;Ð;Ð;Ð;Ð;Ð;Ð;Ð;à1�$Ô1Ð;Ð;°FÐ;Ð;ˆØ1�$Ô1°(ÐEÐE¸fÐEÐEˆàˆˆˆà×$Ò$Ø TÔ%9ð %ñ 
ô 
ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(àØ#Ÿ[š[¨Ô)9À˜[ÑHÔHÐHÐHÐHÐHÐHÐHˆHØ×%Ò%Ñ'Ô'Ð'ð		(ð 	(ð 	(ñ 	(ô 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(øøøð 	(ð 	(ð 	(ð 	(ð
 ×'Ò'¨¯ª©¬Ñ8Ô8Ð8s   Á87CÃ
CÃCc                ó  K  —  | j         di |¤Ž} | j        |fddi|¤Ž}dd l}|                     || j        ¬¦  «        4 ƒd {V —†	 }t          |d| j        |¬¦  «        4 ƒd {V —†	 }	|	                     ¦   «         2 3 d {V —†}
t          j	        |
j
        ¦  «        }t          |d         ¦  «        dk    rŒ:|d         d         }t          |d         t          ¦  «        }|                     d	d ¦  «        }|�d	|ind }t          ||¬
¦  «        }|r"|                     |j        |¬¦  «        ƒ d {V —† |W V — |� nŒÀ6 	 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 )NrC   Tr   r—   ÚPOSTr™   r…   r†   Úfinish_reason)r#   Úgeneration_inforˆ   rK   )r›   rœ   r�   rž   rZ   rE   rR   Ú	aiter_sser~   r�   ÚdatarŽ   r;   r   r6   r   r�   Útext)rM   ru   rv   rw   r?   r˜   r¢   r�   r<   Úevent_sourceÚsser‰   Úchoicer¦   r§   s                  r-   rš   zChatYi._astreamð   s.  è è € ð 2�$Ô1Ð;Ð;°FÐ;Ð;ˆØ1�$Ô1°(ÐRÐRÀ4ÐRÈ6ÐRÐRˆØˆˆˆà×$Ò$Ø TÔ%9ð %ñ 
ô 
ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	àÝ)Ø˜ Ô 0°wðñ ô ð ð ð ð ð ð ð ð àØ!-×!7Ò!7Ñ!9Ô!9ð ð ð ð ð ð ð ˜#Ý œJ s¤xÑ0Ô0�EÝ˜5 Ô+Ñ,Ô,°Ò1Ð1Ø Ø" 9Ô-¨aÔ0�FÝ;Ø˜wœ­ñô �Eð %+§J¢J¨ÀÑ$EÔ$E�Mð )Ð4ð )¨-Ð8Ð8à!ð $õ
 0Ø %°ðñ ô �Eð #ð TØ)×:Ò:¸5¼:ÈUÐ:ÑSÔSÐSÐSÐSÐSÐSÐSÐSØ�K�K�K�KØ$Ð0Ø˜ð 1ð+ ":Ð!9ðð ð ñ ô ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð øøøð ð ð ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	sC   ÁE4Á'EÁ<D<ÂB;EÄ>E4Å
E	ÅE4ÅE	ÅE4Å4
E>ÆE>c                 ó�   —  | j         |fi |¤Ž}| j        } | j        di |¤Ž}t          j        || j        ||| j        ¬¦  «        }|S )N)r>   rY   r˜   r~   rC   rK   )rœ   rR   r›   ÚrequestsrŸ   rZ   rW   )rM   ru   r?   r¢   r>   r˜   r�   s          r-   r|   zChatYi._chat  sm   € Ø1�$Ô1°(ÐEÐE¸fÐEÐEˆØÔˆØ1�$Ô1Ð;Ð;°FÐ;Ð;ˆåŒmØØÔ(ØØØ”>ð
ñ 
ô 
ˆð ˆ
r/   c                 óî   — i | j         ¥|¥}|                     dd¦  «        }|                     dd¦  «        }|                     d¦  «        }|                     dd¦  «        }|d„ |D ¦   «         |||dœ}|S )	Nr]   r\   r^   r[   rC   Fc                 ó,   — g | ]}t          |¦  «        ‘ŒS rK   )r.   )Ú.0r”   s     r-   ú
<listcomp>z5ChatYi._create_payload_parameters.<locals>.<listcomp>2  s!   € ÐGÐGÐG¸Õ1°!Ñ4Ô4ÐGÐGÐGr/   )r[   ru   r^   r]   rC   )rt   rj   )	rM   ru   r?   Ú
parametersr]   r^   r[   rC   r¢   s	            r-   rœ   z!ChatYi._create_payload_parameters'  s’   € ð 8˜Ô,Ð7°Ð7ˆ
Ø —n’n ]°CÑ8Ô8ˆØ—’˜w¨Ñ,Ô,ˆØ—’˜wÑ'Ô'ˆØ—’ ¨%Ñ0Ô0ˆð ØGÐG¸hÐGÑGÔGØØ&Øð
ð 
ˆð ˆr/   c                 ó    — i | j         ¥|¥}|                     di ¦  «        }d}| j        r| j                             ¦   «         }dd|› �dœ|¥}|S )Nr˜   r3   zapplication/jsonzBearer )zContent-TypeÚAuthorization)rt   rj   rI   Úget_secret_value)rM   r?   r´   Údefault_headersrS   r˜   s         r-   r›   z!ChatYi._create_headers_parameters9  sv   € Ø7˜Ô,Ð7°Ð7ˆ
Ø$Ÿ.š.¨°BÑ7Ô7ˆØˆØŒ?ð 	9Ø”o×6Ò6Ñ8Ô8ˆGð /Ø0 wÐ0Ð0ð
ð 
ð ð
ˆð
 ˆr/   rD   c                 óÖ   — g }|d         D ]<}t          |d         ¦  «        }t          |¬¦  «        }|                     |¦  «         Œ=|d         }|| j        dœ}t	          ||¬¦  «        S )Nr…   r#   r‡   Úusage)Útoken_usager[   )ÚgenerationsÚ
llm_output)r7   r   Úappendr[   r   )rM   rD   r¼   Úcr#   Úgenr»   r½   s           r-   r   zChatYi._create_chat_resultG  s   € ØˆØ˜)Ô$ð 	$ð 	$ˆAÝ.¨q°¬|Ñ<Ô<ˆGÝ ¨Ð1Ñ1Ô1ˆCØ×Ò˜sÑ#Ô#Ð#Ð#à˜wÔ'ˆØ%0¸4¼:ÐFÐFˆ
Ý k¸jÐIÑIÔIÐIr/   c                 ó   — dS )Nzyi-chatrK   rL   s    r-   Ú	_llm_typezChatYi._llm_typeR  s   € àˆyr/   )NN)NNN)5Ú__name__Ú
__module__Ú__qualname__Ú__doc__Úpropertyr   r‘   rN   ÚboolrP   r!   rf   rR   Ú__annotations__rI   r"   rV   rW   rZ   Úintr[   r]   r
   Úfloatr^   Údictr`   r   r    Úmodel_configrn   rt   r   r   r   r   r‚   r   r   r{   r   r£   r   rš   r¯   ÚResponser|   rœ   r›   r	   r   rÂ   Ú__classcell__)rg   s   @r-   rG   rG   _   s~  ø€ € € € € € ØÐàð
˜D  c œNð 
ð 
ð 
ñ „Xð
ð
 ð ð ð ð ñ „Xðð �uÐ%8Ð9Ñ9Ô9€K�Ð9Ð9Ñ9Ø!˜E¨	Ð2Ñ2Ô2€J�	Ð2Ð2Ñ2Ø�% Ð%Ñ%Ô%€FˆCÐ%Ð%Ñ%Ø€IˆtÐÐÑØ ˜5¨°9Ð=Ñ=Ô=€O�SÐ=Ð=Ñ=Ø€Eˆ3ÐÐÑØ#( 5°Ð#5Ñ#5Ô#5€K�˜%”Ð5Ð5Ñ5Ø€Eˆ5ÐÐÑØ#( 5¸Ð#>Ñ#>Ô#>€L�$�s˜C�x”.Ð>Ð>Ñ>à�:Øðñ ô €Lð# ð #¨ð #ð #ð #ð #ð #ð #ðB ð
  c¨3 h¤ð 
ð 
ð 
ñ „Xð
ð %)Ø:>ð	2ð 2à�{Ô#ð2ð �t˜C”yÔ!ð2ð Ð6Ô7ð	2ð
 ð2ð 
ð2ð 2ð 2ð 2ð, %)Ø:>ð	ð à�{Ô#ðð �t˜C”yÔ!ðð Ð6Ô7ð	ð
 ðð 
Ð%Ô	&ðð ð ð ðB %)Ø?CØ!%ð9ð 9à�{Ô#ð9ð �t˜C”yÔ!ð9ð Ð;Ô<ð	9ð
 ˜”ð9ð ð9ð 
ð9ð 9ð 9ð 9ð< %)Ø?Cð	'ð 'à�{Ô#ð'ð �t˜C”yÔ!ð'ð Ð;Ô<ð	'ð
 ð'ð 
Ð*Ô	+ð'ð 'ð 'ð 'ðR˜d ;Ô/ð ¸3ð À8ÔCTð ð ð ð ðØ˜[Ô)ðØ58ðà	ˆc�3ˆhŒðð ð ð ð$°3ð ¸4ÀÀSÀ¼>ð ð ð ð ð	J¨G°C¸°HÔ,=ð 	JÀ*ð 	Jð 	Jð 	Jð 	Jð ð˜3ð ð ð ñ „Xðð ð ð ð r/   rG   )7r~   ÚloggingÚ
contextlibr   Útypingr   r   r   r   r   r	   r
   r   r¯   Úlangchain_core.callbacksr   r   Ú*langchain_core.language_models.chat_modelsr   r   r   Úlangchain_core.messagesr   r   r   r   r   r   r   r   r   Úlangchain_core.outputsr   r   r   Úlangchain_core.utilsr   r   r   Úpydanticr    r!   r"   Ú	getLoggerrÃ   Úloggerrf   re   rÌ   r.   r‘   r7   r;   rE   rG   rK   r/   r-   ú<module>rÛ      sÜ  ðØ €€€Ø €€€Ø *Ð *Ð *Ð *Ð *Ð *Ø TÐ TÐ TÐ TÐ TÐ TÐ TÐ TÐ TÐ TÐ TÐ TÐ TÐ TÐ TÐ TÐ TÐ TÐ TÐ Tà €€€ðð ð ð ð ð ð ð ðð ð ð ð ð ð ð ð ð ð

ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð SÐ RÐ RÐ RÐ RÐ RÐ RÐ RÐ RÐ Rðð ð ð ð ð ð ð ð ð ð
 2Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1à	ˆÔ	˜8Ñ	$Ô	$€àGÐ ØAÐ ð kð °dð ð ð ð ð 	@ G¨C°¨HÔ$5ð 	@¸+ð 	@ð 	@ð 	@ð 	@ð9Ø�3˜�8Ôð9Ø-1Ð2BÔ-Cð9àð9ð 9ð 9ð 9ð  ð$Øð$Øð$Ø#&ð$Ø25ð$àð$ð $ð $ñ Ôð$ðuð uð uð uð uˆ]ñ uô uð uð uð ur/   