ó
    �®žj.‚  ã                   óô  • S SK r S SKrS SKrS SKrS SKrS SKJrJr  S SKJ	r	  S SK
J
r
  S SKJr  S SKJr  S SKJr  S SKJrJrJr  S S	KJr  S S
KJrJrJrJr  S SKJr  S SKJr  S SK J!r!  S SK"J#r#  S SK$J%r%  S SK&J'r'J(r(  S SK)J*r*  S SK+J,r,  S SK-J.r.  S SK/J0r0  S SK1J2r2  S SK3J4r4  S SK5J6r6  S SK7J8r8  S SK9J:r:  S SK;J<r<  S SK=J>r>  S SK?J@r@  S SKAJBrB  S SKCJDrD  S SKEJFrFJGrGJHrH  S S KIJJrJ  S S!KKJLrL  S S"KMJNrN  S S#KOJPrP  S S$KQJRrR  S S%KSJTrT  S S&KUJVrVJWrWJXrXJYrYJZrZJ[r[J\r\J]r]J^r^J_r_J`r`JaraJbrbJcrc  S S'KdJereJfrfJgrgJhrhJiriJjrjJkrkJlrl  S S(KmJnrnJoroJprpJqrqJrrr  S S)KsJtrtJuruJvrv  S S*KwJxrxJyryJzrzJ{r{  S S+K|J}r}  S S,K~Jr  S S-K€J�r�  S S.K‚Jƒrƒ  S S/K„J…r…  S S0K†J‡r‡  S S1KˆJ‰r‰  S S2KŠJ‹r‹  S S3KŒJ�r�  \ GR                  " \�5      r�\GR"                  " 5       r’ " S4 S5\e5      r“ " S6 S7\“5      r” " S8 S9\“5      r• " S: S;\“5      r– " S< S=\“5      r— " S> S?\“5      r˜ " S@ SA\“5      r™ " SB SC\“5      rš " SD SE\“5      r› " SF SG\“5      rœ " SH SI\“5      r� " SJ SK\“5      rž " SL SM\“5      rŸ " SN SO\“5      r  " SP SQ\“5      r¡ " SR SS\“5      r¢ " ST SU\“5      r£ " SV SW\“5      r¤ " SX SY\“5      r¥ " SZ S[\“5      r¦ " S\ S]\¥5      r§ " S^ S_\“5      r¨ " S` Sa\“5      r© " Sb Sc\“5      rª " Sd Se\“5      r« " Sf Sg\“5      r¬ " Sh Si\“5      r­ " Sj Sk\“5      r®Sl\lSm\“4Sn jr¯ " So Sp5      r°g)qé    N)ÚIterableÚIterator)ÚThreadPoolExecutor)Údatetime)Úpartial)ÚBytesIO)ÚPath)ÚOptionalÚTypeÚUnion)ÚTextCellUnit)Ú
ConfigDictÚFieldÚmodel_validatorÚvalidate_call)ÚSelf)ÚAbstractDocumentBackend)ÚAsciiDocBackend)ÚBoxNoteDocumentBackend)ÚCsvDocumentBackend)ÚDoclingParseDocumentBackendÚ#ThreadedDoclingParseDocumentBackend)ÚEbcdicDocumentBackend)ÚEmailDocumentBackend)ÚEpubDocumentBackend)ÚHTMLDocumentBackend)ÚImageDocumentBackend)ÚIWorkPagesDocumentBackend)ÚDoclingJSONBackend)ÚLatexDocumentBackend)ÚMarkdownDocumentBackend)ÚMetsGbsDocumentBackend)ÚMsExcelDocumentBackend)ÚMsPowerpointDocumentBackend)ÚMsWordDocumentBackend)ÚNoOpBackend)ÚOdpDocumentBackendÚOdsDocumentBackendÚOdtDocumentBackend)ÚWebVTTDocumentBackend)ÚDocLangArchiveBackend)ÚDocLangDocumentBackend)ÚJatsDocumentBackend)ÚPatentUsptoDocumentBackend)ÚXBRLDocumentBackend)ÚAsciiDocBackendOptionsÚBackendOptionsÚEbcdicBackendOptionsÚEmailBackendOptionsÚEpubBackendOptionsÚHTMLBackendOptionsÚIWorkBackendOptionsÚLatexBackendOptionsÚMarkdownBackendOptionsÚMetsGbsBackendOptionsÚMsWordBackendOptionsÚPdfBackendOptionsÚ"ThreadedDoclingParseBackendOptionsÚXBRLBackendOptions)ÚBaseFormatOptionÚConversionStatusÚDoclingComponentTypeÚDocumentStreamÚ	ErrorItemÚFailureCategoryÚ
HttpSourceÚInputFormat)ÚConversionResultÚInputDocumentÚ_DocumentConversionInputÚbuild_invalid_input_errorsÚget_input_rejection_cause)ÚConvertPipelineOptionsÚNativePdfPipelineOptionsÚPipelineOptions)ÚDEFAULT_PAGE_RANGEÚDocumentLimitsÚ	PageRangeÚsettings)ÚConversionError)ÚAsrPipeline)ÚBasePipeline)ÚNativePdfPipeline)ÚSimplePipeline)ÚStandardPdfPipeline)ÚVideoPipeline)Úcreate_pipeline_options_hash)Úchunkifyc                   ó~   • \ rS rSr% \\   \S'   Sr\\	   \S'   S\
\-  \-  S\	S-  4S jr\" SS	9S\4S
 j5       rSrg)ÚFormatOptionér   Úpipeline_clsNÚbackend_optionsÚsourceÚreturnc                 ó   • U R                   $ ©N©r_   )Úselfr`   s     ÚW/home/mande/repo/quber/.venv/lib/python3.13/site-packages/docling/document_converter.pyÚbackend_options_for_inputÚ&FormatOption.backend_options_for_inputv   s   € ð ×#Ñ#Ð#ó    Úafter©Úmodec                 ó^   • U R                   c  U R                  R                  5       U l         U $ rc   )Úpipeline_optionsr^   Úget_default_options©re   s    rf   Úset_optional_field_defaultÚ'FormatOption.set_optional_field_default{   s*   € à× Ñ Ñ(Ø$(×$5Ñ$5×$IÑ$IÓ$KˆDÔ!àˆri   ©rn   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   rT   Ú__annotations__r_   r
   r1   r	   ÚstrrA   rg   r   r   rq   Ú__static_attributes__© ri   rf   r\   r\   r   s_   ‡ Ø�|Ñ$Ó$Ø04€O�X˜nÑ-Ó4ð$Ø˜S‘j >Ñ1ð$à	˜$Ñ	ô$ñ
 ˜'Ñ"ð¨Dó ó #óri   r\   c                   ó8   • \ rS rSr% \r\\S'   \r	\\
   \S'   Srg)ÚBoxNoteFormatOptionéƒ   r^   Úbackendr{   N)rt   ru   rv   rw   rV   r^   r   rx   r   r   r   rz   r{   ri   rf   r}   r}   ƒ   ó   ‡ Ø'€L�$Ó'Ø-C€GˆTÐ)Ñ*ÖCri   r}   c                   ó8   • \ rS rSr% \r\\S'   \r	\\
   \S'   Srg)ÚCsvFormatOptionéˆ   r^   r   r{   N)rt   ru   rv   rw   rV   r^   r   rx   r   r   r   rz   r{   ri   rf   r‚   r‚   ˆ   ó   ‡ Ø'€L�$Ó'Ø-?€GˆTÐ)Ñ*Ö?ri   r‚   c                   ó8   • \ rS rSr% \r\\S'   \r	\\
   \S'   Srg)ÚExcelFormatOptioné�   r^   r   r{   N)rt   ru   rv   rw   rV   r^   r   rx   r#   r   r   rz   r{   ri   rf   r†   r†   �   r€   ri   r†   c                   óL   • \ rS rSr% \r\\S'   \r	\\
   \S'   Sr\\   \S'   Srg)ÚWordFormatOptioné’   r^   r   Nr_   r{   )rt   ru   rv   rw   rV   r^   r   rx   r%   r   r   r_   r
   r:   rz   r{   ri   rf   r‰   r‰   ’   s,   ‡ Ø'€L�$Ó'Ø-B€GˆTÐ)Ñ*ÓBØ6:€O�XÐ2Ñ3Ö:ri   r‰   c                   ó8   • \ rS rSr% \r\\S'   \r	\\
   \S'   Srg)ÚPowerpointFormatOptioné˜   r^   r   r{   N)rt   ru   rv   rw   rV   r^   r   rx   r$   r   r   rz   r{   ri   rf   rŒ   rŒ   ˜   s   ‡ Ø'€L�$Ó'Ø-H€GˆTÐ)Ñ*ÖHri   rŒ   c                   ó8   • \ rS rSr% \r\\S'   \r	\\
   \S'   Srg)ÚOdtFormatOptioné�   r^   r   r{   N)rt   ru   rv   rw   rV   r^   r   rx   r)   r   r   rz   r{   ri   rf   r�   r�   �   r„   ri   r�   c                   ó8   • \ rS rSr% \r\\S'   \r	\\
   \S'   Srg)ÚOdsFormatOptioné¢   r^   r   r{   N)rt   ru   rv   rw   rV   r^   r   rx   r(   r   r   rz   r{   ri   rf   r’   r’   ¢   r„   ri   r’   c                   ó8   • \ rS rSr% \r\\S'   \r	\\
   \S'   Srg)ÚOdpFormatOptioné§   r^   r   r{   N)rt   ru   rv   rw   rV   r^   r   rx   r'   r   r   rz   r{   ri   rf   r•   r•   §   r„   ri   r•   c                   óL   • \ rS rSr% \r\\S'   \r	\\
   \S'   Sr\\   \S'   Srg)ÚMarkdownFormatOptioné¬   r^   r   Nr_   r{   )rt   ru   rv   rw   rV   r^   r   rx   r!   r   r   r_   r
   r8   rz   r{   ri   rf   r˜   r˜   ¬   s,   ‡ Ø'€L�$Ó'Ø-D€GˆTÐ)Ñ*ÓDØ8<€O�XÐ4Ñ5Ö<ri   r˜   c                   óp   • \ rS rSr% \r\\S'   \r	\\
   \S'   Sr\S-  \S'   S\\-  \-  S\S-  4S jrS	rg)
ÚAsciiDocFormatOptioné²   r^   r   Nr_   r`   ra   c                 ó¼   • U R                   nUb"  UR                  c  [        U[        5      (       a  U$ [        R
                  " 0 UR                  5       ESU0E5      $ ©NÚ
source_uri)r_   rŸ   Ú
isinstancerA   r0   Úmodel_validateÚ
model_dump©re   r`   Úoptionss      rf   rg   Ú.AsciiDocFormatOption.backend_options_for_input·   s]   € ð ×&Ñ&ˆà‰OØ×!Ñ!Ñ-Ü˜&¤.×1Ñ1àˆNä%×4Ò4Ø:ˆw×!Ñ!Ó#Ð: \°6Ñ:ó
ð 	
ri   r{   )rt   ru   rv   rw   rV   r^   r   rx   r   r   r   r_   r0   r	   ry   rA   rg   rz   r{   ri   rf   r›   r›   ²   sO   ‡ Ø'€L�$Ó'Ø-<€GˆTÐ)Ñ*Ó<Ø59€OÐ+¨dÑ2Ó9ð
Ø˜S‘j >Ñ1ð
à	 $Ñ	&÷
ri   r›   c                   óp   • \ rS rSr% \r\\S'   \r	\\
   \S'   Sr\\   \S'   S\\-  \-  S\S-  4S jrS	rg)
ÚHTMLFormatOptionéÇ   r^   r   Nr_   r`   ra   c                 ó¼   • U R                   nUb"  UR                  c  [        U[        5      (       a  U$ [        R
                  " 0 UR                  5       ESU0E5      $ rž   )r_   rŸ   r    rA   r5   r¡   r¢   r£   s      rf   rg   Ú*HTMLFormatOption.backend_options_for_inputÌ   s]   € ð ×&Ñ&ˆà‰OØ×!Ñ!Ñ-Ü˜&¤.×1Ñ1àˆNä!×0Ò0Ø:ˆw×!Ñ!Ó#Ð: \°6Ñ:ó
ð 	
ri   r{   )rt   ru   rv   rw   rV   r^   r   rx   r   r   r   r_   r
   r5   r	   ry   rA   rg   rz   r{   ri   rf   r§   r§   Ç   sO   ‡ Ø'€L�$Ó'Ø-@€GˆTÐ)Ñ*Ó@Ø48€O�XÐ0Ñ1Ó8ð
Ø˜S‘j >Ñ1ð
à	˜dÑ	"÷
ri   r§   c                   ó8   • \ rS rSr% \r\\S'   \r	\\   \S'   Sr
g)ÚPatentUsptoFormatOptionéÜ   r^   r   r{   N)rt   ru   rv   rw   rV   r^   r   rx   r.   r   rz   r{   ri   rf   r¬   r¬   Ü   s   ‡ Ø'€L�$Ó'Ø0J€GˆTÐ,Ñ-ÖJri   r¬   c                   ó8   • \ rS rSr% \r\\S'   \r	\\
   \S'   Srg)ÚXMLJatsFormatOptionéá   r^   r   r{   N)rt   ru   rv   rw   rV   r^   r   rx   r-   r   r   rz   r{   ri   rf   r¯   r¯   á   s   ‡ Ø'€L�$Ó'Ø-@€GˆTÐ)Ñ*Ö@ri   r¯   c                   ó8   • \ rS rSr% \r\\S'   \r	\\
   \S'   Srg)ÚXMLDocLangFormatOptionéæ   r^   r   r{   N)rt   ru   rv   rw   rV   r^   r   rx   r,   r   r   rz   r{   ri   rf   r²   r²   æ   r€   ri   r²   c                   ó8   • \ rS rSr% \r\\S'   \r	\\
   \S'   Srg)ÚDclxFormatOptionéë   r^   r   r{   N)rt   ru   rv   rw   rV   r^   r   rx   r+   r   r   rz   r{   ri   rf   rµ   rµ   ë   s   ‡ Ø'€L�$Ó'Ø-B€GˆTÐ)Ñ*ÖBri   rµ   c                   óL   • \ rS rSr% \r\\S'   \r	\\
   \S'   Sr\S-  \S'   Srg)ÚXBRLFormatOptionéð   r^   r   Nr_   r{   )rt   ru   rv   rw   rV   r^   r   rx   r/   r   r   r_   r=   rz   r{   ri   rf   r¸   r¸   ð   ó,   ‡ Ø'€L�$Ó'Ø-@€GˆTÐ)Ñ*Ó@Ø15€OÐ'¨$Ñ.Ö5ri   r¸   c                   ó8   • \ rS rSr% \r\\S'   \r	\\
   \S'   Srg)ÚImageFormatOptionéö   r^   r   r{   N)rt   ru   rv   rw   rW   r^   r   rx   r   r   r   rz   r{   ri   rf   r¼   r¼   ö   s   ‡ Ø,€L�$Ó,Ø-A€GˆTÐ)Ñ*ÖAri   r¼   c                   óL   • \ rS rSr% \r\\S'   \r	\\
   \S'   Sr\\   \S'   Srg)ÚPdfFormatOptionéû   r^   r   Nr_   r{   )rt   ru   rv   rw   rW   r^   r   rx   r   r   r   r_   r
   r;   rz   r{   ri   rf   r¿   r¿   û   s,   ‡ Ø,€L�$Ó,Ø-P€GˆTÐ)Ñ*ÓPØ37€O�XÐ/Ñ0Ö7ri   r¿   c                   óP   • \ rS rSr% Sr\r\\S'   \	r
\\   \S'   Sr\S-  \S'   Srg)ÚIWorkPagesFormatOptioni  z$Format option for Apple Pages input.r^   r   Nr_   r{   )rt   ru   rv   rw   Ú__doc__rV   r^   r   rx   r   r   r   r_   r6   rz   r{   ri   rf   rÂ   rÂ     s/   ‡ Ù.à'€L�$Ó'Ø-F€GˆTÐ)Ñ*ÓFØ26€OÐ(¨4Ñ/Ö6ri   rÂ   c                   ó\   • \ rS rSr% Sr\r\\S'   \	r
\\   \S'   \" SS9S\4S j5       rS	rg
)ÚNativePdfFormatOptioni	  a  PDF format option for the model-free `NativePdfPipeline`.

Defaults to the threaded docling-parse backend, configured from the pipeline
options: it parses with `parser_threads` threads, only decodes the embedded
bitmaps and only renders page images when the pipeline asks for them.
r^   r   rj   rk   ra   c                 ó²  • [        U R                  [        5      (       d  U $ U R                  c]  [	        U R                  R
                  U R                  R                  U R                  R                  U R                  R                  S9nOU R                  R                  SS9nU R                  R                  [        R                  :H  Ul        Xl        U $ )N)Úparser_threadsÚinclude_bitmap_imagesÚrender_pagesÚrender_scaleT)Údeep)r    rn   rL   r_   r<   rÇ   Úgenerate_picture_imagesÚgenerate_page_imagesÚimages_scaleÚ
model_copyÚtext_cell_unitr   ÚCHARÚ_materialize_char_cells)re   r_   s     rf   Úconfigure_backend_optionsÚ/NativePdfFormatOption.configure_backend_options  s¹   € ä˜$×/Ñ/Ô1I×JÑJØˆKà×ÑÑ'Ü@Ø#×4Ñ4×CÑCØ&*×&;Ñ&;×&SÑ&SØ!×2Ñ2×GÑGØ!×2Ñ2×?Ñ?ñ	‰Oð #×2Ñ2×=Ñ=À4Ð=ÐHˆOð ×!Ñ!×0Ñ0´L×4EÑ4EÑEð 	Ô/ð  /Ôàˆri   rd   N)rt   ru   rv   rw   rÃ   rU   r^   r   rx   r   r   r   r   r   rÓ   rz   r{   ri   rf   rÅ   rÅ   	  sA   ‡ ñð +€L�$Ó*Ø-P€GˆTÐ)Ñ*ÓPá˜'Ñ"ð¨4ó ó #óri   rÅ   c                   óL   • \ rS rSr% \r\\S'   \r	\\
   \S'   Sr\S-  \S'   Srg)ÚMetsGbsFormatOptioni+  r^   r   Nr_   r{   )rt   ru   rv   rw   rW   r^   r   rx   r"   r   r   r_   r9   rz   r{   ri   rf   rÖ   rÖ   +  s,   ‡ Ø,€L�$Ó,Ø-C€GˆTÐ)Ñ*ÓCØ48€OÐ*¨TÑ1Ö8ri   rÖ   c                   ó8   • \ rS rSr% \r\\S'   \r	\\
   \S'   Srg)ÚAudioFormatOptioni1  r^   r   r{   N)rt   ru   rv   rw   rS   r^   r   rx   r&   r   r   rz   r{   ri   rf   rØ   rØ   1  s   ‡ Ø$€L�$Ó$Ø-8€GˆTÐ)Ñ*Ö8ri   rØ   c                   ó<   • \ rS rSr% Sr\r\\S'   \	r
\\   \S'   Srg)ÚVideoFormatOptioni6  z;Format option for video input, processed via VideoPipeline.r^   r   r{   N)rt   ru   rv   rw   rÃ   rX   r^   r   rx   r&   r   r   rz   r{   ri   rf   rÚ   rÚ   6  s   ‡ ÙEà&€L�$Ó&Ø-8€GˆTÐ)Ñ*Ö8ri   rÚ   c                   óP   • \ rS rSr% Sr\r\\S'   \	r
\\   \S'   Sr\\   \S'   Srg)ÚLatexFormatOptioni=  z#Format options for LaTeX documents.r^   r   Nr_   r{   )rt   ru   rv   rw   rÃ   rV   r^   r   rx   r    r   r   r_   r
   r7   rz   r{   ri   rf   rÜ   rÜ   =  s/   ‡ Ù-à'€L�$Ó'Ø-A€GˆTÐ)Ñ*ÓAØ59€O�XÐ1Ñ2Ö9ri   rÜ   c                   óL   • \ rS rSr% \r\\S'   \r	\\
   \S'   Sr\\   \S'   Srg)ÚEmailFormatOptioniE  r^   r   Nr_   r{   )rt   ru   rv   rw   rV   r^   r   rx   r   r   r   r_   r
   r3   rz   r{   ri   rf   rÞ   rÞ   E  s,   ‡ Ø'€L�$Ó'Ø-A€GˆTÐ)Ñ*ÓAØ59€O�XÐ1Ñ2Ö9ri   rÞ   c                   óL   • \ rS rSr% \r\\S'   \r	\\
   \S'   Sr\S-  \S'   Srg)ÚEpubFormatOptioniK  r^   r   Nr_   r{   )rt   ru   rv   rw   rV   r^   r   rx   r   r   r   r_   r4   rz   r{   ri   rf   rà   rà   K  rº   ri   rà   c                   óL   • \ rS rSr% \r\\S'   \r	\\
   \S'   Sr\S-  \S'   Srg)ÚEbcdicFormatOptioniQ  r^   r   Nr_   r{   )rt   ru   rv   rw   rV   r^   r   rx   r   r   r   r_   r2   rz   r{   ri   rf   râ   râ   Q  s,   ‡ Ø'€L�$Ó'Ø-B€GˆTÐ)Ñ*ÓBØ37€OÐ)¨DÑ0Ö7ri   râ   Úformatra   c                 ót  • 0 [         R                  [        5       _[         R                  [	        5       _[         R
                  [        5       _[         R                  [        5       _[         R                  [        5       _[         R                  [        5       _[         R                  [        5       _[         R                  [        5       _[         R                  [        5       _[         R                   [#        5       _[         R$                  ['        5       _[         R(                  [+        5       _[         R,                  [/        5       _[         R0                  [3        5       _[         R4                  [7        5       _[         R8                  [;        5       _[         R<                  [?        5       _[         R@                  [C        5       [         RD                  [G        5       [         RH                  [K        [L        [N        S9[         RP                  [S        5       [         RT                  [W        5       [         RX                  [K        [Z        [\        S9[         R^                  [a        5       [         Rb                  [e        5       [         Rf                  [K        [Z        [h        S9[         Rj                  [m        5       [         Rn                  [q        5       [         Rr                  [u        5       [         Rv                  [y        5       [         Rz                  [}        5       0EnUR                  U 5      =nb  U$ [�        SU  35      e)N)r^   r   z"No default options configured for )ArE   ÚCSVr‚   ÚBOXNOTEr}   ÚXLSXr†   ÚXLSÚDOCXr‰   ÚDOCÚPPTXrŒ   ÚPPTÚODTr�   ÚODSr’   ÚODPr•   ÚMDr˜   ÚASCIIDOCr›   ÚHTMLr§   Ú	XML_USPTOr¬   ÚXML_JATSr¯   ÚXML_DOCLANGr²   ÚDCLXrµ   ÚXML_XBRLr¸   ÚMETS_GBSr\   rW   r"   ÚIMAGEr¼   ÚPDFr¿   ÚJSON_DOCLINGrV   r   ÚAUDIOrØ   ÚVIDEOrÚ   ÚVTTr*   ÚLATEXrÜ   ÚEMAILrÞ   ÚEPUBrà   ÚIWORK_PAGESrÂ   ÚEBCDICrâ   ÚgetÚRuntimeError)rã   Úformat_to_default_optionsr¤   s      rf   Ú_get_default_optionr  W  s‰  € ð&!Ü�‰œÓ*ð&!ä×ÑÔ0Ó2ð&!ô 	×ÑÔ+Ó-ð&!ô 	�‰Ô*Ó,ð	&!ô
 	×ÑÔ*Ó,ð&!ô 	�‰Ô)Ó+ð&!ô 	×ÑÔ0Ó2ð&!ô 	�‰Ô/Ó1ð&!ô 	�‰œÓ*ð&!ô 	�‰œÓ*ð&!ô 	�‰œÓ*ð&!ô 	�‰Ô,Ó.ð&!ô 	×ÑÔ2Ó4ð&!ô 	×ÑÔ*Ó,ð&!ô 	×ÑÔ6Ó8ð&!ô  	×ÑÔ1Ó3ð!&!ô" 	×ÑÔ!7Ó!9ð#&!ô$ 	×ÑÔ*Ó,Ü×ÑÔ.Ó0Ü×ÑœlÜ,Ô6Lñ
ô 	×ÑÔ,Ó.Ü�‰œÓ*Ü× Ñ ¤,Ü'Ô1Cñ#
ô 	×ÑÔ,Ó.Ü×ÑÔ,Ó.Ü�‰œÜ'Ô1Fñ
ô 	×ÑÔ,Ó.Ü×ÑÔ,Ó.Ü×ÑÔ*Ó,Ü×ÑÔ!7Ó!9Ü×ÑÔ.Ó0ñK&!ÐðN -×0Ñ0°Ó8Ð8ˆÑEØˆäÐ?À¸xÐHÓIÐIri   c                   ór  • \ rS rSrSrSr  S#S\\\      S\\	\\
4      SS4S jjrS\	\\\   \4   \4   4S	 jrS
\4S jr\" \" SS9S9SS\R*                  \R*                  \4S\\\\\4   S\\	\\4      S\S\S\S\S\4S jj5       r\" \" SS9S9SS\R*                  \R*                  \4S\ \\\\\4      S\\	\\4      S\S\S\S\S\!\   4S jj5       r"\" \" SS9S9 S$S\S
\S\\   S\4S jj5       r#S\$S\S\!\   4S jr%S\S\\   4S jr&S\'S\S\4S jr(S\'SS4S  jr)S\'S\S\4S! jr*S"r+g)%ÚDocumentConverteri…  aÔ  Convert documents of various input formats to Docling documents.

`DocumentConverter` is the main entry point for converting documents in Docling.
It handles various input formats (PDF, DOCX, PPTX, images, HTML, Markdown, etc.)
and provides both single-document and batch conversion capabilities.

The conversion methods return a `ConversionResult` instance for each document,
which wraps a `DoclingDocument` object if the conversion was successful, along
with metadata about the conversion process.

Attributes:
    allowed_formats: Allowed input formats.
    format_to_options: Mapping of formats to their options.
    initialized_pipelines: Cache of initialized pipelines keyed by
        (pipeline class, options hash).
ÚfileNÚallowed_formatsÚformat_optionsra   c                 ó&  • Ub  UO[        [        5      U l        0 nU(       a£  UR                  5        H�  u  pEU[        R                  :X  ar  UR
                  [        La_  [        R                  " SUR
                  R                   S3[        SS9  [        UR                  UR                  UR                  S9X4'   M‹  XSU'   M‘     U R                   Vs0 s H#  nUUR                  U5      =nc	  [!        US9OU_M%     snU l        0 U l        gs  snf )a‰  Initialize the converter based on format preferences.

Args:
    allowed_formats: List of allowed input formats. By default, any
        format supported by Docling is allowed.
    format_options: Dictionary of format-specific options.

Examples:
    Create a converter with default settings (all formats allowed):

    >>> converter = DocumentConverter()

    Allow only PDF and DOCX formats:

    >>> from docling.datamodel.base_models import InputFormat
    >>> converter = DocumentConverter(
    ...     allowed_formats=[InputFormat.PDF, InputFormat.DOCX]
    ... )

    Customize pipeline options for PDF:

    >>> from docling.datamodel.pipeline_options import PdfPipelineOptions
    >>> converter = DocumentConverter(
    ...     format_options={
    ...         InputFormat.PDF: PdfFormatOption(
    ...             pipeline_options=PdfPipelineOptions()
    ...         ),
    ...     }
    ... )
NzUsing z¸ for InputFormat.IMAGE is deprecated. Images should use ImageDocumentBackend via ImageFormatOption. Automatically correcting the backend, please update your code to avoid this warning.é   )Ú
stacklevel)r^   rn   r_   )rã   )ÚlistrE   r  Úitemsrù   r   r   ÚwarningsÚwarnrt   ÚDeprecationWarningr¼   r^   rn   r_   r  r  Úformat_to_optionsÚinitialized_pipelines)re   r  r  Únormalized_format_optionsrã   ÚoptionÚcustom_options          rf   Ú__init__ÚDocumentConverter.__init__™  s*  € ðH  /Ñ:‰OÄÄ[Ó@Qð 	Ôð FHÐ!ÞØ"0×"6Ñ"6Ö"8‘�àœk×/Ñ/Ó/ØŸ™Ô.BÒBä—M’MØ  §¡×!8Ñ!8Ð 9ð :oð oô +Ø#$òô 9JØ%+×%8Ñ%8Ø)/×)@Ñ)@Ø(.×(>Ñ(>ñ9Ð-Ó5ð 9?¨fÓ5ñ' #9ð6 ×.Ò.óC
ò /�ð à%>×%BÑ%BÀ6Ó%JÐJ�MÑSô $¨6Ò2à"ò#ñ
 /ñC
ˆÔð ð 	Õ"ùòC
s   Ã*Dc                 ó   • U R                   $ rc   )r  rp   s    rf   Ú_get_initialized_pipelinesÚ,DocumentConverter._get_initialized_pipelineså  s   € ð ×)Ñ)Ð)ri   rã   c                 óD   • U R                  US9nUc  [        SU 35      eg)aÊ  Initialize the conversion pipeline for the selected format.

Args:
    format: The input format for which to initialize the pipeline.

Raises:
    ConversionError: If no pipeline could be initialized for the
        given format.
    RuntimeError: If `artifacts_path` is set in
        `docling.datamodel.settings.settings` when required by
        the pipeline, but points to a non-directory file.
    FileNotFoundError: If local model files are not found.
)Ú
doc_formatNz,No pipeline could be initialized for format )Ú_get_pipelinerR   )re   rã   Úpipelines      rf   Úinitialize_pipelineÚ%DocumentConverter.initialize_pipelineê  s9   € ð ×%Ñ%°Ð%Ð8ˆØÑÜ!Ø>¸v¸hÐGóð ð ri   T)Ústrict)Úconfigr`   ÚheadersÚraises_on_errorÚmax_num_pagesÚmax_file_sizeÚ
page_rangec           	      óB   • U R                  U/UUUUUS9n[        U5      $ )aó  Convert one document fetched from a file path, URL, or DocumentStream.

Note: If the document content is given as a string (Markdown or HTML
content), use the `convert_string` method.

Args:
    source: Source of input document given as file path, URL,
        DocumentStream, or HttpSource (a URL bundled with its own headers).
    headers: Optional headers given as a dictionary of string key-value pairs,
        in case of URL input source. Ignored for HttpSource inputs, which
        carry their own headers (these override the batch headers per key).
    raises_on_error: Whether to raise an error on the first conversion failure.
        If False, errors are captured in the ConversionResult objects.
    max_num_pages: Maximum number of pages accepted per document.
        Documents exceeding this number will not be converted.
    max_file_size: Maximum file size to convert.
    page_range: Range of pages to convert.

Returns:
    The conversion result, which contains a `DoclingDocument` in the `document`
        attribute, and metadata about the conversion process.

Raises:
    ConversionError: An error occurred during conversion.

Examples:
    Convert a local PDF file:

    >>> from pathlib import Path
    >>> converter = DocumentConverter()
    >>> result = converter.convert("path/to/document.pdf")
    >>> print(result.document.export_to_markdown())

    Convert a document from a URL:

    >>> result = converter.convert("https://example.com/paper.pdf")

    Convert from an in-memory stream:

    >>> from io import BytesIO
    >>> from docling.datamodel.base_models import DocumentStream
    >>> buf = BytesIO(b"<html><body>Hello</body></html>")
    >>> stream = DocumentStream(name="page.html", stream=buf)
    >>> result = converter.convert(stream)
)r`   r(  r)  r*  r'  r+  )Úconvert_allÚnext)re   r`   r'  r(  r)  r*  r+  Úall_ress           rf   ÚconvertÚDocumentConverter.convertþ  s:   € ðn ×"Ñ"Ø�8Ø+Ø'Ø'ØØ!ð #ð 
ˆô �G‹}Ðri   c           	   #   óV  #   • [        UUUS9n[        XUS9nU R                  XƒS9n	Sn
U	 HÚ  nSn
U(       aÊ  UR                  [        R
                  [        R                  1;  aœ  SnUR                  (       a9  UR                   Vs/ s H  oÝR                  PM     nnSSR                  U5       3n[        S	UR                  R                   S
UR                  R                   SU 35      [        UR                  5      eUv •  MÜ     U
(       d  U(       a  [        S5      eggs  snf 7f)aÄ  Convert multiple documents from file paths, URLs, or DocumentStreams.

Args:
    source: Source of input documents given as an iterable of file paths, URLs,
        DocumentStreams, or HttpSources (a URL bundled with its own headers).
    headers: Optional headers given as a (single) dictionary of string
        key-value pairs, in case of URL input source. Per-source HttpSource
        headers override these (merged per key) for that source only.
    raises_on_error: Whether to raise an error on the first conversion failure.
    max_num_pages: Maximum number of pages accepted per document.
        Documents exceeding this number will not be converted.
    max_file_size: Maximum file size in bytes. Documents exceeding this
        limit will be skipped.
    page_range: Range of pages to convert in each document.

Yields:
    The conversion results, each containing a `DoclingDocument` in the
        `document` attribute and metadata about the conversion process.

Raises:
    ConversionError: An error occurred during conversion.

Examples:
    Convert a batch of local files:

    >>> from pathlib import Path
    >>> converter = DocumentConverter()
    >>> paths = list(Path("docs/").glob("*.pdf"))
    >>> for result in converter.convert_all(paths):
    ...     print(result.document.export_to_markdown()[:100])

    Convert with a file size limit of 20 MB:

    >>> results = converter.convert_all(
    ...     paths, max_file_size=20 * 1024 * 1024
    ... )
)r)  r*  r+  )Úpath_or_stream_iteratorÚlimitsr'  ©r(  FTÚ z	 Errors: z; zConversion failed for: z with status: Ú.zsConversion failed because the provided file has no recognizable format or it wasn't in the list of allowed formats.N)rO   rH   Ú_convertÚstatusr?   ÚSUCCESSÚPARTIAL_SUCCESSÚerrorsÚerror_messageÚjoinrR   Úinputr
  ÚvaluerJ   )re   r`   r'  r(  r)  r*  r+  r4  Ú
conv_inputÚconv_res_iterÚ
had_resultÚconv_resÚerror_detailsÚerrÚerror_messagess                  rf   r-  ÚDocumentConverter.convert_all?  s2  é € ôb  Ø'Ø'Ø!ñ
ˆô
 .Ø$*À7ñ
ˆ
ð Ÿ™ j˜ÐRˆàˆ
Û%ˆHØˆJÞ 8§?¡?Ü ×(Ñ(Ü ×0Ñ0ð;ó $ð !#�Ø—?—?ØCKÇ?Â?Ó%SÂ?¸C×&7Ô&7Á?�NÐ%SØ&/°·	±	¸.Ó0IÐ/JÐ$K�Mô
 &Ø-¨h¯n©n×.AÑ.AÐ-BÀ.Ø—‘×,Ñ,Ð-¨Q¨}¨oð?óô 1°·±Ó@ðAð
 ”ñ' &ö* žoÜ!ðFóð ð .ˆzùò &Tùs   ‚BD)ÂD$ÂBD)ÚcontentÚnamec                 óÌ  • U=(       d$    [         R                  " 5       R                  S5      nU[        R                  :X  aO  UR                  S5      (       d  US-  n[        UR                  S5      5      n[        X4S9nU R                  U5      $ U[        R                  :X  aO  UR                  S5      (       d  US-  n[        UR                  S5      5      n[        X4S9nU R                  U5      $ U[        R                  :X  aO  UR                  S5      (       d  US-  n[        UR                  S5      5      n[        X4S9nU R                  U5      $ [        SU S	35      e)
a.  Convert a document given as a string using the specified format.

        Only Markdown (`InputFormat.MD`), HTML (`InputFormat.HTML`), and DocLang
        (`InputFormat.XML_DOCLANG`) formats are supported. The content is wrapped
        in a `DocumentStream` and passed to the main conversion pipeline.

        Args:
            content: The document content as a string.
            format: The format of the input content.
            name: The filename to associate with the document. If not provided, a
                timestamp-based name is generated. The appropriate file extension is
                appended if missing.

        Returns:
            The conversion result, which contains a `DoclingDocument` in the `document`
                attribute, and metadata about the conversion process.

        Raises:
            ValueError: If format is not supported by `convert_string`.
            ConversionError: An error occurred during conversion.

        Examples:
            Convert a Markdown string:

            >>> from docling.datamodel.base_models import InputFormat
            >>> converter = DocumentConverter()
            >>> result = converter.convert_string(
            ...     "# Title
Some text.", format=InputFormat.MD
            ... )
            >>> print(result.document.export_to_markdown())

            Convert an HTML string:

            >>> result = converter.convert_string(
            ...     "<h1>Title</h1><p>Some text.</p>",
            ...     format=InputFormat.HTML,
            ...     name="my_page",
            ... )
        z%Y-%m-%d_%H-%M-%Sz.mdzutf-8)rJ  Ústreamz.html)z.dclgú	.dclg.xmlrM  zformat z% is not supported in `convert_string`)r   ÚnowÚstrftimerE   rð   Úendswithr   ÚencoderA   r0  rò   rõ   Ú
ValueError)re   rI  rã   rJ  ÚbuffÚ
doc_streams         rf   Úconvert_stringÚ DocumentConverter.convert_string–  s,  € ð\ ×C”x—|’|“~×.Ñ.Ð/BÓCˆà”[—^‘^Ó#Ø—=‘= ×'Ñ'Ø˜‘�ä˜7Ÿ>™>¨'Ó2Ó3ˆDÜ'¨TÑ?ˆJà—<‘< 
Ó+Ð+Ø”{×'Ñ'Ó'Ø—=‘= ×)Ñ)Ø˜‘�ä˜7Ÿ>™>¨'Ó2Ó3ˆDÜ'¨TÑ?ˆJà—<‘< 
Ó+Ð+Ø”{×.Ñ.Ó.Ø—=‘=Ð!7×8Ñ8Ø˜Ñ#�ä˜7Ÿ>™>¨'Ó2Ó3ˆDÜ'¨TÑ?ˆJà—<‘< 
Ó+Ð+ä˜w v hÐ.SÐTÓUÐUri   rA  c           	   #   óB  #   • [         R                  " 5       n[        UR                  U R                  5      [
        R                  R                  5       GH1  n[        R                  S5        [        U R                  US9n[
        R                  R                  S:”  ag  [
        R                  R                  S:”  aI  [        [
        R                  R                  S9 nUR                  UU5       H  nUv •  M	     S S S 5        M²  [        UU5       Ho  n[         R                  " 5       U-
  n[         R                  " 5       n[        R                  SUR                  R                   R"                   SUS S35        Uv •  Mq     GM4     g ! , (       d  f       GMG  = f7f)	Nz"Going to convert document batch...r5  é   )Úmax_workerszFinished converting document z in z.2fz sec.)ÚtimeÚ	monotonicrZ   Údocsr  rQ   ÚperfÚdoc_batch_sizeÚ_logÚinfor   Ú_process_documentÚdoc_batch_concurrencyr   Úmapr?  r
  rJ  )	re   rA  r(  Ú
start_timeÚinput_batchÚprocess_funcÚpoolÚitemÚelapseds	            rf   r8  ÚDocumentConverter._convertá  sG  é € ô —^’^Ó%ˆ
ä#Ø�O‰O˜D×2Ñ2Ó3Ü�M‰M×(Ñ(÷
ˆKô �I‰IÐ:Ô;Ü"Ø×&Ñ&¸ñˆLô
 —‘×3Ñ3°aÓ7Ü—M‘M×0Ñ0°1Ó4ä'Ü (§¡× CÑ CòàØ $§¡Ø$Ø#ö!˜ð #œ
ñ	!÷ñ ô  Ø Øö�Dô #ŸnšnÓ.°Ñ;�GÜ!%§¢Ó!1�JÜ—I‘IØ7¸¿
¹
¿¹×8LÑ8LÐ7MÈTÐRYÐZ]ÐQ^Ð^cÐdôð ”Jôò-
÷÷ üs   ‚CFÃFÃ=BFÆ
F	Æ	Fr   c                 óà  • U R                   R                  U5      nUb  UR                  c  gUR                  nUR                  n[	        U5      nX54n[
           X`R                  ;  a9  [        R                  SUR                   SU 35        U" US9U R                  U'   O%[        R                  SUR                   SU 35        U R                  U   sSSS5        $ ! , (       d  f       g= f)zPRetrieve or initialize a pipeline, reusing instances based on class and options.NzInitializing pipeline for z with options hash rs   zReusing cached pipeline for )r  r  rn   r^   rY   Ú_PIPELINE_CACHE_LOCKr  r_  r`  rt   Údebug)re   r   ÚfoptÚpipeline_classrn   Úoptions_hashÚ	cache_keys          rf   r!  ÚDocumentConverter._get_pipeline  së   € à×%Ñ%×)Ñ)¨*Ó5ˆà‰<˜4×0Ñ0Ñ8Øà×*Ñ*ˆØ×0Ñ0ÐÜ3Ð4DÓEˆð $Ð2ˆ	æ!Ø× :Ñ :Ó:Ü—	‘	Ø0°×1HÑ1HÐ0IÐI\Ð]iÐ\jÐkôñ 9GØ%5ñ9�×*Ñ*¨9Ò5ô —
‘
Ø2°>×3JÑ3JÐ2KÐK^Ð_kÐ^lÐmôð ×-Ñ-¨iÑ8÷ "×!×!ús   ÁA<CÃ
C-Úin_docc                 ó4  • U R                   S L=(       a    UR                  U R                   ;   nU(       a  U R                  XS9nU$ SUR                   3n[	        [
        R                  SU[        R                  S9n[        U[        R                  U/S9nU$ )Nr5  zFile format not allowed: r6  )Úcomponent_typeÚmodule_namer=  Úcategory©r?  r9  r<  )r  rã   Ú_execute_pipeliner
  rB   r@   Ú
USER_INPUTrC   ÚPOLICYrF   r?   ÚSKIPPED)re   rs  r(  ÚvalidrD  r=  Ú
error_items          rf   ra  Ú#DocumentConverter._process_document$  s¡   € ð × Ñ ¨Ð,×V°·±À$×BVÑBVÑ1Vð 	ö Ø×-Ñ-¨fÐ-ÐVˆHð ˆð 8¸¿¹°}ÐEˆMÜ"Ü3×>Ñ>ØØ+Ü(×/Ñ/ñ	ˆJô (ØÔ%5×%=Ñ%=ÀzÀlñˆHð ˆri   c                 óF   • [        USS 5      nUb  UR                  5         g g )NÚ_backend)ÚgetattrÚunload)re   rs  r   s      rf   Ú_unload_input_documentÚ(DocumentConverter._unload_input_document:  s%   € Ü˜& *¨dÓ3ˆØÑØ�N‰NÕð ri   c                 ó‚  • UR                   (       a¥  Sn U R                  UR                  5      nUb  SnUR                  XS9nOXU(       a  [	        SUR
                   S35      e[        R                  SUR
                  5        [        U[        R                  S9nU(       d  U R                  U5        U$  [        R                  SUR
                  5        [        U[        R                  [        U5      S	9nU R                  U5        U$ ! U(       d  U R                  U5        f f = f! U R                  U5        f = f)
NFTr5  z%No pipeline could be initialized for r7  z(No pipeline could be initialized for %s.)r?  r9  zInput document %s is not valid.rx  )r}  r!  rã   ÚexecuterR   r
  r_  ÚwarningrF   r?   ÚFAILUREr„  rI   )re   rs  r(  Úpipeline_startedr"  rD  s         rf   ry  Ú#DocumentConverter._execute_pipeline?  s)  € ð �<�<Ø$Ðð8Ø×-Ñ-¨f¯m©mÓ<�ØÑ'Ø'+Ð$Ø'×/Ñ/°Ð/ÐX‘Hæ&Ü-ØCÀFÇKÁKÀ=ÐPQÐRóð ô Ÿ™ØFÈÏÉôô $4Ø"(Ü#3×#;Ñ#;ñ$˜ö
 (Ø×/Ñ/°Ô7ð ˆð4Ü—‘Ð>ÀÇÁÔLÜ+Ø Ü+×3Ñ3Ü5°fÓ=ñ�ð ×+Ñ+¨FÔ3àˆøö (Ø×/Ñ/°Õ7ð (ûð ×+Ñ+¨FÕ3ús   •BD Â8AD+ ÄD(Ä+D>)r  r  r  )NNrc   ),rt   ru   rv   rw   rÃ   Ú_default_download_filenamer
   r  rE   Údictr\   r  Útupler   rT   ry   r  r#  r   r   ÚsysÚmaxsizerN   r   r	   rA   rD   ÚboolÚintrP   rF   r0  r   r   r-  rU  rH   r8  r!  rG   ra  r„  ry  rz   r{   ri   rf   r	  r	  …  s°  † ñð" "(Ðð 8<ØDHñJà! $ {Ñ"3Ñ4ðJð !  k°<Ð&?Ñ!@ÑAðJð 
õ	JðX*à	ˆe�D˜Ñ&¨Ð+Ñ,¨lÐ:Ñ	;ô*ð
¨+ô ñ( ™*¨DÑ1Ñ2ð -1Ø $Ø Ÿ[™[Ø Ÿ[™[Ø 2ñ>à�d˜C °Ð;Ñ<ð>ð ˜$˜s C˜x™.Ñ)ð>ð ð	>ð
 ð>ð ð>ð ð>ð 
ô>ó 3ð>ñ@ ™*¨DÑ1Ñ2ð -1Ø $Ø Ÿ[™[Ø Ÿ[™[Ø 2ñTàØ�$˜˜^¨ZÐ7Ñ8ñ
ðTð
 ˜$˜s C˜x™.Ñ)ðTð ðTð ðTð ðTð ðTð 
Ð"Ñ	#ôTó 3ðTñl ™*¨DÑ1Ñ2ð
 #ñ	HVàðHVð ðHVð �s‰mð	HVð
 
ôHVó 3ðHVðT$Ø2ð$ØEIð$à	Ð"Ñ	#ô$ðL9¨ð 9¸ÀÑ8Nô 9ð:Ø#ðØ6:ðà	ôð,¨]ð ¸tô ð
%Ø#ð%Ø6:ð%à	÷%ri   r	  )±Úloggingr�  Ú	threadingrZ  r  Úcollections.abcr   r   Úconcurrent.futuresr   r   Ú	functoolsr   Úior   Úpathlibr	   Útypingr
   r   r   Údocling_core.types.doc.pager   Úpydanticr   r   r   r   Útyping_extensionsr   Ú docling.backend.abstract_backendr   Ú docling.backend.asciidoc_backendr   Údocling.backend.boxnote_backendr   Údocling.backend.csv_backendr   Ú%docling.backend.docling_parse_backendr   r   Údocling.backend.ebcdic_backendr   Údocling.backend.email_backendr   Údocling.backend.epub_backendr   Údocling.backend.html_backendr   Údocling.backend.image_backendr   Údocling.backend.iwork_backendr   Ú)docling.backend.json.docling_json_backendr   Údocling.backend.latex_backendr    Údocling.backend.md_backendr!   Ú docling.backend.mets_gbs_backendr"   Údocling.backend.msexcel_backendr#   Ú$docling.backend.mspowerpoint_backendr$   Údocling.backend.msword_backendr%   Údocling.backend.noop_backendr&   Ú$docling.backend.opendocument_backendr'   r(   r)   Údocling.backend.webvtt_backendr*   Ú+docling.backend.xml.doclang_archive_backendr+   Ú#docling.backend.xml.doclang_backendr,   Ú docling.backend.xml.jats_backendr-   Ú!docling.backend.xml.uspto_backendr.   Ú docling.backend.xml.xbrl_backendr/   Ú!docling.datamodel.backend_optionsr0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   Údocling.datamodel.base_modelsr>   r?   r@   rA   rB   rC   rD   rE   Údocling.datamodel.documentrF   rG   rH   rI   rJ   Ú"docling.datamodel.pipeline_optionsrK   rL   rM   Údocling.datamodel.settingsrN   rO   rP   rQ   Údocling.exceptionsrR   Údocling.pipeline.asr_pipelinerS   Údocling.pipeline.base_pipelinerT   Ú$docling.pipeline.native_pdf_pipelinerU   Ú docling.pipeline.simple_pipelinerV   Ú&docling.pipeline.standard_pdf_pipelinerW   Údocling.pipeline.video_pipelinerX   Údocling.utils.pipeline_cacherY   Údocling.utils.utilsrZ   Ú	getLoggerrt   r_  ÚLockrl  r\   r}   r‚   r†   r‰   rŒ   r�   r’   r•   r˜   r›   r§   r¬   r¯   r²   rµ   r¸   r¼   r¿   rÂ   rÅ   rÖ   rØ   rÚ   rÜ   rÞ   rà   râ   r  r	  r{   ri   rf   Ú<module>rÈ     s£  ðó Û 
Û Û Û ß .Ý 1Ý Ý Ý Ý ß (Ñ (å 4ß FÓ FÝ "õõ =Ý BÝ :÷õ AÝ >Ý <Ý <Ý >Ý CÝ HÝ >Ý >Ý CÝ BÝ LÝ @Ý 4÷ñ õ
 AÝ MÝ FÝ @Ý HÝ @÷÷ ÷ ÷ ÷ 	÷ 	ó 	÷õ ÷ñ ÷
ó õ /Ý 5Ý 7Ý BÝ ;Ý FÝ 9Ý EÝ (à×Ó˜Ó"€Ø —~“~Ó'Ð ôÐ#ô ô"D˜,ô Dô
@�lô @ô
D˜ô Dô
;�|ô ;ôI˜\ô Iô
@�lô @ô
@�lô @ô
@�lô @ô
=˜<ô =ô
˜<ô 
ô*
�|ô 
ô*K˜lô Kô
A˜,ô Aô
D˜\ô Dô
C�|ô Cô
6�|ô 6ôB˜ô Bô
8�lô 8ô7˜\ô 7ô˜Oô ôD9˜,ô 9ô9˜ô 9ô
9˜ô 9ô:˜ô :ô:˜ô :ô6�|ô 6ô8˜ô 8ð+J ð +J°ô +J÷\_ò _ri   