+
    œ°³jç5  ã                   ó”  € ^ RI t ^ RIHt ^ RIt^ RIHt ^ RIHu Ht ^ RI	H
t
 ^RIHt ^RIHtHt ^RIHt ^RIHt ^RIHt ^R	IHt ^R
IHtHtHtHt ^RIHt ^RI H!t!H"t" ^RI#H$t$ ^RI%H&t&H't'H(t( ]PR                  ! ]*4      t+]! RR7      ]
 ! R R]$4      4       4       t, ! R R]'4      t-]] ! R R]4      4       4       t. ! R R](4      t/ ! R R]!4      t0 ! R R]"4      t1 ! R R]Pd                  4      t3 ! R R ]Pd                  4      t4 ! R! R"]Pd                  4      t5 ! R# R$]-4      t6]! R%R&7       ! R' R(]&4      4       t7. R)Ot8R# )*é    N)Ú	dataclass)Ústrict)Úinitialization)Ú%consolidate_backbone_kwargs_to_configÚload_backbone)ÚPreTrainedConfig)ÚBaseModelOutputWithNoAttention)ÚPreTrainedModel)ÚUnpack)ÚTransformersKwargsÚauto_docstringÚcan_return_tupleÚlogging)Ú
AutoConfig)ÚPPLCNetConvLayerÚ"PPLCNetDepthwiseSeparableConvLayer)ÚSLANeXtConfig)ÚSLANeXtForTableRecognitionÚSLANeXtPreTrainedModelÚSLANeXtSLAHeadz$PaddlePaddle/SLANet_plus_safetensors)Ú
checkpointc                   ór   a € ] tR t^,t o RtR]/t]! 4       tRt	]! 4       t
^`tRtRt^t^tR tV 3R ltRtV tR# )	ÚSLANetConfigaa  
post_conv_out_channels (`int`, *optional*, defaults to 96):
    Number of output channels for the post-encoder convolution layer.
out_channels (`int`, *optional*, defaults to 50):
    Vocabulary size for the table structure token prediction head, i.e., the number of distinct structure
    tokens the model can predict.
hidden_size (`int`, *optional*, defaults to 256):
    Dimensionality of the hidden states in the attention GRU cell and the structure/location prediction heads.
max_text_length (`int`, *optional*, defaults to 500):
    Maximum number of autoregressive decoding steps (tokens) for the structure and location decoder.
csp_kernel_size (`int`, *optional*, defaults to 5):
    The kernel size of the Cross Stage Partial (CSP) layer.
csp_num_blocks (`int`, *optional*, defaults to 1):
    Number of blocks within the Cross Stage Partial (CSP) layer.
Úbackbone_configNé   Ú	hardswishc                ó�   € \        R	R V P                  RRRR^R. R
OR. ROR^//VB w  V n        p\        P                  ! R	/ VB  R# )r   Údefault_config_typeÚpp_lcnetÚdefault_config_kwargsÚscaleÚout_featuresÚout_indicesÚdivisorN© )Ústage2Ústage3Ústage4Ústage5)é   é   é   é   )r   r   r   Ú__post_init__)ÚselfÚkwargss   &,Új/home/luca/screen-checking/.venv/lib/python3.14/site-packages/transformers/models/slanet/modular_slanet.pyr.   ÚSLANetConfig.__post_init__L   sh   € Ü'Lñ 
(
Ø ×0Ñ0ð
(
à *ð
(
ð ˜ØÒ HØš|Ø˜2ð	#ð
(
ð ñ
(
Ñ$ˆÔ˜fô 	×&Ò&Ñ0¨Ô0ó    c                ó€   <€ V ^8„  d   Qh/ S[ S[,          R,          ;R&   S[;R&   S[;R&   S[;R&   S[;R&   S[;R&   # )r*   Nr   Úpost_conv_out_channelsÚhidden_sizeÚ
hidden_actÚcsp_kernel_sizeÚcsp_num_blocks)Údictr   ÚintÚstr)ÚformatÚ__classdict__s   "€r1   Ú__annotate__ÚSLANetConfig.__annotate__,   s^   ø‡ ‚ ñ, Ñ,Õ,¨tÕ3Ñ:ñ- ñ2  Ñ$ñ3 ñ4 Ññ5 ñ8 Ñ!ñ9 ñ: Ññ; ñ< Ñò= r3   )r   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   Úsub_configsÚAttributeErrorÚvision_configr   Úpost_conv_in_channelsr5   r6   r7   r8   r9   r.   Ú__annotate_func__Ú__static_attributes__Ú__classdictcell__©r>   s   @r1   r   r   ,   sS   ø‡ € ñð  % jÐ1€Ká"Ó$€MØ6:€Oá*Ó,ÐØ"$ÐØ€Kà!€JØ€OØ€Nò1÷A ƒ r3   r   c                   óR   a € ] tR t^[t o . t]P                  ! 4       R 4       tRtV t	R# )ÚSLANetPreTrainedModelc                ó  € \         P                  ! V4       \        V\        P                  4      '       dã   VP
                  ^ 8”  d(   R\        P                  ! VP
                  4      ,          M^ p\        P                  ! VP                  V) V4       \        P                  ! VP                  V) V4       VP                  e$   \        P                  ! VP                  V) V4       VP                  e$   \        P                  ! VP                  V) V4       \        V\        4      '       dÞ   R\        P                  ! V P                  P
                  R,          4      ,          pVP                   3 F’  pVP#                  4        F{  p\        V\        P$                  4      '       g   K%  \        P                  ! VP&                  V) V4       VP(                  f   KX  \        P                  ! VP(                  V) V4       K}  	  K”  	  R# R# )zInitialize the weightsg      ð?N)r
   Ú_init_weightsÚ
isinstanceÚnnÚGRUCellr6   ÚmathÚsqrtÚinitÚuniform_Ú	weight_ihÚ	weight_hhÚbias_ihÚbias_hhÚSLANetSLAHeadÚconfigÚstructure_generatorÚchildrenÚLinearÚweightÚbias)r/   ÚmoduleÚstdÚ	generatorÚlayers   &&   r1   rQ   Ú#SLANetPreTrainedModel._init_weights^   sa  € ô 	×%Ò% fÔ-ô �fœbŸj™j×)Ò)Ø9?×9KÑ9KÈaÔ9O�#œŸ	š	 &×"4Ñ"4Ó5Ö5ÐUVˆCÜ�MŠM˜&×*Ñ*¨S¨D°#Ô6Ü�MŠM˜&×*Ñ*¨S¨D°#Ô6Ø�~‰~Ò)Ü—’˜fŸn™n¨s¨d°CÔ8Ø�~‰~Ò)Ü—’˜fŸn™n¨s¨d°CÔ8ô �fœm×,Ò,ØœŸ	š	 $§+¡+×"9Ñ"9¸CÕ"?Ó@Õ@ˆCà$×8Ñ8Ó:�	Ø&×/Ñ/Ö1�EÜ! %¬¯©×3Ô3ÜŸš e§l¡l°S°D¸#Ô>Ø Ÿ:™:Ô1Ü ŸMšM¨%¯*©*°s°d¸CÖ@ó	 2ó ;ñ -r3   r%   N)
rA   rB   rC   rD   Ú_keep_in_fp32_modules_strictÚtorchÚno_gradrQ   rK   rL   rM   s   @r1   rO   rO   [   s%   ø‡ € Ø#%Ð à
‡]‚]ƒ_ñAó öAr3   rO   c                   ó8   a € ] tR t^yt o RtRtRtV 3R ltRtV t	R# )ÚSLANetForTableRecognitionOutputaW  
head_hidden_states (`tuple(torch.FloatTensor)`, *optional*, returned when `output_hidden_states=True` is passed or when `config.output_hidden_states=True`):
    Hidden-states of the SLANetSLAHead at each prediction step, varies up to max `self.config.max_text_length` states (depending on early exits).
head_attentions (`tuple(torch.FloatTensor)`, *optional*, returned when `output_attentions=True` is passed or when `config.output_attentions=True`):
    Attentions of the SLANetSLAHead at each prediction step, varies up to max `self.config.max_text_length` attentions (depending on early exits).
Nc                óv   <€ V ^8„  d   Qh/ S[ P                  R,          ;R&   S[ P                  R,          ;R&   # )r*   NÚhead_hidden_statesÚhead_attentions©rj   ÚFloatTensor)r=   r>   s   "€r1   r?   Ú,SLANetForTableRecognitionOutput.__annotate__y   s5   ø‡ ‚ ñ ×)Ñ)¨DÕ0Ñ7ñ ñ ×&Ñ&¨Õ-Ñ4ò r3   r%   )
rA   rB   rC   rD   rE   ro   rp   rJ   rK   rL   rM   s   @r1   rm   rm   y   s   ø‡ € ñð 48ÐØ04€O÷ ƒ r3   rm   c                   ó   € ] tR t^‡tRtR# )r]   r%   N©rA   rB   rC   rD   rK   r%   r3   r1   r]   r]   ‡   ó   † Ûr3   r]   c                   ó   € ] tR t^‹tRtR# )ÚSLANetConvLayerr%   Nru   r%   r3   r1   rx   rx   ‹   rv   r3   rx   c                   ó6   a a€ ] tR t^�t oRtV 3R ltRtVtV ;t# )Ú!SLANetDepthwiseSeparableConvLayerzÖ
Depthwise Separable Convolution Layer: Depthwise Conv -> Pointwise Conv
Core component of lightweight models (e.g., MobileNet, PP-LCNet) that significantly reduces
the number of parameters and computational cost.
c                óX   <€ \         SV `  4        \        P                  ! 4       V n        R # ©N)ÚsuperÚ__init__rS   ÚIdentityÚsqueeze_excitation_module)r/   Úin_channelsÚout_channelsÚstrideÚkernel_sizer^   Ú	__class__s   &&&&&&€r1   r~   Ú*SLANetDepthwiseSeparableConvLayer.__init__–   s   ø€ ô 	‰ÑÔÜ)+¯ª«ˆÖ&r3   )r€   )	rA   rB   rC   rD   rE   r~   rK   rL   Ú__classcell__©r…   r>   s   @@r1   rz   rz   �   s   ù‡ € ñ÷	7õ 	7r3   rz   c                   óD   a a€ ] tR t^¢t oV 3R ltV3R lR ltRtVtV ;t# )ÚSLANetBottleneckc                ót   <€ \         SV `  4        \        W^VR7      V n        \	        VVV^VR7      V n        R# )é   ©r�   r‚   r„   Ú
activation)r�   r‚   r„   rƒ   r^   N)r}   r~   rx   Úconv1rz   Úconv2)r/   r�   r‚   r„   rŽ   r^   r…   s   &&&&&&€r1   r~   ÚSLANetBottleneck.__init__£   sA   ø€ ô 	‰ÑÔÜ$Ø#ÈAÐZdô
ˆŒ
ô 7Ø$Ø%Ø#ØØô
ˆŽ
r3   c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# ©r*   Úhidden_statesÚreturnrq   )r=   r>   s   "€r1   r?   ÚSLANetBottleneck.__annotate__·   s'   ø€ ÷ ñ ¡U×%6Ñ%6ð ¹5×;LÑ;Lñ r3   c                óJ   € V P                  V4      pV P                  V4      pV# r|   ©r�   r�   )r/   r”   s   &&r1   ÚforwardÚSLANetBottleneck.forward·   s$   € ØŸ
™
 =Ó1ˆØŸ
™
 =Ó1ˆàÐr3   r˜   )	rA   rB   rC   rD   r~   r™   rK   rL   r‡   rˆ   s   @@r1   rŠ   rŠ   ¢   s   ù‡ € õ
÷(÷ ð r3   rŠ   c                   óL   a a€ ] tR t^¾t oRtRV 3R lltV3R lR ltRtVtV ;t	# )ÚSLANetCSPLayerz~
Cross Stage Partial (CSP) network layer. Similar in structure to DFineCSPRepLayer, but with a different forward computation.
c                óP  <€ \         S
V `  4        \        W5,          4      p\        W(^VR7      V n        \        W(^VR7      V n        \        ^V,          V^VR7      V n        \        P                  ! \        V4       U	u. uF  p	\        WˆWGV4      NK  	  up	4      V n        R# u up	i )rŒ   )rŽ   N)r}   r~   r;   rx   r�   r�   Úconv3rS   Ú
ModuleListÚrangerŠ   Úbottlenecks)r/   r^   r�   r‚   r„   Ú	expansionÚ
num_blocksrŽ   Úhidden_channelsÚ_r…   s   &&&&&&&&  €r1   r~   ÚSLANetCSPLayer.__init__Ã   s™   ø€ ô 	‰ÑÔÜ˜lÕ6Ó7ˆÜ$ [À1ÐQ[Ô\ˆŒ
Ü$ [À1ÐQ[Ô\ˆŒ
Ü$ Q¨Õ%8¸,ÈÐV`ÔaˆŒ
ÜŸ=š=ô ˜zÔ*óá*�Aô ! À;Ð\bÖcÙ*ñó
ˆÖùòs   Á?B#c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# r“   rq   )r=   r>   s   "€r1   r?   ÚSLANetCSPLayer.__annotate__Ù   s'   ø€ ÷ 
ñ 
¡U×%6Ñ%6ð 
¹5×;LÑ;Lñ 
r3   c                óÔ   € V P                  V4      pV P                  V4      pV P                   F  pV! V4      pK  	  \        P                  ! W3^R7      pV P                  V4      pV# )rŒ   ©Údim)r�   r�   r¡   rj   Úcatrž   )r/   r”   ÚresidualÚ
bottlenecks   &&  r1   r™   ÚSLANetCSPLayer.forwardÙ   sa   € Ø—:‘:˜mÓ,ˆàŸ
™
 =Ó1ˆØ×*Ô*ˆJÙ& }Ó5ŠMñ +ô Ÿ	š	 =Ð";ÀÔCˆØŸ
™
 =Ó1ˆàÐr3   )r¡   r�   r�   rž   )r+   g      à?rŒ   r   ©
rA   rB   rC   rD   rE   r~   r™   rK   rL   r‡   rˆ   s   @@r1   rœ   rœ   ¾   s   ù‡ € ñ÷
÷,
÷ 
ð 
r3   rœ   c                   óH   a a€ ] tR t^æt oRtV 3R ltV3R lR ltRtVtV ;t	# )ÚSLANetCSPPANz3
CSP-PAN: Path Aggregation Network with CSP layers
c                ó–  <€ \         S	V `  4        VP                  pVP                  pVP                  pVP
                  p\        P                  ! \        \        V4      4       Uu. uF  p\        W',          V^VR7      NK  	  up4      V n        \        P                  ! ^RR7      V n        \        P                  ! \        \        V4      ^,
          ^ R4       Uu. uF  p\        VV^,          VVVVR7      NK  	  up4      V n        \        P                  ! \        \        V4      ^,
          4       Uu. uF  p\!        VVV^VR7      NK  	  up4      V n        \        P                  ! \        \        V4      ^,
          4       Uu. uF  p\        VV^,          VVVVR7      NK  	  up4      V n        R# u upi u upi u upi u upi )rŒ   r�   Únearest)Úscale_factorÚmode)r„   r£   rŽ   )r„   rƒ   r^   Néÿÿÿÿ)r}   r~   r5   r7   r8   r9   rS   rŸ   r    Úlenrx   Úchannel_projectorÚUpsampleÚupsamplerœ   Útop_down_blocksrz   ÚdownsamplesÚbottom_up_blocks)
r/   r^   Úin_channel_listr‚   rŽ   r„   r9   Úir¥   r…   s
   &&&      €r1   r~   ÚSLANetCSPPAN.__init__ë   sÍ  ø€ ô
 	‰ÑÔØ×4Ñ4ˆØ×&Ñ&ˆ
Ø×,Ñ,ˆØ×.Ñ.ˆä!#§¢ô
 œs ?Ó3Ô4ó	ñ 5�Aô  Ø /Õ 2ÀÐ[\Ðis÷ñ 5ñ	ó"
ˆÔô Ÿš°¸ÔCˆŒÜ!Ÿ}š}ô œs ?Ó3°aÕ7¸¸BÔ?ó
ñ @�Aô ØØ  1Õ$Ø Ø +Ø-Ø)÷ñ @ñ
ó 
ˆÔô Ÿ=š=ô œs ?Ó3°aÕ7Ô8ó	ñ 9�Aô 2Ø Ø Ø +ØØ!÷ñ 9ñ	ó
ˆÔô !#§¢ô œs ?Ó3°aÕ7Ô8ó
ñ 9�Aô ØØ  1Õ$Ø Ø +Ø-Ø)÷ñ 9ñ
ó!
ˆÖùòKùò
ùò	ùò
s   Á&F7Ã!F<Ä6GÆ!Gc                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# r“   rq   )r=   r>   s   "€r1   r?   ÚSLANetCSPPAN.__annotate__*  s'   ø€ ÷ ñ ¡U×%6Ñ%6ð ¹5×;LÑ;Lñ r3   c                ó  € . p\        \        V P                  4      4       F1  pVP                  V P                  V,          ! W,          4      4       K3  	  VR,          .p\	        V P
                  \        VRR 4      4       Fd  w  rVVR,          p\        P                  ! VVP                  RR RR7      pV! \        P                  ! W†.^R7      4      p	VP                  V	4       Kf  	  \        \        V4      4      p
V
^ ,          p\	        V P                  V P                  V
R,          4       F-  w  rÍpV! V4      pV! \        P                  ! Wç.^R7      4      pK/  	  VP                  ^4      P!                  ^^4      pV# )rŒ   Nr´   )Úsizer¶   rª   :rŒ   NNr·   éþÿÿÿ)r    r¸   r¹   ÚappendÚzipr¼   ÚreversedÚFÚinterpolateÚshaperj   r¬   Úlistr½   r¾   ÚflattenÚ	transpose)r/   r”   Úprojected_featuresÚidxÚtop_down_featuresÚtop_down_blockÚlow_level_featureÚhigh_level_featureÚupsampled_featureÚfused_featureÚpyramid_featuresÚoutput_featureÚdownsample_layerÚbottom_up_blockÚdownsampled_features   &&             r1   r™   ÚSLANetCSPPAN.forward*  sq  € ØÐÜœ˜T×3Ñ3Ó4Ö5ˆCØ×%Ñ% d×&<Ñ&<¸SÖ&AÀ-ÕBTÓ&UÖVñ 6ð 0°Õ3Ð4ÐÜ14°T×5IÑ5IÌ8ÐTfÐgjÐhjÐTkÓKlÖ1mÑ-ˆNØ!2°2Õ!6ÐÜ !§¢Ø"Ø&×,Ñ,¨R¨SÐ1Øô!Ðñ
 +¬5¯9ª9Ð6GÐ5[ÐabÔ+cÓdˆMØ×$Ñ$ ]Ö3ñ 2nô  ¤Ð):Ó ;Ó<ÐØ)¨!Õ,ˆÜEHØ×Ñ˜d×3Ñ3Ð5EÀbÕ5IöF
ÑAÐÐ/Añ #3°>Ó"BÐÙ,¬U¯YªYÐ8KÐ7`ÐfgÔ-hÓiŠNñ	F
ð '×.Ñ.¨qÓ1×;Ñ;¸A¸qÓAˆØÐr3   )r¾   r¹   r½   r¼   r»   r°   rˆ   s   @@r1   r²   r²   æ   s   ù‡ € ñõ=
÷~÷ ð r3   r²   c                   ód   a a€ ] tR tRt oV3R lV 3R llt]]V3R lR l4       4       tRtVt	V ;t
# )ÚSLANetBackboneiF  c                ó    <€ V ^8„  d   QhRS[ /# )r*   r^   )r   )r=   r>   s   "€r1   r?   ÚSLANetBackbone.__annotate__G  s   ø€ ÷ ñ ™|ñ r3   c                ó¼   <€ \         SV `  V4       \        V4      V n        \	        WP                  P
                  R ,          4      V n        V P                  4        R# ):r*   NNN)r}   r~   r   Úvision_backboner²   Únum_featuresÚpost_csp_panÚ	post_init)r/   r^   r…   s   &&€r1   r~   ÚSLANetBackbone.__init__G  sF   ø€ Ü‰Ñ˜Ô Ü,¨VÓ4ˆÔÜ(¨×1EÑ1E×1RÑ1RÐSUÕ1VÓWˆÔà�‰Ör3   c                ó„   <€ V ^8„  d   QhRS[ P                  RS[S[,          RS[S[ P                  ,          S[,          /# )r*   r”   r0   r•   )rj   rr   r   r   Útupler	   )r=   r>   s   "€r1   r?   rá   P  sB   ø€ ÷ 
ñ 
Ù"×.Ñ.ð
Ù:@ÑASÕ:Tð
á	‰u× Ñ Õ	!Ñ$BÕ	Bñ
r3   c                óŒ   € V P                   ! V3/ VB pV P                  VP                  4      p\        VVP                  R 7      # ))Úlast_hidden_stater”   )rã   rå   Úfeature_mapsr	   r”   )r/   r”   r0   Úoutputss   &&, r1   r™   ÚSLANetBackbone.forwardN  sH   € ð
 ×&Ò& }Ñ?¸Ñ?ˆØ×)Ñ)¨'×*>Ñ*>Ó?ˆÜ-Ø+Ø!×/Ñ/ô
ð 	
r3   )rå   rã   )rA   rB   rC   rD   r~   r   r   r™   rK   rL   r‡   rˆ   s   @@r1   rß   rß   F  s0   ù‡ € ÷ó ð Ø÷
ó ó ÷
ð 
r3   rß   zº
    SLANet Table Recognition model for table recognition tasks. Wraps the core SLANetPreTrainedModel
    and returns outputs compatible with the Transformers table recognition API.
    )Úcustom_introc                   óL   a € ] tR tRt o R.t]]V 3R lR l4       4       tRtV t	R# )ÚSLANetForTableRecognitioni[  Únum_batches_trackedc                ó„   <€ V ^8„  d   QhRS[ P                  RS[S[,          RS[S[ P                  ,          S[,          /# )r*   Úpixel_valuesr0   r•   )rj   rr   r   r   ré   rm   )r=   r>   s   "€r1   r?   Ú&SLANetForTableRecognition.__annotate__f  sB   ø€ ÷ 
ñ 
Ù!×-Ñ-ð
Ù9?Ñ@RÕ9Sð
á	‰u× Ñ Õ	!Ñ$CÕ	Cñ
r3   c                óÐ   € V P                   ! V3/ VB pV P                  ! VP                  3/ VB p\        VP                  VP                  VP                  VP
                  R 7      # ))rë   r”   ro   rp   )ÚbackboneÚheadrë   rm   r”   Ú
attentions)r/   rô   r0   rí   Úhead_outputss   &&,  r1   r™   Ú!SLANetForTableRecognition.forwardd  sa   € ð
 —-’- Ñ7°Ñ7ˆØ—y’y ×!:Ñ!:ÑE¸fÑEˆä.Ø*×<Ñ<Ø!×/Ñ/Ø+×9Ñ9Ø(×3Ñ3ô	
ð 	
r3   r%   N)
rA   rB   rC   rD   Ú_keys_to_ignore_on_load_missingr   r   r™   rK   rL   rM   s   @r1   rñ   rñ   [  s*   ø‡ € ð (=Ð&=Ð#àØ÷
ó ó ö
r3   rñ   )r   rñ   rO   r]   rß   )9rU   Údataclassesr   rj   Útorch.nnrS   Útorch.nn.functionalÚ
functionalrÊ   Úhuggingface_hub.dataclassesr   Ú r   rW   Úbackbone_utilsr   r   Úconfiguration_utilsr   Úmodeling_outputsr	   Úmodeling_utilsr
   Úprocessing_utilsr   Úutilsr   r   r   r   Úautor   Úpp_lcnet.modeling_pp_lcnetr   r   Úslanext.configuration_slanextr   Úslanext.modeling_slanextr   r   r   Ú
get_loggerrA   Úloggerr   rO   rm   r]   rx   rz   ÚModulerŠ   rœ   r²   rß   rñ   Ú__all__r%   r3   r1   Ú<module>r     sL  ðó  Ý !ã Ý ß Ð Ý .å &ß RÝ 3Ý >Ý -Ý &ß RÓ RÝ ß ]Ý 9÷ñ ð 
×	Ò	˜HÓ	%€ñ ÐAÔBØô*1�=ó *1ó ó Cð*1ôZAÐ2ô Að< Ø
ô	5Ð&Dó 	5ó ó ð	5ô	�Nô 	ô	Ð&ô 	ô7Ð(Jô 7ô&�r—y‘yô ô8%�R—Y‘Yô %ôP]�2—9‘9ô ]ô@
Ð*ô 
ñ* ðôô
Ð :ó 
óð
ò& t‚r3   