+
    ‹°³j�©  ã                  óT  € ^ RI Ht ^ RIHtHt ^ RIHt ^ RIHt ^ RI	H
t
 ^RIHt ^RIHt ^RIHtHtHt ^R	IHt ^R
IHtHt ^RIHt ^RIHtHt ^RIHt ^RIH t  ^ RI!H"t"H#t# ]'       d   ^ RI$H%t% ^ RI&H't' R t(R t)R t* ! R R]]4      t+]! R4      t,^RI-H.t.H/t/H0t0 ^RI1H2t2 R# )é    )Úannotations)ÚTYPE_CHECKINGÚClassVar)Údefaultdict)Úreduce)Ú
attrgetter)Ú_args_sortkey)Úglobal_parameters)Ú_fuzzy_groupÚfuzzy_orÚ	fuzzy_not)ÚS)ÚAssocOpÚAssocOpDispatcher)Úcacheit)ÚilcmÚigcd)ÚExpr)ÚUndefinedKind)Úis_sequenceÚsift)ÚNumber©ÚOrderc                óè   € \        R  V P                   4       4      p\        V P                  4      V,
          pW!8”  d   R# W!8  d   R# \        V P	                  4       V ) P	                  4       8  4      # )c              3  óV   "  € T F  pVP                  4       '       g   K  ^x € K!  	  R# 5i©é   N)Úcould_extract_minus_sign)Ú.0Úis   & ÚO/home/luca/screen-checking/.venv/lib/python3.14/site-packages/sympy/core/add.pyÚ	<genexpr>Ú,_could_extract_minus_sign.<locals>.<genexpr>   s#   é € ð )¡9˜aØ×%Ñ%×'÷ š£9ùs   ‚)Ÿ
)FT)ÚsumÚargsÚlenÚboolÚsort_key)ÚexprÚnegative_argsÚpositive_argss   &  r"   Ú_could_extract_minus_signr-      se   € ô ñ ) 4§9¢9ó )ó )€Mä˜Ÿ	™	“N ]Õ2€MØÔ$ÙØ	Ô	&Ùô �—‘“ D 5×"2Ñ"2Ó"4Ñ4Ó5Ð5ó    c                ó2   € V P                  \        R 7       R# )©ÚkeyN)Úsortr	   )r&   s   &r"   Ú_addsortr3   (   s   € à‡I�I”-€IÖ r.   c                 óœ  € \        V 4      p . p\        P                  pV '       do   V P                  4       pVP                  '       d   V P                  VP                  4       KG  VP                  '       d   W#,          pKc  VP                  V4       Kv  \        V4       V'       d   VP                  ^ V4       \        P                  V4      # )aA  Return a well-formed unevaluated Add: Numbers are collected and
put in slot 0 and args are sorted. Use this when args have changed
but you still want to return an unevaluated Add.

Examples
========

>>> from sympy.core.add import _unevaluated_Add as uAdd
>>> from sympy import S, Add
>>> from sympy.abc import x, y
>>> a = uAdd(*[S(1.0), x, S(2)])
>>> a.args[0]
3.00000000000000
>>> a.args[1]
x

Beyond the Number being in slot 0, there is no other assurance of
order for the arguments since they are hash sorted. So, for testing
purposes, output produced by this in some other function can only
be tested against the output of this function or as one of several
options:

>>> opts = (Add(x, y, evaluate=False), Add(y, x, evaluate=False))
>>> a = uAdd(x, y)
>>> assert a in opts and a == uAdd(x, y)
>>> uAdd(x + 1, x + 2)
x + x + 3
)Úlistr   ÚZeroÚpopÚis_AddÚextendr&   Ú	is_NumberÚappendr3   ÚinsertÚAddÚ
_from_args)r&   ÚnewargsÚcoÚas   *   r"   Ú_unevaluated_AddrB   -   sˆ   € ô: �‹:€DØ€GÜ	
�‰€Bß
Ø�H‰H‹JˆØ�8�8ˆ8ð �K‰K˜Ÿ™ÖØ�[�[ˆ[Ø�GŠBà�N‰N˜1ÖÜˆWÔß	Ø�‰�q˜"ÔÜ�>‰>˜'Ó"Ð"r.   c                  óP  a € ] tR t^]t$ RtRBtRt]tR]	R&   ]
'       d   RR/R R llt]R R	 l4       t]R
 R l4       t]R 4       t]R 4       tR t]R 4       tRCR R lltR t]R 4       tRDR ltR tRER lt]R 4       t]R 4       tR R ltR tR t R t!R t"R t#R  t$R! t%R" t&R# t'R$ t(R% t)R& t*R' t+R( t,R) t-R* t.R+ t/R, t0R- t1R. t2V 3R/ lt3R0 t4R1 t5V 3R2 lt6R3 t7R4 t8R5 t9]RFR6 l4       t:RGR7 lt;R8 t<R9 t=R: t>R; t?R< t@RHR= ltA]R> 4       tBR? tC]R@ 4       tDV 3RA ltERBtFV ;tG# )Ir=   a¸  
Expression representing addition operation for algebraic group.

.. deprecated:: 1.7

   Using arguments that aren't subclasses of :class:`~.Expr` in core
   operators (:class:`~.Mul`, :class:`~.Add`, and :class:`~.Pow`) is
   deprecated. See :ref:`non-expr-args-deprecated` for details.

Every argument of ``Add()`` must be ``Expr``. Infix operator ``+``
on most scalar objects in SymPy calls this class.

Another use of ``Add()`` is to represent the structure of abstract
addition so that its arguments can be substituted to return different
class. Refer to examples section for this.

``Add()`` evaluates the argument unless ``evaluate=False`` is passed.
The evaluation logic includes:

1. Flattening
    ``Add(x, Add(y, z))`` -> ``Add(x, y, z)``

2. Identity removing
    ``Add(x, 0, y)`` -> ``Add(x, y)``

3. Coefficient collecting by ``.as_coeff_Mul()``
    ``Add(x, 2*x)`` -> ``Mul(3, x)``

4. Term sorting
    ``Add(y, x, 2)`` -> ``Add(2, x, y)``

If no argument is passed, identity element 0 is returned. If single
element is passed, that element is returned.

Note that ``Add(*args)`` is more efficient than ``sum(args)`` because
it flattens the arguments. ``sum(a, b, c, ...)`` recursively adds the
arguments as ``a + (b + (c + ...))``, which has quadratic complexity.
On the other hand, ``Add(a, b, c, d)`` does not assume nested
structure, making the complexity linear.

Since addition is group operation, every argument should have the
same :obj:`sympy.core.kind.Kind()`.

Examples
========

>>> from sympy import Add, I
>>> from sympy.abc import x, y
>>> Add(x, 1)
x + 1
>>> Add(x, x)
2*x
>>> 2*x**2 + 3*x + I*y + 2*y + 2*x/5 + 1.0*y + 1
2*x**2 + 17*x/5 + 3.0*y + I*y + 1

If ``evaluate=False`` is passed, result is not evaluated.

>>> Add(1, 2, evaluate=False)
1 + 2
>>> Add(x, x, evaluate=False)
x + x

``Add()`` also represents the general structure of addition operation.

>>> from sympy import MatrixSymbol
>>> A,B = MatrixSymbol('A', 2,2), MatrixSymbol('B', 2,2)
>>> expr = Add(x,y).subs({x:A, y:B})
>>> expr
A + B
>>> type(expr)
<class 'sympy.matrices.expressions.matadd.MatAdd'>

Note that the printers do not display in args order.

>>> Add(x, 1)
x + 1
>>> Add(x, 1).args
(1, x)

See Also
========

MatAdd

TzClassVar[Expr]ÚidentityÚevaluatec               ó$   € V ^8„  d   QhRRRRRR/# )é   r&   zExpr | complexrE   r(   Úreturnr   © )Úformats   "r"   Ú__annotate__ÚAdd.__annotate__¾   s!   € ÷ 	ñ 	 ð 	¸$ð 	Èñ 	r.   c               	ó   € R # ©NrI   )ÚclsrE   r&   s   &$*r"   Ú__new__ÚAdd.__new__¾   s   € Ùr.   c               ó   € V ^8„  d   QhRR/# )rG   rH   ztuple[Expr, ...]rI   )rJ   s   "r"   rK   rL   Â   s   € ÷ 	ñ 	Ð*ñ 	r.   c                	ó   € R # rN   rI   ©Úselfs   &r"   r&   ÚAdd.argsÁ   s   € ár.   c               ó    € V ^8„  d   QhRRRR/# )rG   Úseqz
list[Expr]rH   z#tuple[list[Expr], list[Expr], None]rI   )rJ   s   "r"   rK   rL   Æ   s   € ÷ P$ñ P$˜*ð P$Ð)Lñ P$r.   c           	     óü  aa€ ^ RI Hp ^ RIHp ^ RIHpHp Rp\        V4      ^8X  d¡   Vw  rxVP                  '       d   Y‡r‡VP                  '       d   VP                  '       d   Wx.. R3pV'       dW   \        ;QJ d#    R V^ ,           4       F  '       d   K   RM	  RM! R V^ ,           4       4      '       d   V# . V^ ,          R3# / p	\        P                  p
. p. pV EF¨  oSP                  '       d—   SP                  P                  '       d   K4  \         ;QJ d    V3R lV 4       F  '       g   K   RM	  RM! V3R lV 4       4      '       d   Kv  V Uu. uF  pSP#                  V4      '       d   K  VNK   	  ppS.V,           pK¬  SP$                  '       d¸   S\        P&                  J g%   V
\        P(                  J d/   SP*                  RJ d   V'       g   \        P&                  .. R3u # V
P$                  '       g   \-        W¢4      '       d<   V
S,          p
V
\        P&                  J d   V'       g   \        P&                  .. R3u # EKu  \-        SV4      '       d   SP/                  V
4      p
EK›  \-        SV4      '       d   VP1                  S4       EKÁ  \-        SV4      '       d   V! SV
4      P3                  RR	7      p
EKï  S\        P(                  J dB   V
P*                  RJ d   V'       g   \        P&                  .. R3u # \        P(                  p
EKD  SP4                  '       d!   SP6                  pVP9                  V4       EKv  SP                  '       d   SP;                  4       w  ppM­SP<                  '       dŠ   SP?                  4       w  ppVP$                  '       dR   VP@                  '       g%   VP                  '       d.   VPB                  '       d   VP1                  VV,          4       EK$  \        PD                  SppM\        PD                  pSpVV	9   dU   V	V;;,          V,          uu&   V	V,          \        P&                  J d"   V'       g   \        P&                  .. R3u # EK¡  EK¤  WùV&   EK«  	  . pRpV	PG                  4        Fì  w  ppVP                  '       d   K  V\        PD                  J d   VP1                  V4       M‘VP                  '       d5   VPH                  ! V3VP6                  ,           !  pVP1                  V4       MKVP4                  '       d   VP1                  \K        VVRR
7      4       MVP1                  \K        VV4      4       T;'       g    VPL                  '       * pKî  	  V
\        PN                  J d;   V Uu. uF-  pVPP                  '       d   K  VPR                  '       d   K+  VNK/  	  ppMMV
\        PT                  J d:   V Uu. uF-  pVPV                  '       d   K  VPR                  '       d   K+  VNK/  	  ppV
\        P(                  J d3   V Uu. uF&  qÿP*                  '       d   VPX                  e   K$  VNK(  	  ppV'       dš   . pV FV  o\         ;QJ d    V3R lV 4       F  '       g   K   RM	  RM! V3R lV 4       4      '       d   KE  VP1                  S4       KX  	  VV,           pV F,  oSP#                  V
4      '       g   K  \        P                  p
 M	  \[        V4       V
\        P                  Jd   VP]                  ^ V
4       V'       d   VV,          pRpV'       d   . VR3# V. R3# u upi u upi u upi u upi )a=  
Takes the sequence "seq" of nested Adds and returns a flatten list.

Returns: (commutative_part, noncommutative_part, order_symbols)

Applies associativity, all terms are commutable with respect to
addition.

NB: the removal of 0 is already handled by AssocOp.__new__

See Also
========

sympy.core.mul.Mul.flatten

)ÚAccumBounds)Ú
MatrixExpr)ÚTensExprÚTensAddNc              3  ó8   "  € T F  qP                   x € K  	  R # 5irN   ©Úis_commutative)r    Úss   & r"   r#   ÚAdd.flatten.<locals>.<genexpr>ã   s   é € Ð7±¨A×'Ö'³ùó   ‚FTc              3  óD   <"  € T F  qP                  S4      x € K  	  R # 5irN   ©Úcontains)r    Úo1Úos   & €r"   r#   rb   ù   s   øé € Ð>±¨"—{‘{ 1—~�~³ùó   ƒ ©Údeep©rE   c              3  óD   <"  € T F  qP                  S4      x € K  	  R # 5irN   re   )r    rh   Úts   & €r"   r#   rb   ~  s   øé € Ð@±-¨QŸ:™: aŸ=˜=³-ùri   )/Ú!sympy.calculus.accumulationboundsrZ   Úsympy.matrices.expressionsr[   Úsympy.tensor.tensorr\   r]   r'   Úis_RationalÚis_MulÚallr   r6   Úis_Orderr*   Úis_zeroÚanyrf   r:   ÚNaNÚComplexInfinityÚ	is_finiteÚ
isinstanceÚ__add__r;   Údoitr8   r&   r9   Úas_coeff_MulÚis_PowÚas_base_expÚ
is_IntegerÚis_negativeÚOneÚitemsÚ_new_rawargsÚMulr`   ÚInfinityÚis_extended_nonnegativeÚis_realÚNegativeInfinityÚis_extended_nonpositiveÚis_extended_realr3   r<   )rO   rX   rZ   r[   r\   r]   ÚrvrA   ÚbÚtermsÚcoeffÚorder_factorsÚextrarg   Úo_argsÚcra   ÚeÚnewseqÚnoncommutativeÚcsÚfÚnewseq2rh   rn   s   &&                     @@r"   ÚflattenÚAdd.flattenÅ   sŒ  ù€ õ$ 	BÝ9ß9ØˆÜˆs‹8�qŒ=Ø‰DˆAØ�}�}ˆ}Ø�1Ø�}�}ˆ}Ø—8—8�8Ø˜  TÐ)�Bßß“3Ñ7°°A¶Ó7—3—3’3Ñ7°°A¶Ó7×7Ò7Ø�IØ˜2˜a�5 $�Ð&ð %'ˆô —f‘fˆà%'ˆà"$ˆäˆAð �z�zˆzØ—6‘6—>—>�>Ùß“3Ô>±Ó>—3—3’3Ô>±Ó>×>Ò>ÙÙ.;Ó R©m¨À1Ç:Á:ÈbÇ>§ ©m�Ð RØ!"  mÕ 3�Ùð ——�ØœŸ™“J %¬1×+<Ñ+<Ó"<ØŸ™ uÓ,·eäŸE™E˜7 B¨Ð,Ò,Ø—?—?�?¤j°×&DÒ&DØ˜Q•J�EØ¤§¡“~¯eä !§¡˜w¨¨DÐ0Ò0Úä˜A˜{×+Ò+ØŸ	™	 %Ó(�Úä˜A˜z×*Ò*à—‘˜Q”Úä˜A˜x×(Ò(Ù  5Ó)×.Ñ.°EÐ.Ó:�Úà”a×'Ñ'Ó'Ø—?‘? eÓ+·EäŸE™E˜7 B¨Ð,Ò,Ü×)Ñ)�Úð ——�à+,¯6©6�Ø—
‘
˜6Ô"Úð ——�Ø—~‘~Ó'‘�‘1ð ——�Ø—}‘}“‘��1Ø—;—;�; A§L§L LØ$%§M§M M°a·m·m°mØ—J‘J˜q !�tÔ$ÚÜ—u‘u˜a�1��1ô —E‘E�Ø�ð �EŒzØ�a—˜A•“Ø˜•8œqŸu™uÓ$¯UäŸE™E˜7 B¨Ð,Ò,ò .3Ò$ð �a”ñg ðn ˆØˆØ—K‘K–M‰DˆAˆqà�y�yˆyÙà”a—e‘e“Ø—‘˜aÕ ð —8—8�8ð Ÿš¨1¨$°·±­-Ñ9�BØ—M‘M "Õ%Ø—X—X�Xà—M‘M¤# a¨°UÔ";Õ<ð —M‘M¤# a¨£)Ô,à+×CÐC°1×3CÑ3CÔ/CŠNñ1 "ð6 ”A—J‘JÓÙ!'ÓX¡˜A°×0IÕ0I”aÈQÏYÍY—a�a¡ˆFÐXˆFà”a×(Ñ(Ó(Ù!'ÓX¡˜A°×0IÕ0I”aÈQÏYÍY—a�a¡ˆFÐXà”A×%Ñ%Ó%ñ "(ó Q¡˜A··°Ø01×0BÑ0B÷ �a¡ˆFð Q÷ ØˆGÛ�ç“sÔ@±-Ó@—s—s’sÔ@±-Ó@×@Ô@Ø—N‘N 1Ö%ñ ð ˜}Õ,ˆFã"�Ø—:‘:˜e×$Ô$ÜŸF™F�EÙñ #ô 	�Ôð œŸ™ÓØ�M‰M˜!˜UÔ#çØ�e�OˆFØ!ˆN÷ Ø�v˜tÐ#Ð#à˜2˜tÐ#Ð#ùòw !SùòZ Yùò YùòQs<   Å]*Å9]*Ö*]/×]/×]/×8]4Ø]4Ø%]4Ù!]9Ù+]9c                	ó    € ^^V P                   3# )é   )Ú__name__)rO   s   &r"   Ú	class_keyÚAdd.class_key˜  s   € à�!�S—\‘\Ð!Ð!r.   c                	ó”   € \        R 4      p\        WP                  4      p\        V4      p\	        V4      ^8w  d	   \
        pV# Vw  pV# )Úkind)r   Úmapr&   Ú	frozensetr'   r   )rU   ÚkÚkindsÚresults   &   r"   r£   ÚAdd.kindœ  sK   € ä�vÓˆÜ�A—y‘yÓ!ˆÜ˜%Ó ˆÜˆu‹:˜Œ?ô #ˆFð ˆð ‰GˆFØˆr.   c                	ó   € \        V 4      # rN   )r-   rT   s   &r"   r   ÚAdd.could_extract_minus_sign©  s   € Ü(¨Ó.Ð.r.   c                ób  a€ S'       d:   \        V P                  V3R lRR7      w  r#V P                  ! V!  \        V4      3# V P                  ^ ,          P	                  4       w  rEV\
        P                  Jd   WEV P                  R,          ,           3# \
        P                  V P                  3# )a  
Returns a tuple (coeff, args) where self is treated as an Add and coeff
is the Number term and args is a tuple of all other terms.

Examples
========

>>> from sympy.abc import x
>>> (7 + 3*x).as_coeff_add()
(7, (3*x,))
>>> (7*x).as_coeff_add()
(0, (7*x,))
c                ó$   <€ V P                   ! S!  # rN   )Úhas_free)ÚxÚdepss   &€r"   Ú<lambda>Ú"Add.as_coeff_add.<locals>.<lambda>¼  s   ø€ ¨q¯zªz¸4Ò/@r.   T)Úbinaryºr   NN)r   r&   r…   ÚtupleÚas_coeff_addr   r6   )rU   r°   Úl1Úl2r�   Únotrats   &j    r"   r¶   ÚAdd.as_coeff_add¬  s„   ø€ ÷ Ü˜$Ÿ)™)Ô%@ÈÔN‰FˆBØ×$Ò$ bÑ)¬5°«9Ð4Ð4ØŸ	™	 !�×1Ñ1Ó3‰ˆØœŸ™ÓØ 4§9¡9¨R¥=Õ0Ð0Ð0Ü�v‰v�t—y‘yÐ Ð r.   c               ó   € V ^8„  d   QhRR/# )rG   rH   ztuple[Number, Expr]rI   )rJ   s   "r"   rK   rL   Ã  s   € ÷ ñ Ð9Lñ r.   c                óê   € V P                   ^ ,          V P                   R,          rCVP                  '       d	   V'       d   VP                  '       d   W0P                  ! V!  3# \        P
                  V 3# )z5
Efficiently extract the coefficient of a summation.
r´   )r&   r:   rr   r…   r   r6   )rU   Úrationalr°   r�   r&   s   &&&  r"   Úas_coeff_AddÚAdd.as_coeff_AddÃ  sS   € ð —i‘i •l D§I¡I¨b¥Mˆtà�?�?ˆ?§8¨u×/@×/@Ð/@Ø×+Ò+¨TÑ2Ð2Ð2Ü�v‰v�tˆ|Ðr.   c                	ó¢  € ^RI Hp ^RIHp \	        V P
                  4      ^8X  Ed@   \        ;QJ d&    R V P
                   4       F  '       g   K   RM	  RM! R V P
                   4       4      '       dò   VP                  RJ dà   V! V\        P                  4      RJ dÅ   V P
                  w  rEVP                  \        P                  4      '       d   YTrTVP                  \        P                  4      pV'       di   VP                  '       dW   VP                  '       dE   VP                  '       d   \        P                  # VP                  '       d   \        P                   # R# VP"                  '       EdV   V P$                  '       EdA   V! V 4      pV'       Ed.   Vw  r‰VP&                  ^8X  dÍ   ^ RIHp
 V
! V^,          V	^,          ,           4      pVP"                  '       d–   ^RIHp ^ R	IHp ^R
IHp V
! V! W¸,
          ^,          4      4      VP8                  ,          pWþ! W¸,           \;        V	4      ,          V! V	4      \        P                  ,          ,           VP8                  ,          4      ,          # R# VR8X  dD   \=        W‰\        P                  ,          ,
          ^V^,          V	^,          ,           ,          4      # R# R# R# R# )r   )Úpure_complex)Úis_eqc              3  ó8   "  € T F  qP                   x € K  	  R # 5irN   )Úis_infinite)r    Ú_s   & r"   r#   Ú"Add._eval_power.<locals>.<genexpr>Ô  s   é € Ð&H¹i¸§}¦}»iùrc   TFN)Úsqrt)Úfactor_terms)Úsign)Úexpand_multinomialéÿÿÿÿ)ÚevalfrÁ   Ú
relationalrÂ   r'   r&   rw   rv   r   rƒ   r�   ÚImaginaryUnitrŒ   Úis_extended_negativer6   Úis_extended_positivery   rr   Ú	is_numberÚqÚ(sympy.functions.elementary.miscellaneousrÇ   Ú	exprtoolsrÈ   Ú$sympy.functions.elementary.complexesrÉ   ÚfunctionrÊ   ÚpÚabsÚ_unevaluated_Mul)rU   ÚexptrÁ   rÂ   rA   rŽ   ÚicoÚriÚrr!   rÇ   ÚDrÈ   rÉ   rÊ   Úroots   &&              r"   Ú_eval_powerÚAdd._eval_powerÑ  sì  € Ý'Ý%Üˆt�y‰y‹>˜QÕ§3£3Ñ&H¸d¿iºiÓ&H§3§3¢3Ñ&H¸d¿iºiÓ&H×#HÒ#HØ�|‰|˜uÓ$©¨t´Q·U±UÓ);¸uÓ)Dà—y‘y‘�Ø—7‘7œ1Ÿ?™?×+Ò+Ø�qØ—g‘gœaŸo™oÓ.�ß˜3×/×/Ð/°A×4F×4FÐ4FØ×0×0Ð0Ü Ÿv™v˜Ø×0×0Ð0Ü ×0Ñ0Ð0ÙØ××Ñ §§¡Ù˜dÓ#ˆBßˆrØ‘�Ø—6‘6˜Q”;ÝMÙ˜Q �T A q¥D�[Ó)�AØ—}—}�}Ý;ÝMÝ@á#¡L°!µ%¸µÓ$;Ó<¸d¿f¹fÕD˜Ø#Ð$6à�U¤C¨£F�N©T°!«W´Q·_±_Õ-DÕDÀtÇvÁvõ8Nó %Oõ  Oð Oñ %ð ˜R”ZÜ+ØœaŸo™oÕ-Õ-Ø˜1˜a�4 ! Q¥$�;�ó)ð )ñ  ñ ñ !/Ñr.   c                	ó|   € V P                   ! V P                   Uu. uF  q"P                  V4      NK  	  up!  # u upi rN   )Úfuncr&   Údiff)rU   ra   rA   s   && r"   Ú_eval_derivativeÚAdd._eval_derivativeö  s-   € à�yŠy¨d¯iªiÓ8©i¨Ÿ6™6 !ž9©iÑ8Ñ9Ð9ùÒ8s   ›9c           
     	ó‚   € V P                    Uu. uF  qUP                  WW4R 7      NK  	  ppV P                  ! V!  # u upi )©ÚnÚlogxÚcdir)r&   Únseriesrã   )rU   r¯   ré   rê   rë   rn   r�   s   &&&&&  r"   Ú_eval_nseriesÚAdd._eval_nseriesú  s:   € ØBFÇ)Â)ÓLÁ)¸Q—‘˜1¨�Ö8Á)ˆÐLØ�yŠy˜%Ñ Ð ùò Ms   �<c                	óˆ   € V P                  4       w  r4\        V4      ^8X  d    V^ ,          P                  W,
          V4      # R# r   )r¶   r'   Úmatches)rU   r*   Ú	repl_dictr�   r�   s   &&&  r"   Ú_matches_simpleÚAdd._matches_simpleþ  s9   € à×(Ñ(Ó*‰ˆÜˆu‹:˜Œ?Ø˜•8×#Ñ# D¥L°)Ó<Ð<Ùr.   c                	ó&   € V P                  WV4      # rN   )Ú_matches_commutative)rU   r*   rñ   Úolds   &&&&r"   rð   ÚAdd.matches  s   € Ø×(Ñ(¨¸#Ó>Ð>r.   c                óv  a€ ^ RI Hp \        P                  \        P                  3pV P
                  ! V!  '       g   VP
                  ! V!  '       d¼   ^RIHp V! R4      o\        P                  S\        P                  S) /pVP                  4        UUu/ uF  w  rgWvbK	  	  pppV P                  V4      VP                  V4      ,
          p	V	P                  S4      '       d   V	P                  V3R lR 4      p	V	P                  V4      p
MW,
          p
V! V
4      pVP                  '       d   V# T
# u uppi )zX
Returns lhs - rhs, but treats oo like a symbol so oo - oo
returns 0, instead of a nan.
)Úsignsimp)ÚDummyÚooc                óH   <€ V P                   ;'       d    V P                  SJ # rN   )r   Úbase)r¯   rû   s   &€r"   r±   Ú&Add._combine_inverse.<locals>.<lambda>  s   ø€ ˜aŸh™h×7Ð7¨1¯6©6°R¨<Ð7r.   c                ó   € V P                   # rN   )rý   )r¯   s   &r"   r±   rþ     s   € ˜aŸfšfr.   )Úsympy.simplify.simplifyrù   r   r‡   rŠ   ÚhasÚsymbolrú   r„   ÚxreplaceÚreplacer:   )ÚlhsÚrhsrù   Úinfrú   Úrepsr¦   ÚvÚirepsÚeqr�   Úsrvrû   s   &&          @r"   Ú_combine_inverseÚAdd._combine_inverse  só   ø€ õ 	5Ü�z‰zœ1×-Ñ-Ð.ˆØ�7Š7�C�=ˆ=˜CŸGšG SŸM˜MÝ%Ù�t“ˆBä—
‘
˜BÜ×"Ñ" R Cð)ˆDð '+§j¡j¤lÔ3¡l™d˜a�Q’T¡lˆEÑ3Ø—‘˜dÓ# c§l¡l°4Ó&8Õ8ˆBØ�v‰v�b�zŠzØ—Z‘ZÜ7Ù$ó&�ð —‘˜UÓ#‰Bà•ˆBÙ�r‹lˆØ—m—m�mˆsÐ+¨Ð+ùó 4s   ÂD5c                ój   € V P                   ^ ,          V P                  ! V P                   R,          !  3# )aú  Return head and tail of self.

This is the most efficient way to get the head and tail of an
expression.

- if you want only the head, use self.args[0];
- if you want to process the arguments of the tail then use
  self.as_coef_add() which gives the head and a tuple containing
  the arguments of the tail when treated as an Add.
- if you want the coefficient when self is treated as a Mul
  then use self.as_coeff_mul()[0]

>>> from sympy.abc import x, y
>>> (3*x - 2*y + 5).as_two_terms()
(5, 3*x - 2*y)
r´   )r&   r…   rT   s   &r"   Úas_two_termsÚAdd.as_two_terms"  s*   € ð$ �y‰y˜�|˜T×.Ò.°·	±	¸"µÑ>Ð>Ð>r.   c               ó   € V ^8„  d   QhRR/# )rG   rH   ztuple[Expr, Expr]rI   )rJ   s   "r"   rK   rL   6  s   € ÷ -:ñ -:Ð 1ñ -:r.   c                ó  € V P                  4       w  r\        V\        4      '       g   \        WRR7      P	                  4       # VP	                  4       w  r4\        \        4      pVP                   F,  pVP	                  4       w  rxWX,          P                  V4       K.  	  \        V4      ^8X  dG   VP                  4       w  ršV P                  ! V
 Uu. uF  p\        W74      NK  	  up!  \        WI4      3# VP                  4        U	U
u/ uF/  w  ršT	\        V
4      ^8”  d   V P                  ! V
!  MV
^ ,          bK1  	  pp	p
\        \        VP                  4       4      !   Uu. uF  p\        V4      NK  	  upw  rÞV P                  ! \!        \        V4      4       Uu. uF-  p\        VRV Wì,          .,           WÜ^,           R ,           !  NK/  	  up!  \        V!  rš\        W:4      \        WI4      3# u upi u up
p	i u upi u upi )a  
Decomposes an expression to its numerator part and its
denominator part.

Examples
========

>>> from sympy.abc import x, y, z
>>> (x*y/z).as_numer_denom()
(x*y, z)
>>> (x*(y + 1)/y**7).as_numer_denom()
(x*(y + 1), y**7)

See Also
========

sympy.core.expr.Expr.as_numer_denom
Frl   N)Ú	primitiver{   r=   r†   Úas_numer_denomr   r5   r&   r;   r'   Úpopitemrã   Ú_keep_coeffr„   ÚzipÚiterÚrange)rU   Úcontentr*   ÚnconÚdconÚndr™   ÚniÚdiÚdré   Únd2r!   ÚdenomsÚnumerss   &              r"   r  ÚAdd.as_numer_denom6  sÃ  € ð( Ÿ™Ó(‰ˆÜ˜$¤×$Ò$Ü�w¨uÔ5×DÑDÓFÐFØ×+Ñ+Ó-‰
ˆô œÓˆØ—”ˆAØ×%Ñ%Ó'‰FˆBØ�F�M‰M˜"Öñ ô
 ˆr‹7�aŒ<Ø—:‘:“<‰DˆAØ—9’9Ù23Ó4±!¨B”+˜dÖ'±!Ñ4ñ6Ü7BÀ4Ó7KðLð Lð EGÇHÁHÄJÔOÁJ¹D¸Aˆq¤3 q£6¨A¤:�$—)’)˜Q’-°1°Qµ4Ò7ÁJˆÑOô ,/´°S·Y±Y³[Ó0AÒ+BÓCÑ+B aœ$˜qž'Ñ+BÑC‰ˆØ�yŠyÜ!¤# f£+Ô.ó0Ù.�qô  ¨¨ ¨v­y¨kÕ!9¸FÀqÅ5À6¸NÕ!JÔLÙ.ñ0ñ 1Ü25°v±,ð ô ˜4Ó#¤[°Ó%9Ð9Ð9ùò 5ùó Pùò Dùò0s   ÃG5Ä
5G:Å$H Æ3Hc                	ó    a€ \         ;QJ d)    V3R  lV P                   4       F  '       d   K   R# 	  R# ! V3R  lV P                   4       4      # )c              3  óD   <"  € T F  qP                  S4      x € K  	  R # 5irN   )Ú_eval_is_polynomial©r    ÚtermÚsymss   & €r"   r#   Ú*Add._eval_is_polynomial.<locals>.<genexpr>f  s   øé € ÐH¹i°d×+Ñ+¨D×1Ð1»iùri   FT©rt   r&   ©rU   r+  s   &fr"   r(  ÚAdd._eval_is_polynomiale  s4   ø€ ß‹sÔH¸d¿iºiÓH�sŒsÐHŠsÐHˆsÔH¸d¿iºiÓHÓHÐHr.   c                	ó    a€ \         ;QJ d)    V3R  lV P                   4       F  '       d   K   R# 	  R# ! V3R  lV P                   4       4      # )c              3  óD   <"  € T F  qP                  S4      x € K  	  R # 5irN   )Ú_eval_is_rational_functionr)  s   & €r"   r#   Ú1Add._eval_is_rational_function.<locals>.<genexpr>i  s   øé € ÐOÁY¸T×2Ñ2°4×8Ð8ÃYùri   FTr-  r.  s   &fr"   r2  ÚAdd._eval_is_rational_functionh  s4   ø€ ß‹sÔOÀTÇYÂYÓO�sŒsÐOŠsÐOˆsÔOÀTÇYÂYÓOÓOÐOr.   c                	óJ   aa€ \        VV3R  lV P                   4       RR7      # )c              3  óF   <"  € T F  qP                  SS4      x € K  	  R # 5irN   )Úis_meromorphic)r    ÚargrA   r¯   s   & €€r"   r#   Ú+Add._eval_is_meromorphic.<locals>.<genexpr>l  s   øé € ÐKÁ¸#×/Ñ/°°1×5Ð5Ãùs   ƒ!T©Ú
quick_exit©r   r&   )rU   r¯   rA   s   &ffr"   Ú_eval_is_meromorphicÚAdd._eval_is_meromorphick  s   ù€ ÜÕKÀÇÂÓKØ'+ô-ð 	-r.   c                	ó    a€ \         ;QJ d)    V3R  lV P                   4       F  '       d   K   R# 	  R# ! V3R  lV P                   4       4      # )c              3  óD   <"  € T F  qP                  S4      x € K  	  R # 5irN   )Ú_eval_is_algebraic_exprr)  s   & €r"   r#   Ú.Add._eval_is_algebraic_expr.<locals>.<genexpr>p  s   øé € ÐLÁ)¸$×/Ñ/°×5Ð5Ã)ùri   FTr-  r.  s   &fr"   rA  ÚAdd._eval_is_algebraic_expro  s4   ø€ ß‹sÔLÀ$Ç)Â)ÓL�sŒsÐLŠsÐLˆsÔLÀ$Ç)Â)ÓLÓLÐLr.   c                	ó>   € \        R  V P                   4       RR7      # )c              3  ó8   "  € T F  qP                   x € K  	  R # 5irN   )r‰   ©r    rA   s   & r"   r#   ÚAdd.<lambda>.<locals>.<genexpr>t  s   é € Ð&™I�q�Ž›Iùrc   Tr:  r<  rT   s   &r"   r±   ÚAdd.<lambda>s  s   € ¤Ù&˜DŸIšIÓ&°4õ"9r.   c                	ó>   € \        R  V P                   4       RR7      # )c              3  ó8   "  € T F  qP                   x € K  	  R # 5irN   )rŒ   rF  s   & r"   r#   rG  v  ó   é € Ð/¡Y ×	Ö	£Yùrc   Tr:  r<  rT   s   &r"   r±   rH  u  ó   € ¬,Ù/ T§Y¢YÓ/¸Dõ+Br.   c                	ó>   € \        R  V P                   4       RR7      # )c              3  ó8   "  € T F  qP                   x € K  	  R # 5irN   )Ú
is_complexrF  s   & r"   r#   rG  x  ó   é € Ð)™y˜!�Ž›yùrc   Tr:  r<  rT   s   &r"   r±   rH  w  ó   € ¤LÙ)˜tŸyšyÓ)°dõ%<r.   c                	ó>   € \        R  V P                   4       RR7      # )c              3  ó8   "  € T F  qP                   x € K  	  R # 5irN   )Úis_antihermitianrF  s   & r"   r#   rG  z  rK  rc   Tr:  r<  rT   s   &r"   r±   rH  y  rL  r.   c                	ó>   € \        R  V P                   4       RR7      # )c              3  ó8   "  € T F  qP                   x € K  	  R # 5irN   )rz   rF  s   & r"   r#   rG  |  s   é € Ð(™i˜�Ž›iùrc   Tr:  r<  rT   s   &r"   r±   rH  {  s   € ¤<Ù(˜dŸišiÓ(°Tõ$;r.   c                	ó>   € \        R  V P                   4       RR7      # )c              3  ó8   "  € T F  qP                   x € K  	  R # 5irN   )Úis_hermitianrF  s   & r"   r#   rG  ~  ó   é € Ð+¡˜A�Ž£ùrc   Tr:  r<  rT   s   &r"   r±   rH  }  ó   € ¤lÙ+ §¢Ó+¸õ'>r.   c                	ó>   € \        R  V P                   4       RR7      # )c              3  ó8   "  € T F  qP                   x € K  	  R # 5irN   )Ú
is_integerrF  s   & r"   r#   rG  €  rP  rc   Tr:  r<  rT   s   &r"   r±   rH    rQ  r.   c                	ó>   € \        R  V P                   4       RR7      # )c              3  ó8   "  € T F  qP                   x € K  	  R # 5irN   ©Úis_rationalrF  s   & r"   r#   rG  ‚  s   é € Ð*¡	˜1�Ž£	ùrc   Tr:  r<  rT   s   &r"   r±   rH  �  s   € ¤\Ù* §	¢	Ó*°tõ&=r.   c                	ó>   € \        R  V P                   4       RR7      # )c              3  ó8   "  € T F  qP                   x € K  	  R # 5irN   )Úis_algebraicrF  s   & r"   r#   rG  „  rZ  rc   Tr:  r<  rT   s   &r"   r±   rH  ƒ  r[  r.   c                	ó:   € \        R  V P                   4       4      # )c              3  ó8   "  € T F  qP                   x € K  	  R # 5irN   r_   rF  s   & r"   r#   rG  …  s   é € ð 5-Ù"+˜Q×Ö£)ùrc   r<  rT   s   &r"   r±   rH  …  s   € ¬ñ 5-Ø"&§)¢)ó5-ô )-r.   c                	ó|   € R pV P                    F)  pVP                  pVf    R# VRJ g   K  VRJ d    R# RpK+  	  V# ©FNT)r&   rÄ   )rU   ÚsawinfrA   Úainfs   &   r"   Ú_eval_is_infiniteÚAdd._eval_is_infiniteˆ  sC   € ØˆØ—”ˆAØ—=‘=ˆDØŠ|ÚØ˜•à˜T“>ÚØ’ñ ð ˆr.   c                	ó&  € . p. pV P                    EF  pVP                  '       d;   VP                  '       d   K*  VP                  R J d   VP                  V4       KM   R# VP                  '       d)   VP                  V\
        P                  ,          4       KŠ  VP                  '       d�   \
        P                  VP                   9   db   VP                  \
        P                  4      w  rEV\
        P                  38X  d(   VP                  '       d   VP                  V) 4       EK   R#  R# 	  V P                  ! V!  pW`8w  dJ   VP                  '       d$   \        V P                  ! V!  P                  4      # VP                  R J d   R # R# R# ©FN)r&   rŒ   rv   r;   Úis_imaginaryr   rÎ   rs   Úas_coeff_mulrã   r   )rU   ÚnzÚim_IrA   r�   ÚairŽ   s   &      r"   Ú_eval_is_imaginaryÚAdd._eval_is_imaginary•  s  € ØˆØˆØ—•ˆAØ×!×!Ð!Ø—9—9�9ÙØ—Y‘Y %Ó'Ø—I‘I˜a–LâØ——�Ø—‘˜AœaŸo™oÕ-Ö.Ø——�œaŸo™o°·±Ô7ØŸN™N¬1¯?©?Ó;‘	�Øœ!Ÿ/™/Ð+Ô+°×0F×0FÐ0FØ—K‘K  ×'ââñ# ð$ �IŠI�r‰NˆØŒ9Ø�y�yˆyÜ  §¢¨DÑ!1×!9Ñ!9Ó:Ð:Ø—‘˜eÓ#Ùñ $ñ r.   c                	ój  € V P                   R J d   R# . p^ pR p^ pV P                   F÷  pVP                  '       dD   VP                  '       d   V^,          pK2  VP                  R J d   VP	                  V4       KU   R# VP
                  '       d   V^,          pKu  VP                  '       dp   \        P                  VP                  9   dQ   VP                  \        P                  4      w  rgV\        P                  38X  d   VP                  '       d   RpKó   R#  R# 	  V\        V P                  4      8X  d   R# \        V4      ^ \        V P                  4      39   d   R# V P                  ! V!  pVP                  '       d   V'       g   V^ 8X  d   R# V^8X  d   R # VP                  R J d   R # R# ri  )r`   r&   rŒ   rv   r;   rp  rs   r   rÎ   rq  r'   rã   )	rU   rr  ÚzÚim_or_zÚimrA   r�   rt  rŽ   s	   &        r"   Ú_eval_is_zeroÚAdd._eval_is_zero±  sD  € Ø×Ñ %Ó'ñ ØˆØˆØˆØˆØ—”ˆAØ×!×!Ð!Ø—9—9�9Ø˜•F’AØ—Y‘Y %Ó'Ø—I‘I˜a–LâØ——�Ø�a•’Ø——�œaŸo™o°·±Ô7ØŸN™N¬1¯?©?Ó;‘	�Øœ!Ÿ/™/Ð+Ô+°×0F×0FÐ0FØ"’Gââñ# ð$ ”�D—I‘I“ÔÙÜˆr‹7�qœ#˜dŸi™i›.Ð)Ô)ÙØ�IŠI�r‰NˆØ�9�9ˆ9ßØ˜”7ÙØ˜1”WÙ Ø�9‰9˜ÓÙñ r.   c                	óð   € V P                    Uu. uF  qP                  R J d   K  VNK  	  ppV'       g   R# V^ ,          P                  '       d"   V P                  ! VR,          !  P                  # R# u upi )TFr´   N)r&   Úis_evenÚis_oddr…   )rU   r™   Úls   &  r"   Ú_eval_is_oddÚAdd._eval_is_oddÚ  s]   € ØŸ	š	Ó=™	�1¯)©)°tÐ*;�QˆQ™	ˆÐ=ßÙØˆQ�4�;�;ˆ;Ø×$Ò$ a¨¥eÑ,×4Ñ4Ð4ñ ùò >s
   �A3¥A3c                	ó.  € V P                    F„  pVP                  pV'       dg   \        V P                   4      pVP                  V4       \        ;QJ d    R  V 4       F  '       d   K   RM	  RM! R  V 4       4      '       d    R#  R# Ve   Kƒ   R# 	  R# )c              3  ó<   "  € T F  qP                   R J x € K  	  R# 5i)TNra  )r    r¯   s   & r"   r#   Ú*Add._eval_is_irrational.<locals>.<genexpr>ç  s   é € Ð=±f°—}‘}¨Õ,³fùs   ‚FTN)r&   Úis_irrationalr5   Úremovert   )rU   rn   rA   Úotherss   &   r"   Ú_eval_is_irrationalÚAdd._eval_is_irrationalá  si   € Ø—”ˆAØ—‘ˆAßÜ˜dŸi™i›�Ø—‘˜aÔ ß“3Ñ=±fÓ=—3—3’3Ñ=±fÓ=×=Ò=ÚÚØŒyÚñ ñ r.   c                	ó¸   € ^ ;rV P                    FF  pVP                  '       d   V'       d    R# ^pK$  VP                  '       d   V'       d    R# ^pKE   R# 	  R# )r   FTN)r&   Úis_nonnegativeÚis_nonpositive)rU   ÚnnÚnprA   s   &   r"   Ú_all_nonneg_or_nonpposÚAdd._all_nonneg_or_nonpposî  sM   € ØˆˆØ—”ˆAØ××ÐßÚ Ø’Ø×!×!Ð!ßÚ Ø’âñ ñ r.   c                	ó`  <€ V P                   '       d   \        SV `	  4       # V P                  4       w  rVP                  '       g‡   ^RIHp V! V4      pVeu   WA,           pWP8w  d'   VP                  '       d   VP                  '       d   R# \        V P                  4      ^8X  d'   V! V 4      pVe   W@8w  d   VP                  '       d   R# R;p;p;r‰\        4       p
V P                   Uu. uF  q"P                  '       d   K  VNK  	  ppV'       g   R# V Fš  pVP                  pVP                  pV'       d7   V
P                  \        WÂP                  34      4       RV
9   d   RV
9   d    R# V'       d   RpKe  VP                  '       d   RpK{  VP                   '       d   RpK‘  Vf    R# Rp	Kœ  	  V
'       d#   \        V
4      ^8”  d   R# V
P#                  4       # V	'       d   R# V'       g   V'       g   V'       d   R# V'       g   V'       d   R# V'       g   V'       g   R# R# R# u upi ©r   ©Ú_monotonic_signNTF)rÑ   ÚsuperÚ_eval_is_extended_positiver¾   rv   rÔ   r•  rÐ   rˆ   r'   Úfree_symbolsÚsetr&   rÄ   Úaddr   r‹   r7   )rU   r”   rA   r•  r	  ra   ÚposÚnonnegÚnonposÚunknown_signÚsaw_INFr&   ÚisposÚinfiniteÚ	__class__s   &             €r"   r—  ÚAdd._eval_is_extended_positiveþ  óµ  ø€ Ø�>�>ˆ>Ü‘7Ñ5Ó7Ð7Ø× Ñ Ó"‰ˆØ�y�yˆyÝ2Ù Ó"ˆAØŠ}Ø•E�Ø”9 ×!7×!7Ð!7¸A×<U×<UÐ<UÙÜ�t×(Ñ(Ó)¨QÔ.Ù'¨Ó-�AØ’}¨¬°q×7M×7MÐ7MÙ#Ø/4Ð4ˆÐ4ˆfÐ4�vÜ“%ˆØŸ9š9Ó6™9�a¯I­I—�™9ˆÐ6ßÙÛˆAØ×*Ñ*ˆEØ—}‘}ˆHßØ—‘œH e×-FÑ-FÐ%GÓHÔIØ˜7”? u°Ô'7ÚßØ�ÙØ×*×*Ð*Ø�ÙØ×*×*Ð*Ø�ÙàÒÚØŠLñ' ÷* Ü�7‹|˜aÔÙØ—;‘;“=Ð ßÙß§¯3ÙßŸCÙßŸVÙñ $‘ùòE 7ó   Ã+H+ÄH+c                	óš  € V P                   '       g¹   V P                  4       w  rVP                  '       g“   VP                  '       d   ^RIHp V! V4      pVek   WA,           pWP8w  d   VP                  '       d   R# \        V P                  4      ^8X  d-   V! V 4      pVe   W@8w  d   VP                  '       d   R# R# R# R# R# R# R# R# R# ©r   r”  NT)rÑ   r¾   rv   rˆ   rÔ   r•  r'   r˜  ©rU   r”   rA   r•  r	  ra   s   &     r"   Ú_eval_is_extended_nonnegativeÚ!Add._eval_is_extended_nonnegative4  ó¯   € Ø�~�~ˆ~Ø×$Ñ$Ó&‰DˆAØ—9—9�9 ×!:×!:Ð!:Ý6Ù# AÓ&�Ø’=Ø��AØ”y Q×%>×%>Ð%>Ù#Ü˜4×,Ñ,Ó-°Ô2Ù+¨DÓ1˜Øš=¨Q¬Y¸1×;T×;TÐ;TÙ#'ñ <U©Y™=ñ 3ñ	 !ñ ";‘9ñ r.   c                	óš  € V P                   '       g¹   V P                  4       w  rVP                  '       g“   VP                  '       d   ^RIHp V! V4      pVek   WA,           pWP8w  d   VP                  '       d   R# \        V P                  4      ^8X  d-   V! V 4      pVe   W@8w  d   VP                  '       d   R# R# R# R# R# R# R# R# R# r§  )rÑ   r¾   rv   r‹   rÔ   r•  r'   r˜  r¨  s   &     r"   Ú_eval_is_extended_nonpositiveÚ!Add._eval_is_extended_nonpositiveC  r«  r.   c                	ó`  <€ V P                   '       d   \        SV `	  4       # V P                  4       w  rVP                  '       g‡   ^RIHp V! V4      pVeu   WA,           pWP8w  d'   VP                  '       d   VP                  '       d   R# \        V P                  4      ^8X  d'   V! V 4      pVe   W@8w  d   VP                  '       d   R# R;p;p;r‰\        4       p
V P                   Uu. uF  q"P                  '       d   K  VNK  	  ppV'       g   R# V Fš  pVP                  pVP                  pV'       d7   V
P                  \        WÂP                  34      4       RV
9   d   RV
9   d    R# V'       d   RpKe  VP                  '       d   RpK{  VP                   '       d   RpK‘  Vf    R# Rp	Kœ  	  V
'       d#   \        V
4      ^8”  d   R# V
P#                  4       # V	'       d   R# V'       g   V'       g   V'       d   R# V'       g   V'       d   R# V'       g   V'       g   R# R# R# u upi r“  )rÑ   r–  Ú_eval_is_extended_negativer¾   rv   rÔ   r•  rÏ   r‹   r'   r˜  r™  r&   rÄ   rš  r   rˆ   r7   )rU   r”   rA   r•  r	  ra   Únegr�  rœ  rž  rŸ  r&   Úisnegr¡  r¢  s   &             €r"   r°  ÚAdd._eval_is_extended_negativeR  r¤  r¥  c           
     	ó*  € VP                   '       g>   V\        P                  J d(   V) V P                  9   d   V P	                  V) V) /4      # R # V P                  4       w  r4VP                  4       w  rVVP                  '       dF   VP                  '       d4   WF8X  d   V P                  W#V) 4      # WF) 8X  d   V P                  V) W54      # VP                  '       d   VP                  '       g   W58X  Ed   V P                  P                  V4      V P                  P                  V4      r‡\        V4      \        V4      8  dÄ   \        V4      p	\        V4      p
W©8  d=   Wš,
          pV P                  ! W#V) .V Uu. uF  qÌP                  W4      NK  	  upO5!  # V P                  P                  V) 4      p\        V4      p
W©8  d=   Wš,
          pV P                  ! V) W5.V Uu. uF  qÌP                  W4      NK  	  upO5!  # R # R # R # u upi u upi rN   )r8   r   r‡   r&   r  r¾   rr   rã   Ú	make_argsr'   r™  Ú_subs)rU   rö   ÚnewÚ
coeff_selfÚ
terms_selfÚ	coeff_oldÚ	terms_oldÚargs_oldÚ	args_selfÚself_setÚold_setÚret_setra   s   &&&          r"   Ú
_eval_subsÚAdd._eval_subsˆ  sá  € Ø�z�zˆzØ”a—j‘jÓ  c T¨T¯Y©YÔ%6à—}‘} s d¨S¨D \Ó2Ð2Ùà!%×!2Ñ!2Ó!4Ñˆ
Ø"×/Ñ/Ó1Ñˆ	à×!×!Ð! i×&;×&;Ð&;ØÔ&Ø—y‘y °9°*Ó=Ð=Ø˜ZÔ'Ø—y‘y #  zÓ=Ð=à×!×!Ð! i×&;×&;Ð&;ØÕ*Ø"&§)¡)×"5Ñ"5Øó#Ø ŸI™I×/Ñ/°
Ó;ð  ä�8‹}œs 9›~Ô-Ü˜y›>�Ü˜h›-�àÔ%Ø&Õ0�GØŸ9š9 S°y°jð FÙ<CÓ D¹G°q§¡¨Ö!2¹GÑ DóFð Fð  Ÿ9™9×.Ñ.Ø�Jó �ä˜h›-�ØÔ%Ø&Õ0�GØŸ9š9 c T¨:ð FÙ<CÓ D¹G°q§¡¨Ö!2¹GÑ DóFð Fñ &ñ .ñ +ùò !Eùò !Es   Å<H
Ç%H
c                	óˆ   € V P                    Uu. uF  qP                  '       d   K  VNK  	  ppV P                  ! V!  # u upi rN   ©r&   ru   r…   ©rU   rA   r&   s   &  r"   ÚremoveOÚAdd.removeO­  s6   € ØŸ9š9Ó7™9�a¯J­J—�™9ˆÐ7Ø× Ò  $Ñ'Ð'ùò 8s   �?§?c                	óœ   € V P                    Uu. uF  qP                  '       g   K  VNK  	  ppV'       d   V P                  ! V!  # R # u upi rN   rÄ  rÅ  s   &  r"   ÚgetOÚAdd.getO±  s>   € ØŸ9š9Ó3™9�a¯
­
—�™9ˆÐ3ßØ×$Ò$ dÑ+Ð+ñ ùò 4s
   �A	§A	c                ó  € ^ RI Hp . p\        \        V4      '       d   TMV.4      pV'       g   ^ .\	        V4      ,          pV P
                   Uu. uF  qUV! V.\        W4      O5!  3NK  	  ppV F{  w  rxV F(  w  ršV
P                  V4      '       g   K  W¨8w  g   K&  Rp M	  Vf   K9  Wx3.pV F6  w  ršVP                  V
4      '       d	   W¨8w  d   K$  VP                  Wš34       K8  	  TpK}  	  \        V4      # u upi )a  
Returns the leading term and its order.

Examples
========

>>> from sympy.abc import x
>>> (x + 1 + 1/x**5).extract_leading_order(x)
((x**(-5), O(x**(-5))),)
>>> (1 + x).extract_leading_order(x)
((1, O(1)),)
>>> (x + x**2).extract_leading_order(x)
((x, O(x)),)

r   N)
Úsympy.series.orderr   r5   r   r'   r&   r  rf   r;   rµ   )rU   ÚsymbolsÚpointr   Úlstr™   rX   ÚefÚofr•   rh   Únew_lsts   &&&         r"   Úextract_leading_orderÚAdd.extract_leading_order¶  sì   € õ" 	-ØˆÜ¤+¨g×"6Ò"6‘w¸W¸IÓFˆßØ�Cœ˜G›Õ$ˆEØ<@¿IºIÓF¹I°q‘5˜Ð1œS Ó0Ó1Ó2¹IˆÐFÛ‰FˆBÛ‘�Ø—:‘:˜b—>”> a¦gØ�BÙñ ð ŠzÙØ�x�jˆGÛ‘�Ø—;‘;˜q—>’> a¤gÙØ—‘ ˜vÖ&ñ ð ŠCñ ô �S‹zÐùò Gs   ÁC<c                óÞ   € V P                   p. . rTV F9  pVP                  VR7      w  rxVP                  V4       VP                  V4       K;  	  V P                  ! V!  V P                  ! V!  3# )zÜ
Return a tuple representing a complex number.

Examples
========

>>> from sympy import I
>>> (7 + 9*I).as_real_imag()
(7, 9)
>>> ((1 + I)/(1 - I)).as_real_imag()
(0, 1)
>>> ((1 + 2*I)*(1 + 3*I)).as_real_imag()
(-5, 5)
rj   )r&   Úas_real_imagr;   rã   )	rU   rk   ÚhintsÚsargsÚre_partÚim_partr*  Úrerz  s	   &&,      r"   rÖ  ÚAdd.as_real_imagÜ  sj   € ð —	‘	ˆØ˜r�ÛˆDØ×&Ñ&¨DÐ&Ó1‰FˆBØ�N‰N˜2ÔØ�N‰N˜2Öñ ð —	’	˜7Ñ# T§Y¢Y°Ñ%8Ð9Ð9r.   c                	óÐ  a€ ^ RI HpHp ^ RIHp ^ RIHo ^ RIHpH	p ^RI
Hp	 V P                  4       p
V
f	   V! ^ 4      p
V P                  4       pVP                  V4      '       d	   V! V4      p\        ;QJ d)    V3R lV P                    4       F  '       g   K   RM	  RM! V3R lV P                    4       4      '       d'   R	RR
RRRRRRRRRRRRRRR/	pVP"                  ! R/ VB pV	! V4      pVP$                  '       g   VP'                  WVR7      # VP                    Uu. uF  qîP(                  '       g   K  VNK  	  ppVf	   V! R4      MTpVP                    Uu. uF  qîP'                  VVVR7      NK  	  ppV! ^ 4      \*        P,                  pp V F3  pV! VV4      pV'       d   VV9  d   TpTpK!  VV9   g   K*  VV,          pK5  	  Tf   TP1                  TS! T4      4      pTP2                  pTf+   TP5                  4       P7                  4       pTP2                  pTRJ dÆ    TP9                  4       pTP                  T4      '       d   \*        P<                  pT! ^4      p\*        P<                  pTP>                  '       dQ   TPA                  TTT,           Y#R7      P7                  4       PC                  4       P5                  4       pT^,          pKb  TP'                  YTR7      # T\*        PD                  J d#   TPF                  PI                  T4      T
,           # T# u upi u upi   \.         d    Tu # i ; i  \:         d    \*        P<                  p EL'i ; i)r   )rú   ÚSymbolr   )Úlog)Ú	PiecewiseÚpiecewise_fold)Ú
expand_mulc              3  ó<   <"  € T F  p\        VS4      x € K  	  R # 5irN   )r{   )r    rA   rß  s   & €r"   r#   Ú,Add._eval_as_leading_term.<locals>.<genexpr>  s   øé € Ð5©9 aŒz˜!˜S×!Ð!«9ùs   ƒTFrk   rß  ÚmulÚ	power_expÚ
power_baseÚmultinomialÚbasicÚforceÚfactor)rê   rë   rê   rè   rI   )%Úsympy.core.symbolrú   rÞ  rÌ  r   Ú&sympy.functions.elementary.exponentialrß  Ú$sympy.functions.elementary.piecewiserà  rá  rÖ   râ  rÉ  rÆ  r  rw   r&   Úexpandr8   Úas_leading_termrÄ   r   r6   Ú	TypeErrorÚsubsrv   ÚtrigsimpÚcancelÚgetnÚNotImplementedErrorrƒ   ru   rí   Úpowsimprx   rã   r>   )rU   r¯   rê   rë   rú   rÞ  r   rà  rá  râ  rh   rö   Úlogflagsr*   rn   r¡  Ú_logxÚleading_termsÚminÚnew_exprr*  Úorderrv   Ún0ÚresÚincrrß  s   &&&&                      @r"   Ú_eval_as_leading_termÚAdd._eval_as_leading_termó  sÝ  ø€ ß3Ý,Ý>ßRÝ(à�I‰I‹KˆØŠ9Ù�a“ˆAØ�l‰l‹nˆà�7‰7�9×ÒÙ  Ó%ˆC÷ ‹3Ô5¨4¯9ª9Ó5�3�3Š3Ô5¨4¯9ª9Ó5×5Ò5Ø  e¨T°5¸%ÀÈeØ˜e ]°E¸7ÀEÈ7ÐTYØ˜%ð!ˆHð —*’*Ñ(˜xÑ(ˆCÙ˜#‹ˆà�{�{ˆ{Ø×'Ñ'¨¸4Ð'Ó@Ð@à#ŸyšyÓ:™y˜!¯M­M—A�A™yˆÐ:à!%¢‘�f”°4ˆØNRÏiÊiÓXÉiÈ×*Ñ*¨1°5¸tÐ*ÖDÉiˆÐXá˜a›¤!§&¡&ˆXˆð
	Û%�Ù˜d A›�ß˜e¨3Ô.Ø�CØ#’HØ˜E–\Ø Õ$’Hñ &ð Š<Ø—}‘} U©C°«FÓ3ˆHà×"Ñ"ˆØŠ?Ø×(Ñ(Ó*×1Ñ1Ó3ˆHØ×&Ñ&ˆGØ�d‹?ðØ—X‘X“Z�ð �v‰v�f�~Š~Ü—U‘U�Ù˜“(ˆCÜ—5‘5ˆDØ—,—,�,Ø×'Ñ'¨¨R°­W¸4Ð'ÓK×RÑRÓT×\Ñ\Ó^×gÑgÓi�Ø˜•	’Ø×&Ñ& q¸$Ð&Ó?Ð?àœŸ™ÓØ—8‘8×&Ñ& xÓ0°1Õ4Ð4ð ˆOùò] ;ùò Yøô ô 	ØŠKð	ûô 'ô Ü—U‘U“ðús<   Ä$L)Ä<L)Å L.Æ'L3 ÇL3 È-M Ì3MÍMÍM%Í$M%c                	óz   € V P                   ! V P                   Uu. uF  qP                  4       NK  	  up!  # u upi rN   )rã   r&   Úadjoint©rU   rn   s   & r"   Ú_eval_adjointÚAdd._eval_adjoint>  s+   € Ø�yŠy°·	²	Ó:±	¨1Ÿ9™9ž;±	Ñ:Ñ;Ð;ùÒ:ó   ›8c                	óz   € V P                   ! V P                   Uu. uF  qP                  4       NK  	  up!  # u upi rN   )rã   r&   Ú	conjugater  s   & r"   Ú_eval_conjugateÚAdd._eval_conjugateA  ó+   € Ø�yŠy°$·)²)Ó<±)¨QŸ;™;ž=±)Ñ<Ñ=Ð=ùÒ<r  c                	óz   € V P                   ! V P                   Uu. uF  qP                  4       NK  	  up!  # u upi rN   )rã   r&   Ú	transposer  s   & r"   Ú_eval_transposeÚAdd._eval_transposeD  r  r  c                óŒ  € . pRpV P                    F}  pVP                  4       w  rEVP                  '       g   \        P                  pTpT;'       g    V\        P
                  J pVP                  VP                  VP                  V34       K  	  V'       gP   \        \        V Uu. uF  qf^ ,          NK  	  up^ 4      p\        \        V Uu. uF  qf^,          NK  	  up^4      pMp\        \        V Uu. uF  qf^,          '       g   K  V^ ,          NK  	  up^ 4      p\        \        V Uu. uF  qf^,          '       g   K  V^,          NK  	  up^4      pYxu;8X  d   ^8X  d   M M\        P                  V 3# V'       gD   \        V4       F3  w  p	w  r«p\        \        W§,          W‹,          ,          4      V4      W&   K5  	  Mc\        V4       FT  w  p	w  r«pV'       d-   \        \        W§,          W‹,          ,          4      V4      W&   K=  \        \        W«4      V4      W&   KV  	  V^ ,          P                  '       g   V^ ,          \        P
                  J d   VP!                  ^ 4      pMRp\#        V4       V'       d   VP%                  ^ V4       \        Wx4      V P&                  ! V!  3# u upi u upi u upi u upi )aw  
Return ``(R, self/R)`` where ``R``` is the Rational GCD of ``self```.

``R`` is collected only from the leading coefficient of each term.

Examples
========

>>> from sympy.abc import x, y

>>> (2*x + 4*y).primitive()
(2, x + 2*y)

>>> (2*x/3 + 4*y/9).primitive()
(2/9, 3*x + 2*y)

>>> (2*x/3 + 4.2*y).primitive()
(1/3, 2*x + 12.6*y)

No subprocessing of term factors is performed:

>>> ((2 + 2*x)*x + 2).primitive()
(1, x*(2*x + 2) + 2)

Recursive processing can be done with the ``as_content_primitive()``
method:

>>> ((2 + 2*x)*x + 2).as_content_primitive()
(2, x*(x + 1) + 1)

See also: primitive() function in polytools.py

FN)r&   r~   rr   r   rƒ   ry   r;   r×   rÒ   r   r   r   Ú	enumerater  ÚRationalr:   r7   r3   r<   r…   )rU   r�   r  rA   r”   Úmrn   ÚngcdÚdlcmr!   r×   rÒ   r*  s   &            r"   r  ÚAdd.primitiveG  s!  € ðF ˆØˆØ—”ˆAØ—>‘>Ó#‰DˆAØ—=—=�=Ü—E‘E�Ø�Ø×/Ð/˜œa×/Ñ/Ð/ˆCØ�L‰L˜!Ÿ#™#˜qŸs™s A˜Ö'ñ ÷ Üœ$©uÓ 5©u¨! 1§ ©uÑ 5°qÓ9ˆDÜœ$©uÓ 5©u¨! 1§ ©uÑ 5°qÓ9‰Däœ$©uÓ =©u¨!¸!¿¹¤  1§ ©uÑ =¸qÓAˆDÜœ$©uÓ =©u¨!¸!¿¹¤  1§ ©uÑ =¸qÓAˆDàÖ˜1×Ü—5‘5˜$�;ÐßÜ#,¨UÖ#3‘�‘<�A˜$Ü&¤x°µ¸4½7Õ0CÓ'DÀdÓK�“ò $4ô $-¨UÖ#3‘�‘<�A˜$ßÜ*¬8°QµW¸t½wÕ4GÓ+HÈ$ÓO�E“Hä*¬8°A«>¸4Ó@�E“Hñ	 $4ð ��8××Ð  q¥¬Q×->Ñ->Ó!>Ø—	‘	˜!“‰AàˆAÜ�ŒßØ�L‰L˜˜AÔÜ˜Ó# T×%6Ò%6¸Ñ%>Ð>Ð>ùòA !6ùÚ 5ùâ =ùÚ =s$   Â(J2
ÃJ7
Ã7J<
ÄJ<
Ä/K
ÅK
c                ó¶  € V P                   ! V P                   Uu. uF  p\        VP                  WR7      !  NK  	  up!  P	                  4       w  rEV'       g˜   VP
                  '       g†   VP                  '       dt   VP                  4       w  rFWV,          p\        ;QJ d&    R VP                   4       F  '       g   K   RM	  RM! R VP                   4       4      '       d   TpMWF,          pV'       EdP   VP                  '       Ed=   VP                  p. p	Rp
V EF)  p\        \        4      p\        P                  ! V4       F•  pVP                  '       g   K  VP                  4       w  rïVP                  '       g   K=  VP
                  '       g   KQ  WÏP                   ,          P#                  \%        \'        V4      4      VP(                  ,          4       K—  	  V'       g    WE3# V
f   \+        VP-                  4       4      p
M,V
\+        VP-                  4       4      ,          p
V
'       g    WE3# V	P#                  V4       EK,  	  V	 FY  p\        VP-                  4       4       F  pVV
9  g   K  VP/                  V4       K  	  V F  p\        VV,          !  VV&   K  	  K[  	  . pV
 FV  p\1        \2        V	 Uu. uF  pVV,          NK  	  up^ 4      pV^8w  g   K4  VP#                  V\5        ^V4      ,          4       KX  	  V'       d8   \        V!  pV Uu. uF  qÝV,          NK  	  ppVVP                   ! V!  ,          pWE3# u upi u upi u upi )a  Return the tuple (R, self/R) where R is the positive Rational
extracted from self. If radical is True (default is False) then
common radicals will be removed and included as a factor of the
primitive expression.

Examples
========

>>> from sympy import sqrt
>>> (3 + 3*sqrt(2)).as_content_primitive()
(3, 1 + sqrt(2))

Radical content can also be factored out of the primitive:

>>> (2*sqrt(2) + 4*sqrt(10)).as_content_primitive(radical=True)
(2, sqrt(2)*(1 + 2*sqrt(5)))

See docstring of Expr.as_content_primitive for more examples.
)ÚradicalÚclearc              3  ób   "  € T F%  qP                  4       ^ ,          P                  x € K'  	  R# 5i)r   N)r~   r�   rF  s   & r"   r#   Ú+Add.as_content_primitive.<locals>.<genexpr>°  s    é € ÐC¹7°a—>‘>Ó# AÕ&×1Ö1»7ùs   ‚-/TFN)rã   r&   r  Úas_content_primitiver  r�   r8   r  rw   r   r5   r†   rµ  r   r€   rr   rÒ   r;   rØ   Úintr×   r™  Úkeysr7   r   r   r  )rU   r  r  rA   ÚconÚprimr!  Ú_pr&   ÚradsÚcommon_qr  Ú	term_radsrt  rŽ   r•   rÝ   rÒ   ÚGÚgs   &&&                 r"   r  ÚAdd.as_content_primitive—  sŸ  € ð( —I’IØ48·I²Ió ?Ù4=¨qô !,¨Q×-CÑ-CØð .Dó .*ô !+Ù4=ñ ?ñ @ß@IÁ	Ãñ 	ˆç˜SŸ^Ÿ^˜^°··°Ø×'Ñ'Ó)‰FˆCØ•ˆBß‹sÑC¸2¿7º7ÓC�s�sŠsÑC¸2¿7º7ÓC×CÒCØ‘à•�ßˆ7�t—{—{‘{à—9‘9ˆDØˆDØˆHÜ�Ü'¬Ó-�	ÜŸ-š-¨Ö*�BØ—y—y’yØ!Ÿ~™~Ó/™˜ØŸ=Ÿ=š=¨Q¯\¯\ª\Ø%§c¡c�N×1Ñ1´#´c¸!³f³+¸q¿s¹sÕ2BÖCñ	 +÷
 !Øð8 ˆyÐð7 Ò#Ü" 9§>¡>Ó#3Ó4‘Hà'¬#¨i¯n©nÓ.>Ó*?Õ?�Hß#Øð, ˆyÐð+ —‘˜I×&ñ ó& �AÜ! !§&¡&£(ž^˜Ø HÖ,ØŸE™E !žHñ ,ó ˜Ü" A a¥D™z˜˜!›ó ñ	 ð �Û!�AÜœt±DÓ%9±D¨q a¨§d d±DÑ%9¸1Ó=�AØ˜A–vØŸ™ ¤H¨Q°£NÕ!2Ö3ñ "÷ Ü˜Q™�AÙ+/Ó0©4 R˜qŸD˜D©4�DÐ0Ø˜TŸYšY¨Ñ-Õ-�DàˆyÐùòe ?ùòT &:ùò
 1s   ›"MËMÌMc                	óN   € ^RI Hp \        \        V P                  VR7      4      # )r   )Údefault_sort_keyr0   )Úsortingr+  rµ   Úsortedr&   )rU   r+  s   & r"   Ú_sorted_argsÚAdd._sorted_argsß  s   € å-Ü”V˜DŸI™IÐ+;Ô<Ó=Ð=r.   c           
     	óx   € ^ RI Hp V P                  ! V P                   Uu. uF  qC! WAV4      NK  	  up!  # u upi )r   )Údifference_delta)Úsympy.series.limitseqr1  rã   r&   )rU   ré   ÚstepÚddrA   s   &&&  r"   Ú_eval_difference_deltaÚAdd._eval_difference_deltaä  s0   € Ý@Ø�yŠy°4·9²9Ó=±9¨a˜2˜a Dž>±9Ñ=Ñ>Ð>ùÒ=s   ¡7c                óÞ   € ^RI Hp V P                  4       w  r#VP                  4       w  rEV\        P
                  8X  g   \        R4      hV! V4      P                  V! V4      P                  3# )z+
Convert self to an mpmath mpc if possible
)ÚFloatz@Cannot convert Add to mpc. Must be of the form Number + Number*I)Únumbersr8  r¾   r~   r   rÎ   ÚAttributeErrorÚ_mpf_)rU   r8  rÙ  ÚrestrÚ  Ú	imag_units   &     r"   Ú_mpc_Ú	Add._mpc_è  sa   € õ
 	#Ø×)Ñ)Ó+‰ˆØ!×.Ñ.Ó0ÑˆØœAŸO™OÔ+ô !Ð!cÓdÐdá�g“×$Ñ$¡e¨G£n×&:Ñ&:Ð;Ð;r.   c                	ó€   <€ \         P                  '       g   \        SV `  4       # \	        \
        P                  V 4      # rN   )r
   Ú
distributer–  Ú__neg__r†   r   ÚNegativeOne)rU   r¢  s   &€r"   rB  ÚAdd.__neg__ø  s-   ø€ Ü ×+×+Ð+Ü‘7‘?Ó$Ð$Ü”1—=‘= $Ó'Ð'r.   rI   ro  )r   )NFrN   )T)FT)HrŸ   Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú	__slots__r8   r   Ú
_args_typeÚ__annotations__r   rP   Úpropertyr&   Úclassmethodr›   r    r£   r   r   r¶   r¾   rà   rå   rí   rò   rð   Ústaticmethodr  r  r  r(  r2  r=  rA  Ú_eval_is_realÚ_eval_is_extended_realÚ_eval_is_complexÚ_eval_is_antihermitianÚ_eval_is_finiteÚ_eval_is_hermitianÚ_eval_is_integerÚ_eval_is_rationalÚ_eval_is_algebraicÚ_eval_is_commutativerl  ru  r{  r�  r‰  r�  r—  r©  r­  r°  rÁ  rÆ  rÉ  rÓ  rÖ  r  r  r  r  r  r  r.  r5  r>  rB  Ú__static_attributes__Ú__classcell__)r¢  s   @r"   r=   r=   ]   s  ø‡ ñTðl €Ià€Fà€JàÓçð	¸t÷ 	ð 
ô	ó 
ð	ð ôP$ó ðP$ðd ñ"ó ð"ð ñ
ó ð
ò/ð ñ!ó ð!÷,ò#)ðJ ñ:ó ð:ô!òô?ð ñ,ó ð,ð2 ñ?ó ð?õ&-:ò^IòPò-òMñ9€MñBÐñ<ÐñBÐñ;€Oñ>Ðñ<Ðñ=Ðñ>Ðñ-Ðòòò8'òR5òòõ 4òl(ò(õ4òl#FòJ(ò,ð
 ó#ó ð#ôJ:ò.IòV<ò>ò>òN?ô`FðP ñ>ó ð>ò?ð ñ<ó ð<÷(ó (r.   r=   rš  )r†   r  rÙ   )r  N)3Ú
__future__r   Útypingr   r   Úcollectionsr   Ú	functoolsr   Úoperatorr   ré  r	   Ú
parametersr
   Úlogicr   r   r   Ú	singletonr   Ú
operationsr   r   Úcacher   Úintfuncr   r   r*   r   r£   r   Úsympy.utilities.iterablesr   r   Úsympy.core.numbersr   rÌ  r   r-   r3   rB   r=   rš  rå  r†   r  rÙ   r9  r  rI   r.   r"   Ú<module>rh     sv   ðÝ "ç *Ý #Ý Ý Ý  Ý )ß 4Ñ 4Ý ß 2Ý ß Ý Ý ß 7÷ Ý)Ý(ò6ò !ò
-#ô`^(ˆ$�ô ^(ñ@% ˜Ó€ç 3Ñ 3ß r.   