Ë
    u™ãjÂX  ã                   óì  — d dl Zd dlZd dlZd dlmZ d dlm	Z	  ej                   ej                  ddgddgddgddggdd g¬«       ej                  ddgddgddgddggddg¬«       ej                  ddgddgddgddggd	d	g¬«       ej                  ddgddgddgddggd
d g¬«       ej                  ddgddgddgddggddg¬«       ej                  ddgddgddgddggd	dg¬«       ej                  ddgd
dgddgdd
ggddg¬«       ej                  ddgddgddgdd
ggd d
g¬«       ej                  ddgddgddgdd
ggd
dg¬«      g	¬«      d„ «       Zej                  d„ «       Zej                  d„ «       Zd„ Zd„ Zej"                  j%                  ddej&                  gdz  fdej&                  ej&                  ej&                  ej&                  dgfg«      d„ «       Zej"                  j%                  dddg«      d„ «       Zej"                  j%                  dddg«      ej"                  j%                  d d!d"g«      ej"                  j%                  d#dd$g«      d%„ «       «       «       Zej"                  j%                  dddg«      ej"                  j%                  d&d'd(g«      d)„ «       «       Zej"                  j%                  dddg«      d*„ «       Zej"                  j%                  dddg«      d+„ «       Zd,„ Zej"                  j%                  d-ddg«      d.„ «       Zej"                  j%                  dddg«      d/„ «       Zej"                  j%                  d0 ed1«      «      d2„ «       Zd3„ Zd4„ Z d5„ Z!ej"                  j%                  d-ddg«      d6„ «       Z"ej"                  j%                  d7d8„ d9„ g«      d:„ «       Z#ej"                  j%                  d7d;„ d<„ g«      d=„ «       Z$ G d>„ d?«      Z%y)@é    N)Ú	safe_sorté   é   é   é   é   ©ÚcolumnsÚCç      ð?g        ç       @ç      @ç      @ç       @ÚX)Úparamsc                 ó   — | j                   S )zPairwise frames test_pairwise)Úparam)Úrequests    úl/var/www/html/python-recuperauto-other/env/lib/python3.12/site-packages/pandas/tests/window/test_pairwise.pyÚpairwise_framesr   	   s   € ð" �=‰=Ðó    c                  óL   — t        j                  ddgddgddgddggddg¬«      S )z'Pairwise target frame for test_pairwiser   r   r   r   r   r   r	   ©ÚpdÚ	DataFrame© r   r   Úpairwise_target_framer      s2   € ô �<‰<˜!˜Q˜ ! Q ¨!¨Q¨°!°Q°Ð8À1ÀaÀ&ÔIÐIr   c                  óL   — t        j                  g d¢g d¢g d¢g d¢gg d¢¬«      S )z&Pairwise other frame for test_pairwise)Nr   r   )Nr   r   )Né   r   )Nr   r   )ÚYÚZr   r	   r   r   r   r   Úpairwise_other_framer#   #   s$   € ô �<‰<Ú	’|¢\²<Ð@Úôð r   c           	      ó@  — | }|t         j                  j                  d«      j                  t	        |«      «      z   }|j                  dd¬«      j                  |«      }t        j                  |j                  d   t        j                  |dd  |dd  «      d   «       y ©Nr   é2   é   ©ÚwindowÚmin_periodséÿÿÿÿiÎÿÿÿ©r   r   )
ÚnpÚrandomÚdefault_rngÚstandard_normalÚlenÚrollingÚcovÚtmÚassert_almost_equalÚiloc©ÚseriesÚAÚBÚresults       r   Útest_rolling_covr<   ,   s€   € Ø€AØ	ŒB�I‰I×!Ñ! !Ó$×4Ñ4´S¸³VÓ<Ñ<€Aà�Y‰Y˜b¨bˆYÓ1×5Ñ5°aÓ8€FÜ×Ñ˜6Ÿ;™; r™?¬B¯F©F°1°S°T°7¸A¸c¸d¸GÓ,DÀTÑ,JÕKr   c           	      ó@  — | }|t         j                  j                  d«      j                  t	        |«      «      z   }|j                  dd¬«      j                  |«      }t        j                  |j                  d   t        j                  |dd  |dd  «      d   «       y r%   )r-   r.   r/   r0   r1   r2   Úcorrr4   r5   r6   Úcorrcoefr7   s       r   Útest_rolling_corrr@   4   s€   € Ø€AØ	ŒB�I‰I×!Ñ! !Ó$×4Ñ4´S¸³VÓ<Ñ<€Aà�Y‰Y˜b¨bˆYÓ1×6Ñ6°qÓ9€FÜ×Ñ˜6Ÿ;™; r™?¬B¯K©K¸¸#¸$¸ÀÀ3À4ÀÓ,IÈ$Ñ,OÕPr   zmethod,expected_valuesr>   r3   c                 ó   — t        j                  g d¢«      }t        j                  dgdz  «      }|j                  d«      } t        || «      |«      }t        j                  |«      }t	        j
                  ||«       y )N)g     jø@r   r   r   r   gfffffæ"@r   )r   ÚSeriesr2   Úgetattrr4   Úassert_series_equal)ÚmethodÚexpected_valuesÚaÚbÚwindr;   Úexpecteds          r   Ú test_rolling_cov_corr_degeneraterK   <   se   € ô 	�	‰	Ò#Ó$€AÜ
�	‰	�4�&˜1‘*Ó€AØ�9‰9�Q‹<€DØ"ŒW�T˜6Ó" 1Ó%€FÜ�y‰y˜Ó)€HÜ×Ñ˜6 8Õ,r   zmethod,expected_last)r3   g      I@)r>   r   c                 ót  — t        j                  g d¢«      }t        j                  dt        j                  ddg«      } t	        |j                  d«      | «      |«      }t        j                  t        j                  t        j                  t        j                  |g«      }t        j                  ||«       y )N)r   g      $@ç      4@ç      >@r   rM   rN   r   )r   rB   r-   ÚnanrC   r2   r4   rD   )rE   Úexpected_lastrG   rH   r;   rJ   s         r   Ú&test_rolling_cov_corr_nan_gap_recoveryrQ   M   s|   € ô 	�	‰	Ò)Ó*€AÜ
�	‰	�3œŸ™  dÐ+Ó,€AØ*ŒW�Q—Y‘Y˜q“\ 6Ó*¨1Ó-€FÜ�y‰yœ"Ÿ&™&¤"§&¡&¬"¯&©&°-Ð@ÓA€HÜ×Ñ˜6 8Õ,r   rE   Úswap_xyFTÚoffset_yg  @åœ0¢Bc           	      ó   — d}g d¢}dD �cg c]  }||z   ‘Œ	 }}|r||}}t        j                  |d¬«      }t        j                  |d¬«      } t        |j                  |«      | «      |«      }	| dk(  rt        j
                  nt        j                  }
|j                  «       }|j                  «       }t        j                  g|dz
  z  }t        |t        |«      dz   «      D ]9  }|||z
  | }|||z
  | }|j                   |
||d   z
  ||d   z
  «      d	   «       Œ; t        j                  |	t        j                  |«      d
d¬«       y c c}w )Né	   )r    r    é   rU   r    r    g  €3¦‹Br    r   r   r   r   é   rV   rV   r    r   r   )rW   r    r    r   rU   r   r   rU   r   r   r   rW   rW   rU   rV   rU   r    r   Úfloat64©Údtyper3   r   r   r,   çê-�™—q=©ÚrtolÚatol©r   rB   rC   r2   r-   r3   r?   Úto_numpyrO   Úranger1   Úappendr4   rD   )rE   rR   rS   r)   Úvalues_xÚvalueÚvalues_yÚseries_xÚseries_yr;   ÚpairwiseÚarray_xÚarray_yrJ   ÚstopÚchunk_xÚchunk_ys                    r   Ú"test_rolling_cov_corr_outlier_exitrn   [   sU  € ð €FÚJ€Hð Löàð 	�5Óð€Hð ñ Ø% x�(ˆÜ�y‰y˜¨Ô3€HÜ�y‰y˜¨Ô3€Hà6ŒW�X×%Ñ% fÓ-¨vÓ6°xÓ@€Fð   5šŒr�vŠv¬b¯k©k€HØ×ÑÓ!€GØ×ÑÓ!€GÜ—‘ˆx˜6 A™:Ñ&€HÜ�fœc (›m¨aÑ/Ó0ò TˆØ˜$ ™-¨$Ð/ˆØ˜$ ™-¨$Ð/ˆØ�‰™ ¨7°1©:Ñ!5°wÀÈÁÑ7KÓLÈTÑRÕSðTô ×Ñ˜6¤2§9¡9¨XÓ#6¸UÈÖKùò/s   ‹EÚoffsetg    _ Bg  �Ä¼ÖBc           	      ór  — d}t        j                  g d¢d¬«      |z   }t        j                  g d¢d¬«      |z   } t        |j                  |«      | «      |«      }| dk(  rt        j
                  nt        j                  }|j                  «       }|j                  «       }t        j                  g|dz
  z  }	t        |t        |«      dz   «      D ]9  }
||
|z
  |
 }||
|z
  |
 }|	j                   |||d   z
  ||d   z
  «      d	   «       Œ; t        j                  |t        j                  |	«      d
d¬«       y )Nr   )
r   r   r   rV   r    r   rU   r   rW   r   rX   rY   )
r   r   r   r    r   r   rV   rU   r   rW   r3   r   r   r,   r[   r\   r_   )rE   ro   r)   rf   rg   r;   rh   ri   rj   rJ   rk   rl   rm   s                r   Ú#test_rolling_cov_corr_shared_offsetrq   €   s"  € ð €FÜ�y‰yÒ7¸yÔIÈFÑR€HÜ�y‰yÒ7¸yÔIÈFÑR€Hà6ŒW�X×%Ñ% fÓ-¨vÓ6°xÓ@€Fà 5šŒr�vŠv¬b¯k©k€HØ×ÑÓ!€GØ×ÑÓ!€GÜ—‘ˆx˜6 A™:Ñ&€HÜ�fœc (›m¨aÑ/Ó0ò TˆØ˜$ ™-¨$Ð/ˆØ˜$ ™-¨$Ð/ˆØ�‰™ ¨7°1©:Ñ!5°wÀÈÁÑ7KÓLÈTÑRÕSðTô ×Ñ˜6¤2§9¡9¨XÓ#6¸UÈÖKr   c           	      ó¾  — d}t        j                  g d¢«      }t        j                  g d¢«      } t        |j                  |«      | «      |«      }|j                  |dz
  d  j                  «       j                  «       rJ ‚| dk(  rt        j                  nt        j                  }|j                  «       }|j                  «       }t        j                  g|dz
  z  }t        |t        |«      dz   «      D ]9  }	||	|z
  |	 }
||	|z
  |	 }|j                   ||
|
d   z
  ||d   z
  «      d   «       Œ; t        j                   |t        j                  |«      dd¬	«       y )
Nr    )r   r   g   ¢”mBg    ÐcAç      @r   r   ç      @)r   r   ç      @g   ¢”mÂr   rt   rs   ç      "@r   r3   r   r,   gñhãˆµøä>r\   )r   rB   rC   r2   r6   ÚisnaÚanyr-   r3   r?   r`   rO   ra   r1   rb   r4   rD   )rE   r)   rf   rg   r;   rh   ri   rj   rJ   rk   rl   rm   s               r   Ú)test_rolling_cov_corr_outlier_exit_no_nanry   ˜   s@  € ð €FÜ�y‰yÒBÓC€HÜ�y‰yÒCÓD€Hà6ŒW�X×%Ñ% fÓ-¨vÓ6°xÓ@€Fà�{‰{˜6 A™:˜<Ð(×-Ñ-Ó/×3Ñ3Ô5Ð5Ð5ð   5šŒr�vŠv¬b¯k©k€HØ×ÑÓ!€GØ×ÑÓ!€GÜ—‘ˆx˜6 A™:Ñ&€HÜ�fœc (›m¨aÑ/Ó0ò TˆØ˜$ ™-¨$Ð/ˆØ˜$ ™-¨$Ð/ˆØ�‰™ ¨7°1©:Ñ!5°wÀÈÁÑ7KÓLÈTÑRÕSðTô ×Ñ˜6¤2§9¡9¨XÓ#6¸TÈÖJr   c                 óR  — d}t        j                  g d¢«      }t        j                  g d¢«      } t        |j                  |«      | «      |«      }|j                  |dz
  d  j                  «       j                  «       rJ ‚| dk(  rt        j                  nt        j                  }|j                  «       }|j                  «       }t        dt        |«      dz   «      D ]F  } ||||z
  | |||z
  | «      d   }	|j                  |dz
     t        j                  |	d¬	«      k(  rŒFJ ‚ y )
Nr   )g Èë…óÌár   r   ru   g Èë…óÌáÿr   r   rs   rt   r   rv   )çš™™™™™É?çš™™™™™¹?ç      à?g333333Ó?gš™™™™™é?gš™™™™™Ù?gÍÌÌÌÌÌì?g333333ã?gffffffæ?r{   r}   r   r3   é
   r,   r[   )Úrel)r   rB   rC   r2   r6   rw   rx   r-   r3   r?   r`   ra   r1   ÚpytestÚapprox)
rE   r)   rf   rg   r;   rh   ri   rj   rk   rJ   s
             r   Ú,test_rolling_cov_corr_extreme_range_recoversr‚   ±   s  € ð €FÜ�y‰yÒUÓV€HÜ�y‰yÒPÓQ€Hà6ŒW�X×%Ñ% fÓ-¨vÓ6°xÓ@€Fà�{‰{˜6 A™:˜<Ð(×-Ñ-Ó/×3Ñ3Ô5Ð5Ð5ð   5šŒr�vŠv¬b¯k©k€HØ×ÑÓ!€GØ×ÑÓ!€GÜ�bœ#˜h›-¨!Ñ+Ó,ò KˆÙØ�D˜6‘M DÐ)¨7°4¸&±=À4Ð+Hó
à
ñˆð �{‰{˜4 !™8Ñ$¬¯©°hÀEÔ(JÓJÐJÐJñ	Kr   c                  óÈ  — t        j                  t        j                  dt        j                  ¬«      t        j
                  dd¬«      ¬«      } | j                  «       }t        j                  | d d t        j                  |d d | j                  t        | «      d¬	«      j                  |«      }t        j                  |j                  d
   | j                  |«      «       y )Né   rY   ú
2020-01-01©Úperiods©Úindexr   r~   r   r(   r+   )r   rB   r-   ÚarangerX   Ú
date_rangeÚcopyrO   r2   r1   r>   r4   r5   r6   )rG   rH   r;   s      r   Ú!test_rolling_corr_bias_correctionr�   È   sœ   € ä
�	‰	Ü
�	‰	�"œBŸJ™JÔ'¬r¯}©}¸\ÐSUÔ/Vô	€Að 	
�‰‹€AÜ�F‰F€A€b€q€EÜ�V‰V€A€c€r€Fà�Y‰Yœc !›f°!ˆYÓ4×9Ñ9¸!Ó<€FÜ×Ñ˜6Ÿ;™; r™?¨A¯F©F°1«IÕ6r   Úfuncc                 óB  —  t        |j                  dd¬«      | «      «       }|j                  t        d «      dfdf   }|j                  j                  d«      |_         t        |d   j                  dd¬«      | «      |d   «      }t        j                  ||d¬«       y )Nr~   r   r(   r   F©Úcheck_names)rC   r2   ÚlocÚslicer‰   Ú	droplevelr4   rD   )rŽ   Úframer;   rJ   s       r   Útest_rolling_pairwise_cov_corrr–   Õ   s�   € àCŒW�U—]‘]¨"¸!�]Ó<¸dÓCÓE€FØ�Z‰Zœ˜t› aÐ(¨!Ð+Ñ,€FØ—<‘<×)Ñ)¨!Ó,€F„LØHŒw�u˜Q‘x×'Ñ'¨r¸qÐ'ÓAÀ4ÓHÈÈqÉÓR€HÜ×Ñ˜6 8¸Ö?r   c                 óH  ‡ ‡— |d   Š t        ‰j                  d¬«      ‰ «      |«      } t        |j                  d¬«      ‰ «      ‰«      }|j                  ˆ ˆfd„«      }t        j                  ||«       t        j                  ||«       t        j                  t        j                  j                  d«      j                  |j                  «      |j                  |j                  ¬«      } t        |j                  d¬«      ‰ «      |«      }t        j                  t        |j                  «      «      |_        t        j                  |D �ci c]+  }| t        ||   j                  d¬«      ‰ «      ||   «      “Œ- c}«      }t        j                  ||«       y c c}w )Nr   r~   ©r)   c                 óH   •—  t        ‰j                  d¬«      ‰«      | «      S )Nr~   r˜   )rC   r2   )ÚxrE   r8   s    €€r   ú<lambda>z(test_flex_binary_frame.<locals>.<lambda>ä   s!   ø€ Ð J¤¨¯©¸b¨Ó(AÀ6Ó JÈ1Ó M€ r   r   ©r‰   r
   )rC   r2   Úapplyr4   Úassert_frame_equalr   r   r-   r.   r/   r0   Úshaper‰   r
   ÚIndexÚlist)	rE   r•   ÚresÚres2ÚexpÚframe2Úres3Úkr8   s	   `       @r   Útest_flex_binary_framer¨   Þ   sK  ù€ à�1‰X€Fà
4Œ'�&—.‘.¨�.Ó+¨VÓ
4°UÓ
;€CØ4Œ7�5—=‘=¨�=Ó+¨VÓ4°VÓ<€DØ
�+‰+ÔMÓ
N€Cä×Ñ˜#˜sÔ#Ü×Ñ˜$ Ô$ä�\‰\Ü
�	‰	×Ñ˜aÓ ×0Ñ0°·±Ó=Ø�k‰kØ—‘ô€Fð 5Œ7�5—=‘=¨�=Ó+¨VÓ4°VÓ<€DÜ—8‘8œD §¡Ó.Ó/€D„LÜ
�,‰,ØMRÖSÈˆÐ8ŒG�E˜!‘H×$Ñ$¨BÐ$Ó/°Ó8¸À¹ÓCÑ	CÒSó€Cô ×Ñ˜$ Õ$ùò 	Ts   Å0Fr)   rV   c                 ó$  — t        j                  t        j                  d«      «      }t        j                  t        j                  d«      «      }|j                  | ¬«      j                  |¬«      j                  «       j                  «       sJ ‚y )Nr„   r˜   )Úother)	r   rB   r-   ÚzerosrŠ   r2   r>   rw   Úall)r)   Úsrª   s      r   Ú$test_rolling_corr_with_zero_variancer®   ÷   sd   € ô 	�	‰	”"—(‘(˜2“,Ó€AÜ�I‰I”b—i‘i “mÓ$€Eà�9‰9˜Fˆ9Ó#×(Ñ(¨uÐ(Ó5×:Ñ:Ó<×@Ñ@ÔBÐBÑBr   c                  óê  — t        j                  t        j                  ddgddgddgddgd	d
gddgg«      «      } | d   j	                  dd¬«      j                  | d   «      }t        d„ |D «       «      sJ ‚t        j                  t        j                  j                  d«      j                  d«      «      } | d   j	                  dd¬«      j                  | d   «      }t        d„ |D «       «      sJ ‚y )Ng†F$ÈÙë?g)—Òé¯Ç?g‰ËT5ÿ—ä?g´?«'NÉÓ?gFr�1�í?g+ÿ”	C-à?gR	²±`?gÕ1:b%§?g9T!X4!ë?gXÀÊÂS_Õ?gS®= é?g\–+“Ltä?r   r   T)Úcenterr   c              3   ór   K  — | ]/  }t        j                  t        j                  |«      «      d k  –— Œ1 y­w©r   N©r-   ÚabsÚ
nan_to_num©Ú.0rš   s     r   ú	<genexpr>z#test_corr_sanity.<locals>.<genexpr>  ó'   è ø€ Ò:°Œr�v‰v”b—m‘m AÓ&Ó'¨1Õ,Ñ:ùó   ‚57r   )é   r   c              3   ór   K  — | ]/  }t        j                  t        j                  |«      «      d k  –— Œ1 y­wr²   r³   r¶   s     r   r¸   z#test_corr_sanity.<locals>.<genexpr>  r¹   rº   )	r   r   r-   Úarrayr2   r>   r¬   r.   r/   )Údfr¢   s     r   Útest_corr_sanityr¿      sí   € ä	�‰Ü
�‰à˜ZÐ(Ø˜YÐ'Ø˜ZÐ(Ø˜ZÐ(Ø˜ZÐ(Ø˜ZÐ(ðó		
ó
€Bð ˆQ‰%�-‰-˜ $ˆ-Ó
'×
,Ñ
,¨R°©UÓ
3€CÜÑ:°cÔ:Ô:Ð:Ð:ä	�‰”b—i‘i×+Ñ+¨AÓ.×5Ñ5°gÓ>Ó	?€BØ
ˆQ‰%�-‰-˜ $ˆ-Ó
'×
,Ñ
,¨R°©UÓ
3€CÜÑ:°cÔ:Ô:Ð:Ñ:r   c                  óâ  — t        j                  g d¢t        d«      ¬«      } t        j                  ddgt        ddd«      ¬«      }| j                  dd¬«      j	                  |«      }t        j                  g d	¢«      }t        j                  ||«       t        j                  g d
¢t        d«      ¬«      }| j                  dd¬«      j	                  |«      }t        j                  ||«       y )N©r   r   r    r    rˆ   r   r   r   r   r(   )NNr   ©r   Nr    )r   rB   ra   r2   r3   r4   rD   ©Ús1Ús2r;   rJ   Ús2as        r   Útest_rolling_cov_diff_lengthrÇ     s¯   € ä	�‰’9¤E¨!£HÔ	-€BÜ	�‰�A�q�6¤ q¨!¨Q£Ô	0€BØ�Z‰Z˜q¨aˆZÓ0×4Ñ4°RÓ8€FÜ�y‰yÒ*Ó+€HÜ×Ñ˜6 8Ô,ä
�)‰)’L¬¨a«Ô
1€CØ�Z‰Z˜q¨aˆZÓ0×4Ñ4°SÓ9€FÜ×Ñ˜6 8Õ,r   c                  óâ  — t        j                  g d¢t        d«      ¬«      } t        j                  ddgt        ddd«      ¬«      }| j                  dd¬«      j	                  |«      }t        j                  g d	¢«      }t        j                  ||«       t        j                  g d
¢t        d«      ¬«      }| j                  dd¬«      j	                  |«      }t        j                  ||«       y )NrÁ   r    rˆ   r   r   r   r   r(   )NNr   rÂ   )r   rB   ra   r2   r>   r4   rD   rÃ   s        r   Útest_rolling_corr_diff_lengthrÉ   $  s¯   € ä	�‰’9¤E¨!£HÔ	-€BÜ	�‰�A�q�6¤ q¨!¨Q£Ô	0€BØ�Z‰Z˜q¨aˆZÓ0×5Ñ5°bÓ9€FÜ�y‰yÒ*Ó+€HÜ×Ñ˜6 8Ô,ä
�)‰)’L¬¨a«Ô
1€CØ�Z‰Z˜q¨aˆZÓ0×5Ñ5°cÓ:€FÜ×Ñ˜6 8Õ,r   c                 ón  — t        j                  ddd¬«      }t        j                  ddd¬«      }t        j                  g d¢|¬«      }t        j                  g d¢|¬«      }d	}t        j                  t
        |¬
«      5   t        |j                  d«      | «      |«       d d d «       y # 1 sw Y   y xY w)Nr…   r    ÚD)r‡   Úfreqr   rÁ   rˆ   )r   r   r    r   r   z-Variable rolling window requires .* Got 3 < 5©ÚmatchÚ2D)r   r‹   rB   r€   ÚraisesÚ
ValueErrorrC   r2   )rŽ   Ú	idx_shortÚidx_longr­   rª   Úmsgs         r   Ú+test_time_based_rolling_other_longer_raisesrÕ   1  s‰   € ô —‘˜l°A¸CÔ@€IÜ�}‰}˜\°1¸3Ô?€HÜ
�	‰	’) 9Ô-€AÜ�I‰I’o¨XÔ6€EØ
9€CÜ	�‰”z¨Ô	-ñ .Ø&Œ�—	‘	˜$“ Ó& uÔ-÷.÷ .ñ .ús   Â "B+Â+B4Úfc                 óJ   — | j                  dd¬«      j                  | d¬«      S ©Nr~   r   r(   T©rh   ©r2   r3   ©rš   s    r   r›   r›   @  ó#   € �!—)‘) 2°1�)Ó5×9Ñ9¸!ÀdÐ9ÓK€ r   c                 óJ   — | j                  dd¬«      j                  | d¬«      S rØ   ©r2   r>   rÛ   s    r   r›   r›   A  ó#   € �!—)‘) 2°1�)Ó5×:Ñ:¸1ÀtÐ:ÓL€ r   c           	      ó¾  — t        j                  ddgddgddgddggt        j                  dd	gd
¬«      t        j                  t        d«      d¬«      ¬«      }t        j                  t        j                  dd	gd
¬«      t         j                  j                  |j                  |j                  gdd
g¬«      d¬«      } | |«      }t        j                  ||«       y )Nr   r   r    r   rU   r+   r   r9   r:   Úfoo©Únamer   Úbar©r
   r‰   ©ÚnamesrX   )r
   r‰   rZ   )
r   r   r    ra   Ú
MultiIndexÚfrom_productr‰   r
   r4   rž   )rÖ   r¾   Údf_expectedÚ	df_results       r   Ú2test_rolling_functions_window_non_shrinkage_binaryrì   =  sº   € ô 
�‰Ø
ˆQˆ�!�Q�˜!˜Q˜ " a Ð)Ü—‘˜#˜s˜¨%Ô0Ü�h‰h”u˜Q“x eÔ,ô
€Bô
 —,‘,Ü—‘˜#˜s˜¨%Ô0Ü�m‰m×(Ñ(¨"¯(©(°B·J±JÐ)?ÈÈuÀ~Ð(ÓVØô€Kñ
 �"“€IÜ×Ñ˜) [Õ1r   c                 óJ   — | j                  dd¬«      j                  | d¬«      S rØ   rÚ   rÛ   s    r   r›   r›   W  rÜ   r   c                 óJ   — | j                  dd¬«      j                  | d¬«      S rØ   rÞ   rÛ   s    r   r›   r›   X  rß   r   c                 ó²  — t        j                  «       }t        j                  t        j                  dgd¬«      t        j                  g d¬«      ¬«      }|d   j                  d«      |d<   t        j                  t         j                  j                  |j                  |j                  g«      ¬«      }t        j                  t         j                  j                  |j                  |j                  gddg¬«      t        j                  dgd¬«      d¬	«      } | |«      }t        j                  ||«        | |«      }t        j                  ||«       y )
NrG   rá   râ   rä   rå   rX   rˆ   ræ   )r‰   r
   rZ   )
r   r   r    Úastyperè   ré   r‰   r
   r4   rž   )rÖ   Údf1Údf2Údf1_expectedÚdf2_expectedÚ
df1_resultÚ
df2_results          r   Ú*test_moment_functions_zero_length_pairwiser÷   T  s  € ô �,‰,‹.€CÜ
�,‰,Ü—‘˜#˜ UÔ+´2·8±8¸BÀUÔ3Kô€Cð �3‰x�‰˜yÓ)€Cˆ�Hä—<‘<Ü�m‰m×(Ñ(¨#¯)©)°S·[±[Ð)AÓBô€Lô —<‘<Ü�m‰m×(Ñ(Ø�Y‰Y˜Ÿ™Ð$¨U°E¨Nð )ó 
ô —‘˜#˜ UÔ+Øô€Lñ �3“€JÜ×Ñ˜* lÔ3á�3“€JÜ×Ñ˜* lÕ3r   c            	       ó6  — e Zd Zej                  j                  dd„ d„ g«      d„ «       Zej                  j                  dd„ d„ d„ d„ d	„ d
„ g«      d„ «       Zej                  j                  dd„ d„ d„ d„ d„ d„ g«      d„ «       Zej                  j                  dd„ d„ d„ d„ d„ d„ g«      d„ «       Z	ej                  j                  dd„ d„ d„ d„ d„ d„ g«      d „ «       Z
ej                  j                  dd!„ d"„ d#„ d$„ d%„ d&„ g«      d'„ «       Zd(„ Zd)„ Zd*„ Zy+),ÚTestPairwiserÖ   c                 ó"   — | j                  «       S ©N)r3   rÛ   s    r   r›   zTestPairwise.<lambda>v  s   € ¨Q¯U©U«W€ r   c                 ó"   — | j                  «       S rû   )r>   rÛ   s    r   r›   zTestPairwise.<lambda>v  s   € ÀÇÁÃ€ r   c                 ód  —  ||«      }t        j                  |j                  |j                  «       t        j                  |j                  |j                  «        ||«      }|j	                  «       j
                  }|j	                  «       j
                  }t        j                  ||d¬«       y ©NF©Úcheck_dtype©r4   Úassert_index_equalr‰   r
   ÚdropnaÚvaluesÚassert_numpy_array_equal©Úselfr   r   rÖ   r;   rJ   s         r   Útest_no_flexzTestPairwise.test_no_flexv  s„   € ñ �?Ó#ˆÜ
×Ñ˜fŸl™l¨O×,CÑ,CÔDÜ
×Ñ˜fŸn™n¨o×.EÑ.EÔFÙÐ*Ó+ˆð —‘“×'Ñ'ˆØ—?‘?Ó$×+Ñ+ˆä
×#Ñ# F¨HÀ%ÖHr   c                 óB   — | j                  «       j                  d¬«      S ©NTrÙ   ©Ú	expandingr3   rÛ   s    r   r›   zTestPairwise.<lambda>ˆ  s   € �a—k‘k“m×'Ñ'°Ð'Ó6€ r   c                 óB   — | j                  «       j                  d¬«      S r
  ©r  r>   rÛ   s    r   r›   zTestPairwise.<lambda>‰  s   € �a—k‘k“m×(Ñ(°$Ð(Ó7€ r   c                 óF   — | j                  d¬«      j                  d¬«      S ©Nr    r˜   TrÙ   rÚ   rÛ   s    r   r›   zTestPairwise.<lambda>Š  s   € �a—i‘i q�iÓ)×-Ñ-°tÐ-Ó<€ r   c                 óF   — | j                  d¬«      j                  d¬«      S r  rÞ   rÛ   s    r   r›   zTestPairwise.<lambda>‹  s   € �a—i‘i q�iÓ)×.Ñ.¸Ð.Ó=€ r   c                 óF   — | j                  d¬«      j                  d¬«      S ©Nr    ©ÚcomTrÙ   ©Úewmr3   rÛ   s    r   r›   zTestPairwise.<lambda>Œ  s   € �a—e‘e �e“l×&Ñ&°Ð&Ó5€ r   c                 óF   — | j                  d¬«      j                  d¬«      S r  ©r  r>   rÛ   s    r   r›   zTestPairwise.<lambda>�  s   € �a—e‘e �e“l×'Ñ'°Ð'Ó6€ r   c                 ó0  —  ||«      }t        j                  |j                  j                  d   |j                  d¬«       t        j                  t	        |j                  j                  d   «      t	        |j
                  j                  «       «      «       t        j                  |j
                  |j
                  «        ||«      }|j                  «       j                  }|j                  «       j                  }t        j                  ||d¬«       y ©Nr   Fr�   r   rÿ   )
r4   r  r‰   Úlevelsr   r
   Úuniquer  r  r  r  s         r   Útest_pairwise_with_selfz$TestPairwise.test_pairwise_with_self…  sÔ   € ñ �?Ó#ˆÜ
×ÑØ�L‰L×Ñ Ñ" O×$9Ñ$9Àuõ	
ô 	×ÑÜ�f—l‘l×)Ñ)¨!Ñ,Ó-Ü�o×-Ñ-×4Ñ4Ó6Ó7ô	
ô 	×Ñ˜fŸn™n¨o×.EÑ.EÔFÙÐ*Ó+ˆð —‘“×'Ñ'ˆØ—?‘?Ó$×+Ñ+ˆä
×#Ñ# F¨HÀ%ÖHr   c                 óB   — | j                  «       j                  d¬«      S ©NFrÙ   r  rÛ   s    r   r›   zTestPairwise.<lambda>¨  s   € �a—k‘k“m×'Ñ'°Ð'Ó7€ r   c                 óB   — | j                  «       j                  d¬«      S r   r  rÛ   s    r   r›   zTestPairwise.<lambda>©  s   € �a—k‘k“m×(Ñ(°%Ð(Ó8€ r   c                 óF   — | j                  d¬«      j                  d¬«      S ©Nr    r˜   FrÙ   rÚ   rÛ   s    r   r›   zTestPairwise.<lambda>ª  s   € �a—i‘i q�iÓ)×-Ñ-°uÐ-Ó=€ r   c                 óF   — | j                  d¬«      j                  d¬«      S r#  rÞ   rÛ   s    r   r›   zTestPairwise.<lambda>«  s   € �a—i‘i q�iÓ)×.Ñ.¸Ð.Ó>€ r   c                 óF   — | j                  d¬«      j                  d¬«      S ©Nr    r  FrÙ   r  rÛ   s    r   r›   zTestPairwise.<lambda>¬  s   € �a—e‘e �e“l×&Ñ&°Ð&Ó6€ r   c                 óF   — | j                  d¬«      j                  d¬«      S r&  r  rÛ   s    r   r›   zTestPairwise.<lambda>­  s   € �a—e‘e �e“l×'Ñ'°Ð'Ó7€ r   c                 ód  —  ||«      }t        j                  |j                  |j                  «       t        j                  |j                  |j                  «        ||«      }|j	                  «       j
                  }|j	                  «       j
                  }t        j                  ||d¬«       y rþ   r  r  s         r   Útest_no_pairwise_with_selfz'TestPairwise.test_no_pairwise_with_self¥  s„   € ñ �?Ó#ˆÜ
×Ñ˜fŸl™l¨O×,AÑ,AÔBÜ
×Ñ˜fŸn™n¨o×.EÑ.EÔFÙÐ*Ó+ˆð —‘“×'Ñ'ˆØ—?‘?Ó$×+Ñ+ˆä
×#Ñ# F¨HÀ%ÖHr   c                 óD   — | j                  «       j                  |d¬«      S r
  r  ©rš   Úys     r   r›   zTestPairwise.<lambda>À  s   € ˜Ÿ™›×*Ñ*¨1°tÐ*Ó<€ r   c                 óD   — | j                  «       j                  |d¬«      S r
  r  r+  s     r   r›   zTestPairwise.<lambda>Á  s   € ˜Ÿ™›×+Ñ+¨A¸Ð+Ó=€ r   c                 óH   — | j                  d¬«      j                  |d¬«      S r  rÚ   r+  s     r   r›   zTestPairwise.<lambda>Â  s!   € ˜Ÿ™¨!˜Ó,×0Ñ0°¸TÐ0ÓB€ r   c                 óH   — | j                  d¬«      j                  |d¬«      S r  rÞ   r+  s     r   r›   zTestPairwise.<lambda>Ã  s!   € ˜Ÿ™¨!˜Ó,×1Ñ1°!¸dÐ1ÓC€ r   c                 óH   — | j                  d¬«      j                  |d¬«      S r  r  r+  s     r   r›   zTestPairwise.<lambda>Ä  s    € ˜Ÿ™ 1˜›×)Ñ)¨!°dÐ)Ó;€ r   c                 óH   — | j                  d¬«      j                  |d¬«      S r  r  r+  s     r   r›   zTestPairwise.<lambda>Å  s    € ˜Ÿ™ 1˜›×*Ñ*¨1°tÐ*Ó<€ r   c                 óà  —  |||«      }t        j                  |j                  j                  d   |j                  d¬«       t        j                  t	        |j                  j                  d   «      t	        |j
                  j                  «       «      «        |||«      }|j                  «       j                  }|j                  «       j                  }t        j                  ||d¬«       y r  )
r4   r  r‰   r  r   r
   r  r  r  r5   )r  r   r   r#   rÖ   r;   rJ   s          r   Útest_pairwise_with_otherz%TestPairwise.test_pairwise_with_other½  sÃ   € ñ �?Ð$8Ó9ˆÜ
×ÑØ�L‰L×Ñ Ñ" O×$9Ñ$9Àuõ	
ô 	×ÑÜ�f—l‘l×)Ñ)¨!Ñ,Ó-ÜÐ*×2Ñ2×9Ñ9Ó;Ó<ô	
ñ Ð*Ð,@ÓAˆð —‘“×'Ñ'ˆØ—?‘?Ó$×+Ñ+ˆô 	×Ñ˜v x¸UÖCr   c                 óD   — | j                  «       j                  |d¬«      S r   r  r+  s     r   r›   zTestPairwise.<lambda>à  s   € ˜Ÿ™›×*Ñ*¨1°uÐ*Ó=€ r   c                 óD   — | j                  «       j                  |d¬«      S r   r  r+  s     r   r›   zTestPairwise.<lambda>á  s   € ˜Ÿ™›×+Ñ+¨A¸Ð+Ó>€ r   c                 óH   — | j                  d¬«      j                  |d¬«      S r#  rÚ   r+  s     r   r›   zTestPairwise.<lambda>â  s!   € ˜Ÿ™¨!˜Ó,×0Ñ0°¸UÐ0ÓC€ r   c                 óH   — | j                  d¬«      j                  |d¬«      S r#  rÞ   r+  s     r   r›   zTestPairwise.<lambda>ã  s!   € ˜Ÿ™¨!˜Ó,×1Ñ1°!¸eÐ1ÓD€ r   c                 óH   — | j                  d¬«      j                  |d¬«      S r&  r  r+  s     r   r›   zTestPairwise.<lambda>ä  s    € ˜Ÿ™ 1˜›×)Ñ)¨!°eÐ)Ó<€ r   c                 óH   — | j                  d¬«      j                  |d¬«      S r&  r  r+  s     r   r›   zTestPairwise.<lambda>å  s    € ˜Ÿ™ 1˜›×*Ñ*¨1°uÐ*Ó=€ r   c                 óD  — |j                   j                  r	 |||«      nd }|�‹|j                  j                  |j                  «      }|j                   j                  |j                   «      }t	        j
                  |j                  |«       t	        j
                  |j                   |«       y t        j                  t        d¬«      5   |||«       d d d «       t        j                  t        d¬«      5   |||«       d d d «       y # 1 sw Y   Œ7xY w# 1 sw Y   y xY w)Nz'arg1' columns are not uniquerÍ   z'arg2' columns are not unique)	r
   Ú	is_uniquer‰   Úunionr4   r  r€   rÐ   rÑ   )r  r   r#   rÖ   r;   Úexpected_indexÚexpected_columnss          r   Útest_no_pairwise_with_otherz(TestPairwise.test_no_pairwise_with_otherÝ  sû   € ð ×&Ñ&×0Ò0ñ ˆoÐ3Ô4àð 	ð
 Ðà,×2Ñ2×8Ñ8Ð9M×9SÑ9SÓTˆNØ.×6Ñ6×<Ñ<Ø$×,Ñ,ó Ðô ×!Ñ! &§,¡,°Ô?Ü×!Ñ! &§.¡.Ð2BÕCä—‘œzÐ1PÔQñ 9Ù�/Ð#7Ô8÷9ä—‘œzÐ1PÔQñ 9ÙÐ&¨Ô8÷9ð 9÷9ð 9ú÷9ð 9ús   Ã

D
Ã7
DÄ
DÄDc                 ó@   — | j                  «       j                  |«      S rû   r  r+  s     r   r›   zTestPairwise.<lambda>   s   € ˜Ÿ™›×*Ñ*¨1Ó-€ r   c                 ó@   — | j                  «       j                  |«      S rû   r  r+  s     r   r›   zTestPairwise.<lambda>  s   € ˜Ÿ™›×+Ñ+¨AÓ.€ r   c                 óD   — | j                  d¬«      j                  |«      S ©Nr    r˜   rÚ   r+  s     r   r›   zTestPairwise.<lambda>  s   € ˜Ÿ™¨!˜Ó,×0Ñ0°Ó3€ r   c                 óD   — | j                  d¬«      j                  |«      S rC  rÞ   r+  s     r   r›   zTestPairwise.<lambda>  s   € ˜Ÿ™¨!˜Ó,×1Ñ1°!Ó4€ r   c                 óD   — | j                  d¬«      j                  |«      S ©Nr    r  r  r+  s     r   r›   zTestPairwise.<lambda>  s   € ˜Ÿ™ 1˜›×)Ñ)¨!Ó,€ r   c                 óD   — | j                  d¬«      j                  |«      S rF  r  r+  s     r   r›   zTestPairwise.<lambda>  s   € ˜Ÿ™ 1˜›×*Ñ*¨1Ó-€ r   c                 ót  —  ||t        j                  g d¢«      «      }t        j                  |j                  |j                  «       t        j                  |j
                  |j
                  «        ||t        j                  g d¢«      «      }|j                  «       j                  }|j                  «       j                  }t        j                  ||d¬«        |t        j                  g d¢«      |«      }t        j                  |j                  |j                  «       t        j                  |j
                  |j
                  «        |t        j                  g d¢«      |«      }|j                  «       j                  }|j                  «       j                  }t        j                  ||d¬«       y )N)r   r   r    r   Frÿ   )	r   rB   r4   r  r‰   r
   r  r  r  r  s         r   Útest_pairwise_with_seriesz&TestPairwise.test_pairwise_with_seriesý  s0  € ñ �?¤B§I¡IªlÓ$;Ó<ˆÜ
×Ñ˜fŸl™l¨O×,AÑ,AÔBÜ
×Ñ˜fŸn™n¨o×.EÑ.EÔFÙÐ*¬B¯I©I²lÓ,CÓDˆð —‘“×'Ñ'ˆØ—?‘?Ó$×+Ñ+ˆÜ
×#Ñ# F¨HÀ%ÕHá”2—9‘9š\Ó*¨OÓ<ˆÜ
×Ñ˜fŸl™l¨O×,AÑ,AÔBÜ
×Ñ˜fŸn™n¨o×.EÑ.EÔFÙ”R—Y‘Yš|Ó,Ð.CÓDˆð —‘“×'Ñ'ˆØ—?‘?Ó$×+Ñ+ˆÜ
×#Ñ# F¨HÀ%ÖHr   c                 óV  — t        j                  t        d«      t        j                  dd¬«      ¬«      }|j	                  d«      j                  |«      }t        j                  t        j                  gdz  t        j                  dd¬«      ¬«      }t        j                  ||«       y )Nr   Ú2020r†   rˆ   Ú12h)
r   rB   ra   r‹   r2   r>   r-   rO   r4   rD   )r  r­   r;   rJ   s       r   Útest_corr_freq_memory_errorz(TestPairwise.test_corr_freq_memory_error  so   € ä�I‰I”e˜A“h¤b§m¡m°FÀAÔ&FÔGˆØ—‘˜5Ó!×&Ñ& qÓ)ˆÜ—9‘9œbŸf™f˜X¨™\´·±¸vÈqÔ1QÔRˆÜ
×Ñ˜v xÕ0r   c           
      ón  — t         j                  j                  t        d«      t        d«      t        d«      g«      }t	        d«      }t        j
                  t        j                  d«      j                  dd«      ||¬«      }|j                  d¬	«      j                  «       }t         j                  j                  t	        d«      t        d«      t        d«      t        d«      g«      }t         j                  j                  t        d«      t        d«      t        d«      g«      }t        j
                  t        j                  t        j                  d
t        j                  «      t        j                  d
d«      t        j                  d
d«      f«      ||¬«      }t        j                  ||«       y )NÚabÚxyÚABr    é   r   rœ   r|   )Úalpha)r   r   g      @@gK\Ç¸âðO@)r   rè   ré   r¡   ra   r   r-   rŠ   Úreshaper  r3   ÚvstackÚfullrO   r4   rž   )r  r
   r‰   r¾   r;   rJ   s         r   Útest_cov_mulittindexz!TestPairwise.test_cov_mulittindex%  s4  € ô —-‘-×,Ñ,¬d°4«j¼$¸t»*ÄdÈ4ÃjÐ-QÓRˆÜ�a“ˆÜ�\‰\œ"Ÿ)™) B›-×/Ñ/°°1Ó5¸UÈGÔTˆà—‘˜c�Ó"×&Ñ&Ó(ˆä—‘×*Ñ*Ü�1‹X”t˜D“z¤4¨£:¬t°D«zÐ:ó
ˆô —-‘-×,Ñ,¬d°4«j¼$¸t»*ÄdÈ4ÃjÐ-QÓRˆÜ—<‘<Ü�I‰Iä—G‘G˜F¤B§F¡FÓ+Ü—G‘G˜F IÓ.Ü—G‘G˜F IÓ.ðóð Øô

ˆô 	×Ñ˜f hÕ/r   c                 ó*  — t         j                  j                  ddgddggddg¬«      }t        j                  t	        j
                  d«      |¬	«      }|j                  d
«      j                  «       }t        j                  t        j                  t         j                  j                  t	        j                  t	        j                  dt        j                  ¬«      d«      ddgdz  ddgdz  gg d¢¬«      |¬«      }t        j                  ||«       y )NÚMÚNÚPÚQrG   rH   ræ   )r   r   r	   r    r   rY   r   )NrG   rH   rœ   )r   rè   Úfrom_arraysr   r-   Úonesr2   r>   rO   ÚrepeatrŠ   Úint64r4   rž   )r  r
   r¾   r;   rJ   s        r   Ú$test_multindex_columns_pairwise_funcz1TestPairwise.test_multindex_columns_pairwise_func@  sÛ   € ä—-‘-×+Ñ+¨c°3¨Z¸#¸s¸Ð,DÈSÐRUÈJÐ+ÓWˆÜ�\‰\œ"Ÿ'™' &›/°7Ô;ˆØ—‘˜A“×#Ñ#Ó%ˆÜ—<‘<Ü�F‰FÜ—-‘-×+Ñ+ä—I‘IœbŸi™i¨´·±Ô:¸AÓ>Ø˜#�J ‘NØ˜#�J ‘Nðò
 'ð ,ó ð ô
ˆô 	×Ñ˜f hÕ/r   N)Ú__name__Ú
__module__Ú__qualname__r€   ÚmarkÚparametrizer  r  r)  r3  r?  rI  rM  rW  ra  r   r   r   rù   rù   t  sw  „ à‡[�[×Ñ˜SÑ#4Ñ6HÐ"IÓJñIó KðIð ‡[�[×ÑØá6Ù7Ù<Ù=Ù5Ù6ð	
ó
ñIó
ðIð* ‡[�[×ÑØá7Ù8Ù=Ù>Ù6Ù7ð	
ó
ñIó
ðIð ‡[�[×ÑØá<Ù=ÙBÙCÙ;Ù<ð	
ó
ñDó
ðDð* ‡[�[×ÑØá=Ù>ÙCÙDÙ<Ù=ð	
ó
ñ9ó
ð9ð* ‡[�[×ÑØá-Ù.Ù3Ù4Ù,Ù-ð	
ó
ñIó
ðIò,1ò0ó60r   rù   )&Únumpyr-   r€   Úpandasr   Úpandas._testingÚ_testingr4   Úpandas.core.algorithmsr   Úfixturer   r   r   r#   r<   r@   re  rf  rO   rK   rQ   rn   rq   ry   r‚   r�   r–   r¨   ra   r®   r¿   rÇ   rÉ   rÕ   rì   r÷   rù   r   r   r   ú<module>rm     sÌ  ðÛ Û ã Ý Ý ,ð €‡�àˆ�‰�q˜!�f˜q !˜f q¨! f¨q°!¨fÐ5ÀÀ1¸vÔFØˆ�‰�q˜!�f˜q !˜f q¨! f¨q°!¨fÐ5ÀÀ1¸vÔFØˆ�‰�q˜!�f˜q !˜f q¨! f¨q°!¨fÐ5ÀÀS¸zÔJØˆ�‰�q˜!�f˜q !˜f q¨! f¨q°!¨fÐ5ÀÀQ¸xÔHØˆ�‰�q˜!�f˜q !˜f q¨! f¨q°!¨fÐ5ÀÀQ¸xÔHØˆ�‰�q˜!�f˜q !˜f q¨! f¨q°!¨fÐ5ÀÀQ¸xÔHØˆ�‰Ø�3ˆZ˜#˜s˜ c¨3 Z°#°s°Ð<ÀqÈ#Àhô	
ð 	ˆ�‰�q˜#�h  C ¨1¨c¨(°Q¸°HÐ=ÈÈ3ÀxÔPØˆ�‰�q˜!�f˜q !˜f q¨! f¨q°#¨hÐ7À#ÀsÀÔLðôñóðð
 ‡�ñJó ðJð
 ‡�ñó ðòLòQð ‡�×ÑØà	�"—&‘&�˜A‘ÐØ	�—‘˜Ÿ™ §¡¨¯©°Ð5Ð6ðóñ-óð-ð ‡�×ÑØØ�MÐ"óñ-ó	ð-ð ‡�×Ñ˜ E¨6 ?Ó3Ø‡�×Ñ˜ U¨D MÓ2Ø‡�×Ñ˜ c¨4 [Ó1ñLó 2ó 3ó 4ðLðD ‡�×Ñ˜ E¨6 ?Ó3Ø‡�×Ñ˜ D¨$ <Ó0ñLó 1ó 4ðLð, ‡�×Ñ˜ E¨6 ?Ó3ñKó 4ðKð0 ‡�×Ñ˜ E¨6 ?Ó3ñKó 4ðKò,
7ð ‡�×Ñ˜ %¨ Ó1ñ@ó 2ð@ð ‡�×Ñ˜ F¨E ?Ó3ñ%ó 4ð%ð0 ‡�×Ñ˜¡5¨£8Ó,ñCó -ðCò;ò.
-ò
-ð ‡�×Ñ˜ %¨ Ó1ñ.ó 2ð.ð ‡�×ÑØáKÙLðóñ2óð2ð  ‡�×ÑØáKÙLðóñ4óð4÷2]0ò ]0r   