Ë
    þÍ:jZ¨  ã                   óÚ  — U d dl Z d dl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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 ddlmZ ddlmZmZmZ ddlmZ ddl m!Z!m"Z"m#Z# g d¢Z$e G d„ d«      «       Z% G d„ de%«      Z& G d„ de%«      Z' G d„ dejP                  «      Z) G d„ dejP                  «      Z* G d„ dejP                  «      Z+deee&e'f      de,dee-   d ee   d!e.d"e	d#e+fd$„Z/d%e0d"e	d#e1eee&e'f      ee-   f   fd&„Z2d'eiZ3e4e0e	f   e5d(<   i e3¥d)d*d+œ¥Z6i e3¥d,d-d+œ¥Z7 G d.„ d/e«      Z8 G d0„ d1e«      Z9 G d2„ d3e«      Z: G d4„ d5e«      Z; G d6„ d7e«      Z< G d8„ d9e«      Z= G d:„ d;e«      Z> G d<„ d=e«      Z? G d>„ d?e«      Z@ G d@„ dAe«      ZA G dB„ dCe«      ZB e«        e#dDe8j†                  f¬E«      ddFdGœd ee8   d!e.d"e	d#e+fdH„«       «       ZD e«        e#dDe9j†                  f¬E«      ddFdGœd ee9   d!e.d"e	d#e+fdI„«       «       ZE e«        e#dDe:j†                  f¬E«      ddFdGœd ee:   d!e.d"e	d#e+fdJ„«       «       ZF e«        e#dDe;j†                  f¬E«      ddFdGœd ee;   d!e.d"e	d#e+fdK„«       «       ZG e«        e#dDe<j†                  f¬E«      ddFdGœd ee<   d!e.d"e	d#e+fdL„«       «       ZH e«        e#dDe=j†                  f¬E«      ddFdGœd ee=   d!e.d"e	d#e+fdM„«       «       ZI e«        e#dDe>j†                  f¬E«      ddFdGœd ee>   d!e.d"e	d#e+fdN„«       «       ZJ e«        e#dDe?j†                  f¬E«      ddFdGœd ee?   d!e.d"e	d#e+fdO„«       «       ZK e«        e#dDe@j†                  f¬E«      ddFdGœd ee@   d!e.d"e	d#e+fdP„«       «       ZL e«        e#dDeAj†                  f¬E«      ddFdGœd eeA   d!e.d"e	d#e+fdQ„«       «       ZM e«        e#dDeBj†                  f¬E«      ddFdGœd eeB   d!e.d"e	d#e+fdR„«       «       ZNy)Sé    N)ÚSequence)Ú	dataclass)Úpartial)ÚAnyÚCallableÚOptionalÚUnion)ÚnnÚTensor)ÚStochasticDepthé   )ÚConv2dNormActivationÚSqueezeExcitation)ÚImageClassificationÚInterpolationMode)Ú_log_api_usage_onceé   )Úregister_modelÚWeightsÚWeightsEnum)Ú_IMAGENET_CATEGORIES)Ú_make_divisibleÚ_ovewrite_named_paramÚhandle_legacy_interface)ÚEfficientNetÚEfficientNet_B0_WeightsÚEfficientNet_B1_WeightsÚEfficientNet_B2_WeightsÚEfficientNet_B3_WeightsÚEfficientNet_B4_WeightsÚEfficientNet_B5_WeightsÚEfficientNet_B6_WeightsÚEfficientNet_B7_WeightsÚEfficientNet_V2_S_WeightsÚEfficientNet_V2_M_WeightsÚEfficientNet_V2_L_WeightsÚefficientnet_b0Úefficientnet_b1Úefficientnet_b2Úefficientnet_b3Úefficientnet_b4Úefficientnet_b5Úefficientnet_b6Úefficientnet_b7Úefficientnet_v2_sÚefficientnet_v2_mÚefficientnet_v2_lc            
       óœ   — e Zd ZU eed<   eed<   eed<   eed<   eed<   eed<   edej                  f   ed<   e	dd
edede
e   defd„«       Zy	)Ú_MBConvConfigÚexpand_ratioÚkernelÚstrideÚinput_channelsÚout_channelsÚ
num_layers.ÚblockNÚchannelsÚ
width_multÚ	min_valueÚreturnc                 ó"   — t        | |z  d|«      S )Né   )r   )r;   r<   r=   s      út/home/mcse/projects/srt_converter/srt-converter-venv/lib/python3.12/site-packages/torchvision/models/efficientnet.pyÚadjust_channelsz_MBConvConfig.adjust_channels9   s   € ä˜x¨*Ñ4°a¸ÓCÐCó    ©N)Ú__name__Ú
__module__Ú__qualname__ÚfloatÚ__annotations__Úintr   r
   ÚModuleÚstaticmethodr   rB   © rC   rA   r3   r3   /   so   … àÓØƒKØƒKØÓØÓØƒOØ�C˜Ÿ™�NÑ#Ó#àñD #ð D°5ð DÀXÈcÁ]ð DÐ^aò Dó ñDrC   r3   c                   óŽ   ‡ — e Zd Z	 	 	 ddededededededed	ed
eedej                  f      ddfˆ fd„Z	e
ded	efd„«       Zˆ xZS )ÚMBConvConfigNr4   r5   r6   r7   r8   r9   r<   Ú
depth_multr:   .r>   c
           	      ó¬   •— | j                  ||«      }| j                  ||«      }| j                  ||«      }|	€t        }	t        ‰
| �  |||||||	«       y rD   )rB   Úadjust_depthÚMBConvÚsuperÚ__init__)Úselfr4   r5   r6   r7   r8   r9   r<   rP   r:   Ú	__class__s             €rA   rU   zMBConvConfig.__init__@   s`   ø€ ð ×-Ñ-¨n¸jÓIˆØ×+Ñ+¨L¸*ÓEˆØ×&Ñ& z°:Ó>ˆ
Øˆ=ÜˆEÜ‰Ñ˜ v¨v°~À|ÐU_ÐafÕgrC   c                 óD   — t        t        j                  | |z  «      «      S rD   )rJ   ÚmathÚceil)r9   rP   s     rA   rR   zMBConvConfig.adjust_depthS   s   € ä”4—9‘9˜Z¨*Ñ4Ó5Ó6Ð6rC   )ç      ð?r[   N)rE   rF   rG   rH   rJ   r   r   r
   rK   rU   rL   rR   Ú__classcell__©rW   s   @rA   rO   rO   >   s´   ø„ ð  ØØ48ñhàðhð ðhð ð	hð
 ðhð ðhð ðhð ðhð ðhð ˜  b§i¡i Ñ0Ñ1ðhð 
õhð& ð7 ð 7°%ò 7ó ô7rC   rO   c                   óh   ‡ — e Zd Z	 ddededededededeed	ej                  f      d
dfˆ fd„Z	ˆ xZ
S )ÚFusedMBConvConfigNr4   r5   r6   r7   r8   r9   r:   .r>   c           	      ó@   •— |€t         }t        ‰| �	  |||||||«       y rD   )ÚFusedMBConvrT   rU   )	rV   r4   r5   r6   r7   r8   r9   r:   rW   s	           €rA   rU   zFusedMBConvConfig.__init__Z   s*   ø€ ð ˆ=ÜˆEÜ‰Ñ˜ v¨v°~À|ÐU_ÐafÕgrC   rD   )rE   rF   rG   rH   rJ   r   r   r
   rK   rU   r\   r]   s   @rA   r_   r_   X   s|   ø„ ð 59ñhàðhð ðhð ð	hð
 ðhð ðhð ðhð ˜  b§i¡i Ñ0Ñ1ðhð 
÷hñ hrC   r_   c                   ó„   ‡ — e Zd Zefdedededej                  f   dedej                  f   ddf
ˆ fd„Z	d	e
de
fd
„Zˆ xZS )rS   ÚcnfÚstochastic_depth_probÚ
norm_layer.Úse_layerr>   Nc                 ó~  •— t         ‰	| �  «        d|j                  cxk  rdk  st        d«      ‚ t        d«      ‚|j                  dk(  xr |j                  |j
                  k(  | _        g }t        j                  }|j                  |j                  |j                  «      }||j                  k7  r)|j                  t        |j                  |d||¬«      «       |j                  t        |||j                  |j                  |||¬«      «       t        d|j                  dz  «      }|j                   |||t        t        j                  d¬«      ¬	«      «       |j                  t        ||j
                  d|d ¬«      «       t        j                   |Ž | _        t%        |d
«      | _        |j
                  | _        y )Nr   r   úillegal stride value©Úkernel_sizere   Úactivation_layer)rj   r6   Úgroupsre   rk   é   T)Úinplace)Ú
activationÚrow)rT   rU   r6   Ú
ValueErrorr7   r8   Úuse_res_connectr
   ÚSiLUrB   r4   Úappendr   r5   Úmaxr   Ú
Sequentialr:   r   Ústochastic_depth)
rV   rc   rd   re   rf   Úlayersrk   Úexpanded_channelsÚsqueeze_channelsrW   s
            €rA   rU   zMBConv.__init__j   s–  ø€ ô 	‰ÑÔà�S—Z‘ZÔ$ 1Ò$ÜÐ3Ó4Ð4ð %ÜÐ3Ó4Ð4à"Ÿz™z¨Q™ÒY°3×3EÑ3EÈ×IYÑIYÑ3YˆÔà"$ˆÜŸ7™7Ðð  ×/Ñ/°×0BÑ0BÀC×DTÑDTÓUÐØ × 2Ñ 2Ò2Ø�M‰MÜ$Ø×&Ñ&Ø%Ø !Ø)Ø%5ôôð 	�‰Ü Ø!Ø!ØŸJ™JØ—z‘zØ(Ø%Ø!1ôô
	
ô ˜q #×"4Ñ"4¸Ñ"9Ó:ÐØ�‰‘hÐ0Ð2BÌwÔWY×W^ÑW^ÐhlÔOmÔnÔoð 	�‰Ü Ø! 3×#3Ñ#3ÀÈzÐlpôô	
ô —]‘] FÐ+ˆŒ
Ü /Ð0EÀuÓ MˆÔØ×,Ñ,ˆÕrC   Úinputc                 ól   — | j                  |«      }| j                  r| j                  |«      }||z  }|S rD   ©r:   rr   rw   ©rV   r{   Úresults      rA   ÚforwardzMBConv.forward¤   ó7   € Ø—‘˜EÓ"ˆØ×ÒØ×*Ñ*¨6Ó2ˆFØ�e‰OˆFØˆrC   )rE   rF   rG   r   rO   rH   r   r
   rK   rU   r   r€   r\   r]   s   @rA   rS   rS   i   sk   ø„ ð .?ñ8-àð8-ð  %ð8-ð ˜S "§)¡)˜^Ñ,ð	8-ð
 ˜3 §	¡	˜>Ñ*ð8-ð 
õ8-ðt˜Vð ¨÷ rC   rS   c                   ó^   ‡ — e Zd Zdedededej                  f   ddfˆ fd„Zde	de	fd	„Z
ˆ xZS )
ra   rc   rd   re   .r>   Nc           
      ó8  •— t         ‰| �  «        d|j                  cxk  rdk  st        d«      ‚ t        d«      ‚|j                  dk(  xr |j                  |j
                  k(  | _        g }t        j                  }|j                  |j                  |j                  «      }||j                  k7  rh|j                  t        |j                  ||j                  |j                  ||¬«      «       |j                  t        ||j
                  d|d ¬«      «       nH|j                  t        |j                  |j
                  |j                  |j                  ||¬«      «       t        j                  |Ž | _        t!        |d«      | _        |j
                  | _        y )Nr   r   rh   ©rj   r6   re   rk   ri   rp   )rT   rU   r6   rq   r7   r8   rr   r
   rs   rB   r4   rt   r   r5   rv   r:   r   rw   )rV   rc   rd   re   rx   rk   ry   rW   s          €rA   rU   zFusedMBConv.__init__­   si  ø€ ô 	‰ÑÔà�S—Z‘ZÔ$ 1Ò$ÜÐ3Ó4Ð4ð %ÜÐ3Ó4Ð4à"Ÿz™z¨Q™ÒY°3×3EÑ3EÈ×IYÑIYÑ3YˆÔà"$ˆÜŸ7™7Ðà×/Ñ/°×0BÑ0BÀC×DTÑDTÓUÐØ × 2Ñ 2Ò2à�M‰MÜ$Ø×&Ñ&Ø%Ø #§
¡
ØŸ:™:Ø)Ø%5ôô	ð �M‰MÜ$Ø% s×'7Ñ'7ÀQÐS]Ðptôõð �M‰MÜ$Ø×&Ñ&Ø×$Ñ$Ø #§
¡
ØŸ:™:Ø)Ø%5ôô	ô —]‘] FÐ+ˆŒ
Ü /Ð0EÀuÓ MˆÔØ×,Ñ,ˆÕrC   r{   c                 ól   — | j                  |«      }| j                  r| j                  |«      }||z  }|S rD   r}   r~   s      rA   r€   zFusedMBConv.forwardá   r�   rC   )rE   rF   rG   r_   rH   r   r
   rK   rU   r   r€   r\   r]   s   @rA   ra   ra   ¬   sO   ø„ ð2-àð2-ð  %ð2-ð ˜S "§)¡)˜^Ñ,ð	2-ð
 
õ2-ðh˜Vð ¨÷ rC   ra   c                   ó    ‡ — e Zd Z	 	 	 	 ddeeeef      dededede	e
dej                  f      de	e   d	dfˆ fd
„Zded	efd„Zded	efd„Zˆ xZS )r   NÚinverted_residual_settingÚdropoutrd   Únum_classesre   .Úlast_channelr>   c           
      óº  •— t         ‰| �  «        t        | «       |st        d«      ‚t	        |t
        «      r't        |D �cg c]  }t	        |t        «      ‘Œ c}«      st        d«      ‚|€t        j                  }g }|d   j                  }	|j                  t        d|	dd|t        j                  ¬«      «       t        d„ |D «       «      }
d}|D ]¦  }g }t!        |j"                  «      D ]i  }t%        j$                  |«      }|r|j&                  |_        d	|_        |t+        |«      z  |
z  }|j                  |j-                  |||«      «       |d	z  }Œk |j                  t        j.                  |Ž «       Œ¨ |d
   j&                  }|�|nd|z  }|j                  t        ||d	|t        j                  ¬«      «       t        j.                  |Ž | _        t        j2                  d	«      | _        t        j.                  t        j6                  |d¬«      t        j8                  ||«      «      | _        | j=                  «       D �]�  }t	        |t        j>                  «      rbt        j@                  jC                  |jD                  d¬«       |jF                  €ŒVt        j@                  jI                  |jF                  «       Œ€t	        |t        j                  t        jJ                  f«      rSt        j@                  jM                  |jD                  «       t        j@                  jI                  |jF                  «       Œýt	        |t        j8                  «      s�ŒdtO        jP                  |jR                  «      z  }t        j@                  jU                  |jD                  | |«       t        j@                  jI                  |jF                  «       �Œ’ yc c}w )a  
        EfficientNet V1 and V2 main class

        Args:
            inverted_residual_setting (Sequence[Union[MBConvConfig, FusedMBConvConfig]]): Network structure
            dropout (float): The droupout probability
            stochastic_depth_prob (float): The stochastic depth probability
            num_classes (int): Number of classes
            norm_layer (Optional[Callable[..., nn.Module]]): Module specifying the normalization layer to use
            last_channel (int): The number of channels on the penultimate layer
        z1The inverted_residual_setting should not be emptyz:The inverted_residual_setting should be List[MBConvConfig]Nr   é   r   r„   c              3   ó4   K  — | ]  }|j                   –— Œ y ­wrD   )r9   )Ú.0rc   s     rA   ú	<genexpr>z(EfficientNet.__init__.<locals>.<genexpr>  s   è ø€ Ò U°C §¥Ñ Uùs   ‚r   éÿÿÿÿrm   ri   T)Úprn   Úfan_out)Úmoder[   )+rT   rU   r   rq   Ú
isinstancer   Úallr3   Ú	TypeErrorr
   ÚBatchNorm2dr7   rt   r   rs   ÚsumÚranger9   Úcopyr8   r6   rH   r:   rv   ÚfeaturesÚAdaptiveAvgPool2dÚavgpoolÚDropoutÚLinearÚ
classifierÚmodulesÚConv2dÚinitÚkaiming_normal_ÚweightÚbiasÚzeros_Ú	GroupNormÚones_rY   ÚsqrtÚout_featuresÚuniform_)rV   r‡   rˆ   rd   r‰   re   rŠ   Úsrx   Úfirstconv_output_channelsÚtotal_stage_blocksÚstage_block_idrc   ÚstageÚ_Ú	block_cnfÚsd_probÚlastconv_input_channelsÚlastconv_output_channelsÚmÚ
init_rangerW   s                        €rA   rU   zEfficientNet.__init__ê   s   ø€ ô( 	‰ÑÔÜ˜DÔ!á(ÜÐPÓQÐQäÐ0´(Ô;ÜÐ;TÖU°a”Z ¤=Õ1ÒUÔVäÐXÓYÐYàÐÜŸ™ˆJà"$ˆð %>¸aÑ$@×$OÑ$OÐ!Ø�‰Ü ØÐ,¸!ÀAÐR\Ôoq×ovÑovôô	
ô !Ñ UÐ;TÔ UÓUÐØˆØ,ò 	1ˆCØ%'ˆEÜ˜3Ÿ>™>Ó*ò $�ä ŸI™I c›N�	ñ Ø/8×/EÑ/E�IÔ,Ø'(�IÔ$ð 0´%¸Ó2GÑGÐJ\Ñ\�à—‘˜YŸ_™_¨Y¸ÀÓLÔMØ !Ñ#‘ð$ð �M‰Mœ"Ÿ-™-¨Ð/Õ0ð#	1ð( #<¸BÑ"?×"LÑ"LÐØ3?Ð3K¡<ÐQRÐUlÑQlÐ Ø�‰Ü Ø'Ø(ØØ%Ü!#§¡ôô	
ô Ÿ™ vÐ.ˆŒÜ×+Ñ+¨AÓ.ˆŒÜŸ-™-Ü�J‰J˜¨$Ô/Ü�I‰IÐ.°Ó<ó
ˆŒð
 —‘“ó 	'ˆAÜ˜!œRŸY™YÔ'Ü—‘×'Ñ'¨¯©°yÐ'ÔAØ—6‘6Ñ%Ü—G‘G—N‘N 1§6¡6Õ*Ü˜A¤§¡´·±Ð=Ô>Ü—‘—‘˜aŸh™hÔ'Ü—‘—‘˜qŸv™vÕ&Ü˜AœrŸy™yÖ)Ø ¤4§9¡9¨Q¯^©^Ó#<Ñ<�
Ü—‘× Ñ  §¡¨J¨;¸
ÔCÜ—‘—‘˜qŸv™vÖ&ñ	'ùòw Vs   ÁOÚxc                 ó˜   — | j                  |«      }| j                  |«      }t        j                  |d«      }| j	                  |«      }|S )Nr   )r›   r�   ÚtorchÚflattenr    ©rV   r¹   s     rA   Ú_forward_implzEfficientNet._forward_implM  s@   € Ø�M‰M˜!Óˆà�L‰L˜‹OˆÜ�M‰M˜!˜QÓˆà�O‰O˜AÓˆàˆrC   c                 ó$   — | j                  |«      S rD   )r¾   r½   s     rA   r€   zEfficientNet.forwardW  s   € Ø×!Ñ! !Ó$Ð$rC   )çš™™™™™É?iè  NN)rE   rF   rG   r   r	   rO   r_   rH   rJ   r   r   r
   rK   rU   r   r¾   r€   r\   r]   s   @rA   r   r   é   s¯   ø„ ð
 (+ØØ9=Ø&*ña'à#+¨E°,Ð@QÐ2QÑ,RÑ#Sða'ð ða'ð  %ð	a'ð
 ða'ð ˜X c¨2¯9©9 nÑ5Ñ6ða'ð ˜s‘mða'ð 
õa'ðF˜vð ¨&ó ð%˜ð % F÷ %rC   r   r‡   rˆ   rŠ   ÚweightsÚprogressÚkwargsr>   c                 ó¶   — |�#t        |dt        |j                  d   «      «       t        | |fd|i|¤Ž}|�"|j	                  |j                  |d¬«      «       |S )Nr‰   Ú
categoriesrŠ   T)rÂ   Ú
check_hash)r   ÚlenÚmetar   Úload_state_dictÚget_state_dict)r‡   rˆ   rŠ   rÁ   rÂ   rÃ   Úmodels          rA   Ú_efficientnetrÌ   [  sf   € ð ÐÜ˜f m´S¸¿¹ÀlÑ9SÓ5TÔUäÐ2°GÑaÈ,ÐaÐZ`Ña€EàÐØ×Ñ˜g×4Ñ4¸hÐSWÐ4ÓXÔYà€LrC   Úarchc                 óF  — | j                  d«      rŒt        t        |j                  d«      |j                  d«      ¬«      } |dddddd«       |d	dd
ddd
«       |d	dd
ddd
«       |d	dd
ddd«       |d	ddddd«       |d	dd
ddd«       |d	ddddd«      g}d }||fS | j                  d«      rbt	        dddddd
«      t	        ddd
ddd«      t	        ddd
ddd«      t        ddd
ddd	«      t        d	ddddd«      t        d	dd
ddd«      g}d}||fS | j                  d«      rqt	        dddddd«      t	        ddd
ddd«      t	        ddd
ddd«      t        ddd
ddd«      t        d	ddddd«      t        d	dd
dd d!«      t        d	ddd d"d«      g}d}||fS | j                  d#«      rqt	        dddddd«      t	        ddd
ddd«      t	        ddd
dd$d«      t        ddd
d$dd%«      t        d	dddd&d'«      t        d	dd
d&d(d)«      t        d	ddd(d*d«      g}d}||fS t        d+| › �«      ‚),NÚefficientnet_br<   rP   ©r<   rP   r   rŒ   é    é   é   r   é   é   é(   éP   ép   éÀ   rm   é@  r/   é0   é@   é€   é    é	   é   é   i   r0   é   é°   é   i0  é   i   r1   é`   é
   éà   é   é€  é   i€  zUnsupported model type )Ú
startswithr   rO   Úpopr_   rq   )rÍ   rÃ   Ú
bneck_confr‡   rŠ   s        rA   Ú_efficientnet_confrï   n  sÏ  € ð
 ‡�Ð'Ô(Üœ\°f·j±jÀÓ6NÐ[a×[eÑ[eÐfrÓ[sÔtˆ
á�q˜!˜Q  B¨Ó*Ù�q˜!˜Q  B¨Ó*Ù�q˜!˜Q  B¨Ó*Ù�q˜!˜Q  B¨Ó*Ù�q˜!˜Q  C¨Ó+Ù�q˜!˜Q  S¨!Ó,Ù�q˜!˜Q  S¨!Ó,ð%
Ð!ð ˆðH % lÐ2Ð2ðG 
�‰Ð,Ô	-ä˜a  A r¨2¨qÓ1Ü˜a  A r¨2¨qÓ1Ü˜a  A r¨2¨qÓ1Ü˜˜A˜q " c¨1Ó-Ü˜˜A˜q # s¨AÓ.Ü˜˜A˜q # s¨BÓ/ð%
Ð!ð ˆð4 % lÐ2Ð2ð3 
�‰Ð,Ô	-ä˜a  A r¨2¨qÓ1Ü˜a  A r¨2¨qÓ1Ü˜a  A r¨2¨qÓ1Ü˜˜A˜q " c¨1Ó-Ü˜˜A˜q # s¨BÓ/Ü˜˜A˜q # s¨BÓ/Ü˜˜A˜q # s¨AÓ.ð%
Ð!ð ˆð % lÐ2Ð2ð 
�‰Ð,Ô	-ä˜a  A r¨2¨qÓ1Ü˜a  A r¨2¨qÓ1Ü˜a  A r¨2¨qÓ1Ü˜˜A˜q " c¨2Ó.Ü˜˜A˜q # s¨BÓ/Ü˜˜A˜q # s¨BÓ/Ü˜˜A˜q # s¨AÓ.ð%
Ð!ð ˆð % lÐ2Ð2ô Ð2°4°&Ð9Ó:Ð:rC   rÅ   Ú_COMMON_META)r   r   zUhttps://github.com/pytorch/vision/tree/main/references/classification#efficientnet-v1)Úmin_sizeÚrecipe)é!   ró   zUhttps://github.com/pytorch/vision/tree/main/references/classification#efficientnet-v2c                   ól   — e Zd Z ed eeddej                  ¬«      i e¥ddddd	œid
dddœ¥¬«      Z	e	Z
y)r   zJhttps://download.pytorch.org/models/efficientnet_b0_rwightman-7f5810bc.pthrè   rà   ©Ú	crop_sizeÚresize_sizeÚinterpolationid²P úImageNet-1Kg?5^ºIlS@g5^ºIbW@©zacc@1zacc@5gNbX9´Ø?gú~j¼ts4@ú1These weights are ported from the original paper.©Ú
num_paramsÚ_metricsÚ_opsÚ
_file_sizeÚ_docs©ÚurlÚ
transformsrÈ   N©rE   rF   rG   r   r   r   r   ÚBICUBICÚ_COMMON_META_V1ÚIMAGENET1K_V1ÚDEFAULTrM   rC   rA   r   r   ¸  óa   „ ÙàXÙØ¨3¸CÐO`×OhÑOhô
ð
Øð
à!àØ#Ø#ñ ðð Ø ØLò
ô€Mð( �GrC   r   c                   óÊ   — e Zd Z ed eeddej                  ¬«      i e¥ddddd	œid
dddœ¥¬«      Z	 ed eeddej                  ¬«      i e¥dddddd	œid
dddœ¥¬«      ZeZy)r   zJhttps://download.pytorch.org/models/efficientnet_b1_rwightman-bac287d4.pthéð   rà   rõ   iîv rù   g+‡©S@g–C‹lç‹W@rú   g–C‹lçûå?gü©ñÒM">@rû   rü   r  z@https://download.pytorch.org/models/efficientnet_b1-c27df63c.pthéÿ   zOhttps://github.com/pytorch/vision/issues/3995#new-recipe-with-lr-wd-crop-tuninggƒÀÊ¡õS@g²�ï§Æ»W@g‰A`åÐ">@á$  
                These weights improve upon the results of the original paper by using a modified version of TorchVision's
                `new training recipe
                <https://pytorch.org/blog/how-to-train-state-of-the-art-models-using-torchvision-latest-primitives/>`_.
            )rý   rò   rþ   rÿ   r   r  N)rE   rF   rG   r   r   r   r   r  r  r  ÚBILINEARÚIMAGENET1K_V2r	  rM   rC   rA   r   r   Ð  sÀ   „ ÙàXÙØ¨3¸CÐO`×OhÑOhô
ð
Øð
à!àØ#Ø#ñ ðð Ø ØLò
ô€Mñ( ØNÙØ¨3¸CÐO`×OiÑOiô
ð
Øð
à!ØgàØ#Ø#ñ ðð Ø ðò
ô€Mð0 �GrC   r   c                   ól   — e Zd Z ed eeddej                  ¬«      i e¥dddddœid	d
ddœ¥¬«      Z	e	Z
y)r   zJhttps://download.pytorch.org/models/efficientnet_b2_rwightman-c35c1473.pthi   rõ   iê‹ rù   gôýÔxé&T@g¤p=
×ÓW@rú   gœÄ °rhñ?gƒÀÊ¡E–A@rû   rü   r  Nr  rM   rC   rA   r   r      r
  rC   r   c                   ól   — e Zd Z ed eeddej                  ¬«      i e¥ddddd	œid
dddœ¥¬«      Z	e	Z
y)r   zJhttps://download.pytorch.org/models/efficientnet_b3_rwightman-b3899882.pthi,  rÚ   rõ   iªº rù   g�—nƒ€T@gú~j¼tX@rú   g¬Zd;ý?gd;ßO�—G@rû   rü   r  Nr  rM   rC   rA   r   r     óa   „ ÙàXÙØ¨3¸CÐO`×OhÑOhô
ð
Øð
à"àØ#Ø#ñ ðð Ø ØLò
ô€Mð( �GrC   r   c                   ól   — e Zd Z ed eeddej                  ¬«      i e¥ddddd	œid
dddœ¥¬«      Z	e	Z
y)r    zJhttps://download.pytorch.org/models/efficientnet_b4_rwightman-23ab8bcd.pthi|  rê   rõ   i0!'rù   gj¼t“ØT@g¼t“&X@rú   gú~j¼t“@gžï§ÆKŸR@rû   rü   r  Nr  rM   rC   rA   r    r    0  r  rC   r    c                   ól   — e Zd Z ed eeddej                  ¬«      i e¥dddddœid	d
ddœ¥¬«      Z	e	Z
y)r!   zJhttps://download.pytorch.org/models/efficientnet_b5_lukemelas-1a07897c.pthiÈ  rõ   i¶Ïrù   g#Ûù~jÜT@gÕxé&1(X@rú   gÕxé&1ˆ$@gžï§ÆK7]@rû   rü   r  Nr  rM   rC   rA   r!   r!   H  óa   „ ÙàXÙØ¨3¸CÐO`×OhÑOhô
ð
Øð
à"àØ#Ø#ñ ðð Ø!ØLò
ô€Mð( �GrC   r!   c                   ól   — e Zd Z ed eeddej                  ¬«      i e¥dddddœid	d
ddœ¥¬«      Z	e	Z
y)r"   zJhttps://download.pytorch.org/models/efficientnet_b6_lukemelas-24a108a5.pthi  rõ   iÀ¿�rù   g�—nƒ U@g´Èv¾Ÿ:X@rú   gÅ °rh3@gÝ$�•«d@rû   rü   r  Nr  rM   rC   rA   r"   r"   `  r  rC   r"   c                   ól   — e Zd Z ed eeddej                  ¬«      i e¥dddddœid	d
ddœ¥¬«      Z	e	Z
y)r#   zJhttps://download.pytorch.org/models/efficientnet_b7_lukemelas-c5b4e57e.pthiX  rõ   i¸côrù   g+‡ÙÎU@g'1¬:X@rú   gsh‘í|ßB@gš™™™™Õo@rû   rü   r  Nr  rM   rC   rA   r#   r#   x  r  rC   r#   c                   ól   — e Zd Z ed eeddej                  ¬«      i e¥dddddœid	d
ddœ¥¬«      Z	e	Z
y)r$   zBhttps://download.pytorch.org/models/efficientnet_v2_s-dd5fe13b.pthrê   rõ   i8nGrù   g;ßO�—U@gÕxé&18X@rú   g¬Zd» @g“V­T@r  rü   r  N©rE   rF   rG   r   r   r   r   r  Ú_COMMON_META_V2r  r	  rM   rC   rA   r$   r$   �  se   „ ÙØPÙØØØØ+×4Ñ4ô	
ð
Øð
à"àØ#Ø#ñ ðð Ø ðò
ô€Mð4 �GrC   r$   c                   ól   — e Zd Z ed eeddej                  ¬«      i e¥dddddœid	d
ddœ¥¬«      Z	e	Z
y)r%   zBhttps://download.pytorch.org/models/efficientnet_v2_m-dc08266a.pthéà  rõ   iÜ:rù   gºI+GU@gD‹lçûIX@rú   g¢E¶óý”8@g¸…ëQ j@r  rü   r  Nr  rM   rC   rA   r%   r%   ®  se   „ ÙØPÙØØØØ+×4Ñ4ô	
ð
Øð
à"àØ#Ø#ñ ðð Ø ðò
ô€Mð4 �GrC   r%   c                   óp   — e Zd Z ed eeddej                  dd¬«      i e¥ddddd	œid
dddœ¥¬«      Z	e	Z
y)r&   zBhttps://download.pytorch.org/models/efficientnet_v2_l-59c71312.pthr  )ç      à?r  r  )rö   r÷   rø   ÚmeanÚstdiHfrù   gÁÊ¡E¶sU@gßO�—nrX@rú   g
×£p=
L@gºI+i|@rû   rü   r  N)rE   rF   rG   r   r   r   r   r  r  r  r	  rM   rC   rA   r&   r&   Ì  si   „ áØPÙØØØØ+×3Ñ3Ø Øô
ð
Øð
à#àØ#Ø#ñ ðð Ø!ØLò
ô€Mð0 �GrC   r&   Ú
pretrained)rÁ   T)rÁ   rÂ   c                 óŽ   — t         j                  | «      } t        ddd¬«      \  }}t        ||j	                  dd«      || |fi |¤ŽS )aØ  EfficientNet B0 model architecture from the `EfficientNet: Rethinking Model Scaling for Convolutional
    Neural Networks <https://arxiv.org/abs/1905.11946>`_ paper.

    Args:
        weights (:class:`~torchvision.models.EfficientNet_B0_Weights`, optional): The
            pretrained weights to use. See
            :class:`~torchvision.models.EfficientNet_B0_Weights` below for
            more details, and possible values. By default, no pre-trained
            weights are used.
        progress (bool, optional): If True, displays a progress bar of the
            download to stderr. Default is True.
        **kwargs: parameters passed to the ``torchvision.models.efficientnet.EfficientNet``
            base class. Please refer to the `source code
            <https://github.com/pytorch/vision/blob/main/torchvision/models/efficientnet.py>`_
            for more details about this class.
    .. autoclass:: torchvision.models.EfficientNet_B0_Weights
        :members:
    r'   r[   rÐ   rˆ   rÀ   )r   Úverifyrï   rÌ   rí   ©rÁ   rÂ   rÃ   r‡   rŠ   s        rA   r'   r'   é  óW   € ô. &×,Ñ,¨WÓ5€Gä.@ÐARÐ_bÐorÔ.sÑ+Ð˜|ÜØ! 6§:¡:¨i¸Ó#=¸|ÈWÐV^ñØbhñð rC   c                 óŽ   — t         j                  | «      } t        ddd¬«      \  }}t        ||j	                  dd«      || |fi |¤ŽS )aØ  EfficientNet B1 model architecture from the `EfficientNet: Rethinking Model Scaling for Convolutional
    Neural Networks <https://arxiv.org/abs/1905.11946>`_ paper.

    Args:
        weights (:class:`~torchvision.models.EfficientNet_B1_Weights`, optional): The
            pretrained weights to use. See
            :class:`~torchvision.models.EfficientNet_B1_Weights` below for
            more details, and possible values. By default, no pre-trained
            weights are used.
        progress (bool, optional): If True, displays a progress bar of the
            download to stderr. Default is True.
        **kwargs: parameters passed to the ``torchvision.models.efficientnet.EfficientNet``
            base class. Please refer to the `source code
            <https://github.com/pytorch/vision/blob/main/torchvision/models/efficientnet.py>`_
            for more details about this class.
    .. autoclass:: torchvision.models.EfficientNet_B1_Weights
        :members:
    r(   r[   çš™™™™™ñ?rÐ   rˆ   rÀ   )r   r$  rï   rÌ   rí   r%  s        rA   r(   r(     r&  rC   c                 óŽ   — t         j                  | «      } t        ddd¬«      \  }}t        ||j	                  dd«      || |fi |¤ŽS )aØ  EfficientNet B2 model architecture from the `EfficientNet: Rethinking Model Scaling for Convolutional
    Neural Networks <https://arxiv.org/abs/1905.11946>`_ paper.

    Args:
        weights (:class:`~torchvision.models.EfficientNet_B2_Weights`, optional): The
            pretrained weights to use. See
            :class:`~torchvision.models.EfficientNet_B2_Weights` below for
            more details, and possible values. By default, no pre-trained
            weights are used.
        progress (bool, optional): If True, displays a progress bar of the
            download to stderr. Default is True.
        **kwargs: parameters passed to the ``torchvision.models.efficientnet.EfficientNet``
            base class. Please refer to the `source code
            <https://github.com/pytorch/vision/blob/main/torchvision/models/efficientnet.py>`_
            for more details about this class.
    .. autoclass:: torchvision.models.EfficientNet_B2_Weights
        :members:
    r)   r(  ç333333ó?rÐ   rˆ   ç333333Ó?)r   r$  rï   rÌ   rí   r%  s        rA   r)   r)   '  r&  rC   c                 óŽ   — t         j                  | «      } t        ddd¬«      \  }}t        ||j	                  dd«      || |fi |¤ŽS )aØ  EfficientNet B3 model architecture from the `EfficientNet: Rethinking Model Scaling for Convolutional
    Neural Networks <https://arxiv.org/abs/1905.11946>`_ paper.

    Args:
        weights (:class:`~torchvision.models.EfficientNet_B3_Weights`, optional): The
            pretrained weights to use. See
            :class:`~torchvision.models.EfficientNet_B3_Weights` below for
            more details, and possible values. By default, no pre-trained
            weights are used.
        progress (bool, optional): If True, displays a progress bar of the
            download to stderr. Default is True.
        **kwargs: parameters passed to the ``torchvision.models.efficientnet.EfficientNet``
            base class. Please refer to the `source code
            <https://github.com/pytorch/vision/blob/main/torchvision/models/efficientnet.py>`_
            for more details about this class.
    .. autoclass:: torchvision.models.EfficientNet_B3_Weights
        :members:
    r*   r*  çffffffö?rÐ   rˆ   r+  )r   r$  rï   rÌ   rí   r%  s        rA   r*   r*   F  ó\   € ô. &×,Ñ,¨WÓ5€Gä.@ÐARÐ_bÐorÔ.sÑ+Ð˜|ÜØ!Ø�
‰
�9˜cÓ"ØØØñð ñð rC   c                 óŽ   — t         j                  | «      } t        ddd¬«      \  }}t        ||j	                  dd«      || |fi |¤ŽS )aØ  EfficientNet B4 model architecture from the `EfficientNet: Rethinking Model Scaling for Convolutional
    Neural Networks <https://arxiv.org/abs/1905.11946>`_ paper.

    Args:
        weights (:class:`~torchvision.models.EfficientNet_B4_Weights`, optional): The
            pretrained weights to use. See
            :class:`~torchvision.models.EfficientNet_B4_Weights` below for
            more details, and possible values. By default, no pre-trained
            weights are used.
        progress (bool, optional): If True, displays a progress bar of the
            download to stderr. Default is True.
        **kwargs: parameters passed to the ``torchvision.models.efficientnet.EfficientNet``
            base class. Please refer to the `source code
            <https://github.com/pytorch/vision/blob/main/torchvision/models/efficientnet.py>`_
            for more details about this class.
    .. autoclass:: torchvision.models.EfficientNet_B4_Weights
        :members:
    r+   r-  çÍÌÌÌÌÌü?rÐ   rˆ   çš™™™™™Ù?)r    r$  rï   rÌ   rí   r%  s        rA   r+   r+   j  r.  rC   c           	      óÆ   — t         j                  | «      } t        ddd¬«      \  }}t        ||j	                  dd«      || |fdt        t        j                  dd	¬
«      i|¤ŽS )aØ  EfficientNet B5 model architecture from the `EfficientNet: Rethinking Model Scaling for Convolutional
    Neural Networks <https://arxiv.org/abs/1905.11946>`_ paper.

    Args:
        weights (:class:`~torchvision.models.EfficientNet_B5_Weights`, optional): The
            pretrained weights to use. See
            :class:`~torchvision.models.EfficientNet_B5_Weights` below for
            more details, and possible values. By default, no pre-trained
            weights are used.
        progress (bool, optional): If True, displays a progress bar of the
            download to stderr. Default is True.
        **kwargs: parameters passed to the ``torchvision.models.efficientnet.EfficientNet``
            base class. Please refer to the `source code
            <https://github.com/pytorch/vision/blob/main/torchvision/models/efficientnet.py>`_
            for more details about this class.
    .. autoclass:: torchvision.models.EfficientNet_B5_Weights
        :members:
    r,   gš™™™™™ù?gš™™™™™@rÐ   rˆ   r1  re   çü©ñÒMbP?ç{®Gáz„?©ÚepsÚmomentum)r!   r$  rï   rÌ   rí   r   r
   r—   r%  s        rA   r,   r,   Ž  ós   € ô. &×,Ñ,¨WÓ5€Gä.@ÐARÐ_bÐorÔ.sÑ+Ð˜|ÜØ!Ø�
‰
�9˜cÓ"ØØØñô œ2Ÿ>™>¨u¸tÔDðð ñð rC   c           	      óÆ   — t         j                  | «      } t        ddd¬«      \  }}t        ||j	                  dd«      || |fdt        t        j                  dd	¬
«      i|¤ŽS )aØ  EfficientNet B6 model architecture from the `EfficientNet: Rethinking Model Scaling for Convolutional
    Neural Networks <https://arxiv.org/abs/1905.11946>`_ paper.

    Args:
        weights (:class:`~torchvision.models.EfficientNet_B6_Weights`, optional): The
            pretrained weights to use. See
            :class:`~torchvision.models.EfficientNet_B6_Weights` below for
            more details, and possible values. By default, no pre-trained
            weights are used.
        progress (bool, optional): If True, displays a progress bar of the
            download to stderr. Default is True.
        **kwargs: parameters passed to the ``torchvision.models.efficientnet.EfficientNet``
            base class. Please refer to the `source code
            <https://github.com/pytorch/vision/blob/main/torchvision/models/efficientnet.py>`_
            for more details about this class.
    .. autoclass:: torchvision.models.EfficientNet_B6_Weights
        :members:
    r-   r0  gÍÌÌÌÌÌ@rÐ   rˆ   r  re   r3  r4  r5  )r"   r$  rï   rÌ   rí   r   r
   r—   r%  s        rA   r-   r-   ³  r8  rC   c           	      óÆ   — t         j                  | «      } t        ddd¬«      \  }}t        ||j	                  dd«      || |fdt        t        j                  dd	¬
«      i|¤ŽS )aØ  EfficientNet B7 model architecture from the `EfficientNet: Rethinking Model Scaling for Convolutional
    Neural Networks <https://arxiv.org/abs/1905.11946>`_ paper.

    Args:
        weights (:class:`~torchvision.models.EfficientNet_B7_Weights`, optional): The
            pretrained weights to use. See
            :class:`~torchvision.models.EfficientNet_B7_Weights` below for
            more details, and possible values. By default, no pre-trained
            weights are used.
        progress (bool, optional): If True, displays a progress bar of the
            download to stderr. Default is True.
        **kwargs: parameters passed to the ``torchvision.models.efficientnet.EfficientNet``
            base class. Please refer to the `source code
            <https://github.com/pytorch/vision/blob/main/torchvision/models/efficientnet.py>`_
            for more details about this class.
    .. autoclass:: torchvision.models.EfficientNet_B7_Weights
        :members:
    r.   g       @gÍÌÌÌÌÌ@rÐ   rˆ   r  re   r3  r4  r5  )r#   r$  rï   rÌ   rí   r   r
   r—   r%  s        rA   r.   r.   Ø  r8  rC   c                 ó¾   — t         j                  | «      } t        d«      \  }}t        ||j	                  dd«      || |fdt        t        j                  d¬«      i|¤ŽS )aÌ  
    Constructs an EfficientNetV2-S architecture from
    `EfficientNetV2: Smaller Models and Faster Training <https://arxiv.org/abs/2104.00298>`_.

    Args:
        weights (:class:`~torchvision.models.EfficientNet_V2_S_Weights`, optional): The
            pretrained weights to use. See
            :class:`~torchvision.models.EfficientNet_V2_S_Weights` below for
            more details, and possible values. By default, no pre-trained
            weights are used.
        progress (bool, optional): If True, displays a progress bar of the
            download to stderr. Default is True.
        **kwargs: parameters passed to the ``torchvision.models.efficientnet.EfficientNet``
            base class. Please refer to the `source code
            <https://github.com/pytorch/vision/blob/main/torchvision/models/efficientnet.py>`_
            for more details about this class.
    .. autoclass:: torchvision.models.EfficientNet_V2_S_Weights
        :members:
    r/   rˆ   rÀ   re   r3  ©r6  )r$   r$  rï   rÌ   rí   r   r
   r—   r%  s        rA   r/   r/   ý  ók   € ô0 (×.Ñ.¨wÓ7€Gä.@ÐATÓ.UÑ+Ð˜|ÜØ!Ø�
‰
�9˜cÓ"ØØØñô œ2Ÿ>™>¨uÔ5ðð ñð rC   c                 ó¾   — t         j                  | «      } t        d«      \  }}t        ||j	                  dd«      || |fdt        t        j                  d¬«      i|¤ŽS )aÌ  
    Constructs an EfficientNetV2-M architecture from
    `EfficientNetV2: Smaller Models and Faster Training <https://arxiv.org/abs/2104.00298>`_.

    Args:
        weights (:class:`~torchvision.models.EfficientNet_V2_M_Weights`, optional): The
            pretrained weights to use. See
            :class:`~torchvision.models.EfficientNet_V2_M_Weights` below for
            more details, and possible values. By default, no pre-trained
            weights are used.
        progress (bool, optional): If True, displays a progress bar of the
            download to stderr. Default is True.
        **kwargs: parameters passed to the ``torchvision.models.efficientnet.EfficientNet``
            base class. Please refer to the `source code
            <https://github.com/pytorch/vision/blob/main/torchvision/models/efficientnet.py>`_
            for more details about this class.
    .. autoclass:: torchvision.models.EfficientNet_V2_M_Weights
        :members:
    r0   rˆ   r+  re   r3  r<  )r%   r$  rï   rÌ   rí   r   r
   r—   r%  s        rA   r0   r0   #  r=  rC   c                 ó¾   — t         j                  | «      } t        d«      \  }}t        ||j	                  dd«      || |fdt        t        j                  d¬«      i|¤ŽS )aÌ  
    Constructs an EfficientNetV2-L architecture from
    `EfficientNetV2: Smaller Models and Faster Training <https://arxiv.org/abs/2104.00298>`_.

    Args:
        weights (:class:`~torchvision.models.EfficientNet_V2_L_Weights`, optional): The
            pretrained weights to use. See
            :class:`~torchvision.models.EfficientNet_V2_L_Weights` below for
            more details, and possible values. By default, no pre-trained
            weights are used.
        progress (bool, optional): If True, displays a progress bar of the
            download to stderr. Default is True.
        **kwargs: parameters passed to the ``torchvision.models.efficientnet.EfficientNet``
            base class. Please refer to the `source code
            <https://github.com/pytorch/vision/blob/main/torchvision/models/efficientnet.py>`_
            for more details about this class.
    .. autoclass:: torchvision.models.EfficientNet_V2_L_Weights
        :members:
    r1   rˆ   r1  re   r3  r<  )r&   r$  rï   rÌ   rí   r   r
   r—   r%  s        rA   r1   r1   I  r=  rC   )Orš   rY   Úcollections.abcr   Údataclassesr   Ú	functoolsr   Útypingr   r   r   r	   r»   r
   r   Útorchvision.opsr   Úops.miscr   r   Útransforms._presetsr   r   Úutilsr   Ú_apir   r   r   Ú_metar   Ú_utilsr   r   r   Ú__all__r3   rO   r_   rK   rS   ra   r   rH   rJ   ÚboolrÌ   ÚstrÚtuplerï   rð   ÚdictrI   r  r  r   r   r   r   r    r!   r"   r#   r$   r%   r&   r  r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   rM   rC   rA   ú<module>rP     s  ðÜ Û Ý $Ý !Ý ß 1Ó 1ã ß Ý +ç >ß HÝ 'ß 6Ñ 6Ý 'ß SÑ Sò€ð6 ÷Dð Dó ðDô7�=ô 7ô4h˜ô hô"@ˆR�Y‰Yô @ôF:�"—)‘)ô :ôzo%�2—9‘9ô o%ðdØ'¨¨lÐ<MÐ.MÑ(NÑOðàðð ˜3‘-ðð �kÑ"ð	ð
 ðð ðð óð&43Ø
ð43àð43ð ˆ8�E˜,Ð(9Ð9Ñ:Ñ;¸XÀc¹]ÐJÑKó43ðp Ð&ð €ˆd�3˜�8‰nó ð
ØðàØeò€ðØðàØeò€ô˜kô ô0-˜kô -ô`˜kô ô0˜kô ô0˜kô ô0˜kô ô0˜kô ô0˜kô ô0 ô ô< ô ô< ô ñ: ÓÙ ,Ð0G×0UÑ0UÐ!VÔWà48È4òØÐ0Ñ1ðØDHðØ[^ðàòó Xó ðñ: ÓÙ ,Ð0G×0UÑ0UÐ!VÔWà48È4òØÐ0Ñ1ðØDHðØ[^ðàòó Xó ðñ: ÓÙ ,Ð0G×0UÑ0UÐ!VÔWà48È4òØÐ0Ñ1ðØDHðØ[^ðàòó Xó ðñ: ÓÙ ,Ð0G×0UÑ0UÐ!VÔWà48È4òØÐ0Ñ1ðØDHðØ[^ðàòó Xó ðñD ÓÙ ,Ð0G×0UÑ0UÐ!VÔWà48È4òØÐ0Ñ1ðØDHðØ[^ðàòó Xó ðñD ÓÙ ,Ð0G×0UÑ0UÐ!VÔWà48È4ò ØÐ0Ñ1ð ØDHð Ø[^ð àò ó Xó ð ñF ÓÙ ,Ð0G×0UÑ0UÐ!VÔWà48È4ò ØÐ0Ñ1ð ØDHð Ø[^ð àò ó Xó ð ñF ÓÙ ,Ð0G×0UÑ0UÐ!VÔWà48È4ò ØÐ0Ñ1ð ØDHð Ø[^ð àò ó Xó ð ñF ÓÙ ,Ð0I×0WÑ0WÐ!XÔYà6:ÈTò!ØÐ2Ñ3ð!ØFJð!Ø]`ð!àò!ó Zó ð!ñH ÓÙ ,Ð0I×0WÑ0WÐ!XÔYà6:ÈTò!ØÐ2Ñ3ð!ØFJð!Ø]`ð!àò!ó Zó ð!ñH ÓÙ ,Ð0I×0WÑ0WÐ!XÔYà6:ÈTò!ØÐ2Ñ3ð!ØFJð!Ø]`ð!àò!ó Zó ñ!rC   