§
    	�’j]g  ã                  ó  — d Z ddlmZ ddlZddlmZmZ ddlmZ ddl	Z	ddl
mZmZmZ ddlZddlmZ ddlmZ ddlmc mZ dd	lmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z& dd
l'm(Z(m)Z) ddl*m+Z+ ddl,m-Z- erddl.m/Z/ d8d„Z0d8d„Z1d8d„Z2d„ Z3d„ Z4 e4e2e1e0e(¦  «        fd9d„Z5d„ Z6 e6e7¦  «        Z8 e6e9¦  «        Z: e;d„ d„  e<e¦  «        D ¦   «         D ¦   «         ¦  «        Z=e=fd„Z> e;d„ e=D ¦   «         ¦  «        Z? e>ej@        ¦  «        ZA e>ejB        ¦  «        ZC e>ejD        ¦  «        ZE e>ejF        ¦  «        ZG e>ejH        ¦  «        ZI e>ejJ        ¦  «        ZK e>ejL        ¦  «        ZM e>ejN        ¦  «        ZO e>ejP        ¦  «        ZQ e>ejR        ¦  «        ZS e>ejT        ¦  «        ZU e>ej        ¦  «        ZV e>ejW        ¦  «        ZX e;g d¢¦  «        ZY e;g d¢¦  «        ZZeCeAz  eSz  eUz  eVz  eXz  eGz  eZz  eYz
  Z[e?e[z
  eYz  Z\e[e\z  Z]d e]› �Z^e]r
J e^¦   «         ‚d:d#„Z_ ed$¦  «        Z`d;d(„Zad)„ Zbe e%d*œZcd+„ Zd eae[¦  «         edec¦  «         G d,„ d-eje        ¦  «        ¦   «         ¦   «         Zf e;g d.¢¦  «        Zg e;eez   ¦  «        Zh eae[egz  eI e;g d/¢¦  «        z  z
  ¦  «         G d0„ d1ef¦  «        ¦   «         Zi eae[egz   e;d2g¦  «        z  ¦  «         G d3„ d4ef¦  «        ¦   «         Zj G d5„ d6¦  «        Zkejeid7œZldS )<z
:func:`~pandas.eval` parsers.
é    )ÚannotationsN)ÚpartialÚreduce©Ú	iskeyword)ÚTYPE_CHECKINGÚClassVarÚTypeVar)ÚUndefinedVariableError)Úis_string_dtype)ÚARITH_OPS_SYMSÚBOOL_OPS_SYMSÚCMP_OPS_SYMSÚ	LOCAL_TAGÚMATHOPSÚ
REDUCTIONSÚUNARY_OPS_SYMSÚBinOpÚConstantÚFuncNodeÚOpÚTermÚUnaryOpÚis_term)Úclean_backtick_quoted_toksÚtokenize_string)ÚScope)Úprinting)ÚCallableÚtokútuple[int, str]Úreturnc                ó$   — | \  }}||dk    rdn|fS )a`  
    Rewrite the assignment operator for PyTables expressions that use ``=``
    as a substitute for ``==``.

    Parameters
    ----------
    tok : tuple of int, str
        ints correspond to the all caps constants in the tokenize module

    Returns
    -------
    tuple of int, str
        Either the input or token or the replacement values
    ú=ú==© ©r    ÚtoknumÚtokvals      úJC:\Projects\DSCons\.venv\Lib\site-packages\pandas\core\computation\expr.pyÚ_rewrite_assignr+   7   s$   € ð �N€FˆFØ˜6 Sš=˜=�4�4¨fÐ4Ð4ó    c                óŒ   — | \  }}|t           j        k    r,|dk    rt           j        dfS |dk    rt           j        dfS ||fS ||fS )aj  
    Replace ``&`` with ``and`` and ``|`` with ``or`` so that bitwise
    precedence is changed to boolean precedence.

    Parameters
    ----------
    tok : tuple of int, str
        ints correspond to the all caps constants in the tokenize module

    Returns
    -------
    tuple of int, str
        Either the input or token or the replacement values
    ú&Úandú|Úor)ÚtokenizeÚOPÚNAMEr'   s      r*   Ú_replace_booleansr5   J   sZ   € ð �N€FˆFØ•”ÒÐØ�SŠ=ˆ=Ý”= %Ð'Ð'Ø�sŠ]ˆ]Ý”= $Ð&Ð&Ø�vˆ~ÐØ�6ˆ>Ðr,   c                óf   — | \  }}|t           j        k    r|dk    rt           j        t          fS ||fS )a(  
    Replace local variables with a syntactically valid name.

    Parameters
    ----------
    tok : tuple of int, str
        ints correspond to the all caps constants in the tokenize module

    Returns
    -------
    tuple of int, str
        Either the input or token or the replacement values

    Notes
    -----
    This is somewhat of a hack in that we rewrite a string such as ``'@a'`` as
    ``'__pd_eval_local_a'`` by telling the tokenizer that ``__pd_eval_local_``
    is a ``tokenize.OP`` and to replace the ``'@'`` symbol with it.
    ú@)r2   r3   r   r'   s      r*   Ú_replace_localsr8   c   s9   € ð( �N€FˆFØ•”ÒÐ ¨3¢ ÝŒ{�IÐ%Ð%Ø�6ˆ>Ðr,   c                ó   ‡ ‡— ˆ ˆfd„S )z
    Compose 2 callables.
    c                 ó&   •—  ‰ ‰| i |¤Ž¦  «        S ©Nr&   )ÚargsÚkwargsÚfÚgs     €€r*   ú<lambda>z_compose2.<locals>.<lambda>�   s    ø€  1 1 Q Q¨Ð%7°Ð%7Ð%7Ñ#8Ô#8€ r,   r&   )r>   r?   s   ``r*   Ú	_compose2rA   }   s   øø€ ð 9Ð8Ð8Ð8Ð8Ð8r,   c                 óf   — t          | ¦  «        dk    s
J d¦   «         ‚t          t          | ¦  «        S )z&
    Compose 2 or more callables.
    é   z.At least 2 callables must be passed to compose)Úlenr   rA   )Úfuncss    r*   Ú_composerF   „   s.   € õ ˆu‰:Œ:˜Š>ˆ>ˆ>ÐK‰>Œ>ˆ>Ý•)˜UÑ#Ô#Ð#r,   ÚsourceÚstrc                ó�   ‡— t          ‰¦  «        s
J d¦   «         ‚t          j        ˆfd„t          | ¦  «        D ¦   «         ¦  «        S )aÒ  
    Compose a collection of tokenization functions.

    Parameters
    ----------
    source : str
        A Python source code string
    f : callable
        This takes a tuple of (toknum, tokval) as its argument and returns a
        tuple with the same structure but possibly different elements. Defaults
        to the composition of ``_rewrite_assign``, ``_replace_booleans``, and
        ``_replace_locals``.

    Returns
    -------
    str
        Valid Python source code

    Notes
    -----
    The `f` parameter can be any callable that takes *and* returns input of the
    form ``(toknum, tokval)``, where ``toknum`` is one of the constants from
    the ``tokenize`` module and ``tokval`` is a string.
    zf must be callablec              3  ó.   •K  — | ]} ‰|¦  «        V — Œd S r;   r&   )Ú.0Úxr>   s     €r*   ú	<genexpr>z_preparse.<locals>.<genexpr>«   s?   øè è € ð ð àð 	
ˆˆ!‰Œðð ð ð ð ð r,   )Úcallabler2   Ú
untokenizer   ©rG   r>   s    `r*   Ú	_preparserQ   Œ   sb   ø€ õ< �A‰;Œ;Ð,Ð,Ð,Ñ,Ô,ˆ;ÝÔð ð ð ð å  Ñ(Ô(ðñ ô ñ ô ð r,   c                ó   ‡ — ˆ fd„S )zO
    Factory for a type checking function of type ``t`` or tuple of types.
    c                ó.   •— t          | j        ‰¦  «        S r;   )Ú
isinstanceÚvalue)rL   Úts    €r*   r@   z_is_type.<locals>.<lambda>µ   s   ø€ •Z ¤¨Ñ+Ô+€ r,   r&   )rV   s   `r*   Ú_is_typerW   ±   s   ø€ ð ,Ð+Ð+Ð+Ð+r,   c              #  óx   K  — | ]5}t          |t          ¦  «        ¯t          |t          j        ¦  «        ¯1|V — Œ6d S r;   )rT   ÚtypeÚ
issubclassÚastÚAST)rK   Únodes     r*   rM   rM   ½   s\   è è € ð ð àÝ�$�ÑÔðõ #-¨Tµ3´7Ñ";Ô";ðØðð ð ð ð ð r,   c              #  ó@   K  — | ]}t          t          |¦  «        V — Œd S r;   )Úgetattrr[   )rK   Únames     r*   rM   rM   ¿   s,   è è € Ð9Ð9¨•�˜dÑ#Ô#Ð9Ð9Ð9Ð9Ð9Ð9r,   c                ó>   ‡ — ˆ fd„|D ¦   «         }t          |¦  «        S )zE
    Filter out AST nodes that are subclasses of ``superclass``.
    c              3  óF   •K  — | ]}t          |‰¦  «        ¯|j        V — Œd S r;   )rZ   Ú__name__)rK   r]   Ú
superclasss     €r*   rM   z _filter_nodes.<locals>.<genexpr>È   s4   øè è € ÐVÐV D½ÀDÈ*Ñ9UÔ9UÐV�$”-ÐVÐVÐVÐVÐVÐVr,   )Ú	frozenset)rd   Ú	all_nodesÚ
node_namess   `  r*   Ú_filter_nodesrh   Ä   s-   ø€ ð WÐVÐVÐV¨IÐVÑVÔV€JÝ�ZÑ Ô Ð r,   c              #  ó$   K  — | ]}|j         V — Œd S r;   )rc   ©rK   rL   s     r*   rM   rM   Ì   s$   è è € Ð;Ð;¨1˜AœJÐ;Ð;Ð;Ð;Ð;Ð;r,   )ÚAssignÚModuleÚExpr)ÚYieldÚGeneratorExpÚIfExpÚDictCompÚSetCompÚReprÚLambdaÚSetr\   ÚIsÚIsNotz$cannot both support and not support Ú	node_nameúCallable[..., None]c                ó   ‡ — ˆ fd„}|S )zV
    Return a function that raises a NotImplementedError with a passed node name.
    c                ó*   •— t          d‰› d�¦  «        ‚)Nú'z' nodes are not implemented)ÚNotImplementedError)Úselfr<   r=   rx   s      €r*   r>   z _node_not_implemented.<locals>.f
  s   ø€ Ý!Ð"L iÐ"LÐ"LÐ"LÑMÔMÐMr,   r&   )rx   r>   s   ` r*   Ú_node_not_implementedr     s(   ø€ ð
Nð Nð Nð Nð Nð €Hr,   Ú_TÚnodesúset[str]úCallable[[type[_T]], type[_T]]c                ó   ‡ — dˆ fd„}|S )z‹
    Decorator to disallow certain nodes from parsing. Raises a
    NotImplementedError instead.

    Returns
    -------
    callable
    Úclsútype[_T]r"   c                óŒ   •— d| _         ‰D ]8}t          |¦  «        }d|› �}| xj         |fz  c_         t          | ||¦  «         Œ9| S )Nr&   Úvisit_)Úunsupported_nodesr   Úsetattr)r…   r]   Ú
new_methodr`   r�   s       €r*   Ú
disallowedzdisallow.<locals>.disallowed   sb   ø€ à "ˆÔØð 	+ð 	+ˆDÝ.¨tÑ4Ô4ˆJØ"˜D�?�?ˆDàÐ!Ô! d WÑ,Ð!Ô!Ý�C˜˜zÑ*Ô*Ð*Ð*Øˆ
r,   )r…   r†   r"   r†   r&   )r�   rŒ   s   ` r*   Údisallowr�     s)   ø€ ð	ð 	ð 	ð 	ð 	ð 	ð Ðr,   c                ó   ‡ ‡— ˆ ˆfd„}|S )zw
    Return a function to create an op class with its symbol already passed.

    Returns
    -------
    callable
    c                ó&   •— t          ‰‰g|¢R i |¤ŽS )z’
        Return a partial function with an Op subclass with an operator already passed.

        Returns
        -------
        callable
        )r   )r~   r]   r<   r=   Úop_classÚ	op_symbols       €€r*   r>   z_op_maker.<locals>.f7  s%   ø€ õ �x Ð<¨TÐ<Ð<Ð<°VÐ<Ð<Ð<r,   r&   )r�   r‘   r>   s   `` r*   Ú	_op_makerr’   .  s)   øø€ ð=ð =ð =ð =ð =ð =ð €Hr,   )ÚbinaryÚunaryc                ó   ‡ — ˆ fd„}|S )z9
    Decorator to add default implementation of ops.
    c                óî   •— ‰                      ¦   «         D ]^\  }}t          | |› d�¦  «        }t          | |› d�¦  «        }|D ]0}||         }|�$t          ||¦  «        }t          | d|› �|¦  «         Œ1Œ_| S )NÚ_opsÚ_op_nodes_maprˆ   )Úitemsr_   r’   rŠ   )	r…   Úop_attr_namer�   ÚopsÚops_mapÚopÚop_nodeÚmade_opÚ
op_classess	           €r*   r>   zadd_ops.<locals>.fL  s¨   ø€ Ø&0×&6Ò&6Ñ&8Ô&8ð 	>ð 	>Ñ"ˆL˜(Ý˜# ,Ð4Ð4Ð4Ñ5Ô5ˆCÝ˜c lÐ#AÐ#AÐ#AÑBÔBˆGØð >ð >�Ø! "œ+�ØÐ&Ý'¨°"Ñ5Ô5�GÝ˜CÐ!3¨'Ð!3Ð!3°WÑ=Ô=Ð=øð	>ð
 ˆ
r,   r&   )r    r>   s   ` r*   Úadd_opsr¡   G  s#   ø€ ð
	ð 	ð 	ð 	ð 	ð €Hr,   c                  óÜ  — e Zd ZU dZeZded<   eZded<   e	e
z   ez   ZdZ e eeed¬¦  «        ¦  «        ZeZdZ e eeed¬¦  «        ¦  «        Zej        ej        ej        ej        ej        ej        ej        ej        iZd	ed
<   efd-d„Zd„ Zd„ Zd„ Zd„ Z d.d„Z!d„ Z"d„ Z#	 	 d/d„Z$d„ Z%d„ Z&d0d„Z'd0d„Z(d0d„Z)d0d„Z*d0d „Z+d0d!„Z,e,Z-d"„ Z.d0d#„Z/d1d%„Z0d&„ Z1d'„ Z2d2d(„Z3d)„ Z4d*„ Z5d+„ Z6d,„ Z7dS )3ÚBaseExprVisitorzÌ
    Custom ast walker. Parsers of other engines should subclass this class
    if necessary.

    Parameters
    ----------
    env : Scope
    engine : str
    parser : str
    preparser : callable
    zClassVar[type[Term]]Ú
const_typeÚ	term_type)ÚGtÚLtÚGtEÚLtEÚEqÚNotEqÚInÚNotInÚBitAndÚBitOrÚAndÚOrÚAddÚSubÚMultÚDivÚPowÚFloorDivÚModT©Ústrict)ÚUAddÚUSubÚInvertÚNotztuple[str, ...]r‰   r"   ÚNonec                óL   — || _         || _        || _        || _        d | _        d S r;   )ÚenvÚengineÚparserÚ	preparserÚassigner)r~   rÁ   rÂ   rÃ   rÄ   s        r*   Ú__init__zBaseExprVisitor.__init__‘  s)   € ØˆŒØˆŒØˆŒØ"ˆŒØˆŒˆˆr,   c                ó’  — t          |t          ¦  «        rƒ|                      |¦  «        }	 t          j        t          j        |¦  «        ¦  «        }nF# t          $ r9}t          d„ |                     ¦   «         D ¦   «         ¦  «        rd|_	        |‚d }~ww xY wdt          |¦  «        j        › �}t          | |¦  «        } ||fi |¤ŽS )Nc              3  ó4   K  — | ]}t          |¦  «        V — Œd S r;   r   rj   s     r*   rM   z(BaseExprVisitor.visit.<locals>.<genexpr>ž  s(   è è € Ð;Ð;¨•y ‘|”|Ð;Ð;Ð;Ð;Ð;Ð;r,   z4Python keyword not valid identifier in numexpr queryrˆ   )rT   rH   rÄ   r[   Úfix_missing_locationsÚparseÚSyntaxErrorÚanyÚsplitÚmsgrY   rc   r_   )r~   r]   r=   ÚcleanÚeÚmethodÚvisitors          r*   ÚvisitzBaseExprVisitor.visit˜  sØ   € Ý�d�CÑ Ô ð 	Ø—N’N 4Ñ(Ô(ˆEðÝÔ0µ´¸5Ñ1AÔ1AÑBÔB��øÝð ð ð ÝÐ;Ð;¨U¯[ª[©]¬]Ð;Ñ;Ô;Ñ;Ô;ð SØR�A”EØ�øøøøðøøøð
 0�$˜t™*œ*Ô-Ð/Ð/ˆÝ˜$ Ñ'Ô'ˆØˆw�tÐ&Ð&˜vÐ&Ð&Ð&s   ¬&A Á
BÁ4BÂBc                ó†   — t          |j        ¦  «        dk    rt          d¦  «        ‚|j        d         } | j        |fi |¤ŽS )NrC   z#only a single expression is allowedr   )rD   ÚbodyrË   rÓ   )r~   r]   r=   Úexprs       r*   Úvisit_ModulezBaseExprVisitor.visit_Module¦  sI   € ÝˆtŒy‰>Œ>˜QÒÐÝÐCÑDÔDÐDØŒy˜Œ|ˆØˆtŒz˜$Ð)Ð) &Ð)Ð)Ð)r,   c                ó(   —  | j         |j        fi |¤ŽS r;   ©rÓ   rU   ©r~   r]   r=   s      r*   Ú
visit_ExprzBaseExprVisitor.visit_Expr¬  s   € ØˆtŒz˜$œ*Ð/Ð/¨Ð/Ð/Ð/r,   c                óH  — |j         }t          |¦  «        }t          |¦  «        rãt          |¦  «        rÔ|| j        v rËt	          t
          ||f¦  «        \  }}t	          t          ||f¦  «        \  }}	|s|s|s|	r | j        |         ¦   «         }|	r;| j                             |j	        g¦  «        }
|  
                    |
| j        ¦  «        }|r;| j                             |j	        g¦  «        }
|  
                    |
| j        ¦  «        }|                      |¦  «        }||||fS r;   )r�   rY   r   Úrewrite_mapÚmapÚ_is_listÚ_is_strrÁ   Úadd_tmprU   r¥   rÓ   )r~   r]   ÚleftÚrightÚop_instanceÚop_typeÚ	left_listÚ
right_listÚleft_strÚ	right_strr`   r�   s               r*   Ú_rewrite_membership_opz&BaseExprVisitor._rewrite_membership_op¯  s2  € à”gˆÝ�{Ñ#Ô#ˆõ �4‰=Œ=ð 	6�W U™^œ^ð 	6°¸4Ô;KÐ0KÐ0KÝ$'­°4¸°-Ñ$@Ô$@Ñ!ˆI�zÝ"%¥g°°e¨}Ñ"=Ô"=ÑˆH�ið ð :˜Jð :¨(ð :°ið :Ø7˜dÔ.¨wÔ7Ñ9Ô9�ð ð 7Ø”x×'Ò'¨¬¨Ñ6Ô6�ØŸš t¨T¬XÑ6Ô6�àð 6Ø”x×'Ò'¨¬¨Ñ5Ô5�Ø—~’~ d¨D¬HÑ5Ô5�à�ZŠZ˜Ñ$Ô$ˆØ�;  eÐ+Ð+r,   Nc                ó¾   — |€|                       |j        d¬¦  «        }|€|                       |j        d¬¦  «        }|                      |||¦  «        \  }}}}||||fS )Nrâ   )Úsiderã   )rÓ   râ   rã   rê   )r~   r]   râ   rã   r�   r�   s         r*   Ú_maybe_transform_eq_nez&BaseExprVisitor._maybe_transform_eq_neÊ  si   € Øˆ<Ø—:’:˜dœi¨f�:Ñ5Ô5ˆDØˆ=Ø—J’J˜tœz°�JÑ8Ô8ˆEØ$(×$?Ò$?ÀÀdÈEÑ$RÔ$RÑ!ˆˆH�d˜EØ�8˜T 5Ð(Ð(r,   c                ó  — t          j        t           j        ¦  «        }|j        rnt	          |d¦  «        r^|j        sW|j        |k    rL| j                             t          j        |j        ¦  «        ¦  «        }|  	                    || j        ¦  «        }|j        rnt	          |d¦  «        r^|j        sW|j        |k    rL| j                             t          j        |j        ¦  «        ¦  «        }|  	                    || j        ¦  «        }||fS )NrU   )
ÚnpÚdtypeÚfloat32Ú	is_scalarÚhasattrÚreturn_typerÁ   rá   rU   r¥   )r~   râ   rã   Úf32r`   s        r*   Ú_maybe_downcast_constantsz)BaseExprVisitor._maybe_downcast_constantsÒ  sý   € ÝŒh•r”zÑ"Ô"ˆàŒNð	2å˜˜gÑ&Ô&ð	2ð ”Oð	2ð Ô! SÒ(Ð(ð ”8×#Ò#¥B¤J¨t¬zÑ$:Ô$:Ñ;Ô;ˆDØ—>’> $¨¬Ñ1Ô1ˆDàŒOð	3å˜˜wÑ'Ô'ð	3ð ”Nð	3ð Ô  CÒ'Ð'ð ”8×#Ò#¥B¤J¨u¬{Ñ$;Ô$;Ñ<Ô<ˆDØ—N’N 4¨¬Ñ2Ô2ˆEà�Uˆ{Ðr,   c                ó\   — |                      | j        | j        | j        | j        |¦  «        S r;   )ÚevaluaterÁ   rÂ   rÃ   r¥   )r~   ÚbinopÚeval_in_pythons      r*   Ú_maybe_evalzBaseExprVisitor._maybe_evalé  s-   € ð �~Š~ØŒH�d”k 4¤;°´Àñ
ô 
ð 	
r,   ©Úinznot in©r%   z!=ú<ú>z<=z>=c           	     óŽ  —  |||¦  «        }|j         r(t          d|j        › d|j        › d|j        › d�¦  «        ‚| j        dk    rK|j        t
          v rt          |dd¦  «        st          |dd¦  «        r|                      || j        ¦  «        S |j        |v r|                      ||¦  «        S | j        dk    r‰t          |dd ¦  «        t          k    sVt          t          |dd ¦  «        ¦  «        s8t          |dd ¦  «        t          k    st          t          |dd ¦  «        ¦  «        r|                      |||z   ¦  «        S |S )	Nz unsupported operand type(s) for z: 'z' and 'r|   ÚpytablesÚis_datetimeFrô   )Úhas_invalid_return_typeÚ	TypeErrorr�   rY   rÂ   r   r_   rû   Ú
binary_opsÚobjectr   )r~   r�   r�   ÚlhsÚrhsrú   Úmaybe_eval_in_pythonÚress           r*   Ú_maybe_evaluate_binopz%BaseExprVisitor._maybe_evaluate_binopô  sz  € ð ˆb��c‰lŒlˆàÔ&ð 	Ýð1°3´6ð 1ð 1Ø”Hð1ð 1Ø%(¤Xð1ð 1ð 1ñô ð ð
 Œ;˜*Ò$Ð$ØŒV•|Ð#Ð#­°°]ÀEÑ(JÔ(JÐ#Ý�s˜M¨5Ñ1Ô1ð $ð
 ×#Ò# C¨¬Ñ9Ô9Ð9àŒ6�^Ð#Ð#à×#Ò# C¨Ñ8Ô8Ð8ØŒ[˜JÒ&Ð&å˜˜]¨DÑ1Ô1µVÒ;Ð;Ý"¥7¨3°¸tÑ#DÔ#DÑEÔEð <å˜3 ¨tÑ4Ô4½Ò>Ð>Ý"¥7¨3°¸tÑ#DÔ#DÑEÔEð ?ð
 ×'Ò'¨¨^Ð>RÑ-RÑSÔSÐSØˆ
r,   c                ó˜   — |                       |¦  «        \  }}}}|                      ||¦  «        \  }}|                      ||||¦  «        S r;   )rí   rö   r  )r~   r]   r=   r�   r�   râ   rã   s          r*   Úvisit_BinOpzBaseExprVisitor.visit_BinOp  sQ   € Ø$(×$?Ò$?ÀÑ$EÔ$EÑ!ˆˆH�d˜EØ×4Ò4°T¸5ÑAÔA‰ˆˆeØ×)Ò)¨"¨h¸¸eÑDÔDÐDr,   c                ó€   — |                       |j        ¦  «        }|                       |j        ¦  «        } ||¦  «        S r;   )rÓ   r�   Úoperand)r~   r]   r=   r�   r  s        r*   Úvisit_UnaryOpzBaseExprVisitor.visit_UnaryOp!  s6   € Ø�ZŠZ˜œÑ Ô ˆØ—*’*˜Tœ\Ñ*Ô*ˆØˆr�'‰{Œ{Ðr,   r   c                ó4   —  | j         |j        | j        fi |¤ŽS r;   )r¥   ÚidrÁ   rÚ   s      r*   Ú
visit_NamezBaseExprVisitor.visit_Name&  s"   € ØˆtŒ~˜dœg t¤xÐ:Ð:°6Ð:Ð:Ð:r,   c                óB   — |                       |j        | j        ¦  «        S r;   ©r¤   rU   rÁ   rÚ   s      r*   Úvisit_NameConstantz"BaseExprVisitor.visit_NameConstant*  ó   € Ø�Š˜tœz¨4¬8Ñ4Ô4Ð4r,   c                óB   — |                       |j        | j        ¦  «        S r;   r  rÚ   s      r*   Ú	visit_NumzBaseExprVisitor.visit_Num.  r  r,   c                óB   — |                       |j        | j        ¦  «        S r;   r  rÚ   s      r*   Úvisit_ConstantzBaseExprVisitor.visit_Constant1  r  r,   c                óv   — | j                              |j        ¦  «        }|                      || j         ¦  «        S r;   )rÁ   rá   Úsr¥   ©r~   r]   r=   r`   s       r*   Ú	visit_StrzBaseExprVisitor.visit_Str5  s/   € ØŒx×Ò ¤Ñ'Ô'ˆØ�~Š~˜d D¤HÑ-Ô-Ð-r,   c                ó�   ‡ — ‰ j                              ˆ fd„|j        D ¦   «         ¦  «        }‰                      |‰ j         ¦  «        S )Nc                óV   •— g | ]%} ‰                      |¦  «        ‰j        ¦  «        ‘Œ&S r&   ©rÓ   rÁ   )rK   rÐ   r~   s     €r*   ú
<listcomp>z.BaseExprVisitor.visit_List.<locals>.<listcomp>:  s/   ø€ Ð LÐ LÐ L¸Q  §¢¨A¡¤¨t¬xÑ!8Ô!8Ð LÐ LÐ Lr,   )rÁ   rá   Úeltsr¥   r  s   `   r*   Ú
visit_ListzBaseExprVisitor.visit_List9  sE   ø€ ØŒx×ÒÐ LÐ LÐ LÐ LÀ$Ä)Ð LÑ LÔ LÑMÔMˆØ�~Š~˜d D¤HÑ-Ô-Ð-r,   c                ó6   — |                       |j        ¦  «        S )zdf.index[4]rÙ   rÚ   s      r*   Úvisit_IndexzBaseExprVisitor.visit_Index?  s   € à�zŠz˜$œ*Ñ%Ô%Ð%r,   c                ó¨  — ddl m} |                      |j        ¦  «        }|                      |j        ¦  «        } ||| j        | j        | j        ¬¦  «        }	 |j        |         }n6# t          $ r)  ||| j        | j        | j        ¬¦  «        }||         }Y nw xY w| j         	                    |¦  «        }	|  
                    |	| j        ¬¦  «        S )Nr   )Úeval)Ú
local_dictrÂ   rÃ   )rÁ   )Úpandasr*  rÓ   rU   ÚslicerÁ   rÂ   rÃ   ÚAttributeErrorrá   r¥   )
r~   r]   r=   Úpd_evalrU   ÚslobjÚresultÚvr  r`   s
             r*   Úvisit_SubscriptzBaseExprVisitor.visit_SubscriptC  sð   € Ø*Ð*Ð*Ð*Ð*Ð*à—
’
˜4œ:Ñ&Ô&ˆØ—
’
˜4œ:Ñ&Ô&ˆØ�Ø˜dœh¨t¬{À4Ä;ð
ñ 
ô 
ˆð	à”˜FÔ#ˆAˆAøÝð 	ð 	ð 	à�'Ø $¤(°4´;ÀtÄ{ðñ ô ˆCð �F”ˆAˆAˆAð	øøøð Œx×Ò Ñ"Ô"ˆØ�~Š~˜d¨¬ˆ~Ñ1Ô1Ð1s   ÁA( Á(0BÂBr-  c                óö   — |j         }|�|                      |¦  «        j        }|j        }|�|                      |¦  «        j        }|j        }|�|                      |¦  «        j        }t          |||¦  «        S )zdf.index[slice(4,6)])ÚlowerrÓ   rU   ÚupperÚstepr-  )r~   r]   r=   r5  r6  r7  s         r*   Úvisit_SlicezBaseExprVisitor.visit_SliceW  sw   € à”
ˆØÐØ—J’J˜uÑ%Ô%Ô+ˆEØ”
ˆØÐØ—J’J˜uÑ%Ô%Ô+ˆEØŒyˆØÐØ—:’:˜dÑ#Ô#Ô)ˆDå�U˜E 4Ñ(Ô(Ð(r,   c                óæ  — t          |j        ¦  «        dk    rt          d¦  «        ‚t          |j        d         t          j        ¦  «        st          d¦  «        ‚| j        j        €t          d¦  «        ‚	  | j	        |j        d         fi |¤Ž}n"# t          $ r |j        d         j        }Y nw xY wt          |d|¦  «        | _        | j        €t          d¦  «        ‚ | j	        |j        fi |¤ŽS )	zÄ
        support a single assignment node, like

        c = a + b

        set the assigner at the top level, must be a Name node which
        might or might not exist in the resolvers

        rC   z#can only assign a single expressionr   z5left hand side of an assignment must be a single nameNz%cannot assign without a target objectr`   z@left hand side of an assignment must be a single resolvable name)rD   ÚtargetsrË   rT   r[   ÚNamerÁ   ÚtargetÚ
ValueErrorrÓ   r   r  r_   rÅ   rU   )r~   r]   r=   rÅ   s       r*   Úvisit_AssignzBaseExprVisitor.visit_Assigne  s  € õ ˆtŒ|ÑÔ Ò!Ð!ÝÐCÑDÔDÐDÝ˜$œ, qœ/­3¬8Ñ4Ô4ð 	WÝÐUÑVÔVÐVØŒ8Œ?Ð"ÝÐDÑEÔEÐEð	*Ø!�t”z $¤,¨q¤/Ð<Ð<°VÐ<Ð<ˆHˆHøÝ%ð 	*ð 	*ð 	*Ø”| A”Ô)ˆHˆHˆHð	*øøøõ   ¨&°(Ñ;Ô;ˆŒØŒ=Ð ÝØRñô ð ð ˆtŒz˜$œ*Ð/Ð/¨Ð/Ð/Ð/s   Á8B ÂB1Â0B1c                ó  — |j         }|j        }|j        }t          |t          j        ¦  «        r»|                      |¦  «        }t          |d¦  «        r|j        }n || j        ¦  «        }	 t          ||¦  «        }| j         
                    |¦  «        }	|                      |	| j        ¦  «        S # t          $ r+ t          |t          j        ¦  «        r|j        |k    r|cY S ‚ w xY wt          dt!          |¦  «        j        › �¦  «        ‚)NrU   zInvalid Attribute context )ÚattrrU   ÚctxrT   r[   ÚLoadrÓ   ró   rÁ   r_   rá   r¥   r.  r;  r  r=  rY   rc   )
r~   r]   r=   r@  rU   rA  Úvisited_valueÚresolvedr2  r`   s
             r*   Úvisit_AttributezBaseExprVisitor.visit_Attributeƒ  s  € ØŒyˆØ”
ˆàŒhˆÝ�c�3œ8Ñ$Ô$ð 	à ŸJšJ uÑ-Ô-ˆMÝ�} gÑ.Ô.ð 3Ø(Ô.��à(˜=¨¬Ñ2Ô2�ðÝ˜H dÑ+Ô+�Ø”x×'Ò'¨Ñ*Ô*�Ø—~’~ d¨D¬HÑ5Ô5Ð5øÝ!ð ð ð å˜e¥S¤XÑ.Ô.ð $°5´8¸tÒ3CÐ3CØ#�O�O�OØð	øøøõ ÐJµd¸3±i´iÔ6HÐJÐJÑKÔKÐKs   Á.AB3 Â31C(Ã&C(c                ó0  ‡ — t          |j        t          j        ¦  «        r+|j        j        dk    r‰                      |j        ¦  «        }n„t          |j        t          j        ¦  «        st          d¦  «        ‚	 ‰                      |j        ¦  «        }n:# t          $ r- 	 t          |j        j        ¦  «        }n# t          $ r ‚ w xY wY nw xY w|€t          d|j        j        › �¦  «        ‚t          |d¦  «        r|j        }t          |t          ¦  «        r7ˆ fd„|j        D ¦   «         }|j        rt          d|j        › d�¦  «        ‚ ||Ž S ˆ fd„|j        D ¦   «         }|j        D ]p}t          |t          j        ¦  «        st          d	|j        j        › d
�¦  «        ‚|j        r0 ‰                      |j        ¦  «        ‰ j        ¦  «        ||j        <   Œq‰ j                              ||i |¤Ž¦  «        }‰                      |‰ j        ¬¦  «        S )NÚ__call__z"Only named functions are supportedzInvalid function call rU   c                ó:   •— g | ]}‰                      |¦  «        ‘ŒS r&   )rÓ   ©rK   Úargr~   s     €r*   r$  z.BaseExprVisitor.visit_Call.<locals>.<listcomp>´  s#   ø€ Ð=Ð=Ð=¨C˜Ÿ
š
 3™œÐ=Ð=Ð=r,   z
Function "z$" does not support keyword argumentsc                óV   •— g | ]%} ‰                      |¦  «        ‰j        ¦  «        ‘Œ&S r&   r#  rI  s     €r*   r$  z.BaseExprVisitor.visit_Call.<locals>.<listcomp>¾  s/   ø€ ÐGÐGÐG°c˜˜Ÿ
š
 3™œ¨¬Ñ1Ô1ÐGÐGÐGr,   z keyword error in function call 'r|   )r`   rÁ   )rT   Úfuncr[   Ú	Attributer@  rE  r;  r  rÓ   r   r   r  r=  ró   rU   r<   Úkeywordsr`   ÚkeywordrJ  rÁ   rá   r¥   )r~   r]   rì   r=   r  Únew_argsÚkeyr`   s   `       r*   Ú
visit_CallzBaseExprVisitor.visit_Call›  sY  ø€ Ý�d”i¥¤Ñ/Ô/ð 	°D´I´NÀjÒ4PÐ4PØ×&Ò& t¤yÑ1Ô1ˆCˆCÝ˜DœI¥s¤xÑ0Ô0ð 	ÝÐ@ÑAÔAÐAðØ—j’j ¤Ñ+Ô+��øÝ)ð ð ð ðÝ" 4¤9¤<Ñ0Ô0�C�CøÝ!ð ð ð àðøøøð �Cðøøøð ˆ;åØ7¨¬¬Ð7Ð7ñô ð õ �3˜Ñ Ô ð 	Ø”)ˆCå�c�8Ñ$Ô$ð 	;Ø=Ð=Ð=Ð=°4´9Ð=Ñ=Ô=ˆHàŒ}ð ÝØO ¤ÐOÐOÐOñô ð ð �3˜�>Ð!ð HÐGÐGÐG¸T¼YÐGÑGÔGˆHà”}ð 	Fð 	F�Ý! #¥s¤{Ñ3Ô3ð õ %ØJ¸4¼9¼<ÐJÐJÐJñô ð ð ”7ð FØ&; d§j¢j°´Ñ&;Ô&;¸D¼HÑ&EÔ&E�F˜3œ7‘Oøà”8×#Ò# C C¨Ð$<°VÐ$<Ð$<Ñ=Ô=ˆDØ—>’> t°´�>Ñ:Ô:Ð:s*   Á;B Â
CÂ!B;Â:CÂ;CÃCÃCc                ó   — |S r;   r&   )r~   r�   s     r*   Útranslate_InzBaseExprVisitor.translate_InÎ  s   € Øˆ	r,   c           
     óJ  — |j         }|j        }t          |¦  «        dk    rR|                      |d         ¦  «        }t	          j        ||j        |d         ¬¦  «        }|                      |¦  «        S |j        }g }t          ||d¬¦  «        D ][\  }}	|                      t	          j	        |	g||                      |¦  «        g¬¦  «        ¦  «        }
|	}| 
                    |
¦  «         Œ\|                      t	          j        t	          j        ¦   «         |¬¦  «        ¦  «        S )NrC   r   )r�   râ   rã   Tr¹   )Úcomparatorsrâ   r›   )r�   Úvalues)r›   rV  rD   rT  r[   r   râ   rÓ   ÚzipÚCompareÚappendÚBoolOpr°   )r~   r]   r=   r›   Úcompsr�   rù   râ   rW  ÚcompÚnew_nodes              r*   Úvisit_ComparezBaseExprVisitor.visit_CompareÑ  s  € ØŒhˆØÔ ˆõ ˆu‰:Œ:˜Š?ˆ?Ø×"Ò" 3 q¤6Ñ*Ô*ˆBÝ”I ¨$¬)¸5À¼8ÐDÑDÔDˆEØ—:’:˜eÑ$Ô$Ð$ð ŒyˆØˆÝ˜C ¨tÐ4Ñ4Ô4ð 	$ð 	$‰HˆB�Ø—z’zÝ”¨¨°TÀ×@QÒ@QÐRTÑ@UÔ@UÐ?VÐWÑWÔWñô ˆHð ˆDØ�MŠM˜(Ñ#Ô#Ð#Ð#Ø�zŠz�#œ*­¬©	¬	¸&ÐAÑAÔAÑBÔBÐBr,   c                óh   — t          |t          t          f¦  «        r|S |                      |¦  «        S r;   )rT   r   r   rÓ   )r~   Úbops     r*   Ú_try_visit_binopz BaseExprVisitor._try_visit_binopæ  s-   € Ý�c�B¥˜:Ñ&Ô&ð 	ØˆJØ�zŠz˜#‰ŒÐr,   c                ó@   ‡ ‡— ˆˆ fd„}‰j         }t          ||¦  «        S )Nc                óÊ   •— ‰                      | ¦  «        }‰                      |¦  «        }‰                     ‰||¦  «        \  }}}}‰                     |‰j        ||¦  «        S r;   )rb  rí   r  r�   )rL   Úyr  r	  r�   r�   r]   r~   s         €€r*   rÒ   z-BaseExprVisitor.visit_BoolOp.<locals>.visitorì  se   ø€ Ø×'Ò'¨Ñ*Ô*ˆCØ×'Ò'¨Ñ*Ô*ˆCà%)×%@Ò%@ÀÀsÈCÑ%PÔ%PÑ"ˆB�˜#˜sØ×-Ò-¨b°$´'¸3ÀÑDÔDÐDr,   )rW  r   )r~   r]   r=   rÒ   Úoperandss   ``   r*   Úvisit_BoolOpzBaseExprVisitor.visit_BoolOpë  sA   øø€ ð	Eð 	Eð 	Eð 	Eð 	Eð 	Eð ”;ˆÝ�g˜xÑ(Ô(Ð(r,   ©r"   r¿   )NN)rü   rþ   )r"   r   )r"   r-  r;   )8rc   Ú
__module__Ú__qualname__Ú__doc__r   r¤   Ú__annotations__r   r¥   r   r   r   r  Úbinary_op_nodesÚdictrX  Úbinary_op_nodes_mapr   Ú	unary_opsÚunary_op_nodesÚunary_op_nodes_mapr[   rª   r¬   r«   r­   rÝ   rQ   rÆ   rÓ   r×   rÛ   rê   rí   rö   rû   r  r  r  r  r  r  r  r   r&  Úvisit_Tupler(  r3  r8  r>  rE  rR  rT  r_  rb  rg  r&   r,   r*   r£   r£   Z  sÖ  € € € € € € ð
ð 
ð (0€JÐ/Ð/Ð/Ñ/Ø&*€IÐ*Ð*Ð*Ñ*à Ñ-°Ñ>€Jð€Oð* ˜$˜s˜s :¨ÀtÐLÑLÔLÑMÔMÐà€IØ4€NØ˜˜c˜c )¨^ÀDÐIÑIÔIÑJÔJÐð 	Œ�”ØŒ	�3”9ØŒ�”ØŒ	�3”9ð	€Kð 'Ð&Ð&Ñ&à6?ð ð ð ð ð ð'ð 'ð 'ð*ð *ð *ð0ð 0ð 0ð,ð ,ð ,ð6)ð )ð )ð )ðð ð ð.	
ð 	
ð 	
ð" (Ø?ð&ð &ð &ð &ðPEð Eð Eð
ð ð ð
;ð ;ð ;ð ;ð5ð 5ð 5ð 5ð5ð 5ð 5ð 5ð5ð 5ð 5ð 5ð.ð .ð .ð .ð.ð .ð .ð .ð €Kð&ð &ð &ð2ð 2ð 2ð 2ð()ð )ð )ð )ð0ð 0ð 0ð<Lð Lð Lð01;ð 1;ð 1;ð 1;ðfð ð ðCð Cð Cð*ð ð ð
	)ð 	)ð 	)ð 	)ð 	)r,   r£   )ÚDictr[  r¬   r­   )r[  rM  r¬   r­   ÚTuplec                  óP   ‡ — e Zd Z ee eeee¦  «        ¬¦  «        fdˆ fd„Z	ˆ xZ
S )ÚPandasExprVisitor)r>   r"   r¿   c                óP   •— t          ¦   «                              ||||¦  «         d S r;   ©ÚsuperrÆ   ©r~   rÁ   rÂ   rÃ   rÄ   Ú	__class__s        €r*   rÆ   zPandasExprVisitor.__init__   s)   ø€ õ 	‰Œ×Ò˜˜f f¨iÑ8Ô8Ð8Ð8Ð8r,   rh  )rc   ri  rj  r   rQ   rF   r8   r5   r   rÆ   Ú__classcell__©r|  s   @r*   rw  rw  û  sn   ø€ € € € € ð �'ØØˆh�Ð(9Ð;UÑVÔVð
ñ 
ô 
ð
9ð 
9ð 
9ð 
9ð 
9ð 
9ð 
9ð 
9ð 
9ð 
9ð 
9r,   rw  r¾   c                  ó(   ‡ — e Zd Zdd„fdˆ fd„Zˆ xZS )ÚPythonExprVisitorNc                ó   — | S r;   r&   rP   s     r*   r@   zPythonExprVisitor.<lambda>  s   € ÀF€ r,   r"   r¿   c                óR   •— t          ¦   «                              ||||¬¦  «         d S )N)rÄ   ry  r{  s        €r*   rÆ   zPythonExprVisitor.__init__  s,   ø€ õ 	‰Œ×Ò˜˜f f¸	ÐÑBÔBÐBÐBÐBr,   r;   rh  )rc   ri  rj  rÆ   r}  r~  s   @r*   r€  r€    sY   ø€ € € € € ð .KÐ-JÐ-JðCð Cð Cð Cð Cð Cð Cð Cð Cð Cð Cr,   r€  c                  óŒ   — e Zd ZU dZded<   ded<   ded<   	 	 	 	 ddd„Zed„ ¦   «         Zd„ Zdd„Z	dd„Z
d„ Zed„ ¦   «         Zd	S )rm   a  
    Object encapsulating an expression.

    Parameters
    ----------
    expr : str
    engine : str, optional, default 'numexpr'
    parser : str, optional, default 'pandas'
    env : Scope, optional, default None
    level : int, optional, default 2
    r   rÁ   rH   rÂ   rÃ   Únumexprr,  Nr   úScope | NoneÚlevelÚintr"   r¿   c                óì   — || _         |pt          |dz   ¬¦  «        | _        || _        || _        t          |         | j        | j        | j        ¦  «        | _        |                      ¦   «         | _        d S )NrC   )r†  )	rÖ   r   rÁ   rÂ   rÃ   ÚPARSERSÚ_visitorrÊ   Úterms)r~   rÖ   rÂ   rÃ   rÁ   r†  s         r*   rÆ   zExpr.__init__&  sd   € ð ˆŒ	ØÐ0�% e¨a¡iÐ0Ñ0Ô0ˆŒØˆŒØˆŒÝ œ¨¬°$´+¸t¼{ÑKÔKˆŒØ—Z’Z‘\”\ˆŒ
ˆ
ˆ
r,   c                ó.   — t          | j        dd ¦  «        S )NrÅ   )r_   rŠ  ©r~   s    r*   rÅ   zExpr.assigner5  s   € å�t”} j°$Ñ7Ô7Ð7r,   c                ó6   — |                       | j        ¦  «        S r;   )r‹  rÁ   r�  s    r*   rG  zExpr.__call__9  s   € Ø�zŠz˜$œ(Ñ#Ô#Ð#r,   c                ó4   — t          j        | j        ¦  «        S r;   )r   Úpprint_thingr‹  r�  s    r*   Ú__repr__zExpr.__repr__<  s   € ÝÔ$ T¤ZÑ0Ô0Ð0r,   c                ó*   — t          | j        ¦  «        S r;   )rD   rÖ   r�  s    r*   Ú__len__zExpr.__len__?  s   € Ý�4”9‰~Œ~Ðr,   c                ó@   — | j                              | j        ¦  «        S )z&
        Parse an expression.
        )rŠ  rÓ   rÖ   r�  s    r*   rÊ   z
Expr.parseB  s   € ð Œ}×"Ò" 4¤9Ñ-Ô-Ð-r,   c                ó¾   — t          | j        ¦  «        rt          | j        j        g¦  «        S t          d„ t	          j        | j        ¦  «        D ¦   «         ¦  «        S )z1
        Get the names in an expression.
        c              3  ó$   K  — | ]}|j         V — Œd S r;   )r`   )rK   Úterms     r*   rM   zExpr.names.<locals>.<genexpr>O  s$   è è € ÐGÐG t˜œÐGÐGÐGÐGÐGÐGr,   )r   r‹  re   r`   ÚcomÚflattenr�  s    r*   Únamesz
Expr.namesH  sT   € õ
 �4”:ÑÔð 	0Ý˜dœjœoÐ.Ñ/Ô/Ð/ÝÐGÐG­s¬{¸4¼:Ñ/FÔ/FÐGÑGÔGÑGÔGÐGr,   )r„  r,  Nr   )
rÂ   rH   rÃ   rH   rÁ   r…  r†  r‡  r"   r¿   )r"   rH   )r"   r‡  )rc   ri  rj  rk  rl  rÆ   ÚpropertyrÅ   rG  r‘  r“  rÊ   rš  r&   r,   r*   rm   rm     så   € € € € € € ð
ð 
ð €J€J�JØ€K€K�KØ€K€K�Kð
  ØØ Øð"ð "ð "ð "ð "ð ð8ð 8ñ „Xð8ð$ð $ð $ð1ð 1ð 1ð 1ðð ð ð ð.ð .ð .ð ðHð Hñ „XðHð Hð Hr,   rm   )Úpythonr,  )r    r!   r"   r!   )rG   rH   r"   rH   )rx   rH   r"   ry   )r�   r‚   r"   rƒ   )mrk  Ú
__future__r   r[   Ú	functoolsr   r   rO  r   r2   Útypingr   r	   r
   Únumpyrï   Úpandas.errorsr   Úpandas.core.dtypes.commonr   Úpandas.core.commonÚcoreÚcommonr˜  Úpandas.core.computation.opsr   r   r   r   r   r   r   r   r   r   r   r   r   r   Úpandas.core.computation.parsingr   r   Úpandas.core.computation.scoper   Úpandas.io.formatsr   Úcollections.abcr   r+   r5   r8   rA   rF   rQ   rW   Úlistrß   rH   rà   re   ÚdirÚ
_all_nodesrh   Ú_all_node_namesÚmodÚ
_mod_nodesÚstmtÚ_stmt_nodesrÖ   Ú_expr_nodesÚexpr_contextÚ_expr_context_nodesÚboolopÚ_boolop_nodesÚoperatorÚ_operator_nodesÚunaryopÚ_unary_op_nodesÚcmpopÚ_cmp_op_nodesÚcomprehensionÚ_comprehension_nodesÚexcepthandlerÚ_handler_nodesÚ	argumentsÚ_arguments_nodesÚ_keyword_nodesÚaliasÚ_alias_nodesÚ_hacked_nodesÚ_unsupported_expr_nodesÚ_unsupported_nodesÚ_base_supported_nodesÚintersectionÚ_msgr   r€   r�   r’   Ú_op_classesr¡   ÚNodeVisitorr£   Ú_python_not_supportedÚ_numexpr_supported_callsrw  r€  rm   r‰  r&   r,   r*   ú<module>rÑ     sê  ððð ð #Ð "Ð "Ð "Ð "Ð "à 
€
€
€
ðð ð ð ð ð ð ð ð Ð Ð Ð Ð Ð Ø €€€ðð ð ð ð ð ð ð ð ð ð Ð Ð Ð à 0Ð 0Ð 0Ð 0Ð 0Ð 0à 5Ð 5Ð 5Ð 5Ð 5Ð 5à  Ð  Ð  Ð  Ð  Ð  Ð  Ð  Ð  ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð 0Ð /Ð /Ð /Ð /Ð /à &Ð &Ð &Ð &Ð &Ð &àð )Ø(Ð(Ð(Ð(Ð(Ð(ð5ð 5ð 5ð 5ð&ð ð ð ð2ð ð ð ð49ð 9ð 9ð$ð $ð $ð €hØÐ*¨OÐ=Wñô ð"ð "ð "ð "ð "ðJ,ð ,ð ,ð ˆ8�D‰>Œ>€Ø
ˆ(�3‰-Œ-€ð ˆYð ð à9Ð9°°°C±´Ð9Ñ9Ô9ðñ ô ñ ô €
ð )3ð !ð !ð !ð !ð �)Ð;Ð;°
Ð;Ñ;Ô;Ñ;Ô;€Øˆ]˜3œ7Ñ#Ô#€
Øˆm˜CœHÑ%Ô%€Øˆm˜CœHÑ%Ô%€Ø#�m CÔ$4Ñ5Ô5Ð Ø�˜cœjÑ)Ô)€Ø�- ¤Ñ-Ô-€Ø�- ¤Ñ,Ô,€Ø�˜cœiÑ(Ô(€Ø$�} SÔ%6Ñ7Ô7Ð Ø�˜sÔ0Ñ1Ô1€Ø �= ¤Ñ/Ô/Ð Ø�˜sœ{Ñ+Ô+€Øˆ}˜SœYÑ'Ô'€ð �	Ð6Ð6Ð6Ñ7Ô7€ð $˜)ðð ð ñô Ð ð$ Øñàñð ñð ñ	ð
 ñð ñð ñð ñ	Ð ð )Ð+=Ñ=ÀÑNÐ Ø!Ð$9Ñ9€Ø<¨lÐ<Ð<€ØÐ Ð ˜Ñ Ô Ððð ð ð ð €WˆT�]„]€ðð ð ð ð0ð ð ð, ¨Ð1Ð1€ðð ð ð& 
€Ð
ÑÔØ€ˆÑÔðX)ð X)ð X)ð X)ð X)�c”oñ X)ô X)ñ Ôñ ÔðX)ðv "˜	Ð"CÐ"CÐ"CÑDÔDÐ Ø$˜9 Z°'Ñ%9Ñ:Ô:Ð ð 
€ØÐ/Ñ/Ø�y�yÐ!PÐ!PÐ!PÑQÔQÑQñSñô ð9ð 9ð 9ð 9ð 9˜ñ 9ô 9ñ	ô ð9ð 
€Ð
Ð4Ñ
4°y°yÀ%ÀÑ7IÔ7IÑ
IÑJÔJðCð Cð Cð Cð C˜ñ Cô Cñ KÔJðCð:Hð :Hð :Hð :Hð :Hñ :Hô :Hð :Hðz 'Ð2CÐ
DÐ
D€€€r,   