Ë
    ÜÍ:jõk  ã                   óF  — d Z ddlZddlZddlZddlmZmZ ddlm	Z	m
Z
mZ ddlmZ ddlmZ ddlmZ ddlmZmZmZmZmZ dd	lmZ dd
lmZmZ ddlmZmZm Z  ddl!m"Z" ddl#m$Z$ ddl%m&Z& ddl'm(Z( ddl)m*Z* ddl+m,Z,m-Z-m.Z.m/Z/ ddl0m1Z1m2Z2 ddl3m4Z4m5Z5m6Z6  ejn                  «       Z8e8jr                  dd…dd…f   e8jt                  cZ;Z< e(«       j{                  e;«      Z> ej~                  d¬«      \  Z@ZAej„                  j‡                  ddg idfd e«       gidfdd e«       fgidfd e«       fgddgdœdfg«      d „ «       ZDd!„ ZEd"„ ZFd#„ ZGd$„ ZHd%„ ZId&„ ZJd'„ ZKd(„ ZLd)„ ZMd*„ ZNd+„ ZOd,„ ZPd-„ ZQd.„ ZRd/„ ZSd0„ ZTd1„ ZUej„                  j‡                  d2e;e< ed e«       fd3 ed4¬5«      fg«      fe@eA ed e«       fd3 ed4¬5«      fg«      fg«      d6„ «       ZVej„                  j‡                  d7 ed e«       fd8 e2d¬9«      fg¬:«       ed ed¬9«      fd8 e1d¬9«      fg¬:«      gd;d<g¬=«      d>„ «       ZWej„                  j‡                  d? ed e«       fd3 ed@¬9«      fgd¬A«       ed ed@¬9«      fd3 ed@¬9«      fgd¬A«      g«      dB„ «       ZXdC„ ZYej„                  j‡                  dDdEddFœg dG¢fdHdIidJdKgfg«      dL„ «       ZZdM„ Z[ej„                  j‡                  dNee,fee-fg«      dO„ «       Z\ej„                  j‡                  dNee,fee-fg«       ed¬P«      dQ„ «       «       Z]ej„                  j‡                  dNee,fee-fg«      ej„                  j‡                  dRdSdTg«       ed¬P«      dU„ «       «       «       Z^ej„                  j‡                  dNee,fee-fg«       ed¬P«      dV„ «       «       Z_y)Wz4Testing for the VotingClassifier and VotingRegressoré    N)Úconfig_contextÚdatasets)ÚBaseEstimatorÚClassifierMixinÚclone)ÚCalibratedClassifierCV)Úmake_multilabel_classification)ÚDummyRegressor)ÚGradientBoostingClassifierÚRandomForestClassifierÚRandomForestRegressorÚVotingClassifierÚVotingRegressor)ÚNotFittedError)ÚLinearRegressionÚLogisticRegression)ÚGridSearchCVÚcross_val_scoreÚtrain_test_split)ÚOneVsRestClassifier)Ú
GaussianNB)ÚKNeighborsClassifier)ÚStandardScaler)ÚSVC)ÚConsumingClassifierÚConsumingRegressorÚ	_RegistryÚcheck_recorded_metadata)ÚDecisionTreeClassifierÚDecisionTreeRegressor)Úassert_almost_equalÚassert_array_almost_equalÚassert_array_equalé   é   T)Ú
return_X_yzparams, err_msgÚ
estimatorszGInvalid 'estimators' attribute, 'estimators' should be a non-empty listéÕ   Úlré   )r'   Úweightsz0Number of `estimators` and weights must be equalc                 ó®   — t        di | ¤Ž}t        j                  t        |¬«      5  |j	                  t
        t        «       d d d «       y # 1 sw Y   y xY w)N©Úmatch© )r   ÚpytestÚraisesÚ
ValueErrorÚfitÚXÚy)ÚparamsÚerr_msgÚensembles      úw/home/mcse/projects/srt_converter/srt-converter-venv/lib/python3.12/site-packages/sklearn/ensemble/tests/test_voting.pyÚ%test_voting_classifier_estimator_initr:   2   sB   € ô,  Ñ) &Ñ)€HÜ	�‰”z¨Ô	1ñ Ø�‰”QœÔ÷÷ ñ ús   §AÁAc                  óÈ  — t        dt        «       fdt        «       fgd¬«      } d}d}t        j                  t        |¬«      5 }| j
                   d d d «       t        j                  j                  t        «      sJ ‚|t        |j                  j                  «      v sJ ‚t        | d«      rJ ‚| j                  t        t        «       t        | d«      rJ ‚y # 1 sw Y   Œ‰xY w)	NÚlr1Úlr2Úhard©r'   Úvotingú1predict_proba is not available when voting='hard'ú3'VotingClassifier' has no attribute 'predict_proba'r-   Úpredict_proba)r   r   r0   r1   ÚAttributeErrorrC   Ú
isinstanceÚvalueÚ	__cause__ÚstrÚhasattrr3   ÚX_scaledr5   )ÚeclfÚ	inner_msgÚ	outer_msgÚ	exec_infos       r9   Útest_predictproba_hardvotingrO   M   sÌ   € ÜØÔ.Ó0Ð1°EÔ;MÓ;OÐ3PÐQØô€Dð
 D€IØE€IÜ	�‰”~¨YÔ	7ð ¸9Ø×Ò÷ä�i—o‘o×/Ñ/´Ô@Ð@Ð@Øœ˜IŸO™O×5Ñ5Ó6Ñ6Ð6Ð6ä�t˜_Ô-Ð-Ð-Ø‡H�HŒX”qÔÜ�t˜_Ô-Ð-Ð-Ð-÷ð ús   ÁCÃC!c                  óJ  — t        dt        «       fdt        «       fgd¬«      } t        dt        «       fg«      }d}t	        j
                  t        |dz  ¬«      5  | j                  t        «       d d d «       t	        j
                  t        |dz  ¬«      5  | j                  t        «       d d d «       t	        j
                  t        |dz  ¬«      5  | j                  t        «       d d d «       t	        j
                  t        |d	z  ¬«      5  |j                  t        «       d d d «       t	        j
                  t        |d	z  ¬«      5  |j                  t        «       d d d «       y # 1 sw Y   ŒúxY w# 1 sw Y   ŒÊxY w# 1 sw Y   ŒšxY w# 1 sw Y   ŒjxY w# 1 sw Y   y xY w)
Nr<   r=   Úsoftr?   ÚdrzfThis %s instance is not fitted yet. Call 'fit' with appropriate arguments before using this estimator.r   r-   r   )r   r   r   r
   r0   r1   r   Úpredictr4   rC   Ú	transformÚX_r)rK   ÚeregÚmsgs      r9   Útest_notfittedrX   _   s\  € ÜØÔ.Ó0Ð1°EÔ;MÓ;OÐ3PÐQØô€Dô ˜T¤>Ó#3Ð4Ð5Ó6€Dð	Cð ô 
�‰”~¨SÐ3EÑ-EÔ	Fñ Ø�‰”QŒ÷ä	�‰”~¨SÐ3EÑ-EÔ	Fñ Ø×Ñœ1Ô÷ä	�‰”~¨SÐ3EÑ-EÔ	Fñ Ø�‰”qÔ÷ä	�‰”~¨SÐ3DÑ-DÔ	Eñ Ø�‰”SÔ÷ä	�‰”~¨SÐ3DÑ-DÔ	Eñ Ø�‰”sÔ÷ð ÷ð ú÷ð ú÷ð ú÷ð ú÷ð ús<   ÁE)ÂE5ÃFÄFÅ
FÅ)E2Å5E>ÆF
ÆFÆF"c                 óÎ   — t        | ¬«      }t        d| ¬«      }t        «       }t        d|fd|fd|fgd¬«      }t	        |t
        t        d	¬
«      }|j                  «       dk\  sJ ‚y)z7Check classification by majority label on dataset iris.©Úrandom_stateé
   ©Ún_estimatorsr[   r)   ÚrfÚgnbr>   r?   Úaccuracy©ÚscoringçÍÌÌÌÌÌì?N)r   r   r   r   r   r4   r5   Úmean©Úglobal_random_seedÚclf1Úclf2Úclf3rK   Úscoress         r9   Útest_majority_label_irisrl   u   si   € äÐ+=Ô>€DÜ!¨rÐ@RÔS€DÜ‹<€DÜØ˜4�L 4¨ ,°¸°Ð>Àvô€Dô ˜T¤1¤a°Ô<€Fà�;‰;‹=˜CÒÐÑó    c                  ó˜  — t        d¬«      } t        d¬«      }t        d| fd|fgd¬«      }| j                  t        t
        «      j                  t        «      d   dk(  sJ ‚|j                  t        t
        «      j                  t        «      d   d	k(  sJ ‚|j                  t        t
        «      j                  t        «      d   d	k(  sJ ‚y
)zECheck voting classifier selects smaller class label in tie situation.é{   rZ   r)   r_   r>   r?   é4   r*   r$   N)r   r   r   r3   r4   r5   rS   )rh   ri   rK   s      r9   Útest_tie_situationrq   ‚   s§   € ä¨3Ô/€DÜ!¨sÔ3€DÜ¨¨t¨°t¸T°lÐ'CÈFÔS€DØ�8‰8”A”q‹>×!Ñ!¤!Ó$ RÑ(¨AÒ-Ð-Ð-Ø�8‰8”A”q‹>×!Ñ!¤!Ó$ RÑ(¨AÒ-Ð-Ð-Ø�8‰8”A”q‹>×!Ñ!¤!Ó$ RÑ(¨AÒ-Ð-Ñ-rm   c                 óÔ   — t        | ¬«      }t        d| ¬«      }t        «       }t        d|fd|fd|fgdg d¢¬	«      }t	        |t
        t        d
¬«      }|j                  «       dk\  sJ ‚y)z>Check classification by average probabilities on dataset iris.rZ   r\   r]   r)   r_   r`   rQ   ©r$   r*   r\   ©r'   r@   r+   ra   rb   rd   N)r   r   r   r   r   rJ   r5   re   rf   s         r9   Útest_weights_irisru   Œ   sm   € äÐ+=Ô>€DÜ!¨rÐ@RÔS€DÜ‹<€DÜØ˜4�L 4¨ ,°¸°Ð>ØÚô€Dô
 ˜T¤8¬Q¸
ÔC€FØ�;‰;‹=˜CÒÐÑrm   c                  ó<  — t        d¬«      } t        d¬«      }t        dd¬«      }t        d| fd|fd|fgg d¢¬«      }t        t        t        d	¬
«      \  }}}}| j                  ||«      j                  |«      }|j                  ||«      j                  |«      }	|j                  ||«      j                  |«      }
|j                  ||«      j                  |«      }t        j                  t        j                  ||	|
g«      dg d¢¬«      }t        ||d¬«       t        d| fd|fd|fgd¬«      }t        d| fd|fd|fgg d¢¬«      }|j                  ||«       |j                  ||«       |j                  |«      }|j                  |«      }t        ||d¬«       y)zACheck weighted average regression prediction on diabetes dataset.re   )ÚstrategyÚmedianÚquantileçš™™™™™É?)rw   ry   rs   )r+   g      Ð?)Ú	test_sizer   )Úaxisr+   r*   ©ÚdecimalN©r$   r$   r$   )r
   r   r   rU   Úy_rr3   rS   ÚnpÚaverageÚasarrayr!   )Úreg1Úreg2Úreg3rV   Ú	X_r_trainÚX_r_testÚ	y_r_trainÚy_r_testÚ	reg1_predÚ	reg2_predÚ	reg3_predÚ	ereg_predÚavgÚereg_weights_noneÚereg_weights_equalÚereg_none_predÚereg_equal_preds                    r9   Útest_weights_regressorr”   š   sž  € ä 6Ô*€DÜ 8Ô,€DÜ :¸Ô<€DÜØ
�$ˆ˜( DÐ)¨J¸Ð+=Ð>Ê
ô€Dô 0@ÜŒS˜Dô0Ñ,€Iˆx˜ Hð —‘˜ IÓ.×6Ñ6°xÓ@€IØ—‘˜ IÓ.×6Ñ6°xÓ@€IØ—‘˜ IÓ.×6Ñ6°xÓ@€IØ—‘˜ IÓ.×6Ñ6°xÓ@€Iä
�*‰*Ü
�
‰
�I˜y¨)Ð4Ó5¸AÂzô€Cô ˜	 3°Õ2ä'Ø
�$ˆ˜( DÐ)¨J¸Ð+=Ð>ÈôÐô )Ø
�$ˆ˜( DÐ)¨J¸Ð+=Ð>Ê	ôÐð ×Ñ˜) YÔ/Ø×Ñ˜9 iÔ0Ø&×.Ñ.¨xÓ8€NØ(×0Ñ0°Ó:€OÜ˜¨ÀÖCrm   c           	      óì  — t        | ¬«      }t        d| ¬«      }t        «       }t        j                  ddgddgdd	gd
dgddgddgg«      }t        j                  g d¢«      }t        |j                  ||«      j                  |«      g d¢«       t        |j                  ||«      j                  |«      g d¢«       t        |j                  ||«      j                  |«      g d¢«       t        d|fd|fd|fgdg d¢¬«      }t        |j                  ||«      j                  |«      g d¢«       t        d|fd|fd|fgdg d¢¬«      }t        |j                  ||«      j                  |«      g d¢«       y)z6Manually check predicted class labels for toy dataset.rZ   r\   r]   çš™™™™™ñ¿ç      ø¿ç333333ó¿çffffffö¿ç333333Àçš™™™™™Àçš™™™™™ñ?ç333333ó?gÍÌÌÌÌÌ @gffffffö?gÍÌÌÌÌÌ@gffffff@)r$   r$   r$   r*   r*   r*   r)   r_   r`   r>   r   rt   rQ   N)	r   r   r   r�   Úarrayr#   r3   rS   r   )rg   rh   ri   rj   r4   r5   rK   s          r9   Útest_predict_on_toy_problemrŸ   ¾   sY  € äÐ+=Ô>€DÜ!¨rÐ@RÔS€DÜ‹<€Dä
�‰Ø
�ˆ˜˜d�| d¨D \°C¸°:ÀÀS¸zÈCÐQTÈ:ÐVó	€Aô 	�‰Ò#Ó$€Aä�t—x‘x  1“~×-Ñ-¨aÓ0Ò2DÔEÜ�t—x‘x  1“~×-Ñ-¨aÓ0Ò2DÔEÜ�t—x‘x  1“~×-Ñ-¨aÓ0Ò2DÔEäØ˜4�L 4¨ ,°¸°Ð>ØÚô€Dô
 �t—x‘x  1“~×-Ñ-¨aÓ0Ò2DÔEäØ˜4�L 4¨ ,°¸°Ð>ØÚô€Dô
 �t—x‘x  1“~×-Ñ-¨aÓ0Ò2DÕErm   c                  óú  — t        d¬«      } t        d¬«      }t        «       }t        j                  ddgddgddgd	d
gg«      }t        j                  g d¢«      }t        j                  ddgddgddgddgg«      }t        j                  ddgddgddgddgg«      }t        j                  ddgddgddgddgg«      }d|d   d   z  |d   d   z   |d   d   z   d z  }d|d!   d!   z  |d!   d!   z   |d!   d!   z   d z  }	d|d   d!   z  |d   d!   z   |d   d!   z   d z  }
d|d"   d!   z  |d"   d!   z   |d"   d!   z   d z  }t        d#| fd$|fd%|fgd&g d'¢¬(«      }|j                  ||«      j                  |«      }t        ||d   d   d!¬)«       t        |	|d!   d!   d!¬)«       t        |
|d   d!   d!¬)«       t        ||d"   d!   d!¬)«       d*}d+}t        j                  t        |¬,«      5 }t        d#| fd$|fd%|fgd-¬.«      }|j                  ||«      j                  |«       d/d/d/«       t        j                  j                  t        «      sJ ‚|t        |j                  j                  «      v sJ ‚y/# 1 sw Y   ŒSxY w)0z1Calculate predicted probabilities on toy dataset.ro   rZ   r–   r—   r˜   r™   rš   r›   rœ   r�   ©r$   r$   r*   r*   g…7sa"ã?gö�=ñ»Ù?g�½¤Rhpâ?gâ„¶Z/Û?glç^Ô¬;à?g(1BW¦ˆß?gµU(V6ÁÙ?g&ÕëÔdã?gš™™™™™é?rz   ç333333Ó?çffffffæ?gá5ùwÇóï?g9=”qX?gè_óï?g$ö/ÐAY?ç        ç      ð?r*   r   é   r$   r%   r)   r_   r`   rQ   )r*   r$   r$   rt   r}   rA   rB   r-   r>   r?   N)r   r   r   r�   rž   r   r3   rC   r!   r0   r1   rD   rE   rF   rG   rH   )rh   ri   rj   r4   r5   Úclf1_resÚclf2_resÚclf3_resÚt00Út11Út21Út31rK   Úeclf_resrL   rM   rN   s                    r9   Ú!test_predict_proba_on_toy_problemr¯   Ý   sÖ  € ä¨3Ô/€DÜ!¨sÔ3€DÜ‹<€DÜ
�‰�4˜�,  t ¨t°T¨l¸SÀ#¸JÐGÓH€AÜ
�‰’Ó€Aä�x‰xà˜Ð$Ø˜Ð$Ø˜Ð$Ø˜Ð$ð		
ó€Hô �x‰x˜#˜s˜ c¨3 Z°#°s°¸cÀ3¸ZÐHÓI€Hä�x‰xØ
�YÐ	 *¨jÐ!9¸CÀ¸:ÈÈSÀzÐRó€Hð ˆx˜‰{˜1‰~Ñ ¨¡¨A¡Ñ.°¸!±¸Q±Ñ?À1Ñ
D€CØˆx˜‰{˜1‰~Ñ ¨¡¨A¡Ñ.°¸!±¸Q±Ñ?À1Ñ
D€CØˆx˜‰{˜1‰~Ñ ¨¡¨A¡Ñ.°¸!±¸Q±Ñ?À1Ñ
D€CØˆx˜‰{˜1‰~Ñ ¨¡¨A¡Ñ.°¸!±¸Q±Ñ?À1Ñ
D€CäØ˜4�L 4¨ ,°¸°Ð>ØÚô€Dð
 �x‰x˜˜1‹~×+Ñ+¨AÓ.€Hä˜˜X a™[¨™^°QÕ7Ü˜˜X a™[¨™^°QÕ7Ü˜˜X a™[¨™^°QÕ7Ü˜˜X a™[¨™^°QÕ7àC€IØE€IÜ	�‰”~¨YÔ	7ð (¸9ÜØ˜t˜ t¨T l°U¸D°MÐBÈ6ô
ˆð 	�‰��A‹×$Ñ$ QÔ'÷	(ô �i—o‘o×/Ñ/´Ô@Ð@Ð@Øœ˜IŸO™O×5Ñ5Ó6Ñ6Ð6Ñ6÷(ð (ús   Ç'8I1É1I:c                  ó¶   — t        dddd¬«      \  } }t        t        d¬«      «      }t        d|fgd	¬
«      }	 |j	                  | |«       y# t
        $ r Y yw xY w)z7Check if error is raised for multilabel classification.r*   r$   Fro   )Ú	n_classesÚn_labelsÚallow_unlabeledr[   Úlinear)ÚkernelÚovrr>   r?   N)r	   r   r   r   r3   ÚNotImplementedError)r4   r5   ÚclfrK   s       r9   Útest_multilabelr¹     s`   € ä)Ø˜a°ÀSô�D€A€qô œc¨Ô2Ó
3€Cä¨°¨ ~¸fÔE€DðØ�‰��A�øÜò Ùðús   ¹A Á	AÁAc                  óæ   — t        d¬«      } t        dd¬«      }t        «       }t        d| fd|fd|fgd¬	«      }d
dgddgg d¢g d¢gdœ}t	        ||d¬«      }|j                  t        t        «       y)zCheck GridSearch support.r$   rZ   r%   )r[   r^   r)   r_   r`   rQ   r?   r¥   g      Y@r>   )ç      à?r»   r»   )r¥   r»   r»   )Úlr__Cr@   r+   r*   )Ú	estimatorÚ
param_gridÚcvN)r   r   r   r   r   r3   rJ   r5   )rh   ri   rj   rK   r6   Úgrids         r9   Útest_gridsearchrÁ      s   € ä¨1Ô-€DÜ!¨q¸qÔA€DÜ‹<€DÜØ˜4�L 4¨ ,°¸°Ð>Àvô€Dð
 �u�Ø˜6Ð"Ú#¢_Ð5ñ€Fô  $°6¸aÔ@€DØ‡H�HŒX”qÕrm   c                 óþ  — t        | ¬«      }t        d| ¬«      }t        «       }t        j                  ddgddgdd	gd
dgg«      }t        j                  g d¢«      }t        d|fd|fd|fgdd¬«      j                  ||«      }t        d|fd|fd|fgdd¬«      j                  ||«      }t        |j                  |«      |j                  |«      «       t        |j                  |«      |j                  |«      «       y)z:Check parallel backend of VotingClassifier on toy dataset.rZ   r\   r]   r–   r—   r˜   r™   rš   r›   rœ   r�   r¡   r)   r_   r`   rQ   r$   )r'   r@   Ún_jobsr*   N)r   r   r   r�   rž   r   r3   r#   rS   r"   rC   )rg   rh   ri   rj   r4   r5   Úeclf1Úeclf2s           r9   Útest_parallel_fitrÆ   3  sü   € äÐ+=Ô>€DÜ!¨rÐ@RÔS€DÜ‹<€DÜ
�‰�4˜�,  t ¨t°T¨l¸SÀ#¸JÐGÓH€AÜ
�‰’Ó€AäØ˜4�L 4¨ ,°¸°Ð>ÀvÐVWôç	�cˆ!ˆQƒið 
ô Ø˜4�L 4¨ ,°¸°Ð>ÀvÐVWôç	�cˆ!ˆQƒið 
ô �u—}‘} QÓ'¨¯©°qÓ)9Ô:Ü˜e×1Ñ1°!Ó4°e×6IÑ6IÈ!Ó6LÕMrm   c           	      ó¤  — t        | ¬«      }t        d| ¬«      }t        t        | ¬«      d¬«      }t	        d|fd|fd|fgd	¬
«      j                  t        t        t        j                  t        t        «      f«      ¬«      }t	        d|fd|fd|fgd	¬
«      j                  t        t        «      }t        |j                  t        «      |j                  t        «      «       t        |j                  t        «      |j                  t        «      «       t        j                  j!                  | «      j#                  t        t        «      f¬«      }t	        d|fgd	¬
«      }|j                  t        t        |¬«       |j                  t        t        |«       t        |j                  t        «      |j                  t        «      «       t        |j                  t        «      |j                  t        «      «       t%        «       }t	        d|fd|fd|fgd	¬
«      }d}	t'        j(                  t*        |	¬«      5  |j                  t        t        |¬«       ddd«        G d„ dt,        t.        «      }
 |
«       }t'        j(                  t*        d¬«      5  |j                  t        t        |¬«       ddd«       y# 1 sw Y   ŒexY w# 1 sw Y   yxY w)z1Tests sample_weight parameter of VotingClassifierrZ   r\   r]   F)r8   r)   ÚgbdtÚsvcrQ   r?   ©Úsample_weight)ÚsizeÚknnzJUnderlying estimator KNeighborsClassifier does not support sample weights.r-   Nc                   ó   — e Zd Zd„ Zy)ú.test_sample_weight.<locals>.ClassifierErrorFitc                 ó   — t        d«      ‚)Nz!Error unrelated to sample_weight.)Ú	TypeError)ÚselfrJ   r5   rË   s       r9   r3   z2test_sample_weight.<locals>.ClassifierErrorFit.fitk  s   € ÜÐ?Ó@Ð@rm   N)Ú__name__Ú
__module__Ú__qualname__r3   r/   rm   r9   ÚClassifierErrorFitrÏ   j  s   „ ó	Arm   rÖ   z Error unrelated to sample_weight)r   r   r   r   r   r3   rJ   r5   r�   ÚonesÚlenr#   rS   r"   rC   ÚrandomÚRandomStateÚuniformr   r0   r1   rÑ   r   r   )rg   rh   ri   rj   rÄ   rÅ   rË   Úeclf3Úclf4rW   rÖ   r¸   s               r9   Útest_sample_weightrÞ   F  sB  € äÐ+=Ô>€DÜ%°2ÐDVÔW€DÜ!¤#Ð3EÔ"FÐQVÔW€DÜØ˜4�L 6¨4 .°5¸$°-Ð@Èôç	�cŒ(”A¤R§W¡W¬c´!«f¨YÓ%7€cÓ8ð 
ô Ø˜4�L 6¨4 .°5¸$°-Ð@Èôç	�cŒ(”AÓð 
ô �u—}‘}¤XÓ.°·±¼hÓ0GÔHÜØ×ÑœHÓ% u×':Ñ':¼8Ó'Dôô —I‘I×)Ñ)Ð*<Ó=×EÑEÌCÔPQËFÈ9ÐEÓU€MÜ¨$°¨¨¸vÔF€EØ	‡I�IŒhœ¨€IÔ7Ø‡H�HŒX”q˜-Ô(Ü�u—}‘}¤XÓ.°·±¼XÓ0FÔGÜØ×ÑœHÓ% t×'9Ñ'9¼(Ó'Côô  Ó!€DÜØ˜4�L 5¨$ -°%¸°Ð?Èô€Eð W€CÜ	�‰”y¨Ô	,ñ <Ø�	‰	”(œA¨]ˆ	Ô;÷<ô
Aœ_¬mô Añ Ó
€CÜ	�‰”yÐ(JÔ	Kñ :Ø�‰”œ!¨=ˆÔ9÷:ð :÷<ð <ú÷:ð :ús   È9J:ÊKÊ:KËKc            	      óÔ   —  G d„ dt         t        «      }  | «       }t        d|fgd¬«      }|j                  t        t
        t        j                  t        t
        «      f«      ¬«       y)z:Check that VotingClassifier passes sample_weight as kwargsc                   ó   — e Zd ZdZd„ Zy)ú1test_sample_weight_kwargs.<locals>.MockClassifierzAMock Classifier to check that sample_weight is received as kwargsc                 ó   — d|v sJ ‚y )NrË   r/   )rÒ   r4   r5   ÚargsrË   s        r9   r3   z5test_sample_weight_kwargs.<locals>.MockClassifier.fity  s   € Ø" mÑ3Ð3Ñ3rm   N)rÓ   rÔ   rÕ   Ú__doc__r3   r/   rm   r9   ÚMockClassifierrá   v  s
   „ ÙOó	4rm   rå   ÚmockrQ   r?   rÊ   N)	r   r   r   r3   r4   r5   r�   r×   rØ   )rå   r¸   rK   s      r9   Útest_sample_weight_kwargsrç   s  sO   € ô4œ¬-ô 4ñ Ó
€CÜ¨°¨ ¸vÔF€Dð 	‡H�HŒQ”¤§¡¬#¬a«&¨Ó!3€HÕ4rm   c                 ó¼  — t        | ¬«      }t        d| d ¬«      }t        «       }t        d|fd|fgdddg¬	«      j	                  t
        t        «      }t        d|fd
|fgdddg¬	«      }|j                  |¬«      j	                  t
        t        «       t        |j                  t
        «      |j                  t
        «      «       t        |j                  t
        «      |j                  t
        «      «       |j                  d   d   j                  «       |j                  «       k(  sJ ‚|j                  d   d   j                  «       |j                  «       k(  sJ ‚y )NrZ   r\   )r^   r[   Ú	max_depthr)   r_   rQ   r$   r*   )r@   r+   Únb)rê   r   )r   r   r   r   r3   rJ   r5   Ú
set_paramsr#   rS   r"   rC   r'   Ú
get_params)rg   rh   ri   rj   rÄ   rÅ   s         r9   Ú!test_voting_classifier_set_paramsrí   ƒ  s:  € äÐ+=Ô>€DÜ!ØÐ&8ÀDô€Dô ‹<€DäØ
�ˆ˜˜d�|Ð$¨V¸aÀ¸Vôç	�cŒ(”AÓð 
ô Ø
�ˆ˜˜d�|Ð$¨V¸aÀ¸Vô€Eð 
×Ñ˜ÐÓ×!Ñ!¤(¬AÔ.ä�u—}‘}¤XÓ.°·±¼hÓ0GÔHÜØ×ÑœHÓ% u×':Ñ':¼8Ó'Dôð ×Ñ˜AÑ˜qÑ!×,Ñ,Ó.°$·/±/Ó2CÒCÐCÐCØ×Ñ˜AÑ˜qÑ!×,Ñ,Ó.°$·/±/Ó2CÒCÐCÑCrm   c            	      ó´  — t        d¬«      } t        dd¬«      }t        «       }t        d| fd|fd|fgdg d	¢¬
«      j	                  t
        t        «      }t        d| fd|fd|fgdg d¢¬
«      }|j                  d¬«      j	                  t
        t        «       t        |j                  t
        «      |j                  t
        «      «       t        |j                  «      d   dk(  sJ ‚t        |j                  «      dk(  sJ ‚t        d„ |j                  D «       «      sJ ‚|j                  «       d   dk(  sJ ‚|j                  d¬«      j	                  t
        t        «       |j                  d¬«      j	                  t
        t        «       t        |j                  t
        «      |j                  t
        «      «       t!        |j#                  t
        «      |j#                  t
        «      «       d}t%        j&                  t(        |¬«      5  |j                  ddd¬«      j	                  t
        t        «       d d d «       t+        j,                  dgdgg«      }t+        j,                  ddg«      }t        d|fd|fgdddgd¬«      j	                  ||«      }t        d|fd|fgdddgd¬«      }|j                  d¬«      j	                  ||«       t!        |j/                  |«      t+        j,                  ddgddggddgddggg«      «       t!        |j/                  |«      t+        j,                  ddgddggg«      «       |j                  d¬«       |j                  d¬«       t        |j/                  |«      t+        j,                  ddgddgg«      «       t        |j/                  |«      t+        j,                  dgdgg«      «       y # 1 sw Y   �Œ–xY w)Nro   rZ   r\   r]   r)   r_   rê   r>   )r$   r   r»   rt   )r$   r$   r»   Údrop)r_   r*   c              3   óH   K  — | ]  }t        |t        t        f«      –— Œ y ­w)N)rE   r   r   )Ú.0Úests     r9   ú	<genexpr>z*test_set_estimator_drop.<locals>.<genexpr>²  s"   è ø€ ò Ø>AŒ
�3Ô+¬ZÐ8×9ñùs   ‚ "rQ   )r@   z4All estimators are dropped. At least one is requiredr-   )r)   r_   rê   r$   r   r»   F)r'   r@   r+   Úflatten_transformr£   r¢   r¥   r¤   )r   r   r   r   r3   r4   r5   rë   r#   rS   Údictr'   rØ   Úestimators_Úallrì   r"   rC   r0   r1   r2   r�   rž   rT   )rh   ri   rj   rÄ   rÅ   rW   ÚX1Úy1s           r9   Útest_set_estimator_droprú   ›  s‚  € ô ¨3Ô/€DÜ!¨rÀÔD€DÜ‹<€DÜØ˜4�L 4¨ ,°°t°Ð=ØÚô÷ 
�cŒ!ŒQƒið	 
ô Ø˜4�L 4¨ ,°°t°Ð=ØÚô€Eð
 
×Ñ˜ÐÓ×#Ñ#¤A¤qÔ)ä�u—}‘}¤QÓ'¨¯©´qÓ)9Ô:ä�× Ñ Ó! $Ñ'¨6Ò1Ð1Ð1Üˆu× Ñ Ó! QÒ&Ð&Ð&Üñ ØEJ×EVÑEVôô ð ð ð ×ÑÓ˜dÑ# vÒ-Ð-Ð-à	×Ñ˜FÐÓ#×'Ñ'¬¬1Ô-Ø	×Ñ˜FÐÓ#×'Ñ'¬¬1Ô-ä�u—}‘}¤QÓ'¨¯©´qÓ)9Ô:Ü˜e×1Ñ1´!Ó4°e×6IÑ6IÌ!Ó6LÔMØ
@€CÜ	�‰”z¨Ô	-ñ DØ×Ñ˜F v°&ÐÓ9×=Ñ=¼aÄÔC÷Dô 
�‰�A�3˜˜�*Ó	€BÜ	�‰�1�a�&Ó	€BÜØ˜4�L 4¨ ,Ð/ØØ�C�Øô	÷
 
�cˆ"ˆbƒkð 
ô Ø˜4�L 4¨ ,Ð/ØØ�C�Øô	€Eð 
×Ñ˜ÐÓ×#Ñ# B¨Ô+ÜØ�‰˜ÓÜ
�‰�C˜�:  S˜zÐ*¨c°3¨Z¸#¸s¸Ð,DÐEÓFôô ˜eŸo™o¨bÓ1´2·8±8¸sÀC¸jÈ3ÐPSÈ*Ð=UÐ<VÓ3WÔXØ	×Ñ˜FÐÔ#Ø	×Ñ˜FÐÔ#Ü�u—‘ rÓ*¬B¯H©H°q¸!°f¸qÀ!¸fÐ5EÓ,FÔGÜ�u—‘ rÓ*¬B¯H©H°q°c¸A¸3°ZÓ,@ÕA÷9Dñ Dús   È-OÏOc                 ó|  — t        | ¬«      }t        d| ¬«      }t        d|fd|fgddgd¬	«      }t        d|fd|fgt        j                  d
«      d¬	«      }|j                  t        t        «       |j                  t        t        «       t        |j                  t        «      |j                  t        «      «       y )NrZ   r\   r]   r)   r_   r$   r*   rQ   )r'   r+   r@   )r$   r*   )
r   r   r   r�   rž   r3   rJ   r5   r"   rC   )rg   rh   ri   rÄ   rÅ   s        r9   Útest_estimator_weights_formatrü   Ü  s§   € äÐ+=Ô>€DÜ!¨rÐ@RÔS€DÜØ˜4�L 4¨ ,Ð/¸!¸Q¸Èô€Eô Ø˜4�L 4¨ ,Ð/¼¿¹À&Ó9IÐRXô€Eð 
‡I�IŒhœÔØ	‡I�IŒhœÔÜØ×ÑœHÓ% u×':Ñ':¼8Ó'Dõrm   c                 óf  — t        | ¬«      }t        d| ¬«      }t        «       }t        j                  ddgddgdd	gd
dgg«      }t        j                  g d¢«      }t        d|fd|fd|fgd¬«      j                  ||«      }t        d|fd|fd|fgdd¬«      j                  ||«      }t        d|fd|fd|fgdd¬«      j                  ||«      }t        |j                  |«      j                  d«       t        |j                  |«      j                  d«       t        |j                  |«      j                  d«       t        |j                  |«      |j                  |«      «       t        |j                  |«      j                  dd«      j                  d«      |j                  |«      «       y)z:Check transform method of VotingClassifier on toy dataset.rZ   r\   r]   r–   r—   r˜   r™   rš   r›   rœ   r�   r¡   r)   r_   r`   rQ   r?   T©r'   r@   rô   F)r¦   é   )r%   r¦   r*   r   r$   N)r   r   r   r�   rž   r   r3   r#   rT   Úshaper"   ÚswapaxesÚreshape)	rg   rh   ri   rj   r4   r5   rÄ   rÅ   rÜ   s	            r9   Útest_transformr  í  s–  € äÐ+=Ô>€DÜ!¨rÐ@RÔS€DÜ‹<€DÜ
�‰�4˜�,  t ¨t°T¨l¸SÀ#¸JÐGÓH€AÜ
�‰’Ó€AäØ˜4�L 4¨ ,°¸°Ð>Àvôç	�cˆ!ˆQƒið 
ô Ø˜4�L 4¨ ,°¸°Ð>ØØô÷ 
�cˆ!ˆQƒið	 
ô
 Ø˜4�L 4¨ ,°¸°Ð>ØØô÷ 
�cˆ!ˆQƒið	 
ô �u—‘ qÓ)×/Ñ/°Ô8Ü�u—‘ qÓ)×/Ñ/°Ô8Ü�u—‘ qÓ)×/Ñ/°Ô;Ü˜eŸo™o¨aÓ0°%·/±/À!Ó2DÔEÜØ�‰˜Ó×#Ñ# A qÓ)×1Ñ1°&Ó9¸5¿?¹?È1Ó;Mõrm   zX, y, voterr_   é   )r^   c                 óŒ  — t        |«      }t        «       j                  | «      }|j                  ||t	        j
                  |j                  «      ¬«       |j                  d¬«       |j                  ||t	        j
                  |j                  «      ¬«       |j                  |«      }|j                  |j                  k(  sJ ‚y )NrÊ   rï   )r)   )	r   r   Úfit_transformr3   r�   r×   r   rë   rS   )r4   r5   ÚvoterrJ   Úy_preds        r9   Ú test_none_estimator_with_weightsr	    s“   € ô: �%‹L€EäÓ×-Ñ-¨aÓ0€HØ	‡I�Iˆh˜¬¯©°·±Ó)9€IÔ:Ø	×Ñ˜ÐÔØ	‡I�Iˆh˜¬¯©°·±Ó)9€IÔ:Ø�]‰]˜8Ó$€FØ�<‰<˜1Ÿ7™7Ò"Ð"Ñ"rm   rò   ÚtreerZ   ©r'   r   r   )Úidsc                 óš   — t        | «      } ddgddgddgg}g d¢}t        | d«      rJ ‚| j                  ||«       | j                  dk(  sJ ‚y )	Nr$   r*   r%   r¦   r  rÿ   ©r   r$   r*   Ún_features_in_)r   rI   r3   r  )rò   r4   r5   s      r9   Útest_n_features_inr  3  s\   € ô& �‹*€CØ
ˆQˆ�!�Q�˜!˜Q˜Ð €AÚ€Aä�sÐ,Ô-Ð-Ð-Ø‡G�GˆAˆq„MØ×Ñ Ò"Ð"Ñ"rm   r½   ro   )r'   Úverbosec                 ó   — t        j                  ddgddgddgddgg«      }t        j                  g d	¢«      }d
}t        | «      j                  ||«       t	        j
                  ||j                  «       d   «      sJ ‚y )Nr–   r—   r˜   r™   rš   r›   rœ   r�   r¡   za\[Voting\].*\(1 of 2\) Processing lr, total=.*\n\[Voting\].*\(2 of 2\) Processing rf, total=.*\n$r   )r�   rž   r   r3   Úrer.   Ú
readouterr)r½   Úcapsysr4   r5   Úpatterns        r9   Útest_voting_verboser  O  s|   € ô( 	�‰�4˜�,  t ¨t°T¨l¸SÀ#¸JÐGÓH€AÜ
�‰’Ó€Að	=ð ô 
ˆ)Ó×Ñ˜˜AÔÜ�8‰8�G˜V×.Ñ.Ó0°Ñ3Ô4Ð4Ñ4rm   c                  óÐ   — ddgddgddgg} g d¢}t        dt        «       fd	t        d
¬«      fdg¬«      }|j                  | |«       |j	                  «       }ddg}t        ||«       y)z1Check get_feature_names_out output for regressor.r$   r*   r%   r¦   r  rÿ   r  r)   r
  r   rZ   )Úignorerï   r  Úvotingregressor_lrÚvotingregressor_treeN)r   r   r    r3   Úget_feature_names_outr#   )r4   r5   r@   Ú	names_outÚexpected_namess        r9   Ú%test_get_features_names_out_regressorr  n  s€   € ð ˆQˆ�!�Q�˜!˜Q˜Ð €AÚ€AäàÔ#Ó%Ð&ØÔ*¸Ô:Ð;Øð
ô€Fð ‡J�Jˆq�!Ôà×,Ñ,Ó.€IØ*Ð,BÐC€NÜ�y .Õ1rm   zkwargs, expected_namesrQ   )r@   rô   )Úvotingclassifier_lr0Úvotingclassifier_lr1Úvotingclassifier_lr2Úvotingclassifier_tree0Úvotingclassifier_tree1Úvotingclassifier_tree2r@   r>   Úvotingclassifier_lrÚvotingclassifier_treec           	      ó.  — ddgddgddgddgg}g d¢}t        dd	d
t        d¬«      fdt        d¬«      fgi| ¤Ž}|j                  ||«       |j	                  |«      }|j                  «       }|j                  d   t        |«      k(  sJ ‚t        ||«       y)zBCheck get_feature_names_out for classifier for different settings.r$   r*   r%   r¦   r  rÿ   r�   )r   r$   r*   r   r'   r)   r   rZ   r
  Nr/   )	r   r   r   r3   rT   r  r   rØ   r#   )Úkwargsr  r4   r5   r@   ÚX_transr  s          r9   Ú&test_get_features_names_out_classifierr+  ‚  sµ   € ð& ˆQˆ�!�Q�˜!˜Q˜ ! S Ð*€AÚ€Aäñ àÔ%°1Ô5Ð6ØÔ+¸Ô;Ð<ð
ðð
 ñ€Fð ‡J�Jˆq�!ÔØ×Ñ˜qÓ!€GØ×,Ñ,Ó.€Ià�=‰=˜Ñœs >Ó2Ò2Ð2Ð2Ü�y .Õ1rm   c                  ó  — ddgddgddgg} g d¢}t        dt        d	¬
«      fdt        d	¬
«      fgdd¬«      }|j                  | |«       d}t	        j
                  t        |¬«      5  |j                  «        ddd«       y# 1 sw Y   yxY w)zJCheck that error is raised when voting="soft" and flatten_transform=False.r$   r*   r%   r¦   r  rÿ   r  r)   r   rZ   r
  rQ   Frþ   zYget_feature_names_out is not supported when `voting='soft'` and `flatten_transform=False`r-   N)r   r   r   r3   r0   r1   r2   r  )r4   r5   r@   rW   s       r9   Ú,test_get_features_names_out_classifier_errorr-  §  s�   € à
ˆQˆ�!�Q�˜!˜Q˜Ð €AÚ€AäàÔ%°1Ô5Ð6ØÔ+¸Ô;Ð<ð
ð Øô€Fð ‡J�Jˆq�!Ôð	$ð ô 
�‰”z¨Ô	-ñ 'Ø×$Ñ$Ô&÷'÷ 'ñ 'ús   Á'BÂB
zEstimator, Childc                 óð   — t        j                  ddgddgddgg«      }g d¢}t        j                  t        d¬«      5   | d	 |«       g«      j                  ||g d
¢d¬«       ddd«       y# 1 sw Y   yxY w)z�Test that the right error message is raised when metadata is passed while
    not supported when `enable_metadata_routing=False`.r   r$   r*   r¦   rÿ   ©r$   r*   r%   z1is only supported if enable_metadata_routing=Truer-   r¸   r   Úa©rË   ÚmetadataN)r�   rž   r0   r1   r2   r3   )Ú	EstimatorÚChildr4   r5   s       r9   Ú*test_routing_passed_metadata_not_supportedr5  Â  s{   € ô 	�‰�1�a�&˜1˜a˜& 1 a &Ð)Ó*€AÚ€Aä	�‰ÜÐMô
ñ Uñ 	�5™%›'Ð"Ó#×'Ñ'¨¨1ºIÐPSÐ'ÔT÷U÷ Uñ Uús   ¾%A,Á,A5)Úenable_metadata_routingc                 óD   —  | d |«       fg«      }|j                  «        y )NÚsub_est)Úget_metadata_routing)r3  r4  rò   s      r9   Ú%test_get_metadata_routing_without_fitr:  Ó  s$   € ñ �i¡£Ð)Ð*Ó
+€CØ×ÑÕrm   ÚproprË   r2  c           
      óÐ  — t        j                  ddgddgddgg«      }g d¢}g d¢d}} | d	  |t        «       ¬
«      j                  di |di¤Žfd  |t        «       ¬
«      j                  di |di¤Žfg«      } |j                  ||fi ||dk(  r|n|i¤Ž |j
                  D ]B  }|dk(  r||i}	n||i}	|d   j                  }
t        |
«      sJ ‚|
D ]  }t        d|dddœ|	¤Ž Œ ŒD y)z3Test that metadata is routed correctly for Voting*.r   r$   r*   r¦   rÿ   r/  r   r0  Úsub_est1)ÚregistryTÚsub_est2rË   r3   )ÚobjÚmethodÚparentNr/   )	r�   rž   r   Úset_fit_requestr3   r'   r>  rØ   r   )r3  r4  r;  r4   r5   rË   r2  rò   r½   r)  r>  r8  s               r9   Ú+test_metadata_routing_for_voting_estimatorsrD  Þ  s(  € ô 	�‰�1�a�&˜1˜a˜& 1 a &Ð)Ó*€AÚ€AÚ'¨�8€Má
ð Ø;‘œy›{Ô+×;Ñ;ÑK¸tÀT¸lÑKðð
 Ø;‘œy›{Ô+×;Ñ;ÑK¸tÀT¸lÑKðð		
ó€Cð €C‡G�GˆAˆqÑS�T¨D°OÒ,C™=ÈÐRÒSà—^‘^ò 	Wˆ	Ø�?Ò"Ø˜MÐ*‰Fà˜HÐ%ˆFà˜Q‘<×(Ñ(ˆÜ�8Œ}Ðˆ}Øò 	WˆGÜ#ÐV¨¸ÀeÑVÈvÓVñ	Wñ	Wrm   c                 óD  — t        j                  ddgddgddgg«      }g d¢}g d¢d}} | d	 |«       fg«      }d
|j                  › d�}t        j                  t
        t        j                  |«      ¬«      5  |j                  ||||¬«       ddd«       y# 1 sw Y   yxY w)zCTest that the right error is raised when metadata is not requested.r   r$   r*   r¦   rÿ   r/  r   r0  r8  zb[sample_weight, metadata] are passed but are not explicitly set as requested or not requested for z.fitr-   r1  N)	r�   rž   rÓ   r0   r1   r2   r  Úescaper3   )r3  r4  r4   r5   rË   r2  rò   Úerror_messages           r9   Ú1test_metadata_routing_error_for_voting_estimatorsrH    s¨   € ô 	�‰�1�a�&˜1˜a˜& 1 a &Ð)Ó*€AÚ€AÚ'¨�8€Má
�i¡£Ð)Ð*Ó
+€Cð	!Ø!&§¡Ð 0°ð	6ð ô
 
�‰”z¬¯©°=Ó)AÔ	Bñ FØ�‰��1 M¸HˆÔE÷F÷ Fñ Fús   Á7BÂB)`rä   r  Únumpyr�   r0   Úsklearnr   r   Úsklearn.baser   r   r   Úsklearn.calibrationr   Úsklearn.datasetsr	   Úsklearn.dummyr
   Úsklearn.ensembler   r   r   r   r   Úsklearn.exceptionsr   Úsklearn.linear_modelr   r   Úsklearn.model_selectionr   r   r   Úsklearn.multiclassr   Úsklearn.naive_bayesr   Úsklearn.neighborsr   Úsklearn.preprocessingr   Úsklearn.svmr   Ú%sklearn.tests.metadata_routing_commonr   r   r   r   Úsklearn.treer   r    Úsklearn.utils._testingr!   r"   r#   Ú	load_irisÚirisÚdataÚtargetr4   r5   r  rJ   Úload_diabetesrU   r€   ÚmarkÚparametrizer:   rO   rX   rl   rq   ru   r”   rŸ   r¯   r¹   rÁ   rÆ   rÞ   rç   rí   rú   rü   r  r	  r  r  r  r+  r-  r5  r:  rD  rH  r/   rm   r9   ú<module>rb     sô  ðÙ :ã 	ã Û ç ,ß >Ñ >Ý 6Ý ;Ý (÷õ õ .ß Eß SÑ SÝ 2Ý *Ý 2Ý 0Ý ÷ó ÷ G÷ñ ð €x×ÑÓ€Ø‡y�y’�A�a�C�Ñ˜$Ÿ+™+€€€1áÓ×)Ñ)¨!Ó,€à!ˆ8×!Ñ!¨TÔ2�€€Sð ‡�×ÑØð ˜2ÐØUð	
ð
 Ñ.Ó0Ð1Ð2ØUð	
ð
 ˜SÑ"4Ó"6Ð7Ð8Ð9ØUð	
ð
 "Ñ#5Ó#7Ð8Ð9ÀqÈ!ÀfÑMØ>ð	
ðóñ*ó+ð*ò.ò$ò,
 ò.ò ò!DòHFò>17òhòò&Nò&*:òZ5ò Dò0>BòBò"ð> ‡�×ÑØð ØÙàÑ-Ó/Ð0ØÑ1¸qÔAÐBðóð		
ð ØÙàÑ+Ó-Ð.ØÑ0¸aÔ@ÐAðóð		
ðóñ2#ó3ð2#ð ‡�×ÑØ	áàÑ'Ó)Ð*ØÑ.¸AÔ>Ð?ðô	
ñ 	àÑ)°qÔ9Ð:ØÑ/¸QÔ?Ð@ðô	
ðð 
Ð.Ð/ð! ó ñ$#ó%ð$#ð ‡�×ÑØáàÑ'Ó)Ð*ØÑ,¸#Ô>Ð?ðð ô	
ñ 	àÑ)°sÔ;Ð<ØÑ-¸3Ô?Ð@ðð ô	
ðóñ&	5ó'ð&	5ò2ð( ‡�×ÑØð °DÑ9òð
	
ð �FÐ	Ð3Ð5LÐMÐNðóñ"2ó#ð"2ò('ð6 ‡�×ÑØØÐ+Ð,¨Ð@RÐ.SÐTóñ
Uó	ð
Uð ‡�×ÑØØÐ+Ð,¨Ð@RÐ.SÐTóñ ¨Ô-ñó .ó	ð
ð ‡�×ÑØØÐ+Ð,¨Ð@RÐ.SÐTóð ‡�×Ñ˜ /°:Ð!>Ó?Ù¨Ô-ñWó .ó @ó	ðWðB ‡�×ÑØØÐ+Ð,¨Ð@RÐ.SÐTóñ ¨Ô-ñFó .ó	ñ
Frm   