§
    cŠtjÓS  ã            
      óð  — U d dl mZ d dlZd dlZd dlmZ d dlmZ d dlm	Z	m
Z
mZmZmZmZ d dlZd dlmZ d dl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m Z  d dl!m"Z"m#Z# e	r d dl$m%Z%m&Z& d dlm'Z' d dl(m)Z)m*Z* d dl+m,Z,m-Z-m.Z. e
Z/de0d<   	 ed          Z1de0d<   ed         Z2de0d<   ee1e2f         Z3de0d<   d Z4de0d<   dZ5de0d<    G d„ deeeeee f         ¦  «        Z6 G d„ deee f         ¦  «        Z7dS )é    )ÚannotationsN©Úreduce)Úchain)ÚTYPE_CHECKINGÚAnyÚLiteralÚProtocolÚcastÚoverload)ÚEagerNamespace)Úcombine_alias_output_namesÚcombine_evaluate_output_names©ÚPandasLikeDataFrame©ÚPandasLikeExpr)ÚPandasSelectorNamespace©ÚPandasLikeSeries)ÚNativeDataFrameTÚNativeSeriesT)Úis_dtype_pyarrowÚis_non_nullable_boolean)ÚIterableÚSequence)Ú	TypeAlias)ÚImplementationÚVersion)ÚCorrelationMethodÚ	IntoDTypeÚPythonLiteralr   Ú
IncompleteÚ	_Verticalé   Ú_HorizontalÚAxisÚVERTICALÚ
HORIZONTALc                  ó"  — e Zd Zed>d„¦   «         Zed?d„¦   «         Zed@d„¦   «         ZedAd	„¦   «         ZdBd„ZdCd„Z	dDd„Z
dEd„ZdCd„ZdFd„ZdFd„ZdCd„ZdCd„ZdCd „ZedGd"„¦   «         ZdHd&„ZdId(„ZdHd)„ZdJd,„ZdCd-„ZdCd.„Z	 dKdLd5„ZdMd:„ZdNd=„Zd/S )OÚPandasLikeNamespaceÚreturnútype[PandasLikeDataFrame]c                ó   — t           S ©Nr   ©Úselfs    ú]/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/narwhals/_pandas_like/namespace.pyÚ
_dataframezPandasLikeNamespace._dataframe4   s   € å"Ð"ó    útype[PandasLikeExpr]c                ó   — t           S r/   r   r0   s    r2   Ú_exprzPandasLikeNamespace._expr8   s   € åÐr4   útype[PandasLikeSeries]c                ó   — t           S r/   r   r0   s    r2   Ú_serieszPandasLikeNamespace._series<   s   € åÐr4   r   c                ó*   — t          j        | ¦  «        S r/   )r   Úfrom_namespacer0   s    r2   Ú	selectorszPandasLikeNamespace.selectors@   s   € å&Ô5°dÑ;Ô;Ð;r4   Úimplementationr   Úversionr   ÚNonec                ó"   — || _         || _        d S r/   )Ú_implementationÚ_version)r1   r>   r?   s      r2   Ú__init__zPandasLikeNamespace.__init__D   s   € Ø-ˆÔØˆŒˆˆr4   Úexprsr   c                óh   ‡— dˆfd„}| j                              |t          ‰Ž t          ‰Ž | ¬¦  «        S )NÚdfr   r,   úlist[PandasLikeSeries]c                óF   •‡ — ˆ fd„‰D ¦   «         }t          d„ |¦  «        gS )Nc              3  ó8   •K  — | ]} |‰¦  «        D ]}|V — ŒŒd S r/   © ©Ú.0r7   ÚsrG   s      €r2   ú	<genexpr>z=PandasLikeNamespace.coalesce.<locals>.func.<locals>.<genexpr>J   s8   øè è € Ð>Ð>˜E°E°E¸"±I´IÐ>Ð>¨q�aÐ>Ð>Ð>Ð>Ð>Ð>Ð>r4   c                ó2   — |                       |d d ¬¦  «        S )N©ÚstrategyÚlimit©Ú	fill_null)ÚxÚys     r2   ú<lambda>z<PandasLikeNamespace.coalesce.<locals>.func.<locals>.<lambda>L   s   €  A§K¢K°¸DÈ KÑ$MÔ$M€ r4   r   )rG   ÚseriesrE   s   ` €r2   Úfuncz*PandasLikeNamespace.coalesce.<locals>.funcI   s8   øø€ Ø>Ð>Ð>Ð> UÐ>Ñ>Ô>ˆFåÐMÐMÈvÑVÔVðð r4   ©rZ   Úevaluate_output_namesÚalias_output_namesÚcontext©rG   r   r,   rH   ©r7   Ú_from_callabler   r   ©r1   rE   rZ   s    ` r2   ÚcoalescezPandasLikeNamespace.coalesceH   sX   ø€ ð	ð 	ð 	ð 	ð 	ð 	ð Œz×(Ò(ØÝ"?ÀÐ"GÝ9¸5ÐAØð	 )ñ 
ô 
ð 	
r4   Úvaluer"   ÚdtypeúIntoDType | Nonec                ó^   ‡ ‡‡‡— d	ˆˆ ˆfd„Št          ˆfd„d„ d ‰ j        ‰ j        ¬¦  «        S )
NrG   r   r,   r   c                óØ  •— t          ‰t          t          t          f¦  «        rþ	 dd l}dd l}n$# t          $ r}d}t          |¦  «        |‚d }~ww xY wddlm} t          ‰t          ¦  «        rt          ‰¦  «        n‰}‰r |‰‰j	        ¦  «        nd }| 
                    |g|¬¦  «        }‰j                             ¦   «         }	|	                     |j                             |¦  «        d| j        j        dd…         ¬¦  «        }
‰j                             |
‰¬¦  «        S ‰j                             ‰gd| j        j        dd…         ‰¬	¦  «        }‰r|                     ‰¦  «        S |S )
Nr   zqNested structures require pyarrow to be installed for pandas backend. Please install pyarrow: pip install pyarrow)Únarwhals_to_native_dtype)ÚtypeÚliteralr%   ©ÚnameÚindex)r^   )Údatarm   rn   r^   )Ú
isinstanceÚlistÚtupleÚdictÚpandasÚpyarrowÚImportErrorÚnarwhals._arrow.utilsri   rC   ÚarrayrB   Úto_native_namespaceÚSeriesÚarraysÚArrowExtensionArrayÚ_native_framern   r:   Úfrom_nativeÚfrom_iterabler   )rG   ÚpdÚpaÚexcÚmsgÚ_to_arrow_dtypeÚarray_valueÚpa_dtypeÚpa_arrayÚnsÚpandas_series_nativeÚpandas_like_seriesre   r1   rd   s               €€€r2   Ú_lit_pandas_seriesz3PandasLikeNamespace.lit.<locals>._lit_pandas_seriesW   s¾  ø€ Ý˜%¥$­­tÐ!4Ñ5Ô5ð Tð4Ø'Ð'Ð'Ð'Ø(Ð(Ð(Ð(Ð(øÝ"ð 4ð 4ð 4ðFð õ & cÑ*Ô*°Ð3øøøøð4øøøðð ð ð ð ð õ .8¸½uÑ-EÔ-EÐP�d 5™kœk˜kÈ5�ØDIÐS˜?˜?¨5°$´-Ñ@Ô@Ð@Èt�ØŸ8š8 [ M¸˜8ÑAÔA�ð Ô)×=Ò=Ñ?Ô?�Ø')§y¢yØ”I×1Ò1°(Ñ;Ô;Ø"ØÔ*Ô0°°1°Ô5ð (1ñ (ô (Ð$ð ”|×/Ò/Ð0DÈdÐ/ÑSÔSÐSà!%¤×!;Ò!;Ø�WØØÔ&Ô,¨Q¨q¨SÔ1Øð	 "<ñ "ô "Ðð ð 6Ø)×.Ò.¨uÑ5Ô5Ð5Ø%Ð%s   ¥. ®
A¸A
Á
Ac                ó   •—  ‰| ¦  «        gS r/   rK   )rG   r‹   s    €r2   rX   z)PandasLikeNamespace.lit.<locals>.<lambda>€   s   ø€ Ð*Ð*¨2Ñ.Ô.Ð/€ r4   c                ó   — dgS )Nrk   rK   ©Ú_dfs    r2   rX   z)PandasLikeNamespace.lit.<locals>.<lambda>�   s   € ¨y¨k€ r4   ©r\   r]   r>   r?   )rG   r   r,   r   ©r   rB   rC   )r1   rd   re   r‹   s   ```@r2   ÚlitzPandasLikeNamespace.litV   sh   øøøø€ ð&	&ð &	&ð &	&ð &	&ð &	&ð &	&ð &	&ð &	&õP Ø/Ð/Ð/Ð/Ø"9Ð"9Ø#ØÔ/Ø”Mð
ñ 
ô 
ð 	
r4   c                óH   ‡ — t          ˆ fd„d„ d ‰ j        ‰ j        ¬¦  «        S )Nc                ój   •— ‰j                              t          | j        ¦  «        gddg‰¬¦  «        gS )NÚlenr   )rm   rn   r^   )r:   r   r•   r}   )rG   r1   s    €r2   rX   z)PandasLikeNamespace.len.<locals>.<lambda>‰   s=   ø€ Ø”×*Ò*Ý˜Ô)Ñ*Ô*Ð+°%À¸sÈDð +ñ ô ð€ r4   c                ó   — dgS )Nr•   rK   rŽ   s    r2   rX   z)PandasLikeNamespace.len.<locals>.<lambda>Ž   s   € ¨u¨g€ r4   r�   r‘   r0   s   `r2   r•   zPandasLikeNamespace.len‡   sD   ø€ Ýðð ð ð ð
 #6Ð"5Ø#ØÔ/Ø”Mð

ñ 

ô 

ð 
	
r4   c                óh   ‡— dˆfd„}| j                              |t          ‰Ž t          ‰Ž | ¬¦  «        S )NrG   r   r,   rH   c                ó”   •‡ — t          j        ˆ fd„‰D ¦   «         ¦  «        }d„ |D ¦   «         }t          t          j        |¦  «        gS )Nc              3  ó.   •K  — | ]} |‰¦  «        V — Œd S r/   rK   ©rM   ÚexprrG   s     €r2   rO   zCPandasLikeNamespace.sum_horizontal.<locals>.func.<locals>.<genexpr>—   s+   øè è € Ð$@Ð$@°$ T T¨"¡X¤XÐ$@Ð$@Ð$@Ð$@Ð$@Ð$@r4   c              3  óD   K  — | ]}|                      d dd¦  «        V — ŒdS )r   NrT   ©rM   rN   s     r2   rO   zCPandasLikeNamespace.sum_horizontal.<locals>.func.<locals>.<genexpr>˜   s2   è è € ÐDÐD¸A˜QŸ[š[¨¨D°$Ñ7Ô7ÐDÐDÐDÐDÐDÐDr4   )r   r   r   ÚoperatorÚadd)rG   ÚitÚnative_seriesrE   s   `  €r2   rZ   z0PandasLikeNamespace.sum_horizontal.<locals>.func–   sQ   øø€ ÝÔ$Ð$@Ð$@Ð$@Ð$@¸%Ð$@Ñ$@Ô$@Ñ@Ô@ˆBØDÐDÀÐDÑDÔDˆMÝ�8œ<¨Ñ7Ô7Ð8Ð8r4   r[   r_   r`   rb   s    ` r2   Úsum_horizontalz"PandasLikeNamespace.sum_horizontal•   sX   ø€ ð	9ð 	9ð 	9ð 	9ð 	9ð 	9ð
 Œz×(Ò(ØÝ"?ÀÐ"GÝ9¸5ÐAØð	 )ñ 
ô 
ð 	
r4   Úignore_nullsÚboolc               ól   ‡‡— dˆˆfd„}| j                              |t          ‰Ž t          ‰Ž | ¬¦  «        S )NrG   r   r,   rH   c                óê   •‡ — ˆ fd„‰D ¦   «         }‰s*t          d„ |D ¦   «         ¦  «        rd}t          |¦  «        ‚‰rd„ |D ¦   «         nt          |¦  «        }t          t          j        |¦  «        gS )Nc                ó0   •— g | ]} |‰¦  «        D ]}|‘ŒŒS rK   rK   rL   s      €r2   ú
<listcomp>zDPandasLikeNamespace.all_horizontal.<locals>.func.<locals>.<listcomp>¦   ó.   ø€ Ð>Ð>Ð>˜E°E°E¸"±I´IÐ>Ð>¨q�aÐ>Ð>Ð>Ð>r4   c              3  ó‚   K  — | ]:}|j         j        d k    o%|                     ¦   «                              ¦   «         V — Œ;dS ©ÚobjectN©Únativere   Úis_nullÚanyr�   s     r2   rO   zCPandasLikeNamespace.all_horizontal.<locals>.func.<locals>.<genexpr>§   óS   è è € ð (ð (ØEF�”” (Ò*Ð@¨q¯yªy©{¬{¯ªÑ/@Ô/@ð(ð (ð (ð (ð (ð (r4   zwCannot use `ignore_nulls=False` in `all_horizontal` for non-nullable NumPy-backed pandas Series when nulls are present.c              3  óf   K  — | ],}t          |¦  «        r|n|                     d dd¦  «        V — Œ-dS )TN©r   rU   r�   s     r2   rO   zCPandasLikeNamespace.all_horizontal.<locals>.func.<locals>.<genexpr>¯   sZ   è è € ð ð ð õ 1°Ñ3Ô3ÐV�A�A¸¿ºÀTÈ4ÐQUÑ9VÔ9Vðð ð ð ð ð r4   )r°   Ú
ValueErrorÚiterr   rž   Úand_©rG   rY   rƒ   r    rE   r£   s   `   €€r2   rZ   z0PandasLikeNamespace.all_horizontal.<locals>.func¥   sº   øø€ Ø>Ð>Ð>Ð> UÐ>Ñ>Ô>ˆFØð &¥Cð (ð (ØJPð(ñ (ô (ñ %ô %ð &ð
 P�Ý  ‘o”oÐ%ð  ð"ð ð ð $ðñ ô ð õ ˜&‘\”\ð õ �8œ=¨"Ñ-Ô-Ð.Ð.r4   r[   r_   r`   ©r1   r£   rE   rZ   s    `` r2   Úall_horizontalz"PandasLikeNamespace.all_horizontal¢   s^   øø€ ð	/ð 	/ð 	/ð 	/ð 	/ð 	/ð 	/ð( Œz×(Ò(ØÝ"?ÀÐ"GÝ9¸5ÐAØð	 )ñ 
ô 
ð 	
r4   c               ól   ‡‡— dˆˆfd„}| j                              |t          ‰Ž t          ‰Ž | ¬¦  «        S )NrG   r   r,   rH   c                óê   •‡ — ˆ fd„‰D ¦   «         }‰s*t          d„ |D ¦   «         ¦  «        rd}t          |¦  «        ‚‰rd„ |D ¦   «         nt          |¦  «        }t          t          j        |¦  «        gS )Nc                ó0   •— g | ]} |‰¦  «        D ]}|‘ŒŒS rK   rK   rL   s      €r2   r¨   zDPandasLikeNamespace.any_horizontal.<locals>.func.<locals>.<listcomp>Ä   r©   r4   c              3  ó‚   K  — | ]:}|j         j        d k    o%|                     ¦   «                              ¦   «         V — Œ;dS r«   r­   r�   s     r2   rO   zCPandasLikeNamespace.any_horizontal.<locals>.func.<locals>.<genexpr>Å   r±   r4   zwCannot use `ignore_nulls=False` in `any_horizontal` for non-nullable NumPy-backed pandas Series when nulls are present.c              3  óf   K  — | ],}t          |¦  «        r|n|                     d dd¦  «        V — Œ-dS )FNr³   r�   s     r2   rO   zCPandasLikeNamespace.any_horizontal.<locals>.func.<locals>.<genexpr>Í   sZ   è è € ð ð ð õ 1°Ñ3Ô3ÐW�A�A¸¿ºÀUÈDÐRVÑ9WÔ9Wðð ð ð ð ð r4   )r°   r´   rµ   r   rž   Úor_r·   s   `   €€r2   rZ   z0PandasLikeNamespace.any_horizontal.<locals>.funcÃ   sº   øø€ Ø>Ð>Ð>Ð> UÐ>Ñ>Ô>ˆFØð &¥Cð (ð (ØJPð(ñ (ô (ñ %ô %ð &ð
 P�Ý  ‘o”oÐ%ð  ð"ð ð ð $ðñ ô ð õ ˜&‘\”\ð õ �8œ<¨Ñ,Ô,Ð-Ð-r4   r[   r_   r`   r¸   s    `` r2   Úany_horizontalz"PandasLikeNamespace.any_horizontalÀ   s^   øø€ ð	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð( Œz×(Ò(ØÝ"?ÀÐ"GÝ9¸5ÐAØð	 )ñ 
ô 
ð 	
r4   c                óh   ‡— dˆfd„}| j                              |t          ‰Ž t          ‰Ž | ¬¦  «        S )NrG   r   r,   rH   c                ó¾   •‡ — ˆ fd„‰D ¦   «         }d„ |D ¦   «         }d„ |D ¦   «         }t          t          j        |¦  «        t          t          j        |¦  «        z  gS )Nc                ó0   •— g | ]} |‰¦  «        D ]}|‘ŒŒS rK   rK   rL   s      €r2   r¨   zEPandasLikeNamespace.mean_horizontal.<locals>.func.<locals>.<listcomp>à   ó.   ø€ ÐDÐDÐD %¸%¸%À¹)¼)ÐDÐD°Q˜AÐDÐDÐDÐDr4   c              3  óF   K  — | ]}|                      d dd¬¦  «        V — ŒdS )r   NrQ   rT   r�   s     r2   rO   zDPandasLikeNamespace.mean_horizontal.<locals>.func.<locals>.<genexpr>á   s4   è è € ÐVÐVÀA�a—k’k !¨d¸$�kÑ?Ô?ÐVÐVÐVÐVÐVÐVr4   c              3  óD   K  — | ]}d |                      ¦   «         z
  V — ŒdS )r%   N©r¯   r�   s     r2   rO   zDPandasLikeNamespace.mean_horizontal.<locals>.func.<locals>.<genexpr>â   s.   è è € Ð<Ð<¨!�a˜!Ÿ)š)™+œ+‘oÐ<Ð<Ð<Ð<Ð<Ð<r4   )r   rž   rŸ   )rG   Úexpr_resultsrY   Únon_narE   s   `   €r2   rZ   z1PandasLikeNamespace.mean_horizontal.<locals>.funcß   si   øø€ ØDÐDÐDÐD¨5ÐDÑDÔDˆLØVÐVÈÐVÑVÔVˆFØ<Ð<¨|Ð<Ñ<Ô<ˆFÝ�8œ<¨Ñ0Ô0µ6½(¼,ÈÑ3OÔ3OÑOÐPÐPr4   r[   r_   r`   rb   s    ` r2   Úmean_horizontalz#PandasLikeNamespace.mean_horizontalÞ   s^   ø€ ð	Qð 	Qð 	Qð 	Qð 	Qð 	Qð Œz×(Ò(ØÝ"?ÀÐ"GÝ9¸5ÐAØð	 )ñ 
ô 
ð 	
r4   c                ól   ‡ ‡— dˆˆ fd„}‰ j                              |t          ‰Ž t          ‰Ž ‰ ¬¦  «        S )NrG   r   r,   rH   c                óF  •‡ — t          t          j        ˆ fd„‰D ¦   «         ¦  «        ¦  «        }t          ‰                     d„ |D ¦   «         d¬¦  «        j                             d¬¦  «        ‰j        ‰j        ¬¦  «         	                    |d         j
        ¦  «        gS )	Nc              3  ó.   •K  — | ]} |‰¦  «        V — Œd S r/   rK   rš   s     €r2   rO   zCPandasLikeNamespace.min_horizontal.<locals>.func.<locals>.<genexpr>î   ó+   øè è € Ð-IÐ-I¸4¨d¨d°2©h¬hÐ-IÐ-IÐ-IÐ-IÐ-IÐ-Ir4   c              3  ó>   K  — | ]}|                      ¦   «         V — Œd S r/   ©Úto_framer�   s     r2   rO   zCPandasLikeNamespace.min_horizontal.<locals>.func.<locals>.<genexpr>ò   ó*   è è € Ð6Ð6¨!˜Ÿš™œÐ6Ð6Ð6Ð6Ð6Ð6r4   Ú
horizontal©Úhowr%   ©Úaxis©r>   r?   r   )rq   r   r   r   Úconcatr}   ÚminrB   rC   Úaliasrm   ©rG   rY   rE   r1   s   ` €€r2   rZ   z0PandasLikeNamespace.min_horizontal.<locals>.funcí   s¥   øø€ Ý�%Ô-Ð-IÐ-IÐ-IÐ-IÀ5Ð-IÑ-IÔ-IÑIÔIÑJÔJˆFå Ø—K’KØ6Ð6¨vÐ6Ñ6Ô6¸Lð  ñ ô ä#§C¢C¨Q C¡K¤KØ#'Ô#7Ø œMðñ ô ÷ ’%˜˜qœ	œÑ'Ô'ðð r4   r[   r_   r`   rb   s   `` r2   Úmin_horizontalz"PandasLikeNamespace.min_horizontalì   ó^   øø€ ð
	ð 
	ð 
	ð 
	ð 
	ð 
	ð 
	ð Œz×(Ò(ØÝ"?ÀÐ"GÝ9¸5ÐAØð	 )ñ 
ô 
ð 	
r4   c                ól   ‡ ‡— dˆˆ fd„}‰ j                              |t          ‰Ž t          ‰Ž ‰ ¬¦  «        S )NrG   r   r,   rH   c                óF  •‡ — t          t          j        ˆ fd„‰D ¦   «         ¦  «        ¦  «        }t          ‰                     d„ |D ¦   «         d¬¦  «        j                             d¬¦  «        ‰j        ‰j        ¬¦  «         	                    |d         j
        ¦  «        gS )	Nc              3  ó.   •K  — | ]} |‰¦  «        V — Œd S r/   rK   rš   s     €r2   rO   zCPandasLikeNamespace.max_horizontal.<locals>.func.<locals>.<genexpr>  rÎ   r4   c              3  ó>   K  — | ]}|                      ¦   «         V — Œd S r/   rÐ   r�   s     r2   rO   zCPandasLikeNamespace.max_horizontal.<locals>.func.<locals>.<genexpr>  rÒ   r4   rÓ   rÔ   r%   rÖ   rØ   r   )rq   r   r   r   rÙ   r®   ÚmaxrB   rC   rÛ   rm   rÜ   s   ` €€r2   rZ   z0PandasLikeNamespace.max_horizontal.<locals>.func  s¥   øø€ Ý�%Ô-Ð-IÐ-IÐ-IÐ-IÀ5Ð-IÑ-IÔ-IÑIÔIÑJÔJˆFå Ø—K’KØ6Ð6¨vÐ6Ñ6Ô6¸Lð  ñ ô äŸSšS a˜S™[œ[Ø#'Ô#7Ø œMðñ ô ÷ ’%˜˜qœ	œÑ'Ô'ðð r4   r[   r_   r`   rb   s   `` r2   Úmax_horizontalz"PandasLikeNamespace.max_horizontal   rÞ   r4   ú._NativeConcat[NativeDataFrameT, NativeSeriesT]c                ó>   — | j                              ¦   «         j        S )zvConcatenate pandas objects along a particular axis.

        Return the **native** equivalent of `pd.concat`.
        )rB   ry   rÙ   r0   s    r2   Ú_concatzPandasLikeNamespace._concat  s   € ð Ô#×7Ò7Ñ9Ô9Ô@Ð@r4   ÚdfsúSequence[NativeDataFrameT]r   c               ó¼   — | j                              ¦   «         r(| j        dk     r|                      |t          d¬¦  «        S |                      |t          ¬¦  «        S )N©é   F©r×   ÚcopyrÖ   )rB   Ú	is_pandasÚ_backend_versionrç   r(   ©r1   rè   s     r2   Ú_concat_diagonalz$PandasLikeNamespace._concat_diagonal  sU   € ØÔ×)Ò)Ñ+Ô+ð 	@°Ô0EÈÒ0LÐ0LØ—<’< ­(¸�<Ñ?Ô?Ð?Ø�|Š|˜C¥hˆ|Ñ/Ô/Ð/r4   ú*Sequence[NativeDataFrameT | NativeSeriesT]c               ó¶  — | j                              ¦   «         rdt          j        ¦   «         5  t          j        ddt
          ¬¦  «         |                      |t          ¬¦  «        cd d d ¦  «         S # 1 swxY w Y   nA| j                              ¦   «         r(| j	        dk     r|                      |t          d¬¦  «        S |                      |t          ¬¦  «        S )NÚignorezDThe behavior of array concatenation with empty entries is deprecated)ÚmessageÚcategoryrÖ   rë   Frí   )
rB   Úis_cudfÚwarningsÚcatch_warningsÚfilterwarningsÚFutureWarningrç   r)   rï   rð   rñ   s     r2   Ú_concat_horizontalz&PandasLikeNamespace._concat_horizontal!  s  € ð Ô×'Ò'Ñ)Ô)ð 		BÝÔ(Ñ*Ô*ð :ð :ÝÔ'ØØbÝ*ðñ ô ð ð
 —|’| C­j�|Ñ9Ô9ð:ð :ð :ð :ñ :ô :ð :ð :ð :ð :ð :ð :øøøð :ð :ð :ð :ð :ð Ô!×+Ò+Ñ-Ô-ð 	B°$Ô2GÈ$Ò2NÐ2NØ—<’< ­*¸5�<ÑAÔAÐAØ�|Š|˜C¥jˆ|Ñ1Ô1Ð1s   ­8A2Á2A6Á9A6c               ó  — |d         j         }t          |dd …         d¬¦  «        D ]ƒ\  }}|j         }t          |¦  «        t          |¦  «        k    r||k                         ¦   «         s?d|                     ¦   «         › d|› d|                     ¦   «         › d�}t          |¦  «        ‚Œ„| j                             ¦   «         r(| j        dk     r|  	                    |t          d	¬
¦  «        S |  	                    |t          ¬¦  «        S )Nr   r%   )Ústartz>unable to vstack, column names don't match:
   - dataframe 0: z
   - dataframe z: ú
rë   Frí   rÖ   )ÚcolumnsÚ	enumerater•   ÚallÚto_listÚ	TypeErrorrB   rï   rð   rç   r(   )r1   rè   Úcols_0ÚirG   Úcols_currentrƒ   s          r2   Ú_concat_verticalz$PandasLikeNamespace._concat_vertical0  s'  € Ø�Q””ˆÝ˜s 1 2 2œw¨aÐ0Ñ0Ô0ð 
	%ð 
	%‰EˆAˆrØœ:ˆLå�\Ñ"Ô"¥c¨&¡k¤kÒ1Ð1¸ÈÒ8N×7SÒ7SÑ7UÔ7UÐ1ðFØ)/¯ªÑ)9Ô)9ðFð Fà&'ðFð Fà+7×+?Ò+?Ñ+AÔ+AðFð Fð Fð õ
   ‘n”nÐ$ð 2ð Ô×)Ò)Ñ+Ô+ð 	@°Ô0EÈÒ0LÐ0LØ—<’< ­(¸�<Ñ?Ô?Ð?Ø�|Š|˜C¥hˆ|Ñ/Ô/Ð/r4   Ú	separatorÚstrc               ó°   ‡‡‡‡— | j         j                             ¦   «         Šdˆˆˆˆfd„}| j                             |t          ‰Ž t          ‰Ž | ¬¦  «        S )NrG   r   r,   rH   c           	     ó^  •‡ ‡	— ˆ fd„‰
D ¦   «         }ˆfd„|D ¦   «         }d„ |D ¦   «         }‰sCt          t          j        |¦  «        }t          ˆfd„|¦  «                             | d ¦  «        }n»d„ t	          ||d¬¦  «        D ¦   «         ^}}|                     |                     ¦   «                              ‰d|j        j	        |j        j
        ¬	¦  «        ¦  «        Š	ˆ	fd
„|d d…         D ¦   «         }t          t          j        d„ t	          ||d¬¦  «        D ¦   «         |¦  «        }|gS )Nc                ó0   •— g | ]} |‰¦  «        D ]}|‘ŒŒS rK   rK   rL   s      €r2   r¨   z@PandasLikeNamespace.concat_str.<locals>.func.<locals>.<listcomp>G  rÄ   r4   c                ó:   •— g | ]}|                      ‰¦  «        ‘ŒS rK   )r   )rM   rN   Ústrings     €r2   r¨   z@PandasLikeNamespace.concat_str.<locals>.func.<locals>.<listcomp>H  s#   ø€ Ð;Ð;Ð;¨�a—f’f˜V‘n”nÐ;Ð;Ð;r4   c                ó6   — g | ]}|                      ¦   «         ‘ŒS rK   rÇ   r�   s     r2   r¨   z@PandasLikeNamespace.concat_str.<locals>.func.<locals>.<listcomp>I  s    € Ð;Ð;Ð;¨˜Ÿš™œÐ;Ð;Ð;r4   c                ó   •— | ‰z   |z   S r/   rK   )rV   rW   r
  s     €r2   rX   z>PandasLikeNamespace.concat_str.<locals>.func.<locals>.<lambda>M  s   ø€ ¨Q°©]¸QÑ->€ r4   c              3  óJ   K  — | ]\  }}|                      | d ¦  «        V — ŒdS ©Ú N©Úzip_with)rM   rN   Únms      r2   rO   z?PandasLikeNamespace.concat_str.<locals>.func.<locals>.<genexpr>T  sG   è è € ð 'ð 'Ù,1¨A¨r�A—J’J ˜s BÑ'Ô'ð'ð 'ð 'ð 'ð 'ð 'r4   T)ÚstrictÚsep)rm   rn   re   c              3  óF   •K  — | ]}‰                      | d ¦  «        V — ŒdS r  r  )rM   r  Ú	sep_arrays     €r2   rO   z?PandasLikeNamespace.concat_str.<locals>.func.<locals>.<genexpr>_  s5   øè è € ÐSÐS¸b˜i×0Ò0°"°°bÑ9Ô9ÐSÐSÐSÐSÐSÐSr4   éÿÿÿÿc              3  ó&   K  — | ]\  }}||z   V — Œd S r/   rK   )rM   rN   Úvs      r2   rO   z?PandasLikeNamespace.concat_str.<locals>.func.<locals>.<genexpr>b  s*   è è € ÐLÐL™t˜q !�Q˜‘UÐLÐLÐLÐLÐLÐLr4   )r   rž   r¿   r  ÚzipÚ_with_nativeÚ__native_namespace__rz   r®   rn   re   rŸ   )rG   rÈ   rY   Ú	null_maskÚnull_mask_resultÚresultÚ
init_valueÚvaluesÚ
separatorsr  rE   r£   r
  r  s   `        @€€€€r2   rZ   z,PandasLikeNamespace.concat_str.<locals>.funcF  s�  øøø€ ØDÐDÐDÐD¨5ÐDÑDÔDˆLØ;Ð;Ð;Ð;¨lÐ;Ñ;Ô;ˆFØ;Ð;¨lÐ;Ñ;Ô;ˆIàð Ý#)­(¬,¸	Ñ#BÔ#BÐ ÝÐ >Ð >Ð >Ð >ÀÑGÔG×PÒPØ%Ð% tñô ��ð'ð 'Ý58¸ÀÐSWÐ5XÑ5XÔ5Xð'ñ 'ô 'Ð#�
˜Vð '×3Ò3Ø×3Ò3Ñ5Ô5×<Ò<Ø!Ø"Ø(Ô/Ô5Ø(Ô/Ô5ð	 =ñ ô ñô �	ð TÐSÐSÐSÀIÈcÈrÈcÄNÐSÑSÔS�
ÝÝ”LØLÐL¥s¨:°vÀdÐ'KÑ'KÔ'KÐLÑLÔLØñô �ð �8ˆOr4   r[   r_   )rC   ÚdtypesÚStringr7   ra   r   r   )r1   r
  r£   rE   rZ   r  s    ``` @r2   Ú
concat_strzPandasLikeNamespace.concat_strA  sƒ   øøøø€ ð ”Ô%×,Ò,Ñ.Ô.ˆð 	ð  	ð  	ð  	ð  	ð  	ð  	ð  	ð  	ðD Œz×(Ò(ØÝ"?ÀÐ"GÝ9¸5ÐAØð	 )ñ 
ô 
ð 	
r4   c                ól   ‡ ‡— dˆˆ fd„}‰ j                              |t          ‰Ž t          ‰Ž ‰ ¬¦  «        S )NrG   r   r,   rH   c                óP  •‡ ‡— 	 dd l }dd lŠdd lm} n$# t          $ r}d}t	          |¦  «        |‚d }~ww xY w‰j        j        } |t          j        ˆ fd„‰D ¦   «         ¦  «        Ž }|d         j	        } |j
        ˆfd„|D ¦   «         dd„ |D ¦   «         iŽ}‰                     |g¦  «        }	‰j        }
‰j        }|                     ¦   «         }|                     |j                             |	¦  «        ||d         j        j        ¬¦  «        }‰                     |||
¬¦  «        gS )	Nr   zgstruct requires pyarrow to be installed for pandas backend. Please install pyarrow: pip install pyarrowc              3  ó.   •K  — | ]} |‰¦  «        V — Œd S r/   rK   rš   s     €r2   rO   z;PandasLikeNamespace.struct.<locals>.func.<locals>.<genexpr>}  ó+   øè è € Ð/KÐ/K¸T°°°R±´Ð/KÐ/KÐ/KÐ/KÐ/KÐ/Kr4   c              3  óP   •K  — | ] }‰                      |j        d ¬¦  «        V — Œ!dS )T©Úfrom_pandasN)rx   r®   ©rM   rN   r�   s     €r2   rO   z;PandasLikeNamespace.struct.<locals>.func.<locals>.<genexpr>€  s5   øè è € ÐGÐG¸1�"—(’(˜1œ8°�(Ñ6Ô6ÐGÐGÐGÐGÐGÐGr4   Úfield_namesc                ó   — g | ]	}|j         ‘Œ
S rK   )rm   r�   s     r2   r¨   z<PandasLikeNamespace.struct.<locals>.func.<locals>.<listcomp>�  s   € Ð4Ð4Ð4¨˜QœVÐ4Ð4Ð4r4   rl   rØ   )rt   ru   Úpyarrow.computeÚcomputerv   r:   Ú_align_full_broadcastr   r   rm   Úmake_structÚchunked_arrayrC   rB   ry   rz   r{   r|   r®   rn   )rG   r€   Úpcr‚   rƒ   ÚalignrY   rm   Ústruct_arrayr%  r?   Úimplrˆ   Úresult_nativer�   rE   r1   s   `             @€€r2   rZ   z(PandasLikeNamespace.struct.<locals>.funcp  s…  øøø€ ð	0Ø#Ð#Ð#Ð#Ø$Ð$Ð$Ð$Ø,Ð,Ð,Ð,Ð,Ð,Ð,øÝð 0ð 0ð 0ðBð õ " #Ñ&Ô&¨CÐ/øøøøð0øøøð ”LÔ6ˆEØ�U�EÔ/Ð/KÐ/KÐ/KÐ/KÀUÐ/KÑ/KÔ/KÑKÔKÐLˆFØ˜!”9”>ˆDØ)˜2œ>ØGÐGÐGÐGÀÐGÑGÔGðà4Ð4¨VÐ4Ñ4Ô4ðð ˆLð ×%Ò% | nÑ5Ô5ˆFà”mˆGØÔ'ˆDØ×)Ò)Ñ+Ô+ˆBàŸIšIØ”	×-Ò-¨fÑ5Ô5ØØ˜Q”iÔ&Ô,ð &ñ ô ˆMð
 —L’L ¸tÈW�LÑUÔUÐVÐVs   … ”
5ž0°5r[   r_   r`   rb   s   `` r2   ÚstructzPandasLikeNamespace.structo  sf   øø€ ð	Wð 	Wð 	Wð 	Wð 	Wð 	Wð 	Wð@ Œz×(Ò(ØÝ"?ÀÐ"GÝ9¸5ÐAØð	 )ñ 
ô 
ð 	
r4   c                ól   ‡ ‡— dˆˆ fd„}‰ j                              |t          ‰Ž t          ‰Ž ‰ ¬¦  «        S )NrG   r   r,   rH   c                ó  •‡ ‡
— 	 dd l Š
n$# t          $ r}d}t          |¦  «        |‚d }~ww xY wddlm} ‰j        j        } |t          j        ˆ fd„‰D ¦   «         ¦  «        Ž }ˆ
fd„|D ¦   «         } ||¦  «        }‰j        }| 	                    ¦   «          
                    t          j                             |¦  «        |d         j        |d         j        j        ¬¦  «        }	‰                     |	|‰j        ¬¦  «        gS )Nr   zelist requires pyarrow to be installed for pandas backend. Please install pyarrow: pip install pyarrow)Úbuild_list_arrayc              3  ó.   •K  — | ]} |‰¦  «        V — Œd S r/   rK   rš   s     €r2   rO   z9PandasLikeNamespace.list.<locals>.func.<locals>.<genexpr>¥  r/  r4   c                óÀ   •— g | ]Z}t          |j        j        ¦  «        r#|j        j        j                             ¦   «         n‰                     |j        d ¬¦  «        ‘Œ[S )Tr1  )r   r®   re   rx   Ú	_pa_arrayÚcombine_chunksr3  s     €r2   r¨   z:PandasLikeNamespace.list.<locals>.func.<locals>.<listcomp>¦  si   ø€ ð ð ð ð õ (¨¬¬Ñ7Ô7ð>�A”H”NÔ,×;Ò;Ñ=Ô=Ð=àŸš !¤(¸˜Ñ=Ô=ð	ð ð r4   rl   rØ   )ru   rv   rw   rC  r:   r8  r   r   rB   ry   rz   r€   r{   r|   rm   r®   rn   rC   )rG   r‚   rƒ   rC  r<  rY   r{   r%  r>  r?  r�   rE   r1   s   `         @€€r2   rZ   z&PandasLikeNamespace.list.<locals>.func˜  sU  øøø€ ð0Ø$Ð$Ð$Ð$Ð$øÝð 0ð 0ð 0ðBð õ " #Ñ&Ô&¨CÐ/øøøøð0øøøð ?Ð>Ð>Ð>Ð>Ð>à”LÔ6ˆEØ�U�EÔ/Ð/KÐ/KÐ/KÐ/KÀUÐ/KÑ/KÔ/KÑKÔKÐLˆFðð ð ð ð  ðñ ô ˆFð &Ð% fÑ-Ô-ˆFàÔ'ˆDØ ×4Ò4Ñ6Ô6×=Ò=Ý”	×-Ò-¨fÑ5Ô5Ø˜A”Y”^Ø˜Q”iÔ&Ô,ð >ñ ô ˆMð —’˜]¸4ÈÌ�ÑWÔWðð s   …
 Š
+”&¦+r[   r_   r`   rb   s   `` r2   rq   zPandasLikeNamespace.list—  s_   øø€ ð 	ð  	ð  	ð  	ð  	ð  	ð  	ðD Œz×(Ò(ØÝ"?ÀÐ"GÝ9¸5ÐAØð	 )ñ 
ô 
ð 	
r4   NÚwhenr   ÚthenÚ	otherwiseúNativeSeriesT | Nonec                óB   — |j         }|€ ||¦  «        n |||¦  «        S r/   )Úwhere)r1   rH  rI  rJ  rM  s        r2   Ú_if_then_elsez!PandasLikeNamespace._if_then_elseÁ  s.   € ð !œJˆØ'Ð/ˆuˆu�T‰{Œ{ˆ{°U°U¸4ÀÑ5KÔ5KÐKr4   ÚaÚbÚmethodr    c               ó�   ‡ ‡‡‡— dˆˆˆˆ fd„}‰ j                              |t          ‰‰¦  «        t          ‰‰¦  «        ‰ ¬¦  «        S )NrG   r   r,   rH   c                ó  •— |                       ‰¦  «        }|                       ‰¦  «        }‰                     |j        |j        g¦  «        }|                     ‰¬¦  «        j        ddgf         }t          |‰j        ‰j        ¬¦  «        gS )N)rQ  r   r%   rØ   )Ú_evaluate_single_output_exprrý   r®   ÚcorrÚilocr   rB   rC   )	rG   Úa_seriesÚb_seriesr�   rU  rO  rP  rQ  r1   s	        €€€€r2   rZ   z&PandasLikeNamespace.corr.<locals>.funcÍ  sŽ   ø€ Ø×6Ò6°qÑ9Ô9ˆHØ×6Ò6°qÑ9Ô9ˆHØ×)Ò)¨8¬?¸H¼OÐ*LÑMÔMˆCØ—8’8 6�8Ñ*Ô*Ô/°°A°3°Ô7ˆDå Ø¨Ô)=ÀtÄ}ðñ ô ðð r4   r[   r_   r`   )r1   rO  rP  rQ  rZ   s   ```` r2   rU  zPandasLikeNamespace.corrÊ  st   øøøø€ ð		ð 		ð 		ð 		ð 		ð 		ð 		ð 		ð 		ð Œz×(Ò(ØÝ"?ÀÀ1Ñ"EÔ"EÝ9¸!¸QÑ?Ô?Øð	 )ñ 
ô 
ð 	
r4   ÚddofÚintc               ó�   ‡ ‡‡‡— dˆˆˆˆ fd„}‰ j                              |t          ‰‰¦  «        t          ‰‰¦  «        ‰ ¬¦  «        S )NrG   r   r,   rH   c                óú  •— |                       ‰¦  «        }|                       ‰¦  «        }t          d‰	                     |j        |j        g¦  «        ¦  «        }|                     d¬¦  «                             d¦  «                             ¦   «         }‰dk    r	|dk    rd}n:|‰z
  dk    rt          d¦  «        }n!|                     ‰¬¦  «        j	        d	         }t          j        |g‰	|j        ¬
¦  «        gS )Nzpd.DataFramer%   rÖ   é   r   g        Únan)rY  )r   r%   )r^   rm   )rT  r   rý   r®   ÚcountÚeqÚsumÚfloatÚcovrV  r   r   rm   )
rG   rW  rX  r�   Únrd   rO  rP  rY  r1   s
         €€€€r2   rZ   z%PandasLikeNamespace.cov.<locals>.funcà  sô   ø€ Ø×6Ò6°qÑ9Ô9ˆHØ×6Ò6°qÑ9Ô9ˆHÝØØ×'Ò'¨¬¸(¼/Ð(JÑKÔKñô ˆCð —	’	˜q�	Ñ!Ô!×$Ò$ QÑ'Ô'×+Ò+Ñ-Ô-ˆAØ�qŠyˆy˜Q !šV˜VØ��Ø�T‘˜Q’�Ý˜e™œ��àŸš T˜Ñ*Ô*Ô/°Ô5�å Ô.°¨wÀÈ8Ì=ÐYÑYÔYðð r4   r[   r_   r`   )r1   rO  rP  rY  rZ   s   ```` r2   rc  zPandasLikeNamespace.covß  st   øøøø€ ð	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð$ Œz×(Ò(ØÝ"?ÀÀ1Ñ"EÔ"EÝ9¸!¸QÑ?Ô?Øð	 )ñ 
ô 
ð 	
r4   )r,   r-   )r,   r5   )r,   r8   )r,   r   )r>   r   r?   r   r,   r@   )rE   r   r,   r   )rd   r"   re   rf   r,   r   )r,   r   )rE   r   r£   r¤   r,   r   )r,   rå   )rè   ré   r,   r   )rè   ró   r,   r   )rE   r   r
  r  r£   r¤   r,   r   r/   )rH  r   rI  r   rJ  rK  r,   r   )rO  r   rP  r   rQ  r    r,   r   )rO  r   rP  r   rY  rZ  r,   r   )Ú__name__Ú
__module__Ú__qualname__Úpropertyr3   r7   r:   r=   rD   rc   r’   r•   r¢   r¹   rÀ   rÊ   rÝ   rä   rç   rò   rý   r	  r+  r@  rq   rN  rU  rc  rK   r4   r2   r+   r+   +   sG  € € € € € ð ð#ð #ð #ñ „Xð#ð ðð ð ñ „Xðð ð ð  ð  ñ „Xð ð ð<ð <ð <ñ „Xð<ð ð  ð  ð  ð
ð 
ð 
ð 
ð/
ð /
ð /
ð /
ðb
ð 
ð 
ð 
ð
ð 
ð 
ð 
ð
ð 
ð 
ð 
ð<
ð 
ð 
ð 
ð<
ð 
ð 
ð 
ð
ð 
ð 
ð 
ð(
ð 
ð 
ð 
ð( ðAð Að Añ „XðAð0ð 0ð 0ð 0ð
2ð 2ð 2ð 2ð0ð 0ð 0ð 0ð",
ð ,
ð ,
ð ,
ð\&
ð &
ð &
ð &
ðP(
ð (
ð (
ð (
ð\ +/ð	Lð Lð Lð Lð Lð
ð 
ð 
ð 
ð*
ð 
ð 
ð 
ð 
ð 
r4   r+   c                  ó”   — e Zd Zeddœdd„¦   «         Zeddœdd„¦   «         Zeddœdd„¦   «         Zeddœdd„¦   «         Zddœdd„ZdS )Ú_NativeConcat.)rî   ÚobjsúIterable[NativeDataFrameT]r×   r$   rî   úbool | Noner,   r   c               ó   — d S r/   rK   ©r1   rk  r×   rî   s       r2   Ú__call__z_NativeConcat.__call__û  ó	   € ð ˜3r4   úIterable[NativeSeriesT]r   c               ó   — d S r/   rK   ro  s       r2   rp  z_NativeConcat.__call__  s	   € ð ˜r4   ú*Iterable[NativeDataFrameT | NativeSeriesT]r&   c               ó   — d S r/   rK   ro  s       r2   rp  z_NativeConcat.__call__  rq  r4   r'   ú NativeDataFrameT | NativeSeriesTc               ó   — d S r/   rK   ro  s       r2   rp  z_NativeConcat.__call__  s	   € ð ,/¨3r4   Nc               ó   — d S r/   rK   ro  s       r2   rp  z_NativeConcat.__call__  s	   € ð ,/¨3r4   )rk  rl  r×   r$   rî   rm  r,   r   )rk  rr  r×   r$   rî   rm  r,   r   )rk  rt  r×   r&   rî   rm  r,   r   )rk  rt  r×   r'   rî   rm  r,   rv  )re  rf  rg  r   rp  rK   r4   r2   rj  rj  ú  sï   € € € € € Øð  ðð ð ð ð ñ „Xðð àUXðð ð ð ð ñ „Xðð ð  ðð ð ð ð ñ „Xðð ð  ð/ð /ð /ð /ð /ñ „Xð/ð !ð/ð /ð /ð /ð /ð /ð /ð /r4   rj  )8Ú
__future__r   rž   rù   Ú	functoolsr   Ú	itertoolsr   Útypingr   r   r	   r
   r   r   rt   r€   Únarwhals._compliantr   Únarwhals._expression_parsingr   r   Únarwhals._pandas_like.dataframer   Únarwhals._pandas_like.exprr   Únarwhals._pandas_like.selectorsr   Únarwhals._pandas_like.seriesr   Únarwhals._pandas_like.typingr   r   Únarwhals._pandas_like.utilsr   r   Úcollections.abcr   r   r   Únarwhals._utilsr   r   Únarwhals.typingr    r!   r"   r#   Ú__annotations__r$   r&   r'   r(   r)   r+   rj  rK   r4   r2   ú<module>r‰     sµ  ðØ "Ð "Ð "Ð "Ð "Ð "Ð "à €€€Ø €€€Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø HÐ HÐ HÐ HÐ HÐ HÐ HÐ HÐ HÐ HÐ HÐ HÐ HÐ HÐ HÐ Hà Ð Ð Ð à .Ð .Ð .Ð .Ð .Ð .ðð ð ð ð ð ð ð ð @Ð ?Ð ?Ð ?Ð ?Ð ?Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5Ø CÐ CÐ CÐ CÐ CÐ CØ 9Ð 9Ð 9Ð 9Ð 9Ð 9Ø HÐ HÐ HÐ HÐ HÐ HÐ HÐ HØ QÐ QÐ QÐ QÐ QÐ QÐ QÐ Qàð LØ2Ð2Ð2Ð2Ð2Ð2Ð2Ð2Ø Ð Ð Ð Ð Ð à7Ð7Ð7Ð7Ð7Ð7Ð7Ð7ØKÐKÐKÐKÐKÐKÐKÐKÐKÐKð €
Ð Ð Ð Ñ Ø >ð ˜q”z€	Ð !Ð !Ð !Ñ !Ø  œ€Ð #Ð #Ð #Ñ #Ø˜) [Ð0Ô1€Ð 1Ð 1Ð 1Ñ 1à€Ð Ð Ð Ñ Ø€
Ð Ð Ð Ñ ðL
ð L
ð L
ð L
ð L
ØØØØØØð		ôñL
ô L
ð L
ð^$/ð $/ð $/ð $/ð $/�HÐ-¨}Ð<Ô=ñ $/ô $/ð $/ð $/ð $/r4   