§
    �Åjö,  ã                   óT   — d dl Zd dlZd dlmZmZmZ d dlmZ d dl	m
Z
 d„ Zd„ Zd„ ZdS )é    N)Úparse_shapeÚ	rearrangeÚreduce)Úis_backend_tested)Úimp_op_backendsc                  ó‚  ‡‡‡‡‡— d„ } d„ }d„ }d„ }d„ }d„ }d„ }d„ }d	„ }d
„ }	d„ }
d„ Šd„ Šd„ Šd„ Šd„ Š| |||||||||	|
ˆˆfd„ˆˆfd„ˆˆfd„ˆˆfd„g}t           D �]_}t          d|j        ¦  «         |D �]C}t          j        d¦  «                             g d¢¦  «        } ||¦  «        }|                      ||                     |¦  «        ¦  «        ¦  «        }t          j        ||¦  «        sJ ‚t          j        d¦  «                             g d¢¦  «        }|j        dk    r|j        dk    rdnd}t          j	        d d d…d d d…d d d…d d |…f         } |||         ¦  «        }|                      ||                     |¦  «        |         ¦  «        ¦  «        }t          j        ||¦  «        sJ ‚�ŒE�Œad S ) Nc                 óZ   — t          | d¦  «        }t          |j        ¦  «        dk    sJ ‚|S )Núb c h w -> b h w c©é
   é   é(   é   ©r   ÚtupleÚshape©ÚxÚys     úKC:\Projects\Historical\venv\Lib\site-packages\einops/tests/test_examples.pyÚtest1z&test_rearrange_examples.<locals>.test1
   s1   € å�aÐ-Ñ.Ô.ˆÝ�Q”W‰~Œ~Ð!1Ò1Ð1Ð1Ð1Øˆó    c                 óZ   — t          | d¦  «        }t          |j        ¦  «        dk    sJ ‚|S )Nzb c h w -> b (c h w))r   iÀ]  r   r   s     r   Útest2z&test_rearrange_examples.<locals>.test2   s1   € å�aÐ/Ñ0Ô0ˆÝ�Q”W‰~Œ~Ð!3Ò3Ð3Ð3Ð3Øˆr   c                 ó`   — t          | ddd¬¦  «        }t          |j        ¦  «        dk    sJ ‚|S )Nz$b (c h1 w1) h w -> b c (h h1) (w w1)é   ©Úh1Úw1)r   é   é<   éP   r   r   s     r   Útest3z&test_rearrange_examples.<locals>.test3   s8   € å�aÐ?ÀAÈ!ÐLÑLÔLˆÝ�Q”W‰~Œ~Ð!8Ò8Ð8Ð8Ð8Øˆr   c                 ó`   — t          | ddd¬¦  «        }t          |j        ¦  «        dk    sJ ‚|S )Nz$b c (h h1) (w w1) -> b (h1 w1 c) h wr   r   )r   r"   é   r   r   r   s     r   Útest4z&test_rearrange_examples.<locals>.test4   s8   € å�aÐ?ÀAÈ!ÐLÑLÔLˆÝ�Q”W‰~Œ~Ð!?Ò?Ð?Ð?Ð?Øˆr   c                 óZ   — t          | d¦  «        }t          |j        ¦  «        dk    sJ ‚|S )Nz(b1 sound b2 letter -> b1 b2 sound letter)r   r   r   r   r   r   s     r   Útest5z&test_rearrange_examples.<locals>.test5"   s1   € å�aÐCÑDÔDˆÝ�Q”W‰~Œ~Ð!1Ò1Ð1Ð1Ð1Øˆr   c                 óä   — t          | d¦  «        }|d d …d d d…f         }t          |j        ¦  «        dk    sJ ‚t          |dfi t          | d¦  «        ¤Ž}t          |j        ¦  «        dk    sJ ‚|S )Nzb c h w -> (b h w) cr   )ià.  r   z(b h w) c2 -> b c2 h wzb _ h w©r   r   r   r   )r   r   r   r   )r   Útr   s      r   Útest6z&test_rearrange_examples.<locals>.test6(   s„   € å�aÐ/Ñ0Ô0ˆØˆaˆaˆa���1�ˆfŒIˆÝ�Q”W‰~Œ~Ð!3Ò3Ð3Ð3Ð3å�aÐ1ÐOÐOµ[ÀÀIÑ5NÔ5NÐOÐOˆÝ�Q”W‰~Œ~Ð!1Ò1Ð1Ð1Ð1Øˆr   c                 óž   — t          | dd¬¦  «        \  }}t          |j        ¦  «        dk    sJ ‚t          |j        ¦  «        dk    sJ ‚||z   S )Nzb (c g) h w -> g b c h wr   )Úgr*   r   )r   Úy1Úy2s      r   Útest7z&test_rearrange_examples.<locals>.test72   sX   € å˜1Ð8¸AÐ>Ñ>Ô>‰ˆˆBÝ�R”X‰ŒÐ"2Ò2Ð2Ð2Ð2Ý�R”X‰ŒÐ"2Ò2Ð2Ð2Ð2Ø�B‰wˆr   c                 ób   — t          | dddd¬¦  «        }t          |j        ¦  «        dk    sJ ‚|S )Nzb c (h h1) (w w1) -> b c h wÚmaxr   )Ú	reductionr   r   )r   r   r%   r   )r   r   r   r   s     r   Útest8z&test_rearrange_examples.<locals>.test89   s;   € å�1Ð4ÀÈ!ÐPQÐRÑRÔRˆÝ�Q”W‰~Œ~Ð!;Ò;Ð;Ð;Ð;Øˆr   c                 ó²   — t          | dd¬¦  «        }t          |j        ¦  «        dk    sJ ‚t          |d¦  «        }t          |j        ¦  «        dk    sJ ‚|S )Nzb c h w -> b c () ()r3   )r4   )r   r   é   r7   zb c () () -> c b)r   r   )r   r   r   r   r   s     r   Útest9z&test_rearrange_examples.<locals>.test9?   s^   € å�1Ð,¸Ð>Ñ>Ô>ˆÝ�Q”W‰~Œ~ Ò/Ð/Ð/Ð/Ý�aÐ+Ñ,Ô,ˆÝ�Q”W‰~Œ~ Ò)Ð)Ð)Ð)Øˆr   c                 ó~   — t          | dz   ¦  «        }t          |d¦  «        }t          |j        ¦  «        dk    sJ ‚|S )Nr   r
   r   ©Úlistr   r   r   ©r   Útensorss     r   Útest10z'test_rearrange_examples.<locals>.test10G   sB   € å�q˜1‘u‘+”+ˆÝ˜GÐ%9Ñ:Ô:ˆÝ�W”]Ñ#Ô#Ð'7Ò7Ð7Ð7Ð7Øˆr   c                 ó~   — t          | dz   ¦  «        }t          |d¦  «        }t          |j        ¦  «        dk    sJ ‚|S )Nr   zb c h w -> h (b w) c)r   i�  r   r:   r<   s     r   Útest11z'test_rearrange_examples.<locals>.test11N   sB   € å�q˜1‘u‘+”+ˆÝ˜GÐ%;Ñ<Ô<ˆÝ�W”]Ñ#Ô#Ð'8Ò8Ð8Ð8Ð8Øˆr   c                 óX   —  || ¦  «        } t          | d||¬¦  «        }  || ¦  «        } | S )Nzb (c1 c2) h w-> b (c2 c1) h w)Úc1Úc2©r   )r   ÚconvolverB   rC   s       r   Ú
shufflenetz+test_rearrange_examples.<locals>.shufflenetU   s8   € àˆH�Q‰KŒKˆÝ�aÐ8¸RÀBÐGÑGÔGˆØˆH�Q‰KŒKˆØˆr   c                 ó„   — t          | d¦  «        } t          | d|¬¦  «        }  || ¦  «        } t          | d|¬¦  «        } | S )Núb c t1 t2 -> b c (t1 t2)z b c (t stride) -> (stride b) c t)Ústridez (stride b) c t -> b c (t stride)rD   )r   rI   Úusual_convolutions      r   Úconvolve_strided_1dz4test_rearrange_examples.<locals>.convolve_strided_1d\   sQ   € Ý�aÐ3Ñ4Ô4ˆÝ�aÐ;ÀFÐKÑKÔKˆØÐ˜aÑ Ô ˆÝ�aÐ;ÀFÐKÑKÔKˆØˆr   c                 óh   — t          | d||¬¦  «        }  || ¦  «        } t          | d||¬¦  «        } | S )Nz$b c (h hs) (w ws) -> (hs ws b) c h w)ÚhsÚwsz$(hs ws b) c h w -> b c (h hs) (w ws)rD   )r   Úh_strideÚw_striderJ   s       r   Úconvolve_strided_2dz4test_rearrange_examples.<locals>.convolve_strided_2dc   sG   € Ý�aÐ?ÀHÐQYÐZÑZÔZˆØÐ˜aÑ Ô ˆÝ�aÐ?ÀHÐQYÐZÑZÔZˆØˆr   c                 óŠ   — t          | d¦  «        } t          | dd¬¦  «        } ||¦  «        }| t          |dd¬¦  «        z   } | S )NrH   zb c (t dt) -> b (dt c) tr   )Údtzb (dt c) t -> b c (t dt)rD   )r   rJ   r   s      r   Úunet_like_1dz-test_rearrange_examples.<locals>.unet_like_1di   sV   € å�aÐ3Ñ4Ô4ˆÝ�aÐ3¸Ð:Ñ:Ô:ˆØÐ˜aÑ Ô ˆØ•	˜!Ð7¸AÐ>Ñ>Ô>Ñ>ˆØˆr   c                 ó   — | S )N© )r   s    r   Úconvolve_mockz.test_rearrange_examples.<locals>.convolve_mockr   s   € Øˆr   c                 ó"   •—  ‰| ‰dd¬¦  «        S )Né   r    )rE   rB   rC   rV   )r   rW   rF   s    €€r   ú<lambda>z)test_rearrange_examples.<locals>.<lambda>�   s   ø€ �*�*˜Q¨¸1ÀÐCÑCÔC€ r   c                 ó    •—  ‰| d‰¬¦  «        S )Nr   )rI   rJ   rV   )r   rW   rK   s    €€r   rZ   z)test_rearrange_examples.<locals>.<lambda>‚   s   ø€ Ð%Ð% a°À]ÐSÑSÔS€ r   c                 ó"   •—  ‰| dd‰¬¦  «        S )Nr   )rO   rP   rJ   rV   )r   rW   rQ   s    €€r   rZ   z)test_rearrange_examples.<locals>.<lambda>ƒ   s   ø€ Ð%Ð% a°!¸aÐS`ÐaÑaÔa€ r   c                 ó   •—  ‰| ‰¬¦  «        S )N)rJ   rV   )r   rW   rT   s    €€r   rZ   z)test_rearrange_examples.<locals>.<lambda>„   s   ø€ �,�,˜q°MÐBÑBÔB€ r   ztesting source_examples for i€© )r   r   r   r   i ù )r   r!   r   r   ÚtorchÚoneflowéÿÿÿÿr7   r   é   )
r   ÚprintÚframework_nameÚnpÚarangeÚreshapeÚto_numpyÚ
from_numpyÚarray_equalÚ	index_exp)r   r   r#   r&   r(   r,   r1   r5   r8   r>   r@   ÚtestsÚbackendÚtestr   Úresult1Úresult2Ú	last_stepÚindexing_expressionrW   rK   rQ   rF   rT   s                      @@@@@r   Útest_rearrange_examplesrr   	   sð  øøøøø€ ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ð 	ØØØØØØØØØØØCÐCÐCÐCÐCØSÐSÐSÐSÐSØaÐaÐaÐaÐaØBÐBÐBÐBÐBð€Eõ$ #ð 4ñ 4ˆÝÐ,¨gÔ.DÑEÔEÐEØð 	4ñ 	4ˆDÝ”	Ð+Ñ,Ô,×4Ò4Ð5EÐ5EÐ5EÑFÔFˆAØ�d˜1‘g”gˆGØ×&Ò& t t¨G×,>Ò,>¸qÑ,AÔ,AÑ'BÔ'BÑCÔCˆGÝ”> '¨7Ñ3Ô3Ð3Ð3Ð3õ ”	Ð7Ñ8Ô8×@Ò@ÐAaÐAaÐAaÑbÔbˆAà&Ô5¸Ò@Ð@ÀWÔE[Ð_hÒEhÐEh˜˜ÐopˆIÝ"$¤,¨s¨s°¨s°C°C°a°C¸¸¸1¸¸k¸kÀ	¸kÐ/IÔ"JÐØ�d˜1Ð0Ô1Ñ2Ô2ˆGØ×&Ò& t t¨G×,>Ò,>¸qÑ,AÔ,AÐBUÔ,VÑ'WÔ'WÑXÔXˆGÝ”> '¨7Ñ3Ô3Ð3Ð3Ð3Ñ3ñ	4ð4ð 4r   c                  óL  ‡— t          j        g d¢¦  «        } dŠt           j        dk     rd S ˆfd„| j        D ¦   «         }|d         d d …d d …d d…d d …f         |d<   |d         d d …d d …d d …d d…f         |d<   |                      dg| j        ¢R ¦  «        }|D ]}t          j        d||¦  «        }Œ|                     d¦  «        }|                      d¦  «        }|D ]G}|j        \  }}}}t          |d	||¬
¦  «        }|t          |d¦  «        z  }t          |d||¬¦  «        }ŒH|}	t          j        ||	¦  «        sJ ‚| }|D ]4}|j        \  }}}}t          |d||¬
¦  «        }|t          |d¦  «        z  }Œ5|                     d¦  «        }
t          j        ||
¦  «        sJ ‚d S )N)ra   rY   r    é   rY   z1.15.0c                 ó@   •— g | ]}t          j        ||‰‰g¦  «        ‘ŒS rV   )rd   Úones)Ú.0ÚdÚranks     €r   ú
<listcomp>z.tensor_train_example_numpy.<locals>.<listcomp>¢   s,   ø€ Ð	7Ð	7Ð	7¨!�"Œ'�1�a˜˜tÐ$Ñ
%Ô
%Ð	7Ð	7Ð	7r   r   r7   r`   zi j a b, a i ...  -> b ... jz (i rest alpha) -> rest (alpha i))ÚalphaÚiz$i j alpha beta -> (alpha i) (j beta)zrest (beta j) -> (beta rest j))ÚbetaÚjz"i ... (j alpha) -> ... j (alpha i))rd   rv   Ú__version__r   rf   Úeinsumr   Úallclose)r   ÚGsr   ÚGr/   r|   r~   r{   r}   r0   Úy3ry   s              @r   Útensor_train_example_numpyr…   ™   s  ø€ õ 	Œ���ÑÔ€AØ€DÝ	„~˜Ò Ð àˆà	7Ð	7Ð	7Ð	7¨q¬wÐ	7Ñ	7Ô	7€BØˆqŒE�!�!�!�Q�Q�Q˜˜˜˜A˜A˜A�+Ô€B€q�EØ�ŒV�A�A�A�q�q�q˜!˜!˜!˜R˜a˜R�KÔ €B€r�Fð 	
�	Š	�1�-�q”w�-�-Ñ Ô €AØð <ð <ˆõ ŒIÐ4°a¸Ñ;Ô;ˆˆØ	
�Š�2‰Œ€Bð 	
�	Š	�"‰Œ€AØð Kð KˆØœGÑˆˆ1ˆe�TÝ�aÐ;À5ÈAÐNÑNÔNˆØ•	˜!ÐCÑDÔDÑDˆÝ�aÐ9ÀÈÐJÑJÔJˆˆØ	
€BÝŒ;�r˜2ÑÔÐÐÐð 	
€AØð Eð EˆØœGÑˆˆ1ˆe�TÝ�aÐ=ÀUÈaÐPÑPÔPˆØ•	˜!ÐCÑDÔDÑDˆˆØ	
�Š�2‰Œ€BÝŒ;�r˜2ÑÔÐÐÐÐÐr   c                  ó’  ‡— t          d¦  «        st          j        ¦   «          dd lŠˆfd„} ˆfd„}d}d}d}d}dd	gd	dgd
d
gg}t	          |¦  «        }‰                     ||d|z   z  ddg¦  «        } | ||||||¬¦  «        }	 |||||||¬¦  «        }
|	                     |
j        ¦  «        }	‰                     |	|
¦  «        sJ ‚d S )Nr^   r   c           	      ó6  •‡‡— |                       d¦  «        }|                       d¦  «        }|                       d¦  «        }ˆˆfd„|D ¦   «         }	|                      ||d|z   ||¦  «                             ddddd¦  «                             ¦   «         }
‰                     |
d         ¦  «        }‰                     |
d	         ¦  «        }|
d
         }|
d         }‰                     |
d         ¦  «        }‰                     |
ddd …f         ¦  «        }|j        r‰j        j        n‰j        }|j        r‰j        j        n‰j        }‰ 	                    d|dz
  |¦  «         
                    |d¦  «         
                    ||z  dd¦  «                             |j        ¦  «                             |¦  «        }‰ 	                    d|dz
  |¦  «         
                    |d¦  «                             ¦   «          
                    ||z  dd¦  «                             |j        ¦  «                             |¦  «        } ||	¦  «                             d |dg¦  «        ¦  «        } ||	¦  «                             d |dg¦  «        ¦  «        }| 
                    |d¦  «         
                    dd||z  ¦  «                             |j        ¦  «        }| 
                    |d¦  «         
                    dd||z  ¦  «                             |j        ¦  «        } ||
dd d…f         j        ¦  «        }|j        |z   |d<   |j        |z   |d	<   ‰                     |j        ¦  «        |z  |d
<   ‰                     |j        ¦  «        |z  |d<   ‰                     ‰‰gdz  ¦  «                             |¦  «        }‰                     |                     |dd¦  «        |z  |                     |dd¦  «        |                     |d|¦  «        fd¦  «        }|S )Nr   r   ra   c                 ó*   •— g | ]\  }}|‰z  |‰z  f‘ŒS rV   rV   )rw   Úa_wÚa_hÚstride_hÚstride_ws      €€r   rz   z?test_pytorch_yolo_fragment.<locals>.old_way.<locals>.<listcomp>Í   s*   ø€ ÐSÐSÐS¹x¸sÀC˜3 ™>¨3°©>Ð:ÐSÐSÐSr   r    r7   rY   ).r   ).r7   ).r   ).ra   ).rY   .r`   )ÚsizeÚviewÚpermuteÚ
contiguousÚsigmoidÚis_cudaÚcudaÚFloatTensorÚ
LongTensorÚlinspaceÚrepeatr   Útyper+   Úindex_selectÚdataÚexpÚTensorÚcat)ÚtensorÚnum_classesÚnum_anchorsÚanchorsr‹   rŒ   ÚbsÚin_hÚin_wÚscaled_anchorsÚ
predictionr   r   ÚwÚhÚconfÚpred_clsr”   r•   Úgrid_xÚgrid_yÚanchor_wÚanchor_hÚ
pred_boxesÚ_scaleÚoutputr^   s       ``                    €r   Úold_wayz+test_pytorch_yolo_fragment.<locals>.old_wayÈ   sÀ  øøø€ à�[Š[˜‰^Œ^ˆØ�{Š{˜1‰~Œ~ˆØ�{Š{˜1‰~Œ~ˆØSÐSÐSÐSÐSÈ7ÐSÑSÔSˆà—[’[  [°!°k±/À4ÈÑNÔN×VÒVÐWXÐZ[Ð]^Ð`aÐcdÑeÔe×pÒpÑrÔrˆ
à�MŠM˜* VÔ,Ñ-Ô-ˆØ�MŠM˜* VÔ,Ñ-Ô-ˆØ�vÔˆØ�vÔˆØ�}Š}˜Z¨Ô/Ñ0Ô0ˆØ—=’= ¨C°°°¨GÔ!4Ñ5Ô5ˆð 12´	ÐP�e”jÔ,Ð,¸uÔ?PˆØ./¬iÐM�U”ZÔ*Ð*¸UÔ=Mˆ
ð �NŠN˜1˜d Q™h¨Ñ-Ô-ßŠV�D˜!‰_Œ_ßŠV�B˜Ñ$ a¨Ñ+Ô+ßŠT�!”'‰]Œ]ßŠT�+ÑÔð 	ð �NŠN˜1˜d Q™h¨Ñ-Ô-ßŠV�D˜!‰_Œ_ßŠQ‰SŒSßŠV�B˜Ñ$ a¨Ñ+Ô+ßŠT�!”'‰]Œ]ßŠT�+ÑÔð 	ð �;˜~Ñ.Ô.×;Ò;¸A¸z¸zÈ1È#¹¼ÑOÔOˆØ�;˜~Ñ.Ô.×;Ò;¸A¸z¸zÈ1È#¹¼ÑOÔOˆØ—?’? 2 qÑ)Ô)×0Ò0°°A°t¸d±{ÑCÔC×HÒHÈÌÑQÔQˆØ—?’? 2 qÑ)Ô)×0Ò0°°A°t¸d±{ÑCÔC×HÒHÈÌÑQÔQˆà �[ ¨C°°!°¨GÔ!4Ô!:Ñ;Ô;ˆ
ØœV f™_ˆ
�6ÑØœV f™_ˆ
�6ÑØ"ŸYšY q¤vÑ.Ô.°Ñ9ˆ
�6ÑØ"ŸYšY q¤vÑ.Ô.°Ñ9ˆ
�6Ñà—’˜x¨Ð2°QÑ6Ñ7Ô7×<Ò<¸[ÑIÔIˆØ—’Ø�_Š_˜R  QÑ'Ô'¨&Ñ0°$·)²)¸BÀÀAÑ2FÔ2FÈÏÊÐVXÐZ\Ð^iÑHjÔHjÐkÐmoñ
ô 
ˆð ˆr   c                 óŠ  •— t          | d|¬¦  «        }‰                     |¦  «                             | j        ¦  «        }t          |d¦  «        }|j        \  }}}}	}
t          ‰                     |	¦  «                             ¦   «         d¦  «                             | j        ¦  «        }t          ‰                     |
¦  «                             ¦   «         d¦  «                             | j        ¦  «        }‰                     |¦  «        }|d                              ¦   «         |z   |z  |d<   |d                              ¦   «         |z   |z  |d<   |dd	…          	                    ¦   «         |z  |dd	…<   |d	                              ¦   «         |d	<   |d
d …                              ¦   «         |d
d …<   t          |d¦  «        S )Nz5 b (anchor prediction) h w -> prediction b anchor h w)Úanchorz!anchor dim -> dim () anchor () ()zh -> () () h ()zw -> () () () wr   r7   r   rY   r    z2prediction b anchor h w -> b anchor h w prediction)
r   r”   ÚtoÚdevicer   re   ÚfloatÚ
zeros_liker‘   r›   )rž   rŸ   r    r¡   r‹   rŒ   Úraw_predictionsÚanchor_sizesÚ_r£   r¤   Úgrid_hÚgrid_wÚpredicted_bboxesr^   s                 €r   Únew_wayz+test_pytorch_yolo_fragment.<locals>.new_wayý   sª  ø€ Ý# FÐ,cÐlwÐxÑxÔxˆà×#Ò# GÑ,Ô,×/Ò/°´Ñ>Ô>ˆÝ  Ð*MÑNÔNˆà-Ô3Ñˆˆ1ˆa��tÝ˜5Ÿ<š<¨Ñ-Ô-×3Ò3Ñ5Ô5Ð7HÑIÔI×LÒLÈVÌ]Ñ[Ô[ˆÝ˜5Ÿ<š<¨Ñ-Ô-×3Ò3Ñ5Ô5Ð7HÑIÔI×LÒLÈVÌ]Ñ[Ô[ˆà ×+Ò+¨OÑ<Ô<ÐØ.¨qÔ1×9Ò9Ñ;Ô;¸fÑDÈÑPÐ˜ÑØ.¨qÔ1×9Ò9Ñ;Ô;¸fÑDÈÑPÐ˜ÑØ!0°°1°Ô!5×!9Ò!9Ñ!;Ô!;¸|Ñ KÐ˜˜1˜ÑØ-¨aÔ0×8Ò8Ñ:Ô:Ð˜ÑØ.¨q¨r¨rÔ2×:Ò:Ñ<Ô<Ð˜˜˜ÑåÐ)Ð+_Ñ`Ô`Ð`r   rY   r    é   é2   éd   éK   r7   )rž   r    rŸ   r‹   rŒ   r¡   )	r   ÚpytestÚskipr^   ÚlenÚrandnrf   r   r�   )r²   r¿   r‹   rŒ   Ú
batch_sizerŸ   r¡   r    r   rn   ro   r^   s              @r   Útest_pytorch_yolo_fragmentrÉ   Â   sB  ø€ Ý˜WÑ%Ô%ð ÝŒ‰Œˆà€L€L€Lð3ð 3ð 3ð 3ð 3ðjað að að að að& €HØ€HØ€JØ€KØ�Cˆy˜3 ˜) b¨" XÐ.€GÝ�g‘,”,€Kà�Š�Z °°K±Ñ!@À!ÀQÐGÑHÔH€AØˆgØØØØØØðñ ô €Gð ˆgØØØØØØðñ ô €Gð �oŠo˜gœmÑ,Ô,€GØ�>Š>˜' 7Ñ+Ô+Ð+Ð+Ð+Ð+Ð+r   )Únumpyrd   rÄ   Úeinopsr   r   r   Úeinops.testsr   Úeinops.tests.test_opsr   rr   r…   rÉ   rV   r   r   ú<module>rÎ      s�   ðØ Ð Ð Ð Ø €€€à 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø *Ð *Ð *Ð *Ð *Ð *Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1ðM4ð M4ð M4ð`&ð &ð &ðRg,ð g,ð g,ð g,ð g,r   