ó
    uÕgjLÐ  ã                  ó  • S r SSKJr  SSKrSSKJs  Jr  SSK	r	SSK
r
SSKJr  SSKJrJrJrJrJrJr  SSKrSSKJrJrJr  SSKJr  SSKJr  SS	KJrJrJ r J!r!J"r"J#r#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/J0r0J1r1J2r2J3r3J4r4  SSK5J6r6  SSK7J8r8  SSK9J:r:  SSK;J<r<J=r=  SSK>J?r?  SSK@JArA  SSKBJCrCJDrDJErEJFrFJGrG  SSKHJIrI  SSKJJKrKJLrLJMrMJNrN  SSKOJPrP  SSKQJRrR  SSKSJTrT  Su  rUrV\\W\W\W\W4   rXSlS jrY  Sm       SnS jjrZSoS jr[SpS jr\SqSrS jjr]S r^S! r_S" r`S# raS$ rbS% rcS& rdS' reS( rfS) rgS* rhS+ riS, rjS- rkS. rlS/ rmS0 rnS1 roS2 rpSsS3 jrq\^S44StS5 jjrrS6 rsS7 rtS8 ruS9 rvS: rwS; rxSuS< jrySvS= jrzSwS> jr{S? r|S@ r}SA r~SB rSC r€SD r�SE r‚SF rƒSG r„SH r…SxSySI jjr†SJ r‡SK rˆSL r‰SM rŠSN r‹SO rŒSzSP jr�SQ rŽS{SR jr�SS r�ST r‘SU r’SV r“SW r”SX r•SY r–S|SZ jr—S}S[ jr˜S\ r™S] ršS^ r›S_ rœS` r�Sa ržSb rŸSc r Sd r¡Se r¢Sf r£Sg r¤Sh r¥Sir¦Sj r§Sk r¨g)~u¼  Tests for the figure workflow: nomination, reading a scan, and grafting.

The documents are synthetic but built with docling-core's own API, so the box
frame conversions and the mutation calls run for real. The scan responses carry
the shape a live dpt-2 scan returns â€” chunks of `figure`, `text` and
`marginalia`, each with a 0-based page and a left/top/right/bottom box, and a
metadata block reporting the job, the version and the credits.
é    )ÚannotationsN)ÚPath)ÚAnyÚDictÚListÚSequenceÚTupleÚcast)ÚBoundingBoxÚCoordOriginÚSize)ÚDescriptionMetaField)ÚImageRef)
ÚDoclingDocumentÚPictureClassificationClassÚPictureClassificationDataÚPictureClassificationMetaFieldÚPictureClassificationPredictionÚPictureMetaÚProvenanceItemÚ	TableCellÚ	TableDataÚ	TableItem)ÚDocItemLabel)ÚImage)ÚMockCellReader)ÚFigureCorrectionÚ	FurnitureÚMarkerÚMockFigureCorrectorÚNote)ÚExtractedTable)ÚTableAssembly)Úcapture_tables)Ú
candidatesÚcorrect_figures)Úcrosscheck_cells)Úprov_box)ÚFOOTNOTE_MARKS_FIELDÚFOOTNOTES_FIELDÚgraft_figuresÚgraft_tablesÚunread_pictures)Úscanned_tables)ÚFigureRecordÚ	FigureRunÚPageScanÚScannedTable)Únominate_pages)Úresolve_parse)Ú	page_scan)g     €†@g     à€@c                ó†   • U u  pp4[        U[        -  U[        -  SU-
  [        -  SU-
  [        -  [        R                  S9$ )Nç      ð?)ÚlÚrÚtÚbÚcoord_origin)r   ÚPAGE_WÚPAGE_Hr   Ú
BOTTOMLEFT)ÚboxÚx1Úy1Úx2Úy2s        Ú1/home/mande/repo/quber/tests/core/test_figures.pyÚ_bottomleftrF   =   sG   € Ø�N€BˆBÜØ
Œv‰+Ø
Œv‰+Ø�‰8”vÑ
Ø�‰8”vÑ
Ü ×+Ñ+ñð ó    c                óz  • [        SS9nU  VVVs1 s H  u  pEodiM	     snnnU VVs1 s H  u  pEUiM	     snn-  n[        U5       H#  nUR                  U[        [        [
        S9S9  M%     U H0  u  p‰UR                  [        / SSS9[        U[        U	5      SS9S	9  M2     U  H…  u  p‰n
[        U[        U	5      SS9nUR                  US
9nU
(       d  M2  U(       a.  UR                  R                  [        S[        U
SS9/S95        Mg  [        [!        [#        U
SS9/S9S9Ul        M‡     U$ s  snnnf s  snnf )an  A document with pictures given as (page, normalized box, class name).

An empty class name leaves the picture unclassified. `legacy_classes` writes
the class into the deprecated annotations list instead of the meta field, the
shape older parse output carries. `tables` adds empty tables at (page,
normalized box), which is all nomination and matching read off them.
Ú	synthetic©Úname©ÚwidthÚheight©Úpage_noÚsizer   ©Útable_cellsÚnum_rowsÚnum_cols©r   r   ©rP   ÚbboxÚcharspan©ÚdataÚprov)r\   ÚtestçÍÌÌÌÌÌì?)Ú
class_nameÚ
confidence)Ú
provenanceÚpredicted_classesçö(\�Âõà?)Úpredictions)Úclassification)r   ÚsortedÚadd_pager   r=   r>   Ú	add_tabler   r   rF   Úadd_picturer   Úappendr   r   r   r   r   Úmeta)ÚpicturesÚlegacy_classesÚtablesÚdocÚpÚ_boxÚ_clsÚpagesÚpager@   Úclsr\   Úpictures                rE   Ú	_documentrw   H   s7  € ô ˜{Ñ
+€CÙ$,Õ-¢H‘=�1˜DŠQ¡HÓ-Á&Ô0IÂ&±w°q³Á&Ò0IÑI€EÜ�u–ˆØ�‰˜T¬´6Ä&Ñ(IˆÓJñ ã‰	ˆØ�‰Ü r°AÀÑBÜ¨´;¸sÓ3CÈfÑUð 	ó 	
ñ ó
 #‰ˆ�3Ü d´¸SÓ1AÈFÑSˆØ—/‘/ t�/Ð,ˆÞÙÞØ×Ñ×&Ñ&Ü)Ø%Ü'AÈSÐ]`Ñ'aÐ&bñöô 'Ü=Ü!@ÈCÐ\`Ñ!aÐ bñ ñˆGŽLñ #ð$ €Jùô5 .ùÓ0Is
   �D0§D7c                óB   • [         R                  U [        [        45      $ ©N)ÚdictÚfromkeysr=   r>   ©rs   s    rE   Ú
_page_dimsr}   r   s   € Ü�=‰=˜¤¬Ð 0Ó1Ð1rG   c                ó&   • Uu  pEpgUU UXEXgS.SS.S.$ )N©ÚleftÚtopÚrightÚbottomr   )r@   rt   )ÚidÚtypeÚmarkdownÚ	grounding© )Úkindr@   r†   Úchunk_idrA   rB   rC   rD   s           rE   Ú_chunkr‹   v   s,   € Ø�N€BˆBàØØØ&(¸bÑOÐYZÑ[ñ	ð rG   c                óF   • SR                  S U  5       5      U USSS/ S.S.$ )Nz

c              3  ó*   #   • U  H	  oS    v •  M     g7f)r†   Nrˆ   ©Ú.0Úcs     rE   Ú	<genexpr>Ú_response.<locals>.<genexpr>‚   s   é € Ð>²v°! *¦²vùs   ‚Úcmrm81gqe0566ej01mtn47e4né   údpt-2-20260410)Úcredit_usageÚjob_idÚ
page_countÚversionÚfailed_pages)r†   ÚchunksÚmetadata©Újoin)r›   Úcreditss     rE   Ú	_responser    €   s5   € à—K‘KÑ>±vÓ>Ó>Øà#Ø1ØØ'Øñ
ñ
ð 
rG   zz<::bar chart
Y-axis: $ in millions, scaled from 0 to 600.
X-axis: Years
Bars:
2023: 310
2024: 425
2025: 560
: bar chart::>c                 óÆ  • [        / SQ5      n [        U 5      nU Vs/ s H  o"R                  PM     nnS/oCU:H  oU(       do  [        R                  " SU4SX445      [        R
                  " U5      [        R
                  " U5      S.-  nSSU0-  n[        [        R                  " U5      5      eS =n=pTUS   o3R                  nS	/o…U:H  o™(       d„  [        R                  " SU	4S
XX45      [        R
                  " U5      [        R
                  " U5      [        R
                  " U5      S.-  nSSU0-  n
[        [        R                  " U
5      5      eS =n=n=p˜g s  snf )N))r”   ©çš™™™™™¹?r£   r^   çš™™™™™Ù?Úlogo)é   )r£   r£   r¤   ç      à?Ú	bar_chart)é   r¢   Úiconr¦   ©ú==©z%(py1)s == %(py4)s©Úpy1Úpy4úassert %(py6)sÚpy6r   r¨   ©z7%(py3)s
{%(py3)s = %(py1)s.picture_classes
} == %(py6)s©r¯   Úpy3r²   úassert %(py8)sÚpy8)	rw   r3   rt   Ú
@pytest_arÚ_call_reprcompareÚ	_safereprÚAssertionErrorÚ_format_explanationÚpicture_classes)ro   Ú	nominatedÚnÚ@py_assert0Ú@py_assert3Ú@py_assert2Ú@py_format5Ú@py_format7Ú@py_assert5Ú@py_assert4Ú@py_format9s              rE   Ú/test_nominates_only_pages_holding_a_chart_classrÈ   —   så   € Ü
ò	
ó€Cô ˜sÓ#€IÙ%Ó&šI�q�FŒF™IÐ-Ð&¨1¨#Ð-¨#Ñ-×-×-×-Ò-Ð&×-×-Ô-Ð&×-×-Ó-¨#×-×-×-×-×-×-Ó-Ø�Q‰<Ð8×'Ñ'Ð8¨K¨=Ð8¨=Ñ8×8×8×8Ò8Ð'×8×8Ô8ˆ<×8×8Ó8Ð'×8×8Ó8¨=×8×8×8×8×8×8Ö8ùò 's   �Ec                 ó`  • [        / SQ5      n [        U 5      n[        U5      nSo2U:H  oD(       Gd  [        R                  " SU4SX#45      S[
        R                  " 5       ;   d  [        R                  " [        5      (       a  [        R                  " [        5      OSS[
        R                  " 5       ;   d  [        R                  " U5      (       a  [        R                  " U5      OS[        R                  " U5      [        R                  " U5      S.-  nSS	U0-  n[        [        R                  " U5      5      eS =n=pCUS
   owR                  nSo2U:H  oD(       d„  [        R                  " SU4SX#45      [        R                  " U5      [        R                  " U5      [        R                  " U5      S.-  nSS	U0-  n[        [        R                  " U5      5      eS =n=n=pCUS
   owR                  nSS/o2U:H  oD(       d„  [        R                  " SU4SX#45      [        R                  " U5      [        R                  " U5      [        R                  " U5      S.-  nSS	U0-  n[        [        R                  " U5      5      eS =n=n=pCUS
   oˆR                  n	[        U	5      nSo£U
:H  o»(       dì  [        R                  " SU4SX:45      S[
        R                  " 5       ;   d  [        R                  " [        5      (       a  [        R                  " [        5      OS[        R                  " U5      [        R                  " U	5      [        R                  " U5      [        R                  " U
5      S.-  nSSU0-  n[        [        R                  " U5      5      eS =n=n	=n=pºg )N))é   )çš™™™™™©?ç333333Ã?çÍÌÌÌÌÌÜ?çÍÌÌÌÌÌä?r¨   )rÊ   )çš™™™™™á?rÌ   çffffffî?rÎ   Ú	pie_chart)rÊ   )ç{®Gáz”?rÒ   ç¸…ëQ¸¾?ç¸…ëQ¸®?r¥   r”   r«   ©z0%(py3)s
{%(py3)s = %(py0)s(%(py1)s)
} == %(py6)sÚlenr¾   ©Úpy0r¯   rµ   r²   r¶   r·   r   rÊ   )z,%(py3)s
{%(py3)s = %(py1)s.page
} == %(py6)sr´   r¨   rÑ   r³   r¦   )zR%(py6)s
{%(py6)s = %(py0)s(%(py4)s
{%(py4)s = %(py2)s.picture_refs
})
} == %(py9)s©rØ   Úpy2r°   r²   Úpy9úassert %(py11)sÚpy11)rw   r3   rÖ   r¸   r¹   Ú@py_builtinsÚlocalsÚ_should_repr_global_namerº   r»   r¼   rt   r½   Úpicture_refs)ro   r¾   rÂ   rÅ   rÆ   rÄ   rÇ   rÀ   Ú@py_assert1rÁ   Ú@py_assert8Ú@py_assert7Ú@py_format10Ú@py_format12s                 rE   Ú5test_nominates_a_page_once_carrying_every_chart_on_itrç   ¤   s  € Ü
ò	
ó€Cô ˜sÓ#€IÜˆy‹>Ð˜QÐ˜QÑ×××Óˆ>×××××ÕŒ3×××ÑŒ3×××××Öˆy×××Ñˆy××Õˆ>××Ó˜Q××××××ÓØ�Q‰<Ð!×ÑÐ! Ð! Ñ!×!×!×!Ò!Ð×!×!Ô!ˆ<×!×!Ó!Ð×!×!Ó! ×!×!×!×!×!×!Õ!Ø�Q‰<ÐE×'Ñ'ÐE¨K¸Ð+EÐEÐ+EÑE×E×E×EÒEÐ'×E×EÔEˆ<×E×EÓEÐ'×E×EÓEÐ+E×E×E×E×E×E×EÕEØ˜‰|Ð.×(Ñ(Ð.Œ3Ð(Ó)Ð.¨QÐ.¨QÑ.×.×.×.Ò.Ð)×.×.×.×.×.Õ.Œ3×.×.×.Ñ.Œ3×.×.Õ.ˆ|×.×.Ó.Ð(×.×.Ó.Ð)×.×.Ó.¨Q×.×.×.×.×.×.×.Ð.rG   c                 ót  • [        / SQ5      n [        U 5       Vs/ s H  oR                  PM     nn/ SQo2U:H  oD(       do  [        R                  " SU4SX#45      [        R
                  " U5      [        R
                  " U5      S.-  nSSU0-  n[        [        R                  " U5      5      eS =n=pCg s  snf )N)©r”   ©r£   r£   r¤   r¤   Ú
line_chart)r¦   rê   Ú
flow_chart)r©   rê   Úmap©é   rê   Ú
screenshot)é   rê   r¥   ©r”   r¦   r©   rï   r«   r­   r®   r±   r²   ©rw   r3   rt   r¸   r¹   rº   r»   r¼   ©ro   r¿   rÀ   rÁ   rÂ   rÃ   rÄ   s          rE   Ú?test_nomination_covers_every_picture_that_is_not_page_furniturerõ   ³   sy   € Ü
ò	
ó€Cô +¨3Ô/Ó0Ò/�q�FŒFÑ/Ð@Ð0²LÐ@°LÑ@×@×@×@Ò@Ð0×@×@Ô@Ð0×@×@Ó@°L×@×@×@×@×@×@Ô@ùÒ0ó   ›B5c                 ót  • [        / SQ5      n [        U 5       Vs/ s H  oR                  PM     nn/ SQo2U:H  oD(       do  [        R                  " SU4SX#45      [        R
                  " U5      [        R
                  " U5      S.-  nSSU0-  n[        [        R                  " U5      5      eS=n=pCgs  snf )	z’A diagram is content. Nothing decides on a page's behalf that it holds
nothing worth reading, so no class name keeps a nominated page from a scan.)ré   )r¦   rê   rí   )r©   rê   rì   rî   rò   r«   r­   r®   r±   r²   Nró   rô   s          rE   ÚEtest_every_nominated_page_is_scanned_whatever_its_pictures_are_calledrø   À   s{   € ô ò	
ó€Cô +¨3Ô/Ó0Ò/�q�FŒFÑ/Ð@Ð0²LÐ@°LÑ@×@×@×@Ò@Ð0×@×@Ô@Ð0×@×@Ó@°L×@×@×@×@×@×@Ô@ùÒ0rö   c                 ón  • [        S/SS9n [        U 5       Vs/ s H  oR                  PM     nnS/o2U:H  oD(       do  [        R                  " SU4SX#45      [        R
                  " U5      [        R
                  " U5      S.-  nSS	U0-  n[        [        R                  " U5      5      eS =n=pCg s  snf )
N)rï   rê   rÑ   T)rm   rï   r«   r­   r®   r±   r²   ró   rô   s          rE   Ú6test_nomination_reads_the_deprecated_annotations_shaperú   Î   sz   € Ü
Ð;Ð<ÈTÑ
R€CÜ*¨3Ô/Ó0Ò/�q�FŒFÑ/Ð7Ð0°Q°CÐ7°CÑ7×7×7×7Ò7Ð0×7×7Ô7Ð0×7×7Ó7°C×7×7×7×7×7×7Ô7ùÒ0s   ™B2c                 ót  • [        S/5      n [        U 5      nU Vs/ s H  o"R                  PM     nnS/oCU:H  oU(       do  [        R                  " SU4SX445      [        R
                  " U5      [        R
                  " U5      S.-  nSSU0-  n[        [        R                  " U5      5      eS =n=pTg s  snf )N)r”   rê   Ú r”   r«   r­   r®   r±   r²   ró   )ro   r¾   r¿   rÀ   rÁ   rÂ   rÃ   rÄ   s           rE   Ú&test_unclassified_picture_is_nominatedrý   Ó   s{   € Ü
Ð2Ð3Ó
4€CÜ˜sÓ#€IÙ%Ó&šI�q�FŒF™IÐ-Ð&¨1¨#Ð-¨#Ñ-×-×-×-Ò-Ð&×-×-Ô-Ð&×-×-Ó-¨#×-×-×-×-×-×-Ô-ùÒ&s   œB5c                 óÎ  • [        / SS/S9n SSS.n[        X5      nU Vs/ s H  o3R                  PM     nnS/oTU:H  of(       do  [        R                  " SU4S	XE45      [        R
                  " U5      [        R
                  " U5      S
.-  nSSU0-  n[        [        R                  " U5      5      eS =n=peUS   oDR                  nS/o–U	:H  oª(       d„  [        R                  " SU
4SXi45      [        R
                  " U5      [        R
                  " U5      [        R
                  " U	5      S.-  nSSU0-  n[        [        R                  " U5      5      eS =n=n=p©g s  snf )N©é   ©rË   r£   rÐ   çš™™™™™é?)é   r  ©rn   ÚocrÚnative)ú
#/tables/0z
#/tables/1r   r«   r­   r®   r±   r²   r   r  )z2%(py3)s
{%(py3)s = %(py1)s.table_refs
} == %(py6)sr´   r¶   r·   )	rw   r3   rt   r¸   r¹   rº   r»   r¼   Ú
table_refs)ro   Úverdictsr¾   r¿   rÀ   rÁ   rÂ   rÃ   rÄ   rÅ   rÆ   rÇ   s               rE   Ú7test_a_table_read_off_the_page_image_nominates_its_pager
  Ù   sñ   € Ü
�BÐ <Ð>ZÐ[Ñ
\€CØ#°8Ñ<€HÜ˜sÓ-€IÙ%Ó&šI�q�FŒF™IÐ.Ð&¨2¨$Ð.¨$Ñ.×.×.×.Ò.Ð&×.×.Ô.Ð&×.×.Ó.¨$×.×.×.×.×.×.Ó.Ø�Q‰<Ð4×"Ñ"Ð4 | nÐ4 nÑ4×4×4×4Ò4Ð"×4×4Ô4ˆ<×4×4Ó4Ð"×4×4Ó4 n×4×4×4×4×4×4Ö4ùò 's   ¡E"c                 ón  • [        / S/S9n [        U 5      n/ o!U:H  o3(       Gd  [        R                  " SU4SX45      S[        R
                  " 5       ;   d  [        R                  " [        5      (       a  [        R                  " [        5      OSS[        R
                  " 5       ;   d  [        R                  " U 5      (       a  [        R                  " U 5      OS[        R                  " U5      [        R                  " U5      S.-  nSS	U0-  n[        [        R                  " U5      5      eS =n=p2g )
Nrÿ   r  r«   rÕ   r3   ro   r×   r¶   r·   )
rw   r3   r¸   r¹   rÞ   rß   rà   rº   r»   r¼   )ro   rÂ   rÅ   rÆ   rÄ   rÇ   s         rE   Ú@test_a_table_nominates_its_page_only_when_the_verdicts_are_givenr  á   s¦   € Ü
�BÐ <Ð=Ñ
>€CÜ˜#ÓÐ$ "Ð$ "Ñ$×$×$×$Ó$Ð×$×$×$×$×$Õ$Œ>×$×$×$Ñ$Œ>×$×$×$×$×$Ö$˜#×$×$×$Ñ$˜#×$×$Õ$Ð×$×$Ó$ "×$×$×$×$×$×$Ô$rG   c                 ó¼  • [        [        SS[        S5      /5      n [        U SSS/S9nUR                  nSo2U:H  oD(       dº  [
        R                  " S	U4S
X#45      S[        R                  " 5       ;   d  [
        R                  " U5      (       a  [
        R                  " U5      OS[
        R                  " U5      [
        R                  " U5      S.-  nSSU0-  n[        [
        R                  " U5      5      eS =n=pCUR                  nSo2U:H  oD(       dº  [
        R                  " S	U4SX#45      S[        R                  " 5       ;   d  [
        R                  " U5      (       a  [
        R                  " U5      OS[
        R                  " U5      [
        R                  " U5      S.-  nSSU0-  n[        [
        R                  " U5      5      eS =n=pCUR                  nSo2U:H  oD(       dº  [
        R                  " S	U4SX#45      S[        R                  " 5       ;   d  [
        R                  " U5      (       a  [
        R                  " U5      OS[
        R                  " U5      [
        R                  " U5      S.-  nSSU0-  n[        [
        R                  " U5      5      eS =n=pCUR                  nSo2U:H  oD(       dº  [
        R                  " S	U4SX#45      S[        R                  " 5       ;   d  [
        R                  " U5      (       a  [
        R                  " U5      OS[
        R                  " U5      [
        R                  " U5      S.-  nSSU0-  n[        [
        R                  " U5      5      eS =n=pCUR                   n[#        U5      nSoƒU:H  o™(       Gd"  [
        R                  " S	U	4SX845      S[        R                  " 5       ;   d  [
        R                  " ["        5      (       a  [
        R                  " ["        5      OSS[        R                  " 5       ;   d  [
        R                  " U5      (       a  [
        R                  " U5      OS[
        R                  " U5      [
        R                  " U5      [
        R                  " U5      S.-  n
SSU
0-  n[        [
        R                  " U5      5      eS =n=n=p˜UR                   S   nUR                  nSo2U:H  oD(       dº  [
        R                  " S	U4SX#45      S[        R                  " 5       ;   d  [
        R                  " U5      (       a  [
        R                  " U5      OS[
        R                  " U5      [
        R                  " U5      S.-  nSSU0-  n[        [
        R                  " U5      5      eS =n=pCUR$                  o"[        :H  oD(       dý  [
        R                  " S	U4SU[        45      S[        R                  " 5       ;   d  [
        R                  " U5      (       a  [
        R                  " U5      OS[
        R                  " U5      S[        R                  " 5       ;   d  [
        R                  " [        5      (       a  [
        R                  " [        5      OSS.-  nSS U0-  n[        [
        R                  " U5      5      eS =p$UR&                  nS!S"S#S$S%.o2U:H  oD(       dº  [
        R                  " S	U4S&X#45      S[        R                  " 5       ;   d  [
        R                  " U5      (       a  [
        R                  " U5      OS[
        R                  " U5      [
        R                  " U5      S.-  nSSU0-  n[        [
        R                  " U5      5      eS =n=pCUR(                  nSo2U:H  oD(       dº  [
        R                  " S	U4S'X#45      S[        R                  " 5       ;   d  [
        R                  " U5      (       a  [
        R                  " U5      OS[
        R                  " U5      [
        R                  " U5      S.-  nSSU0-  n[        [
        R                  " U5      5      eS =n=pCUR*                  nS(o2U:H  oD(       dº  [
        R                  " S	U4S)X#45      S[        R                  " 5       ;   d  [
        R                  " U5      (       a  [
        R                  " U5      OS[
        R                  " U5      [
        R                  " U5      S.-  nSSU0-  n[        [
        R                  " U5      5      eS =n=pCg )*NÚfigure©ç{®Gáz´?rÌ   ç¸…ëQ¸Þ?ç{®Gázä?úfig-1rÊ   údpt-2r¨   ©rt   Úmodelr½   Úfiguresr«   ©z.%(py2)s
{%(py2)s = %(py0)s.status
} == %(py5)sÚscan©rØ   rÚ   Úpy5úassert %(py7)sÚpy7)z,%(py2)s
{%(py2)s = %(py0)s.page
} == %(py5)sr•   )z/%(py2)s
{%(py2)s = %(py0)s.version
} == %(py5)sç      @©z/%(py2)s
{%(py2)s = %(py0)s.credits
} == %(py5)sr”   ©zM%(py5)s
{%(py5)s = %(py0)s(%(py3)s
{%(py3)s = %(py1)s.figures
})
} == %(py8)srÖ   ©rØ   r¯   rµ   r  r·   úassert %(py10)sÚpy10r   Úchart)z,%(py2)s
{%(py2)s = %(py0)s.text
} == %(py4)sÚBAR_CHART_TEXT©rØ   rÚ   r°   r±   r²   r  rÌ   r  r  r   ©z+%(py2)s
{%(py2)s = %(py0)s.box
} == %(py5)s)z0%(py2)s
{%(py2)s = %(py0)s.chunk_id
} == %(py5)sr“   )z.%(py2)s
{%(py2)s = %(py0)s.job_id
} == %(py5)s)r    r‹   r%  r5   Ústatusr¸   r¹   rÞ   rß   rà   rº   r»   r¼   rt   r™   rŸ   r  rÖ   Útextr@   rŠ   r—   )Úresponser  râ   rÆ   rÁ   Ú@py_format6Ú@py_format8rÂ   rä   Ú@py_assert6rÇ   Ú@py_format11r$  rÃ   rÄ   s                  rE   Ú5test_figure_becomes_a_chart_record_on_the_source_pager/  é   sí  € Üœ& Ð+CÄ^ÐU\Ó]Ð^Ó_€HÜ�X A¨WÀ{ÀmÑT€Dà�;‰;Ð#˜)Ð#˜)Ñ#×#×#×#Ò#ˆ;×#×#×#×#×#Õ#ˆ4×#×#×#Ñ#ˆ4×#×#Õ#ˆ;×#×#Ó#˜)×#×#×#×#×#×#Ó#Ø�9‰9Ð˜Ð˜‰>×××Òˆ9×××××Õˆ4×××Ñˆ4××Õˆ9××Ó˜××××××ÓØ�<‰<Ð+Ð+Ð+Ð+Ñ+×+×+×+Ò+ˆ<×+×+×+×+×+Õ+ˆ4×+×+×+Ñ+ˆ4×+×+Õ+ˆ<×+×+Ó+Ð+×+×+×+×+×+×+Ó+Ø�<‰<Ð˜3Ð˜3Ñ×××Òˆ<×××××Õˆ4×××Ñˆ4××Õˆ<××Ó˜3××××××ÓØ�|‰|Ð!Œ3ˆ|ÓÐ! Ð! Ñ!×!×!×!Ó!Ð×!×!×!×!×!Õ!Œ3×!×!×!Ñ!Œ3×!×!×!×!×!Ö!ˆt×!×!×!Ñ!ˆt×!×!Õ!ˆ|×!×!Ó!Ð×!×!Ó! ×!×!×!×!×!×!Õ!Ø�L‰L˜‰O€Eà�:‰:Ð˜Ð˜‰?×××Òˆ:×××××Õˆ5×××Ñˆ5××Õˆ:××Ó˜××××××ÓØ�:‰:Ð'œÑ'×'×'×'Ò'ˆ:œ×'×'×'×'×'Õ'ˆ5×'×'×'Ñ'ˆ5×'×'Õ'ˆ:×'×'×'×'×'Ô'œ×'×'×'Ñ'œ×'×'×'×'×'×'Ó'Ø�9‰9ÐR ¨d¸TÈTÑRÐRÐRÑR×R×R×RÒRˆ9×R×R×R×R×RÕRˆ5×R×R×RÑRˆ5×R×RÕRˆ9×R×RÓRÐR×R×R×R×R×R×RÓRØ�>‰>Ð$˜WÐ$˜WÑ$×$×$×$Ò$ˆ>×$×$×$×$×$Õ$ˆ5×$×$×$Ñ$ˆ5×$×$Õ$ˆ>×$×$Ó$˜W×$×$×$×$×$×$Ó$Ø�<‰<Ð6Ð6Ð6Ð6Ñ6×6×6×6Ò6ˆ<×6×6×6×6×6Õ6ˆ5×6×6×6Ñ6ˆ5×6×6Õ6ˆ<×6×6Ó6Ð6×6×6×6×6×6×6Ô6rG   c                 óZ  • [        [        SSSS5      [        SS[        S5      [        SS	S
S5      [        SSSS5      /5      n [        U SSS/S9nUR                   Vs/ s H  o"R
                  PM     nnSS/oCU:H  oU(       do  [        R                  " SU4SX445      [        R                  " U5      [        R                  " U5      S.-  nSSU0-  n[        [        R                  " U5      5      eS =n=pTUR                  S   o3R                  nSo…U:H  o™(       d„  [        R                  " SU	4SXX45      [        R                  " U5      [        R                  " U5      [        R                  " U5      S.-  nSSU0-  n
[        [        R                  " U
5      5      eS =n=n=p˜UR                  S   o3R                  nS
o…U:H  o™(       d„  [        R                  " SU	4SXX45      [        R                  " U5      [        R                  " U5      [        R                  " U5      S.-  nSSU0-  n
[        [        R                  " U
5      5      eS =n=n=p˜UR                  n[        U5      n	So¹U:H  oÌ(       Gd"  [        R                  " SU4SX›45      S [        R                  " 5       ;   d  [        R                   " [        5      (       a  [        R                  " [        5      OS S![        R                  " 5       ;   d  [        R                   " U5      (       a  [        R                  " U5      OS![        R                  " U5      [        R                  " U	5      [        R                  " U5      S".-  n
S#S$U
0-  n[        [        R                  " U5      5      eS =n=n	=pËg s  snf )%Nr)  )r  çìQ¸…ë±?g×£p=
×ã?r£   zAdjusted Revenue(1) by Yearút-1r  r  r  Ú
marginalia)g{®Gáz¤?rÐ   ç¸…ëQ¸î?ç\�Âõ(\ï?zNote: (1) See Appendix A.zm-1Útable)r  çffffffæ?çq=
×£pí?r^   z<table></table>ztb-1rÊ   r  r¨   r  r«   r­   r®   r±   r²   r   )z,%(py3)s
{%(py3)s = %(py1)s.text
} == %(py6)sr´   r¶   r·   r”   r   rÖ   r  r!  r"  r#  )r    r‹   r%  r5   Úcontextr‰   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.  s                 rE   Ú.test_title_and_note_are_kept_beside_the_chartsr:  û   sN  € Üä�6Ð3Ð5RÐTYÓZÜ�8Ð5´~ÀwÓOÜ�<Ð!9Ð;VÐX]Ó^Ü�7Ð4Ð6GÈÓPð		
ó€Hô �X A¨WÀ{ÀmÑT€Dà ŸLšLÓ)šL�q�FŒF™LÐCÐ)¨f°lÐ-CÐCÐ-CÑC×C×C×CÒCÐ)×C×CÔCÐ)×C×CÓCÐ-C×C×C×C×C×C×CÓCØ�<‰<˜‰?Ð@×ÑÐ@Ð#@Ð@Ð#@Ñ@×@×@×@Ò@Ð×@×@Ô@ˆ?×@×@Ó@Ð×@×@Ó@Ð#@×@×@×@×@×@×@Õ@Ø�<‰<˜‰?Ð>×ÑÐ>Ð#>Ð>Ð#>Ñ>×>×>×>Ò>Ð×>×>Ô>ˆ?×>×>Ó>Ð×>×>Ó>Ð#>×>×>×>×>×>×>Õ>à�|‰|Ð!Œ3ˆ|ÓÐ! Ð! Ñ!×!×!×!Ó!Ð×!×!×!×!×!Õ!Œ3×!×!×!Ñ!Œ3×!×!×!×!×!Ö!ˆt×!×!×!Ñ!ˆt×!×!Õ!ˆ|×!×!Ó!Ð×!×!Ó! ×!×!×!×!×!×!Ö!ùò	 *s   ÁN(c            	     óˆ  • [        [        SS[        S5      [        SSSS5      /5      n [        U SSS	S
/S9nUR                   Vs/ s H  o"R
                  PM     nnSS/oCU:H  oU(       do  [        R                  " SU4SX445      [        R                  " U5      [        R                  " U5      S.-  nSSU0-  n[        [        R                  " U5      5      eS =n=pTUR                  S   o3R                  oQR                  S   oˆR                  o•U	:g  oª(       d™  [        R                  " SU
4SXY45      [        R                  " U5      [        R                  " U5      [        R                  " U5      [        R                  " U	5      S.-  nSSU0-  n[        [        R                  " U5      5      eS =n=n=n
=p‰g s  snf )Nr  ©rË   rÌ   rÍ   r  r  ©rÏ   rÌ   rÐ   r  z<::pie chart
: pie chart::>úfig-2é	   r  r¨   rÑ   r  r«   r­   r®   r±   r²   r   r”   ©ú!=)zD%(py3)s
{%(py3)s = %(py1)s.box
} != %(py8)s
{%(py8)s = %(py6)s.box
})r¯   rµ   r²   r·   r"  r#  )r    r‹   r%  r5   r  rŠ   r¸   r¹   rº   r»   r¼   r@   )r*  r  r�   rÀ   rÁ   rÂ   rÃ   rÄ   rÅ   rä   rÆ   rÇ   r.  s                rE   Ú)test_two_charts_on_one_page_stay_separaterB    s;  € Üä�8Ð5´~ÀwÓOÜ�8Ð5Ð7UÐW^Ó_ð	
ó€Hô �X A¨WÀ{ÐT_ÐF`Ña€DØ $§¢Ó-¢˜1�JŒJ¡ÐCÐ-°'¸7Ð1CÐCÐ1CÑC×C×C×CÒCÐ-×C×CÔCÐ-×C×CÓCÐ1C×C×C×C×C×C×CÓCØ�<‰<˜‰?Ð5×ÑÐ5§,¡,¨q¡/Ð5×"5Ñ"5Ð5Ð"5Ñ5×5×5×5Ò5Ð×5×5Ô5ˆ?×5×5Ó5Ð×5×5Ó5 /×5×5Ó5Ð"5×5×5×5×5×5×5×5Ð5ùò .s   ÁF?c                 ó  • [        [        SSSS5      /5      n [        U SSS/SS	9nUR                  nS
o2U:H  oD(       dº  [        R
                  " SU4SX#45      S[        R                  " 5       ;   d  [        R                  " U5      (       a  [        R                  " U5      OS[        R                  " U5      [        R                  " U5      S.-  nSSU0-  n[        [        R                  " U5      5      eS =n=pCUR                  n/ o2U:H  oD(       dº  [        R
                  " SU4SX#45      S[        R                  " 5       ;   d  [        R                  " U5      (       a  [        R                  " U5      OS[        R                  " U5      [        R                  " U5      S.-  nSSU0-  n[        [        R                  " U5      5      eS =n=pCUR                  nSo2U:H  oD(       dº  [        R
                  " SU4SX#45      S[        R                  " 5       ;   d  [        R                  " U5      (       a  [        R                  " U5      OS[        R                  " U5      [        R                  " U5      S.-  nSSU0-  n[        [        R                  " U5      5      eS =n=pCUR                  nSo2U:H  oD(       dº  [        R
                  " SU4SX#45      S[        R                  " 5       ;   d  [        R                  " U5      (       a  [        R                  " U5      OS[        R                  " U5      [        R                  " U5      S.-  nSSU0-  n[        [        R                  " U5      5      eS =n=pCg )Nr)  )r£   r£   r^   çš™™™™™É?zSegment resultsr2  é   r  r¨   za.json)rt   r  r½   Úresponse_artifactÚemptyr«   r  r  r  r  r  ©z/%(py2)s
{%(py2)s = %(py0)s.figures
} == %(py5)sr  r  )z9%(py2)s
{%(py2)s = %(py0)s.response_artifact
} == %(py5)s)r    r‹   r5   r(  r¸   r¹   rÞ   rß   rà   rº   r»   r¼   r  rŸ   rF  )r*  r  râ   rÆ   rÁ   r+  r,  s          rE   Ú@test_a_page_returning_no_figure_is_recorded_as_scanned_and_emptyrI    s÷  € Üœ& Ð)=Ð?PÐRWÓXÐYÓZ€HÜØ�r ¸;¸-Ð[cñ€Dð �;‰;Ð!˜'Ð!˜'Ñ!×!×!×!Ò!ˆ;×!×!×!×!×!Õ!ˆ4×!×!×!Ñ!ˆ4×!×!Õ!ˆ;×!×!Ó!˜'×!×!×!×!×!×!Ó!Ø�<‰<Ð˜2Ð˜2Ñ×××Òˆ<×××××Õˆ4×××Ñˆ4××Õˆ<××Ó˜2××××××Óà�<‰<Ð˜3Ð˜3Ñ×××Òˆ<×××××Õˆ4×××Ñˆ4××Õˆ<××Ó˜3××××××ÓØ×!Ñ!Ð- XÐ- XÑ-×-×-×-Ò-Ð!×-×-×-×-×-Õ-ˆ4×-×-×-Ñ-ˆ4×-×-Õ-Ð!×-×-Ó- X×-×-×-×-×-×-Ô-rG   c                ó  • U S-  R                  SSS9  U S-  R                  SSS9  [        U 5      nSn[        X5      o3R                  nSoTU:H  of(       GdŸ  [        R
                  " SU4SXE45      S	[        R                  " 5       ;   d  [        R                  " [        5      (       a  [        R                  " [        5      OS	S
[        R                  " 5       ;   d  [        R                  " [        5      (       a  [        R                  " [        5      OS
S[        R                  " 5       ;   d  [        R                  " U 5      (       a  [        R                  " U 5      OS[        R                  " U5      [        R                  " U5      [        R                  " U5      [        R                  " U5      [        R                  " U5      S.-  nSSU0-  n[        [        R                  " U5      5      eS =n=n=n=n=peg )Núdeck.docling.jsonú{}úutf-8©Úencodingúdeck.unified.jsonÚdeckr«   )zt%(py10)s
{%(py10)s = %(py8)s
{%(py8)s = %(py0)s(%(py4)s
{%(py4)s = %(py1)s(%(py2)s)
}, %(py6)s)
}.name
} == %(py13)sr4   ÚstrÚtmp_path)rØ   r¯   rÚ   r°   r²   r·   r#  Úpy13úassert %(py15)sÚpy15)Ú
write_textrR  r4   rK   r¸   r¹   rÞ   rß   rà   rº   r»   r¼   )	rS  rÁ   rÅ   rä   Ú@py_assert9Ú@py_assert12Ú@py_assert11Ú@py_format14Ú@py_format16s	            rE   Ú=test_a_directory_resolves_to_the_fused_parse_over_the_raw_oner]  )  s+  € ð Ð#Ñ#×/Ñ/°¸wÐ/ÑGØÐ#Ñ#×/Ñ/°¸wÐ/ÑGÜ˜X›ÐK¨ÐKŒ=˜Ó/ÐK×4Ñ4ÐKÐ8KÐKÐ8KÑK×K×K×KÓKÐ4×K×K×K×K×KÕKŒ=×K×K×KÑKŒ=×K×K×K×K×KÖKœ×K×K×KÑKœ×K×K×K×K×KÖK˜X×K×K×KÑK˜X×K×KÕK˜×K×KÓK¨×K×KÓKÐ/×K×KÓKÐ4×K×KÓKÐ8K×K×K×K×K×K×K×KÒKrG   c            
     ód  • [         R                  " 5        n [        U 5      S-  R                  SSS9  Sn[	        X5      o"R
                  nSoCU:H  oU(       Gd7  [        R                  " SU4SX445      S[        R                  " 5       ;   d  [        R                  " [        5      (       a  [        R                  " [        5      OSS	[        R                  " 5       ;   d  [        R                  " U 5      (       a  [        R                  " U 5      OS	[        R                  " U5      [        R                  " U5      [        R                  " U5      [        R                  " U5      S
.-  nSSU0-  n[        [        R                  " U5      5      eS =n=n=n=pTS S S 5        g ! , (       d  f       g = f)NrK  rL  rM  rN  rQ  r«   )zT%(py7)s
{%(py7)s = %(py5)s
{%(py5)s = %(py0)s(%(py1)s, %(py3)s)
}.name
} == %(py10)sr4   Útmp©rØ   r¯   rµ   r  r  r#  úassert %(py12)sÚpy12)ÚtempfileÚTemporaryDirectoryr   rW  r4   rK   r¸   r¹   rÞ   rß   rà   rº   r»   r¼   )r_  rÂ   rÆ   r-  rX  rã   r.  Ú@py_format13s           rE   Ú,test_a_directory_falls_back_to_the_raw_parserf  1  sõ   € Ü	×	$Ò	$Ô	&¨#Ü	ˆc‹Ð(Ñ	(×4Ñ4°TÀGÐ4ÑLØ"(ÐEŒ}˜SÓ)ÐE×.Ñ.ÐEÐ2EÐEÐ2EÑE×E×E×EÓEÐ.×E×E×E×E×EÕEŒ}×E×E×EÑEŒ}×E×E×E×E×EÖE˜S×E×E×EÑE˜S×E×EÕE &×E×EÓEÐ)×E×EÓEÐ.×E×EÓEÐ2E×E×E×E×E×E×E×E÷ 
'×	&Ö	&ús   –FF!Æ!
F/c           
     ó  • U S-  nUR                  SSS9  [        U5      nSn[        X#5      oDU:H  oU(       GdÀ  [        R                  " SU4SXA45      S[
        R                  " 5       ;   d  [        R                  " [        5      (       a  [        R                  " [        5      OSS	[
        R                  " 5       ;   d  [        R                  " [        5      (       a  [        R                  " [        5      OS	S
[
        R                  " 5       ;   d  [        R                  " U5      (       a  [        R                  " U5      OS
[        R                  " U5      [        R                  " U5      [        R                  " U5      S
[
        R                  " 5       ;   d  [        R                  " U5      (       a  [        R                  " U5      OS
S.-  nSSU0-  n[        [        R                  " U5      5      eS =n=n=pEg )Nzanything.jsonrL  rM  rN  rQ  r«   )zX%(py8)s
{%(py8)s = %(py0)s(%(py4)s
{%(py4)s = %(py1)s(%(py2)s)
}, %(py6)s)
} == %(py10)sr4   rR  Úpath)rØ   r¯   rÚ   r°   r²   r·   r#  ra  rb  )rW  rR  r4   r¸   r¹   rÞ   rß   rà   rº   r»   r¼   )rS  rh  rÁ   rÅ   rä   rX  r.  re  s           rE   Útest_a_file_is_taken_as_givenri  7  s  € Ø�oÑ%€DØ‡O�O�D 7€OÑ+Ü˜T›Ð3 FÐ3Œ=˜Ó+Ð3¨tÑ3×3×3×3Ó3Ð+×3×3×3×3×3Õ3Œ=×3×3×3Ñ3Œ=×3×3×3×3×3Ö3œ×3×3×3Ñ3œ×3×3×3×3×3Ö3˜T×3×3×3Ñ3˜T×3×3Õ3˜×3×3Ó3 F×3×3Ó3Ð+×3×3×3×3×3Ô3¨t×3×3×3Ñ3¨t×3×3×3×3×3×3×3Ð3rG   c                óÊ  • [         R                  " [        5       n[        [	        U 5      S5        S S S 5        SnWR
                  n[	        U5      oBU;   oU(       Gd"  [        R                  " SU4SX$45      [        R                  " U5      S[        R                  " 5       ;   d  [        R                  " [        5      (       a  [        R                  " [        5      OSS[        R                  " 5       ;   d  [        R                  " U5      (       a  [        R                  " U5      OS[        R                  " U5      [        R                  " U5      S.-  nSS	U0-  n[        [        R                  " U5      5      eS =n=n=p4S
o!R
                  n[	        U5      oBU;   oU(       Gd"  [        R                  " SU4SX$45      [        R                  " U5      S[        R                  " 5       ;   d  [        R                  " [        5      (       a  [        R                  " [        5      OSS[        R                  " 5       ;   d  [        R                  " U5      (       a  [        R                  " U5      OS[        R                  " U5      [        R                  " U5      S.-  nSS	U0-  n[        [        R                  " U5      5      eS =n=n=p4g ! , (       d  f       GN©= f)NrQ  rP  ©Úin)zK%(py1)s in %(py8)s
{%(py8)s = %(py3)s(%(py6)s
{%(py6)s = %(py4)s.value
})
}rR  Úerr©r¯   rµ   r°   r²   r·   r"  r#  rK  )ÚpytestÚraisesÚFileNotFoundErrorr4   rR  Úvaluer¸   r¹   rº   rÞ   rß   rà   r»   r¼   )rS  rm  rÀ   rÅ   rä   rÂ   rÇ   r.  s           rE   Ú5test_a_directory_holding_no_parse_says_what_it_wantedrs  =  sy  € Ü	�ŠÔ(Ô	)¨SÜ”c˜(“m VÔ,÷ 
*àÐ0 c§i¡iÐ0¤# i£.Ð0 .Ñ0×0×0×0Ó0Ð×0×0Ô0Ð×0×0×0×0×0Ô0¤#×0×0×0Ñ0¤#×0×0×0×0×0Ö0 c×0×0×0Ñ0 c×0×0Õ0 i×0×0Ó0 .×0×0×0×0×0×0Õ0ØÐ0§i¡iÐ0¤# i£.Ð0 .Ñ0×0×0×0Ó0Ð×0×0Ô0Ð×0×0×0×0×0Ô0¤#×0×0×0Ñ0¤#×0×0×0×0×0Ö0 c×0×0×0Ñ0 c×0×0Õ0 i×0×0Ó0 .×0×0×0×0×0×0Ö0÷ 
*Ö	)ús   ›KË
K"c                 ól  • [        S[        SSSS/S9[        SSS	[        SS
5      /S9/S9n U R                  nSo!U:H  o3(       dº  [        R
                  " SU4SX45      S[        R                  " 5       ;   d  [        R                  " U 5      (       a  [        R                  " U 5      OS[        R                  " U5      [        R                  " U5      S.-  nSSU0-  n[        [        R                  " U5      5      eS =n=p2U R                  nSo!U:H  o3(       dº  [        R
                  " SU4SX45      S[        R                  " 5       ;   d  [        R                  " U 5      (       a  [        R                  " U 5      OS[        R                  " U5      [        R                  " U5      S.-  nSSU0-  n[        [        R                  " U5      5      eS =n=p2U R                  nSo!U:H  o3(       dº  [        R
                  " SU4SX45      S[        R                  " 5       ;   d  [        R                  " U 5      (       a  [        R                  " U 5      OS[        R                  " U5      [        R                  " U5      S.-  nSSU0-  n[        [        R                  " U5      5      eS =n=p2U R                  nS	o!U:H  o3(       dº  [        R
                  " SU4SX45      S[        R                  " 5       ;   d  [        R                  " U 5      (       a  [        R                  " U 5      OS[        R                  " U5      [        R                  " U5      S.-  nSSU0-  n[        [        R                  " U5      5      eS =n=p2U R                   Vs/ s H  ofR                   PM     nnSS/o7U:H  oˆ(       do  [        R
                  " SU4SXs45      [        R                  " U5      [        R                  " U5      S.-  n	SSU	0-  n
[        [        R                  " U
5      5      eS =n=pƒg s  snf )NrQ  r©   Údroppedzno chart on the pager¨   )rt   r(  Úreasonr½   rÊ   r  r  ©r£   r£   r§   r§   )rt   r(  rŸ   r  ©ÚdocumentÚscansr¦   r«   )z1%(py2)s
{%(py2)s = %(py0)s.nominated
} == %(py5)sÚrunr  r  r  r”   ©z/%(py2)s
{%(py2)s = %(py0)s.scanned
} == %(py5)s©z1%(py2)s
{%(py2)s = %(py0)s.submitted
} == %(py5)sr  r­   r®   r±   r²   )r0   r1   Ú_chartr¾   r¸   r¹   rÞ   rß   rà   rº   r»   r¼   ÚscannedÚ	submittedrŸ   rz  rt   )r{  râ   rÆ   rÁ   r+  r,  ÚsrÀ   rÂ   rÃ   rÄ   s              rE   Ú3test_a_dropped_page_still_appears_and_costs_nothingr‚  G  se  € Ü
Øä˜! IÐ6LÐ_jÐ^kÑlÜ˜! I°sÄVÈAÐOcÓEdÐDeÑfð
ñ€Cð �=‰=Ð˜AÐ˜AÑ×××Òˆ=×××××Õˆ3×××Ñˆ3××Õˆ=××Ó˜A××××××ÓØ�;‰;Ð˜!Ð˜!Ñ×××Òˆ;×××××Õˆ3×××Ñˆ3××Õˆ;××Ó˜!××××××ÓØ�=‰=Ð˜AÐ˜AÑ×××Òˆ=×××××Õˆ3×××Ñˆ3××Õˆ=××Ó˜A××××××ÓØ�;‰;Ð˜#Ð˜#Ñ×××Òˆ;×××××Õˆ3×××Ñˆ3××Õˆ;××Ó˜#××××××ÓàŸIšIÓ&šI�q�FŒF™IÐ0Ð&¨1¨a¨&Ð0¨&Ñ0×0×0×0Ò0Ð&×0×0Ô0Ð&×0×0Ó0¨&×0×0×0×0×0×0Ô0ùÒ&s   ÎP1c                 óL	  • [        S[        SSSS[        SS5      /S9/S9n U R                  nS	o!U:H  o3(       dº  [        R
                  " S
U4SX45      S[        R                  " 5       ;   d  [        R                  " U 5      (       a  [        R                  " U 5      OS[        R                  " U5      [        R                  " U5      S.-  nSSU0-  n[        [        R                  " U5      5      eS =n=p2U R                  nSo!U:H  o3(       dº  [        R
                  " S
U4SX45      S[        R                  " 5       ;   d  [        R                  " U 5      (       a  [        R                  " U 5      OS[        R                  " U5      [        R                  " U5      S.-  nSSU0-  n[        [        R                  " U5      5      eS =n=p2U R                  nSo!U:H  o3(       dº  [        R
                  " S
U4SX45      S[        R                  " 5       ;   d  [        R                  " U 5      (       a  [        R                  " U 5      OS[        R                  " U5      [        R                  " U5      S.-  nSSU0-  n[        [        R                  " U5      5      eS =n=p2U R                  n[        U5      nS	orU:H  oˆ(       Gd"  [        R
                  " S
U4SX'45      S[        R                  " 5       ;   d  [        R                  " [        5      (       a  [        R                  " [        5      OSS[        R                  " 5       ;   d  [        R                  " U 5      (       a  [        R                  " U 5      OS[        R                  " U5      [        R                  " U5      [        R                  " U5      S.-  n	SSU	0-  n
[        [        R                  " U
5      5      eS =n=n=p‡U R                   S   o»R                  nSoÆU:H  o"(       d„  [        R
                  " S
U4SXl45      [        R                  " U5      [        R                  " U5      [        R                  " U5      S.-  nSSU0-  n	[        [        R                  " U	5      5      eS =n=n=p,g )NrQ  rÊ   r  r  Trw  )rt   r(  rŸ   Úreusedr  rx  r”   r«   r|  r„  r  r  r  r   r}  ç        r  r   rÖ   r!  r"  r#  )z/%(py3)s
{%(py3)s = %(py1)s.credits
} == %(py6)sr´   r¶   r·   )r0   r1   r~  r  r¸   r¹   rÞ   rß   rà   rº   r»   r¼   r€  rŸ   r  rÖ   rz  )r„  râ   rÆ   rÁ   r+  r,  rÂ   rä   r-  rÇ   r.  rÀ   rÅ   rÄ   s                 rE   Ú8test_a_reused_scan_is_not_billed_to_the_run_that_read_itr†  W  s•  € ÜØäØ˜y°#¸dÌVÐTUÐWkÓMlÐLmñð
ñ€Fð �>‰>Ð˜QÐ˜QÑ×××Òˆ>×××××Õˆ6×××Ñˆ6××Õˆ>××Ó˜Q××××××ÓØ×ÑÐ ˜qÐ ˜qÑ × × × Ò Ð× × × × × Õ ˆ6× × × Ñ ˆ6× × Õ Ð× × Ó ˜q× × × × × × Ó Ø�>‰>Ð ˜SÐ ˜SÑ × × × Ò ˆ>× × × × × Õ ˆ6× × × Ñ ˆ6× × Õ ˆ>× × Ó ˜S× × × × × × Ó Ø�~‰~Ð#Œ3ˆ~ÓÐ# !Ð# !Ñ#×#×#×#Ó#Ð×#×#×#×#×#Õ#Œ3×#×#×#Ñ#Œ3×#×#×#×#×#Ö#ˆv×#×#×#Ñ#ˆv×#×#Õ#ˆ~×#×#Ó#Ð×#×#Ó# !×#×#×#×#×#×#Õ#à�<‰<˜‰?Ð)×"Ñ"Ð) cÐ) cÑ)×)×)×)Ò)Ð"×)×)Ô)ˆ?×)×)Ó)Ð"×)×)Ó) c×)×)×)×)×)×)Ö)rG   c           
     óB   • [        U U(       a  SOSSSS[        U5      S9$ )Nr  rG  újob-1r  r•   )rt   r(  r—   r  r™   r  )r1   Úlist)rt   r  s     rE   Ú_scanrŠ  l  s)   € ÜØÞ#‰y¨ØØØ Ü�W“ñð rG   r  c           	     ó,   • Uu  pEpg[        U UXEXgS.USS9$ )Nr   rˆ  )rt   r)  r@   rŠ   r—   )r/   )rt   r@   r)  rŠ   rA   rB   rC   rD   s           rE   r~  r~  w  s,   € Ø�N€BˆBÜØØØ¨RÑ>ØØñð rG   c                 óV  • [        S/5      n [        S[        SS5      /5      /n[        X[	        S/5      5      u  p#/ oCU:H  oU(       d¥  [
        R                  " SU4SX445      S[        R                  " 5       ;   d  [
        R                  " U5      (       a  [
        R                  " U5      OS[
        R                  " U5      S.-  nSS	U0-  n[        [
        R                  " U5      5      eS =pTUR                  S
   nUR                  nS o•U	Loª(       dº  [
        R                  " SU
4SXY45      S[        R                  " 5       ;   d  [
        R                  " U5      (       a  [
        R                  " U5      OS[
        R                  " U5      [
        R                  " U	5      S.-  nSSU0-  n[        [
        R                  " U5      5      eS =n=p©UR                  oUR                  n
S oÊULoÝ(       dÏ  [
        R                  " SU4SX¬45      S[        R                  " 5       ;   d  [
        R                  " U5      (       a  [
        R                  " U5      OS[
        R                  " U5      [
        R                  " U
5      [
        R                  " U5      S.-  nSSU0-  n[        [
        R                  " U5      5      eS =n=n
=pÜUR                  oUR                  oªR                   oÝ["        :H  oÿ(       Gd'  [
        R                  " SU4SU["        45      S[        R                  " 5       ;   d  [
        R                  " U5      (       a  [
        R                  " U5      OS[
        R                  " U5      [
        R                  " U
5      [
        R                  " U5      S[        R                  " 5       ;   d  [
        R                  " ["        5      (       a  [
        R                  " ["        5      OSS.-  nSSU0-  n[        [
        R                  " U5      5      eS =n=n
=pßUR                  oUR$                  n
S oÊULoÝ(       dÏ  [
        R                  " SU4SX¬45      S[        R                  " 5       ;   d  [
        R                  " U5      (       a  [
        R                  " U5      OS[
        R                  " U5      [
        R                  " U
5      [
        R                  " U5      S.-  nSSU0-  n[        [
        R                  " U5      5      eS =n=n
=pÜUR                  R$                  R&                  S
   nUR(                  nSoÔU:H  o™(       d„  [
        R                  " SU	4SXM45      [
        R                  " U5      [
        R                  " U5      [
        R                  " U5      S.-  nSSU0-  n[        [
        R                  " U5      5      eS =n=n=p�UR                  R+                  5       nUS    nS!n
UU
:H  oD(       dp  [
        R                  " SU4S"UU
45      [
        R                  " U5      [
        R                  " U
5      S#.-  nS$S%U0-  n[        [
        R                  " U5      5      eS =n=pJUS&   nS'n
UU
:H  oD(       dp  [
        R                  " SU4S"UU
45      [
        R                  " U5      [
        R                  " U
5      S#.-  nS$S%U0-  n[        [
        R                  " U5      5      eS =n=pJUS(   nS)n
UU
:H  oD(       dp  [
        R                  " SU4S"UU
45      [
        R                  " U5      [
        R                  " U
5      S#.-  nS$S%U0-  n[        [
        R                  " U5      5      eS =n=pJUS*   nS+n
UU
:H  oD(       dp  [
        R                  " SU4S"UU
45      [
        R                  " U5      [
        R                  " U
5      S#.-  nS$S%U0-  n[        [
        R                  " U5      5      eS =n=pJUS
   R,                  S
   nUR.                  oHR0                  oÄU:H  o™(       dÏ  [
        R                  " SU	4S,XL45      [
        R                  " U5      [
        R                  " U5      S[        R                  " 5       ;   d  [
        R                  " U5      (       a  [
        R                  " U5      OS[
        R                  " U5      S-.-  nSSU0-  n[        [
        R                  " U5      5      eS =n=n=pœg ).N©rÊ   r  r¨   rÊ   ©r1  çìQ¸…ëÁ?ç\�Âõ(\ß?rÎ   r«   ©z%(py0)s == %(py3)sÚerrors©rØ   rµ   úassert %(py5)sr  r   ©úis not)z0%(py2)s
{%(py2)s = %(py0)s.meta
} is not %(py5)srv   r  r  r  )zQ%(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.meta
}.description
} is not %(py7)s©rØ   rÚ   r°   r  úassert %(py9)srÛ   )zg%(py6)s
{%(py6)s = %(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.meta
}.description
}.text
} == %(py8)sr%  )rØ   rÚ   r°   r²   r·   r"  r#  ©zT%(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.meta
}.classification
} is not %(py7)sr¨   ©z2%(py3)s
{%(py3)s = %(py1)s.class_name
} == %(py6)sr´   r¶   r·   Úquber__figure_job_idrˆ  r­   r®   r±   r²   Úquber__figure_modelr  Úquber__figure_versionr•   Úquber__figure_chunk_idr  ©zQ%(py3)s
{%(py3)s = %(py1)s.picture_ref
} == %(py7)s
{%(py7)s = %(py5)s.self_ref
}©r¯   rµ   r  r  )rw   rŠ  r~  r+   r}   r¸   r¹   rÞ   rß   rà   rº   r»   r¼   rl   rk   Údescriptionr)  r%  re   rd   r_   Ú
model_dumpr  Úpicture_refÚself_ref)ro   rz  Úrefinedr’  rÂ   râ   Ú@py_format4r+  rv   rÆ   rÁ   r,  r-  rÅ   rå   rä   rÇ   r.  rÀ   rÄ   rk   rÃ   s                         rE   Ú4test_chart_text_lands_on_the_picture_the_parse_foundr§  ‚  sO  € Ü
Ð?Ð@Ó
A€CÜ�1”v˜aÐ!9Ó:Ð;Ó<Ð=€Eä# C´
¸A¸3³Ó@�O€GàÐ�R‰<×××Òˆ6×××××Õˆ6×××Ñˆ6××Õ�R××××××ÑØ×Ñ˜qÑ!€GØ�<‰<Ð#˜tÐ#˜tÐ#×#×#×#Ò#ˆ<×#×#×#×#×#Õ#ˆ7×#×#×#Ñ#ˆ7×#×#Õ#ˆ<×#×#Ó#˜t×#×#×#×#×#×#Ó#Ø�<‰<Ð/×#Ñ#Ð/¨4Ð/¨4Ð/×/×/×/Ò/Ð#×/×/×/×/×/Õ/ˆ7×/×/×/Ñ/ˆ7×/×/Õ/ˆ<×/×/Ó/Ð#×/×/Ó/¨4×/×/×/×/×/×/Õ/Ø�<‰<Ð:×#Ñ#Ð:×(Ñ(Ð:¬NÑ:×:×:×:Ó:Ð(¬N×:×:×:×:×:Õ:ˆ7×:×:×:Ñ:ˆ7×:×:Õ:ˆ<×:×:Ó:Ð#×:×:Ó:Ð(×:×:×:×:×:Ô:¬N×:×:×:Ñ:¬N×:×:×:×:×:×:×:à�<‰<Ð2×&Ñ&Ð2¨dÐ2¨dÐ2×2×2×2Ò2Ð&×2×2×2×2×2Õ2ˆ7×2×2×2Ñ2ˆ7×2×2Õ2ˆ<×2×2Ó2Ð&×2×2Ó2¨d×2×2×2×2×2×2Õ2Ø�<‰<×&Ñ&×2Ñ2°1Ñ5ÐOÐ5×@Ñ@ÐOÀKÐOÀKÑO×O×O×OÒOÐ@×O×OÔOÐ5×O×OÓOÐ@×O×OÓOÀK×O×O×O×O×O×OÕOØ�<‰<×"Ñ"Ó$€DØÐ&Ñ'Ð2¨7Ð2Ð'¨7Ñ2×2×2×2Ò2Ð'¨7×2×2Ô2Ð'×2×2Ó2¨7×2×2×2×2×2×2Ó2ØÐ%Ñ&Ð1¨'Ð1Ð&¨'Ñ1×1×1×1Ò1Ð&¨'×1×1Ô1Ð&×1×1Ó1¨'×1×1×1×1×1×1Ó1ØÐ'Ñ(Ð<Ð,<Ð<Ð(Ð,<Ñ<×<×<×<Ò<Ð(Ð,<×<×<Ô<Ð(×<×<Ó<Ð,<×<×<×<×<×<×<Ó<ØÐ(Ñ)Ð4¨WÐ4Ð)¨WÑ4×4×4×4Ò4Ð)¨W×4×4Ô4Ð)×4×4Ó4¨W×4×4×4×4×4×4Ó4à�‰8×Ñ˜AÑÐ>Ð×*Ñ*Ð>×.>Ñ.>Ð>Ð.>Ñ>×>×>×>Ò>Ð*×>×>Ô>Ð×>×>Ó>Ð*×>×>×>×>×>Ô>¨g×>×>×>Ñ>¨g×>×>Õ>Ð.>×>×>×>×>×>×>Ö>rG   c            
     óT  • [        S/5      n [        U [        S[        SS5      /5      /[	        S/5      5      u  p/ o1R
                  S   oDR                  nS oeULowo‡(       a+  UR
                  S   o™R                  oªR                  nS oËULoÝnU(       GdH  [        R                  " SU4SXV45      [        R                  " U5      [        R                  " U5      [        R                  " U5      S.-  nSS	U0-  oóR                  U5        U(       aŒ  [        R                  " SW4S
WW45      [        R                  " W	5      [        R                  " W
5      [        R                  " U5      [        R                  " U5      S.-  nSSU0-  nUR                  U5        [        R                  " US5      0 -  nSSU0-  n[        [        R                  " U5      5      eS =n=n=n=n=n=n=n	=n
=n=pÜ/ o0R
                  S   oDR                  nS oeULowo‡(       a+  U R
                  S   o™R                  oªR                  nS oËUL oÝnU(       GdG  [        R                  " SU4SXV45      [        R                  " U5      [        R                  " U5      [        R                  " U5      S.-  nSS	U0-  oóR                  U5        U(       a‹  [        R                  " SU4SX¼45      [        R                  " U	5      [        R                  " U
5      [        R                  " U5      [        R                  " U5      S.-  nSSU0-  nUR                  U5        [        R                  " US5      0 -  nSSU0-  n[        [        R                  " U5      5      eS =n=n=n=n=n=n=n	=n
=n=pÜg )Nr�  rÊ   rŽ  r   r•  )z0%(py5)s
{%(py5)s = %(py3)s.meta
} is not %(py8)s)rµ   r  r·   z%(py10)sr#  )zW%(py17)s
{%(py17)s = %(py15)s
{%(py15)s = %(py13)s.meta
}.description
} is not %(py20)s©rT  rV  Úpy17Úpy20ú%(py22)sÚpy22úassert %(py25)sÚpy25©Úis)zS%(py17)s
{%(py17)s = %(py15)s
{%(py15)s = %(py13)s.meta
}.description
} is %(py20)s)rw   r+   rŠ  r~  r}   rl   rk   r¡  r¸   r¹   rº   rj   Ú_format_boolopr»   r¼   )ro   r¥  Ú_errorsrâ   rÂ   rÆ   rä   r-  rÀ   rY  Ú@py_assert14Ú@py_assert16Ú@py_assert19Ú@py_assert18rÇ   r.  Ú@py_format21Ú@py_format23Ú@py_format24Ú@py_format26s                       rE   Ú#test_the_input_parse_is_not_mutatedr¼  ™  s9  € Ü
Ð?Ð@Ó
A€CÜ$ S¬5°´V¸AÐ?WÓ5XÐ4YÓ+ZÐ*[Ô]gÐijÐhkÓ]lÓmÑ€GÙd×Ñ˜AÑÐd×#Ñ#Ðd¨4Ðd¨4Ð/×d°G×4DÑ4DÀQÑ4GÐd×4LÑ4LÐd×4XÑ4XÐdÐ`dÐdÐ`dÐ4d×d×d×dÕdÐ#×d×dÔdÐ×d×dÓdÐ#×d×dÓd¨4×d×d×d×d×d×d×dÒdÐ4XÐ`d×d×dÔdÐ4G×d×dÓdÐ4L×d×dÓdÐ4X×d×dÓdÐ`d×d×d×d×d×d×d×d×d×d×d×d×d×d×dÕdÙX�<‰<˜‰?ÐX×ÑÐX tÐX tÐ+×X°·±¸Q±ÐX×0DÑ0DÐX×0PÑ0PÐXÐTXÐXÐTXÐ0X×X×X×XÕXÐ×X×XÔXˆ?×X×XÓXÐ×X×XÓX t×X×X×X×X×X×X×XÒXÐ0P×X×XÔX°×X×XÓXÐ0D×X×XÓXÐ0P×X×XÓXÐTX×X×X×X×X×X×X×X×X×X×X×X×X×X×XÖXrG   c                 ó6  • [        SS/5      n [        S[        SSSSS9[        SSS	S
S9/5      /n[        X[	        S/5      5      u  p#/ oCU:H  oU(       d¥  [
        R                  " SU4SX445      S[        R                  " 5       ;   d  [
        R                  " U5      (       a  [
        R                  " U5      OS[
        R                  " U5      S.-  nSSU0-  n[        [
        R                  " U5      5      eS =pTUR                   Vs/ s HK  nUR                  c  M  UR                  R                  c  M+  UR                  R                  R                   PMM     n	nSS	/oIU:H  oU(       d¥  [
        R                  " SU4SX”45      S[        R                  " 5       ;   d  [
        R                  " U	5      (       a  [
        R                  " U	5      OS[
        R                  " U5      S.-  nSSU0-  n[        [
        R                  " U5      5      eS =pTg s  snf )N)r?  r<  rÑ   )r?  r=  rÑ   r?  r<  ú
left donutr  ©r)  rŠ   r=  úright donutr>  r«   r‘  r’  r“  r”  r  Útexts)rw   rŠ  r~  r+   r}   r¸   r¹   rÞ   rß   rà   rº   r»   r¼   rl   rk   r¡  r)  )
ro   rz  r¥  r’  rÂ   râ   r¦  r+  rp   rÁ  s
             rE   Ú3test_side_by_side_charts_land_on_their_own_picturesrÂ     s|  € Ü
à6Ø6ð	
ó€Cô 	Øä�qÐ2¸ÐPWÑXÜ�qÐ2¸ÐQXÑYðó	
ð€Eô $ C´
¸A¸3³Ó@�O€GàÐ�R‰<×××Òˆ6×××××Õˆ6×××Ñˆ6××Õ�R××××××Ñð ×!Ò!óâ!ˆAØ�6‰6ó 	 à"#§&¡&×"4Ñ"4ó 	 ˆ�‰×Ñ×ÔÙ!ð 
ð ð
 " =Ð1Ð1Ð1Ñ1×1×1×1Ò1ˆ5×1×1×1×1×1Õ1ˆ5×1×1×1Ñ1ˆ5×1×1Õ1Ð1×1×1×1×1×1×1Ò1ùòs   ÄHÄ HÄ9$Hc                 ó0
  • [        S/5      n [        S[        SS5      /5      /n[        X[	        S/5      5      u  p#[        U5      nSoTU:H  of(       Gd  [        R                  " SU4SXE45      S[        R                  " 5       ;   d  [        R                  " [
        5      (       a  [        R                  " [
        5      OSS[        R                  " 5       ;   d  [        R                  " U5      (       a  [        R                  " U5      OS[        R                  " U5      [        R                  " U5      S	.-  nS
SU0-  n[        [        R                  " U5      5      eS =n=peSo“S   o©U
;   oD(       do  [        R                  " SU4SXš45      [        R                  " U	5      [        R                  " U
5      S.-  nSSU0-  n[        [        R                  " U5      5      eS =n	=pJUR                  S   o™R                  nS oTULof(       d„  [        R                  " SU4SXE45      [        R                  " U	5      [        R                  " U5      [        R                  " U5      S.-  nS
SU0-  n[        [        R                  " U5      5      eS =n	=n=peUR                  S   o™R                  oDR                   nS oÆUL oÝ(       d™  [        R                  " SU4SXl45      [        R                  " U	5      [        R                  " U5      [        R                  " U5      [        R                  " U5      S.-  nSSU0-  n[        [        R                  " U5      5      eS =n	=n=n=pÜUS   R"                  S   o™R$                  nS oTUL of(       d„  [        R                  " SU4SXE45      [        R                  " U	5      [        R                  " U5      [        R                  " U5      S.-  nS
SU0-  n[        [        R                  " U5      5      eS =n	=n=peUS   R"                  S   o™R&                  oD[(        :H  of(       dÇ  [        R                  " SU4SU[(        45      [        R                  " U	5      [        R                  " U5      S[        R                  " 5       ;   d  [        R                  " [(        5      (       a  [        R                  " [(        5      OSS.-  nSS U0-  n[        [        R                  " U5      5      eS =n	=pFg )!N)rÊ   )rË   rË   rÍ   rD  r¨   rÊ   )rË   r7  rÍ   rÐ   r”   r«   rÕ   rÖ   r’  r×   r¶   r·   zoverlaps no picturer   rk  ©z%(py1)s in %(py4)sr®   r±   r²   r•  ©z0%(py3)s
{%(py3)s = %(py1)s.meta
} is not %(py6)sr´   r°  ©zM%(py5)s
{%(py5)s = %(py3)s
{%(py3)s = %(py1)s.meta
}.description
} is %(py8)s©r¯   rµ   r  r·   r"  r#  )z3%(py3)s
{%(py3)s = %(py1)s.picture_ref
} is %(py6)s)z,%(py3)s
{%(py3)s = %(py1)s.text
} == %(py5)sr%  )r¯   rµ   r  r  r  )rw   rŠ  r~  r+   r}   rÖ   r¸   r¹   rÞ   rß   rà   rº   r»   r¼   rl   rk   r¡  r  r£  r)  r%  )ro   rz  r¥  r’  rÂ   rÅ   rÆ   rÄ   rÇ   rÀ   rÁ   rÃ   rä   r-  r.  r+  r,  s                    rE   Ú5test_a_figure_over_no_picture_is_surfaced_not_droppedrÈ  ¼  sû  € ô Ð?Ð@Ó
A€CÜ�1”v˜aÐ!9Ó:Ð;Ó<Ð=€Eä# C´
¸A¸3³Ó@�O€Gäˆv‹;Ð˜!Ð˜!Ñ×××Óˆ;×××××ÕŒ3×××ÑŒ3×××××Öˆv×××Ñˆv××Õˆ;××Ó˜!××××××ÓØ Ð-¨1¡IÐ- IÑ-×-×-×-Ò-Ð ×-×-Ô-Ð ×-×-Ó- I×-×-×-×-×-×-Ó-Ø×Ñ˜AÑÐ/×#Ñ#Ð/¨4Ð/¨4Ð/×/×/×/Ò/Ð#×/×/Ô/Ð×/×/Ó/Ð#×/×/Ó/¨4×/×/×/×/×/×/Õ/Ø×Ñ˜AÑÐ7×#Ñ#Ð7×/Ñ/Ð7°4Ð7°4Ð7×7×7×7Ò7Ð/×7×7Ô7Ð×7×7Ó7Ð#×7×7Ó7Ð/×7×7Ó7°4×7×7×7×7×7×7×7à�‰8×Ñ˜AÑÐ2×*Ñ*Ð2¨dÐ2¨dÐ2×2×2×2Ò2Ð*×2×2Ô2Ð×2×2Ó2Ð*×2×2Ó2¨d×2×2×2×2×2×2Õ2Ø�‰8×Ñ˜AÑÐ5×#Ñ#Ð5¤~Ñ5×5×5×5Ò5Ð#¤~×5×5Ô5Ð×5×5Ó5Ð#×5×5×5×5×5Ô5¤~×5×5×5Ñ5¤~×5×5×5×5×5×5Ö5rG   c                 ó:%  • [        S/5      n [        S[        SSSSS9[        SSSS	S9/5      /n[        X[	        S/5      5      u  p#/ oCU:H  oU(       d¥  [
        R                  " S
U4SX445      S[        R                  " 5       ;   d  [
        R                  " U5      (       a  [
        R                  " U5      OS[
        R                  " U5      S.-  nSSU0-  n[        [
        R                  " U5      5      eS =pTUR                  n[        U5      nSo˜U	:H  oª(       Gd"  [
        R                  " S
U
4SX‰45      S[        R                  " 5       ;   d  [
        R                  " [        5      (       a  [
        R                  " [        5      OSS[        R                  " 5       ;   d  [
        R                  " U5      (       a  [
        R                  " U5      OS[
        R                  " U5      [
        R                  " U5      [
        R                  " U	5      S.-  nSSU0-  n[        [
        R                  " U5      5      eS =n=n=p©UR                  u  pÞ/ o]R                  nS o¯U
LnUnU(       a   UR                  nUR                   nS nUULnUnU(       Gdµ  [
        R                  " SU4SXú45      S[        R                  " 5       ;   d  [
        R                  " U5      (       a  [
        R                  " U5      OS[
        R                  " U5      [
        R                  " U
5      S.-  nSSU0-  nUR#                  U5        U(       aÂ  [
        R                  " SW4SWW45      S[        R                  " 5       ;   d  [
        R                  " U5      (       a  [
        R                  " U5      OS[
        R                  " W5      [
        R                  " U5      [
        R                  " U5      S.-  nSS U0-  nUR#                  U5        [
        R$                  " US!5      0 -  nS"S#U0-  n[        [
        R                  " U5      5      eS =n=n=n=n=n
=n=n=nn/ o^R                  nS o¯U
LnUnU(       a   UR                  nUR                   nS nUULnUnU(       Gdµ  [
        R                  " SU4SXú45      S$[        R                  " 5       ;   d  [
        R                  " U5      (       a  [
        R                  " U5      OS$[
        R                  " U5      [
        R                  " U
5      S.-  nSSU0-  nUR#                  U5        U(       aÂ  [
        R                  " SU4SUU45      S$[        R                  " 5       ;   d  [
        R                  " U5      (       a  [
        R                  " U5      OS$[
        R                  " U5      [
        R                  " U5      [
        R                  " U5      S.-  nSS U0-  nUR#                  U5        [
        R$                  " US!5      0 -  nS"S#U0-  n[        [
        R                  " U5      5      eS =n=n=n=n=n
=n=n=nnUR                  oUR                   oÿR&                  nSnUU:H  o™(       då  [
        R                  " S
U	4S%UU45      S[        R                  " 5       ;   d  [
        R                  " U5      (       a  [
        R                  " U5      OS[
        R                  " U5      [
        R                  " U5      [
        R                  " U5      [
        R                  " U5      S&.-  nS'S(U0-  n[        [
        R                  " U5      5      eS =n=n=n=n	nUR                  oUR                   oÿR&                  nSnUU:H  o™(       då  [
        R                  " S
U	4S%UU45      S$[        R                  " 5       ;   d  [
        R                  " U5      (       a  [
        R                  " U5      OS$[
        R                  " U5      [
        R                  " U5      [
        R                  " U5      [
        R                  " U5      S&.-  nS'S(U0-  n[        [
        R                  " U5      5      eS =n=n=n=n	n[)        U[*        [,        5      n[.        R0                  nSnU" U5      nUU:H  oª(       Gd1  [
        R                  " S
U
4S)UU45      S*[        R                  " 5       ;   d  [
        R                  " [(        5      (       a  [
        R                  " [(        5      OS*S[        R                  " 5       ;   d  [
        R                  " U5      (       a  [
        R                  " U5      OSS+[        R                  " 5       ;   d  [
        R                  " [*        5      (       a  [
        R                  " [*        5      OS+S,[        R                  " 5       ;   d  [
        R                  " [,        5      (       a  [
        R                  " [,        5      OS,[
        R                  " U5      S-[        R                  " 5       ;   d  [
        R                  " [.        5      (       a  [
        R                  " [.        5      OS-[
        R                  " U5      [
        R                  " U5      [
        R                  " U5      S..	-  nS/S0U0-  n [        [
        R                  " U 5      5      eS =n=n
=n=nn[)        U[*        [,        5      n[.        R0                  nSnU" U5      nUU:H  oª(       Gd1  [
        R                  " S
U
4S)UU45      S*[        R                  " 5       ;   d  [
        R                  " [(        5      (       a  [
        R                  " [(        5      OS*S$[        R                  " 5       ;   d  [
        R                  " U5      (       a  [
        R                  " U5      OS$S+[        R                  " 5       ;   d  [
        R                  " [*        5      (       a  [
        R                  " [*        5      OS+S,[        R                  " 5       ;   d  [
        R                  " [,        5      (       a  [
        R                  " [,        5      OS,[
        R                  " U5      S-[        R                  " 5       ;   d  [
        R                  " [.        5      (       a  [
        R                  " [.        5      OS-[
        R                  " U5      [
        R                  " U5      [
        R                  " U5      S..	-  nS/S0U0-  n [        [
        R                  " U 5      5      eS =n=n
=n=nnXÞ4 GHØ  n!/ nU!R                  nS o¯U
LnUnU(       a   U!R                  nUR2                  nS nUULnUnU(       Gdµ  [
        R                  " SU4SXú45      S1[        R                  " 5       ;   d  [
        R                  " U!5      (       a  [
        R                  " U!5      OS1[
        R                  " U5      [
        R                  " U
5      S.-  nSSU0-  nUR#                  U5        U(       aÂ  [
        R                  " SU4S2UU45      S1[        R                  " 5       ;   d  [
        R                  " U!5      (       a  [
        R                  " U!5      OS1[
        R                  " U5      [
        R                  " U5      [
        R                  " U5      S.-  nSS U0-  nUR#                  U5        [
        R$                  " US!5      0 -  nS"S#U0-  n[        [
        R                  " U5      5      eS =n=n=n=n=n
=n=n=nnU!R                  R2                  R4                  S!   nUR6                  nS3nUU:H  oˆ(       d…  [
        R                  " S
U4S4UU45      [
        R                  " U5      [
        R                  " U5      [
        R                  " U5      S5.-  n"S6S7U"0-  n[        [
        R                  " U5      5      eS =n=n=nnGMÛ     US!   R8                   V#s/ s H  n#U#R:                  PM     n$n#UR<                  UR<                  /nU$U:H  oU(       d¦  [
        R                  " S
U4SU$U45      S8[        R                  " 5       ;   d  [
        R                  " U$5      (       a  [
        R                  " U$5      OS8[
        R                  " U5      S.-  nSSU0-  n[        [
        R                  " U5      5      eS =pTUR<                  o^R<                  nUU:g  oÿ(       Gd  [
        R                  " S9U4S:UU45      S[        R                  " 5       ;   d  [
        R                  " U5      (       a  [
        R                  " U5      OS[
        R                  " U5      S$[        R                  " 5       ;   d  [
        R                  " U5      (       a  [
        R                  " U5      OS$[
        R                  " U5      S;.-  n"S6S7U"0-  n[        [
        R                  " U5      5      eS =n=nng s  sn#f )<N©r?  )gÃõ(\�ÂÅ?g…ëQ¸…ã?g×£p=
×ë?r8  rÑ   r?  ©rË   çR¸…ëQà?r�  r8  r¾  r  r¿  ©r§   rÌ  rÐ   r8  rÀ  r>  r«   r‘  r’  r“  r”  r  r¦   ©zN%(py5)s
{%(py5)s = %(py0)s(%(py3)s
{%(py3)s = %(py1)s.pictures
})
} == %(py8)srÖ   r¥  r!  r"  r#  r•  ©z0%(py4)s
{%(py4)s = %(py2)s.meta
} is not %(py7)sr€   ©rÚ   r°   r  ú%(py9)srÛ   ©zW%(py15)s
{%(py15)s = %(py13)s
{%(py13)s = %(py11)s.meta
}.description
} is not %(py18)s©rÝ   rT  rV  Úpy18ú%(py20)sr«  r   úassert %(py23)sÚpy23r‚   ©zg%(py6)s
{%(py6)s = %(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.meta
}.description
}.text
} == %(py9)srÙ   rÜ   rÝ   ©z%(py5)s
{%(py5)s = %(py0)s(%(py1)s, %(py2)s, %(py3)s)
} == %(py13)s
{%(py13)s = %(py9)s
{%(py9)s = %(py7)s.approx
}(%(py11)s)
}r(   r=   r>   ro  ©	rØ   r¯   rÚ   rµ   r  r  rÛ   rÝ   rT  rU  rV  Úpart)zZ%(py15)s
{%(py15)s = %(py13)s
{%(py13)s = %(py11)s.meta
}.classification
} is not %(py18)srÑ   rš  r´   r¶   r·   Úrefsr@  )zN%(py2)s
{%(py2)s = %(py0)s.self_ref
} != %(py6)s
{%(py6)s = %(py4)s.self_ref
})rØ   rÚ   r°   r²   )rw   rŠ  r~  r+   r}   r¸   r¹   rÞ   rß   rà   rº   r»   r¼   rl   rÖ   rk   r¡  rj   r²  r)  r(   r=   r>   ro  Úapproxre   rd   r_   r  r£  r¤  )%ro   rz  r¥  r’  rÂ   râ   r¦  r+  rÆ   rä   r-  rÇ   r.  r€   r‚   rÁ   rÅ   rÀ   rY  r´  Ú@py_assert17rµ  r,  rå   Ú@py_format19r¸  Ú@py_format22rº  rã   ræ   Ú@py_assert10r[  r\  rÛ  rÄ   r�   rÜ  s%                                        rE   Ú3test_one_picture_over_two_figures_is_split_into_tworâ  Í  s
  € ô Ð?Ð@Ó
A€CäØä�qÐ2¸ÐPWÑXÜ�qÐ2¸ÐQXÑYðó	
ð€Eô $ C´
¸A¸3³Ó@�O€GàÐ�R‰<×××Òˆ6×××××Õˆ6×××Ñˆ6××Õ�R××××××ÑØ×ÑÐ%Œ3ÐÓ Ð% AÐ% AÑ%×%×%×%Ó%Ð ×%×%×%×%×%Õ%Œ3×%×%×%Ñ%Œ3×%×%×%×%×%Ö%ˆw×%×%×%Ñ%ˆw×%×%Õ%Ð×%×%Ó%Ð ×%×%Ó% A×%×%×%×%×%×%Õ%Ø×"Ñ"�K€DÙF�9‰9ÐF˜DÐF˜DÐ ×FÑF T§Y¡YÐF Y×%:Ñ%:ÐFÀ$ÐFÐ%:À$Ð%F×F×F×FÖFˆ9×F×F×F×F×FÕFˆ4×F×F×FÑFˆ4×F×FÕFˆ9×F×FÓF˜D×F×F×F×F×F×F×FÓFÐ%:À$×F×F×F×F×FÕF T×F×F×FÑF T×F×FÕF Y×F×FÓFÐ%:×F×FÓFÀ$×F×F×F×F×F×F×F×F×F×F×F×F×F×FÒFÙH�:‰:ÐH˜TÐH˜TÐ!×HÑH e§j¡jÐH j×&<Ñ&<ÐHÀDÐHÐ&<ÀDÐ&H×H×H×HÖHˆ:×H×H×H×H×HÕHˆ5×H×H×HÑHˆ5×H×HÕHˆ:×H×HÓH˜T×H×H×H×H×H×H×HÓHÐ&<ÀD×H×H×H×H×HÕH e×H×H×HÑH e×H×HÕH j×H×HÓHÐ&<×H×HÓHÀD×H×H×H×H×H×H×H×H×H×H×H×H×H×HÒHØ�9‰9Ð5× Ñ Ð5×%Ñ%Ð5¨Ð5Ð%¨Ñ5×5×5×5Ò5Ð%¨×5×5×5×5×5Õ5ˆ4×5×5×5Ñ5ˆ4×5×5Õ5ˆ9×5×5Ó5Ð ×5×5Ó5Ð%×5×5Ó5¨×5×5×5×5×5×5×5Ð5Ø�:‰:Ð7×!Ñ!Ð7×&Ñ&Ð7¨-Ð7Ð&¨-Ñ7×7×7×7Ò7Ð&¨-×7×7×7×7×7Õ7ˆ5×7×7×7Ñ7ˆ5×7×7Õ7ˆ:×7×7Ó7Ð!×7×7Ó7Ð&×7×7Ó7¨-×7×7×7×7×7×7×7Ð7ô �Dœ&¤&Ó)ÐT¬V¯]©]ÐTÐ;SÐT©]Ð;SÓ-TÐTÐ)Ð-TÑT×T×T×TÓTÐ)Ð-T×T×T×T×T×TÕTŒ8×T×T×TÑTŒ8×T×T×T×T×TÖT�D×T×T×TÑT�D×T×T×T×T×TÖTœ&×T×T×TÑTœ&×T×T×T×T×TÖT¤&×T×T×TÑT¤&×T×TÕTÐ)×T×T×T×T×TÔT¬V×T×T×TÑT¬V×T×TÕT¨]×T×TÓTÐ;S×T×TÓTÐ-T×T×T×T×T×T×T×TÐTÜ�Eœ6¤6Ó*ÐU¬f¯m©mÐUÐ<TÐU©mÐ<TÓ.UÐUÐ*Ð.UÑU×U×U×UÓUÐ*Ð.U×U×U×U×U×UÕUŒ8×U×U×UÑUŒ8×U×U×U×U×UÖU�E×U×U×UÑU�E×U×U×U×U×UÖUœ6×U×U×UÑUœ6×U×U×U×U×UÖU¤6×U×U×UÑU¤6×U×UÕUÐ*×U×U×U×U×UÔU¬f×U×U×UÑU¬f×U×UÕU¨m×U×UÓUÐ<T×U×UÓUÐ.U×U×U×U×U×U×U×UÐUð ”ˆÙMˆt�y‰yÐM ÐM Ð$×MÑM¨¯©ÐM¨×)AÑ)AÐMÈÐMÐ)AÈÐ)M×M×M×MÖMˆy×M×M×M×M×MÕMˆt×M×M×MÑMˆt×M×MÕMˆy×M×MÓM ×M×M×M×M×M×M×MÓMÐ)AÈ×M×M×M×M×MÕM¨×M×M×MÑM¨×M×MÕM¨×M×MÓMÐ)A×M×MÓMÈ×M×M×M×M×M×M×M×M×M×M×M×M×M×MÒMØ�y‰y×'Ñ'×3Ñ3°AÑ6ÐPÐ6×AÑAÐPÀ[ÐPÐAÀ[ÑP×P×P×PÒPÐAÀ[×P×PÔPÐ6×P×PÓPÐA×P×PÓPÀ[×P×P×P×P×P×P×PÑPñ ð
 $)¨¡8×#3Ò#3Ó4Ò#3˜aˆA�MŒMÑ#3€DÐ4Ø—M‘M 5§>¡>Ð2Ð2ˆ4Ð2Ñ2×2×2×2Ò2ˆ4Ð2×2×2×2×2×2Õ2ˆ4×2×2×2Ñ2ˆ4×2×2Õ2Ð2×2×2×2×2×2×2Ñ2Ø�=‰=Ð*ŸN™NÐ*ˆ=˜NÑ*×*×*×*Ó*ˆ=˜N×*×*×*×*×*Õ*ˆ4×*×*×*Ñ*ˆ4×*×*Õ*ˆ=×*×*×*×*×*Ô*˜E×*×*×*Ñ*˜E×*×*Õ*˜N×*×*×*×*×*×*Õ*ùò 5s   ÁBAJc                 ó  • [        / SQ5      n [        S[        SSSSS9[        SSSS	S9[        SS
SSS9/5      /n[        X[	        S/5      5      u  p#/ oCU:H  oU(       d¥  [
        R                  " SU4SX445      S[        R                  " 5       ;   d  [
        R                  " U5      (       a  [
        R                  " U5      OS[
        R                  " U5      S.-  nSSU0-  n[        [
        R                  " U5      5      eS =pTUR                   Vs0 s H  oˆR                  U_M     n	nUR                  R                    V
s/ s H"  oªR"                  U	;   d  M  XšR"                     PM$     nn
U Vs/ s HI  nUR$                  b7  UR$                  R&                  b   UR$                  R&                  R(                  OS PMK     nn/ SQoLU:H  oU(       d¥  [
        R                  " SU4SXÄ45      S[        R                  " 5       ;   d  [
        R                  " U5      (       a  [
        R                  " U5      OS[
        R                  " U5      S.-  nSSU0-  n[        [
        R                  " U5      5      eS =pTg s  snf s  sn
f s  snf )N))r?  )rc   çR¸…ëQÈ?gÃõ(\�Âí?r§   r¨   rÊ  )r?  )rÒ   ç®Gázî?g)\�Âõ(Ì?g
×£p=
ï?rª   r?  rË  r¾  r  r¿  )rÌ  rÓ   rÐ   rÌ  Ú	waterfallr>  rÍ  rÀ  zfig-3r«   r‘  r’  r“  r”  r  )ræ  r¾  rÀ  NrÁ  )rw   rŠ  r~  r+   r}   r¸   r¹   rÞ   rß   rà   rº   r»   r¼   rl   r¤  ÚbodyÚchildrenÚcrefrk   r¡  r)  )ro   rz  r¥  r’  rÂ   râ   r¦  r+  rp   Úby_refÚchildÚin_bodyrÁ  s                rE   Ú5test_a_split_keeps_the_regions_reading_order_positionrí  ô  sÞ  € Ü
ò	
ó€Cô 	Øä�qÐ2¸ÐPWÑXÜ�qÐ2¸ÈwÑWÜ�qÐ2¸ÐQXÑYðó	
ð	€Eô $ C´
¸A¸3³Ó@�O€GàÐ�R‰<×××Òˆ6×××××Õˆ6×××Ñˆ6××Õ�R××××××Ñð &-×%5Ò%5Ó6Ò%5 �j‰j˜!ŠmÑ%5€FÐ6Ø/6¯|©|×/DÒ/DÓ]Ò/D eÏ
É
ÐV\ÑH\Ó!ˆv—j‘jÔ!Ñ/D€GÐ]ñ óâˆAð %&§F¡FÑ$6¸1¿6¹6×;MÑ;MÑ;Yˆ�‰×	Ñ	×	 Ò	 Ð_cÒ	cÙð 
ð ò EÐDÐDÑD×D×D×DÒDˆ5×D×D×D×D×DÕDˆ5×D×D×DÑDˆ5×D×DÕDÐD×D×D×D×D×D×DÒDùò 7ùÚ]ùòs   ÄI>ÅJÅJÅ5AJc                ór  • SSK nUR                  5       nUR                  [        [        S9nUR                  UR                  SS[        S-  [        5      SSS9  UR                  UR                  [        S-  S[        [        5      SSS9  UR                  [        U 5      5        UR                  5         U $ )a  A one-page PDF whose left half is solid red and right half solid blue.

A split part's bitmap can then be checked by colour: a part cut from the left
box must be red throughout, and one cut from the right box blue, while the
merged region's bitmap would contain both.
r   NrL   r¦   )r”   r   r   )ÚcolorÚfill)r   r   r”   )
ÚfitzÚopenÚnew_pager=   r>   Ú	draw_rectÚRectÚsaverR  Úclose)Údestrñ  ro   rt   s       rE   Ú_two_panel_pdfrù    sŒ   € ó à
�)‰)‹+€CØ�<‰<œf¬Vˆ<Ð4€DØ‡N�N�4—9‘9˜Q ¤6¨A¡:¬vÓ6¸dÈ€NÑSØ‡N�N�4—9‘9œV a™Z¨¬F´FÓ;À4Èi€NÑXØ‡H�HŒS�‹YÔØ‡I�I„KØ€KrG   c                óŒ  • U R                   nSo!ULo3(       d¥  [        R                  " SU4SX45      S[        R                  " 5       ;   d  [        R
                  " U5      (       a  [        R                  " U5      OS[        R                  " U5      S.-  nSSU0-  n[        [        R                  " U5      5      eS=p2UR                  S5      nUR                  u  pxS	US
-  US
-
  4 V	V
s1 s HH  n	S	US
-  US
-
  4  H5  n
[        [        [        [        [        4   UR                  Xš45      5      iM7     MJ     sn
n	$ s  sn
n	f )zGThe distinct colours in a stored bitmap, sampled across its whole area.Nr•  )z%(py0)s is not %(py3)sÚimager“  r”  r  ÚRGBr”   r¦   )Ú	pil_imager¸   r¹   rÞ   rß   rà   rº   r»   r¼   ÚconvertrQ   r
   r	   ÚintÚgetpixel)Úrefrû  rÂ   râ   r¦  r+  ÚrgbrM   rN   ÚxÚys              rE   Ú_coloursr  (  sî   € à�M‰M€EØÐ˜Ð×××Òˆ5×××××Õˆ5×××Ñˆ5××Õ˜××××××ÑØ
�-‰-˜Ó
€CØ—H‘H�M€Eð �U˜a‘Z ¨¡Ñ+ôâ+ˆAØ�V˜q‘[ &¨1¡*Ô-ˆAô 	ŒU”3œœS�=Ñ! 3§<¡<°°Ó#7Ö8á-ñ 	9Ù+òð ùó s   Ã-AE c                 óœ   • [        S/5      n U R                  S   n[        R                  " [        R
                  " SSS5      SS9Ul        U $ )zIOne picture spanning both panels, carrying a bitmap of the merged region.)r”   ©r£   rD  r^   r  rÑ   r   rü  )éP   é<   ©r   éÿ   r   éH   )rû  Údpi)rw   rl   r   Úfrom_pilÚPILImageÚnewrû  )ro   rv   s     rE   Ú_merged_region_documentr  5  sD   € ä
Ð?Ð@Ó
A€CØ�l‰l˜1‰o€GÜ×%Ò%¬H¯LªL¸ÀÈ+Ó,VÐ\^Ñ_€G„MØ€JrG   c                óö  • [        U S-  5      n[        5       n[        SSSSS9[        SSSS	S9/n[        U[	        SU5      /[        S/5      US
9u  pE/ oeU:H  ow(       d¥  [        R                  " SU4SXV45      S[        R                  " 5       ;   d  [        R                  " U5      (       a  [        R                  " U5      OS[        R                  " U5      S.-  nSSU0-  n	[        [        R                  " U	5      5      eS =pvUR                  u  p«/ ozR                  nS oÜULoîoþ(       a  UR                  nS nUULnUnU(       Gd   [        R                  " SU4SXÍ45      S[        R                  " 5       ;   d  [        R                  " U
5      (       a  [        R                  " U
5      OS[        R                  " U5      [        R                  " U5      S.-  nSSU0-  nUR!                  U5        U(       a­  [        R                  " SW4SWW45      S[        R                  " 5       ;   d  [        R                  " U5      (       a  [        R                  " U5      OS[        R                  " U5      [        R                  " U5      S.-  nSSU0-  nUR!                  U5        [        R"                  " US5      0 -  nSSU0-  n[        [        R                  " U5      5      eS =n=n=n=n=n=n=nnU
R                  n[%        U5      nS1nUU:H  oÝ(       Gd#  [        R                  " SU4S UU45      S![        R                  " 5       ;   d  [        R                  " [$        5      (       a  [        R                  " [$        5      OS!S[        R                  " 5       ;   d  [        R                  " U
5      (       a  [        R                  " U
5      OS[        R                  " U5      [        R                  " U5      [        R                  " U5      S".-  nS#S$U0-  n[        [        R                  " U5      5      eS =n=n=nnUR                  n[%        U5      nS%1nUU:H  oÝ(       Gd#  [        R                  " SU4S UU45      S![        R                  " 5       ;   d  [        R                  " [$        5      (       a  [        R                  " [$        5      OS!S[        R                  " 5       ;   d  [        R                  " U5      (       a  [        R                  " U5      OS[        R                  " U5      [        R                  " U5      [        R                  " U5      S".-  nS#S$U0-  n[        [        R                  " U5      5      eS =n=n=nnS&oúR                  n[%        U5      nUU;  of(       Gd#  [        R                  " S'U4S(UU45      [        R                  " U5      S![        R                  " 5       ;   d  [        R                  " [$        5      (       a  [        R                  " [$        5      OS!S[        R                  " 5       ;   d  [        R                  " U
5      (       a  [        R                  " U
5      OS[        R                  " U5      [        R                  " U5      S).-  nS#S$U0-  n[        [        R                  " U5      5      eS =n=n=nn/ ozR                  oÌR&                  nS*nUU:H  nUnU(       a!  UR                  nUR&                  nS*nUU:H  n U nU(       GdË  [        R                  " SU4S+UU45      S[        R                  " 5       ;   d  [        R                  " U
5      (       a  [        R                  " U
5      OS[        R                  " U5      [        R                  " U5      [        R                  " U5      S,.-  nS-S.U0-  n!UR!                  U!5        U(       aÂ  [        R                  " SW 4S/WW45      S[        R                  " 5       ;   d  [        R                  " U5      (       a  [        R                  " U5      OS[        R                  " U5      [        R                  " U5      [        R                  " U5      S0.-  n"S1S2U"0-  n#UR!                  U#5        [        R"                  " US5      0 -  n$S3S4U$0-  n%[        [        R                  " U%5      5      eS =n=n=n=n=n=n=n=n=n nU
R                  owR(                  oÌR*                  n[,        R.                  n&S5n'U'[0        -  nS6nU&" UUS79n(UU(:H  nU(       GdÊ  [        R                  " SU4S8UU(45      S[        R                  " 5       ;   d  [        R                  " U
5      (       a  [        R                  " U
5      OS[        R                  " U5      [        R                  " U5      [        R                  " U5      S9[        R                  " 5       ;   d  [        R                  " [,        5      (       a  [        R                  " [,        5      OS9[        R                  " U&5      [        R                  " U'5      S:[        R                  " 5       ;   d  [        R                  " [0        5      (       a  [        R                  " [0        5      OS:[        R                  " U5      [        R                  " U(5      S;.
-  nS<S=U0-  n"[        [        R                  " U"5      5      eS =n=n=n=n=n&=n'=n=nn(U
R                  owR(                  oÌR2                  n[,        R.                  n&S>n'U'[4        -  nS6nU&" UUS79n(UU(:H  nU(       GdÊ  [        R                  " SU4S?UU(45      S[        R                  " 5       ;   d  [        R                  " U
5      (       a  [        R                  " U
5      OS[        R                  " U5      [        R                  " U5      [        R                  " U5      S9[        R                  " 5       ;   d  [        R                  " [,        5      (       a  [        R                  " [,        5      OS9[        R                  " U&5      [        R                  " U'5      S@[        R                  " 5       ;   d  [        R                  " [4        5      (       a  [        R                  " [4        5      OS@[        R                  " U5      [        R                  " U(5      S;.
-  nS<S=U0-  n"[        [        R                  " U"5      5      eS =n=n=n=n=n&=n'=n=nn(g )ANztwo-panel.pdfr”   ©rË   rD  rÍ   r  ú
left panelr  r¿  ©rÏ   rD  rÐ   r  úright panelr>  )Úsourcer«   r‘  r’  r“  r”  r  r•  )z1%(py4)s
{%(py4)s = %(py2)s.image
} is not %(py7)sr€   rÐ  rÑ  rÛ   )z5%(py13)s
{%(py13)s = %(py11)s.image
} is not %(py16)sr‚   )rÝ   rT  Úpy16z%(py18)srÔ  r   zassert %(py21)sÚpy21)r  r   r   ©zK%(py5)s
{%(py5)s = %(py0)s(%(py3)s
{%(py3)s = %(py1)s.image
})
} == %(py8)sr  r!  r"  r#  )r   r   r  r
  )únot in)zO%(py1)s not in %(py8)s
{%(py8)s = %(py3)s(%(py6)s
{%(py6)s = %(py4)s.image
})
}rn  r  )zF%(py6)s
{%(py6)s = %(py4)s
{%(py4)s = %(py2)s.image
}.dpi
} == %(py9)s)rÚ   r°   r²   rÛ   z%(py11)srÝ   )zL%(py17)s
{%(py17)s = %(py15)s
{%(py15)s = %(py13)s.image
}.dpi
} == %(py20)sr©  r¬  r­  r®  r¯  r¤   r¦   )Úabs)z¼%(py6)s
{%(py6)s = %(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.image
}.size
}.width
} == %(py18)s
{%(py18)s = %(py10)s
{%(py10)s = %(py8)s.approx
}((%(py12)s * %(py13)s), abs=%(py16)s)
}ro  r=   )
rØ   rÚ   r°   r²   r·   r#  rb  rT  r  rÔ  zassert %(py20)sr«  ç333333ã?)z½%(py6)s
{%(py6)s = %(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.image
}.size
}.height
} == %(py18)s
{%(py18)s = %(py10)s
{%(py10)s = %(py8)s.approx
}((%(py12)s * %(py13)s), abs=%(py16)s)
}r>   )rù  r  r~  r+   rŠ  r}   r¸   r¹   rÞ   rß   rà   rº   r»   r¼   rl   rû  rj   r²  r  r  rQ   rM   ro  rÝ  r=   rN   r>   ))rS  Úpdfro   r  r¥  r’  rÂ   râ   r¦  r+  r€   r‚   rÁ   r-  rÅ   rÀ   rY  Ú@py_assert15r´  r,  rå   Ú@py_format17rß  Ú@py_format20rà  rÆ   rä   rÇ   r.  rã   rµ  r¶  r·  ræ   r¸  r¹  rº  r»  rX  rZ  rÞ  s)                                            rE   Ú7test_a_split_part_gets_its_own_bitmap_cut_from_the_pager"  =  sD  € Ü
˜ OÑ3Ó
4€CÜ
!Ó
#€CäˆqÐ*°ÈÑPÜˆqÐ*°ÈÑQð€Gô
 $ C¬%°°7Ó*;Ð)<¼jÈ!È»oÐVYÑZ�O€GàÐ�R‰<×××Òˆ6×××××Õˆ6×××Ñˆ6××Õ�R××××××ÑØ×"Ñ"�K€DÙ=�:‰:Ð=˜TÐ=˜TÐ!×= e§k¡kÐ=¸Ð= k¸Ð&=×=×=×=Ö=ˆ:×=×=×=×=×=Õ=ˆ4×=×=×=Ñ=ˆ4×=×=Õ=ˆ:×=×=Ó=˜T×=×=×=×=×=×=×=Ó= k¸×=×=×=×=×=Õ= e×=×=×=Ñ= e×=×=Õ= k×=×=Ó=¸×=×=×=×=×=×=×=×=×=×=×=×=×=×=Ð=ð —J‘JÐ0Œ8�JÓÐ0 K =Ð0Ð =Ñ0×0×0×0Ó0Ð =×0×0×0×0×0Õ0Œ8×0×0×0Ñ0Œ8×0×0×0×0×0Ö0�D×0×0×0Ñ0�D×0×0Õ0�J×0×0Ó0Ð×0×0Ó0 =×0×0×0×0×0×0Ö0Ø—K‘KÐ1Œ8�KÓ Ð1 [ MÐ1Ð  MÑ1×1×1×1Ó1Ð  M×1×1×1×1×1Õ1Œ8×1×1×1Ñ1Œ8×1×1×1×1×1Ö1�E×1×1×1Ñ1�E×1×1Õ1�K×1×1Ó1Ð ×1×1Ó1 M×1×1×1×1×1×1Ö1àÐ2§z¡zÐ2œh zÓ2Ð2ˆ;Ð2Ñ2×2×2×2Ó2ˆ;Ð2×2×2Ô2ˆ;×2×2×2×2×2Ô2œh×2×2×2Ñ2œh×2×2×2×2×2Ö2 t×2×2×2Ñ2 t×2×2Õ2 z×2×2Ó2Ð2×2×2×2×2×2×2Ö2ñ :�:‰:Ð9�>‰>Ð9˜RÐ9ˆ>˜RÑ×9Ñ9 E§K¡KÐ9 K§O¡OÐ9°rÐ9 O°rÑ$9×9×9×9Ö9ˆ>˜R×9×9×9×9×9Õ9ˆ4×9×9×9Ñ9ˆ4×9×9Õ9ˆ:×9×9Ó9ˆ>×9×9Ó9˜R×9×9×9×9×9×9×9Ó9 O°r×9×9×9×9×9Õ9 E×9×9×9Ñ9 E×9×9Õ9 K×9×9Ó9 O×9×9Ó9°r×9×9×9×9×9×9×9×9×9×9×9×9×9×9Ô9Ø�:‰:ÐG�?‰?ÐG× Ñ ÐG¤F§M¡MÐG°$ÐG°$¼±-ÐGÀQÐG¡M°-ÀQÑ$GÐGÐ Ð$GÑG×G×G×GÔGÐ Ð$G×G×G×G×G×GÕGˆ4×G×G×GÑGˆ4×G×GÕGˆ:×G×GÓGˆ?×G×GÓGÐ ×G×G×G×G×GÔG¤F×G×G×GÑG¤F×G×GÕG M×G×GÓG°$×G×G×G×G×GÔG¼×G×G×GÑG¼×G×GÕGÀQ×G×GÓGÐ$G×G×G×G×G×G×G×G×GÐGØ�:‰:ÐH�?‰?ÐH×!Ñ!ÐH¤V§]¡]ÐH°4ÐH°4¼&±=ÐHÀaÐH¡]°=ÀaÑ%HÐHÐ!Ð%HÑH×H×H×HÔHÐ!Ð%H×H×H×H×H×HÕHˆ4×H×H×HÑHˆ4×H×HÕHˆ:×H×HÓHˆ?×H×HÓHÐ!×H×H×H×H×HÔH¤V×H×H×HÑH¤V×H×HÕH ]×H×HÓH°4×H×H×H×H×HÔH¼&×H×H×HÑH¼&×H×HÕHÀa×H×HÓHÐ%H×H×H×H×H×H×H×H×HÑHrG   c                óÀ  • U n[        5       n[        SSSSS9[        SSSSS9/n[        U[        SU5      /[	        S/5      5      u  pE/ oeU:H  ow(       d¥  [
        R                  " S	U4S
XV45      S[        R                  " 5       ;   d  [
        R                  " U5      (       a  [
        R                  " U5      OS[
        R                  " U5      S.-  nSSU0-  n	[        [
        R                  " U	5      5      eS =pvUR                  n[        U5      n
SoºU:H  oÌ(       Gd"  [
        R                  " S	U4SX«45      S[        R                  " 5       ;   d  [
        R                  " [        5      (       a  [
        R                  " [        5      OSS[        R                  " 5       ;   d  [
        R                  " U5      (       a  [
        R                  " U5      OS[
        R                  " U5      [
        R                  " U
5      [
        R                  " U5      S.-  nSSU0-  n[        [
        R                  " U5      5      eS =n=n
=pËS UR                   5       n[        U5      oÿ(       d¢  SS[        R                  " 5       ;   d  [
        R                  " [        5      (       a  [
        R                  " [        5      OS[
        R                  " U5      [
        R                  " U5      S.-  n[        [
        R                  " U5      5      eS =pU Vs/ s H  nUR                   PM     nnUR                   Vs/ s H  nUR"                  PM     nnUU:H  of(       dp  [
        R                  " S	U4SUU45      [
        R                  " U5      [
        R                  " U5      S.-  nSSU0-  n[        [
        R                  " U5      5      eS =n=pog s  snf s  snf )Nr”   r  r  r  r¿  r  r  r>  r«   r‘  r’  r“  r”  r  r¦   rÎ  rÖ   r¥  r!  r"  r#  c              3  ó<   #   • U  H  oR                   S L v •  M     g 7fry   )rû  )r�   rp   s     rE   r‘   ÚPtest_a_split_without_the_source_keeps_boxes_and_drops_bitmaps.<locals>.<genexpr>g  s   é € Ð9Ò(8 1�w‰w˜$�Ò(8ùs   ‚z,assert %(py4)s
{%(py4)s = %(py0)s(%(py2)s)
}Úallr&  r­   r®   r±   r²   )r  r~  r+   rŠ  r}   r¸   r¹   rÞ   rß   rà   rº   r»   r¼   rl   rÖ   r&  r£  r¤  )rS  Ú_ro   r  r¥  r’  rÂ   râ   r¦  r+  rÆ   rä   r-  rÇ   r.  rÁ   rÃ   r�   rÀ   rp   rÄ   s                        rE   Ú=test_a_split_without_the_source_keeps_boxes_and_drops_bitmapsr(  Y  sP  € Ø€AÜ
!Ó
#€CäˆqÐ*°ÈÑPÜˆqÐ*°ÈÑQð€Gô
 $ C¬%°°7Ó*;Ð)<¼jÈ!È»oÓN�O€Gð Ð�R‰<×××Òˆ6×××××Õˆ6×××Ñˆ6××Õ�R××××××ÑØ×ÑÐ%Œ3ÐÓ Ð% AÐ% AÑ%×%×%×%Ó%Ð ×%×%×%×%×%Õ%Œ3×%×%×%Ñ%Œ3×%×%×%×%×%Ö%ˆw×%×%×%Ñ%ˆw×%×%Õ%Ð×%×%Ó%Ð ×%×%Ó% A×%×%×%×%×%×%Õ%Ù9¨×(8Ò(8Ó9Ð9Œ3Ð9Ó9Ð9Õ9×9×9×9×9×9Ñ9Œ3×9×9×9Ñ9Œ3×9×9Õ9Ð9×9×9Ó9Ð9×9×9×9×9×9Ò9Ù#*Ó+¢7˜aˆA�MŒM¡7ÐUÐ+ÀG×DTÒDTÓ/UÒDT¸q°·
´
ÑDTÐUÐ/UÐ+Ð/UÑU×U×U×UÒUÐ+Ð/U×U×UÔUÐ+×U×UÓUÐ/U×U×U×U×U×U×UÔUùÒ+ùÒ/Us   ÌOÌ=Oc                 óÜ  • [        5       n [        U [        S[        SSSS9/5      /[	        S/5      5      u  p/ o2U:H  oD(       d¥  [
        R                  " SU4SX#45      S[        R                  " 5       ;   d  [
        R                  " U5      (       a  [
        R                  " U5      OS[
        R                  " U5      S.-  nS	S
U0-  n[        [
        R                  " U5      5      eS =pCUR                  n[        U5      nSo‡U:H  o™(       Gd"  [
        R                  " SU	4SXx45      S[        R                  " 5       ;   d  [
        R                  " [        5      (       a  [
        R                  " [        5      OSS[        R                  " 5       ;   d  [
        R                  " U5      (       a  [
        R                  " U5      OS[
        R                  " U5      [
        R                  " U5      [
        R                  " U5      S.-  n
SSU
0-  n[        [
        R                  " U5      5      eS =n=n=p˜UR                  S   nUR                  nS otULoÝ(       dº  [
        R                  " SU4SXG45      S[        R                  " 5       ;   d  [
        R                  " U5      (       a  [
        R                  " U5      OS[
        R                  " U5      [
        R                  " U5      S.-  nSSU0-  n[        [
        R                  " U5      5      eS =n=p×UR                  n[!        U5      nS1o‡U:H  o™(       Gd"  [
        R                  " SU	4SXx45      S[        R                  " 5       ;   d  [
        R                  " [         5      (       a  [
        R                  " [         5      OSS[        R                  " 5       ;   d  [
        R                  " U5      (       a  [
        R                  " U5      OS[
        R                  " U5      [
        R                  " U5      [
        R                  " U5      S.-  n
SSU
0-  n[        [
        R                  " U5      5      eS =n=n=p˜g )Nr”   r  z	one chart)r)  r«   r‘  r’  r“  r”  r  rÎ  rÖ   r¥  r!  r"  r#  r   r•  )z1%(py2)s
{%(py2)s = %(py0)s.image
} is not %(py5)srv   r  r  r  r
  r  r  )r  r+   rŠ  r~  r}   r¸   r¹   rÞ   rß   rà   rº   r»   r¼   rl   rÖ   rû  r  )ro   r¥  r’  rÂ   râ   r¦  r+  rÆ   rä   r-  rÇ   r.  rv   rÁ   r,  s                  rE   Ú6test_an_unsplit_picture_keeps_the_bitmap_the_parse_cutr*  k  so  € Ü
!Ó
#€CÜ#ØŒe�Aœ˜qÐ":ÀÑMÐNÓOÐPÔR\Ð^_Ð]`ÓRaó�O€Gð Ð�R‰<×××Òˆ6×××××Õˆ6×××Ñˆ6××Õ�R××××××ÑØ×ÑÐ%Œ3ÐÓ Ð% AÐ% AÑ%×%×%×%Ó%Ð ×%×%×%×%×%Õ%Œ3×%×%×%Ñ%Œ3×%×%×%×%×%Ö%ˆw×%×%×%Ñ%ˆw×%×%Õ%Ð×%×%Ó%Ð ×%×%Ó% A×%×%×%×%×%×%Õ%Ø×Ñ˜qÑ!€GØ�=‰=Ð$ Ð$ Ð$×$×$×$Ò$ˆ=×$×$×$×$×$Õ$ˆ7×$×$×$Ñ$ˆ7×$×$Õ$ˆ=×$×$Ó$ ×$×$×$×$×$×$Ó$Ø—M‘MÐ3Œ8�MÓ"Ð3 { mÐ3 mÑ3×3×3×3Ó3Ð"×3×3×3×3×3Õ3Œ8×3×3×3Ñ3Œ8×3×3×3×3×3Ö3�G×3×3×3Ñ3�G×3×3Õ3�M×3×3Ó3Ð"×3×3Ó3 m×3×3×3×3×3×3Ö3rG   c                 óN  • [        SS/5      n [        SSSSS9/n[        U [        SU5      /[	        S/5      5      u  p#/ oCU:H  oU(       d¥  [
        R                  " SU4S	X445      S
[        R                  " 5       ;   d  [
        R                  " U5      (       a  [
        R                  " U5      OS
[
        R                  " U5      S.-  nSSU0-  n[        [
        R                  " U5      5      eS =pTUR                  n[        U5      nSo˜U	:H  oª(       Gd"  [
        R                  " SU
4SX‰45      S[        R                  " 5       ;   d  [
        R                  " [        5      (       a  [
        R                  " [        5      OSS[        R                  " 5       ;   d  [
        R                  " U5      (       a  [
        R                  " U5      OS[
        R                  " U5      [
        R                  " U5      [
        R                  " U	5      S.-  nSSU0-  n[        [
        R                  " U5      5      eS =n=n=p©UR                  S   n/ o]R                  nS o®U
LoÿnU(       a   UR                  nUR                   nS nUULnUnU(       Gdµ  [
        R                  " SU4SXê45      S[        R                  " 5       ;   d  [
        R                  " U5      (       a  [
        R                  " U5      OS[
        R                  " U5      [
        R                  " U
5      S.-  nSSU0-  nUR#                  U5        U(       aÂ  [
        R                  " SW4SWW45      S[        R                  " 5       ;   d  [
        R                  " U5      (       a  [
        R                  " U5      OS[
        R                  " W5      [
        R                  " U5      [
        R                  " U5      S.-  nSSU0-  nUR#                  U5        [
        R$                  " US5      0 -  nS S!U0-  n[        [
        R                  " U5      5      eS =n=n=n=n=n
=n=n=nnUR                  oUR                   oîR&                  nSnUU:H  o™(       då  [
        R                  " SU	4S"UU45      S[        R                  " 5       ;   d  [
        R                  " U5      (       a  [
        R                  " U5      OS[
        R                  " U5      [
        R                  " U5      [
        R                  " U5      [
        R                  " U5      S#.-  nS$S%U0-  n[        [
        R                  " U5      5      eS =n=n=n=n	n[)        U[*        [,        5      n[.        R0                  nSnU" U5      nUU:H  oª(       Gd1  [
        R                  " SU
4S&UU45      S'[        R                  " 5       ;   d  [
        R                  " [(        5      (       a  [
        R                  " [(        5      OS'S[        R                  " 5       ;   d  [
        R                  " U5      (       a  [
        R                  " U5      OSS([        R                  " 5       ;   d  [
        R                  " [*        5      (       a  [
        R                  " [*        5      OS(S)[        R                  " 5       ;   d  [
        R                  " [,        5      (       a  [
        R                  " [,        5      OS)[
        R                  " U5      S*[        R                  " 5       ;   d  [
        R                  " [.        5      (       a  [
        R                  " [.        5      OS*[
        R                  " U5      [
        R                  " U5      [
        R                  " U5      S+.	-  nS,S-U0-  n[        [
        R                  " U5      5      eS =n=n
=n=nnUR                  oUR2                  nS o®U
Loÿ(       dÏ  [
        R                  " SU4S.Xê45      S[        R                  " 5       ;   d  [
        R                  " U5      (       a  [
        R                  " U5      OS[
        R                  " U5      [
        R                  " U5      [
        R                  " U
5      S/.-  nS0SU0-  n[        [
        R                  " U5      5      eS =n=n=púUR                  R2                  R4                  S   nUR6                  nS1oôU:H  oˆ(       d„  [
        R                  " SU4S2XO45      [
        R                  " U5      [
        R                  " U5      [
        R                  " U5      S3.-  n S4S5U 0-  n[        [
        R                  " U5      5      eS =n=n=p�US   nUR8                  oMR:                  o¤U
:H  oˆ(       dÏ  [
        R                  " SU4S6XJ45      [
        R                  " U5      [
        R                  " U5      S[        R                  " 5       ;   d  [
        R                  " U5      (       a  [
        R                  " U5      OS[
        R                  " U
5      S7.-  nS0SU0-  n[        [
        R                  " U5      5      eS =n=n=pŠg )8N©rÊ   )rÔ   g
×£p=
×?r§   g333333ë?r¨   ©rÊ   )gHáz®Gá?ç)\�Âõ(Ü?rÐ   çö(\�Âõè?r¨   rÊ   ©rË   rÌ   r4  g…ëQ¸…ë?úboth bar chartsr  r¿  r«   r‘  r’  r“  r”  r  r”   rÎ  rÖ   r¥  r!  r"  r#  r   r•  rÏ  rv   rÐ  rÑ  rÛ   rÒ  rÓ  rÕ  r«  rÖ  r×  rØ  rÙ   rÜ   rÝ   rÙ  r(   r=   r>   ro  rÚ  rU  rV  r™  r—  r˜  r¨   rš  r´   r¶   r·   rŸ  r   )rw   r~  r+   rŠ  r}   r¸   r¹   rÞ   rß   rà   rº   r»   r¼   rl   rÖ   rk   r¡  rj   r²  r)  r(   r=   r>   ro  rÝ  re   rd   r_   r£  r¤  )!ro   r  r¥  r’  rÂ   râ   r¦  r+  rÆ   rä   r-  rÇ   r.  rv   rÁ   rÅ   rÀ   rY  r´  rÞ  rµ  r,  rå   rß  r¸  rà  rº  rã   ræ   rá  r[  r\  rÄ   s!                                    rE   Ú8test_two_pictures_the_scan_read_as_one_figure_become_oner2  w  sÛ  € ô à6Ø6ð	
ó€Cô �aÐ1Ð8IÐT[Ñ\Ð]€Gä# C¬%°°7Ó*;Ð)<¼jÈ!È»oÓN�O€GàÐ�R‰<×××Òˆ6×××××Õˆ6×××Ñˆ6××Õ�R××××××ÑØ×ÑÐ%Œ3ÐÓ Ð% AÐ% AÑ%×%×%×%Ó%Ð ×%×%×%×%×%Õ%Œ3×%×%×%Ñ%Œ3×%×%×%×%×%Ö%ˆw×%×%×%Ñ%ˆw×%×%Õ%Ð×%×%Ó%Ð ×%×%Ó% A×%×%×%×%×%×%Õ%Ø×Ñ˜qÑ!€GÙL�<‰<ÐL˜tÐL˜tÐ#×LÐL¨¯©ÐL¨×(@Ñ(@ÐLÈÐLÐ(@ÈÐ(L×L×L×LÖLˆ<×L×L×L×L×LÕLˆ7×L×L×LÑLˆ7×L×LÕLˆ<×L×LÓL˜t×L×L×L×L×L×L×LÓLÐ(@È×L×L×L×L×LÕL¨×L×L×LÑL¨×L×LÕL¨×L×LÓLÐ(@×L×LÓLÈ×L×L×L×L×L×L×L×L×L×L×L×L×L×LÒLØ�<‰<Ð=×#Ñ#Ð=×(Ñ(Ð=Ð,=Ð=Ð(Ð,=Ñ=×=×=×=Ò=Ð(Ð,=×=×=×=×=×=Õ=ˆ7×=×=×=Ñ=ˆ7×=×=Õ=ˆ<×=×=Ó=Ð#×=×=Ó=Ð(×=×=Ó=Ð,=×=×=×=×=×=×=×=Ð=ä�GœV¤VÓ,ÐW´·±ÐWÐ>VÐW±Ð>VÓ0WÐWÐ,Ð0WÑW×W×W×WÓWÐ,Ð0W×W×W×W×W×WÕWŒ8×W×W×WÑWŒ8×W×W×W×W×WÖW�G×W×W×WÑW�G×W×W×W×W×WÖWœV×W×W×WÑWœV×W×W×W×W×WÖW¤V×W×W×WÑW¤V×W×WÕWÐ,×W×W×W×W×WÔW´×W×W×WÑW´×W×WÕW°×W×WÓWÐ>V×W×WÓWÐ0W×W×W×W×W×W×W×WÐWØ�<‰<Ð2×&Ñ&Ð2¨dÐ2¨dÐ2×2×2×2Ò2Ð&×2×2×2×2×2Õ2ˆ7×2×2×2Ñ2ˆ7×2×2Õ2ˆ<×2×2Ó2Ð&×2×2Ó2¨d×2×2×2×2×2×2Õ2Ø�<‰<×&Ñ&×2Ñ2°1Ñ5ÐOÐ5×@Ñ@ÐOÀKÐOÀKÑO×O×O×OÒOÐ@×O×OÔOÐ5×O×OÓOÐ@×O×OÓOÀK×O×O×O×O×O×OÕOØ�1‰:Ð5ˆ:×!Ñ!Ð5×%5Ñ%5Ð5Ð%5Ñ5×5×5×5Ò5Ð!×5×5Ô5ˆ:×5×5Ó5Ð!×5×5×5×5×5Ô5 W×5×5×5Ñ5 W×5×5Õ5Ð%5×5×5×5×5×5×5Ö5rG   c            	     ó  • [        / SQ5      n [        SSSSS9[        SSSS	S9[        SS
SSS9/n[        U [        SU5      /[	        S/5      5      u  p#/ oCU:H  oU(       d¥  [
        R                  " SU4SX445      S[        R                  " 5       ;   d  [
        R                  " U5      (       a  [
        R                  " U5      OS[
        R                  " U5      S.-  nSSU0-  n[        [
        R                  " U5      5      eS =pTUR                   Vs0 s H  oˆR                  U_M     n	nUR                  R                    V
s/ s H"  oªR"                  U	;   d  M  XšR"                     PM$     nn
U Vs/ s HI  nUR$                  b7  UR$                  R&                  b   UR$                  R&                  R(                  OS PMK     nn/ SQoLU:H  oU(       d¥  [
        R                  " SU4SXÄ45      S[        R                  " 5       ;   d  [
        R                  " U5      (       a  [
        R                  " U5      OS[
        R                  " U5      S.-  nSSU0-  n[        [
        R                  " U5      5      eS =pTg s  snf s  sn
f s  snf )N))rÊ   ©r£   rË   r^   rÓ   rë   r,  r-  )rÊ   ©rÒ   rÐ   rä  r5  ÚcalendarrÊ   r4  úbanner chartzfig-0r¿  r0  r1  r  r5  úthe calendarr>  r«   r‘  r’  r“  r”  r  )r7  r1  r8  rÁ  )rw   r~  r+   rŠ  r}   r¸   r¹   rÞ   rß   rà   rº   r»   r¼   rl   r¤  rç  rè  ré  rk   r¡  r)  )ro   r  r¥  r’  rÂ   râ   r¦  r+  rp   rê  r�   rì  rÁ  s                rE   Ú5test_a_merge_keeps_the_regions_reading_order_positionr9  �  sÔ  € Ü
ò	
ó€Cô 	ˆqÐ*°È'ÑRÜˆqÐ*Ð1BÈWÑUÜˆqÐ*°È'ÑRð€Gô $ C¬%°°7Ó*;Ð)<¼jÈ!È»oÓN�O€GàÐ�R‰<×××Òˆ6×××××Õˆ6×××Ñˆ6××Õ�R××××××ÑØ%,×%5Ò%5Ó6Ò%5 �j‰j˜!ŠmÑ%5€FÐ6Ø'.§|¡|×'<Ò'<ÓQÒ'< !ÇÁÈ&Ñ@P‹~ˆv—f‘fŒ~Ñ'<€GÐQñ óâˆAð %&§F¡FÑ$6¸1¿6¹6×;MÑ;MÑ;Yˆ�‰×	Ñ	×	 Ò	 Ð_cÒ	cÙð 
ð ò HÐGÐGÑG×G×G×GÒGˆ5×G×G×G×G×GÕGˆ5×G×G×GÑGˆ5×G×GÕGÐG×G×G×G×G×G×GÒGùò 7ùÚQùòs   ÄI?ÅJÅJÅ6AJ	c                 ó€  • [        S/5      n [        SS5      /n[        U [        SU5      /[	        S/5      5      u  p#/ oCU:H  oU(       d¥  [
        R                  " SU4SX445      S[        R                  " 5       ;   d  [
        R                  " U5      (       a  [
        R                  " U5      OS[
        R                  " U5      S.-  nSS	U0-  n[        [
        R                  " U5      5      eS =pTUR                  S
   n[        U[        [         5      n["        R$                  n	So©" U
5      o¸U:H  oÌ(       Gdú  [
        R                  " SU4SX‹45      S[        R                  " 5       ;   d  [
        R                  " [        5      (       a  [
        R                  " [        5      OS[
        R                  " U5      S[        R                  " 5       ;   d  [
        R                  " [        5      (       a  [
        R                  " [        5      OSS[        R                  " 5       ;   d  [
        R                  " [         5      (       a  [
        R                  " [         5      OS[
        R                  " U5      S[        R                  " 5       ;   d  [
        R                  " ["        5      (       a  [
        R                  " ["        5      OS[
        R                  " U	5      [
        R                  " U
5      [
        R                  " U5      S.	-  nSSU0-  n[        [
        R                  " U5      5      eS =n=n=n=n	=p«g )Nr�  rÊ   rŽ  r«   r‘  r’  r“  r”  r  r   r  )z�%(py6)s
{%(py6)s = %(py0)s(%(py2)s, %(py3)s, %(py4)s)
} == %(py14)s
{%(py14)s = %(py10)s
{%(py10)s = %(py8)s.approx
}(%(py12)s)
}r(   r=   r>   ro  )	rØ   rÚ   rµ   r°   r²   r·   r#  rb  Úpy14zassert %(py16)sr  )rw   r~  r+   rŠ  r}   r¸   r¹   rÞ   rß   rà   rº   r»   r¼   rl   r(   r=   r>   ro  rÝ  )ro   r  r¥  r’  rÂ   râ   r¦  r+  rÅ   rX  rZ  Ú@py_assert13rä   Ú@py_format15r   s                  rE   ÚEtest_a_region_the_two_sides_agree_on_keeps_the_box_the_parse_measuredr>  «  sÄ  € Ü
Ð?Ð@Ó
A€CÜ�aÐ1Ó2Ð3€Gä# C¬%°°7Ó*;Ð)<¼jÈ!È»oÓN�O€GàÐ�R‰<×××Òˆ6×××××Õˆ6×××Ñˆ6××Õ�R××××××Ñà×$Ñ$ QÑ'ÐcŒ8Ð'¬´Ó8Ðc¼F¿M¹MÐcÐJbÐc¸MÐJbÓ<cÐcÐ<cÑc×c×c×cÓcÐ8×c×c×c×c×cÕcŒ8×c×c×cÑcŒ8×c×cÕcÐ'×c×c×c×c×cÔc¬×c×c×cÑc¬×c×c×c×c×cÖc´×c×c×cÑc´×c×cÕcÐ8×c×c×c×c×cÔc¼F×c×c×cÑc¼F×c×cÕc¸M×c×cÓcÐJb×c×cÓcÐ<c×c×c×c×c×c×c×cÒcrG   c            	     óþ  • [        SS/5      n [        SSSSS9[        SSS	S
S9/n[        SU5      n[        X/[	        S/5      5      u  p4/ oTU:H  of(       d¥  [
        R                  " SU4SXE45      S[        R                  " 5       ;   d  [
        R                  " U5      (       a  [
        R                  " U5      OS[
        R                  " U5      S.-  nSSU0-  n[        [
        R                  " U5      5      eS =peUR                   V	s/ s H  o™R                  PM     n
n	S/oºU:H  oU(       do  [
        R                  " SU4SX«45      [
        R                  " U
5      [
        R                  " U5      S.-  nSSU0-  n[        [
        R                  " U5      5      eS =n
=p[UR                   Vs/ s H  oî[!        U["        [$        5      4PM     nn['        S U 5       5      n/ nUR(                  nS nUULnUn
U(       a   UR(                  nUR*                  nS nUUL nUn
U
(       Gd¶  [
        R                  " SU4SUU45      S[        R                  " 5       ;   d  [
        R                  " U5      (       a  [
        R                  " U5      OS[
        R                  " U5      [
        R                  " U5      S.-  nSSU0-  nUR-                  U5        U(       aÂ  [
        R                  " SW4SWW45      S[        R                  " 5       ;   d  [
        R                  " U5      (       a  [
        R                  " U5      OS[
        R                  " W5      [
        R                  " U5      [
        R                  " U5      S.-  nSS U0-  nUR-                  U5        [
        R.                  " US!5      0 -  nS"S#U0-  n[        [
        R                  " U5      5      eS =n
=n=n=n=n=n=n=nng s  sn	f s  snf )$Nr�  )rÊ   ©rÒ   rå  rä  r5  r¥   rÊ   r  za real chartr  r¿  r@  za description of the wordmarkr>  r«   r‘  r’  r“  r”  r  r­   r®   r±   r²   c              3  óJ   #   • U  H  u  pUc  M
  US   S:”  d  M  Uv •  M     g 7f)Nr”   r^   rˆ   )r�   rp   r@   s      rE   r‘   ÚKtest_a_region_the_parse_called_page_furniture_is_dropped.<locals>.<genexpr>Ë  s"   é € ÐJ¢‘f�a¨“¸SÀ¹VÀc¹\—‘¢ùs   ‚	#�#š	#r•  rÏ  r¥   rÐ  rÑ  rÛ   r°  )zS%(py15)s
{%(py15)s = %(py13)s
{%(py13)s = %(py11)s.meta
}.description
} is %(py18)srÓ  rÕ  r«  r   rÖ  r×  )rw   r~  rŠ  r+   r}   r¸   r¹   rÞ   rß   rà   rº   r»   r¼   r  rŠ   rl   r(   r=   r>   Únextrk   r¡  rj   r²  )ro   r  r  r¥  r’  rÂ   râ   r¦  r+  r�   rÀ   rÁ   rÃ   rÄ   rp   Úboxedr¥   r-  rÅ   rY  r´  rÞ  rµ  r,  rå   rß  r¸  rà  rº  s                                rE   Ú8test_a_region_the_parse_called_page_furniture_is_droppedrE  ¶  sw  € Ü
à6Ø1ð	
ó€Cô 	ˆqÐ*°È'ÑRÜˆqÐ*Ð1PÐ[bÑcð€Gô ��GÓ€Dä# C¨´¸Q¸C³ÓA�O€GàÐ�R‰<×××Òˆ6×××××Õˆ6×××Ñˆ6××Õ�R××××××Ñð !%§¢Ó-¢˜1�JŒJ¡Ð:Ð-°'°Ð:°Ñ:×:×:×:Ò:Ð-×:×:Ô:Ð-×:×:Ó:°×:×:×:×:×:×:Ó:à7>×7GÒ7GÓHÒ7G°!”˜!œV¤VÓ,Ó-Ñ7G€EÐHÜÑJ¡ÓJÓJ€DÙBˆ4�9‰9ÐB˜DÐBˆ9˜DÐ ×BÑB T§Y¡YÐB Y×%:Ñ%:ÐB¸dÐBÐ%:¸dÐ%B×B×B×BÖBˆ9˜D×B×B×B×B×BÕBˆ4×B×B×BÑBˆ4×B×BÕBˆ9×B×BÓB˜D×B×B×B×B×B×B×BÓBÐ%:¸d×B×B×B×B×BÕB T×B×B×BÑB T×B×BÕB Y×B×BÓBÐ%:×B×BÓB¸d×B×B×B×B×B×B×B×B×B×B×B×B×B×BÓBùò	 .ùâHs   ÄO5Æ3 O:c            
     ó@  • [        S/5      n [        S[        SSSSS9/5      n[        X/[	        S/5      5      u  p#/ oCU:H  oU(       d¥  [
        R                  " SU4SX445      S	[        R                  " 5       ;   d  [
        R                  " U5      (       a  [
        R                  " U5      OS	[
        R                  " U5      S
.-  nSSU0-  n[        [
        R                  " U5      5      eS =pTUR                  n/ o…U:H  o™(       dº  [
        R                  " SU	4SXX45      S[        R                  " 5       ;   d  [
        R                  " U5      (       a  [
        R                  " U5      OS[
        R                  " U5      [
        R                  " U5      S.-  nSSU0-  n
[        [
        R                  " U
5      5      eS =n=p˜UR                  nSo…U:H  o™(       dº  [
        R                  " SU	4SXX45      S[        R                  " 5       ;   d  [
        R                  " U5      (       a  [
        R                  " U5      OS[
        R                  " U5      [
        R                  " U5      S.-  nSSU0-  n
[        [
        R                  " U
5      5      eS =n=p˜g )N)r©   r@  r¥   r©   r@  zthe wordmarkr  r¿  r«   r‘  r’  r“  r”  r  rH  r  r  r  r  rG  r  )rw   rŠ  r~  r+   r}   r¸   r¹   rÞ   rß   rà   rº   r»   r¼   r  r(  )ro   r  Ú_refinedr’  rÂ   râ   r¦  r+  rÆ   rÁ   r,  s              rE   Ú:test_a_page_whose_only_figure_was_furniture_reads_as_emptyrH  Ï  s}  € Ü
Ð:Ð;Ó
<€CÜ�”V˜AÐ7¸nÐW^Ñ_Ð`Óa€Dä$ S¨&´*¸a¸S³/ÓBÑ€HàÐ�R‰<×××Òˆ6×××××Õˆ6×××Ñˆ6××Õ�R××××××ÑØ�<‰<Ð˜2Ð˜2Ñ×××Òˆ<×××××Õˆ4×××Ñˆ4××Õˆ<××Ó˜2××××××Óð �;‰;Ð!˜'Ð!˜'Ñ!×!×!×!Ò!ˆ;×!×!×!×!×!Õ!ˆ4×!×!×!Ñ!ˆ4×!×!Õ!ˆ;×!×!Ó!˜'×!×!×!×!×!×!Ô!rG   c                 óŒ  • [        S/5      n [        SSSSS9[        SSSS	S9/n[        U [        SU5      /[	        S/5      5      u  p#/ oCU:H  oU(       d¥  [
        R                  " S
U4SX445      S[        R                  " 5       ;   d  [
        R                  " U5      (       a  [
        R                  " U5      OS[
        R                  " U5      S.-  nSSU0-  n[        [
        R                  " U5      5      eS =pTU Vs/ s H  oˆR                  PM     n	nUR                   V
s/ s H  oªR                  PM     nn
X›:H  oD(       do  [
        R                  " S
U4SX›45      [
        R                  " U	5      [
        R                  " U5      S.-  nSSU0-  n[        [
        R                  " U5      5      eS =n	=pKg s  snf s  sn
f )NrÊ  r?  rË  z	worse fitr  r¿  rÍ  z
better fitr>  r«   r‘  r’  r“  r”  r  r­   r®   r±   r²   )rw   r~  r+   rŠ  r}   r¸   r¹   rÞ   rß   rà   rº   r»   r¼   r£  rl   r¤  )ro   r  r¥  r’  rÂ   râ   r¦  r+  r�   rÀ   rp   rÁ   rÃ   rÄ   s                 rE   ÚFtest_a_figure_takes_the_picture_it_fits_best_not_the_first_one_offeredrJ  Ü  s2  € ô Ð?Ð@Ó
A€CäˆqÐ*°ÀwÑOÜˆqÐ*°ÈÑPð€Gô $ C¬%°°7Ó*;Ð)<¼jÈ!È»oÓN�O€Gð Ð�R‰<×××Òˆ6×××××Õˆ6×××Ñˆ6××Õ�R××××××ÑÙ#*Ó+¢7˜a�MŒM¡7ÐUÐ+ÀG×DTÒDTÓ/UÒDT¸q·
´
ÑDTÐUÐ/UÐ+ÑU×U×U×UÒUÐ+×U×UÔUÐ+×U×UÓUÐ/U×U×U×U×U×U×UÔUùÒ+ùÒ/Us   ÄF<Ä&Gc                 óÐ  • [        S/5      n [        U [        S/ 5      /[        S/5      5      u  p/ o2U:H  oD(       d¥  [        R
                  " SU4SX#45      S[        R                  " 5       ;   d  [        R                  " U5      (       a  [        R                  " U5      OS[        R                  " U5      S.-  nSSU0-  n[        [        R                  " U5      5      eS =pCUR                  S	   owR                  nS oƒULo™(       d„  [        R
                  " S
U	4SX845      [        R                  " U5      [        R                  " U5      [        R                  " U5      S.-  n
SSU
0-  n[        [        R                  " U5      5      eS =n=n=p˜UR                  S	   owR                  o3R                  n	S oÉUL oÝ(       d™  [        R
                  " SU4SXœ45      [        R                  " U5      [        R                  " U5      [        R                  " U	5      [        R                  " U5      S.-  nSSU0-  n[        [        R                  " U5      5      eS =n=n=n	=pÜg )N)rE  r  r¨   rE  r«   r‘  r’  r“  r”  r  r   r•  rÅ  r´   r¶   r·   r°  rÆ  rÇ  r"  r#  )rw   r+   rŠ  r}   r¸   r¹   rÞ   rß   rà   rº   r»   r¼   rl   rk   r¡  )ro   r¥  r’  rÂ   râ   r¦  r+  rÀ   rÅ   rÆ   rÄ   rÇ   rä   r-  r.  s                  rE   Ú4test_a_page_with_no_charts_leaves_its_pictures_alonerL  ì  sw  € Ü
Ð@ÐAÓ
B€CÜ# C¬%°°B«-¨¼*ÀbÀTÓ:JÓK�O€GØÐ�R‰<×××Òˆ6×××××Õˆ6×××Ñˆ6××Õ�R××××××ÑØ×Ñ˜AÑÐ/×#Ñ#Ð/¨4Ð/¨4Ð/×/×/×/Ò/Ð#×/×/Ô/Ð×/×/Ó/Ð#×/×/Ó/¨4×/×/×/×/×/×/Õ/Ø×Ñ˜AÑÐ7×#Ñ#Ð7×/Ñ/Ð7°4Ð7°4Ð7×7×7×7Ò7Ð/×7×7Ô7Ð×7×7Ó7Ð#×7×7Ó7Ð/×7×7Ó7°4×7×7×7×7×7×7×7Ð7rG   c                ór  ^ • SR                  U 4S j[        T  Vs1 s H  o"S   iM	     sn5       5       5      n[        SSSU SU S3S	5      nUS
SSSS.SSS.0nT  HA  nSSSSS.SSSS	US   US   UR                  SS5      UR                  SS5      S.S.XRS   '   MC     [	        U/5      nXVS'   U$ s  snf )a  A response holding one table chunk, with the grounding map a scan returns.

`cells` are given as {"id", "row", "col", "text"} plus optional spans; the
HTML grid and the per-cell grounding entries are both built from them, the
way a live response carries the two.
rü   c              3  óh   >^#   • U  H&  mS SR                  U4S jT 5       5      -   S-   v •  M(     g7f)z<tr>rü   c              3  ó~   >#   • U  H2  nUS    T:X  d  M  SUS    SUR                  SS5       SUS    S3v •  M4     g	7f)
Úrowz<td id="r„   z" colspan="Úcolspanr”   ú">r)  z</td>N)Úget)r�   r�   r9   s     €rE   r‘   Ú,_table_response.<locals>.<genexpr>.<genexpr>   sO   øé € ð 
â�Ø�‰x˜1‰}ó Sˆh�q˜‘w�i˜{¨1¯5©5°¸AÓ+>Ð*?¸rÀ!ÀFÁ)ÀÈEÕRÚùs   ƒ=”)=z</tr>Nr�   )r�   r9   Úcellss    @€rE   r‘   Ú"_table_response.<locals>.<genexpr>þ  sD   ùé € ð 	ò 3ˆAð 	Ø
�'‰'ô 
áó
ó 
ñ	
ð ö	ò 3ùs   „.2rP  r6  r  z<table id="rR  z</table>úchunk-trÔ   ç)\�Âõ(¼?rå  r/  r   r   )r@   rt   r…   r£   rD  r¤   g      Ð?Ú	tableCellç®Gáz®ï?ÚcolÚrowspanr”   rQ  )rŠ   rP  r[  r\  rQ  )r@   rt   r…   r`   Úpositionr„   r‡   )rž   rf   r‹   rS  r    )rU  Útable_idr�   ÚrowsÚchunkr‡   r*  s   `      rE   Ú_table_responsera  ÷  sÿ   ø€ ð �7‰7ô 	ô ©5Ó1ª5 a˜5œ©5Ñ1Ô2ó	ó 	€Dô �7Ð4¸ÀHÀ:ÈRÐPTÈvÐU]Ð6^Ð`iÓj€EàØ ¨¸ÈÑMØØñ
ð!€Ió ˆà¨°cÀTÑJØØØà%Ø˜‘xØ˜‘xØŸ5™5 ¨AÓ.ØŸ5™5 ¨AÓ.ññ
ˆ	�D‘'Óñ ô ˜%˜Ó!€HØ%ˆ[ÑØ€Oùò5 2s   ›B4c                 óÈ	  • [        SSSSS.SSSSSS	.S
SSSS.SSSSS.SSSSS./5      n [        U SS/ S9nUR                  nSo2U:H  oD(       dº  [        R                  " SU4SX#45      S[
        R                  " 5       ;   d  [        R                  " U5      (       a  [        R                  " U5      OS[        R                  " U5      [        R                  " U5      S.-  nSSU0-  n[        [        R                  " U5      5      eS =n=pCUR                  n[        U5      nSoƒU:H  o™(       Gd"  [        R                  " SU	4SX845      S[
        R                  " 5       ;   d  [        R                  " [        5      (       a  [        R                  " [        5      OSS[
        R                  " 5       ;   d  [        R                  " U5      (       a  [        R                  " U5      OS[        R                  " U5      [        R                  " U5      [        R                  " U5      S.-  n
SSU
0-  n[        [        R                  " U5      5      eS =n=n=p˜UR                  S   nUR                  n/ SQ/ S Q/o2U:H  oD(       dº  [        R                  " SU4S!X#45      S"[
        R                  " 5       ;   d  [        R                  " U5      (       a  [        R                  " U5      OS"[        R                  " U5      [        R                  " U5      S.-  nSSU0-  n[        [        R                  " U5      5      eS =n=pCUR                   VVs/ s H  oÝ Vs/ s H  oîS LPM     snPM     nnn/ S#Q/ S$Q/oOU:H  ow(       do  [        R                  " SU4S%Xô45      [        R                  " U5      [        R                  " U5      S&.-  nS'S(U0-  n[        [        R                  " U5      5      eS =n=ptUR                  nS)S*S+S,S-.o2U:H  oD(       dº  [        R                  " SU4S.X#45      S"[
        R                  " 5       ;   d  [        R                  " U5      (       a  [        R                  " U5      OS"[        R                  " U5      [        R                  " U5      S.-  nSSU0-  n[        [        R                  " U5      5      eS =n=pCg s  snf s  snnf )/NÚc1r   ÚAssets©r„   rP  r[  r)  Úc2r”   Ú2026r¦   )r„   rP  r[  r)  rQ  Úc3ÚCashÚc4ú$ (1,707,526)Úc5ú12%r   r  r  rn   r«   r  r  r  r  r  ©zL%(py5)s
{%(py5)s = %(py0)s(%(py3)s
{%(py3)s = %(py1)s.tables
})
} == %(py8)srÖ   r!  r"  r#  )rd  rg  rü   )ri  rk  rm  ©z-%(py2)s
{%(py2)s = %(py0)s.cells
} == %(py5)sr6  )TTF)TTTr­   r®   r±   r²   rÔ   rX  rå  r/  r   r'  )ra  r5   r(  r¸   r¹   rÞ   rß   rà   rº   r»   r¼   rn   rÖ   rU  Ú
cell_boxesr@   )r*  r  râ   rÆ   rÁ   r+  r,  rÂ   rä   r-  rÇ   r.  r6  rP  r;   rÀ   rÃ   rÄ   s                     rE   ÚCtest_a_returned_table_becomes_a_dense_grid_with_a_box_on_every_cellrq  #  s€  € Üà ¨!°XÑ>Ø ¨!°VÈÑJØ ¨!°VÑ<Ø ¨!°_ÑEØ ¨!°UÑ;ð	
ó€Hô �X B¨gÀrÑJ€Dà�;‰;Ð"˜(Ð"˜(Ñ"×"×"×"Ò"ˆ;×"×"×"×"×"Õ"ˆ4×"×"×"Ñ"ˆ4×"×"Õ"ˆ;×"×"Ó"˜(×"×"×"×"×"×"Ó"Ø�{‰{Ð Œ3ˆ{ÓÐ ˜qÐ ˜qÑ × × × Ó Ð× × × × × Õ Œ3× × × Ñ Œ3× × × × × Ö ˆt× × × Ñ ˆt× × Õ ˆ{× × Ó Ð× × Ó ˜q× × × × × × Õ Ø�K‰K˜‰N€Eà�;‰;ð ÚÚ(ðð ð ñ ÷ ó ïé ôˆ;÷ ò ïé ÷õ ïé ðˆ5÷ ö ïé ðˆ5÷ ò ïé ðˆ;÷ ð ïé ðð ÷ ÷ ÷ ñ ïé ÷÷ ð 5:×4DÒ4DÔEÒ4D¨S CÓ(¢C˜q�d‹]¡CÔ(Ñ4Dð ÑEÚÚðJð ð Jñ ÷ ó ïé ôÐE÷ ñ ïé ðÐE÷ ð ïé ðð J÷ ÷ ÷ ñ ïé ÷÷ ð
 �9‰9ÐR ¨d¸TÈTÑRÐRÐRÑR×R×R×RÒRˆ9×R×R×R×R×RÕRˆ5×R×R×RÑRˆ5×R×RÕRˆ9×R×RÓRÐR×R×R×R×R×R×RÔRùò )ùÓEs   Í	SÍSÍ,SÓSc                 ó
  • [        SSSSS./5      n [        U SS/ S9R                  S   nUR                  nS//o2U:H  oD(       dº  [        R
                  " S	U4S
X#45      S[        R                  " 5       ;   d  [        R                  " U5      (       a  [        R                  " U5      OS[        R                  " U5      [        R                  " U5      S.-  nSSU0-  n[        [        R                  " U5      5      eS =n=pCg )Nrc  r   zNet <b>income</b><br>1Q26re  r   r  r  zNet income 1Q26r«   ro  r6  r  r  r  )ra  r5   rn   rU  r¸   r¹   rÞ   rß   rà   rº   r»   r¼   )r*  r6  râ   rÆ   rÁ   r+  r,  s          rE   Ú;test_markup_inside_a_cell_reads_as_the_text_the_page_printsrs  ?  s­   € Ü t°A¸aÐIdÑ eÐfÓg€HÜ�h R¨wÈÑK×RÑRÐSTÑU€EØ�;‰;Ð/Ð-Ð.Ð/Ð/Ð/Ñ/×/×/×/Ò/ˆ;×/×/×/×/×/Õ/ˆ5×/×/×/Ñ/ˆ5×/×/Õ/ˆ;×/×/Ó/Ð/×/×/×/×/×/×/Ô/rG   c                 ój  • [        SSSSS./5      n U S   R                  [        SS[        S5      5        [	        U S	S
S/S9nUR
                  nSo2U:H  oD(       dº  [        R                  " SU4SX#45      S[        R                  " 5       ;   d  [        R                  " U5      (       a  [        R                  " U5      OS[        R                  " U5      [        R                  " U5      S.-  nSSU0-  n[        [        R                  " U5      5      eS =n=pCUR                  n[        U5      nSoƒU:H  o™(       Gd"  [        R                  " SU	4SX845      S[        R                  " 5       ;   d  [        R                  " [        5      (       a  [        R                  " [        5      OSS[        R                  " 5       ;   d  [        R                  " U5      (       a  [        R                  " U5      OS[        R                  " U5      [        R                  " U5      [        R                  " U5      S.-  n
SSU
0-  n[        [        R                  " U5      5      eS =n=n=p˜UR                   n[        U5      nSoƒU:H  o™(       Gd"  [        R                  " SU	4SX845      S[        R                  " 5       ;   d  [        R                  " [        5      (       a  [        R                  " [        5      OSS[        R                  " 5       ;   d  [        R                  " U5      (       a  [        R                  " U5      OS[        R                  " U5      [        R                  " U5      [        R                  " U5      S.-  n
SSU
0-  n[        [        R                  " U5      5      eS =n=n=p˜g )Nrc  r   ri  re  r›   r  )r£   r£   r¤   ç333333Ó?r  r   r  r¨   r  r  r«   r  r  r  r  r  r”   rn  rÖ   r!  r"  r#  r   )ra  rj   r‹   r%  r5   r(  r¸   r¹   rÞ   rß   rà   rº   r»   r¼   rn   rÖ   r  )r*  r  râ   rÆ   rÁ   r+  r,  rÂ   rä   r-  rÇ   r.  s               rE   Ú=test_a_page_returning_a_figure_and_a_table_reports_the_figurerv  E  s	  € Ü t°A¸aÈÑ PÐQÓR€HØˆXÑ×Ñœf XÐ/CÄ^ÐU\Ó]Ô^Ü�X B¨gÈÀ}ÑU€DØ�;‰;Ð#˜)Ð#˜)Ñ#×#×#×#Ò#ˆ;×#×#×#×#×#Õ#ˆ4×#×#×#Ñ#ˆ4×#×#Õ#ˆ;×#×#Ó#˜)×#×#×#×#×#×#Ó#Ø�{‰{Ð Œ3ˆ{ÓÐ ˜qÐ ˜qÑ × × × Ó Ð× × × × × Õ Œ3× × × Ñ Œ3× × × × × Ö ˆt× × × Ñ ˆt× × Õ ˆ{× × Ó Ð× × Ó ˜q× × × × × × Õ Ø�|‰|Ð!Œ3ˆ|ÓÐ! Ð! Ñ!×!×!×!Ó!Ð×!×!×!×!×!Õ!Œ3×!×!×!Ñ!Œ3×!×!×!×!×!Ö!ˆt×!×!×!Ñ!ˆt×!×!Õ!ˆ|×!×!Ó!Ð×!×!Ó! ×!×!×!×!×!×!Ö!rG   c                 ó‚  • [        / S/S9n [        SSS/S9n[        R                  " [	        X/[        S5      [        S/5      [        [        S 5      5      5      u  p#/ oBU:H  oU(       d¥  [        R                  " SU4S	X$45      S
[        R                  " 5       ;   d  [        R                  " U5      (       a  [        R                  " U5      OS
[        R                  " U5      S.-  nSSU0-  n[        [        R                   " U5      5      eS =pT[#        U5      nSo„U:H  o™(       Gd  [        R                  " SU	4SXH45      S[        R                  " 5       ;   d  [        R                  " ["        5      (       a  [        R                  " ["        5      OSS[        R                  " 5       ;   d  [        R                  " U5      (       a  [        R                  " U5      OS[        R                  " U5      [        R                  " U5      S.-  n
SSU
0-  n[        [        R                   " U5      5      eS =n=p˜SoÃS   oÜU;   oD(       do  [        R                  " SU4SXÍ45      [        R                  " U5      [        R                  " U5      S.-  nSSU0-  n
[        [        R                   " U
5      5      eS =n=pMg )Nrÿ   r  r   rG  r  )rt   r(  r  údoc.pdfr«   r‘  rn   r“  r”  r  r”   rÕ   rÖ   r’  r×   r¶   r·   r   rk  rÄ  r®   r±   r²   )rw   r1   Úasyncior{  r$   r   r}   r
   r   r¸   r¹   rÞ   rß   rà   rº   r»   r¼   rÖ   )ro   r  rn   r’  rÂ   râ   r¦  r+  rÅ   rÆ   rÄ   rÇ   rÀ   rÁ   rÃ   s                  rE   ÚAtest_a_nominated_table_the_scan_returned_nothing_over_is_reportedrz  N  sŒ  € Ü
�BÐ <Ð=Ñ
>€CÜ˜ G¸¸ÑG€DÜ—[’[Ü�s˜F¤D¨£O´ZÀÀÓ5EÄtÌCÐQUÃÓWó�N€Fð Ð�R‰<×××Òˆ6×××××Õˆ6×××Ñˆ6××Õ�R××××××ÑÜˆv‹;Ð˜!Ð˜!Ñ×××Óˆ;×××××ÕŒ3×××ÑŒ3×××××Öˆv×××Ñˆv××Õˆ;××Ó˜!××××××ÓØÐ$ !™9Ð$˜9Ñ$×$×$×$Ò$ˆ<×$×$Ô$ˆ<×$×$Ó$˜9×$×$×$×$×$×$Ô$rG   c            
     ó\  • [        / S/S9n [        SS/S//S /S //SSSS	9n[        SS
S/U/S9n[        SSSSSS9n[	        X/U/[        S/5      5      n/ oTU:H  of(       d¥  [        R                  " SU4SXE45      S[        R                  " 5       ;   d  [        R                  " U5      (       a  [        R                  " U5      OS[        R                  " U5      S.-  nSSU0-  n[        [        R                  " U5      5      eS =peU R                  S   n	U	R                  R                    V
s/ s H  oªR"                  PM     nn
SS/oËU:H  oU(       do  [        R                  " SU4SX¼45      [        R                  " U5      [        R                  " U5      S.-  nSSU0-  n[        [        R                  " U5      5      eS =n=p\U	R$                   Vs/ s HA  oðR&                  [)        UR*                  R-                  SS5      S   5         R"                  PMC     nnS/oËU:H  oU(       do  [        R                  " SU4SX¼45      [        R                  " U5      [        R                  " U5      S.-  nSSU0-  n[        [        R                  " U5      5      eS =n=p\g s  sn
f s  snf )Nrÿ   r  r   ri  z	1,707,526rW  r  ú
doc-p16-t1)rt   rU  rp  rŠ   Ú	table_refr^  rn   ©rt   r(  r  rn   zConsolidated Balance Sheetsz| Cash |
| --- |
| 1,707,526 |Úimage_table)r^  Útitler†   rt   r‰   r«   r‘  r’  r“  r”  r  r   r­   r®   r±   r²   Ú/r”   )rw   r2   r1   r"   r,   r}   r¸   r¹   rÞ   rß   rà   rº   r»   r¼   rn   r[   rS   r)  ÚcaptionsrÁ  rÿ  ré  Úrsplit)ro   r  r  Ú	extractedr’  rÂ   râ   r¦  r+  r6  r�   rÀ   rÁ   rÃ   rÄ   r  s                   rE   ÚCtest_the_scans_reading_replaces_the_parses_own_reading_of_the_imager…  Y  s0  € Ü
�BÐ <Ð=Ñ
>€CÜØØˆx˜+˜Ð'Ø�F˜T˜FÐ#ØØØñ€Gô ˜ H¸,¸ÐQXÐPYÑZ€DÜØØ+Ø3ØØñ€Iô ˜#˜v¨	 {´JÀ¸tÓ4DÓE€FàÐ�R‰<×××Òˆ6×××××Õˆ6×××Ñˆ6××Õ�R××××××ÑØ�J‰J�q‰M€EØ!ŸJ™J×2Ò2Ó3Ò2�q�FŒFÑ2ÐLÐ3¸ÀÐ7LÐLÐ7LÑL×L×L×LÒLÐ3×L×LÔLÐ3×L×LÓLÐ7L×L×L×L×L×L×LÓLØGLÇ~Â~ÓVÂ~À�I‰I”c˜#Ÿ(™(Ÿ/™/¨#¨qÓ1°!Ñ4Ó5Ñ6×;Ô;Á~ð ÐVØ%ð[ð ð [ñ ÷ ó ïé ôÐV÷ ñ ïé ðÐV÷ ð ïé ðð [÷ ÷ ÷ ñ ïé ÷÷ ð ùò 4ùÚVs   Ä1J$ÇAJ)c            
     óÄ  • [        / S/S9n [        [        SSSSSS9/SSS9U R                  S   l        [        S/ / S	S
S9n[        SSS	/U/S9n[        S
SSSS9n[        X/U/[        S/5      5      n[        U5      nSoeU:H  ow(       Gd  [        R                  " SU4SXV45      S[        R                  " 5       ;   d  [        R                  " [        5      (       a  [        R                   " [        5      OSS[        R                  " 5       ;   d  [        R                  " U5      (       a  [        R                   " U5      OS[        R                   " U5      [        R                   " U5      S.-  nSSU0-  n	[#        [        R$                  " U	5      5      eS =n=pvU R                  S   R                  R&                   V
s/ s H  oªR(                  PM     nn
S/oËU:H  oU(       do  [        R                  " SU4SX¼45      [        R                   " U5      [        R                   " U5      S.-  nSSU0-  n[#        [        R$                  " U5      5      eS =n=p\g s  sn
f )Nrÿ   r  zS 1.707.526r   r”   )r)  Ústart_row_offset_idxÚend_row_offset_idxÚstart_col_offset_idxÚend_col_offset_idxrR   r   r  r|  )rt   rU  rp  r}  r^  rn   r~  rü   r  )r^  r†   rt   r‰   r«   rÕ   rÖ   r’  r×   r¶   r·   r­   r®   r±   r²   )rw   r   r   rn   r[   r2   r1   r"   r,   r}   rÖ   r¸   r¹   rÞ   rß   rà   rº   r»   r¼   rS   r)  )ro   r  r  r„  r’  rÂ   rÅ   rÆ   rÄ   rÇ   r�   rÀ   rÁ   rÃ   s                 rE   ÚAtest_a_scan_that_read_no_cells_leaves_the_parses_reading_standingr‹  v  s¨  € Ü
�BÐ <Ð=Ñ
>€CÜ"äØ"Ø%&Ø#$Ø%&Ø#$ñð
ð Øñ€C‡J�Jˆq�MÔô  ¨"¸À|Ð^jÑk€GÜ˜ H¸,¸ÐQXÐPYÑZ€DÜ¨¸rÈÐQ^Ñ_€Iä˜#˜v¨	 {´JÀ¸tÓ4DÓE€Fäˆv‹;Ð˜!Ð˜!Ñ×××Óˆ;×××××ÕŒ3×××ÑŒ3×××××Öˆv×××Ñˆv××Õˆ;××Ó˜!××××××ÓØŸJ™J q™M×.Ñ.×:Ò:Ó;Ò:�q�FŒFÑ:ÐNÐ;À¸ÐN¸ÑN×N×N×NÒNÐ;×N×NÔNÐ;×N×NÓN¸×N×N×N×N×N×NÔNùÒ;s   ÇIc                ó   • [        SXSS9$ )Nr   rW  )rt   rU  rp  rŠ   )r2   )rU  Úboxess     rE   Ú_scannedrŽ  ’  s   € Ü˜R uÈÑSÐSrG   c                ó   • XX#S.$ )Nr   rˆ   )rA   rB   rC   rD   s       rE   rq   rq   –  s   € Ø¨BÑ=Ð=rG   c                óØ  • [        SS9nUR                  S[        [        [        S9S9  U  VVVVs/ s H[  u  p#pE[        UUUS-   UUS-   [        US   [        -  US   [        -  US   [        -  US	   [        -  [        R                  S
9S9PM]     nnnnn[        S U 5       SS9n[        S U 5       SS9nUR                  [        XgUS9[        S[        S5      SS9S9$ s  snnnnf )zJA docling table whose cells are given as (row, col, text, normalized box).rI   rJ   r   rL   rO   r”   r   r¦   r©   )r8   r:   r9   r;   r<   )r)  r‡  rˆ  r‰  rŠ  rX   c              3  ó8   #   • U  H  oR                   v •  M     g 7fry   )rˆ  rŽ   s     rE   r‘   Ú_parse_table.<locals>.<genexpr>¯  ó   é € Ð4ªe¨×$Ö$ªeùó   ‚)Údefaultc              3  ó8   #   • U  H  oR                   v •  M     g 7fry   )rŠ  rŽ   s     rE   r‘   r’  °  r“  r”  rR   )r…  r…  r7   r7   rV   rW   rZ   )r   rg   r   r=   r>   r   r   r   ÚTOPLEFTÚmaxrh   r   r   rF   )	Úentriesro   r9   r�   r)  r;   rU  r_  Úcolss	            rE   Ú_parse_tabler›  š  s  € ä
˜{Ñ
+€CØ‡L�L˜¤$¬V¼FÑ"C€LÑDñ  %öò %‰MˆA�$ô 	ØØ!"Ø  1™uØ!"Ø  1™uÜØ�A‘$œ‘-Ø�A‘$œ‘-Ø�A‘$œ‘-Ø�A‘$œ‘-Ü(×0Ñ0ñô	
ñ %ð 
ó ô" Ñ4©eÓ4¸aÑ@€DÜÑ4©eÓ4¸aÑ@€DØ�=‰=Ü 5À$ÑGÜ B¬[Ð9MÓ-NÐY_Ñ`ð ð ð ùõ's   ±A"C$
c            	     óF  • [        S//[        SSSS5      //5      n [        S/5      n[        5       n[        R
                  " [        X[        [        4SU5      5      u  p4S//oSU:H  of(       d¥  [        R                  " SU4SX545      S	[        R                  " 5       ;   d  [        R                  " U5      (       a  [        R                  " U5      OS	[        R                  " U5      S
.-  nSSU0-  n[        [        R                   " U5      5      eS =peSoTU:H  of(       d¥  [        R                  " SU4SXE45      S[        R                  " 5       ;   d  [        R                  " U5      (       a  [        R                  " U5      OS[        R                  " U5      S
.-  nSSU0-  n[        [        R                   " U5      5      eS =peUR"                  n/ o–U	:H  oª(       dº  [        R                  " SU
4SXi45      S[        R                  " 5       ;   d  [        R                  " U5      (       a  [        R                  " U5      OS[        R                  " U5      [        R                  " U	5      S.-  nSSU0-  n[        [        R                   " U5      5      eS =n=p©g )Nú
21,249,107r£   ru  rÓ   )r   r   r�  ©r£   r£   ru  rÓ   ó   pngr«   r‘  rU  r“  r”  r  r   Úread©z-%(py2)s
{%(py2)s = %(py0)s.calls
} == %(py5)sÚreaderr  r  r  ©rŽ  rq   r›  r   ry  r{  r'   r=   r>   r¸   r¹   rÞ   rß   rà   rº   r»   r¼   Úcalls©r  r6  r¢  rU  r   rÂ   râ   r¦  r+  rÆ   rÁ   r,  s               rE   Ú4test_a_cell_both_readers_agree_on_is_not_asked_aboutr¦  ·  sˆ  € Ü˜˜Ð'¬4°°S¸#¸tÓ+DÐ*EÐ)FÓG€GÜÐEÐFÓG€EÜÓ€Fä—+’+Ô.¨wÄÌÐ?OÐQWÐY_Ó`Óa�K€Eà"�^Ð$Ð$Ð$Ñ$×$×$×$Ò$ˆ5×$×$×$×$×$Õ$ˆ5×$×$×$Ñ$ˆ5×$×$Õ$Ð$×$×$×$×$×$×$Ñ$ØÐ�1‰9×××Òˆ4×××××Õˆ4×××Ñˆ4××Õ�1××××××ÑØ�<‰<Ð˜2Ð˜2Ñ×××Òˆ<×××××Õˆ6×××Ñˆ6××Õˆ<××Ó˜2××××××ÔrG   c            	     ó(  • [        S//[        SSSS5      //5      n [        S/5      n[        SS05      n[        R
                  " [        X[        [        4SU5      5      u  p4S//oSU:H  of(       d¥  [        R                  " S	U4S
X545      S[        R                  " 5       ;   d  [        R                  " U5      (       a  [        R                  " U5      OS[        R                  " U5      S.-  nSSU0-  n[        [        R                   " U5      5      eS =peSoTU:H  of(       d¥  [        R                  " S	U4S
XE45      S[        R                  " 5       ;   d  [        R                  " U5      (       a  [        R                  " U5      OS[        R                  " U5      S.-  nSSU0-  n[        [        R                   " U5      5      eS =peUR"                  S    V	s/ s H%  o™R$                  U	R&                  U	R(                  4PM'     n
n	S/oºU:H  oU(       do  [        R                  " S	U4SX«45      [        R                  " U
5      [        R                  " U5      S.-  nSSU0-  n[        [        R                   " U5      5      eS =n
=p[g s  sn	f )Nú
19.543.903r£   ru  rÓ   ©r   r   ú
19,543,903rž  ÚA1rª  rŸ  r«   r‘  rU  r“  r”  r  r”   r   r   )r«  r¨  rª  r­   r®   r±   r²   )rŽ  rq   r›  r   ry  r{  r'   r=   r>   r¸   r¹   rÞ   rß   rà   rº   r»   r¼   r¤  ÚaddressÚ	scan_readÚ
parse_read)r  r6  r¢  rU  r   rÂ   râ   r¦  r+  ÚqrÀ   rÁ   rÃ   rÄ   s                 rE   Ú:test_a_cell_the_two_readers_differ_on_is_read_off_the_pager°  Ã  sØ  € ä˜˜Ð'¬4°°S¸#¸tÓ+DÐ*EÐ)FÓG€GÜÐEÐFÓG€EÜ˜T <Ð0Ó1€Fä—+’+Ô.¨wÄÌÐ?OÐQWÐY_Ó`Óa�K€Eà"�^Ð$Ð$Ð$Ñ$×$×$×$Ò$ˆ5×$×$×$×$×$Õ$ˆ5×$×$×$Ñ$ˆ5×$×$Õ$Ð$×$×$×$×$×$×$Ñ$ØÐ�1‰9×××Òˆ4×××××Õˆ4×××Ñˆ4××Õ�1××××××ÑØ<B¿L¹LÈºOÓLºO°q�Y‰Y˜Ÿ™ Q§\¡\Ó2¹Oð ÐLØ*ðQð ð Qñ ÷ ó ïé ôÐL÷ ñ ïé ðÐL÷ ð ïé ðð Q÷ ÷ ÷ ñ ïé ÷÷ ð ùÒLs   Ç,Jc            	     ó6  • [        S//[        SSSS5      //5      n [        S/5      n[        SS05      n[        R
                  " [        X[        [        4SU5      5      u  p4S//oSU:H  of(       d¥  [        R                  " S	U4S
X545      S[        R                  " 5       ;   d  [        R                  " U5      (       a  [        R                  " U5      OS[        R                  " U5      S.-  nSSU0-  n[        [        R                   " U5      5      eS =peg )Nz
$ 3.000.00r£   ru  rÓ   )r   r   z
S 3,000,00rž  r«  z
$ 3,000.00rŸ  r«   r‘  rU  r“  r”  r  ©rŽ  rq   r›  r   ry  r{  r'   r=   r>   r¸   r¹   rÞ   rß   rà   rº   r»   r¼   )	r  r6  r¢  rU  Ú_readrÂ   râ   r¦  r+  s	            rE   Ú.test_the_agent_may_answer_with_neither_readingr´  Ò  sÆ   € ä˜˜Ð'¬4°°S¸#¸tÓ+DÐ*EÐ)FÓG€GÜÐEÐFÓG€EÜ˜T <Ð0Ó1€Fä—;’;Ô/°ÄÌÐ@PÐRXÐZ`ÓaÓb�L€Eà"�^Ð$Ð$Ð$Ñ$×$×$×$Ò$ˆ5×$×$×$×$×$Õ$ˆ5×$×$×$Ñ$ˆ5×$×$Õ$Ð$×$×$×$×$×$×$Ò$rG   c            	     ó  • [        S//[        SSSS5      //5      n [        S/5      n[        SS05      n[        R
                  " [        X[        [        4SU5      5      u  p4S//oSU:H  of(       d¥  [        R                  " S	U4S
X545      S[        R                  " 5       ;   d  [        R                  " U5      (       a  [        R                  " U5      OS[        R                  " U5      S.-  nSSU0-  n[        [        R                   " U5      5      eS =peSoTU:H  of(       d¥  [        R                  " S	U4S
XE45      S[        R                  " 5       ;   d  [        R                  " U5      (       a  [        R                  " U5      OS[        R                  " U5      S.-  nSSU0-  n[        [        R                   " U5      5      eS =peUR"                  S   S   o™R$                  nS o¥U
L o»(       d„  [        R                  " SU4SXZ45      [        R                  " U	5      [        R                  " U5      [        R                  " U
5      S.-  nSSU0-  n[        [        R                   " U5      5      eS =n	=n=pºg )Nz524.001r£   ru  rÓ   )r   r   Ú	elsewhere)r  r  r^   r^   r«  z524,001rŸ  r«   r‘  rU  r“  r”  r  r”   r   r   r°  )z2%(py3)s
{%(py3)s = %(py1)s.parse_read
} is %(py6)sr´   r¶   r·   )rŽ  rq   r›  r   ry  r{  r'   r=   r>   r¸   r¹   rÞ   rß   rà   rº   r»   r¼   r¤  r®  )r  r6  r¢  rU  r   rÂ   râ   r¦  r+  rÀ   rÅ   rÆ   rÄ   rÇ   s                 rE   Ú1test_a_cell_the_parse_never_read_is_still_checkedr·  Ý  s‰  € Ü˜˜�}¬¨S°#°s¸DÓ(AÐ'BÐ&CÓD€GÜÐCÐDÓE€EÜ˜T 9Ð-Ó.€Fä—+’+Ô.¨wÄÌÐ?OÐQWÐY_Ó`Óa�K€Eà�[�MÐ!�MÑ!×!×!×!Ò!ˆ5×!×!×!×!×!Õ!ˆ5×!×!×!Ñ!ˆ5×!×!Õ!�M×!×!×!×!×!×!Ñ!ØÐ�1‰9×××Òˆ4×××××Õˆ4×××Ñˆ4××Õ�1××××××ÑØ�<‰<˜‰?˜1ÑÐ0×(Ñ(Ð0¨DÐ0¨DÐ0×0×0×0Ò0Ð(×0×0Ô0Ð×0×0Ó0Ð(×0×0Ó0¨D×0×0×0×0×0×0Ö0rG   c            	     óF  • [        S//[        SSSS5      //5      n [        S/5      n[        5       n[        R
                  " [        X[        [        4SU5      5      u  p4S//oSU:H  of(       d¥  [        R                  " SU4S	X545      S
[        R                  " 5       ;   d  [        R                  " U5      (       a  [        R                  " U5      OS
[        R                  " U5      S.-  nSSU0-  n[        [        R                   " U5      5      eS=peSoTU:H  of(       d¥  [        R                  " SU4S	XE45      S[        R                  " 5       ;   d  [        R                  " U5      (       a  [        R                  " U5      OS[        R                  " U5      S.-  nSSU0-  n[        [        R                   " U5      5      eS=peUR"                  n/ o–U	:H  oª(       dº  [        R                  " SU
4SXi45      S[        R                  " 5       ;   d  [        R                  " U5      (       a  [        R                  " U5      OS[        R                  " U5      [        R                  " U	5      S.-  nSSU0-  n[        [        R                   " U5      5      eS=n=p©g)zÆThe parse bounds a row heading to the word, the scan to the whole band.
Measured against their combined area they barely overlap; against the smaller
box the tight one is wholly inside the wide one.ÚASSETSç¬Zd;Ï?gƒÀÊ¡EÆ?g/Ý$�å?g¦›Ä °rÈ?)r   r   r¹  )rº  gffffffÆ?gB`åÐ"ÛÑ?rä  rŸ  r«   r‘  rU  r“  r”  r  Nr   r   r¡  r¢  r  r  r  r£  r¥  s               rE   Ú3test_a_tight_box_inside_a_wide_one_is_the_same_cellr»  é  s†  € ô ˜˜
�|¤t¨E°5¸%ÀÓ'GÐ&HÐ%IÓJ€GÜÐHÐIÓJ€EÜÓ€Fä—+’+Ô.¨wÄÌÐ?OÐQWÐY_Ó`Óa�K€Eà�Z�LÐ �LÑ × × × Ò ˆ5× × × × × Õ ˆ5× × × Ñ ˆ5× × Õ �L× × × × × × Ñ ØÐ�1‰9×××Òˆ4×××××Õˆ4×××Ñˆ4××Õ�1××××××ÑØ�<‰<Ð˜2Ð˜2Ñ×××Òˆ<×××××Õˆ6×××Ñˆ6××Õˆ<××Ó˜2××××××ÔrG   c            	     ó˜  • [        S//[        SSSS5      //5      n [        S/5      n[        5       n[        R
                  " [        X[        [        4SU5      5      u  p4S//oSU:H  of(       d¥  [        R                  " SU4SX545      S	[        R                  " 5       ;   d  [        R                  " U5      (       a  [        R                  " U5      OS	[        R                  " U5      S
.-  nSSU0-  n[        [        R                   " U5      5      eS =peSoTU:H  of(       d¥  [        R                  " SU4SXE45      S[        R                  " 5       ;   d  [        R                  " U5      (       a  [        R                  " U5      OS[        R                  " U5      S
.-  nSSU0-  n[        [        R                   " U5      5      eS =peg ©Nr¨  r£   ru  rÓ   r©  rŸ  r«   r‘  rU  r“  r”  r  r   r   r²  )	r  r6  r¢  rU  r   rÂ   râ   r¦  r+  s	            rE   Ú;test_a_failed_reading_leaves_every_cell_as_the_scan_read_itr¾  ø  s  € Ü˜˜Ð'¬4°°S¸#¸tÓ+DÐ*EÐ)FÓG€GÜÐEÐFÓG€EÜÓ€Fä—+’+Ô.¨wÄÌÐ?OÐQWÐY_Ó`Óa�K€Eà"�^Ð$Ð$Ð$Ñ$×$×$×$Ò$ˆ5×$×$×$×$×$Õ$ˆ5×$×$×$Ñ$ˆ5×$×$Õ$Ð$×$×$×$×$×$×$Ñ$ØÐ�1‰9×××Òˆ4×××××Õˆ4×××Ñˆ4××Õ�1××××××ÒrG   c            	     ó„  • [        S//[        SSSS5      //5      n [        S/5      n[        R                  " [        X[        [        4SS 5      5      u  p#S//oBU:H  oU(       d¥  [        R                  " SU4SX$45      S	[        R                  " 5       ;   d  [        R                  " U5      (       a  [        R                  " U5      OS	[        R                  " U5      S
.-  nSSU0-  n[        [        R                  " U5      5      eS =pTSoCU:H  oU(       d¥  [        R                  " SU4SX445      S[        R                  " 5       ;   d  [        R                  " U5      (       a  [        R                  " U5      OS[        R                  " U5      S
.-  nSSU0-  n[        [        R                  " U5      5      eS =pTg r½  )rŽ  rq   r›  ry  r{  r'   r=   r>   r¸   r¹   rÞ   rß   rà   rº   r»   r¼   )r  r6  rU  r   rÂ   râ   r¦  r+  s           rE   Ú$test_no_reader_leaves_the_grid_alonerÀ    s  € Ü˜˜Ð'¬4°°S¸#¸tÓ+DÐ*EÐ)FÓG€GÜÐEÐFÓG€Eä—+’+Ô.¨wÄÌÐ?OÐQWÐY]Ó^Ó_�K€Eà"�^Ð$Ð$Ð$Ñ$×$×$×$Ò$ˆ5×$×$×$×$×$Õ$ˆ5×$×$×$Ñ$ˆ5×$×$Õ$Ð$×$×$×$×$×$×$Ñ$ØÐ�1‰9×××Òˆ4×××××Õˆ4×××Ñˆ4××Õ�1××××××ÒrG   c                óÖ   • SSK nUR                  5       n[        U5       H  nUR                  [        [
        S9  M     UR                  [        U 5      5        UR                  5         U $ )zHA PDF of `pages` blank pages at the test page size, for the page render.r   NrL   )	rñ  rò  Úrangeró  r=   r>   rö  rR  r÷  )rø  rs   rñ  ro   r'  s        rE   Ú
_blank_pdfrÃ    sL   € ãà
�)‰)‹+€CÜ�5Ž\ˆØ�‰œ6¬&ˆÓ1ñ à‡H�HŒS�‹YÔØ‡I�I„KØ€KrG   c                óz   • U H4  u  p#pEU R                  UU[        U[        U5      S[        U5      4S9S9  M6     U $ )zPAdd texts to `doc` as (page, normalized box, text, label), parented to the body.r   rW   )Úlabelr)  r\   )Úadd_textr   rF   rÖ   )ro   rÁ  rt   r@   rç  rÅ  s         rE   Ú_with_textsrÇ    sK   € ã"'Ñˆ�4Ø�‰ØØÜ¨´;¸sÓ3CÈqÔRUÐVZÓR[ÈnÑ]ð 	ó 	
ñ #(ð €JrG   c                 óŠ  • [        [        S/5      SSS[        R                  4SSS[        R                  4SSS[        R                  4SS	S
[        R
                  4SSS[        R                  4/5      n [        SS[        SS5      /S9n[        X[        S/5      5      nU Vs/ s H  o3R                  PM     nnSS/oTU:H  of(       do  [        R                  " SU4SXE45      [        R                  " U5      [        R                  " U5      S.-  nSSU0-  n[        [        R                  " U5      5      eS =n=peg s  snf )N©rÊ   ©r£   r¤   r§   r  r¨   rÊ   ©rX  rÍ   ç{®GázÄ?g®GázÞ?ú90.0%©rX  r§   rÌ  g¤p=
×£à?ú80.0%)rD  gáz®GáÚ?rÍ   r.  zAsset Performance)rD  g      è?rÍ   r/  z(1) Based on carrying value.)r£   rË   r  r  z"During Q1 2026 the Company amendedr  rÊ  ©rt   r(  r  r«   r­   r®   r±   r²   )rÇ  rw   r   ÚTEXTÚSECTION_HEADERÚFOOTNOTEr1   r~  r%   r}   r)  r¸   r¹   rº   r»   r¼   )	ro   r  Úfoundr:   rÀ   rÁ   rÂ   rÃ   rÄ   s	            rE   Ú=test_only_plain_text_overlapping_a_read_figure_is_a_candidaterÕ  '  s  € Ü
ÜÐ=Ð>Ó?àÐ(¨'´<×3DÑ3DÐEØÐ(¨'´<×3DÑ3DÐEàÐ(Ð*=¼|×?ZÑ?ZÐ[ØÐ(Ð*HÌ,×J_ÑJ_Ð`àÐ(Ð*NÔP\×PaÑPaÐbð	
ó€Cô ˜ 9´v¸aÐAYÓ7ZÐ6[Ñ\€DÜ�s¤*¨a¨S£/Ó2€EÙ!Ó"šE�q�FŒF™EÐ8Ð" w°Ð&8Ð8Ð&8Ñ8×8×8×8Ò8Ð"×8×8Ô8Ð"×8×8Ó8Ð&8×8×8×8×8×8×8Ô8ùÒ"s   Â&E c                 óv  • [        [        S/5      SSS[        R                  4/5      n [	        SS/ S9nS/n[        U5      n[        XU5      n/ oTU:H  of(       GdÕ  [        R                  " SU4SXE45      S	[        R                  " 5       ;   d  [        R                  " [        5      (       a  [        R                  " [        5      OS	S
[        R                  " 5       ;   d  [        R                  " U 5      (       a  [        R                  " U 5      OS
S[        R                  " 5       ;   d  [        R                  " U5      (       a  [        R                  " U5      OSS[        R                  " 5       ;   d  [        R                  " [
        5      (       a  [        R                  " [
        5      OS[        R                  " U5      [        R                  " U5      [        R                  " U5      [        R                  " U5      S.-  nSSU0-  n[        [        R                  " U5      5      eS =n=n=n=peg )NrÉ  rÊ   rË  rÍ  rG  rÐ  r«   )za%(py9)s
{%(py9)s = %(py0)s(%(py1)s, %(py2)s, %(py7)s
{%(py7)s = %(py3)s(%(py5)s)
})
} == %(py12)sr%   ro   r  r}   )rØ   r¯   rÚ   rµ   r  r  rÛ   rb  úassert %(py14)sr;  )rÇ  rw   r   rÑ  r1   r}   r%   r¸   r¹   rÞ   rß   rà   rº   r»   r¼   )	ro   r  rÆ   r-  rã   rZ  rá  re  r=  s	            rE   Ú8test_a_page_the_scan_read_no_figure_on_has_no_candidatesrØ  9  sA  € Ü
ÜÐ=Ð>Ó?Ø
Ð% w´×0AÑ0AÐ	BÐCó€Cô ˜ 7°BÑ7€DØ-.¨CÐ7¤¨C£Ð7Œ:�c Ó1Ð7°RÐ7°RÑ7×7×7×7Ó7Ð1×7×7×7×7×7Õ7Œ:×7×7×7Ñ7Œ:×7×7×7×7×7Ö7�c×7×7×7Ñ7�c×7×7×7×7×7Ö7˜4×7×7×7Ñ7˜4×7×7×7×7×7Ö7¤×7×7×7Ñ7¤×7×7Õ7¨C×7×7Ó7 ×7×7Ó7Ð1×7×7Ó7°R×7×7×7×7×7×7×7Ð7rG   c                 ó&  • [        [        S/5      SSS[        R                  4SSS[        R                  4/5      n [	        SS[        SS5      /S	9n[        R                  " 5        n[        U5      S
-  n[        USS9  [        R                  " [        X/[        S/5      U[        S/5      5      5      nS S S 5        W Vs/ s H  oUR                  UR                   4PM     nnS/ovU:H  oˆ(       do  ["        R$                  " SU4SXg45      ["        R&                  " U5      ["        R&                  " U5      S.-  n	SSU	0-  n
[)        ["        R*                  " U
5      5      eS =n=p‡US   ofR,                  nS o¸ULoÌ(       d„  ["        R$                  " SU4SX‹45      ["        R&                  " U5      ["        R&                  " U5      ["        R&                  " U5      S.-  n
SSU
0-  n[)        ["        R*                  " U5      5      eS =n=n=pËUS   R,                  u  pïnn[/        US5      [/        US5      [/        US5      [/        US5      4nSovU:H  oˆ(       do  ["        R$                  " SU4SXg45      ["        R&                  " U5      ["        R&                  " U5      S.-  n	SSU	0-  n
[)        ["        R*                  " U
5      5      eS =n=p‡U R0                   Vs/ s H  nUR                   PM     nnS/ovU:H  oˆ(       do  ["        R$                  " SU4SXg45      ["        R&                  " U5      ["        R&                  " U5      S.-  n	SSU	0-  n
[)        ["        R*                  " U
5      5      eS =n=p‡g ! , (       d  f       GNÆ= fs  snf s  snf )NrÉ  rÊ   rË  rÍ  rÎ  rÏ  r  rÊ  rÐ  rx  r|   )rÊ   rÍ  r«   r­   r®   r±   r²   r   r•  )z/%(py3)s
{%(py3)s = %(py1)s.box
} is not %(py6)sr´   r¶   r·   r¦   )rÇ  rw   r   rÑ  r1   r~  rc  rd  r   rÃ  ry  r{  r&   r}   r    rt   r)  r¸   r¹   rº   r»   r¼   r@   ÚroundrÁ  )ro   r  r_  r  Úremovedr9   rÀ   rÁ   rÂ   rÃ   rÄ   rÅ   rÆ   rÇ   rA   rB   rC   rD   r:   s                      rE   Ú:test_removed_text_is_recorded_with_its_page_box_and_reasonrÜ  B  sw  € Ü
ÜÐ=Ð>Ó?àÐ(¨'´<×3DÑ3DÐEØÐ(¨'´<×3DÑ3DÐEð	
ó€Cô ˜ 9´v¸aÐAYÓ7ZÐ6[Ñ\€DÜ	×	$Ò	$Ô	&¨#Ü�c“˜YÑ&ˆÜ�6 Ò#Ü—+’+Ü˜C ¬°Q°C«¸&ÔBUÐW^ÐV_ÓB`Óaó
ˆ÷ 
'ñ '.Ó.¢g �V‰V�Q—V‘VÓ¡gÐ@Ð.°<°.Ð@°.Ñ@×@×@×@Ò@Ð.×@×@Ô@Ð.×@×@Ó@°.×@×@×@×@×@×@Ó@Ø�1‰:Ð%�>‰>Ð% Ð% Ð%×%×%×%Ò%ˆ>×%×%Ô%ˆ:×%×%Ó%ˆ>×%×%Ó% ×%×%×%×%×%×%Õ%Ø˜Q‘Z—^‘^�N€BˆB�Ü�"�a‹Lœ%  A›,¬¨b°!«´e¸BÀ³lÐCÐ_ÐG_Ð_ÐG_Ñ_×_×_×_Ò_ÐC×_×_Ô_ÐC×_×_Ó_ÐG_×_×_×_×_×_×_Ó_ØŸIšIÓ&šI�qˆA�FŒF™IÐ3Ð&¨7¨)Ð3¨)Ñ3×3×3×3Ò3Ð&×3×3Ô3Ð&×3×3Ó3¨)×3×3×3×3×3×3Ô3÷ 
'Ö	&üò /ùò 's   Á(AM7Ã!N	ËNÍ7
Nc            
     óx  • [        S/5      n [        SS5      nU R                  S   R                  Ul        [        SSU/S9n[        [        SSSS	S
9[        SSSSS
9/S9n[        R                  " 5        n[        U5      S-  n[        USS9  [        R                  " [        X/[        S/5      XS5      5        SSS5        [!        U R                  S   R"                  [$        S5      nSS	SS.SSSS./ovU:H  oˆ(       d¥  [&        R(                  " SU4SXg45      S[*        R,                  " 5       ;   d  [&        R.                  " U5      (       a  [&        R0                  " U5      OS[&        R0                  " U5      S.-  n	SSU	0-  n
[3        [&        R4                  " U
5      5      eS=p‡g! , (       d  f       Nõ= f)zÐThe agent reads a marker off the chart's label and it becomes an attribute.

Recorded on the picture with what it points at, so resolving it later reads a
field rather than the description it was printed in.
rÉ  rÊ   rÊ  r   r  rÐ  Ú1zBook Equity ValueÚfootnote)r  ÚmarkerrÅ  r‰   Ú2Úsection©Úmarkersrx  r|   N)rà  r‰   rÅ  r«   r‘  Úrecordedr“  r”  r  )rw   r~  rl   r¤  r£  r1   r    r   rc  rd  r   rÃ  ry  r{  r&   r}   Úgetattrrk   r)   r¸   r¹   rÞ   rß   rà   rº   r»   r¼   )ro   r$  r  Úfinderr_  r  rå  rÂ   râ   r¦  r+  s              rE   Ú>test_a_figures_markers_land_on_the_picture_it_was_grafted_ontorè  X  s•  € ô Ð?Ð@Ó
A€CÜ�1Ð.Ó/€EØŸ™ Q™×0Ñ0€EÔÜ˜ 9°u°gÑ>€DÜ ä˜! CÐ/BÈÑTÜ˜! CÐ/BÈÑSð
ñ€Fô 
×	$Ò	$Ô	&¨#Ü�c“˜YÑ&ˆÜ�6 Ò#Ü�Š”O C¨´¸Q¸C³À&ÓQÔR÷ 
'ô �s—|‘| A‘×+Ñ+Ô-AÀ4ÓH€Hà 
Ð5HÑIØ 	Ð4GÑHðð ð ñ ÷ ó ïé ôˆ8÷ ò ïé ÷õ ïé ðˆ8÷ ö ïé ðˆ8÷ ò ïé ðð ÷ ÷ ÷ ñ ïé ÷ö ÷ 
'Õ	&ús   Á7AF+Æ+
F9c            	     ó¼  • [        [        SSS9[        SSS9[        SSS9/S9n U R                   Vs/ s H  oR                  UR                  4PM     nnSS	/o2U:H  oD(       do  [
        R                  " S
U4SX#45      [
        R                  " U5      [
        R                  " U5      S.-  nSSU0-  n[        [
        R                  " U5      5      eS=n=pCgs  snf )z“Two verdicts on one fragment are one text item, and the document model
rejects the same element queued for deletion twice, failing the whole sweep.r©   ú	axis tick)Úindexrv  zgridline labelrñ   ú
legend key)Ú	furniture)r©   rê  )rñ   rì  r«   r­   r®   r±   r²   N)
r   r   rí  rë  rv  r¸   r¹   rº   r»   r¼   )Ú
correctionÚfrÀ   rÁ   rÂ   rÃ   rÄ   s          rE   Ú5test_a_fragment_named_furniture_twice_is_removed_oncerð  s  s­   € ô "ä˜A kÑ2Ü˜AÐ&6Ñ7Ü˜A lÑ3ð
ñ€Jð *4×)=Ò)=Ó>Ò)= A�W‰W�a—h‘hÓÑ)=ÐgÐ>ÐCSÐUfÐBgÐgÐBgÑg×g×g×gÒgÐ>×g×gÔgÐ>×g×gÓgÐBg×g×g×g×g×g×gÔgùÒ>s   ³!Cc            	     ó®  • [        [        SSSS9[        SSSS9/S9n U R                   Vs/ s H  oR                  UR                  4PM     nn/ SQo2U:H  oD(       do  [
        R                  " S	U4S
X#45      [
        R                  " U5      [
        R                  " U5      S.-  nSSU0-  n[        [
        R                  " U5      5      eS=n=pCgs  snf )a  The prompt asks for one entry per marker; compliance is not certain.

A label printed '(b)(c)(d)' that comes back as a single marker becomes three,
the same normalization a table's markers get. A parenthesized negative value
is not a group and is left alone.
r   z	(b)(c)(d)úSegment EBITDA)r  rà  rÅ  ú(84)úNet lossrã  ))z(b)rò  )z(c)rò  )z(d)rò  )ró  rô  r«   r­   r®   r±   r²   N)
r   r   rä  rà  rÅ  r¸   r¹   rº   r»   r¼   )rî  ÚmrÀ   rÁ   rÂ   rÃ   rÄ   s          rE   Ú;test_a_stacked_marker_group_returned_as_one_string_is_splitrö  €  sÝ   € ô "ä˜! KÐ7GÑHÜ˜! F°*Ñ=ð
ñ€Jð *4×);Ò);Ó<Ò); A�X‰X�q—w‘wÓÑ);ð Ð<ò Að ð Añ ÷ ó ï
é ôÐ<÷ ñ ï
é ðÐ<÷ ð ï
é ðð A÷ ÷ ÷ ñ ï
é ÷÷ ð ùÒ<s   ¬!Cc            
     ó  • [        S/5      n [        SS5      nU R                  S   R                  Ul        [        SSU/S9n[        [        SSSS	9/[        SSS
S9[        SSSS9/S9n[        R                  " 5        n[        U5      S-  n[        USS9  [        R                  " [        X/[!        S/5      XS5      5        SSS5        U R                  S   ofR"                  nSn[%        U[&        U5      n	SS
S.SSS./o©U
:H  o»(       GdT  [(        R*                  " SU4SXš45      S[,        R.                  " 5       ;   d  [(        R0                  " [$        5      (       a  [(        R2                  " [$        5      OS[(        R2                  " U5      [(        R2                  " U5      S[,        R.                  " 5       ;   d  [(        R0                  " [&        5      (       a  [(        R2                  " [&        5      OS[(        R2                  " U5      [(        R2                  " U	5      [(        R2                  " U
5      S.-  nSSU0-  n[5        [(        R6                  " U5      5      eS=n=n=n=n	=pºg! , (       d  f       GN±= f)a  The definitions themselves, not just the markers pointing at them.

A table's correction agent returns the notes printed below it as marker and
text pairs, and resolution starts from those rather than from a scan over the
page's lines. A figure states them the same way.
rÉ  rÊ   rÊ  r   r  rÐ  rÞ  rß  ©r  rà  r‰   z Excludes noncontrolling interest)r  rà  r)  rü   zAs of 03/31/2026)rä  Únotesrx  r|   N)rà  r)  r«   )z]%(py9)s
{%(py9)s = %(py0)s(%(py4)s
{%(py4)s = %(py2)s.meta
}, %(py5)s, %(py7)s)
} == %(py12)sræ  r*   )rØ   rÚ   r°   r  r  rÛ   rb  r×  r;  )rw   r~  rl   r¤  r£  r1   r    r   r!   rc  rd  r   rÃ  ry  r{  r&   r}   rk   ræ  r*   r¸   r¹   rÞ   rß   rà   rº   r»   r¼   )ro   r$  r  rç  r_  r  râ   rÁ   r-  rã   rZ  rá  re  r=  s                 rE   Ú>test_the_notes_the_agent_read_off_the_page_land_on_the_picturerú  •  sI  € ô Ð?Ð@Ó
A€CÜ�1Ð.Ó/€EØŸ™ Q™×0Ñ0€EÔÜ˜ 9°u°gÑ>€DÜ Ü˜q¨°:Ñ>Ð?ä˜ #Ð,NÑOÜ˜ "Ð+=Ñ>ð
ñ€Fô 
×	$Ò	$Ô	&¨#Ü�c“˜YÑ&ˆÜ�6 Ò#Ü�Š”O C¨´¸Q¸C³À&ÓQÔR÷ 
'ð —<‘< ‘?ð ×'Ñ'ð ¸$ð Œ7Ð'¬¸$Ó?ð ØÐ BÑCØÐ1Ñ2ðDð ð Dñ ÷ ô ïé ôÐ?÷ ò ïé ÷õ ïé ðŒ7÷ ö ïé ðŒ7÷ ò ïé ð�?÷ ð ïé ðÐ'÷ ñ ïé ÷õ ïé ð¬÷ ö ïé ð¬÷ ò ïé ð¸$÷ ð ïé ðÐ?÷ ð ïé ðð D÷ ÷ ÷ ñ ïé ÷÷ ö ÷	 
'Ö	&ús   Â AI/É/
I>c            
     ó.  • [        S/5      n [        SS5      nU R                  S   R                  Ul        [        SSU/S9n[        [        SSSS	9/S
9n[        R                  " 5        n[        U5      S-  n[        USS9  [        R                  " [        X/[        S/5      XS5      5      nSSS5        / nWU:H  oˆ(       d¥  [         R"                  " SU4SXg45      S[$        R&                  " 5       ;   d  [         R(                  " U5      (       a  [         R*                  " U5      OS[         R*                  " U5      S.-  n	SSU	0-  n
[-        [         R.                  " U
5      5      eS=p‡UR0                  n/ /o¸U:H  oÌ(       dº  [         R"                  " SU4SX‹45      S[$        R&                  " 5       ;   d  [         R(                  " U5      (       a  [         R*                  " U5      OS[         R*                  " U5      [         R*                  " U5      S.-  n
SSU
0-  n[-        [         R.                  " U5      5      eS=n=pË[3        U R                  S   R4                  [6        5       Vs/ s H  oîS   PM	     nnS/oÏU:H  ow(       do  [         R"                  " SU4SXü45      [         R*                  " U5      [         R*                  " U5      S.-  nSSU0-  n[-        [         R.                  " U5      5      eS=n=p|g! , (       d  f       GNW= fs  snf )zšA chart printing a marker on its title leaves no fragments behind. The page
is still put to the agent, because the marker is on the figure, not beside it.rÉ  rÊ   rÊ  r   r  rÐ  Ú*rß  rø  rã  rx  r|   Nr«   r‘  rÛ  r“  r”  r  r¡  rç  r  r  r  rà  r­   r®   r±   r²   )rw   r~  rl   r¤  r£  r1   r    r   rc  rd  r   rÃ  ry  r{  r&   r}   r¸   r¹   rÞ   rß   rà   rº   r»   r¼   r¤  ræ  rk   r)   )ro   r$  r  rç  r_  r  rÛ  rÂ   râ   r¦  r+  rÆ   rÁ   r,  rõ  rÀ   rÃ   rÄ   s                     rE   ÚFtest_a_figure_carrying_markers_is_read_on_a_page_with_nothing_to_sweeprý  ±  sü  € ô Ð?Ð@Ó
A€CÜ�1Ð.Ó/€EØŸ™ Q™×0Ñ0€EÔÜ˜ 9°u°gÑ>€DÜ ¬&¸À#ÈJÑ*WÐ)XÑY€FÜ	×	$Ò	$Ô	&¨#Ü�c“˜YÑ&ˆÜ�6 Ò#Ü—+’+œo¨c°6¼:ÀqÀc»?ÈFÓ[Ó\ˆ÷ 
'ð Ðˆ7�b‰=×××Òˆ7×××××Õˆ7×××Ñˆ7××Õ�b××××××ÑØ�<‰<Ð˜B˜4Ð˜4Ñ×××Òˆ<×××××Õˆ6×××Ñˆ6××Õˆ<××Ó˜4××××××ÓÜ!(¨¯©°a©×)=Ñ)=Ô?SÔ!TÓUÒ!T˜AˆhŒKÑ!TÐ^ÐUÐZ]ÐY^Ð^ÐY^Ñ^×^×^×^Ò^ÐU×^×^Ô^ÐU×^×^Ó^ÐY^×^×^×^×^×^×^Ô^÷ 
'Ö	&üò Vs   Á+AL É.LÌ 
Lc            
     ó¬  • [        [        S/5      SSS[        R                  4/5      n [	        SS[        SS5      /S9n[        R                  " [        X/[        S/5      [        S5      S 5      5      n/ o2U:H  oD(       d¥  [        R                  " S	U4S
X#45      S[        R                  " 5       ;   d  [        R                  " U5      (       a  [        R                   " U5      OS[        R                   " U5      S.-  nSSU0-  n[#        [        R$                  " U5      5      eS =pCU R&                   Vs/ s H  owR(                  PM     nnS/o˜U	:H  o3(       do  [        R                  " S	U4SX‰45      [        R                   " U5      [        R                   " U	5      S.-  n
SSU
0-  n[#        [        R$                  " U5      5      eS =n=p9g s  snf )NrÉ  rÊ   rË  rÍ  r  rÊ  rÐ  z
unused.pdfr«   r‘  rÛ  r“  r”  r  r­   r®   r±   r²   )rÇ  rw   r   rÑ  r1   r~  ry  r{  r&   r}   r   r¸   r¹   rÞ   rß   rà   rº   r»   r¼   rÁ  r)  )ro   r  rÛ  rÂ   râ   r¦  r+  r:   rÀ   rÁ   rÃ   rÄ   s               rE   Ú+test_the_sweep_switched_off_removes_nothingrÿ  Â  s/  € Ü
ÜÐ=Ð>Ó?Ø
Ð% w´×0AÑ0AÐ	BÐCó€Cô ˜ 9´v¸aÐAYÓ7ZÐ6[Ñ\€DÜ�kŠkœ/¨#¨v´zÀ1À#³ÌÈ\ÓHZÐ\`ÓaÓb€GØÐ�b‰=×××Òˆ7×××××Õˆ7×××Ñˆ7××Õ�b××××××ÑØŸIšIÓ&šI�q�FŒF™IÐ3Ð&¨7¨)Ð3¨)Ñ3×3×3×3Ò3Ð&×3×3Ô3Ð&×3×3Ó3¨)×3×3×3×3×3×3Ô3ùÒ&s   Ä8Gc                 óÆ  • [        S/5      n [        SSS/SS//SS/SS//SS	S
SS.S9n[        SSU/S9n[        R                  " 5        n[        U5      S-  n[        USS9  [        U[        [        S5      [        R                  " S5      S5      n[        R                  " [        X/U[        S/5      U[        5       5      5      u  pgSSS5        / nWU:H  o™(       d¥  [         R"                  " SU	4SXx45      S[$        R&                  " 5       ;   d  [         R(                  " U5      (       a  [         R*                  " U5      OS[         R*                  " U5      S.-  n
SSU
0-  n[-        [         R.                  " U5      5      eS=p˜UR0                  n	SoÉU:H  oÝ(       dº  [         R"                  " SU4SXœ45      S[$        R&                  " 5       ;   d  [         R(                  " U5      (       a  [         R*                  " U5      OS[         R*                  " U	5      [         R*                  " U5      S.-  nSSU0-  n[-        [         R.                  " U5      5      eS=n	=pÜUR2                  n	SoÉUL oÝ(       dº  [         R"                  " S U4S!Xœ45      S[$        R&                  " 5       ;   d  [         R(                  " U5      (       a  [         R*                  " U5      OS[         R*                  " U	5      [         R*                  " U5      S.-  nSSU0-  n[-        [         R.                  " U5      5      eS=n	=pÜ[5        W5      nSoøU:H  oÌ(       Gd  [         R"                  " SU4S"X�45      S#[$        R&                  " 5       ;   d  [         R(                  " [4        5      (       a  [         R*                  " [4        5      OS#S[$        R&                  " 5       ;   d  [         R(                  " U5      (       a  [         R*                  " U5      OS[         R*                  " U5      [         R*                  " U5      S$.-  nS%S&U0-  n[-        [         R.                  " U5      5      eS=n=pÏ[7        X/U[        S/5      5      n/ nUU:H  o™(       d¦  [         R"                  " SU	4SUU45      S'[$        R&                  " 5       ;   d  [         R(                  " U5      (       a  [         R*                  " U5      OS'[         R*                  " U5      S.-  n
SSU
0-  n[-        [         R.                  " U5      5      eS=p˜U R8                  n[5        U5      nSnUU:H  nU(       Gd#  [         R"                  " SU4S(UU45      S#[$        R&                  " 5       ;   d  [         R(                  " [4        5      (       a  [         R*                  " [4        5      OS#S)[$        R&                  " 5       ;   d  [         R(                  " U 5      (       a  [         R*                  " U 5      OS)[         R*                  " U5      [         R*                  " U5      [         R*                  " U5      S*.-  nS+S,U0-  n[-        [         R.                  " U5      5      eS=n=n=nnU R:                  n[5        U5      nSnUU:H  nU(       Gd#  [         R"                  " SU4S-UU45      S#[$        R&                  " 5       ;   d  [         R(                  " [4        5      (       a  [         R*                  " [4        5      OS#S)[$        R&                  " 5       ;   d  [         R(                  " U 5      (       a  [         R*                  " U 5      OS)[         R*                  " U5      [         R*                  " U5      [         R*                  " U5      S*.-  nS+S,U0-  n[-        [         R.                  " U5      5      eS=n=n=nng! , (       d  f       GN= f).zÔThe parse detected the region and called it a picture. The scan read a
grid over it, so the page prints a table and the document gains one. The
picture stays: it is a real element and the values were read off it.)é   )r  gq=
×£pÍ?r4  r8  r6  r  ÚYearÚSalesÚ2025z$13Nr�  ç¸…ëQ¸Î?rÐ   g…ëQ¸í?r   ©rt   rU  rp  r@   rn   ©rt   r(  rn   rx  r|   r”   éÈ   r«   r‘  r’  r“  r”  r  z#/pictures/0)z3%(py2)s
{%(py2)s = %(py0)s.picture_ref
} == %(py5)sr  r  r  r  r°  )z1%(py2)s
{%(py2)s = %(py0)s.table_ref
} is %(py5)srÕ   rÖ   r×   r¶   r·   Úgraft_errorsrn  ro   r!  r"  r#  rÎ  )rw   r2   r1   rc  rd  r   rÃ  r#   r
   r   ry  Ú	Semaphorer{  r$   r}   r   r¸   r¹   rÞ   rß   rà   rº   r»   r¼   r£  r}  rÖ   r,   rn   rl   )ro   r  r  r_  r  Úassemblyrn   r’  rÂ   râ   r¦  r+  rÆ   rÁ   r,  rÅ   rÄ   rÇ   r	  rä   r-  r.  s                         rE   Ú<test_a_table_the_parse_filed_as_a_picture_is_added_beside_itr  Í  s�  € ô Ð<Ð=Ó
>€CÜØØ˜Ð  6¨5 /Ð2Ø˜4�L 4¨ ,Ð/Ø $°ÀÑFñ	€Gô ˜ H°g°YÑ?€DÜ	×	$Ò	$Ô	&¨#Ü�c“˜YÑ&ˆÜ�6 Ò$Ü  ¬¬c°4«¼'×:KÒ:KÈAÓ:NÐPSÓTˆÜ ŸšÜ˜3 ¨´
¸B¸4Ó0@À(ÌNÓL\Ó]ó
‰ˆ÷	 
'ð Ðˆ6�R‰<×××Òˆ6×××××Õˆ6×××Ñˆ6××Õ�R××××××ÑØ×ÑÐ0 .Ð0 .Ñ0×0×0×0Ò0Ð×0×0×0×0×0Õ0ˆ7×0×0×0Ñ0ˆ7×0×0Õ0Ð×0×0Ó0 .×0×0×0×0×0×0Ó0Ø×ÑÐ$ Ð$ Ð$×$×$×$Ò$Ð×$×$×$×$×$Õ$ˆ7×$×$×$Ñ$ˆ7×$×$Õ$Ð×$×$Ó$ ×$×$×$×$×$×$Ó$Üˆv‹;Ð˜!Ð˜!Ñ×××Óˆ;×××××ÕŒ3×××ÑŒ3×××××Öˆv×××Ñˆv××Õˆ;××Ó˜!××××××Óä  V¨V´ZÀÀÓ5EÓF€LØÐˆ<˜2Ñ×××Òˆ<˜2×××××Õˆ<×××Ñˆ<××Õ˜2××××××ÑØ�z‰zÐŒ3ˆz‹?Ð˜aÐˆ?˜aÑ×××Ôˆ?˜a×××××ÕŒ3×××ÑŒ3×××××Öˆs×××Ñˆs××Õˆz××Óˆ?××Ó˜a××××××ÖØ�|‰|Ð!Œ3ˆ|ÓÐ! Ð!Ð Ñ!×!×!×!Ô!Ð ×!×!×!×!×!Õ!Œ3×!×!×!Ñ!Œ3×!×!×!×!×!Ö!ˆs×!×!×!Ñ!ˆs×!×!Õ!ˆ|×!×!Ó!Ð×!×!Ó! ×!×!×!×!×!×!×!÷ 
'Ö	&ús   ÁB_ß
_ c                 óà  • [        S/S/S9n [        SSS//SS//SS	S
SS.S9n[        SSU/S9n[        R                  " 5        n[        U5      S-  n[        USS9  [        U[        [        S5      [        R                  " S5      S5      n[        R                  " [        X/U[        S/5      U[        5       5      5      u  pgSSS5        / nWU:H  o™(       d¥  [         R"                  " SU	4SXh45      S[$        R&                  " 5       ;   d  [         R(                  " U5      (       a  [         R*                  " U5      OS[         R*                  " U5      S.-  n
SSU
0-  n[-        [         R.                  " U5      5      eS=p˜/ nWU:H  o™(       d¥  [         R"                  " SU	4SXx45      S[$        R&                  " 5       ;   d  [         R(                  " U5      (       a  [         R*                  " U5      OS[         R*                  " U5      S.-  n
SSU
0-  n[-        [         R.                  " U5      5      eS=p˜UR0                  n	SoÉUL oÝ(       dº  [         R"                  " SU4SXœ45      S[$        R&                  " 5       ;   d  [         R(                  " U5      (       a  [         R*                  " U5      OS[         R*                  " U	5      [         R*                  " U5      S.-  nSSU0-  n[-        [         R.                  " U5      5      eS=n	=pÜU R2                  n[5        U5      nSoüU:H  nU(       Gd"  [         R"                  " SU4S XÏ45      S![$        R&                  " 5       ;   d  [         R(                  " [4        5      (       a  [         R*                  " [4        5      OS!S"[$        R&                  " 5       ;   d  [         R(                  " U 5      (       a  [         R*                  " U 5      OS"[         R*                  " U5      [         R*                  " U5      [         R*                  " U5      S#.-  nS$S%U0-  n[-        [         R.                  " U5      5      eS=n=n=nng! , (       d  f       GNŸ= f)&a  Docling detects the same region twice, once as a table and once as a
picture. The table engine read the text layer there, so the scan's reading is
ignored the way it is for any table the page nominated nothing for. Adding it
beside the parse table would state the same figures twice.©rÊ   ©rË   r�  r�  r  r6  ©rÊ   r  r  rÊ   zCRE Loan Summaryz$2,202.8NrË   r�  r�  r  r   r  rn   r  rx  r|   r”   r  r«   r‘  r“  r”  r  r’  r°  )z3%(py2)s
{%(py2)s = %(py0)s.picture_ref
} is %(py5)sr  r  r  r  rn  rÖ   ro   r!  r"  r#  )rw   r2   r1   rc  rd  r   rÃ  r#   r
   r   ry  r
  r{  r$   r}   r   r¸   r¹   rÞ   rß   rà   rº   r»   r¼   r£  rn   rÖ   )ro   r  r  r_  r  r  rn   r’  rÂ   râ   r¦  r+  rÆ   rÁ   r,  rä   r-  rÇ   r.  s                      rE   Ú@test_a_picture_a_parse_table_already_covers_is_not_a_second_homer  ë  s®  € ô
 Ø	/Ð0Ø-Ð.ñ€Cô ØØ" JÐ/Ð0Ø˜4�L�>Ø $°ÀÑFñ	€Gô ˜ 8°W°IÑ>€DÜ	×	$Ò	$Ô	&¨#Ü�c“˜YÑ&ˆÜ�6 Ò#Ü  ¬¬c°4«¼'×:KÒ:KÈAÓ:NÐPSÓTˆÜ ŸšÜ˜3 ¨´
¸A¸3³ÀÌ>ÓK[Ó\ó
‰ˆ÷	 
'ð Ðˆ6�R‰<×××Òˆ6×××××Õˆ6×××Ñˆ6××Õ�R××××××ÑØÐˆ6�R‰<×××Òˆ6×××××Õˆ6×××Ñˆ6××Õ�R××××××ÑØ×ÑÐ& $Ð& $Ð&×&×&×&Ò&Ð×&×&×&×&×&Õ&ˆ7×&×&×&Ñ&ˆ7×&×&Õ&Ð×&×&Ó& $×&×&×&×&×&×&Ó&Ø�z‰zÐŒ3ˆz‹?Ð˜aÐ˜aÑ×××Ôˆ?×××××ÕŒ3×××ÑŒ3×××××Öˆs×××Ñˆs××Õˆz××Óˆ?××Ó˜a×××××××÷ 
'Ö	&ús   ÁBQÑ
Q-c                 ó^  • [        / SQ5      n [        [        SSS9S9U R                  S   l        [        U [        S/5      5      n[        U5      nSo2U:H  oD(       Gd  [        R                  " S	U4S
X#45      S[        R                  " 5       ;   d  [        R                  " [        5      (       a  [        R                  " [        5      OSS[        R                  " 5       ;   d  [        R                  " U5      (       a  [        R                  " U5      OS[        R                  " U5      [        R                  " U5      S.-  nSSU0-  n[        [        R                  " U5      5      eS=n=pC/ nSo!S   o2U;   oDo„(       a  So‘S   o©U
;   o»nU(       Gd  [        R                  " SU4SX#45      [        R                  " U5      [        R                  " U5      S.-  nSSU0-  ogR!                  U5        U(       aa  [        R                  " SW4SW	W
45      [        R                  " U	5      [        R                  " U
5      S.-  nSSU0-  o×R!                  U5        [        R"                  " US5      0 -  nSSU0-  n[        [        R                  " U5      5      eS=n=n=n=n=n=n	=pºg)z°A figure covering no picture is already an error. The reverse was silent,
which is how a table the parse filed as a picture went missing on a page the
run reported nothing for.))r©   rê   r¨   )r©   )r§   r£   r^   r¤   Úbar_code)r©   )rÒ   rå  rD  r5  r¥   za bar chartr]   )r)  Ú
created_by)r¡  r   r©   r”   r«   rÕ   rÖ   r’  r×   r¶   r·   Nz#/pictures/1r  rk  )z%(py3)s in %(py6)s)rµ   r²   z%(py8)s)z%(py11)s in %(py14)s)rÝ   r;  z%(py16)sr  zassert %(py19)sÚpy19)rw   r   r   rl   rk   r-   r}   rÖ   r¸   r¹   rÞ   rß   rà   rº   r»   r¼   rj   r²  )ro   r’  rÂ   rÅ   rÆ   rÄ   rÇ   râ   rÀ   rá  r<  rY  r=  r   Ú@py_format18r!  s                   rE   Ú'test_a_picture_nothing_read_is_reportedr    s�  € ô ò	
ó€Cô 'Ü(¨mÈÑOñ€C‡L�L��OÔô ˜S¤*¨a¨S£/Ó2€FÜˆv‹;Ð˜!Ð˜!Ñ×××Óˆ;×××××ÕŒ3×××ÑŒ3×××××Öˆv×××Ñˆv××Õˆ;××Ó˜!××××××ÓÙBˆ>ÐB A™YÐB˜YÑ&×B¨:ÐBÀ¹ÐB¸Ñ+B×B×B×BÕBˆ>×B×BÔBˆ>×B×BÓB˜Y×B×B×B×B×B×B×BÒB¨:¸×B×BÔB¨:×B×BÓB¸×B×B×B×B×B×B×B×B×B×B×B×B×B×BrG   c            
     óŽ  • [        S/S/S9n S/n[        U5      n[        X5      n/ oCU:H  oU(       GdŠ  [        R                  " SU4SX445      S[
        R                  " 5       ;   d  [        R                  " [        5      (       a  [        R                  " [        5      OSS[
        R                  " 5       ;   d  [        R                  " U 5      (       a  [        R                  " U 5      OSS	[
        R                  " 5       ;   d  [        R                  " [        5      (       a  [        R                  " [        5      OS	[        R                  " U5      [        R                  " U5      [        R                  " U5      [        R                  " U5      S
.-  nSSU0-  n[        [        R                  " U5      5      eS=n=n=n=pTg)zˆThe parse detected one region twice, as a table and as a picture. The
table holds the content; the picture is a duplicate outline of it.r  r  r  rÊ   r«   )zX%(py8)s
{%(py8)s = %(py0)s(%(py1)s, %(py6)s
{%(py6)s = %(py2)s(%(py4)s)
})
} == %(py11)sr-   ro   r}   )rØ   r¯   rÚ   r°   r²   r·   rÝ   zassert %(py13)srT  N)rw   r}   r-   r¸   r¹   rÞ   rß   rà   rº   r»   r¼   )ro   rÁ   rÅ   rä   rá  rX  ræ   r[  s           rE   Ú-test_a_picture_a_table_covers_is_not_reportedr    sû   € ô Ø	/Ð0Ø-Ð.ñ€Cð -.¨3Ð6¤
¨3£Ð6Œ?˜3Ó0Ð6°BÐ6°BÑ6×6×6×6Ó6Ð0×6×6×6×6×6Õ6Œ?×6×6×6Ñ6Œ?×6×6×6×6×6Ö6˜3×6×6×6Ñ6˜3×6×6×6×6×6Ö6¤
×6×6×6Ñ6¤
×6×6Õ6¨3×6×6Ó6 ×6×6Ó6Ð0×6×6Ó6°B×6×6×6×6×6×6×6Ð6rG   a'  <::chart and table::>
<::chart: Cumulative Bonds Issued::>
Sep. 2012: $325
Jul. 2014: $625
<::table::>
| Category | Sep. 2012 | Jul. 2014 |
|:---|:---|:---|
| New Issuance Size ($M) | $325 | $300 |
| Bond Issue Credit Ratings | Ba3 / B+ / BB | Ba3 / B+ / BB |
<::/table::>
<::/chart and table::>c                 ó  • [        [        SS[        S5      /5      n [        U SSS9n[	        U5      nSo2U:H  oD(       Gd  [
        R                  " SU4S	X#45      S
[        R                  " 5       ;   d  [
        R                  " [        5      (       a  [
        R                  " [        5      OS
S[        R                  " 5       ;   d  [
        R                  " U5      (       a  [
        R                  " U5      OS[
        R                  " U5      [
        R                  " U5      S.-  nSSU0-  n[        [
        R                  " U5      5      eS=n=pCUS   nUR                  n/ SQ/ SQ/ SQ/oHU:H  o™(       dº  [
        R                  " SU	4SX„45      S[        R                  " 5       ;   d  [
        R                  " U5      (       a  [
        R                  " U5      OS[
        R                  " U5      [
        R                  " U5      S.-  n
SSU
0-  n[        [
        R                  " U5      5      eS=n=p”UR                  n[        S5       Vs/ s H	  nS/S-  PM     nnX„:H  o™(       dº  [
        R                  " SU	4SX„45      S[        R                  " 5       ;   d  [
        R                  " U5      (       a  [
        R                  " U5      OS[
        R                  " U5      [
        R                  " U5      S.-  n
SSU
0-  n[        [
        R                  " U5      5      eS=n=p”UR                   nSSSSS.oHU:H  o™(       dº  [
        R                  " SU	4S X„45      S[        R                  " 5       ;   d  [
        R                  " U5      (       a  [
        R                  " U5      OS[
        R                  " U5      [
        R                  " U5      S.-  n
SSU
0-  n[        [
        R                  " U5      5      eS=n=p”gs  snf )!z×A page printing a chart and a table as one composite comes back as a
single figure with the table written into its text between markers the scan
emits itself. The markers are read; nothing infers where the table is.r  )rÒ   r  rZ  çáz®Gáê?r  é   rˆ  ©rt   r—   r”   r«   rÕ   rÖ   rn   r×   r¶   r·   Nr   )ÚCategoryz	Sep. 2012z	Jul. 2014)zNew Issuance Size ($M)z$325z$300)zBond Issue Credit RatingsúBa3 / B+ / BBr  ro  r6  r  r  r  r©   )z2%(py2)s
{%(py2)s = %(py0)s.cell_boxes
} == %(py5)srÒ   r  rZ  r  r   r'  )r    r‹   ÚCOMPOSITE_TEXTr.   rÖ   r¸   r¹   rÞ   rß   rà   rº   r»   r¼   rU  rp  rÂ  r@   )r*  rn   rÂ   rÅ   rÆ   rÄ   rÇ   r6  râ   rÁ   r+  r,  r'  s                rE   Ú7test_a_table_printed_inside_a_figure_is_read_as_a_tabler!  3  sš  € ô œ& Ð+CÄ^ÐU\Ó]Ð^Ó_€HÜ˜H¨2°gÑ>€FÜˆv‹;Ð˜!Ð˜!Ñ×××Óˆ;×××××ÕŒ3×××ÑŒ3×××××Öˆv×××Ñˆv××Õˆ;××Ó˜!××××××ÓØ�1‰I€EØ�;‰;ð Ú.Ú2ÚGðð ð ñ ÷ ó ïé ô	ˆ;÷ ò ïé ÷	õ ïé ð	ˆ5÷ ö ïé ð	ˆ5÷ ò ïé ð	ˆ;÷ ð ïé ð	ð ÷ ÷ ÷ ñ ïé ÷	÷ ð ×ÑÐ=´E¸!´HÓ=²H¨q  ¨¤
±HÐ=Ð=ÐÑ=×=×=×=Ò=Ð×=×=×=×=×=Õ=ˆ5×=×=×=Ñ=ˆ5×=×=Õ=Ð×=×=Ó=Ð=×=×=×=×=×=×=Ó=Ø�9‰9ÐR ¨d¸TÈTÑRÐRÐRÑR×R×R×RÒRˆ9×R×R×R×R×RÕRˆ5×R×R×RÑRˆ5×R×RÕRˆ9×R×RÓRÐR×R×R×R×R×R×RÔRùò  >s   ÉPc            	     óò  • [        [        SS[        S5      /5      n SnSn[        XUS9n/ oCU:H  oU(       Gd7  [        R
                  " SU4SX445      S	[        R                  " 5       ;   d  [        R                  " [        5      (       a  [        R                  " [        5      OS	S
[        R                  " 5       ;   d  [        R                  " U 5      (       a  [        R                  " U 5      OS
[        R                  " U5      [        R                  " U5      [        R                  " U5      [        R                  " U5      S.-  nSSU0-  n[        [        R                  " U5      5      eS =n=n=n=pTg )Nr  rw  r  rÊ   rˆ  r  r«   )zO%(py7)s
{%(py7)s = %(py0)s(%(py1)s, page=%(py3)s, job_id=%(py5)s)
} == %(py10)sr.   r*  r`  ra  rb  )r    r‹   r%  r.   r¸   r¹   rÞ   rß   rà   rº   r»   r¼   )r*  rÂ   rÆ   r-  rX  rã   r.  re  s           rE   Ú1test_a_figure_with_no_table_block_yields_no_tabler#  F  sÕ   € Üœ& Ð+?ÄÐQXÓYÐZÓ[€HØ)*ÐA°7ÐAŒ>˜(°7Ñ;ÐA¸rÐA¸rÑA×A×A×AÓAÐ;×A×A×A×A×AÕAŒ>×A×A×AÑAŒ>×A×A×A×A×AÖA˜(×A×A×AÑA˜(×A×AÕA¨×A×AÓA°7×A×AÓAÐ;×A×AÓA¸r×A×A×A×A×A×A×AÐArG   )r@   ÚNormBoxÚreturnr   )Frˆ   )rl   z"Sequence[Tuple[int, NormBox, str]]rm   Úboolrn   zSequence[Tuple[int, NormBox]]r%  r   )rs   zSequence[int]r%  zDict[int, Tuple[float, float]])
r‰   rR  r@   r$  r†   rR  rŠ   rR  r%  úDict[str, Any])r  )r›   úList[Dict[str, Any]]rŸ   Úfloatr%  r'  )rt   rÿ  r  zSequence[FigureRecord]r%  r1   )
rt   rÿ  r@   r$  r)  rR  rŠ   rR  r%  r/   )rø  r   r%  r   )r  r   r%  zset[Tuple[int, int, int]])r%  r   )r2  )rU  r(  r^  rR  r%  r'  )r%  r2   )r%  r   )rø  r   rs   rÿ  r%  r   )ro   r   rÁ  z0Sequence[Tuple[int, NormBox, str, DocItemLabel]])©Ú__doc__Ú
__future__r   ÚbuiltinsrÞ   Ú_pytest.assertion.rewriteÚ	assertionÚrewriter¸   ry  rc  Úpathlibr   Útypingr   r   r   r   r	   r
   ro  Údocling_core.types.doc.baser   r   r   Ú"docling_core.types.doc.common.metar   Ú'docling_core.types.doc.common.referencer   Údocling_core.types.doc.documentr   r   r   r   r   r   r   r   r   r   Údocling_core.types.doc.labelsr   ÚPILr   r  Úquber.agents.cell_readerr   Úquber.agents.figure_correctionr   r   r   r    r!   Úquber.core.extractors.baser"   Ú*quber.core.extractors.set_of_mark.assembler#   Úquber.core.figures.capturer$   Úquber.core.figures.correctr%   r&   Úquber.core.figures.crosscheckr'   Úquber.core.figures.geometryr(   Úquber.core.figures.graftr)   r*   r+   r,   r-   Úquber.core.figures.gridr.   Úquber.core.figures.modelsr/   r0   r1   r2   Úquber.core.figures.nominater3   Úquber.core.figures.orchestratorr4   Úquber.core.figures.scanr5   r=   r>   r)  r$  rF   rw   r}   r‹   r    r%  rÈ   rç   rõ   rø   rú   rý   r
  r  r/  r:  rB  rI  r]  rf  ri  rs  r‚  r†  rŠ  r~  r§  r¼  rÂ  rÈ  râ  rí  rù  r  r  r"  r(  r*  r2  r9  r>  rE  rH  rJ  rL  ra  rq  rs  rv  rz  r…  r‹  rŽ  rq   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ˆ   rG   rE   Ú<module>rF     sƒ  ðñõ #ç  „ ƒÛ Ý ß 9× 9ã ß FÑ FÝ CÝ <÷÷ ÷ õ 7Ý !å 3ß iÕ iÝ 5Ý DÝ 5ß BÝ :Ý 0÷õ õ 3ß UÓ UÝ 6Ý 9Ý -à�€ˆØ
��u˜e UÐ*Ñ
+€ôð !Ø,.ð'Ø0ð'àð'ð *ð'ð õ	'ôT2ôöð=ð ò
9ò/ò
AòAò8ò
.ò5ò%ò7ò$"ò$	6ò
.ò LòFò4ò1ò1ò *ô*ð 1?ÐPWö ò?ò.Yò2ò86ò"$+òNEôDô$
ôòIò8Vò$	4ò6ò2Hò6dòCò2
"òVò 8ö)òXSò80ò"ò%òò:Oô8Tò>ôò:	òò%ò	1òòòô	ôò9ò$8ò4ò,ò6
hòò*ò8_ò"4ò"ò< ò:Cò&7ð	ð òSó&BrG   