Ë
    íÍ:jæœ  ã                   ó.  — d dl Z d dlZd dl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mZ d dlZd dlmZ d dlZd dlmZmZ d dlmZmZmZmZ d dlmZ d dlmZmZ d d	lm Z  d d
l!m"Z" d dl#m$Z$ d dl%m&Z&  ejN                  e(«      Z)dZ*d„ Z+dZ,de,z  Z-dZ.de.z  Z/d„ Z0d„ Z1d„ Z2d„ Z3d„ Z4 G d„ de5«      Z6 G d„ d«      Z7 ejp                  d«      d„ «       Z9 G d„ de«      Z: G d„ d e«      Z;eZ<ejz                   G d!„ d"e«      «       Z> G d#„ d$«      Z?y)%é    N)ÚBytesIO)ÚTemporaryDirectory)ÚImage)ÚcbookÚfont_manager)Ú_BackendÚFigureCanvasBaseÚFigureManagerBaseÚRendererBase)ÚMixedModeRenderer)Ú_create_pdf_info_dictÚ_datetime_to_pdf)ÚPath)ÚFigure)ÚFontProperties)ÚGcfz\documentclass{article}c                  óP  — d„ } t        t        j                  d   ¬«      j                  «       }dj	                  dddd|z  d	d
|d|z  fz  ddt        j                  d   g	t        j                  d   rddg | «       ¢d‘ng ¢t        j
                  j                  dd¬«      ‘«      S )z=Prepare a LaTeX preamble based on the rcParams configuration.c               3   ó  K  — dD ]�  \  } }t        j                  |«      }t        j                  |«      }d| ›d|j                  ›d|j
                  j                  «       ›d|j                  dk(  rd|j                  d›�nd	›d
�	–— Œƒ y ­w)N))ÚsetmainfontÚserif)Úsetsansfontzsans\-serif)ÚsetmonofontÚ	monospacez  \ú{z}[Path=\detokenize{z/}z.ttcz,FontIndex=ÚdÚ ú])	ÚfmÚfindfontÚpathlibr   ÚnameÚparentÚas_posixÚsuffixÚ
face_index)ÚcommandÚfamilyÚ	font_pathÚpaths       út/home/mcse/projects/srt_converter/srt-converter-venv/lib/python3.12/site-packages/matplotlib/backends/backend_pgf.pyÚ_to_fontspecz#_get_preamble.<locals>._to_fontspec)   sƒ   è ø€ ð >ò 	Y‰OˆG�Vô Ÿ™ FÓ+ˆIÜ—<‘< 	Ó*‰Dâ˜Ÿ› D§K¡K×$8Ñ$8Õ$:Ø:>¿+¹+ÈÒ:O�+˜i×2Ñ2°1Ð5Ñ6ÐUWÑWðYó Yñ	Yùs   ‚BB
z	font.size)Úsizeú
z\def\mathdefault#1{#1}z4\everymath=\expandafter{\the\everymath\displaystyle}z\IfFileExists{scrextend.sty}{z'  \usepackage[fontsize=%fpt]{scrextend}z}{z:  \renewcommand{\normalsize}{\fontsize{%f}{%f}\selectfont}ç333333ó?z  \normalsizeú}zpgf.preambleúpgf.rcfontsz1\ifdefined\pdftexversion\else  % non-pdftex case.z  \usepackage{fontspec}z\fiÚ
underscoreÚstrings)Úoption)r   ÚmplÚrcParamsÚget_size_in_pointsÚjoinÚ
texmanagerÚ_usepackage_if_not_loaded)r+   Úfont_size_pts     r*   Ú_get_preambler;   '   sÕ   € òYô "¤s§|¡|°KÑ'@ÔA×TÑTÓV€LØ�9‰9ð 	"à?ð
 	)Ø2°\ÑAØØEØ˜˜|Ñ+Ð
,ñ	-àØä�‰�^Ñ$ð%ô. —|‘| MÒ2ð AØ&ðñ ‹^ðð ñ	ð 9;ð/ô2 	�‰×0Ñ0°ÀiÐ0ÓPð3ó ð ó    gRh�¸’VŒ?ç      ð?gÇqÇqŒ?c                 ó&   — | j                  dd«      S )zh
    Do some necessary and/or useful substitutions for texts to be included in
    LaTeX documents.
    u   âˆ’z\ensuremath{-})Úreplace)Útexts    r*   Ú_tex_escaperA   Y   s   € ð
 �<‰<Ð(Ð*;Ó<Ð<r<   c                 óH   — | j                  |«       | j                  d«       y )Nz%
)Úwrite)ÚfhÚlines     r*   Ú_writelnrF   a   s   € ð ‡H�HˆT„NØ‡H�HˆU…Or<   c                 óÊ  ‡— g }dddddœ}|j                  «       d   Š‰|v r|j                  |‰   «       n|t        j                  d   s|j                  d«       nWt	        ˆfd„t
        j                  j                  D «       «      r|j                  d	‰z  «       nt        j                  d
‰«       |j                  «       }|j                  d||dz  fz  «       ddddœ}|j                  ||j                  «          «       g d¢}|j                  «       |v r|j                  d«       |j                  d«       ddj                  |«      z   dz   dz   t        | «      z   dz   S )zƒ
    Generate a TeX string that renders string *s* with font properties *prop*,
    also applying any required escapes to *s*.
    z	\rmfamilyz	\sffamilyz	\ttfamily)r   Úsansz
sans-serifr   r   r0   z\fontfamily{\familydefault}c              3   ó<   •K  — | ]  }|j                   ‰k(  –— Œ y ­w©N)r!   )Ú.0Úfontr'   s     €r*   ú	<genexpr>z*_escape_and_apply_props.<locals>.<genexpr>v   s   øè ø€ ÒD TˆT�Y‰Y˜&Õ ÑDùs   ƒz9\ifdefined\pdftexversion\else\setmainfont{%s}\rmfamily\fizIgnoring unknown font: %sz\fontsize{%f}{%f}r.   r   z\itshapez\slshape)ÚnormalÚitalicÚoblique)ÚsemiboldÚdemiboldÚdemiÚboldÚheavyz
extra boldÚblackz	\bfseriesz\selectfontr   z1\catcode`\^=\active\def^{\ifmmode\sp\else\^{}\fi}z\catcode`\%=\active\def%{\%}r/   )Ú
get_familyÚappendr4   r5   Úanyr   ÚfontManagerÚttflistÚ_logÚwarningr6   Ú	get_styleÚ
get_weightr7   rA   )ÚsÚpropÚcommandsÚfamiliesr,   ÚstylesÚ
boldstylesr'   s          @r*   Ú_escape_and_apply_propsrf   h   s[  ø€ ð
 €Hà%¨|Ø*¸ñG€Hà�_‰_Ó˜qÑ!€FØ�ÑØ�‰˜ Ñ(Õ)Ü�\‰\˜-Ò(Ø�‰Ð6Õ7Ü	ÓD¬R¯^©^×-CÑ-CÔDÔ	DØ�‰ØHÈ6ÑQõ	Sô 	�‰Ð0°&Ô9à×"Ñ"Ó$€DØ‡O�OÐ(¨D°$¸±*Ð+=Ñ=Ô>à {¸{ÑK€FØ‡O�O�F˜4Ÿ>™>Ó+Ñ,Ô-ò)€Jà‡�Ó˜JÑ&Ø�‰˜Ô%à‡O�O�NÔ#àØ
�'‰'�(Ó
ñ	à
>ñ	?ð *ñ	*ô �a‹.ñ	ð ñ	ð
r<   c           	      ó  ‡ ‡— t        ‰t        j                  «      rt        ‰«      Šn,‰ dk(  r‰j                  j	                  d«      Šnt        ‰«      Šd}t        ˆ ˆfd„|D «       «      rt        d‰ ›d‰›d|› d�«      ‚‰ › d	‰› d
�S )z;Convert metadata key/value to a form that hyperref accepts.ÚTrappedÚasciiz\{}[]()c              3   ó,   •K  — | ]  }|‰‰z   v –— Œ y ­wrJ   © )rK   ÚcÚkeyÚvalues     €€r*   rM   z#_metadata_to_str.<locals>.<genexpr>¡   s   øè ø€ Ò
3 ˆ1�˜‘ÔÑ
3ùs   ƒzInvalid metadata value for z: z'. The value must not contain the chars ú.z={r/   )Ú
isinstanceÚdatetimer   r!   ÚdecodeÚstrrY   Ú
ValueError)rm   rn   Úinvalid_charss   `` r*   Ú_metadata_to_strrv   •   sš   ù€ ä�%œ×*Ñ*Ô+Ü  Ó'‰Ø	�	Ò	Ø—
‘
×!Ñ! 'Ó*‰ä�E“
ˆð €MÜ
Ô
3 ]Ô
3Ô3ÜØ)¨#¨°°5°)ð <4Ø4A°?À!ðEóFð 	Fð ˆU�#�e�W˜BÐÐr<   c                  óä   ‡ — 	 t        j                  d«       d„ S # t         j                  $ r Y nw xY w	 t        j                  d«      Š ˆ fd„S # t         j                  $ r Y t        d«      ‚w xY w)z9Return a function that converts a pdf file to a png file.Ú
pdftocairoc                 ó¢   — t        j                  dddddd|z  | t        j                  j	                  |«      d   gt         j
                  ¬«      S )	Nrx   z-singlefilez-transpz-pngz-rz%dr   ©Ústderr)Ú
subprocessÚcheck_outputÚosr)   ÚsplitextÚSTDOUT)ÚpdffileÚpngfileÚdpis      r*   ú<lambda>z+make_pdf_to_png_converter.<locals>.<lambda>°   sI   € ¬Z×-DÑ-DØ˜=¨)°V¸TÀ4È#Á:Ø”b—g‘g×&Ñ& wÓ/°Ñ2ð4ä×$Ñ$ô.&€ r<   Úgsc                 óŠ   •— t        j                  ‰j                  ddddddddd	d
d|z  d|z  | gt         j                  ¬«      S )Nz-dQUIETz-dSAFERz-dBATCHz	-dNOPAUSEz
-dNOPROMPTz-dUseCIEColorz-dTextAlphaBits=4z-dGraphicsAlphaBits=4z-dDOINTERPOLATEz-sDEVICE=pngalphaz-sOutputFile=%sz-r%drz   )r|   r}   Ú
executabler€   )r�   r‚   rƒ   Úgs_infos      €r*   r„   z+make_pdf_to_png_converter.<locals>.<lambda>¹   sV   ø€ ¬Z×-DÑ-DØ×ÑØ˜	 9¨k¸<ØÐ1Ø$Ð&7Ø Ð"3°gÑ"=Ø�c‰\˜7ð$ô ×$Ñ$ô.&€ r<   z&No suitable pdf to png renderer found.)r4   Ú_get_executable_infoÚExecutableNotFoundErrorÚRuntimeError)rˆ   s   @r*   Úmake_pdf_to_png_converterrŒ   ©   s�   ø€ ð&Ü× Ñ  Ô.ñ&ð 	&øô ×&Ñ&ò Ùðúð&Ü×*Ñ*¨4Ó0ˆó&ð 	&øô ×&Ñ&ò Øô Ð?Ó
@Ð@ðús   ƒ ›1°1µA ÁA/Á.A/c                   ó&   ‡ — e Zd Zdˆ fd„	Zd„ Zˆ xZS )Ú
LatexErrorc                 ó2   •— t         ‰| �  |«       || _        y rJ   )ÚsuperÚ__init__Úlatex_output)ÚselfÚmessager’   Ú	__class__s      €r*   r‘   zLatexError.__init__Å   s   ø€ Ü‰Ñ˜Ô!Ø(ˆÕr<   c                 ó^   — | j                   \  }| j                  r|d| j                  z   z  }|S ©Nr-   )Úargsr’   ©r“   r`   s     r*   Ú__str__zLatexError.__str__É   s0   € Ø�Y‰Y‰ˆØ×ÒØ�˜×)Ñ)Ñ)Ñ)ˆAØˆr<   )r   )Ú__name__Ú
__module__Ú__qualname__r‘   rš   Ú__classcell__©r•   s   @r*   rŽ   rŽ   Ä   s   ø„ õ)ör<   rŽ   c                   óš   — e Zd ZdZed„ «       Zed„ «       Ze ej                  d«      d„ «       «       Z
d„ Zd„ Zd„ Zd	„ Zd
dœd„Zd„ Zd„ Zy)ÚLatexManagerzÛ
    The LatexManager opens an instance of the LaTeX application for
    determining the metrics of text elements. The LaTeX environment can be
    modified by setting fonts and/or a custom preamble in `.rcParams`.
    c                  ót   — t         dt        j                  d   › �dt        «       ddg} dj	                  | «      S )Nz% !TeX program = úpgf.texsystemz\usepackage{graphicx}ú\begin{document}z!\typeout{pgf_backend_query_start}r-   )Ú_DOCUMENTCLASSr4   r5   r;   r7   )Úlatex_headers    r*   Ú_build_latex_headerz LatexManager._build_latex_header×   sC   € ô ð !¤§¡¨oÑ!>Ð ?Ð@à$Ü‹OØØ0ð

ˆð �y‰y˜Ó&Ð&r<   c                 ó@   — | j                  | j                  «       «      S )z„
        Return the previous LatexManager if the header and tex system did not
        change, or a new instance otherwise.
        )Ú_get_cached_or_new_implr§   )Úclss    r*   Ú_get_cached_or_newzLatexManager._get_cached_or_newæ   s   € ð ×*Ñ*¨3×+BÑ+BÓ+DÓEÐEr<   é   c                 ó   —  | «       S rJ   rk   )rª   Úheaders     r*   r©   z$LatexManager._get_cached_or_new_implî   s   € ñ ‹uˆr<   c                 ó  — | j                   €| j                  «        | j                   j                  j                  |«       | j                   j                  j                  d«       | j                   j                  j	                  «        y r—   )ÚlatexÚ_setup_latex_processÚstdinrC   Úflushr™   s     r*   Ú_stdin_writelnzLatexManager._stdin_writelnó   s^   € Ø�:‰:ÐØ×%Ñ%Ô'Ø�
‰
×Ñ×Ñ˜qÔ!Ø�
‰
×Ñ×Ñ˜tÔ$Ø�
‰
×Ñ×ÑÕ r<   c                 óP  — t        |«      }g }	 | j                  j                  j                  d«      }|j	                  |«       |t        |«       d  |k(  rn?|s<| j                  j                  «        d | _        t        ddj                  |«      «      ‚Œˆdj                  |«      S )Nr¬   zLaTeX process haltedr   )	Úlistr°   ÚstdoutÚreadrX   ÚlenÚkillrŽ   r7   )r“   r`   Úcharsrl   s       r*   Ú_expectzLatexManager._expectú   s’   € Ü�‹GˆØˆØØ—
‘
×!Ñ!×&Ñ& qÓ)ˆAØ�L‰L˜ŒOØ”c˜!“f�W�Xˆ !Ò#ØÙØ—
‘
—‘Ô!Ø!�”
Ü Ð!7¸¿¹À»ÓHÐHð ð �w‰w�u‹~Ðr<   c                 ó$   — | j                  d«      S )Nz
*)r¼   ©r“   s    r*   Ú_expect_promptzLatexManager._expect_prompt  s   € Ø�|‰|˜EÓ"Ð"r<   c                 óØ  — t        «       | _        | j                  j                  | _        t	        j
                  | | j                  j                  «      | _        | j                  d¬«       | j                  j                  d«      \  }}| j                  j                  dk7  rt        d| j                  «       › �|«      ‚d | _	        t        j                  | j                   «      | _        y )NF©Úexpect_replyz
\makeatletter\@@end
r   zaLaTeX errored (probably missing font or error in preamble) while processing the following input:
)r   Ú_tmpdirr!   ÚtmpdirÚweakrefÚfinalizeÚcleanupÚ_finalize_tmpdirr±   r°   ÚcommunicateÚ
returncoderŽ   r§   Ú	functoolsÚ	lru_cacheÚ_get_box_metrics)r“   r·   r{   s      r*   r‘   zLatexManager.__init__  sÇ   € ä)Ó+ˆŒØ—l‘l×'Ñ'ˆŒÜ '× 0Ñ 0°°t·|±|×7KÑ7KÓ LˆÔð 	×!Ñ!¨uÐ!Ô5ØŸ™×/Ñ/Ð0KÓL‰ˆ�Ø�:‰:× Ñ  AÒ%Üð:à×+Ñ+Ó-Ð.ð0ð ó	ð ð
 ˆŒ
ä )× 3Ñ 3°D×4IÑ4IÓ JˆÕr<   TrÁ   c                óJ  — 	 t        j                  t        j                  d   ddgt         j                  t         j                  d| j
                  ¬«      | _        d„ }t        j                  | || j                  «      | _        | j                  | j                  «       «       |r"| j                  d	«       | j!                  «        y y # t        $ r%}t        t        j                  d   ›d�«      |‚d }~wt        $ r%}t        dt        j                  d   ›�«      |‚d }~ww xY w)
Nr£   ú-halt-on-errorú-no-shell-escapeúutf-8)r²   r·   ÚencodingÚcwdz] not found; install it or change rcParams['pgf.texsystem'] to an available TeX implementationzError starting c                 ó„   — | j                  «        	 | j                  «        y # t        $ r | j                  «        Y y w xY wrJ   )rº   rÉ   r‹   Úwait)r°   s    r*   Úfinalize_latexz9LatexManager._setup_latex_process.<locals>.finalize_latex2  s4   € Ø�J‰JŒLðØ×!Ñ!Õ#øÜò Ø—
‘
–ðús   ’# £?¾?z*pgf_backend_query_start)r|   ÚPopenr4   r5   ÚPIPErÄ   r°   ÚFileNotFoundErrorr‹   ÚOSErrorrÅ   rÆ   Ú_finalize_latexr´   r§   r¼   r¿   )r“   rÂ   ÚerrrÖ   s       r*   r±   z!LatexManager._setup_latex_process  s  € ð	NÜ#×)Ñ)Ü—‘˜oÑ.Ð0@ÐBTÐUÜ —o‘o¬j¯o©oØ  d§k¡kô3ˆDŒJò	ô  '×/Ñ/Ø�. $§*¡*ó .ˆÔð 	×Ñ˜D×4Ñ4Ó6Ô7ÙØ�L‰LÐ3Ô4Ø×ÑÕ!ð øô) !ò 	ÜÜ—<‘< Ñ0Ð3ð 4Oð Póð ðûô ò 	NÜØ!¤#§,¡,¨Ñ"?Ð!BÐCóEØJMðNûð	Nús$   ‚AC Ã	D"Ã C1Ã1D"Ã= DÄD"c                 ó8   — | j                  t        ||«      «      S )z‡
        Get the width, total height, and descent (in TeX points) for a text
        typeset by the current LaTeX environment.
        )rÍ   rf   )r“   r@   ra   s      r*   Úget_width_height_descentz%LatexManager.get_width_height_descentA  s   € ð
 ×$Ñ$Ô%<¸TÀ4Ó%HÓIÐIr<   c                 óÆ  — | j                  d|z  «       	 | j                  «       }	 |j                  «       d   j                  d«      \  }}}t        |dd «      t        |dd «      t        |dd «      }	}}|||	z   |	fS # t        $ r+}t        dj	                  ||j
                  «      «      |‚d}~ww xY w# t        $ r!}t        dj	                  ||«      «      |‚d}~ww xY w)zŽ
        Get the width, total height and descent (in TeX points) for a TeX
        command's output in the current LaTeX environment.
        zW{\catcode`\^=\active\catcode`\%%=\active\sbox0{%s}\typeout{\the\wd0,\the\ht0,\the\dp0}}z#Error measuring {}
LaTeX Output:
{}Néýÿÿÿú,éþÿÿÿ)
r´   r¿   rŽ   rt   Úformatr’   Ú
splitlinesÚsplitÚ	ExceptionÚfloat)
r“   ÚtexÚanswerrÜ   ÚwidthÚheightÚoffsetÚwÚhÚos
             r*   rÍ   zLatexManager._get_box_metricsH  s  € ð 	×Ñð5àñô	ð	FØ×(Ñ(Ó*ˆFð	<ð %+×$5Ñ$5Ó$7¸Ñ$;×$AÑ$AÀ#Ó$FÑ!ˆE�6˜6ô ˜˜c˜r˜
Ó#¤U¨6°#°2¨;Ó%7¼¸vÀcÀr¸{Ó9Kˆaˆ1ˆð �!�a‘%˜ˆ{Ðøô ò 	Fô ÐDß$™f S¨#×*:Ñ*:Ó;ó=ØBEðFûð	Fûô ò 	<ÜÐDß$™f S¨&Ó1ó3Ø8;ð<ûð	<ús.   –A? §&B6 Á?	B3Â&B.Â.B3Â6	C Â?CÃC N)r›   rœ   r�   Ú__doc__Ústaticmethodr§   Úclassmethodr«   rË   rÌ   r©   r´   r¼   r¿   r‘   r±   rÞ   rÍ   rk   r<   r*   r¡   r¡   Ð   s…   „ ñð ñ'ó ð'ð ñFó ðFð Ø€Y×Ñ˜Óñó ó ðò!òò#òKð& 48ô !"òFJór<   r¡   r¬   c                  ó  — t         j                  «       } | j                  dt        j                  d«      j                  «       z  «       	 | j                  «        y# t        $ r! t         j                  j                  «        Y yw xY w)Nz&\includegraphics[interpolate=true]{%s}zimages/matplotlib.pngz\includegraphicsz	\pgfimage)
r¡   r«   r´   r   Ú_get_data_pathr#   r¿   rŽ   r©   Úcache_clear)Úmans    r*   Ú_get_image_inclusion_commandr÷   h  sx   € ä
×
)Ñ
)Ó
+€CØ×ÑØ1ä
×
Ñ
Ð6Ó
7×
@Ñ
@Ó
Bñ	CôDðØ×ÑÔØ"øÜò ä×,Ñ,×8Ñ8Ô:Ùðús   ÁA Á'BÂBc                   óŒ   ‡ — e Zd Zˆ fd„Z	 dd„Zdd„Zd„ Zd„ Zdd„Zdd„Z	d	„ Z
d
„ Zdd„Zddœd„Zdd„Zd„ Zd„ Zd„ Zd„ Zˆ xZS )ÚRendererPgfc                 ón   •— t         ‰| �  «        |j                  | _        || _        || _        d| _        y)a–  
        Create a new PGF renderer that translates any drawing instruction
        into text commands to be interpreted in a latex pgfpicture environment.

        Attributes
        ----------
        figure : `~matplotlib.figure.Figure`
            Matplotlib figure to initialize height, width and dpi from.
        fh : file-like
            File handle for the output of the drawing commands.
        r   N)r�   r‘   rƒ   rD   ÚfigureÚimage_counter)r“   rû   rD   r•   s      €r*   r‘   zRendererPgf.__init__z  s1   ø€ ô 	‰ÑÔØ—:‘:ˆŒØˆŒØˆŒØˆÕr<   Nc                 óP  — t        | j                  d«       d| j                  z  }| j                  |«       | j	                  ||«       |j                  |«      j                  «       \  }}	|d   |z  |d   |z  |	d   |z  |	d   |z  f}
t        | j                  d|
z  «       | j                  d ||«       | j                  |j                  «       dk7  |d u¬«       t        | j                  d«       d	| j                  z  }| | ||f}|j                  |d
|¬«      D ]r  \  }}|d   |z  |d   |z  }}t        | j                  d«       t        | j                  d||fz  «       t        | j                  d«       t        | j                  d«       Œt t        | j                  d«       y )Nú\begin{pgfscope}r=   r   r¬   zQ\pgfsys@defobject{currentmarker}{\pgfqpoint{%fin}{%fin}}{\pgfqpoint{%fin}{%fin}}{ç        ©ÚstrokeÚfillr/   ç†B^!Vl@F)ÚsimplifyÚclipú"\pgfsys@transformshift{%fin}{%fin}z"\pgfsys@useobject{currentmarker}{}ú\end{pgfscope})rF   rD   rƒ   Ú_print_pgf_clipÚ_print_pgf_path_stylesÚget_extentsÚ
get_pointsÚ_print_pgf_pathÚ_pgf_path_drawÚget_linewidthÚiter_segments)r“   ÚgcÚmarker_pathÚmarker_transr)   ÚtransÚrgbFaceÚfÚblÚtrÚcoordsÚmaxcoordr  ÚpointÚcodeÚxÚys                    r*   Údraw_markerszRendererPgf.draw_markers�  sµ  € ô 	�—‘Ð-Ô.ð �—‘‰Mˆð 	×Ñ˜RÔ Ø×#Ñ# B¨Ô0ð ×(Ñ(¨Ó6×AÑAÓC‰ˆˆBØ�A‘˜‘˜B˜q™E A™I r¨!¡u¨q¡y°"°Q±%¸!±)Ð;ˆÜ�—‘ðFØHNñOô	Pð 	×Ñ˜T ;°Ô=Ø×Ñ 2×#3Ñ#3Ó#5¸Ñ#<Ø!(°Ð!4ð 	ô 	6ä�—‘˜$Ôà  4§8¡8Ñ+ˆØ�	˜H˜9 h°Ð9ˆð  ×-Ñ-¨e¸eØ37ð .ó 9ò 	1‰KˆE�4à˜‘8˜a‘<  q¡¨A¡ˆqˆAÜ�T—W‘WÐ1Ô2Ü�T—W‘WÐCÀqÈ!ÀfÑLÔMÜ�T—W‘WÐCÔDÜ�T—W‘WÐ/Õ0ð	1ô 	�—‘Ð+Õ,r<   c                 ó*  — t        | j                  d«       | j                  |«       | j                  ||«       | j	                  ||||«       | j                  |j                  «       dk7  |d u¬«       t        | j                  d«       |j                  «       �ryt        | j                  d«       | j                  ||«       | j                  |«       | j	                  ||||«       t        | j                  d«       t        | j                  d«       t        | j                  d«       t        | j                  d«       t        | j                  d«       t        j                  j                  «       j                  | j                  «      }| j	                  d |j                  «       |«       | j                  d¬	«       t        | j                  d«       t        | j                  d
«       d| j                  z  }|j                  |«      j                  «       \  \  }}\  }	}
||z  ||	z  }	}||z  ||
z  }
}t!        j"                  |	|z
  «      t!        j"                  |
|z
  «      }}t        | j                  d||fz  «       t%        |«      D ]m  }t%        |«      D ].  }t        | j                  d«       t        | j                  d«       Œ0 t        | j                  d|z  «       t        | j                  d«       Œo t        | j                  d«       y y )Nrþ   rÿ   r   r  ú\pgfusepath{clip}zN\pgfsys@defobject{currentpattern}{\pgfqpoint{0in}{0in}}{\pgfqpoint{1in}{1in}}{z=\pgfpathrectangle{\pgfqpoint{0in}{0in}}{\pgfqpoint{1in}{1in}}T)r  r/   r=   r  z#\pgfsys@useobject{currentpattern}{}z \pgfsys@transformshift{1in}{0in}z"\pgfsys@transformshift{-%din}{0in}z \pgfsys@transformshift{0in}{1in})rF   rD   r  r	  r  r  r  Ú	get_hatchr4   Ú
transformsÚAffine2DÚscalerƒ   Úget_hatch_pathr
  r  ÚmathÚceilÚrange)r“   r  r)   Ú	transformr  r$  r  ÚxminÚyminÚxmaxÚymaxÚrepxÚrepyÚiyÚixs                  r*   Ú	draw_pathzRendererPgf.draw_path³  s«  € ä�—‘Ð-Ô.à×Ñ˜RÔ Ø×#Ñ# B¨Ô0Ø×Ñ˜R  y°'Ô:Ø×Ñ 2×#3Ñ#3Ó#5¸Ñ#<Ø!(°Ð!4ð 	ô 	6ä�—‘Ð+Ô,ð �<‰<�>Ü�T—W‘WÐ1Ô2Ø×'Ñ'¨¨GÔ4ð × Ñ  Ô$Ø× Ñ   T¨9°gÔ>Ü�T—W‘WÐ2Ô3ô �T—W‘WðFôGô �T—W‘WÐ1Ô2Ü�T—W‘WðEôFô �T—W‘WÐ2Ô3Ü—N‘N×+Ñ+Ó-×3Ñ3°D·H±HÓ=ˆEØ× Ñ   r×'8Ñ'8Ó':¸EÔBØ×Ñ tÐÔ,Ü�T—W‘WÐ/Ô0Ü�T—W‘W˜dÔ#à�T—X‘X‘ˆAà× Ñ  Ó+×6Ñ6Ó8ñ '‰LˆT�4™,˜4 à˜T™ 1 t¡8�$ˆDØ˜T™ 1 t¡8�$ˆDÜŸ™ 4¨$¡;Ó/´·±¸4À$¹;Ó1G�$ˆDÜ�T—W‘WØ:¸dÀD¸\ÑIôKä˜D“kò G�Ü ›+ò K�BÜ˜TŸW™WÐ&LÔMÜ˜TŸW™WÐ&IÕJðKô ˜Ÿ™Ð"GÈ$Ñ"NÔOÜ˜Ÿ™Ð"EÕFðGô �T—W‘WÐ/Õ0ðO r<   c                 óˆ  — d| j                   z  }|j                  «       }|rb|j                  «       \  }}||z
  \  }}|d   |z  |d   |z  ||z  ||z  f}t        | j                  d|z  «       t        | j                  d«       |j                  «       \  }	}
|	�*| j                  ||	|
«       t        | j                  d«       y y )Nr=   r   r¬   zA\pgfpathrectangle{\pgfqpoint{%fin}{%fin}}{\pgfqpoint{%fin}{%fin}}r   )rƒ   Úget_clip_rectangler  rF   rD   Úget_clip_pathr  )r“   r  r  ÚbboxÚp1Úp2rí   rî   r  ÚclippathÚclippath_transs              r*   r  zRendererPgf._print_pgf_clipè  sÑ   € Ø�—‘‰Mˆà×$Ñ$Ó&ˆÙØ—_‘_Ó&‰FˆB�Ø˜‘7‰DˆAˆqØ˜‘U˜Q‘Y  1¡¨¡	¨1¨q©5°!°a±%Ð7ˆFÜ�T—W‘WðIàñôô �T—W‘WÐ2Ô3ð $&×#3Ñ#3Ó#5Ñ ˆ�.ØÐØ× Ñ   X¨~Ô>Ü�T—W‘WÐ2Õ3ð  r<   c           	      óü  — ddddœ}t        | j                  ||j                  «          «       ddddœ}t        | j                  ||j                  «          «       |d u}|j	                  «       r|j                  «       x}}n*|j                  «       d	   }|rt        |«      d	kD  r|d	   nd
}|r;t        | j                  dt        |d d	 «      z  «       t        | j                  d«       |r|d
k7  rt        | j                  d|z  «       |j                  «       t        z  t        z  }|j                  «       }	t        | j                  d|z  «       t        | j                  d|	d d	 z  «       t        | j                  d«       |d
k7  rt        | j                  d|z  «       |j                  «       \  }
}|€t        | j                  d«       y t        | j                  ddj                  d„ |D «       «      |
fz  «       y )Nz\pgfsetbuttcapz\pgfsetroundcapz\pgfsetrectcap)ÚbuttÚroundÚ
projectingz\pgfsetmiterjoinz\pgfsetroundjoinz\pgfsetbeveljoin)Úmiterr=  Úbevelé   r=   z(\definecolor{currentfill}{rgb}{%f,%f,%f}z\pgfsetfillcolor{currentfill}ú\pgfsetfillopacity{%f}z\pgfsetlinewidth{%fpt}z*\definecolor{currentstroke}{rgb}{%f,%f,%f}z!\pgfsetstrokecolor{currentstroke}ú\pgfsetstrokeopacity{%f}z\pgfsetdash{}{0pt}z\pgfsetdash{%s}{%fpt}r   c              3   ó&   K  — | ]	  }d |z  –— Œ y­w)z{%fpt}Nrk   )rK   Údashs     r*   rM   z5RendererPgf._print_pgf_path_styles.<locals>.<genexpr>,  s   è ø€ ÒG°T 	¨DÕ 0ÑGùs   ‚)rF   rD   Úget_capstyleÚget_joinstyleÚget_forced_alphaÚ	get_alphaÚget_rgbr¹   Útupler  Úmpl_pt_to_inÚlatex_in_to_ptÚ
get_dashesr7   )r“   r  r  Ú	capstylesÚ
joinstylesÚhas_fillÚfillopacityÚstrokeopacityÚlwÚstroke_rgbaÚdash_offsetÚ	dash_lists               r*   r	  z"RendererPgf._print_pgf_path_stylesü  sß  € à.Ø0Ø#4ñ6ˆ	ô 	�—‘˜) B§O¡OÓ$5Ñ6Ô7ð  3Ø2Ø2ñ4ˆ
ô 	�—‘˜* R×%5Ñ%5Ó%7Ñ8Ô9ð  $Ð&ˆà×ÑÔ Ø*,¯,©,«.Ð8ˆK™-àŸJ™J›L¨™OˆMÙ(0´S¸³\ÀAÒ5E˜' !š*È3ˆKáÜ�T—W‘WØ@Ü˜W R a˜[Ó)ñ*ô+ô �T—W‘WÐ>Ô?Ù˜ sÒ*Ü�T—W‘WÐ7¸+ÑEÔFð ×ÑÓ¤,Ñ.´Ñ?ˆØ—j‘j“lˆÜ�—‘Ð3°bÑ8Ô9Ü�—‘Ø>Ø˜r �?ñ#ô	$ô 	�—‘Ð>Ô?Ø˜CÒÜ�T—W‘WÐ9¸MÑIÔJð "$§¡£Ñˆ�YØÐÜ�T—W‘WÐ3Õ4ä�T—W‘WØ-ØŸ™ÑG¸YÔGÓGØ#ð%ñ%õ&r<   c                 óv  — d| j                   z  }|r|j                  «       nd }d| j                   z  }|rR|€P|j                  «       \  }}	t        |d   | «      t        |d   | «      t	        |	d   |«      t	        |	d   |«      f}
n| | ||f}
|j                  ||
¬«      D �]`  \  }}|t        j                  k(  r0t        |«      \  }}t        | j                  d||z  ||z  fz  «       ŒJ|t        j                  k(  rt        | j                  d«       Œt|t        j                  k(  r0t        |«      \  }}t        | j                  d||z  ||z  fz  «       Œ·|t        j                  k(  r=t        |«      \  }}}}||z  ||z  ||z  ||z  f}t        | j                  d	|z  «       �Œ|t        j                  k(  s�Œt        |«      \  }}}}}}||z  ||z  ||z  ||z  ||z  ||z  f}t        | j                  d
|z  «       �Œc |r|j                  «       nd }|�ž|\  }}}|�•|dz  }|dz  }t        | j                  d«       t        | j                  d«       t        | j                  d||z  d›d||z  d›d�«       t        | j                  dt!        |«      › d�«       t        | j                  d«       y y y )Nr=   r  r   r¬   )r  z&\pgfpathmoveto{\pgfqpoint{%fin}{%fin}}z\pgfpathclosez&\pgfpathlineto{\pgfqpoint{%fin}{%fin}}zH\pgfpathquadraticcurveto{\pgfqpoint{%fin}{%fin}}{\pgfqpoint{%fin}{%fin}}zW\pgfpathcurveto{\pgfqpoint{%fin}{%fin}}{\pgfqpoint{%fin}{%fin}}{\pgfqpoint{%fin}{%fin}}g      à?é   z\usepgfmodule{decorations}z(\usepgflibrary{decorations.pathmorphing}z/\pgfkeys{/pgf/decoration/.cd, segment length = r  zin, amplitude = zin}z\pgfmathsetseed{r/   z%\pgfdecoratecurrentpath{random steps})rƒ   r4  r  ÚmaxÚminr  r   ÚMOVETOrK  rF   rD   Ú	CLOSEPOLYÚLINETOÚCURVE3ÚCURVE4Úget_sketch_paramsÚint)r“   r  r)   r)  r  r  r6  r  r7  r8  r  Úpointsr  r  r  ÚcxÚcyÚpxÚpyr  Úc1xÚc1yÚc2xÚc2yÚsketch_paramsr$  ÚlengthÚ
randomnesss                               r*   r  zRendererPgf._print_pgf_path/  sè  € Ø�—‘‰Mˆá*,ˆr×$Ñ$Ô&°$ˆØ  4§8¡8Ñ+ˆÙ�W�_Ø—_‘_Ó&‰FˆB�Ü˜˜1™ ˜yÓ)¬3¨r°!©u°x°iÓ+@Ü˜˜1™˜xÓ(¬#¨b°©e°XÓ*>ð@‰Dð �I ˜y¨(°HÐ=ˆDà ×.Ñ.¨y¸tÐ.ÓDó 	#‰LˆF�DØ”t—{‘{Ò"Ü˜V“}‘��1Ü˜Ÿ™ØBØ˜a™%  Q¡˜ñ(õ)ð œŸ™Ò'Ü˜Ÿ™Ð"2Õ3ØœŸ™Ò$Ü˜V“}‘��1Ü˜Ÿ™ØBØ˜a™%  Q¡˜ñ(õ)ð œŸ™Ò$Ü!& v£‘��B˜˜BØ˜a™  a¡¨¨a©°°a±Ð7�Ü˜Ÿ™ðMà!ñ"ö#ð œŸ™Ô$Ü-2°6«]Ñ*��S˜#˜s B¨Ø˜q™ #¨¡'¨3°©7°C¸!±G¸RÀ!¹VÀRÈ!ÁVÐK�Ü˜Ÿ™ð5ð "ñ	"ö#ð/	#ñ> 35˜×,Ñ,Ô.¸$ˆØÐ$ð )6Ñ%ˆE�6˜:ØÐ à˜#‘�Ø˜‘
�ä˜Ÿ™Ð"?Ô@Ü˜Ÿ™Ð"MÔNÜ˜Ÿ™ð #-Ø.4°q©j¸!Ð,<ð =(Ø).°©°A °dð#<ô =ô ˜Ÿ™Ð$6´s¸:³Ð6GÀrÐ"JÔKÜ˜Ÿ™Ð"JÕKð !ð %r<   c                 ó¤   — g }|r|j                  d«       |r|j                  d«       t        | j                  ddj                  |«      z  «       y )Nr  r  z\pgfusepath{%s}rá   )rX   rF   rD   r7   )r“   r  r  Úactionss       r*   r  zRendererPgf._pgf_path_drawq  sB   € ØˆÙØ�N‰N˜8Ô$ÙØ�N‰N˜6Ô"Ü�—‘Ð,¨s¯x©x¸Ó/@Ñ@ÕAr<   c                  ó   — y)NTrk   r¾   s    r*   Úoption_scale_imagezRendererPgf.option_scale_imagey  s   € àr<   c                 ó*   — t         j                  d    S )Nzimage.composite_image)r4   r5   r¾   s    r*   Úoption_image_nocompositez$RendererPgf.option_image_nocomposite}  s   € ä—<‘<Ð 7Ñ8Ð8Ð8r<   c                 ó  — |j                   d d \  }}|dk(  s|dk(  ry t        j                  j                  t	        | j
                  dd«      «      st        d«      ‚t        j                  | j
                  j                  «      }d|j                  | j                  fz  }	t        j                  |d d d…   «      j                  |j                  |	z  «       | xj                  dz  c_        t!        | j
                  d	«       | j#                  |«       d
| j$                  z  }
|€,t!        | j
                  d||
z  ||
z  fz  «       ||
z  ||
z  }}n`|j'                  «       j)                  «       \  }}}}}}t!        | j
                  d||
z  ||
z  ||
z  ||
z  ||z   |
z  ||z   |
z  fz  «       dx}}t+        |d u «      j-                  «       }t!        | j
                  dt/        «       ||||	fz  «       t!        | j
                  d«       y )NrY  r   r!   r   zXstreamed pgf-code does not support raster graphics, consider using the pgf-to-pdf optionz%s-img%d.pngéÿÿÿÿr¬   rþ   r=   r  z/\pgfsys@transformcm{%f}{%f}{%f}{%f}{%fin}{%fin}zD\pgftext[left,bottom]{%s[interpolate=%s,width=%fin,height=%fin]{%s}}r  )Úshaper~   r)   ÚexistsÚgetattrrD   rt   r    r   r!   Ústemrü   r   Ú	fromarrayÚsaver"   rF   r  rƒ   ÚfrozenÚ	to_valuesrs   Úlowerr÷   )r“   r  r  r  Úimr)  rî   rí   r)   Ú	fname_imgr  Útr1Útr2Útr3Útr4Útr5Útr6Úinterps                     r*   Ú
draw_imagezRendererPgf.draw_image�  sô  € ð �x‰x˜˜ˆ|‰ˆˆ1Ø�Š6�Q˜!’VØä�w‰w�~‰~œg d§g¡g¨v°rÓ:Ô;Üð.ó/ð /ô
 �|‰|˜DŸG™GŸL™LÓ)ˆØ" d§i¡i°×1CÑ1CÐ%DÑDˆ	Ü�‰˜™4˜R˜4™Ó!×&Ñ& t§{¡{°YÑ'>Ô?Ø×Ò˜aÑÕô 	�—‘Ð-Ô.Ø×Ñ˜RÔ Ø�—‘‰MˆØÐÜ�T—W‘WØ:¸aÀ!¹eÀQÈÁU¸^ÑKôMà�q‘5˜!˜a™%ˆq‰Aà+4×+;Ñ+;Ó+=×+GÑ+GÓ+IÑ(ˆC��c˜3  SÜ�T—W‘WØGØ˜A‘g˜s Q™w¨¨a©°°q±Ø˜Q‘w !‘m c¨A¡g°¡]ð4ñ4ô5ð ˆIˆA�Ü�Y $Ð&Ó'×-Ñ-Ó/ˆÜ�—‘ðDä.Ó0Ø˜!˜Q 	ð+ñ+ô	,ô
 	�—‘Ð+Õ,r<   )Úmtextc          
      ó6   — | j                  ||||||d|¬«       y )NÚTeX)ÚismathrŠ  )Ú	draw_text)r“   r  r  r  r`   ra   ÚanglerŠ  s           r*   Údraw_texzRendererPgf.draw_texª  s   € à�‰�r˜1˜a  D¨%¸ÀUˆÕKr<   c	                 óR  — t        ||«      }t        | j                  d«       | j                  |«       |j	                  «       }	|	dk7  r2t        | j                  d|	z  «       t        | j                  d|	z  «       t        |j                  «       «      d d }
t        | j                  d|
z  «       t        | j                  d«       t        | j                  d«       d	|z   }| j                  j                  }g }|r²|d
k(  s|j                  «       dk(  rš|j                  «       dk7  r‡|j                  «       }|j                  «       j                  |«      \  }}ddddœ}dddddœ}|j                  d||z  d›d�d||z  d›d�||j                  «          ||j                  «          g«       n |j!                  d||z  d›d||z  d›d�«       |d
k7  r|j!                  d|z  «       t        | j                  ddj#                  |«      ›d|›d�«       t        | j                  d «       y )!Nrþ   r=   rB  rC  rA  z&\definecolor{textcolor}{rgb}{%f,%f,%f}z\pgfsetstrokecolor{textcolor}z\pgfsetfillcolor{textcolor}z\color{textcolor}r   ÚanchorÚcenter_baselineÚleftÚrightr   )r”  r•  ÚcenterÚtopÚbottomÚbase)r—  r˜  Úbaseliner–  zx=r  Úinzy=zin, y=zin, left, basez	rotate=%fz	\pgftext[rá   z]{r/   r  )rf   rF   rD   r  rI  rK  rJ  rû   rƒ   Úget_rotation_modeÚget_verticalalignmentÚget_unitless_positionÚget_transformr)  ÚextendÚget_horizontalalignmentrX   r7   )r“   r  r  r  r`   ra   r�  r�  rŠ  ÚalphaÚrgbrƒ   Ú	text_argsÚposÚhalignÚvaligns                   r*   rŽ  zRendererPgf.draw_text®  s  € ô $ A tÓ,ˆä�—‘Ð-Ô.Ø×Ñ˜RÔ à—‘“ˆØ�CŠ<Ü�T—W‘WÐ7¸%Ñ?Ô@Ü�T—W‘WÐ9¸EÑAÔBÜ�B—J‘J“LÓ! " 1Ð%ˆÜ�—‘ÐCÀcÑIÔJÜ�—‘Ð:Ô;Ü�—‘Ð8Ô9Ø  1Ñ$ˆà�k‰k�o‰oˆØˆ	ÙØ˜!’Ø×(Ñ(Ó*¨hÒ6Ø×+Ñ+Ó-Ð1BÒBð ×-Ñ-Ó/ˆCØ×&Ñ&Ó(×2Ñ2°3Ó7‰DˆAˆqØ$¨wÀ"ÑEˆFØ"¨hØ"(°Bñ8ˆFà×ÑØ�Q�s‘U˜1�I˜RÐ Ø�Q�s‘U˜1�I˜RÐ Ø�u×4Ñ4Ó6Ñ7Ø�u×2Ñ2Ó4Ñ5ð	õ ð ×Ñ˜r ! C¡%¨ ¨&°°3±°q°	¸ÐHÔIà�AŠ:Ø×Ñ˜[¨5Ñ0Ô1ä�—’°·±¸)Õ1DÂaÐHÔIÜ�—‘Ð+Õ,r<   c                 ó”   — t         j                  «       j                  ||«      \  }}}t        | j                  z  }||z  ||z  ||z  fS rJ   )r¡   r«   rÞ   rL  rƒ   )r“   r`   ra   r�  rí   rî   r   r  s           r*   Úget_text_width_height_descentz)RendererPgf.get_text_width_height_descentÞ  sQ   € ô  ×2Ñ2Ó4ß,Ñ,¨Q°Ó5ñ 	ˆˆ1ˆaô
 ˜4Ÿ8™8Ñ#ˆØ�1‰u�a˜!‘e˜Q ™UÐ"Ð"r<   c                  ó   — y)NFrk   r¾   s    r*   ÚflipyzRendererPgf.flipyé  s   € àr<   c                 óž   — | j                   j                  «       | j                  z  | j                   j                  «       | j                  z  fS rJ   )rû   Úget_figwidthrƒ   Úget_figheightr¾   s    r*   Úget_canvas_width_heightz#RendererPgf.get_canvas_width_heightí  s>   € à—‘×(Ñ(Ó*¨T¯X©XÑ5Ø—‘×)Ñ)Ó+¨d¯h©hÑ6ð8ð 	8r<   c                 ó.   — |t         z  | j                  z  S rJ   )rL  rƒ   )r“   rc  s     r*   Úpoints_to_pixelszRendererPgf.points_to_pixelsò  s   € àœÑ$ t§x¡xÑ/Ð/r<   rJ   )TF)FN)r›   rœ   r�   r‘   r  r2  r  r	  r  r  rr  rt  r‰  r�  rŽ  r©  r«  r¯  r±  rž   rŸ   s   @r*   rù   rù   x  sg   ø„ ôð( "ó$-óL31òj4ò(1&óf@LóDBòò9ó'-ðR ;?ô Ló.-ò`	#òò8ö
0r<   rù   c                   óZ   ‡ — e Zd ZddddœZd„ Zddœd„Zd	„ Zdd
œd„Zd„ Zd„ Z	ˆ fd„Z
ˆ xZS )ÚFigureCanvasPgfzLaTeX PGF picturezLaTeX compiled PGF picturezPortable Network Graphics)ÚpgfÚpdfÚpngc                  ó   — y)Nrµ  rk   r¾   s    r*   Úget_default_filetypez$FigureCanvasPgf.get_default_filetypeü  s   € Ør<   N©Úbbox_inches_restorec          
      ó  — d}dg}t        «       j                  «       D ]  }|j                  d|z   «       Œ |j                  d«       dj                  |«      }| j                  j                  «       | j                  j                  «       }}| j                  j                  }|j                  |«       |j                  |«       |j                  d«       t        |d«       t        |d«       t        |d«       t        |d	||fz  «       t        |d
«       t        | j                  |||t        | j                  |«      |¬«      }	| j                  j                  |	«       t        |d«       t        |d«       t        |d«       y )NaÉ  %% Creator: Matplotlib, PGF backend
%%
%% To include the figure in your LaTeX document, write
%%   \input{<filename>.pgf}
%%
%% Make sure the required packages are loaded in your preamble
%%   \usepackage{pgf}
%%
%% Also ensure that all the required font packages are loaded; for instance,
%% the lmodern package is sometimes necessary when using math font.
%%   \usepackage{lmodern}
%%
%% Figures using additional raster images can only be included by \input if
%% they are in the same directory as the main LaTeX file. For loading figures
%% from other directories you can use the `import` package
%%   \usepackage{import}
%%
%% and then include the figures with
%%   \import{<path to file>}{<filename>.pgf}
%%
z)%% Matplotlib used the following preamblez%%   z%%r-   z\begingroupz\makeatletterz\begin{pgfpicture}z:\pgfpathrectangle{\pgfpointorigin}{\pgfqpoint{%fin}{%fin}}z&\pgfusepath{use as bounding box, clip}r¹  z\end{pgfpicture}z\makeatotherz	\endgroup)r;   rä   rX   r7   rû   r­  r®  rƒ   rC   rF   r   rù   Údraw)
r“   rD   rº  Úheader_textÚheader_info_preamblerE   rí   rî   rƒ   Úrenderers
             r*   Ú_print_pgf_to_fhz FigureCanvasPgf._print_pgf_to_fhÿ  sZ  € ðˆð. !LÐLÐÜ!“O×.Ñ.Ó0ò 	8ˆDØ ×'Ñ'¨°$©Õ7ð	8à×#Ñ# DÔ)Ø#Ÿy™yÐ)=Ó>Ðð �{‰{×'Ñ'Ó)¨4¯;©;×+DÑ+DÓ+Fˆ1ˆØ�k‰k�o‰oˆð 	�‰�ÔØ
�‰Ð%Ô&Ø
�‰�ŒÜ��^Ô$Ü�Ð%Ô&Ü�Ð*Ô+Ü�ØNØ�q�6ñô	ô 	�Ð>Ô?Ü$ T§[¡[°!°Q¸Ü%0°·±¸bÓ%AØ9LôNˆð 	�‰×Ñ˜Ô"ô 	�Ð(Ô)Ü��_Ô%Ü��\Õ"r<   c                 óä   — t        j                  |dd¬«      5 }t        j                  |«      s t        j                  d«      |«      } | j
                  |fi |¤Ž ddd«       y# 1 sw Y   yxY w)zy
        Output pgf macros for drawing the figure so it can be included and
        rendered in latex documents.
        rí   rÑ   ©rÒ   N)r   Úopen_file_cmÚfile_requires_unicodeÚcodecsÚ	getwriterrÀ  )r“   Úfname_or_fhÚkwargsÚfiles       r*   Ú	print_pgfzFigureCanvasPgf.print_pgf7  sg   € ô
 ×Ñ ¨S¸7ÔCð 	2ÀtÜ×.Ñ.¨tÔ4Ø0”v×'Ñ'¨Ó0°Ó6�Ø!ˆD×!Ñ! $Ñ1¨&Ò1÷	2÷ 	2ñ 	2ús   ™AA&Á&A/©Úmetadatac                óþ  — | j                   j                  «       \  }}t        d|xs i «      }dj                  d„ |j	                  «       D «       «      }t        «       5 }t        j                  |«      }	 | j                  |	dz  fi |¤Ž |	dz  j                  dj                  t        d|z  d||fz  d	t        «       d
dddg	«      d¬«       t        j                  d   }
t        j                  |
ddddgt         |¬«       |	dz  j#                  d«      5 }t        j$                  |d«      5 }t'        j(                  ||«       ddd«       ddd«       ddd«       y# 1 sw Y   ŒxY w# 1 sw Y   ŒxY w# 1 sw Y   yxY w)z3Use LaTeX to compile a pgf generated figure to pdf.r´  rá   c              3   ó:   K  — | ]  \  }}t        ||«      –— Œ y ­wrJ   ©rv   ©rK   ÚkÚvs      r*   rM   z,FigureCanvasPgf.print_pdf.<locals>.<genexpr>F  s#   è ø€ ò BÙ'+ q¨!Ô˜Q ×"ñBùó   ‚z
figure.pgfz
figure.texr-   ú#\usepackage[pdfinfo={%s}]{hyperref}ú8\usepackage[papersize={%fin,%fin}, margin=0in]{geometry}ú\usepackage{pgf}r¤   z
\centeringz\input{figure.pgf}z\end{document}rÑ   rÂ  r£   ú-interaction=nonstopmoderÏ   rÐ   ©rÓ   ú
figure.pdfÚrbÚwbN)rû   Úget_size_inchesr   r7   Úitemsr   r    r   rÊ  Ú
write_textr¥   r;   r4   r5   r   Ú_check_and_log_subprocessr\   ÚopenrÃ  ÚshutilÚcopyfileobj)r“   rÇ  rÌ  rÈ  rí   rî   Ú	info_dictÚpdfinforÄ   ÚtmppathÚ
texcommandÚorigÚdests                r*   Ú	print_pdfzFigureCanvasPgf.print_pdfA  sŽ  € à�{‰{×*Ñ*Ó,‰ˆˆ1ä)¨%°²¸RÓ@ˆ	Ø—(‘(ñ BØ/8¯©Ó/@ôBó Bˆô  Ó!ð 	/ VÜ—l‘l 6Ó*ˆGØˆD�N‰N˜7 \Ñ1Ñ<°VÒ<Ø�|Ñ#×/Ñ/Ø—	‘	Ü"Ø:¸WÑDØOØ˜!�fñà'Ü!“OØ'Ø!Ø)Ø%ðó ð %ð 0ô &ô Ÿ™ oÑ6ˆJÜ×+Ñ+ØÐ7Ð9IØ# \ð3Ü48¸fõFð ˜\Ñ)×/Ñ/°Ó5ð /¸Ü×$Ñ$ [°$Ó7ð/Ø;?Ü×"Ñ" 4¨Ô.÷/÷ /÷)	/ð 	/÷(/ð /ú÷ /ð /ú÷)	/ð 	/ús=   ÁB6E3ÄE'Ä+EÅE'Å
E3ÅE$Å E'Å'E0	Å,E3Å3E<c                 óÆ  — t        «       }t        «       5 }t        j                  |«      }|dz  }|dz  } | j                  |fi |¤Ž  |||| j
                  j                  ¬«       |j                  d«      5 }t        j                  |d«      5 }	t        j                  ||	«       ddd«       ddd«       ddd«       y# 1 sw Y   ŒxY w# 1 sw Y   ŒxY w# 1 sw Y   yxY w)z?Use LaTeX to compile a pgf figure to pdf and convert it to png.rÙ  z
figure.png)rƒ   rÚ  rÛ  N)rŒ   r   r    r   ré  rû   rƒ   rà  r   rÃ  rá  râ  )
r“   rÇ  rÈ  Ú	converterrÄ   rå  Úpdf_pathÚpng_pathrç  rè  s
             r*   Ú	print_pngzFigureCanvasPgf.print_pngb  sÐ   € ä-Ó/ˆ	ÜÓ!ð 	/ VÜ—l‘l 6Ó*ˆGØ Ñ-ˆHØ Ñ-ˆHØˆD�N‰N˜8Ñ. vÒ.Ù�h ¨d¯k©k¯o©oÕ>Ø—-‘- Ó%ð /¨Ü×$Ñ$ [°$Ó7ð/Ø;?Ü×"Ñ" 4¨Ô.÷/÷ /÷	/ð 	/÷/ð /ú÷ /ð /ú÷	/ð 	/ús<   •A#CÁ8CÂB?Â&CÂ.CÂ?CÃCÃC	ÃCÃC c                 ó.   — t        | j                  d «      S rJ   )rù   rû   r¾   s    r*   Úget_rendererzFigureCanvasPgf.get_renderero  s   € Ü˜4Ÿ;™;¨Ó-Ð-r<   c                 óT   •— | j                   j                  «        t        ‰| �  «       S rJ   )rû   Údraw_without_renderingr�   r¼  )r“   r•   s    €r*   r¼  zFigureCanvasPgf.drawr  s   ø€ Ø�‰×*Ñ*Ô,Ü‰w‰|‹~Ðr<   )r›   rœ   r�   Ú	filetypesr¸  rÀ  rÊ  ré  rî  rð  r¼  rž   rŸ   s   @r*   r³  r³  ÷  sG   ø„ Ø+Ø4Ø3ñ7€Iòð ;?ô 6#òp2ð 26ô /òB/ò.÷ð r<   r³  c                   ó   — e Zd ZeZy)Ú_BackendPgfN)r›   rœ   r�   r³  ÚFigureCanvasrk   r<   r*   rõ  rõ  z  s   „ à"�Lr<   rõ  c                   óH   — e Zd ZdZddœd„Zd„ Zd„ Zd„ Zd„ Zd	„ Z	dd
„Z
d„ Zy)ÚPdfPagesa�  
    A multi-page PDF file using the pgf backend

    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()
    NrË  c                ó¦   — || _         d| _        |xs i j                  «       | _        t	        d| j                  «      | _        t        «       | _        y)a©  
        Create a new PdfPages object.

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

        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`.

            Note that some versions of LaTeX engines may ignore the 'Producer'
            key and set it to themselves.
        r   r´  N)Ú_output_nameÚ
_n_figuresÚcopyÚ	_metadatar   Ú
_info_dictr   Ú_file)r“   ÚfilenamerÌ  s      r*   r‘   zPdfPages.__init__�  sB   € ð. %ˆÔØˆŒØ"š. b×.Ñ.Ó0ˆŒÜ/°°t·~±~ÓFˆŒÜ“Yˆ�
r<   c           	      ó  — dj                  d„ | j                  j                  «       D «       «      }dj                  t        d|z  d||fz  dt	        «       ddg«      }| j
                  j                  |j                  d	«      «       y )
Nrá   c              3   ó:   K  — | ]  \  }}t        ||«      –— Œ y ­wrJ   rÏ  rÐ  s      r*   rM   z)PdfPages._write_header.<locals>.<genexpr>­  s#   è ø€ ò HÙ'+ q¨!Ô˜Q ×"ñHùrÓ  r-   rÔ  rÕ  rÖ  z\setlength{\parindent}{0pt}z\begin{document}%rÑ   )r7   rþ  rÝ  r¥   r;   rÿ  rC   Úencode)r“   Úwidth_inchesÚheight_inchesrä  r¦   s        r*   Ú_write_headerzPdfPages._write_header¬  sˆ   € Ø—(‘(ñ HØ/3¯©×/DÑ/DÓ/FôHó Hˆà—y‘yÜØ2°WÑ<ØGØ˜]Ð+ñ,àÜ‹OØ*Ø ð	"
ó 	ˆð 	�
‰
×Ñ˜×,Ñ,¨WÓ5Õ6r<   c                 ó   — | S rJ   rk   r¾   s    r*   Ú	__enter__zPdfPages.__enter__»  s   € Øˆr<   c                 ó$   — | j                  «        y rJ   )Úclose)r“   Úexc_typeÚexc_valÚexc_tbs       r*   Ú__exit__zPdfPages.__exit__¾  s   € Ø�
‰
�r<   c                 ó¬   — | j                   j                  d«       | j                  dkD  r| j                  «        | j                   j	                  «        y)zƒ
        Finalize this object, running LaTeX in a temporary directory
        and moving the final pdf file to *filename*.
        s   \end{document}\nr   N)rÿ  rC   rû  Ú
_run_latexr
  r¾   s    r*   r
  zPdfPages.closeÁ  s=   € ð
 	�
‰
×ÑÐ-Ô.Ø�?‰?˜QÒØ�O‰OÔØ�
‰
×ÑÕr<   c                 ó†  — t         j                  d   }t        «       5 }t        j                  |d«      }|j                  | j                  j                  «       «       t        j                  |ddd|gt        |¬«       t        j                  |j                  d«      | j                  «       d d d «       y # 1 sw Y   y xY w)Nr£   zpdf_pages.texr×  rÏ   rÐ   rØ  z.pdf)r4   r5   r   r    r   Úwrite_bytesrÿ  Úgetvaluer   rß  r\   rá  ÚmoveÚwith_suffixrú  )r“   ræ  rÄ   Ú
tex_sources       r*   r  zPdfPages._run_latexË  s£   € Ü—\‘\ /Ñ2ˆ
ÜÓ!ð 	K VÜ Ÿ™ f¨oÓ>ˆJØ×"Ñ" 4§:¡:×#6Ñ#6Ó#8Ô9Ü×+Ñ+ØÐ7Ð9IØ# Zð1ä˜&õ"ô �K‰K˜
×.Ñ.¨vÓ6¸×8IÑ8IÔJ÷	K÷ 	Kñ 	Kús   žBB7Â7C c                 óÜ  — t        |t        «      sR|€t        j                  «       }nt        j                  |«      }|€t        d|› �«      ‚|j                  j                  }|j                  «       \  }}| j                  dk(  r| j                  ||«       n | j                  j                  d||fz  «        |j                  | j                  fdddœ|¤Ž | xj                  dz  c_	        y)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   s„   \newpage\ifdefined\pdfpagewidth\pdfpagewidth\else\pagewidth\fi=%fin\ifdefined\pdfpageheight\pdfpageheight\else\pageheight\fi=%fin%%
r´  )rã   Úbackendr¬   )rp   r   r   Ú
get_activeÚget_fig_managerrt   Úcanvasrû   rÜ  rû  r  rÿ  rC   Úsavefig)r“   rû   rÈ  Úmanagerrê   rë   s         r*   r  zPdfPages.savefigÖ  sØ   € ô ˜&¤&Ô)Øˆ~ÜŸ.™.Ó*‘ä×-Ñ-¨fÓ5�ØˆÜ  :¨f¨XÐ!6Ó7Ð7Ø—^‘^×*Ñ*ˆFà×.Ñ.Ó0‰ˆˆvØ�?‰?˜aÒØ×Ñ˜u fÕ-ð
 �J‰J×Ñðð ! &˜/ñ*ôð 	ˆ�‰�t—z‘zÐI¨%¸ÑIÀ&ÒIØ�Š˜1ÑŽr<   c                 ó   — | j                   S )z=Return the current number of pages in the multipage pdf file.)rû  r¾   s    r*   Úget_pagecountzPdfPages.get_pagecountú  s   € à�‰Ðr<   rJ   )r›   rœ   r�   rð   r‘   r  r  r  r
  r  r  r  rk   r<   r*   rø  rø    s6   „ ñð .2ô ò:7òòòò	Kó"óHr<   rø  )@rÅ  rq   rË   Úior   Úloggingr&  r~   r    rá  r|   Útempfiler   rÅ   ÚPILr   Ú
matplotlibr4   r   r   r   Úmatplotlib.backend_basesr   r	   r
   r   Ú!matplotlib.backends.backend_mixedr   Úmatplotlib.backends.backend_pdfr   r   Úmatplotlib.pathr   Úmatplotlib.figurer   Úmatplotlib.font_managerr   Úmatplotlib._pylab_helpersr   Ú	getLoggerr›   r\   r¥   r;   Úlatex_pt_to_inrM  rL  Úmpl_in_to_ptrA   rF   rf   rv   rŒ   ræ   rŽ   r¡   rÌ   r÷   rù   r³  ÚFigureManagerPgfÚexportrõ  rø  rk   r<   r*   ú<module>r1     s9  ðÛ Û Û Ý Û Û Û 	Û Û Û Ý 'Û å ã ß 0÷ó õ @÷-å  Ý $Ý 2Ý )à€w×Ñ˜Ó"€ð ,€ò'ðX €Ø�nÑ$€Ø€Ø�LÑ €ò=òò*òZ ò(Aô6	�ô 	÷Uñ Uðp €×Ñ�QÓñó ðô|0�,ô |0ô~}Ð&ô }ð@ %Ð ð 
‡�ô#�(ó #ó ð#÷}ò }r<   