§
    ñyIfË{  ã                  ól  — U d Z ddlmZ ddlZddlZddlZddlmZm	Z	m
Z
mZ ddlmZmZmZ ddl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mZmZmZmZ dd
l m!Z! ddl"m#Z#m$Z$m%Z% er edej&        ej'        ¦  «        Z(dZ)ej*        ej+        ej,        ej-        dœZ.de/d<   dod„Z0d„ Z1d„ Z2d„ Z3d„ Z4d„ Z5d„ d„ d„ d „ d!„ d"„ d#„ d$„ d%„ d&„ d'„ d(„ ej6        d)œZ7 e8e7 9                    ¦   «         ¦  «        D ]\  Z:Z;e;e7e:d*z   <   Œej<        dpd7„¦   «         Z=dqd:„Z>drd>„Z?ej<        dsdA„¦   «         Z@ej<        dtdD„¦   «         ZA	 dE„ ZBejC        	 	 	 dudvdL„¦   «         ZD	 	 	 dudwdN„ZE	 	 	 dudxdP„ZFdydS„ZG	 	 	 dudzdU„ZHejC        	 	 	 dud{dW„¦   «         ZI	 	 	 dud|dY„ZJdZ„ ZKejC        	 	 	 dud}d\„¦   «         ZLd]„ ZMejC        	 	 	 dud~d_„¦   «         ZNejC        	 	 dd€da„¦   «         ZOej<        	 	 	 dud�dc„¦   «         ZPej<        	 	 dd‚dh„¦   «         ZQej<        	 	 ddƒdj„¦   «         ZRej<        	 	 dd„dl„¦   «         ZSej<        	 	 dd…dn„¦   «         ZTdS )†zcThis module contains a set of functions to handle python protocols for nodes
where it makes sense.
é    )ÚannotationsN)ÚCallableÚ	GeneratorÚIteratorÚSequence)ÚTYPE_CHECKINGÚAnyÚTypeVar)ÚbasesÚ
decoratorsÚnodesÚutil)ÚContext)ÚInferenceContextÚcopy_context)ÚAstroidIndexErrorÚAstroidTypeErrorÚAttributeInferenceErrorÚInferenceErrorÚ	NoDefault)Únode_classes)ÚConstFactoryResultÚInferenceResultÚSuccessfulInferenceResultÚ_TupleListNodeTzcontextlib.contextmanager)ú+ú-ú~Únotzdict[str, Callable[[Any], Any]]Ú_UNARY_OPERATORSÚobjr	   ÚopÚstrÚreturnr   c                ór   — | t           u r| }nt          |         } || ¦  «        }t          j        |¦  «        S )z{Perform unary operation on `obj`, unless it is `NotImplemented`.

    Can raise TypeError if operation is unsupported.
    )ÚNotImplementedr    r   Úconst_factory)r!   r"   ÚvalueÚfuncs       úE/var/www/piapp/venv/lib/python3.11/site-packages/astroid/protocols.pyÚ_infer_unary_opr+   /   s>   € ð
 �nÐÐØˆˆå Ô#ˆØ��S‘	”	ˆÝÔ˜uÑ%Ô%Ð%ó    c                óF   — t          t          | j        ¦  «        |¦  «        S ©N)r+   ÚtupleÚelts©Úselfr"   s     r*   Útuple_infer_unary_opr3   <   s   € Ý�5 ¤Ñ+Ô+¨RÑ0Ô0Ð0r,   c                ó,   — t          | j        |¦  «        S r.   )r+   r0   r1   s     r*   Úlist_infer_unary_opr5   @   s   € Ý˜4œ9 bÑ)Ô)Ð)r,   c                óF   — t          t          | j        ¦  «        |¦  «        S r.   )r+   Úsetr0   r1   s     r*   Úset_infer_unary_opr8   D   s   € Ý�3˜tœy™>œ>¨2Ñ.Ô.Ð.r,   c                ó,   — t          | j        |¦  «        S r.   )r+   r(   r1   s     r*   Úconst_infer_unary_opr:   H   s   € Ý˜4œ: rÑ*Ô*Ð*r,   c                óF   — t          t          | j        ¦  «        |¦  «        S r.   )r+   ÚdictÚitemsr1   s     r*   Údict_infer_unary_opr>   L   s   € Ý�4 ¤
Ñ+Ô+¨RÑ0Ô0Ð0r,   c                ó   — | |z   S r.   © ©ÚaÚbs     r*   ú<lambda>rD   S   ó
   € �a˜!‘e€ r,   c                ó   — | |z
  S r.   r@   rA   s     r*   rD   rD   T   rE   r,   c                ó   — | |z  S r.   r@   rA   s     r*   rD   rD   U   rE   r,   c                ó   — | |z  S r.   r@   rA   s     r*   rD   rD   V   ó
   € �q˜A‘v€ r,   c                ó   — | |z  S r.   r@   rA   s     r*   rD   rD   W   rE   r,   c                ó   — | |z  S r.   r@   rA   s     r*   rD   rD   X   s
   € �q˜!‘t€ r,   c                ó   — | |z  S r.   r@   rA   s     r*   rD   rD   Y   rE   r,   c                ó   — | |z  S r.   r@   rA   s     r*   rD   rD   Z   rE   r,   c                ó   — | |z  S r.   r@   rA   s     r*   rD   rD   [   rE   r,   c                ó   — | |z  S r.   r@   rA   s     r*   rD   rD   \   rE   r,   c                ó   — | |z  S r.   r@   rA   s     r*   rD   rD   ]   rI   r,   c                ó   — | |z	  S r.   r@   rA   s     r*   rD   rD   ^   rI   r,   )r   r   ú/z//Ú*ú**ú%ú&ú|ú^z<<z>>ú@ú=r2   únodes.ConstÚopnodeúnodes.AugAssign | nodes.BinOpÚoperatorÚotherr   Úcontextr   Ú_r   ú@Generator[ConstFactoryResult | util.UninferableBase, None, None]c              #  ó¢  K  — t          j        t          ¦  «        }t          |t           j        ¦  «        rå|dk    r^t          | j        t
          t          f¦  «        r=t          |j        t
          t          f¦  «        r| j        dk    s|j        dk    r|V — d S 	 t          |         }	 t          j         || j        |j        ¦  «        ¦  «        V — d S # t          $ r |V — Y nt          $ r t          j        V — Y nw xY wd S d S # t          $ r |V — Y d S w xY wt          | j        t          ¦  «        r|dk    rt          j        V — d S |V — d S )NrT   g     jø@rU   )r   ÚConstr&   Ú
isinstancer(   ÚintÚfloatÚBIN_OP_IMPLr'   Ú	TypeErrorÚ	Exceptionr   ÚUninferabler#   )r2   r\   r^   r_   r`   ra   Únot_implementedÚimpls           r*   Úconst_infer_binary_oprn   e   s¨  è è € õ ”k¥.Ñ1Ô1€OÝ�%�œÑ%Ô%ð à˜ÒÐÝ˜4œ:­­U |Ñ4Ô4ð å˜5œ;­­e¨Ñ5Ô5ð ð ”˜cÒ!Ð! U¤[°3Ò%6Ð%6à!Ð!Ð!Ð!ØˆFð
	"Ý˜xÔ(ˆDð'ÝÔ)¨$¨$¨t¬z¸5¼;Ñ*GÔ*GÑHÔHÐHÐHÐHÐHÐHøÝð &ð &ð &à%Ð%Ð%Ð%Ð%Ð%Ýð 'ð 'ð 'ÝÔ&Ð&Ð&Ð&Ð&Ð&ð'øøøð &Ð%à&Ð&øÝð 	"ð 	"ð 	"Ø!Ð!Ð!Ð!Ð!Ð!Ð!ð	"øøøå	�D”J¥Ñ	$Ô	$ð ¨°Sª¨åÔÐÐÐÐÐàÐÐÐÐÐs<   ÂD Â)*C ÃC?Ã#D Ã%C?Ã<D Ã>C?Ã?D ÄDÄDr(   rf   c                ó¼   ‡— |                       |¬¦  «        }|dk    rt          j        g|_        |S ˆfd„| j        D ¦   «         }t	          |¦  «        |z  |_        |S )N©Úparentg    „×—Ac              3  óŽ   •K  — | ]?}t          |t          j        ¦  «        °t          j        |‰¦  «        pt          j        V — Œ@d S r.   )re   r   ÚUninferableBaseÚ
safe_inferrk   )Ú.0Úeltr`   s     €r*   ú	<genexpr>z'_multiply_seq_by_int.<locals>.<genexpr>”   s^   øè è € ð ð àÝ˜#�tÔ3Ñ4Ô4ðÝŒ˜˜WÑ%Ô%Ð9­Ô)9ðð ð ð ð ð r,   )Ú	__class__r   rk   r0   Úlist)r2   r\   r(   r`   ÚnodeÚfiltered_eltss      `  r*   Ú_multiply_seq_by_intr|   Š   sx   ø€ ð �>Š> ˆ>Ñ(Ô(€DØˆs‚{€{ÝÔ%Ð&ˆŒ	Øˆðð ð ð à”9ðñ ô €Mõ
 �]Ñ#Ô# eÑ+€D„IØ€Kr,   r0   úSequence[InferenceResult]ú#Iterator[SuccessfulInferenceResult]c              #  ó  K  — | D ]~}t          |t          j        ¦  «        rt          j        ¦   «         V — Œ2|                     |¦  «        D ]6}t          |t          j        ¦  «        s|V — Œ!t          j        ¦   «         V — Œ7Œd S r.   )re   r   rs   r   ÚUnknownÚinfer)r0   r`   rv   Úinferreds       r*   Ú_filter_uninferable_nodesrƒ   �   s    è è € ð ð *ð *ˆÝ�c�4Ô/Ñ0Ô0ð 	*Ý”-‘/”/Ð!Ð!Ð!Ð!àŸIšI gÑ.Ô.ð *ð *�Ý! (­DÔ,@ÑAÔAð *Ø"�N�N�N�Nåœ-™/œ/Ð)Ð)Ð)Ð)ð	*ð	*ð *r,   ÚmethodúKGenerator[_TupleListNodeT | nodes.Const | util.UninferableBase, None, None]c           	   #  ó2  K  — ddl m} d|_        t          j        t
          ¦  «        }t          || j        ¦  «        ro|dk    ri|                      |¬¦  «        }t          t          j
        t          | j        |¦  «        t          |j        |¦  «        ¦  «        ¦  «        |_        |V — dS t          |t          j        ¦  «        rA|dk    r;t          |j        t          ¦  «        s|V — dS t          | ||j        |¦  «        V — dS t          |t           j        ¦  «        rq|dk    rk|                     |¦  «        }	|	st&          j        V — dS t          |	j        t          ¦  «        st+          d¦  «        ‚t          | ||	j        |¦  «        V — dS |V — dS )zÞInfer a binary operation on a tuple or list.

    The instance on which the binary operation is performed is a tuple
    or list. This refers to the left-hand side of the operation, so:
    'tuple() + 1' or '[] + A()'
    r   )ÚhelpersNr   rp   rS   zPlease open a bug report.)Úastroidr‡   Ú	boundnoder   rd   r&   re   rx   ry   Ú	itertoolsÚchainrƒ   r0   r(   rf   r|   r   ÚInstanceÚclass_instance_as_indexr   rk   ÚAssertionError)
r2   r\   r^   r_   r`   r„   r‡   rl   rz   Úas_indexs
             r*   Útl_infer_binary_opr�   «   s·  è è € ð  ÐÐÐÐÐð €GÔÝ”k¥.Ñ1Ô1€OÝ�%˜œÑ(Ô(ð ¨X¸ª_¨_Ø�~Š~ Vˆ~Ñ,Ô,ˆÝÝŒOÝ)¨$¬)°WÑ=Ô=Ý)¨%¬*°gÑ>Ô>ñô ñ
ô 
ˆŒ	ð ˆ
ˆ
ˆ
ˆ
ˆ
Ý	�E�5œ;Ñ	'Ô	'ð ¨H¸ªO¨OÝ˜%œ+¥sÑ+Ô+ð 	Ø!Ð!Ð!Ð!ØˆFÝ" 4¨°´¸gÑFÔFÐFÐFÐFÐFÐFÝ	�E�5œ>Ñ	*Ô	*ð ¨x¸3ª¨à×2Ò2°5Ñ9Ô9ˆØð 	NÝÔ"Ð"Ð"Ð"Ð"Ð"Ý˜HœN­CÑ0Ô0ð 	Nå Ð!<Ñ=Ô=Ð=å& t¨V°X´^ÀWÑMÔMÐMÐMÐMÐMÐMàÐÐÐÐÐr,   únodes.ClassDefú&Generator[InferenceResult, None, None]c                ó.   — |                      | |¦  «        S r.   )Úinfer_call_result)r2   r\   r^   r_   r`   r„   s         r*   Úinstance_class_infer_binary_opr•   Û   s   € ð ×#Ò# D¨'Ñ2Ô2Ð2r,   c              #  óÖ  K  — |dd…         }|                      d¦  «        }| D �]C}t          |t          j        ¦  «        rŒt	          |d¦  «        sŒ/	 |                     ¦   «         }n# t          $ r Y ŒQw xY w	 t          ||         t          j        t          j	        f¦  «        r|g}n# t          $ r Y nw xY w|D ]ª}t          j        |¦  «        }	 |                     ||¦  «        }n# t          t          t          f$ r Y ŒGw xY w|s|V — ŒRt          |t          j        ¦  «        r n=	 t          |                     |¦  «        ||¦  «        E d{V —† Œš# t"          $ r Y  nw xY w�ŒEdS )z<Recursive function to resolve multiple assignments on loops.Nr   Úitered)Úpopre   r   rs   Úhasattrr—   ri   r   rd   ÚNameÚ
IndexErrorÚgetitemÚAttributeErrorr   r   Ú_resolve_looppartr�   r   )	ÚpartsÚassign_pathr`   ÚindexÚpartr—   ÚstmtÚ
index_nodeÚassigneds	            r*   rž   rž   õ   sí  è è € à˜a˜a˜a”.€KØ�OŠO˜AÑÔ€EØð "ñ "ˆÝ�d�DÔ0Ñ1Ô1ð 	ØÝ�t˜XÑ&Ô&ð 	Øð	Ø—[’[‘]”]ˆFˆFøÝð 	ð 	ð 	ØˆHð	øøøð	Ý˜& œ-­%¬+µu´zÐ)BÑCÔCð  Ø˜�øøÝð 	ð 	ð 	ØˆDð	øøøàð 	ð 	ˆDÝœ UÑ+Ô+ˆJðØŸ<š<¨
°GÑ<Ô<��øÝ"Õ$4Õ6GÐHð ð ð Ø�ðøøøàð ð ����Ý˜H¥dÔ&:Ñ;Ô;ð 
Ø�ðÝ0Ø Ÿš wÑ/Ô/°¸gñ ô  ð ð ð ð ð ð ð ð øõ &ð ð ð Ø�E�EðøøøùðC"ð "sH   ÁA)Á)
A6Á5A6Á:/B*Â*
B7Â6B7ÃC*Ã*DÄDÄ+*EÅ
E$Å#E$únodes.For | nodes.Comprehensionrz   ú&node_classes.AssignedStmtsPossibleNodeúInferenceContext | Noner    úlist[int] | Nonec              #  ó|  K  — t          | t          j        ¦  «        st          | dd¦  «        r| |||dœS |€Q| j                             |¦  «        D ]5}t          |t          j        t          j        f¦  «        r|j        E d {V —† Œ6n/t          | j                             |¦  «        ||¦  «        E d {V —† | |||dœS )NÚis_asyncF©rz   Úunknownr    r`   )
re   r   ÚAsyncForÚgetattrÚiterr�   ÚTupleÚListr0   rž   )r2   rz   r`   r    Úlsts        r*   Úfor_assigned_stmtsr´     sû   è è € õ �$�œÑ'Ô'ð 
­7°4¸ÀUÑ+KÔ+Kð 
ð ØØ&Øð	
ð 
ð 	
ð ÐØ”9—?’? 7Ñ+Ô+ð 	$ð 	$ˆCÝ˜#¥¤­U¬ZÐ8Ñ9Ô9ð $Øœ8Ð#Ð#Ð#Ð#Ð#Ð#Ð#øð	$õ % T¤Y§_¢_°WÑ%=Ô%=¸{ÈGÑTÔTÐTÐTÐTÐTÐTÐTÐTàØØ"Øð	ð ð r,   únodes.Tuple | nodes.Listc                óô   — |€g }	 | j                              |¦  «        }n&# t          $ r}t          d| ||¬¦  «        |‚d }~ww xY w|                     d|¦  «         | j                             | ||¬¦  «        S )Nz6Tried to retrieve a node {node!r} which does not exist©rz   r    r`   r   )rz   r`   r    )r0   r¡   Ú
ValueErrorr   Úinsertrq   Úassigned_stmts)r2   rz   r`   r    r¡   Úexcs         r*   Úsequence_assigned_stmtsr¼   ;  s®   € ð ÐØˆðØ”	—’ Ñ%Ô%ˆˆøÝð ð ð ÝØDØØ#Øð	
ñ 
ô 
ð
 ð	øøøøðøøøð ×Ò�q˜%Ñ Ô Ð ØŒ;×%Ò%Ø˜7°ð &ñ ô ð s   †! ¡
A«?¿Aú#nodes.AssignName | nodes.AssignAttrc                ó:   — | j                              | |¬¦  «        S )N)rz   r`   )rq   rº   ©r2   rz   r`   r    s       r*   Úassend_assigned_stmtsrÀ   S  s   € ð Œ;×%Ò%¨4¸Ð%ÑAÔAÐAr,   Únameú
str | Nonec              #  ón  ‡ K  — ddl m} ‰ j        st          j        V — d S ˆ fd„‰ j        D ¦   «         }‰ j        j        }|rÇt          ‰ j        d         dd ¦  «        |k    r§|dk    r¡‰ j        j                             ¦   «         }t          |t          j
        ¦  «        o
|j        dk    }|j        r+t          |j        t          j        ¦  «        r|j        j        }|s|dk    r|V — d S |dk    r|                     ¦   «         V — d S |r�|j        r–|j        j        }t%          |d	¦  «        r|j        }t%          |d	¦  «        °t          |dd ¦  «        ‰ j        j        k    rD|                     |j        |j        ¦  «        }	|	                     ‰ j        ||¦  «        E d {V —† d S |‰ j        k    rkt          j        d
¦  «        }
‰ |
_        |sH‰ j        j        dk    r8‰ j        j                             ¦   «         }|                     ¦   «         g|
_        |
V — d S |‰ j        k    r!t          j        i ¦  «        }‰ |_        |V — d S 	 t7          |¦  «        }‰                      |¦  «                             |¦  «        E d {V —† t          j        V — d S # t<          $ r t          j        V — Y d S w xY w)Nr   ©Ú	argumentsc                ó>   •— g | ]}|j         ‰j        ‰j        fv¯|‘ŒS r@   )rÁ   ÚvarargÚkwarg)ru   Úargr2   s     €r*   ú
<listcomp>z,_arguments_infer_argname.<locals>.<listcomp>g  s.   ø€ ÐWÐWÐW�C¨S¬X¸d¼kÈ4Ì:Ð=VÐ-VÐ-VˆCÐ-VÐ-VÐ-Vr,   rÁ   ÚstaticmethodÚ	metaclassÚclassmethodr„   Ú_proxiedr@   Ú__init__)rˆ   rÅ   r   rk   rq   Útyper¯   Úscopere   r   ÚClassDefr‰   r   rŒ   rÎ   Úinstantiate_classÚcallcontextÚcalleer™   rÁ   ÚCallSiteÚextra_contextÚinfer_argumentrÇ   r'   r0   rÈ   r   Údefault_valuer�   r   )r2   rÁ   r`   rÅ   ÚargsÚfunctypeÚclsÚis_metaclassrÕ   Ú	call_siterÇ   rÈ   s   `           r*   Ú_arguments_infer_argnamerß   \  s!  øè è € ð
 "Ð!Ð!Ð!Ð!Ð!àŒ>ð ÝÔÐÐÐØˆàWÐWÐWÐW˜4œ>ÐWÑWÔW€DØŒ{Ô€Hð 	ðå�D”N 1Ô% v¨tÑ4Ô4¸Ò<Ð<Ø˜Ò&Ð&àŒkÔ ×&Ò&Ñ(Ô(ˆÝ! #¥u¤~Ñ6Ô6ÐR¸3¼8À{Ò;Rˆð Ôð 	-¥¨GÔ,=½u¼~Ñ!NÔ!Nð 	-ØÔ#Ô,ˆCØð 	˜8 }Ò4Ð4ØˆIˆIˆIØˆFØ�xÒÐØ×'Ò'Ñ)Ô)Ð)Ð)Ð)ØˆFàð �7Ô&ð ØÔ$Ô+ˆÝ�f˜jÑ)Ô)ð 	%Ø”_ˆFõ �f˜jÑ)Ô)ð 	%å�6˜6 4Ñ(Ô(¨D¬KÔ,<Ò<Ð<Ø!×*Ò*¨7Ô+>ÀÔ@UÑVÔVˆIØ ×/Ò/°´¸TÀ7ÑKÔKÐKÐKÐKÐKÐKÐKÐKØˆFàˆtŒ{ÒÐÝÔ$ RÑ(Ô(ˆØˆŒØð 	4˜œÔ(¨JÒ6Ð6Ø”+Ô$×*Ò*Ñ,Ô,ˆCØ×0Ò0Ñ2Ô2Ð3ˆFŒKØˆˆˆØˆØˆtŒzÒÐÝÔ# BÑ'Ô'ˆØˆŒØˆˆˆØˆðÝ˜wÑ'Ô'ˆØ×%Ò% dÑ+Ô+×1Ò1°'Ñ:Ô:Ð:Ð:Ð:Ð:Ð:Ð:Ð:ÝÔÐÐÐÐÐøÝð ð ð ÝÔÐÐÐÐÐÐðøøøs   ÉAJ ÊJ4Ê3J4únodes.Argumentsc                óþ  — ddl m} 	 |j        }n# t          $ r d }Y nw xY w|r;|j        r4|j        j        }t          |d¦  «        r|j        }t          |d¦  «        °nt          | ||¦  «        S |r|t          |dd ¦  «        | 
                    ¦   «         j        k    rP|j        }t          |¦  «        }d |_        |                     ||¬¦  «        }|                     | j        ||¦  «        S t          | ||¦  «        S )Nr   rÄ   rÎ   rÁ   ©r`   )rˆ   rÅ   rÁ   r�   rÔ   rÕ   r™   rÎ   rß   r¯   Úframer   rÖ   rØ   rq   )	r2   rz   r`   r    rÅ   Ú	node_namerÕ   rÔ   rÚ   s	            r*   Úarguments_assigned_stmtsrå   œ  s8  € ð "Ð!Ð!Ð!Ð!Ð!ðØ”Iˆ	ˆ	øÝð ð ð ð ˆ	ˆ	ˆ	ðøøøð
 ð B�7Ô&ð BØÔ$Ô+ˆÝ�f˜jÑ)Ô)ð 	%Ø”_ˆFõ �f˜jÑ)Ô)ð 	%øõ (¨¨i¸ÑAÔAÐAØð D•˜ ¨Ñ-Ô-°·²±´Ô1BÒBÐBàÔ)ˆÝ˜wÑ'Ô'ˆØ"ˆÔØ×!Ò! +°wÐ!Ñ?Ô?ˆØ×"Ò" 4¤;°	¸7ÑCÔCÐCÝ# D¨)°WÑ=Ô=Ð=s   ˆ �žúBnodes.AugAssign | nodes.Assign | nodes.AnnAssign | nodes.TypeAliasc              #  óŒ   K  — |s| j         V — d S t          | j                              |¦  «        ||¦  «        E d {V —† | |||dœS )Nr¬   )r(   Ú_resolve_assignment_partsr�   r¿   s       r*   Úassign_assigned_stmtsré   »  s‡   è è € ð ð ØŒjÐÐÐØˆtÝ(ØŒ
×Ò˜Ñ!Ô! ;°ñô ð ð ð ð ð ð ð ð
 ØØ"Øð	ð ð r,   únodes.AnnAssignc              #  ó^   K  — t          | |||¦  «        D ]}|€t          j        V — Œ|V — Œd S r.   )ré   r   rk   )r2   rz   r`   r    r‚   s        r*   Úassign_annassigned_stmtsrì   Ñ  sR   è è € õ *¨$°°g¸{ÑKÔKð ð ˆØÐÝÔ"Ð"Ð"Ð"Ð"àˆNˆNˆNˆNð	ð r,   c              #  óH  K  — |dd…         }|                      d¦  «        }| D ]ý}d}t          |t          j        ¦  «        r$	 |j        |         \  }}ng# t
          $ r Y  dS w xY wt          |d¦  «        rEt          j        |¦  «        }	 |                     ||¦  «        }n# t          t          f$ r Y  dS w xY w|s dS |s|V — Œ£t          |t          j        ¦  «        r dS 	 t          |                     |¦  «        ||¦  «        E d{V —† Œì# t          $ r Y  dS w xY wdS )z3Recursive function to resolve multiple assignments.Nr   rœ   )r˜   re   r   ÚDictr=   r›   r™   rd   rœ   r   r   r   rs   rè   r�   r   )rŸ   r    r`   r¡   r¢   r¥   ra   r¤   s           r*   rè   rè   Þ  s®  è è € à˜a˜a˜a”.€KØ�OŠO˜AÑÔ€EØð !ð !ˆØˆÝ�d�EœJÑ'Ô'ð 	ðØ"œj¨Ô/‘�˜!˜!øÝð ð ð Ø���ðøøøõ �T˜9Ñ%Ô%ð 	Ýœ UÑ+Ô+ˆJðØŸ<š<¨
°GÑ<Ô<��øÝ$Õ&7Ð8ð ð ð Ø���ðøøøð ð 	ØˆFˆFàð 	ð ˆNˆNˆNˆNÝ˜¥$Ô"6Ñ7Ô7ð 
	ØˆFˆFðÝ4Ø—N’N 7Ñ+Ô+¨[¸'ñô ð ð ð ð ð ð ð ð øõ "ð ð ð Ø���ðøøøðA!ð !s6   ÁAÁ
A#Á"A#ÂB"Â"B8Â7B8Ã%*DÄ
DÄDúnodes.ExceptHandlerc              #  ó¾   K  — ddl m} t          j        | j        ¦  «        D ]5}t          |t          j        ¦  «        r|                     |¦  «        }|V — Œ6| |||dœS )Nr   )Úobjectsr¬   )	rˆ   rñ   r   Úunpack_inferrÐ   re   r   rÒ   ÚExceptionInstance)r2   rz   r`   r    rñ   r¥   s         r*   Úexcepthandler_assigned_stmtsrô     sƒ   è è € ð  ÐÐÐÐÐå Ô-¨d¬iÑ8Ô8ð ð ˆÝ�h¥¤Ñ/Ô/ð 	;Ø×0Ò0°Ñ:Ô:ˆHàˆˆˆˆàØØ"Øð	ð ð r,   c              #  ó"  K  — 	 t          |                     |¬¦  «        ¦  «        }n## t          $ r}t          |¬¦  «        |‚d }~ww xY wt	          |t
          j        ¦  «        rä|j        }|j        st          d|¬¦  «        ‚|j        j	        D ]_}t          |                     |¬¦  «        d ¦  «        }t	          |t          j
        ¦  «        r|                     ¦   «         t          k    r nŒ`t          |¬¦  «        ‚	 t          |                     ¦   «         ¦  «        V — d S # t          $ r}t          |¬¦  «        |‚d }~ww xY wt	          |t
          j        ¦  «        rž	 t          |                     d|¬¦  «        ¦  «        }n0# t          t           t          f$ r}	t          |¬¦  «        |	‚d }	~	ww xY wt	          |t
          j        ¦  «        st          |¬¦  «        ‚|                     | |¦  «        E d {V —† d S t          |¬¦  «        ‚)Nrâ   )rz   z,No decorators found on inferred generator %sÚ	__enter__)Únextr�   ÚStopIterationr   re   r   r   rq   r   r   ÚFunctionDefÚqnameÚ_CONTEXTLIB_MGRÚinfer_yield_typesrŒ   Úigetattrr   ÚBoundMethodr”   )
r2   Úmgrr`   r‚   Úer)   Údecorator_nodeÚ	decoratorÚenterr»   s
             r*   Ú_infer_context_managerr    sM  è è € ð.Ý˜Ÿ	š	¨'˜	Ñ2Ô2Ñ3Ô3ˆˆøÝð .ð .ð .Ý #Ð&Ñ&Ô&¨AÐ-øøøøð.øøøå�(�EœOÑ,Ô,ð 'àŒˆØŒð 	Ý Ø>ÀTðñ ô ð ð #œoÔ3ð 	,ð 	,ˆNÝ˜^×1Ò1¸'Ð1ÑBÔBÀDÑIÔIˆIÝ˜)¥UÔ%6Ñ7Ô7ð Ø—?’?Ñ$Ô$­Ò7Ð7Ø�Eøõ ! dÐ+Ñ+Ô+Ð+ð	3Ý�x×1Ò1Ñ3Ô3Ñ4Ô4Ð4Ð4Ð4Ð4Ð4øÝð 	3ð 	3ð 	3Ý  dÐ+Ñ+Ô+°Ð2øøøøð	3øøøõ 
�H�eœnÑ	-Ô	-ð 	'ð	9Ý˜×*Ò*¨;ÀÐ*ÑHÔHÑIÔIˆEˆEøÝÕ 7½ÐGð 	9ð 	9ð 	9Ý  hÐ/Ñ/Ô/°SÐ8øøøøð	9øøøå˜%¥Ô!2Ñ3Ô3ð 	-Ý  eÐ,Ñ,Ô,Ð,Ø×*Ò*¨4°Ñ9Ô9Ð9Ð9Ð9Ð9Ð9Ð9Ð9Ð9Ð9å #Ð&Ñ&Ô&Ð&sD   „#( ¨
A²AÁAÄ#D& Ä&
EÄ0EÅEÅ$$F	 Æ	F6Æ F1Æ1F6ú
nodes.Withc           
   #  óä  ‡K  — 	 t          ˆfd„| j        D ¦   «         ¦  «        }n# t          $ r Y dS w xY w|€t          | ||¦  «        E d{V —† nšt          | ||¦  «        D ]ˆ}|}|D ]}}t	          |d¦  «        st          d| ‰||¬¦  «        ‚	 |j        |         }Œ5# t          $ r}t          d| ‰||¬¦  «        |‚d}~wt          $ r}t          d| ‰||¬¦  «        |‚d}~ww xY w|V — Œ‰| ‰||dœS )	a  Infer names and other nodes from a *with* statement.

    This enables only inference for name binding in a *with* statement.
    For instance, in the following code, inferring `func` will return
    the `ContextManager` class, not whatever ``__enter__`` returns.
    We are doing this intentionally, because we consider that the context
    manager result is whatever __enter__ returns and what it is binded
    using the ``as`` keyword.

        class ContextManager(object):
            def __enter__(self):
                return 42
        with ContextManager() as f:
            pass

        # ContextManager().infer() will return ContextManager
        # f.infer() will return 42.

    Arguments:
        self: nodes.With
        node: The target of the assignment, `as (a, b)` in `with foo as (a, b)`.
        context: Inference context used for caching already inferred objects
        assign_path:
            A list of indices, where each index specifies what item to fetch from
            the inference results.
    c              3  ó.   •K  — | ]\  }}|‰k    ¯|V — Œd S r.   r@   )ru   rÿ   Úvarsrz   s      €r*   rw   z&with_assigned_stmts.<locals>.<genexpr>d  s+   øè è € ÐEÐE™;˜C ¸Àº¸�3¸¸¸¸ÐEÐEr,   Nr0   z0Wrong type ({targets!r}) for {node!r} assignment)rz   Útargetsr    r`   zCTried to infer a nonexistent target with index {index} in {node!r}.z1Tried to unpack a non-iterable value in {node!r}.r¬   )	r÷   r=   rø   r  r™   r   r0   r›   ri   )	r2   rz   r`   r    rÿ   Úresultr!   r¡   r»   s	    `       r*   Úwith_assigned_stmtsr  B  s²  øè è € ðBÝÐEÐEÐEÐE¨$¬*ÐEÑEÔEÑEÔEˆˆøÝð ð ð ØˆtˆtðøøøàÐÝ)¨$°°WÑ=Ô=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=å,¨T°3¸Ñ@Ô@ð 	ð 	ˆFàˆCØ$ð ð �Ý˜s FÑ+Ô+ð Ý(ØJØ!Ø $Ø$/Ø 'ðñ ô ð ðØœ( 5œ/�C�CøÝ!ð ð ð Ý(ð'à!Ø $Ø$/Ø 'ðñ ô ð ðøøøøõ !ð ð ð Ý(ØKØ!Ø $Ø$/Ø 'ðñ ô ð ðøøøøðøøøð ˆIˆIˆIˆIàØØ"Øð	ð ð s0   … & ¦
4³4ÂBÂ
C#Â'B<Â<C#Ã	CÃC#únodes.NamedExprc              #  óˆ   K  — | j         |k    r#| j                             |¬¦  «        E d{V —† dS t          d| ||¬¦  «        ‚)z:Infer names and other nodes from an assignment expression.râ   Nz$Cannot infer NamedExpr node {node!r}r·   )Útargetr(   r�   r   r¿   s       r*   Únamed_expr_assigned_stmtsr  ’  si   è è € ð „{�dÒÐØ”:×#Ò#¨GÐ#Ñ4Ô4Ð4Ð4Ð4Ð4Ð4Ð4Ð4Ð4Ð4åØ2ØØ#Øð	
ñ 
ô 
ð 	
r,   únodes.Starredc              #  ó`
  ‡K  — dˆfd	„Š|                       ¦   «         }t          |t          j        t          j        f¦  «        st          d
| |||¬¦  «        ‚|€t          ¦   «         }t          |t          j        ¦  «        �r]|j        }|j        d         }t          |t          j	        ¦  «        st          j        V — dS t          d„ |                     t          j        ¦  «        D ¦   «         ¦  «        dk    rt          d| |||¬¦  «        ‚	 t          |                     |¦  «        ¦  «        }n&# t
          t"          f$ r t          j        V — Y dS w xY wt          |t          j        ¦  «        st'          |d¦  «        st          j        V — dS 	 t)          j        |                     ¦   «         ¦  «        }n# t.          $ r t          j        V — Y dS w xY wt1          |j        ¦  «        D ]ñ\  }	}
t          |
t          j        ¦  «        s|s nÏ|                     ¦   «          Œ8t)          j        t7          |j        |	d…         ¦  «        ¦  «        }|D ]ˆ}t          |t          j        ¦  «        s|s ni|                     ¦   «          Œ5t          j        t<          j        | |j         |j!        ¬¦  «        }| "                    tG          |¦  «        ¬¦  «         |V —  Œòt          |t          j        ¦  «        �r3	 t          |j$                             |¬¦  «        ¦  «        }n&# t
          t"          f$ r t          j        V — Y dS w xY wt          |t          j        ¦  «        st'          |d¦  «        st          j        V — dS 	 |                     ¦   «         }n# t.          $ r t          j        V — Y dS w xY w|j%        }t          |t          j&        ¦  «        st          d|¬¦  «        ‚g } ‰| ||¦  «         |st          d|¬¦  «        ‚|d         \  }}||dz
  k    }tO          ||rdn||z
  ¦  «        }|}|D ]à}d}t1          |¦  «        D ]‚\  }	}t'          |d¦  «        s nl|	dz   tQ          |¦  «        u r|}n|d         }	 |                     ¦   «         }||         }|}ŒV# tR          $ r Y  n t.          $ r t          j        V — Y   dS w xY wt          j        t<          j        | | j         | j!        ¬¦  «        }| "                    |pg ¬¦  «         |V —  dS t          j        V — dS dS )aD  
    Arguments:
        self: nodes.Starred
        node: a node related to the current underlying Node.
        context: Inference context used for caching already inferred objects
        assign_path:
            A list of indices, where each index specifies what item to fetch from
            the inference results.
    Ústarredr  r  únodes.TupleÚlookupsúlist[tuple[int, int]]r$   ÚNonec                óÊ  •— |                      ¦   «         }t          |¦  «        D ]½\  }}t          |t          j        ¦  «        rA|j        j        | j        j        k    r'|                     |t          |¦  «        f¦  «          d S t          |t          j	        ¦  «        rC|                     |t          |                      ¦   «         ¦  «        f¦  «          ‰| ||¦  «         Œ¾d S r.   )
r—   Ú	enumeratere   r   ÚStarredr(   rÁ   ÚappendÚlenr±   )r  r  r  r—   r¡   ÚelementÚ$_determine_starred_iteration_lookupss         €r*   r  zDstarred_assigned_stmts.<locals>._determine_starred_iteration_lookups·  sÜ   ø€ ð —’‘”ˆÝ'¨Ñ/Ô/ð 		Pð 		P‰NˆE�7å˜7¥E¤MÑ2Ô2ðà”MÔ&¨'¬-Ô*<Ò<Ð<à—’ ¥s¨6¡{¤{Ð3Ñ4Ô4Ð4Ø��Ý˜'¥5¤;Ñ/Ô/ð PØ—’ ¥s¨7¯>ª>Ñ+;Ô+;Ñ'<Ô'<Ð=Ñ>Ô>Ð>Ø4Ð4°W¸gÀwÑOÔOÐOøð		Pð 		Pr,   zDStatement {stmt!r} enclosing {node!r} must be an Assign or For node.)rz   r£   r­   r`   Nr   c              3  ó   K  — | ]}d V — ŒdS )é   Nr@   )ru   ra   s     r*   rw   z)starred_assigned_stmts.<locals>.<genexpr>Û  s"   è è € Ð<Ð<�QˆqÐ<Ð<Ð<Ð<Ð<Ð<r,   r  z=Too many starred arguments in the assignment targets {lhs!r}.)rz   r	  r­   r`   r—   )Úctxrq   ÚlinenoÚ
col_offset)r0   râ   z8Could not make sense of this, the target must be a tuplez5Could not make sense of this, needs at least a lookupéÿÿÿÿ)r  r  r  r  r  r  r$   r  )*Ú	statementre   r   ÚAssignÚForr   r   r(   r	  ÚBaseContainerr   rk   ÚsumÚnodes_of_classr  r÷   r�   rø   rs   r™   ÚcollectionsÚdequer—   ri   r  r0   ÚpopleftÚreversedr˜   r²   r   ÚStorer!  r"  Úpostinitry   r°   r  r±   Úslicer  r›   )r2   rz   r`   r    r£   r(   ÚlhsÚrhsr0   r¡   Ú	left_nodeÚlhs_eltsÚ
right_nodeÚpackedÚinferred_iterabler—   r  r  Úlast_element_indexÚlast_element_lengthÚis_starred_lastÚlookup_sliceÚlast_lookupr  Úfound_elementÚlookupÚ
cur_lookupÚitered_inner_elementÚunpackedr  s                                @r*   Ústarred_assigned_stmtsrB  ¥  sI  øè è € ð$Pð Pð Pð Pð Pð Pð  �>Š>ÑÔ€DÝ�d�Uœ\­5¬9Ð5Ñ6Ô6ð 
ÝØRØØØØð
ñ 
ô 
ð 	
ð €Ý"Ñ$Ô$ˆå�$�œÑ%Ô%ñ =Ø”
ˆØŒl˜1ŒoˆÝ˜#�uÔ2Ñ3Ô3ð 	ÝÔ"Ð"Ð"Ð"ØˆFåÐ<Ð<˜#×,Ò,­U¬]Ñ;Ô;Ð<Ñ<Ô<Ñ<Ô<¸qÒ@Ð@Ý ØOØØØØðñ ô ð ð	Ý�u—{’{ 7Ñ+Ô+Ñ,Ô,ˆCˆCøÝ¥Ð.ð 	ð 	ð 	ÝÔ"Ð"Ð"Ð"ØˆFˆFð	øøøõ �c�4Ô/Ñ0Ô0ð 	½ÀÀXÑ8NÔ8Nð 	ÝÔ"Ð"Ð"Ð"ØˆFð	ÝÔ$ S§Z¢Z¡\¤\Ñ2Ô2ˆDˆDøÝð 	ð 	ð 	ÝÔ"Ð"Ð"Ð"ØˆFˆFð	øøøõ !*¨#¬(Ñ 3Ô 3ð 	ð 	ÑˆE�9Ý˜i­¬Ñ7Ô7ð Øð Ø�EØ—’‘”�ØÝ"Ô(­°#´(¸5¸6¸6Ô2BÑ)CÔ)CÑDÔDˆHØ&ð ð �
Ý! *­e¬mÑ<Ô<ð Øð Ø˜Ø—H’H‘J”J�JØõ œÝœØØœ:Ø"œ~ð	ñ ô �ð —’¥T¨$¡Z¤Z�Ñ0Ô0Ð0Ø���Øøå�$�œ	Ñ"Ô"ñ Tð	Ý $ T¤Y§_¢_¸W _Ñ%EÔ%EÑ FÔ FÐÐøÝ¥Ð.ð 	ð 	ð 	ÝÔ"Ð"Ð"Ð"ØˆFˆFð	øøøõ Ð'­Ô)=Ñ>Ô>ð 	ÅgØ˜xñG
ô G
ð 	õ Ô"Ð"Ð"Ð"ØˆFð	Ø&×-Ò-Ñ/Ô/ˆFˆFøÝð 	ð 	ð 	ÝÔ"Ð"Ð"Ð"ØˆFˆFð	øøøð ”ˆå˜&¥%¤+Ñ.Ô.ð 	Ý ØJØðñ ô ð ð
 *,ˆØ,Ð,¨T°6¸7ÑCÔCÐCØð 	Ý ØGÐQXðñ ô ð ð
 3:¸"´+Ñ/ÐÐ/Ø,Ð1DÀqÑ1HÒIˆåØØ#ÐSˆDˆDÐ*=Ð@RÑ*Rñ
ô 
ˆð #ˆàð (	ð (	ˆGð !ˆMÝ!*¨7Ñ!3Ô!3ð ,ð ,‘��vÝ˜w¨Ñ1Ô1ð Ø�EØ˜1‘9¥ G¡¤Ð,Ð,Ø.9�J�Jð "(¨¤�Jð
,Ø+2¯>ª>Ñ+;Ô+;Ð(Ø2°:Ô>�Gð %,�M�Møõ "ð ð ð Ø�E�EÝ ð ð ð åÔ*Ð*Ð*Ð*Ø�F�F�F�Fðøøøõ ”zÝ”MØØ”{Øœ?ð	ñ ô ˆHð ×Ò =Ð#6°BÐÑ7Ô7Ð7ØˆNˆNˆNØˆFˆFåÔÐÐÐÐÐðiTð Ts`   Ä"D3 Ä3EÅEÆ&F; Æ;GÇGË<(L% Ì%MÍMÎN ÎN7Î6N7ÒR&Ò&
SÒ3SÓSúnodes.MatchMappingúnodes.AssignNamer  ú#Generator[nodes.NodeNG, None, None]c              #  ó
   K  — dS ©zbReturn empty generator (return -> raises StopIteration) so inferred value
    is Uninferable.
    Nr@   r¿   s       r*   Úmatch_mapping_assigned_stmtsrH  j  ó   è è € ð €Fr,   únodes.MatchStarc              #  ó
   K  — dS rG  r@   r¿   s       r*   Úmatch_star_assigned_stmtsrL  x  rI  r,   únodes.MatchAsc              #  óÐ   K  — t          | j        t          j        ¦  «        r@t          | j        j        t          j        ¦  «        r| j        €| j        j        j        V — dS dS dS dS )z}Infer MatchAs as the Match subject if it's the only MatchCase pattern
    else raise StopIteration to yield Uninferable.
    N)re   rq   r   Ú	MatchCaseÚMatchÚpatternÚsubjectr¿   s       r*   Úmatch_as_assigned_stmtsrS  †  sw   è è € õ 	�4”;¥¤Ñ0Ô0ð)å�t”{Ô)­5¬;Ñ7Ô7ð)ð ŒLÐ àŒkÔ Ô(Ð(Ð(Ð(Ð(Ð(ð)ð )ð )ð )ð !Ð r,   ú4nodes.TypeVar | nodes.TypeVarTuple | nodes.ParamSpecc              #  ó
   K  — dS rG  r@   r¿   s       r*   Úgeneric_type_assigned_stmtsrV  ˜  rI  r,   )r!   r	   r"   r#   r$   r   )r2   r[   r\   r]   r^   r#   r_   r   r`   r   ra   r   r$   rb   )
r2   r   r\   r]   r(   rf   r`   r   r$   r   )r0   r}   r`   r   r$   r~   )r2   r   r\   r]   r^   r#   r_   r   r`   r   r„   r   r$   r…   )r2   r‘   r\   r]   r^   r#   r_   r   r`   r   r„   r   r$   r’   )NNN)
r2   r¦   rz   r§   r`   r¨   r    r©   r$   r	   )
r2   rµ   rz   r§   r`   r¨   r    r©   r$   r	   )
r2   r½   rz   r§   r`   r¨   r    r©   r$   r	   )rÁ   rÂ   r`   r   r$   r’   )
r2   rà   rz   r§   r`   r¨   r    r©   r$   r	   )
r2   ræ   rz   r§   r`   r¨   r    r©   r$   r	   )
r2   rê   rz   r§   r`   r¨   r    r©   r$   r	   )
r2   rï   rz   r§   r`   r¨   r    r©   r$   r	   )
r2   r  rz   r§   r`   r¨   r    r©   r$   r	   )NN)
r2   r  rz   r§   r`   r¨   r    r©   r$   r	   )
r2   r  rz   r§   r`   r¨   r    r©   r$   r	   )
r2   rC  rz   rD  r`   r¨   r    r  r$   rE  )
r2   rJ  rz   rD  r`   r¨   r    r  r$   rE  )
r2   rM  rz   rD  r`   r¨   r    r  r$   rE  )
r2   rT  rz   rD  r`   r¨   r    r  r$   rE  )UÚ__doc__Ú
__future__r   r*  rŠ   r^   Úoperator_modÚcollections.abcr   r   r   r   Útypingr   r	   r
   rˆ   r   r   r   r   Úastroid.constr   Úastroid.contextr   r   Úastroid.exceptionsr   r   r   r   r   Úastroid.nodesr   Úastroid.typingr   r   r   r±   r²   r   rû   ÚposÚnegÚinvertÚnot_r    Ú__annotations__r+   r3   r5   r8   r:   r>   Úmatmulrh   ry   r=   Ú_KEYÚ_IMPLÚyes_if_nothing_inferredrn   r|   rƒ   r�   r•   rž   Úraise_if_nothing_inferredr´   r¼   rÀ   rß   rå   ré   rì   rè   rô   r  r  r  rB  rH  rL  rS  rV  r@   r,   r*   ú<module>rk     sF  ðð
ð ð ð #Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ø Ð Ð Ð Ø Ð Ð Ð Ø CÐ CÐ CÐ CÐ CÐ CÐ CÐ CÐ CÐ CÐ CÐ CØ .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ð .à 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ø !Ð !Ð !Ð !Ð !Ð !Ø :Ð :Ð :Ð :Ð :Ð :Ð :Ð :ðð ð ð ð ð ð ð ð ð ð ð ð ð ð 'Ð &Ð &Ð &Ð &Ð &ðð ð ð ð ð ð ð ð ð ð ð JØ�gÐ/°´¸e¼jÑIÔI€Oà-€ð 
Ô	Ø	Ô	Ø	Ô	ØÔð	5ð 5Ð ð ð ð ñ ð
&ð 
&ð 
&ð 
&ð1ð 1ð 1ð*ð *ð *ð/ð /ð /ð+ð +ð +ð1ð 1ð 1ð 
Ð	Ø	Ð	Ø	Ð	Ø
Ð
Ø	Ð	Ø
Ð
Ø	Ð	Ø	Ð	Ø	Ð	Ø	Ð	Ø
Ð
Ø
Ð
Ø	Ô	ðð €ð �4˜×)Ò)Ñ+Ô+Ñ,Ô,ð $ð $�K€Dˆ%Ø#€K��s‘
ÑÐð Ô#ð!ð !ð !ñ $Ô#ð!ðHð ð ð ð&*ð *ð *ð *ð Ô#ð,ð ,ð ,ñ $Ô#ð,ð^ Ô#ð3ð 3ð 3ñ $Ô#ð3ð	ð&ð &ð &ðR Ô%ð 48Ø'+Ø$(ð	ð ð ð ñ &Ô%ðð< 48Ø'+Ø$(ð	ð ð ð ð ð4 48Ø'+Ø$(ð	Bð Bð Bð Bð Bð=ð =ð =ð =ðD 48Ø'+Ø$(ð	>ð >ð >ð >ð >ð> Ô%ð 48Ø'+Ø$(ð	ð ð ð ñ &Ô%ðð. 48Ø'+Ø$(ð	
ð 
ð 
ð 
ð 
ð%ð %ð %ðP Ô%ð 48Ø'+Ø$(ð	ð ð ð ñ &Ô%ðð*#'ð #'ð #'ðL Ô%ð 48Ø'+Ø$(ð	Lð Lð Lð Lñ &Ô%ðLð^ Ô%ð (,Ø$(ð	
ð 
ð 
ð 
ñ &Ô%ð
ð$ Ô#ð 48Ø'+Ø$(ð	Að Að Að Añ $Ô#ðAðH Ô#ð (,Øð	

ð 

ð 

ð 

ñ $Ô#ð

ð Ô#ð (,Øð	

ð 

ð 

ð 

ñ $Ô#ð

ð Ô#ð (,Øð	)ð )ð )ð )ñ $Ô#ð)ð" Ô#ð (,Øð	

ð 

ð 

ð 

ñ $Ô#ð

ð 

ð 

r,   