§
    @xÅj;  ã                   óÒ   — d dl Z d dlmZ d dlm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 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  G d„ de¦  «        Z G d„ de¦  «        ZdS )é    N)Ú
xform_name)ÚDocumentStructure)Úget_official_service_name)ÚActionDocumenter)Údocument_attributeÚdocument_identifierÚdocument_reference)ÚBaseDocumenter)ÚCollectionDocumenter)ÚSubResourceDocumenter)Úadd_resource_type_overviewÚ!get_identifier_args_for_signatureÚget_identifier_descriptionÚ!get_identifier_values_for_example)ÚWaiterResourceDocumenterc                   óx   ‡ — e Zd Zˆ fd„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zˆ xZS )ÚResourceDocumenterc                 óÔ   •— t          ¦   «                              |¦  «         || _        || _        | j                             ¦   «         | _        | j        | j        k    r	d| _        d S d S )Nzservice-resource)ÚsuperÚ__init__Ú_botocore_sessionÚ_root_docs_pathÚ_resource_nameÚlowerÚ_resource_sub_pathÚ_service_name)ÚselfÚresourceÚbotocore_sessionÚroot_docs_pathÚ	__class__s       €úDC:\Projects\Historical\venv\Lib\site-packages\boto3/docs/resource.pyr   zResourceDocumenter.__init__&   si   ø€ Ý‰Œ×Ò˜Ñ"Ô"Ð"Ø!1ˆÔØ-ˆÔØ"&Ô"5×";Ò";Ñ"=Ô"=ˆÔØÔ $Ô"4Ò4Ð4Ø&8ˆDÔ#Ð#Ð#ð 5Ð4ó    c                 óª  — |                       |¦  «         |                      |¦  «         |                      |¦  «         |                      |¦  «         |                      |¦  «         |                      |¦  «         |                      |¦  «         |                      |¦  «         |                      |¦  «         |  	                    |¦  «         d S )N)
Ú
_add_titleÚ_add_resource_noteÚ
_add_introÚ_add_identifiersÚ_add_attributesÚ_add_referencesÚ_add_actionsÚ_add_sub_resourcesÚ_add_collectionsÚ_add_waiters©r   Úsections     r"   Údocument_resourcez$ResourceDocumenter.document_resource.   sÌ   € Ø�Š˜Ñ Ô Ð Ø×Ò Ñ(Ô(Ð(Ø�Š˜Ñ Ô Ð Ø×Ò˜gÑ&Ô&Ð&Ø×Ò˜WÑ%Ô%Ð%Ø×Ò˜WÑ%Ô%Ð%Ø×Ò˜'Ñ"Ô"Ð"Ø×Ò Ñ(Ô(Ð(Ø×Ò˜gÑ&Ô&Ð&Ø×Ò˜'Ñ"Ô"Ð"Ð"Ð"r#   c                 ón   — |                      d¦  «        }|j                             | j        ¦  «         d S )NÚtitle)Úadd_new_sectionÚstyleÚh2r   ©r   r0   Útitle_sections      r"   r%   zResourceDocumenter._add_title:   s5   € Ø×/Ò/°Ñ8Ô8ˆØÔ×Ò˜tÔ2Ñ3Ô3Ð3Ð3Ð3r#   c                 ód  — g }| j         j        r)| j         j        D ]}|                     |j        ¦  «         Œt	          |¦  «        }|                     d¦  «        }|j                             | j        › d|› d�¬¦  «         |                     d¦  «        }|  	                    |¦  «         |                     d¦  «        }|  
                    ||¦  «         |                     d¦  «        }|                      ||¦  «         |                     d¦  «        }	|	j                             ¦   «          d S )	NÚstart_classú(ú))Ú
class_nameÚdescriptionÚexampleÚparamsÚ	end_class)Ú_resource_modelÚidentifiersÚappendÚnamer   r4   r5   Ústart_sphinx_py_classr=   Ú_add_descriptionÚ_add_exampleÚ_add_params_descriptionÚend_sphinx_py_class)
r   r0   Úidentifier_namesÚ
identifierÚ
class_argsr:   Údescription_sectionÚexample_sectionÚparam_sectionrA   s
             r"   r'   zResourceDocumenter._add_intro>   sM  € ØÐØÔÔ+ð 	9Ø"Ô2Ô>ð 9ð 9�
Ø ×'Ò'¨
¬Ñ8Ô8Ð8Ð8õ 7Ð7GÑHÔHˆ
Ø×-Ò-¨mÑ<Ô<ˆØÔ×/Ò/Øœ/Ð9Ð9¨JÐ9Ð9Ð9ð 	0ñ 	
ô 	
ð 	
ð
 *×9Ò9¸-ÑHÔHÐØ×ÒÐ1Ñ2Ô2Ð2ð &×5Ò5°iÑ@Ô@ˆØ×Ò˜/Ð+;Ñ<Ô<Ð<ð $×3Ò3°HÑ=Ô=ˆØ×$Ò$ ]Ð4DÑEÔEÐEà×+Ò+¨KÑ8Ô8ˆ	ØŒ×+Ò+Ñ-Ô-Ð-Ð-Ð-r#   c                 ón   — t          | j        ¦  «        }|                     d|› d| j        › �¦  «         d S )NzA resource representing an ú )r   Ú_service_modelÚwriter   ©r   r0   Úofficial_service_names      r"   rG   z#ResourceDocumenter._add_description[   sJ   € Ý 9¸$Ô:MÑ NÔ NÐØ�ŠØWÐ*?ÐWÐWÀ$ÔBUÐWÐWñ	
ô 	
ð 	
ð 	
ð 	
r#   c           
      ó>  — |j                              ¦   «          |j                              ¦   «          |                     d¦  «         |j                              ¦   «          |j                              ¦   «          |                     | j        › d| j        › d�¦  «         |j                              ¦   «          t          |¦  «        }|                     t          | j        ¦  «        › d| j        › d| j        › d|› d�¦  «         |j                              ¦   «          d S )Núimport boto3ú = boto3.resource('ú')z = ú.r;   r<   )	r5   Ústart_codeblockÚnew_linerT   r   r   r   r   Úend_codeblock)r   r0   rK   Úexample_valuess       r"   rH   zResourceDocumenter._add_examplea   s   € ØŒ×%Ò%Ñ'Ô'Ð'ØŒ×ÒÑ Ô Ð Ø�Š�nÑ%Ô%Ð%ØŒ×ÒÑ Ô Ð ØŒ×ÒÑ Ô Ð Ø�ŠØÔ!ÐNÐN°tÔ7IÐNÐNÐNñ	
ô 	
ð 	
ð 	Œ×ÒÑ Ô Ð Ý:Ð;KÑLÔLˆØ�ŠÝ˜$Ô-Ñ.Ô.ÐoÐo°4Ô3EÐoÐoÈÔH[ÐoÐoÐ^lÐoÐoÐoñ	
ô 	
ð 	
ð 	Œ×#Ò#Ñ%Ô%Ð%Ð%Ð%r#   c                 ó  — |D ]}}t          | j        |¦  «        }|                     d|› d�¦  «         |j                             ¦   «          |                     d|› d|› �¦  «         |j                             ¦   «          Œ~d S )Nz:type z: stringz:param z: )r   r   rT   r5   r]   )r   r0   rK   Úidentifier_namer>   s        r"   rI   z*ResourceDocumenter._add_params_descriptionq   s    € Ø/ð 	%ð 	%ˆOÝ4ØÔ# _ñô ˆKð �MŠMÐ< ?Ð<Ð<Ð<Ñ=Ô=Ð=ØŒM×"Ò"Ñ$Ô$Ð$Ø�MŠMÐD OÐDÐD°{ÐDÐDÑEÔEÐEØŒM×"Ò"Ñ$Ô$Ð$Ð$ð	%ð 	%r#   c                 ó$  — |j                              ¦   «          |                     d|› d�¦  «         |j                              ¦   «          |j                              ¦   «          | j        |         D ]}|j                              |› ¦  «         Œd S )Nz#These are the resource's available ú:)r5   r]   rT   ÚtoctreeÚ
member_mapÚtocitem)r   r0   Úresource_member_typeÚmembers       r"   Ú_add_overview_of_member_typez/ResourceDocumenter._add_overview_of_member_type{   s¡   € ØŒ×ÒÑ Ô Ð Ø�ŠØJÐ3GÐJÐJÐJñ	
ô 	
ð 	
ð 	Œ×ÒÑ Ô Ð ØŒ×ÒÑÔÐØ”oÐ&:Ô;ð 	/ð 	/ˆFØŒM×!Ò! V +Ñ.Ô.Ð.Ð.ð	/ð 	/r#   c                 ó,  — | j         j        j        j        }|                     d¦  «        }g }|r|| j        d<   t          |ddd¬¦  «         |D �])}|                     |j        ¦  «         t          |j        d¬¦  «        }|                     d¦  «        }|j
                             | j        d	¦  «         |                     d
|j        › �¦  «         |                     |j        ¦  «         |                     |j        d| j        › d�i¬¦  «        }t!          || j        |¬¦  «         t$          j                             | j        | j        › | j        › ¦  «        }|                     ||j        ¦  «         �Œ+|r|                      |d¦  «         d S d S )NrC   ÚIdentifierszYIdentifiers are properties of a resource that are set upon instantiation of the resource.Úidentifiers_attributes_intro©r0   Úresource_typer>   Ú
intro_linkÚhtml©ÚtargetÚ
breadcrumbÚindexz / Identifier / Ú	qualifierr[   ©Úcontext)r0   Úresource_nameÚidentifier_model)Ú	_resourceÚmetaÚresource_modelrC   r4   re   r   rD   rE   r   r5   ÚrefÚ_resource_class_namerT   Úadd_title_sectionr=   r   r   ÚosÚpathÚjoinr   r   r   Úwrite_to_fileri   )	r   r0   rC   Úmember_listrL   Úidentifier_docÚbreadcrumb_sectionÚidentifier_sectionÚidentifiers_dir_paths	            r"   r(   z#ResourceDocumenter._add_identifiers…   sß  € Ø”nÔ)Ô8ÔDˆØ×)Ò)¨-Ñ8Ô8ˆØˆØð 
	Ø-8ˆDŒO˜MÑ*Ý&ØØ+ð>ð :ðñ ô ð ð &ð 	Pñ 	PˆJØ×Ò˜zœÑ/Ô/Ð/å.¨z¬ÀvÐNÑNÔNˆNØ!/×!?Ò!?ÀÑ!MÔ!MÐØÔ$×(Ò(¨Ô)BÀGÑLÔLÐLØ×$Ò$Ð%I¸
¼Ð%IÐ%IÑJÔJÐJØ×,Ò,¨Z¬_Ñ=Ô=Ð=Ø!/×!?Ò!?Ø”Ø$¨¬Ð&;Ð&;Ð&;Ð<ð "@ñ "ô "Ðõ  Ø*Ø"Ô1Ø!+ðñ ô ð õ $&¤7§<¢<ØÔ$ØÔ%Ð'ØÔ*Ð,ñ$ô $Ð ð
 ×(Ò(Ð)=¸z¼ÑOÔOÐOÑOàð 	FØ×-Ò-¨g°}ÑEÔEÐEÐEÐEð	Fð 	Fr#   c           	      ó6  — | j         j        j        j        j        }i }| j         j        j        j        rM|                     | j         j        j        j        ¦  «        }| j         j        j                             |¦  «        }|                     d¦  «        }g }|rt          |ddd¬¦  «         || j
        d<   t          |¦  «        D �]7}||         \  }}|                     |¦  «         t          |d¬¦  «        }	|	                     d¦  «        }
|
j                             | j        d	¦  «         |
                     d
|› �¦  «         |	                     |¦  «         |	                     |d| j        › d�i¬¦  «        }t)          || j        | j        || j         j        j        j        j        |¬¦  «         t0          j                             | j        | j        › | j        › ¦  «        }|	                     ||¦  «         �Œ9|r|                      |d¦  «         d S d S )NÚ
attributesÚ
Attributesz”Attributes provide access to the properties of a resource. Attributes are lazy-loaded the first time one is accessed via the :py:meth:`load` method.rl   rm   rp   rq   rs   rt   z / Attribute / ru   r[   rv   )r0   Úservice_namerx   Ú	attr_nameÚevent_emitterÚ
attr_model)rz   r{   ÚclientÚservice_modelr|   ÚshapeÚ	shape_forÚget_attributesr4   r   re   ÚsortedrD   r   r5   r}   r~   rT   r   r=   r   r   r   Úeventsr€   r�   r‚   r   r   rƒ   ri   )r   r0   r‘   rŠ   r’   Úattribute_listr�   Ú_Ú
attr_shapeÚattribute_docr†   Úattribute_sectionÚattributes_dir_paths                r"   r)   z"ResourceDocumenter._add_attributes±   sd  € ØœÔ+Ô2Ô7ÔEˆØˆ
ØŒ>ÔÔ-Ô3ð 	Ø!×+Ò+Ø”Ô#Ô2Ô8ñô ˆEð œÔ,Ô;×JÒJØñô ˆJð ×)Ò)¨,Ñ7Ô7ˆØˆØð 	;Ý&ØØ*ð/ð
 :ð
ñ 
ô 
ð 
ð -;ˆDŒO˜LÑ)Ý 
Ñ+Ô+ð 	Hñ 	HˆIØ& yÔ1‰MˆAˆzØ×!Ò! )Ñ,Ô,Ð,å-¨iÀÐGÑGÔGˆMØ!.×!>Ò!>¸|Ñ!LÔ!LÐØÔ$×(Ò(¨Ô)BÀGÑLÔLÐLØ×$Ò$Ð%B°yÐ%BÐ%BÑCÔCÐCØ×+Ò+¨IÑ6Ô6Ð6Ø -× =Ò =ØØ$¨¬Ð&;Ð&;Ð&;Ð<ð !>ñ !ô !Ðõ Ø)Ø!Ô/Ø"Ô1Ø#Ø"œnÔ1Ô8Ô=ÔDØ%ðñ ô ð õ #%¤'§,¢,ØÔ$ØÔ%Ð'ØÔ*Ð,ñ#ô #Ðð
 ×'Ò'Ð(;¸YÑGÔGÐGÑGØð 	EØ×-Ò-¨g°|ÑDÔDÐDÐDÐDð	Eð 	Er#   c                 ó   — |                      d¦  «        }| j        j        j        j        }g }|rt          |ddd¬¦  «         || j        d<   |D �]#}|                     |j        ¦  «         t          |j        d¬¦  «        }|                      d¦  «        }|j
                             | j        d	¦  «         |                     d
|j        › �¦  «         |                     |j        ¦  «         |                      |j        d| j        › d�i¬¦  «        }t!          ||¬¦  «         t"          j                             | j        | j        › | j        › ¦  «        }|                     ||j        ¦  «         �Œ%|r|                      |d¦  «         d S d S )NÚ
referencesÚ
ReferenceszNReferences are related resource instances that have a belongs-to relationship.Úreferences_introrm   rp   rq   rs   rt   z / Reference / ru   r[   rv   )r0   Úreference_model)r4   rz   r{   r|   rž   r   re   rD   rE   r   r5   r}   r~   rT   r   r=   r	   r€   r�   r‚   r   r   r   rƒ   ri   )	r   r0   rž   Úreference_listÚ	referenceÚreference_docr†   Úreference_sectionÚreferences_dir_paths	            r"   r*   z"ResourceDocumenter._add_referencesê   sØ  € Ø×)Ò)¨,Ñ7Ô7ˆØ”^Ô(Ô7ÔBˆ
ØˆØð 
	;Ý&ØØ*ð1ð .ðñ ô ð ð -;ˆDŒO˜LÑ)Ø#ð 	Mñ 	MˆIØ×!Ò! )¤.Ñ1Ô1Ð1å-¨i¬nÀVÐLÑLÔLˆMØ!.×!>Ò!>¸|Ñ!LÔ!LÐØÔ$×(Ò(¨Ô)BÀGÑLÔLÐLØ×$Ò$Ð%G°y´~Ð%GÐ%GÑHÔHÐHØ×+Ò+¨I¬NÑ;Ô;Ð;Ø -× =Ò =Ø”Ø$¨¬Ð&;Ð&;Ð&;Ð<ð !>ñ !ô !Ðõ Ø)Ø )ðñ ô ð õ #%¤'§,¢,ØÔ$ØÔ%Ð'ØÔ*Ð,ñ#ô #Ðð
 ×'Ò'Ð(;¸Y¼^ÑLÔLÐLÑLØð 	EØ×-Ò-¨g°|ÑDÔDÐDÐDÐDð	Eð 	Er#   c                 ó  — |                      d¦  «        }| j        j        j        j        }|rSt          | j        | j        ¦  «        }| j        |_        |                     |¦  «         |  	                    |d¦  «         d S d S )NÚactions)
r4   rz   r{   r|   r¨   r   r   re   Údocument_actionsri   )r   r0   r¨   Ú
documenters       r"   r+   zResourceDocumenter._add_actions  sˆ   € Ø×)Ò)¨)Ñ4Ô4ˆØ”.Ô%Ô4Ô<ˆØð 	BÝ)¨$¬.¸$Ô:NÑOÔOˆJØ$(¤OˆJÔ!Ø×'Ò'¨Ñ0Ô0Ð0Ø×-Ò-¨g°yÑAÔAÐAÐAÐAð		Bð 	Br#   c                 ó  — |                      d¦  «        }| j        j        j        j        }|rSt          | j        | j        ¦  «        }| j        |_        |                     |¦  «         |  	                    |d¦  «         d S d S )Nzsub-resources)
r4   rz   r{   r|   Úsubresourcesr   r   re   Údocument_sub_resourcesri   )r   r0   Úsub_resourcesrª   s       r"   r,   z%ResourceDocumenter._add_sub_resources  s�   € Ø×)Ò)¨/Ñ:Ô:ˆØœÔ+Ô:ÔGˆØð 	HÝ.Ø” Ô 4ñô ˆJð %)¤OˆJÔ!Ø×-Ò-¨gÑ6Ô6Ð6Ø×-Ò-¨g°ÑGÔGÐGÐGÐGð	Hð 	Hr#   c                 ó  — |                      d¦  «        }| j        j        j        j        }|rSt          | j        | j        ¦  «        }| j        |_        |                     |¦  «         |  	                    |d¦  «         d S d S )NÚcollections)
r4   rz   r{   r|   r°   r   r   re   Údocument_collectionsri   )r   r0   r°   rª   s       r"   r-   z#ResourceDocumenter._add_collections(  s�   € Ø×)Ò)¨-Ñ8Ô8ˆØ”nÔ)Ô8ÔDˆØð 	FÝ-Ø” Ô 4ñô ˆJð %)¤OˆJÔ!Ø×+Ò+¨GÑ4Ô4Ð4Ø×-Ò-¨g°}ÑEÔEÐEÐEÐEð	Fð 	Fr#   c                 óF  — |                      d¦  «        }| j        j        j        j        }|rs| j                             | j        ¦  «        }t          | j        || j	        ¦  «        }| j
        |_
        |                     |¦  «         |                      |d¦  «         d S d S )NÚwaiters)r4   rz   r{   r|   r³   r   Úget_waiter_modelr   r   r   re   Údocument_resource_waitersri   )r   r0   r³   Úservice_waiter_modelrª   s        r"   r.   zResourceDocumenter._add_waiters3  s³   € Ø×)Ò)¨)Ñ4Ô4ˆØ”.Ô%Ô4Ô<ˆØð 		BØ#'Ô#9×#JÒ#JØÔ"ñ$ô $Ð õ 2Ø”Ð 4°dÔ6Jñô ˆJð %)¤OˆJÔ!Ø×0Ò0°Ñ9Ô9Ð9Ø×-Ò-¨g°yÑAÔAÐAÐAÐAð		Bð 		Br#   c                 ó¾   — |                      d¦  «        }|j                             ¦   «          |                     d¦  «         |j                             ¦   «          d S )Nzfeature-freezez¢Before using anything on this page, please refer to the resources :doc:`user guide <../../../../guide/resources>` for the most recent guidance on using resources.)r4   r5   Ú
start_noterT   Úend_noter/   s     r"   r&   z%ResourceDocumenter._add_resource_noteA  sa   € Ø×)Ò)Ð*:Ñ;Ô;ˆØŒ× Ò Ñ"Ô"Ð"Ø�Šð+ñ	
ô 	
ð 	
ð
 	Œ×ÒÑ Ô Ð Ð Ð r#   )Ú__name__Ú
__module__Ú__qualname__r   r1   r%   r'   rG   rH   rI   ri   r(   r)   r*   r+   r,   r-   r.   r&   Ú__classcell__)r!   s   @r"   r   r   %   s1  ø€ € € € € ð9ð 9ð 9ð 9ð 9ð
#ð 
#ð 
#ð4ð 4ð 4ð.ð .ð .ð:
ð 
ð 
ð&ð &ð &ð %ð %ð %ð/ð /ð /ð*Fð *Fð *FðX7Eð 7Eð 7Eðr(Eð (Eð (EðTBð Bð Bð	Hð 	Hð 	Hð	Fð 	Fð 	FðBð Bð Bð!ð !ð !ð !ð !ð !ð !r#   r   c                   ó6   — e Zd Zed„ ¦   «         Zd„ Zd„ Zd„ ZdS )ÚServiceResourceDocumenterc                 ó   — | j         › d�S )Nz.ServiceResource)Ú_service_docs_name)r   s    r"   r=   z$ServiceResourceDocumenter.class_nameM  s   € àÔ)Ð;Ð;Ð;Ð;r#   c                 ód   — |                      d¦  «        }|j                             d¦  «         d S )Nr3   zService Resource)r4   r5   r6   r7   s      r"   r%   z$ServiceResourceDocumenter._add_titleQ  s3   € Ø×/Ò/°Ñ8Ô8ˆØÔ×ÒÐ1Ñ2Ô2Ð2Ð2Ð2r#   c                 ó^   — t          | j        ¦  «        }|                     d|› �¦  «         d S )NzA resource representing )r   rS   rT   rU   s      r"   rG   z*ServiceResourceDocumenter._add_descriptionU  s5   € Ý 9¸$Ô:MÑ NÔ NÐØ�ŠÐHÐ1FÐHÐHÑIÔIÐIÐIÐIr#   c                 ót  — |j                              ¦   «          |j                              ¦   «          |                     d¦  «         |j                              ¦   «          |j                              ¦   «          |                     | j        › d| j        › d�¦  «         |j                              ¦   «          d S )NrX   rY   rZ   )r5   r\   r]   rT   r   r^   )r   r0   rK   s      r"   rH   z&ServiceResourceDocumenter._add_exampleY  s°   € ØŒ×%Ò%Ñ'Ô'Ð'ØŒ×ÒÑ Ô Ð Ø�Š�nÑ%Ô%Ð%ØŒ×ÒÑ Ô Ð ØŒ×ÒÑ Ô Ð Ø�ŠØÔ!ÐNÐN°tÔ7IÐNÐNÐNñ	
ô 	
ð 	
ð 	Œ×#Ò#Ñ%Ô%Ð%Ð%Ð%r#   N)rº   r»   r¼   Úpropertyr=   r%   rG   rH   © r#   r"   r¿   r¿   L  s]   € € € € € Øð<ð <ñ „Xð<ð3ð 3ð 3ðJð Jð Jð	&ð 	&ð 	&ð 	&ð 	&r#   r¿   )r€   Úbotocorer   Úbotocore.docs.bcdoc.restdocr   Úbotocore.docs.utilsr   Úboto3.docs.actionr   Úboto3.docs.attrr   r   r	   Úboto3.docs.baser
   Úboto3.docs.collectionr   Úboto3.docs.subresourcer   Úboto3.docs.utilsr   r   r   r   Úboto3.docs.waiterr   r   r¿   rÆ   r#   r"   ú<module>rÑ      sz  ðð 
€	€	€	à Ð Ð Ð Ð Ð Ø 9Ð 9Ð 9Ð 9Ð 9Ð 9Ø 9Ð 9Ð 9Ð 9Ð 9Ð 9à .Ð .Ð .Ð .Ð .Ð .ðð ð ð ð ð ð ð ð ð ð
 +Ð *Ð *Ð *Ð *Ð *Ø 6Ð 6Ð 6Ð 6Ð 6Ð 6Ø 8Ð 8Ð 8Ð 8Ð 8Ð 8ðð ð ð ð ð ð ð ð ð ð ð ð 7Ð 6Ð 6Ð 6Ð 6Ð 6ðd!ð d!ð d!ð d!ð d!˜ñ d!ô d!ð d!ðN	&ð &ð &ð &ð &Ð 2ñ &ô &ð &ð &ð &r#   