§
    ƒØj…[  ã                   óì  — d dl Z 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
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  ee¦  «        Zd„ Zd-d
„Zd„ Zd.d„Zd„ Zd„ Zd/d„Z	 	 	 d0d„Zd1d„Z d2d„Z!	 	 	 	 d3d„Z"d„ Z#edk    �rs ej$        d¦  «        Z% ej$        d¦  «        Z& ej$        d¦  «        Z' ej$        d ¦  «        Z( ej$        d!¦  «        Z) ej$        d"¦  «        Z* ej$        d#¦  «        Z+ ej$        d$¦  «        Z, ej$        d%¦  «        Z- ej$        d&¦  «        Z.e /                    d'¦  «          e¦   «          e /                    d(¦  «          e¦   «         \  Z0Z1Z2e /                    d)¦  «          ee0e2¦  «        \  Z3Z4e /                    d*¦  «          ee4¦  «        Z4e /                    d+¦  «          e!e3e4¦  «        a5 e#e&e%¦  «        Z6d,„ e4 7                    ¦   «         D ¦   «         Z8dS dS )4é    N)Úlayers)Úget_unit_sizeÚ
get_logger)Ú
get_centerÚget_rotated_bboxÚ
to_rgb_imgÚdraw_bounding_boxes)ÚNoteType)Ú
morph_openÚmorph_closec           	      ón  — |d         dz   }|d         t          |dz  ¦  «        z
  }	 |t          |¦  «        t          |d         ¦  «        …t          |¦  «        f         }t          t          j        |¦  «        ¦  «        }	d|	v r|	                     d¦  «         t          |	¦  «        dk    rn|dz  }||d         |z   k    rnŒ�|d         t          |dz  ¦  «        z   }
| t          |¦  «        t          |d         ¦  «        …t          |
¦  «        t          |¦  «        …f         }t          j        |¦  «        }||cxk    r|k    rìn nédt          j	        dd¦  «        t          j	        dd¦  «        f}t          j        t          t          |
¦  «        t          |¦  «        ft          |¦  «        t          |d         ¦  «        f|d¦  «         |d	›d
|d	›d
|d	›�}t          j        t          |t          |d         ¦  «        t          |d         ¦  «        dz   ft          j        d|d¦  «         dS dS )Né   é   Té   éÿÿÿÿr   çš™™™™™Ù?éÿ   ú.2fú/é   çš™™™™™é?F)ÚroundÚintÚsetÚnpÚuniqueÚremoveÚlenÚsumÚrandomÚrandintÚcv2Ú	rectangleÚdot_imgÚputTextÚFONT_HERSHEY_SIMPLEX)ÚsymbolsÚnote_id_mapÚbboxÚ	unit_sizeÚ	min_countÚ	max_countÚright_boundÚstart_yÚcur_scan_lineÚidsÚ
left_boundÚ
dot_regionÚpixelsÚcolorÚmsgs                  úŒ/Users/tedpeters/Documents/Projects/Claude Projects/Misc Tools/notename-sheets/.venv/lib/python3.11/site-packages/oemer/rhythm_extraction.pyÚscan_dotr7      s"  € Ø�q”'˜A‘+€KØ�1Œg�˜i¨!™mÑ,Ô,Ñ,€Gðð $¥C¨¡L¤Lµ°T¸!´W±´Ð$=½sÀ;Ñ?OÔ?OÐ$OÔPˆÝ•"”)˜MÑ*Ô*Ñ+Ô+ˆØ�ˆ9ˆ9Ø�JŠJ�r‰NŒNˆNÝˆs‰8Œ8�aŠ<ˆ<ØØ�qÑˆØ˜$˜qœ' IÑ-Ò-Ð-Øðð �a”�5 ¨3¡Ñ/Ô/Ñ/€JØ�˜W™œ¥c¨$¨q¬'¡l¤lÐ2µC¸
±O´OÅCÈÑDTÔDTÐ4TÐTÔU€JÝŒV�JÑÔ€FØ�FÐ'Ð'Ò'Ð'˜iÒ'Ð'Ð'Ð'Ð'Ø•f”n Q¨Ñ,Ô,­f¬n¸QÀÑ.DÔ.DÐEˆÝŒ•g¥ J¡¤µ°W±´Ð>ÅÀ[ÑAQÔAQÕSVÐW[Ð\]ÔW^ÑS_ÔS_Ð@`ÐbgÐijÑkÔkÐkØÐ=Ð=Ð= Ð=Ð=Ð=¨iÐ=Ð=Ð=ˆÝŒ•G˜S¥3 t¨A¤w¡<¤<µ°T¸!´W±´¸b±Ð"AÅ3ÔC[Ð]`ÐbgÐijÑkÔkÐkØˆtð ˆ5ó    ç{®Gáz´?çš™™™™™É?c           
      óÄ  ‡— t          j        d¦  «        }t          j        d¦  «        }t          j        d¦  «        }t          j        d¦  «        }t          j        d¦  «        Št          j        d¦  «        }t          j        ||z
  |z
  dk    dd¦  «        }t	          j        t          j        d	¦  «        }t	          j        t	          j        | 	                    t          j
        ¦  «        |¦  «        |¦  «        }t          |¦  «        a|D �]Ï}	|	j        }
|	j        }t          t!          |¦  «        Ž }t          j        ˆfd
„|
D ¦   «         ¦  «        }t          j        |d d …df         ¦  «        t          j        |d d …df         ¦  «        t          j        |d d …df         ¦  «        t          j        |d d …df         ¦  «        f}t)          |dz  | z  ¦  «        }t)          |dz  |z  ¦  «        }g }|
D ]w}‰|         j        }|d         |d         t'          |d         |d         ¦  «        |d         f}t+          ||||||¦  «        }|                     |¦  «         |‰|         _        Œxt1          |¦  «        t3          |¦  «        z   }|	j        �E|sCt7          d„ |D ¦   «         ¦  «        }t7          |¦  «        |z
  }||k    }|
D ]}|‰|         _        Œ�ŒÑd S )NÚnote_groupsÚsymbols_predÚstems_rests_predÚclefs_keys_predÚnotesÚnote_idr   r   )é   rB   c                 ó*   •— g | ]}‰|         j         ‘ŒS © ©r)   ©Ú.0Únidr@   s     €r6   ú
<listcomp>zparse_dot.<locals>.<listcomp>J   s   ø€ Ð9Ð9Ð9¨S˜˜sœœÐ9Ð9Ð9r8   r   r   c                 ó   — g | ]}|¯|‘ŒS rD   rD   )rG   Údots     r6   rI   zparse_dot.<locals>.<listcomp>[   s   € Ð!=Ð!=Ð!=¨#¸Ð!= #Ð!=Ð!=Ð!=r8   )r   Ú	get_layerr   Úwherer"   ÚgetStructuringElementÚMORPH_ELLIPSEÚdilateÚerodeÚastypeÚuint8r   r$   Únote_idsr)   r   r   ÚarrayÚminÚmaxr   r7   ÚappendÚhas_dotÚallÚanyÚstem_upr   )Úmin_area_ratioÚmax_area_ratioÚgroupsr'   ÚstemsÚ
clefs_sfnsr(   Úno_stemÚkerÚgroupÚnidsÚgboxr*   Únboxr+   r,   ÚdotsrH   r)   rY   Úall_sameÚ
true_countÚfalse_countÚto_dotr@   s                           @r6   Ú	parse_dotrm   5   sÏ  ø€ åÔ˜mÑ,Ô,€FÝÔ˜~Ñ.Ô.€GÝÔÐ/Ñ0Ô0€EÝÔ!Ð"3Ñ4Ô4€JÝÔ˜WÑ%Ô%€EÝÔ" 9Ñ-Ô-€Kõ Œh�w˜u‘} ZÑ/°Ò1°1°aÑ8Ô8€GÝ
Ô
#¥CÔ$5°vÑ
>Ô
>€CÝŒj�œ 7§>¢>µ"´(Ñ#;Ô#;¸SÑAÔAÀ3ÑGÔG€Gå˜Ñ!Ô!€Gð ð 0ñ 0ˆØŒ~ˆØŒzˆÝ!¥:¨dÑ#3Ô#3Ð4ˆ	ÝŒxÐ9Ð9Ð9Ð9°DÐ9Ñ9Ô9Ñ:Ô:ˆÝ”�t˜A˜A˜A˜q˜D”zÑ"Ô"¥B¤F¨4°°°°1°¬:Ñ$6Ô$6½¼¸tÀAÀAÀAÀqÀD¼zÑ8JÔ8JÍBÌFÐSWÐXYÐXYÐXYÐ[\ÐX\ÔS]ÑL^ÔL^Ð_ˆÝ˜) Q™,¨Ñ7Ñ8Ô8ˆ	Ý˜) Q™,¨Ñ7Ñ8Ô8ˆ	àˆØð 	)ð 	)ˆCØ˜”:”?ˆDØ˜”G˜T !œW¥c¨$¨q¬'°4¸´7Ñ&;Ô&;¸TÀ!¼WÐEˆDÝ˜w¨°T¸9ÀiÐQZÑ[Ô[ˆGØ�KŠK˜Ñ Ô Ð Ø!(ˆE�#ŒJÔÐå˜D™	œ	¥C¨¡I¤IÑ-Ð.ˆØŒ=Ð$Øð 0å Ð!=Ð!=°Ð!=Ñ!=Ô!=Ñ>Ô>�
Ý! $™iœi¨*Ñ4�Ø$¨Ò3�Øð 0ð 0�CØ)/�E˜#”JÔ&Ð&ùð30ð 0r8   c                 ó  — d}t          | |df¦  «        }t          j        |dk    dd¦  «        }||z   |z
  |z
  |z
  }t          j        |dk    dd¦  «        }t          |d¦  «        }t          |d¦  «        }	||	z   |z   }
d|
|
dk    <   |
S )Né   r   r   r   )r   r   )ro   r   )r   r   rM   r   )Ú
staff_predr'   r`   ra   Ú	group_mapÚst_widthÚbeams_in_staffÚgp_mapÚmixÚ	ext_stemsÚbeamss              r6   Úpolish_symbolsrx   b   sŸ   € Ø€HÝ 
¨X°q¨MÑ:Ô:€NåŒX�i ’l A qÑ)Ô)€FØ
�NÑ
" VÑ
+¨eÑ
3°jÑ
@€CÝ
Œ(�3˜’7˜A˜qÑ
!Ô
!€CÝ
�S˜&Ñ
!Ô
!€CÝ˜E 6Ñ*Ô*€IØ�)‰O˜fÑ$€EØ€Eˆ%�Š'�NØ€Lr8   çìQ¸…ë±?r   c           
      ó
  — t          j        d¦  «        }t          j        d¦  «        }t          j        d¦  «        }t          j        d¦  «        }t          j        d¦  «        }t          |||||¦  «        }|t          j        |dk    dd¦  «        z
  |z
  }d||dk     <   t          |¦  «        }	t          j        |j        d	z   t          j        ¬
¦  «        dz  }
t          j        |dk    ¦  «        }d|
|d         |d         f<   t          j	        |
¦  «        }t          j
        |
¦  «        ad}g }g }t          j	        |
¦  «        dz
  }t          |	¦  «        D �]+\  }}|dz  }|dk    rt          j	        |
¦  «        dz
  }t          j        |¦  «        }t          d„ |                     dd¦  «                             ¦   «         D ¦   «         ¦  «        rŒ||                     t          j        ¦  «        }t          j        |d¬¦  «        dz  }t+          t-          |d         ¦  «        t-          |d         ¦  «        ¦  «        }t          j        t          |gddd¦  «         t          j        |¦  «        }|dz  | z  }||k     r2t          j        |
|g|¬¦  «         t          j        ||g|¬¦  «         �Œ\t          j        ||g|ddf¬¦  «         t          j        |d         |k    ¦  «        \  }}|||f         }t          j        |dk    ¦  «        d         }||         }||         }t5          |d         ¦  «        }|||z  k     rRt          j        |¦  «        |
||f<   t          j        |¦  «        |||f<   t          j        d¦  «        t          ||f<   �Œ@t9          |¦  «        t9          |¦  «        dz   z  }||k     r—t          j        |¦  «        |
||f<   t          j        |¦  «        |||f<   t          j        d¦  «        t          ||f<   t          j        t          |d›|d         d         |d         d         ft          j        ddd¦  «         �Œÿ|                     ||f¦  «         |                     |¦  «         �Œ-|D ]B\  }}dt          j        |¦  «        z
  |
||f<   dt          j        |¦  «        z
  t          ||f<   ŒCt          j        t          j        |
d¬¦  «        dk     dd¦  «        }
|d         dz  }|
||fS )Nr=   rp   r>   rq   r?   r   r   r   )r   ©Údtyper   )r   r   r   c              3   ó"   K  — | ]
}|d k     V — ŒdS )r   NrD   )rG   Úccs     r6   ú	<genexpr>zparse_beams.<locals>.<genexpr>’   s&   è è € Ð=Ð=˜"ˆr�AŠvÐ=Ð=Ð=Ð=Ð=Ð=r8   )ÚaxisrB   ©r   r   r   r   )r4   ).r   )r   éë   é   g:Œ0âŽyE>)r   é–   r   r   ç333333ã?©r   r   r   ) r   rL   rx   r   rM   r   ÚonesÚshaperS   Ú
zeros_likeÚcopyÚ	ratio_mapÚ	enumerater"   Ú	boxPointsr[   ÚreshapeÚsqueezerR   Úuint64r   r   r   ÚdrawContoursÚcontourAreaÚfillPolyrV   rU   r   r%   r&   rX   )r]   Úmin_tp_ratioÚmin_width_ratior'   rp   r`   rq   ra   rw   ÚrboxesÚpoly_mapÚidxÚinvalid_mapÚ
null_colorÚ	valid_boxÚ
valid_idxsÚidx_mapÚrboxÚcntÚcentersr*   ÚareaÚmin_areaÚyiÚxiÚptsÚmeta_idxÚryiÚrxiÚr_widthÚratios                                  r6   Úparse_beamsr«   p   sÜ  € åÔ˜~Ñ.Ô.€GÝÔ! ,Ñ/Ô/€JÝÔÐ/Ñ0Ô0€EÝÔ  Ñ-Ô-€IÝÔ!Ð"3Ñ4Ô4€Jå˜: w°°zÀ9ÑMÔM€EØ•B”H˜Y rš\¨1¨aÑ0Ô0Ñ0°5Ñ8€EØ€Eˆ%�Š'�Nå˜eÑ$Ô$€FÝŒw�w”} TÑ)µ´Ð:Ñ:Ô:¸SÑ@€HÝ
Œ(�5˜’7Ñ
Ô
€CØ €HˆS�ŒV�S˜”Vˆ^ÑÝ”- Ñ)Ô)€Kõ ”˜Ñ!Ô!€Ià €JØ€IØ€JÝŒm˜HÑ%Ô%¨Ñ)€GÝ˜vÑ&Ô&ð 4ñ 4‰	ˆˆTð 	ˆs‰
ˆØ�!Š8ˆ8Ý”m HÑ-Ô-°Ñ1ˆGõ Œm˜DÑ!Ô!ˆÝÐ=Ð= §¢¨B°Ñ 2Ô 2× :Ò :Ñ <Ô <Ð=Ñ=Ô=Ñ=Ô=ð 	ð Ø�jŠj�œÑ#Ô#ˆÝ”&˜ 1Ð%Ñ%Ô%¨Ñ)ˆÝ!¥%¨°¬
Ñ"3Ô"3µU¸7À1¼:Ñ5FÔ5FÑGÔGˆ	õ 	Ô� S E¨1¨k¸1Ñ=Ô=Ð=ÝŒ˜sÑ#Ô#ˆØ˜a‘< .Ñ0ˆØ�(Š?ˆ?ÝŒL˜ C 5°
Ð;Ñ;Ô;Ð;ÝŒL˜ s e°:Ð>Ñ>Ô>Ð>Ùõ 	Œ�W˜s˜e¨C°°A¨;Ð7Ñ7Ô7Ð7Ý”˜' &œ/¨SÒ0Ñ1Ô1‰ˆˆBØ�B˜�FŒmˆÝ”8˜C šE‘?”? 1Ô%ˆØ�ŒlˆØ�Œlˆõ �d˜1”g‘,”,ˆØ�Y Ñ0Ò0Ð0Ý!#¤¨*Ñ!5Ô!5ˆH�S˜#�XÑÝ$&¤H¨ZÑ$8Ô$8ˆK˜˜S˜Ñ!Ý"$¤(¨>Ñ":Ô":�I�c˜3�hÑÙõ �H‘”¥ R¡¤¨4¡Ñ0ˆØ�<ÒÐÝ!#¤¨*Ñ!5Ô!5ˆH�S˜#�XÑÝ$&¤H¨ZÑ$8Ô$8ˆK˜˜S˜Ñ!Ý"$¤(¨=Ñ"9Ô"9�I�c˜3�hÑÝŒK�	 e > >°C¸´F¸1´I¸sÀ1¼vÀa¼yÐ3IÍ3ÔKcÐehÐjuÐwxÑyÔyÐyÙà×Ò˜3 ˜*Ñ%Ô%Ð%Ø×Ò˜ÑÔÐÑàð 9ð 9‰ˆˆSØ ¥2¤8¨JÑ#7Ô#7Ñ7ˆ��c�ÑØ!¥B¤H¨ZÑ$8Ô$8Ñ8�	�#�s�(ÑÐåŒx�œ˜x¨bÐ1Ñ1Ô1°!Ò3°Q¸Ñ:Ô:€HØ˜fÔ%¨Ñ+€KØ�Y Ð+Ð+r8   c           
      ó	  — t          j        d¦  «        }t          j        d¦  «        }t          j        d¦  «        }| |z   }d||dk     <   t          j        dt          j        ¬¦  «        }t          j        t          j        |                     t          j        ¦  «        |¦  «        |¦  «        }t          j        t          j        |                      t          j        ¦  «        |¦  «        |¦  «        } |D ]O}|j	        }d||d         |d         …|d         |d	         …f<   d| |d         |d         …|d         |d	         …f<   ŒPd||dk    <   t          j                             | ¦  «        \  }	}
t          j                             |¦  «        \  }}t          j        |	¦  «        }i }t          d|
dz   ¦  «        D �]_}|	|k    }t          t          j        ||         ¦  «        ¦  «        }d|v r|                     d¦  «         g g }}|D ]a}t          j        ||k    ¦  «        \  }}|                     t)          |¦  «        ¦  «         |                     t)          |¦  «        ¦  «         Œb|t          j        |¦  «                             t,          ¦  «        t          j        |¦  «                             t,          ¦  «        f         }t          t          j        |¦  «        ¦  «        }d
|v r|                     d
¦  «         t/          |¦  «        dk    r�Œ^d||<   t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        f}|D ]«}||v r�||         d         }|                     ||         d         ¦  «         t1          |d         |d         ¦  «        t1          |d         |d         ¦  «        t3          |d	         |d	         ¦  «        t3          |d         |d         ¦  «        f}||dœ||<   Œ¬�Œat          j        dt          j        ¬¦  «        }t          j        t          j        |                     t          j        ¦  «        |¦  «        |¦  «        }||fS )Nr=   rq   Úbarlinesr   )r   r   r{   r   r   r   r   r)   Úgids©r)   r®   )r   rL   r   r‡   rS   r"   rP   rQ   rR   r)   ÚscipyÚndimageÚlabelr‰   Úranger   r   r   rM   ÚextendÚlistrU   r   r   rV   rW   Úupdate)r—   r™   r'   rq   r­   ru   rc   ÚblÚboxÚreg_mapÚfeat_numÚsym_mapÚ_Úout_mapÚmap_infor˜   ÚmaskÚ
sym_labelsr£   r¤   r²   ÚyyÚxxÚ	g_overlapr®   Ú	sym_labelÚbbs                              r6   Úparse_beam_overlap_regionsrÆ   È   sï  € åÔ˜~Ñ.Ô.€GÝÔ  Ñ-Ô-€IÝÔ 
Ñ+Ô+€Hà
�WÑ
€CØ€CˆˆAŠ�JÝ
Œ'�&¥¤Ð
)Ñ
)Ô
)€CÝ
Œ*•S”Y˜sŸzšz­"¬(Ñ3Ô3°SÑ9Ô9¸3Ñ
?Ô
?€CÝŒz�#œ) H§O¢OµB´HÑ$=Ô$=¸sÑCÔCÀSÑIÔI€Hð ð 3ð 3ˆØŒgˆØ,-ˆˆC�ŒF�3�q”6ˆM˜3˜qœ6 # a¤&˜=Ð(Ñ)Ø12ˆ��Q”˜˜Aœ�  A¤ s¨1¤v Ð-Ñ.Ð.à€CˆˆAŠ�JÝœ×+Ò+¨HÑ5Ô5Ñ€GˆXÝ”×$Ò$ SÑ)Ô)�J€GˆQåŒm˜GÑ$Ô$€GØ€HÝ�Q˜ ™
Ñ#Ô#ð >ñ >ˆØ˜3’ˆÝ�œ 7¨4¤=Ñ1Ô1Ñ2Ô2ˆ
Ø�
ˆ?ˆ?Ø×Ò˜aÑ Ô Ð à�RˆBˆØð 	 ð 	 ˆEÝ”X˜g ušnÑ-Ô-‰FˆB�Ø�IŠI•d˜2‘h”hÑÔÐØ�IŠI•d˜2‘h”hÑÔÐÐà�bœh r™lœl×1Ò1µ#Ñ6Ô6½¼À¹¼×8KÒ8KÍCÑ8PÔ8PÐPÔQˆ	Ý•2”9˜YÑ'Ô'Ñ(Ô(ˆØ�ˆ:ˆ:Ø�KŠK˜‰OŒOˆOÝˆt‰9Œ9˜Š>ˆ>áàˆ�‰ÝŒv�b‰zŒz�2œ6 "™:œ:¥r¤v¨b¡z¤zµ2´6¸"±:´:Ð>ˆØ#ð 	>ð 	>ˆIØ˜HÐ$Ð$Ø˜iÔ(¨Ô0�Ø—’˜H YÔ/°Ô7Ñ8Ô8Ð8Ý˜2˜aœ5 # a¤&Ñ)Ô)­3¨r°!¬u°c¸!´fÑ+=Ô+=½sÀ2ÀaÄ5È#ÈaÌ&Ñ?QÔ?QÕSVÐWYÐZ[ÔW\Ð^aÐbcÔ^dÑSeÔSeÐf�Ø+.¸Ð"=Ð"=ˆH�YÑÐñ	>õ Œ'�&¥¤Ð
)Ñ
)Ô
)€CÝŒi�œ
 7§>¢>µ"´(Ñ#;Ô#;¸SÑAÔAÀ3ÑGÔG€GØ�HÐÐr8   c           
      ó&  ‡— t          j        d¦  «        Št          j        d¦  «        }i }i }|                      ¦   «         D �]M\  }}|d         }|d         }d t          ¦   «         dœ||<   t	          j        ˆfd„|D ¦   «         |gz   ¦  «        }t	          j        |d d …df         ¦  «        t	          j        |d d …df         ¦  «        t	          j        |d d …d	f         ¦  «        t	          j        |d d …d
f         ¦  «        f}|||         d<   ||d         |d
         …|d         |d	         …f         }t          t	          j        |¦  «        ¦  «        }	d|	v r|	 	                    d¦  «         |	D �]}
|
|vr'||         d          
                    |
¦  «         |||
<   Œ.||
         }||k    rŒ=||         d         }||         d         }t          |d         |d         ¦  «        t          |d         |d         ¦  «        t          |d	         |d	         ¦  «        t          |d
         |d
         ¦  «        f}| 
                    |
¦  «         ||         d                              |¦  «         |||         d<   |||
<   ||= |D ]}|||<   Œ�Œ�ŒO|S )Nr<   rq   r®   r)   r¯   c                 ó*   •— g | ]}‰|         j         ‘ŒS rD   rE   )rG   Úgidr_   s     €r6   rI   z#refine_map_info.<locals>.<listcomp>  s    ø€ Ð>Ð>Ð>¨c˜ œÔ)Ð>Ð>Ð>r8   r   r   r   r   r   )r   rL   Úitemsr   r   rU   rV   rW   r   r   Úaddr¶   )r¾   rq   Únew_map_infoÚrev_mapÚregÚinfoÚcur_gidsr)   Úregionr®   rÉ   Úori_regÚori_bboxÚori_gidsÚnew_boxÚogidr_   s                   @r6   Úrefine_map_infor×     s¾  ø€ åÔ˜mÑ,Ô,€FÝÔ  Ñ-Ô-€Ià€LØ€GØ—^’^Ñ%Ô%ð %(ñ %(‰	ˆˆTØ˜”<ˆØ�FŒ|ˆØ%)µ3±5´5Ð9Ð9ˆ�SÑåŒxÐ>Ð>Ð>Ð>°XÐ>Ñ>Ô>À$ÀÑGÑHÔHˆÝ”�t˜A˜A˜A˜q˜D”zÑ"Ô"¥B¤F¨4°°°°1°¬:Ñ$6Ô$6½¼¸tÀAÀAÀAÀqÀD¼zÑ8JÔ8JÍBÌFÐSWÐXYÐXYÐXYÐ[\ÐX\ÔS]ÑL^ÔL^Ð_ˆØ$(ˆ�SÔ˜&Ñ!Ø˜4 œ7 4¨¤7˜?¨D°¬G°D¸´G¨OÐ;Ô<ˆÝ•2”9˜VÑ$Ô$Ñ%Ô%ˆØ�ˆ:ˆ:Ø�KŠK˜‰OŒOˆOàð 	(ñ 	(ˆCØ˜'Ð!Ð!Ø˜SÔ! &Ô)×-Ò-¨cÑ2Ô2Ð2Ø"�˜‘�à! #œ,�Ø˜c’>�>Øà'¨Ô0°Ô8�Ø'¨Ô0°Ô8�å˜ œ T¨!¤WÑ-Ô-Ý˜ œ T¨!¤WÑ-Ô-Ý˜ œ T¨!¤WÑ-Ô-Ý˜ œ T¨!¤WÑ-Ô-ð	�ð —’˜SÑ!Ô!Ð!Ø˜SÔ! &Ô)×0Ò0°Ñ:Ô:Ð:Ø,3�˜SÔ! &Ñ)Ø"�˜‘à  Ð)Ø$ð (ð (�DØ$'�G˜D‘M�Mñ(ñ/	(ð4 Ðr8   Tc                 ó®   ‡ ‡— t          ˆ ˆfd„|D ¦   «         ¦  «        }| }|r!t          ‰ d         ‰ d         z   dz  ¦  «        S |r‰ d         S ‰ d         S )Nc              3   ób   •K  — | ])}t          |d          ‰d          z
  ¦  «        ‰dz  k     V — Œ*dS )r   r   N)Úabs)rG   Únbrf   r*   s     €€r6   r   zget_stem_x.<locals>.<genexpr>4  s@   øè è € ÐHÐH¸2�˜B˜qœE $ q¤'™MÑ*Ô*¨9°Q©;Ò6ÐHÐHÐHÐHÐHÐHr8   r   r   )rZ   r   )rf   Únboxesr*   Úis_rightÚall_same_sideÚstem_at_centers   ` `   r6   Ú
get_stem_xrà   3  ss   øø€ ÝÐHÐHÐHÐHÐHÀÐHÑHÔHÑHÔH€MØ&Ð&€NØð Ý�d˜1”g  Q¤Ñ'¨1Ñ,Ñ-Ô-Ð-Ø	ð Ø�AŒwˆà�AŒwˆr8   çš™™™™™¹?ç      Ð?çÍÌÌÌÌÌì?c                 óf  — t          |¦  «        }t          |¦  «        }t          |¦  «        }t          |¦  «        }t          j        t          ||f||fddt          j        ¦  «         t          j        t          ||f||fddt          j        ¦  «         d„ t          ||z
  ¦  «        D ¦   «         }||k     r||}}t          ||¦  «        }	|	|z  }
|	|z  }t          t          ||¦  «        ¦  «        D ]Î\  }}|}t          | ||f         ¦  «        }||k     ryd}d}||k     r:t          | ||f         ¦  «        }||z  r||k    }|}|dz  }n|dz  }|dz  }||k     °:|r-||
k    r't          j	        ||z  ¦  «        }||xx         |z  cc<   ||k     °y|dk    r+|rt          j	        ||z  ¦  «        nd}||xx         |z  cc<   ŒÏi }|D ]}||vrd||<   ||xx         dz  cc<   Œt          |                     ¦   «         d„ d¬	¦  «        }d}t          |¦  «        |z  }|D ]\  }}||z  }||k    r|c S ŒdS )
N)é*   én   éÈ   r   c                 ó   — g | ]}d ‘ŒS ©r   rD   )rG   r¼   s     r6   rI   z"scan_beam_flag.<locals>.<listcomp>P  s   € Ð/Ð/Ð/�QˆqÐ/Ð/Ð/r8   Fr   r   c                 ó   — | d         S )Nr   rD   )Úss    r6   ú<lambda>z scan_beam_flag.<locals>.<lambda>w  s
   € ¨a°¬d€ r8   T©ÚkeyÚreverse)r   r"   ÚlineÚbeam_imgÚLINE_8r³   r   rŒ   ÚmathÚceilÚsortedrÊ   r   )r—   Ústart_xr.   Úend_xÚend_yÚ	thresholdr•   Úmax_width_ratioÚcounterr*   Ú	min_widthÚ	max_widthr˜   ÚxÚcur_yÚlast_valÚhitÚwidthÚcur_valÚ
beam_countÚstatÚcÚaccumÚmin_numÚnums                            r6   Úscan_beam_flagr
  >  s¿  € õ �'‰lŒl€GÝ�'‰lŒl€GÝ�‰JŒJ€EÝ�‰JŒJ€Eå„H�X˜ Ð)¨E°7Ð+;¸^ÈQÕPSÔPZÑ[Ô[Ð[Ý„H�X˜ Ð'¨%°¨¸ÈÍCÌJÑWÔWÐWà/Ð/�%  g¡Ñ.Ô.Ð/Ñ/Ô/€Gàˆw‚€Ø �ˆå˜g wÑ/Ô/€IØ˜OÑ+€IØ˜OÑ+€IÝ�E '¨5Ñ1Ô1Ñ2Ô2ð 'ð '‰ˆˆQØˆÝ�x  q Ô)Ñ*Ô*ˆð �eŠmˆmØˆCØˆEØ˜%’-�-Ý˜h u¨a xÔ0Ñ1Ô1�Ø˜gÑ%ð Ø" WÒ,�CØ&�HØ˜Q‘J�EØØ˜‘
�Ø˜‘
�ð ˜%’-�-ð ð +�u 	Ò)Ð)Ý!œY u¨yÑ'8Ñ9Ô9�
Ø˜��” 
Ñ*��‘ð �eŠmˆmð �qŠ=ˆ=à9<ÐC�œ 5¨9Ñ#4Ñ5Ô5Ð5À!ˆJØ�CˆLˆLŒL˜JÑ&ˆLˆL‰Løð €DØð ð ˆØ�Dˆ=ˆ=ØˆD�‰GØˆQˆˆŒ�1‰ˆˆ‰ˆÝ�$—*’*‘,”, N N¸DÐAÑAÔA€Dð €EÝ�'‰lŒl˜YÑ&€GØð ð ‰ˆˆ3Ø�‰ˆØ�7Š?ˆ?ØˆHˆHˆHð àˆ1r8   c                 óŒ  ‡ ‡‡‡‡‡— t          j        d¦  «        Št          j        ˆfd„|j        D ¦   «         ¦  «        }t          |d¬¦  «        }ˆˆˆ ˆˆfd„}t          |¦  «        dk    rô‰|d         j                                       ||d         j	        d¬¦  «        ¦  «         ‰|d	         j                                       ||d	         j	        d
¬¦  «        ¦  «         d‰|d         j                 _
        d
‰|d	         j                 _
        |j                             |d         j        ¦  «         |j                             |d	         j        ¦  «         d S |j        rÕ ||d         j	        d¬¦  «        ‰|d         j                 _        d‰|d         j                 _
        |j                             |d         j        ¦  «          ||d         j	        d
¬¦  «        }|d	d …         D ]E}	|‰|	j                 _        d
‰|	j                 _
        |j                             |	j        ¦  «         ŒFd S d}
|
t          |¦  «        k     r5|d         j        ||
         j        k    rn|
d	z  }
|
t          |¦  «        k     °5|d         j        t           j        k    rÒ|d |
…         D ]]}	‰|	j                                      t           j        ¦  «         d‰|	j                 _
        |j                             |	j        ¦  «         Œ^ ||d         j	        d
¬¦  «        }||
d …         D ]E}	|‰|	j                 _        d
‰|	j                 _
        |j                             |	j        ¦  «         ŒFd S ||
d …         D ]]}	‰|	j                                      t           j        ¦  «         d
‰|	j                 _
        |j                             |	j        ¦  «         Œ^ ||d         j	        d¬¦  «        }|d |
…         D ]E}	|‰|	j                 _        d‰|	j                 _
        |j                             |	j        ¦  «         ŒFd S )Nr@   c                 ó    •— g | ]
}‰|         ‘ŒS rD   rD   rF   s     €r6   rI   z&parse_inner_groups.<locals>.<listcomp>ˆ  s   ø€ Ð8Ð8Ð8 #�5˜”:Ð8Ð8Ð8r8   T)rï   c           
      ó  •— |r| d         n| d         }|r| d         n| d         }|r‰	d         n‰	d         }t          ‰t          ‰	d         |‰z
  ¦  «        |t          ‰	d         |‰z   ¦  «        |‰
¬¦  «        }‰|         S )Nr   r   r   r   )rö   r.   r÷   rø   rù   )r
  rW   rV   )rg   r\   Úcen_xr.   rø   ÚcountÚhalf_scan_widthÚnote_type_mapr—   Úset_boxrù   s         €€€€€r6   Ú	get_labelz%parse_inner_groups.<locals>.get_label‹  sž   ø€ Ø"Ð/��Q”�¨¨Q¬ˆØ$Ð1�$�q”'�'¨$¨q¬'ˆØ%Ð5�˜”
�
¨7°1¬:ˆÝØÝ˜ œ
 E¨/Ñ$9Ñ:Ô:ØÝ�g˜a”j %¨Ñ"7Ñ8Ô8ØØð
ñ 
ô 
ˆð ˜UÔ#Ð#r8   r   r   )r\   r   Fr   )r   rL   r   rŠ   rT   rõ   r   ÚidÚforce_set_labelr)   r\   Útop_note_idsrX   Úbottom_note_idsÚall_same_typer²   r
   ÚHALF_OR_WHOLEÚHALF)r—   rd   r  r  r  rù   Úntsr  Úbt_labelÚnnr˜   Ú	top_labelr@   s   ` ````      @r6   Úparse_inner_groupsr  „  s6  øøøøøø€ åÔ˜WÑ%Ô%€Eå
Œ'Ð8Ð8Ð8Ð8¨¬Ð8Ñ8Ô8Ñ
9Ô
9€CÝ
�˜dÐ
#Ñ
#Ô
#€Cð$ð $ð $ð $ð $ð $ð $ð $ð $õ ˆ3�x„x�1‚}€}àˆc�!ŒfŒiÔ×(Ò(¨¨°3°q´6´;ÈÐ)MÑ)MÔ)MÑNÔNÐNØˆc�!ŒfŒiÔ×(Ò(¨¨°3°q´6´;ÈÐ)NÑ)NÔ)NÑOÔOÐOØ#'ˆˆc�!ŒfŒiÔÔ Ø#(ˆˆc�!ŒfŒiÔÔ ØÔ×!Ò! # a¤&¤)Ñ,Ô,Ð,ØÔ×$Ò$ S¨¤V¤YÑ/Ô/Ð/Ð/Ð/Ø	Ô	ð +1ð "+ ¨3¨q¬6¬;ÀÐ!EÑ!EÔ!Eˆˆc�!ŒfŒiÔÔØ#'ˆˆc�!ŒfŒiÔÔ ØÔ×!Ò! # a¤&¤)Ñ,Ô,Ð,Ø�9˜S œWœ\°5Ð9Ñ9Ô9ˆØ�a�b�b”'ð 	0ð 	0ˆBØ!)ˆE�"”%ŒLÔØ#(ˆE�"”%ŒLÔ ØÔ!×(Ò(¨¬Ñ/Ô/Ð/Ð/ð	0ð 	0ð ˆØ•C˜‘H”HŠnˆnØ�1ŒvŒ|˜s 3œxœ~Ò-Ð-ØØ�1‰HˆCð •C˜‘H”HŠnˆnð
 ˆqŒ6Œ<�8Ô1Ò1Ð1à˜$˜3˜$”ið 1ð 1�à�b”e”×,Ò,­X¬]Ñ;Ô;Ð;Ø'+��b”e”Ô$ØÔ"×)Ò)¨"¬%Ñ0Ô0Ð0Ð0Ø �y  R¤¤°uÐ=Ñ=Ô=ˆHØ˜#˜$˜$”ið 4ð 4�Ø%-��b”e”Ô"Ø',��b”e”Ô$ØÔ%×,Ò,¨R¬UÑ3Ô3Ð3Ð3ð4ð 4ð ˜#˜$˜$”ið 4ð 4�à�b”e”×,Ò,­X¬]Ñ;Ô;Ð;Ø',��b”e”Ô$ØÔ%×,Ò,¨R¬UÑ3Ô3Ð3Ð3Ø!˜	 # b¤'¤,¸Ð=Ñ=Ô=ˆIØ˜$˜3˜$”ið 1ð 1�Ø%.��b”e”Ô"Ø'+��b”e”Ô$ØÔ"×)Ò)¨"¬%Ñ0Ô0Ð0Ð0ð1ð 1r8   ç333333Ã?c                 óÚ  ‡— t          j        d¦  «        }t          j        d¦  «        Št          j        d¦  «        }i }|                     ¦   «         D ]"\  }}|d         }|d         }	|D ]
}
||	dœ||
<   ŒŒ#t          j        t          j        t          j        t          j        t          j        dœ}t          t          j
        | |z   dk    d	d¦  «        ¦  «        at          j
        | dk    d	d¦  «        }t          t          |¦  «        ¦  «        D �]S}
||
         }|j        }|
|v r||
         d         n|}t          t!          |¦  «        Ž }t#          |d
z  ¦  «        }|j        €v|j        sY|j        D ]P}‰|         j        t          j        k    rd‰|         _        Œ+‰|                              t          j        ¦  «         ŒQnt5          ||||||¬¦  «         ŒËˆfd„|j        D ¦   «         }d„ t7          |¦  «        D ¦   «         }|D ]}||xx         d	z  cc<   Œt9          |                     ¦   «         d„ d¬¦  «        }|d         d         }|t          j        k    r1|j        D ]'}‰|                              t          j        ¦  «         Œ(�Œ€|
|vr#|j        D ]}t          j        ‰|         _        Œ�Œ§|j        }|d         t=          |d	         |d	         ¦  «        |d
         t?          |d         |d         ¦  «        f}ˆfd„|j        D ¦   «         }t          t!          |¦  «        Ž }|j        r3tA          |||¦  «        }t=          d„ |D ¦   «         ¦  «        }|d	         }n4tA          |||d¬¦  «        }t?          d„ |D ¦   «         ¦  «        }|d         }tC          |t?          |d         ||z
  ¦  «        |t=          |d
         ||z   ¦  «        ||¬¦  «        }tE          j#        t          tI          |¦  «        tK          |¦  «        tK          |d         ¦  «        d
z   ftD          j&        d	dd	¦  «         |j        D ]"}‰|         j        €||         ‰|         _        Œ#�ŒUt          S )Nr<   r@   Únotehead_predr®   r)   )rÎ   r)   )r   r   r   r   rB   r   r   r   T)r—   rd   r  r  r  rù   c                 ó*   •— g | ]}‰|         j         ‘ŒS rD   )r²   rF   s     €r6   rI   z parse_rhythm.<locals>.<listcomp>  s    ø€ Ð=Ð=Ð= s�%˜”*Ô"Ð=Ð=Ð=r8   c                 ó   — i | ]}|d “ŒS ré   rD   )rG   Úks     r6   ú
<dictcomp>z parse_rhythm.<locals>.<dictcomp>  s   € Ð+Ð+Ð+˜!��AÐ+Ð+Ð+r8   c                 ó   — | d         S )Nr   rD   )r  s    r6   rì   zparse_rhythm.<locals>.<lambda>  s
   € °A°a´D€ r8   rí   r   c                 ó*   •— g | ]}‰|         j         ‘ŒS rD   rE   rF   s     €r6   rI   z parse_rhythm.<locals>.<listcomp>!  s   ø€ Ð:Ð:Ð: C��c”
”Ð:Ð:Ð:r8   c              3   ó&   K  — | ]}|d          V — ŒdS )r   NrD   ©rG   rÛ   s     r6   r   zparse_rhythm.<locals>.<genexpr>%  ó&   è è € Ð/Ð/ B˜"˜Qœ%Ð/Ð/Ð/Ð/Ð/Ð/r8   F)rÝ   c              3   ó&   K  — | ]}|d          V — ŒdS )r   NrD   r*  s     r6   r   zparse_rhythm.<locals>.<genexpr>)  r+  r8   )rù   r�   )'r   rL   rÊ   r
   ÚQUARTERÚEIGHTHÚ	SIXTEENTHÚTHIRTY_SECONDr   r   rM   rñ   r³   r   r)   r   r   r   r\   Úhas_stemrT   r²   r  Úinvalidr  ÚWHOLEr  r   rõ   r  rV   rW   rà   r
  r"   r%   Ústrr   r&   )Úbeam_mapr¾   Úagree_thr_   ÚnoteheadÚrev_map_inforÎ   rÏ   r®   r¸   rÉ   r  Úbin_beam_maprd   rf   Úreg_boxr*   r  rH   Úlabelsr  Úlr²   rg   r  r.   rø   r@   s                              @r6   Úparse_rhythmr=  Ï  s¼  ø€ åÔ˜mÑ,Ô,€FÝÔ˜WÑ%Ô%€EÝÔ Ñ0Ô0€Hð €LØ—^’^Ñ%Ô%ð :ð :‰	ˆˆTØ�FŒ|ˆØ�6ŒlˆØð 	:ð 	:ˆCØ(+°SÐ 9Ð 9ˆL˜ÑÐð	:õ
 ÔÝŒ?ÝÔÝÔ!ÝÔðð €Mõ �"œ( 8¨HÑ#4°QÒ#6¸¸1Ñ=Ô=Ñ>Ô>€Hõ
 ”8˜H QšJ¨¨1Ñ-Ô-€LÝ•S˜‘[”[Ñ!Ô!ð M8ñ M8ˆØ�s”ˆØŒzˆØ/2°lÐ/BÐ/B�,˜sÔ# FÔ+Ð+ÈˆÝ!¥:¨dÑ#3Ô#3Ð4ˆ	Ý 	¨A¡Ñ.Ô.ˆð Œ=Ð Ø”>ð à œ>ð ?ð ?�CØ˜S”zÔ'­8Ô+AÒAÐAØ-1˜˜cœ
Ô*Ø Ø˜#”J×.Ò.­x¬~Ñ>Ô>Ð>Ð>ð	?õ #Ø)ØØ#Ø"/Ø$3Ø&ðñ ô ð ð ð >Ð=Ð=Ð=¨e¬nÐ=Ñ=Ô=ˆØ+Ð+�s 6™{œ{Ð+Ñ+Ô+ˆØð 	ð 	ˆAØ�!ˆHˆHŒH˜‰MˆHˆH‰HˆHÝ�u—{’{‘}”}¨.¨.À$ÐGÑGÔGˆØ�a”˜”ˆØ•HÔ*Ò*Ð*à”~ð :ð :�Ø�c”
×*Ò*­8¬=Ñ9Ô9Ð9Ð9Ùà�lÐ"Ð"ð ”~ð 4ð 4�å#+Ô#3��c”
Ô Ð ÙàŒzˆØ�Q”�˜T !œW g¨a¤jÑ1Ô1°4¸´7½CÀÀQÄÈÐQRÌÑ<TÔ<TÐUˆØ:Ð:Ð:Ð:¨5¬>Ð:Ñ:Ô:ˆÝ!¥:¨dÑ#3Ô#3Ð4ˆ	ØŒ=ð 	Ý˜t T¨9Ñ5Ô5ˆEÝÐ/Ð/¨$Ð/Ñ/Ô/Ñ/Ô/ˆGØ˜”GˆEˆEå˜t T¨9¸uÐEÑEÔEˆEÝÐ/Ð/¨$Ð/Ñ/Ô/Ñ/Ô/ˆGØ˜”GˆEõ ØÝ�˜”
˜E /Ñ1Ñ2Ô2ØÝ�˜”
˜E /Ñ1Ñ2Ô2ØØð
ñ 
ô 
ˆõ 	Œ•H�c %™jœj­3¨u©:¬:µs¸4À¼7±|´|ÀA±~Ð*FÍÔH`ÐbcÐepÐrsÑtÔtÐtð ”>ð 	8ð 	8ˆCØ�SŒzÔÐ'Ø#0°Ô#7��c”
Ô øñ	8õ €Or8   c                 óÀ  — t                                d¦  «         t          || ¬¦  «         t                                d¦  «         t          |¬¦  «        \  }}}t                                d¦  «         t	          ||¦  «        \  }}t                                d¦  «         t          |¦  «        }t                                d¦  «         t          |||¬¦  «        }	|	|fS )	NúParsing dot)r^   r]   úParsing beams and flags)r]   úParsing beam regionsúRefining the map infoúParsing notes rhythm)r6  )ÚloggerÚdebugrm   r«   rÆ   r×   r=  )
Údot_min_area_ratioÚdot_max_area_ratioÚbeam_min_area_ratior6  r—   r›   r™   r½   r¾   rñ   s
             r6   ÚextractrI  A  sÏ   € õ ‡L‚L�ÑÔÐÝÐ/Ð@RÐSÑSÔSÐSå
‡L‚LÐ*Ñ+Ô+Ð+Ý'2ÐBUÐ'VÑ'VÔ'VÑ$€Hˆi˜å
‡L‚LÐ'Ñ(Ô(Ð(Ý2°8¸[ÑIÔIÑ€GˆXå
‡L‚LÐ(Ñ)Ô)Ð)Ý˜xÑ(Ô(€Hå
‡L‚LÐ'Ñ(Ô(Ð(Ý˜G X¸ÐAÑAÔA€HØ�YÐÐr8   c           
      óð  — |                      ¦   «         }t          j        |¦  «        }| D ]Ê}|j        \  }}}}t	          j        |||f||fdd¦  «         |j        �=t	          j        ||j        j        d         |dz   |dz   ft          j	        ddd¦  «         n,t	          j        |d|dz   |dz   ft          j	        ddd¦  «         |j
        r)t	          j        |d|d	z   |ft          j	        d
dd¦  «         ŒË|S )Nr†   r   r   rB   r…   )r   éF   r   r2  ÚDOTé   r   )r   r   r   r   )rŠ   r   rU   r)   r"   r#   r²   r%   Únamer&   rY   )r@   Úori_imgÚimgÚnoteÚx1Úy1Úx2Úy2s           r6   Ú
draw_notesrV  X  s  € Ø
�,Š,‰.Œ.€CÝ
Œ(�3‰-Œ-€CØð bð bˆØœ‰ˆˆB��BÝŒ�c˜B ˜8 b¨" X¨{¸AÑ>Ô>Ð>ØŒ:Ð!ÝŒK˜˜TœZœ_¨QÔ/°"°Q±$¸¸1¹°½sÔ?WÐY\Ð^jÐlmÑnÔnÐnÐnåŒK˜˜Y¨¨A©¨r°!©t¨µcÔ6NÐPSÐUaÐcdÑeÔeÐeØŒ<ð 	bÝŒK˜˜U R¨¡U¨B KµÔ1IÈ3ÐP]Ð_`ÑaÔaÐaøà€Jr8   Ú__main__Úoriginal_imager@   r<   r=   r>   r?   rA   rp   r"  rq   r?  r@  rA  rB  rC  c                 ó   — g | ]
}|d          ‘ŒS rE   rD   )rG   rÏ   s     r6   rI   rI   …  s   € Ð9Ð9Ð9˜tˆd�6ŒlÐ9Ð9Ð9r8   )r9   r:   )ry   r   r:   )T)rá   râ   rã   )rá   )r   )r9   r:   ry   r   )9r    ró   r"   Únumpyr   Úscipy.ndimager°   Úoemerr   Úoemer.utilsr   r   Ú
oemer.bboxr   r   r   r	   Úoemer.notehead_extractionr
   Úoemer.morphr   r   Ú__name__rD  r7   rm   rx   r«   rÆ   r×   rà   r
  r  r=  rI  rV  rL   rO  r@   r_   r'   r`   ra   r(   Ústaffr7  rq   rE  r—   r›   r™   r½   r¾   rñ   ÚoutÚvaluesÚbboxesrD   r8   r6   ú<module>rf     sy  ðØ €€€Ø €€€à 
€
€
€
Ø Ð Ð Ð Ø Ð Ð Ð à Ð Ð Ð Ð Ð Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø TÐ TÐ TÐ TÐ TÐ TÐ TÐ TÐ TÐ TÐ TÐ TØ .Ð .Ð .Ð .Ð .Ð .Ø /Ð /Ð /Ð /Ð /Ð /Ð /Ð /ð 
ˆ�HÑ	Ô	€ð ð  ð  ðF*0ð *0ð *0ð *0ðZð ð ðU,ð U,ð U,ð U,ðp7ð 7ð 7ðt.ð .ð .ðbð ð ð ð" ØØðCð Cð Cð CðLH1ð H1ð H1ð H1ðVoð oð oð oðf ØØØð	ð ð ð ð.ð ð ð  ˆzÒÑØˆfÔÐ/Ñ0Ô0€GØˆFÔ˜WÑ%Ô%€EØˆVÔ˜mÑ,Ô,€FØˆfÔ˜~Ñ.Ô.€GØˆFÔÐ/Ñ0Ô0€EØ!�Ô!Ð"3Ñ4Ô4€JØ"�&Ô" 9Ñ-Ô-€KØˆFÔ˜\Ñ*Ô*€EØˆvÔ Ñ0Ô0€HØ �Ô  Ñ-Ô-€Ià
‡L‚L�ÑÔÐØ€I�K„K€Kà
‡L‚LÐ*Ñ+Ô+Ð+Ø'2 {¡}¤}Ñ$€Hˆi˜à
‡L‚LÐ'Ñ(Ô(Ð(Ø2Ð2°8¸[ÑIÔIÑ€GˆXà
‡L‚LÐ(Ñ)Ô)Ð)Øˆ˜xÑ(Ô(€Hà
‡L‚LÐ'Ñ(Ô(Ð(Øˆ|˜G XÑ.Ô.€Hà
ˆ*�U˜GÑ
$Ô
$€Cà9Ð9 x§¢Ñ'8Ô'8Ð9Ñ9Ô9€F€F€Fð; Ðr8   