§
    ³[6gn.  ã            
       óB  — d Z ddlZddlZddl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 d„ Zd	„ Z ed
dddddœ¦  «        Zd„ Zej        dej        dej        dej        dej        diZd#d„Zd$d„Zd„ Zd„ Zd„ Zd„ Z d„ Z!d„ Z"d„ Z#d%d „Z$d!„ Z%d"„ Z&dS )&zk
Utility Routines for Working with Matplotlib Objects
====================================================
é    N)ÚcolorConverter)ÚPath)ÚMarkerStyle)ÚAffine2D)Útickerc                 ó†  — | �t          j        | ¦  «        d         dk    rdS t          j        | ¦  «        d         dk    r(t          j        | ¦  «        } dj        d„ |D ¦   «         Ž S t          j        | ¦  «        }dd	                     d
„ |dd…         D ¦   «         ¦  «        z   d	z   t          |d         ¦  «        z   dz   S )z8Convert matplotlib color code to hex color or RGBA colorNé   r   Únoneé   z#{0:02X}{1:02X}{2:02X}c              3   ó:   K  — | ]}t          d |z  ¦  «        V — ŒdS ©éÿ   N)Úint)Ú.0Úcs     úd/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/plotly/matplotlylib/mplexporter/utils.pyú	<genexpr>zexport_color.<locals>.<genexpr>   s,   è è € Ð0KÐ0KÀ!µ°S¸1±W±´Ð0KÐ0KÐ0KÐ0KÐ0KÐ0Kó    zrgba(z, c           	   3   óx   K  — | ]5}t          t          t          j        |d z  ¦  «        ¦  «        ¦  «        V — Œ6dS r   )Ústrr   ÚnpÚround)r   Úvals     r   r   zexport_color.<locals>.<genexpr>    s@   è è € ÐGÐG¸#��C¥¤¨¨s©Ñ 3Ô 3Ñ4Ô4Ñ5Ô5ÐGÐGÐGÐGÐGÐGr   ú))r   Úto_rgbaÚto_rgbÚformatÚjoinr   )ÚcolorÚrgbr   s      r   Úexport_colorr!      sÛ   € à€}�Ô.¨uÑ5Ô5°aÔ8¸AÒ=Ð=ØˆvÝ	Ô	 Ñ	&Ô	& qÔ	)¨QÒ	.Ð	.ÝÔ# EÑ*Ô*ˆØ.Ð'Ô.Ð0KÐ0KÀsÐ0KÑ0KÔ0KÐLÐLåÔ" 5Ñ)Ô)ˆàØ�iŠiÐGÐGÀÀ2ÀAÀ2ÄÐGÑGÔGÑGÔGñHàñõ �!�A”$‰iŒiñð ñ	ð	
r   c                 óX   — t          d„ |                      ¦   «         D ¦   «         ¦  «        S )z5Convert a many-to-one mapping to a one-to-one mappingc              3   ó.   K  — | ]\  }}|D ]}||fV — Œ	Œd S ©N© )r   Úkeysr   Úkeys       r   r   z_many_to_one.<locals>.<genexpr>)   s7   è è € ÐOÐO™y˜t SÈ$ÐOÐOÀ3��c�
ÐOÐOÐOÐOÐOÐOÐOr   )ÚdictÚitems)Ú
input_dicts    r   Ú_many_to_oner+   '   s+   € åÐOÐO¨J×,<Ò,<Ñ,>Ô,>ÐOÑOÔOÑOÔOÐOr   r
   z6,6z2,2z4,4,2,4))Úsolidú-)NN)Údashedz--)Údottedú:)Údashdotz-.)Ú ú ÚNoner
   c                 óh  — | j                              dd¦  «        �-d                     t          t          | j        ¦  «        ¦  «        S |                      ¦   «         }t                               |d¦  «        }|dk    r4t          j	        d 
                    |¦  «        ¦  «         t          d         }|S )ap  Get an SVG dash array for the given matplotlib linestyle

    Parameters
    ----------
    obj : matplotlib object
        The matplotlib line or path object, which must have a get_linestyle()
        method which returns a valid matplotlib line code

    Returns
    -------
    dasharray : string
        The HTML/SVG dasharray code associated with the object.
    Ú_dashSeqNú,z	not foundz:line style '{0}' not understood: defaulting to solid line.r,   )Ú__dict__Úgetr   Úmapr   r6   Úget_linestyleÚ
LINESTYLESÚwarningsÚwarnr   )ÚobjÚlsÚ	dasharrays      r   Úget_dasharrayrB   7   sŸ   € ð „|×Ò˜
 DÑ)Ô)Ð5Ø�xŠx��C ¤Ñ.Ô.Ñ/Ô/Ð/à×ÒÑ Ô ˆÝ—N’N 2 {Ñ3Ô3ˆ	Ø˜Ò#Ð#ÝŒMð,ß,2ªF°2©J¬Jñô ð õ # 7Ô+ˆIØÐr   ÚLÚMÚSÚCÚZFc                 ó\  — |�|                       |¦  «        } d„ |                      |¬¦  «        D ¦   «         }|st          j        d¦  «        g fS t	          |Ž \  }}t          j        t          t          j        |Ž ¦  «        ¦  «         	                    dd¦  «        }|t          |¦  «        fS )aÓ  Construct the vertices and SVG codes for the path

    Parameters
    ----------
    path : matplotlib.Path object

    transform : matplotlib transform (optional)
        if specified, the path will be transformed before computing the output.

    Returns
    -------
    vertices : array
        The shape (M, 2) array of vertices of the Path. Note that some Path
        codes require multiple vertices, so the length of these vertices may
        be longer than the list of path codes.
    path_codes : list
        A length N list of single-character path codes, N <= M. Each code is
        a single character, in ['L','M','S','C','Z']. See the standard SVG
        path specification for a description of these.
    Nc                 óV   — g | ]&\  }}|t           j        k    r|ng t          |         f‘Œ'S r%   )r   Ú	CLOSEPOLYÚ	PATH_DICT)r   ÚverticesÚ	path_codes      r   ú
<listcomp>zSVG_path.<locals>.<listcomp>t   sF   € ð ð ð á!ˆX�yð ¥$¤.Ò0Ð0ˆˆ°b½)ÀIÔ:NÐOðð ð r   )Úsimplify)r   é   éÿÿÿÿrP   )
ÚtransformedÚiter_segmentsr   ÚzerosÚzipÚarrayÚlistÚ	itertoolsÚchainÚreshape)ÚpathÚ	transformrO   Ú	vc_tuplesrL   Úcodess         r   ÚSVG_pathr_   \   s·   € ð* ÐØ×Ò 	Ñ*Ô*ˆðð à%)×%7Ò%7ÀÐ%7Ñ%JÔ%Jðñ ô €Ið
 ð %åŒx˜ÑÔ Ð#Ð#å˜y˜/‰ˆ�%Ý”8�D¥¤°(Ð!;Ñ<Ô<Ñ=Ô=×EÒEÀbÈ!ÑLÔLˆØ�˜e™œÐ$Ð$r   Tc                 ór  — i }|                       ¦   «         |d<   |d         €d|d<   t          |                      ¦   «         ¦  «        |d<   |r%t          |                      ¦   «         ¦  «        |d<   nd|d<   |                      ¦   «         |d<   t          | ¦  «        |d<   |                      ¦   «         |d	<   |S )
z4Get the style dictionary for matplotlib path objectsÚalphaNr   Ú	edgecolorÚ	facecolorr
   Ú	edgewidthrA   Úzorder)Ú	get_alphar!   Úget_edgecolorÚget_facecolorÚget_linewidthrB   Ú
get_zorder)r[   ÚfillÚstyles      r   Úget_path_stylerm   ‚   s¾   € à€EØ—^’^Ñ%Ô%€Eˆ'�NØˆW„~ÐØˆˆg‰Ý% d×&8Ò&8Ñ&:Ô&:Ñ;Ô;€Eˆ+ÑØð $Ý)¨$×*<Ò*<Ñ*>Ô*>Ñ?Ô?ˆˆkÑÐà#ˆˆkÑØ×+Ò+Ñ-Ô-€Eˆ+ÑÝ& tÑ,Ô,€Eˆ+ÑØ—o’oÑ'Ô'€Eˆ(�OØ€Lr   c                 óH  — i }|                       ¦   «         |d<   |d         €d|d<   t          |                      ¦   «         ¦  «        |d<   |                      ¦   «         |d<   t	          | ¦  «        |d<   |                      ¦   «         |d<   |                      ¦   «         |d<   |S )	z4Get the style dictionary for matplotlib line objectsra   Nr   r   Ú	linewidthrA   re   Ú	drawstyle)rf   r!   Ú	get_colorri   rB   rj   Úget_drawstyle)Úlinerl   s     r   Úget_line_stylert   “   sž   € à€EØ—^’^Ñ%Ô%€Eˆ'�NØˆW„~ÐØˆˆg‰Ý! $§.¢.Ñ"2Ô"2Ñ3Ô3€Eˆ'�NØ×+Ò+Ñ-Ô-€Eˆ+ÑÝ& tÑ,Ô,€Eˆ+ÑØ—o’oÑ'Ô'€Eˆ(�OØ×+Ò+Ñ-Ô-€Eˆ+ÑØ€Lr   c                 óš  — i }|                       ¦   «         |d<   |d         €d|d<   t          |                      ¦   «         ¦  «        |d<   t          |                      ¦   «         ¦  «        |d<   |                      ¦   «         |d<   |                      ¦   «         |d<   t          |                      ¦   «         ¦  «        }|                      ¦   «         }|                     ¦   «         t          ¦   «          
                    || ¦  «        z   }t          |                     ¦   «         |¦  «        |d<   ||d	<   |                      ¦   «         |d
<   |S )z6Get the style dictionary for matplotlib marker objectsra   Nr   rc   rb   rd   ÚmarkerÚ
markerpathÚ
markersizere   )rf   r!   Úget_markerfacecolorÚget_markeredgecolorÚget_markeredgewidthÚ
get_markerr   Úget_markersizeÚget_transformr   Úscaler_   Úget_pathrj   )rs   rl   Úmarkerstylerx   Úmarkertransforms        r   Úget_marker_stylerƒ   ¡   s1  € à€EØ—^’^Ñ%Ô%€Eˆ'�NØˆW„~ÐØˆˆg‰å% d×&>Ò&>Ñ&@Ô&@ÑAÔA€Eˆ+ÑÝ% d×&>Ò&>Ñ&@Ô&@ÑAÔA€Eˆ+ÑØ×1Ò1Ñ3Ô3€Eˆ+Ñà—o’oÑ'Ô'€Eˆ(�OÝ˜dŸošoÑ/Ô/Ñ0Ô0€KØ×$Ò$Ñ&Ô&€JØ!×/Ò/Ñ1Ô1µH±J´J×4DÒ4DØ�Z�Kñ5ô 5ñ €Oõ # ;×#7Ò#7Ñ#9Ô#9¸?ÑKÔK€Eˆ,ÑØ$€Eˆ,ÑØ—o’oÑ'Ô'€Eˆ(�OØ€Lr   c                 ó”  — i }|                       ¦   «         |d<   |d         €d|d<   |                      ¦   «         |d<   t          |                      ¦   «         ¦  «        |d<   |                      ¦   «         |d<   |                      ¦   «         |d<   | j        |d<   |                      ¦   «         |d	<   |                      ¦   «         |d
<   |S )z.Return the text style dict for a text instancera   Nr   Úfontsizer   ÚhalignÚvalignÚmalignÚrotationre   )	rf   Úget_sizer!   rq   Úget_horizontalalignmentÚget_verticalalignmentÚ_multialignmentÚget_rotationrj   )Útextrl   s     r   Úget_text_styler�   ¸   s¾   € à€EØ—^’^Ñ%Ô%€Eˆ'�NØˆW„~ÐØˆˆg‰ØŸš™œ€Eˆ*ÑÝ! $§.¢.Ñ"2Ô"2Ñ3Ô3€Eˆ'�NØ×2Ò2Ñ4Ô4€Eˆ(�OØ×0Ò0Ñ2Ô2€Eˆ(�OØÔ*€Eˆ(�OØ×)Ò)Ñ+Ô+€Eˆ*ÑØ—o’oÑ'Ô'€Eˆ(�OØ€Lr   c                 óÐ  — i }| j                              dd¦  «        }t          | t          j        j        ¦  «        r|rd|d<   nUd|d<   nOt          | t          j        j        ¦  «        r|rd|d<   n(d|d<   n"t          d                     | ¦  «        ¦  «        ‚|  	                    ¦   «         }t           |¦   «         ¦  «        |d	<   t          |t          j        ¦  «        rt           |¦   «         ¦  «        |d
<   nd|d
<   |                      ¦   «         }t          |t          j        ¦  «        rd|d<   n·t          |t          j        ¦  «        rt          |j        ¦  «        |d<   n…t          |t          j        ¦  «        r5t          |j        j        d                              ¦   «         ¦  «        |d<   n6t-          d„ |                      ¦   «         D ¦   «         ¦  «        sd|d<   nd|d<   |                      ¦   «         |d<   |                      ¦   «         }|r|d                              ¦   «         |d<   nd|d<   t5          | ¦  «        |d<   |                      ¦   «         |d<   |S )z=Return the property dictionary for a matplotlib.Axis instanceÚlabel1OnTÚbottomÚpositionÚtopÚleftÚrightz{0} should be an Axis instanceÚnticksÚ
tickvaluesNr2   Ú
tickformatr   c              3   ó>   K  — | ]}|                      ¦   «         V — Œd S r$   )Úget_visible)r   Úlabels     r   r   z&get_axis_properties.<locals>.<genexpr>ê   s.   è è € ÐHÐH¨�×"Ò"Ñ$Ô$ÐHÐHÐHÐHÐHÐHr   r   r…   ÚgridÚvisible)Ú_major_tick_kwr9   Ú
isinstanceÚ
matplotlibÚaxisÚXAxisÚYAxisÚ
ValueErrorr   Úget_major_locatorÚlenr   ÚFixedLocatorrW   Úget_major_formatterÚNullFormatterÚFixedFormatterÚseqÚFuncFormatterÚfuncÚargsÚvaluesÚanyÚget_ticklabelsÚ	get_scaleÚget_fontsizeÚget_grid_stylerœ   )r£   Úpropsr’   ÚlocatorÚ	formatterÚlabelss         r   Úget_axis_propertiesr»   È   sz  € à€EØÔ"×&Ò& z°4Ñ8Ô8€Hå�$�
œÔ-Ñ.Ô.ð HØð 	&Ø (ˆE�*ÑÐà %ˆE�*ÑÐÝ	�D�*œ/Ô/Ñ	0Ô	0ð HØð 	(Ø &ˆE�*ÑÐà 'ˆE�*ÑÐåÐ9×@Ò@ÀÑFÔFÑGÔGÐGð ×$Ò$Ñ&Ô&€GÝ˜'˜'™)œ)‘n”n€Eˆ(�OÝ�'�6Ô.Ñ/Ô/ð #Ý" 7 7¡9¤9™oœoˆˆlÑÐà"ˆˆlÑð ×(Ò(Ñ*Ô*€IÝ�)�VÔ1Ñ2Ô2ð 	#Ø ˆˆlÑÐÝ	�I�vÔ4Ñ	5Ô	5ð #Ý" 9¤=Ñ1Ô1ˆˆlÑÐÝ	�I�vÔ3Ñ	4Ô	4ð #Ý" 9¤>Ô#6°qÔ#9×#@Ò#@Ñ#BÔ#BÑCÔCˆˆlÑÐÝÐHÐH°$×2EÒ2EÑ2GÔ2GÐHÑHÔHÑHÔHð #Ø ˆˆlÑÐà"ˆˆlÑð —^’^Ñ%Ô%€Eˆ'�Nð × Ò Ñ"Ô"€FØð !Ø" 1œI×2Ò2Ñ4Ô4ˆˆjÑÐà ˆˆjÑõ # 4Ñ(Ô(€Eˆ&�Mð ×'Ò'Ñ)Ô)€Eˆ)Ñà€Lr   c                 óD  — |                       ¦   «         }| j        d         r|t          |¦  «        dk    rit          |d                              ¦   «         ¦  «        }|d                              ¦   «         }t          |d         ¦  «        }t          d|||¬¦  «        S ddiS )NÚgridOnr   T)r½   r   rA   ra   F)Úget_gridlinesr    r¨   r!   rq   rf   rB   r(   )r£   Ú	gridlinesr   ra   rA   s        r   r¶   r¶     s˜   € Ø×"Ò"Ñ$Ô$€IØÔ˜8Ô$ð !­¨Y©¬¸!Ò);Ð);Ý˜Y qœ\×3Ò3Ñ5Ô5Ñ6Ô6ˆØ˜!”×&Ò&Ñ(Ô(ˆÝ! )¨A¤,Ñ/Ô/ˆ	Ý˜4 u¸	ÈÐOÑOÔOÐOà˜%Ð Ð r   c                 ó`   — |                       ¦   «         |                      ¦   «         | j        dœS )N)ÚfigwidthÚ	figheightÚdpi)Úget_figwidthÚget_figheightrÃ   )Úfigs    r   Úget_figure_propertiesrÇ     s4   € à×$Ò$Ñ&Ô&Ø×&Ò&Ñ(Ô(ØŒwðð ð r   c                 ó(  ‡‡	— t          | j                             ¦   «         ¦  «        | j                             ¦   «         |                      ¦   «         j        |                      ¦   «         | j        |                      ¦   «         | j         	                    ¦   «         t          | j        ¦  «        t          | j        ¦  «        gdœ}dD �]H}t          | |dz   ¦  «        Š t          | d                     |¦  «        ¦  «        ¦   «         }|}t          ‰j        t"          j        j        ¦  «        r}d}	 dd lŠ	ddlm} n# t.          $ r d Š	Y nw xY w‰	�1t          ‰j        |¦  «        rˆˆ	fd„|D ¦   «         }d	„ |D ¦   «         }n>d
„ t"          j                             |¦  «        D ¦   «         }n‰                     ¦   «         }|dvr4t5          d                     ‰                     ¦   «         ¦  «        ¦  «        ‚|||dz   <   |||dz   <   |||dz   <   �ŒJ|S )N)ÚaxesbgÚaxesbgalphaÚboundsÚdynamicÚaxisonÚframe_onÚpatch_visibleÚaxes)ÚxÚyr£   z
get_{0}limÚdater   )ÚPeriodConverterc                 ób   •— g | ]+}‰                      t          |¦  «        ‰j        ¬ ¦  «        ‘Œ,S ))ÚordinalÚfreq)ÚPeriodr   r×   )r   Údr£   Úpds     €€r   rN   z'get_axes_properties.<locals>.<listcomp>.  s1   ø€ ÐTÐTÐTÈ˜"Ÿ)š)­C°©F¬F¸¼˜)ÑCÔCÐTÐTÐTr   c           	      ób   — g | ],}|j         |j        d z
  |j        |j        |j        |j        df‘Œ-S )r   r   )ÚyearÚmonthÚdayÚhourÚminuteÚsecond©r   rÙ   s     r   rN   z'get_axes_properties.<locals>.<listcomp>/  sG   € ð ð ð àð ”V˜QœW q™[¨!¬%°´¸¼À1Ä8ÈQÐOðð ð r   c           
      ór   — g | ]4}|j         |j        d z
  |j        |j        |j        |j        |j        dz  f‘Œ5S )r   gü©ñÒMbP?)rÜ   rÝ   rÞ   rß   rà   rá   Úmicrosecondrâ   s     r   rN   z'get_axes_properties.<locals>.<listcomp>4  sX   € ð ð ð ð ð œØœ !™ØœØœØœØœØœ¨Ñ,ððð ð r   )rÓ   ÚlinearÚlogzUnknown axis scale: {0}r   ÚlimÚdomain)r!   Úpatchrh   rf   Úget_positionrË   Úget_navigaterÍ   Úget_frame_onrœ   r»   ÚxaxisÚyaxisÚgetattrr   r¡   Ú	converterr¢   ÚdatesÚDateConverterÚpandasÚpandas.tseries.converterrÔ   ÚImportErrorÚnum2dater´   r¦   )
Úaxr·   Úaxnamerè   rç   r   rÔ   Ú_datesr£   rÚ   s
           @@r   Úget_axes_propertiesrú     sL  øø€ å˜rœx×5Ò5Ñ7Ô7Ñ8Ô8Ø”x×)Ò)Ñ+Ô+Ø—/’/Ñ#Ô#Ô*Ø—?’?Ñ$Ô$Ø”)Ø—O’OÑ%Ô%Øœ×-Ò-Ñ/Ô/Ý$ R¤XÑ.Ô.Õ0CÀBÄHÑ0MÔ0MÐNð	ð 	€Eð ð '*ñ '*ˆÝ�r˜6 F™?Ñ+Ô+ˆØ9•˜˜\×0Ò0°Ñ8Ô8Ñ9Ô9Ñ;Ô;ˆØˆÝ�d”n¥jÔ&6Ô&DÑEÔEð 	%ØˆEðØ#Ð#Ð#Ð#ØDÐDÐDÐDÐDÐDÐDøÝð ð ð Ø���ðøøøð ˆ~¥*¨T¬^¸_Ñ"MÔ"Mˆ~ØTÐTÐTÐTÐTÈVÐTÑTÔT�ðð à#ðñ ô ��ð
ð õ (Ô-×6Ò6°vÑ>Ô>ðñ ô ��ð —N’NÑ$Ô$ˆEàÐ1Ð1Ð1ÝÐ9×@Ò@ÀÇÂÑAQÔAQÑRÔRÑSÔSÐSà"'ˆˆf�wÑÑØ #ˆˆf�u‰nÑØ#)ˆˆf�xÑÑ Ñ à€Ls   Ä2
D=Ä=EÅEc              #   óè   K  — t          | d¦  «        r[t          |                      ¦   «         ¦  «        dk    r6|                      ¦   «         D ]}|s|V — t          ||¦  «        D ]}|V — ŒŒ dS | V — dS )z­
    Returns an iterator over all childen and nested children using
    obj's get_children() method

    if skipContainers is true, only childless objects are returned.
    Úget_childrenr   N)Úhasattrr¨   rü   Úiter_all_children)r?   ÚskipContainersÚchildÚ
grandchilds       r   rþ   rþ   M  sª   è è € õ ˆs�NÑ#Ô#ð ­¨C×,<Ò,<Ñ,>Ô,>Ñ(?Ô(?À!Ò(CÐ(CØ×%Ò%Ñ'Ô'ð 	!ð 	!ˆEØ!ð Ø���å/°°~ÑFÔFð !ð !�
Ø Ð Ð Ð Ð ð!ð		!ð 	!ð ˆ	ˆ	ˆ	ˆ	ˆ	r   c                 ód   — |                       ¦   «         \  }}|                     ¦   «         }|||dœS )N)Úhandlesrº   rŸ   )Úget_legend_handles_labelsrœ   )r÷   Úlegendr  rº   rŸ   s        r   Úget_legend_propertiesr  _  s8   € Ø×2Ò2Ñ4Ô4�O€GˆVØ× Ò Ñ"Ô"€GØ¨&¸WÐEÐEÐEr   c                 óœ  — | j         }t          j        ¦   «         }|                     ¦   «         }|                     |                      ¦   «         ¦  «         |                      |¦  «         |                     |¦  «         |                     d¦  «         t          j        | 	                    ¦   «         ¦  «         
                    d¦  «        S )a$  
    Convert a matplotlib image to a base64 png representation

    Parameters
    ----------
    image : matplotlib image object
        The image to be converted.

    Returns
    -------
    image_base64 : string
        The UTF8-encoded base64 string representation of the png image.
    r   zutf-8)rÐ   ÚioÚBytesIOr£   Ú
get_extentÚ	write_pngÚseekÚbase64Ú	b64encodeÚreadÚdecode)Úimager÷   Úbinary_bufferrç   s       r   Úimage_to_base64r  e  s£   € ð 
Œ€BÝ”J‘L”L€Mð �'Š'‰)Œ)€CØ‡G‚GˆE×ÒÑÔÑÔÐØ	‡O‚O�MÑ"Ô"Ð"Ø‡G‚GˆC�L„L€Là×Ò�qÑÔÐÝÔ˜M×.Ò.Ñ0Ô0Ñ1Ô1×8Ò8¸ÑAÔAÐAr   )NF)T)F)'Ú__doc__rX   r  r  Únumpyr   r=   r¢   Úmatplotlib.colorsr   Úmatplotlib.pathr   Úmatplotlib.markersr   Úmatplotlib.transformsr   r   r!   r+   r<   rB   ÚLINETOÚMOVETOÚCURVE3ÚCURVE4rJ   rK   r_   rm   rt   rƒ   r�   r»   r¶   rÇ   rú   rþ   r  r  r%   r   r   ú<module>r     s
  ððð ð Ð Ð Ð Ø 	€	€	€	Ø €€€à Ð Ð Ð à €€€à Ð Ð Ð Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø  Ð  Ð  Ð  Ð  Ð  Ø *Ð *Ð *Ð *Ð *Ð *Ø *Ð *Ð *Ð *Ð *Ð *Ø Ð Ð Ð Ð Ð ð
ð 
ð 
ð$Pð Pð Pð
 ˆ\à&,ØØØ$Ø#'ðð ñô €
ðð ð ð: 	„K�Ø„K�Ø„K�Ø„K�Ø„N�Cð€	ð#%ð #%ð #%ð #%ðLð ð ð ð"ð ð ðð ð ð.ð ð ð 7ð 7ð 7ðt!ð !ð !ðð ð ð5ð 5ð 5ðpð ð ð ð$Fð Fð FðBð Bð Bð Bð Br   