§
    Ètºfÿ}  ã                   óL  — 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 dlmZ d dlmZ d d	lmZmZmZ d d
lmZ d dlmZ d dlmZ d dlmZmZmZm Z  d dl!m"Z" d dl#m$Z$m%Z%  G d„ d¦  «        Z& e
e$¦  «         G d„ d¦  «        ¦   «         Z' G d„ d¦  «        Z( G d„ de(ej)        ¦  «        Z* G d„ de(ej)        ¦  «        Z+ G d„ d¦  «        Z, G d„ de,ej)        ¦  «        Z- G d„ de,ej)        ¦  «        Z. G d „ d!e,ej)        ¦  «        Z/ G d"„ d#ej)        ¦  «        Z0 G d$„ d%ej)        ¦  «        Z1 G d&„ d'ej)        ¦  «        Z2 G d(„ d)e2¦  «        Z3 G d*„ d+ej4        ¦  «        Z5 G d,„ d-ej)        ¦  «        Z6 G d.„ d/ej)        ¦  «        Z7 G d0„ d1¦  «        Z8 G d2„ d3e8e7¦  «        Z9 G d4„ d5e8e7¦  «        Z: G d6„ d7ej)        ¦  «        Z; G d8„ d9ej)        ¦  «        Z< G d:„ d;ej)        ¦  «        Z= G d<„ d=ej)        ¦  «        Z> G d>„ d?ej)        ¦  «        Z?dS )@é    N)ÚStringIO)ÚList)Úimplementer)ÚverifyObject)Úplugin)Údefer)Útwisted_trial)ÚfailureÚlogÚreflect)ÚFilePath©ÚnamedAny)Útrial)ÚreporterÚrunnerÚunittestÚutil)Ú _ForceGarbageCollectionDecorator)Ú	IReporterÚ	ITestCasec                   ó   — e Zd Zd„ Zd„ ZdS )ÚCapturingDebuggerc                 ó   — g | _         d S ©N)Ú_calls©Úselfs    ú]/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/twisted/trial/test/test_runner.pyÚ__init__zCapturingDebugger.__init__   s   € ØˆŒˆˆó    c                 óf   — | j                              d¦  «          |d         |dd …         i |¤Ž d S )NÚruncallr   é   ©r   Úappend)r   ÚargsÚkwargss      r   r#   zCapturingDebugger.runcall"   s?   € ØŒ×Ò˜9Ñ%Ô%Ð%ØˆˆQŒ��a�b�b”Ð$˜VÐ$Ð$Ð$Ð$Ð$r!   N)Ú__name__Ú
__module__Ú__qualname__r    r#   © r!   r   r   r      s2   € € € € € ðð ð ð%ð %ð %ð %ð %r!   r   c                   ót   — e Zd ZdZdZdZdZdZdZdd„Z	d„ Z
d„ Zd„ Zd„ Zd„ Zd	„ Zd
„ Zdd„Zdd„Zd„ Zd„ ZdS )ÚCapturingReporterzC
    Reporter that keeps a log of all actions performed on it.
    Nc                 óZ   — g | _         d| _        || _        || _        || _        || _        dS )z.
        Create a capturing reporter.
        FN)r   Ú
shouldStopÚ_streamÚ	_tbformatÚ	_rterrorsÚ
_publisher)r   ÚstreamÚtbformatÚrterrorsÚ	publishers        r   r    zCapturingReporter.__init__3   s2   € ð ˆŒØˆŒØˆŒØ!ˆŒØ!ˆŒØ#ˆŒˆˆr!   c                 ó:   — | j                              d¦  «         dS )z‰
        Report the beginning of a run of a single test method
        @param method: an object that is adaptable to ITestMethod
        Ú	startTestNr%   ©r   Úmethods     r   r:   zCapturingReporter.startTest>   s    € ð
 	Œ×Ò˜;Ñ'Ô'Ð'Ð'Ð'r!   c                 ó:   — | j                              d¦  «         dS )z}
        Report the status of a single test method
        @param method: an object that is adaptable to ITestMethod
        ÚstopTestNr%   r;   s     r   r>   zCapturingReporter.stopTestE   s    € ð
 	Œ×Ò˜:Ñ&Ô&Ð&Ð&Ð&r!   c                 ó:   — | j                              d¦  «         dS )zƒcalled when the reactor has been left in a 'dirty' state
        @param errs: a list of L{twisted.python.failure.Failure}s
        ÚcleanupErrorNr%   )r   Úerrss     r   ÚcleanupErrorszCapturingReporter.cleanupErrorsL   s    € ð 	Œ×Ò˜>Ñ*Ô*Ð*Ð*Ð*r!   c                 ó:   — | j                              d¦  «         d S )NÚ
addSuccessr%   ©r   Útests     r   rD   zCapturingReporter.addSuccessR   s   € ØŒ×Ò˜<Ñ(Ô(Ð(Ð(Ð(r!   c                 ó   — dS )z@
        Do nothing. These tests don't care about done.
        Nr,   r   s    r   ÚdonezCapturingReporter.doneU   ó   € € € r!   c                 ó   — dS )zD
        Do nothing. These tests don't care about addError.
        Nr,   ©r   rF   Úerrors      r   ÚaddErrorzCapturingReporter.addErrorZ   rI   r!   c                 ó   — dS )zF
        Do nothing. These tests don't care about addFailure.
        Nr,   )r   rF   r
   s      r   Ú
addFailurezCapturingReporter.addFailure_   rI   r!   c                 ó   — dS )zN
        Do nothing. These tests don't care about addExpectedFailure.
        Nr,   )r   rF   r
   Útodos       r   ÚaddExpectedFailurez$CapturingReporter.addExpectedFailured   rI   r!   c                 ó   — dS )zP
        Do nothing. These tests don't care about addUnexpectedSuccess.
        Nr,   )r   rF   rQ   s      r   ÚaddUnexpectedSuccessz&CapturingReporter.addUnexpectedSuccessi   rI   r!   c                 ó   — dS )zC
        Do nothing. These tests don't care about addSkip.
        Nr,   )r   rF   Úreasons      r   ÚaddSkipzCapturingReporter.addSkipn   rI   r!   c                 ó   — dS )zI
        Do nothing. These tests don't care about wasSuccessful.
        Nr,   r   s    r   ÚwasSuccessfulzCapturingReporter.wasSuccessfuls   rI   r!   )NNNNr   )r)   r*   r+   Ú__doc__r5   r6   r'   Ú	separatorÚtestsRunr    r:   r>   rB   rD   rH   rM   rO   rR   rT   rW   rY   r,   r!   r   r.   r.   '   sü   € € € € € ðð ð €FØ€HØ€DØ€IØ€Hð	$ð 	$ð 	$ð 	$ð(ð (ð (ð'ð 'ð 'ð+ð +ð +ð)ð )ð )ðð ð ð
ð ð ð
ð ð ð
ð ð ð ð
ð ð ð ð
ð ð ð
ð ð ð ð r!   r.   c                   ó*   — e Zd ZdZd„ Zd„ Zd„ Zd„ ZdS )ÚTrialRunnerTestsMixinz9
    Mixin defining tests for L{runner.TrialRunner}.
    c                 ó   — dS )z=
        Empty test method, used by the other tests.
        Nr,   r   s    r   Ú
test_emptyz TrialRunnerTestsMixin.test_empty~   rI   r!   c                 ó$   — t           j        j        S r   )r   ÚtheLogPublisherÚ	observersr   s    r   Ú_getObserversz#TrialRunnerTestsMixin._getObserversƒ   s   € ÝÔ"Ô,Ð,r!   c                 óô   — t          |                      ¦   «         ¦  «        }| j                             | j        ¦  «         t          |                      ¦   «         ¦  «        }|                      ||¦  «         dS )zn
        Any log system observers L{TrialRunner.run} adds are removed by the
        time it returns.
        N)Úlenrd   r   ÚrunrF   ÚassertEqual)r   ÚoriginalCountÚnewCounts      r   Útest_addObserversz'TrialRunnerTestsMixin.test_addObservers†   sh   € õ
 ˜D×.Ò.Ñ0Ô0Ñ1Ô1ˆØŒ�Š˜œ	Ñ"Ô"Ð"Ý�t×)Ò)Ñ+Ô+Ñ,Ô,ˆØ×Ò˜ =Ñ1Ô1Ð1Ð1Ð1r!   c                 ór  — t          | j        j        ¦  «                             | j        j        ¦  «        }t          d¦  «        D ]p}| j                             | j        ¦  «         |                     ¦   «          |  	                    | 
                    ¦   «         ¦  «         |                     ¦   «          ŒqdS )z=
        Test that a new file is opened on each run.
        é   N)r   r   ÚworkingDirectoryÚchildÚlogfileÚrangerg   rF   ÚrestatÚ
assertTrueÚexistsÚremove)r   ÚlogPathÚis      r   Útest_logFileAlwaysActivez.TrialRunnerTestsMixin.test_logFileAlwaysActive�   sŸ   € õ ˜4œ;Ô7Ñ8Ô8×>Ò>¸t¼{Ô?RÑSÔSˆå�q‘”ð 	ð 	ˆAØŒK�OŠO˜DœIÑ&Ô&Ð&Ø�NŠNÑÔÐØ�OŠO˜GŸNšNÑ,Ô,Ñ-Ô-Ð-ð �NŠNÑÔÐÐð	ð 	r!   N)r)   r*   r+   rZ   r`   rd   rk   rx   r,   r!   r   r^   r^   y   sZ   € € € € € ðð ðð ð ð
-ð -ð -ð2ð 2ð 2ðð ð ð ð r!   r^   c                   ó   — e Zd ZdZd„ Zd„ ZdS )ÚTrialRunnerTestszm
    Tests for L{runner.TrialRunner} with the feature to turn unclean errors
    into warnings disabled.
    c                 óž   — t          ¦   «         | _        t          j        t          | j        ¬¦  «        | _        t          d¦  «        | _        d S )N©r5   r`   ©r   r5   r   ÚTrialRunnerr.   rz   rF   r   s    r   ÚsetUpzTrialRunnerTests.setUp¥   s:   € Ý‘j”jˆŒÝÔ(Õ):À4Ä;ÐOÑOÔOˆŒÝ$ \Ñ2Ô2ˆŒ	ˆ	ˆ	r!   c                 óx   — | j                              ¦   «         }|                      |j        t          ¦  «         dS )z˜
        The reporter constructed by L{runner.TrialRunner} is passed
        L{twisted.python.log} as the value for the C{publisher} parameter.
        N)r   Ú_makeResultÚassertIdenticalr4   r   ©r   Úresults     r   Útest_publisherzTrialRunnerTests.test_publisherª   s6   € ð
 ”×(Ò(Ñ*Ô*ˆØ×Ò˜VÔ.µÑ4Ô4Ð4Ð4Ð4r!   N)r)   r*   r+   rZ   r   r…   r,   r!   r   rz   rz   Ÿ   s<   € € € € € ðð ð
3ð 3ð 3ð
5ð 5ð 5ð 5ð 5r!   rz   c                   ó   — e Zd ZdZd„ ZdS )Ú+TrialRunnerWithUncleanWarningsReporterTestsza
    Tests for the TrialRunner's interaction with an unclean-error suppressing
    reporter.
    c                 ó    — t          ¦   «         | _        t          j        t          | j        d¬¦  «        | _        t          d¦  «        | _        d S )NT©r5   ÚuncleanWarningsr`   r}   r   s    r   r   z1TrialRunnerWithUncleanWarningsReporterTests.setUp»   sD   € Ý‘j”jˆŒÝÔ(Ý d¤kÀ4ð
ñ 
ô 
ˆŒõ % \Ñ2Ô2ˆŒ	ˆ	ˆ	r!   N©r)   r*   r+   rZ   r   r,   r!   r   r‡   r‡   ³   s-   € € € € € ðð ð
3ð 3ð 3ð 3ð 3r!   r‡   c                   ó0   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚDryRunMixinze
    Mixin for testing that 'dry run' mode works with various
    L{pyunit.TestCase} subclasses.
    c                 óÌ   — g | _         t          ¦   «         | _        t          j        t
          t          j        j        | j        ¬¦  «        | _        |                      ¦   «          d S )Nr|   )r   r   r5   r   r~   r.   ÚDRY_RUNÚmakeTestFixturesr   s    r   r   zDryRunMixin.setUpÉ   sV   € ØˆŒÝ‘j”jˆŒÝÔ(Ý�vÔ1Ô9À$Ä+ð
ñ 
ô 
ˆŒð 	×ÒÑÔÐÐÐr!   c                 ó   — dS )zh
        Set C{self.test} and C{self.suite}, where C{self.suite} is an empty
        TestSuite.
        Nr,   r   s    r   r�   zDryRunMixin.makeTestFixturesÑ   rI   r!   c                 ó’   — | j                              t          j        ¦   «         ¦  «        }|                      |j        g ¦  «         dS )zf
        If there are no tests, the reporter should not receive any events to
        report.
        N)r   rg   Ú	TestSuiterh   r   rƒ   s     r   r`   zDryRunMixin.test_empty×   s>   € ð
 ”—’¥Ô!1Ñ!3Ô!3Ñ4Ô4ˆØ×Ò˜œ¨Ñ+Ô+Ð+Ð+Ð+r!   c                 ó~   — | j                              | j        ¦  «        }|                      |j        g d¢¦  «         dS )z†
        If we are running a single test, check the reporter starts, passes and
        then stops the test during a dry run.
        ©r:   rD   r>   N)r   rg   rF   rh   r   rƒ   s     r   Útest_singleCaseReportingz$DryRunMixin.test_singleCaseReportingß   s>   € ð
 ”—’ ¤Ñ+Ô+ˆØ×Ò˜œÐ(OÐ(OÐ(OÑPÔPÐPÐPÐPr!   c                 óz   — | j                              | j        ¦  «         |                      | j        g ¦  «         dS )zT
        When we are doing a dry run, the tests should not actually be run.
        N)r   rg   rF   rh   r   r   s    r   Útest_testsNotRunzDryRunMixin.test_testsNotRunç   s8   € ð 	Œ�Š˜œ	Ñ"Ô"Ð"Ø×Ò˜œ 2Ñ&Ô&Ð&Ð&Ð&r!   N)	r)   r*   r+   rZ   r   r�   r`   r–   r˜   r,   r!   r   r�   r�   Ã   sl   € € € € € ðð ð
 ð  ð  ðð ð ð,ð ,ð ,ðQð Qð Qð'ð 'ð 'ð 'ð 'r!   r�   c                   ó   — e Zd ZdZd„ ZdS )ÚSynchronousDryRunTestszS
    Check that 'dry run' mode works well with trial's L{SynchronousTestCase}.
    c                 ó†   —  G d„ dt           j        ¦  «        } |d¦  «        | _        t          j        ¦   «         | _        d S )Nc                   ó   — e Zd Zd„ ZdS )ú;SynchronousDryRunTests.makeTestFixtures.<locals>.PyunitCasec                 ó   — d S r   r,   r   s    r   Útest_foozDSynchronousDryRunTests.makeTestFixtures.<locals>.PyunitCase.test_fooö   ó   € Ø�r!   N©r)   r*   r+   rŸ   r,   r!   r   Ú
PyunitCaser�   õ   ó#   € € € € € ðð ð ð ð r!   r¢   rŸ   )r   ÚSynchronousTestCaserF   Úpyunitr“   Úsuite©r   r¢   s     r   r�   z'SynchronousDryRunTests.makeTestFixturesô   sV   € ð	ð 	ð 	ð 	ð 	�Ô5ñ 	ô 	ð 	ð �J˜zÑ*Ô*ˆŒ	ÝÔ%Ñ'Ô'ˆŒ
ˆ
ˆ
r!   N©r)   r*   r+   rZ   r�   r,   r!   r   rš   rš   ï   ó-   € € € € € ðð ð(ð (ð (ð (ð (r!   rš   c                   ó   — e Zd ZdZd„ ZdS )ÚDryRunTestsz@
    Check that 'dry run' mode works well with Trial tests.
    c                 óŒ   ‡ —  G ˆ fd„dt           j        ¦  «        } |d¦  «        ‰ _        t          j        ¦   «         ‰ _        d S )Nc                   ó   •— e Zd Zˆ fd„ZdS )ú.DryRunTests.makeTestFixtures.<locals>.MockTestc                 ó<   •— ‰j                              d¦  «         d S )NrŸ   )r   r&   )rF   r   s    €r   rŸ   z7DryRunTests.makeTestFixtures.<locals>.MockTest.test_foo  s   ø€ Ø”—’ 
Ñ+Ô+Ð+Ð+Ð+r!   Nr¡   r   s   €r   ÚMockTestr®     s.   ø€ € € € € ð,ð ,ð ,ð ,ð ,ð ,ð ,r!   r°   rŸ   )r   ÚTestCaserF   r   r“   r¦   )r   r°   s   ` r   r�   zDryRunTests.makeTestFixtures  sa   ø€ ð	,ð 	,ð 	,ð 	,ð 	,ð 	,ð 	,•xÔ(ñ 	,ô 	,ð 	,ð �H˜ZÑ(Ô(ˆŒ	ÝÔ%Ñ'Ô'ˆŒ
ˆ
ˆ
r!   Nr¨   r,   r!   r   r«   r«   ý   r©   r!   r«   c                   ó   — e Zd ZdZd„ ZdS )ÚPyUnitDryRunTestszJ
    Check that 'dry run' mode works well with stdlib unittest tests.
    c                 ó†   —  G d„ dt           j        ¦  «        } |d¦  «        | _        t          j        ¦   «         | _        d S )Nc                   ó   — e Zd Zd„ ZdS )ú6PyUnitDryRunTests.makeTestFixtures.<locals>.PyunitCasec                 ó   — d S r   r,   r   s    r   rŸ   z?PyUnitDryRunTests.makeTestFixtures.<locals>.PyunitCase.test_foo  r    r!   Nr¡   r,   r!   r   r¢   r¶     r£   r!   r¢   rŸ   )r¥   r±   rF   r“   r¦   r§   s     r   r�   z"PyUnitDryRunTests.makeTestFixtures  sU   € ð	ð 	ð 	ð 	ð 	�œñ 	ô 	ð 	ð �J˜zÑ*Ô*ˆŒ	ÝÔ%Ñ'Ô'ˆŒ
ˆ
ˆ
r!   Nr¨   r,   r!   r   r³   r³     r©   r!   r³   c                   óŽ   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z e¦   «         Zd„ Zd„ ZdS )ÚRunnerTestsc                 óp  ‡ ‡— t          j        ¦   «         ‰ _        t          j        t
          ¦  «                             d¦  «        }d                     |d d…         ¦  «        }|d         }t          j	        d|ddd |¬¦  «        gŠˆˆ fd„}t          j        ‰ _        |t          _        g d¢d	z  ‰ _        d S )
Nú.éÿÿÿÿzTest Helper ReporterzUtility for unit testing.Ú	capturing)ÚdescriptionÚlongOptÚshortOptÚklassc                 ó|   •— ‰                      | t          ¦  «         ‰t           ‰j        | g|¢R i |¤Ž¦  «        z   S r   )rh   r   ÚlistÚoriginal)ÚifaceÚaÚkwÚpluginsr   s      €€r   Ú
getPluginsz%RunnerTests.setUp.<locals>.getPlugins/  sH   ø€ Ø×Ò˜U¥IÑ.Ô.Ð.Ø�T - $¤-°Ð"@¸Ð"@Ð"@Ð"@¸RÐ"@Ð"@ÑAÔAÑAÐAr!   r•   é
   )r   ÚOptionsÚconfigr   Úqualr.   ÚsplitÚjoinr	   Ú	_Reporterr   rÉ   rÄ   ÚstandardReport)r   ÚpartsÚpackagerÁ   rÉ   rÈ   s   `    @r   r   zRunnerTests.setUp  sÕ   øø€ Ý”m‘o”oˆŒõ ”Õ.Ñ/Ô/×5Ò5°cÑ:Ô:ˆØ—(’(˜5  " œ:Ñ&Ô&ˆØ�b”	ˆåÔ#Ø&ØØ7Ø#ØØðñ ô ð	
ˆð	Bð 	Bð 	Bð 	Bð 	Bð 	Bõ Ô)ˆŒØ&�Ôð
 FÐEÐEÈÑJˆÔÐÐr!   c                 ó(   — | j         t          _        d S r   )rÄ   r   rÉ   r   s    r   ÚtearDownzRunnerTests.tearDown;  s   € Ø œM�ÔÐÐr!   c                 ó:   — | j                              |¦  «         d S r   )rÌ   ÚparseOptions©r   r'   s     r   r×   zRunnerTests.parseOptions>  s   € ØŒ× Ò  Ñ&Ô&Ð&Ð&Ð&r!   c                 ó^   — t          j        | j        ¦  «        }t          ¦   «         |_        |S r   )r   Ú_makeRunnerrÌ   r   r5   )r   Úrs     r   Ú	getRunnerzRunnerTests.getRunnerA  s$   € ÝÔ˜dœkÑ*Ô*ˆÝ‘:”:ˆŒØˆr!   c                 óÂ   — |                       g ¦  «         | j        d         }|                      ¦   «         }|                      | |j        ¦   «         j        ¦  «         d S ©Nr   )r×   rÌ   rÜ   rh   r�   Ú	__class__)r   r„   r   s      r   Útest_runner_can_get_reporterz(RunnerTests.test_runner_can_get_reporterF  s\   € Ø×Ò˜"ÑÔÐØ”˜ZÔ(ˆØ—’Ñ!Ô!ˆØ×Ò˜Ð!3 Ô!3Ñ!5Ô!5Ô!?Ñ@Ô@Ð@Ð@Ð@r!   c                 óÂ   — |                       g ¦  «         |                      ¦   «         } |j        ¦   «         }|                      |j        | j        d         ¦  «         d S rÞ   )r×   rÜ   r�   rh   rß   rÌ   ©r   r   r„   s      r   Útest_runner_get_resultz"RunnerTests.test_runner_get_resultL  s[   € Ø×Ò˜"ÑÔÐØ—’Ñ!Ô!ˆØ#�Ô#Ñ%Ô%ˆØ×Ò˜Ô)¨4¬;°zÔ+BÑCÔCÐCÐCÐCr!   c                 ó²   — |                       g ¦  «         |                      ¦   «         }|                       |j        ¦   «         t          j        ¦  «         dS )zÕ
        By default Trial sets the 'uncleanWarnings' option on the runner to
        False. This means that dirty reactor errors will be reported as
        errors. See L{test_reporter.DirtyReactorTests}.
        N)r×   rÜ   ÚassertNotIsInstancer�   r   ÚUncleanWarningsReporterWrapper©r   r   s     r   Ú test_uncleanWarningsOffByDefaultz,RunnerTests.test_uncleanWarningsOffByDefaultR  s\   € ð 	×Ò˜"ÑÔÐØ—’Ñ!Ô!ˆØ× Ò ØˆFÔÑ Ô ¥(Ô"Iñ	
ô 	
ð 	
ð 	
ð 	
r!   c                 ó´   — |                       dg¦  «         |                      ¦   «         }|                       |j        ¦   «         t          j        ¦  «         dS )zï
        Specifying '--unclean-warnings' on the trial command line will cause
        reporters to be wrapped in a device which converts unclean errors to
        warnings.  See L{test_reporter.DirtyReactorTests} for implications.
        z--unclean-warningsN)r×   rÜ   ÚassertIsInstancer�   r   ræ   rç   s     r   Útest_getsUncleanWarningsz$RunnerTests.test_getsUncleanWarnings^  s`   € ð 	×ÒÐ/Ð0Ñ1Ô1Ð1Ø—’Ñ!Ô!ˆØ×ÒØˆFÔÑ Ô ¥(Ô"Iñ	
ô 	
ð 	
ð 	
ð 	
r!   c                 ó’   — |                       ddg¦  «         |                      ¦   «         }|                      |j        d¦  «         d S )Nú--temp-directoryÚ	some_path)r×   rÜ   rh   rn   rç   s     r   Útest_runner_working_directoryz)RunnerTests.test_runner_working_directoryj  sJ   € Ø×ÒÐ-¨{Ð;Ñ<Ô<Ð<Ø—’Ñ!Ô!ˆØ×Ò˜Ô0°+Ñ>Ô>Ð>Ð>Ð>r!   c                 óö  ‡‡‡‡— |                       g ¦  «         |                      t          j        t          j        ¦   «         ¦  «         t          |                      ¦   «         ¦  «        Š‰                     ¦   «          t          j        ‰j        ¦  «         |  	                    ¦   «         }|  	                    ¦   «         Ši Š G ˆˆˆˆfd„dt          j        ¦  «        Š|                      ‰d¦  «        ¦  «        }|j        |j        z   }|r!|                      |d         d         ¦  «         |                      ‰‰                     d¦  «        j        ‰                     d¦  «        j        dœ¦  «         d	S )
zÙ
        If no working directory is explicitly specified and the default
        working directory is in use by another runner, L{TrialRunner.run}
        selects a different default working directory to use.
        c                   ó*   •— e Zd Zˆ ˆˆˆfd„Zˆfd„ZdS )úKRunnerTests.test_concurrentImplicitWorkingDirectory.<locals>.ConcurrentCasec                 óæ   •— t          j        ¦   «         x‰d<   }t          j        ‰j        ¦  «         |                      t           j        |¦  «         ‰                      ‰d¦  «        ¦  «         dS )zÕ
                Start a second test run which will have a default working
                directory which is the same as the working directory of the
                test run already in progress.
                Ú
concurrentÚtest_secondN)ÚosÚgetcwdÚchdirÚpathÚ
addCleanuprg   )r   ÚsubsequentDirectoryÚConcurrentCaseÚrunDirectoryÚsecondRunnerÚwheres     €€€€r   Ú
test_firstzVRunnerTests.test_concurrentImplicitWorkingDirectory.<locals>.ConcurrentCase.test_firstˆ  si   ø€ õ =?¼I¹K¼KÐG��lÑ#Ð&9Ý”˜Ô*Ñ+Ô+Ð+Ø—’¥¤Ð*=Ñ>Ô>Ð>à× Ò   °Ñ!>Ô!>Ñ?Ô?Ð?Ð?Ð?r!   c                 ó4   •— t          j        ¦   «         ‰d<   dS )zR
                Record the working directory for later analysis.
                ÚrecordN)rö   r÷   )r   rÿ   s    €r   rõ   zWRunnerTests.test_concurrentImplicitWorkingDirectory.<locals>.ConcurrentCase.test_second–  s   ø€ õ #%¤)¡+¤+��h‘��r!   N)r)   r*   r+   r   rõ   )rü   rý   rþ   rÿ   s   €€€€r   rü   rò   ‡  s^   ø€ € € € € ð@ð @ð @ð @ð @ð @ð @ð @ð.ð .ð .ð .ð .ð .ð .r!   rü   r   r   r$   Ú_trial_tempz_trial_temp-1)rô   r  N)r×   rú   rö   rø   r÷   r   ÚmktempÚmakedirsrù   rÜ   r   r¤   rg   ÚerrorsÚfailuresÚfailrh   ro   )r   ÚfirstRunnerr„   Úbadrü   rý   rþ   rÿ   s       @@@@r   Ú'test_concurrentImplicitWorkingDirectoryz3RunnerTests.test_concurrentImplicitWorkingDirectoryo  sƒ  øøøø€ ð 	×Ò˜"ÑÔÐð 	�Š�œ¥"¤)¡+¤+Ñ.Ô.Ð.õ
   §¢¡¤Ñ.Ô.ˆØ×ÒÑÔÐÝ
Œ�Ô"Ñ#Ô#Ð#à—n’nÑ&Ô&ˆØ—~’~Ñ'Ô'ˆàˆð	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.�XÔ9ñ 	.ô 	.ð 	.ð* —’  °Ñ!=Ô!=Ñ>Ô>ˆØŒm˜fœoÑ-ˆØð 	!Ø�IŠI�c˜!”f˜Q”iÑ Ô Ð Ø×ÒØà*×0Ò0°Ñ?Ô?ÔDØ&×,Ò,¨_Ñ=Ô=ÔBðð ñ	
ô 	
ð 	
ð 	
ð 	
r!   c                 ó&  ‡‡— |                       dt          j                             |                      ¦   «         ¦  «        g¦  «         t          j        ¦   «         }|                      t          j        |¦  «         |                      ¦   «         }|                      ¦   «         Š G ˆˆfd„dt          j
        ¦  «        Š|                      ‰d¦  «        ¦  «        }|j        |j        z   }|r#|                      |d         d         ¦  «         dS dS )z•
        If a working directory which is already in use is explicitly specified,
        L{TrialRunner.run} raises L{_WorkingDirectoryBusy}.
        rí   c                   ó"   •— e Zd Zˆ ˆfd„Zd„ ZdS )úKRunnerTests.test_concurrentExplicitWorkingDirectory.<locals>.ConcurrentCasec                 óf   •— |                       t          j        ‰j         ‰d¦  «        ¦  «         dS )zŸ
                Try to start another runner in the same working directory and
                assert that it raises L{_WorkingDirectoryBusy}.
                Útest_failureN)ÚassertRaisesr   Ú_WorkingDirectoryBusyrg   )r   rü   rþ   s    €€r   Útest_concurrentz[RunnerTests.test_concurrentExplicitWorkingDirectory.<locals>.ConcurrentCase.test_concurrent¶  s@   ø€ ð
 ×!Ò!ÝÔ.Ø Ô$Ø"�N >Ñ2Ô2ñô ð ð ð r!   c                 ó0   — |                       d¦  «         dS )zE
                Should not be called, always fails.
                z$test_failure should never be called.N)r  r   s    r   r  zXRunnerTests.test_concurrentExplicitWorkingDirectory.<locals>.ConcurrentCase.test_failureÁ  s   € ð —	’	Ð@ÑAÔAÐAÐAÐAr!   N)r)   r*   r+   r  r  )rü   rþ   s   €€r   rü   r  µ  sG   ø€ € € € € ð	ð 	ð 	ð 	ð 	ð 	ðBð Bð Bð Bð Br!   rü   r  r   r$   N)r×   rö   rù   Úabspathr  r÷   rú   rø   rÜ   r   r¤   rg   r  r  r  )r   ÚinitialDirectoryr	  r„   r
  rü   rþ   s        @@r   Ú'test_concurrentExplicitWorkingDirectoryz3RunnerTests.test_concurrentExplicitWorkingDirectory¨  s  øø€ ð
 	×ÒÐ-­r¬w¯ª¸t¿{º{¹}¼}Ñ/MÔ/MÐNÑOÔOÐOåœ9™;œ;ÐØ�Š�œÐ"2Ñ3Ô3Ð3à—n’nÑ&Ô&ˆØ—~’~Ñ'Ô'ˆð	Bð 	Bð 	Bð 	Bð 	Bð 	Bð 	Bð 	B�XÔ9ñ 	Bô 	Bð 	Bð$ —’  Ð0AÑ!BÔ!BÑCÔCˆØŒm˜fœoÑ-ˆØð 	!Ø�IŠI�c˜!”f˜Q”iÑ Ô Ð Ð Ð ð	!ð 	!r!   c                 óB  — |                       d|                      ¦   «         dddg¦  «         |                      ¦   «         }t          j        ¦   «         }|                     dd¦  «        }|                     |¦  «        }|                      | j        |j	        ¦  «         d S )Nrí   ú
--reporterr½   útwisted.trial.test.sampleT)
r×   r  rÜ   r   Ú
TestLoaderÚ
loadByNamerg   rh   rÑ   r   )r   Ú	my_runnerÚloaderr¦   r„   s        r   Útest_runner_normalzRunnerTests.test_runner_normalÌ  s�   € Ø×Òà"Ø—’‘”ØØØ+ðñ	
ô 	
ð 	
ð —N’NÑ$Ô$ˆ	ÝÔ"Ñ$Ô$ˆØ×!Ò!Ð"=¸tÑDÔDˆØ—’˜uÑ%Ô%ˆØ×Ò˜Ô,¨f¬mÑ<Ô<Ð<Ð<Ð<r!   c                 ó~   — t          j        ¦   «         }|                     dd¦  «        }|                     |¦  «        S )Nr  T)r   r  r  rg   )r   r  r  r¦   s       r   ÚrunSampleSuitezRunnerTests.runSampleSuiteÜ  s8   € ÝÔ"Ñ$Ô$ˆØ×!Ò!Ð"=¸tÑDÔDˆØ�}Š}˜UÑ#Ô#Ð#r!   c                 ó(  — |                       g d¢¦  «         |                      ¦   «         }t          ¦   «         x}|_        |                      |¦  «        }|                      | j        |j        ¦  «         |                      dg|j        ¦  «         dS )zL
        Trial uses its debugger if the `--debug` option is passed.
        )r  r½   ú--debugr  r#   N)r×   rÜ   r   Údebuggerr!  rh   rÑ   r   )r   r  r$  r„   s       r   Útest_runnerDebugzRunnerTests.test_runnerDebugá  s—   € ð 	×ÒØOÐOÐOñ	
ô 	
ð 	
ð —N’NÑ$Ô$ˆ	Ý(9Ñ(;Ô(;Ð;ˆ�9Ô%Ø×$Ò$ YÑ/Ô/ˆØ×Ò˜Ô,¨f¬mÑ<Ô<Ð<Ø×Ò˜)˜ h¤oÑ6Ô6Ð6Ð6Ð6r!   c                 óX  ‡ — ‰                       ddg¦  «         t          d¦  «        }|                     ¦   «          d‰ _        ˆ fd„}‰                      t
          j        d|¦  «         ‰                      ‰                      ¦   «         ¦  «         ‰  	                    ‰ j        ¦  «         dS )zL
        Trial uses pdb if no debugger is specified by `--debugger`
        r#  r  ÚpdbrcFc                 ó   •— d‰_         d S ©NT©Úruncall_called©Úpdbr¦   r„   r   s      €r   r#   z=RunnerTests.test_runnerDebuggerDefaultsToPdb.<locals>.runcallø  ó   ø€ Ø"&ˆDÔÐÐr!   r#   N)
r×   r   Útouchr+  Úpatchr-  ÚPdbr!  rÜ   rs   )r   Ú	pdbrcFiler#   s   `  r   Ú test_runnerDebuggerDefaultsToPdbz,RunnerTests.test_runnerDebuggerDefaultsToPdbî  s°   ø€ ð 	×Ò˜9Ð&AÐBÑCÔCÐCÝ˜WÑ%Ô%ˆ	Ø�ŠÑÔÐà#ˆÔð	'ð 	'ð 	'ð 	'ð 	'ð 	�
Š
•3”7˜I wÑ/Ô/Ð/à×Ò˜DŸNšNÑ,Ô,Ñ-Ô-Ð-à�Š˜Ô+Ñ,Ô,Ð,Ð,Ð,r!   c                 ó  ‡ — ‰                       g d¢¦  «         d‰ _        ˆ fd„}‰                      t          j        d|¦  «         ‰                      ‰                      ¦   «         ¦  «         ‰                      ‰ j        ¦  «         dS )zU
        Trial uses pdb if pdb is passed explicitly to the `--debugger` arg.
        )r  r½   ú
--debuggerr-  r#  r  Fc                 ó   •— d‰_         d S r)  r*  r,  s      €r   r#   zGRunnerTests.test_runnerDebuggerWithExplicitlyPassedPdb.<locals>.runcall  r.  r!   r#   N)r×   r+  r0  r-  r1  r!  rÜ   rs   )r   r#   s   ` r   Ú*test_runnerDebuggerWithExplicitlyPassedPdbz6RunnerTests.test_runnerDebuggerWithExplicitlyPassedPdb  s¢   ø€ ð 	×Òðð ð ñ		
ô 		
ð 		
ð $ˆÔð	'ð 	'ð 	'ð 	'ð 	'ð 	�
Š
•3”7˜I wÑ/Ô/Ð/à×Ò˜DŸNšNÑ,Ô,Ñ-Ô-Ð-à�Š˜Ô+Ñ,Ô,Ð,Ð,Ð,r!   c                 ó  — |                       g d¢¦  «         |                      ¦   «         }|                      |¦  «        }|                      | j        |j        ¦  «         |                      dg|j        j        ¦  «         dS )zM
        Trial uses specified debugger if the debugger is available.
        )r  r½   r5  z4twisted.trial.test.test_runner.RunnerTests.cdebuggerr#  r  r#   N)r×   rÜ   r!  rh   rÑ   r   r$  )r   r  r„   s      r   Útest_runnerDebuggerzRunnerTests.test_runnerDebugger  sŽ   € ð 	×Òðð ð ñ		
ô 		
ð 		
ð —N’NÑ$Ô$ˆ	Ø×$Ò$ YÑ/Ô/ˆØ×Ò˜Ô,¨f¬mÑ<Ô<Ð<Ø×Ò˜)˜ iÔ&8Ô&?Ñ@Ô@Ð@Ð@Ð@r!   c                 ó¸   — |                       dg¦  «         |                      ¦   «         } |j        ¦   «         }|                      |t          j        ¦  «         dS )z•
        If trial was passed the C{--exitfirst} option, the constructed test
        result object is wrapped with L{reporter._ExitWrapper}.
        z--exitfirstN)r×   rÜ   r�   rê   r   Ú_ExitWrapperrâ   s      r   Útest_exitfirstzRunnerTests.test_exitfirst0  sX   € ð
 	×Ò˜=˜/Ñ*Ô*Ð*Ø—’Ñ!Ô!ˆØ#�Ô#Ñ%Ô%ˆØ×Ò˜f¥hÔ&;Ñ<Ô<Ð<Ð<Ð<r!   N)r)   r*   r+   r   rÕ   r×   rÜ   rà   rã   rè   rë   rï   r  r  r  r!  r%  r3  r7  r   Ú	cdebuggerr9  r<  r,   r!   r   r¹   r¹     sA  € € € € € ðKð Kð KðB*ð *ð *ð'ð 'ð 'ðð ð ð
Að Að AðDð Dð Dð

ð 

ð 

ð

ð 

ð 

ð?ð ?ð ?ð
7
ð 7
ð 7
ðr"!ð "!ð "!ðH=ð =ð =ð $ð $ð $ð
7ð 7ð 7ð-ð -ð -ð&-ð -ð -ð4 "Ð!Ñ#Ô#€IðAð Að Að&=ð =ð =ð =ð =r!   r¹   c                   ó   — e Zd Zd„ ZdS )ÚTrialSuiteTestsc                 ó$   — t          d¦  «         d S )Nztwisted.trial.runner.TrialSuiter   r   s    r   Útest_importszTrialSuiteTests.test_imports<  s   € åÐ2Ñ3Ô3Ð3Ð3Ð3r!   N)r)   r*   r+   rA  r,   r!   r   r?  r?  ;  s#   € € € € € ð4ð 4ð 4ð 4ð 4r!   r?  c                   óR   — e Zd Z G d„ dej        ¦  «        Zd„ Zd„ Zd„ Zd„ Z	d„ Z
dS )	ÚUntilFailureTestsc                   ó4   — e Zd ZU dZg Zed         ed<   d„ ZdS )úUntilFailureTests.FailAfterzC
        A test case that fails when run 3 times in a row.
        NÚcountc                 ó˜   — | j                              d ¦  «         t          | j         ¦  «        dk    r|                      d¦  «         d S d S )Né   zCount reached 3)rF  r&   rf   r  r   s    r   rŸ   z$UntilFailureTests.FailAfter.test_fooI  sL   € ØŒJ×Ò˜dÑ#Ô#Ð#Ý�4”:‰Œ !Ò#Ð#Ø—	’	Ð+Ñ,Ô,Ð,Ð,Ð,ð $Ð#r!   )r)   r*   r+   rZ   rF  r   Ú__annotations__rŸ   r,   r!   r   Ú	FailAfterrE  B  sE   € € € € € € ð	ð 	ð ˆˆt�DŒzÐÐÑð	-ð 	-ð 	-ð 	-ð 	-r!   rJ  c                 óà   — g t           j        _        t                                d¦  «        | _        t	          ¦   «         | _        t          j        t          j	        | j        ¬¦  «        | _        d S )NrŸ   r|   )
rC  rJ  rF  rF   r   r5   r   r~   r   ÚReporterr   s    r   r   zUntilFailureTests.setUpN  sN   € Ø,.ÕÔ#Ô)Ý%×/Ò/°
Ñ;Ô;ˆŒ	Ý‘j”jˆŒÝÔ(­Ô):À4Ä;ÐOÑOÔOˆŒˆˆr!   c                 ó  — | j                              | j        ¦  «        }|                      |j        d¦  «         |                      |                     ¦   «         ¦  «         |                      |                      |¦  «        d¦  «         dS )zl
        Test that the runUntilFailure method of the runner actually fail after
        a few runs.
        r$   N)r   ÚrunUntilFailurerF   rh   r\   ÚassertFalserY   Ú_getFailuresrƒ   s     r   Útest_runUntilFailurez&UntilFailureTests.test_runUntilFailureT  s}   € ð
 ”×,Ò,¨T¬YÑ7Ô7ˆØ×Ò˜œ¨!Ñ,Ô,Ð,Ø×Ò˜×-Ò-Ñ/Ô/Ñ0Ô0Ð0Ø×Ò˜×*Ò*¨6Ñ2Ô2°AÑ6Ô6Ð6Ð6Ð6r!   c                 ó*   — t          |j        ¦  «        S )zL
        Get the number of failures that were reported to a result.
        )rf   r  rƒ   s     r   rP  zUntilFailureTests._getFailures^  s   € õ �6”?Ñ#Ô#Ð#r!   c                 óN  ‡— g Šˆfd„}|                       t          d|¦  «         | j                             | j        ¦  «        }|                      |j        d¦  «         |                      t          ‰¦  «        d¦  «         |                      ‰| j        t          fg¦  «         dS )z�
        C{runUntilFailure} doesn't decorate the tests uselessly: it does it one
        time when run starts, but not at each turn.
        c                 ó6   •— ‰                      | |f¦  «         | S r   ©r&   ©rF   Ú	interfaceÚ	decorateds     €r   Údecoratez@UntilFailureTests.test_runUntilFailureDecorate.<locals>.decoratek  ó!   ø€ Ø×Ò˜d IÐ.Ñ/Ô/Ð/ØˆKr!   rY  r$   N)	r0  r   r   rN  rF   rh   r\   rf   r   ©r   rY  r„   rX  s      @r   Útest_runUntilFailureDecoratez.UntilFailureTests.test_runUntilFailureDecorated  s¬   ø€ ð
 ˆ	ð	ð 	ð 	ð 	ð 	ð 	�
Š
•8˜Z¨Ñ2Ô2Ð2Ø”×,Ò,¨T¬YÑ7Ô7ˆØ×Ò˜œ¨!Ñ,Ô,Ð,à×Ò�˜Y™œ¨Ñ+Ô+Ð+Ø×Ò˜ d¤iµÐ%;Ð$<Ñ=Ô=Ð=Ð=Ð=r!   c                 ó€  ‡— g Šˆfd„}|                       t          d|¦  «         d| j        _        | j                             | j        ¦  «        }|                      |j        d¦  «         |                      t          ‰¦  «        d¦  «         |                      ‰| j        t          f| j        t          fg¦  «         dS )z‹
        C{runUntilFailure} applies the force-gc decoration after the standard
        L{ITestCase} decoration, but only one time.
        c                 ó6   •— ‰                      | |f¦  «         | S r   rU  rV  s     €r   rY  zGUntilFailureTests.test_runUntilFailureForceGCDecorate.<locals>.decorate}  rZ  r!   rY  Tr$   rm   N)r0  r   r   Ú_forceGarbageCollectionrN  rF   rh   r\   rf   r   r   r[  s      @r   Ú#test_runUntilFailureForceGCDecoratez5UntilFailureTests.test_runUntilFailureForceGCDecoratev  sÌ   ø€ ð
 ˆ	ð	ð 	ð 	ð 	ð 	ð 	�
Š
•8˜Z¨Ñ2Ô2Ð2Ø.2ˆŒÔ+Ø”×,Ò,¨T¬YÑ7Ô7ˆØ×Ò˜œ¨!Ñ,Ô,Ð,à×Ò�˜Y™œ¨Ñ+Ô+Ð+Ø×ÒØØŒi�Ð# d¤iÕ1QÐ%RÐSñ	
ô 	
ð 	
ð 	
ð 	
r!   N)r)   r*   r+   r¥   r±   rJ  r   rQ  rP  r\  r`  r,   r!   r   rC  rC  A  sŽ   € € € € € ð
-ð 
-ð 
-ð 
-ð 
-�F”Oñ 
-ô 
-ð 
-ðPð Pð Pð7ð 7ð 7ð$ð $ð $ð>ð >ð >ð$
ð 
ð 
ð 
ð 
r!   rC  c                   ó   — e Zd ZdZd„ Zd„ ZdS )ÚUncleanUntilFailureTestszh
    Test that the run-until-failure feature works correctly with the unclean
    error suppressor.
    c                 ó�   — t                                | ¦  «         t          j        t          j        | j        d¬¦  «        | _        d S )NTr‰   )rC  r   r   r~   r   rL  r5   r   s    r   r   zUncleanUntilFailureTests.setUp“  s?   € Ý×Ò Ñ%Ô%Ð%ÝÔ(ÝÔ d¤kÀ4ð
ñ 
ô 
ˆŒˆˆr!   c                 ó4   — t          |j        j        ¦  «        S )z€
        Get the number of failures that were reported to a result that
        is wrapped in an UncleanFailureWrapper.
        )rf   Ú_originalReporterr  rƒ   s     r   rP  z%UncleanUntilFailureTests._getFailures™  s   € õ
 �6Ô+Ô4Ñ5Ô5Ð5r!   N)r)   r*   r+   rZ   r   rP  r,   r!   r   rb  rb  �  s<   € € € € € ðð ð

ð 
ð 
ð6ð 6ð 6ð 6ð 6r!   rb  c                   ó   — e Zd ZdZd„ ZdS )ÚBreakingSuitez;
    A L{TestSuite} that logs an error when it is run.
    c                 óŽ   — 	 t          d¦  «        ‚# t           $ r) t          j        t          j        ¦   «         ¦  «         Y d S w xY w)Nz#error that occurs outside of a test)ÚRuntimeErrorr   Úerrr
   ÚFailurerƒ   s     r   rg   zBreakingSuite.run¦  sR   € ð	'ÝÐDÑEÔEÐEøÝð 	'ð 	'ð 	'ÝŒG•G”OÑ%Ô%Ñ&Ô&Ð&Ð&Ð&Ð&ð	'øøøs   ‚ ‘/AÁAN)r)   r*   r+   rZ   rg   r,   r!   r   rg  rg  ¡  s-   € € € € € ðð ð'ð 'ð 'ð 'ð 'r!   rg  c                   ó$   — e Zd ZdZd„ Zd„ Zd„ ZdS )ÚLoggedErrorsTestsa  
    It is possible for an error generated by a test to be logged I{outside} of
    any test. The log observers constructed by L{TestCase} won't catch these
    errors. Here we try to generate such errors and ensure they are reported to
    a L{TestResult} object.
    c                 ó:   — |                       t          ¦  «         d S r   )ÚflushLoggedErrorsri  r   s    r   rÕ   zLoggedErrorsTests.tearDownµ  s   € Ø×Ò�|Ñ,Ô,Ð,Ð,Ð,r!   c                 ó|   — t          j        ¦   «         }|                      |                     ¦   «         d¦  «         dS )zg
        Check that we can construct a L{runner.LoggedSuite} and that it
        starts empty.
        r   N)r   ÚLoggedSuiterh   ÚcountTestCases)r   r¦   s     r   Útest_constructz LoggedErrorsTests.test_construct¸  s:   € õ
 Ô"Ñ$Ô$ˆØ×Ò˜×-Ò-Ñ/Ô/°Ñ3Ô3Ð3Ð3Ð3r!   c                 óê  — t          j        ¦   «         }t          j        t	          ¦   «         g¦  «        }|                     |¦  «         |                      t          |j        ¦  «        d¦  «         |                      |j        d         d          	                    ¦   «         t          j
        ¦  «         |                      |j        d         d                              t          ¦  «        ¦  «         dS )zU
        Chek that a L{LoggedSuite} reports any logged errors to its result.
        r$   r   N)r   Ú
TestResultr   rq  rg  rg   rh   rf   r  ÚidÚNOT_IN_TESTrs   Úcheckri  )r   r„   r¦   s      r   Útest_capturesErrorz$LoggedErrorsTests.test_capturesErrorÀ  s¾   € õ Ô$Ñ&Ô&ˆÝÔ"¥M¡O¤OÐ#4Ñ5Ô5ˆØ�	Š	�&ÑÔÐØ×Ò�˜Vœ]Ñ+Ô+¨QÑ/Ô/Ð/Ø×Ò˜œ qÔ)¨!Ô,×/Ò/Ñ1Ô1µ6Ô3EÑFÔFÐFØ�Š˜œ aÔ(¨Ô+×1Ò1µ,Ñ?Ô?Ñ@Ô@Ð@Ð@Ð@r!   N)r)   r*   r+   rZ   rÕ   rs  ry  r,   r!   r   rm  rm  ­  sP   € € € € € ðð ð-ð -ð -ð4ð 4ð 4ð	Að 	Að 	Að 	Að 	Ar!   rm  c                   ó&   — e Zd Zd„ Zd„ Zd„ Zd„ ZdS )ÚTestHolderTestsc                 óP   — d| _         t          j        | j         ¦  «        | _        d S ©Nr¾   )r¾   r   Ú
TestHolderÚholderr   s    r   r   zTestHolderTests.setUpÍ  s#   € Ø(ˆÔÝÔ'¨Ô(8Ñ9Ô9ˆŒˆˆr!   c                 óÎ   — |                       | j                             ¦   «         | j        ¦  «         |                       | j                             ¦   «         | j        ¦  «         dS )z¸
        Check that L{runner.TestHolder} takes a description as a parameter
        and that this description is returned by the C{id} and
        C{shortDescription} methods.
        N)rh   r  rv  r¾   ÚshortDescriptionr   s    r   Útest_holderzTestHolderTests.test_holderÑ  sV   € ð 	×Ò˜œŸšÑ)Ô)¨4Ô+;Ñ<Ô<Ð<Ø×Ò˜œ×5Ò5Ñ7Ô7¸Ô9IÑJÔJÐJÐJÐJr!   c                 óÜ   — |                       | j        t          | j        ¦  «        ¦  «         |                      t	          t          | j        ¦  «        | j        ›dt          ›d�¦  «         dS )z?
        L{runner.TestHolder} implements L{ITestCase}.
        z claims to provide z but does not do so correctly.N)r‚   r  r   rs   r   r   s    r   Útest_holderImplementsITestCasez.TestHolderTests.test_holderImplementsITestCaseÚ  si   € ð 	×Ò˜Tœ[­)°D´KÑ*@Ô*@ÑAÔAÐAØ�ŠÝ� D¤KÑ0Ô0àŒ{ˆ{ˆ{�I˜I˜Ið'ñ	
ô 	
ð 	
ð 	
ð 	
r!   c                 óä   — t          j        ¦   «         }| j                             |¦  «         |                      |                     ¦   «         ¦  «         |                      d|j        ¦  «         dS )zc
        A L{runner.TestHolder} can run against the standard Python
        C{TestResult}.
        r$   N)r¥   ru  r  rg   rs   rY   rh   r\   rƒ   s     r   Útest_runsWithStandardResultz+TestHolderTests.test_runsWithStandardResultå  sb   € õ
 Ô"Ñ$Ô$ˆØŒ�Š˜ÑÔÐØ�Š˜×,Ò,Ñ.Ô.Ñ/Ô/Ð/Ø×Ò˜˜FœOÑ,Ô,Ð,Ð,Ð,r!   N)r)   r*   r+   r   r‚  r„  r†  r,   r!   r   r{  r{  Ì  sS   € € € € € ð:ð :ð :ðKð Kð Kð	
ð 	
ð 	
ð-ð -ð -ð -ð -r!   r{  c                   ó`   — e Zd ZdZ ed¦  «        Z G d„ d¦  «        Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
S )ÚErrorHolderTestsMixinaa  
    This mixin defines test methods which can be applied to a
    L{runner.ErrorHolder} constructed with either a L{Failure} or a
    C{exc_info}-style tuple.

    Subclass this and implement C{setUp} to create C{self.holder} referring to a
    L{runner.ErrorHolder} instance and C{self.error} referring to a L{Failure}
    which the holder holds.
    z"integer division or modulo by zeroc                   ó*   — e Zd ZdZd„ Zd„ Zd„ Zd„ ZdS )ú$ErrorHolderTestsMixin.TestResultStubz)
        Stub for L{TestResult}.
        c                 ó   — g | _         d S r   )r  r   s    r   r    z-ErrorHolderTestsMixin.TestResultStub.__init__  s   € ØˆDŒKˆKˆKr!   c                 ó   — d S r   r,   rE   s     r   r:   z.ErrorHolderTestsMixin.TestResultStub.startTest  ó   € ØˆDr!   c                 ó   — d S r   r,   rE   s     r   r>   z-ErrorHolderTestsMixin.TestResultStub.stopTest  r�  r!   c                 ó>   — | j                              ||f¦  «         d S r   )r  r&   rK   s      r   rM   z-ErrorHolderTestsMixin.TestResultStub.addError  s"   € ØŒK×Ò  e˜}Ñ-Ô-Ð-Ð-Ð-r!   N)r)   r*   r+   rZ   r    r:   r>   rM   r,   r!   r   ÚTestResultStubrŠ  ý  sZ   € € € € € ð	ð 	ð	ð 	ð 	ð	ð 	ð 	ð	ð 	ð 	ð	.ð 	.ð 	.ð 	.ð 	.r!   r�  c                 óä   — t          j        ¦   «         }| j                             |¦  «         |                      |                     ¦   «         ¦  «         |                      d|j        ¦  «         dS )zd
        A L{runner.ErrorHolder} can run against the standard Python
        C{TestResult}.
        r$   N)r¥   ru  r  rg   rO  rY   rh   r\   rƒ   s     r   r†  z1ErrorHolderTestsMixin.test_runsWithStandardResult  sd   € õ
 Ô"Ñ$Ô$ˆØŒ�Š˜ÑÔÐØ×Ò˜×-Ò-Ñ/Ô/Ñ0Ô0Ð0Ø×Ò˜˜FœOÑ,Ô,Ð,Ð,Ð,r!   c                 óÖ   — | j                              | j        ¦  «         |                      | j        j        | j         | j        j        | j        j        | j        j        ffg¦  «         dS )zM
        L{runner.ErrorHolder} adds an error to the result when run.
        N)	r  rg   r„   rh   r  rL   ÚtypeÚvalueÚtbr   s    r   Útest_runzErrorHolderTestsMixin.test_run  se   € ð 	Œ�Š˜œÑ$Ô$Ð$Ø×ÒØŒKÔØŒk˜DœJœO¨T¬ZÔ-=¸t¼z¼}ÐMÐNÐOñ	
ô 	
ð 	
ð 	
ð 	
r!   c                 óÌ   — |                       | j        ¦  «         |                      | j        j        | j         | j        j        | j        j        | j        j        ffg¦  «         dS )zP
        L{runner.ErrorHolder} adds an error to the result when called.
        N)r  r„   rh   r  rL   r“  r”  r•  r   s    r   Ú	test_callzErrorHolderTestsMixin.test_call"  sc   € ð 	�Š�D”KÑ Ô Ð Ø×ÒØŒKÔØŒk˜DœJœO¨T¬ZÔ-=¸t¼z¼}ÐMÐNÐOñ	
ô 	
ð 	
ð 	
ð 	
r!   c                 ó`   — |                       | j                             ¦   «         d¦  «         dS )zH
        L{runner.ErrorHolder.countTestCases} always returns 0.
        r   N)rh   r  rr  r   s    r   Útest_countTestCasesz)ErrorHolderTestsMixin.test_countTestCases,  s.   € ð 	×Ò˜œ×3Ò3Ñ5Ô5°qÑ9Ô9Ð9Ð9Ð9r!   c                 óº   — d                      t          | j        j        d         ¦  «        ¦  «        }|                      t          | j        ¦  «        |¦  «         dS )zh
        L{runner.ErrorHolder.__repr__} returns a string describing the error it
        holds.
        z0<ErrorHolder description='description' error={}>r$   N)ÚformatÚreprr  rL   rh   )r   Úexpecteds     r   Ú	test_reprzErrorHolderTestsMixin.test_repr2  sW   € ð
 I×OÒOÝ�”Ô" 1Ô%Ñ&Ô&ñ
ô 
ˆð 	×Ò�˜dœkÑ*Ô*¨HÑ5Ô5Ð5Ð5Ð5r!   N)r)   r*   r+   rZ   ÚZeroDivisionErrorÚexceptionForTestsr�  r†  r–  r˜  rš  rŸ  r,   r!   r   rˆ  rˆ  ð  s¥   € € € € € ðð ð *Ð)Ð*NÑOÔOÐð.ð .ð .ð .ð .ñ .ô .ð .ð"-ð -ð -ð
ð 
ð 
ð
ð 
ð 
ð:ð :ð :ð	6ð 	6ð 	6ð 	6ð 	6r!   rˆ  c                   ó   — e Zd ZdZd„ ZdS )ÚFailureHoldingErrorHolderTestsz“
    Tests for L{runner.ErrorHolder} behaving similarly to L{runner.TestHolder}
    when constructed with a L{Failure} representing its error.
    c                 óî   — d| _         	 | j        ‚# t          $ r t          j        ¦   «         | _        Y nw xY wt          j        | j         | j        ¦  «        | _        |  	                    ¦   «         | _
        d S r}  )r¾   r¡  r   r
   rk  rL   r   ÚErrorHolderr  r�  r„   r   s    r   r   z$FailureHoldingErrorHolderTests.setUpD  sv   € Ø(ˆÔð	+ØÔ(Ð(øÝ ð 	+ð 	+ð 	+Ý œÑ*Ô*ˆDŒJˆJˆJð	+øøøåÔ(¨Ô)9¸4¼:ÑFÔFˆŒØ×)Ò)Ñ+Ô+ˆŒˆˆs   ‰ �"5´5Nr‹   r,   r!   r   r£  r£  >  s-   € € € € € ðð ð
,ð ,ð ,ð ,ð ,r!   r£  c                   ó   — e Zd ZdZd„ ZdS )ÚExcInfoHoldingErrorHolderTestsz 
    Tests for L{runner.ErrorHolder} behaving similarly to L{runner.TestHolder}
    when constructed with a C{exc_info}-style tuple representing its error.
    c                 ó
  — d| _         	 | j        ‚# t          $ r. t          j        ¦   «         }t          j        ¦   «         | _        Y nw xY wt          j	        | j         |¦  «        | _
        |                      ¦   «         | _        d S r}  )r¾   r¡  r   ÚsysÚexc_infor
   rk  rL   r   r¥  r  r�  r„   )r   ÚexceptionInfos     r   r   z$ExcInfoHoldingErrorHolderTests.setUpU  s�   € Ø(ˆÔð	+ØÔ(Ð(øÝ ð 	+ð 	+ð 	+ÝœL™NœNˆMÝ œÑ*Ô*ˆDŒJˆJˆJð	+øøøõ Ô(¨Ô)9¸=ÑIÔIˆŒØ×)Ò)Ñ+Ô+ˆŒˆˆs   ‰ �5AÁANr‹   r,   r!   r   r§  r§  O  s-   € € € € € ðð ð
	,ð 	,ð 	,ð 	,ð 	,r!   r§  c                   óP   — e Zd ZdZ G d„ dej        ¦  «        Zd„ Zd„ Zd„ Z	d„ Z
dS )	ÚMalformedMethodTestszR
    Test that trial manages when test methods don't have correct signatures.
    c                   ó>   — e Zd ZdZd„ Zd„ Z ej        e¦  «        ZdS )ú%MalformedMethodTests.ContainMalformedzV
        This TestCase holds malformed test methods that trial should handle.
        c                 ó   — d S r   r,   )r   Úblahs     r   rŸ   z.MalformedMethodTests.ContainMalformed.test_fook  r�  r!   c                  ó   — d S r   r,   r,   r!   r   Útest_barz.MalformedMethodTests.ContainMalformed.test_barn  r�  r!   N)	r)   r*   r+   rZ   rŸ   r³  r   ÚinlineCallbacksÚ	test_spamr,   r!   r   ÚContainMalformedr¯  f  sJ   € € € € € ð	ð 	ð	ð 	ð 	ð	ð 	ð 	ð *�EÔ)¨(Ñ3Ô3ˆ	ˆ	ˆ	r!   r¶  c                 ó”  — t          ¦   «         }t          j        t          j        |¬¦  «        }t
                               |¦  «        }|                     |¦  «        }|                      |j	        d¦  «         |  
                    |                     ¦   «         ¦  «         |                      t          |j        ¦  «        d¦  «         dS )zL
        Wrapper for one of the test method of L{ContainMalformed}.
        r|   r$   N)r   r   r~   r   rL  r­  r¶  rg   rh   r\   rO  rY   rf   r  )r   r<   r5   ÚtrialRunnerrF   r„   s         r   Ú_testzMalformedMethodTests._tests  s§   € õ ‘”ˆÝÔ(­Ô):À6ÐJÑJÔJˆÝ#×4Ò4°VÑ<Ô<ˆØ—’ Ñ&Ô&ˆØ×Ò˜œ¨!Ñ,Ô,Ð,Ø×Ò˜×-Ò-Ñ/Ô/Ñ0Ô0Ð0Ø×Ò�˜Vœ]Ñ+Ô+¨QÑ/Ô/Ð/Ð/Ð/r!   c                 ó0   — |                       d¦  «         dS )zE
        Test when the method has extra (useless) arguments.
        rŸ   N©r¹  r   s    r   Útest_extraArgz"MalformedMethodTests.test_extraArg  ó   € ð 	�
Š
�:ÑÔÐÐÐr!   c                 ó0   — |                       d¦  «         dS )zJ
        Test when the method doesn't have even self as argument.
        r³  Nr»  r   s    r   Ú
test_noArgzMalformedMethodTests.test_noArg…  r½  r!   c                 ó0   — |                       d¦  «         dS )z5
        Test a decorated method also fails.
        rµ  Nr»  r   s    r   Útest_decoratedz#MalformedMethodTests.test_decorated‹  s   € ð 	�
Š
�;ÑÔÐÐÐr!   N)r)   r*   r+   rZ   r¥   r±   r¶  r¹  r¼  r¿  rÁ  r,   r!   r   r­  r­  a  s†   € € € € € ðð ð4ð 4ð 4ð 4ð 4˜6œ?ñ 4ô 4ð 4ð
0ð 
0ð 
0ðð ð ðð ð ð ð  ð  ð  ð  r!   r­  c                   ó$   — e Zd ZdZd„ Zd„ Zd„ ZdS )ÚDestructiveTestSuiteTestsz2
    Test for L{runner.DestructiveTestSuite}.
    c                 óz  ‡— g Š G ˆfd„dt           j        ¦  «        } |d¦  «        }t          j        ¦   «         }t	          j        |g¦  «        }|                      ‰g ¦  «         |                     |¦  «         |                      ‰dg¦  «         |                      |                     ¦   «         d¦  «         dS )zL
        Thes destructive test suite should run the tests normally.
        c                   ó   •— e Zd Zˆ fd„ZdS )ú6DestructiveTestSuiteTests.test_basic.<locals>.MockTestc                 ó2   •— ‰                      d¦  «         d S r)  rU  ©rF   Úcalleds    €r   rŸ   z?DestructiveTestSuiteTests.test_basic.<locals>.MockTest.test_foož  s   ø€ Ø—’˜dÑ#Ô#Ð#Ð#Ð#r!   Nr¡   ©rÉ  s   €r   r°   rÆ  �  s.   ø€ € € € € ð$ð $ð $ð $ð $ð $ð $r!   r°   rŸ   Tr   N)	r¥   r±   r   ru  r   ÚDestructiveTestSuiterh   rg   rr  )r   r°   rF   r„   r¦   rÉ  s        @r   Ú
test_basicz$DestructiveTestSuiteTests.test_basic—  sÙ   ø€ ð ˆð	$ð 	$ð 	$ð 	$ð 	$ð 	$ð 	$•v”ñ 	$ô 	$ð 	$ð ˆx˜
Ñ#Ô#ˆÝÔ$Ñ&Ô&ˆÝÔ+¨T¨FÑ3Ô3ˆØ×Ò˜ Ñ$Ô$Ð$Ø�	Š	�&ÑÔÐØ×Ò˜ $ Ñ(Ô(Ð(Ø×Ò˜×-Ò-Ñ/Ô/°Ñ3Ô3Ð3Ð3Ð3r!   c                 ó¬  ‡— g Š G ˆfd„dt           j        ¦  «        }t          j        ¦   «         }t	          j        ¦   «         }t          j        |_        |                     |¦  «        }|  	                    ‰g ¦  «         | 
                    |¦  «         |  	                    ‰dg¦  «         |  	                    |                     ¦   «         d¦  «         dS )zu
        Test the C{shouldStop} management: raising a C{KeyboardInterrupt} must
        interrupt the suite.
        c                   ó*   •— e Zd Zˆ fd„Zd„ Zˆ fd„ZdS )ú;DestructiveTestSuiteTests.test_shouldStop.<locals>.MockTestc                 ó2   •— ‰                      d¦  «         d S )Nr$   rU  rÈ  s    €r   Ú	test_foo1zEDestructiveTestSuiteTests.test_shouldStop.<locals>.MockTest.test_foo1±  ó   ø€ Ø—’˜aÑ Ô Ð Ð Ð r!   c                 ó   — t          ¦   «         ‚r   )ÚKeyboardInterrupt©rF   s    r   Ú	test_foo2zEDestructiveTestSuiteTests.test_shouldStop.<locals>.MockTest.test_foo2´  s   € Ý'Ñ)Ô)Ð)r!   c                 ó2   •— ‰                      d¦  «         d S )Nrm   rU  rÈ  s    €r   Ú	test_foo3zEDestructiveTestSuiteTests.test_shouldStop.<locals>.MockTest.test_foo3·  rÒ  r!   N)r)   r*   r+   rÑ  rÖ  rØ  rÊ  s   €r   r°   rÏ  °  sV   ø€ € € € € ð!ð !ð !ð !ð !ð*ð *ð *ð!ð !ð !ð !ð !ð !ð !r!   r°   r$   N)r   r±   r   ru  r   r  rË  ÚsuiteFactoryÚ	loadClassrh   rg   rr  )r   r°   r„   r  r¦   rÉ  s        @r   Útest_shouldStopz)DestructiveTestSuiteTests.test_shouldStop©  så   ø€ ð
 ˆð	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!•xÔ(ñ 	!ô 	!ð 	!õ Ô$Ñ&Ô&ˆÝÔ"Ñ$Ô$ˆÝ$Ô9ˆÔØ× Ò  Ñ*Ô*ˆØ×Ò˜ Ñ$Ô$Ð$Ø�	Š	�&ÑÔÐØ×Ò˜ ! Ñ%Ô%Ð%à×Ò˜×-Ò-Ñ/Ô/°Ñ3Ô3Ð3Ð3Ð3r!   c                 óf  —  G d„ dt           j        ¦  «        } |d¦  «        }t          j        ¦   «         }t	          j        |g¦  «        }|                      |                     ¦   «         d¦  «         |                     |¦  «         |                      |                     ¦   «         d¦  «         dS )zn
        Checks that the test suite cleanups its tests during the run, so that
        it ends empty.
        c                   ó   — e Zd Zd„ ZdS )ú8DestructiveTestSuiteTests.test_cleanup.<locals>.MockTestc                 ó   — d S r   r,   rÕ  s    r   rŸ   zADestructiveTestSuiteTests.test_cleanup.<locals>.MockTest.test_fooË  r    r!   Nr¡   r,   r!   r   r°   rÞ  Ê  r£   r!   r°   rŸ   r$   r   N)	r¥   r±   r   ru  r   rË  rh   rr  rg   )r   r°   rF   r„   r¦   s        r   Útest_cleanupz&DestructiveTestSuiteTests.test_cleanupÄ  s»   € ð	ð 	ð 	ð 	ð 	•v”ñ 	ô 	ð 	ð ˆx˜
Ñ#Ô#ˆÝÔ$Ñ&Ô&ˆÝÔ+¨T¨FÑ3Ô3ˆØ×Ò˜×-Ò-Ñ/Ô/°Ñ3Ô3Ð3Ø�	Š	�&ÑÔÐØ×Ò˜×-Ò-Ñ/Ô/°Ñ3Ô3Ð3Ð3Ð3r!   N)r)   r*   r+   rZ   rÌ  rÛ  rà  r,   r!   r   rÃ  rÃ  ’  sK   € € € € € ðð ð4ð 4ð 4ð$4ð 4ð 4ð64ð 4ð 4ð 4ð 4r!   rÃ  c                   ó4   — e Zd Z G d„ dej        ¦  «        ZdS )ÚRunnerDeprecationTestsc                   ó6   — e Zd ZdZdZdZdZd„ Zd„ Zd„ Z	d„ Z
dS )ú#RunnerDeprecationTests.FakeReporterz»
        Fake reporter that does *not* implement done() but *does* implement
        printErrors, separator, printSummary, stream, write and writeln
        without deprecations.
        Nc                 ó   — d S r   r,   rØ   s     r   ÚprintErrorsz/RunnerDeprecationTests.FakeReporter.printErrorsâ  r�  r!   c                 ó   — d S r   r,   rØ   s     r   ÚprintSummaryz0RunnerDeprecationTests.FakeReporter.printSummaryå  r�  r!   c                 ó   — d S r   r,   rØ   s     r   Úwritez)RunnerDeprecationTests.FakeReporter.writeè  r�  r!   c                 ó   — d S r   r,   rØ   s     r   Úwritelnz+RunnerDeprecationTests.FakeReporter.writelnë  r�  r!   )r)   r*   r+   rZ   rH   r[   r5   ræ  rè  rê  rì  r,   r!   r   ÚFakeReporterrä  ×  sk   € € € € € ð	ð 	ð ˆØˆ	Øˆð	ð 	ð 	ð	ð 	ð 	ð	ð 	ð 	ð	ð 	ð 	ð 	ð 	r!   rí  N)r)   r*   r+   r   rL  rí  r,   r!   r   râ  râ  Ö  sA   € € € € € ðð ð ð ð �xÔ(ñ ô ð ð ð r!   râ  c                   ó   — e Zd ZdZd„ ZdS )ÚQualifiedNameWalkerTestsz<
    Tests for L{twisted.trial.runner._qualNameWalker}.
    c                 óŒ   — t          t          j        d¦  «        ¦  «        }|                      |dg fddgfdddgfg¦  «         dS )zè
        C{_qualNameWalker} is a generator that, when given a Python qualified
        name, yields that name, and then the parent of that name, and so forth,
        along with a list of the tried components, in a 2-tuple.
        zwalker.texas.rangerzwalker.texasÚrangerÚwalkerÚtexasN)rÃ   r   Ú_qualNameWalkerrh   )r   ÚwalkerResultss     r   Útest_walksDownPathz+QualifiedNameWalkerTests.test_walksDownPathô  sf   € õ �VÔ3Ð4IÑJÔJÑKÔKˆà×ÒØà&¨Ð+Ø ( Ð,Ø˜G XÐ.Ð/ðñ	
ô 	
ð 	
ð 	
ð 	
r!   N)r)   r*   r+   rZ   rö  r,   r!   r   rï  rï  ï  s-   € € € € € ðð ð
ð 
ð 
ð 
ð 
r!   rï  c                   ó   — e Zd ZdZd„ ZdS )ÚTrialMainDoesNothingTestszl
    Importing L{twisted.trial.__main__} will not run the script
    unless it is actually C{__main__}.
    c                 ó$   — t          d¦  «         dS )zO
        If we import L{twisted.trial.__main__}, it should do nothing.
        ztwisted.trial.__main__N)Ú
__import__r   s    r   Útest_importDoesNothingz0TrialMainDoesNothingTests.test_importDoesNothing  s   € õ
 	Ð+Ñ,Ô,Ð,Ð,Ð,r!   N)r)   r*   r+   rZ   rû  r,   r!   r   rø  rø    s-   € € € € € ðð ð
-ð -ð -ð -ð -r!   rø  )@rö   r-  r©  r   r¥   Úior   Útypingr   Úzope.interfacer   Úzope.interface.verifyr   Útwistedr   Útwisted.internetr   Útwisted.pluginsr	   Útwisted.pythonr
   r   r   Útwisted.python.filepathr   Útwisted.python.reflectr   Útwisted.scriptsr   Útwisted.trialr   r   r   Útwisted.trial._asyncrunnerr   Útwisted.trial.itrialr   r   r   r.   r^   r¤   rz   r‡   r�   rš   r«   r³   r¹   r?  rC  rb  r“   rg  rm  r{  rˆ  r£  r§  r­  rÃ  râ  rï  rø  r,   r!   r   ú<module>r
     sÑ  ðð 
€	€	€	Ø 
€
€
€
Ø 
€
€
€
Ø Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à &Ð &Ð &Ð &Ð &Ð &Ø .Ð .Ð .Ð .Ð .Ð .à Ð Ð Ð Ð Ð Ø "Ð "Ð "Ð "Ð "Ð "Ø )Ð )Ð )Ð )Ð )Ð )Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø +Ð +Ð +Ð +Ð +Ð +Ø !Ð !Ð !Ð !Ð !Ð !Ø :Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ø GÐ GÐ GÐ GÐ GÐ GØ 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5ð%ð %ð %ð %ð %ñ %ô %ð %ð €ˆYÑÔðNð Nð Nð Nð Nñ Nô Nñ ÔðNðb#ð #ð #ð #ð #ñ #ô #ð #ðL5ð 5ð 5ð 5ð 5Ð,¨hÔ.Jñ 5ô 5ð 5ð(3ð 3ð 3ð 3ð 3Ø˜8Ô7ñ3ô 3ð 3ð )'ð )'ð )'ð )'ð )'ñ )'ô )'ð )'ðX(ð (ð (ð (ð (˜[¨(Ô*Fñ (ô (ð (ð(ð (ð (ð (ð (�+˜xÔ;ñ (ô (ð (ð(ð (ð (ð (ð (˜ XÔ%Añ (ô (ð (ð_=ð _=ð _=ð _=ð _=�(Ô.ñ _=ô _=ð _=ðD	4ð 4ð 4ð 4ð 4�hÔ2ñ 4ô 4ð 4ðI
ð I
ð I
ð I
ð I
˜Ô4ñ I
ô I
ð I
ðX6ð 6ð 6ð 6ð 6Ð0ñ 6ô 6ð 6ð(	'ð 	'ð 	'ð 	'ð 	'�FÔ$ñ 	'ô 	'ð 	'ðAð Að Að Að A˜Ô4ñ Aô Að Að>!-ð !-ð !-ð !-ð !-�hÔ2ñ !-ô !-ð !-ðHK6ð K6ð K6ð K6ð K6ñ K6ô K6ð K6ð\,ð ,ð ,ð ,ð ,Ð%:¸Oñ ,ô ,ð ,ð",ð ,ð ,ð ,ð ,Ð%:¸Oñ ,ô ,ð ,ð$. ð . ð . ð . ð . ˜8Ô7ñ . ô . ð . ðbA4ð A4ð A4ð A4ð A4 Ô <ñ A4ô A4ð A4ðHð ð ð ð ˜XÔ9ñ ô ð ð2
ð 
ð 
ð 
ð 
˜xÔ;ñ 
ô 
ð 
ð.-ð -ð -ð -ð - Ô <ñ -ô -ð -ð -ð -r!   