Ë
    ¶�/j3  ã                   ó¬  — d dl Z d dlmZ d dlmZmZmZmZ 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Z	d dlZ	d dlZ	 G d„ de j$                  «      Z G d„ de	j(                  j*                  «      Ze	j,                  j,                   G d„ d	e«      «       Z G d
„ de	j0                  j2                  e	j4                  j6                     «      Z G d„ de	j:                  j<                  «      Z ed¬«       G d„ d«      «       Ze	j,                  j,                   G d„ de	j:                  j@                  «      «       Z! G d„ de	jD                  jF                  «      Z#y)é    N)Ú	dataclass)ÚCallableÚMutableMappingÚTupleÚcastc                   ó   — e Zd ZdZdZdZy)Ú	NodeFlagsé   é   é   N)Ú__name__Ú
__module__Ú__qualname__ÚORIGINÚ
DELEGATIONÚGLUE© ó    úOC:\xampp\htdocs\tradingbinance\backend\.venv\Lib\site-packages\dns/btreezone.pyr	   r	      s   „ Ø€FØ€JØ�Dr   r	   c                   óL   ‡ — e Zd ZddgZd	dedz  fˆ fd„Zd„ Zd„ Zd„ Zd„ Z	ˆ xZ
S )
ÚNodeÚflagsÚidNc                 óX   •— t         ‰| �  «        |€t        d«      }|| _        d| _        y ©Nr   )ÚsuperÚ__init__r	   r   r   )Úselfr   Ú	__class__s     €r   r   zNode.__init__&   s,   ø€ Ü‰ÑÔØˆ=ô ˜a“LˆEØˆŒ
Øˆ�r   c                 óB   — | j                   t        j                  z  dk7  S r   )r   r	   r   ©r   s    r   Úis_delegationzNode.is_delegation0   s   € Ø—
‘
œY×1Ñ1Ñ1°aÑ7Ð7r   c                 óB   — | j                   t        j                  z  dk7  S r   )r   r	   r   r!   s    r   Úis_gluezNode.is_glue3   s   € Ø—
‘
œYŸ^™^Ñ+°Ñ1Ð1r   c                 óB   — | j                   t        j                  z  dk7  S r   )r   r	   r   r!   s    r   Ú	is_originzNode.is_origin6   s   € Ø—
‘
œY×-Ñ-Ñ-°!Ñ3Ð3r   c                 ód   — | j                   t        j                  t        j                  z  z  dk7  S r   )r   r	   r   r   r!   s    r   Úis_origin_or_gluezNode.is_origin_or_glue9   s%   € Ø—
‘
œi×.Ñ.´·±Ñ?Ñ@ÀQÑFÐFr   ©N)r   r   r   Ú	__slots__r	   r   r"   r$   r&   r(   Ú__classcell__©r   s   @r   r   r   #   s2   ø„ Ø˜$�€Iñ˜i¨$Ñ.õ ò8ò2ò4öGr   r   c                   ó  ‡ — e Zd Zdefˆ fd„Zej                  j                  dfdej                  j                  dej                  j                  dej                  j                  dedej                  j                  f
ˆ fd	„Zej                  j                  dfdej                  j                  dej                  j                  dej                  j                  dedej                  j                  d
z  f
ˆ fd„Zej                  j                  fdej                  j                  dej                  j                  dej                  j                  dd
fd„Zdej                  j                  dd
fd„Zdefd„Zˆ xZS )ÚImmutableNodeÚnodec                 óú   •— t         ‰| �  «        |j                  | _        t        |j                  D �cg c]!  }t
        j                  j                  |«      ‘Œ# c}«      | _        |j                  | _        y c c}w r)   )	r   r   r   ÚtupleÚ	rdatasetsÚdnsÚrdatasetÚImmutableRdatasetr   )r   r/   Úrdsr   s      €r   r   zImmutableNode.__init__?   s]   ø€ Ü‰ÑÔØ—'‘'ˆŒÜØ<@¿NºNÓK¹N°SŒS�\‰\×+Ñ+¨CÕ0¸NÑKó
ˆŒð —Z‘Zˆ�
ùò Ls   ´&A8FÚrdclassÚrdtypeÚcoversÚcreateÚreturnc                 óB   •— |rt        d«      ‚t        ‰| �	  |||d«      S ©NÚ	immutableF)Ú	TypeErrorr   Úfind_rdataset©r   r7   r8   r9   r:   r   s        €r   r@   zImmutableNode.find_rdatasetG   s)   ø€ ñ Ü˜KÓ(Ð(Ü‰wÑ$ W¨f°f¸eÓDÐDr   Nc                 óB   •— |rt        d«      ‚t        ‰| �	  |||d«      S r=   )r?   r   Úget_rdatasetrA   s        €r   rC   zImmutableNode.get_rdatasetR   s)   ø€ ñ Ü˜KÓ(Ð(Ü‰wÑ# G¨V°V¸UÓCÐCr   c                 ó   — t        d«      ‚©Nr>   ©r?   )r   r7   r8   r9   s       r   Údelete_rdatasetzImmutableNode.delete_rdataset]   s   € ô ˜Ó$Ð$r   Úreplacementc                 ó   — t        d«      ‚rE   rF   )r   rH   s     r   Úreplace_rdatasetzImmutableNode.replace_rdatasete   s   € Ü˜Ó$Ð$r   c                  ó   — y©NTr   r!   s    r   Úis_immutablezImmutableNode.is_immutableh   s   € Ør   )r   r   r   r   r   r3   Ú	rdatatypeÚNONEÚ
rdataclassÚ
RdataClassÚ	RdataTypeÚboolr4   ÚRdatasetr@   rC   rG   rJ   rM   r+   r,   s   @r   r.   r.   =   s  ø„ ð ˜Tõ  ð +.¯-©-×*<Ñ*<Øñ	Eà—‘×*Ñ*ð	Eð —‘×'Ñ'ð	Eð —‘×'Ñ'ð		Eð
 ð	Eð 
�‰×	Ñ	õ	Eð +.¯-©-×*<Ñ*<Øñ	Dà—‘×*Ñ*ð	Dð —‘×'Ñ'ð	Dð —‘×'Ñ'ð		Dð
 ð	Dð 
�‰×	Ñ	 Ñ	%õ	Dð +.¯-©-×*<Ñ*<ñ	%à—‘×*Ñ*ð%ð —‘×'Ñ'ð%ð —‘×'Ñ'ð	%ð
 
ó%ð%¨C¯L©L×,AÑ,Að %Àdó %ð˜d÷ r   r.   c                   ó´   — e Zd Zdej                  j
                  deej                  j
                  dz  ef   fd„Zdej                  j
                  defd„Z	y)ÚDelegationsÚnamer;   Nc                 ób  — | j                  «       }|j                  |d¬«       |j                  «       }|€y|j                  «       }|j	                  |«      \  }}}|t
        j                  j                  j                  k(  }|s'|t
        j                  j                  j                  k(  r||fS y)aF  Get the delegation applicable to *name*, if it exists.

        If there delegation, then return a tuple consisting of the name of
        the delegation point, and a boolean which is `True` if the name is a proper
        subdomain of the delegation point, and `False` if it is equal to the delegation
        point.
        F©Úbefore©NF)
ÚcursorÚseekÚprevÚkeyÚfullcomparer3   rW   ÚNameRelationÚ	SUBDOMAINÚEQUAL)r   rW   r\   r^   ÚcutÚrelnÚ_Úis_subdomains           r   Úget_delegationzDelegations.get_delegationm   s•   € ð —‘“ˆØ�‰�D ˆÔ'Ø�{‰{‹}ˆØˆ<ØØ�h‰h‹jˆØ×%Ñ% cÓ*‰
ˆˆa�ØœsŸx™x×4Ñ4×>Ñ>Ñ>ˆÙ˜4¤3§8¡8×#8Ñ#8×#>Ñ#>Ò>Ø˜Ð$Ð$àr   c                 óz   — | j                  «       }|j                  |d¬«       | j                  |«      \  }}|€y|S )z0Is *name* glue, i.e. is it beneath a delegation?FrY   )r\   r]   rh   )r   rW   r\   rd   rg   s        r   r$   zDelegations.is_glue‚   s@   € à—‘“ˆØ�‰�D ˆÔ'Ø ×/Ñ/°Ó5Ñˆˆ\Øˆ;ØØÐr   )
r   r   r   r3   rW   ÚNamer   rS   rh   r$   r   r   r   rV   rV   l   sP   „ ð 3§8¡8§=¡=ð °U¸3¿8¹8¿=¹=È4Ñ;OÐQUÐ;UÑ5Vó ð*˜CŸH™HŸM™Mð ¨dô r   rV   c                   óˆ  ‡ — e Zd Zddej                  j
                  defˆ fd„Zdej                  j                  defd„Z
dej                  j                  deej                  j                  ej                  j                  f   fˆ fd„Zdej                  j                  dedd	fd
„Zdej                  j                  dd	fd„Zdej                  j                  dej"                  j$                  dd	fd„Zdej                  j                  dej(                  j*                  dej(                  j*                  dd	fd„Zˆ xZS )ÚWritableVersionÚzonerH   c                 óH  •— t         ‰| �  |d«       |s€t        |t        j                  j
                  «      sJ ‚|j                  d   }t        j                  j                  |j                  ¬«      | _	        t        |j                  ¬«      | _        y t        «       | _        y )NTéÿÿÿÿ)Úoriginal)r   r   Ú
isinstancer3   Ú	versionedÚZoneÚ	_versionsÚbtreeÚ	BTreeDictÚnodesrV   Údelegations)r   rm   rH   Úversionr   s       €r   r   zWritableVersion.__init__�   s�   ø€ Ü‰Ñ˜˜tÔ$ÙÜ˜d¤C§M¡M×$6Ñ$6Ô7Ð7Ð7Ø—n‘n RÑ(ˆGÜCFÇ9Á9×CVÑCVØ Ÿ™ð DWó DˆDŒJô  +°G×4GÑ4GÔHˆDÕä*›}ˆDÕr   rW   r;   c                 óš   — | j                   j                  r|t        j                  j                  k(  S || j                   j
                  k(  S r)   )rm   Ú
relativizer3   rW   ÚemptyÚorigin)r   rW   s     r   Ú
_is_originzWritableVersion._is_origin™   s9   € ð �9‰9×ÒØœ3Ÿ8™8Ÿ>™>Ñ)Ð)à˜4Ÿ9™9×+Ñ+Ñ+Ð+r   c                 ó<  •— t         ‰| �  |«      \  }}t        t        |«      }| j	                  |«      r'|xj
                  t        j                  z  c_        ||fS | j                  j                  |«      r#|xj
                  t        j                  z  c_        ||fS r)   )r   Ú_maybe_cow_with_namer   r   r~   r   r	   r   rx   r$   r   )r   rW   r/   r   s      €r   r€   z$WritableVersion._maybe_cow_with_name¡   s‚   ø€ ô ‘wÑ3°DÓ9‰ˆˆtÜ”D˜$ÓˆØ�?‰?˜4Ô Ø�JŠJœ)×*Ñ*Ñ*�Jð �dˆ|Ðð ×Ñ×%Ñ% dÔ+Ø�JŠJœ)Ÿ.™.Ñ(�JØ�dˆ|Ðr   r$   Nc                 ó>  — | j                   j                  «       }|j                  |d«       g }	 |j                  «       }|€�nA|j	                  «       }|j                  |«      s�nt        t        j                  j                  |j                  «       «      }|| j                  vrm| j                  j                  «       }| j                  |_        |j                  j!                  |j                  «       | j                  j#                  |«       |}t%        |t        «      sJ ‚|r$|xj&                  t(        j*                  z  c_        n$|xj&                  t(        j*                   z  c_        |j-                  ||f«       �ŒU|D ]  \  }}|| j                   |<   Œ y r[   )rw   r\   r]   Únextr_   rg   r   r3   r/   r   ÚvalueÚchangedrm   Únode_factoryr   r2   ÚextendÚaddrq   r   r	   r   Úappend)	r   rW   r$   r\   ÚupdatesÚeltÚenamer/   Únew_nodes	            r   Úupdate_glue_flagz WritableVersion.update_glue_flag¬   s9  € Ø—‘×"Ñ"Ó$ˆØ�‰�D˜%Ô ØˆØØ—+‘+“-ˆCØˆ{ÙØ—G‘G“IˆEØ×%Ñ% dÔ+ÙÜœŸ™Ÿ™ s§y¡y£{Ó3ˆDØ˜DŸL™LÑ(ØŸ9™9×1Ñ1Ó3�Ø"Ÿg™g�”Ø×"Ñ"×)Ñ)¨$¯.©.Ô9Ø—‘× Ñ  Ô'Ø�Ü˜d¤DÔ)Ð)Ð)ÙØ—
’
œiŸn™nÑ,–
à—
’
œyŸ~™~˜oÑ-•
ð
 �N‰N˜E 4˜=Ô)ñ/ ó0 #‰KˆE�4Ø $ˆD�J‰J�uÒñ #r   c                 ó,  — | j                  |«      }| j                  j                  |«      }|�f|j                  «       r-| j                  j                  |«       | j                  |d«       | j                  |= | j                  j                  |«       y y r[   )	Ú_validate_namerw   Úgetr"   rx   Údiscardr�   r„   r‡   )r   rW   r/   s      r   Údelete_nodezWritableVersion.delete_nodeË   s}   € Ø×"Ñ" 4Ó(ˆØ�z‰z�~‰~˜dÓ#ˆØÐØ×!Ñ!Ô#Ø× Ñ ×(Ñ(¨Ô.Ø×%Ñ% d¨EÔ2Ø—
‘
˜4Ð Ø�L‰L×Ñ˜TÕ"ð r   r4   c                 óx  — | j                  |«      \  }}|j                  t        j                  j                  k(  rn|j                  «       s^|xj                  t        j                  z  c_        || j                  vr-| j                  j                  |«       | j                  |d«       |j                  |«       y rL   )r€   r8   r3   rN   ÚNSr(   r   r	   r   rx   r‡   r�   rJ   )r   rW   r4   r/   s       r   Úput_rdatasetzWritableVersion.put_rdatasetÕ   s�   € ð ×0Ñ0°Ó6‰ˆˆtà�O‰OœsŸ}™}×/Ñ/Ò/¸×8NÑ8NÔ8Pà�JŠJœ)×.Ñ.Ñ.�JØ˜4×+Ñ+Ñ+Ø× Ñ ×$Ñ$ TÔ*Ø×%Ñ% d¨DÔ1Ø×Ñ˜hÕ'r   r8   r9   c                 óª  — | j                  |«      \  }}|t        j                  j                  k(  r_|| j                  v rQ|xj
                  t        j                   z  c_        | j                  j                  |«       | j                  |d«       |j                  | j                  j                  ||«       t        |«      dk(  r| j                  |= y y )NFr   )r€   r3   rN   r”   rx   r   r	   r   r‘   r�   rG   rm   r7   Úlenrw   )r   rW   r8   r9   r/   s        r   rG   zWritableVersion.delete_rdatasetâ   sª   € ð ×0Ñ0°Ó6‰ˆˆtØ”S—]‘]×%Ñ%Ò%¨$°$×2BÑ2BÑ*BØ�JŠJœ9×/Ñ/Ð/Ñ/�JØ×Ñ×$Ñ$ TÔ*Ø×!Ñ! $¨Ô.Ø×Ñ˜TŸY™Y×.Ñ.°¸Ô?Üˆt‹9˜Š>Ø—
‘
˜4Ñ ð r   )F)r   r   r   r3   rm   rs   rS   r   rW   rj   r~   r   r/   r   r€   r�   r’   r4   rT   r•   rN   rR   rG   r+   r,   s   @r   rl   rl   Œ   s#  ø„ ñ
-˜SŸX™XŸ]™]ð 
-¸õ 
-ð,˜sŸx™xŸ}™}ð ,°ó ,ð	Ø—H‘H—M‘Mð	à	ˆs�x‰x�}‰}˜cŸh™hŸm™mÐ+Ñ	,õ	ð% S§X¡X§]¡]ð %¸Tð %Àdó %ð># §¡§¡ð #°$ó #ð(Ø—H‘H—M‘Mð(Ø-0¯\©\×-BÑ-Bð(à	ó(ð!à�h‰h�m‰mð!ð —‘×'Ñ'ð!ð —‘×'Ñ'ð	!ð
 
÷!r   rl   T)Úfrozenc                   óö   — e Zd ZU ej                  j
                  ed<   ej                  j
                  ed<   ej                  j
                  dz  ed<   ej                  j
                  ed<   eed<   eed<   d„ Zy)	ÚBoundsrW   ÚleftNÚrightÚclosest_encloserÚis_equalr"   c           
      óº   — | j                   rd}nd}| j                  rd}nd}| j                  › d|› d| j                  › d| j                  › |› d| j
                  › �
S )NÚ=Ú<z zonecutÚ Ú z < z; )rž   r"   r›   rW   rœ   r�   )r   ÚopÚzonecuts      r   Ú__str__zBounds.__str__û   se   € Ø�=Š=Ø‰BàˆBØ×ÒØ ‰GàˆGà�y‰yˆk˜˜2˜$˜a §	¡	˜{¨#¨d¯j©j¨\¸'¸À"Ø×$Ñ$Ð%ð'ð	
r   )	r   r   r   r3   rW   rj   Ú__annotations__rS   r¦   r   r   r   rš   rš   ò   sO   … à
�(‰(�-‰-ÓØ
�(‰(�-‰-ÓØ�8‰8�=‰=˜4ÑÓØ—h‘h—m‘mÓ#ØƒNØÓó
r   rš   c                   óŠ   ‡ — e Zd Zdej                  j
                  fˆ fd„Zdej                  j                  e	z  de
fd„Zˆ xZS )ÚImmutableVersionry   c                 ót  •— t        |t        «      st        d«      ‚t        ‰| �  |j
                  d«       |j                  | _        |j                  | _        |j                  D ]8  }|j                  j                  |«      }|sŒ!t        |«      |j                  |<   Œ: t        t        t        j                  j                   t        j"                  j$                  f   |j                  «      | _	        | j                  j'                  «        |j(                  | _        | j(                  j'                  «        y )NzIa dns.btreezone.ImmutableVersion requires a dns.btreezone.WritableVersionT)rq   rl   Ú
ValueErrorr   r   rm   r   r}   r„   rw   r�   r.   r   r   r3   rW   rj   r/   r   Úmake_immutablerx   )r   ry   rW   r/   r   s       €r   r   zImmutableVersion.__init__  sà   ø€ Ü˜'¤?Ô3Üð0óð ô 	‰Ñ˜Ÿ™ tÔ,Ø—*‘*ˆŒØ—n‘nˆŒØ—O”OˆDØ—=‘=×$Ñ$ TÓ*ˆDÚÜ&3°DÓ&9�—‘˜dÒ#ð $ô
 œ.¬¯©¯©¼¿¹¿¹Ð)EÑFÈÏÉÓVˆŒ
Ø�
‰
×!Ñ!Ô#Ø"×.Ñ.ˆÔØ×Ñ×'Ñ'Õ)r   rW   r;   c                 ó  — | j                   €J ‚| j                  j                  | j                   «      }| j                  j                  |«      }| j                  j	                  |«      \  }}|�|}d}n|}d}t        t        j                  j                  | j                  «      j                  «       }|j                  |d«       |j                  «       }|€J ‚|j                  «        	 |j                  «       }	|	�|	j                  «       j                  «       snŒ2|j!                  «       j#                  |«      }
|	�"|	j!                  «       }|j#                  |«      }n(t        j$                  j&                  dt)        |«      f}d}t        j$                  j+                  |t-        |
d   |d   «       d «      }t/        ||j!                  «       |||
d   t        j$                  j0                  j2                  k(  |«      S )aT  Return the 'bounds' of *name* in its zone.

        The bounds information is useful when making an authoritative response, as
        it can be used to determine whether the query name is at or beneath a delegation
        point.  The other data in the ``Bounds`` object is useful for making on-the-fly
        DNSSEC signatures.

        The left bound of *name* is *name* itself if it is in the zone, or the greatest
        predecessor which is in the zone.

        The right bound of *name* is the least successor of *name*, or ``None`` if
        no name in the zone is greater than *name*.

        The closest encloser of *name* is *name* itself, if *name* is in the zone;
        otherwise it is the name with the largest number of labels in common with
        *name* that is in the zone, either explicitly or by the implied existence
        of empty non-terminals.

        The bounds *is_equal* field is ``True`` if and only if *name* is equal to
        its left bound.

        The bounds *is_delegation* field is ``True`` if and only if the left bound is a
        delegation point.
        NTFro   r   r   )r}   rm   r�   rx   rh   r   r3   ru   rv   rw   r\   r]   r^   r‚   rƒ   r$   r_   r`   rW   ÚNAMERELN_COMMONANCESTORr—   rj   Úmaxrš   ra   rc   )r   rW   r}   rd   rf   Útargetr"   Úcr›   rœ   Úleft_comparisonÚ	right_keyÚright_comparisonr�   s                 r   ÚboundszImmutableVersion.bounds  sÆ  € ð2 �{‰{Ð&Ð&Ð&à—‘×)Ñ)¨$¯+©+Ó6ˆØ�y‰y×'Ñ'¨Ó-ˆØ×!Ñ!×0Ñ0°Ó6‰ˆˆQØˆ?ØˆFØ ‰MàˆFØ!ˆMÜ”—‘×$Ñ$ d§j¡jÓ1×8Ñ8Ó:ˆØ	�‰ˆv�uÔØ�v‰v‹xˆØÐÐÐØ	�‰ŒØØ—F‘F“HˆEØˆ} E§K¡K£M×$9Ñ$9Ô$;Øð ð Ÿ(™(›*×0Ñ0°Ó6ˆØÐØŸ	™	›ˆIØ(×4Ñ4°TÓ:Ñô —‘×0Ñ0ØÜ�F“ð Ðð
 ˆIÜŸ8™8Ÿ=™=Ø”#�o aÑ(Ð*:¸1Ñ*=Ó>Ð>Ð@ÐAó
Ðô ØØ�H‰H‹JØØØ˜AÑ¤#§(¡(×"7Ñ"7×"=Ñ"=Ñ=Øó
ð 	
r   )r   r   r   r3   rm   ÚVersionr   rW   rj   Ústrrš   rµ   r+   r,   s   @r   r©   r©   
  s<   ø„ ð* §¡× 0Ñ 0õ *ð&B
˜3Ÿ8™8Ÿ=™=¨3Ñ.ð B
°6÷ B
r   r©   c                   ón  — e Zd ZU eZeg ej                  j                  f   ed<    e	eg e
ej                  j                  ej                  j                  f   f   ej                  j                  ej                  j                  ef   «      Zeg e
ej                  j                  ej                  j                  f   f   ed<   eZeej$                  j&                  egej$                  j*                  f   dz  ed<   eZeej$                  j*                  gej$                  j*                  f   dz  ed<   y)rs   r…   Úmap_factoryNÚwritable_version_factoryÚimmutable_version_factory)r   r   r   r   r…   r   r3   r/   r§   r   r   rW   rj   ru   rv   r¹   rl   rº   rm   rs   rS   r¶   r©   r»   r   r   r   rs   rs   d  s
  … Ø04€L�(˜2˜sŸx™xŸ}™}Ð,Ñ-Ó4ÙNRØ��^ C§H¡H§M¡M°3·8±8·=±=Ð$@ÑAÐAÑBØ�	‰	×Ñ˜CŸH™HŸM™M¨4Ð/Ñ0óO€K�˜"˜n¨S¯X©X¯]©]¸C¿H¹H¿M¹MÐ-IÑJÐJÑKó ð 	ð Ø�#—(‘(—-‘- Ð&¨¯©×(8Ñ(8Ð8Ñ9¸DÑ@óð 	ð ˜x¨¯©×)9Ñ)9Ð(:¸C¿H¹H×<LÑ<LÐ(LÑMÐPTÑTô r   rs   )$ÚenumÚdataclassesr   Útypingr   r   r   r   Ú	dns.btreer3   Údns.immutableÚdns.nameÚdns.nodeÚdns.rdataclassÚdns.rdatasetÚdns.rdatatypeÚdns.versionedÚdns.zoneÚIntFlagr	   r/   r   r>   r.   ru   ÚBTreeSetrW   rj   rV   rm   rl   rš   r¶   r©   rr   rs   r   r   r   Ú<module>rÊ      s  ðó Ý !ß 8Ó 8ã Û Û Û Û Û Û Û Û ô�—‘ô ôGˆ3�8‰8�=‰=ô Gð4 ‡�×Ñô+�Dó +ó ð+ô\�#—)‘)×$Ñ$ S§X¡X§]¡]Ñ3ô ô@c!�c—h‘h×.Ñ.ô c!ñL �$Ô÷
ð 
ó ð
ð. ‡�×ÑôV
�s—x‘x×'Ñ'ó V
ó ðV
ôrˆ3�=‰=×Ñõ r   