Ë
    £èhÿL  ã                  ó2  — d dl mZ d dlmZmZmZ d dlZd dlZd dlmZ d dl	m
Z
 d dlmZ d dlmZ d dlmZ d d	lmZmZ d d
lmZmZmZmZmZmZmZ d dlmZ dZdZdZ dZ!dZ"dZ#dZ$dZ% G d„ d«      Z&dd„Z'd d„Z(d!d„Z)dZ*dZ+ G d„ d«      Z,	 d"	 	 	 d#d„Z-d$d„Z.y)%é    )Úannotations)ÚIterableÚSequenceÚOptionalN)Úcolors)ÚVec2)Úconst)ÚTextEntityAlignment)Úprint_bitmask)ÚMLeaderStyleOverrideÚOVERRIDE_FLAG)ÚEdgePathÚPolylinePathÚLineEdgeÚArcEdgeÚEllipseEdgeÚ
SplineEdgeÚmleader)Ú
DXFPolygonÚEDGE_START_MARKERÚEDGE_END_MARKERÚHATCHÚPOLYLINE_MARKERÚLINE_MARKERÚ
ARC_MARKERÚELLIPSE_MARKERÚSPLINE_MARKERc                  óÆ   — e Zd Zdddœ	 	 	 dd„Zd„ Zd„ Zdd„Zdd„Zdd	„Zdd
„Z	dd„Z
	 	 	 	 	 	 	 	 	 	 dd„Zdd„Zdd„Zdd„Zdd„Zdd„Zd d„Zed!d„«       Zedd„«       Zy)"ÚHatchAnalyzerç      ð?é-   )Úmarker_sizeÚanglec               óÐ   — || _         || _        t        j                  «       | _        | j                  j                  «       | _        | j                  «        | j                  «        y ©N)	r"   r#   ÚezdxfÚnewÚdocÚ
modelspaceÚmspÚinit_layersÚinit_markers)Úselfr"   r#   s      ú3lib/python3.12/site-packages/ezdxf/tools/analyze.pyÚ__init__zHatchAnalyzer.__init__%   sL   € ð 'ˆÔØˆŒ
Ü—9‘9“;ˆŒØ—8‘8×&Ñ&Ó(ˆŒØ×ÑÔØ×ÑÕó    c                ó�  — | j                   j                  j                  t        t        j
                  ¬«       | j                   j                  j                  t        t        j                  ¬«       | j                   j                  j                  t        t        j                  ¬«       | j                   j                  j                  t        t        j                  ¬«       | j                   j                  j                  t        t        j                  ¬«       | j                   j                  j                  t        «       y ©N)Úcolor)r(   ÚlayersÚaddÚPOLYLINE_LAYERr   ÚYELLOWÚ
LINE_LAYERÚREDÚ	ARC_LAYERÚGREENÚELLIPSE_LAYERÚMAGENTAÚSPLINE_LAYERÚCYANÚHATCH_LAYER©r-   s    r.   r+   zHatchAnalyzer.init_layers2   s³   € Ø�‰�‰×ÑœN´&·-±-ÐÔ@Ø�‰�‰×ÑœJ¬f¯j©jÐÔ9Ø�‰�‰×ÑœI¬V¯\©\ÐÔ:Ø�‰�‰×ÑœM´·±ÐÔ@Ø�‰�‰×ÑœL´·±ÐÔ<Ø�‰�‰×ÑœKÕ(r0   c                ó  — | j                   j                  j                  t        «      }ddi}| j                  dz  }|}|j                  d||¬«       |dz  }|j                  |df||dz  z
  df|¬«       |j                  d	|¬
«      }||j                  _	        |j                  |dft        j                  ¬«       | j                   j                  j                  t        «      }ddi}|j                  | | f||f|¬«       |j                  | |f|| f|¬«       | dz  }|j                  | df||dz  z   df|¬«       |j                  d	|¬
«      }||j                  _	        |j                  |dft        j                  ¬«       y )NÚlayerÚ0ç       @©r   r   ©ÚcenterÚradiusÚ
dxfattribsé   r   )ÚstartÚendrJ   ÚNAME)ÚtagrJ   )Úalign)r(   Úblocksr'   r   r"   Ú
add_circleÚadd_lineÚ
add_attdefÚdxfÚheightÚset_placementr
   ÚMIDDLE_LEFTr   ÚMIDDLE_RIGHT)r-   ÚblkÚattribsrI   rV   Ú
text_startÚtexts          r.   r,   zHatchAnalyzer.init_markers:   sÒ  € Ø�h‰h�o‰o×!Ñ!Ô"3Ó4ˆØ˜C�.ˆØ×!Ñ! CÑ'ˆØˆð 	�‰ØØØð 	ô 	
ð
 ˜a‘Zˆ
Ø�‰Ø˜1�+Ø˜f s™lÑ*¨AÐ.Øð 	ô 	
ð
 �~‰~ØØð ó 
ˆð !ˆ�‰ŒØ×ÑØ˜ˆOÔ#6×#BÑ#Bð 	ô 	
ð
 �h‰h�o‰o×!Ñ!¤/Ó2ˆØ˜C�.ˆØ�‰Ø�7˜V˜GÐ$Ø˜Ð Øð 	ô 	
ð
 	�‰Ø�7˜FÐ#Ø˜&˜Ð!Øð 	ô 	
ð
 �W˜q‘[ˆ
Ø�‰Ø�7˜A�,Ø˜f s™lÑ*¨AÐ.Øð 	ô 	
ð
 �~‰~ØØð ó 
ˆð !ˆ�‰ŒØ×ÑØ˜ˆOÔ#6×#CÑ#Cð 	õ 	
r0   c                ó:   — | j                   j                  |«       y r%   )r(   Úsaveas)r-   Únames     r.   ÚexportzHatchAnalyzer.exportq   s   € Ø�‰�‰˜Õr0   c                óš   — |j                   j                  d«       t        |j                   _        | j                  j                  |«       y )NÚ	extrusion)rU   Údiscardr@   rC   r*   Úadd_foreign_entity)r-   Úhatchs     r.   Ú	add_hatchzHatchAnalyzer.add_hatcht   s1   € Ø�	‰	×Ñ˜+Ô&Ü%ˆ�	‰	ŒØ�‰×#Ñ# EÕ*r0   c                ó"  — |j                   j                  d«       d}|j                  D ]c  }|dz  }t        |t        «      r| j                  ||«       Œ+t        |t        «      r| j                  ||«       ŒNt        dt        |«      › �«      ‚ y )Nrc   r   é   zunknown boundary path type: )
rU   rd   ÚpathsÚ
isinstancer   Úadd_polyline_markersr   Úadd_edge_markersÚ	TypeErrorÚtype)r-   rf   Úpath_numÚps       r.   Úadd_boundary_markersz"HatchAnalyzer.add_boundary_markersy   s{   € Ø�	‰	×Ñ˜+Ô&Øˆà—”ˆAØ˜‰MˆHÜ˜!œ\Ô*Ø×)Ñ)¨!¨XÕ6Ü˜AœxÔ(Ø×%Ñ% a¨Õ2äÐ">¼tÀA»w¸iÐ HÓIÐIñ r0   c                ó4   — | j                  t        |||«       y r%   )Ú
add_markerr   ©r-   Úlocationr`   rC   s       r.   Úadd_start_markerzHatchAnalyzer.add_start_marker†   s   € Ø�‰Ô)¨8°T¸5ÕAr0   c                ó4   — | j                  t        |||«       y r%   )rt   r   ru   s       r.   Úadd_end_markerzHatchAnalyzer.add_end_marker‰   s   € Ø�‰œ¨°4¸Õ?r0   c                ó€   — | j                   j                  |||| j                  dœ¬«      }|j                  d|i«       y )N)rC   Úrotation)r`   ÚinsertrJ   rN   )r*   Úadd_blockrefr#   Úadd_auto_attribs)r-   Úblk_namerv   r`   rC   Úblkrefs         r.   rt   zHatchAnalyzer.add_markerŒ   sF   € ð —‘×&Ñ&ØØàØ ŸJ™Jñð 'ó 
ˆð 	×Ñ ¨ Õ/r0   c                óÈ   — | j                  t        |j                  d   «      d|› d�t        «       | j	                  t        |j                  d   «      d|› d�t        «       y )Nr   zPoly-S(Ú)zPoly-E()rw   r   Úverticesr6   ry   )r-   rq   Únums      r.   rl   z"HatchAnalyzer.add_polyline_markers™   sZ   € Ø×ÑÜ�—‘˜A‘Ó 7¨3¨%¨qÐ!1´>ô	
ð 	×ÑÜ�—‘˜A‘Ó 7¨3¨%¨qÐ!1´>õ	
r0   c                óŠ  — d}|j                   D ]²  }|dz  }d|› d|› d�}t        |t        «      r| j                  ||«       Œ4t        |t        «      r| j                  ||«       ŒWt        |t        «      r| j                  ||«       Œzt        |t        «      r| j                  ||«       Œ�t        dt        |«      › �«      ‚ y )Nr   ri   Ú(Ú.r‚   zunknown edge type: )Úedgesrk   r   Úadd_line_edge_markersr   Úadd_arc_edge_markersr   Úadd_ellipse_edge_markersr   Úadd_spline_edge_markersrn   ro   )r-   rq   r„   Úedge_numÚedger`   s         r.   rm   zHatchAnalyzer.add_edge_markers¡   s·   € ØˆØ—G”GˆDØ˜‰MˆHØ�s�e˜1˜X˜J aÐ(ˆDÜØÜôð ×*Ñ*¨4°Õ6Ü˜D¤'Ô*Ø×)Ñ)¨$°Õ5Ü˜D¤+Ô.Ø×-Ñ-¨d°DÕ9Ü˜D¤*Ô-Ø×,Ñ,¨T°4Õ8äÐ"5´d¸4³j°\Ð BÓCÐCñ r0   c                ó”   — | j                  |j                  d|z   t        «       | j                  |j                  d|z   t        «       y )NzLine-SzLine-E)rw   rL   r8   ry   rM   )r-   Úliner`   s      r.   r‰   z#HatchAnalyzer.add_line_edge_markers´   s6   € Ø×Ñ˜dŸj™j¨(°T©/¼:ÔFØ×Ñ˜DŸH™H h°¡o´zÕBr0   c                ó”   — | j                  |j                  d|z   t        «       | j                  |j                  d|z   t        «       y )NzArc-SzArc-E)rw   Ústart_pointr:   ry   Ú	end_point)r-   Úarcr`   s      r.   rŠ   z"HatchAnalyzer.add_arc_edge_markers¸   s6   € Ø×Ñ˜cŸo™o¨w¸©~¼yÔIØ×Ñ˜CŸM™M¨7°T©>¼9ÕEr0   c                ó”   — | j                  |j                  d|z   t        «       | j                  |j                  d|z   t        «       y )Nz	Ellipse-Sz	Ellipse-E)rw   r’   r<   ry   r“   )r-   Úellipser`   s      r.   r‹   z&HatchAnalyzer.add_ellipse_edge_markers¼   sD   € Ø×ÑØ×Ñ ¨tÑ!3´]ô	
ð 	×ÑØ×Ñ˜{¨TÑ1´=õ	
r0   c                óÀ   — t        |j                  «      rI| j                  |j                  d|z   t        «       | j                  |j                  d|z   t        «       y y )NÚSplineSÚSplineE)ÚlenÚcontrol_pointsrw   r’   r>   ry   r“   )r-   Úspliner`   s      r.   rŒ   z%HatchAnalyzer.add_spline_edge_markersÄ   sY   € Üˆv×$Ñ$Ô%ð ×!Ñ!Ø×"Ñ" I°Ñ$4´lôð ×ÑØ× Ñ  )¨dÑ"2´Lõð &r0   c                ó   — t        | «      S r%   )Úhatch_report©rf   s    r.   ÚreportzHatchAnalyzer.reportÏ   s   € ä˜EÓ"Ð"r0   c                óJ   — t        dj                  t        | «      «      «       y ©NÚ
)ÚprintÚjoinrž   rŸ   s    r.   Úprint_reportzHatchAnalyzer.print_reportÓ   s   € äˆd�i‰iœ UÓ+Ó,Õ-r0   N)r"   Úfloatr#   r§   )r`   ÚstrÚreturnÚNone)rf   r   r©   rª   )rv   r   r`   r¨   rC   r¨   r©   rª   )
r   r¨   rv   r   r`   r¨   rC   r¨   r©   rª   )rq   r   r„   Úintr©   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¨   r©   rª   ©rf   r   r©   ú	list[str])Ú__name__Ú
__module__Ú__qualname__r/   r+   r,   ra   rg   rr   rw   ry   rt   rl   rm   r‰   rŠ   r‹   rŒ   Ústaticmethodr    r¦   © r0   r.   r   r   $   sÀ   „ ð !Øñ	ð ðð ó	ò)ò5
ónó+ó
JóBó@ð0Øð0Ø'+ð0Ø36ð0Ø?Bð0à	ó0ó
óDó&CóFó
ó	ð ò#ó ð#ð ò.ó ñ.r0   r   c                ó°  — | j                   }t        j                  |j                     }t        j                  |j
                     }t        | «      › dt        |j                  «      › �d|› �d|j                  › �dt        |j                  «      › �d|› �d| j                  d u› �d| j                  d u› �dt        | j                  «      › �d	t        | j                  «      › �g
}d
}| j                  D ]_  }|dz  }t!        |t"        «      r|j%                  t'        ||«      «       Œ4t!        |t(        «      sŒE|j%                  t+        ||«      «       Œa |S )Nz   solid fill: z   pattern type: z   pattern name: z   associative: z   island detection: z   has pattern data: z   has gradient data: z   seed value count: z   boundary path count: r   ri   )rU   r	   ÚISLAND_DETECTIONÚhatch_styleÚHATCH_PATTERN_TYPEÚpattern_typer¨   ÚboolÚ
solid_fillÚpattern_nameÚassociativeÚpatternÚgradientrš   Úseedsrj   rk   r   ÚextendÚpolyline_path_reportr   Úedge_path_report)rf   rU   Ústyler·   r]   r„   Úpaths          r.   rž   rž   Ø   sC  € Ø
�)‰)€CÜ×"Ñ" 3§?¡?Ñ3€EÜ×+Ñ+¨C×,<Ñ,<Ñ=€Läˆu‹:ˆ,Ø
œ$˜sŸ~™~Ó.Ð/Ð0Ø
˜L˜>Ð*Ø
˜C×,Ñ,Ð-Ð.Ø
œ4 §¡Ó0Ð1Ð2Ø
 ˜wÐ'Ø
 §¡°TÐ 9Ð:Ð;Ø
  §¡°tÐ!;Ð <Ð=Ø
¤ E§K¡KÓ 0Ð1Ð2Ø
"¤3 u§{¡{Ó#3Ð"4Ð5ð€Dð €CØ—”ˆØˆq‰ˆÜ�dœLÔ)Ø�K‰KÔ,¨T°3Ó7Õ8Ü˜œhÕ'Ø�K‰KÔ(¨¨sÓ3Õ4ð ð €Kr0   c                óœ   — dj                  t        j                  | j                  «      «      }|› dt	        | j
                  «      › �d|› �gS )Nú, z. Polyline Path, vertex count: ú#   path type:                      )r¥   r	   Úboundary_path_flag_namesÚpath_type_flagsrš   rƒ   )rq   r„   Ú	path_types      r.   rÀ   rÀ   ò   sM   € Ø—	‘	œ%×8Ñ8¸×9JÑ9JÓKÓL€Iàˆ%Ð.¬s°1·:±:«Ð.?Ð@Ø
-¨i¨[Ð9ðð r0   c           	     óv  — d}d}dj                  t        j                  | j                  «      «      }| j                  }t        |«      rJ|d   j                  j                  |d   j                  «      }t        d„ t        ||dd  «      D «       «      }|› dt        | j                  «      › �d|› �d	|› �d
|› �gS )NFrÅ   r   éÿÿÿÿc              3  ól   K  — | ],  \  }}|j                   j                  |j                  «      –— Œ. y ­wr%   )r“   Úiscloser’   )Ú.0Úe1Úe2s      r.   Ú	<genexpr>z#edge_path_report.<locals>.<genexpr>  s/   è ø€ ð 
á/‘��Bð �L‰L× Ñ  §¡×0Ù/ùs   ‚24ri   z. Edge Path, edge count: rÆ   z#   continuously connected edges:   z#   closed edge loop:               )r¥   r	   rÇ   rÈ   rˆ   rš   r’   rÍ   r“   ÚallÚzip)rq   r„   ÚclosedÚ	connectedrÉ   rˆ   s         r.   rÁ   rÁ   ú   sÄ   € Ø€FØ€IØ—	‘	œ%×8Ñ8¸×9JÑ9JÓKÓL€IØ�G‰G€EÜ
ˆ5„zØ�q‘×%Ñ%×-Ñ-¨e°B©i×.AÑ.AÓBˆÜñ 
ä˜e U¨1¨2 YÔ/ó
ó 
ˆ	ð ˆ%Ð(¬¨Q¯W©W«¨Ð7Ø
-¨i¨[Ð9Ø
-¨i¨[Ð9Ø
-¨f¨XÐ6ð	ð r0   ÚMULTILEADER_MARKERÚPOINT_MARKERc                  ó  — e Zd ZdZdddœ	 	 	 	 	 d"d„Zd„ Zd„ Zed#d„«       Zed$d	„«       Z	d%d&d
„Z
d'd„Zd(d„Zd)d„Zd„ Zd(d„Zd(d„Zd„ Zd„ Zd(d„Zd„ Zd(d„Zd„ Zd(d„Zd„ Zd(d„Z	 	 	 	 	 	 d*d„Zd(d„Zd„ Zd(d„Zd(d„Zd„ Zd(d „Z y!)+ÚMultileaderAnalyzerz€Multileader can not be added as foreign entity to a new document.
    Annotations have to be added to the source document.

    r    éO   )r"   Úreport_widthc               ó  — || _         || _        || _        | j                  j                  €J d«       ‚| j                  j                  | _        | j                  j	                  «       | _        | j                  «        | j                  «        y )Nzvalid DXF document required)r"   rÛ   Úmultileaderr(   r)   r*   r+   r,   )r-   rÝ   r"   rÛ   s       r.   r/   zMultileaderAnalyzer.__init__  sy   € ð 'ˆÔØ(ˆÔØ&ˆÔØ×Ñ×#Ñ#Ð/ÐNÐ1NÓNÐ/Ø×#Ñ#×'Ñ'ˆŒØ—8‘8×&Ñ&Ó(ˆŒØ×ÑÔØ×ÑÕr0   c                óÊ   — | j                   j                  j                  t        «      ry | j                   j                  j	                  t        t
        j                  ¬«       y r2   )r(   r4   Ú	has_entryÚMULTILEADERr5   r   r9   rA   s    r.   r+   zMultileaderAnalyzer.init_layers(  s:   € Ø�8‰8�?‰?×$Ñ$¤[Ô1ØØ�‰�‰×ÑœK¬v¯z©zÐÕ:r0   c                óP  — t         | j                  j                  vrŠ| j                  j                  j                  t         «      }ddi}| j                  }|dz  }|dz  }|j                  d||¬«       |j                  | df|df|¬«       |j                  d| fd|f|¬«       y y )	NrC   rD   rE   g      @rF   rG   r   )rJ   )r×   r(   rQ   r'   r"   rR   rS   )r-   rZ   r[   ÚsizeÚsize_2rI   s         r.   r,   z MultileaderAnalyzer.init_markers-  s©   € Ü˜tŸx™xŸ™Ñ.Ø—(‘(—/‘/×%Ñ%¤lÓ3ˆCØ �nˆGØ×#Ñ#ˆDØ˜C‘ZˆFØ˜C‘ZˆFØ�N‰NØØØ"ð ô ð
 �L‰L˜6˜' 1˜¨° {¸wˆLÔGØ�L‰L˜!˜f˜W˜¨¨6 {¸wˆLÕGð /r0   c                ó.   — | j                   j                  S r%   )rÝ   ÚcontextrA   s    r.   rå   zMultileaderAnalyzer.context<  s   € à×Ñ×'Ñ'Ð'r0   c                ó–   — | j                   j                  j                  d«      }| j                  j                  j                  |«      S )NÚstyle_handle)rÝ   rU   Úgetr(   Úentitydb)r-   Úhandles     r.   Úmleaderstylez MultileaderAnalyzer.mleaderstyle@  s9   € à×!Ñ!×%Ñ%×)Ñ)¨.Ó9ˆØ�x‰x× Ñ ×$Ñ$ VÓ,Ð,r0   c                ó    — || j                   z  S r%   )rÛ   )r-   Úsymbols     r.   Údivider_linez MultileaderAnalyzer.divider_lineE  s   € Ø˜×)Ñ)Ñ)Ð)r0   c                ój   — |D �cg c]#  }t        j                  || j                  ¬«      ‘Œ% c}S c c}w )N)Úwidth)ÚtextwrapÚshortenrÛ   )r-   Úlinesr�   s      r.   Úshorten_linesz!MultileaderAnalyzer.shorten_linesH  s6   € áHMó
ÙHMÀŒH×Ñ˜T¨×):Ñ):Ö;Èñ
ð 	
ùò 
s   …(0c                ó0  — t        | j                  «      | j                  «       d| j                  «       g}|j                  | j	                  «       «       |j                  | j                  «       «       | j                  j                  �|j                  | j                  «       «       | j                  j                  �T|j                  | j                  «       «       | j                  j                  r|j                  | j                  «       «       | j                  j                  j                  r|j                  | j                  «       «       | j                  j                  r|j                  | j                  «       «       | j!                  |«      S )NzExisting DXF attributes:)r¨   rÝ   rî   r¿   Úmultileader_attributesÚcontext_attributesrå   ÚmtextÚmtext_attributesÚblockÚblock_attributesÚblock_attribsÚblock_reference_attribsÚleadersÚleader_attributesÚarrow_headsrô   )r-   r    s     r.   r    zMultileaderAnalyzer.reportM  s+  € ä�× Ñ Ó!Ø×ÑÓØ&Ø×ÑÓð	
ˆð 	�‰�d×1Ñ1Ó3Ô4Ø�‰�d×-Ñ-Ó/Ô0Ø�<‰<×ÑÐ)Ø�M‰M˜$×/Ñ/Ó1Ô2Ø�<‰<×ÑÐ)Ø�M‰M˜$×/Ñ/Ó1Ô2Ø×Ñ×-Ò-Ø—‘˜d×:Ñ:Ó<Ô=Ø×Ñ×#Ñ#×+Ò+Ø�M‰M˜$×0Ñ0Ó2Ô3Ø×Ñ×'Ò'Ø�M‰M˜$×*Ñ*Ó,Ô-Ø×!Ñ! &Ó)Ð)r0   c                ó¸   — | j                   }t        «        t        d|z  «       t        dj                  | j                  «       «      «       t        d|z  «       y )NÚ=r£   )rÛ   r¤   r¥   r    )r-   rð   s     r.   r¦   z MultileaderAnalyzer.print_reportb  sA   € Ø×!Ñ!ˆÜŒÜˆc�E‰kÔÜˆd�i‰i˜Ÿ™›Ó&Ô'Üˆc�E‰kÕr0   c                óT   — t        dj                  | j                  «       «      «       y r¢   )r¤   r¥   Úoverridden_attributesrA   s    r.   Úprint_overridden_propertiesz/MultileaderAnalyzer.print_overridden_propertiesi  s   € Üˆd�i‰i˜×2Ñ2Ó4Ó5Õ6r0   c                ó0  — | j                   }| j                  }|�À| j                  «       dt        |«      › d|j                  j
                  › d�| j                  «       g}t        ||«      }t        j                  «       D ]9  }|j                  |«      sŒ|j                  |› d|j                  |«      › �«       Œ; |j                  r|j                  d«       |S | j                   j                  j                  d«      }| j                  «       d|› d�g}|S )	NzOverride attributes of z: 'Ú'ú: zuse_mtext_default_content: 1rç   úMLEADERSTYLE(#ú) not found)rÝ   rë   rî   r¨   rU   r`   r   r   ÚkeysÚis_overriddenÚappendrè   Úuse_mtext_default_content)r-   rÝ   rÂ   r    Úoverrider`   rê   s          r.   r  z)MultileaderAnalyzer.overridden_attributesl  s  € Ø×&Ñ&ˆØ×!Ñ!ˆØÐà×!Ñ!Ó#Ø)¬#¨e«*¨°S¸¿¹¿¹Ð8HÈÐJØ×!Ñ!Ó#ðˆFô ,¨E°;Ó?ˆHÜ%×*Ñ*Ö,�Ø×)Ñ)¨$Õ/Ø—M‘M T F¨"¨X¯\©\¸$Ó-?Ð,@Ð"AÕBð -ð ×1Ò1Ø—‘Ð<Ô=ð ˆð ×%Ñ%×)Ñ)×-Ñ-¨nÓ=ˆFà×!Ñ!Ó#Ø   ¨Ð4ðˆFð ˆr0   c                ó¶   — | j                   j                  j                  «       }t        |j	                  «       «      }|D �cg c]  }|› d||   › �‘Œ c}S c c}w ©Nr  )rÝ   rU   Úall_existing_dxf_attribsÚsortedr  )r-   r[   r  Úkeys       r.   rö   z*MultileaderAnalyzer.multileader_attributes„  sS   € Ø×"Ñ"×&Ñ&×?Ñ?ÓAˆÜ�g—l‘l“nÓ%ˆÙ48Ó9±D¨S�3�%�r˜' #™,˜Ò(°DÑ9Ð9ùÒ9s   ÁAc                óº   — | j                   j                  j                  }t        d«       t        d|› �«       t        dt	        |«      › �«       t        |«       y )Nz
property_override_flags:zdec: zhex: )rÝ   rU   Úproperty_override_flagsr¤   Úhexr   )r-   Úflagss     r.   Úprint_override_statez(MultileaderAnalyzer.print_override_state‰  sK   € Ø× Ñ ×$Ñ$×<Ñ<ˆÜÐ*Ô,Ü��e�WˆoÔÜ�”c˜%“j�\Ð"Ô#Ü�eÕr0   c                óT   — t        dj                  | j                  «       «      «       y r¢   )r¤   r¥   r÷   rA   s    r.   Úprint_context_attributesz,MultileaderAnalyzer.print_context_attributes�  s   € Üˆd�i‰i˜×/Ñ/Ó1Ó2Õ3r0   c           	     óè  — | j                   }|€g S | j                  «       d| j                  «       dt        |j                  «      › �dt        |j                  «      › �| j                  «       g}|j
                  j                  «       D �cg c]  }|dvr|‘Œ
 }}|D �cg c]  }|› dt        ||«      › �‘Œ }}|j                  «        |j                  |«       | j                  |«      S c c}w c c}w )NzCONTEXT object attributes:zhas MTEXT content: zhas BLOCK content: )rø   rú   rþ   r  )rå   rî   Ú	yes_or_norø   rú   Ú__dict__r  ÚgetattrÚsortr¿   rô   )r-   rå   r    r  r  r`   Ú
attributess          r.   r÷   z&MultileaderAnalyzer.context_attributes“  s  € Ø—,‘,ˆØˆ?ØˆIà×ÑÓØ(Ø×ÑÓØ!¤)¨G¯M©MÓ":Ð!;Ð<Ø!¤)¨G¯M©MÓ":Ð!;Ð<Ø×ÑÓð
ˆð ×'Ñ'×,Ñ,Ô.ó
á.�ØÐ7Ñ7ò Ø.ð 	ð 
ñ
 GKÓKÁd¸d˜˜˜b¤¨°$Ó!7Ð 8Ò9Àdˆ
ÐKØ�‰ÔØ�‰�jÔ!Ø×!Ñ! &Ó)Ð)ùò
ùò
 Ls   ÂC*ÂC/c                óT   — t        dj                  | j                  «       «      «       y r¢   )r¤   r¥   rù   rA   s    r.   Úprint_mtext_attributesz*MultileaderAnalyzer.print_mtext_attributes©  ó   € Üˆd�i‰i˜×-Ñ-Ó/Ó0Õ1r0   c                óÊ   — | j                  «       d| j                  «       g}| j                  j                  }|�|j                  t	        |«      «       | j                  |«      S )NzMTEXT content attributes:)rî   rå   rø   r¿   Ú_content_attributesrô   )r-   r    rø   s      r.   rù   z$MultileaderAnalyzer.mtext_attributes¬  ó^   € à×ÑÓØ'Ø×ÑÓð
ˆð
 —‘×"Ñ"ˆØÐØ�M‰MÔ-¨eÓ4Ô5Ø×!Ñ! &Ó)Ð)r0   c                óT   — t        dj                  | j                  «       «      «       y r¢   )r¤   r¥   rû   rA   s    r.   Úprint_block_attributesz*MultileaderAnalyzer.print_block_attributes·  r$  r0   c                óÊ   — | j                  «       d| j                  «       g}| j                  j                  }|�|j                  t	        |«      «       | j                  |«      S )NzBLOCK content attributes:)rî   rå   rú   r¿   r&  rô   )r-   r    rú   s      r.   rû   z$MultileaderAnalyzer.block_attributesº  r'  r0   c                óT   — t        dj                  | j                  «       «      «       y r¢   )r¤   r¥   rÿ   rA   s    r.   Úprint_leader_attributesz+MultileaderAnalyzer.print_leader_attributesÅ  s   € Üˆd�i‰i˜×.Ñ.Ó0Ó1Õ2r0   c                óÀ   — g }| j                   j                  }|�4t        |«      D ]&  \  }}|j                  | j	                  ||«      «       Œ( | j                  |«      S r%   )rå   rþ   Ú	enumerater¿   Ú_leader_attributesrô   )r-   r    rþ   ÚindexÚleaders        r.   rÿ   z%MultileaderAnalyzer.leader_attributesÈ  sY   € ØˆØ—,‘,×&Ñ&ˆØÐÜ!*¨7Ö!3‘��vØ—‘˜d×5Ñ5°e¸VÓDÕEð "4à×!Ñ! &Ó)Ð)r0   c                ót  — | j                  «       |dz   › d�| j                  «       g}|j                  t        |d¬«      «       dj                  t	        t
        |j                  «      «      }|j                  d|› d�«       |j                  r*|j                  | j                  |j                  «      «       |S )Nri   z. LEADER attributes:)ró   Úbreaks)ÚexcluderÅ   z	breaks: [Ú])
rî   r¿   r&  r¥   Úmapr¨   r3  r  ró   Ú_leader_lines)r-   r0  r1  r    Úss        r.   r/  z&MultileaderAnalyzer._leader_attributesÐ  sž   € ð ×ÑÓØ�Q‰wˆiÐ+Ð,Ø×ÑÓð
ˆð
 	�‰Ô)¨&Ð:MÔNÔOØ�I‰I”cœ#˜vŸ}™}Ó-Ó.ˆØ�‰˜	 !  AÐ&Ô'Ø�<Š<Ø�M‰M˜$×,Ñ,¨V¯\©\Ó:Ô;Øˆr0   c                ó~  — g }t        |«      D ]¬  \  }}|j                  | j                  «       |dz   › d�| j                  «       g«       |j                  j	                  «       D ]T  \  }}|dv r*d}|�dj                  t        t        |«      «      }d|› d�}nt        |«      }|j                  |› d|› �«       ŒV Œ® |S )	Nri   z. LEADER LINE attributes:)rƒ   r3  Ú rÅ   Ú[r5  r  )	r.  r¿   rî   r  Úitemsr¥   r6  r¨   r  )r-   ró   r    r„   r�   r`   ÚvalueÚvstrs           r.   r7  z!MultileaderAnalyzer._leader_linesß  sË   € ØˆÜ" 5Ö)‰IˆC�Ø�M‰Mà×%Ñ%Ó'Ø˜Q‘w�iÐ8Ð9Ø×%Ñ%Ó'ðôð  $Ÿ}™}×2Ñ2Ö4‘��eØÐ1Ñ1Ø�DØÐ(Ø#Ÿy™y¬¬S°%«Ó9˜Ø˜t˜f A˜;‘Dä˜u›:�DØ—‘   b¨¨Ð/Õ0ñ  5ð *ð" ˆr0   c                óT   — t        dj                  | j                  «       «      «       y r¢   )r¤   r¥   rý   rA   s    r.   Úprint_block_attribsz'MultileaderAnalyzer.print_block_attribsô  ó   € Üˆd�i‰i˜×4Ñ4Ó6Ó7Õ8r0   c                óÔ  — | j                  «       d| j                  «       g}t        | j                  j                  «      D ]¤  \  }}|j	                  |dz   › d�| j                  «       g«       |j                  d|j                  › �«       |j                  d|j                  › �«       |j                  d|j                  › �«       |j                  d|j                  › �«       Œ¦ |S )NzBLOCK reference attributes:ri   z. Attributesúhandle: úindex: zwidth: ztext: )
rî   r.  rÝ   rü   r¿   r  rê   r0  rð   r]   ©r-   r    r0  Úattrs       r.   rý   z+MultileaderAnalyzer.block_reference_attribs÷  sÖ   € à×ÑÓØ)Ø×ÑÓð
ˆô
 % T×%5Ñ%5×%CÑ%CÖD‰KˆE�4Ø�M‰Mà˜Q‘w�i˜|Ð,Ø×%Ñ%Ó'ðôð �M‰M˜H T§[¡[ MÐ2Ô3Ø�M‰M˜G D§J¡J <Ð0Ô1Ø�M‰M˜G D§J¡J <Ð0Ô1Ø�M‰M˜F 4§9¡9 +Ð.Õ/ð Eð ˆr0   c                ó\  — | j                  «       d| j                  «       g}t        | j                  j                  «      D ]h  \  }}|j	                  |dz   › d�| j                  «       g«       |j                  d|j                  › �«       |j                  d|j                  › �«       Œj |S )NzARROW HEAD attributes:ri   z. Arrow HeadrC  rD  )rî   r.  rÝ   r   r¿   r  rê   r0  rE  s       r.   r   zMultileaderAnalyzer.arrow_heads
  s¨   € à×ÑÓØ$Ø×ÑÓð
ˆô
 % T×%5Ñ%5×%AÑ%AÖB‰KˆE�4Ø�M‰Mà˜Q‘w�i˜|Ð,Ø×%Ñ%Ó'ðôð �M‰M˜H T§[¡[ MÐ2Ô3Ø�M‰M˜G D§J¡J <Ð0Õ1ð Cð ˆr0   c                óT   — t        dj                  | j                  «       «      «       y r¢   )r¤   r¥   Úmleaderstyle_attributesrA   s    r.   Úprint_mleaderstylez&MultileaderAnalyzer.print_mleaderstyle  rA  r0   c           	     óî  — g }| j                   }|�–|j                  | j                  d«      t        |«      | j                  d«      g«       |j                  j                  «       }t        |j                  «       «      }|j                  |D �cg c]  }|› d||   › �‘Œ c}«       n:| j                  j                  j                  d«      }|j                  d|› d�«       | j                  |«      S c c}w )Nr  r  rç   r	  r
  )rë   r¿   rî   r¨   rU   r  r  r  rÝ   rè   r  rô   )r-   r    rÂ   r[   r  r`   rê   s          r.   rI  z+MultileaderAnalyzer.mleaderstyle_attributes  sâ   € ØˆØ×!Ñ!ˆØÐØ�M‰Mà×%Ñ% cÓ*Ü˜“JØ×%Ñ% cÓ*ðôð —i‘i×8Ñ8Ó:ˆGÜ˜'Ÿ,™,›.Ó)ˆDØ�M‰MÁ$ÓGÁ$¸$˜d˜V 2 g¨d¡m _Ò5À$ÑGÕHà×%Ñ%×)Ñ)×-Ñ-¨nÓ=ˆFØ�M‰M˜N¨6¨(°+Ð>Ô?Ø×!Ñ! &Ó)Ð)ùò	 Hs   ÂC2N)rÝ   zmleader.MultiLeaderr"   r§   rÛ   r«   )r©   zmleader.MLeaderContext)r©   zOptional[mleader.MLeaderStyle])Ú-©r©   r¨   )ró   zIterable[str]r©   r­   )r©   r­   )r©   rª   )r0  r«   r1  zmleader.LeaderDatar©   r­   )!r®   r¯   r°   Ú__doc__r/   r+   r,   Úpropertyrå   rë   rî   rô   r    r¦   r  r  rö   r  r  r÷   r#  rù   r)  rû   r,  rÿ   r/  r7  r@  rý   r   rJ  rI  r²   r0   r.   rÙ   rÙ     sî   „ ñð !Øñà(ðð ð	ð
 óò ;ò
Hð ò(ó ð(ð ò-ó ð-ô*ó
ó
*ó*ò7óó0:ò
ò4ó*ò,2ó	*ò2ó	*ò3ó*ðØðØ"4ðà	óóò*9óó&ò"9ô*r0   rÙ   c                óŽ   — |xs g }| �6| j                   j                  «       D ��cg c]  \  }}||vr|› d|› �‘Œ c}}S g S c c}}w r  )r  r<  )Úentityr4  r`   r=  s       r.   r&  r&  2  se   € ð Šm˜€GØÐð  &Ÿ™×4Ñ4Ô6ô
á6‘��eØ˜7Ñ"ð ˆf�B�u�gÒØ6ò
ð 	
ð
 €Iùó
s   ¦Ac                ó   — | rdS dS )NÚyesÚnor²   )Údatas    r.   r  r  ?  s   € Ùˆ5Ð"˜dÐ"r0   r¬   )rq   r   r„   r«   r©   r­   )rq   r   r„   r«   r©   r­   r%   )r4  zOptional[Sequence[str]]r©   r­   rM  )/Ú
__future__r   Útypingr   r   r   rñ   r&   r   Ú
ezdxf.mathr   Úezdxf.lldxfr	   Úezdxf.enumsr
   Úezdxf.tools.debugr   Úezdxf.render.mleaderr   r   Úezdxf.entitiesr   r   r   r   r   r   r   Úezdxf.entities.polygonr   r   r   r@   r6   r8   r:   r<   r>   r   rž   rÀ   rÁ   rà   r×   rÙ   r&  r  r²   r0   r.   Ú<module>r_     s¹   ðõ #ß /Ñ /Û ã Ý Ý Ý Ý +Ý +ß D÷÷ ñ õ .à'Ð Ø#€Ø€Ø"€Ø€
Ø€	Ø €Ø€÷q.ñ q.óhó4óð( #€Ø€÷]*ñ ]*ðB	 04ð
Ø,ð
àó
ô#r0   