§
    }Jóiš;  ã            /       ó|  — d dl Z d dlmZmZmZmZmZmZmZm	Z	m
Z
mZmZ d dlmZ d dlZd dlZd dlZd dlmZ d dlmZ d dl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"m#Z# d dlm$Z$ d„ Z%d„ Z&d„ Z'	 	 	 	 	 	 	 	 dCde
e$ej(        ee$         eej(                 f         de)dee)         de*deee*                  deee*                  deee*                  dee         dee         dee+         deeef         fd„Z,	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dDde
e$ej(        ee$         eej(                 f         de)dee)         de*deee*                  deee*                  deee*                  d%e)d&e-d'e.d(e-d)e-d*e)d+e.d,e.d-e.dee         d.ee         dee+         d/ee*         d0ee)         deeef         f,d1„Z/	 	 	 	 	 	 	 	 	 dEdej(        de)de)d4ee*         d5ee*         d6e*d7e-d,e.d8e)d)e-d/e*ddfd9„Z0	 	 	 	 	 	 dFdej(        de)d4ee*         d5ee*         d6ee*         d7e-d,e.d8e)ddfd;„Z1	 	 	 dGd?e)d7e-d6e*d@e)ddf
dA„Z2	 	 dHd?e)de)de)d7e-d6e*ddfdB„Z3dS )Ié    N)ÚAnyÚCallableÚDictÚListÚLiteralÚOptionalÚTupleÚTypeVarÚUnionÚcastÚget_args)Úwarn)Úcm)Úpyplot)ÚAxes)Ú	Normalize)ÚFigureÚ
FigureBase)Ú	Rectangle)ÚbinomÚgaussian_kdeÚiqr)ÚTensorc                 ó†  — dd l m}  |j        dddd¬¦  «        \  }}t          d¦  «        D ]Õ}||         }|                     | d d …|f                              ¦   «                              ¦   «                              ¦   «         dd¬	¦  «         |                     |d d …|f                              ¦   «                              ¦   «                              ¦   «         dd
¬	¦  «         |                     ||         ¦  «         ŒÖ|d          	                    dd
g¦  «          |j
        ¦   «           |j        |d¬¦  «         d S )Nr   é   é   )é   é   F)ÚnrowsÚncolsÚfigsizeÚsharexÚstepÚValid)ÚhisttypeÚlabelÚFullÚtight©Úbbox_inches)Úmatplotlib.pyplotr   ÚsubplotsÚrangeÚhistÚdetachÚcpuÚnumpyÚ	set_titleÚlegendÚtight_layoutÚsavefig)	ÚthetaÚpriorsÚlabelsÚfignameÚpltÚfigÚaxesÚxÚaxs	            úU/global/cfs/cdirs/lsst/www/DESC_TD_PUBLIC/users/Brodie/SBI/kestrel/dustbi_plotting.pyÚplot_surviving_priorsr@   "   sB  € Ø#Ð#Ð#Ð#Ð#Ð#à�” 2¨Q¸ÈÐNÑNÔN�I€Cˆå�2‰YŒYð  ð  ˆØ�!ŒWˆØ
�Š��a�a�a˜�d”×"Ò"Ñ$Ô$×(Ò(Ñ*Ô*×0Ò0Ñ2Ô2¸VÈ7ˆÑSÔSÐSØ
�Š��q�q�q˜!�t”×#Ò#Ñ%Ô%×)Ò)Ñ+Ô+×1Ò1Ñ3Ô3¸fÈFˆÑSÔSÐSØ
�Š�V˜A”YÑÔÐÐàˆ„G‡N‚N�G˜VÐ$Ñ%Ô%Ð%Ø€CÔÑÔÐØ€C„K� WÐ-Ñ-Ô-Ð-Ð-Ð-ó    c                 óÄ  — t          j        d¬¦  «        }t          j        ¦   «         }|                     || dd¬¦  «         |                     ||ddd¬	¦  «         |                     d
¦  «         |                     d¦  «         |                     dd¦  «         |                     dd¦  «         |                     d¬¦  «         t          j	        |d¬¦  «         ||fS )N©r   r   ©r!   ÚblueÚTARP)Úcolorr&   Úblackú--Úideal)rG   Ú	linestyler&   zCredibility Level $\alpha$zExpected Coverage Probabilityg        g      ð?F)Úframeonr(   r)   )
r:   ÚfigureÚgcaÚplotÚ
set_xlabelÚ
set_ylabelÚset_xlimÚset_ylimr3   r5   )ÚecpÚalphaÚsavenamer;   r>   s        r?   Ú	plot_tarprW   8   sÕ   € å
Œ*˜VÐ
$Ñ
$Ô
$€CÝŒw‰yŒy€Bà‡G‚GˆE�3˜f¨F€GÑ3Ô3Ð3Ø‡G‚GˆE�5 °4¸w€GÑGÔGÐGØ‡M‚MÐ/Ñ0Ô0Ð0Ø‡M‚MÐ2Ñ3Ô3Ð3Ø‡K‚K��SÑÔÐØ‡K‚K��SÑÔÐØ‡I‚I�e€IÑÔÐÝ„K� gÐ.Ñ.Ô.Ð.Ø�ˆ7€NrA   c                 ó\  — dd l m}  |j        d¬¦  «        } |j        ¦   «         }| j        d         }| j        d         } |j        |dd¬¦  «          |j        |d	dd
¬¦  «          |j        d¦  «          |j        d¦  «          |j        ddd¬¦  «         |j	        ddg          
                    d¦  «         |j	        ddg                              d¦  «         |j	        ddg                              d¦  «         |                     dddd¬¦  «          |j        |d¬¦  «         d S )Nr   rC   rD   Útraining_lossÚvalidation_lossÚtrainé   )r&   ÚlwÚ
validationrI   )r&   r]   ÚlsÚEpochÚLossFÚ	linecoloré   )rL   Ú
labelcolorÚfontsizeÚbottomÚleftÚdimgreyÚtopÚrighté   Úbothé   )ÚaxisÚwhichÚcolorsÚ	labelsizer(   r)   )r+   r   rM   rN   Ú_summaryrO   ÚxlabelÚylabelr3   ÚspinesÚ	set_colorÚset_visibleÚset_lwÚtick_paramsr5   )Ú	inferencerV   r:   r;   r>   Útrain_lossesÚ
val_lossess          r?   Ú	plot_lossr}   G   sX  € à#Ð#Ð#Ð#Ð#Ð#à
ˆ#Œ*˜VÐ
$Ñ
$Ô
$€CØˆsŒw‰yŒy€BàÔ% oÔ6€LØÔ#Ð$5Ô6€Jà€C„Hˆ\ ¨QÐ0Ñ0Ô0Ð0Ø€C„HˆZ˜|°°dÐ;Ñ;Ô;Ð;Ø€C„JˆwÑÔÐØ€C„JˆvÑÔÐØ€C„J�u¨¸rÐBÑBÔBÐBà„Iˆx˜Ð Ô!×+Ò+¨IÑ6Ô6Ð6Ø„Iˆu�gÐÔ×+Ò+¨EÑ2Ô2Ð2Ø„Iˆx˜Ð Ô!×(Ò(¨Ñ+Ô+Ð+Ø‡N‚N˜ f°YÈ"€NÑMÔMÐMà€C„K� gÐ.Ñ.Ô.Ð.Ð.Ð.rA   ÚcdfÚranksÚnum_posterior_samplesÚnum_binsÚ	plot_typeÚparameter_labelsÚranks_labelsrp   r;   r>   r!   Úreturnc
           	      ó0   — t          | ||||||f|||	dœ|
¤ŽS )aM  Plot simulation-based calibration ranks as empirical CDFs or histograms.

    Additional options can be passed via the kwargs argument, see _sbc_rank_plot.

    Args:
        ranks: Tensor of ranks to be plotted shape (num_sbc_runs, num_parameters), or
            list of Tensors when comparing several sets of ranks, e.g., set of ranks
            obtained from different methods.
        num_bins: number of bins used for binning the ranks, default is
            num_sbc_runs / 20.
        plot_type: type of SBC plot, histograms ("hist") or empirical cdfs ("cdf").
        parameter_labels: list of labels for each parameter dimension.
        ranks_labels: list of labels for each set of ranks.
        colors: list of colors for each parameter dimension, or each set of ranks.

    Returns:
        fig, ax: figure and axis objects.

    )r;   r>   r!   )Ú_sbc_rank_plot)r   r€   r�   r‚   rƒ   r„   rp   r;   r>   r!   Úkwargss              r?   Úsbc_rank_plotr‰   c   sK   € õB ØØØØØØØðð ØØðð ð ðð ð rA   é2   çš™™™™™é?Tç333333Ó?çš™™™™™¹?é   Fr#   rk   Únum_repeatsÚ
line_alphaÚshow_uniform_regionÚuniform_region_alphaÚxlim_offset_factorÚnum_colsÚparams_in_subplotsÚshow_ylabelÚshareyÚlegend_kwargsr%   r]   c                 ó¤	  — t          | t          t          j        f¦  «        r| g}nt          | t          ¦  «        sJ ‚| }t          |¦  «        D ]T\  }}t          |t          t          j        f¦  «        sJ ‚t          |t          ¦  «        r|                     ¦   «         ||<   ŒUddg}||v sJ ‚|€t          ¦   «         }|d         j        \  }}t          |¦  «        }|dk    s|dk    rd}|D ]}|j        |d         j        k    sJ ‚Œ|€d„ t          |¦  «        D ¦   «         }|€d„ t          |¦  «        D ¦   «         }|€|dz  }|�r |dz   }t          ||¦  «        }t          t          j        ||z  ¦  «        ¦  «        } |€
|d	z  | d	z  f}|�|€t          j        | |||¬
¦  «        \  }}t          j        |¦  «                             ¦   «         }!g }"g }#t          |¦  «        D �]“}$|!|$         }%t          j        |%¦  «         t          |¦  «        D �]c\  }&}'|dk    r•t'          |'d d …|$f         |d |€d|&› �n||&         ||$         › |$dk    |¬¦  «         |$dk    r=|%j        d         }(|"                     |(¦  «         |#                     ||&         ¦  «         |&dk    r|	rt-          ||
¬¦  «         Œ¡|dk    r©t/          |'d d …|$f         ||d |€dn||&         ||$         › |||||¬¦  «         |$dk    rSt          j        ddd|€dn||&         |¬¦  «        })|"                     |)¦  «         |#                     ||&         ¦  «         |&dk    rt3          ||||
¬¦  «         �ŒPt5          d|› d|› �¦  «        ‚�Œ•|!|         }*|*                     d¦  «          |*j        |"|#fdddœ|¤Ž t          |dz   t          |!¦  «        ¦  «        D ]}+|!|+                              d¦  «         Œnç|�|€t          j        dd|pd¬¦  «        \  }}t          j        |¦  «         g }"g }#|d         }'t          |¦  «        D ]s}$t'          |'d d …|$f         |d |€d|$› �n||$         d|$|dz
  k    |¬¦  «         |j        d         }(|"                     |(¦  «         |#                     ||$         ¦  «         Œt|	rt-          ||
¬¦  «          |j        |"|#fddi|¤Ž ||fS )Nr.   r~   r   r   Tc                 ó   — g | ]
}d |dz   › �‘ŒS )zdim r   © ©Ú.0Úis     r?   ú
<listcomp>z"_sbc_rank_plot.<locals>.<listcomp>É   s"   € ÐJÐJÐJ¨q˜N 1 q¡5˜N˜NÐJÐJÐJrA   c                 ó   — g | ]}d ‘ŒS )ÚRanksr›   rœ   s     r?   rŸ   z"_sbc_rank_plot.<locals>.<listcomp>Í   s   € Ð:Ð:Ð: A˜Ð:Ð:Ð:rA   é   rŽ   )r!   r—   ÚC)Úranks_labelrG   rs   r–   rU   éÿÿÿÿ)rU   Ú	firebrick)r¤   rG   rs   r–   rU   r“   r%   r]   )r   r   )rG   rU   z
plot_type z not defined, use one in ÚoffFÚcenter)rL   Úloc)é   é   rD   úPosterior RankrL   )Ú
isinstancer   ÚnpÚndarrayr   Ú	enumerater1   ÚdictÚshapeÚlenr-   ÚminÚintÚceilr:   r,   Ú
atleast_2dÚflattenÚscaÚ_plot_ranks_as_cdfÚlinesÚappendÚ*_plot_cdf_region_expected_under_uniformityÚ_plot_ranks_as_histr   Ú+_plot_hist_region_expected_under_uniformityÚ
ValueErrorrn   r3   ),r   r€   r�   r‚   rƒ   r„   rp   r�   r�   r‘   r’   r“   r”   r•   r–   r—   r;   r˜   r>   r!   r%   r]   Ú
ranks_listÚidxÚrankÚ
plot_typesÚnum_sbc_runsÚnum_parametersÚ	num_ranksÚrÚ	num_plotsÚnum_cols_effÚnum_rowsr<   Úlegend_handlesÚlegend_labelsÚjjÚ
current_axÚiiÚrankiÚlineÚpatchÚ	legend_axÚks,                                               r?   r‡   r‡   ’   sg  € õ8 �%�&¥"¤*Ð-Ñ.Ô.ð Ø�Wˆ
ˆ
å˜%¥Ñ&Ô&Ð&Ð&Ð&Øˆ
å˜zÑ*Ô*ð +ð +‰	ˆˆTÝ˜$¥­¬Ð 4Ñ5Ô5Ð5Ð5Ð5Ý�d�FÑ#Ô#ð 	+Ø"Ÿjšj™lœlˆJ�s‰Oøà˜%�€JØ˜
Ð"Ð"Ð"Ð"àÐÝ™œˆà#-¨a¤=Ô#6Ñ €L�.Ý�J‘”€Ià�1‚}€}˜	 VÒ+Ð+Ø!Ðàð .ð .ˆØŒw˜* Qœ-Ô-Ò-Ð-Ð-Ð-Ð-àÐØJÐJµE¸.Ñ4IÔ4IÐJÑJÔJÐàÐà:Ð:­¨yÑ)9Ô)9Ð:Ñ:Ô:ˆàÐØ 2Ñ%ˆð
 ñ W
ð # QÑ&ˆ	Ý˜8 YÑ/Ô/ˆÝ•r”w˜y¨<Ñ7Ñ8Ô8Ñ9Ô9ˆàˆ?Ø# aÑ'¨°A©Ð6ˆGàˆ;˜"˜*Ý”lØØØØð	ñ ô ‰GˆC�õ Œ}˜RÑ Ô ×(Ò(Ñ*Ô*ˆàˆØˆõ
 ˜Ñ'Ô'ð ?	ñ ?	ˆBØ˜bœˆJÝŒG�JÑÔÐå& zÑ2Ô2ð ;ñ ;‘	��Eà Ò%Ð%Ý&Ø˜a˜a˜a ˜eœØ-Ø$(Ø*0¨.˜h "˜h˜h˜h¸fÀR¼jØ"2°2Ô"6Ð8Ø%'¨1¢WØ(ðñ ô ð ð ˜Q’w�wØ)Ô/°Ô3˜Ø&×-Ò-¨dÑ3Ô3Ð3Ø%×,Ò,¨\¸"Ô-=Ñ>Ô>Ð>à˜Q’w�wÐ#6�wÝBØ(Ø"6ðñ ô ð øð
  &Ò(Ð(Ý'Ø˜a˜a˜a ˜eœØ Ø-Ø$(Ø-3¨^˜k˜kÀÈÄØ"2°2Ô"6Ð8Ø$/Ø(Ø+=Ø!)Øðñ ô ð ð ˜Q’w�wÝ #¤Ø" A qØ17° + +ÀVÈBÄZØ",ð!ñ !ô !˜ð
 '×-Ò-¨eÑ4Ô4Ð4Ø%×,Ò,¨\¸"Ô-=Ñ>Ô>Ð>à˜Q’w�wÝCØ(Ø$Ø1Ø"6ð	ñ ô ð ùõ %ØU YÐUÐUÈÐUÐUñô ð ñs;ðD ˜Ô(ˆ	Ø�Š�uÑÔÐàˆ	ÔØØð	
ð Øð		
ð 	
ð
 ð	
ð 	
ð 	
õ �~¨Ñ)­3¨t©9¬9Ñ5Ô5ð 	 ð 	 ˆAØ�ŒG�LŠL˜ÑÔÐÐð	 ð ˆ;˜"˜*Ý”l 1 a°Ð1B¸FÐCÑCÔC‰GˆC�åŒ�‰ŒˆàˆØˆà˜1”ˆå˜Ñ'Ô'ð 	7ð 	7ˆBÝØ�a�a�a˜�e”Ø%Ø Ø"( .�h˜"�h�h�h°f¸R´jØ'Ø >°AÑ#5Ò5Ø ðñ ô ð ð ”8˜B”<ˆDØ×!Ò! $Ñ'Ô'Ð'Ø× Ò Ð!1°"Ô!5Ñ6Ô6Ð6Ð6àð 	Ý6ØØ*ðñ ô ð ð
 	ˆŒ	ØØð	
ð 	
ð ð	
ð ð		
ð 	
ð 	
ð �ˆ7€NrA   r¦   r\   r¤   rs   rG   rU   Ú	num_ticksc           	      óÐ  — d}t          j        | |||||
|¬¦  «         |rt          j        d¦  «         nt          j        g ¦  «         t          j        | ||z   ¦  «         t          j        t          j        d||¦  «        ¦  «         t          j        |€dn|¦  «         t          j	        ¦   «         }|j
                             ¦   «         D ]}|                     d¦  «         ŒdS )aQ  Plot ranks as histograms on the current axis.

    Args:
        ranks: SBC ranks in shape (num_sbc_runs, )
        num_bins: number of bins for the histogram, recommendation is num_sbc_runs / 20.
        num_posteriors_samples: number of posterior samples used for ranking.
        ranks_label: label for the ranks, e.g., when comparing ranks of different
            methods.
        xlabel: label for the current parameter.
        color: histogram color, default from Talts et al.
        alpha: histogram transparency.
        show_ylabel: whether to show y-label "counts".
        show_legend: whether to show the legend, e.g., when comparing multiple ranks.
        num_ticks: number of ticks on the x-axis.
        xlim_offset_factor: factor for empty space left and right of the histogram.
        legend_kwargs: kwargs for the legend.
    r   )Úbinsr&   rG   rU   r%   r]   ÚcountsNr¬   F)r:   r.   rt   ÚyticksÚxlimÚxticksr®   Úlinspacers   rN   ru   Úvaluesrw   )r   r�   r€   r¤   rs   rG   rU   r–   rÖ   r“   r%   r]   Úxlim_offsetr>   Úspines                  r?   r¾   r¾   p  sý   € ð> €KÝ„HØØØØØØØðñ ô ð ð ð ÝŒ
�8ÑÔÐÐåŒ
�2‰Œˆå„Hˆkˆ\Ð0°;Ñ>Ñ?Ô?Ð?Ý„J�rŒ{˜1Ð3°YÑ?Ô?Ñ@Ô@Ð@Ý„J 6 >ÐÐ°vÑ>Ô>Ð>å	Œ‰Œ€Bà”×!Ò!Ñ#Ô#ð !ð !ˆØ×Ò˜%Ñ Ô Ð Ð ð!ð !rA   r«   c                 óœ  — t          j        | ¦  «        |z  } t          j        | ¦  «        }t          j        dt	          |¦  «        dz   ¦  «        t	          |¦  «        z  }	t          j        ||	|||¬¦  «         |r=t          j        d¦  «         t          j        t          j	        ddd¦  «        ¦  «         n)t          j        t          j	        ddd¦  «        g ¦  «         t          j
        dd¦  «         t          j        dd¦  «         t          j        t          j	        dd|¦  «        ¦  «         t          j        |€dn|¦  «         dS )z<Plot ranks as a true empirical CDF (continuous, no binning).r   )r&   rG   rU   zEmpirical CDFr   r«   Nr¬   )r®   ÚasarrayÚsortÚaranger³   r:   rO   rt   rÚ   rÝ   ÚylimrÛ   rÜ   rs   )
r   r€   r¤   rs   rG   rU   r–   rÖ   r=   Úys
             r?   rº   rº   ©  s-  € õ ŒJ�uÑÔÐ 5Ñ5€Eõ 	Œ�‰Œ€AÝ
Œ	�!•S˜‘V”V˜a‘ZÑ Ô ¥3 q¡6¤6Ñ)€Aå„HØ	Ø	ØØØðñ ô ð ð ð -ÝŒ
�?Ñ#Ô#Ð#ÝŒ
•2”;˜q ! QÑ'Ô'Ñ(Ô(Ð(Ð(åŒ
•2”;˜q ! QÑ'Ô'¨Ñ,Ô,Ð,å„HˆQ��N„N€NÝ„HˆQ��N„N€NÝ„J�rŒ{˜1˜a Ñ+Ô+Ñ,Ô,Ð,Ý„J 6 >ÐÐ°vÑ>Ô>Ð>Ð>Ð>rA   çš™™™™™É?Úgrayéô  rÅ   Ú
num_pointsc                 óÊ   — t          j        dd|¦  «        }t          j        d| |¦  «        | z  }t          j        d| |¦  «        | z  }t	          j        |||||d¬¦  «         dS )z5Continuous confidence band for ECDF under uniformity.r   r   ç{®Gázt?ç×£p=
×ï?úExpected Under Uniformity)rG   rU   r&   N)r®   rÝ   r   Úppfr:   Úfill_between)rÅ   rU   rG   rê   r=   ÚlowerÚuppers          r?   r½   r½   Ï  s}   € õ 	Œ�A�q˜*Ñ%Ô%€AåŒI�e˜\¨1Ñ-Ô-°Ñ<€EÝŒI�e˜\¨1Ñ-Ô-°Ñ<€EåÔØ	ØØØØØ)ðñ ô ð ð ð rA   c                 óV  — t          | d|dz   z  ¬¦  «                             d¦  «        }t          | d|dz   z  ¬¦  «                             d¦  «        }t          j        t	          j        d||¦  «        t	          j        ||¦  «        t	          j        ||¦  «        ||d¬¦  «         dS )	z8Plot region of empirical cdfs expected under uniformity.r   )Úprì   rí   r   rî   )r=   Úy1Úy2rG   rU   r&   N)r   rï   r:   rð   r®   rÝ   Úrepeat)rÅ   r�   r€   rU   rG   rñ   rò   s          r?   r¿   r¿   æ  sµ   € õ �, ! x°!¡|Ñ"4Ð5Ñ5Ô5×9Ò9¸%Ñ@Ô@€EÝ�, ! x°!¡|Ñ"4Ð5Ñ5Ô5×9Ò9¸%Ñ@Ô@€Eõ ÔÝ
Œ+�aÐ.°Ñ
9Ô
9ÝŒ9�U˜HÑ%Ô%ÝŒ9�U˜HÑ%Ô%ØØØ)ðñ ô ð ð ð rA   )Nr~   NNNNNN)Nr~   NNNrŠ   r‹   TrŒ   r�   rŽ   FFFNNNNr#   rk   )	NNr¦   r‹   Fr\   r�   r#   rk   )NNNr‹   Tr«   )rç   rè   ré   )rç   rè   )4ÚcopyÚtypingr   r   r   r   r   r   r	   r
   r   r   r   Úwarningsr   Ú
matplotlibÚmplr1   r®   Útorchr   r   r:   Úmatplotlib.axesr   Úmatplotlib.colorsr   Úmatplotlib.figurer   r   Úmatplotlib.patchesr   Úscipy.statsr   r   r   r   r@   rW   r}   r¯   rµ   ÚstrÚtupler‰   ÚfloatÚboolr‡   r¾   rº   r½   r¿   r›   rA   r?   ú<module>r     s!  ðØ €€€ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð Ð Ð Ð Ð Ð à Ð Ð Ð Ø Ð Ð Ð Ø €€€Ø Ð Ð Ð Ð Ð Ø $Ð $Ð $Ð $Ð $Ð $Ø  Ð  Ð  Ð  Ð  Ð  Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø (Ð (Ð (Ð (Ð (Ð (Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø Ð Ð Ð Ð Ð ð.ð .ð .ð,ð ð ð/ð /ð /ð> #ØØ,0Ø(,Ø"&Ø ØØ#ð-ð -Ø�˜œ T¨&¤\°4¸¼
Ô3CÐCÔDð-àð-ð �sŒmð-ð ð	-ð
 ˜t CœyÔ)ð-ð ˜4 œ9Ô%ð-ð �T˜#”YÔð-ð 
�&Ô	ð-ð 	�Œð-ð �eŒ_ð-ð ˆ6�4ˆ<Ôð-ð -ð -ð -ðd #ØØ,0Ø(,Ø"&ØØØ $Ø"%Ø #ØØ$ØØØ $Ø$(ØØ#Ø$Øð-\ð \Ø�˜œ T¨&¤\°4¸¼
Ô3CÐCÔDð\àð\ð �sŒmð\ð ð	\ð
 ˜t CœyÔ)ð\ð ˜4 œ9Ô%ð\ð �T˜#”YÔð\ð ð\ð ð\ð ð\ð  ð\ð ð\ð ð\ð ð\ð ð\ð  ð!\ð" 
�*Ô	ð#\ð$ ˜D”>ð%\ð( �eŒ_ð)\ð* �sŒmð+\ð, �sŒmð-\ð. ˆ6�4ˆ<Ôð/\ð \ð \ð \ðD "&Ø ØØØØØ #ØØð6!ð 6!ØŒ:ð6!àð6!ð ð6!ð ˜#”ð	6!ð
 �SŒMð6!ð ð6!ð ð6!ð ð6!ð ð6!ð ð6!ð ð6!ð 
ð6!ð 6!ð 6!ð 6!ðx "&Ø ØØØØð$?ð $?ØŒ:ð$?àð$?ð ˜#”ð$?ð �SŒMð	$?ð
 �CŒ=ð$?ð ð$?ð ð$?ð ð$?ð 
ð$?ð $?ð $?ð $?ðP ØØð	ð Øðàðð ðð ð	ð
 
ðð ð ð ð6 Øðð Øðàðð ðð ð	ð
 ðð 
ðð ð ð ð ð rA   