Ë
    g^(hº9  ã                   óh  — d dl Z d dlmZmZmZ d dlZd dlmc mZ	 d dl
mZ d dlmZ ej                  j                  ZdZdZdZ	 	 ddej&                  j(                  d	ej&                  j*                  d
eej,                     dee   ddf
d„Zd	ej&                  j*                  deee      defd„Z G d„ dej&                  j8                  «      Z	 ddej&                  j(                  deeej&                  j*                  gef      ddfd„Z	 	 	 ddej&                  j(                  dedeee      deeej&                  j*                  gef      ddf
d„Z	 	 	 ddej&                  j(                  dedeee      deeej&                  j*                  gef      dej&                  j(                  f
d„Z y)é    N)ÚAnyÚCallableÚOptional)Úmaybe_set_is_frozen_param)Ú
OrderedSetÚMODULE_TYPEÚ_MAIN_MODULEÚ_CONST_MODULEÚgmÚnodeÚconstantÚnameÚreturnc                 óV  — | j                   }|r|}nBt        | d«      sd| _        | j                  }	 d|› �}t        | |«      sn|dz  }Œ|dz   | _        |j                  |«      5  |�|j	                  d|di «      }n|j	                  d|di «      }|j                  |«       |j                  j                  |j                  «       |j                  |«       |j                  |_	        d d d «       |�+| j                  ||«       t        | ||«       t        |«       y y # 1 sw Y   Œ7xY w)NÚ_frozen_param_countr   Ú_frozen_paramé   Úget_attr© Úplaceholder)ÚgraphÚhasattrr   Úinserting_beforeÚcreate_nodeÚreplace_all_uses_withÚmetaÚupdateÚ
erase_noder   Úregister_bufferÚsetattrr   )r   r   r   r   ÚgÚqualnameÚiÚnew_input_nodes           ú^/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/torch/_inductor/constant_folding.pyÚreplace_node_with_constantr&      s-  € ð 	�‰€AáØ‰ä�rÐ0Ô1Ø%&ˆBÔ"Ø×"Ñ"ˆàØ& q cÐ*ˆHÜ˜2˜xÔ(ØØ�‰FˆAð	 ð "# Q¡ˆÔà	
×	Ñ	˜DÓ	!ñ 	(ØÐØŸ]™]¨:°xÀÀRÓH‰Nð Ÿ]™]¨=¸(ÀBÈÓKˆNØ×"Ñ" >Ô2Ø×Ñ×"Ñ" 4§9¡9Ô-Ø	�‰�TÔØ"Ÿi™iˆÔ÷	(ð Ðà
×Ñ˜8 XÔ.Ü��H˜hÔ'ä! (Õ+ð ÷	(ð 	(ús   Á%BDÄD(Úlifted_constant_namesc                 óH   — | j                   dk(  xs | j                  |xs dv S )Nr   r   )Úopr   )r   r'   s     r%   Úis_const_sourcer*   >   s'   € ð �7‰7�jÑ ÒN D§I¡IÐ2GÒ2MÈ2Ð$NÐNó    c                   ó¬  ‡ — e Zd Z	 	 	 ddej                  j
                  dedeee	      dee
ej                  j                  gef      ddf
ˆ fd„Zdefd„Zd	ej                  j                  defˆ fd
„Zd	ej                  j                   j                  defd„Zdeej                  j                  eej                  j                     f   fd„Zd	ej                  j                  defˆ fd„Zdej*                  defd„Zd	ej                  j                  dej*                  ddfd„Zdefˆ fd„Zdeej                  j                  ef   ddfd„Zˆ xZS )ÚConstantFolderNr   Úskip_constructorsr'   Úskip_folding_node_fnr   c                 óô   •— t         ‰| �  |«       i | _        t        j                  «       | _        t        «       | _        || _        | j                  «       | _
        || _        t        «       | _        || _        y ©N)ÚsuperÚ__init__Únode_replacementsÚcollectionsÚCounterÚreplaced_usesÚobjectÚunknown_valuer.   Únode_to_last_non_output_useÚuser_to_last_usesr'   Údeferred_valuer/   )Úselfr   r.   r'   r/   Ú	__class__s        €r%   r3   zConstantFolder.__init__E   sj   ø€ ô 	‰Ñ˜ÔØ;=ˆÔÜ7B×7JÑ7JÓ7LˆÔÜ#›XˆÔØ'8ˆÔð "&×!AÑ!AÓ!CˆÔØ%:ˆÔ"Ü$›hˆÔØ$8ˆÕ!r+   c                  ó   — y)NFr   )r=   s    r%   Ú_support_dynamic_shapez%ConstantFolder._support_dynamic_shapeY   s   € àr+   r   c                 óÜ  •— | j                   €t        ‰| �	  |«      S | j                  �| j                  |«      r| j                  S t        j                  |j                  i |j                  ¤Ž}|D ]n  }t        |t        j                  j                  «      sŒ(|j                  | j                   xs dvsŒE| j                  |   | j                  k7  sŒb| j                  c S  | j                  S )Nr   )r'   r2   Úrun_noder/   r9   ÚpytreeÚarg_tree_leavesÚargsÚkwargsÚ
isinstanceÚtorchÚfxÚNoder   Úenvr<   )r=   r   Úflattened_node_inpsÚinpr>   s       €r%   Ú_deduce_valuezConstantFolder._deduce_value]   sÌ   ø€ Ø×%Ñ%Ð-Ü‘7Ñ# DÓ)Ð)ð ×$Ñ$Ð0°T×5NÑ5NÈtÔ5TØ×%Ñ%Ð%Ü$×4Ñ4°d·i±iÐOÀ4Ç;Á;ÑOÐØ&ò 	*ˆCä˜3¤§¡§¡Õ.Ø—H‘H T×%?Ñ%?Ò%EÀ2ÒFØ—H‘H˜S‘M T×%8Ñ%8Ó8à×)Ñ)Ò)ð	*ð ×"Ñ"Ð"r+   c                 ó~  — dt         j                  j                  j                  dt        fd„} ||«      sw|j
                  t         j                  j                  j                  j                  k(  r`t        |j                  «      dk(  rH |t        t        |j                  «      «      «      r$t        |j                  d   | j                   «      ryt#        t         j                  j$                  dd «      d u}|rÃ|j
                  t         j                  j$                  j&                  j                  t         j                  j$                  j(                  j                  t         j                  j$                  j(                  j*                  t         j                  j$                  j,                  j.                  fv ryy)	Nr   r   c                 óÎ  — | j                   t        j                  j                  j                  j
                  k(  xr© t        | j                  d   t        j                  j                  «      xrv d| j                  d   j                  v xrY | j                  d   j                  d   j                  t        j                  k(  xr  | j                  d   t        j                  k(  S )Nr   Úvalr   )ÚtargetrH   ÚopsÚprimsÚconvert_element_typeÚdefaultrG   rE   rI   rJ   r   ÚdtypeÚint8Úbfloat16)r   s    r%   Úis_woq_int8_patternz5ConstantFolder.is_impure.<locals>.is_woq_int8_patterno   s¨   € à—‘œuŸy™yŸ™×CÑC×KÑKÑKò 3Ü˜tŸy™y¨™|¬U¯X©X¯]©]Ó;ò3à˜TŸY™Y q™\×.Ñ.Ð.ò3ð —I‘I˜a‘L×%Ñ% eÑ,×2Ñ2´e·j±jÑ@ò3ð —I‘I˜a‘L¤E§N¡NÑ2ðr+   r   r   TÚdequantize_per_channelF)rH   rI   r   rJ   ÚboolrR   rS   ÚatenÚpermuterV   ÚlenÚusersÚnextÚiterr*   rE   r'   ÚgetattrÚquantized_decomposedr[   Údequantize_per_tensorÚtensorrU   Úno_fuse)r=   r   rZ   Úquant_registereds       r%   Ú	is_impurezConstantFolder.is_impuren   s;  € ð	¤e§h¡h§m¡m×&8Ñ&8ð 	¼Tó 	ñ   Ô%à—‘œuŸy™yŸ~™~×5Ñ5×=Ñ=Ò=Ü˜Ÿ
™
“O qÒ(Ù'¬¬T°$·*±*Ó-=Ó(>Ô?äØ�I‰I�a‰LØ×&Ñ&ô
ð ô ”E—I‘I×2Ñ2Ð4LÈdÓSØðð 	ñ  §¡Ü�I‰I×*Ñ*×AÑA×IÑIÜ�I‰I×*Ñ*×@Ñ@×HÑHÜ�I‰I×*Ñ*×@Ñ@×GÑGÜ�I‰I×*Ñ*×?Ñ?×GÑGð	0
ñ !
ð Ør+   c                 óÄ  ‡‡‡— t        j                  t        «      Št        t        j
                  j                     «       Št        t        t        | j                  j                  j                  «      «      «      }t        | j                  j                  j                  «      D ]·  Š‰j                  dk(  rŒdt        j
                  j                  dd fˆˆˆfd„}t        j                  t        j
                  j                  |‰j                   ‰j"                  f«       t%        ‰j&                  «      dk(  sŒ•|‰j&                  v sŒ¤‰‰   j)                  ‰«       Œ¹ ‰S )NÚoutputrM   r   c                 óZ   •— | ‰v ry ‰j                  | «       ‰‰   j                  | «       y r1   )ÚaddÚappend)rM   Úlast_non_output_user   Ú	seen_usess    €€€r%   Úadd_usez;ConstantFolder.node_to_last_non_output_use.<locals>.add_use    s-   ø€ Ø˜)Ñ#Øà—‘˜cÔ"Ø# DÑ)×0Ñ0°Õ5r+   r   )r5   ÚdefaultdictÚlistr   rH   rI   rJ   ra   rb   ÚreversedÚmoduler   ÚnodesrR   rC   Útree_map_only_rE   rF   r_   r`   rn   )r=   Úoutput_noderq   ro   r   rp   s      @@@r%   r:   z*ConstantFolder.node_to_last_non_output_use—   sü   ú€ Ü)×5Ñ5´dÓ;ÐÜœuŸx™xŸ}™}Ñ-Ó/ˆ	Üœ4¤¨¯©×):Ñ):×)@Ñ)@Ó AÓBÓCˆä˜TŸ[™[×.Ñ.×4Ñ4Ó5ò 	7ˆDØ�{‰{˜hÒ&Øð6œUŸX™XŸ]™]ð 6¨t÷ 6ô ×!Ñ!¤%§(¡(§-¡-°¸4¿9¹9ÀdÇkÁkÐ:RÔSô �4—:‘:‹ !Ó#¨°t·z±zÒ(AØ# DÑ)×0Ñ0°Õ6ð!	7ð$ #Ð"r+   c                 óœ  •‡ — |j                   dk(  rjdt        j                  j                  dd fˆ fd„}t	        j
                  t        j                  j                  ||j                  «       t        ‰
‰ �!  |«      S ‰ j                  |«      \  }}t	        j                  |i |¤Ž}t        ˆ fd„|D «       «      r‰ j                  S |j                  dk(  r3|j                   t        j                  j                   k(  r‰ j                  S |j                  dk(  r|j"                  dk(  r‰ j                  S ‰ j$                  r4t'        |‰ j(                  «      st        d„ |D «       «      s‰ j                  S t+        |j                   t        j,                  j.                  «      r<t        j0                  j2                  |j                   j4                  v r‰ j                  S |j                  dk(  r:t+        |j                   t        j,                  j6                  «      r‰ j                  S ‰ j9                  |«      }|‰ j                  k(  r‰ j                  S t'        |‰ j(                  «      �set+        |t        j:                  «      s|‰ j<                  k(  �r;|‰ j<                  k7  r|j>                  j@                  d	k(  r|S ‰ jC                  |«      s|S ‰ jE                  |«      r‰ j                  S ‰ jG                  ||«       t	        j                  |j                  i |jH                  ¤Ž}|D ]>  }t+        |t        j                  j                  «      sŒ(‰ jJ                  |xx   d
z  cc<   Œ@ ‰ jL                  jO                  |g «      D ]D  }	‰ jJ                  |	   tQ        |	jR                  «      k(  sŒ)‰ jT                  jW                  |	d «       ŒF |S )Nrk   Úargr   c                 ó8   •— ‰j                   ‰j                  | <   y r1   )r9   rK   )rz   r=   s    €r%   Úset_envz(ConstantFolder.run_node.<locals>.set_env´   s   ø€ Ø $× 2Ñ 2�—‘˜’r+   c              3   ó‚   •K  — | ]6  }t        ‰j                  «      t        |«      k(  xr ‰j                  |k(  –— Œ8 y ­wr1   )Útyper9   )Ú.0Úinput_r=   s     €r%   ú	<genexpr>z*ConstantFolder.run_node.<locals>.<genexpr>Á   s@   øè ø€ ò 
àô �×#Ñ#Ó$¬¨V«Ñ4ÒU¸×9KÑ9KÈvÑ9UÓUñ
ùs   ƒ<?Úcall_functionÚ&triton_kernel_wrapper_functional_proxyc              3   óP   K  — | ]  }t        |t        j                  «      –— Œ  y ­wr1   )rG   rH   ÚTensor)r   Úes     r%   r�   z*ConstantFolder.run_node.<locals>.<genexpr>Û   s   è ø€ ÒN¸œ
 1¤e§l¡l×3ÑNùs   ‚$&r   r   ),rR   rH   rI   rJ   rC   rw   rE   r2   rB   Úfetch_args_kwargs_from_envrD   Úanyr9   r)   r]   Ú_efficientzerotensorrV   r   r.   r*   r'   rG   Ú_opsÚ
OpOverloadÚTagÚnondeterministic_seededÚtagsÚHigherOrderOperatorrN   r…   r<   Údevicer~   Úinsertable_tensor_checkri   Úadd_node_replacementrF   r7   r;   Úgetr_   r`   r4   Úpop)r=   r   r|   rE   rF   Úflattened_inputsÚoutrL   ÚnÚ	to_deleter>   s   `         €r%   rB   zConstantFolder.run_node°   s  ù€ Ø�;‰;˜(Ò"ð3œUŸX™XŸ]™]ð 3¨tõ 3ô ×!Ñ!¤%§(¡(§-¡-°¸$¿)¹)ÔDÜ‘7Ñ# DÓ)Ð)à×6Ñ6°tÓ<‰ˆˆfÜ!×1Ñ1°4ÐB¸6ÑBÐô
 ó 
à*ô
ô 
ð ×%Ñ%Ð%ð �G‰G�Ò&Ø—‘œt×8Ñ8×@Ñ@Ò@à×%Ñ%Ð%ð �G‰G�Ò&Ø—	‘	ÐEÒEà×%Ñ%Ð%ð ×"Ò"Ü# D¨$×*DÑ*DÔEÜÑNÐ=MÔNÔNà×%Ñ%Ð%ô �t—{‘{¤E§J¡J×$9Ñ$9Ô:Ü—	‘	×1Ñ1°T·[±[×5EÑ5EÑEà×%Ñ%Ð%à�7‰7�oÒ%¬*Ø�K‰KœŸ™×7Ñ7ô+
ð ×%Ñ%Ð%à× Ñ  Ó&ˆØ�$×$Ñ$Ò$Ø×%Ñ%Ð%ä˜t T×%?Ñ%?Õ@Ü�sœEŸL™LÔ)¨S°D×4GÑ4GÓ-Gà�d×)Ñ)Ò)¨c¯j©j¯o©oÀÒ.GØ�
à×/Ñ/°Ô4Ø�
à�~‰~˜dÔ#Ø×)Ñ)Ð)à×%Ñ% d¨CÔ0ä"(×"8Ñ"8¸$¿)¹)Ð"SÀtÇ{Á{Ñ"SÐà(ò +�Ü! !¤U§X¡X§]¡]Ô3Øà×"Ñ" 1Ó%¨Ñ*Ô%ð	+ð "×3Ñ3×7Ñ7¸¸bÓAò @�	Ø×%Ñ% iÑ0´C¸	¿¹Ó4HÓHØ×*Ñ*×.Ñ.¨y¸$Õ?ð@ð ˆ
r+   rf   c                  ó   — y)NTr   )r=   rf   s     r%   r‘   z&ConstantFolder.insertable_tensor_check  s   € Ør+   c                 ó"   — || j                   |<   y r1   )r4   )r=   r   rf   s      r%   r’   z#ConstantFolder.add_node_replacement  s   € Ø'-ˆ×Ñ˜tÒ$r+   c                 óJ   •— i }| j                  |«       t        ‰| �	  |¬«      S )N)Úinitial_env)Úinsert_placerholder_valuesr2   Úrun)r=   rK   r>   s     €r%   rž   zConstantFolder.run  s'   ø€ Ø(*ˆØ×'Ñ'¨Ô,Ü‰w‰{ sˆ{Ó+Ð+r+   rK   c                 ó4  — | j                   j                  j                  d¬«      D ]  }| j                  ||<   Œ | j                  €y | j                   j                  j
                  D ].  }|j                  | j                  xs dv sŒ | j                  ||<   Œ0 y )Nr   ©r)   r   )ru   r   Ú
find_nodesr9   r'   rv   r   r<   )r=   rK   r—   s      r%   r�   z)ConstantFolder.insert_placerholder_values  sŒ   € Ø—‘×"Ñ"×-Ñ-°Ð-Ó?ò 	(ˆAØ×'Ñ'ˆC�ŠFð	(à×%Ñ%Ð-ØØ—‘×"Ñ"×(Ñ(ò 	-ˆAØ�v‰v˜$×4Ñ4Ò:¸Ò;Ø×,Ñ,��A’ñ	-r+   )FNN)Ú__name__Ú
__module__Ú__qualname__rH   rI   ÚGraphModuler\   r   rs   Ústrr   rJ   r3   r@   r   rN   r   ri   Údictr:   rB   r…   r‘   r’   rž   r�   Ú__classcell__)r>   s   @r%   r-   r-   D   sq  ø„ ð #(Ø59ØJNñ9à�H‰H× Ñ ð9ð  ð9ð  (¨¨S©	Ñ2ð	9ð
 ' x°·±·±°ÀÐ0EÑ'FÑGð9ð 
õ9ð(¨ó ð# %§(¡(§-¡-ð #°Cõ #ð"'˜eŸh™hŸm™m×0Ñ0ð '°Tó 'ðR#¨T°%·(±(·-±-ÀÀeÇhÁhÇmÁmÑATÐ2TÑ-Uó #ð2Y˜UŸX™XŸ]™]ð Y¨sõ Yðv¨e¯l©lð ¸tó ð.¨¯©¯©ð .ÀÇÁð .ÐQUó .ð,�Sõ ,ð
-¨d°5·8±8·=±=À#Ð3EÑ.Fð -È4÷ -r+   r-   Úconstraint_fnc                 óê  — t         j                  j                  j                  «       5  t	        | d¬«      }|j                  «        |j                  j                  «       D ]  \  }}|�	 ||«      sŒt        | ||«       Œ g }| j                  j                  d¬«      D ]X  }t        |j                  «      dk(  sŒt        | |j                  «      rt        | |j                  «       |j!                  |«       ŒZ |D ]  }| j                  j#                  |«       Œ | j                  j%                  «        | j                  j'                  «        | j)                  «        d d d «       y # 1 sw Y   y xY w)NT)r.   r   r    r   )rH   ÚutilsÚ_python_dispatchÚ_disable_current_modesr-   rž   r4   Úitemsr&   r   r¡   r_   r`   r   rR   Údelattrrn   r   Úeliminate_dead_codeÚlintÚ	recompile)r   r©   Úcfr   r   Úerased_paramss         r%   Úconstant_foldrµ      s/  € ô 
�‰×	%Ñ	%×	<Ñ	<Ó	>ñ Ü˜B°$Ô7ˆØ
�‰Œà ×2Ñ2×8Ñ8Ó:ò 	;‰NˆD�(ØÐ(±¸tÔ1DØÜ& r¨4°Õ:ð	;ð
 ˆØ—H‘H×'Ñ'¨:Ð'Ó6ò 	+ˆDÜ�4—:‘:‹ !Ó#Ü˜2˜tŸ{™{Ô+Ü˜B §¡Ô,Ø×$Ñ$ TÕ*ð		+ð "ò 	&ˆDØ�H‰H×Ñ Õ%ð	&ð 	�‰×$Ñ$Ô&Ø
�‰�‰ŒØ
�‰Œ÷+÷ ñ ús   ©BE)Â;B%E)Å)E2r.   r/   c                 óæ  — t         j                  j                  j                  «       5  t	        | |||¬«      }|j                  «        | j                  j                  D ]{  }|�  ||«      rt        |j                  t        <   Œ%t        ||«      s||j                  v s||j                  v rt        |j                  t        <   Œet        |j                  t        <   Œ} 	 d d d «       y # 1 sw Y   y xY w)N)r.   r'   r/   )rH   r«   r¬   r­   r-   rž   r   rv   Ú
MODULE_TAGr   ÚMETA_TAGr*   r4   r7   ÚCONST_MODULE_TAG)r   r.   r'   r/   r³   r   s         r%   Úconstant_graph_tagrº   <  sÉ   € ô 
�‰×	%Ñ	%×	<Ñ	<Ó	>ñ 1ÜØØ/Ø"7Ø!5ô	
ˆð 	�‰Œà—H‘H—N‘Nò 	1ˆDØ#Ð/Ñ4HÈÔ4NÜ&0�—	‘	œ(Ñ#Øä Ð&;Ô<Ø˜2×/Ñ/Ñ/Ø˜2×+Ñ+Ñ+ä&6�—	‘	œ(Ò#ä&0�—	‘	œ(Ò#ñ	1÷1÷ 1ñ 1ús   ©B4C'Ã'C0c                 óê  ‡— t        | |||«       dt        j                  j                  dt        fd„}| j
                  j                  D ],  }|j                  dk(  s|j                  |xs dv sŒ% ||«       Œ. t        j                  j                  «       }i Šg }| j
                  j                  D ]u  }|j                  t           t        k(  rŒ|j                  |ˆfd„«      }|‰|<   |j                  D ]/  }	|	j                  t           t        k(  sŒ|j                  |«        Œu Œw |j!                  t#        |«      «       |j%                  «        t        j                  j'                  | |«      }
|
S )zr
    Construct a GraphModule which corresponds to the part which could be
    constant folded in provided gm.
    r   r   c                 óš   — d}| j                   D ]   }|j                  t           t        k(  sŒd} n |st        | j                  t        <   |S )NFT)r`   r   r¸   r¹   r·   )r   Úused_to_foldÚus      r%   Úuntagz)run_and_get_constant_graph.<locals>.untagh  sM   € ØˆØ—‘ò 	ˆAØ�v‰v”hÑÔ#3Ó3Ø#�Ùð	ñ Ü",ˆD�I‰I”hÑØÐr+   rc   r   c                 ó   •— ‰|    S r1   r   )ÚxÚnode_remappings    €r%   ú<lambda>z,run_and_get_constant_graph.<locals>.<lambda>€  s   ø€ °~ÀaÑ7H€ r+   )rº   rH   rI   rJ   r\   r   rv   r)   r   ÚGraphr   r¸   r·   Ú	node_copyr`   rn   rk   Útupler±   r¥   )r   r.   r'   r/   r¿   r   Ú	new_graphÚoutput_nodesÚnew_nodeÚuserÚnew_gmrÂ   s              @r%   Úrun_and_get_constant_graphrÌ   Y  sD  ø€ ô Ø
ÐÐ4Ð6Jôð”E—H‘H—M‘Mð ¤dó ð —‘—‘ò ˆØ�7‰7�iÒ D§I¡IÐ2GÒ2MÈ2Ò$NÙ�$�Kðô —‘—‘Ó €Ià9;€NØ€LØ—‘—‘ò 
ˆØ�9‰9”XÑ¤*Ò,Øà×&Ñ& tÓ-HÓIˆØ'ˆ�tÑà—J‘Jò 	ˆDØ�y‰yœÑ"¤jÓ0Ø×#Ñ# HÔ-Ùñ	ð
ð ×Ñ”U˜<Ó(Ô)Ø‡N�NÔÜ�X‰X×!Ñ! " iÓ0€Fà€Mr+   )NNr1   )TNN)!r5   Útypingr   r   r   rH   Útorch.utils._pytreer«   Ú_pytreerC   Útorch._inductor.freezing_utilsr   Útorch.utils._ordered_setr   rS   r]   r¸   r·   r¹   rI   r¥   rJ   r…   r¦   r&   rs   r\   r*   ÚInterpreterr-   rµ   rº   rÌ   r   r+   r%   ú<module>rÓ      s  ðÛ ß *Ñ *ã ß $Ð $Ý DÝ /ð ‡y�y‡~�~€ð
 €Ø€
Ø"Ð ð (,Øñ	',Ø�‰×Ñð',à
�(‰(�-‰-ð',ð �u—|‘|Ñ$ð',ð �3‰-ð	',ð
 
ó',ðTOØ
�(‰(�-‰-ðOØ08¸¸c¹Ñ0CðOà	óOôY-�U—X‘X×)Ñ)ô Y-ð| @DñØ�‰×Ñðà˜H e§h¡h§m¡m _°dÐ%:Ñ;Ñ<ðð 
óð< #Ø15ØFJñ	1Ø�‰×Ñð1àð1ð $ D¨¡IÑ.ð1ð # 8¨U¯X©X¯]©]¨O¸TÐ,AÑ#BÑCð	1ð
 
ó1ð> #Ø15ØFJñ	3Ø�‰×Ñð3àð3ð $ D¨¡IÑ.ð3ð # 8¨U¯X©X¯]©]¨O¸TÐ,AÑ#BÑCð	3ð
 ‡X�X×Ñô3r+   