§
    ¥”jVD  ã            
       ód  — d Z ddlZddl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 g d¢Z ej        e¦  «        Z G d	„ d
e¦  «        Z G d„ de¦  «        Z G d„ d¦  «        Z G d„ dej        ¦  «        Z G d„ dej        ¦  «        Zej        ej        ej        ej        ej        ej        iZ ed¬¦  «         G d„ de¦  «        ¦   «         Zdededededef
d„Zdededededef
d„Z  ed¬¦  «         G d„ d e¦  «        ¦   «         Z! ed¬¦  «         G d!„ d"e¦  «        ¦   «         Z"dS )#z!Layout utilities (to be expanded)é    N)Ú	dataclass)ÚFraction)ÚOptionalÚUnion)ÚConfigurableMixin)ÚConfigurationError)ÚAxisAlignmentÚBoxConstraintsÚBoxSpecificationErrorÚInnerScalingÚLayoutErrorÚMarginsÚPositioningÚSimpleBoxLayoutRulec                   ó(   ‡ — e Zd ZdZdefˆ fd„Zˆ xZS )r   z+Indicates an error in a layout computation.Úmsgc                 óJ   •— || _          t          ¦   «         j        |g|¢R Ž  d S ©N)r   ÚsuperÚ__init__)Úselfr   ÚargsÚ	__class__s      €úg/var/www/finuniver-perm.ru/html/portfolio/venv/lib/python3.11/site-packages/pyhanko/pdf_utils/layout.pyr   zLayoutError.__init__   s/   ø€ ØˆŒØ�‰ŒÔ˜Ð$˜tÐ$Ð$Ð$Ð$Ð$Ð$ó    )Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ústrr   Ú__classcell__©r   s   @r   r   r      sJ   ø€ € € € € Ø5Ð5ð%˜Cð %ð %ð %ð %ð %ð %ð %ð %ð %ð %r   r   c                   ó6   ‡ — e Zd ZdZddee         fˆ fd„Zˆ xZS )r   z4Raised when a box constraint is over/underspecified.Nr   c                 óP   •— t          ¦   «                              |pd¬¦  «         d S )Nz%box constraint is over/underspecified)r   )r   r   )r   r   r   s     €r   r   zBoxSpecificationError.__init__%   s*   ø€ Ý‰Œ×Ò˜SÐKÐ$KÐÑLÔLÐLÐLÐLr   r   )r   r   r   r   r   r    r   r!   r"   s   @r   r   r   "   s_   ø€ € € € € Ø>Ð>ðMð M˜H SœMð Mð Mð Mð Mð Mð Mð Mð Mð Mð Mr   r   c                   óš  — e Zd ZU dZee         ed<   ee         ed<   ee         ed<   eed<   	 	 	 dde	ee
df         de	ee
df         d	ee         fd
„Zd„ Zedefd„¦   «         Zej        d„ ¦   «         Zedefd„¦   «         Zedefd„¦   «         Zej        d„ ¦   «         Zedefd„¦   «         Zedefd„¦   «         Zedefd„¦   «         ZdS )r
   a)  Represents a box of potentially variable width and height.
    Among other uses, this can be leveraged to produce a variably sized
    box with a fixed aspect ratio.

    If width/height are not defined yet, they can be set by assigning to the
    :attr:`width` and :attr:`height` attributes.
    Ú_widthÚ_heightÚ_arÚ_fully_specifiedNÚwidthÚheightÚaspect_ratioc                 ó`  — |�t          |¦  «        nd }|�t          |¦  «        nd }|| _        || _        d}d | _        |€|€|€d S |�#|�!|�t          ‚t          ||¦  «        | _        d}n<|�:|| _        |�t          ||z  ¦  «        | _        n|�t          ||z  ¦  «        | _        || _        d S )NFT)Úintr&   r'   r(   r   r   Úroundr)   )r   r*   r+   r,   Ú	int_widthÚ
int_heightÚfully_specifieds          r   r   zBoxConstraints.__init__7   sÛ   € ð #(Ð"3•C˜‘J”J�J¸ˆ	Ø$*Ð$6•S˜‘[”[�[¸Dˆ
ØˆŒØ!ˆŒàˆàˆŒØÐ Ð!3¸Ð8LØˆFØÐ" zÐ'=ØÐ'Ý+Ð+Ý 	¨:Ñ6Ô6ˆDŒHØ"ˆOˆOØÐ%Ø#ˆDŒHØÐ%Ý# J°Ñ$=Ñ>Ô>�”�ØÐ&Ý$ Y°Ñ%=Ñ>Ô>�”à /ˆÔÐÐr   c                 óH  — | j         �/| j        �(t          | j         | j        ¦  «        | _        d| _        d S | j        �b| j        �*t          | j        | j        z  ¦  «        | _         d| _        d S | j         �,t          | j         | j        z  ¦  «        | _        d| _        d S d S d S )NT)r&   r'   r   r(   r)   r.   ©r   s    r   Ú_recalculatezBoxConstraints._recalculateU   s¨   € ØŒ;Ð" t¤|Ð'?Ý ¤¨T¬\Ñ:Ô:ˆDŒHØ$(ˆDÔ!Ð!Ð!ØŒXÐ!ØŒ|Ð'Ý! $¤,°´Ñ"9Ñ:Ô:�”Ø(,�Ô%Ð%Ð%Ø”Ð(Ý" 4¤;°´Ñ#9Ñ:Ô:�”Ø(,�Ô%Ð%Ð%ð "Ð!ð )Ð(r   Úreturnc                 ó,   — | j         �| j         S t          ‚)z›
        :return:
            The width of the box.
        :raises BoxSpecificationError:
            if the box's width could not be determined.
        )r&   r   r4   s    r   r*   zBoxConstraints.widtha   s   € ð Œ;Ð"Ø”;Ðå'Ð'r   c                 óX   — | j         €|| _         |                      ¦   «          d S t          ‚r   )r&   r5   r   ©r   r*   s     r   r*   zBoxConstraints.widthn   s/   € àŒ;ÐØˆDŒKØ×ÒÑÔÐÐÐå'Ð'r   c                 ó   — | j         duS )z
        :return:
            ``True`` if the box currently has a well-defined width,
            ``False`` otherwise.
        N)r&   r4   s    r   Úwidth_definedzBoxConstraints.width_definedv   s   € ð Œ{ $Ð&Ð&r   c                 ó,   — | j         �| j         S t          ‚)z�
        :return:
            The height of the box.
        :raises BoxSpecificationError:
            if the box's height could not be determined.
        )r'   r   r4   s    r   r+   zBoxConstraints.height   s   € ð Œ<Ð#Ø”<Ðå'Ð'r   c                 óX   — | j         €|| _         |                      ¦   «          d S t          ‚r   )r'   r5   r   ©r   r+   s     r   r+   zBoxConstraints.heightŒ   s/   € àŒ<ÐØ!ˆDŒLØ×ÒÑÔÐÐÐå'Ð'r   c                 ó   — | j         duS )z€
        :return:
            ``True`` if the box currently has a well-defined height,
            ``False`` otherwise.
        N)r'   r4   s    r   Úheight_definedzBoxConstraints.height_defined”   s   € ð Œ| 4Ð'Ð'r   c                 ó,   — | j         �| j         S t          ‚)z©
        :return:
            The aspect ratio of the box.
        :raises BoxSpecificationError:
            if the box's aspect ratio could not be determined.
        )r(   r   r4   s    r   r,   zBoxConstraints.aspect_ratio�   s   € ð Œ8ÐØ”8ˆOå'Ð'r   c                 ó   — | j         duS )z†
        :return:
            ``True`` if the box currently has a well-defined aspect ratio,
            ``False`` otherwise.
        N)r(   r4   s    r   Úaspect_ratio_definedz#BoxConstraints.aspect_ratio_definedª   s   € ð Œx˜tÐ#Ð#r   )NNN)r   r   r   r   r   r.   Ú__annotations__r   Úboolr   Úfloatr   r5   Úpropertyr*   Úsetterr;   r+   r@   r,   rC   © r   r   r
   r
   )   sï  € € € € € € ðð ð �SŒMÐÐÑØ�cŒ]ÐÐÑØ	�(Ô	ÐÐÑØÐÐÑð *.Ø*.Ø+/ð	0ð 0à�S˜% Ð%Ô&ð0ð �c˜5 $Ð&Ô'ð0ð ˜xÔ(ð	0ð 0ð 0ð 0ð<
-ð 
-ð 
-ð ð
(�sð 
(ð 
(ð 
(ñ „Xð
(ð „\ð(ð (ñ „\ð(ð ð'˜tð 'ð 'ð 'ñ „Xð'ð ð
(˜ð 
(ð 
(ð 
(ñ „Xð
(ð „]ð(ð (ñ „]ð(ð ð( ð (ð (ð (ñ „Xð(ð ð
(˜hð 
(ð 
(ð 
(ñ „Xð
(ð ð$ dð $ð $ð $ñ „Xð$ð $ð $r   r
   c                   ó²   — e Zd ZdZ ej        ¦   «         Z	  ej        ¦   «         Z	  ej        ¦   «         Z	  ej        ¦   «         Z		 e
dedd fd„¦   «         ZdS )r   z(Class representing a scaling convention.Ú
config_strr6   c                 óÔ   — 	 t           j        t           j        t           j        t           j        dœ|                     ¦   «                  S # t          $ r t          d|› d�¦  «        ‚w xY w)a   
        Convert from a configuration string.

        :param config_str:
            A string: 'none', 'stretch-fill', 'stretch-to-fit', 'shrink-to-fit'
        :return:
            An :class:`.InnerScaling` value.
        :raise ConfigurationError: on unexpected string inputs.
        )Únonezstretch-fillzstretch-to-fitzshrink-to-fitú'zs' is not a valid inner scaling setting; valid values are 'none', 'stretch-fill', 'stretch-to-fit', 'shrink-to-fit'.)r   Ú
NO_SCALINGÚSTRETCH_FILLÚSTRETCH_TO_FITÚSHRINK_TO_FITÚlowerÚKeyErrorr   )ÚclsrK   s     r   Úfrom_configzInnerScaling.from_configÉ   s‰   € ð	å$Ô/Ý ,Ô 9Ý".Ô"=Ý!-Ô!;ð	ð ð
 ×ÒÑ Ô ô"ð "øõ ð 	ð 	ð 	Ý$ð$�Jð $ð $ð $ñô ð ð	øøøs   ‚AA	 Á	A'N)r   r   r   r   ÚenumÚautorO   rP   rQ   rR   Úclassmethodr    rV   rI   r   r   r   r   ´   sŽ   € € € € € Ø2Ð2à�”‘”€JØà�4”9‘;”;€LØ5à�T”Y‘[”[€Nðð
 �D”I‘K”K€Mðð
 ð Sð ¨^ð ð ð ñ „[ðð ð r   r   c                   óÜ   — e Zd ZdZ ej        ¦   «         Z	  ej        ¦   «         Z	  ej        ¦   «         Z	 e	de
dd fd„¦   «         Ze	de
dd fd„¦   «         Zed„ ¦   «         Zdededefd	„Zd
S )r	   z;Class representing one-dimensional alignment along an axis.Ú	align_strr6   c                 ó¾   — 	 t           j        t           j        t           j        dœ|                     ¦   «                  S # t
          $ r t          d|› d�¦  «        ‚w xY w)a  
        Convert from a horizontal alignment config string.

        :param align_str:
            A string: 'left', 'mid' or 'right'.
        :return:
            An :class:`.AxisAlignment` value.
        :raise ConfigurationError: on unexpected string inputs.
        )ÚleftÚmidÚrightrN   zO' is not a valid horizontal alignment; valid values are 'left', 'mid', 'right'.©r	   Ú	ALIGN_MINÚ	ALIGN_MIDÚ	ALIGN_MAXrS   rT   r   ©rU   r[   s     r   Úfrom_x_alignzAxisAlignment.from_x_alignõ   s�   € ð
	å%Ô/Ý$Ô.Ý&Ô0ðð ð �oŠoÑÔô	!ð !øõ
 ð 	ð 	ð 	Ý$ð6�Ið 6ð 6ð 6ñô ð ð	øøøó	   ‚;> ¾Ac                 ó¾   — 	 t           j        t           j        t           j        dœ|                     ¦   «                  S # t
          $ r t          d|› d�¦  «        ‚w xY w)a  
        Convert from a vertical alignment config string.

        :param align_str:
            A string: 'bottom', 'mid' or 'top'.
        :return:
            An :class:`.AxisAlignment` value.
        :raise ConfigurationError: on unexpected string inputs.
        )Úbottomr^   ÚtoprN   zM' is not a valid vertical alignment; valid values are 'bottom', 'mid', 'top'.r`   rd   s     r   Úfrom_y_alignzAxisAlignment.from_y_align  s�   € ð
	å'Ô1Ý$Ô.Ý$Ô.ðð ð �oŠoÑÔô	!ð !øõ
 ð 	ð 	ð 	Ý$ð6�Ið 6ð 6ð 6ñô ð ð	øøørf   c                 ó   — t           |          S r   )Ú_alignment_oppositesr4   s    r   ÚflippedzAxisAlignment.flipped#  s   € å# DÔ)Ð)r   Úcontainer_lenÚ	inner_lenc                 ó6  — t                                d|||¦  «        }| t          j        k    r||z
  |z
  S | t          j        k    r|S ||k    r)t
                               d|› d|› d|› d|› d�	¦  «         |S | t          j        k    r||z
  dz  }||z   S t          ‚)NÚlengthzContent box width/height z  is too wide for container size z with margins (ú, z); post_margin will be ignoredé   )	r   Ú	effectiver	   rc   ra   ÚloggerÚwarningrb   Ú	TypeError)r   rn   ro   Ú
pre_marginÚpost_marginÚeffective_max_lenÚinner_offsets          r   ÚalignzAxisAlignment.align'  s÷   € õ $×-Ò-Ø�m Z°ñ
ô 
Ðð •=Ô*Ò*Ð*ð
 ! 9Ñ,¨{Ñ:Ð:Ø•]Ô,Ò,Ð,ØÐØÐ*Ò*Ð*Ý�NŠNðN¨Ið Nð NØ"/ðNð NàðNð Nà"-ðNð Nð Nñô ð ð
 ÐØ•]Ô,Ò,Ð,à-°	Ñ9¸aÑ?ˆLØ Ñ,Ð,Ýˆr   N)r   r   r   r   rW   rX   ra   rb   rc   rY   r    re   rj   rG   rm   r.   r|   rI   r   r   r	   r	   ã   s÷   € € € € € ØEÐEà�”	‘”€Iðð �”	‘”€Iðð �”	‘”€Iðð ð Sð ¨_ð ð ð ñ „[ðð, ð Sð ¨_ð ð ð ñ „[ðð, ð*ð *ñ „Xð*ðØ ðØ-0ðà	ðð ð ð ð ð r   r	   T)Úfrozenc                   óJ   — e Zd ZU dZeed<   	 eed<   	 eed<   	 eed<   	 d„ ZdS )r   zP
    Class describing the position and scaling of an object in a container.
    Úx_posÚy_posÚx_scaleÚy_scalec                 ó<   — d| j         | j        | j        | j        fz  S )zô
        Convenience method to convert this :class:`.Positioning` into a PDF
        ``cm`` operator.

        :return:
            A byte string representing the ``cm`` operator corresponding
            to this :class:`.Positioning`.
        s   %g 0 0 %g %g %g cm)r�   r‚   r   r€   r4   s    r   Úas_cmzPositioning.as_cm^  s*   € ð %ØŒLØŒLØŒJØŒJð	(
ñ 
ð 	
r   N)r   r   r   r   r.   rD   rF   r„   rI   r   r   r   r   L  sa   € € € € € € ðð ð €J€J�JØà€J€J�JØà€N€N�NØà€N€N�NØð
ð 
ð 
ð 
ð 
r   r   Ú	alignmentÚcontainer_boxÚinner_nat_widthrx   ry   c                 óh   — |j         r|                      |j        |||¦  «        S ||z   |z   |_        |S r   )r;   r|   r*   )r…   r†   r‡   rx   ry   s        r   Ú
_aln_widthr‰   o  sK   € ð Ô"ð Ø�ŠØÔ °*¸kñ
ô 
ð 	
ð .°
Ñ:¸[ÑHˆÔØÐr   Úinner_nat_heightc                 óh   — |j         r|                      |j        |||¦  «        S ||z   |z   |_        |S r   )r@   r|   r+   )r…   r†   rŠ   rx   ry   s        r   Ú_aln_heightrŒ     sL   € ð Ô#ð Ø�ŠØÔ Ð"2°JÀñ
ô 
ð 	
ð  0°*Ñ<¸{ÑJˆÔØÐr   c                   ó¤   ‡ — e Zd ZU dZdZeed<   dZeed<   dZeed<   dZ	eed<   e
d„ ¦   «         Zed„ ¦   «         Zd	„ Zd
„ Ze
ˆ fd„¦   «         Zˆ xZS )r   z"Class describing a set of margins.r   r]   r_   ri   rh   c                 ó&   — t          ||||¦  «        S )z¿
        Return a set of uniform margins.

        :param num:
            The uniform margin to apply to all four sides.
        :return:
            ``Margins(num, num, num, num)``
        )r   )rU   Únums     r   ÚuniformzMargins.uniform›  s   € õ �s˜C  cÑ*Ô*Ð*r   c                 óZ   — ||z
  |z
  }|dk     rt          d|› d|› d| › d|› d�	¦  «        ‚|S )z4Internal helper method to compute effective margins.r   z	Margins (rr   z) too wide for container ú ú.)r   )Údim_namern   ÚpreÚpostÚeffs        r   rt   zMargins.effective§  sq   € ð ˜cÑ! DÑ(ˆØ�Š7ˆ7Ýð/˜Cð /ð / 4ð /ð /Øð/ð /Ø+ð/ð /ð /ñô ð ð ˆ
r   c                 óP   — t                                d|| j        | j        ¦  «        S )a&  
        Compute width without margins.

        :param width:
            The container width.
        :return:
            The width after subtracting the left and right margins.
        :raises LayoutError:
            if the container width is too short to accommodate the margins.
        r*   )r   rt   r]   r_   r9   s     r   Úeffective_widthzMargins.effective_width²  s"   € õ × Ò  ¨%°´¸D¼JÑGÔGÐGr   c                 óP   — t                                d|| j        | j        ¦  «        S )a+  
        Compute height without margins.

        :param height:
            The container height.
        :return:
            The height after subtracting the top and bottom margins.
        :raises LayoutError:
            if the container height is too short to accommodate the margins.
        r+   )r   rt   rh   ri   r>   s     r   Úeffective_heightzMargins.effective_height¿  s"   € õ × Ò  ¨6°4´;ÀÄÑIÔIÐIr   c                 óª   •— t          |t          ¦  «        rt          t          d|¦  «        ¦  «        }t	          ¦   «                              |¦  «        S )N)r]   r_   ri   rh   )Ú
isinstanceÚlistÚdictÚzipr   rV   )rU   Úconfig_dictr   s     €r   rV   zMargins.from_configÌ  sN   ø€ õ �k¥4Ñ(Ô(ð 	ÝÝÐ6¸ÑDÔDñô ˆKõ ‰wŒw×"Ò" ;Ñ/Ô/Ð/r   )r   r   r   r   r]   r.   rD   r_   ri   rh   rY   r�   Ústaticmethodrt   r™   r›   rV   r!   r"   s   @r   r   r   �  sØ   ø€ € € € € € à,Ð,à€Dˆ#€M€M�Mà€Eˆ3€N€N�Nà€Cˆ€L€L�Là€FˆC€O€O�Oàð	+ð 	+ñ „[ð	+ð ðð ñ „\ððHð Hð HðJð Jð Jð ð0ð 0ð 0ð 0ñ „[ð0ð 0ð 0ð 0ð 0r   r   c                   ó¤   — e Zd ZU dZeed<   	 eed<   	  e¦   «         Zeed<   	 ej	        Z
eed<   	 ed„ ¦   «         Zdedd fd	„Zd
edededefd„ZdS )r   zk
    Class describing alignment, scaling and margin rules for a box
    positioned inside another box.
    Úx_alignÚy_alignÚmarginsÚinner_content_scalingc                 óÄ  — |                      dt          j        ¦  «        }t          |t          ¦  «        rt                               |¦  «        }||d<   |                      dt          j        ¦  «        }t          |t          ¦  «        rt                               |¦  «        }||d<   |                      dd ¦  «        }|�t                               |¦  «        |d<   d S d S )Nr¤   r¥   r§   )	Úgetr	   rb   r�   r    re   rj   r   rV   )rU   r¡   r¤   r¥   Úscalings        r   Úprocess_entriesz#SimpleBoxLayoutRule.process_entriesñ  sÔ   € ð —/’/ )­]Ô-DÑEÔEˆÝ�g�sÑ#Ô#ð 	:Ý#×0Ò0°Ñ9Ô9ˆGØ!(ˆ�IÑà—/’/ )­]Ô-DÑEÔEˆÝ�g�sÑ#Ô#ð 	:Ý#×0Ò0°Ñ9Ô9ˆGØ!(ˆ�IÑà—/’/Ð"9¸4Ñ@Ô@ˆØÐÝ3?×3KÒ3KØñ4ô 4ˆKÐ/Ñ0Ð0Ð0ð Ðr   Únew_marginsr6   c                 óF   — t          | j        | j        || j        ¬¦  «        S )N)r¤   r¥   r¦   r§   )r   r¤   r¥   r§   )r   r¬   s     r   Úsubstitute_marginsz&SimpleBoxLayoutRule.substitute_margins  s,   € Ý"Ø”LØ”LØØ"&Ô"<ð	
ñ 
ô 
ð 	
r   r†   r‡   rŠ   c                 óD  — | j         }| j        }dx}}|t          j        k    r¢|j        r›|j        r”|                     |j        ¦  «        }|                     |j	        ¦  «        }	|dk    r||z  nd}|dk    r|	|z  nd}|t          j
        k    rt          ||¦  «        x}}n#|t          j        k    rt          ||d¦  «        x}}t          | j        |||z  |j        |j        ¦  «        }
t#          | j        |||z  |j        |j        ¦  «        }t+          |
|||¬¦  «        S )aò  
        Position and possibly scale a box within a container, according
        to this layout rule.

        :param container_box:
            :class:`.BoxConstraints` describing the container.
        :param inner_nat_width:
            The inner box's natural width.
        :param inner_nat_height:
            The inner box's natural height.
        :return:
            A :class:`.Positioning` describing the scaling & position of the
            lower left corner of the inner box.
        é   r   )r   r€   r�   r‚   )r¦   r§   r   rO   r;   r@   r™   r*   r›   r+   rQ   ÚminrR   r‰   r¤   r]   r_   rŒ   r¥   rh   ri   r   )r   r†   r‡   rŠ   r¦   rª   r�   r‚   Ú	eff_widthÚ
eff_heightr   r€   s               r   ÚfitzSimpleBoxLayoutRule.fit  sp  € ð* ”,ˆØÔ,ˆØÐˆ�'à•|Ô.Ò.Ð.ØÔ+ð /àÔ,ð /ð  ×/Ò/°Ô0CÑDÔDˆIØ ×1Ò1°-Ô2FÑGÔGˆJð 2AÀAÒ1EÐ1E�˜_Ñ,Ð,È1ð ð 4DÀqÒ3HÐ3H�Ð.Ñ.Ð.Èað ð �,Ô5Ò5Ð5Ý$'¨°Ñ$9Ô$9Ð9�˜'˜'Ø�LÔ6Ò6Ð6õ %(¨°¸!Ñ$<Ô$<Ð<�˜'åØŒLØØ˜gÑ%ØŒLØŒMñ
ô 
ˆõ ØŒLØØ˜wÑ&ØŒNØŒKñ
ô 
ˆõ Ø˜u¨g¸wð
ñ 
ô 
ð 	
r   N)r   r   r   r   r	   rD   r   r¦   r   rR   r§   rY   r«   r®   r
   r.   r   r´   rI   r   r   r   r   Ö  sö   € € € € € € ðð ð
 ÐÐÑðð ÐÐÑðð �w‘y”y€GˆWÐ Ð Ñ ðð +7Ô*DÐ˜<ÐDÐDÑDðð ðð ñ „[ðð$
¨gð 
Ð:Oð 
ð 
ð 
ð 
ð=
à%ð=
ð ð=
ð ð	=
ð
 
ð=
ð =
ð =
ð =
ð =
ð =
r   r   )#r   rW   ÚloggingÚdataclassesr   Ú	fractionsr   Útypingr   r   Úpyhanko.config.apir   Úpyhanko.config.errorsr   Ú__all__Ú	getLoggerr   ru   Ú
ValueErrorr   r   r
   ÚEnumr   r	   rb   ra   rc   rl   r   r.   r‰   rŒ   r   r   rI   r   r   ú<module>r¿      s-  ðØ 'Ð 'à €€€Ø €€€Ø !Ð !Ð !Ð !Ð !Ð !Ø Ð Ð Ð Ð Ð Ø "Ð "Ð "Ð "Ð "Ð "Ð "Ð "à 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4ð	ð 	ð 	€ð 
ˆÔ	˜8Ñ	$Ô	$€ð%ð %ð %ð %ð %�*ñ %ô %ð %ðMð Mð Mð Mð M˜Kñ Mô Mð MðH$ð H$ð H$ð H$ð H$ñ H$ô H$ð H$ðV,ð ,ð ,ð ,ð ,�4”9ñ ,ô ,ð ,ð^^ð ^ð ^ð ^ð ^�D”Iñ ^ô ^ð ^ðF Ô˜]Ô4ØÔ˜]Ô4ØÔ˜]Ô4ðÐ ð €�$ÐÑÔð
ð 
ð 
ð 
ð 
Ð#ñ 
ô 
ñ Ôð
ðDØðà!ðð ðð ð	ð
 ðð ð ð ð Øðà!ðð ðð ð	ð
 ðð ð ð ð  €�$ÐÑÔðC0ð C0ð C0ð C0ð C0Ðñ C0ô C0ñ ÔðC0ðL €�$ÐÑÔðr
ð r
ð r
ð r
ð r
Ð+ñ r
ô r
ñ Ôðr
ð r
ð r
r   