o
    ÐeÐP  ã                   @   sX  d Z ddlmZ ddlmZ ddlmZmZmZm	Z	 ddl
mZmZmZmZmZmZ ddlmZ ddlmZmZ ddlmZ dd	lmZmZ dd
lmZmZ ddlmZ ddl m!Z!m"Z"m#Z# ddl$m%Z% ddl&m'Z'm(Z( ddl)m*Z*m+Z+ ddl,m-Z-m.Z.m/Z/ ddl0m1Z1m2Z3m4Z4m5Z6m7Z7m8Z8 ddl9m:Z: ddl;m<Z< ddl=m>Z> ddl?m@Z@mAZA ddlBmCZC ddlDmEZEmFZF e G¡ ZHdd„ ZIdd„ ZJdd„ ZKdd„ ZLd d!„ ZMd"d#„ ZNd$d%„ ZOd&d'„ ZPd(d)„ ZQd*d+„ ZRd,d-„ ZSd.d/„ ZTd0d1„ ZUd2d3„ ZVd4d5„ ZWd6d7„ ZXeFd8d9„ ƒZYd:d;„ ZZd<d=„ Z[d>d?„ Z\d@dA„ Z]dBdC„ Z^eFdDdE„ ƒZ_dFdG„ Z`dHdI„ ZadJdK„ ZbdLdM„ ZcdNS )OzFTests for tools for solving inequalities and systems of inequalities. é    )ÚSum)ÚFunction)ÚIÚRationalÚooÚpi)ÚEqÚGeÚGtÚLeÚLtÚNe)ÚS)ÚDummyÚSymbol)ÚAbs)ÚexpÚlog)ÚrootÚsqrt)Ú	Piecewise)ÚcosÚsinÚtan)ÚIntegral)ÚAndÚOr)ÚPolyÚPurePoly)Ú	FiniteSetÚIntervalÚUnion)Úreduce_inequalitiesÚsolve_poly_inequalityÚreduce_rational_inequalitiesÚsolve_univariate_inequalityÚreduce_abs_inequalityÚ_solve_inequality)Úrootof)Úsolve)Úsolveset)ÚxÚy)ÚMod)ÚraisesÚXFAILc                   C   sd   t tdtƒdƒtjgksJ ‚t tdtƒdƒtjgksJ ‚t ttd tƒdƒtdtddƒgks0J ‚d S )Nr   z==é   ú>éÿÿÿÿTF)	Úpsolver   r+   r   ÚRealsÚEmptySetr   r    r   © r6   r6   úUD:\Projects\ConvertPro\env\Lib\site-packages\sympy/solvers/tests/test_inequalities.pyÚtest_solve_poly_inequality%   s   ,r8   c               	   C   sÔ  t ttd dƒggtddtdƒksJ ‚t ttd dƒggtddtdƒks(J ‚t ttd dƒggtddtjks;J ‚tjrQt t	td dƒggtddtj
ksYJ ‚tt tƒsYJ ‚t ttd dƒggtddtdƒ tj
¡ksqJ ‚t ttd dƒggtddtdƒ tj
¡ks‰J ‚t ttd dƒggtddtddƒksžJ ‚t ttd dƒggtddtddƒks³J ‚t ttd dƒggtddtddddƒksÊJ ‚t t	td dƒggtddttt dƒtdtƒƒksæJ ‚t ttd dƒggtddtddƒ tj
¡ksÿJ ‚t ttd dƒggtddtddƒ tj
¡ksJ ‚t ttd dƒggtddtd	dƒ ¡ ks1J ‚t ttd dƒggtddtd	dƒksGJ ‚t ttd dƒggtddtd	dddƒks_J ‚t t	td dƒggtddttt d	ƒtdtƒƒks|J ‚t ttd dƒggtddttt d	dd
tdtddƒksJ ‚t ttd dƒggtddtd	dƒ tj
¡ks·J ‚tdƒ} t ttd d dƒttd d dƒggtddtjksÙJ ‚t ttd d dƒt	td d dƒggtddtddƒksùJ ‚t ttd d dƒt	td d dƒggtddtt|  dddƒtd| ddƒƒks$J ‚t ttd d dƒttd d dƒggtddtt|  dddƒtd| ddƒƒksOJ ‚t ttd d dƒt	td d dƒggtddtt|  dddƒtd| ddƒƒkszJ ‚t ttd d dƒttd d dƒggtddtt|  dddƒtd| ddƒƒks¥J ‚t ttd d dƒttd d dƒggtddtt|  dddƒtddddƒtd| ddƒƒksÖJ ‚t ttd d	ƒggtƒtju sèJ ‚d S )Né   r   F©Z
relationalr0   r2   Tç      ð?g      ð¿)Z
right_open)Z	left_open)r$   r   r+   r   r   r   r   r5   Zis_realr	   r4   r    r   r
   Z
complementr   r!   ÚevalfÚinfr   Úfalse)Úsr6   r6   r7   Ú+test_reduce_poly_inequalities_real_interval+   s$  ÿÿÿÿÿÿþÿþ
þÿþÿþÿÿÿÿÿÿÿþÿþÿ
þÿÿ
ÿÿ
ÿÿÿ
ÿÿ
þÿÿ
þÿÿ
þÿÿÿ
ÿÿÿ
ÿ(ÿ
þ(ÿ
þ(ÿ
þ(ÿ
þ(ÿÿ
þ(r@   c               
   C   s  t ttd dƒggtddttdƒksJ ‚t ttd dƒggtddttdƒks*J ‚t ttd dƒggtdddks<J ‚t ttd dƒggtddttt tƒtttƒƒksXJ ‚t ttd dƒggtddtttt ƒtttƒt	tdƒƒksxJ ‚t t	td dƒggtddtttt ƒtttƒt	tdƒƒks˜J ‚t
jt
dƒfD ]ë} | t }t ttd | ƒggtddttt|  ƒtt| ƒƒksÁJ ‚t ttd | ƒggtddttt|  tƒtt| ƒƒƒksßJ ‚t ttd | ƒggtddttt|  tƒtt| ƒƒƒksýJ ‚t ttd | ƒggtddtttt| tƒtt|ƒƒttt|  ƒt| tƒƒƒƒks)J ‚t ttd | ƒggtddtttt| tƒtt|  ƒƒtt| tƒtt|ƒƒƒƒksUJ ‚t t	td | ƒggtddttt| tƒtt|  ƒƒtt|  tƒtt| ƒƒtt| tƒtt|ƒƒƒksŠJ ‚qŸd S )Nr9   r   Tr:   Fr;   )r$   r   r+   r   r   r	   r   r   r
   r   r   ÚOner   )Úoner=   r6   r6   r7   Ú0test_reduce_poly_inequalities_complex_relationalv   s„   ÿÿÿÿÿÿÿÿÿþÿþÿþÿþÿþÿ4
þÿ4
þÿþþïrC   c                   C   sV  t g tƒdks	J ‚t td dt  d td d  dkggtddtt t d¡tdd	ƒt d
t¡ƒks6J ‚t dt d dt  td d td d   dk ggtddtt dd¡t dd¡ƒksdJ ‚t td td  dkggtddt d	d¡ks}J ‚t td d
t  d td  dkggtddtt dd	¡t dt¡ƒks£J ‚t td d td d  dk ggtddtt dd¡t dd
¡ƒksÇJ ‚t dt d td
  dkggtddtt t d¡t tddƒt¡ƒksíJ ‚t td t dt kggtddtt t d¡t dd
¡ƒksJ ‚t ttk tdkt tk ggtddtdtƒks)J ‚d S )NFr9   é   é   r   r:   éüÿÿÿéþÿÿÿr2   é   é
   é   éûÿÿÿr0   éýÿÿÿé   )	r$   r+   r!   r    Úopenr   ÚRopenr   ÚLopenr6   r6   r6   r7   Ú1test_reduce_rational_inequalities_real_relationalž   sT   *ÿ"þ4þýÿ
þ&ÿþ"ÿþÿ þÿ
þÿÿrQ   c               	      s¤  t td ƒdk } ttdtƒttdƒƒ}t| ƒ|ksJ ‚t| tƒ|ks$J ‚tt td ƒƒttdƒks3J ‚tt dt d ƒdkƒttttddƒtƒttt	ƒƒttttddƒƒtt	 tƒƒƒks_J ‚tt td ƒt dt d ƒ dk ƒttt
jtƒttdƒƒksJ ‚tt td ƒt dt tƒ d ƒ dk ƒttt
dƒtk td	k ƒtt
jtk tdk ƒƒks«J ‚td
dd‰ tt‡ fdd„ƒ ttdk tˆ gdtt	 tk tdk ƒksÐJ ‚d S )NrJ   rD   r9   rM   iõÿÿÿrH   é   rG   r2   ÚnrF)Zextended_realc                      s   t tˆ d ƒdk ƒS )NrJ   rD   )r"   Úabsr6   ©rS   r6   r7   Ú<lambda>Ñ   ó    z.test_reduce_abs_inequalities.<locals>.<lambda>©Úsymbols)rT   r+   r   r   r"   r   r   r   r   r   r   ÚHalfr   r.   Ú	TypeError)ÚeÚansr6   rU   r7   Útest_reduce_abs_inequalitiesÂ   s2   ÿÿÿ
ÿÿÿ&*ÿ0r^   c                   C   s`   t ttdƒt dƒƒttdƒd tkttk ƒksJ ‚t td dkƒttjtk ttk ƒks.J ‚d S )Nr9   r0   r   )r"   r	   r   r+   r   r   r   ÚNegativeOner6   r6   r6   r7   Ú test_reduce_inequalities_generalÕ   s   4,r`   c                   C   s`   t ttd dƒdgƒttdƒksJ ‚t ttd dƒdgƒdks!J ‚t td dkƒtju s.J ‚d S )Nr9   r   TF)r"   r   r+   r   Útruer6   r6   r6   r7   Ú test_reduce_inequalities_booleanÚ   s   ÿÿrb   c                
   C   sŽ   t ttd dƒttd dƒgƒtttttjtƒt	tt
ƒƒtttdƒt	t
 tƒƒƒttttjtƒt	tt
ƒƒtttdƒt	t
 tƒƒƒƒksEJ ‚d S )Nr9   r0   r2   )r"   r	   r+   r,   r   r   r   r   rA   r   r   r6   r6   r6   r7   Ú%test_reduce_inequalities_multivariateá   s    00þrc   c                   C   s    t tdd„ ƒ t tdd„ ƒ d S )Nc                   S   s   t tttƒt dƒƒS )Nr0   )r"   r	   r   r+   r6   r6   r6   r7   rV   è   ó    z1test_reduce_inequalities_errors.<locals>.<lambda>c                   S   s   t ttd t t dƒƒS ©Nr9   r0   )r"   r	   r+   r,   r6   r6   r6   r7   rV   é   s    )r.   ÚNotImplementedErrorr6   r6   r6   r7   Útest_reduce_inequalities_errorsç   s   rg   c                   C   s¦   t tt dk tgdtdt k ksJ ‚t tt dktgdttk tt d k@ ks+J ‚t tdtt ƒtgdtttƒks>J ‚t tdtt ƒtgdtttƒksQJ ‚d S )Nr0   rX   r   )r"   r+   r,   r   r   r   r6   r6   r6   r7   Útest__solve_inequalitiesì   s   &0&*rh   c                  C   st   dt d  d t tddƒ  tddƒ dk} t| ƒtt tddƒtdƒd  k tdƒ d td	dƒ t k ƒks8J ‚d S )
NrL   r9   é-   rH   é!   r   iñÿÿÿi‘  é   )r+   r   r"   r   r   )Úeqr6   r6   r7   Útest_issue_6343ó   s   ,6ÿrm   c                  C   sn  t td d dk ƒttjtk tdk ƒksJ ‚t td d dkƒttjtktdkƒks,J ‚t td d dkƒttt tk tdk ƒtttk tjtk ƒƒksMJ ‚t td d dkƒttt tk tdkƒttjtkttk ƒƒksnJ ‚td t d } t| dkƒ}ttt	| dƒtkttk ƒtt tk tt	| dƒkƒƒ}||ksœJ ‚tt
t d d ƒdk ƒttjtk tdk ƒksµJ ‚d S )Nr9   r0   r   r2   rM   é	   )r"   r+   r   r   r_   r   r   rA   r)   r(   r   ÚZero)rl   ZsolZtrur6   r6   r7   Útest_issue_8235ù   s"   ÿÿ(ÿ(ÿ46rp   c                  C   s¬   t dtttd tddfƒ d ktgƒtttd tddfƒ d kks%J ‚tdƒ} t| tƒtddfƒ}t dt| td  ktgƒttd  t| tƒtddfƒ kksTJ ‚d S )Nr   r9   r0   rD   Úf)r"   r+   r   r,   r   r   )rq   r\   r6   r6   r7   Útest_issue_5526  s   ÿÿþ ÿrr   c                     sü  t td dktddttt dƒtdtƒƒksJ ‚t td dktƒtttdtƒtttƒƒtttdƒtt tƒƒƒks<J ‚t td td  td  dktddttddƒtdtƒƒks\J ‚t td td  td  dktƒtttdtƒttdƒƒttdtƒtttƒƒƒks†J ‚t td td  td  dk tt	ddƒd	tt
tdƒt
tdƒƒks©J ‚t td dt  d dktddttd
tdƒ d tj ddƒttjtdƒd  tddƒƒksÚJ ‚t td td  t d dktddtdtdƒksõJ ‚t tt tdt   dk tƒt
tdƒksJ ‚t td td  t td td  dt   dk tƒtt
tdƒt
tdƒƒks5J ‚t td td  t td td  dt   td  dktƒt
tdƒks\J ‚ttdd„ ƒ t td t d dktƒtttd t d dƒtk ttk ƒks…J ‚t dtd  dktƒttdƒtk ttk ƒksžJ ‚td td   ¡ } t td |  dktƒtt ktdk @ ttdƒ@ ksÄJ ‚tdƒ‰tt‡fdd„ƒ tddd‰ tt‡ ‡fdd„ƒ tddd‰t ˆˆ  dkˆ ƒˆ d ˆ k ksúJ ‚t ˆˆ  dk ˆ ƒdksJ ‚t ˆˆ  dkˆ ƒdksJ ‚tdƒd tdƒd  d ‰tt‡fdd„ƒ tt‡fdd„ƒ ttdd„ ƒ ttdd„ ƒ ttdd„ ƒ td t ttd   ‰t ˆdk tddtju sfJ ‚t ˆdktddtju suJ ‚ttdd„ ƒ d S )Nr9   rH   Fr:   rG   r0   rD   r   ©Údomainr2   rJ   Tc                   S   s&   t td dt t  d t dk tƒS )Nr9   rD   r   ©Úisolver+   r   r6   r6   r6   r7   rV   ,  s   & z2test_solve_univariate_inequality.<locals>.<lambda>rR   Únc                      s   t ttƒˆ ktddS )NFr:   )rv   r   r+   r6   ©rw   r6   r7   rV   ;  rd   Úc1©Zpositivec                      s   t ˆˆ  dk ˆ ƒS ©Nr   )rv   r6   )ry   rw   r6   r7   rV   =  ó    )Únegativec                      s   t td ˆ k tƒS ©Nr9   )rv   r+   r6   ©Úzeror6   r7   rV   D  r|   c                      s   t td ˆ t k tƒS r~   ru   r6   r   r6   r7   rV   E  s    ÿc                   S   ó   t dtt  dk tƒS )Nr0   r9   ©rv   r+   r,   r6   r6   r6   r7   rV   G  rd   c                   S   r   )Nr0   r   r‚   r6   r6   r6   r7   rV   H  rd   c                   S   s   t tt dk tƒS r{   ru   r6   r6   r6   r7   rV   I  r|   c                   S   s$   t tttƒd ttƒd  dƒtƒS re   )rv   r   r   r+   r   r6   r6   r6   r7   rV   P  s    ÿ)rv   r+   r!   r    r   r   r   r   r   r   r   r   r   rZ   r   r.   Ú
ValueErrorr(   Úexpandr   r   rf   r   r   r[   r5   r4   )Zdenr6   )ry   rw   r€   r7   Ú test_solve_univariate_inequality  sj    
ÿ0
ÿ$ÿ ,ÿ*ÿ ÿÿ$
ÿ.RN"
ÿ2
ÿ&r…   c                	   C   s  t ttƒtjk tddttdtd ddƒt tt	ddƒ dt ¡ƒks%J ‚t ttƒtjktddttd tt	ddƒ ddƒksAJ ‚t t
tƒtjk tddttd tt	ddƒ ddƒks]J ‚t t
tƒtjktddttdtd ƒt tt	ddƒ dt ¡ƒks€J ‚t ttƒtjk tddtt dtd	 ¡t td t¡ƒksŸJ ‚t ttƒtjktddtttjƒt tdt ¡ƒks»J ‚t ttƒtjktddtjksÌJ ‚t t
tƒtd
ƒk tddtjksÞJ ‚t ttƒtjktddtjksïJ ‚t t
tƒtjktddtjksJ ‚d S )NFr:   r   é   TrJ   r9   rD   rH   rG   )rv   r   r+   r   rZ   r!   r    r   rN   r   r   ro   rO   r   rA   r   r4   r5   r_   r6   r6   r6   r7   Útest_trig_inequalitiesT  s,   ,ÿÿÿ(ÿ ÿÿ"$"(r‡   c                   C   s   t td dktddtjksJ ‚t td dktddtj t¡ks#J ‚t td dk tddtjks3J ‚t td dk tddtj t¡ksFJ ‚d S )Nr9   r   Fr:   T)rv   r+   r   r4   Zas_relationalr5   r6   r6   r6   r7   Útest_issue_9954k  s    & *rˆ   c                  C   sn   t td td  d dƒ} tttƒdttdƒ  dkƒttdtk t| d k ƒt| d tk ttk ƒƒks5J ‚d S )NrJ   r9   r0   r   rD   r†   )r(   r+   r)   r   r   r   r   r   )Úrr6   r6   r7   Útest_slow_general_univariater  s   ,ÿrŠ   c                  C   sn   dt  tdt  ƒ } ttdt ƒtt tƒƒ}t| dt ƒ|ksJ ‚dt  tdt  d ƒ } t| dk ƒ|ks5J ‚d S )Nr0   ú<r9   r   )r+   rT   r   r   r   r&   r   r"   )rl   r]   r6   r6   r7   Útest_issue_8545y  s
   rŒ   c                   C   sR   t t tk tƒtt tk ttk ƒksJ ‚t ttktƒtt tk ttk ƒks'J ‚d S )N)rv   r   r+   r   r6   r6   r6   r7   Útest_issue_8974  s   (*r   c                	   C   sì   t ddtdt d ƒ  dk ƒtt kttdƒd k @ ttdƒ@ ks$J ‚t tdttƒ ƒd tƒttdƒks8J ‚tddtddt  ƒ  dtƒt	t
t tk tdk ƒt
tjtk ttddƒk ƒt
tddƒtk ttk ƒƒksmJ ‚ttd	d
„ ƒ d S )Nr2   r0   r   r9   rL   r‹   rD   rH   c                   S   s$   t ddtddttƒ  ƒ  dtƒS )NrL   r0   r‹   )r&   rT   r   r+   r6   r6   r6   r7   rV   Ž  s
    ÿÿz"test_issue_10198.<locals>.<lambda>)r"   rT   r+   r   r   r   r   r   r&   r   r   ro   r   r.   rƒ   r6   r6   r6   r7   Útest_issue_10198†  s   ÿ"ÿ(.ÿÿrŽ   c                   C   s<   t ttƒdk ƒdksJ ‚tttƒdk tjdtjksJ ‚d S )Nr9   Trs   )r)   r   r+   r*   r   r4   r6   r6   r6   r7   Útest_issue_10047’  s   $r   c                   C   s0   t ttƒdk ƒttjtk ttdƒk ƒksJ ‚d S )Niè  )r)   r   r+   r   r   ro   r   r6   r6   r6   r7   Útest_issue_10268  s   0r   c                  C   sF   t dƒ} tttƒ| ktddttj| dk ft|  | ƒdfƒks!J ‚d S )Nrw   Fr:   r   T)r   rv   r   r+   r   r   r5   r    rx   r6   r6   r7   Útest_isolve_Sets¡  s   ÿr‘   c                  C   s†  t ddƒ} tddd}t|d |d  |d  dk || d	t|dƒks%J ‚tdƒ}t|d dk |tjd	|d
k|t k@ tt|dƒdƒ@ ksHJ ‚td| d dk|tjd	|dk|tk @ tt|dƒdƒ@ kshJ ‚t|d d|  d dk |tjd	|d
k|dk@ tt|dƒdƒ@ ksŒJ ‚t|d d|  d dk|tjd	|dk|tk @ tt|dƒdƒ@ |dk|t k@ tt|dƒdƒ@ B ksÁJ ‚d S )Nr   rD   r+   Fr   r0   r9   rH   rs   rL   r2   rF   )r   r   rv   r   r   ZIntegersr   r-   )Údomr+   r6   r6   r7   Ú%test_integer_domain_relational_isolve¨  s$   
4 ÿÿ"ÿ" ÿÿr“   c                  C   s‚   t ttƒttdtƒƒtdtƒksJ ‚tddƒ} t dt  t¡dk t| ƒ| ks(J ‚t ttd ƒt dktt	j
ƒt dd¡ks?J ‚d S )Nr   r0   rI   r†   rR   )r*   r   r,   r    r   r   r+   Údiffr   r   r4   rP   )Úir6   r6   r7   Útest_issue_10671_12466º  s   $
"
ÿr–   c                  C   s|  t tttttfD ]} t| tdƒtƒjtksJ ‚t| t	j
tƒtƒjtks%J ‚qttdt d tƒtƒttdƒks9J ‚tt	j
tƒ}t|tƒ|ksHJ ‚td ttƒttƒttƒ tdt  fD ] }dD ]}d| | dk}t|tdd||t	dƒ kks{J ‚q`q\tdtd  dt  d dk tddttd  t	jk ks›J ‚tttt dƒtƒttt dƒks®J ‚tddd}ttt| dƒtƒttd| ƒksÇJ ‚tt| dk tƒt| dk ksØJ ‚td	dd
}t|t dktƒt	jtk t|k @ ksòJ ‚t|t dktdddt d| kksJ ‚tdt tdt d  ƒ}t|tƒttdƒks"J ‚tttdt d  k tƒtt	jk ttdƒ@ ks<J ‚d S )Nr0   r9   )r   r0   r   T)ZlinearÚnz)ZnonzeroÚarz   )r
   r   r   r	   r   r   r'   r+   Úlhsr   rA   r,   r   r   r   rZ   r   ro   )ÚopÚieZfxÚcr\   r—   r˜   r6   r6   r7   Útest__solve_inequalityÂ  s4   &,
ÿþ$ÿ&&"(,8r   c                      sj  ddl m‰  ˆ t tƒdksJ ‚ˆ tjtdƒƒdksJ ‚ˆ tjtƒˆ ttjƒ  kr/dks2J ‚ J ‚ˆ tjt ƒˆ t tjƒ  krHtjksKJ ‚ J ‚ˆ tjtƒˆ ttjƒ  kratddƒksdJ ‚ J ‚ˆ tjt ƒˆ t tjƒ  krydks|J ‚ J ‚ˆ ttƒˆ ttƒ  krtd ks’J ‚ J ‚ˆ tt ƒˆ t tƒ  kr§td ksªJ ‚ J ‚t	t
‡ fdd	„ƒ d S )
Nr   ©Ú_ptrD   r9   r2   rG   r0   c                      s   ˆ t dddtjƒS )Nr•   T)Zinfinite)r   r   rA   r6   rž   r6   r7   rV   è  rW   ztest__pt.<locals>.<lambda>)Úsympy.solvers.inequalitiesrŸ   r   r   rA   rZ   r_   r   r+   r.   rƒ   r6   r6   rž   r7   Útest__ptÞ  s   ,220,0r¡   N)dÚ__doc__Zsympy.concrete.summationsr   Zsympy.core.functionr   Zsympy.core.numbersr   r   r   r   Zsympy.core.relationalr   r	   r
   r   r   r   Zsympy.core.singletonr   Zsympy.core.symbolr   r   Z$sympy.functions.elementary.complexesr   Z&sympy.functions.elementary.exponentialr   r   Z(sympy.functions.elementary.miscellaneousr   r   Z$sympy.functions.elementary.piecewiser   Z(sympy.functions.elementary.trigonometricr   r   r   Zsympy.integrals.integralsr   Zsympy.logic.boolalgr   r   Zsympy.polys.polytoolsr   r   Zsympy.sets.setsr   r    r!   r    r"   r#   r3   r$   r%   rv   r&   r'   Zsympy.polys.rootoftoolsr(   Zsympy.solvers.solversr)   Zsympy.solvers.solvesetr*   Z	sympy.abcr+   r,   Zsympy.core.modr-   Zsympy.testing.pytestr.   r/   r<   r=   r8   r@   rC   rQ   r^   r`   rb   rc   rg   rh   rm   rp   rr   r…   r‡   rˆ   rŠ   rŒ   r   rŽ   r   r   r‘   r“   r–   r   r¡   r6   r6   r6   r7   Ú<module>   sj      K($
>

