§
    'ê[fŠ?  ã                   óþ  — d Z ddlZddlZddlZddlmZmZ ddlmZm	Z	m
Z
mZmZmZmZmZmZ ddddd	d
ddddœ	Z G d„ d¦  «        Z G d„ dee¦  «        Z G d„ d¦  «        Zd„ Zd„ Z G d„ dee¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Zd„ Zd „ Zd!„ Zd"g fd#g fd$g fd%g fd&g fd#g fd$g fd&g fd'g fd(g fd)d*d+gfd,g fd-g fd.g fd/d0gfd1d0gfgZg d2¢Z d7d4„Z!d5„ Z"e#d6k    r e"¦   «          dS dS )8zD
A theorem prover that makes use of the external 'Prover9' package.
é    N)ÚBaseProverCommandÚProver)	ÚAllExpressionÚAndExpressionÚEqualityExpressionÚExistsExpressionÚ
ExpressionÚIffExpressionÚImpExpressionÚNegatedExpressionÚOrExpressionTz(FATAL)Fz
(MAX_MEGS)z(MAX_SECONDS)z(MAX_GIVEN)z
(MAX_KEPT)z(ACTION)z	(SIGSEGV))	r   é   é   é   é   é   é   é   ée   c                   ó   — e Zd ZdZdd„ZdS )ÚProver9CommandParentzÔ
    A common base class used by both ``Prover9Command`` and ``MaceCommand``,
    which is responsible for maintaining a goal and a set of assumptions,
    and generating prover9-style input files from them.
    Únltkc                 ó@  — |                      ¦   «         dk    r(|                      ¦   «         D ]}t          |¦  «         ŒdS |                      ¦   «         dk    r5t          |                      ¦   «         ¦  «        D ]}t          |¦  «         ŒdS t	          d|z  ¦  «        ‚)z<
        Print the list of the current assumptions.
        r   Úprover9z*Unrecognized value for 'output_format': %sN)ÚlowerÚassumptionsÚprintÚconvert_to_prover9Ú	NameError)ÚselfÚoutput_formatÚas      úJ/var/www/piapp/venv/lib/python3.11/site-packages/nltk/inference/prover9.pyÚprint_assumptionsz&Prover9CommandParent.print_assumptions6   sº   € ð ×ÒÑ Ô  FÒ*Ð*Ø×%Ò%Ñ'Ô'ð ð �Ý�a‘”��ðð à× Ò Ñ"Ô" iÒ/Ð/Ý'¨×(8Ò(8Ñ(:Ô(:Ñ;Ô;ð ð �Ý�a‘”��ðð õ Ø<¸}ÑLñô ð ó    N)r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r$   © r%   r#   r   r   /   s2   € € € € € ðð ðð ð ð ð ð r%   r   c                   ó"   — e Zd ZdZdd„Zdd„ZdS )	ÚProver9Commandzº
    A ``ProverCommand`` specific to the ``Prover9`` prover.  It contains
    the a print_assumptions() method that is used to print the list
    of assumptions in multiple formats.
    Né<   c                 óŽ   — |sg }|�t          |t          ¦  «        sJ ‚nt          |¦  «        }t          j        | |||¦  «         dS )aÄ  
        :param goal: Input expression to prove
        :type goal: sem.Expression
        :param assumptions: Input expressions to use as assumptions in
            the proof.
        :type assumptions: list(sem.Expression)
        :param timeout: number of seconds before timeout; set to 0 for
            no timeout.
        :type timeout: int
        :param prover: a prover.  If not set, one will be created.
        :type prover: Prover9
        N)Ú
isinstanceÚProver9r   Ú__init__)r    Úgoalr   ÚtimeoutÚprovers        r#   r1   zProver9Command.__init__M   sZ   € ð ð 	ØˆKàÐÝ˜f¥gÑ.Ô.Ð.Ð.Ð.Ð.å˜WÑ%Ô%ˆFåÔ" 4¨°°{ÑCÔCÐCÐCÐCr%   Tc                 ó–   — |r4| j                              |dg¦  «        d                              ¦   «         S |                     ¦   «         S )z9
        :see BaseProverCommand.decorate_proof()
        Ústriplabelsr   )Ú_proverÚ_call_prooftransÚrstrip)r    Úproof_stringÚsimplifys      r#   Údecorate_proofzProver9Command.decorate_proofd   sM   € ð ð 	)Ø”<×0Ò0°À¸ÑOÔOØôçŠf‰hŒhðð  ×&Ò&Ñ(Ô(Ð(r%   )NNr-   N)T)r&   r'   r(   r)   r1   r<   r*   r%   r#   r,   r,   F   sJ   € € € € € ðð ðDð Dð Dð Dð.	)ð 	)ð 	)ð 	)ð 	)ð 	)r%   r,   c                   ó>   — e Zd ZdZdZd	d„Zd„ Zd„ Zd	d„Zg dfd„Z	dS )
ÚProver9ParentzÀ
    A common class extended by both ``Prover9`` and ``Mace <mace.Mace>``.
    It contains the functionality required to convert NLTK-style
    expressions into Prover9-style expressions.
    NFc           	      óì   — |€d | _         d | _        d S d}t          j                             ||dgd||dz   g|¬¦  «        | _        | j                             t          j        j        d¦  «        | _         d S )Nr   ÚPROVER9ú'https://www.cs.unm.edu/~mccune/prover9/ú.exe)Úpath_to_binÚenv_varsÚurlÚbinary_namesÚverboser   )	Ú_binary_locationÚ_prover9_binr   Ú	internalsÚfind_binaryÚrsplitÚosÚpathÚsep)r    Úbinary_locationrG   Únames       r#   Úconfig_prover9zProver9Parent.config_prover9y   s†   € ØÐ"Ø$(ˆDÔ!Ø $ˆDÔÐÐàˆDÝ $¤× :Ò :ØØ+Ø#˜Ø=Ø" D¨6¡MÐ2Øð !;ñ !ô !ˆDÔð %)Ô$5×$<Ò$<½R¼W¼[È!Ñ$LÔ$LˆDÔ!Ð!Ð!r%   c                 ó˜   — d}|r$|dz  }t          |¦  «        D ]
}|d|z  z  }Œ|dz  }|r|dz  }|dt          |¦  «        z  z  }|dz  }|S )zË
        :return: The input string that should be provided to the
            prover9 binary.  This string is formed based on the goal,
            assumptions, and timeout value of this object.
        Ú zformulas(assumptions).
z    %s.
zend_of_list.

zformulas(goals).
)r   )r    r2   r   ÚsÚp9_assumptions        r#   Úprover9_inputzProver9Parent.prover9_input‰   sŠ   € ð ˆàð 	$ØÐ+Ñ+ˆAÝ!3°KÑ!@Ô!@ð 1ð 1�Ø�[ =Ñ0Ñ0��ØÐ#Ñ#ˆAàð 	$ØÐ%Ñ%ˆAØ�Õ1°$Ñ7Ô7Ñ7Ñ7ˆAØÐ#Ñ#ˆAàˆr%   c                 ó
   — g d¢S )zÁ
        A list of directories that should be searched for the prover9
        executables.  This list is used by ``config_prover9`` when searching
        for the prover9 executables.
        )z/usr/local/bin/prover9z/usr/local/bin/prover9/binz/usr/local/binz/usr/binz/usr/local/prover9z/usr/local/share/prover9r*   )r    s    r#   Úbinary_locationszProver9Parent.binary_locationsž   s   € ð
ð 
ð 
ð 	
r%   c           	      ó¤   — |                       ¦   «         }| j        �|| j        gz  }t          j                             ||dgd||dz   g|¬¦  «        S )Nr@   rA   rB   )Ú
searchpathrD   rE   rF   rG   )rY   rH   r   rJ   rK   )r    rQ   rG   rY   s       r#   Ú_find_binaryzProver9Parent._find_binary­   sj   € Ø×0Ò0Ñ2Ô2ÐØÔ Ð,Ø Ô!6Ð 7Ñ7ÐÝŒ~×)Ò)ØØ'Ø�[Ø9Ø  v¡Ð.Øð *ñ 
ô 
ð 	
r%   c                 ó  — |r1t          d|¦  «         t          d|¦  «         t          d|d¦  «         |g|z   }	 |                     d¦  «        }n# t          $ r Y nw xY wt          j        |t          j        t          j        t          j        ¬¦  «        }|                     |¬¦  «        \  }}|r;t          d|j        ¦  «         |rt          d	|d¦  «         |rt          d
|d¦  «         | 	                    d¦  «        |j        fS )a=  
        Call the binary with the given input.

        :param input_str: A string whose contents are used as stdin.
        :param binary: The location of the binary to call
        :param args: A list of command-line arguments.
        :return: A tuple (stdout, returncode)
        :see: ``config_prover9``
        zCalling:zArgs:zInput:
Ú
Úutf8)ÚstdoutÚstderrÚstdin)ÚinputzReturn code:zstdout:
zstderr:
zutf-8)
r   ÚencodeÚAttributeErrorÚ
subprocessÚPopenÚPIPEÚSTDOUTÚcommunicateÚ
returncodeÚdecode)	r    Ú	input_strÚbinaryÚargsrG   ÚcmdÚpr`   ra   s	            r#   Ú_callzProver9Parent._callº   s-  € ð ð 	/Ý�*˜fÑ%Ô%Ð%Ý�'˜4Ñ Ô Ð Ý�*˜i¨Ñ.Ô.Ð.ð ˆh˜‰oˆð	Ø!×(Ò(¨Ñ0Ô0ˆIˆIøÝð 	ð 	ð 	ØˆDð	øøøåÔØ�
œµ
Ô0AÍÌð
ñ 
ô 
ˆð Ÿ=š=¨y˜=Ñ9Ô9Ñˆ�àð 	1Ý�. !¤,Ñ/Ô/Ð/Øð 1Ý�k 6¨4Ñ0Ô0Ð0Øð 1Ý�k 6¨4Ñ0Ô0Ð0à—’˜gÑ&Ô&¨¬Ð5Ð5s   »A Á
AÁA)F)
r&   r'   r(   r)   rH   rR   rW   rY   r\   rr   r*   r%   r#   r>   r>   p   s‹   € € € € € ðð ð ÐðMð Mð Mð Mð ð ð ð*
ð 
ð 
ð
ð 
ð 
ð 
ð -/¸ð !6ð !6ð !6ð !6ð !6ð !6r%   r>   c                 óL  — t          | t          ¦  «        rVg }| D ]O}	 |                     t          |                     ¦   «         ¦  «        ¦  «         Œ8#  t          d| z  ¦  «         ‚ xY w|S 	 t          |                      ¦   «         ¦  «        S #  t          d| z  ¦  «         ‚ xY w)z;
    Convert a ``logic.Expression`` to Prover9 format.
    z4input %s cannot be converted to Prover9 input syntax)r/   ÚlistÚappendÚ_convert_to_prover9r;   r   )rc   ÚresultrU   s      r#   r   r   Þ   s·   € õ �%�ÑÔð ØˆØð 	ð 	ˆAðØ—’Õ1°!·*²*±,´,Ñ?Ô?Ñ@Ô@Ð@Ð@øðÝÐLÈuÑTÑUÔUÐUØøøøØˆð	Ý& u§~¢~Ñ'7Ô'7Ñ8Ô8Ð8øð	ÝÐHÈ5ÑPÑQÔQÐQØøøøs   �4AÁA'Á- B ÂB#c                 óT  — t          | t          ¦  «        r/dt          | j        ¦  «        z   dz   t	          | j        ¦  «        z   S t          | t          ¦  «        r/dt          | j        ¦  «        z   dz   t	          | j        ¦  «        z   S t          | t          ¦  «        rdt	          | j        ¦  «        z   dz   S t          | t          ¦  «        r2dt	          | j	        ¦  «        z   dz   t	          | j
        ¦  «        z   dz   S t          | t          ¦  «        r2dt	          | j	        ¦  «        z   dz   t	          | j
        ¦  «        z   dz   S t          | t          ¦  «        r2dt	          | j	        ¦  «        z   d	z   t	          | j
        ¦  «        z   dz   S t          | t          ¦  «        r2dt	          | j	        ¦  «        z   d
z   t	          | j
        ¦  «        z   dz   S t          | t          ¦  «        r2dt	          | j	        ¦  «        z   dz   t	          | j
        ¦  «        z   dz   S t          | ¦  «        S )zC
    Convert ``logic.Expression`` to Prover9 formatted string.
    zexists Ú zall z-(ú)ú(z & z | z -> z <-> z = )r/   r   ÚstrÚvariablerv   Útermr   r   r   ÚfirstÚsecondr   r   r
   r   )Ú
expressions    r#   rv   rv   ó   s„  € õ �*Õ.Ñ/Ô/ð 9àÝ�*Ô%Ñ&Ô&ñ'àñõ " *¤/Ñ2Ô2ñ3ð	
õ 
�J¥Ñ	.Ô	.ð 2àÝ�*Ô%Ñ&Ô&ñ'àñõ " *¤/Ñ2Ô2ñ3ð	
õ 
�JÕ 1Ñ	2Ô	2ð +ØÕ)¨*¬/Ñ:Ô:Ñ:¸SÑ@Ð@Ý	�J¥Ñ	.Ô	.ð )àÝ! *Ô"2Ñ3Ô3ñ4àñõ " *Ô"3Ñ4Ô4ñ5ð ñ	ð	
õ 
�J¥Ñ	-Ô	-ð !àÝ! *Ô"2Ñ3Ô3ñ4àñõ " *Ô"3Ñ4Ô4ñ5ð ñ	ð	
õ 
�J¥Ñ	.Ô	.ð àÝ! *Ô"2Ñ3Ô3ñ4àñõ " *Ô"3Ñ4Ô4ñ5ð ñ	ð	
õ 
�J¥Ñ	.Ô	.ð àÝ! *Ô"2Ñ3Ô3ñ4àñõ " *Ô"3Ñ4Ô4ñ5ð ñ	ð	
õ 
�JÕ 2Ñ	3Ô	3ð 	àÝ! *Ô"2Ñ3Ô3ñ4àñõ " *Ô"3Ñ4Ô4ñ5ð ñ	ð	
õ �:‰ŒÐr%   c                   óD   — e Zd ZdZdZd	d„Zd
d„Zd„ Zg dfd„Zg dfd„Z	dS )r0   Nr-   c                 ó   — || _         d S )N)Ú_timeout)r    r3   s     r#   r1   zProver9.__init__7  s   € ØˆŒð	&ð 	&r%   Fc                 óv   — |sg }|                       |                      ||¦  «        |¬¦  «        \  }}|dk    |fS )zñ
        Use Prover9 to prove a theorem.
        :return: A pair whose first element is a boolean indicating if the
        proof was successful (i.e. returns value of 0) and whose second element
        is the output of the prover.
        )rG   r   )Ú_call_prover9rW   )r    r2   r   rG   r`   rk   s         r#   Ú_provezProver9._prove=  sV   € ð ð 	ØˆKà!×/Ò/Ø×Ò˜t [Ñ1Ô1¸7ð 0ñ 
ô 
Ñˆ�
ð ˜a’ Ð(Ð(r%   c                 óD   — d}|t                                | ||¦  «        z   S )z3
        :see: Prover9Parent.prover9_input
        zclear(auto_denials).
)r>   rW   )r    r2   r   rU   s       r#   rW   zProver9.prover9_inputL  s&   € ð %ˆØ•=×.Ò.¨t°T¸;ÑGÔGÑGÐGr%   c                 ó�  — | j         €|                      d|¦  «        | _         d}| j        dk    r|d| j        z  z  }||z  }|                      || j         ||¦  «        \  }}|dvr^d}||v r2|                     |¦  «        }||d…                              ¦   «         }	nd}	|dv rt          ||	¦  «        ‚t          ||	¦  «        ‚||fS )	a  
        Call the ``prover9`` binary with the given input.

        :param input_str: A string whose contents are used as stdin.
        :param args: A list of command-line arguments.
        :return: A tuple (stdout, returncode)
        :see: ``config_prover9``
        Nr   rT   r   zassign(max_seconds, %d).

)r   r   z%%ERROR:)r   r   r   r   )rI   r\   r„   rr   ÚindexÚstripÚProver9LimitExceededExceptionÚProver9FatalException)
r    rm   ro   rG   Úupdated_input_strr`   rk   ÚerrormsgprefixÚmsgstartÚerrormsgs
             r#   r†   zProver9._call_prover9S  sÿ   € ð ÔÐ$Ø $× 1Ò 1°)¸WÑ EÔ EˆDÔàÐØŒ=˜1ÒÐØÐ!?À$Ä-Ñ!OÑOÐØ˜YÑ&Ðà!ŸZšZØ˜tÔ0°$¸ñ
ô 
Ñˆ�
ð ˜VÐ#Ð#Ø'ˆNØ Ð'Ð'Ø!Ÿ<š<¨Ñ7Ô7�Ø! ( ) )Ô,×2Ò2Ñ4Ô4��à�Ø˜\Ð)Ð)Ý3°JÀÑIÔIÐIå+¨J¸ÑAÔAÐAà�zÐ!Ð!r%   c                 ó€   — | j         €|                      d|¦  «        | _         |                      || j         ||¦  «        S )a  
        Call the ``prooftrans`` binary with the given input.

        :param input_str: A string whose contents are used as stdin.
        :param args: A list of command-line arguments.
        :return: A tuple (stdout, returncode)
        :see: ``config_prover9``
        NÚ
prooftrans)Ú_prooftrans_binr\   rr   )r    rm   ro   rG   s       r#   r8   zProver9._call_prooftransv  s@   € ð ÔÐ'Ø#'×#4Ò#4°\À7Ñ#KÔ#KˆDÔ à�zŠz˜) TÔ%9¸4ÀÑIÔIÐIr%   )r-   )NNF)
r&   r'   r(   rI   r”   r1   r‡   rW   r†   r8   r*   r%   r#   r0   r0   3  s•   € € € € € Ø€LØ€Oð&ð &ð &ð &ð)ð )ð )ð )ðHð Hð Hð -/¸ð !"ð !"ð !"ð !"ðF 02¸5ð Jð Jð Jð Jð Jð Jr%   r0   c                   ó   — e Zd Zd„ ZdS )ÚProver9Exceptionc                 ój   — t           |         }|r|d|z  z  }t                               | |¦  «         d S )Nz
%s)Úp9_return_codesÚ	Exceptionr1   )r    rk   ÚmessageÚmsgs       r#   r1   zProver9Exception.__init__†  s?   € Ý˜jÔ)ˆØð 	$Ø�6˜GÑ#Ñ#ˆCÝ×Ò˜4 Ñ%Ô%Ð%Ð%Ð%r%   N)r&   r'   r(   r1   r*   r%   r#   r–   r–   …  s#   € € € € € ð&ð &ð &ð &ð &r%   r–   c                   ó   — e Zd ZdS )r�   N©r&   r'   r(   r*   r%   r#   r�   r�   �  ó   € € € € € Ø€Dr%   r�   c                   ó   — e Zd ZdS )rŒ   Nr�   r*   r%   r#   rŒ   rŒ   ‘  rž   r%   rŒ   c                  óB  — t          j        d¦  «        } t          j        d¦  «        }t          || g¬¦  «        }d |_        g |_        |                     ¦   «          t          |                     ¦   «         ¦  «         t          |                     ¦   «         ¦  «         d S )Nz(walk(j) & sing(j))zwalk(j)©r   )r	   Ú
fromstringr,   Ú_executable_pathÚprover9_searchÚprover   Úproof)r"   Úgrq   s      r#   Útest_configr¨   š  s†   € åÔÐ3Ñ4Ô4€AÝÔ˜iÑ(Ô(€AÝ�q q cÐ*Ñ*Ô*€AØ€AÔØ€AÔØ‡G‚G�I„I€Iå	ˆ!�'Š'‰)Œ)ÑÔÐÝ	ˆ!�'Š'‰)Œ)ÑÔÐÐÐr%   c                 óp   — | D ]2}t          j        |¦  «        }t          t          |¦  «        ¦  «         Œ3dS )z%
    Test that parsing works OK.
    N)r	   r¢   r   r   )ÚexprÚtÚes      r#   Útest_convert_to_prover9r­   §  sG   € ð ð %ð %ˆÝÔ! !Ñ$Ô$ˆÝÕ  Ñ#Ô#Ñ$Ô$Ð$Ð$ð%ð %r%   c                 óö   — | D ]u\  }}t          j        |¦  «        }d„ |D ¦   «         }t          ||¬¦  «                             ¦   «         }|D ]}t	          d|z  ¦  «         Œt	          d|› d|› d�¦  «         ŒvdS )z2
    Try some proofs and exhibit the results.
    c                 ó6   — g | ]}t          j        |¦  «        ‘ŒS r*   )r	   r¢   )Ú.0r"   s     r#   ú
<listcomp>ztest_prove.<locals>.<listcomp>¶  s#   € Ð?Ð?Ð?¨a•Ô& qÑ)Ô)Ð?Ð?Ð?r%   r¡   z   %sz|- z: r^   N)r	   r¢   r,   r¥   r   )Ú	argumentsr2   r   r§   Úalistrq   r"   s          r#   Ú
test_prover´   °  s¬   € ð  )ð  ð  Ñˆˆ{ÝÔ! $Ñ'Ô'ˆØ?Ð?°;Ð?Ñ?Ô?ˆÝ˜1¨%Ð0Ñ0Ô0×6Ò6Ñ8Ô8ˆØð 	ð 	ˆAÝ�'˜A‘+ÑÔÐÐÝÐ�AÐÐ˜ÐÐÐÑÔÐÐð ð  r%   z(man(x) <-> (not (not man(x))))z(not (man(x) & (not man(x))))z(man(x) | (not man(x)))z(man(x) & (not man(x)))z(man(x) -> man(x))z(man(x) <-> man(x))z(not (man(x) <-> (not man(x))))zmortal(Socrates)zall x.(man(x) -> mortal(x))zman(Socrates)zA((all x.(man(x) -> walks(x)) & man(Socrates)) -> some y.walks(y))z(all x.man(x) -> all x.man(x))zsome x.all y.sees(x,y)z#some e3.(walk(e3) & subj(e3, mary))zWsome e1.(see(e1) & subj(e1, john) & some e2.(pred(e1, e2) & walk(e2) & subj(e2, mary)))zVsome x e1.(see(e1) & subj(e1, x) & some e2.(pred(e1, e2) & walk(e2) & subj(e2, mary))))zsome x y.sees(x,y)zsome x.(man(x) & walks(x))z\x.(man(x) & walks(x))z\x y.sees(x,y)zwalks(john)z\x.big(x, \y.mouse(y))z/(walks(x) & (runs(x) & (threes(x) & fours(x))))z(walks(x) -> runs(x))zsome x.(PRO(x) & sees(John, x))z some x.(man(x) & (not walks(x)))zall x.(man(x) -> walks(x))é-   c                 ó*   — t          d| z  ¦  «         d S )NÚ-)r   )Únums    r#   Úspacerr¹   é  s   € Ý	ˆ#�‰)ÑÔÐÐÐr%   c                  óX  — t          d¦  «         t          ¦   «          t          ¦   «          t          ¦   «          t          d¦  «         t          ¦   «          t          t          ¦  «         t          ¦   «          t          d¦  «         t          ¦   «          t          t          ¦  «         d S )NzTesting configurationz$Testing conversion to Prover9 formatzTesting proofs)r   r¹   r¨   r­   Úexpressionsr´   r²   r*   r%   r#   Údemor¼   í  s‡   € Ý	Ð
!Ñ"Ô"Ð"Ý
�H„H€HÝ�M„M€MÝ	�G„G€GÝ	Ð
0Ñ1Ô1Ð1Ý
�H„H€HÝ�KÑ(Ô(Ð(Ý	�G„G€GÝ	Ð
ÑÔÐÝ
�H„H€HÝ�yÑÔÐÐÐr%   Ú__main__)rµ   )$r)   rM   rf   r   Únltk.inference.apir   r   Únltk.sem.logicr   r   r   r   r	   r
   r   r   r   r˜   r   r,   r>   r   rv   r0   r™   r–   r�   rŒ   r¨   r­   r´   r²   r»   r¹   r¼   r&   r*   r%   r#   ú<module>rÀ      si  ððð ð 
€	€	€	Ø Ð Ð Ð à €€€Ø 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8ð
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð  ØØàØØØØØ	ðð €ðð ð ð ð ñ ô ð ð.')ð ')ð ')ð ')ð ')Ð)Ð+<ñ ')ô ')ð ')ðTk6ð k6ð k6ð k6ð k6ñ k6ô k6ð k6ð\ð ð ð*=ð =ð =ð@OJð OJð OJð OJð OJˆm˜Vñ OJô OJð OJðd&ð &ð &ð &ð &�yñ &ô &ð &ð	ð 	ð 	ð 	ð 	Ð,ñ 	ô 	ð 	ð	ð 	ð 	ð 	ð 	Ð$4ñ 	ô 	ð 	ð
ð 
ð 
ð%ð %ð %ð
 ð 
 ð 
 ð '¨Ð+Ø$ bÐ)Ø Ð#Ø Ð#Ø˜2ÐØ$ bÐ)Ø Ð#Ø˜2ÐØ˜BÐØ&¨Ð+ØÐ7¸ÐIÐJØHÈ"ÐMØ% rÐ*Ø˜rÐ"à-àeð	
ðð 	aàeð	
ðð+€	ð:ð ð €ðð ð ð ðð ð ð ˆzÒÐØ€D�F„F€F€F€Fð Ðr%   