Ë
    u™ãj‹.  ã                   óœ  — d Z ddlZddlZddlmZ ddlmZmZ ddl	Z
ddlmZ ej                  j                  dg d¢«      d„ «       Zd„ Zd	„ Zd
„ Zd„ Zd„ Zej                  j                  ddej,                  fdej.                  fdej0                  fdej2                  fdej4                  fdej6                  fdej8                  fdd„ fdd„ fg	«      d„ «       Zej                  j                  ddej,                  fdd„ fdd„ fdej6                  fdej8                  fg«      d„ «       Zd„ Zej                  j                  dg d¢«      ej                  j                  d  e
j@                  d!«       e
jB                  d"«      g«      d#„ «       «       Z"ej                  j                  d$g d%¢«      d&„ «       Z#ej                  j                  dg d¢«      d'„ «       Z$ej                  j                  d(g d)¢«      d*„ «       Z%ej                  j                  d+d,d-g«      ej                  j                  d.g d/¢«      ej                  j                  d  e
jL                  g d0¢d1¬2«       e
jL                  g d0¢d3¬2«       e
jL                  g d4¢d5¬2«       e
jL                  g d4¢d6¬2«       e
jL                  g d7¢d8¬2«      g«      d9„ «       «       «       Z'y):z
test cython .agg behavior
é    N)ÚPandas4Warning)Úis_float_dtypeÚis_integer_dtypeÚop_name)
ÚcountÚsumÚstdÚvarÚsemÚmeanÚmedianÚprodÚminÚmaxc                 ó°  ‡ — ddddddddddt         j                  t         j                  gddgdz  t         j                  j                  d«      j	                  d«      d	œ}t        j                  |«      }t         j                  |j                  dd
d…df<   ˆ fd„}|j                  dgd¬«      j                  d«      }|D ��ci c]  \  }}| ||d   «      “Œ }}}t        j                  d|i«      }d|j                  _         ||«      }t        j                  ||«       |j                  ddg«      }i }	|D ]&  \  \  }
}} ||d   «      |	j                  |
i «      |<   Œ( t        j                  |	«      j                  j!                  «       }ddg|j                  _        d|_         ||«      d   }‰ dv rt        j$                  ||«       y y c c}}w )Nr   é   g      ð?ÚAÚBé   é   é   ©r   r   ÚCé
   r   c                 ó&   •—  t        | ‰«      «       S ©N)Úgetattr)Úxr   s    €úu/var/www/html/python-recuperauto-other/env/lib/python3.12/site-packages/pandas/tests/groupby/aggregate/test_cython.pyú<lambda>z(test_cythonized_aggers.<locals>.<lambda>+   s   ø€ Ð&”7˜1˜gÓ&Ó(€ ó    )Úaxis)r   r   )ÚnpÚnanÚrandomÚdefault_rngÚstandard_normalÚpdÚ	DataFrameÚlocÚdropÚgroupbyÚindexÚnameÚtmÚassert_frame_equalÚ
setdefaultÚTÚstackÚnamesÚassert_series_equal)r   ÚdataÚdfÚopÚgroupedÚcatÚgroupÚexpÚresultÚexpdÚcat1Úcat2s   `           r   Útest_cythonized_aggersrA      sµ  ø€ ð" ��A�q˜!˜Q  1 a¨¬b¯f©f´b·f±fÐ=Ø�3ˆZ˜!‰^Ü�Y‰Y×"Ñ" 1Ó%×5Ñ5°bÓ9ñ€Dô
 
�‰�dÓ	€BÜŸ&™&€B‡F�Fˆ1ˆR�ˆ6�3ˆ;Ñã	(€Bð �g‰g�s�e !ˆgÓ$×,Ñ,¨SÓ1€GØ18×
9¡: 3¨ˆ3‘�5˜‘:“ÑÐ
9€CÑ
9Ü
�,‰,˜˜S�zÓ
"€CØ€C‡I�I„NÙ�‹[€FÜ×Ñ˜& #Ô&ð �j‰j˜#˜s˜Ó$€GØ€DØ&ò 9Ñ‰ˆˆt�eÙ*,¨U°3©Z«.ˆ�‰˜˜bÓ! $Ò'ð9ä
�,‰,�tÓ
×
Ñ
×
$Ñ
$Ó
&€CØ˜C�j€C‡I�I„OØ€C„Há�‹[˜Ñ€FØ�/Ñ!Ü
×Ñ˜v sÕ+ð "ùó! :s   ÃGc                  óÜ  — t        j                  t        j                  j	                  d«      j                  ddd«      t        j                  j	                  d«      j                  ddd«      j                  d«      dœ«      } | j                  d«      d   j                  «       }| j                  d«      d   j                  t        j                  «      }t        j                  ||«       y )	Nr   r   é   é2   Úbool©ÚaÚbrG   rH   )r(   r)   r#   r%   r&   ÚintegersÚastyper,   r   Úaggr/   r5   )Úframer=   Úexpecteds      r   Útest_cython_agg_booleanrN   C   s²   € Ü�L‰Lä—‘×&Ñ& qÓ)×2Ñ2°1°a¸Ó<Ü—‘×&Ñ& qÓ)×2Ñ2°1°a¸Ó<×CÑCÀFÓKñ	
ó€Eð �]‰]˜3Ó Ñ$×)Ñ)Ó+€Fà�}‰}˜SÓ! #Ñ&×*Ñ*¬2¯7©7Ó3€Hä×Ñ˜6 8Õ,r!   c                  óð  — t        j                  t        j                  j	                  d«      j                  ddd«      ddgdz  dœ«      } d	}t        j                  t        |¬
«      5  | j                  d«      d   j                  d¬«       d d d «       t        j                  t        j                  j	                  d«      j                  ddd«      ddgdz  dœ«      } | dg   j                  | d   «      j                  d¬«      }t        j                  g | d   j                  «       j                  «       t        j                  g d¬«      ¬«      }t        j                  ||«       y # 1 sw Y   ŒßxY w)Nr   r   rC   rD   ÚfooÚbaré   rF   úKCannot use numeric_only=True with SeriesGroupBy.mean and non-numeric dtypes©ÚmatchrG   rH   T©Únumeric_onlyÚstr©Údtype)r-   Úcolumns)r(   r)   r#   r%   r&   rI   ÚpytestÚraisesÚ	TypeErrorr,   r   Úsort_valuesÚdrop_duplicatesÚIndexr/   r0   )rL   Úmsgr=   rM   s       r   Útest_cython_agg_nothing_to_aggrc   Q   s>  € Ü�L‰LÜ�i‰i×#Ñ# AÓ&×/Ñ/°°1°bÓ9ÀÈÀÐQSÑ@SÑTó€Eð X€CÜ	�‰”y¨Ô	,ñ 8Ø�‰�cÓ˜3Ñ×$Ñ$°$Ð$Ô7÷8ô �L‰LÜ�i‰i×#Ñ# AÓ&×/Ñ/°°1°bÓ9ÀÈÀÐQSÑ@SÑTó€Eð �C�5‰\×!Ñ! %¨¡*Ó-×2Ñ2ÀÐ2ÓE€FÜ�|‰|Ø
Ø�C‰j×$Ñ$Ó&×6Ñ6Ó8Ü—‘˜ 5Ô)ô€Hô
 ×Ñ˜& (Õ+÷8ð 8ús   Á)%E,Å,E5c            	      ó‚  — t        j                  t        j                  j	                  d«      j                  ddd«      ddgdz  t        j                  ddd	¬
«      dœ«      } d}t        j                  t        |¬«      5  | j                  d«      j                  j                  d¬«       d d d «       y # 1 sw Y   y xY w)Nr   r   rC   rD   rP   rQ   rR   z
2011-01-01r   )ÚperiodsÚfreq)rG   rH   ÚdatesrS   rT   rH   TrV   )r(   r)   r#   r%   r&   rI   Ú
date_ranger\   r]   r^   r,   rg   r   )rL   rb   s     r   Ú)test_cython_agg_nothing_to_agg_with_datesri   g   s�   € Ü�L‰Lä—‘×&Ñ& qÓ)×2Ñ2°1°a¸Ó<Ø˜� "Ñ$Ü—]‘] <¸À%ÔHñ	
ó€Eð X€CÜ	�‰”y¨Ô	,ñ 9Ø�‰�cÓ× Ñ ×%Ñ%°4Ð%Ô8÷9÷ 9ñ 9ús   Â ,B5Â5B>c                  óÖ  — t        j                  g d¢g d¢t        j                  j	                  d«      j                  d«      t        j                  j	                  d«      j                  d«      dœ«      } | j                  d«      d   j                  d„ «      }t        j                  d	d	d	d
œddd	d
œgt        j                  ddgd¬«      d¬«      }t        j                  ||«       y )N)rP   rQ   rP   rQ   rP   rQ   rP   rP   )Úonerk   ÚtwoÚthreerl   rl   rk   rm   r   é   )r   r   r   ÚDr   r   c                 ó>   — | j                  «       j                  «       S r   )Úvalue_countsÚto_dict©r   s    r   r    z-test_cython_agg_return_dict.<locals>.<lambda>   s   € ¨A¯N©NÓ,<×,DÑ,DÓ,F€ r!   r   )rl   rk   rm   rQ   rP   ©r.   )r-   r.   )r(   r)   r#   r%   r&   r'   r,   rK   ÚSeriesra   r/   r5   )r7   ÚtsrM   s      r   Útest_cython_agg_return_dictrw   t   sÀ   € ä	�‰âIÚMÜ—‘×&Ñ& qÓ)×9Ñ9¸!Ó<Ü—‘×&Ñ& qÓ)×9Ñ9¸!Ó<ñ		
ó
€Bð 
�‰�C‹˜Ñ	×	!Ñ	!Ñ"FÓ	G€BÜ�y‰yØ˜1 qÑ	)°1¸QÈÑ+KÐLÜ�h‰h˜˜u�~¨CÔ0Øô€Hô
 ×Ñ˜2˜xÕ(r!   c                  óH  — t        j                  dd¬«      } t        j                  g d¢dz  t        | ¬«      }|j	                  d„ «      }|j                  «       }|j                  t        j
                  «      j                  t        «      }t        j                  ||«       y )Nz1/1/2000rD   )re   )r   r   r   ro   ÚEr   )rZ   r-   c                 ó   — | j                   S r   )Úmonthrs   s    r   r    z&test_cython_fail_agg.<locals>.<lambda>Œ   s
   €  1§7¡7€ r!   )r(   Úbdate_rangeru   Úobjectr,   r   rK   r#   rJ   r/   r5   )Údrrv   r9   ÚsummedrM   s        r   Útest_cython_fail_aggr€   ˆ   sq   € Ü	�‰˜
¨BÔ	/€BÜ	�‰Ò,¨rÑ1¼ÀrÔ	J€Bà�j‰jÑ*Ó+€GØ�[‰[‹]€FØ�{‰{œ2Ÿ6™6Ó"×)Ñ)¬&Ó1€HÜ×Ñ˜6 8Õ,r!   z
op, targopr   r   r
   r   r   r   r   Úfirstc                 ó    — | j                   d   S ©Nr   ©Úilocrs   s    r   r    r    œ   s   € ˜AŸF™F 1™I€ r!   Úlastc                 ó    — | j                   d   S )Néÿÿÿÿr„   rs   s    r   r    r    �   s   € ˜1Ÿ6™6 "™:€ r!   c                 óì  — t        j                  t        j                  j	                  d«      j                  d«      «      }t        j                  j	                  d«      j                  ddd¬«      j                  t        «      }| dk(  rddini }| d	vrd|d
<   |j                  |«      j                  | d d¬«      } |j                  |«      j                  |fi |¤Ž}t        j                  ||«       y )Nr   iè  r   rD   )Úsizer
   Úddofr   )r�   r†   r"   T©ÚaltrW   )r(   r)   r#   r%   r&   r'   rI   rJ   Úfloatr,   Ú_cython_agg_generalrK   r/   r0   )r8   Útargopr7   ÚlabelsÚkwargsr=   rM   s          r   Útest__cython_agg_generalr“   ’   sÐ   € ô 
�‰”b—i‘i×+Ñ+¨AÓ.×>Ñ>¸tÓDÓ	E€BÜ�Y‰Y×"Ñ" 1Ó%×.Ñ.¨q°"¸4Ð.Ó@×GÑGÌÓN€FØ %šKˆf�a‰[¨R€FØ	Ð"Ñ"Øˆˆv‰à�Z‰Z˜Ó×3Ñ3°B¸DÈtÐ3ÓT€FØ%ˆr�z‰z˜&Ó!×%Ñ% fÑ7°Ñ7€HÜ×Ñ˜& (Õ+r!   c                 óh   — t        | «      dkD  rt        j                  | «      S t        j                  S rƒ   )Úlenr#   r   r$   rs   s    r   r    r    °   s    € ¬S°«V°aªZœRŸY™Y q›\€ ¼R¿V¹V€ r!   c                 ó0   — t        j                  | d¬«      S )Nr   )r‹   )r#   r
   rs   s    r   r    r    ±   s   € œ"Ÿ&™& ¨Ô+€ r!   c                 ór  ‡— t        j                  g d¢«      }t        ddd«      }|j                  t        j                  |d   |«      |¬«      }|j                  | d d¬«      }|j                  t        j                  |d   |«      |¬«      }|j                  ˆfd„«      }t        j                  ||«       y )	N©é   r   é   r   é7   rC   ©ÚobservedTrŒ   c                 ó   •—  ‰| «      S r   © )r   r�   s    €r   r    z/test_cython_agg_empty_buckets.<locals>.<lambda>À   s   ø€ ™v a›y€ r!   )	r(   r)   Úranger,   Úcutr�   rK   r/   r0   )r8   r�   r�   r7   ÚgrpsÚgr=   rM   s    `      r   Útest_cython_agg_empty_bucketsr¤   ¬   sš   ø€ ô 
�‰’lÓ	#€BÜ��B˜‹?€Dð 	�
‰
”2—6‘6˜"˜Q™% Ó&°ˆ
Ó:€AØ×"Ñ" 2¨4¸dÐ"ÓC€Fà
�
‰
”2—6‘6˜"˜Q™% Ó&°ˆ
Ó:€AØ�u‰uÓ(Ó)€HÜ×Ñ˜& (Õ+r!   c                 óþ  — t        j                  g d¢dg¬«      }t        j                  dddt        ¬«      }|j                  t        j                  |d   |«      | ¬«      j                  d	d d
¬«      }t        j                  ddd¬«      }t        j                  dg d¢it        j                  |dd
¬«      ¬«      }| r||j                  dk7     }t        j                  ||«       |j                  t        j                  |d   |«      | ¬«      j                  dd d
¬«      }t        j                  dg d¢it        j                  |dd
¬«      ¬«      }| r||j                  dk7     }t        j                  ||«       y )Nr˜   rG   )r[   r   rR   rC   rY   rœ   r   TrŒ   é   )rf   )r   r   é$   r   )r.   Úordered©r-   r   )r   r   i´  r   r   )r(   r)   r#   ÚarangeÚintr,   r¡   r�   Úinterval_rangeÚCategoricalIndexrG   r/   r0   )r�   r7   r¢   r=   Ú	intervalsrM   s         r   Ú$test_cython_agg_empty_buckets_nanopsr¯   Ä   sT  € ô 
�‰’l¨S¨EÔ	2€BÜ�9‰9�Q˜˜A¤SÔ)€Dà�Z‰ZœŸ™˜r #™w¨Ó-¸ˆZÓA×UÑUØ�4 dð Vó €Fô ×!Ñ! ! R¨aÔ0€IÜ�|‰|Ø	ŠmÐÜ×!Ñ! )°#¸tÔDô€Hñ Ø˜HŸJ™J¨!™OÑ,ˆä×Ñ˜& (Ô+ð �Z‰ZœŸ™˜r #™w¨Ó-¸ˆZÓA×UÑUØ�D tð Vó €Fô �|‰|Ø	ŠoÐÜ×!Ñ! )°#¸tÔDô€Hñ Ø˜HŸJ™J¨!™OÑ,ˆä×Ñ˜& (Õ+r!   r8   )r�   r†   r   r   r6   z2016-10-14 21:00:44.557z17088 days 21:00:44.557c                 óH  — t        j                  ddg|t         j                  gdœ«      }t        j                  ddgd¬«      }t        j                  d|t         j                  gi|¬«      }|j	                  d«      j                  | «      }t        j                  ||«       y )Nr   r   rF   rG   rt   rH   r©   )r(   r)   ÚNaTra   r,   Ú	aggregater/   r0   )r8   r6   r7   r-   rM   r=   s         r   Ú"test_cython_with_timestamp_and_natr³   å   s~   € ô 
�‰˜Q ˜F¨$´·±¨Ñ8Ó	9€BÜ�H‰H�a˜�V #Ô&€Eô �|‰|˜S 4¬¯© .Ð1¸Ô?€Hà�Z‰Z˜‹_×&Ñ& rÓ*€FÜ×Ñ˜( FÕ+r!   rK   )r   r   r   r   r   r
   r   r   ÚohlcÚcumprodÚcumsumÚshiftÚanyÚallÚquantiler�   r†   ÚrankÚcumminÚcummaxc                 ót  — t        j                  g d¢g d¢dœ«      }d|j                  j                  d   j                  j
                  _        |j                  dg«      j                  d| i«      }|j                  «       j                  dg«      j                  d| i«      }t        j                  ||«       y )N)gffffff@gš™™™™™@gÍÌÌÌÌÌ@gffffff@g      @)Úsetosar¿   r¿   r¿   r¿   )Úsepal_lengthÚspeciesFr   rÁ   rÀ   )r(   r)   Ú_mgrÚblocksÚvaluesÚflagsÚ	writeabler,   rK   Úcopyr/   Úassert_equal)rK   r7   r=   rM   s       r   Ú test_read_only_buffer_source_aggrÉ   ö   s–   € ô6 
�‰â5ÚIñ	
ó
€Bð 05€B‡G�G‡N�N�1Ñ×Ñ×"Ñ"Ô,à�Z‰Z˜˜Ó$×(Ñ(¨.¸#Ð)>Ó?€FØ�w‰w‹y× Ñ  ) Ó-×1Ñ1°>À3Ð2GÓH€Hä‡O�O�F˜HÕ%r!   c                 ó2  — t        j                  ddgdz  t        j                  ddddddd	d
dt         j                  g
d¬«      dœ«      } t	        |j                  d«      d   | «      «       }|j                  |d   j                  d«      ¬«      } t	        |j                  d«      d   | «      «       }| dv rd}nd}d}t        j                  t        |¬«      5  |j                  |¬«      }d d d «       t        j                  ||«       y # 1 sw Y   Œ xY w)Nr   r   rC   r   r   é   é   r   é   rn   é	   ÚInt64rY   )r   r   Úfloat64)r   )r   r   FTzBThe convert_integer keyword in Series.convert_dtypes is deprecatedrT   )Úconvert_integer)r(   r)   ÚarrayÚNAr   r,   ÚassignrJ   r/   Úassert_produces_warningr   Úconvert_dtypesr5   )r   r7   r=   Údf2rM   rÑ   rb   s          r   Útest_cython_agg_nullable_intrØ     s	  € ô$ 
�‰à�s�˜a‘Ü—‘˜1˜a  A q¨!¨Q°°1´b·e±eÐ<ÀGÔLñ	
ó
€Bð 4ŒW�R—Z‘Z “_ SÑ)¨7Ó3Ó5€FØ
�)‰)�b˜‘g—n‘n YÓ/ˆ)Ó
0€CØ6Œw�s—{‘{ 3Ó'¨Ñ,¨gÓ6Ó8€HØÐ$Ñ$Ø‰àˆØ
N€CÜ	×	#Ñ	#¤N¸#Ô	>ñ LØ×*Ñ*¸?Ð*ÓKˆ÷Lä×Ñ˜6 8Õ,÷Lð Lús   ÃDÄDrZ   )rÏ   ÚFloat64Úbooleanc                 ó„  — t        j                  ddgt        j                  dt         j                  g| ¬«      t        j                  ddg| ¬«      dœ«      }|j	                  d«      j                  «       }t        j                  ddggt        j                  dgd¬«      ddgd	¬
«      }t        j                  ||«       y )Nr   rY   r   r   r   rt   r   r   rÏ   )r-   r[   rZ   )	r(   r)   rÒ   rÓ   r,   r   ra   r/   r0   )rZ   r7   r=   rM   s       r   Ú&test_count_masked_returns_masked_dtyperÜ   D  sœ   € ä	�‰à�Q�Ü—‘˜1œbŸe™e˜*¨EÔ2Ü—‘˜1˜a˜&¨Ô.ñ	
ó
€Bð �Z‰Z˜‹_×"Ñ"Ó$€FÜ�|‰|Ø
ˆQˆˆœŸ™ ! ¨3Ô/¸#¸s¸È7ô€Hô ×Ñ˜& (Õ+r!   Úwith_naTFzop_name, action)	)r   Ú	large_int)r
   Úalways_float)r   rß   )r   rß   )r   rÞ   )r   Úpreserve)r   rà   )r�   rà   )r†   rà   )r   r   rË   rÌ   rÏ   rY   ÚInt8)gš™™™™™¹?gš™™™™™É?g333333Ó?gš™™™™™Ù?ÚFloat32rÙ   )TTFFrÚ   c                 ó6  — |rt         j                  | d<   t        j                  g d¢| dœ«      }|j                  d«      }|dk(  rt        j                  «       }n«|dk(  rYt        | j                  «      r| j                  }n„t        | j                  «      r| j                  }nbt        j                  «       }nM|dk(  r7t        | j                  «      r| j                  }n&t        j                  «       }n|dk(  r| j                  } t        ||«      «       }|d	   j                  k(  sJ ‚|j                  |«      }|d	   j                  |k(  sJ ‚ t        |d	   |«      «       }|j                  |k(  sJ ‚|d	   j                  |«      }|j                  |k(  sJ ‚y )
NrË   )rG   rG   rH   rH   )ÚkeyÚcolrä   Ú
always_intrÞ   rß   rà   rå   )r(   rÓ   r)   r,   Ú
Int64Dtyper   rZ   r   ÚFloat64Dtyper   r²   )r6   r   ÚactionrÝ   r7   r9   Úexpected_dtyper=   s           r   Útest_cython_agg_EA_known_dtypesrë   T  s^  € ñ: Ü—%‘%ˆˆQ‰ä	�‰Ò2¸4Ñ@Ó	A€BØ�j‰j˜Ó€Gà�ÒäŸ™›‰Ø	�;Ò	ä˜$Ÿ*™*Ô%Ø!ŸZ™Z‰NÜ˜dŸj™jÔ)à!ŸZ™Z‰NäŸ]™]›_‰NØ	�>Ò	!ä˜$Ÿ*™*Ô%Ø!ŸZ™Z‰NäŸ_™_Ó.‰NØ	�:Ò	ØŸ™ˆà&ŒW�W˜gÓ&Ó(€FØ�%‰=×Ñ .Ò0Ð0Ð0à×Ñ˜wÓ'€FØ�%‰=×Ñ .Ò0Ð0Ð0à-ŒW�W˜U‘^ WÓ-Ó/€FØ�<‰<˜>Ò)Ð)Ð)à�U‰^×%Ñ% gÓ.€FØ�<‰<˜>Ò)Ð)Ñ)r!   )(Ú__doc__Únumpyr#   r\   Úpandas.errorsr   Úpandas.core.dtypes.commonr   r   Úpandasr(   Úpandas._testingÚ_testingr/   ÚmarkÚparametrizerA   rN   rc   ri   rw   r€   r   r   r
   r   r   r   r   r“   r¤   r¯   Ú	TimestampÚ	Timedeltar³   rÉ   rØ   rÜ   rÒ   rë   rŸ   r!   r   ú<module>r÷      só  ðñó Û å (÷ó
 Ý ð ‡�×ÑØòóñ,óð,òB-ò,ò,
9ò)ò(-ð ‡�×ÑØà	�—‘ÐØ	�2—9‘9ÐØ	�—‘ˆØ	�—‘ˆØ	�—‘ÐØ	�—‘ˆØ	�—‘ˆØ	Ñ%Ð&Ø	Ñ%Ð&ð
óñ	,óð	,ð ‡�×ÑØà	�—‘ÐØ	ÑCÐDØ	Ñ+Ð,Ø	�—‘ˆØ	�—‘ˆðó	ñ,ó	ð,ò,ðB ‡�×Ñ˜Ò>Ó?Ø‡�×ÑØ
Ø€R‡\�\Ð+Ó,¨l¨b¯l©lÐ;TÓ.UÐVóñ	,ó	ó @ð
	,ð ‡�×ÑØ	òóñ2&ó3ð2&ð  ‡�×ÑØòóñ-óð-ð, ‡�×Ñ˜Ò"AÓBñ,ó Cð,ð ‡�×Ñ˜ T¨5 MÓ2Ø‡�×ÑØòóð" ‡�×ÑØ
àˆ�‰’ WÔ-Øˆ�‰’ VÔ,Øˆ�‰Ò%¨YÔ7Øˆ�‰Ò%¨YÔ7Øˆ�‰Ò+°9Ô=ðó	ñ&*ó	ó#ó 3ñ8&*r!   