§
    ‡Ûg¡œ ã                   ó   — d 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	Z	ddl
Z
ddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlmZ ddlZddlmZmZmZmZmZ dd	lm Z  dd
l!m"Z"m#Z#m$Z$m%Z%m&Z& ddl'm(Z( ddl)m*Z* ddl+m,Z,m-Z. ddl/m0Z0 ddl1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7 ddl8m9Z9m:Z: ddl;m<Z< ddl=m>Z> ddlm?Z? ddl@mAZA  e
jB        eC¦  «        ZD ejE        dd¬¦  «        dBd„¦   «         ZFdBd„ZGd„ ZHd„ ZIdCd„ZJdCd„ZKdCd „ZLeM N                    d!d"d#d$d%d&œ¦  «        ZOd'„ ZPd(„ ZQ G d)„ d*¦  «        ZRe G d+„ d,¦  «        ¦   «         ZS ejE        d¦  «         G d-„ d.¦  «        ¦   «         ZT G d/„ d0¦  «        ZU G d1„ d2e¦  «        ZV G d3„ d4¦  «        ZWd5„ ZX G d6„ d7¦  «        ZY G d8„ d9eAjZ        ¦  «        Z[ G d:„ d;e%¦  «        Z\ G d<„ d=¦  «        Z] G d>„ d?e#¦  «        Z^e$Z_e"j`         G d@„ dAe"¦  «        ¦   «         ZadS )DuO   
A PDF Matplotlib backend.

Author: Jouni K SeppÃ¤nen <jks@iki.fi> and others.
é    N)Údatetime)ÚEnum)Útotal_ordering)ÚBytesIO)ÚImage)Ú_apiÚ_text_helpersÚ
_type1fontÚcbookÚdviread)ÚGcf)Ú_BackendÚFigureCanvasBaseÚFigureManagerBaseÚGraphicsContextBaseÚRendererBase)ÚMixedModeRenderer)ÚFigure)Úget_fontÚfontManager)ÚAFM)ÚFIXED_WIDTHÚITALICÚLOAD_NO_SCALEÚLOAD_NO_HINTINGÚKERNING_UNFITTEDÚFT2Font)ÚAffine2DÚBboxBase)ÚPath)ÚUTC)Ú_pathé   )Ú_backend_pdf_psú3.6za vendored copy of _fill)ÚalternativeéK   c                 ó$   — t          | |¬¦  «        S )N)Úlinelen)Ú_fill)Ústringsr)   s     úU/granary/edev/quantum/lib/python3.11/site-packages/matplotlib/backends/backend_pdf.pyÚfillr-   _   s   € å� 'Ð*Ñ*Ô*Ð*ó    c                 ól  — d}d}g }t          | ¦  «        D ]Z\  }}t          |¦  «        }||z   |k     r	||dz   z  }Œ&|                     d                     | ||…         ¦  «        ¦  «         |}|}Œ[|                     d                     | |d…         ¦  «        ¦  «         d                     |¦  «        S )z­
    Make one string from sequence of strings, with whitespace in between.

    The whitespace is chosen to form lines of at most *linelen* characters,
    if possible.
    r   r#   ó    Nó   
)Ú	enumerateÚlenÚappendÚjoin)r+   r)   ÚcurrposÚlastiÚresultÚiÚsÚlengths           r,   r*   r*   d   sÄ   € ð €GØ€EØ€FÝ˜'Ñ"Ô"ð ð ‰ˆˆ1Ý�Q‘”ˆØ�VÑ˜gÒ%Ð%Ø�v ‘zÑ!ˆGˆGà�MŠM˜$Ÿ)š) G¨E°!¨GÔ$4Ñ5Ô5Ñ6Ô6Ð6ØˆEØˆGˆGØ
‡M‚M�$—)’)˜G E F FœOÑ,Ô,Ñ-Ô-Ð-Ø�:Š:�fÑÔÐr.   c           
      óÖ  — t          j        d¦  «        }|r=t          j        t	          |¦  «        ¦  «        }|                     t          ¬¦  «        }nt          j        ¦   «         }dt          j	        › d�d| › dt          j	        › �|dœ|¥}d„ | 
                    ¦   «         D ¦   «         }d	„ }d
|_        d„ }d|_        d„ }d|_        |||||||||dœ	}|D ]u}	|	|vr)t          j        d|	›dt          |¦  «        ›d�¦  «         Œ/ ||	         ||	         ¦  «        s/t          j        d|	› d||	         ›d||	         j        › d�¦  «         Œvd|v rt          |d         ¦  «        |d<   |S )aÓ  
    Create a PDF infoDict based on user-supplied metadata.

    A default ``Creator``, ``Producer``, and ``CreationDate`` are added, though
    the user metadata may override it. The date may be the current time, or a
    time set by the ``SOURCE_DATE_EPOCH`` environment variable.

    Metadata is verified to have the correct keys and their expected types. Any
    unknown keys/types will raise a warning.

    Parameters
    ----------
    backend : str
        The name of the backend to use in the Producer value.

    metadata : dict[str, Union[str, datetime, Name]]
        A dictionary of metadata supplied by the user with information
        following the PDF specification, also defined in
        `~.backend_pdf.PdfPages` below.

        If any value is *None*, then the key will be removed. This can be used
        to remove any pre-defined values.

    Returns
    -------
    dict[str, Union[str, datetime, Name]]
        A validated dictionary of metadata.
    ÚSOURCE_DATE_EPOCH)ÚtzinfozMatplotlib vz, https://matplotlib.orgzMatplotlib z
 backend v)ÚCreatorÚProducerÚCreationDatec                 ó   — i | ]
\  }}|®||“ŒS ©N© ©Ú.0ÚkÚvs      r,   ú
<dictcomp>z)_create_pdf_info_dict.<locals>.<dictcomp>§   s   € Ð=Ð=Ð=‘V�a˜¨q¨}ˆAˆq¨}¨}¨}r.   c                 ó,   — t          | t          ¦  «        S rC   )Ú
isinstanceÚstr©Úxs    r,   Úis_string_likez-_create_pdf_info_dict.<locals>.is_string_like©   s   € Ý˜!�SÑ!Ô!Ð!r.   zan instance of strc                 ó,   — t          | t          ¦  «        S rC   )rK   r   rM   s    r,   Úis_datez&_create_pdf_info_dict.<locals>.is_date­   s   € Ý˜!�XÑ&Ô&Ð&r.   z an instance of datetime.datetimec                 óF   — t          | t          ¦  «        r	| j        dv S | dv S )N)s   Trues   Falses   Unknown)ÚTrueÚFalseÚUnknown©rK   ÚNameÚnamerM   s    r,   Úcheck_trappedz,_create_pdf_info_dict.<locals>.check_trapped±   s.   € Ý�a�ÑÔð 	5Ø”6Ð<Ð<Ð<àÐ4Ð4Ð4r.   z#one of {"True", "False", "Unknown"})	ÚTitleÚAuthorÚSubjectÚKeywordsr?   r@   rA   ÚModDateÚTrappedzUnknown infodict keyword: z. Must be one of ú.zBad value for infodict keyword z. Got z which is not r_   )ÚosÚgetenvr   ÚutcfromtimestampÚintÚreplacer!   ÚtodayÚmplÚ__version__ÚitemsÚtext_for_warningr   Úwarn_externalÚsetrW   )
ÚbackendÚmetadataÚsource_date_epochÚsource_dateÚinforO   rQ   rY   ÚkeywordsrG   s
             r,   Ú_create_pdf_info_dictrs   z   s4  € õ@ œ	Ð"5Ñ6Ô6ÐØð 'ÝÔ/µÐ4EÑ0FÔ0FÑGÔGˆØ!×)Ò)µÐ)Ñ5Ô5ˆˆå”nÑ&Ô&ˆð L¥#¤/ÐKÐKÐKØF 'ÐFÐFµS´_ÐFÐFØ#ðð ð ð	€Dð >Ð=˜tŸzšz™|œ|Ð=Ñ=Ô=€Dð"ð "ð "à&:€NÔ#ð'ð 'ð 'àA€GÔð5ð 5ð 5ð
 &K€MÔ"ð  Ø Ø!Ø"Ø!Ø"ØØØ ð
ð 
€Hð ð Cð CˆØ�HÐÐÝÔð  D¸Að  Dð  DÝ14°X±´ð Dð  Dð  Dñ Eô Eð Eð Eà�˜!”˜T !œWÑ%Ô%ð 	CÝÔð  BÀð  Bð  BØ&*¨1¤gð Bð  Bà"*¨1¤+Ô">ð Bð  Bð  Bñ Cô Cð Cøð �DÐÐÝ˜t IœÑ/Ô/ˆˆY‰à€Kr.   c                 ó   — |                       d¦  «        }|                      ¦   «         }|�|j        }n%t          j        rt          j        }nt          j        }|dk    r|dz  }n)|dk     r|d| dz  | dz  fz  z  }n|d|dz  |dz  fz  z  }|S )zX
    Convert a datetime to a PDF string representing it.

    Used for PDF and PGF.
    zD:%Y%m%d%H%M%SNr   ÚZz+%02d'%02d'i  z-%02d'%02d')ÚstrftimeÚ	utcoffsetÚsecondsÚtimeÚdaylightÚaltzoneÚtimezone)ÚdÚrÚzs      r,   Ú_datetime_to_pdfr€   Ñ   s«   € ð 	
�
Š
Ð#Ñ$Ô$€AØ	�Š‰Œ€AØ€}ØŒIˆˆåŒ=ð 	Ý”ˆAˆAå”ˆAØˆA‚v€vØ	ˆS‰ˆˆØ	
ˆQŠˆØ	ˆ] ˜r d™l¨a¨R°4©KÐ8Ñ8Ñ8ˆˆà	ˆ]˜a 4™i¨¨T©Ð2Ñ2Ñ2ˆØ€Hr.   c                 ó  — t          j        | ¦  «        }t          j        |¦  «        }t          j        |¦  «        }| ||z  z   }|||z  z   }| ||z  z   ||z  z   }	|||z  z
  ||z  z   }
| ||z  z   }|||z  z
  }| |f||f|	|
f||ffS )zR
    Calculate the coordinates of rectangle when rotated by angle around x, y
    )ÚmathÚradiansÚsinÚcos)rN   ÚyÚwidthÚheightÚangleÚ	sin_angleÚ	cos_angleÚaÚbÚcr}   ÚeÚfs                r,   Ú!_calculate_quad_point_coordinatesr‘   é   s¼   € õ
 ŒL˜%˜Ñ Ô €EÝ”˜‘”€IÝ”˜‘”€IØ	ˆF�YÑÑ€AØ	ˆF�YÑÑ€AØ	ˆE�IÑÑ ¨Ñ 2Ñ2€AØ	ˆE�IÑÑ ¨Ñ 2Ñ2€AØ	ˆE�IÑÑ€AØ	ˆE�IÑÑ€AØ�ˆF�Q˜�F˜Q ˜F Q¨ FÐ+Ð+r.   c                 ó~  — t          | ||||¦  «        }|dz  rdnd}t          d„ |D ¦   «         ¦  «        |z
  }t          d„ |D ¦   «         ¦  «        |z
  }t          d„ |D ¦   «         ¦  «        |z   }	t          d„ |D ¦   «         ¦  «        |z   }
t          t          j                             |¦  «        ¦  «        |||	|
ffS )zg
    Get the coordinates of rotated rectangle and rectangle that covers the
    rotated rectangle.
    éZ   gñhãˆµøä>r   c              3   ó&   K  — | ]}|d          V — ŒdS ©r   NrD   ©rF   rH   s     r,   ú	<genexpr>z,_get_coordinates_of_block.<locals>.<genexpr>
  ó&   è è € Ð'Ð'˜��!”Ð'Ð'Ð'Ð'Ð'Ð'r.   c              3   ó&   K  — | ]}|d          V — ŒdS ©r#   NrD   r–   s     r,   r—   z,_get_coordinates_of_block.<locals>.<genexpr>  r˜   r.   c              3   ó&   K  — | ]}|d          V — ŒdS r•   rD   r–   s     r,   r—   z,_get_coordinates_of_block.<locals>.<genexpr>  r˜   r.   c              3   ó&   K  — | ]}|d          V — ŒdS rš   rD   r–   s     r,   r—   z,_get_coordinates_of_block.<locals>.<genexpr>  r˜   r.   )r‘   ÚminÚmaxÚtupleÚ	itertoolsÚchainÚfrom_iterable)rN   r†   r‡   rˆ   r‰   ÚverticesÚpadÚmin_xÚmin_yÚmax_xÚmax_ys              r,   Ú_get_coordinates_of_blockr©   ú   sé   € õ 1°°A°uØ17¸ñ@ô @€Hð ˜R‘ZÐ
&ˆ'ˆ' Q€CÝÐ'Ð'˜hÐ'Ñ'Ô'Ñ'Ô'¨#Ñ-€EÝÐ'Ð'˜hÐ'Ñ'Ô'Ñ'Ô'¨#Ñ-€EÝÐ'Ð'˜hÐ'Ñ'Ô'Ñ'Ô'¨#Ñ-€EÝÐ'Ð'˜hÐ'Ñ'Ô'Ñ'Ô'¨#Ñ-€EÝ•)”/×/Ò/°Ñ9Ô9Ñ:Ô:Ø�E˜5 %Ð(ð*ð *r.   c                 óÒ   — t          |||||¦  «        \  }}t          d¦  «        t          d¦  «        |g d¢t          d¦  «        |                      ¦   «         dœdœ}|dz  r||d<   |S )	z=
    Create a link annotation object for embedding URLs.
    ÚAnnotÚLink©r   r   r   ÚURI)ÚSr®   )ÚTypeÚSubtypeÚRectÚBorderÚAr“   Ú
QuadPoints)r©   rW   Úget_url)	ÚgcrN   r†   r‡   rˆ   r‰   Ú
quadpointsÚrectÚlink_annotations	            r,   Ú_get_link_annotationr»     s‚   € õ 1°°A°u¸fÀeÑLÔLÑ€J�å�W‘”Ý˜‘<”<ØØ�)�)å�e‘”Ø—:’:‘<”<ð
ð 
ð	ð 	€Oð ˆr�zð 3à(2ˆ˜Ñ%ØÐr.   z\\z\(z\)z\nz\r)ú\ú(ú)ú
úc                 ór  — t          | d¦  «        r|                      ¦   «         S t          | t          t          j        f¦  «        rPt	          j        | ¦  «        st          d¦  «        ‚d| z  }|                     d¦  «                             d¦  «        S t          | t          ¦  «        r
ddg|          S t          | t          t          j        f¦  «        rd| z  S t          | t          ¦  «        rXt          |                      ¦   «         r|                      d	¦  «        n!t          j        |                      d
¦  «        z   ¦  «        S t          | t"          ¦  «        rFd|                      d¦  «                             t(          ¦  «                             d¦  «        z   dz   S t          | t*          ¦  «        r0t-          dgd„ |                      ¦   «         D ¦   «         ¢d‘¦  «        S t          | t0          t2          f¦  «        rt-          dgd„ | D ¦   «         ¢d‘¦  «        S | €dS t          | t4          ¦  «        rt          t7          | ¦  «        ¦  «        S t          | t8          ¦  «        rt-          d„ | j        D ¦   «         ¦  «        S t=          d                     tA          | ¦  «        ¦  «        ¦  «        ‚)z!Map Python objects to PDF syntax.ÚpdfReprz%Can only output finite numbers in PDFs   %.10fó   0ó   .s   falses   trues   %dÚasciizUTF-16BEó   (zlatin-1ó   )s   <<c                 ó|   — g | ]9\  }}t          |¦  «                             ¦   «         d z   t          |¦  «        z   ‘Œ:S )r0   )rW   rÂ   rE   s      r,   ú
<listcomp>zpdfRepr.<locals>.<listcomp>`  s<   € ÐLÐLÐL¹¸¸1�d�1‰gŒg�oŠoÑÔ $Ñ&­°©¬Ñ3ÐLÐLÐLr.   s   >>ó   [c                 ó,   — g | ]}t          |¦  «        ‘ŒS rD   ©rÂ   ©rF   Úvals     r,   rÉ   zpdfRepr.<locals>.<listcomp>f  s   € Ð:Ð:Ð:¨s�g c™lœlÐ:Ð:Ð:r.   ó   ]Ns   nullc                 ó,   — g | ]}t          |¦  «        ‘ŒS rD   rÌ   rÍ   s     r,   rÉ   zpdfRepr.<locals>.<listcomp>r  s   € Ð9Ð9Ð9 s•g˜c‘l”lÐ9Ð9Ð9r.   z.Don't know a PDF representation for {} objects)!ÚhasattrrÂ   rK   ÚfloatÚnpÚfloatingÚisfiniteÚ
ValueErrorÚrstripÚboolrd   ÚintegerrL   ÚisasciiÚencodeÚcodecsÚBOM_UTF16_BEÚbytesÚdecodeÚ	translateÚ_str_escapesÚdictr*   ri   ÚlistrŸ   r   r€   r   ÚboundsÚ	TypeErrorÚformatÚtype)Úobjr~   s     r,   rÂ   rÂ   0  s´  € õ ˆs�IÑÔð B,Ø�{Š{‰}Œ}Ðõ
 
�C�%¥¤Ð-Ñ	.Ô	.ð <,ÝŒ{˜3ÑÔð 	FÝÐDÑEÔEÐEØ�s‰NˆØ�xŠx˜‰~Œ~×$Ò$ TÑ*Ô*Ð*õ 
�C�Ñ	Ô	ð 4,Ø˜'Ð" 3Ô'Ð'õ 
�C�#�rœzÐ*Ñ	+Ô	+ð 0,Ø�s‰{Ðõ 
�C�Ñ	Ô	ð ,,Ý¨c¯kªk©m¬mð I�s—z’z 'Ñ*Ô*Ð*Ý"Ô/°#·*²*¸ZÑ2HÔ2HÑHñJô Jð 	Jõ 
�C�Ñ	Ô	ð #,àØ�JŠJ�yÑ!Ô!×+Ò+­LÑ9Ô9×@Ò@ÀÑKÔKñLàñð	õ 
�C�Ñ	Ô	ð ,ÝØð
àLÐLÀÇ	Â	ÁÄÐLÑLÔLð
ð ð
ñ ô ð 	õ 
�C�$¥˜Ñ	'Ô	'ð ,Ý�dÐAÐ:Ð:°cÐ:Ñ:Ô:ÐA¸DÐAÑBÔBÐBð 
ˆØˆwõ 
�C�Ñ	"Ô	"ð 	,ÝÕ'¨Ñ,Ô,Ñ-Ô-Ð-õ 
�C�Ñ	"Ô	"ð ,ÝÐ9Ð9¨c¬jÐ9Ñ9Ô9Ñ:Ô:Ð:õ ÐHßš¥ S¡	¤	Ñ*Ô*ñ,ô ,ð 	,r.   c                 óN   — | dk    r|dk    S | dk    r|dk    S t          ¦   «         ‚)a  
    Returns True if the font is able to provide codepoint *glyph* in a PDF.

    For a Type 3 font, this method returns True only for single-byte
    characters. For Type 42 fonts this method return True if the character is
    from the Basic Multilingual Plane.
    é   éÿ   é*   éÿÿ  )ÚNotImplementedError)ÚfonttypeÚglyphs     r,   Ú_font_supports_glyphrñ   y  s6   € ð �1‚}€}Ø˜Š|ÐØ�2‚~€~Ø˜Š~ÐÝ
Ñ
Ô
Ðr.   c                   ó*   — e Zd ZdZd„ Zd„ Zd„ Zd„ ZdS )Ú	ReferencezV
    PDF reference object.

    Use PdfFile.reserveObject() to create References.
    c                 ó   — || _         d S rC   ©Úid©Úselfrö   s     r,   Ú__init__zReference.__init__�  ó   € ØˆŒˆˆr.   c                 ó   — d| j         z  S )Nz<Reference %d>rõ   ©rø   s    r,   Ú__repr__zReference.__repr__’  s   € Ø $¤'Ñ)Ð)r.   c                 ó   — d| j         z  S )Ns   %d 0 Rrõ   rü   s    r,   rÂ   zReference.pdfRepr•  s   € Ø˜4œ7Ñ"Ð"r.   c                 ó€   — |j         } |d| j        z  ¦  «          |t          |¦  «        ¦  «          |d¦  «         d S )Nó	   %d 0 obj
s   
endobj
)Úwriterö   rÂ   )rø   ÚcontentsÚfiler  s       r,   r  zReference.write˜  sN   € Ø”
ˆØˆˆm˜dœgÑ%Ñ&Ô&Ð&Øˆ�g�hÑÔÑ Ô Ð ØˆˆmÑÔÐÐÐr.   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__rù   rý   rÂ   r  rD   r.   r,   ró   ró   ˆ  sZ   € € € € € ðð ðð ð ð*ð *ð *ð#ð #ð #ðð ð ð ð r.   ró   c            	       óø   — e Zd ZdZdZd„ h  ed¦  «        £h  e ed¦  «         ed¦  «        dz   ¦  «        £z
  D ¦   «         Zd„ Zd	„ Z	d
„ Z
d„ Zd„ Zd„ Ze ej        d¦  «        d„ ¦   «         ¦   «         Zd„ ZdS )rW   zPDF name object.©rX   c                 ó   — i | ]}|d |z  “Œ	S )ú#%02xrD   ©rF   rŽ   s     r,   rI   zName.<dictcomp>£  s4   € ð Jð Jð JØð �'˜A‘+ð Jð Jð Jr.   é   ú!ú~r#   c                 ó  — t          |t          ¦  «        r|j        | _        d S t          |t          ¦  «        r|                     d¦  «        }|                     | j        ¦  «                             d¦  «        | _        d S )NrÅ   )rK   rW   rX   rÞ   rß   rà   Ú_hexifyrÛ   )rø   rX   s     r,   rù   zName.__init__¦  sl   € Ý�d�DÑ!Ô!ð 	EØœ	ˆDŒIˆIˆIå˜$¥Ñ&Ô&ð ,Ø—{’{ 7Ñ+Ô+�ØŸš t¤|Ñ4Ô4×;Ò;¸GÑDÔDˆDŒIˆIˆIr.   c                 ó   — d| j         z  S )Nz	<Name %s>r	  rü   s    r,   rý   zName.__repr__®  s   € Ø˜TœYÑ&Ð&r.   c                 ó<   — d| j                              d¦  «        z   S )Nú/rÅ   )rX   rß   rü   s    r,   Ú__str__zName.__str__±  s   € Ø�T”Y×%Ò% gÑ.Ô.Ñ.Ð.r.   c                 óL   — t          |t          ¦  «        o| j        |j        k    S rC   rV   ©rø   Úothers     r,   Ú__eq__zName.__eq__´  s    € Ý˜%¥Ñ&Ô&ÐB¨4¬9¸¼
Ò+BÐBr.   c                 óL   — t          |t          ¦  «        o| j        |j        k     S rC   rV   r  s     r,   Ú__lt__zName.__lt__·  s    € Ý˜%¥Ñ&Ô&ÐA¨4¬9°u´zÒ+AÐAr.   c                 ó*   — t          | j        ¦  «        S rC   )ÚhashrX   rü   s    r,   Ú__hash__zName.__hash__º  s   € Ý�D”I‰ŒÐr.   r%   c                 óJ   — dt          |                      ¦   «         ¦  «        z  S )Nr  )ÚordÚgroup)Úmatchs    r,   ÚhexifyzName.hexify½  s   € ð �˜UŸ[š[™]œ]Ñ+Ô+Ñ+Ð+r.   c                 ó   — d| j         z   S )Nó   /r	  rü   s    r,   rÂ   zName.pdfReprÂ  s   € Ø�d”iÑÐr.   N)r  r  r  r  Ú	__slots__Úranger   r  rù   rý   r  r  r  r  Ústaticmethodr   Ú
deprecatedr#  rÂ   rD   r.   r,   rW   rW   Ÿ  s  € € € € € àÐØ€IðJð JØ%˜%˜% ™*œ*˜Ð(H¨%¨%°°°C±´¸#¸#¸c¹(¼(ÀQ¹,Ñ*GÔ*GÐ(HÑHðJñ Jô J€GðEð Eð Eð'ð 'ð 'ð/ð /ð /ðCð Cð CðBð Bð Bðð ð ð Ø€T„_�UÑÔð,ð ,ñ Ôñ „\ð,ð ð  ð  ð  ð  r.   rW   c                   ó$   — e Zd ZdZd„ Zd„ Zd„ ZdS )ÚOperator©Úopc                 ó   — || _         d S rC   r,  )rø   r-  s     r,   rù   zOperator.__init__Ê  rú   r.   c                 ó   — d| j         z  S )Nz<Operator %s>r,  rü   s    r,   rý   zOperator.__repr__Í  s   € Ø ¤Ñ(Ð(r.   c                 ó   — | j         S rC   r,  rü   s    r,   rÂ   zOperator.pdfReprÐ  ó	   € ØŒwˆr.   N)r  r  r  r&  rù   rý   rÂ   rD   r.   r,   r+  r+  Æ  sF   € € € € € à€Iðð ð ð)ð )ð )ðð ð ð ð r.   r+  c                   ó   — e Zd ZdZd„ Zd„ ZdS )ÚVerbatimzEStore verbatim PDF command content for later inclusion in the stream.c                 ó   — || _         d S rC   ©Ú_x)rø   rN   s     r,   rù   zVerbatim.__init__Ö  s   € ØˆŒˆˆr.   c                 ó   — | j         S rC   r5  rü   s    r,   rÂ   zVerbatim.pdfReprÙ  r1  r.   N)r  r  r  r  rù   rÂ   rD   r.   r,   r3  r3  Ô  s8   € € € € € ØOÐOðð ð ðð ð ð ð r.   r3  c                   ó  — e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!d Z"d!Z#d"Z$d#Z%d$Z&d%Z'd&Z(  e)j*        d'¦  «         e+d(„ ¦  «        ¦  «        Z,d)„ Z-e.d*„ ¦   «         Z/d+S ),ÚOpz'PDF operators (not an exhaustive list).ó   bó   Bó   fó   hó   só   Só   ns   BTs   ETó   cs   reó   ló   ms   cms   Doó   Gó   gs   RGs   rgs   CSs   css   SCNs   scnó   dó   jó   Js   gsó   qó   Qs   Tds   Tfs   Tms   Tjs   TJó   wó   Ws   shr%   c                 ó   — | j         S rC   ©Úvaluerü   s    r,   ú<lambda>zOp.<lambda>  s   € °d´j€ r.   c                 ó   — | j         S rC   rN  rü   s    r,   rÂ   z
Op.pdfRepr  s
   € ØŒzÐr.   c                 óF   — |r|r| j         S | j        S |r| j        S | j        S )zú
        Return the PDF operator to paint a path.

        Parameters
        ----------
        fill : bool
            Fill the path with the fill color.
        stroke : bool
            Stroke the outline of the path with the line color.
        )Úfill_strokeÚstroker-   Úendpath)Úclsr-   rT  s      r,   Ú
paint_pathzOp.paint_path  s;   € ð ð 		#Øð "Ø”Ð&à”zÐ!àð #Ø”x�à”{Ð"r.   N)0r  r  r  r  Úclose_fill_strokerS  r-   Ú	closepathÚclose_strokerT  rU  Ú
begin_textÚend_textÚcurvetoÚ	rectangleÚlinetoÚmovetoÚconcat_matrixÚuse_xobjectÚsetgray_strokeÚsetgray_nonstrokeÚsetrgb_strokeÚsetrgb_nonstrokeÚsetcolorspace_strokeÚsetcolorspace_nonstrokeÚsetcolor_strokeÚsetcolor_nonstrokeÚsetdashÚsetlinejoinÚ
setlinecapÚ	setgstateÚgsaveÚgrestoreÚtextposÚ
selectfontÚ
textmatrixÚshowÚshowkernÚsetlinewidthÚclipÚshadingr   r)  Úpropertyr-  rÂ   ÚclassmethodrW  rD   r.   r,   r9  r9  Ý  s,  € € € € € Ø1Ð1àÐØ€KØ€DØ€IØ€LØ€FØ€GØ€JØ€HØ€GØ€IØ€FØ€FØ€MØ€KØ€NØÐØ€MØÐØ ÐØ#ÐØ€OØÐØ€GØ€KØ€JØ€IØ€EØ€HØ€GØ€JØ€JØ€DØ€HØ€LØ€DØ€Gà	ˆˆŒ˜Ñ	Ô	  Ð)@Ð)@Ñ AÔ AÑ	BÔ	B€Bðð ð ð ð#ð #ñ „[ð#ð #ð #r.   r9  c                   ó6   — e Zd ZdZdZd	d„Zd„ Zd„ Zd„ Zd„ Z	dS )
ÚStreamz«
    PDF stream object.

    This has no pdfRepr method. Instead, call begin(), then output the
    contents of the stream by calling write(), and finally call end().
    )rö   r3   ÚpdfFiler  ÚcompressobjÚextraÚposNc                 ó`  — || _         || _        || _        |j        | _        d| _        |€t          ¦   «         | _        n|                     ¦   «         | _        |�*| j         	                    t          d¦  «        |dœ¦  «         | j                             | j         ¦  «         t          j        d         r+|s)t          j        t          j        d         ¦  «        | _        | j        €t          ¦   «         | _        dS |                      ¦   «          | j                             ¦   «         | _        dS )a@  
        Parameters
        ----------
        id : int
            Object id of the stream.
        len : Reference or None
            An unused Reference object for the length of the stream;
            None means to use a memory buffer so the length can be inlined.
        file : PdfFile
            The underlying object to write the stream to.
        extra : dict from Name to anything, or None
            Extra key-value pairs to include in the stream header.
        png : dict or None
            If the data is already png encoded, the decode parameters.
        NÚFlateDecode)ÚFilterÚDecodeParmsúpdf.compression)rö   r3   r}  Úfhr  r~  râ   r  ÚcopyÚupdaterW   Ú
recordXrefrg   ÚrcParamsÚzlibr   Ú_writeHeaderÚtellr€  )rø   rö   r3   r  r  Úpngs         r,   rù   zStream.__init__,  s  € ð  ˆŒØˆŒØˆŒØ”GˆŒ	ØˆÔØˆ=Ý™œˆDŒJˆJàŸš™œˆDŒJØˆ?ØŒJ×Ò­d°=Ñ.AÔ.AØ.1ð3ð 3ñ 4ô 4ð 4ð 	Œ×Ò ¤Ñ(Ô(Ð(ÝŒ<Ð)Ô*ð 	1°3ð 	1Ý#Ô/Ý”Ð.Ô/ñ 1ô  1ˆDÔàŒ8ÐÝ™	œ	ˆDŒIˆIˆIà×ÒÑÔÐØ”y—~’~Ñ'Ô'ˆDŒHˆHˆHr.   c                 óô   — | j         j        } |d| j        z  ¦  «         | j        }| j        |d<   t
          j        d         rt          d¦  «        |d<    |t          |¦  «        ¦  «          |d¦  «         d S )Nr   ÚLengthr…  r‚  rƒ  s   
stream
)	r  r  rö   r  r3   rg   rŠ  rW   rÂ   )rø   r  râ   s      r,   rŒ  zStream._writeHeaderS  s�   € Ø”	”ˆØˆˆm˜dœgÑ%Ñ&Ô&Ð&ØŒzˆØœˆˆX‰ÝŒ<Ð)Ô*ð 	1Ý! -Ñ0Ô0ˆD�‰Nàˆ�g�d‰mŒmÑÔÐØˆˆmÑÔÐÐÐr.   c                 ó  — |                       ¦   «          | j        €ˆ| j                             ¦   «         }t          |¦  «        | _        | j        j        | _        |                      ¦   «          | j                             |¦  «         | j                             d¦  «         dS | j                             ¦   «         | j	        z
  }| j                             d¦  «         | j         
                    | j        |¦  «         dS )zFinalize stream.Ns   
endstream
endobj
)Ú_flushr3   r  Úgetvaluer}  r†  rŒ  r  r�  r€  ÚwriteObject)rø   r  r;   s      r,   Úendz
Stream.end^  sÒ   € ð 	�Š‰ŒˆØŒ8ÐØ”y×)Ò)Ñ+Ô+ˆHÝ˜8‘}”}ˆDŒHØœœˆDŒIØ×ÒÑÔÐØŒI�OŠO˜HÑ%Ô%Ð%ØŒI�OŠOÐ4Ñ5Ô5Ð5Ð5Ð5à”Y—^’^Ñ%Ô%¨¬Ñ0ˆFØŒI�OŠOÐ4Ñ5Ô5Ð5ØŒL×$Ò$ T¤X¨vÑ6Ô6Ð6Ð6Ð6r.   c                 ó´   — | j         €| j                             |¦  «         dS | j                              |¦  «        }| j                             |¦  «         dS )zWrite some data on the stream.N)r~  r  r  Úcompress)rø   ÚdataÚ
compresseds      r,   r  zStream.writen  sW   € ð ÔÐ#ØŒI�OŠO˜DÑ!Ô!Ð!Ð!Ð!àÔ)×2Ò2°4Ñ8Ô8ˆJØŒI�OŠO˜JÑ'Ô'Ð'Ð'Ð'r.   c                 óŒ   — | j         �<| j                              ¦   «         }| j                             |¦  «         d| _         dS dS )zFlush the compression object.N)r~  Úflushr  r  )rø   r™  s     r,   r’  zStream._flushw  sK   € ð ÔÐ'ØÔ)×/Ò/Ñ1Ô1ˆJØŒI�OŠO˜JÑ'Ô'Ð'Ø#ˆDÔÐÐð (Ð'r.   ©NN)
r  r  r  r  r&  rù   rŒ  r•  r  r’  rD   r.   r,   r|  r|  #  sw   € € € € € ðð ð P€Ið%(ð %(ð %(ð %(ðN	ð 	ð 	ð7ð 7ð 7ð (ð (ð (ð$ð $ð $ð $ð $r.   r|  c                 óÂ  — t          | d¬¦  «        }d|j        z  }i }|D �]=}|                     |t          ¦  «        }t	          j        |j        dg|j        ¢¦  «        |z  dz                        t          ¦  «        }| 
                    ¦   «         \  }}	|dz                       t          ¦  «        }t	          j        |	dk    ¦  «        \  }
|
dd d…         }t	          j        t          h |£h |
dz
  £z  h |
dz   £z  ¦  «        t          ¦  «        }|||         ||dz
           ||dz            z   dz                       t          ¦  «        k                         d¬	¦  «                 }|j        |fd
v r|d d …dfxx         dz  cc<   ||z  dz                        t          ¦  «        }||dz
           ||dz            z   dz                       t          ¦  «        ||<   d                     t!          t"          |¦  «        ¦  «                             d¦  «        dz   t'          j        t+          ||	¦  «        d d dd dg d¢d¦  «        z   dz   ||                     |¦  «        <   �Œ?|S )Nr#   )Úhinting_factoréè  r   g      à?é@   rê   é   ©Úaxis))úDejaVuSerif-ItalicéM   )r¤  é‡   ú rÅ   s    d1
Féÿÿÿÿ)rC  rB  r.   rA  r=  Tr<  )r   Úunits_per_EMÚ
load_glyphr   rÓ   ÚarrayÚhoriAdvanceÚbboxÚastyperd   Úget_pathÚnonzeroÚsortedÚallÚpostscript_namer5   ÚmaprL   rÛ   r"   Úconvert_to_stringr    Úget_glyph_name)Ú	font_pathÚ	glyph_idsÚfontÚconvÚprocsÚglyph_idÚgÚd1rH   rŽ   ÚquadsÚquads_onÚquads_mid_onÚimplicits                 r,   Ú_get_pdf_charprocsrÃ  €  so  € Ý�I¨aÐ0Ñ0Ô0€DØ�$Ô#Ñ#€DØ€EØð &ñ &ˆØ�OŠO˜H¥mÑ4Ô4ˆõ Œh˜œ qÐ2¨1¬6Ð2Ñ3Ô3°dÑ:¸RÑ?×GÒGÍÑLÔLˆØ�}Š}‰Œ‰ˆˆ1Ø�‰V�OŠO�CÑ Ô ˆõ ”˜A šFÑ#Ô#‰ˆØ˜˜˜A˜”;ˆÝ”xÝ�;�X�;  E¨A¡I Ñ/°.°U¸Q±Y°.Ñ@ÑAÔAÅ3ñHô HˆàØˆ|Œ_Ø�L 1Ñ$Ô%¨¨,¸Ñ*:Ô(;Ñ;¸qÑ@×HÒHÍÑMÔMòNçŠS�aˆS‰[Œ[ôˆð Ô  (Ð+ð 0
ð 
ð 
ð ˆaˆaˆa�ˆdˆGˆGŒG�q‰LˆGˆG‰GØ�‰X˜‰]×"Ò"¥3Ñ'Ô'ˆàˆx˜!‰|Œ_˜q ¨A¡œÑ.°!Ñ3·V²V½C±[´[ð 	
ˆ(‰ð �HŠH•S�˜b‘\”\Ñ"Ô"×)Ò)¨'Ñ2Ô2°XÑ=ÝÔ%Ý�Q˜‘
”
˜D $¨¨t°Rà-Ð-Ð-¨tñ5ô 5ñ5ð
 ñð 	ˆd×!Ò! (Ñ+Ô+Ñ,Ñ,ð €Lr.   c                   óX  ‡ — e Zd ZdZd5ˆ fd„	Zd„ Zg d¢fd„Zd„ Zd„ Zd	„ Z	d
„ Z
d„ Zd6d„Zd„ Zddœd„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd „ Zd!„ Z d"„ Z!d#„ Z"d$„ Z#d5d%„Z$d&„ Z%d'„ Z&d(„ Z'd)„ Z(d*„ Z)e*d7d+„¦   «         Z+d8d-„Z,d9d/„Z-d0„ Z.d1„ Z/d2„ Z0d3„ Z1d4„ Z2ˆ xZ3S ):ÚPdfFilezPDF file object.Nc                 ó:  •— t          ¦   «                              ¦   «          t          j        d¦  «        | _        g d¢g| _        d| _        d| _        d| _        t          j
        |dd¬¦  «        \  }}|sI	 |                     ¦   «         | _        |}d| _        n%# t          $ r t          ¦   «         }|| _        Y nw xY w|| _        d| _        |                     d	¦  «         |                     d
¦  «         |                      d¦  «        | _        |                      d¦  «        | _        g | _        |                      d¦  «        | _        |                      d¦  «        | _        |                      d¦  «        | _        |                      d¦  «        | _        |                      d¦  «        | _        |                      d¦  «        | _        t7          d¦  «        | j        dœ}|                      | j        |¦  «         t;          d|pi ¦  «        | _        i | _        d„ t          j        d¦  «        D ¦   «         | _         i | _!        i | _"        tG          j$        ¦   «         | _%        i | _&        d„ t          j        d¦  «        D ¦   «         | _'        i | _(        d„ t          j        d¦  «        D ¦   «         | _)        g | _*        i | _+        d„ t          j        d¦  «        D ¦   «         | _,        g | _-        i | _.        d„ t          j        d¦  «        D ¦   «         | _/        i | _0        i | _1        g | _2        g | _3        g | _4        d„ d 5                    ¦   «         D ¦   «         }| j        | j        | j        | j        | j        |dœ}|                      | j        |¦  «         dS )aã  
        Parameters
        ----------
        filename : str or path-like or file-like
            Output target; if a string, a file will be opened for writing.

        metadata : dict from strings to strings and dates
            Information dictionary object (see PDF reference section 10.2.1
            'Document Information Dictionary'), e.g.:
            ``{'Creator': 'My software', 'Author': 'Me', 'Title': 'Awesome'}``.

            The standard keys are 'Title', 'Author', 'Subject', 'Keywords',
            'Creator', 'Producer', 'CreationDate', 'ModDate', and
            'Trapped'. Values have been predefined for 'Creator', 'Producer'
            and 'CreationDate'. They can be removed by setting them to `None`.
        r#   )r   rí   úthe zero objectFNr   ÚwbT)Úreturn_openeds	   %PDF-1.4
s   %¬Ü «º
ÚrootÚpagesÚfontszextended graphics statesztiling patternszGouraud triangleszexternal objectsÚ	resourcesÚCatalog)r°   ÚPagesÚpdfc              3   ó:   K  — | ]}t          d |› �¦  «        V — ŒdS )ÚFN©rW   ©rF   r9   s     r,   r—   z#PdfFile.__init__.<locals>.<genexpr>í  ó.   è è € Ð"MÐ"M°Q¥4¨¨A¨¨¡=¤=Ð"MÐ"MÐ"MÐ"MÐ"MÐ"Mr.   c              3   ó:   K  — | ]}t          d |› �¦  «        V — ŒdS )r´   NrÓ  rÔ  s     r,   r—   z#PdfFile.__init__.<locals>.<genexpr>ô  s.   è è € Ð KÐ K°1¥ g¨! g g¡¤Ð KÐ KÐ KÐ KÐ KÐ Kr.   c              3   ó:   K  — | ]}t          d |› �¦  «        V — ŒdS )ÚSMNrÓ  rÔ  s     r,   r—   z#PdfFile.__init__.<locals>.<genexpr>ö  s.   è è € ÐJÐJ°!�t H¨ H H™~œ~ÐJÐJÐJÐJÐJÐJr.   c              3   ó:   K  — | ]}t          d |› �¦  «        V — ŒdS )ÚHNrÓ  rÔ  s     r,   r—   z#PdfFile.__init__.<locals>.<genexpr>ù  rÕ  r.   c              3   ó:   K  — | ]}t          d |› �¦  «        V — ŒdS )ÚINrÓ  rÔ  s     r,   r—   z#PdfFile.__init__.<locals>.<genexpr>ý  s.   è è € ÐEÐE¨Q�4  A  ™=œ=ÐEÐEÐEÐEÐEÐEr.   c                 ó,   — g | ]}t          |¦  «        ‘ŒS rD   rÓ  ©rF   rN   s     r,   rÉ   z$PdfFile.__init__.<locals>.<listcomp>  ó   € ÐMÐMÐM •D˜‘G”GÐMÐMÐMr.   úPDF Text ImageB ImageC ImageI)ÚFontÚXObjectÚ	ExtGStateÚPatternÚShadingÚProcSet)6Úsuperrù   r    ÚcountÚ_object_seqÚ	xrefTableÚpassed_in_file_objectÚoriginal_file_likeÚ	tell_baser   Úto_filehandler�  ÚIOErrorr   r†  Úcurrentstreamr  ÚreserveObjectÚ
rootObjectÚpagesObjectÚpageListÚ
fontObjectÚ_extGStateObjectÚhatchObjectÚgouraudObjectÚXObjectObjectÚresourceObjectrW   r”  rs   ÚinfoDictÚ	fontNamesÚ_internal_font_seqÚdviFontInfoÚtype1Descriptorsr$   ÚCharacterTrackerÚ_character_trackerÚalphaStatesÚ_alpha_state_seqÚ_soft_mask_statesÚ_soft_mask_seqÚ_soft_mask_groupsÚhatchPatternsÚ_hatch_pattern_seqÚgouraudTrianglesÚ_imagesÚ
_image_seqÚmarkersÚmulti_byte_charprocsÚpathsÚ_annotationsÚpageAnnotationsÚsplit)	rø   Úfilenamern   r†  ÚopenedrÊ  ÚprocsetsrÍ  Ú	__class__s	           €r,   rù   zPdfFile.__init__±  sœ  ø€ õ" 	‰Œ×ÒÑÔÐå$œ?¨1Ñ-Ô-ˆÔØ7Ð7Ð7Ð8ˆŒØ%*ˆÔ"Ø"&ˆÔØˆŒÝÔ(¨°4ÀtÐLÑLÔL‰
ˆˆFØð 	2ð2Ø!)§¢¡¤�”ð
 �Ø-1�Ô*Ð*øõ ð 3ð 3ð 3Ý‘Y”Y�Ø*2�Ô'Ð'Ð'ð3øøøð ˆŒØ!ˆÔØ
�Š�ÑÔÐð 	�ŠÐ(Ñ)Ô)Ð)à×,Ò,¨VÑ4Ô4ˆŒØ×-Ò-¨gÑ6Ô6ˆÔØˆŒØ×,Ò,¨WÑ5Ô5ˆŒØ $× 2Ò 2Ð3MÑ NÔ NˆÔØ×-Ò-Ð.?Ñ@Ô@ˆÔØ!×/Ò/Ð0CÑDÔDˆÔØ!×/Ò/Ð0BÑCÔCˆÔØ"×0Ò0°Ñ=Ô=ˆÔå˜Y™œØÔ)ð+ð +ˆà×Ò˜œ¨$Ñ/Ô/Ð/å-¨e°X°^ÀÑDÔDˆŒàˆŒØ"MÐ"M½)¼/È!Ñ:LÔ:LÐ"MÑ"MÔ"MˆÔØˆÔà "ˆÔÝ"1Ô"BÑ"DÔ"DˆÔàˆÔØ KÐ K½	¼ÈÑ8JÔ8JÐ KÑ KÔ KˆÔØ!#ˆÔØJÐJµy´ÀqÑ7IÔ7IÐJÑJÔJˆÔØ!#ˆÔØˆÔØ"MÐ"M½)¼/È!Ñ:LÔ:LÐ"MÑ"MÔ"MˆÔØ "ˆÔàˆŒØEÐEµ)´/À!Ñ2DÔ2DÐEÑEÔEˆŒàˆŒØ$&ˆÔ!àˆŒ
ð
 ˆÔð  "ˆÔð NÐMÐ%D×%JÒ%JÑ%LÔ%LÐMÑMÔMˆð
 "œ_Ø $Ô 2Ø"&Ô"7Ø $Ô 0Ø $Ô 2Ø (ð*ð *ˆ	ð 	×Ò˜Ô,¨iÑ8Ô8Ð8Ð8Ð8s   Á7B ÂB<Â;B<c                 ó>  — |                       ¦   «          ||c| _        | _        |                      d¦  «        }|                      d¦  «        }t	          d¦  «        | j        | j        ddd|z  d|z  g||dœ}|                      d¦  «        }|                      ||¦  «         | j         	                    |¦  «         | j
         	                    || j        f¦  «         |                      |j        |                      d¦  «        ¦  «         |                      t	          d	¦  «        t          j        ¦  «         |                      t	          d	¦  «        t          j        ¦  «         |                      t$          j        d
         t          j        ¦  «         g | _        d S )Nzpage contentsÚannotationsÚPager   éH   )r°   ÚParentÚ	ResourcesÚMediaBoxÚContentsÚAnnotsÚpagezlength of content streamÚ	DeviceRGBÚround)Ú	endStreamr‡   rˆ   rñ  rW   ró  rú  r”  rô  r4   r  r  ÚbeginStreamrö   Úoutputr9  rg  rh  ÚGraphicsContextPdfÚ
joinstylesrl  )rø   r‡   rˆ   ÚcontentObjectÚannotsObjectÚthePageÚ
pageObjects          r,   ÚnewPagezPdfFile.newPage  s„  € Ø�ŠÑÔÐà"'¨ÐˆŒ
�D”KØ×*Ò*¨?Ñ;Ô;ˆØ×)Ò)¨-Ñ8Ô8ˆÝ ™<œ<Ø!Ô-Ø $Ô 3Ø ! 1 b¨5¡j°"°v±+Ð>Ø,Ø)ðð ˆð ×'Ò'¨Ñ/Ô/ˆ
Ø×Ò˜ WÑ-Ô-Ð-ØŒ×Ò˜ZÑ(Ô(Ð(ØÔ× Ò  ,°Ô0DÐ!EÑFÔFÐFà×Ò˜Ô)Ø×+Ò+Ð,FÑGÔGñ	Iô 	Ið 	Ið 	�Š•D˜Ñ%Ô%¥rÔ'>Ñ?Ô?Ð?Ø�Š•D˜Ñ%Ô%¥rÔ'AÑBÔBÐBØ�ŠÕ&Ô1°'Ô:½B¼NÑKÔKÐKð  "ˆÔÐÐr.   ©éœÿÿÿr-  r   r   c                 ó|   — t          d¦  «        t          d¦  «        ||dœ}| j                             |¦  «         d S )Nr«   ÚText)r°   r±   r  r²   )rW   r  r4   )rø   ÚtextÚpositionRectÚtheNotes       r,   ÚnewTextnotezPdfFile.newTextnote7  sE   € å ™=œ=Ý" 6™lœlØ#Ø'ðð ˆð
 	Ô×#Ò# GÑ,Ô,Ð,Ð,Ð,r.   c                 óÈ   ‡— ˆfd„Št          t          |                     ¦   «         ¦  «        ¦  «        t          j        dz   dz  z  } ‰|d¦  «        }|d d…         dz   |z   S )Nc                 ó~   •— | |k     rt           j        |          S  ‰| |z  |¦  «        t           j        | |z           z   S rC   )ÚstringÚascii_uppercase)ÚnÚbaseÚtoStrs     €r,   r:  z,PdfFile._get_subsetted_psname.<locals>.toStrA  sE   ø€ Ø�4ŠxˆxÝÔ-¨aÔ0Ð0ð �E˜!˜t™) TÑ*Ô*­VÔ-CÀAÈÁHÔ-MÑMðr.   r#   r¡  é   é   ú+)r  Ú	frozensetÚkeysÚsysÚmaxsize)rø   Úps_nameÚcharmapÚhashedÚprefixr:  s        @r,   Ú_get_subsetted_psnamezPdfFile._get_subsetted_psname@  sv   ø€ ð	ð 	ð 	ð 	ð 	õ •i §¢¡¤Ñ/Ô/Ñ0Ô0µS´[À1±_ÈÑ4IÑJˆØ��v˜rÑ"Ô"ˆð �b�q�bŒz˜CÑ 'Ñ)Ð)r.   c           
      óä  — |                       ¦   «          |                      ¦   «          |                      ¦   «          |                      ¦   «          |                      ¦   «          |                      ¦   «          |                      ¦   «          d„ | j                             ¦   «         D ¦   «         }| j	                             ¦   «         D ]}|d         ||d         <   Œ| j
                             ¦   «         D ]
\  }}|||<   Œ| j        D ]\	  }}}}}}	}
}}|||<   Œ|                      | j        |¦  «         |                      ¦   «          |                      ¦   «          |                      ¦   «          |                      | j        t'          d¦  «        | j        t+          | j        ¦  «        dœ¦  «         |                      ¦   «          |                      ¦   «          |                      ¦   «          dS )z>Write out the various deferred objects and the pdf end matter.c                 ó   — i | ]	\  }}}||“Œ
S rD   rD   )rF   ÚimagerX   Úobs       r,   rI   z$PdfFile.finalize.<locals>.<dictcomp>Z  s3   € ð Cð Cð CÙ(˜  bˆD�"ðCð Cð Cr.   r#   r   rÏ  )r°   ÚKidsÚCountN)r"  Ú_write_annotationsÚ
writeFontsÚwriteExtGSTatesÚ_write_soft_mask_groupsÚwriteHatchesÚwriteGouraudTrianglesr
  Úvaluesr  r  ri   r  r”  rù  ÚwriteImagesÚwriteMarkersÚwritePathCollectionTemplatesró  rW   rô  r3   ÚwriteInfoDictÚ	writeXrefÚwriteTrailer)rø   ÚxobjectsÚtuprX   rO  ÚpathÚtransrJ  r5   ÚcapÚpaddingÚfilledÚstrokeds                r,   ÚfinalizezPdfFile.finalizeP  s  € ð 	�ŠÑÔÐØ×ÒÑ!Ô!Ð!Ø�ŠÑÔÐØ×ÒÑÔÐØ×$Ò$Ñ&Ô&Ð&Ø×ÒÑÔÐØ×"Ò"Ñ$Ô$Ð$ðCð CØ,0¬L×,?Ò,?Ñ,AÔ,AðCñ Cô Cˆà”<×&Ò&Ñ(Ô(ð 	&ð 	&ˆCØ" 1œvˆH�S˜”VÑÐØÔ4×:Ò:Ñ<Ô<ð 	#ð 	#‰KˆD�%Ø"ˆH�T‰NˆNà”:ð	 ð 	 ÑFˆD�$˜˜r 4¨¨g°v¸wàˆH�T‰NˆNØ×Ò˜Ô+¨XÑ6Ô6Ð6Ø×ÒÑÔÐØ×ÒÑÔÐØ×)Ò)Ñ+Ô+Ð+Ø×Ò˜Ô)Ý"& w¡-¤-Ø"&¤-Ý#& t¤}Ñ#5Ô#5ð7ð 7ñ	8ô 	8ð 	8ð 	×ÒÑÔÐð 	�ŠÑÔÐØ×ÒÑÔÐÐÐr.   c                 ó  — |                       ¦   «          | j        r| j                             ¦   «          dS | j        �1| j                             | j                             ¦   «         ¦  «         | j                             ¦   «          dS )z)Flush all buffers and free all resources.N)r"  rë  r†  r›  rì  r  r“  Úcloserü   s    r,   rd  zPdfFile.closeq  ss   € ð 	�ŠÑÔÐØÔ%ð 	ØŒG�MŠM‰OŒOˆOˆOˆOàÔ&Ð2ØÔ'×-Ò-¨d¬g×.>Ò.>Ñ.@Ô.@ÑAÔAÐAØŒG�MŠM‰OŒOˆOˆOˆOr.   c                 ó€   — | j         €| j                             |¦  «         d S | j                              |¦  «         d S rC   )rð  r†  r  ©rø   r˜  s     r,   r  zPdfFile.write|  sB   € ØÔÐ%ØŒG�MŠM˜$ÑÔÐÐÐàÔ×$Ò$ TÑ*Ô*Ð*Ð*Ð*r.   c                 óˆ   — |                       t          d„ |D ¦   «         ¦  «        ¦  «         |                       d¦  «         d S )Nc                 ó,   — g | ]}t          |¦  «        ‘ŒS rD   rÌ   rÞ  s     r,   rÉ   z"PdfFile.output.<locals>.<listcomp>ƒ  s   € Ð3Ð3Ð3¨�' !™*œ*Ð3Ð3Ð3r.   r1   )r  r*   rf  s     r,   r$  zPdfFile.output‚  sC   € Ø�
Š
•5Ð3Ð3¨dÐ3Ñ3Ô3Ñ4Ô4Ñ5Ô5Ð5Ø�
Š
�5ÑÔÐÐÐr.   c                 óH   — | j         �J ‚t          ||| ||¦  «        | _         d S rC   )rð  r|  )rø   rö   r3   r  rŽ  s        r,   r#  zPdfFile.beginStream†  s/   € ØÔ!Ð)Ð)Ð)Ý# B¨¨T°5¸#Ñ>Ô>ˆÔÐÐr.   c                 óX   — | j         �"| j                              ¦   «          d | _         d S d S rC   )rð  r•  rü   s    r,   r"  zPdfFile.endStreamŠ  s6   € ØÔÐ)ØÔ×"Ò"Ñ$Ô$Ð$Ø!%ˆDÔÐÐð *Ð)r.   ©r  c                óš   — |                       |j        d |¦  «         | j                             |¦  «         |                      ¦   «          d S rC   )r#  rö   rð  r  r"  )rø   Úrefr˜  r  s       r,   ÚoutputStreamzPdfFile.outputStream�  sI   € Ø×Ò˜œ  uÑ-Ô-Ð-ØÔ× Ò  Ñ&Ô&Ð&Ø�ŠÑÔÐÐÐr.   c                 óL   — | j         D ]\  }}|                      ||¦  «         Œd S rC   )r  r”  )rø   r(  r  s      r,   rM  zPdfFile._write_annotations”  s<   € Ø)-Ô):ð 	8ð 	8Ñ%ˆL˜+Ø×Ò˜\¨;Ñ7Ô7Ð7Ð7ð	8ð 	8r.   c                 ó’  — t          |t          ¦  «        r|g}nHt          j        d         r"t	          j        |dt          j        ¬¦  «        }nt	          j        |¦  «        }d}|D ]`}| j         	                    |¦  «        }|s|}|€>t          | j        ¦  «        }|| j        |<   t                               d||¦  «         |s|}Œa|S )z¼
        Select a font based on fontprop and return a name suitable for
        Op.selectfont. If fontprop is a string, it will be interpreted
        as the filename of the font.
        úpdf.use14corefontsÚafm)ÚfontextÚ	directoryNzAssigning font %s = %r)rK   rL   rg   rŠ  Ú_fontManagerÚ_find_fonts_by_propsÚRendererPdfÚ_afm_font_dirrü  ÚgetÚnextrý  Ú_logÚdebug)rø   ÚfontpropÚ	filenamesÚfirst_FxÚfnameÚFxs         r,   ÚfontNamezPdfFile.fontName˜  sé   € õ �h¥Ñ$Ô$ð 	DØ!˜
ˆIˆIÝŒ\Ð.Ô/ð 	DÝ$Ô9Ø %µ;Ô3Lðñ ô ˆIˆIõ %Ô9¸(ÑCÔCˆIØˆØð 		"ð 		"ˆEØ”×#Ò# EÑ*Ô*ˆBØð Ø�ØˆzÝ˜$Ô1Ñ2Ô2�Ø(*�”˜uÑ%Ý—
’
Ð3°R¸Ñ?Ô?Ð?Øð "Ø!�Høð ˆr.   c                 ó  — | j                              |j        ¦  «        }|�|j        S t	          j        t	          j        d¦  «        ¦  «        }||j                 }|j        €-t          d 	                    |j
        |j        ¦  «        ¦  «        ‚t          | j        ¦  «        }t                               d||j        ¦  «         t          j        |||j        |j
        |j        |j        ¬¦  «        | j         |j        <   |S )z·
        Given a dvi font object, return a name suitable for Op.selectfont.
        This registers the font information in ``self.dviFontInfo`` if not yet
        registered.
        Nz
pdftex.mapzNNo usable font file found for {} (TeX: {}); the font may lack a Type-1 versionzAssigning font %s = %s (dvi))ÚdvifontÚpdfnameÚfontfileÚbasefontÚencodingfileÚeffects)rþ  ry  Útexnamer…  r   Ú
PsfontsMapÚ_find_tex_filer  rÖ   ræ   Úpsnamerz  rý  r{  r|  ÚtypesÚSimpleNamespaceÚencodingr‰  )rø   r„  Údvi_infoÚtex_font_mapÚpsfontr…  s         r,   ÚdviFontNamezPdfFile.dviFontName·  sñ   € ð Ô#×'Ò'¨¬Ñ8Ô8ˆØÐØÔ#Ð#åÔ)­'Ô*@ÀÑ*NÔ*NÑOÔOˆØ˜gœoÔ.ˆØŒ?Ð"Ýð5ç’˜œ w¤Ñ7Ô7ñ9ô 9ð 9õ
 �tÔ.Ñ/Ô/ˆÝ�
Š
Ð1°7¸G¼OÑLÔLÐLÝ,1Ô,AØØØ”_Ø”]ØœØ”Nð-$ñ -$ô -$ˆÔ˜œÑ)ð ˆr.   c                 óÂ  — i }t          | j                             ¦   «         ¦  «        D ]?\  }}|j        }t                               d|¦  «         |                      |¦  «        ||<   Œ@t          | j        ¦  «        D ]Æ}| j        |         }t                               d|¦  «         |                     d¦  «        r3t                               d¦  «         |  	                    |¦  «        ||<   Œrt                               d¦  «         | j
        j                             |¦  «        }|r|                      ||¦  «        ||<   ŒÇ|                      | j        |¦  «         d S )Nz"Embedding Type-1 font %s from dvi.zEmbedding font %s.z.afmzWriting AFM font.zWriting TrueType font.)r±  rþ  ri   r…  r{  r|  Ú_embedTeXFontrü  ÚendswithÚ_write_afm_fontr  Úusedry  ÚembedTTFr”  rõ  )rø   rÌ  Údvinamerq   r�  r  Úcharss          r,   rN  zPdfFile.writeFontsÕ  sN  € ØˆÝ# DÔ$4×$:Ò$:Ñ$<Ô$<Ñ=Ô=ð 	1ð 	1‰MˆG�TØ”ˆBÝ�JŠJÐ;¸WÑEÔEÐEØ×*Ò*¨4Ñ0Ô0ˆE�"‰IˆIÝ˜tœ~Ñ.Ô.ð 	?ð 	?ˆHØ” Ô)ˆBÝ�JŠJÐ+¨XÑ6Ô6Ð6Ø× Ò  Ñ(Ô(ð 	?å—
’
Ð.Ñ/Ô/Ð/Ø ×0Ò0°Ñ:Ô:��b‘	�	õ —
’
Ð3Ñ4Ô4Ð4ØÔ/Ô4×8Ò8¸ÑBÔB�Øð ?Ø $§¢¨h¸Ñ >Ô >�E˜"‘IøØ×Ò˜œ¨%Ñ0Ô0Ð0Ð0Ð0r.   c                 óh  — t          |d¦  «        5 }t          |¦  «        }d d d ¦  «         n# 1 swxY w Y   |                     ¦   «         }t          d¦  «        t          d¦  «        t          |¦  «        t          d¦  «        dœ}|                      d¦  «        }|                      ||¦  «         |S )NÚrbrá  ÚType1ÚWinAnsiEncoding)r°   r±   ÚBaseFontÚEncodingúfont dictionary)Úopenr   Úget_fontnamerW   rñ  r”  )rø   r  r†  r¹  ÚfontnameÚfontdictÚfontdictObjects          r,   r˜  zPdfFile._write_afm_fontê  så   € Ý�(˜DÑ!Ô!ð 	 RÝ�r‘7”7ˆDð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	à×$Ò$Ñ&Ô&ˆÝ  ™LœLÝ# G™}œ}Ý $ X¡¤Ý $Ð%6Ñ 7Ô 7ð9ð 9ˆð ×+Ò+Ð,=Ñ>Ô>ˆØ×Ò˜¨Ñ2Ô2Ð2ØÐs   ‘-­1´1c                 ó”  — t                                d|j        j        |j        ¦  «         |                      d¦  «        }|                      ||j        j        ¦  «         |                      d¦  «        }t          d¦  «        t          d¦  «        dt          |j        j        ¦  «        dz
  |dœ}|j
        �Bt          d	¦  «        dgt          t          t          j        |j
        ¦  «        ¦  «        ¢d
œ|d	<   |j        €Ot                                d|j        ¦  «         t          |j        ¦  «        |d<   |                      ||¦  «         |S t#          j        |j        ¦  «        }|j        r|                     |j        ¦  «        }t          |j        d         ¦  «        |d<   |j                             dd¦  «        |j                             dd¦  «        f}| j                             |j        |f¦  «        }|€,|                      ||j        ¦  «        }|| j        |j        |f<   ||d<   |                      ||¦  «         |S )Nz#Embedding TeX font %s - fontinfo=%súfont widthsr£  rá  rŸ  r   r#   )r°   r±   Ú	FirstCharÚLastCharÚWidthsr¢  ©r°   ÚDifferenceszâBecause of TeX configuration (pdftex.map, see updmap option pdftexDownloadBase14) the font %s is not embedded. This is deprecated as of PDF 1.5 and it may cause the consumer application to show something that was not intended.r¡  ÚFontNameÚslantç        Úextendç      ð?ÚFontDescriptor)r{  r|  r„  rŠ  Ú__dict__rñ  r”  ÚwidthsrW   r3   rˆ  r´  r   Ú
_parse_encr†  Úwarningr‡  r
   Ú	Type1Fontr‰  Ú	transformÚpropry  rÿ  ÚcreateType1Descriptor)rø   ÚfontinfoÚwidthsObjectr¨  r§  Út1fontr‰  Úfontdescs           r,   r–  zPdfFile._embedTeXFontö  s\  € Ý�
Š
Ð8ØÔ#Ô+¨XÔ->ñ	@ô 	@ð 	@ð ×)Ò)¨-Ñ8Ô8ˆØ×Ò˜ xÔ'7Ô'>Ñ?Ô?Ð?ð ×+Ò+Ð,=Ñ>Ô>ˆå˜f™œÝ˜g™œØÝ˜XÔ-Ô4Ñ5Ô5¸Ñ9Ø%ðð ˆð Ô Ð,å˜ZÑ(Ô(àð NÝ�D¥'Ô"4°XÔ5JÑ"KÔ"KÑLÔLð Nð$ð $ˆH�ZÑ ð ÔÐ$Ý�LŠLðGð Ô!ñ#ô #ð #õ $(¨Ô(9Ñ#:Ô#:ˆH�ZÑ Ø×Ò˜^¨XÑ6Ô6Ð6Ø!Ð!õ Ô% hÔ&7Ñ8Ô8ˆØÔð 	8Ø×%Ò% hÔ&6Ñ7Ô7ˆFÝ# F¤K°
Ô$;Ñ<Ô<ˆ�Ñð
 Ô#×'Ò'¨°Ñ5Ô5ØÔ#×'Ò'¨°#Ñ6Ô6ð8ˆàÔ(×,Ò,¨hÔ.?ÀÐ-IÑJÔJˆØÐØ×1Ò1°&¸(Ô:KÑLÔLˆHØBJˆDÔ! 8Ô#4°gÐ">Ñ?Ø%-ˆÐ!Ñ"à×Ò˜¨Ñ2Ô2Ð2ØÐr.   c                 ó€  — |                       d¦  «        }|                       d¦  «        }|j        d         }|j        d         }d}|r|dz  }	 	 |dz  }|r|d
z  }	 	 	 t          |¦  «        }t          d¦  «        t          |j        d         ¦  «        ||j        ||j        |j        dd||j        d         ddœ}	|                      ||	¦  «         |                      |d 	                    |j
        d d…         ¦  «        t          |j
        d         ¦  «        t          |j
        d         ¦  «        ddœ¬¦  «         |S )Núfont descriptorz	font fileÚItalicAngleÚisFixedPitchr   r#   r¡  é   é    r   é   é   é   rµ  r°  rŸ  iô  Ú
FamilyNameé2   )r°   r°  ÚFlagsÚFontBBoxrÄ  ÚAscentÚDescentÚ	CapHeightÚXHeightÚFontFileÚ
FontFamilyÚStemVr.   )ÚLength1ÚLength2ÚLength3rk  )rñ  r¼  r   rW   r­  ÚascenderÚ	descenderr”  rn  r5   Úpartsr3   )
rø   rÀ  r†  ÚfontdescObjectÚfontfileObjectÚitalic_angleÚfixed_pitchÚflagsÚft2fontÚ
descriptors
             r,   r½  zPdfFile.createType1Descriptor0  s}  € ð ×+Ò+Ð,=Ñ>Ô>ˆØ×+Ò+¨KÑ8Ô8ˆà”{ =Ô1ˆØ”k .Ô1ˆàˆàð 	Ø�V‰OˆEð	ð	Ø�V‰OˆEð
 ð 	Ø�V‰OˆEð	ð	ð	õ ˜8Ñ$Ô$ˆõ  Ð 0Ñ1Ô1Ý ¤¨JÔ 7Ñ8Ô8Ø Ø"œ<Ø'Ø"Ô+Ø"Ô,ØØØ)Ø!œ; |Ô4Øðð ˆ
ð" 	×Ò˜¨Ñ4Ô4Ð4à×Ò˜.¨#¯(ª(°6´<ÀÀÀÔ3CÑ*DÔ*DÝ,/°´¸Q´Ñ,@Ô,@Ý,/°´¸Q´Ñ,@Ô,@Ø,-ð!/ð !/ð 	ñ 	0ô 	0ð 	0ð
 Ðr.   c                 ó
  — |                       |¦  «        }d                     |j                             ¦   «         t          j                             t          j                             |¦  «        ¦  «        d         |g¦  «        S )Nú-r   )r‚  r5   rX   rß   ra   r\  ÚsplitextÚbasename)rø   r  Ú
glyph_namer�  s       r,   Ú_get_xobject_glyph_namezPdfFile._get_xobject_glyph_nameo  sh   € Ø�]Š]˜8Ñ$Ô$ˆØ�xŠxØŒG�NŠNÑÔÝŒG×Ò�RœW×-Ò-¨hÑ7Ô7Ñ8Ô8¸Ô;Øðñ ô ð 	r.   sO  /CIDInit /ProcSet findresource begin
12 dict begin
begincmap
/CIDSystemInfo
<< /Registry (Adobe)
   /Ordering (UCS)
   /Supplement 0
>> def
/CMapName /Adobe-Identity-UCS def
/CMapType 2 def
1 begincodespacerange
<0000> <ffff>
endcodespacerange
%d beginbfrange
%s
endbfrange
endcmap
CMapName currentdict /CMap defineresource pop
end
endc                 óP  ‡ ‡‡‡‡— t          ‰¦  «        }t          j        d         Š|j        dfd„Šˆˆˆˆ fd„}ˆˆˆˆˆ fd„}‰                      |j        |                     ¦   «         ¦  «        Š‰                     dd¦  «        Št          ‰¦  «        Š| 	                    d¦  «        pd	d	d
œ}| 	                    d¦  «        pddi}|j
        }|j        }	d	}
d}|t          z  r|
dz  }
	 |r|
dz  }
n|
dz  }
|	t          z  r|
dz  }
	 	 	 t          d¦  «        ‰|
ˆfd„|j        D ¦   «          ‰|j        d¬¦  «         ‰|j        d¬¦  «         ‰|d         d¬¦  «         ‰|d         ¦  «        |d         d         d	dœ
}‰dk    r ||||¦  «        S ‰dk    r ||||¦  «        S dS ) z9Embed the TTF font from the named file into the document.úpdf.fonttypeTc                 ó�   — | |z  dz  }|rt          |¦  «        S |dk     rt          j        |¦  «        S t          j        |¦  «        S )z2Convert font coordinates to PDF glyph coordinates.rŸ  r   )r!  r‚   ÚfloorÚceil)r;   ÚupeÚnearestrO  s       r,   ÚcvtzPdfFile.embedTTF.<locals>.cvt‘  sM   € à˜S‘L 4Ñ'ˆEØð $Ý˜U‘|”|Ð#à�qŠyˆyÝ”z %Ñ(Ô(Ð(å”y Ñ'Ô'Ð'r.   c                 ó~  •‡ ‡‡— ‰!                      d¦  «        }‰!                      d¦  «        }‰!                      d¦  «        }‰!                      d¦  «        }g }d\  }}	ˆfd„‰ j        D ¦   «         }
t          d¦  «        ‰ ||	|t          d¦  «        |d	         |
g d
¢|t          d¦  «        |dœ|dœ}ddlmŠ ˆˆˆ fd„Št          j        ¦   «         5  t          j        d¦  «         ˆfd„t          ||	dz   ¦  «        D ¦   «         }ddd¦  «         n# 1 swxY w Y   t          |¦  «        |d<   g }g }t          ¦   «         }|D ]v}|}‰                      |¦  «        }|                     |¦  «         ‰                      |¦  «        }|dk    r|                     ||f¦  «         Œa|                     |¦  «         Œw|                     ¦   «          d}|D ]G\  }}||dz   k    r|                     |¦  «         |                     t          |¦  «        ¦  «         |}ŒHt!          ‰|¦  «        }i }t#          |¦  «        D ]§}||         }i }||v r@t          d¦  «        t          d¦  «        |
dœ}||                     d¦  «        dz   d…         }‰!                      d¦  «        }‰!                     |||¬¦  «         ||v r!‰!                     ‰|¦  «        }|‰!j        |<   Œ¢|||<   Œ¨‰!                     ||¦  «         ‰!                     ||¦  «         ‰!                     ||¦  «         ‰!                     ||¦  «         |S )z5The Type 3-specific part of embedding a Truetype fontrª  rÃ  r£  zcharacter procs)r   rë   c                 ó*   •— g | ]} ‰|d ¬¦  «        ‘ŒS ©F©rï  rD   ©rF   rN   rð  s     €r,   rÉ   z;PdfFile.embedTTF.<locals>.embedTTFType3.<locals>.<listcomp>¤  s(   ø€ Ð=Ð=Ð=¨a�C�C˜ 5Ð)Ñ)Ô)Ð=Ð=Ð=r.   rá  ÚType3r°  )çü©ñÒMbP?r   r   r÷  r   r   r¢  r®  )r°   r¡  r«  r¬  rµ  r±   rW   rÎ  Ú
FontMatrixÚ	CharProcsr¢  r­  r   )Úcp1252c                 ó    •— t          ‰j        |          ¦  «        }‰                     |t          t          z  ¬¦  «        j        } ‰|¦  «        S )N©rà  )r   Údecoding_tableÚ	load_charr   r   r¬  )Úcharcoder:   r‡   rú  rð  r¹  s      €€€r,   Úget_char_widthz?PdfFile.embedTTF.<locals>.embedTTFType3.<locals>.get_char_widthº  sN   ø€ Ý˜Ô-¨hÔ7Ñ8Ô8�ØŸšØ�]­_Ñ<ð 'ñ >ô >Ü>Ið à�s˜5‘z”zÐ!r.   Úignorec                 ó&   •— g | ]} ‰|¦  «        ‘ŒS rD   rD   )rF   rÿ  r   s     €r,   rÉ   z;PdfFile.embedTTF.<locals>.embedTTFType3.<locals>.<listcomp>Ä  s9   ø€ ð Hð Hð HØ&ð )˜.¨Ñ2Ô2ð Hð Hð Hr.   r#   NÚMaxWidthrë   éþÿÿÿrâ  ÚForm©r°   r±   ÚBBoxó   d1r¡  ÚcharProcrk  )rñ  r­  rW   Ú	encodingsrú  ÚwarningsÚcatch_warningsÚfilterwarningsr'  rž   rl   Úget_char_indexr4   r¶  ÚaddÚsortrÃ  r±  Úfindrn  rè  r  r”  )"r¹  Ú
charactersrâ  r¿  rÜ  r¨  ÚcharprocsObjectÚdifferencesArrayÚ	firstcharÚlastcharr­  r§  r·  r¸  ÚdifferencesÚmulti_byte_charsrŽ   ÚccodeÚgindrç  Úlast_crX   ÚrawcharprocsÚ	charprocsÚcharnameÚstreamÚcharprocDictÚcharprocObjectrú  r   rð  r  rB  rø   s"   `                           @@€€€€r,   ÚembedTTFType3z'PdfFile.embedTTF.<locals>.embedTTFType3œ  sX  øøøø€ à×-Ò-¨mÑ<Ô<ˆLØ!×/Ò/Ð0AÑBÔBˆNØ!×/Ò/Ð0AÑBÔBˆNØ"×0Ò0Ð1BÑCÔCˆOØ!ÐØ"(ÑˆI�xØ=Ð=Ð=Ð=°4´9Ð=Ñ=Ô=ˆDõ ˜V™œØ#Ø&Ø$Ø"0Ý ™=œ=Ø" :Ô.Ø Ø6Ð6Ð6Ø,å  Ñ,Ô,Ø#3ð5ð 5ð 'ðð ˆHð" )Ð(Ð(Ð(Ð(Ð(ð"ð "ð "ð "ð "ð "ð "õ
 Ô(Ñ*Ô*ð Hð Hõ Ô'¨Ñ1Ô1Ð1ðHð Hð Hð HÝ*/°	¸8ÀA¹:Ñ*FÔ*FðHñ Hô H�ðHð Hð Hñ Hô Hð Hð Hð Hð Hð Hð Høøøð Hð Hð Hð Hõ &)¨¡[¤[ˆJ�zÑ"ð
 ˆIØˆKÝ"™uœuÐØð 5ð 5�Ø�Ø×*Ò*¨5Ñ1Ô1�Ø× Ò  Ñ&Ô&Ð&Ø!×0Ò0°Ñ6Ô6�
Ø˜C’<�<Ø×&Ò&¨¨zÐ':Ñ;Ô;Ð;Ð;à$×(Ò(¨Ñ4Ô4Ð4Ð4Ø×ÒÑÔÐàˆFØ&ð ð ‘��4Ø˜ ™
’?�?Ø$×+Ò+¨AÑ.Ô.Ð.Ø ×'Ò'­¨T©
¬
Ñ3Ô3Ð3Ø��õ .¨h¸	ÑBÔBˆLØˆIÝ" <Ñ0Ô0ð 9ð 9�Ø% hÔ/�Ø!�ð Ð/Ð/Ð/Ý,0°©O¬OÝ/3°F©|¬|Ø,0ð$2ð $2�Lð $ F§K¢K°Ñ$6Ô$6¸Ñ$:Ð$;Ð$;Ô<�FØ!%×!3Ò!3°JÑ!?Ô!?�Ø×!Ò! .°&ÀÐ!ÑMÔMÐMð Ð/Ð/Ð/Ø×7Ò7¸À(ÑKÔK�DØ6D�DÔ-¨dÑ3Ð3à*8�I˜hÑ'Ð'ð ×Ò˜^¨XÑ6Ô6Ð6Ø×Ò˜^¨ZÑ8Ô8Ð8Ø×Ò˜\¨6Ñ2Ô2Ð2Ø×Ò˜_¨iÑ8Ô8Ð8à!Ð!s   Ã4DÄDÄDc                 ó  •— ‰+                      d¦  «        }‰+                      d¦  «        }‰+                      d¦  «        }‰+                      d¦  «        }‰+                      d¦  «        }‰+                      d¦  «        }‰+                      d¦  «        }	d                     d	„ |D ¦   «         ¦  «        }
t                               d
‰(|
¦  «         t	          j        ‰(|
¦  «        }t                               d‰(t          j        ‰(¦  «        j        | 	                    ¦   «         j
        ¦  «         | }t          |¦  «        } t          d¦  «        t          d¦  «        ‰*ddddœ|||dœ}t          d¦  «        t          d¦  «        ‰*t          d¦  «        |g|	dœ}||d<   ‰+                     ||                     ¦   «         d| 	                    ¦   «         j
        i¬¦  «         dgdz  }g }d}|D ]Š}|}|                      |¦  «        }|                      |t"          t$          z  ¬¦  «        }|                     | ‰'|j        ¦  «        f¦  «         |dk     rt+          |¦  «        ||<   t-          ||¦  «        }Œ‹|                     ¦   «          |d|dz   …         }d}g }d}g }|D ]‰\  }}||dz   k    rC|                     |¦  «         |                     |g¦  «         |                     ||g¦  «         n&|d                              |¦  «         ||d         d<   t-          ||¦  «        }|}ŒŠg }|D ]e\  }}|d k    rŒt1          d |¦  «        }|                     d!||d"                     d#„ t3          ||dz   ¦  «        D ¦   «         ¦  «        fz  ¦  «         Œf‰+j        t7          |¦  «        d$                     |¦  «        fz  }g }|D ]<}t9          ‰)|¦  «        s*|                     |¦  «        }|                     |¦  «         Œ=ˆ'fd%„|j        D ¦   «         } t=          ‰(|¦  «        }!t?          |!¦  «        D ]—}"|!|"         }#t          d&¦  «        t          d'¦  «        | d(œ}$|#|#                      d)¦  «        d*z   d…         }#‰+                      d+¦  «        }%‰+                     |%|#|$¬¦  «         ‰+ !                    ‰(|"¦  «        }&|%‰+j"        |&<   Œ˜d                     |¦  «         #                    d,¦  «        }‰+                     ||¦  «         ‰+                     |	|¦  «         ||d-<   ‰+ $                    ||¦  «         ‰+ $                    ||¦  «         ‰+ $                    ||¦  «         ‰+ $                    ||¦  «         |S ).z6The Type 42-specific part of embedding a Truetype fontrÃ  zCID font dictionaryzType 0 font dictionaryzCIDToGIDMap streamzfont file streamzType 0 widthszToUnicode mapÚ c              3   ó4   K  — | ]}t          |¦  «        V — Œd S rC   )Úchrr  s     r,   r—   z;PdfFile.embedTTF.<locals>.embedTTFType42.<locals>.<genexpr>  s(   è è € Ð <Ð <¨A¥ Q¡¤Ð <Ð <Ð <Ð <Ð <Ð <r.   zSUBSET %s characters: %szSUBSET %s %d -> %drá  ÚCIDFontType2ÚAdobeÚIdentityr   )ÚRegistryÚOrderingÚ
Supplement)r°   r±   r¡  ÚCIDSystemInforµ  ÚWÚCIDToGIDMapÚType0z
Identity-H)r°   r±   r¡  r¢  ÚDescendantFontsÚ	ToUnicodeÚ	FontFile2rÖ  rk  ú rÈ  rü  Nr#   r  r¨  rí   s   <%04x> <%04x> [%s]r0   c              3   ó    K  — | ]	}d |z  V — Œ
dS )s   <%04x>NrD   rÞ  s     r,   r—   z;PdfFile.embedTTF.<locals>.embedTTFType42.<locals>.<genexpr>f  s&   è è € ÐJÐJ°˜y¨1™}ÐJÐJÐJÐJÐJÐJr.   r1   c                 ó*   •— g | ]} ‰|d ¬¦  «        ‘ŒS ró  rD   rõ  s     €r,   rÉ   z<PdfFile.embedTTF.<locals>.embedTTFType42.<locals>.<listcomp>q  s(   ø€ ÐBÐBÐB¨a�C�C˜ 5Ð)Ñ)Ô)ÐBÐBÐBr.   râ  r  r  r  r¡  r	  úutf-16ber  )%rñ  r5   r{  r|  r$   Úget_glyphs_subsetra   ÚstatÚst_sizeÚ	getbufferÚnbytesr   rW   rn  r“  r  rþ  r   r   r4   r¬  r&  rž   r  r�   r'  Ú_identityToUnicodeCMapr3   rñ   r­  rÃ  r±  r  rè  r  rÛ   r”  ),r¹  r  râ  rÜ  ÚcidFontDictObjectÚtype0FontDictObjectÚcidToGidMapObjectrÝ  ÚwObjectÚtoUnicodeMapObjectÚ
subset_strÚfontdataÚ	full_fontÚcidFontDictÚtype0FontDictÚcid_to_gid_mapr·  Ú	max_ccoderŽ   r  r  rð   Ú
last_ccodeÚwÚ	max_widthÚunicode_groupsr‡   Úunicode_bfrangeÚstartr•  Úunicode_cmapr¸  r­  r  r  r  r   r!  rX   rð  r  rï   rB  rø   s,                                          €€€€€r,   ÚembedTTFType42z(PdfFile.embedTTF.<locals>.embedTTFType42  s)  ø€ à!×/Ò/Ð0AÑBÔBˆNØ $× 2Ò 2Ð3HÑ IÔ IÐØ"&×"4Ò"4Ð5MÑ"NÔ"NÐØ $× 2Ò 2Ð3GÑ HÔ HÐØ!×/Ò/Ð0BÑCÔCˆNØ×(Ò(¨Ñ9Ô9ˆGØ!%×!3Ò!3°OÑ!DÔ!DÐàŸšÐ <Ð <°Ð <Ñ <Ô <Ñ<Ô<ˆJÝ�JŠJÐ1°8¸ZÑHÔHÐHÝ&Ô8¸À:ÑNÔNˆHÝ�JŠJØ$ hÝ”˜Ñ!Ô!Ô)¨8×+=Ò+=Ñ+?Ô+?Ô+Fñô ð ð ˆIõ
 ˜8Ñ$Ô$ˆDõ ˜V™œÝ Ñ/Ô/Ø#à 'Ø *Ø"#ð"%ð "%ð #1ØØ0ðð ˆKõ ˜V™œÝ ™=œ=Ø#Ý  Ñ.Ô.Ø$5Ð#6Ø/ðð ˆMð '5ˆJ�{Ñ#Ø×ÒØ × 1Ò 1Ñ 3Ô 3Ø  (×"4Ò"4Ñ"6Ô"6Ô"=Ð>ð ñ @ô @ð @ð #˜V e™^ˆNØˆFØˆIØð 2ð 2�Ø�Ø×*Ò*¨5Ñ1Ô1�ØŸš uÝ-:½_Ñ-Lð 'ñ Nô N�à—’˜u c c¨%Ô*;Ñ&<Ô&<Ð=Ñ>Ô>Ð>Ø˜5’=�=Ý,/°©I¬I�N 5Ñ)Ý  yÑ1Ô1�	�	Ø�KŠK‰MŒMˆMØ+¨N¨Y¸©]¨NÔ;ˆNàˆJØˆAØˆIØˆNØ &ð 	#ð 	#‘��uØ˜J¨™NÒ*Ð*Ø—H’H˜U‘O”O�OØ—H’H˜e˜WÑ%Ô%Ð%Ø"×)Ò)¨5°%¨.Ñ9Ô9Ð9Ð9à�b”E—L’L Ñ'Ô'Ð'Ø,1�N 2Ô& qÑ)Ý 	¨5Ñ1Ô1�	Ø"�
�
à ˆOØ,ð 	Mð 	M‘
��sà˜5’=�=ØÝ˜% ‘o”o�à×&Ò&Ø)Ø˜CØ—Y’YÐJÐJµe¸EÀ3ÀqÁ5Ñ6IÔ6IÐJÑJÔJÑJÔJðLñLñMô Mð Mð Mð !Ô7Ý  Ñ0Ô0°%·*²*¸_Ñ2MÔ2MÐNñOˆLð ˆIØ#ð +ð +�Ý+¨H°eÑ<Ô<ð +Ø$×3Ò3°EÑ:Ô:�DØ×$Ò$ TÑ*Ô*Ð*øàBÐBÐBÐB°9´>ÐBÑBÔBˆDÝ-¨h¸	ÑBÔBˆLÝ" <Ñ0Ô0ð Að A�Ø% hÔ/�Ý(,¨Y©¬Ý+/°©<¬<Ø(,ð .ð  .�ð   §¢¨EÑ 2Ô 2°QÑ 6Ð 7Ð 7Ô8�Ø!%×!3Ò!3°JÑ!?Ô!?�Ø×!Ò! .°&ÀÐ!ÑMÔMÐMà×3Ò3°H¸hÑGÔG�Ø2@�Ô)¨$Ñ/Ð/ð  ŸWšW ^Ñ4Ô4×;Ò;¸JÑGÔGˆNØ×ÒÐ/°Ñ@Ô@Ð@ð ×ÒÐ0°,Ñ?Ô?Ð?à%.ˆJ�zÑ"ð ×ÒÐ.°Ñ<Ô<Ð<Ø×ÒÐ0°-Ñ@Ô@Ð@Ø×Ò˜^¨ZÑ8Ô8Ð8Ø×Ò˜W aÑ(Ô(Ð(à&Ð&r.   rÅ   re   Úpcltr   )Ú	capHeightÚxHeightÚpostÚitalicAngle©r   r   Fr#   r¡  rÆ  rÇ  r   rÈ  rÉ  rÊ  rµ  c                 ó*   •— g | ]} ‰|d ¬¦  «        ‘ŒS ró  rD   rõ  s     €r,   rÉ   z$PdfFile.embedTTF.<locals>.<listcomp>º  s(   ø€ ÐBÐBÐB°1˜˜˜Q¨Ð.Ñ.Ô.ÐBÐBÐBr.   rô  rS  rT  )
r°   r°  rÍ  rÎ  rÏ  rÐ  rÑ  rÒ  rÄ  rÕ  rê   rì   N)r   rg   rŠ  r©  rF  r³  Úget_charmaprÛ   rW   Úget_sfnt_tableÚ
face_flagsÚstyle_flagsr   r   r­  rÙ  rÚ  )rø   r  r  r¹  r"  rQ  rR  rU  ÚffÚsfrà  Úsymbolicrâ  rð  rï   rB  s   ``           @@@r,   rš  zPdfFile.embedTTF‹  s  øøøøø€ õ ˜Ñ!Ô!ˆÝ”< Ô/ˆà Ô-°tð 		(ð 		(ð 		(ð 		(ðh	"ð h	"ð h	"ð h	"ð h	"ð h	"ð h	"ð h	"ðTN	'ð N	'ð N	'ð N	'ð N	'ð N	'ð N	'ð N	'ð N	'ðd ×,Ò,ØÔ Ø×ÒÑÔñ
ô 
ˆð —.’. ¨)Ñ4Ô4ˆÝ�w‘-”-ˆØ×"Ò" 6Ñ*Ô*ÐL¸AÈ!Ð.LÐ.LˆØ×"Ò" 6Ñ*Ô*ÐE¨}¸fÐ.EˆØŒ_ˆØÔˆàˆØˆØ•Ñð 	Ø�V‰OˆEð	àð 	Ø�V‰OˆEˆEà�V‰OˆEØ•‰;ð 	Ø�V‰OˆEð	ð	ð	õ Ð)Ñ*Ô*ØØØBÐBÐBÐB¸¼	ÐBÑBÔBØ�c˜$œ-°Ð7Ñ7Ô7Ø�s˜4œ>°5Ð9Ñ9Ô9Ø˜˜T +Ô.¸Ð>Ñ>Ô>Ø�s˜4 	œ?Ñ+Ô+Ø Ô.¨qÔ1Øðð ˆ
ð �qŠ=ˆ=Ø �=  z°:Ñ>Ô>Ð>Ø˜Š^ˆ^Ø!�> $¨
°JÑ?Ô?Ð?ð ˆ^r.   c                 óÊ   — | j                              |d¦  «        }|�|d         S t          | j        ¦  «        }|t	          d¦  «        |d         |d         dœf| j         |<   |S )z?Return name of an ExtGState that sets alpha to the given value.Nr   rã  r#   )r°   ÚCAÚca)r  ry  rz  r  rW   )rø   ÚalphaÚstaterX   s       r,   Ú
alphaStatezPdfFile.alphaStateÈ  sx   € ð Ô ×$Ò$ U¨DÑ1Ô1ˆØÐØ˜”8ˆOå�DÔ)Ñ*Ô*ˆà�D Ñ-Ô-Ø œ(¨%°¬(ð4ð 4ð 5ð 	Ô˜Ñð ˆr.   c                 ó  — | j                              |d¦  «        }|�|d         S t          | j        ¦  «        }|                      d¦  «        }|t          d¦  «        dt          d¦  «        t          d¦  «        dg|d	œd
œf| j         |<   | j                             |t          d¦  «        t          d¦  «        dt          d¦  «        t          d¦  «        dœg d¢dd|iig d¢dœt          d¦  «        t          j	        gf¦  «         |S )aA  
        Return an ExtGState that sets the soft mask to the given shading.

        Parameters
        ----------
        smask : Reference
            Reference to a shading in DeviceGray color space, whose luminosity
            is to be used as the alpha channel.

        Returns
        -------
        Name
        Nr   z transparency group for soft maskrã  FÚMaskÚ
Luminosityr#   )r°   r¯   ÚBCÚG)r°   ÚAISÚSMaskrâ  r  ÚTransparencyÚ
DeviceGray)r¯   ÚCS)r#   r   r   r#   r   r   rå  r¯   )r   r   r#   r#   )r°   r±   ÚFormTypeÚGroupÚMatrixr  r  )
r  ry  rz  r  rñ  rW   r  r4   r9  rx  )rø   Úsmaskrd  rX   ÚgroupObs        r,   Ú_soft_mask_statezPdfFile._soft_mask_stateÕ  s:  € ð Ô&×*Ò*¨5°$Ñ7Ô7ˆØÐØ˜”8ˆOå�DÔ'Ñ(Ô(ˆØ×$Ò$Ð%GÑHÔHˆàå˜[Ñ)Ô)Øå  ™LœLÝ˜lÑ+Ô+Ø˜#Ø ð	ð ð	ð 	ð)
ˆÔ˜uÑ%ð 	Ô×%Ò%Øå˜Y™œÝ ™<œ<Øå˜nÑ-Ô-Ý˜|Ñ,Ô,ðð ð -Ð,Ð,Ø'¨#¨u¨Ð6Ø$˜˜ðð õ �#‰YŒY�œ
Ð#ð'
ñ 	ô 	ð 	ð  ˆr.   c                 óº   — |                       | j        t          g | j                             ¦   «         ¢| j                             ¦   «         ¢¦  «        ¦  «         d S rC   )r”  rö  râ   r  rS  r  rü   s    r,   rO  zPdfFile.writeExtGSTates	  sj   € Ø×ÒØÔ!Ýð ØÔ!×(Ò(Ñ*Ô*ðàÔ'×.Ò.Ñ0Ô0ðñ ô ñ	
ô 	
ð 	
ð 	
ð 	
r.   c                 ó–   — | j         D ]@\  }}}|                      |j        d |¦  «          | j        |Ž  |                      ¦   «          ŒAd S rC   )r  r#  rö   r$  r"  )rø   rJ  Ú
attributesÚcontents       r,   rP  zPdfFile._write_soft_mask_groups  sa   € Ø'+Ô'=ð 	ð 	Ñ#ˆB�
˜GØ×Ò˜RœU D¨*Ñ5Ô5Ð5ØˆDŒK˜Ð!Ð!Ø�NŠNÑÔÐÐð	ð 	r.   c                 óÞ   — |�-|\  }}}|�t          |¦  «        }|�t          |¦  «        }|||f}| j                             |d ¦  «        }|�|S t          | j        ¦  «        }|| j        |<   |S rC   )rŸ   r  ry  rz  r  )rø   Úhatch_styleÚedgeÚfaceÚhatchÚpatternrX   s          r,   ÚhatchPatternzPdfFile.hatchPattern  s‡   € àÐ"Ø +ÑˆD�$˜ØÐÝ˜T‘{”{�ØÐÝ˜T‘{”{�Ø  uÐ-ˆKàÔ$×(Ò(¨°dÑ;Ô;ˆØÐØˆNå�DÔ+Ñ,Ô,ˆØ*.ˆÔ˜;Ñ'Øˆr.   c                 ó  — t          ¦   «         }d}| j                             ¦   «         D �]Ã\  }}|                      d¦  «        }|||<   dd„ d                     ¦   «         D ¦   «         i}|                      |j        d t          d¦  «        ddddd||g|||ddddd| j        d	z  gd
œ	¦  «         |\  }}}	|  	                    |d         |d         |d         t          j        ¦  «         |�N|  	                    |d         |d         |d         t          j        dd||t          j        t          j        ¦
  «
         |  	                    t          j        d         t          j        ¦  «          | j	        |                      t'          j        |	¦  «        t+          ¦   «                              |¦  «        d¬¦  «        Ž  |  	                    t          j        ¦  «         |                      ¦   «          �ŒÅ|                      | j        |¦  «         d S )Nç      R@zhatch patternÚProcsetsc                 ó,   — g | ]}t          |¦  «        ‘ŒS rD   rÓ  rÞ  s     r,   rÉ   z(PdfFile.writeHatches.<locals>.<listcomp>1  rß  r.   rà  rä  r#   r   r  )	r°   ÚPatternTypeÚ	PaintTypeÚ
TilingTyper  ÚXStepÚYStepr  rr  r¡  zhatch.linewidthF©Úsimplify)râ   r  ri   rñ  r  r#  rö   rW   rˆ   r$  r9  re  rf  r^  r-   rg   rŠ  rv  ÚpathOperationsr    r~  r   ÚscalerS  r"  r”  r÷  )
rø   Ú	hatchDictÚsidelenr{  rX   rJ  ÚresÚ
stroke_rgbÚfill_rgbr~  s
             r,   rQ  zPdfFile.writeHatches*  s  € Ý‘F”Fˆ	ØˆØ!%Ô!3×!9Ò!9Ñ!;Ô!;ð  	ñ  	ÑˆK˜Ø×#Ò# OÑ4Ô4ˆBØ ˆI�d‰OØØMÐMÐ%D×%JÒ%JÑ%LÔ%LÐMÑMÔMðOˆCà×ÒØ”�tÝ˜i™œØ !°ÀØ˜Q ¨Ð1Ø!¨GØ!à˜q ! Q¨¨4¬;¸Ñ+;Ð<ð>ð >ñ?ô ?ð ?ð +6Ñ'ˆJ˜ %Ø�KŠK˜
 1œ z°!¤}°jÀ´mÝÔ(ñ*ô *ð *àÐ#Ø—’˜H QœK¨°!¬°h¸q´kÝÔ/Ø˜q '¨7µB´LÝœGñ%ô %ð %ð
 �KŠK�œÐ%6Ô7½¼ÑIÔIÐIàˆDŒK˜×,Ò,Ý”
˜5Ñ!Ô!Ý‘
”
× Ò  Ñ)Ô)Øð -ñ  ô  ð !ð !ð �KŠK�œÑ'Ô'Ð'à�NŠNÑÔÐÑØ×Ò˜Ô)¨9Ñ5Ô5Ð5Ð5Ð5r.   c                 ó¾   — t          dt          | j        ¦  «        z  ¦  «        }|                      d|› �¦  «        }| j                             ||||f¦  «         ||fS )aÕ  
        Add a Gouraud triangle shading.

        Parameters
        ----------
        points : np.ndarray
            Triangle vertices, shape (n, 3, 2)
            where n = number of triangles, 3 = vertices, 2 = x, y.
        colors : np.ndarray
            Vertex colors, shape (n, 3, 1) or (n, 3, 4)
            as with points, but last dimension is either (gray,)
            or (r, g, b, alpha).

        Returns
        -------
        Name, Reference
        zGT%dzGouraud triangle )rW   r3   r	  rñ  r4   )rø   ÚpointsÚcolorsrX   rJ  s        r,   ÚaddGouraudTriangleszPdfFile.addGouraudTrianglesP  sf   € õ$ �F�S Ô!6Ñ7Ô7Ñ7Ñ8Ô8ˆØ×ÒÐ :°DÐ :Ð :Ñ;Ô;ˆØÔ×$Ò$ d¨B°¸Ð%?Ñ@Ô@Ð@Ø�Rˆxˆr.   c                 ó¦  — t          ¦   «         }| j        D �]ž\  }}}}|||<   |j        }|                     |d         |d         z  df¦  «        }|j        d         }|dv sJ ‚|                     |d         |d         z  |f¦  «        }	|dk    rd}t	          j        |d¬¦  «        dz
  }
t	          j        |d¬¦  «        dz   }d	||
z
  z  }|                      |j        d dd
ddt          |dk    rdnd¦  «        d|
d         |d         |
d         |d         gddg|z  z   dœ¦  «         t	          j
        |d         |d         z  fdddd|ffg¬¦  «        }d|d<   ||
z
  |z  |d<   |	d d …d |…f         dz  |d<   |                      |                     ¦   «         ¦  «         |                      ¦   «          �Œ |                      | j        |¦  «         d S )Nr   r#   r¡  ©r#   rÆ  rÆ  rê   r¢  r  l   ÿÿ rÇ  é   r   rn  F)ÚShadingTypeÚBitsPerCoordinateÚBitsPerComponentÚBitsPerFlagÚ
ColorSpaceÚ	AntiAliasÚDecode)rà  Úu1)r”  z>u4)r¡  r•  r¡  )Údtyperà  r”  g     ào@)râ   r	  ÚshapeÚreshaperÓ   r�   rž   r#  rö   rW   Úemptyr  Útobytesr"  r”  rø  )rø   ÚgouraudDictrX   rJ  r”  r•  r£  Úflat_pointsÚcolordimÚflat_colorsÚ
points_minÚ
points_maxÚfactorÚ	streamarrs                 r,   rR  zPdfFile.writeGouraudTrianglesg  s@  € Ý‘f”fˆØ(,Ô(=ð '	ñ '	Ñ$ˆD�"�f˜fØ "ˆK˜ÑØ”LˆEØ Ÿ.š.¨%°¬(°U¸1´XÑ*=¸qÐ)AÑBÔBˆKØ”| A”ˆHØ˜vÐ%Ð%Ð%Ð%Ø Ÿ.š.¨%°¬(°U¸1´XÑ*=¸xÐ)HÑIÔIˆKØ˜1Š}ˆ}à�Ýœ °!Ð4Ñ4Ô4¸Ñ?ˆJÝœ °!Ð4Ñ4Ô4¸Ñ?ˆJØ :°
Ñ#:Ñ;ˆFà×ÒØ”�tØ !Ø&(Ø%&Ø !Ý#Ø$,°¢M M�[�[°|ñ ô  ð $Ø'¨œ]¨J°q¬MØ'¨œ]¨J°q¬Mð;à  !˜f xÑ/ñ0ðð ñô ð õ œØ�q”˜E !œHÑ$Ð&Ø&Ø.Ø  $¨¨Ð4ð6ð7ñ 7ô 7ˆIð
 "#ˆI�gÑØ#.°Ñ#;¸vÑ"EˆI�hÑØ"-¨a¨a¨a°°(°¨lÔ";¸eÑ"CˆI�hÑà�JŠJ�y×(Ò(Ñ*Ô*Ñ+Ô+Ð+Ø�NŠNÑÔÐÑØ×Ò˜Ô+¨[Ñ9Ô9Ð9Ð9Ð9r.   c                 óö   — | j                              t          |¦  «        d¦  «        }|�|d         S t          | j        ¦  «        }|                      d|› �¦  «        }|||f| j         t          |¦  «        <   |S )z=Return name of an image XObject representing the given image.Nr#   zimage )r
  ry  rö   rz  r  rñ  )rø   rI  ÚentryrX   rJ  s        r,   ÚimageObjectzPdfFile.imageObject“  sv   € ð ”× Ò ¥ E¡¤¨DÑ1Ô1ˆØÐØ˜”8ˆOå�D”OÑ$Ô$ˆØ×Ò ¨  Ñ0Ô0ˆØ#(¨$°Ð"3ˆŒ•R˜‘Y”YÑØˆr.   c                 ó@  — |ddd…         }|j         dk    r|dfS |dd…dd…dd…f         }t          j        |d¬¦  «        }|j        d         dk    rG|dd…dd…df         d         }t          j        |d	k    ¦  «        rd}nt          j        |d¬¦  «        }nd}||fS )
zç
        Unpack image array *im* into ``(data, alpha)``, which have shape
        ``(height, width, 3)`` (RGB) or ``(height, width, 1)`` (grayscale or
        alpha), except that alpha is None if the image is fully opaque.
        Nr¨  r¡  rê   ÚC)ÚorderrÆ  ).Nrë   )ÚndimrÓ   r«  r£  r²  )rø   ÚimÚrgbrc  s       r,   Ú_unpackzPdfFile._unpackŸ  sÅ   € ð ���"�ŒXˆØŒ7�aŠ<ˆ<Ø�t�8ˆOà�Q�Q�Q˜˜˜˜2˜A˜2�X”,ˆCÝ”(˜3 cÐ*Ñ*Ô*ˆCàŒx˜Œ{˜aÒÐØ˜1˜1˜1˜a˜a˜a ˜7œ IÔ.�Ý”6˜% 3š,Ñ'Ô'ð 7Ø �E�EåœH U°#Ð6Ñ6Ô6�E�Eà�Ø˜�:Ðr.   c                 ó$  — t          ¦   «         }|                     |d¬¦  «         |                     d¦  «         d}dx}}	 t          j        d|                     d¦  «        ¦  «        \  }}|dv rh|                     |¦  «        }t          |¦  «        |k    rt          d	¦  «        ‚|d
k    rt          |d         ¦  «        }n2|dk    r|}n)|dk    r||z  }n|dk    rn-|                     |d¦  «         |                     dd¦  «         ŒË|||fS )zn
        Write the image *img* into the pdf file using png
        predictors with Flate compression.
        rŽ  )ræ   r™  r.   NTs   !L4s)ó   IHDRó   PLTEó   IDATztruncated datarº  r»  r¼  s   IENDr#   rÆ  )	r   ÚsaveÚseekÚstructÚunpackÚreadr3   ÚRuntimeErrorrd   )	rø   ÚimgÚbufferÚpng_dataÚ	bit_depthÚpaletter;   rç   r˜  s	            r,   Ú	_writePngzPdfFile._writePng¶  s(  € õ
 ‘”ˆØ�Š� ˆÑ&Ô&Ð&Ø�Š�A‰ŒˆØˆØ"Ð"ˆ	�Gð	Ý!œ=¨°&·+²+¸a±.´.ÑAÔA‰LˆF�DØÐ2Ð2Ð2Ø—{’{ 6Ñ*Ô*�Ý�t‘9”9 Ò&Ð&Ý&Ð'7Ñ8Ô8Ð8Ø˜7’?�?Ý # D¨¤G¡¤�I�IØ˜W’_�_Ø"�G�GØ˜W’_�_Ø Ñ$�HøØ˜’�Øà—’˜F AÑ&Ô&Ð&Ø�KŠK˜˜1ÑÔÐð!	ð" ˜ GÐ+Ð+r.   c           	      ój  — |j         \  }}}t          d¦  «        t          d¦  «        ||t          dddœ|         ¦  «        ddœ}|r||d<   t          j        d	         �rI|j         d
         dk    r|                     d
¬¦  «        }t          j        |¦  «        }|                     d¬¦  «        }	|dk    rÒ|	�Ðt          |	¦  «        }
t          t
          dt
          ¦  «        j
        }t          t
          dt
          ¦  «        j        }|                     d|||
¬¦  «        }|                      |¦  «        \  }}}|�|€t          d¦  «        ‚|d|
dz  …         }t          d|
dz
  t!          |¦  «        fz  ¦  «        |d<   ||d<   d}n|                      |¦  «        \  }}}d||dœ}nd}|                      ||                      d¦  «        ||¬¦  «         |r| j                             |¦  «         n,| j                             |                     ¦   «         ¦  «         |                      ¦   «          dS )a  
        Write the image *data*, of shape ``(height, width, 1)`` (grayscale) or
        ``(height, width, 3)`` (RGB), as pdf object *id* and with the soft mask
        (alpha channel) *smask*, which should be either None or a ``(height,
        width, 1)`` array.
        râ  r   rn  r   ©r#   rê   r™  )r°   r±   ÚWidthÚHeightrž  rœ  rl  r…  r¨  r#   r¢  r  )Ú	maxcolorsrê   NÚDitherÚPaletteÚP)ÚmodeÚditherrÇ  r•  zinvalid PNG headers   [/Indexed /DeviceRGB %d %s]rž  rœ  é
   )Ú	PredictorÚColorsÚColumnszlength of image stream)rŽ  )r£  rW   rg   rŠ  Úsqueezer   Ú	fromarrayÚ	getcolorsr3   ÚgetattrÚNONEÚADAPTIVEÚconvertrÈ  rÂ  r3  rÂ   r#  rñ  rð  r  r¦  r"  )rø   r˜  rö   rs  rˆ   r‡   Úcolor_channelsrè   rÃ  Ú
img_colorsÚ
num_colorsrÒ  ÚpmoderÅ  rÆ  rÇ  Ú_rŽ  s                     r,   Ú	_writeImgzPdfFile._writeImgÓ  sx  € ð )-¬
Ñ%ˆ��~Ý˜I‘”Ý˜w™-œ-ØØÝ! lØ&1ð#3ð #3Ø3Aô#Cñ Dô Dà#$ð&ð &ˆð ð 	!Ø ˆC�‰LÝŒ<Ð)Ô*ñ 	ØŒz˜"Œ~ Ò"Ð"Ø—|’|¨�|Ñ,Ô,�Ý”/ $Ñ'Ô'ˆCØŸš°˜Ñ5Ô5ˆJØ Ò"Ð" zÐ'=õ ! ™_œ_�
õ !¥¨µ%Ñ8Ô8Ô=�Ý¥ yµ%Ñ8Ô8ÔA�Ø—k’kØ V°UÀ:ð "ñ ô �ð 04¯~ª~¸cÑ/BÔ/BÑ,�˜) WØÐ$¨¨Ý&Ð';Ñ<Ô<Ð<Ø! / :°¡> /Ô2�Ý$,Ø2Ø! A‘~¥w¨wÑ'7Ô'7Ð8ñ9ñ%:ô %:��LÑ!ð +4�Ð&Ñ'Ø!"��à!%§¢°Ñ!4Ô!4‘�˜!˜QØ "¨nÈÐOÐOˆCˆCàˆCØ×ÒØØ×ÒÐ7Ñ8Ô8ØØð	 	ñ 	ô 	ð 	ð ð 	5ØÔ×$Ò$ XÑ.Ô.Ð.Ð.àÔ×$Ò$ T§\¢\¡^¤^Ñ4Ô4Ð4Ø�ŠÑÔÐÐÐr.   c                 ó  — | j                              ¦   «         D ]o\  }}}|                      |¦  «        \  }}|�1|                      d¦  «        }|                      ||j        ¦  «         nd }|                      ||j        |¦  «         Œpd S )Nrs  )r
  rS  r¸  rñ  rã  rö   )rø   rÃ  rX   rJ  r˜  ÚadataÚsmaskObjects          r,   rT  zPdfFile.writeImages  s–   € Ø!œ\×0Ò0Ñ2Ô2ð 	5ð 	5‰MˆC��rØŸ,š, sÑ+Ô+‰KˆD�%ØÐ Ø"×0Ò0°Ñ9Ô9�Ø—’˜u k¤nÑ5Ô5Ð5Ð5à"�Ø�NŠN˜4 ¤¨Ñ4Ô4Ð4Ð4ð	5ð 	5r.   c                 óà  — |                       ||d¬¦  «        }t          |¦  «        t          |¦  «        t          |¦  «        ||f}	| j                             |	¦  «        }
|
€rt          dt          | j        ¦  «        z  ¦  «        }|                      dt          | j        ¦  «        z  ¦  «        }|                     |¦  «        }||||g| j        |	<   n|
d         |k     r||
d<   |
d         }|S )z<Return name of a marker XObject representing the given path.FrŠ  NzM%dz	marker %dr¨  r   )	rŒ  rŸ   rØ   r  ry  rW   r3   rñ  Úget_extents)rø   r\  r]  r-   rT  ÚlwÚ	joinstyleÚcapstyleÚpathopsÚkeyr8   rX   rJ  r­  s                 r,   ÚmarkerObjectzPdfFile.markerObject  sç   € ð ×%Ò% d¨E¸EÐ%ÑBÔBˆÝ�W‰~Œ~�t D™zœz­4°©<¬<¸ÀHÐMˆØ”×!Ò! #Ñ&Ô&ˆØˆ>Ý˜¥ D¤LÑ 1Ô 1Ñ1Ñ2Ô2ˆDØ×#Ò# Kµ#°d´lÑ2CÔ2CÑ$CÑDÔDˆBØ×#Ò# EÑ*Ô*ˆDØ!% r¨4°Ð 4ˆDŒL˜ÑÐà�bŒz˜BŠˆØ��r‘
Ø˜!”9ˆDØˆr.   c           
      ó~  — | j                              ¦   «         D �]!\  \  }}}}}\  }}}}	|                     |	dz  ¦  «        }|                      |j        d t          d¦  «        t          d¦  «        t          |j        ¦  «        dœ¦  «         |                      t          j
        |         t          j        ¦  «         |                      t          j        |         t          j        ¦  «          | j        |Ž  |                      t                               ||¦  «        ¦  «         |                      ¦   «          �Œ#d S )Né   râ  r  r  )r  ri   Úpaddedr#  rö   rW   rã   Úextentsr$  r%  r&  r9  rl  Ú	capstylesrm  rW  r"  )
rø   rì  r-   rT  rê  rë  rX   rJ  r­  ré  s
             r,   rU  zPdfFile.writeMarkers5  s+  € à&*¤l×&8Ò&8Ñ&:Ô&:ð	ñ 	ñ #Ñ9ˆg�t˜V Y°Ù!ˆd�B˜˜bð —;’;˜r A™vÑ&Ô&ˆDØ×ÒØ”�tÝ˜i™œµT¸&±\´\Ý˜dœlÑ+Ô+ð-ð -ñ.ô .ð .ð �KŠKÕ*Ô5°iÔ@Ýœñ(ô (ð (à�KŠKÕ*Ô4°XÔ>ÅÄÑNÔNÐNØˆDŒK˜Ð!Ð!Ø�KŠK�Ÿš d¨FÑ3Ô3Ñ4Ô4Ð4Ø�NŠNÑÔÐÑð'	ð 	r.   c                 ó0  — t          dt          | j        ¦  «        z  ¦  «        }|                      dt          | j        ¦  «        z  ¦  «        }| j                             |||||                     ¦   «         |                     ¦   «         |||f	¦  «         |S )NzP%dzpath %d)rW   r3   r  rñ  r4   Úget_joinstyleÚget_capstyle)	rø   r·   r\  r]  r_  r`  ra  rX   rJ  s	            r,   ÚpathCollectionObjectzPdfFile.pathCollectionObjectK  sŒ   € Ý�E�C ¤
™OœOÑ+Ñ,Ô,ˆØ×Ò 	­C°´
©O¬OÑ ;Ñ<Ô<ˆØŒ
×ÒØ�4˜  B×$4Ò$4Ñ$6Ô$6¸¿ºÑ8IÔ8IØ�f˜gð'ñ	(ô 	(ð 	(ð ˆr.   c           
      ó
  — | j         D �]y\	  }}}}}}}}}	|                      ||d¬¦  «        }
|                     |¦  «        }t          j        t          j        |j        ¦  «        ¦  «        sg d¢}n)|                     |¦  «        }t          |j        ¦  «        }|  	                    |j
        d t          d¦  «        t          d¦  «        |dœ¦  «         |                      t          j        |         t          j        ¦  «         |                      t          j        |         t          j        ¦  «          | j        |
Ž  |                      t                               ||	¦  «        ¦  «         |                      ¦   «          �Œ{d S )NFrŠ  ©r   r   r   r   râ  r  r  )r  rŒ  rè  rÓ   r²  rÕ   rò  rñ  rã   r#  rö   rW   r$  r%  r&  r9  rl  ró  rm  rW  r"  )rø   rX   r\  r]  rJ  rê  rë  r_  r`  ra  rì  r­  rò  s                r,   rV  z$PdfFile.writePathCollectionTemplatesS  so  € àœð	ñ 	ñ ˆT�4˜  I¨x¸À&ØØ×)Ò)¨$°ÀÐ)ÑFÔFˆGØ×#Ò# EÑ*Ô*ˆDÝ”6�"œ+ d¤lÑ3Ô3Ñ4Ô4ð -Ø&˜,˜,��à—{’{ 7Ñ+Ô+�Ý˜tœ|Ñ,Ô,�Ø×ÒØ”�tÝ˜i™œµT¸&±\´\Ø ð"ð "ñ#ô #ð #ð �KŠKÕ*Ô5°iÔ@Ýœñ(ô (ð (à�KŠKÕ*Ô4°XÔ>ÅÄÑNÔNÐNØˆDŒK˜Ð!Ð!Ø�KŠK�Ÿš f¨gÑ6Ô6Ñ7Ô7Ð7Ø�NŠNÑÔÐÑð%	ð 	r.   c                 óÖ   — t          t          j        | ||||dt          j        j        t          j        j        dt          j        j        t          j        j        gd¦  «        ¦  «        gS )Nr<  r.   T)	r3  r"   rµ  r9  r`  rO  r_  r]  rY  )r\  r»  rw  r‹  Úsketchs        r,   rŒ  zPdfFile.pathOperationsh  s\   € å�Ô0Ø�)˜T 8¨VØÝŒYŒ_�bœiœo¨sµB´JÔ4DÝŒ\Ôð!àñô ñ ô ð ð 	r.   Fc                 ó–   — |rdd| j         dz  | j        dz  f}|j        }nd }d}|                      |||||¬¦  «        } | j        |Ž  d S )Nr²  r  F)r‹  rû  )r‡   rˆ   Úshould_simplifyrŒ  r$  )rø   r\  r»  rw  rû  r‹  Úcmdss          r,   Ú	writePathzPdfFile.writePathq  ss   € Øð 	Ø˜˜dœj¨2™o¨t¬{¸RÑ/?Ð@ˆDØÔ+ˆHˆHàˆDØˆHØ×"Ò" 4¨°DÀ8Ø*0ð #ñ 2ô 2ˆàˆŒ�TÐÐÐÐr.   r$  c                 ó‚   — t          | j        ¦  «        }| j                             dd|g¦  «         t	          |¦  «        S )z£
        Reserve an ID for an indirect object.

        The name is used for debugging in case we forget to print out
        the object with writeObject.
        Nr   )rz  ré  rê  r4   ró   )rø   rX   rö   s      r,   rñ  zPdfFile.reserveObject|  s<   € õ �$Ô"Ñ#Ô#ˆØŒ×Ò˜t Q¨˜oÑ.Ô.Ð.Ý˜‰}Œ}Ðr.   c                 ód   — | j                              ¦   «         | j        z
  | j        |         d<   d S ©Nr   )r†  r�  rí  rê  r÷   s     r,   r‰  zPdfFile.recordXref‡  s*   € Ø $¤§¢¡¤°´Ñ ?ˆŒ�rÔ˜1ÑÐÐr.   c                 óf   — |                       |j        ¦  «         |                     || ¦  «         d S rC   )r‰  rö   r  )rø   Úobjectr  s      r,   r”  zPdfFile.writeObjectŠ  s0   € Ø�Š˜œ	Ñ"Ô"Ð"Ø�Š�X˜tÑ$Ô$Ð$Ð$Ð$r.   c                 ó\  — | j                              ¦   «         | j        z
  | _        |                      dt          | j        ¦  «        z  ¦  «         t          | j        ¦  «        D ]F\  }\  }}}|€t          d||fz  ¦  «        ‚|dk    rdnd}d|||fz  }|                      |¦  «         ŒGdS )zWrite out the xref table.s
   xref
0 %d
NzNo offset for object %d (%s)rÇ  r<  r@  s   %010d %05d %b 
)	r†  r�  rí  Ú	startxrefr  r3   rê  r2   ÚAssertionError)rø   r9   ÚoffsetÚ
generationrX   rí  r0  s          r,   rX  zPdfFile.writeXrefŽ  sÌ   € àœŸš™œ¨$¬.Ñ8ˆŒØ�
Š
�?¥S¨¬Ñ%8Ô%8Ñ8Ñ9Ô9Ð9Ý-6°t´~Ñ-FÔ-Fð 	!ð 	!Ñ)ˆAÑ)�˜
 DØˆ~Ý$Ø2°a¸°YÑ>ñ@ô @ð @ð #Ð&7Ò7Ð7�d�d¸T�Ø*¨f°jÀ#Ð-FÑF�Ø—
’
˜4Ñ Ô Ð Ð ð	!ð 	!r.   c                 óz   — |                       d¦  «        | _        |                      | j        | j        ¦  «         dS )z8Write out the info dictionary, checking it for good formrq   N)rñ  Ú
infoObjectr”  rû  rü   s    r,   rW  zPdfFile.writeInfoDict›  s9   € ð ×,Ò,¨VÑ4Ô4ˆŒØ×Ò˜œ¨$¬-Ñ8Ô8Ð8Ð8Ð8r.   c                 óî   — |                       d¦  «         |                       t          t          | j        ¦  «        | j        | j        dœ¦  «        ¦  «         |                       d| j        z  ¦  «         dS )zWrite out the PDF trailer.s   trailer
)ÚSizeÚRootÚInfos   
startxref
%d
%%%%EOF
N)r  rÂ   r3   rê  rò  r  r  rü   s    r,   rY  zPdfFile.writeTrailer¡  s{   € ð 	�
Š
�<Ñ Ô Ð Ø�
Š
•7Ý˜œÑ(Ô(Ø”_Ø”_ð&ð &ñ'ô 'ñ 	(ô 	(ð 	(ð
 	�
Š
Ð0°4´>ÑAÑBÔBÐBÐBÐBr.   rC   rœ  )NNN©FN)r$  )4r  r  r  r  rù   r+  r3  rF  rb  rd  r  r$  r#  r"  rn  rM  r‚  r”  rN  r˜  r–  r½  rè  r=  rš  re  ru  rO  rP  r€  rQ  r–  rR  r±  r¸  rÈ  rã  rT  rî  rU  r÷  rV  r(  rŒ  rÿ  rñ  r‰  r”  rX  rW  rY  Ú__classcell__©r  s   @r,   rÅ  rÅ  ®  sC  ø€ € € € € ØÐðg9ð g9ð g9ð g9ð g9ð g9ðR"ð "ð "ð: .@Ð-?Ð-?ð -ð -ð -ð -ð*ð *ð *ð ð ð ðB	ð 	ð 	ð+ð +ð +ðð ð ð?ð ?ð ?ð ?ð&ð &ð &ð
 04ð ð ð ð ð ð
8ð 8ð 8ðð ð ð>ð ð ð<1ð 1ð 1ð*
ð 
ð 
ð8ð 8ð 8ðt=ð =ð =ð~ð ð ðÐð*{@ð {@ð {@ðz	ð ð ð2ð 2ð 2ðh
ð 
ð 
ðð ð ðð ð ð$$6ð $6ð $6ðLð ð ð.*:ð *:ð *:ðX
ð 
ð 
ðð ð ð.,ð ,ð ,ð:9ð 9ð 9ð 9ðv5ð 5ð 5ðð ð ð:ð ð ð,ð ð ðð ð ð* ðð ð ñ „\ðð	ð 	ð 	ð 	ð	ð 	ð 	ð 	ð@ð @ð @ð%ð %ð %ð!ð !ð !ð9ð 9ð 9ð	Cð 	Cð 	Cð 	Cð 	Cð 	Cð 	Cr.   rÅ  c                   ó¶   ‡ — e Zd Z ej        d¦  «        ZdZˆ fd„Zd„ Zdd„Z	d„ Z
dd„Zdd	„Zd
„ Z	 dd„Zd„ Zd„ Zdd„Zd„ Zddœd„Zd„ Zdd„Zd„ Zd„ Zˆ xZS )rw  zfonts/pdfcorefontsrq  c                 óš   •— t          ¦   «                              ||¦  «         || _        |                      ¦   «         | _        || _        d S rC   )rç  rù   r  Únew_gcr·   Ú	image_dpi)rø   r  r  rˆ   r‡   r  s        €r,   rù   zRendererPdf.__init__²  s>   ø€ Ý‰Œ×Ò˜ Ñ'Ô'Ð'ØˆŒ	Ø—+’+‘-”-ˆŒØ"ˆŒˆˆr.   c                 óR   —  | j         j        | j                             ¦   «         Ž  d S rC   )r  r$  r·   rb  rü   s    r,   rb  zRendererPdf.finalize¸  s(   € ØˆŒ	Ô˜$œ'×*Ò*Ñ,Ô,Ð-Ð-Ð-Ð-r.   Nc                 óÞ  — t          |dd¦  «        }||_        t          |dd¦  «        }|                     ¦   «         €|                     dd¬¦  «         |j        r|j        |j        f|_        nD|�t          |¦  «        dk     r|j        d	         d
f|_        n|j        d	         |d	         f|_        | j	         
                    |¦  «        }|r | j        j        |Ž  ||_        ||_        d S )NÚ
_fillcolor©r²  r²  r²  Ú_effective_alphas©r´  r´  rù  T)ÚisRGBArÆ  rê   r´  )rÚ  r  Úget_rgbÚset_foregroundÚ_forced_alphaÚ_alphar  r3   Ú_rgbr·   Údeltar  r$  )rø   r·   Ú	fillcolorÚ	orig_fillÚorig_alphasr#  s         r,   Úcheck_gczRendererPdf.check_gc»  sû   € Ý˜B ¨lÑ;Ô;ˆ	Ø!ˆŒå˜bÐ"5°zÑBÔBˆà�:Š:‰<Œ<Ðð ×Ò˜l°4ÐÑ8Ô8Ð8àÔð 	>Ø$&¤I¨r¬yÐ#9ˆBÔ Ð ØÐ¥# i¡.¤.°1Ò"4Ð"4Ø$&¤G¨A¤J°Ð#4ˆBÔ Ð à$&¤G¨A¤J°	¸!´Ð#=ˆBÔ à”—’˜bÑ!Ô!ˆØð 	%ØˆDŒIÔ˜eÐ$Ð$ð "ˆŒØ*ˆÔÐÐr.   c                 ó   — | j         dz  S )Nr‚  )r  rü   s    r,   Úget_image_magnificationz#RendererPdf.get_image_magnificationÖ  s   € ØŒ~˜dÑ"Ð"r.   c                 óº  — |j         d d…         \  }}|dk    s|dk    rd S |€|                     d¦  «         |                      |¦  «         d|z  | j        z  }d|z  | j        z  }| j                             |¦  «        }|€N| j                             t          j        |dd|||t          j	        |t          j
        t          j        ¦  «         d S |                     ¦   «                              ¦   «         \  }	}
}}}}| j                             t          j        dddd||t          j	        |	|
||||t          j	        |t          j
        t          j        ¦  «         d S )Nr¡  r   r´  r‚  r#   )r£  Ú	set_alphar'  r  r  r±  r$  r9  ro  ra  rb  rp  ÚfrozenÚ	to_values)rø   r·   rN   r†   r¶  r»  ÚhrK  ÚimobÚtr1Útr2Útr3Útr4Útr5Útr6s                  r,   Ú
draw_imagezRendererPdf.draw_imageÙ  sd  € ð Œx˜˜˜Œ|‰ˆˆ1Ø�Š6ˆ6�Q˜!’V�VØˆFàÐà�LŠL˜ÑÔÐà�Š�bÑÔÐà�1‰H�t”~Ñ%ˆØ�1‰H�t”~Ñ%ˆàŒy×$Ò$ RÑ(Ô(ˆàÐØŒI×Ò�RœXØ  1 a¨¨A­rÔ/?Ø!¥2¤>µ2´;ñ@ô @ð @ð @ð @ð ,5×+;Ò+;Ñ+=Ô+=×+GÒ+GÑ+IÔ+IÑ(ˆC��c˜3  SàŒI×Ò�RœXØ  1 a¨¨A­rÔ/?Ø  # s¨C°°c½2Ô;KØ!¥2¤>µ2´;ñ@ô @ð @ð @ð @r.   c                 ó"  — |                       ||¦  «         | j                             |||d u o|                     ¦   «         d u |                     ¦   «         ¦  «         | j                             | j                             ¦   «         ¦  «         d S rC   )r'  r  rÿ  Úget_hatch_pathÚget_sketch_paramsr$  r·   Úpaint)rø   r·   r\  r»  ÚrgbFaces        r,   Ú	draw_pathzRendererPdf.draw_path÷  s‰   € à�Š�b˜'Ñ"Ô"Ð"ØŒ	×ÒØ�)Ø�tˆOÐ; × 1Ò 1Ñ 3Ô 3°tÐ ;Ø× Ò Ñ"Ô"ñ	$ô 	$ð 	$ð 	Œ	×Ò˜œŸš™œÑ)Ô)Ð)Ð)Ð)r.   c                 ó`  — d}t          j        |¦  «        }t          j        |¦  «        }t          |¦  «        sd}|                     ¦   «          }n7t          j        |d d …df         |d         k    ¦  «        r|d         dk    }nd}t          |¦  «        sd}ndt          j        t          j        |	¦  «        dk    ¦  «        rd}n7t          j        |d d …df         |d         k    ¦  «        r|d         dk    }nd}t          |¦  «        dk    rt          |d         j        ¦  «        nd}|                      |||||¦  «        }||z   dz   ||z  k     }|r|s!t          j        | |||||||||	|
|||¦  «        S t          j	        |	¦  «        }g }t          |                      |||¦  «        ¦  «        D ]<\  }\  }}| j                             ||||||¦  «        }|                     |¦  «         Œ=| j        j        } || j                             ¦   «         Ž  d\  }}|                      |||||||	|
|||¦  «        D ]S\  }}}} }!|                      | |!¦  «         ||z
  ||z
  }#}" |d	ddd	|"|#t(          j        |t(          j        ¦	  «	         ||}}ŒT || j                             ¦   «         Ž  d S )
NTFrê   )r   rê   r²  r   rð  rW  r#   )rÓ   Úasarrayr3   Ú	get_hatchr²  r£   Ú_iter_collection_uses_per_pathr   Údraw_path_collectionrž   r2   Ú_iter_collection_raw_pathsr  r÷  r4   r$  r·   ÚpushÚ_iter_collectionr'  r9  ra  rb  Úpop)$rø   r·   Úmaster_transformr  Úall_transformsÚoffsetsÚoffset_transÚ
facecolorsÚ
edgecolorsÚ
linewidthsÚ
linestylesÚantialiasedsÚurlsÚoffset_positionÚcan_do_optimizationr`  ra  Úlen_pathÚuses_per_pathÚshould_do_optimizationr_  Ú
path_codesr9   r\  r»  rX   r$  ÚlastxÚlastyÚxoÚyoÚpath_idÚgc0r;  ÚdxÚdys$                                       r,   rA  z RendererPdf.draw_path_collection   s2  € ð #ÐÝ”Z 
Ñ+Ô+ˆ
Ý”Z 
Ñ+Ô+ˆ
å�:‰Œð 	,ØˆFØ&(§l¢l¡n¤nÐ"4ÐÐåŒv�j    A Ô&¨*°TÔ*:Ò:Ñ;Ô;ð ,Ø# DÔ)¨SÒ0��à&+Ð#å�:‰Œð 	,ØˆGˆGåŒv•b”j Ñ,Ô,°Ò3Ñ4Ô4ð ,Ø��Ý”˜
 1 1 1 a 4Ô(¨J°tÔ,<Ò<Ñ=Ô=ð ,Ø$ TÔ*¨cÒ1��à&+Ð#õ .1°©Z¬Z¸!ª^¨^•3�u˜Q”xÔ(Ñ)Ô)Ð)ÀˆØ×;Ò;Ø�> 7¨J¸
ñDô Dˆð �}Ñ$ qÑ(¨8°mÑ+CÒCð 	ð $ð 	!Ð-Cð 	!ÝÔ4Ø�bÐ*¨E°>Ø˜ z°:Ø˜J¨°dØñ	!ô !ð !õ ”&˜Ñ$Ô$ˆØˆ
Ý$-¨d×.MÒ.MØ  %¨ñ/9ô /9ñ %:ô %:ð 	$ð 	$Ñ ˆAÑ ��ià”9×1Ò1Ø�D˜) W¨f°gñ?ô ?ˆDà×Ò˜dÑ#Ô#Ð#Ð#à”Ô!ˆØˆ�”—’‘”ÐÐØ‰ˆˆuØ-1×-BÒ-BØ�J ¨Ø˜J¨
°JØ˜d Oñ.5ô .5ð 		"ð 		"Ñ)ˆB��G˜S 'ð
 �MŠM˜#˜wÑ'Ô'Ð'Ø˜%‘Z  e¡�ˆBØˆF�1�a˜˜A˜r 2¥rÔ'7¸Ý”>ñ#ô #ð #à˜r�5ˆEˆEØˆ�”—’‘”ÐÐÐÐr.   c                 ó¶  — t          |¦  «        }t          |¦  «        }||z  ||z   dz   k     rt          j        | ||||||¦  «         d S |                      ||¦  «         |                     |¦  «        }	|                     ¦   «         }
| j        j        }| j                             |||	|
| j	        j
        |                     ¦   «         |                     ¦   «         ¦  «        } |t          j        ¦  «         d\  }}|                     |dd| j        j        dz  | j        j        dz  fd¬¦  «        D ]�\  }}t          |¦  «        r||dd …         \  }}d|cxk    r| j        j        dz  k    rn nd|cxk    r| j        j        dz  k    sn Œ[||z
  ||z
  }} |dddd||t          j        |t          j        ¦	  «	         ||}}Œ‘ |t          j        ¦  «         d S )	Nrð  rW  r   r  F)rw  r‹  r  r#   )r3   r   Údraw_markersr'  r-   rT  r  r$  rî  r·   Ú
_linewidthrõ  rö  r9  ro  Úiter_segmentsr‡   rˆ   ra  rb  rp  )rø   r·   Úmarker_pathÚmarker_transr\  r]  r;  Úlen_marker_pathÚusesr-   rT  r$  ÚmarkerrV  rW  r£   ÚcoderN   r†   r\  r]  s                        r,   r_  zRendererPdf.draw_markersF  s  € õ
 ˜kÑ*Ô*ˆÝ�4‰yŒyˆØ˜TÑ! O°dÑ$:¸QÑ$>Ò>Ð>ÝÔ% d¨B°¸\Ø&*¨E°7ñ<ô <ð <àˆFà�Š�b˜'Ñ"Ô"Ð"Ø�wŠw�wÑÔˆØ—’‘”ˆà”Ô!ˆØ”×'Ò'Ø˜ t¨V°T´WÔ5GØ×ÒÑÔ §¢Ñ 1Ô 1ñ3ô 3ˆð 	ˆ�rŒxÑÔÐØ‰ˆˆuØ"×0Ò0ØØ˜˜DœIœO¨BÑ.°´	Ô0@ÀÑ0CÐDØð 1ñ  ô  ð 	$ð 	$‰NˆH�dõ �8‰}Œ}ð $Ø   ”}‘��1Ø˜QÐ6Ð6Ò6Ð6 $¤)¤/°BÑ"6Ò6Ð6Ð6Ð6Ð6Ø Ð;Ð;Ò;Ð; d¤iÔ&6¸Ñ&;Ò;Ð;Ð;Ð;ØØ˜U™ A¨¡I�B�Ø��q˜!˜Q  2 r­2Ô+;Ø�rœ~ñ/ô /ð /à  !�u�øØˆ�rŒ{ÑÔÐÐÐr.   c                 ó‚   — |                       ||                     d¦  «        |                     d¦  «        |¦  «         d S )N)r#   rê   r¡  )r#   rê   rÆ  )Údraw_gouraud_trianglesr¤  )rø   r·   r”  r•  r]  s        r,   Údraw_gouraud_trianglez!RendererPdf.draw_gouraud_trianglel  sJ   € Ø×#Ò# B¨¯ª°yÑ(AÔ(AØ$*§N¢N°9Ñ$=Ô$=¸uñ	Fô 	Fð 	Fð 	Fð 	Fr.   c                 óÔ  — t          |¦  «        t          |¦  «        k    sJ ‚t          |¦  «        dk    rd S |j        dk    sJ ‚|j        d         dk    sJ ‚|j        d         dk    sJ ‚|j        dk    sJ ‚|j        d         dk    sJ ‚|j        d         dv sJ ‚|j        }|                     |d         |d         z  df¦  «        }|                     |¦  «        }|                     |¦  «        }| j                             ||¦  «        \  }}| j        j        }	|j        d         dk    rB|                     d¦  «         |  	                    |¦  «          |	|t          j        ¦  «         d S |d         }
t          j        |
|d d …d d …df         ¦  «        rB|                     |
¦  «         |  	                    |¦  «          |	|t          j        ¦  «         d S |d d …d d …df         d d …d d …d f         }
| j                             ||
¦  «        \  }}| j                             |¦  «        } |	t          j        |t          j        |t          j        t          j        ¦  «         d S )Nr   rê   r#   r¡  r˜  r´  )r   r   rê   )r3   rµ  r£  r¤  r»  r  r–  r$  r+  r'  r9  rx  rÓ   Úallcloseru  ro  rn  rp  )rø   r·   r”  r•  r]  r£  ÚtpointsrX   râ  r$  rc  Úsmask_obÚgstates                r,   ri  z"RendererPdf.draw_gouraud_trianglesp  ss  € Ý�6‰{Œ{�c &™kœkÒ)Ð)Ð)Ð)Ýˆv‰;Œ;˜!ÒÐØˆFØŒ{˜aÒÐÐÐØŒ|˜AŒ !Ò#Ð#Ð#Ð#ØŒ|˜AŒ !Ò#Ð#Ð#Ð#ØŒ{˜aÒÐÐÐØŒ|˜AŒ !Ò#Ð#Ð#Ð#ØŒ|˜AŒ &Ð(Ð(Ð(Ð(à”ˆØ—’  q¤¨E°!¬HÑ!4°aÐ 8Ñ9Ô9ˆØ—/’/ &Ñ)Ô)ˆØ—/’/ %Ñ(Ô(ˆØ”)×/Ò/°¸Ñ@Ô@‰ˆˆaØ”Ô!ˆàŒ<˜Œ?˜aÒÐà�LŠL˜ÑÔÐØ�MŠM˜"ÑÔÐØˆF�4�œÑ$Ô$Ð$ØˆFà�w”ˆÝŒ;�u˜f Q Q Q¨¨¨¨1 WœoÑ.Ô.ð 	 à�LŠL˜ÑÔÐØ�MŠM˜"ÑÔÐØˆF�4�œÑ$Ô$Ð$Ð$Ð$ð ˜1˜1˜1˜a˜a˜a ˜7”O A A A q q q¨$ JÔ/ˆEØœ)×7Ò7¸ÀÑGÔG‰KˆAˆxØ”Y×/Ò/°Ñ9Ô9ˆFØˆF•2”8˜V¥R¤\Ø�œÝ”;ñ ô  ð  ð  ð  r.   r   c           	      óÜ  — ||cxk    rdk    r1n n.| j                              ||z
  ||z
  t          j        ¦  «         d S t	          j        |¦  «        }| j                              t	          j        |¦  «        t	          j        |¦  «        t	          j        |¦  «         t	          j        |¦  «        ||t          j        ¦  «         | j                              ddt          j        ¦  «         d S r  )	r  r$  r9  rq  r‚   rƒ   r…   r„   rs  )rø   rN   r†   r‰   ÚoldxÚoldyÚoldangles          r,   Ú_setup_textposzRendererPdf._setup_textpos˜  sÐ   € Ø�HÐ!Ð!Ò!Ð! Ò!Ð!Ð!Ð!Ð!ØŒI×Ò˜Q ™X q¨4¡xµ´Ñ<Ô<Ð<Ð<Ð<å”L Ñ'Ô'ˆEØŒI×Ò�TœX e™_œ_­d¬h°u©o¬oÝ"œh u™oœoÐ-­t¬x¸©¬Ø ¥2¤=ñ2ô 2ð 2ð ŒI×Ò˜Q ¥2¤:Ñ.Ô.Ð.Ð.Ð.r.   c                 ó¼  — | j         j                             |d|¦  «        \  }}}	}
}|                     ¦   «         �=| j        j        d         d                              t          ||||||¦  «        ¦  «         t          j	        d         }t          j        |¦  «        }| j                             t          j        ¦  «         | j                             t          j        |¦  «        t          j        |¦  «        t          j        |¦  «         t          j        |¦  «        ||t          j        ¦  «         |                      ||j        ¦  «         d}d\  }}g }| j                             t          j        ¦  «         |
D �]\  }}}}}| j        j                             ||¦  «         |j        }t1          ||¦  «        s|                     |||||f¦  «         Œ[|                      ||d||¦  «         ||}}||f|k    rB| j                             | j                             |¦  «        |t          j        ¦  «         ||f}| j                             |                      t;          |¦  «        |¦  «        t          j        ¦  «         �Œ
| j                             t          j        ¦  «         |D ]4\  }}}}}|                       ||| !                    |¦  «        ||¦  «         Œ5|D ]P\  }}}}| j                             t          j        ||||t          j"        t          j#        t          j$        ¦  «         ŒQ| j                             t          j$        ¦  «         d S )Nr  r¨  r#   rê  rœ  rW  r   )%Ú
_text2pathÚmathtext_parserÚparser¶   r  r  r4   r»   rg   rŠ  r‚   rƒ   r$  r9  ro  r…   r„   ra  r'  r"  r[  r  Útrack_glyphr€  rñ   rt  r‚  rr  Úencode_stringr&  rt  r\  Ú_draw_xobject_glyphr  r^  r-   rp  )rø   r·   rN   r†   r:   r¼  r‰   r‡   rˆ   ÚdescentÚglyphsÚrectsrï   rŒ   Ú	prev_fontrq  rr  Úunsupported_charsr¹  ÚfontsizeÚnumÚoxÚoyr¦  s                           r,   Údraw_mathtextzRendererPdf.draw_mathtext¢  sN  € ð ŒOÔ+×1Ò1°!°R¸Ñ>Ô>ñ 	.ˆˆv�w ¨ð �:Š:‰<Œ<Ð#ØŒIÔ" 2Ô& qÔ)×0Ò0Õ1EØ�A�q˜% ¨ñ20ô 20ñ 1ô 1ð 1õ ”< Ô/ˆõ ŒL˜ÑÔˆØŒ	×Ò�œÑ"Ô"Ð"ØŒ	×Ò�œ !™œ¥d¤h¨q¡k¤kÝœ( 1™+œ+˜¥t¤x°¡{¤{Ø˜A�rÔ/ñ	1ô 	1ð 	1ð 	�Š�b˜"œ'Ñ"Ô"Ð"Øˆ	Ø‰
ˆˆdØÐàŒ	×Ò�œÑ'Ô'Ð'Ø+1ð 	*ñ 	*Ñ'ˆD�(˜C  RØŒIÔ(×4Ò4°T¸3Ñ?Ô?Ð?Ø”zˆHÝ'¨°#Ñ6Ô6ð *ð "×(Ò(¨$°¸"¸bÀ#Ð)FÑGÔGÐGÐGà×#Ò# B¨¨A¨t°TÑ:Ô:Ð:Ø �d�Ø˜hÐ'¨9Ò4Ð4Ø”I×$Ò$ T¤Y×%7Ò%7¸Ñ%AÔ%AÀ8Ý%'¤]ñ4ô 4ð 4à (¨(Ð 2�IØ”	× Ò  ×!3Ò!3µC¸±H´H¸hÑ!GÔ!GÝ!#¤ñ*ô *ð *ñ *àŒ	×Ò�œÑ%Ô%Ð%à+<ð 	Bð 	BÑ'ˆD�(˜B  CØ×$Ò$Ø�h × 3Ò 3°CÑ 8Ô 8¸"¸bñBô Bð Bð Bð &+ð 	Að 	AÑ!ˆB��E˜6ØŒI×Ò�RœX r¨2¨u°fÝœ\­2¬7µB´KñAô Að Að Að 	Œ	×Ò�œÑ%Ô%Ð%Ð%Ð%r.   )Úmtextc          
      ó¢	  — |                       ¦   «         }|                     ¦   «         }	|                     ||	¦  «        }
t          j        |
d¦  «        5 }|\  }d d d ¦  «         n# 1 swxY w Y   |                     ¦   «         �G| j        j        d         d                              t          ||||j
        |j        |¦  «        ¦  «         d g }}|j        D ]U\  }}}}}||k    r*| j                             |¦  «        }|d||j        ggz  }|}|d||t          |g¦  «        g||z   ggz  }ŒVd\  }}}	|t!          |¦  «        dz
  k     �r|||dz   …         \  }}|d         dk    r	|d         }	nË|d         |d         cxk    rdk    r²n n¯|d         |d         k    r�|d	         |d         z
  }t#          |¦  «        d
k     rB|d         dxx         |d         d         z  cc<   |d	xx         |d	         |d         z
  z  cc<   n/|dxx         |dz  |	z  |d         d         gz  cc<   |d	         |d	<   ||dz   = �Œ|dz  }|t!          |¦  «        dz
  k     �°t%          ¦   «                              |¦  «                             ||¦  «        }|                      ||j        ¦  «         | j                             t0          j        ¦  «         d\  }}}}|D �]	}|d         dk    r3| j                             |d         |d         t0          j        ¦  «         ŒB|d         dk    r»|                     |d         |d         f¦  «        \  }}|                      |||||¦  «         ||}}t!          |d         ¦  «        dk    r2| j                             |d         d         t0          j        ¦  «         ŒÜ| j                             |d         t0          j        ¦  «         �Œ	J ‚| j                             t0          j        ¦  «         |                       ¦   «         }| !                    |¦  «         | "                    d¦  «         tF          j$        tF          j%        tF          j%        tF          j%        tF          j&        g}|j'        D ]O\  }}} }!tG          ||g||!z   |g||!z   || z   g||| z   gddgg|¦  «        }"|  (                    ||"||j        ¦  «         ŒPd S )Nr  r¨  r#   r¹  r0  )r   r   Nr¡  r   rÆ  gš™™™™™¹?rê   g     @�@rù  ))Úget_texmanagerÚget_size_in_pointsÚmake_dvir   ÚDvir¶   r  r  r4   r»   r‡   rˆ   r0  r”  ÚsizerÞ   r3   Úabsr   Ú
rotate_degrà   r'  r"  r$  r9  r[  rr  r»  rt  rt  ru  r\  r  Úcopy_propertiesÚset_linewidthr    ÚMOVETOÚLINETOÚ	CLOSEPOLYÚboxesr<  )#rø   r·   rN   r†   r:   r¼  r‰   r†  Ú
texmanagerr�  ÚdvifileÚdvir  ÚoldfontÚseqÚx1Úy1r„  rð   r‡   r…  r9   ÚcurxÚeltÚnxtr  ÚmytransÚcuryrq  rr  Úboxgcrì  r.  rK  r\  s#                                      r,   Údraw_texzRendererPdf.draw_texØ  s5  € à×(Ò(Ñ*Ô*ˆ
Ø×*Ò*Ñ,Ô,ˆØ×%Ò% a¨Ñ2Ô2ˆÝŒ[˜ "Ñ%Ô%ð 	¨Ø‰EˆDð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð �:Š:‰<Œ<Ð#ØŒIÔ" 2Ô& qÔ)×0Ò0Õ1EØ�A�q˜$œ* d¤k°5ñ2:ô 2:ñ ;ô ;ð ;ð ˜R�ˆØ-1¬Yð 	Bð 	BÑ)ˆB��G˜U EØ˜'Ò!Ð!Øœ)×/Ò/°Ñ8Ô8�Ø˜ ¨'¬,Ð7Ð8Ñ8�Ø!�Ø�V˜R ¥e¨U¨G¡n¤nÐ%5°r¸%±xÐ@ÐAÑAˆCˆCð
 'Ñˆˆ4�Ø•#�c‘(”(˜1‘*Šn‰nØ˜1˜Q˜q™S˜5”z‰HˆC�Ø�1Œv˜ÒÐØ˜qœ6��Ø�Q”˜3˜qœ6Ð+Ð+Ò+Ð+ VÒ+Ð+Ð+Ð+Ð+°°A´¸#¸a¼&Ò0@Ð0@Ø˜Qœ # a¤&™�Ý�v‘;”; Ò$Ð$Ø˜”F˜2�J�J”J # a¤&¨¤)Ñ+�J�J‘JØ˜�F�F”F˜c !œf S¨¤V™mÑ+�F�F‘F�Fà˜�F�F”F˜v f™}¨XÑ5°s¸1´v¸a´yÐAÑA�F�F‘FØ  œV�C˜‘FØ˜˜!™�HÙØ�‰FˆAð •#�c‘(”(˜1‘*Šn‰nõ" ‘*”*×'Ò'¨Ñ.Ô.×8Ò8¸¸AÑ>Ô>ˆð 	�Š�b˜"œ'Ñ"Ô"Ð"ØŒ	×Ò�œÑ'Ô'Ð'Ø!+Ñˆˆd�D˜$Øð 	ñ 	ˆCØ�1Œv˜ÒÐØ”	× Ò   Q¤¨¨Q¬µ´Ñ?Ô?Ð?Ð?Ø�Q”˜6Ò!Ð!Ø$×.Ò.°°A´¸¸A¼Ð/?Ñ@Ô@‘
��dØ×#Ò# D¨$°°t¸TÑBÔBÐBØ! 4�d�Ý�s˜1”v‘;”; !Ò#Ð#Ø”I×$Ò$ S¨¤V¨A¤Yµ´Ñ8Ô8Ð8Ð8à”I×$Ò$ S¨¤V­R¬[Ñ9Ô9Ð9Ñ9à�ØŒ	×Ò�œÑ%Ô%Ð%ð —’‘”ˆØ×Ò˜bÑ!Ô!Ð!Ø×Ò˜AÑÔÐÝ”;¥¤­T¬[½$¼+Ý”>ð#ˆà œJð 	:ð 	:‰LˆB��A�qÝ˜"˜b˜ B q¡D¨" :°°1±°b¸±d¨|¸bÀ"ÀQÁ$¸ZØ˜Q˜ð!Ø")ñ+ô +ˆDà�NŠN˜5 $¨°´Ñ9Ô9Ð9Ð9ð	:ð 	:s   ÁA%Á%A)Á,A)c                 ób   — |dv r|                      dd¦  «        S |                      dd¦  «        S )NrÊ  rú  re   r7  )rÛ   )rø   r:   rï   s      r,   rz  zRendererPdf.encode_string+	  s5   € Ø�vÐÐØ—8’8˜H iÑ0Ô0Ð0Ø�xŠx˜
 IÑ.Ô.Ð.r.   Fc	           
      óº	  ‡ ‡‡— ‰                       ||j        ¦  «         |r‰                      ||||||¦  «        S |                     ¦   «         Št          j        d         r‰                      |¦  «        }	dŠnG‰                      |¦  «        }	‰ j        j	         
                    |	|¦  «         t          j        d         Š|                     ¦   «         �o|	                     |¦  «         |	                     ¦   «         \  }
}‰ j        j        d         d                              t!          ||||
dz  |dz  |¦  «        ¦  «         ‰dvr¦‰ j                             t$          j        ‰ j                             |¦  «        ‰t$          j        ¦  «         ‰                      |||¦  «         ‰ j                             ‰                      |‰¦  «        t$          j        t$          j        ¦  «         d S g }g }d}|	}t5          j        ||	t8          ¬¦  «        D ]Ù}t;          ‰t=          |j        ¦  «        ¦  «        rŒ|s|j         |k    r)|                     |j         |j!        g f¦  «         |j         }|j"        r&|d         d	                              |j"        ¦  «         |d         d	                              |j        ¦  «         d
}Œ°|                     |j         |j!        |j#        f¦  «         d}ŒÚ‰ j                             t$          j$        ¦  «         tK          j&        |¦  «        }‰ j                             tK          j'        |¦  «        tK          j(        |¦  «        tK          j(        |¦  «         tK          j'        |¦  «        ||t$          j)        ¦  «         ‰ j                             t$          j        ¦  «         d}|D ]²\  }}}‰ j                             |j*        ¦  «        }‰ j                             |‰t$          j        ¦  «         ‰                      |dd|dd¦  «         ‰ j                             ˆˆˆ fd„tW          j,        |tZ          ¦  «        D ¦   «         t$          j.        ¦  «         |}Œ³‰ j                             t$          j        ¦  «         |D ]\  }}}‰  /                    |‰||d¦  «         Œ ‰ j                             t$          j0        ¦  «         d S )Nrq  r#   rê  r¨  r   )rê   rì   T)Ú	kern_moder¡  Fr   c                 ó¨   •— g | ]N\  }}|t           k    rd t          |¦  «        z  ‰z  n(‰                     d                     |¦  «        ‰¦  «        ‘ŒOS )iüÿÿr$  )rÒ   rz  rz  r5   )rF   Útpr!  r�  rï   rø   s      €€€r,   rÉ   z)RendererPdf.draw_text.<locals>.<listcomp>‡	  sk   ø€ ð Oð Oð Oá"˜˜Uð 8:½U²{°{�U�T %™[œ[Ñ(¨8Ñ3Ð3Ø×,Ò,¨R¯WªW°U©^¬^¸XÑFÔFðOð Oð Or.   )1r'  r"  r…  r‰  rg   rŠ  Ú_get_font_afmÚ_get_font_ttfr  r  Útrackr¶   Úset_textÚget_width_heightr  r4   r»   r$  r9  r[  r‚  rr  rt  rz  rt  r\  r	   Úlayoutr   rñ   r   ÚcharÚ	ft_objectrN   Ú	prev_kernÚ	glyph_idxro  r‚   rƒ   r…   r„   ra  r€  r    Úgroupbyrç   ru  r{  rp  )rø   r·   rN   r†   r:   r¼  r‰   Úismathr†  r¹  r‡   rˆ   Úsinglebyte_chunksÚmultibyte_glyphsÚprev_was_multibyter  ÚitemrŒ   Úprev_start_xr¯  Ústart_xÚkerns_or_charsÚft_namer±  r�  rï   s   `                       @@r,   Ú	draw_textzRendererPdf.draw_text0	  sÖ  øøø€ ð
 	�Š�b˜"œ'Ñ"Ô"Ð"Øð 	@Ø×%Ò% b¨!¨Q°°4¸Ñ?Ô?Ð?à×*Ò*Ñ,Ô,ˆåŒ<Ð,Ô-ð 	4Ø×%Ò% dÑ+Ô+ˆDØˆHˆHà×%Ò% dÑ+Ô+ˆDØŒIÔ(×.Ò.¨t°QÑ7Ô7Ð7Ý”| NÔ3ˆHà�:Š:‰<Œ<Ð#Ø�MŠM˜!ÑÔÐØ ×1Ò1Ñ3Ô3‰MˆE�6ØŒIÔ" 2Ô& qÔ)×0Ò0Õ1EØ�A�q˜% "™* f¨r¡k°5ñ2:ô 2:ñ ;ô ;ð ;ð
 ˜7Ð"Ð"ØŒI×Ò�Rœ]Ø!œY×/Ò/°Ñ5Ô5°xÅÄñPô Pð Pà×Ò  1 eÑ,Ô,Ð,ØŒI×Ò˜T×/Ò/°°8Ñ<Ô<ÝœW¥b¤kñ3ô 3ð 3ð 3ð 3ð$ !#Ðà!ÐØ!%ÐØˆIÝ%Ô,Ø�tÕ'7ð9ñ 9ô 9ð .ð .�å'¨µ#°d´i±.´.ÑAÔAð .Ø)ð 3¨T¬^¸yÒ-HÐ-HØ)×0Ò0°$´.À$Ä&È"Ð1MÑNÔNÐNØ$(¤N˜	Ø”~ð HØ)¨"Ô-¨aÔ0×7Ò7¸¼ÑGÔGÐGØ% bÔ)¨!Ô,×3Ò3°D´IÑ>Ô>Ð>Ø).Ð&Ð&à$×+Ò+Øœ¨¬°´Ð@ñô ð ð *.Ð&Ð&ð ŒI×Ò�RœXÑ&Ô&Ð&Ý”˜UÑ#Ô#ˆAØŒI×Ò�TœX a™[œ[­$¬(°1©+¬+Ý"œh q™kœk˜\­4¬8°A©;¬;Ø ¥2Ô#3ñ5ô 5ð 5ð
 ŒI×Ò�Rœ]Ñ+Ô+Ð+ØˆLØ6Gð 'ð 'Ñ2�	˜7 NØœ)×,Ò,¨Y¬_Ñ=Ô=�Ø”	× Ò  ¨(µB´MÑBÔBÐBØ×#Ò# G¨Q°°<ÀÀAÑFÔFÐFØ”	× Ò ðOð Oð Oð Oð Oð Oå&/Ô&7¸ÍÑ&MÔ&MðOñ Oô Oõ ”Kñ!ô !ð !ð  '��ØŒI×Ò�Rœ[Ñ)Ô)Ð)à1Að ð Ñ-�	˜7 IØ×(Ò(Ø˜x¨°G¸Qñô ð ð ð ŒI×Ò�Rœ[Ñ)Ô)Ð)Ð)Ð)r.   c                 ó.  — |                      |¦  «        }| j                             |j        |¦  «        }| j                             t
          j        d|z  ddd|z  ||t
          j        t          |¦  «        t
          j	        t
          j
        ¦  «         dS )z<Draw a multibyte character from a Type 3 font as an XObject.r÷  r   N)r¶  r  rè  r€  r$  r9  ro  ra  rW   rb  rp  )rø   r¹  r�  r±  rN   r†   rç  rX   s           r,   r{  zRendererPdf._draw_xobject_glyph”	  s…   € à×(Ò(¨Ñ3Ô3ˆ
ØŒy×0Ò0°´¸ZÑHÔHˆØŒ	×ÒÝŒHØ�HÑ˜a  E¨HÑ$4°a¸½BÔ<LÝ�‰JŒJ�œÝŒKñ		
ô 	
ð 	
ð 	
ð 	
r.   c                 ó*   — t          | j        ¦  «        S rC   )r%  r  rü   s    r,   r  zRendererPdf.new_gcŸ	  s   € å! $¤)Ñ,Ô,Ð,r.   rC   r­   r  )r  r  r  r   Ú_get_data_pathrx  Ú_use_afm_rc_namerù   rb  r'  r)  r6  r<  rA  r_  rj  ri  rt  r…  r¢  rz  r¼  r{  r  r  r  s   @r,   rw  rw  ­  sŒ  ø€ € € € € à(�EÔ(Ð)=Ñ>Ô>€MØ+Ðð#ð #ð #ð #ð #ð.ð .ð .ð+ð +ð +ð +ð6#ð #ð #ð@ð @ð @ð @ð<*ð *ð *ð *ðDð Dð DðN "ð$ð $ð $ð $ðLFð Fð Fð& ð & ð & ðP/ð /ð /ð /ð4&ð 4&ð 4&ðl ;?ð Q:ð Q:ð Q:ð Q:ð Q:ðf/ð /ð /ð
b*ð b*ð b*ð b*ðH	
ð 	
ð 	
ð-ð -ð -ð -ð -ð -ð -r.   rw  c            
       óà   ‡ — e Zd Zˆ fd„Zd„ Zd„ Zd„ Zd„ Zdddd	œZdddd
œZ	d„ Z
d„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zdefdefde
fdefdefdefdefdefdeff	Zd„ Zˆ fd „Zd!„ Zˆ xZS )"r%  c                 ó€   •— t          ¦   «                              ¦   «          d| _        d| _        || _        d | _        d S )Nr  r  )rç  rù   r  r  r  Úparent)rø   r  r  s     €r,   rù   zGraphicsContextPdf.__init__¦	  s:   ø€ Ý‰Œ×ÒÑÔÐØ)ˆŒØ!+ˆÔØˆŒ	ØˆŒˆˆr.   c                 óT   — t          | j        ¦  «        }|d= |d= t          |¦  «        S )Nr  rÃ  )râ   r¶  Úrepr)rø   r}   s     r,   rý   zGraphicsContextPdf.__repr__­	  s*   € Ý�”ÑÔˆØˆfˆIØˆhˆKÝ�A‰wŒwˆr.   c                 ó€   — | j         dk    o3| j        dk    o(t          | j        ¦  «        dk    p| j        d         dk    S )zÕ
        Predicate: does the path need to be stroked (its outline drawn)?
        This tests for the various conditions that disable stroking
        the path, in which case it would presumably be filled.
        r   rê   r²  )r`  r!  r3   r"  rü   s    r,   rT  zGraphicsContextPdf.stroke³	  sE   € ð ” !Ò#ð =¨¬°aªð =Ý�T”Y‘” 1Ò$Ð;¨¬	°!¬¸Ò(;ð	>r.   c                 ó”   — t          |¦  «        r	|d         }n| j        }| j        p"|duot          |¦  «        dk    p|d         dk    S )z¼
        Predicate: does the path need to be filled?

        An optional argument can be used to specify an alternative
        _fillcolor, as needed by RendererPdf.draw_markers.
        r   Nrê   r²  )r3   r  Ú_hatch)rø   Úargsr  s      r,   r-   zGraphicsContextPdf.fill¾	  s_   € õ ˆt‰9Œ9ð 	)Ø˜aœˆJˆJàœˆJØ”ð AØ 4Ð'ð @Ý�j‘/”/ QÒ&Ð>¨*°Q¬-¸3Ò*>ð	Br.   c                 ó€   — t                                |                      ¦   «         |                      ¦   «         ¦  «        S )zo
        Return the appropriate pdf operator to cause the path to be
        stroked, filled, or both.
        )r9  rW  r-   rT  rü   s    r,   r:  zGraphicsContextPdf.paintÍ	  s(   € õ
 �}Š}˜TŸYšY™[œ[¨$¯+ª+©-¬-Ñ8Ô8Ð8r.   r   r#   r¡  )Úbuttr!  Ú
projecting)Úmiterr!  Úbevelc                 ó4   — | j         |         t          j        gS rC   )ró  r9  rm  ©rø   Ústyles     r,   Úcapstyle_cmdzGraphicsContextPdf.capstyle_cmd×	  s   € Ø”˜uÔ%¥r¤}Ð5Ð5r.   c                 ó4   — | j         |         t          j        gS rC   )r&  r9  rl  rÐ  s     r,   Újoinstyle_cmdz GraphicsContextPdf.joinstyle_cmdÚ	  s   € Ø” Ô&­¬Ð7Ð7r.   c                 ó   — |t           j        gS rC   )r9  rv  )rø   r‡   s     r,   Úlinewidth_cmdz GraphicsContextPdf.linewidth_cmdÝ	  s   € Ø•r”Ð'Ð'r.   c                 óP   — |\  }}|€g }d}t          |¦  «        |t          j        gS r  )rã   r9  rk  )rø   Údashesr  Údashs       r,   Údash_cmdzGraphicsContextPdf.dash_cmdà	  s/   € Ø‰ˆ�Øˆ<ØˆDØˆFÝ�T‘
”
˜F¥B¤JÐ/Ð/r.   c                 óR   — | j                              |¦  «        }|t          j        gS rC   )r  re  r9  rn  )rø   rc  ÚforcedÚeffective_alphasrX   s        r,   Ú	alpha_cmdzGraphicsContextPdf.alpha_cmdç	  s%   € ØŒy×#Ò#Ð$4Ñ5Ô5ˆØ•b”lÐ#Ð#r.   c                 ó  — |s<| j         �|                      | j         ¦  «        S t          d¦  «        t          j        gS || j         |f}| j                             |¦  «        }t          d¦  «        t          j        |t          j        gS )Nr   rä  )r  Úfillcolor_cmdrW   r9  rh  r  r€  rj  )rø   r~  Úhatch_colorr{  rX   s        r,   Ú	hatch_cmdzGraphicsContextPdf.hatch_cmdë	  s�   € Øð 		1ØŒÐ*Ø×)Ò)¨$¬/Ñ:Ô:Ð:å˜[Ñ)Ô)­2Ô+EÐFÐFà&¨¬¸Ð?ˆKØ”9×)Ò)¨+Ñ6Ô6ˆDÝ˜‘O”O¥RÔ%?Ø�"Ô/ð1ð 1r.   c                 óÆ   — t           j        d         rg S |d         |d         cxk    r|d         k    rn n|d         t          j        gS g |d d…         ¢t          j        ‘S ©Nzpdf.inheritcolorr   r#   r¡  rê   )rg   rŠ  r9  rc  re  ©rø   r·  s     r,   Úrgb_cmdzGraphicsContextPdf.rgb_cmd÷	  sr   € ÝŒ<Ð*Ô+ð 	ØˆIØˆqŒ6�S˜”VÐ%Ð%Ò%Ð%˜s 1œvÒ%Ð%Ð%Ð%Ð%Ø˜”F�BÔ-Ð.Ð.à/�S˜˜!˜”WÐ/�bÔ.Ð/Ð/r.   c                 óÊ   — |�t           j        d         rg S |d         |d         cxk    r|d         k    rn n|d         t          j        gS g |d d…         ¢t          j        ‘S rä  )rg   rŠ  r9  rd  rf  rå  s     r,   rà  z GraphicsContextPdf.fillcolor_cmdÿ	  ss   € Øˆ;�#œ,Ð'9Ô:ˆ;ØˆIØ�ŒV�s˜1”vÐ'Ð'Ò'Ð'  Q¤Ò'Ð'Ð'Ð'Ð'Ø˜”F�BÔ0Ð1Ð1à2�S˜˜!˜”WÐ2�bÔ1Ð2Ð2r.   c                 ó”   — t          | j        ¦  «        }|                     | ¦  «         | j        |_        || _        t          j        gS rC   )r%  r  r�  rÃ  r9  ro  )rø   rÃ  s     r,   rC  zGraphicsContextPdf.push
  s?   € Ý# D¤IÑ.Ô.ˆØ×Ò˜tÑ$Ô$Ð$ØœˆŒØˆŒÝ”ˆzÐr.   c                 ó„   — | j         €J ‚|                      | j         ¦  «         | j         j         | _         t          j        gS rC   )rÃ  r�  r9  rp  rü   s    r,   rE  zGraphicsContextPdf.pop
  s<   € ØŒ{Ð&Ð&Ð&Ø×Ò˜Tœ[Ñ)Ô)Ð)Ø”kÔ(ˆŒÝ”ˆ}Ðr.   c                 ó¢  — g }| j         | j        f||fk    rI| j        �B|                     |                      ¦   «         ¦  «         | j         | j        f||fk    r| j        ­B| j         | j        f||fk    s| j        €Ô|                     |                      ¦   «         ¦  «         | j         |k    r7|                     |t          j        t          j        t          j	        g¦  «         | j        |k    r`| 
                    ¦   «         \  }}|                     t                               ||d¬¦  «        t          j        t          j	        gz   ¦  «         |S )z1Set clip rectangle. Calls `.pop()` and `.push()`.NFrŠ  )Ú	_cliprectÚ	_clippathrÃ  r³  rE  rC  r9  r^  rw  rU  Úget_transformed_path_and_affinerÅ  rŒ  )rø   ÚcliprectÚclippathrþ  r\  Úaffines         r,   Úclip_cmdzGraphicsContextPdf.clip_cmd
  s8  € àˆà” ¤Ð/°H¸hÐ3GÒGÐGØ”KÐ+Ø�KŠK˜Ÿš™
œ
Ñ#Ô#Ð#ð ” ¤Ð/°H¸hÐ3GÒGÐGØ”KÐ+ð Œ^˜Tœ^Ð,°¸8Ð0DÒDÐDØ”Ð#Ø�KŠK˜Ÿ	š	™œÑ$Ô$Ð$ØŒ~ Ò)Ð)Ø—’˜X¥r¤|µR´W½b¼jÐIÑJÔJÐJØŒ~ Ò)Ð)Ø'×GÒGÑIÔI‘��fØ—’Ý×*Ò*¨4°À%Ð*ÑHÔHÝ”W�bœjÐ)ñ*ñ+ô +ð +ð ˆr.   )rë  rì  )r!  r   r  )Ú	_capstyle©r  )Ú
_joinstyle)r`  )Ú_dashes)r"  ©rÈ  Ú_hatch_colorc           
      óD  ‡— g }d}| j         D �]\  }}d}|D ]¤}t          | |¦  «        }t          ‰|¦  «        }		 |�|	€||	u}nt          ||	k    ¦  «        }n`# t          $ rS t	          j        |¦  «        }t	          j        |	¦  «        }	|j        |	j        k    pt	          j        ||	k    ¦  «        }Y nw xY w|r nŒ¥|dk    r|rd}|rV|dk    rd}ˆfd„|D ¦   «         }	|                      || g|	¢R Ž ¦  «         |D ]!}t          | |t          ‰|¦  «        ¦  «         Œ"�Œ|S )z}
        Copy properties of other into self and return PDF commands
        needed to transform *self* into *other*.
        FNrö  Tró  c                 ó0   •— g | ]}t          ‰|¦  «        ‘ŒS rD   )rÚ  )rF   Úpr  s     €r,   rÉ   z,GraphicsContextPdf.delta.<locals>.<listcomp>V
  s#   ø€ Ð<Ð<Ð<°�' %¨Ñ+Ô+Ð<Ð<Ð<r.   )
ÚcommandsrÚ  rØ   rÖ   rÓ   r>  r£  Úanyr³  Úsetattr)
rø   r  rþ  Úfill_performedÚparamsÚcmdÚ	differentrú  ÚoursÚtheirss
    `        r,   r#  zGraphicsContextPdf.delta6
  s›  ø€ ð
 ˆØˆØœ=ð 	8ñ 	8‰KˆF�CØˆIØð ð �Ý˜t QÑ'Ô'�Ý  ¨Ñ*Ô*�ð	9Ø�| v ~Ø$(°Ð$6˜	˜	å$(¨°ªÑ$8Ô$8˜	øøÝ!ð 9ð 9ð 9Ýœ: dÑ+Ô+�DÝœZ¨Ñ/Ô/�FØ!%¤¨v¬|Ò!;ð "8Ý!#¤¨°ªÑ!7Ô!7ð �I�Ið9øøøð
 ð Ø�Eðð Ð3Ò3Ð3¸Ð3Ø �	àð 8Ø˜_Ò,Ð,Ø%)�NØ<Ð<Ð<Ð<°VÐ<Ñ<Ô<�Ø—’˜C˜C Ð. vÐ.Ð.Ð.Ñ/Ô/Ð/Øð 8ð 8�AÝ˜D !¥W¨U°AÑ%6Ô%6Ñ7Ô7Ð7Ð7ùØˆs   ºAÁAB4Â3B4c                 ó¾   •— t          ¦   «                              |¦  «         t          |d| j        ¦  «        }t          |d| j        ¦  «        }|| _        || _        dS )z5
        Copy properties of other into self.
        r  r  N)rç  r�  rÚ  r  r  )rø   r  r$  rÝ  r  s       €r,   r�  z"GraphicsContextPdf.copy_properties\
  s`   ø€ õ 	‰Œ×Ò Ñ&Ô&Ð&Ý˜E <°´ÑAÔAˆ	Ý" 5Ð*=Ø#'Ô#9ñ;ô ;Ðà#ˆŒØ!1ˆÔÐÐr.   c                 ót   — g }| j         �.|                     |                      ¦   «         ¦  «         | j         ­.|S )zB
        Make sure every pushed graphics state is popped.
        )rÃ  r³  rE  )rø   rþ  s     r,   rb  zGraphicsContextPdf.finalizeg
  s:   € ð ˆØŒkÐ%Ø�KŠK˜Ÿš™
œ
Ñ#Ô#Ð#ð ŒkÐ%àˆr.   )r  r  r  rù   rý   rT  r-   r:  ró  r&  rÒ  rÔ  rÖ  rÚ  rÞ  râ  ræ  rà  rC  rE  rñ  rû  r#  r�  rb  r  r  s   @r,   r%  r%  ¤	  sÅ  ø€ € € € € ðð ð ð ð ðð ð ð	>ð 	>ð 	>ðBð Bð Bð9ð 9ð 9ð  Q°aÐ8Ð8€IØ q°1Ð5Ð5€Jð6ð 6ð 6ð8ð 8ð 8ð(ð (ð (ð0ð 0ð 0ð$ð $ð $ð
1ð 
1ð 
1ð0ð 0ð 0ð3ð 3ð 3ðð ð ðð ð ðð ð ð, 
$ XÐ.Ø	9¸9ÐEØ	˜Ð&Ø	˜-Ð(Ø	˜-Ð(Ø	˜-Ð(Ø	�xÐ Ø	�GÐà	# YÐ/ð
€Hð$ð $ð $ðL	2ð 	2ð 	2ð 	2ð 	2ðð ð ð ð ð ð r.   r%  c                   óR   — e Zd ZdZdZdd„Zd„ Zd„ Zd„ Zd	„ Z	dd
„Z
d„ Zg d¢fd„ZdS )ÚPdfPagesa=  
    A multi-page PDF file.

    Examples
    --------
    >>> import matplotlib.pyplot as plt
    >>> # Initialize:
    >>> with PdfPages('foo.pdf') as pdf:
    ...     # As many times as you like, create a figure fig and save it:
    ...     fig = plt.figure()
    ...     pdf.savefig(fig)
    ...     # When no figure is specified the current figure is saved
    ...     pdf.savefig()

    Notes
    -----
    In reality `PdfPages` is a thin wrapper around `PdfFile`, in order to avoid
    confusion when using `~.pyplot.savefig` and forgetting the format argument.
    )Ú_fileÚ
keep_emptyTNc                 ó@   — t          ||¬¦  «        | _        || _        dS )aõ  
        Create a new PdfPages object.

        Parameters
        ----------
        filename : str or path-like or file-like
            Plots using `PdfPages.savefig` will be written to a file at this
            location. The file is opened at once and any older file with the
            same name is overwritten.

        keep_empty : bool, optional
            If set to False, then empty pdf files will be deleted automatically
            when closed.

        metadata : dict, optional
            Information dictionary object (see PDF reference section 10.2.1
            'Document Information Dictionary'), e.g.:
            ``{'Creator': 'My software', 'Author': 'Me', 'Title': 'Awesome'}``.

            The standard keys are 'Title', 'Author', 'Subject', 'Keywords',
            'Creator', 'Producer', 'CreationDate', 'ModDate', and
            'Trapped'. Values have been predefined for 'Creator', 'Producer'
            and 'CreationDate'. They can be removed by setting them to `None`.
        ©rn   N)rÅ  r  r	  )rø   r  r	  rn   s       r,   rù   zPdfPages.__init__‡
  s#   € õ2 ˜X°Ð9Ñ9Ô9ˆŒ
Ø$ˆŒˆˆr.   c                 ó   — | S rC   rD   rü   s    r,   Ú	__enter__zPdfPages.__enter__£
  s   € Øˆr.   c                 ó.   — |                       ¦   «          d S rC   )rd  )rø   Úexc_typeÚexc_valÚexc_tbs       r,   Ú__exit__zPdfPages.__exit__¦
  s   € Ø�
Š
‰Œˆˆˆr.   c                 ó  — | j                              ¦   «          | j                              ¦   «          |                      ¦   «         dk    r6| j        s/| j         j        s#t          j        | j         j        j	        ¦  «         d| _         dS )z_
        Finalize this object, making the underlying file a complete
        PDF file.
        r   N)
r  rb  rd  Úget_pagecountr	  rë  ra   Úremover†  rX   rü   s    r,   rd  zPdfPages.close©
  sy   € ð
 	Œ
×ÒÑÔÐØŒ
×ÒÑÔÐØ×ÒÑ Ô  AÒ%Ð%¨d¬oÐ%Ø”JÔ4ð &åŒI�d”j”mÔ(Ñ)Ô)Ð)ØˆŒ
ˆ
ˆ
r.   c                 ó   — | j         j        S )z™
        Return a modifiable information dictionary object
        (see PDF reference section 10.2.1 'Document Information
        Dictionary').
        )r  rû  rü   s    r,   ÚinfodictzPdfPages.infodictµ
  s   € ð ŒzÔ"Ð"r.   c                 ób  — t          |t          ¦  «        sZ|€t          j        ¦   «         }nt          j        |¦  «        }|€"t          d                     |¦  «        ¦  «        ‚|j        j        }	 |j        }t          |¦  «        |_         |j
        | fddi|¤Ž ||_        dS # ||_        w xY w)a5  
        Save a `.Figure` to this file as a new page.

        Any other keyword arguments are passed to `~.Figure.savefig`.

        Parameters
        ----------
        figure : `.Figure` or int, default: the active figure
            The figure, or index of the figure, that is saved to the file.
        NzNo figure {}ræ   rÐ  )rK   r   r   Ú
get_activeÚget_fig_managerrÖ   ræ   ÚcanvasÚfigureÚFigureCanvasPdfÚsavefig)rø   r  ÚkwargsÚmanagerÚorig_canvass        r,   r  zPdfPages.savefig½
  s½   € õ ˜&¥&Ñ)Ô)ð 	+Øˆ~Ýœ.Ñ*Ô*��åÔ-¨fÑ5Ô5�ØˆÝ  ×!6Ò!6°vÑ!>Ô!>Ñ?Ô?Ð?Ø”^Ô*ˆFð	(Ø œ-ˆKÝ+¨FÑ3Ô3ˆFŒMØˆFŒN˜4Ð8Ð8¨Ð8°Ð8Ð8Ð8à'ˆFŒMˆMˆMø˜KˆFŒMÐ'Ð'Ð'Ð's   Á1+B% Â%	B.c                 ó4   — t          | j        j        ¦  «        S )z=Return the current number of pages in the multipage pdf file.)r3   r  rô  rü   s    r,   r  zPdfPages.get_pagecountØ
  s   € å�4”:Ô&Ñ'Ô'Ð'r.   r,  c                 ó<   — | j                              ||¦  «         dS )z÷
        Add a new text note to the page to be saved next. The optional
        positionRect specifies the position of the new note on the
        page. It is outside the page per default to make sure it is
        invisible on printouts.
        N)r  r3  )rø   r0  r1  s      r,   Úattach_notezPdfPages.attach_noteÜ
  s"   € ð 	Œ
×Ò˜t \Ñ2Ô2Ð2Ð2Ð2r.   )TNrC   )r  r  r  r  r&  rù   r  r  rd  r  r  r  r$  rD   r.   r,   r  r  q
  s¸   € € € € € ðð ð& (€Ið%ð %ð %ð %ð8ð ð ðð ð ð
ð 
ð 
ð#ð #ð #ð(ð (ð (ð (ð6(ð (ð (ð .@Ð-?Ð-?ð 3ð 3ð 3ð 3ð 3ð 3r.   r  c                   ó>   ‡ — e Zd ZdZddiZd„ Zdddœd„Zˆ fd„Zˆ xZS )	r  r  rÐ  zPortable Document Formatc                 ó   — dS )NrÐ  rD   rü   s    r,   Úget_default_filetypez$FigureCanvasPdf.get_default_filetypeì
  s   € Øˆur.   N)Úbbox_inches_restorern   c                óþ  — | j         j        }d| j         _        | j                              ¦   «         \  }}t          |t          ¦  «        r|j        }nt          ||¬¦  «        }	 |                     ||¦  «         t          | j         |||t          ||||¦  «        |¬¦  «        }| j          
                    |¦  «         |                     ¦   «          t          |t          ¦  «        s|                     ¦   «          t          |t          ¦  «        r|                     ¦   «          d S |                     ¦   «          d S # t          |t          ¦  «        r|                     ¦   «          w |                     ¦   «          w xY w)Nr  r  )r(  )r  ÚdpiÚget_size_inchesrK   r  r  rÅ  r+  r   rw  Údrawrb  r"  rd  )	rø   r  r(  rn   r*  r‡   rˆ   r  Úrenderers	            r,   Ú	print_pdfzFigureCanvasPdf.print_pdfï
  sb  € ð ŒkŒoˆØˆŒŒØœ×3Ò3Ñ5Ô5‰ˆˆvÝ�h¥Ñ)Ô)ð 	8Ø”>ˆDˆDå˜8¨hÐ7Ñ7Ô7ˆDð	Ø�LŠL˜ Ñ'Ô'Ð'Ý(Ø”˜U F¨CÝ˜D # v¨uÑ5Ô5Ø$7ð9ñ 9ô 9ˆHð ŒK×Ò˜XÑ&Ô&Ð&Ø×ÒÑÔÐÝ˜h­Ñ1Ô1ð  Ø—’‘”�å˜(¥HÑ-Ô-ð Ø—’Ñ Ô Ð Ð Ð à—
’
‘”���øõ ˜(¥HÑ-Ô-ð Ø—’Ñ Ô Ð Ð à—
’
‘”��øøøs   Á$BD< Ä<A E<c                 óv   •— | j                              ¦   «          t          ¦   «                              ¦   «         S rC   )r  Údraw_without_renderingrç  r,  )rø   r  s    €r,   r,  zFigureCanvasPdf.draw	  s)   ø€ ØŒ×*Ò*Ñ,Ô,Ð,Ý‰wŒw�|Š|‰~Œ~Ðr.   )	r  r  r  Ú	fixed_dpiÚ	filetypesr'  r.  r,  r  r  s   @r,   r  r  æ
  sy   ø€ € € € € ð €IØÐ2Ð3€Iðð ð ð '+°Tðð ð ð ð ð4ð ð ð ð ð ð ð ð r.   r  c                   ó   — e Zd ZeZdS )Ú_BackendPdfN)r  r  r  r  ÚFigureCanvasrD   r.   r,   r4  r4    s   € € € € € à"€L€L€Lr.   r4  )r'   )r   )br  rÜ   r   Úenumr   Ú	functoolsr   Úior   r    Úloggingr‚   ra   r6  r¿  r@  ry   rŽ  r  r‹  ÚnumpyrÓ   ÚPILr   Ú
matplotlibrg   r   r	   r
   r   r   Úmatplotlib._pylab_helpersr   Úmatplotlib.backend_basesr   r   r   r   r   Ú!matplotlib.backends.backend_mixedr   Úmatplotlib.figurer   Úmatplotlib.font_managerr   r   ru  Úmatplotlib._afmr   Úmatplotlib.ft2fontr   r   r   r   r   r   Úmatplotlib.transformsr   r   Úmatplotlib.pathr    Úmatplotlib.datesr!   r"   r$  r$   Ú	getLoggerr  r{  r)  r-   r*   rs   r€   r‘   r©   r»   rL   Ú	maketransrá   rÂ   rñ   ró   rW   r+  r3  r9  r|  rÃ  rÅ  ÚRendererPDFPSBaserw  r%  r  r  ÚFigureManagerPdfÚexportr4  rD   r.   r,   ú<module>rL     s  ððð ð €€€Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø $Ð $Ð $Ð $Ð $Ð $Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ø €€€Ø €€€Ø 	€	€	€	Ø €€€Ø €€€Ø 
€
€
€
Ø €€€Ø €€€Ø €€€Ø €€€à Ð Ð Ð Ø Ð Ð Ð Ð Ð à Ð Ð Ð Ø FÐ FÐ FÐ FÐ FÐ FÐ FÐ FÐ FÐ FÐ FÐ FÐ FÐ FØ )Ð )Ð )Ð )Ð )Ð )ðð ð ð ð ð ð ð ð ð ð ð ð ð ð @Ð ?Ð ?Ð ?Ð ?Ð ?Ø $Ð $Ð $Ð $Ð $Ð $Ø IÐ IÐ IÐ IÐ IÐ IÐ IÐ IØ Ð Ð Ð Ð Ð ðLð Lð Lð Lð Lð Lð Lð Lð Lð Lð Lð Lð Lð Lð Lð Là 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ø  Ð  Ð  Ð  Ð  Ð  Ø  Ð  Ð  Ð  Ð  Ð  Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à€wÔ˜Ñ"Ô"€ðd €„�Ð$>Ð?Ñ?Ô?ð+ð +ð +ñ @Ô?ð+ðð ð ð ð,Tð Tð Tðnð ð ð0,ð ,ð ,ð ,ð"*ð *ð *ð *ð0ð ð ð ð4 �}Š}Ø
�u 5°¸UðDð Dñ Eô E€ðF,ð F,ð F,ðR ð  ð  ðð ð ð ð ñ ô ð ð. ð# ð # ð # ð # ð # ñ # ô # ñ „ð# ðL €„�ÑÔð
ð 
ð 
ð 
ð 
ñ 
ô 
ñ Ôð
ðð ð ð ð ñ ô ð ðC#ð C#ð C#ð C#ð C#ˆñ C#ô C#ð C#ðLZ$ð Z$ð Z$ð Z$ð Z$ñ Z$ô Z$ð Z$ðz+ð +ð +ð\|Cð |Cð |Cð |Cð |Cñ |Cô |Cð |Cð~'t-ð t-ð t-ð t-ð t-�/Ô3ñ t-ô t-ð t-ðnJð Jð Jð Jð JÐ,ñ Jô Jð JðZr3ð r3ð r3ð r3ð r3ñ r3ô r3ð r3ðj%ð %ð %ð %ð %Ð&ñ %ô %ð %ðP %Ð ð 
„ð#ð #ð #ð #ð #�(ñ #ô #ñ „ð#ð #ð #r.   