§
    1�ÅjO/  ã                  óð   — U d dl mZ d dlZd dlmZmZ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 erd dlmZ dd„Zdd„Zg aded<   g aded<   dd„Zdd„Zdd„Zdd„Zd d„Zedk    r e¦   «          dS dS )!é    )ÚannotationsN)ÚIOÚTYPE_CHECKINGÚAny)ÚAttributeProtoÚdefsÚload)Úcollect_snippets)Úload_model_tests)ÚRunner)ÚSequenceÚschemasúSequence[defs.OpSchema]ÚreturnÚboolc                ó4   — t          d„ | D ¦   «         ¦  «        S )Nc              3  ó,   K  — | ]}|j         d k    V — ŒdS ©ú
ai.onnx.mlN)Údomain)Ú.0Úss     úPC:\Projects\Historical\venv\Lib\site-packages\onnx/backend/test/stat_coverage.pyú	<genexpr>zis_ml.<locals>.<genexpr>   s)   è è € Ð9Ð9¨AˆqŒx˜<Ò'Ð9Ð9Ð9Ð9Ð9Ð9ó    )Úany)r   s    r   Úis_mlr      s   € ÝÐ9Ð9°Ð9Ñ9Ô9Ñ9Ô9Ð9r   ÚfúIO[Any]ÚmlÚNonec                ó2  — |                       d¦  «         |r|                       d¦  «         n|                       d¦  «         |                       d¦  «         |                       d¦  «         |                       d¦  «         |                       d¦  «         d S )Nz# Test Coverage Reportz (ONNX-ML Operators)
z (ONNX Core Operators)
z## Outlines
z,* [Node Test Coverage](#node-test-coverage)
z.* [Model Test Coverage](#model-test-coverage)
z2* [Overall Test Coverage](#overall-test-coverage)
©Úwrite)r   r    s     r   Úgen_outlinesr%      s—   € Ø‡G‚GÐ$Ñ%Ô%Ð%Ø	ð ,Ø	�ŠÐ(Ñ)Ô)Ð)Ð)à	�ŠÐ*Ñ+Ô+Ð+Ø‡G‚GˆOÑÔÐØ‡G‚GÐ;Ñ<Ô<Ð<Ø‡G‚GÐ=Ñ>Ô>Ð>Ø‡G‚GÐAÑBÔBÐBÐBÐBr   zSequence[str]Úcommon_coveredÚexperimental_coveredc                ól  ‡‡‡— t          h d£¦  «        Št          ¦   «         Št          ˆˆfd„| D ¦   «         ¦  «        at          ˆˆfd„| D ¦   «         ¦  «        }t          ˆfd„|D ¦   «         ¦  «        }t          ˆˆfd„| D ¦   «         ¦  «        at          ˆˆfd„| D ¦   «         ¦  «        }t          ˆfd„|D ¦   «         ¦  «        }t          t          ¦  «        t          |¦  «        z   t          |¦  «        z
  }t          t          ¦  «        t          |¦  «        z   t          |¦  «        z
  }|                     d¦  «         |                     d	¦  «         |rh|                     d
t          t          ¦  «        › d|› dt          t          ¦  «        t          |¦  «        z  dz  d›dt          |¦  «        › d�	¦  «         n|                     d¦  «         |rp|                     d                     t          t          ¦  «        |t          t          ¦  «        t          |¦  «        z  dz  t          |¦  «        ¦  «        ¦  «         n|                     d¦  «         g d¢}	t          |t          |g}
|	D ]T}|                     d|dd …         › d|dd …          	                    ¦   «          
                    dd¦  «        › d�¦  «         ŒU|                     d¦  «         t          |	|
d¬¦  «        D �]?\  }}|                     d|› d�¦  «         |D �]}|                     d|› �¦  «         |‰v r¤|                     d t          ‰|         ¦  «        › d!�¦  «         t          ‰|         ¦  «        D ]a\  }}|                     d"¦  «         |                     d#|› d$�¦  «         |                     d%|› d&�¦  «         |                     d'¦  «         Œbn/|‰v r|                     d(¦  «         n|                     d)¦  «         |                     d*¦  «         �Œ	|                     d+¦  «         �ŒAd S ),N>   ÚMultinomialÚRandomNormalÚRandomUniformÚRandomNormalLikeÚRandomUniformLikec              3  ó”   •K  — | ]B}|j         ‰v r7|j        t          j        j        j        k    r|j        d k    ‰k    ¯9|j         V — ŒCdS r   ©ÚnameÚsupport_levelr   ÚOpSchemaÚSupportTypeÚCOMMONr   ©r   r   r    Ú
node_testss     €€r   r   z)gen_node_test_coverage.<locals>.<genexpr>7   sg   øè è € ð ð àØŒ6�ZÐÐØŒO�tœ}Ô8Ô?Ò?Ð?ØŒX˜Ò%¨"Ò,Ð,ð	 	
Œð -Ð,Ð,Ð,ðð r   c              3  ó”   •K  — | ]B}|j         ‰vr7|j        t          j        j        j        k    r|j        d k    ‰k    ¯9|j         V — ŒCdS r   r/   r5   s     €€r   r   z)gen_node_test_coverage.<locals>.<genexpr>>   sg   øè è € ð ð àØŒ6˜Ð#Ð#ØŒO�tœ}Ô8Ô?Ò?Ð?ØŒX˜Ò%¨"Ò,Ð,ð	 	
Œð -Ð,Ð,Ð,ðð r   c              3  ó$   •K  — | ]
}|‰v ¯|V — Œd S ©N© ©r   r0   Ú
generatorss     €r   r   z)gen_node_test_coverage.<locals>.<genexpr>E   s-   øè è € ÐUÐU tÀ$È*ÐBTÐBT˜dÐBTÐBTÐBTÐBTÐUÐUr   c              3  ó”   •K  — | ]B}|j         ‰v r7|j        t          j        j        j        k    r|j        d k    ‰k    ¯9|j         V — ŒCdS r   ©r0   r1   r   r2   r3   ÚEXPERIMENTALr   r5   s     €€r   r   z)gen_node_test_coverage.<locals>.<genexpr>F   sg   øè è € ð "ð "àØŒ6�ZÐÐØŒO�tœ}Ô8ÔEÒEÐEØŒX˜Ò%¨"Ò,Ð,ð	 	
Œð -Ð,Ð,Ð,ð"ð "r   c              3  ó”   •K  — | ]B}|j         ‰vr7|j        t          j        j        j        k    r|j        d k    ‰k    ¯9|j         V — ŒCdS r   r>   r5   s     €€r   r   z)gen_node_test_coverage.<locals>.<genexpr>M   sg   øè è € ð #ð #àØŒ6˜Ð#Ð#ØŒO�tœ}Ô8ÔEÒEÐEØŒX˜Ò%¨"Ò,Ð,ð	 	
Œð -Ð,Ð,Ð,ð#ð #r   c              3  ó$   •K  — | ]
}|‰v ¯|V — Œd S r9   r:   r;   s     €r   r   z)gen_node_test_coverage.<locals>.<genexpr>T   s6   øè è € ð $ð $Ø°$¸*Ð2DÐ2DˆÐ2DÐ2DÐ2DÐ2Dð$ð $r   z# Node Test Coverage
z## Summary
zNode tests have covered ú/z (éd   z.2fz%, z) generators excluded) common operators.

z6Node tests have covered 0/0 (N/A) common operators. 

zYNode tests have covered {}/{} ({:.2f}%, {} generators excluded) experimental operators.

z;Node tests have covered 0/0 (N/A) experimental operators.

)z!&#x1F49A;Covered Common Operatorsz"&#x1F494;No Cover Common Operatorsz'&#x1F49A;Covered Experimental Operatorsz(&#x1F494;No Cover Experimental Operatorsz* [é	   z](#ú ú-z)
ú
F)Ústrictú## z### z
There are z" test cases, listed as following:
ú
<details>
ú	<summary>z</summary>

z
```python
z
```

ú</details>
z (random generator operator)
z (call for test cases)
z

z<br/>

)Úsetr
   Úsortedr&   r'   Úlenr$   ÚfloatÚformatÚlowerÚreplaceÚzip)r   r   r    Úcommon_no_coverÚcommon_generatorÚexperimental_no_coverÚexperimental_generatorÚ
num_commonÚnum_experimentalÚtitlesÚ	all_listsÚtÚlr   ÚsummaryÚcoder<   r6   s     `             @@r   Úgen_node_test_coveragera   (   sM  øøø€ õ
 ð	
ð 	
ð 	
ñô €Jõ "Ñ#Ô#€JÝð ð ð ð ð àðñ ô ñ ô €Nõ ð ð ð ð ð àðñ ô ñ ô €Oõ ÐUÐUÐUÐU¨ÐUÑUÔUÑUÔUÐÝ!ð "ð "ð "ð "ð "àð"ñ "ô "ñ ô Ðõ #ð #ð #ð #ð #ð #àð#ñ #ô #ñ ô Ðõ $ð $ð $ð $ð $Ø.ð$ñ $ô $ñ ô Ðõ •^Ñ$Ô$¥s¨?Ñ';Ô';Ñ;½cÐBRÑ>SÔ>SÑS€JåÕ Ñ!Ô!Ý
Ð#Ñ
$Ô
$ñ	%å
Ð$Ñ
%Ô
%ñ	&ð ð
 ‡G‚GÐ$Ñ%Ô%Ð%Ø‡G‚GˆNÑÔÐØð LØ	�Šð:¥s­>Ñ':Ô':ð :ð :¸Zð :ð :Ý•NÑ#Ô#¥e¨JÑ&7Ô&7Ñ7¸#Ñ=Ð^ð:ð :ÝFIÐJZÑF[ÔF[ð:ð :ð :ñ	
ô 	
ð 	
ð 	
ð 	
�ŠÐJÑKÔKÐKØð QØ	�Šð*ß*0ª&ÝÕ(Ñ)Ô)Ø ÝÕ)Ñ*Ô*­UÐ3CÑ-DÔ-DÑDÀsÑJÝÐ*Ñ+Ô+ñ	+ô +ñ	
ô 	
ð 	
ð 	
ð 	
�ŠÐOÑPÔPÐPðð ð €Fõ 	ØÝØð	€Ið ð Fð FˆØ	�ŠÐD�a˜˜˜”eÐDÐD  ! " "¤§¢¡¤× 5Ò 5°c¸3Ñ ?Ô ?ÐDÐDÐDÑEÔEÐEÐEØ‡G‚GˆD�M„M€MÝ�F˜I¨eÐ4Ñ4Ô4ð ñ ‰ˆˆ1Ø	�Š��a���ÑÔÐØð 	ñ 	ˆAØ�GŠG�J˜1�J�JÑÔÐØ�JˆˆØ—’ØZ¥3 z°!¤}Ñ#5Ô#5ÐZÐZÐZñô ð õ &,¨J°q¬MÑ%:Ô%:ð ,ð ,‘M�G˜TØ—G’G˜MÑ*Ô*Ð*Ø—G’GÐ?¨Ð?Ð?Ð?Ñ@Ô@Ð@Ø—G’GÐ9¨$Ð9Ð9Ð9Ñ:Ô:Ð:Ø—G’G˜NÑ+Ô+Ð+Ð+ð	,ð ˜
�?�?Ø—G’GÐ<Ñ=Ô=Ð=Ð=à—G’GÐ6Ñ7Ô7Ð7Ø�GŠG�F‰OŒOˆO‰OØ	�Š�ÑÔÐÑð'ð r   c                ó  — |                      d¦  «         i }| D ]}|||j        <   Œi }g }t          d¬¦  «        D �]}|j                             d¦  «        r¯t
          j                             t
          j                             t
          j         	                    t          ¦  «        ddd|j        ¦  «        ¦  «        }t
          j                             |¦  «        st          d|›d�¦  «        ‚|                     |¦  «         ŒÌt          j        |¦  «        }	|                     t
          j                             |	d¦  «        ¦  «         �Œ|                     ¦   «          d	}
|D �]~}t#          |¦  «        }|rd	}|j        D ]}|j        d
k    rd}Œ|sŒ0d}
|                      d|j        j        › d�¦  «         d}|j        j        D �]f}|j        t.          v s|j        t0          v �rF|dz  }|j        D �]8}|j        |vr
i ||j        <   |j        ||j                 vrg ||j                 |j        <   |j        t6          j        k    rP|j        ||j                 |j                 vr0||j                 |j                                      |j        ¦  «         Œ¤|j        t6          j        k    rQ|j        ||j                 |j                 vr0||j                 |j                                      |j        ¦  «         �Œ
|j        t6          j         k    rQ|j!        ||j                 |j                 vr0||j                 |j                                      |j!        ¦  «         �Œp|j        t6          j"        k    rQ|j#        ||j                 |j                 vr0||j                 |j                                      |j#        ¦  «         �ŒÖ|j        t6          j$        k    rQ|j%        ||j                 |j                 vr0||j                 |j                                      |j%        ¦  «         �Œ<|j        t6          j&        k    rQ|j'        ||j                 |j                 vr0||j                 |j                                      |j'        ¦  «         �Œ¢|j        t6          j(        k    rQ|j)        ||j                 |j                 vr0||j                 |j                                      |j)        ¦  «         �Œ|j        t6          j*        k    rQ|j+        ||j                 |j                 vr0||j                 |j                                      |j+        ¦  «         �Œn|j        t6          j,        k    rQ|j-        ||j                 |j                 vr0||j                 |j                                      |j-        ¦  «         �ŒÔ|j        t6          j.        k    rO|j/        ||j                 |j                 vr0||j                 |j                                      |j/        ¦  «         �Œ:�Œh|                      d|j        j        › d|› dta          |j        j        ¦  «        › ddtc          |¦  «        z  tc          ta          |j        j        ¦  «        ¦  «        z  › d�	¦  «         |                      d¦  «         |                      d¦  «         te          |¦  «        D ]ê}|                      d¦  «         |                      d|› dta          ||         ¦  «        › dta          ||         j3        ¦  «        › d�¦  «         te          ||         j3        ¦  «        D ]Y}|||         v r5|                      |› dta          ||         |         ¦  «        › d�¦  «         ŒA|                      |› d�¦  «         ŒZ|                      d¦  «         Œë|                      d¦  «         �Œ€|
s|r|                      d¦  «         d S d S d S )Nz# Model Test Coverage
Úreal)Úkindzonnx/backend/test/data/light/z..zUnable to find model ú.z
model.onnxFr   TrI   rG   r   é   z has z nodes. Of these, z are covered by node tests (g      Y@z%)


rJ   z<summary>nodes</summary>

rK   z: z out of z attributes covered</summary>

z: 0
rL   z</details>


z+No model tests present for selected domain
)4r$   r0   r   ÚurlÚ
startswithÚosÚpathÚnormpathÚjoinÚdirnameÚ__file__ÚexistsÚFileNotFoundErrorÚappendr   Úprepare_model_dataÚsortr	   Úopset_importr   ÚgraphÚnodeÚop_typer&   r'   Ú	attributeÚtyper   ÚFLOATr   ÚINTÚiÚSTRINGr   ÚTENSORr]   ÚGRAPHÚgÚFLOATSÚfloatsÚINTSÚintsÚSTRINGSÚstringsÚTENSORSÚtensorsÚGRAPHSÚgraphsrO   rP   rN   Ú
attributes)r   r   r    Úschema_dictÚschemaÚattrsÚmodel_pathsÚrtÚ
model_nameÚ	model_dirÚmodel_writtenÚmodel_pb_pathÚmodelÚ
ml_presentÚopsetÚnum_coveredrv   ÚattrÚoprx   s                       r   Úgen_model_test_coverager›   ˜   s­  € ð ‡G‚GÐ%Ñ&Ô&Ð&à€KØð *ð *ˆØ#)ˆ�F”KÑ Ð ð .0€EØ€KÝ FÐ+Ñ+Ô+ð Fñ FˆØŒ6×ÒÐ<Ñ=Ô=ð 
	Fåœ×)Ò)Ý”—’�RœWŸ_š_­XÑ6Ô6¸¸dÀDÈ"Ì&ÑQÔQñô ˆJõ ”7—>’> *Ñ-Ô-ð QÝ'Ð(OÀ
Ð(OÐ(OÐ(OÑPÔPÐPØ×Ò˜zÑ*Ô*Ð*Ð*åÔ1°"Ñ5Ô5ˆIØ×Ò�rœwŸ|š|¨I°|ÑDÔDÑEÔEÐEÑEØ×ÒÑÔÐØ€MØ$ð I$ñ I$ˆÝ�]Ñ#Ô#ˆØð 	!ØˆJØÔ+ð &ð &�Ø”< <Ò/Ð/Ø!%�JøØð ØØ ˆMØ	�ŠÐ*�e”kÔ&Ð*Ð*Ð*Ñ+Ô+Ð+àˆØ”KÔ$ð '	Oñ '	OˆDØŒ|�~Ð-Ð-°´ÕAUÐ1UÑ1UØ˜qÑ �ð !œNð "Oñ "O�DØ”|¨5Ð0Ð0Ø.0˜˜dœlÑ+Ø”y¨¨d¬lÔ(;Ð;Ð;Ø9;˜˜dœlÔ+¨D¬IÑ6Ø”y¥NÔ$8Ò8Ð8Øœ6¨¨t¬|Ô)<¸T¼YÔ)GÐGÐGØ! $¤,Ô/°´	Ô:×AÒAÀ$Ä&ÑIÔIÐIøØœ¥nÔ&8Ò8Ð8Øœ6¨¨t¬|Ô)<¸T¼YÔ)GÐGÐGØ! $¤,Ô/°´	Ô:×AÒAÀ$Ä&ÑIÔIÐIùØœ¥nÔ&;Ò;Ð;Øœ6¨¨t¬|Ô)<¸T¼YÔ)GÐGÐGØ! $¤,Ô/°´	Ô:×AÒAÀ$Ä&ÑIÔIÐIùØœ¥nÔ&;Ò;Ð;Øœ6¨¨t¬|Ô)<¸T¼YÔ)GÐGÐGØ! $¤,Ô/°´	Ô:×AÒAÀ$Ä&ÑIÔIÐIùØœ¥nÔ&:Ò:Ð:Øœ6¨¨t¬|Ô)<¸T¼YÔ)GÐGÐGØ! $¤,Ô/°´	Ô:×AÒAÀ$Ä&ÑIÔIÐIùØœ¥nÔ&;Ò;Ð;Øœ;¨e°D´LÔ.AÀ$Ä)Ô.LÐLÐLØ! $¤,Ô/°´	Ô:×AÒAÀ$Ä+ÑNÔNÐNùØœ¥nÔ&9Ò9Ð9Øœ9¨E°$´,Ô,?ÀÄ	Ô,JÐJÐJØ! $¤,Ô/°´	Ô:×AÒAÀ$Ä)ÑLÔLÐLùØœ¥nÔ&<Ò<Ð<Øœ<¨u°T´\Ô/BÀ4Ä9Ô/MÐMÐMØ! $¤,Ô/°´	Ô:×AÒAÀ$Ä,ÑOÔOÐOùØœ¥nÔ&<Ò<Ð<Øœ<¨u°T´\Ô/BÀ4Ä9Ô/MÐMÐMØ! $¤,Ô/°´	Ô:×AÒAÀ$Ä,ÑOÔOÐOùØœ¥nÔ&;Ò;Ð;Øœ;¨e°D´LÔ.AÀ$Ä)Ô.LÐLÐLØ! $¤,Ô/°´	Ô:×AÒAÀ$Ä+ÑNÔNÐNùùØ	�ŠðT�”Ô!ð Tð T¨ð Tð TÝ˜Uœ[Ô-Ñ.Ô.ðTð Tà�˜kÑ*Ô*Ñ*­Uµ3°u´{Ô7GÑ3HÔ3HÑ-IÔ-IÑIðTð Tð Tñ	
ô 	
ð 	
ð 	
�Š�ÑÔÐØ	�ŠÐ.Ñ/Ô/Ð/Ý˜‘-”-ð 	$ð 	$ˆBØ�GŠG�MÑ"Ô"Ð"à�GŠGØ|˜BÐ|Ð|¥# e¨B¤i¡.¤.Ð|Ð|½#¸kÈ"¼oÔ>XÑ:YÔ:YÐ|Ð|Ð|ñô ð õ $ K°¤OÔ$>Ñ?Ô?ð 1ð 1�	Ø  b¤	Ð)Ð)Ø—G’G˜yÐIÐI­C°°b´	¸)Ô0DÑ,EÔ,EÐIÐIÐIÑJÔJÐJÐJà—G’G˜yÐ/Ð/Ð/Ñ0Ô0Ð0Ð0Ø�GŠG�NÑ#Ô#Ð#Ð#Ø	�ŠÐ"Ñ#Ô#Ð#Ñ#Øð @˜Rð @Ø	�ŠÐ>Ñ?Ô?Ð?Ð?Ð?ð@ð @ð @ð @r   c                óZ   — |                       d¦  «         |                       d¦  «         d S )Nz# Overall Test Coverage
z## To be filled.
r#   ©r   s    r   Úgen_overall_test_coveragerž      s0   € ð ‡G‚GÐ'Ñ(Ô(Ð(Ø‡G‚GÐ Ñ!Ô!Ð!Ð!Ð!r   c                ó0   — |                       d¦  «         d S )Nz.<!--- SPDX-License-Identifier: Apache-2.0 -->
r#   r�   s    r   Úgen_spdxr      s   € ð
 ‡G‚GÐ=Ñ>Ô>Ð>Ð>Ð>r   c                 ó0  — t           j                             t           j                             t           j                             t           j                             t           j                             t          ¦  «        ¦  «        ¦  «        ¦  «        ¦  «        } t           j                             | d¦  «        }t          j        ¦   «         }t          |¦  «        }t           j                             |d¦  «        }t          |ddd¬¦  «        5 }t          |¦  «         t          |d¦  «         t          ||d¦  «         t          ||d¦  «         t          |¦  «         d d d ¦  «         n# 1 swxY w Y   |ržt           j                             |d¦  «        }t          |ddd¬¦  «        5 }t          |¦  «         t          |d	¦  «         t          ||d	¦  «         t          ||d	¦  «         t          |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S d S )
NÚdocszTestCoverage.mdzw+Ú zutf-8)ÚnewlineÚencodingFzTestCoverage-ml.mdT)ri   rj   rm   Úrealpathrn   rl   r   Úget_all_schemasr   Úopenr    r%   ra   r›   rž   )Úbase_dirÚdocs_dirr   Úhas_mlÚfnamer   s         r   Úmainr­     s?  € ÝŒw�ŠÝ
Œ�Š�œŸš­¬¯ª½¼×8HÒ8HÍÑ8RÔ8RÑ(SÔ(SÑTÔTÑUÔUñô €Hõ Œw�|Š|˜H fÑ-Ô-€HÝÔ"Ñ$Ô$€Gå�7‰^Œ^€FÝŒG�LŠL˜Ð#4Ñ5Ô5€EÝ	ˆe�T 2°Ð	8Ñ	8Ô	8ð %¸AÝ�‰ŒˆÝ�Q˜ÑÔÐÝ˜w¨¨5Ñ1Ô1Ð1Ý ¨¨EÑ2Ô2Ð2Ý! !Ñ$Ô$Ð$ð%ð %ð %ñ %ô %ð %ð %ð %ð %ð %ð %øøøð %ð %ð %ð %ð ð )Ý”—’˜XÐ';Ñ<Ô<ˆÝ�%˜ r°GÐ<Ñ<Ô<ð 	)ÀÝ�Q‰KŒKˆKÝ˜˜DÑ!Ô!Ð!Ý" 7¨A¨tÑ4Ô4Ð4Ý# G¨Q°Ñ5Ô5Ð5Ý% aÑ(Ô(Ð(ð	)ð 	)ð 	)ñ 	)ô 	)ð 	)ð 	)ð 	)ð 	)ð 	)ð 	)ð 	)øøøð 	)ð 	)ð 	)ð 	)ð 	)ð 	)ð)ð )s&   ÄAE+Å+E/Å2E/Æ+AH	È	HÈHÚ__main__)r   r   r   r   )r   r   r    r   r   r!   )r   r   r   r   r    r   r   r!   )r   r   r   r!   )r   r!   )Ú
__future__r   ri   Útypingr   r   r   Úonnxr   r   r	   Úonnx.backend.test.caser
   Úonnx.backend.test.loaderr   Úonnx.backend.test.runnerr   Úcollections.abcr   r   r%   r&   Ú__annotations__r'   ra   r›   rž   r    r­   Ú__name__r:   r   r   ú<module>r¸      s˜  ðð #Ð "Ð "Ð "Ð "Ð "Ð "à 	€	€	€	Ø )Ð )Ð )Ð )Ð )Ð )Ð )Ð )Ð )Ð )à +Ð +Ð +Ð +Ð +Ð +Ð +Ð +Ð +Ð +Ø 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5Ø +Ð +Ð +Ð +Ð +Ð +àð )Ø(Ð(Ð(Ð(Ð(Ð(ð:ð :ð :ð :ð	Cð 	Cð 	Cð 	Cð !#€Ð "Ð "Ð "Ñ "Ø&(Ð Ð (Ð (Ð (Ñ (ðmð mð mð mð`e@ð e@ð e@ð e@ðP"ð "ð "ð "ð?ð ?ð ?ð ?ð)ð )ð )ð )ð4 ˆzÒÐØ€D�F„F€F€F€Fð Ðr   