§
    ÈÁ³gÐ  ã                   óD  — d Z dgZddlZddlZddlmZ ddlmZ  G d„ de¦  «        Z G d„ d	e¦  «        Z	 G d
„ de¦  «        Z
 G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        ZefZeefZd„ Z G d„ de¦  «        Zd„ Z G d„ d¦  «        Zd„ Zd„ Zd„ Zd;d„Zd;d„Zd;d„Zd<d„Zd „ Zd=d!„Z d"„ Z!d#„ Z"d$„ Z#d%„ Z$d&„ Z%d'„ Z&d(„ Z'd)„ Z(d*„ Z)d+„ Z*d,„ Z+d-„ Z,d.„ Z-d/„ Z.d0„ Z/ e/¦   «         Z0d1„ Z1d2„ Z2d3„ Z3d4„ Z4d5„ Z5ej6        fd6„Z7 G d7„ d8¦  «        Z8 G d9„ d:¦  «        Z9dS )>a‡  Fortran/C symbolic expressions

References:
- J3/21-007: Draft Fortran 202x. https://j3-fortran.org/doc/year/21/21-007.pdf

Copyright 1999 -- 2011 Pearu Peterson all rights reserved.
Copyright 2011 -- present NumPy Developers.
Permission to use, modify, and distribute this software is given under the
terms of the NumPy License.

NO WARRANTY IS EXPRESSED OR IMPLIED.  USE AT YOUR OWN RISK.
ÚExpré    N)ÚEnum)Úgcdc                   ó   — e Zd ZdZdZdZdZdS )ÚLanguagez2
    Used as Expr.tostring language argument.
    r   é   é   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚPythonÚFortranÚC© ó    úQ/var/www/html/mpstechhub/venv/lib/python3.11/site-packages/numpy/f2py/symbolic.pyr   r   $   s)   € € € € € ðð ð €FØ€GØ	€A€A€Ar   r   c                   óN   — e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZdZdZdZdZdZdS )ÚOpz$
    Used as Expr op attribute.
    é
   é   é   é   é   é(   éd   éÈ   éÒ   éÜ   i,  iè  iÐ  i¸  i¹  N)r
   r   r   r   ÚINTEGERÚREALÚCOMPLEXÚSTRINGÚARRAYÚSYMBOLÚTERNARYÚAPPLYÚINDEXINGÚCONCATÚ
RELATIONALÚTERMSÚFACTORSÚREFÚDEREFr   r   r   r   r   -   se   € € € € € ðð ð €GØ€DØ€GØ€FØ€EØ€FØ€GØ€EØ€HØ€FØ€JØ€EØ€GØ
€CØ€E€E€Er   r   c                   ób   — e Zd ZdZdZdZdZdZdZdZ	e
ej        fd„¦   «         Zej        fd	„Zd
S )ÚRelOpzH
    Used in Op.RELATIONAL expression to specify the function part.
    r   r	   é   é   é   é   c                 ón  — |t           j        u r]t          j        t          j        t          j        t          j        t          j        t          j        dœ| 	                    ¦   «                  S t          j        t          j        t          j        t          j        t          j        t          j        dœ|         S )N)ú.eq.ú.ne.ú.lt.ú.le.ú.gt.ú.ge.)ú==ú!=ú<ú<=ú>ú>=)
r   r   r0   ÚEQÚNEÚLTÚLEÚGTÚGEÚlower)ÚclsÚsÚlanguages      r   Ú
fromstringzRelOp.fromstringM   s�   € à•xÔ'Ð'Ð'Ý!œH­e¬hÝ!œH­e¬hÝ!œH­e¬hð8ð 8à89¿º¹	¼	ôCð Cõ ”h¥e¤hµU´XÝ”h¥U¤XµU´Xð?ð ?Ø?@ôBð 	Br   c                 ó^  — |t           j        u rPt          j        dt          j        dt          j        dt          j        dt          j        dt          j        di|          S t          j        dt          j        dt          j        d	t          j        d
t          j        dt          j        di|          S )Nr6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   )	r   r   r0   rB   rC   rD   rE   rF   rG   ©ÚselfrK   s     r   ÚtostringzRelOp.tostringV   s„   € Ø•xÔ'Ð'Ð'Ý”H˜f¥e¤h°Ý”H˜f¥e¤h°Ý”H˜f¥e¤h°ð8à8<ô>ð >õ ”˜$¥¤¨$Ý”˜#�uœx¨Ý”˜#�uœx¨ð/à/3ô5ð 	5r   N)r
   r   r   r   rB   rC   rD   rE   rF   rG   Úclassmethodr   r   rL   rP   r   r   r   r0   r0   B   s€   € € € € € ðð ð 
€BØ	
€BØ	
€BØ	
€BØ	
€BØ	
€BàØ$,¤Jð Bð Bð Bñ „[ðBð !)¤
ð 5ð 5ð 5ð 5ð 5ð 5r   r0   c                   ó.   — e Zd ZdZdZdZdZdZdZdZ	dZ
d	S )
ÚArithOpzC
    Used in Op.APPLY expression to specify the function part.
    r   r	   r1   r2   r3   r4   é   N)r
   r   r   r   ÚPOSÚNEGÚADDÚSUBÚMULÚDIVÚPOWr   r   r   rS   rS   `   s=   € € € € € ðð ð €CØ
€CØ
€CØ
€CØ
€CØ
€CØ
€C€C€Cr   rS   c                   ó   — e Zd ZdS )ÚOpErrorN©r
   r   r   r   r   r   r]   r]   m   ó   € € € € € Ø€Dr   r]   c                   óF   — e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZdZdZdZdS )Ú
Precedencez4
    Used as Expr.tostring precedence argument.
    r   r   r	   r1   r2   r4   rT   é   r   é   é   r   r   N)r
   r   r   r   ÚATOMÚPOWERÚUNARYÚPRODUCTÚSUMrD   rB   ÚLANDÚLORr&   ÚASSIGNÚTUPLEÚNONEr   r   r   ra   ra   q   s[   € € € € € ðð ð €DØ€EØ€EØ€GØ
€CØ	
€BØ	
€BØ€DØ
€CØ€GØ€FØ€EØ€D€D€Dr   ra   c                 ód   — |                       |¦  «        }|€|| |<   d S ||z   }|r|| |<   d S | |= d S ©N)Úget)ÚdÚkÚvÚcs       r   Ú
_pairs_addrv   ˆ   sL   € à	�Šˆa‰Œ€AØ€yØˆˆ!‰ˆˆà�‰EˆØð 	ØˆAˆa‰DˆDˆDà�!���r   c                   ó   — e Zd ZdS )ÚExprWarningNr^   r   r   r   rx   rx   •   r_   r   rx   c                 ó>   — t          j        | t          d¬¦  «         d S )Nr	   )Ú
stacklevel)ÚwarningsÚwarnrx   )Úmessages    r   Úewarnr~   ™   s   € Ý„M�'�;°1Ð5Ñ5Ô5Ð5Ð5Ð5r   c                   ó
  — e Zd ZdZeej        fd„¦   «         Zd„ Zd„ Z	d„ Z
d„ Zd„ Zd„ Zd	„ Zd
„ Zd„ Zej        ej        fd„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z d„ Z!d„ Z"d„ Z#d„ Z$d„ Z%d„ Z&d„ Z'd „ Z(d!„ Z)d"S )#r   zfRepresents a Fortran expression as a op-data pair.

    Expr instances are hashable and sortable.
    c                 ó$   — t          | |¬¦  «        S )z.Parse a Fortran expression to a Expr.
        ©rK   )rL   )rJ   rK   s     r   Úparsez
Expr.parse£   s   € õ ˜! hÐ/Ñ/Ô/Ð/r   c                 óž  — t          |t          ¦  «        sJ ‚|t          j        u rut          |t          ¦  «        rt	          |¦  «        dk    sJ ‚t          |d         t
          ¦  «        sJ ‚t          |d         t
          t          f¦  «        s
J |¦   «         ‚�n¤|t          j        u rut          |t          ¦  «        rt	          |¦  «        dk    sJ ‚t          |d         t          ¦  «        sJ ‚t          |d         t
          t          f¦  «        s
J |¦   «         ‚�n!|t          j	        u r,t          |t          ¦  «        rt	          |¦  «        dk    sJ ‚�nç|t          j
        u ržt          |t          ¦  «        rt	          |¦  «        dk    sJ ‚t          |d         t          ¦  «        r)|d         d d t	          |d         ¦  «        dz
  …         dv sJ ‚t          |d         t
          t          f¦  «        s
J |¦   «         ‚�n;|t          j        u rt          |¦  «        €J ‚�n|t          j        t          j        fv r<t          |t          ¦  «        sJ ‚t          d„ |D ¦   «         ¦  «        s
J |¦   «         ‚�nÄ|t          j        t          j        fv rt          |t$          ¦  «        sJ ‚�n‘|t          j        u r}t          |t          ¦  «        rt	          |¦  «        dk    sJ ‚t          |d         ¦  «        €J ‚t          |d         t          ¦  «        sJ ‚t          |d         t$          ¦  «        sJ ‚�n|t          j        u rBt          |t          ¦  «        rt	          |¦  «        dk    sJ ‚t          |d         ¦  «        €J ‚n¶|t          j        u r+t          |t          ¦  «        rt	          |¦  «        dk    sJ ‚n}|t          j        t          j        fv rt          |t0          ¦  «        sJ ‚nK|t          j        u r+t          |t          ¦  «        rt	          |¦  «        dk    sJ ‚nt5          d|› �¦  «        ‚|| _        || _        d S )Nr	   r   r   )z""z''z@@c              3   ó@   K  — | ]}t          |t          ¦  «        V — Œd S rp   )Ú
isinstancer   )Ú.0Úitems     r   ú	<genexpr>z Expr.__init__.<locals>.<genexpr>É   s,   è è € Ð?Ð?°$•z $­Ñ-Ô-Ð?Ð?Ð?Ð?Ð?Ð?r   r1   z$unknown op or missing sanity check: )r…   r   r    ÚtupleÚlenÚintÚstrr!   Úfloatr"   r#   r%   Úhashr$   r)   Úallr+   r,   Údictr'   r(   r&   r-   r.   r   r*   ÚNotImplementedErrorÚopÚdata)rO   r’   r“   s      r   Ú__init__zExpr.__init__©   sý  € Ý˜"�bÑ!Ô!Ð!Ð!Ð!ð •”ÐÐõ ˜d¥EÑ*Ô*Ð=­s°4©y¬y¸Aª~¨~¨~¨~Ý˜d 1œg¥sÑ+Ô+Ð+Ð+Ð+Ý˜d 1œg­­S zÑ2Ô2Ð8Ð8°DÑ8Ô8Ð8Ñ8Ø•2”7ˆ]ˆ]õ ˜d¥EÑ*Ô*Ð=­s°4©y¬y¸Aª~¨~¨~¨~Ý˜d 1œg¥uÑ-Ô-Ð-Ð-Ð-Ý˜d 1œg­­S zÑ2Ô2Ð8Ð8°DÑ8Ô8Ð8Ñ8Ø•2”:ÐÐå˜d¥EÑ*Ô*Ð=­s°4©y¬y¸Aª~¨~¨~¨~©~Ø•2”9ˆ_ˆ_õ ˜d¥EÑ*Ô*Ð=­s°4©y¬y¸Aª~¨~¨~¨~Ý˜t Aœw­Ñ,Ô,ð IØ˜QœÐ 0Ð 0¥# d¨1¤g¡,¤,¨q¡.Ð 0Ô1Ð5GÐGÐGÐGÐGÝ˜d 1œg­­S zÑ2Ô2Ð8Ð8°DÑ8Ô8Ð8Ñ8Ø•2”9ˆ_ˆ_å˜‘:”:Ð)Ð)Ð)Ñ)Ø•B”H�bœiÐ(Ð(Ð(å˜d¥EÑ*Ô*Ð*Ð*Ð*ÝÐ?Ð?¸$Ð?Ñ?Ô?Ñ?Ô?ÐEÐEÀÑEÔEÐEÑEØ•B”H�bœjÐ)Ð)Ð)õ ˜d¥DÑ)Ô)Ð)Ð)Ð)Ñ)Ø•2”8ˆ^ˆ^õ ˜d¥EÑ*Ô*Ð=­s°4©y¬y¸Aª~¨~¨~¨~å˜˜Qœ‘=”=Ð,Ð,Ð,Ý˜d 1œg¥uÑ-Ô-Ð-Ð-Ð-Ý˜d 1œg¥tÑ,Ô,Ð,Ð,Ð,Ñ,Ø•2”;ÐÐå˜d¥EÑ*Ô*Ð=­s°4©y¬y¸Aª~¨~¨~¨~å˜˜Qœ‘=”=Ð,Ð,Ð,Ð,Ø•2”:ÐÐå˜d¥EÑ*Ô*Ð=­s°4©y¬y¸Aª~¨~¨~¨~¨~Ø•B”F�BœHÐ%Ð%Ð%å˜d¥DÑ)Ô)Ð)Ð)Ð)Ð)Ø•2”=Ð Ð å˜d¥EÑ*Ô*Ð=­s°4©y¬y¸Aª~¨~¨~¨~¨~å%Ø;°rÐ;Ð;ñ=ô =ð =ð ˆŒØˆŒ	ˆ	ˆ	r   c                 óh   — t          |t          ¦  «        o| j        |j        u o| j        |j        k    S rp   )r…   r   r’   r“   ©rO   Úothers     r   Ú__eq__zExpr.__eq__ë   s6   € Ý˜5¥$Ñ'Ô'ð ,Ø”G˜uœxÐ'ð,à”I ¤Ò+ð	-r   c                 óœ  — | j         t          j        t          j        fv r4t	          t          | j                             ¦   «         ¦  «        ¦  «        }nd| j         t          j        u rJ| j        d d…         t	          t          | j        d                              ¦   «         ¦  «        ¦  «        z   }n| j        }t          | j         |f¦  «        S ©Nr	   )
r’   r   r+   r,   r‰   Úsortedr“   Úitemsr'   rŽ   )rO   r“   s     r   Ú__hash__zExpr.__hash__ð   s�   € ØŒ7•r”x¥¤Ð,Ð,Ð,Ý� ¤	§¢Ñ 1Ô 1Ñ2Ô2Ñ3Ô3ˆDˆDØŒW�œÐ Ð Ø”9˜R˜a˜R”=¥5­°´	¸!´×0BÒ0BÑ0DÔ0DÑ)EÔ)EÑ#FÔ#FÑFˆDˆDà”9ˆDÝ�T”W˜d�OÑ$Ô$Ð$r   c                 óH  — t          |t          ¦  «        �r†| j        |j        ur| j        j        |j        j        k     S | j        t          j        t          j        fv rht          t          | j	         
                    ¦   «         ¦  «        ¦  «        t          t          |j	         
                    ¦   «         ¦  «        ¦  «        k     S | j        t          j        u r´| j	        d d…         |j	        d d…         k    r | j	        d d…         |j	        d d…         k     S t          t          | j	        d          
                    ¦   «         ¦  «        ¦  «        t          t          |j	        d          
                    ¦   «         ¦  «        ¦  «        k     S | j	        |j	        k     S t          S rš   )r…   r   r’   Úvaluer   r+   r,   r‰   r›   r“   rœ   r'   ÚNotImplementedr–   s     r   Ú__lt__zExpr.__lt__ù   sP  € Ý�e�TÑ"Ô"ñ 	*ØŒw˜eœhÐ&Ð&Ø”w”} u¤x¤~Ò5Ð5ØŒw�2œ8¥R¤ZÐ0Ð0Ð0Ý�f T¤Y§_¢_Ñ%6Ô%6Ñ7Ô7Ñ8Ô8Ý¥ u¤z×'7Ò'7Ñ'9Ô'9Ñ :Ô :Ñ;Ô;ò<ð =àŒw�"œ(Ð"Ð"Ø”9˜R˜a˜R”= E¤J¨r°¨r¤NÒ2Ð2Øœ9 R a Rœ=¨5¬:°b°q°b¬>Ò9Ð9Ý�V D¤I¨a¤L×$6Ò$6Ñ$8Ô$8Ñ9Ô9Ñ:Ô:½UÝ˜5œ: aœ=×.Ò.Ñ0Ô0Ñ1Ô1ñ>3ô >3ò 3ð 3à”9˜uœzÒ)Ð)ÝÐr   c                 ó   — | |k    p| |k     S rp   r   r–   s     r   Ú__le__zExpr.__le__  s   €  D¨E¢MÐ$A°T¸E²\ÐAr   c                 ó   — | |k     S rp   r   r–   s     r   Ú__gt__zExpr.__gt__
  s   € ¨°ªÐ$7Ð7r   c                 ó   — | |k      S rp   r   r–   s     r   Ú__ge__zExpr.__ge__  s   € ¨°ªÐ$6Ð6r   c                 óP   — t          | ¦  «        j        › d| j        › d| j        ›d�S ©Nú(ú, ú))Útyper
   r’   r“   ©rO   s    r   Ú__repr__zExpr.__repr__  s.   € Ý�t‘*”*Ô%ÐAÐA¨¬ÐAÐA°4´9ÐAÐAÐAÐAr   c                 ó*   — |                       ¦   «         S rp   )rP   r®   s    r   Ú__str__zExpr.__str__  s   € Ø�}Š}‰ŒÐr   c                 ól  ‡— | j         t          j        t          j        fv ri| j        d         dk     rt
          j        nt
          j        }t          | j        d         ¦  «        | j        d         dk    rd| j        d         › �ndz   }�n’| j         t          j	        u r<d 
                    ˆfd„| j        D ¦   «         ¦  «        }d|z   d	z   }t
          j        }�nC| j         t          j        u r"t
          j        }t          | j        ¦  «        }�n| j         t          j        u r?| j        d         }| j        d         dk    r| j        d         dz   |z   }t
          j        }�n¼| j         t          j        u r<d 
                    ˆfd
„| j        D ¦   «         ¦  «        }d|z   dz   }t
          j        }�nm| j         t          j        u �r)g }t          | j                             ¦   «         ¦  «        D ]Í\  }}|dk     rd}| }nd}|dk    r"|                     t
          j        ‰¬¦  «        }nJ|t%          d¦  «        k    rt          |¦  «        }n'|› d�|                     t
          j        ‰¬¦  «        z   }|r|                     |¦  «         n|dk    r|                     d¦  «         |                     |¦  «         ŒÎd 
                    |¦  «        pd}|rt
          j        nt
          j        }�n0| j         t          j        u �rÌg }	g }
t          | j                             ¦   «         ¦  «        D �]G\  }}d}|dk    r"|                     t
          j        ‰¬¦  «        }në‰t,          j        u r¶|t1          dd¦  «        v r;|                     t
          j        ‰¬¦  «        }d 
                    |g|z  ¦  «        }n�|t1          dd¦  «        v r,|                     t
          j        ‰¬¦  «        }|
|g| z  z  }
ŒÉ|                     t
          j        ‰¬¦  «        }d|› d|› d	�}n'|                     t
          j        ‰¬¦  «        d|› �z   }|	r|	                     |¦  «         |	                     |¦  «         �ŒI|
r$|	s|	dgz  }	|	ddd 
                    |
¦  «        d	gz  }	d 
                    |	¦  «        pd}|	rt
          j        nt
          j        }�nP| j         t          j        u r¥| j        \  }}}|t8          j        u r4‰t,          j        u r&ˆfd„|D ¦   «         \  }}|› d|› �}t
          j        }�nðˆfd„|D ¦   «         }|d„ |                     ¦   «         D ¦   «         z  }|› dd 
                    |¦  «        › d	�}t
          j        }�n˜| j         t          j        u rQ| j        d         }ˆfd„| j        dd…         D ¦   «         }|› dd 
                    |¦  «        › d�}t
          j        }�n4| j         t          j        u r6ˆfd „| j        D ¦   «         }d! 
                    |¦  «        }t
          j        }�në| j         t          j         u r�ˆfd"„| j        D ¦   «         \  }}}‰t,          j        u rd|› d#|› d$|› d	�}nP‰t,          j!        u rd|› d%|› d&|› d	�}n5‰t,          j"        u rd'|› d|› d|› d	�}ntG          d(| j         › d)‰› �¦  «        ‚t
          j        }�nH| j         t          j$        u r6d*| j                             t
          j%        ‰¬¦  «        z   }t
          j%        }nÿ| j         t          j&        u r6d+| j                             t
          j%        ‰¬¦  «        z   }t
          j%        }n¶| j         t          j'        u rŒ| j        \  }}}|tP          j)        tP          j*        fv rt
          j)        nt
          j+        }|                     |‰¬¦  «        }|                     |‰¬¦  «        }|                     ‰¬¦  «        }|› d,|› d,|› �}ntG          d-| j         › �¦  «        ‚|j,        |j,        k     rd|z   d	z   S |S ).z0Return a string representation of Expr.
        r   r   r2   Ú_Ú r«   c              3   óZ   •K  — | ]%}|                      t          j        ‰¬ ¦  «        V — Œ&dS ©r�   N©rP   ra   rm   ©r†   r‡   rK   s     €r   rˆ   z Expr.tostring.<locals>.<genexpr>  óJ   øè è € ð 1ð 1Ø"ð Ÿ-š-­
Ô(8À8˜-ÑLÔLð 1ð 1ð 1ð 1ð 1ð 1r   rª   r¬   c              3   óZ   •K  — | ]%}|                      t          j        ‰¬ ¦  «        V — Œ&dS r¶   r·   r¸   s     €r   rˆ   z Expr.tostring.<locals>.<genexpr>+  r¹   r   ú[ú]z - ú + r�   ú * ú-Ú0r	   r   iöÿÿÿzpow(z ** Ú1ú/c                 óR   •— g | ]#}|                      t          j        ‰¬ ¦  «        ‘Œ$S ©r�   ©rP   ra   rh   ©r†   ÚargrK   s     €r   ú
<listcomp>z!Expr.tostring.<locals>.<listcomp>k  sF   ø€ ð  1ð  1ð  1à$'ð !$§¢­ZÔ-?Ø6>ð !-ñ !@ô !@ð  1ð  1ð  1r   z / c                 óR   •— g | ]#}|                      t          j        ‰¬ ¦  «        ‘Œ$S rÄ   r·   rÆ   s     €r   rÈ   z!Expr.tostring.<locals>.<listcomp>q  s<   ø€ ð )ð )ð )Øð Ÿš¥ZÔ%5À˜ÑIÔIð )ð )ð )r   c                 ó^   — g | ]*\  }}|d z   |                      t          j        ¦  «        z   ‘Œ+S )ú=)rP   ra   rn   ©r†   rs   rt   s      r   rÈ   z!Expr.tostring.<locals>.<listcomp>s  sC   € ð 5ð 5ð 5Ù!˜Q ð ˜S™ 1§:¢:­j¬oÑ#>Ô#>Ñ>ð 5ð 5ð 5r   c                 óR   •— g | ]#}|                      t          j        ‰¬ ¦  «        ‘Œ$S rÄ   r·   rÆ   s     €r   rÈ   z!Expr.tostring.<locals>.<listcomp>y  s<   ø€ ð .ð .ð .Øð —L’L¥Ô!1¸H�LÑEÔEð .ð .ð .r   Nc                 óR   •— g | ]#}|                      t          j        ‰¬ ¦  «        ‘Œ$S rÄ   rÅ   rÆ   s     €r   rÈ   z!Expr.tostring.<locals>.<listcomp>~  s<   ø€ ð *ð *ð *Øð —L’L¥Ô!3¸h�LÑGÔGð *ð *ð *r   z // c                 óR   •— g | ]#}|                      t          j        ‰¬ ¦  «        ‘Œ$S rÄ   r·   )r†   ÚarK   s     €r   rÈ   z!Expr.tostring.<locals>.<listcomp>ƒ  sF   ø€ ð "6ð "6ð "6à&'ð #$§*¢*­ZÔ-=Ø6>ð #-ñ #@ô #@ð "6ð "6ð "6r   ú?ú:z if z else zmerge(ztostring for z and ú&Ú*ú ztostring for op )-r’   r   r    r!   r“   ra   ri   re   rŒ   r"   Újoinr%   r#   r$   r+   r›   rœ   rP   Ú	as_numberrh   Úappendr,   r   r   Úrangerm   rf   r'   rS   rZ   r(   r)   r&   r   r   r‘   r-   rg   r.   r*   r0   rB   rC   rD   rŸ   )rO   Úparent_precedencerK   Ú
precedenceÚrÚtermsÚtermÚcoeffr’   ÚfactorsÚtailÚbaseÚexpÚfactorÚnameÚargsÚkwargsÚnumerÚdenomÚcondÚexpr1Úexpr2ÚropÚleftÚrights     `                      r   rP   zExpr.tostring  s	  ø€ ð Œ7•r”z¥2¤7Ð+Ð+Ð+Ø,0¬I°a¬L¸1Ò,<Ð,<�*œ.˜.Ý)œð å�D”I˜a”LÑ!Ô!Ø(,¬	°!¬¸Ò(9Ð(9ð &8¨¬°1¬Ð%7Ð%7Ð%7Ø?AñCˆA‰AàŒW�œ
Ð"Ð"Ø—	’	ð 1ð 1ð 1ð 1Ø&*¤ið1ñ 1ô 1ñ 1ô 1ˆAà�a‘˜#‘ˆAÝ#œˆJ‰JØŒW�œ	Ð!Ð!Ý#œˆJÝ�D”I‘”ˆA‰AØŒW�œ	Ð!Ð!Ø”	˜!”ˆAØŒy˜Œ|˜qÒ Ð Ø”I˜a”L 3Ñ&¨Ñ*�Ý#œˆJ‰JØŒW�œÐ Ð Ø—	’	ð 1ð 1ð 1ð 1Ø&*¤ið1ñ 1ô 1ñ 1ô 1ˆAà�a‘˜#‘ˆAÝ#œˆJ‰JØŒW�œÐ Ñ ØˆEÝ% d¤i§o¢oÑ&7Ô&7Ñ8Ô8ð #ð #‘��eØ˜1’9�9Ø�BØ"˜F�E�Eà�BØ˜A’:�:ØŸ=š=­¬À(˜=ÑKÔK�D�Dà�y¨™|œ|Ò+Ð+Ý" 5™zœz˜˜à"'˜}˜}˜}¨t¯}ª}Ý&Ô.¸ð 0=ñ 0Cô 0Cñ  C˜àð &Ø—L’L Ñ$Ô$Ð$Ð$Ø˜5’[�[Ø—L’L Ñ%Ô%Ð%Ø—’˜TÑ"Ô"Ð"Ð"Ø—’˜‘”Ð% #ˆAØ+0ÐE�œ˜µj´oˆJ‰JØŒW�œ
Ð"Ñ"ØˆGØˆDÝ# D¤I§O¢OÑ$5Ô$5Ñ6Ô6ð 'ñ '‘	��cØ�Ø˜!’8�8Ø!Ÿ]š]­:Ô+=Ø4<ð +ñ >ô >�F�Fà¥¤Ð+Ð+Ø�e A r™lœlÐ*Ð*Ø!%§¢­zÔ/AØ8@ð "/ñ "Bô "B˜à!&§¢¨V¨H°s©NÑ!;Ô!;˜˜Ø¥ c¨1¡¤Ð-Ð-Ø!%§¢­zÔ/AØ8@ð "/ñ "Bô "B˜à  ¨C¨4¡Ñ/˜Ø à!%§¢­zÔ/?Ø8@ð "/ñ "Bô "B˜à!8¨Ð!8Ð!8°#Ð!8Ð!8Ð!8˜˜à!Ÿ]š]­:Ô+;Ø4<ð +ñ >ô >Ø@LÀsÀÀñM�Fàð 'Ø—N’N 2Ñ&Ô&Ð&Ø—’˜vÑ&Ô&Ð&Ñ&Øð =Øð %Ø ˜uÑ$�GØ˜C  e§j¢j°Ñ&6Ô&6¸Ð<Ñ<�Ø—’˜Ñ Ô Ð' CˆAØ/6ÐK�Ô+Ð+½J¼OˆJ‰JØŒW�œÐ Ð Ø!%¤ÑˆD�$˜Ø•w”{Ð"Ð" xµ8´:Ð'=Ð'=ð 1ð  1ð  1ð  1à+/ð 1ñ  1ô  1‘��uð Ð(Ð( Ð(Ð(�Ý'Ô/�
‘
ð)ð )ð )ð )Ø#'ð)ñ )ô )�àð 5ð 5Ø%+§\¢\¡^¤^ð5ñ 5ô 5ñ 5�àÐ0Ð0˜dŸiši¨™oœoÐ0Ð0Ð0�Ý'œ_�
‘
ØŒW�œÐ#Ð#Ø”9˜Q”<ˆDð.ð .ð .ð .Ø#œy¨¨¨œ}ð.ñ .ô .ˆDàÐ,Ð,˜$Ÿ)š) D™/œ/Ð,Ð,Ð,ˆAÝ#œˆJ‰JØŒW�œ	Ð!Ð!ð*ð *ð *ð *Ø#œyð*ñ *ô *ˆDà—’˜DÑ!Ô!ˆAÝ#Ô+ˆJ‰JØŒW�œ
Ð"Ð"ð"6ð "6ð "6ð "6à+/¬9ð"6ñ "6ô "6ÑˆD�%˜ð �8œ:Ð%Ð%Ø/˜Ð/Ð/˜uÐ/Ð/ uÐ/Ð/Ð/��Ø�Xœ_Ð,Ð,Ø7˜Ð7Ð7 4Ð7Ð7¨uÐ7Ð7Ð7��Ø�XÔ-Ð-Ð-Ø6˜UÐ6Ð6 eÐ6Ð6¨tÐ6Ð6Ð6��å)Ø< D¤GÐ<Ð<°(Ð<Ð<ñ>ô >ð >å#œˆJ‰JØŒW�œÐÐØ�d”i×(Ò(­Ô)9ÀHÐ(ÑMÔMÑMˆAÝ#Ô)ˆJˆJØŒW�œÐ Ð Ø�d”i×(Ò(­Ô)9ÀHÐ(ÑMÔMÑMˆAÝ#Ô)ˆJˆJØŒW�œÐ%Ð%Ø#œyÑˆC��uØ+.µ5´8½U¼XÐ2FÐ+FÐ+F�*œ-˜-Ý)œ}ð à—=’= °h�=Ñ?Ô?ˆDØ—N’N :¸�NÑAÔAˆEØ—,’,¨�,Ñ1Ô1ˆCØÐ'Ð'˜#Ð'Ð' Ð'Ð'ˆAˆAå%Ð&B¸¼Ð&BÐ&BÑCÔCÐCØÔ" ZÔ%5Ò5Ð5ð ˜‘7˜S‘=Ð Øˆr   c                 ó   — | S rp   r   r®   s    r   Ú__pos__zExpr.__pos__¦  s   € Øˆr   c                 ó   — | dz  S )Néÿÿÿÿr   r®   s    r   Ú__neg__zExpr.__neg__©  s   € Ø�b‰yÐr   c                 ó(  — t          |¦  «        }t          |t          ¦  «        �rg| j        |j        u �r'| j        t          j        t          j        fv rMt          | j        d         |j        d         z   t          | j        d         |j        d         ¦  «        ¦  «        S | j        t          j
        u r*| j        \  }}|j        \  }}t          ||z   ||z   ¦  «        S | j        t          j        u rkt          | j        t          | j        ¦  «        ¦  «        }|j                             ¦   «         D ]\  }}t          |j        ||¦  «         Œt!          |¦  «        S | j        t          j
        u r1|j        t          j        t          j        fv r| t          |¦  «        z   S | j        t          j        t          j        fv r%|j        t          j
        u rt          | ¦  «        |z   S | j        t          j        u r2|j        t          j        u r| t#          || j        d         ¬¦  «        z   S | j        t          j        u r2|j        t          j        u rt#          | |j        d         ¬¦  «        |z   S t%          | ¦  «        t%          |¦  «        z   S t&          S ©Nr   r   )Úkind)Úas_exprr…   r   r’   r   r    r!   r×   r“   Úmaxr"   Ú
as_complexr+   r�   rœ   rv   Ú	normalizeÚas_realÚas_termsr    )	rO   r—   Úr1Úi1Úr2Úi2rÜ   rs   rt   s	            r   Ú__add__zExpr.__add__¬  s/  € Ý˜‘”ˆÝ�e�TÑ"Ô"ñ 	4ØŒw˜%œ(Ð"Ñ"Ø”7�rœz­2¬7Ð3Ð3Ð3Ý$Øœ	 !œ u¤z°!¤}Ñ4Ý˜DœI aœL¨%¬*°Q¬-Ñ8Ô8ñ:ô :ð :ð ”7�bœjÐ(Ð(Ø!œY‘F�B˜Ø"œZ‘F�B˜Ý% b¨2¡g¨r°B©wÑ7Ô7Ð7Ø”7�bœhÐ&Ð&Ý˜TœW¥d¨4¬9¡o¤oÑ6Ô6�AØ %¤
× 0Ò 0Ñ 2Ô 2ð 1ð 1™˜˜1Ý" 1¤6¨1¨aÑ0Ô0Ð0Ð0Ý$ Q™<œ<Ð'ØŒw�"œ*Ð$Ð$¨¬µb´jÅ"Ä'Ð5JÐ)JÐ)JØ�j¨Ñ/Ô/Ñ/Ð/Ø”�RœZ­¬Ð1Ð1Ð1°e´hÅ"Ä*Ð6LÐ6LÝ! $Ñ'Ô'¨%Ñ/Ð/Ø”�BœGÐ#Ð#¨¬µB´JÐ(>Ð(>Ø�g e°$´)¸A´,Ð?Ñ?Ô?Ñ?Ð?Ø”�BœJÐ&Ð&¨5¬8µr´wÐ+>Ð+>Ý˜t¨%¬*°Q¬-Ð8Ñ8Ô8¸5Ñ@Ð@Ý˜D‘>”>¥H¨U¡O¤OÑ3Ð3ÝÐr   c                 ó^   — t          |t          ¦  «        rt          |¦  «        | z   S t          S rp   ©r…   Únumber_typesr×   r    r–   s     r   Ú__radd__zExpr.__radd__È  ó-   € Ý�e�\Ñ*Ô*ð 	+Ý˜UÑ#Ô# dÑ*Ð*ÝÐr   c                 ó   — | | z   S rp   r   r–   s     r   Ú__sub__zExpr.__sub__Í  s   € Ø˜�v‰Ðr   c                 ó^   — t          |t          ¦  «        rt          |¦  «        | z
  S t          S rp   r  r–   s     r   Ú__rsub__zExpr.__rsub__Ð  r  r   c                 óö  — t          |¦  «        }t          |t          ¦  «        �rN| j        |j        u �rÄ| j        t          j        t          j        fv rMt          | j        d         |j        d         z  t          | j        d         |j        d         ¦  «        ¦  «        S | j        t          j
        u r6| j        \  }}|j        \  }}t          ||z  ||z  z
  ||z  ||z  z   ¦  «        S | j        t          j        u rkt          | j        t          | j        ¦  «        ¦  «        }|j                             ¦   «         D ]\  }}t          |j        ||¦  «         Œt!          |¦  «        S | j        t          j        u r~t          | j        i ¦  «        }| j                             ¦   «         D ]@\  }	}
|j                             ¦   «         D ]!\  }}t          |j        |	|z  |
|z  ¦  «         Œ"ŒAt!          |¦  «        S | j        t          j
        u r1|j        t          j        t          j        fv r| t          |¦  «        z  S |j        t          j
        u r1| j        t          j        t          j        fv rt          | ¦  «        |z  S | j        t          j        u r2|j        t          j        u r| t%          || j        d         ¬¦  «        z  S | j        t          j        u r2|j        t          j        u rt%          | |j        d         ¬¦  «        |z  S | j        t          j        u r| t'          |¦  «        z  S |j        t          j        u rt'          | ¦  «        |z  S t)          | ¦  «        t)          |¦  «        z  S t*          S rö   )rø   r…   r   r’   r   r    r!   r×   r“   rù   r"   rú   r,   r�   rœ   rv   rû   r+   rü   rý   Ú
as_factorsr    )rO   r—   rþ   rÿ   r   r  rÜ   rs   rt   Út1Úc1Út2Úc2s                r   Ú__mul__zExpr.__mul__Õ  s  € Ý˜‘”ˆÝ�e�TÑ"Ô"ñ $	8ØŒw˜%œ(Ð"Ñ"Ø”7�rœz­2¬7Ð3Ð3Ð3Ý$ T¤Y¨q¤\°E´J¸q´MÑ%AÝ%(¨¬°1¬°u´zÀ!´}Ñ%EÔ%EñGô Gð Gà”W¥¤
Ð*Ð*Ø!œY‘F�B˜Ø"œZ‘F�B˜Ý% b¨2¡g°°R±Ñ&7¸¸b¹À2ÈÁ7Ñ9JÑKÔKÐKà”7�bœjÐ(Ð(Ý˜TœW¥d¨4¬9¡o¤oÑ6Ô6�AØ %¤
× 0Ò 0Ñ 2Ô 2ð 1ð 1™˜˜1Ý" 1¤6¨1¨aÑ0Ô0Ð0Ð0Ý$ Q™<œ<Ð'Ø”W¥¤Ð(Ð(Ý˜TœW bÑ)Ô)�AØ"&¤)§/¢/Ñ"3Ô"3ð Að A™˜˜BØ&+¤j×&6Ò&6Ñ&8Ô&8ð Að A™F˜B Ý& q¤v¨r°B©w¸¸R¹Ñ@Ô@Ð@Ð@ðAå$ Q™<œ<Ð'àŒw�"œ*Ð$Ð$¨¬µb´jÅ"Ä'Ð5JÐ)JÐ)JØ�j¨Ñ/Ô/Ñ/Ð/Ø”�RœZÐ'Ð'¨D¬G½¼
ÅBÄGÐ7LÐ,LÐ,LÝ! $Ñ'Ô'¨%Ñ/Ð/Ø”�BœGÐ#Ð#¨¬µB´JÐ(>Ð(>Ø�g e°$´)¸A´,Ð?Ñ?Ô?Ñ?Ð?Ø”�BœJÐ&Ð&¨5¬8µr´wÐ+>Ð+>Ý˜t¨%¬*°Q¬-Ð8Ñ8Ô8¸5Ñ@Ð@àŒw�"œ(Ð"Ð"Ø�h u™oœoÑ-Ð-Ø”�RœXÐ%Ð%Ý ‘~”~¨Ñ-Ð-å˜dÑ#Ô#¥j°Ñ&7Ô&7Ñ7Ð7ÝÐr   c                 ó^   — t          |t          ¦  «        rt          |¦  «        | z  S t          S rp   r  r–   s     r   Ú__rmul__zExpr.__rmul__þ  r  r   c                 óF  — t          |¦  «        }t          |t          ¦  «        r÷|j        t          j        u rÉ|j        d         }|dk    rt          d¦  «        S |dk    r| S |dk    rn| j        t          j        u rPt          | j        i ¦  «        }| j         	                    ¦   «         D ]\  }}||z  |j        |<   Œt          |¦  «        S | | |dz
  z  z  S |dk    r	| | z  dz  S t          t          j        | |i¦  «        S t          t          j        | |¦  «        S t          S )Nr   r   ró   )rø   r…   r   r’   r   r    r“   r×   r,   rœ   rû   Úas_applyrS   r[   r    )rO   r—   ÚexponentrÜ   rs   rt   s         r   Ú__pow__zExpr.__pow__  s!  € Ý˜‘”ˆÝ�e�TÑ"Ô"ð 	6ØŒx�2œ:Ð%Ð%Ø œ: aœ=�à˜q’=�=Ý$ Q™<œ<Ð'Ø˜q’=�=Ø�KØ˜a’<�<Ø”w¥"¤*Ð,Ð,Ý  ¤¨"Ñ-Ô-˜Ø$(¤I§O¢OÑ$5Ô$5ð 5ð 5™D˜A˜qØ()¨H©˜AœF 1™I˜IÝ(¨™|œ|Ð+Ø 4¨H°q©LÑ#9Ñ:Ð:Ø ’^�^Ø  h YÑ/°BÑ6Ð6Ý�BœJ¨¨xÐ(8Ñ9Ô9Ð9Ý�GœK¨¨uÑ5Ô5Ð5ÝÐr   c                 ó¨   — t          |¦  «        }t          |t          ¦  «        r(t          t	          t
          j        | |¦  «        ¦  «        S t          S rp   )rø   r…   r   rû   r  rS   rZ   r    r–   s     r   Ú__truediv__zExpr.__truediv__  sD   € Ý˜‘”ˆÝ�e�TÑ"Ô"ð 	Aõ �X¥g¤k°4¸Ñ?Ô?Ñ@Ô@Ð@ÝÐr   c                 ób   — t          |¦  «        }t          |t          ¦  «        r|| z  S t          S rp   ©rø   r…   r   r    r–   s     r   Ú__rtruediv__zExpr.__rtruediv__"  s/   € Ý˜‘”ˆÝ�e�TÑ"Ô"ð 	 Ø˜4‘<ÐÝÐr   c                 óª   — t          |¦  «        }t          |t          ¦  «        r)t          t          t          j        | |f¦  «        ¦  «        S t          S rp   )rø   r…   r   rû   r   r)   r    r–   s     r   Ú__floordiv__zExpr.__floordiv__(  sE   € Ý˜‘”ˆÝ�e�TÑ"Ô"ð 	=õ �T¥"¤)¨d°E¨]Ñ;Ô;Ñ<Ô<Ð<ÝÐr   c                 ób   — t          |¦  «        }t          |t          ¦  «        r|| z  S t          S rp   r  r–   s     r   Ú__rfloordiv__zExpr.__rfloordiv__0  s/   € Ý˜‘”ˆÝ�e�TÑ"Ô"ð 	!Ø˜D‘=Ð ÝÐr   c           	      óš   — t          | gt          t          |¦  «        ¢R i t          d„ |                     ¦   «         D ¦   «         ¦  «        ¤ŽS )Nc              3   ó>   K  — | ]\  }}|t          |¦  «        fV — Œd S rp   ©rø   rÌ   s      r   rˆ   z Expr.__call__.<locals>.<genexpr>=  s0   è è € ÐJÐJ±4°1°a ¥7¨1¡:¤:˜ÐJÐJÐJÐJÐJÐJr   )r  Úmaprø   r�   rœ   )rO   ræ   rç   s      r   Ú__call__zExpr.__call__6  sa   € õ ˜ð L�s¥7¨DÑ1Ô1ð Lð Lð LÝÐJÐJ¸6¿<º<¹>¼>ÐJÑJÔJÑJÔJðLð Lð 	Lr   c                 óØ   — t          |¦  «        }t          |t          ¦  «        s|f}t          |¦  «        dk    rt	          d|› d�¦  «         t          t          j        | f|z   ¦  «        S )Nr   z/C-index should be a single expression but got `ú`)rø   r…   r‰   rŠ   r~   r   r   r(   )rO   Úindexs     r   Ú__getitem__zExpr.__getitem__?  si   € õ ˜‘”ˆÝ˜%¥Ñ'Ô'ð 	Ø�FˆEÝˆu‰:Œ:˜Š>ˆ>ÝÐLÀEÐLÐLÐLÑMÔMÐMÝ•B”K $ ¨5¡Ñ1Ô1Ð1r   c           	      óæ	  ‡— | j         t          j        u rs‰                     | ¦  «        }|€| S t	          j        d| j        ¦  «        }|r<|                     ¦   «         \  }}|dv rt          |¦  «        S |dk    sJ ||f¦   «         ‚|S | j         t          j	        t          j
        t          j        fv r| S | j         t          j        t          j        fv r3t          | j         t          ˆfd„| j        D ¦   «         ¦  «        ¦  «        S | j         t          j        u r@t#          t          | j         t          ˆfd„| j        D ¦   «         ¦  «        ¦  «        ¦  «        S | j         t          j        u ryd}| j                             ¦   «         D ];\  }}|€|                     ‰¦  «        |z  }Œ ||                     ‰¦  «        |z  z  }Œ<|€t+          d¦  «         t-          d¦  «        S |S | j         t          j        u ryd}| j                             ¦   «         D ];\  }	}
|€|	                     ‰¦  «        |
z  }Œ ||	                     ‰¦  «        |
z  z  }Œ<|€t+          d	¦  «         t-          d
¦  «        S |S | j         t          j        u r¢| j        \  }}}t3          |t          ¦  «        r|                     ‰¦  «        }t          ˆfd„|D ¦   «         ¦  «        }t5          ˆfd„|                     ¦   «         D ¦   «         ¦  «        }t#          t          | j         |||f¦  «        ¦  «        S | j         t          j        u r…| j        d         }t3          |t          ¦  «        r|                     ‰¦  «        }t          ˆfd„| j        d
d…         D ¦   «         ¦  «        }t#          t          | j         |f|z   ¦  «        ¦  «        S | j         t          j        u rBt          ˆfd„| j        D ¦   «         ¦  «        }t#          t          | j         |¦  «        ¦  «        S | j         t          j        t          j        fv r:t#          t          | j         | j                             ‰¦  «        ¦  «        ¦  «        S | j         t          j        u rZ| j        \  }}}|                     ‰¦  «        }|                     ‰¦  «        }t#          t          | j         |||f¦  «        ¦  «        S tA          d| j         › d| ›�¦  «        ‚)z„Recursively substitute symbols with values in symbols map.

        Symbols map is a dictionary of symbol-expression pairs.
        Nz$\A(@__f2py_PARENTHESIS_(\w+)_\d+@)\Z©ÚROUNDDIVÚSQUAREÚROUNDc              3   óB   •K  — | ]}|                      ‰¦  «        V — Œd S rp   ©Ú
substitute©r†   r‡   Úsymbols_maps     €r   rˆ   z"Expr.substitute.<locals>.<genexpr>]  sC   øè è € ð '>ð '>Ø+/ð (,§¢°{Ñ'CÔ'Cð '>ð '>ð '>ð '>ð '>ð '>r   c              3   óB   •K  — | ]}|                      ‰¦  «        V — Œd S rp   r1  r3  s     €r   rˆ   z"Expr.substitute.<locals>.<genexpr>`  sK   øè è € ð 1Hð 1HØ59ð 26·²ÀÑ1MÔ1Mð 1Hð 1Hð 1Hð 1Hð 1Hð 1Hr   z?substitute: empty TERMS expression interpreted as int-literal 0r   zAsubstitute: empty FACTORS expression interpreted as int-literal 1r   c              3   óB   •K  — | ]}|                      ‰¦  «        V — Œd S rp   r1  ©r†   rÐ   r4  s     €r   rˆ   z"Expr.substitute.<locals>.<genexpr>~  s/   øè è € ÐAÐA°q˜Ÿš kÑ2Ô2ÐAÐAÐAÐAÐAÐAr   c              3   óL   •K  — | ]\  }}||                      ‰¦  «        fV — Œd S rp   r1  )r†   rs   rt   r4  s      €r   rˆ   z"Expr.substitute.<locals>.<genexpr>  sL   øè è € ð 6ð 6Ù"˜a ð ˜aŸlšl¨;Ñ7Ô7Ð8ð 6ð 6ð 6ð 6ð 6ð 6r   c              3   óB   •K  — | ]}|                      ‰¦  «        V — Œd S rp   r1  r7  s     €r   rˆ   z"Expr.substitute.<locals>.<genexpr>†  s/   øè è € ÐJÐJ°q˜Ÿš kÑ2Ô2ÐJÐJÐJÐJÐJÐJr   c              3   óB   •K  — | ]}|                      ‰¦  «        V — Œd S rp   r1  r7  s     €r   rˆ   z"Expr.substitute.<locals>.<genexpr>‰  s/   øè è € ÐJÐJ¸1˜QŸ\š\¨+Ñ6Ô6ÐJÐJÐJÐJÐJÐJr   zsubstitute method for z: )!r’   r   r%   rq   ÚreÚmatchr“   ÚgroupsÚas_arrayr    r!   r#   r$   r"   r   r‰   r)   rû   r+   rœ   r2  r~   r×   r,   r'   r…   r�   r(   r&   r-   r.   r*   r‘   )rO   r4  rŸ   Úmrœ   ÚparenrÜ   rÞ   rß   râ   r  Útargetræ   rç   ÚfuncÚoperandsrí   rî   rï   s    `                 r   r2  zExpr.substituteI  s  ø€ ð
 Œ7•b”iÐÐØ—O’O DÑ)Ô)ˆEØˆ}Ø�Ý”Ð@À$Ä)ÑLÔLˆAØð 8à Ÿxšx™zœz‘��uØÐ2Ð2Ð2Ý# E™?œ?Ð*Ø Ò'Ð'Ð'¨%°¨Ñ'Ô'Ð'ØˆLØŒ7•r”z¥2¤7­B¬IÐ6Ð6Ð6ØˆKØŒ7•r”x¥¤Ð,Ð,Ð,Ý˜œ¥ð '>ð '>ð '>ð '>Ø37´9ð'>ñ '>ô '>ñ ">ô ">ñ ?ô ?ð ?àŒ7•b”iÐÐÝ�T $¤'­5ð 1Hð 1Hð 1Hð 1HØ=A¼Yð1Hñ 1Hô 1Hñ ,Hô ,Hñ Iô Iñ Jô Jð JàŒ7•b”hÐÐØˆAØ#œyŸšÑ0Ô0ð >ð >‘��eØ�9ØŸš¨Ñ4Ô4°uÑ<�A�Aà˜Ÿš¨Ñ5Ô5¸Ñ=Ñ=�A�AØˆyÝð 'ñ (ô (ð (å  ‘|”|Ð#ØˆHØŒ7•b”jÐ Ð ØˆAØ"&¤)§/¢/Ñ"3Ô"3ð Bð B‘��hØ�9ØŸš¨Ñ4Ô4¸Ñ@�A�Aà˜Ÿš¨Ñ5Ô5¸ÑAÑA�A�AØˆyÝð *ñ +ô +ð +å  ‘|”|Ð#ØˆHØŒ7•b”hÐÐØ#'¤9Ñ ˆF�D˜&Ý˜&¥$Ñ'Ô'ð 8Ø×*Ò*¨;Ñ7Ô7�ÝÐAÐAÐAÐA¸DÐAÑAÔAÑAÔAˆDÝð 6ð 6ð 6ð 6Ø&,§l¢l¡n¤nð6ñ 6ô 6ñ 6ô 6ˆFå�T $¤'¨F°D¸&Ð+AÑBÔBÑCÔCÐCØŒ7•b”kÐ!Ð!Ø”9˜Q”<ˆDÝ˜$¥Ñ%Ô%ð 4Ø—’ {Ñ3Ô3�ÝÐJÐJÐJÐJ¸D¼IÀaÀbÀb¼MÐJÑJÔJÑJÔJˆDÝ�T $¤'¨D¨7°T©>Ñ:Ô:Ñ;Ô;Ð;ØŒ7•b”jÐ Ð ÝÐJÐJÐJÐJÀÄ	ÐJÑJÔJÑJÔJˆHÝ�T $¤'¨8Ñ4Ô4Ñ5Ô5Ð5ØŒ7•r”v�rœxÐ(Ð(Ð(Ý�T $¤'¨4¬9×+?Ò+?ÀÑ+LÔ+LÑMÔMÑNÔNÐNØŒ7•b”mÐ#Ð#Ø#œyÑˆC��uØ—?’? ;Ñ/Ô/ˆDØ×$Ò$ [Ñ1Ô1ˆEÝ�T $¤'¨C°°uÐ+=Ñ>Ô>Ñ?Ô?Ð?Ý!Ð"N¸4¼7Ð"NÐ"NÀdÐ"NÐ"NÑOÔOÐOr   c           
      óR  ‡‡‡—  ‰| g‰¢R i ‰¤Ž}|�|S | j         t          j        t          j        t          j        t          j        fv r| S | j         t          j        t          j        t          j        t          j	        fv rBt          t          | j         t          ˆˆˆfd„| j        D ¦   «         ¦  «        ¦  «        ¦  «        S | j         t          j        t          j        fv r�i }| j                             ¦   «         D ]R\  }} |j        ‰g‰¢R i ‰¤Ž}t%          |t          ¦  «        r |j        ‰g‰¢R i ‰¤Žn|}||v r||         |z   }|||<   ŒSt          t          | j         |¦  «        ¦  «        S | j         t          j        u r¼| j        d         }t%          |t          ¦  «        r |j        ‰g‰¢R i ‰¤Žn|}	t          ˆˆˆfd„| j        d         D ¦   «         ¦  «        }
t)          ˆˆˆfd„| j        d                              ¦   «         D ¦   «         ¦  «        }t          t          | j         |	|
|f¦  «        ¦  «        S | j         t          j        u r…| j        d         }t%          |t          ¦  «        r |j        ‰g‰¢R i ‰¤Žn|}t          ˆˆˆfd„| j        dd…         D ¦   «         ¦  «        }t          t          | j         |f|z   ¦  «        ¦  «        S | j         t          j        t          j        fv r6t          t          | j          | j        j        ‰g‰¢R i ‰¤Ž¦  «        ¦  «        S | j         t          j        u rR| j        \  }}} |j        ‰g‰¢R i ‰¤Ž} |j        ‰g‰¢R i ‰¤Ž}t          t          | j         |||f¦  «        ¦  «        S t3          d	| j         › �¦  «        ‚)
aB  Traverse expression tree with visit function.

        The visit function is applied to an expression with given args
        and kwargs.

        Traverse call returns an expression returned by visit when not
        None, otherwise return a new normalized expression with
        traverse-visit sub-expressions.
        Nc              3   ó:   •K  — | ]} |j         ‰g‰¢R i ‰¤ŽV — Œd S rp   ©Útraverse)r†   r‡   ræ   rç   Úvisits     €€€r   rˆ   z Expr.traverse.<locals>.<genexpr>¥  sS   øè è € ð 1'ð 1'àð �”˜eÐ5 dÐ5Ð5Ð5¨fÐ5Ð5ð1'ð 1'ð 1'ð 1'ð 1'ð 1'r   r   c              3   ó:   •K  — | ]} |j         ‰g‰¢R i ‰¤ŽV — Œd S rp   rF  )r†   Úoperandræ   rç   rH  s     €€€r   rˆ   z Expr.traverse.<locals>.<genexpr>¶  sT   øè è € ð :ð :Ø!(ð .˜WÔ-¨eÐE°dÐEÐEÐE¸fÐEÐEð :ð :ð :ð :ð :ð :r   r   c              3   óD   •K  — | ]\  }}| |j         ‰g‰¢R i ‰¤ŽfV — Œd S rp   rF  )r†   rs   rt   ræ   rç   rH  s      €€€r   rˆ   z Expr.traverse.<locals>.<genexpr>¸  sd   øè è € ð @ð @Ù"& ! Qð  ! * !¤*¨UÐ"D°TÐ"DÐ"DÐ"D¸VÐ"DÐ"DÐEð @ð @ð @ð @ð @ð @r   r	   c              3   ó:   •K  — | ]} |j         ‰g‰¢R i ‰¤ŽV — Œd S rp   rF  )r†   r)  ræ   rç   rH  s     €€€r   rˆ   z Expr.traverse.<locals>.<genexpr>¿  sS   øè è € ð 8ð 8Ø %ð +˜EœN¨5ÐB°4ÐBÐBÐB¸6ÐBÐBð 8ð 8ð 8ð 8ð 8ð 8r   ztraverse method for )r’   r   r    r!   r#   r%   r"   r$   r)   r&   rû   r   r‰   r“   r+   r,   rœ   rG  r…   r'   r�   r(   r-   r.   r*   r‘   )rO   rH  ræ   rç   Úresultr“   rs   rt   ÚobjrB  rC  Ú
kwoperandsÚindicesrí   rî   rï   s    ```            r   rG  zExpr.traverse”  ss  øøø€ ð ��tÐ-˜dÐ-Ð-Ð- fÐ-Ð-ˆØÐØˆMàŒ7•r”z¥2¤7­B¬Iµr´yÐAÐAÐAØˆKØŒW�œ¥R¤X­r¬y½"¼*ÐEÐEÐEÝ�T $¤'­5ð 1'ð 1'ð 1'ð 1'ð 1'ð 1'à œIð1'ñ 1'ô 1'ñ ,'ô ,'ñ (ô (ñ )ô )ð )ð ŒW�œ¥2¤:Ð.Ð.Ð.ØˆDØœ	ŸšÑ)Ô)ð ð ‘��1Ø�A”J˜uÐ6 tÐ6Ð6Ð6¨vÐ6Ð6�å" 1¥dÑ+Ô+ð3�Z�Q”Z Ð7¨Ð7Ð7Ð7°Ð7Ð7Ð7Ø12ð à˜�9�9Ø˜Qœ !™�AØ��Q‘�Ý�T $¤'¨4Ñ0Ô0Ñ1Ô1Ð1ØŒW�œÐ Ð Ø”)˜A”,ˆCå! #¥tÑ,Ô,ð6�L�C”L Ð8¨Ð8Ð8Ð8°Ð8Ð8Ð8Ø25ð åð :ð :ð :ð :ð :ð :Ø,0¬I°a¬Lð:ñ :ô :ñ :ô :ˆHåð @ð @ð @ð @ð @ð @Ø*.¬)°A¬,×*<Ò*<Ñ*>Ô*>ð@ñ @ô @ñ @ô @ˆJå�T $¤'¨D°(¸JÐ+GÑHÔHÑIÔIÐIØŒW�œÐ#Ð#Ø”)˜A”,ˆCå  ¥dÑ+Ô+ð5�<�3”< Ð7¨Ð7Ð7Ð7°Ð7Ð7Ð7Ø14ð åð 8ð 8ð 8ð 8ð 8ð 8Ø)-¬°1°2°2¬ð8ñ 8ô 8ñ 8ô 8ˆGå�T $¤'¨C¨6°GÑ+;Ñ<Ô<Ñ=Ô=Ð=ØŒW�œ¥¤Ð*Ð*Ð*Ý�T $¤'Ø"4 $¤)Ô"4°UÐ"L¸TÐ"LÐ"LÐ"LÀVÐ"LÐ"LñNô Nñ Oô Oð OàŒW�œÐ%Ð%Ø#œyÑˆC��uØ �4”= Ð8¨Ð8Ð8Ð8°Ð8Ð8ˆDØ"�E”N 5Ð:¨4Ð:Ð:Ð:°6Ð:Ð:ˆEÝ�T $¤'¨C°°uÐ+=Ñ>Ô>Ñ?Ô?Ð?Ý!Ð"B¸¼Ð"BÐ"BÑCÔCÐCr   c                 óf   ‡— g }|fˆfd„	}|                       |¦  «         t          |¦  «        dk    S )z&Check if self contains other.
        c                 óJ   •— |r| S | ‰k    r|                      d¦  «         | S d S )Nr   )rØ   )ÚexprÚfoundr—   s     €r   rH  zExpr.contains.<locals>.visitÑ  s4   ø€ Øð Ø�Ø˜’�Ø—’˜Q‘”�Ø�ð �r   r   )rG  rŠ   )rO   r—   rT  rH  s    `  r   ÚcontainszExpr.containsÌ  sO   ø€ ð ˆà#ð 	ð 	ð 	ð 	ð 	ð 	ð 	�Š�eÑÔÐå�5‰zŒz˜QŠÐr   c                 óV   — t          ¦   «         }|fd„}|                      |¦  «         |S )z3Return a set of symbols contained in self.
        c                 óZ   — | j         t          j        u r|                     | ¦  «         d S d S rp   )r’   r   r%   Úadd)rS  rT  s     r   rH  zExpr.symbols.<locals>.visitá  s,   € ØŒw�"œ)Ð#Ð#Ø—	’	˜$‘”���ð $Ð#r   ©ÚsetrG  ©rO   rT  rH  s      r   ÚsymbolszExpr.symbolsÜ  s=   € õ ‘”ˆà#ð 	 ð 	 ð 	 ð 	 ð 	�Š�eÑÔÐàˆr   c                 ó\   ‡— t          ¦   «         }|fˆfd„	Š|                      ‰¦  «         |S )zFReturn a set of expressions used as atoms in polynomial self.
        c                 óL  •— | j         t          j        u r!| j        D ]}|                     ‰¦  «         Œ| S | j         t          j        t          j        fv rd S | j         t          j        u rct          | j        d         t          ¦  «        rC| j        d         t          j
        u r(| j        d         d                              ‰¦  «         | S d S | j         t          j        t          j        fv r| S |                     | ¦  «         | j         t          j        t          j        fv r| S d S )Nr   r   )r’   r   r,   r“   rG  r+   r"   r'   r…   rS   r[   r    r!   rX  r(   )rS  rT  ÚbrH  s      €r   rH  z$Expr.polynomial_atoms.<locals>.visitî  s  ø€ ØŒw�"œ*Ð$Ð$Øœð &ð &�AØ—J’J˜uÑ%Ô%Ð%Ð%Ø�ØŒw�2œ8¥R¤ZÐ0Ð0Ð0Ø�ØŒw�"œ(Ð"Ð"¥z°$´)¸A´,ÅÑ'HÔ'HÐ"Ø”9˜Q”<¥7¤;Ð.Ð.Ø”I˜a”L ”O×,Ò,¨UÑ3Ô3Ð3Ø�KØ�ØŒw�2œ:¥r¤wÐ/Ð/Ð/Ø�à�IŠI�d‰OŒOˆOàŒw�2œ;­¬Ð1Ð1Ð1Ø�ð 2Ð1r   rY  r[  s     @r   Úpolynomial_atomszExpr.polynomial_atomsé  sH   ø€ õ ‘”ˆà#ð 	ð 	ð 	ð 	ð 	ð 	ð( 	�Š�eÑÔÐàˆr   c                 ó6  — |                       |t          d¦  «        i¦  «        }| |z
  }|                      |t          d¦  «        i¦  «        }t          ||z  |z
  ¦  «        \  }}|t          d¦  «        k    rt          d|› d|› d|› d|› d| › �
¦  «        ‚||fS )z�Return a, b such that a * symbol + b == self.

        If self is not linear with respect to symbol, raise RuntimeError.
        r   r   znot a z-linear equation: r¾   r½   z == )r2  r×   Úas_numer_denomÚRuntimeError)rO   Úsymbolr_  ÚaxrÐ   Úzeror³   s          r   Úlinear_solvezExpr.linear_solve  sÝ   € ð
 �OŠO˜V¥Y¨q¡\¤\Ð2Ñ3Ô3ˆØ�A‰XˆØ�MŠM˜6¥9¨Q¡<¤<Ð0Ñ1Ô1ˆå   V¡¨b¡Ñ1Ô1‰ˆˆaà•9˜Q‘<”<ÒÐÝð  B¨ð  Bð  BØ#$ð Bð  BØ)/ð Bð  BØ45ð Bð  BØ;?ð Bð  Bñ Cô Cð Cà�!ˆtˆr   N)*r
   r   r   r   Ústaticmethodr   r   r‚   r”   r˜   r�   r¡   r£   r¥   r§   r¯   r±   ra   rn   r   rP   rñ   rô   r  r  r	  r  r  r  r  r  r  r  r!  r&  r*  r2  rG  rU  r\  r`  rg  r   r   r   r   r   �   s2  € € € € € ðð ð
 Ø"œ*ð 0ð 0ð 0ñ „\ð0ð
@ð @ð @ðD-ð -ð -ð
%ð %ð %ðð ð ð BÐAÐAà7Ð7Ð7à6Ð6Ð6ðBð Bð Bðð ð ð *4¬Ø"Ô*ðPð Pð Pð Pðdð ð ðð ð ðð ð ð8ð ð ð
ð ð ðð ð ð
'ð 'ð 'ðRð ð ð
ð ð ð.ð ð ðð ð ðð ð ðð ð ðLð Lð Lð2ð 2ð 2ðIPð IPð IPðV6Dð 6Dð 6Dðpð ð ð ð ð ðð ð ð:ð ð ð ð r   c           	      óz  — t          | t          ¦  «        s| S | j        t          j        u �ri }| j                             ¦   «         D ]„\  }}|dk    rŒ|j        t          j        u r|dk    r||z  }d}|j        t          j        u r4|j                             ¦   «         D ]\  }}t          ||||z  ¦  «         ŒŒst          |||¦  «         Œ…t          |¦  «        dk    rt          d¦  «        S t          |¦  «        dk    r!|                     ¦   «         \  \  }}|dk    r|S t          t          j        |¦  «        S | j        t          j        u �rVd}i }| j                             ¦   «         D �]1\  }}|dk    rŒ|j        t          j        u r(t          |t          ¦  «        r|dk    r|||dz
  z  z  }d}|j        t          j        t          j        fv rC|dk    r||j        d         z  }Œ~|dk    r||j        d         |z  z  }Œ˜t          |||¦  «         Œª|j        t          j        u rc|dk    rJt          |t          ¦  «        r5|j                             ¦   «         D ]\  }	}
t          ||	|
|z  ¦  «         Œ�Œt          |||¦  «         �Œ t          |||¦  «         �Œ3t          |¦  «        dk    s|dk    r&t          |t          ¦  «        sJ ‚t          |¦  «        S t          |¦  «        dk    r`|                     ¦   «         \  \  }}|dk    r|}nt          t          j        |¦  «        }|dk    r|S t          t          j        ||i¦  «        S |dk    rt          t          j        |¦  «        S t          t          j        t          t          j        |¦  «        |i¦  «        S | j        t          j        u �r¶| j        d         t"          j        u �rœ| j        d         \  }}t'          |¦  «        \  }}t'          |¦  «        \  }}t          |t          ¦  «        r0t          |t          ¦  «        rt)          ||¦  «        }||z  ||z  }}n||z  d}}|j        t          j        u rc|j        d         t"          j        u rJ|j        d         d         |z  }|j        d         d         |z  |z  }t+          t"          j        ||¦  «        S |j        t          j        u rc|j        d         t"          j        u rJ|j        d         d         |z  |z  }|j        d         d         |z  }t+          t"          j        ||¦  «        S t-          t/          |¦  «        j        ¦  «        }t/          |¦  «        j                             ¦   «         D ]\  }}t          ||| ¦  «         Œi i }}|                     ¦   «         D ]\  }}|dk    r|||<   Œ| ||<   Œt1          t          t          j        |¦  «        ¦  «        |z  }t1          t          t          j        |¦  «        ¦  «        |z  }|j        t          j        t          j        fv r|j        d         dk    r|S t+          t"          j        ||¦  «        S | j        t          j        u �rE| j        d         g}| j        dd…         D ]å}|d         }|j        t          j        u r³|j        t          j        u r |j        d         d         dv r‹|j        d         d         |j        d         d         k    rct7          |j        d         dd…         |j        d         dd…         z   t9          |j        d         |j        d         ¦  «        ¦  «        }||d<   ŒÐ|                     |¦  «         Œæt          |¦  «        dk    r|d         S t          t          j        t=          |¦  «        ¦  «        S | j        t          j        u r_tA          t0          | j        ¦  «        \  }}}|j        t          j        u r|j        d         r|n|S t          t          j        |||f¦  «        S | S )z7Normalize Expr and apply basic evaluation methods.
    r   r   Nró   z"')!r…   r   r’   r   r+   r“   rœ   r"   rv   rŠ   r×   r,   Úinteger_typesr    r!   r  r'   rS   rZ   Úas_term_coeffr   r  r�   r  rû   r)   r#   Ú	as_stringrù   rØ   r‰   r&   r%  )rN  rr   Útru   r  r  rß   r_  ÚeÚb1Úe1ÚdividendÚdivisorr  r  Úgrè   ré   ÚlstrJ   ÚlastÚnew_lastrê   rë   rì   s                            r   rû   rû     s   € õ �c�4Ñ Ô ð Øˆ
à
„v•”ÐÑØˆØ”H—N’NÑ$Ô$ð 
	$ð 
	$‰DˆAˆqØ�AŠvˆvØØŒt•r”zÐ!Ð! a¨1¢f fØ˜‘E�Ø�ØŒt•r”xÐÐØœfŸlšl™nœnð .ð .‘F�B˜Ý˜q " b¨1¡fÑ-Ô-Ð-Ð-ð.õ ˜1˜a Ñ#Ô#Ð#Ð#Ýˆq‰6Œ6�QŠ;ˆ;å˜Q‘<”<ÐÝ�‰VŒV�qŠ[ˆ[Ø—g’g‘i”i‰G‰FˆQ�Ø�AŠvˆvØ�Ý•B”H˜aÑ Ô Ð à
„v•”ÐÑØˆØˆØ”H—N’NÑ$Ô$ð 	$ñ 	$‰DˆAˆqØ�AŠvˆvØØŒt•r”xÐÐ¥J¨qµ-Ñ$@Ô$@ÐÀQÈÂUÀUà˜˜q 1™u™Ñ&�Ø�àŒt�œ
¥B¤GÐ,Ð,Ð,Ø˜’6�6Ø˜QœV AœYÑ&�E�EØ˜’U�UØ˜QœV AœY¨!™^Ñ+�E�Eå˜q ! QÑ'Ô'Ð'Ð'Ø”�œÐ#Ð#Ø�q’5�5�Z¨­=Ñ9Ô9�5Ø"#¤&§,¢,¡.¤.ð 2ð 2™˜˜BÝ" 1 b¨"¨q©&Ñ1Ô1Ð1Ð1ñ2õ ˜q ! QÑ'Ô'Ð'Ñ'å˜1˜a Ñ#Ô#Ð#Ñ#Ýˆq‰6Œ6�QŠ;ˆ;˜% 1š*˜*å˜e¥\Ñ2Ô2Ð2Ð2Ð2Ý˜UÑ#Ô#Ð#Ý�‰VŒV�qŠ[ˆ[Ø—g’g‘i”i‰G‰FˆQ�Ø�AŠvˆvØ��å�œ QÑ'Ô'�Ø˜ŠzˆzØ�Ý�œ 1 e *Ñ-Ô-Ð-Ø�aŠZˆZÝ�œ
 AÑ&Ô&Ð&å�œ¥4­¬
°AÑ#6Ô#6¸Ð">Ñ?Ô?Ð?à
„v•”ÐÑ˜cœh qœk­W¬[Ð8Ñ8ØœH QœKÑˆ�'Ý˜xÑ(Ô(‰ˆˆBÝ˜wÑ'Ô'‰ˆˆBÝ�b�-Ñ(Ô(ð 	­Z¸½MÑ-JÔ-Jð 	Ý�B˜‘”ˆAØ˜‘U˜B ™E�ˆBˆBà˜‘U˜A�ˆBàŒ5•B”HÐÐ ¤¨¤­w¬{Ð!:Ð!:Ø”G˜A”J˜q”M BÑ&ˆEØ”G˜A”J˜q”M BÑ&¨Ñ+ˆEÝ�GœK¨°Ñ6Ô6Ð6àŒ5•B”HÐÐ ¤¨¤­w¬{Ð!:Ð!:Ø”G˜A”J˜q”M BÑ&¨Ñ+ˆEØ”G˜A”J˜q”M BÑ&ˆEÝ�GœK¨°Ñ6Ô6Ð6å•˜B‘”Ô$Ñ%Ô%ˆÝ˜r‘N”NÔ'×-Ò-Ñ/Ô/ð 	!ð 	!‰DˆAˆqÝ�q˜!˜a˜RÑ Ô Ð Ð Ø˜2ˆuˆØ—G’G‘I”Ið 	ð 	‰DˆAˆqØ�1ŠuˆuØ��a‘�à˜2��a‘�Ý�$�rœz¨5Ñ1Ô1Ñ2Ô2°RÑ7ˆÝ�$�rœz¨5Ñ1Ô1Ñ2Ô2°RÑ7ˆàŒ8�œ
¥B¤GÐ,Ð,Ð,°´¸A´À!Ò1CÐ1CàˆLÝ�œ U¨EÑ2Ô2Ð2à
„v•”ÐÑØŒx˜Œ{ˆmˆØ”˜!˜"˜"”ð 	ð 	ˆAØ�r”7ˆDà”G�rœyÐ(Ð(Øœ¥¤	Ð)Ð)Øœ	 !œ Qœ¨5Ð0Ð0Øœ˜qœ	 !œ¨¬	°!¬°RÔ(8Ò8Ð8å$ T¤Y¨q¤\°#°2°#Ô%6¸¼À¼À1À2À2¼Ñ%FÝ%(¨¬°1¬°q´v¸a´yÑ%AÔ%AñCô C�à"��B‘�à—
’
˜1‘”��Ýˆs‰8Œ8�qŠ=ˆ=Ø�q”6ˆMÝ•B”I�u S™zœzÑ*Ô*Ð*à
„v•”ÐÐÝ ¥¨C¬HÑ5Ô5Ñˆˆe�UØŒ7•b”jÐ Ð Ø œI aœLÐ3�5�5¨eÐ3Ý•B”J  u¨eÐ 4Ñ5Ô5Ð5à€Jr   c                 ó|  — t          | t          ¦  «        rt          | j        | j        ¦  «        S t          | t
          ¦  «        rt          | ¦  «        S t          | t          ¦  «        rt          t          | ¦  «        ¦  «        S t          | t          ¦  «        r"t          t          t          | ¦  «        ¦  «        S | S )z.Convert non-Expr objects to Expr objects.
    )r…   Úcomplexrú   ÚrealÚimagr  r×   rŒ   rl  Úreprr‰   r%  rø   ©rN  s    r   rø   rø      sŸ   € õ �#•wÑÔð .Ý˜#œ( C¤HÑ-Ô-Ð-Ý�#•|Ñ$Ô$ð Ý˜‰~Œ~ÐÝ�#•sÑÔð $õ �˜c™œÑ#Ô#Ð#Ý�#•uÑÔð (Ý•S� #Ñ&Ô&Ñ'Ô'Ð'Ø€Jr   c                 ó6   — t          t          j        | ¦  «        S )zJReturn object as SYMBOL expression (variable or unparsed expression).
    )r   r   r%   r|  s    r   Ú	as_symbolr~  °  s   € õ •”	˜3ÑÔÐr   r2   c                 óX  — t          | t          ¦  «        rt          t          j        | |f¦  «        S t          | t
          ¦  «        rt          t          j        | |f¦  «        S t          | t          ¦  «        r!| j        t          j        t          j        fv r| S t          d| › d�¦  «        ‚)z/Return object as INTEGER or REAL constant.
    úcannot convert z to INTEGER or REAL constant)	r…   r‹   r   r   r    r�   r!   r’   r]   ©rN  r÷   s     r   r×   r×   ¶  s›   € õ �#•sÑÔð -Ý•B”J  d Ñ,Ô,Ð,Ý�#•uÑÔð *Ý•B”G˜c 4˜[Ñ)Ô)Ð)Ý�#•tÑÔð ØŒ6•b”j¥"¤'Ð*Ð*Ð*ØˆJÝ
ÐE CÐEÐEÐEÑ
FÔ
FÐFr   c                 óÞ   — t          | t          ¦  «        rt          t          j        | |f¦  «        S t          | t          ¦  «        r| j        t          j        u r| S t          d| › d�¦  «        ‚)z'Return object as INTEGER constant.
    r€  z to INTEGER constant)r…   r‹   r   r   r    r’   r]   r�  s     r   Ú
as_integerrƒ  Ã  sl   € õ �#•sÑÔð -Ý•B”J  d Ñ,Ô,Ð,Ý�#•tÑÔð ØŒ6•R”ZÐÐØˆJÝ
Ð= CÐ=Ð=Ð=Ñ
>Ô
>Ð>r   c                 óè  — t          | t          ¦  «        r)t          t          j        t          | ¦  «        |f¦  «        S t          | t
          ¦  «        rt          t          j        | |f¦  «        S t          | t          ¦  «        r\| j        t          j        u r| S | j        t          j        u r4t          t          j        t          | j        d         ¦  «        |f¦  «        S t          d| › d�¦  «        ‚)z$Return object as REAL constant.
    r   r€  z to REAL constant)
r…   r‹   r   r   r!   r�   r’   r    r“   r]   r�  s     r   rü   rü   Î  sÏ   € õ �#•sÑÔð 1Ý•B”G�e C™jœj¨$Ð/Ñ0Ô0Ð0Ý�#•uÑÔð *Ý•B”G˜c 4˜[Ñ)Ô)Ð)Ý�#•tÑÔð =ØŒ6•R”WÐÐØˆJØŒV•r”zÐ!Ð!Ý�œ¥%¨¬°¬Ñ"4Ô"4°dÐ!;Ñ<Ô<Ð<Ý
Ð: CÐ:Ð:Ð:Ñ
;Ô
;Ð;r   r   c                 ó:   — t          t          j        | |f¦  «        S )zBReturn object as STRING expression (string literal constant).
    )r   r   r#   r�  s     r   rl  rl  Ý  s   € õ •”	˜C ˜;Ñ'Ô'Ð'r   c                 óf   — t          | t          ¦  «        r| f} t          t          j        | ¦  «        S )z8Return object as ARRAY expression (array constant).
    )r…   r   r   r$   r|  s    r   r>  r>  ã  s/   € õ �#•tÑÔð ØˆdˆÝ•”˜#ÑÔÐr   c                 ón   — t          t          j        t          | ¦  «        t          |¦  «        f¦  «        S )zDReturn object as COMPLEX expression (complex literal constant).
    )r   r   r"   rø   )ry  rz  s     r   rú   rú   ë  s'   € õ •”
�W T™]œ]­G°D©M¬MÐ:Ñ;Ô;Ð;r   c           
      óÎ   — t          t          j        | t          t	          t
          |¦  «        ¦  «        t          d„ |                     ¦   «         D ¦   «         ¦  «        f¦  «        S )zIReturn object as APPLY expression (function call, constructor, etc.)
    c              3   ó>   K  — | ]\  }}|t          |¦  «        fV — Œd S rp   r$  rÌ   s      r   rˆ   zas_apply.<locals>.<genexpr>ö  s0   è è € ÐAÐA©$¨!¨Q�q�' !™*œ*�oÐAÐAÐAÐAÐAÐAr   )r   r   r'   r‰   r%  rø   r�   rœ   )rB  ræ   rç   s      r   r  r  ñ  s\   € õ •”Ø•u�S¥¨$Ñ/Ô/Ñ0Ô0ÝÐAÐA°&·,²,±.´.ÐAÑAÔAÑAÔAðCñDô Dð Dr   c                 ó<   — t          t          j        | ||f¦  «        S )z<Return object as TERNARY expression (cond?expr1:expr2).
    )r   r   r&   )rê   rë   rì   s      r   Ú
as_ternaryr‹  ù  s   € õ •”
˜T 5¨%Ð0Ñ1Ô1Ð1r   c                 ó6   — t          t          j        | ¦  «        S )z-Return object as referencing expression.
    )r   r   r-   ©rS  s    r   Úas_refrŽ  ÿ  s   € õ •”˜ÑÔÐr   c                 ó6   — t          t          j        | ¦  «        S )z/Return object as dereferencing expression.
    )r   r   r.   r�  s    r   Úas_derefr�    s   € õ •”˜$ÑÔÐr   c                 óP   — t          t          j        t          j        | |f¦  «        S rp   )r   r   r*   r0   rB   ©rî   rï   s     r   Úas_eqr“    ó   € Ý•”¥¤¨$°Ð6Ñ7Ô7Ð7r   c                 óP   — t          t          j        t          j        | |f¦  «        S rp   )r   r   r*   r0   rC   r’  s     r   Úas_ner–    r”  r   c                 óP   — t          t          j        t          j        | |f¦  «        S rp   )r   r   r*   r0   rD   r’  s     r   Úas_ltr˜    r”  r   c                 óP   — t          t          j        t          j        | |f¦  «        S rp   )r   r   r*   r0   rE   r’  s     r   Úas_lerš    r”  r   c                 óP   — t          t          j        t          j        | |f¦  «        S rp   )r   r   r*   r0   rF   r’  s     r   Úas_gtrœ    r”  r   c                 óP   — t          t          j        t          j        | |f¦  «        S rp   )r   r   r*   r0   rG   r’  s     r   Úas_gerž    r”  r   c                 ó8  — t          | t          ¦  «        ræt          | ¦  «        } | j        t          j        u r| S | j        t          j        u r@t          t          j        t          d| j        d         ¦  «        | j        d         i¦  «        S | j        t          j	        u r@t          t          j        t          d| j        d         ¦  «        | j        d         i¦  «        S t          t          j        | di¦  «        S t          dt          | ¦  «        › d�¦  «        ‚)z+Return expression as TERMS expression.
    r   r   r€  ú to terms Expr)r…   r   rû   r’   r   r+   r    rƒ  r“   r!   rü   r]   r­   r|  s    r   rý   rý   #  sã   € õ �#•tÑÔð (Ý˜‰nŒnˆØŒ6•R”XÐÐØˆJØŒ6•R”ZÐÐÝ�œ¥:¨a°´¸!´Ñ#=Ô#=¸s¼xÈ¼{Ð"KÑLÔLÐLØŒ6•R”WÐÐÝ�œ¥7¨1¨c¬h°q¬kÑ#:Ô#:¸C¼HÀQ¼KÐ"HÑIÔIÐIÝ•B”H˜s A˜hÑ'Ô'Ð'Ý
Ð=¥D¨¡I¤IÐ=Ð=Ð=Ñ
>Ô
>Ð>r   c                 ó"  — t          | t          ¦  «        �rZt          | ¦  «        } | j        t          j        u r| S | j        t          j        u rŽt          | j        ¦  «        dk    rv| j         	                    ¦   «         \  \  }}|dk    rt          t          j        |di¦  «        S t          t          j        |dt           
                    |¦  «        di¦  «        S | j        t          j        u rf| j        d         t          j        u rM| j        d         s@t          t          j        | j        d         d         d| j        d         d         di¦  «        S t          t          j        | di¦  «        S t          dt          | ¦  «        › d�¦  «        ‚)z-Return expression as FACTORS expression.
    r   r   r	   ró   r€  r   )r…   r   rû   r’   r   r,   r+   rŠ   r“   rœ   Únumberr'   rS   rZ   r]   r­   )rN  rÞ   rß   s      r   r  r  2  sI  € õ �#•tÑÔñ *Ý˜‰nŒnˆØŒ6•R”ZÐÐØˆJØŒ6•R”XÐÐÝ�3”8‰}Œ} Ò!Ð!Ø!$¤§¢Ñ!1Ô!1‘‘��uØ˜A’:�:Ý¥¤
¨T°1¨IÑ6Ô6Ð6Ý�BœJ¨¨qµ$·+²+¸eÑ2DÔ2DÀaÐ(HÑIÔIÐIØŒF•b”hÐÐØ”˜!”¥¤Ð+Ð+Ø”X˜a”[ð ,å�œ
 S¤X¨a¤[°¤^°Q¸¼À¼ÀA¼ÈÐ$KÑLÔLÐLÝ•B”J  a Ñ)Ô)Ð)Ý
Ð=¥D¨¡I¤IÐ=Ð=Ð=Ñ
>Ô
>Ð>r   c                 ó  — t          | t          ¦  «        �rSt          | ¦  «        } | j        t          j        u r(t          d| j        d         ¦  «        | j        d         fS | j        t          j        u r(t          d| j        d         ¦  «        | j        d         fS | j        t          j
        u r:t          | j        ¦  «        dk    r"| j                             ¦   «         \  \  }}||fS | j        t          j        u rj| j        d         t          j        u rQt!          | j        d         d         ¦  «        \  }}t#          t          j        || j        d         d         ¦  «        |fS | dfS t%          dt'          | ¦  «        › d�¦  «        ‚)z0Return expression as term-coefficient pair.
    r   r   r€  z to term and coeff)r…   r   rû   r’   r   r    rƒ  r“   r!   rü   r+   rŠ   rœ   r'   rS   rZ   rk  r  r]   r­   )rN  rÞ   rß   rm  ru   s        r   rk  rk  G  sL  € õ �#•tÑÔñ Ý˜‰nŒnˆØŒ6•R”ZÐÐÝ˜a ¤¨!¤Ñ-Ô-¨s¬x¸¬{Ð:Ð:ØŒ6•R”WÐÐÝ˜1˜cœh qœkÑ*Ô*¨C¬H°Q¬KÐ7Ð7ØŒ6•R”XÐÐÝ�3”8‰}Œ} Ò!Ð!Ø!$¤§¢Ñ!1Ô!1‘‘��uØ˜U�{Ð"àŒ6•R”XÐÐ #¤(¨1¤+µ´Ð"<Ð"<Ý  ¤¨!¤¨Q¤Ñ0Ô0‰DˆAˆqÝ�GœK¨¨C¬H°Q¬K¸¬NÑ;Ô;¸QÐ>Ð>Ø�AˆvˆÝ
ÐA¥D¨¡I¤IÐAÐAÐAÑ
BÔ
BÐBr   c                 óú  — t          | t          ¦  «        �rÆt          | ¦  «        } | j        t          j        t          j        t          j        t          j        t          j	        t          j
        fv r| t          d¦  «        fS | j        t          j        u r|| j        d         t          j        u rR| j        d         sEt!          t"          | j        d         ¦  «        \  }}|d         |d         z  |d         |d         z  fS | t          d¦  «        fS | j        t          j        u �r#g g }}| j                             ¦   «         D ]F\  }}t#          |¦  «        \  }}||z  }|                     |¦  «         |                     |¦  «         ŒGt          d¦  «        t          d¦  «        }}t+          t-          |¦  «        ¦  «        D ]J}	||	         }t+          t-          |¦  «        ¦  «        D ]}
|	|
k    r|||
         z  }Œ||z  }|||	         z  }ŒK|j        t          j        t          j        fv r|j        d         dk     r| | }}||fS | j        t          j        u r‚t          d¦  «        t          d¦  «        }}| j                             ¦   «         D ]F\  }}t#          |¦  «        \  }}|dk    r|||z  z  }|||z  z  }Œ.|dk     r||| z  z  }||| z  z  }ŒG||fS t1          dt3          | ¦  «        › d�¦  «        ‚)z+Return expression as numer-denom pair.
    r   r   r	   r€  z to numer and denom)r…   r   rû   r’   r   r    r!   r"   r%   r(   r&   r×   r'   r“   rS   rZ   r%  rb  r+   rœ   rØ   rÙ   rŠ   r,   r]   r­   )rN  ÚnumersÚdenomsrÞ   rß   Únrr   rè   ré   ÚiÚjr_  rn  ÚbnumerÚbdenoms                  r   rb  rb  \  sç  € õ �#•tÑÔñ & Ý˜‰nŒnˆØŒ6•b”j¥"¤'­2¬:µr´yÝ”k¥2¤:ð/ð /ð /à�	 !™œÐ$Ð$ØŒV•r”xÐÐØŒx˜Œ{�gœkÐ)Ð)°#´(¸1´+Ð)Ý!$¥^°S´X¸a´[Ñ!AÔ!A‘�˜Ø˜a”y 6¨!¤9Ñ,¨f°Q¬i¸&À¼)Ñ.CÐCÐCØ�	 !™œÐ$Ð$ØŒV•r”xÐÑØ �FˆFØ"œxŸ~š~Ñ/Ô/ð !ð !‘��eÝ% dÑ+Ô+‘��1Ø˜‘I�Ø—’˜aÑ Ô Ð Ø—’˜aÑ Ô Ð Ð Ý$ Q™<œ<­°1©¬�5ˆEÝ�3˜v™;œ;Ñ'Ô'ð #ð #�Ø˜1”I�Ý�s 6™{œ{Ñ+Ô+ð 'ð '�AØ˜A’v�vØ˜V AœY™˜øØ˜‘
�Ø˜ œÑ"��ØŒx�BœJ­¬Ð0Ð0Ð0°U´ZÀ´]ÀQÒ5FÐ5FØ %˜v¨ v�u�Ø˜%�<ÐØŒV•r”zÐ!Ð!Ý$ Q™<œ<­°1©¬�5ˆEØœŸšÑ(Ô(ð ,ð ,‘��1Ý!/°Ñ!2Ô!2‘�˜Ø�q’5�5Ø˜V q™[Ñ(�EØ˜V q™[Ñ(�E�EØ˜’U�UØ˜V¨¨™^Ñ+�EØ˜V¨¨™^Ñ+�EøØ˜%�<ÐÝ
ÐB¥D¨¡I¤IÐBÐBÐBÑ
CÔ
CÐCr   c               #   ó    K  — d} 	 | dz  } | V — Œ
)Nr   Tr   r   )Úcounters    r   Ú_counterr®  ‰  s'   è è € à€GðØ�1‰ˆØˆˆˆðr   c                 óŠ   ‡— i Šˆfd„}t          j        d                     ddd¬¦  «        || ¦  «        }d|vsJ ‚d|vsJ ‚|‰fS )	zgReplace quoted substrings of input string.

    Return a new string and a mapping of replacements.
    c                 óÎ   •— |                       ¦   «         d d…         \  }}|r
|d d…         }dddœ|d                  }|› d|› dt                               ¦   «         › d	�}|‰|<   |S )
Nr	   ró   ÚSINGLEÚDOUBLE)ú'ú"r   z@__f2py_QUOTES_r³   ú@)r=  ÚCOUNTERÚ__next__)r?  r÷   rŸ   Úprs   rr   s        €r   Úreplzeliminate_quotes.<locals>.repl›  s   ø€ Ø—h’h‘j”j  ! ”n‰ˆˆeØð 	à˜˜˜”9ˆDØ Ð*Ð*¨5°¬8Ô4ˆØÐ=Ð= AÐ=Ð=­×(8Ò(8Ñ(:Ô(:Ð=Ð=Ð=ˆØˆˆ!‰Øˆr   z+({kind}_|)({single_quoted}|{double_quoted})z
\w[\w\d_]*z('([^'\\]|(\\.))*')z("([^"\\]|(\\.))*"))r÷   Úsingle_quotedÚdouble_quotedr´  r³  )r;  ÚsubÚformat)rJ   r¹  Únew_srr   s      @r   Úeliminate_quotesr¿  ”  sŒ   ø€ ð
 	€Aðð ð ð ð õ ŒFÐA×HÒHØØ,Ø,ð Iñ .ô .ð 	ˆañ	ô €Eð �eÐÐÐÐØ�eÐÐÐÐà�!ˆ8€Or   c                 ó´   — |                      ¦   «         D ]B\  }}|d|                     d¦  «        …         }|r|dz  }|                      |||z   ¦  «        } ŒC| S )z!Inverse of eliminate_quotes.
    Nrµ  r³   )rœ   ÚfindÚreplace)rJ   rr   rs   rt   r÷   s        r   Úinsert_quotesrÃ  ±  se   € ð —’‘	”	ð #ð #‰ˆˆ1Ø��!—&’&˜‘+”+�ŒˆØð 	Ø�C‰KˆDØ�IŠI�a˜ ™Ñ"Ô"ˆˆØ€Hr   c                 ó  — d\  }}t          | ¦  «        }dD ]-\  }}|                      |¦  «        }|dk    rŒ!||k     r|}||}}Œ.|€| i fS |}|                      ||¦  «        }|                      ||dz   |¦  «        |                      ||dz   |¦  «        k    rm|                      ||dz   ¦  «        }|dk    rt          d||z   › d| ›�¦  «        ‚|                      ||dz   |¦  «        |                      ||dz   |¦  «        k    °mdd	d
ddœ|         }d|› dt                               ¦   «         › d�}	| |t          |¦  «        z   |…         }
t          | |t          |¦  «        z   d…         ¦  «        \  }}|
||	<   | d|…         |	z   |z   |fS )zzReplace substrings of input that are enclosed in parenthesis.

    Return a new string and a mapping of replacements.
    )NN))ú(/ú/)z()z{}z[]ró   Nr   zMismatch of z parenthesis in r/  r.  ÚCURLYr-  )rª   r»   Ú{rÅ  ú@__f2py_PARENTHESIS_r³   rµ  )rŠ   rÁ  ÚcountÚ
ValueErrorr¶  r·  Úreplace_parenthesis)rJ   rî   rï   Úmn_iÚleft_Úright_r¨  r©  r¸  rs   rt   rÜ   rr   s                r   rÌ  rÌ  ¼  sÏ  € ð �K€Dˆ%Ýˆq‰6Œ6€Dð ð 	(ð 	(‰ˆˆvð �FŠF�5‰MŒMˆØ�Š7ˆ7ØØˆtŠ8ˆ8ØˆDØ �%ˆDøà€|Ø�"ˆuˆà€AØ	�Šˆu�aÑÔ€Aà
�'Š'�$˜˜A™˜qÑ
!Ô
! Q§W¢W¨U°A¸±E¸1Ñ%=Ô%=Ò
=Ð
=Ø�FŠF�5˜!˜a™%Ñ Ô ˆØ�Š7ˆ7ÝÐM¨D°©JÐMÐMÈÐMÐMÑNÔNÐNð �'Š'�$˜˜A™˜qÑ
!Ô
! Q§W¢W¨U°A¸±E¸1Ñ%=Ô%=Ò
=Ð
=ð
 ˜H¨7¸*ÐEÐEÀdÔK€Aà8˜qÐ8Ð8¥7×#3Ò#3Ñ#5Ô#5Ð8Ð8Ð8€AØ	ˆ!�C�‰IŒI‰+�aˆ-Ô€AÝ˜q ¥3 u¡:¤:¡  Ô/Ñ0Ô0�D€A€qØ€A€a�DØˆRˆaˆRŒ5�1‰9�q‰=˜!ÐÐr   c                 óv   — |                       d¦  «        s
J | ¦   «         ‚|                      d¦  «        d         S )NrÉ  r³   r2   )Ú
startswithÚsplit)rJ   s    r   Ú_get_parenthesis_kindrÓ  ç  s7   € Ø�<Š<Ð.Ñ/Ô/Ð2Ð2°Ñ2Ô2Ð2Ø�7Š7�3‰<Œ<˜Œ?Ðr   c                 óô   — |                      ¦   «         D ]b\  }}t          |¦  «        }t          dddd¬¦  «        |         }t          dddd	¬¦  «        |         }|                      |||z   |z   ¦  «        } Œc| S )
z$Inverse of replace_parenthesis.
    rª   r»   rÈ  rÅ  )r/  r.  rÇ  r-  r¬   r¼   Ú}rÆ  )rœ   rÓ  r�   rÂ  )rJ   rr   rs   rt   r¸  rî   rï   s          r   Úunreplace_parenthesisrÖ  ì  s…   € ð —’‘	”	ð +ð +‰ˆˆ1Ý! !Ñ$Ô$ˆÝ˜# c°¸tÐDÑDÔDÀQÔGˆÝ˜3 s°#ÀÐEÑEÔEÀaÔHˆØ�IŠI�a˜ ™ EÑ)Ñ*Ô*ˆˆØ€Hr   c                 ó¢   — t          |¬¦  «                             | ¦  «        }t          |t          ¦  «        r|S t	          d| › d|› d�¦  «        ‚)z®Create an expression from a string.

    This is a "lazy" parser, that is, only arithmetic operations are
    resolved, non-arithmetic operations are treated as symbols.
    r�   zfailed to parse `z` to Expr instance: got `r(  )Ú_FromStringWorkerr‚   r…   r   rË  )rJ   rK   rÜ   s      r   rL   rL   ÷  s[   € õ 	 8Ð,Ñ,Ô,×2Ò2°1Ñ5Ô5€AÝ�!•TÑÔð ØˆÝ
ÐI¨ÐIÐIÀQÐIÐIÐIÑ
JÔ
JÐJr   c                   ó    — e Zd Zd„ Zd„ Zd„ ZdS )Ú_Pairc                 ó"   — || _         || _        d S rp   r’  )rO   rî   rï   s      r   r”   z_Pair.__init__  s   € ØˆŒ	ØˆŒ
ˆ
ˆ
r   c                 óæ   — | j         | j        }}t          |t          ¦  «        r|                     |¦  «        }t          |t          ¦  «        r|                     |¦  «        }t          ||¦  «        S rp   )rî   rï   r…   r   r2  rÚ  )rO   r4  rî   rï   s       r   r2  z_Pair.substitute
  sg   € Ø”i ¤ˆeˆÝ�d�DÑ!Ô!ð 	0Ø—?’? ;Ñ/Ô/ˆDÝ�e�TÑ"Ô"ð 	2Ø×$Ò$ [Ñ1Ô1ˆEÝ�T˜5Ñ!Ô!Ð!r   c                 óP   — t          | ¦  «        j        › d| j        › d| j        › d�S r©   )r­   r
   rî   rï   r®   s    r   r¯   z_Pair.__repr__  s.   € Ý�t‘*”*Ô%ÐBÐB¨¬	ÐBÐB°T´ZÐBÐBÐBÐBr   N)r
   r   r   r”   r2  r¯   r   r   r   rÚ  rÚ    sF   € € € € € ðð ð ð"ð "ð "ðCð Cð Cð Cð Cr   rÚ  c                   ó6   — e Zd Zej        fd„Zd„ Zd„ Zdd„ZdS )rØ  c                 ó0   — d | _         d | _        || _        d S rp   )ÚoriginalÚ
quotes_maprK   rN   s     r   r”   z_FromStringWorker.__init__  s   € ØˆŒØˆŒØ ˆŒˆˆr   c                 ó,   — t          || j        ¦  «        S rp   )rÃ  rá  )rO   rJ   s     r   Úfinalize_stringz!_FromStringWorker.finalize_string  s   € Ý˜Q ¤Ñ0Ô0Ð0r   c                 óh   — || _         t          |¦  «        \  }| _        |                      |¦  «        S rp   )rà  r¿  rá  Úprocess)rO   ÚinpÚunquoteds      r   r‚   z_FromStringWorker.parse   s/   € ØˆŒÝ$4°SÑ$9Ô$9Ñ!ˆ�$”/Ø�|Š|˜HÑ%Ô%Ð%r   rS  c           	      óp  ‡ ‡‡‡— t          |t          t          f¦  «        r% t          |¦  «        ˆˆ fd„|D ¦   «         ¦  «        S t          |t          ¦  «        sJ t          |¦  «        |f¦   «         ‚t          |¦  «        \  }Š|                     ¦   «         }ˆˆfd„Šd|v r� ‰|                     d¦  «        ¦  «        }‰dk    r"t          ‰                      |¦  «        ¦  «        S ‰dk    r/t          |¦  «        dk    rt          ‰                      |¦  «        Ž S t          d‰› d|› �¦  «        ‚t          j        d	|¦  «        }|r�‰dk    s
J ‰¦   «         ‚ ‰|                     ¦   «         ¦  «        \  }}}‰                      |¦  «        }‰                      |¦  «        }‰                      |¦  «        }t          |||¦  «        S ‰ j        t"          j        u r!t          j        d
|t          j        ¦  «        }nt          j        d|¦  «        }|r”|                     ¦   «         \  }	}
}‰ j        t"          j        u rd|
z   dz   }
‰                       ‰|	|f¦  «        ¦  «        \  }	}t(                               |
‰ j        ¬¦  «        }
t-          t.          j        |
|	|f¦  «        S t          j        d|¦  «        }|rE|                     ¦   «         \  }} ‰|¦  «        }t3          |‰                      |¦  «        ¦  «        S t          j        d|¦  «        }t          |¦  «        dk    r›‰                       ‰|d         pd¦  «        ¦  «        }t5          |ddd…         |ddd…         ¦  «        D ]P\  }}‰                       ‰|¦  «        ¦  «        }|                     ¦   «         }|dk    r||z  }ŒC|dk    sJ ‚||z  }ŒQ|S ‰ j        t"          j        u r\d|v rX ‰|                     d¦  «        ¦  «        }t-          t.          j        t          ‰                      |¦  «        ¦  «        ¦  «        S t          j        d‰ j        t"          j        u r|n|                     dd¦  «        ¦  «        }t          |¦  «        dk    r± ‰|¦  «        }‰ j        t"          j        urd„ |D ¦   «         }‰                      |d         ¦  «        }t5          |ddd…         |ddd…         ¦  «        D ]G\  }}‰                      |¦  «        }|                     ¦   «         }|dk    r||z  }Œ:|dk    sJ ‚||z  }ŒH|S |                     d¦  «        r[t.          j        t.          j         dœ|d                  }‰                       ‰|dd…         ¦  «        ¦  «        }t-          ||¦  «        S ‰ j        t"          j        ur€d|v r|t          tC           ‰|                     d¦  «        ¦  «        ¦  «        ¦  «        }‰                      |d         ¦  «        }|dd…         D ]}‰                      |¦  «        }||z  }Œ|S t          j        d "                    dd ¬!¦  «        |¦  «        }|r\|                     ¦   «         \  }}}|r#| #                    ¦   «         rtI          |¦  «        }tK          tI          |¦  «        |pd"¦  «        S t          j        d# "                    d$d%d ¬&¦  «        |¦  «        }|r¨|                     ¦   «         \  }}}}|r#| #                    ¦   «         rtI          |¦  «        }| &                    ¦   «         }d'|v r3tO          tQ          |                     d'd(¦  «        ¦  «        |pd)¦  «        S tO          tQ          |¦  «        |pd"¦  «        S |‰ j)        v r:|d| *                    d*¦  «        …         }tW          ‰ j)        |         |pd¦  «        S |‰v r„tY          |¦  «        }‰                       ‰‰|         ¦  «        |d+k    rdnd¦  «        }|d+k    rt          |t,          ¦  «        r|S |d,v r't          |t,          ¦  «        r|f}t[          |¦  «        S t          j        d-|¦  «        }|rÍ|                     ¦   «         \  }}}‰                       ‰|¦  «        ¦  «        }‰                       ‰|¦  «        dd.…         d¦  «        }t          |t          ¦  «        s|f}|d+k    rBt]          d/„ |D ¦   «         ¦  «        }t          d0„ |D ¦   «         ¦  «        }t_          |g|¢R i |¤ŽS |d1k    sJ ‚||         S t          j        d2|¦  «        }|rta          |¦  «        S ‰  1                     ‰|¦  «        ¦  «        }te          d3|›d4‰ j3        › d5�¦  «         ta          |¦  «        S )6a´  Parse string within the given context.

        The context may define the result in case of ambiguous
        expressions. For instance, consider expressions `f(x, y)` and
        `(x, y) + (a, b)` where `f` is a function and pair `(x, y)`
        denotes complex number. Specifying context as "args" or
        "expr", the subexpression `(x, y)` will be parse to an
        argument list or to a complex number, respectively.
        c              3   óD   •K  — | ]}‰                      |‰¦  «        V — Œd S rp   )rå  )r†   Ús_ÚcontextrO   s     €€r   rˆ   z,_FromStringWorker.process.<locals>.<genexpr>0  s1   øè è € ÐAÐA¸˜4Ÿ<š<¨¨GÑ4Ô4ÐAÐAÐAÐAÐAÐAr   c                 ó¨   •— t          | t          t          f¦  «        r& t          | ¦  «        t	          ‰| ¦  «        ¦  «        S t          | ‰¦  «        S rp   )r…   Úlistr‰   r­   r%  rÖ  )rÜ   Úraw_symbols_mapÚrestores    €€r   rï  z*_FromStringWorker.process.<locals>.restore8  sG   ø€ å˜!�d¥E˜]Ñ+Ô+ð 0Ø•t˜A‘w”w�s 7¨A™œÑ/Ô/Ð/Ý(¨¨OÑ<Ô<Ð<r   ú,ræ   rS  r	   z&parsing comma-separated list (context=z): z\A([^?]+)[?]([^:]+)[:](.+)\Zz+\A(.+)\s*[.](eq|ne|lt|le|gt|ge)[.]\s*(.+)\Zz7\A(.+)\s*([=][=]|[!][=]|[<][=]|[<]|[>][=]|[>])\s*(.+)\Zú.r�   z\A(\w[\w\d_]*)\s*[=](.*)\Zz((?<!\d[edED])[+-])r   r   rÀ   Nú+r¿   z//z(?<=[@\w\d_])\s*([*]|/)ú**ú@__f2py_DOUBLE_STAR@c                 ó:   — g | ]}|                      d d¦  «        ‘ŒS )rô  ró  )rÂ  )r†   rJ  s     r   rÈ   z-_FromStringWorker.process.<locals>.<listcomp>…  s7   € ð 5ð 5ð 5Ø 'ð $ŸOšOÐ,BÀDÑIÔIð 5ð 5ð 5r   rÔ   rÂ   )rÔ   rÓ   z\A({digit_string})({kind}|)\Zz\d+z_(\d+|\w[\w\d_]*))Údigit_stringr÷   r2   z7\A({significant}({exponent}|)|\d+{exponent})({kind}|)\Zz[.]\d+|\d+[.]\d*z[edED][+-]?\d+)Úsignificantr  r÷   rr   rn  é   rµ  r/  r,  z4\A(.+)\s*(@__f2py_PARENTHESIS_(ROUND|SQUARE)_\d+@)\Zró   c              3   ó\   K  — | ]'}t          |t          ¦  «        ¯|j        |j        fV — Œ(d S rp   )r…   rÚ  rî   rï   ©r†   rÐ   s     r   rˆ   z,_FromStringWorker.process.<locals>.<genexpr>Ù  sM   è è € ð 7ð 7°AÝ!+¨A­uÑ!5Ô!5ð7˜qœv q¤wÐ/ð 7ð 7ð 7ð 7ð 7ð 7r   c              3   óD   K  — | ]}t          |t          ¦  «        °|V — Œd S rp   )r…   rÚ  rú  s     r   rˆ   z,_FromStringWorker.process.<locals>.<genexpr>Û  s1   è è € ÐIÐI 1µJ¸qÅ%Ñ4HÔ4HÐI˜QÐIÐIÐIÐIÐIÐIr   r.  z\A\w[\w\d_]*\Zzfromstring: treating z as symbol (original=r¬   )4r…   rí  r‰   r­   rŒ   rÌ  ÚstriprÒ  rå  rŠ   rú   r‘   r;  r<  r=  r‹  rK   r   r   ÚIr0   rL   r   r   r*   rÚ  Úzipr)   r   rÂ  rÑ  r.   r-   Úreversedr½  Úisdigitr‹   rƒ  rH   rü   r�   rá  rÁ  rl  rÓ  r>  r�   r  r~  rã  r~   rà  )rO   rJ   rë  rÜ   rC  r?  Úoperrë   rì   rî   rí   rï   ÚkeynamerŸ   rM  r’   rJ  r³   r÷   r@  rœ   rA  ræ   rç   rî  rï  s   ` `                     @@r   rå  z_FromStringWorker.process%  sE
  øøøø€ õ �a�$¥˜Ñ'Ô'ð 	BØ•4˜‘7”7ÐAÐAÐAÐAÐA¸qÐAÑAÔAÑAÔAÐAå˜!�SÑ!Ô!Ð/Ð/¥D¨¡G¤G¨Q <Ñ/Ô/Ð/õ 1°Ñ3Ô3Ñˆˆ?Ø�GŠG‰IŒIˆð	=ð 	=ð 	=ð 	=ð 	=ð 	=ð �!ˆ8ˆ8Ø�w˜qŸwšw s™|œ|Ñ,Ô,ˆHØ˜&Ò Ð Ý˜TŸ\š\¨(Ñ3Ô3Ñ4Ô4Ð4Ø˜&Ò Ð Ý�x‘=”= AÒ%Ð%å% t§|¢|°HÑ'=Ô'=Ð>Ð>Ý%ØH¸ÐHÐHÀQÐHÐHñJô Jð Jõ ŒHÐ4°aÑ8Ô8ˆØð 	2Ø˜fÒ$Ð$Ð$ gÑ$Ô$Ð$Ø!( ¨¯ª©¬Ñ!4Ô!4ÑˆD�%˜Ø—<’< Ñ%Ô%ˆDØ—L’L Ñ'Ô'ˆEØ—L’L Ñ'Ô'ˆEÝ˜d E¨5Ñ1Ô1Ð1ð Œ=�HÔ,Ð,Ð,Ý”Ø>ÀÅ2Ä4ñIô IˆAˆAõ ”ØJÈAñOô OˆAàð 	;Ø Ÿxšx™zœzÑˆD�#�uØŒ}¥Ô 0Ð0Ð0Ø˜C‘i #‘o�ØŸ,š, w w°°e¨}Ñ'=Ô'=Ñ>Ô>‰KˆD�%Ý×"Ò" 3°´Ð"Ñ?Ô?ˆCÝ�œ¨¨T°5Ð'9Ñ:Ô:Ð:õ ŒHÐ2°AÑ6Ô6ˆØð 	7ØŸXšX™ZœZ‰NˆG�UØ�G˜E‘N”NˆEÝ˜ $§,¢,¨uÑ"5Ô"5Ñ6Ô6Ð6õ ”8Ð2°AÑ6Ô6ˆÝˆx‰=Œ=˜1ÒÐØ—\’\ ' '¨(°1¬+Ð*<¸Ñ"=Ô"=Ñ>Ô>ˆFÝ" 8¨A¨D¨q¨D¤>°8¸A¸D¸q¸D´>ÑBÔBð &ð &‘��GØŸ,š, w w¨wÑ'7Ô'7Ñ8Ô8�Ø—X’X‘Z”Z�Ø˜’9�9Ø˜gÑ%�F�Fà š9˜9˜9˜9Ø˜gÑ%�F�FØˆMð Œ=�HÔ,Ð,Ð,°¸°°Ø�w˜qŸwšw t™}œ}Ñ-Ô-ˆHÝ�œ	Ý˜dŸlšl¨8Ñ4Ô4Ñ5Ô5ñ7ô 7ð 7õ ”8Ð6Ø"&¤-µ8´:Ð"=Ð"=˜Q˜QØ"#§)¢)¨DÐ2HÑ"IÔ"IñLô Lˆõ ˆx‰=Œ=˜1ÒÐØ�w˜xÑ(Ô(ˆHØŒ}¥H¤JÐ.Ð.ð5ð 5Ø+3ð5ñ 5ô 5�ð —\’\ (¨1¤+Ñ.Ô.ˆFÝ" 8¨A¨D¨q¨D¤>°8¸A¸D¸q¸D´>ÑBÔBð &ð &‘��GØŸ,š, wÑ/Ô/�Ø—X’X‘Z”Z�Ø˜’9�9Ø˜gÑ%�F�Fà š9˜9˜9˜9Ø˜gÑ%�F�FØˆMð �<Š<˜
Ñ#Ô#ð 	%Ý”x¥b¤fÐ-Ð-¨a°¬dÔ3ˆBØ—l’l 7 7¨1¨Q¨R¨R¬5¡>¤>Ñ2Ô2ˆGÝ˜˜GÑ$Ô$Ð$ð Œ=¥¤
Ð*Ð*¨t°q¨y¨yÝ�H W W¨Q¯WªW°T©]¬]Ñ%;Ô%;Ñ<Ô<Ñ=Ô=ˆHØ—\’\ (¨1¤+Ñ.Ô.ˆFØ# A B Bœ<ð +ð +�ØŸ,š, wÑ/Ô/�Ø  FÑ*��ØˆMõ ŒHÐ5×<Ò<ØØ%ð =ñ 'ô 'à()ñ+ô +ˆð ð 	5ØŸXšX™ZœZ‰NˆE�1�dØð !˜Ÿš™œð !Ý˜4‘y”y�Ý�c %™jœj¨$¨)°!Ñ4Ô4Ð4õ ŒHÐOß’fØ%8Ø"3Ø2ð ñ 4ô 4ð 67ñ	8ô 8ˆð
 ð 	4Ø !§¢¡
¤
ÑˆE�1�a˜Øð !˜Ÿš™œð !Ý˜4‘y”y�Ø—K’K‘M”MˆEØ�eˆ|ˆ|Ý�u U§]¢]°3¸Ñ%<Ô%<Ñ=Ô=¸t¸yÀqÑIÔIÐIÝ�5 ™<œ<¨¨°Ñ3Ô3Ð3ð �”ÐÐØ�\�a—f’f˜S‘k”k�\”?ˆDÝ˜Tœ_¨QÔ/°°¸Ñ;Ô;Ð;ð �ÐÐÝ)¨!Ñ,Ô,ˆEØ—L’L  ¨¸Ô);Ñ!<Ô!<Ø+0°GÒ+;Ð+;  ÀñIô IˆEà˜ÒÐÝ˜e¥TÑ*Ô*ð !Ø �LØÐ.Ð.Ð.å˜e¥TÑ*Ô*ð %Ø"˜H�EÝ ‘”Ð&õ ŒHÐLØñô ˆàð 	$Ø"#§(¢(¡*¤*ÑˆF�D˜%Ø—\’\ ' '¨&¡/¤/Ñ2Ô2ˆFØ—<’<  ¨¡¤¨a°¨dÔ 3°VÑ<Ô<ˆDÝ˜d¥EÑ*Ô*ð Ø�u�Ø˜ÒÐÝð 7ð 7¸ð 7ñ 7ô 7ñ 7ô 7�åÐIÐI¨ÐIÑIÔIÑIÔI�å Ð8¨Ð8Ð8Ð8°Ð8Ð8Ð8ð  Ò(Ð(Ð(Ð(Ø˜d”|Ð#õ ŒHÐ&¨Ñ*Ô*ˆØð 	 Ý˜Q‘<”<Ðð × Ò   ¨¡¤Ñ,Ô,ˆÝØN AÐNÐN¸d¼mÐNÐNÐNñ	Pô 	Pð 	På˜‰|Œ|Ðr   Nr�  )	r
   r   r   r   r   r”   rã  r‚   rå  r   r   r   rØ  rØ    se   € € € € € à (¤
ð !ð !ð !ð !ð
1ð 1ð 1ð&ð &ð &ð
Hð Hð Hð Hð Hð Hr   rØ  )r2   )r   )r   ):r   Ú__all__r;  r{   Úenumr   Úmathr   r   r   r0   rS   Ú	Exceptionr]   ra   r‹   rj  r�   r  rv   ÚUserWarningrx   r~   r   rû   rø   r~  r×   rƒ  rü   rl  r>  rú   r  r‹  rŽ  r�  r“  r–  r˜  rš  rœ  rž  rý   r  rk  rb  r®  r¶  r¿  rÃ  rÌ  rÓ  rÖ  r   rL   rÚ  rØ  r   r   r   ú<module>r     sN  ððð ð4 ˆ(€ð 
€	€	€	Ø €€€Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð ð
ð 
ð 
ð 
ð 
ˆtñ 
ô 
ð 
ðð ð ð ð ˆñ ô ð ð*5ð 5ð 5ð 5ð 5ˆDñ 5ô 5ð 5ð<
ð 
ð 
ð 
ð 
ˆdñ 
ô 
ð 
ð	ð 	ð 	ð 	ð 	ˆiñ 	ô 	ð 	ðð ð ð ð �ñ ô ð ð& �€Ø�Uˆ|€ð
ð 
ð 
ð	ð 	ð 	ð 	ð 	�+ñ 	ô 	ð 	ð6ð 6ð 6ðw	ð w	ð w	ð w	ð w	ñ w	ô w	ð w	ðtFð Fð FðRð ð ð  ð  ð  ð
Gð 
Gð 
Gð 
Gð?ð ?ð ?ð ?ð<ð <ð <ð <ð(ð (ð (ð (ðð ð ð<ð <ð <ð <ðDð Dð Dð2ð 2ð 2ðð ð ð ð  ð  ð8ð 8ð 8ð8ð 8ð 8ð8ð 8ð 8ð8ð 8ð 8ð8ð 8ð 8ð8ð 8ð 8ð?ð ?ð ?ð?ð ?ð ?ð*Cð Cð Cð**Dð *Dð *DðZð ð ð ˆ(‰*Œ*€ðð ð ð:ð ð ð(ð (ð (ðVð ð ð
ð ð ð $œ:ð 	Kð 	Kð 	Kð 	KðCð Cð Cð Cð Cñ Cô Cð Cð&Wð Wð Wð Wð Wñ Wô Wð Wð Wð Wr   