Ë
    ¨eh�š  ã                   ó.  — 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                  óZ  — 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t        g d¢dD �cg c]*  }t        j                  t        j                  |«      «      ‘Œ, c}«      D ��cg c]3  \  }}d|›d|j                  ›d|j                  j                  «       ›d�‘Œ5 c}}z   dgz   ng ¢t        j                  j                  dd¬«      ‘«      S c c}w c c}}w )z=Prepare a LaTeX preamble based on the rcParams configuration.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})ÚsetmainfontÚsetsansfontÚsetmonofont)Úserifzsans\-serifÚ	monospacez  \ú{z}[Path=\detokenize{z/}]z\fiÚ
underscoreÚstrings)Úoption)r   ÚmplÚrcParamsÚget_size_in_pointsÚjoinÚzipÚpathlibr   ÚfmÚfindfontÚnameÚparentÚas_posixÚ
texmanagerÚ_usepackage_if_not_loaded)Úfont_size_ptÚfamilyÚcommandÚpaths       ú]/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/matplotlib/backends/backend_pgf.pyÚ_get_preambler4   '   sG  € ä!Ü�\‰\˜+Ñ&ôçÑÓð ð �9‰9ð 	"à?ð
 	)Ø2°\ÑAØØEØ˜˜|Ñ+Ð
,ñ	-àØä�‰�^Ñ$ð%!ô< Ÿ™ ]Ò3ð AØ&ð
ô "%Ú=àEöGØô —‘œbŸk™k¨&Ó1Õ2ò Gó"÷
ñ �™ò ˜Ÿ	›	 4§;¡;×#7Ñ#7Õ#9ò;ó
ñ
ð ˆHòð :<ð=!ô@ 	�‰×0Ñ0°ÀiÐ0ÓPðA!ó !ð !ùò6Gùó
s   Á?/D"Â88D'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    r3   Ú_tex_escaper9   X   s   € ð
 �<‰<Ð(Ð*;Ó<Ð<ó    c                 óH   — | j                  |«       | j                  d«       y )Nz%
)Úwrite)ÚfhÚlines     r3   Ú_writelnr?   `   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   r   z\fontfamily{\familydefault}c              3   ó<   •K  — | ]  }|j                   ‰k(  –— Œ y ­w©N)r*   )Ú.0Úfontr0   s     €r3   ú	<genexpr>z*_escape_and_apply_props.<locals>.<genexpr>u   s   øè ø€ ÒD TˆT�Y‰Y˜&Õ ÑDùs   ƒz9\ifdefined\pdftexversion\else\setmainfont{%s}\rmfamily\fizIgnoring unknown font: %sz\fontsize{%f}{%f}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Úappendr"   r#   Úanyr(   ÚfontManagerÚttflistÚ_logÚwarningr$   Ú	get_styleÚ
get_weightr%   r9   )ÚsÚpropÚcommandsÚfamiliesr   ÚstylesÚ
boldstylesr0   s          @r3   Ú_escape_and_apply_propsr`   g   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|› d�S )z;Convert metadata key/value to a form that hyperref accepts.ÚTrappedÚasciiz={r   )Ú
isinstanceÚdatetimer   r*   ÚdecodeÚstr)ÚkeyÚvalues     r3   Ú_metadata_to_strrj   ”   sT   € ä�%œ×*Ñ*Ô+Ü  Ó'‰Ø	�	Ò	Ø—
‘
×!Ñ! 'Ó*‰ä�E“
ˆØˆ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 )	Nrl   z-singlefilez-transpz-pngz-rz%dr   ©Ústderr)Ú
subprocessÚcheck_outputÚosr2   ÚsplitextÚSTDOUT)ÚpdffileÚpngfileÚdpis      r3   ú<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%drn   )rp   rq   Ú
executablert   )ru   rv   rw   Úgs_infos      €r3   rx   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.)r"   Ú_get_executable_infoÚExecutableNotFoundErrorÚRuntimeError)r|   s   @r3   Ú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 rC   )ÚsuperÚ__init__Úlatex_output)ÚselfÚmessager†   Ú	__class__s      €r3   r…   zLatexError.__init__»   s   ø€ Ü‰Ñ˜Ô!Ø(ˆÕr:   c                 ó^   — | j                   \  }| j                  r|d| j                  z   z  }|S ©Nr   )Úargsr†   ©r‡   rZ   s     r3   Ú__str__zLatexError.__str__¿   s0   € Ø�Y‰Y‰ˆØ×ÒØ�˜×)Ñ)Ñ)Ñ)ˆAØˆr:   )rG   )Ú__name__Ú
__module__Ú__qualname__r…   rŽ   Ú__classcell__©r‰   s   @r3   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   )Ú_DOCUMENTCLASSr"   r#   r4   r%   )Úlatex_headers    r3   Ú_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    r3   Ú_get_cached_or_newzLatexManager._get_cached_or_newÜ   s   € ð ×*Ñ*¨3×+BÑ+BÓ+DÓEÐEr:   é   c                 ó   —  | «       S rC   © )rž   Úheaders     r3   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Ústdinr<   Úflushr�   s     r3   Ú_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 haltedrG   )	Úlistr¥   ÚstdoutÚreadrR   ÚlenÚkillr‚   r%   )r‡   rZ   ÚcharsÚcs       r3   Ú_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    r3   Ú_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¬   ro   s      r3   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                óH  — 	 t        j                  t        j                  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ú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rC   )r¯   r¿   r   Úwait)r¥   s    r3   Úfinalize_latexz9LatexManager._setup_latex_process.<locals>.finalize_latex(  s4   € Ø�J‰JŒLðØ×!Ñ!Õ#øÜò Ø—
‘
–ðús   ’# £?¾?z*pgf_backend_query_start)rp   ÚPopenr"   r#   ÚPIPErº   r¥   ÚFileNotFoundErrorr   ÚOSErrorr»   r¼   Ú_finalize_latexr©   r›   r²   rµ   )r‡   r¸   ÚerrrË   s       r3   r¦   z!LatexManager._setup_latex_process  s  € ð	NÜ#×)Ñ)Ü—‘˜oÑ.Ð0@ÐAÜ —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!Ã C0Ã0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Ã   r`   )r‡   r8   r[   s      r3   Úget_width_height_descentz%LatexManager.get_width_height_descent7  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‚   Ú
ValueErrorÚformatr†   Ú
splitlinesÚsplitÚ	ExceptionÚfloat)
r‡   ÚtexÚanswerrÑ   ÚwidthÚheightÚoffsetÚwÚhÚos
             r3   rÃ   zLatexManager._get_box_metrics>  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Ã   r¢   r:   r3   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    r3   Ú_get_image_inclusion_commandrí   ^  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…   rw   r=   ÚfigureÚimage_counter)r‡   rñ   r=   r‰   s      €r3   r…   zRendererPgf.__init__p  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}r5   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})r?   r=   rw   Ú_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_transr2   ÚtransÚrgbFaceÚfÚblÚtrÚcoordsÚmaxcoordrû   ÚpointÚcodeÚxÚys                    r3   Ú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   r5   rü   z#\pgfsys@useobject{currentpattern}{}z \pgfsys@transformshift{1in}{0in}z"\pgfsys@transformshift{-%din}{0in}z \pgfsys@transformshift{0in}{1in})r?   r=   rþ   rÿ   r  r  r  Ú	get_hatchr"   Ú
transformsÚAffine2DÚscalerw   Úget_hatch_pathr   r  ÚmathÚceilÚrange)r‡   r  r2   Ú	transformr
  r  r  ÚxminÚyminÚxmaxÚymaxÚrepxÚrepyÚiyÚixs                  r3   Ú	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 )Nr5   r   r    zA\pgfpathrectangle{\pgfqpoint{%fin}{%fin}}{\pgfqpoint{%fin}{%fin}}r  )rw   Úget_clip_rectangler  r?   r=   Úget_clip_pathr  )r‡   r  r  ÚbboxÚp1Úp2rã   rä   r  ÚclippathÚclippath_transs              r3   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)Úmiterr3  Úbevelé   r5   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}rG   c              3   ó&   K  — | ]	  }d |z  –— Œ y­w)z{%fpt}Nr¢   )rD   Údashs     r3   rF   z5RendererPgf._print_pgf_path_styles.<locals>.<genexpr>"  s   è ø€ ÒG°T 	¨DÕ 0ÑGùs   ‚)r?   r=   Úget_capstyleÚget_joinstyleÚget_forced_alphaÚ	get_alphaÚget_rgbr®   Útupler  Úmpl_pt_to_inÚlatex_in_to_ptÚ
get_dashesr%   )r‡   r  r
  Ú	capstylesÚ
joinstylesÚhas_fillÚfillopacityÚstrokeopacityÚlwÚstroke_rgbaÚdash_offsetÚ	dash_lists               r3   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 )Nr5   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})rw   r*  r  ÚmaxÚminr  r   ÚMOVETOrA  r?   r=   Ú	CLOSEPOLYÚLINETOÚCURVE3ÚCURVE4Úget_sketch_paramsÚint)r‡   r  r2   r  r
  r  r,  r  r-  r.  rû   Úpointsr  r  r  ÚcxÚcyÚpxÚpyr  Úc1xÚc1yÚc2xÚc2yÚsketch_paramsr  ÚlengthÚ
randomnesss                               r3   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Ö   )rR   r?   r=   r%   )r‡   r÷   rø   Úactionss       r3   r  zRendererPgf._pgf_path_drawg  sB   € ØˆÙØ�N‰N˜8Ô$ÙØ�N‰N˜6Ô"Ü�—‘Ð,¨s¯x©x¸Ó/@Ñ@ÕAr:   c                  ó   — y)NTr¢   r´   s    r3   Úoption_scale_imagezRendererPgf.option_scale_imageo  s   € àr:   c                 ó*   — t         j                  d    S )Nzimage.composite_image)r"   r#   r´   s    r3   Úoption_image_nocompositez$RendererPgf.option_image_nocomposites  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 )NrO  r   r*   rG   zXstreamed pgf-code does not support raster graphics, consider using the pgf-to-pdf optionz%s-img%d.pngéÿÿÿÿr    rô   r5   rü   z/\pgfsys@transformcm{%f}{%f}{%f}{%f}{%fin}{%fin}zD\pgftext[left,bottom]{%s[interpolate=%s,width=%fin,height=%fin]{%s}}rý   )Úshaperr   r2   ÚexistsÚgetattrr=   rØ   r'   r   r*   Ústemrò   r   Ú	fromarrayÚsaver+   r?   rþ   rw   ÚfrozenÚ	to_valuesrg   Úlowerrí   )r‡   r  r  r  Úimr  rä   rã   r2   Ú	fname_imgr  Útr1Útr2Útr3Útr4Útr5Útr6Úinterps                     r3   Ú
draw_imagezRendererPgf.draw_imagew  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  rZ   r[   Úangler€  s           r3   Ú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ô   r5   r8  r9  r7  z&\definecolor{textcolor}{rgb}{%f,%f,%f}z\pgfsetstrokecolor{textcolor}z\pgfsetfillcolor{textcolor}z\color{textcolor}r   ÚanchorÚcenter_baselineÚleftÚrightrG   )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ý   )r`   r?   r=   rþ   r?  rA  r@  rñ   rw   Úget_rotation_modeÚget_verticalalignmentÚget_unitless_positionÚget_transformr  ÚextendÚget_horizontalalignmentrR   r%   )r‡   r  r  r  rZ   r[   r…  rƒ  r€  ÚalphaÚrgbrw   Ú	text_argsÚposÚhalignÚvaligns                   r3   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 rC   )r•   rŸ   rÓ   rB  rw   )r‡   rZ   r[   rƒ  rã   rä   Údr  s           r3   Ú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)NFr¢   r´   s    r3   ÚflipyzRendererPgf.flipyß  s   € àr:   c                 óž   — | j                   j                  «       | j                  z  | j                   j                  «       | j                  z  fS rC   )rñ   Úget_figwidthrw   Úget_figheightr´   s    r3   Ú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 rC   )rB  rw   )r‡   rY  s     r3   Úpoints_to_pixelszRendererPgf.points_to_pixelsè  s   € àœÑ$ t§x¡xÑ/Ð/r:   rC   )TF)FN)r�   r�   r‘   r…   r  r(  rþ   rÿ   r  r  rh  rj  r  r†  r„  r   r¢  r¦  r¨  r’   r“   s   @r3   rï   rï   n  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¬  r¢   r´   s    r3   Ú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)r4   rÚ   rR   r%   rñ   r¤  r¥  rw   r<   r?   r   rï   Údraw)
r‡   r=   r±  Úheader_textÚheader_info_preambler>   rã   rä   rw   Úrenderers
             r3   Ú_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       r3   Ú	print_pgfzFigureCanvasPgf.print_pgf-  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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rC   ©rj   ©rD   ÚkÚvs      r3   rF   z,FigureCanvasPgf.print_pdf.<locals>.<genexpr><  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È   ú
figure.pdfÚrbÚwbN)rñ   Úget_size_inchesr   r%   Úitemsr   r'   r   rÁ  Ú
write_textr™   r4   r"   r#   r   Ú_check_and_log_subprocessrV   Úopenrº  ÚshutilÚcopyfileobj)r‡   r¾  rÃ  r¿  rã   rä   Ú	info_dictÚpdfinforº   ÚtmppathÚ
texcommandÚorigÚdests                r3   Ú	print_pdfzFigureCanvasPgf.print_pdf7  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ØðÜ $¨&õ2ð ˜\Ñ)×/Ñ/°Ó5ð /¸Ü×$Ñ$ [°$Ó7ð/Ø;?Ü×"Ñ" 4¨Ô.÷/÷ /÷)	/ð 	/÷(/ð /ú÷ /ð /ú÷)	/ð 	/ús=   ÁB5E2ÄE&Ä*EÅE&Å	E2ÅE#ÅE&Å&E/	Å+E2Å2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)rw   rÑ  rÒ  N)r€   r   r'   r   rà  rñ   rw   r×  r   rº  rØ  rÙ  )
r‡   r¾  r¿  Ú	converterrº   rÜ  Úpdf_pathÚpng_pathrÞ  rß  s
             r3   Ú	print_pngzFigureCanvasPgf.print_pngX  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 rC   )rï   rñ   r´   s    r3   Úget_rendererzFigureCanvasPgf.get_renderere  s   € Ü˜4Ÿ;™;¨Ó-Ð-r:   c                 óT   •— | j                   j                  «        t        ‰| �  «       S rC   )rñ   Údraw_without_renderingr„   r³  )r‡   r‰   s    €r3   r³  zFigureCanvasPgf.drawh  s   ø€ Ø�‰×*Ñ*Ô,Ü‰w‰|‹~Ðr:   )r�   r�   r‘   Ú	filetypesr¯  r·  rÁ  rà  rå  rç  r³  r’   r“   s   @r3   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ª  ÚFigureCanvasr¢   r:   r3   rì  rì  p  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      r3   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rC   rÆ  rÇ  s      r3   rF   z)PdfPages._write_header.<locals>.<genexpr>£  s#   è ø€ ò HÙ'+ q¨!Ô˜Q ×"ñHùrÊ  r   rË  rÌ  rÍ  z\setlength{\parindent}{0pt}z\begin{document}%rÆ   )r%   rõ  rÔ  r™   r4   rö  r<   Úencode)r‡   Úwidth_inchesÚheight_inchesrÛ  rš   s        r3   Ú_write_headerzPdfPages._write_header¢  sˆ   € Ø—(‘(ñ HØ/3¯©×/DÑ/DÓ/FôHó Hˆà—y‘yÜØ2°WÑ<ØGØ˜]Ð+ñ,àÜ‹OØ*Ø ð	"
ó 	ˆð 	�
‰
×Ñ˜×,Ñ,¨WÓ5Õ6r:   c                 ó   — | S rC   r¢   r´   s    r3   Ú	__enter__zPdfPages.__enter__±  s   € Øˆr:   c                 ó$   — | j                  «        y rC   )Úclose)r‡   Úexc_typeÚexc_valÚexc_tbs       r3   Ú__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ö  r<   rò  Ú
_run_latexr  r´   s    r3   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|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Ï  z.pdf)r"   r#   r   r'   r   Úwrite_bytesrö  Úgetvaluer   rÖ  rV   rØ  ÚmoveÚwith_suffixrñ  )r‡   rÝ  rº   Ú
tex_sources       r3   r  zPdfPages._run_latexÁ  s¡   € Ü—\‘\ /Ñ2ˆ
ÜÓ!ð 	K VÜ Ÿ™ f¨oÓ>ˆJØ×"Ñ" 4§:¡:×#6Ñ#6Ó#8Ô9Ü×+Ñ+ØÐ7Ð9IØðä˜&õ"ô �K‰K˜
×.Ñ.¨vÓ6¸×8IÑ8IÔJ÷	K÷ 	Kñ 	Kús   žBB6Â6B?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    )rd   r   r   Ú
get_activeÚget_fig_managerrØ   Úcanvasrñ   rÓ  rò  rý  rö  r<   Úsavefig)r‡   rñ   r¿  Úmanagerrà   rá   s         r3   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    r3   Úget_pagecountzPdfPages.get_pagecountð  s   € à�‰Ðr:   rC   )r�   r�   r‘   ræ   r…   rý  rÿ  r  r  r  r  r  r¢   r:   r3   rï  rï  u  s6   „ ñð .2ô ò:7òòòò	Kó"óHr:   rï  )@r¼  re   rÁ   Úior   Úloggingr  rr   r'   rØ  rp   Útempfiler   r»   ÚPILr   Ú
matplotlibr"   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�   rV   r™   r4   Úlatex_pt_to_inrC  rB  Úmpl_in_to_ptr9   r?   r`   rj   r€   rÜ   r‚   r•   rÂ   rí   rï   rª  ÚFigureManagerPgfÚexportrì  rï  r¢   r:   r3   ú<module>r(     s9  ðÛ Û Û Ý Û Û Û 	Û Û Û Ý 'Û å ã ß 0÷ó õ @÷-å  Ý $Ý 2Ý )à€w×Ñ˜Ó"€ð ,€ò&ðV €Ø�nÑ$€Ø€Ø�LÑ €ò=òò*òZ òAô6	�ô 	÷Uñ Uðp €×Ñ�QÓñó ðô|0�,ô |0ô~}Ð&ô }ð@ %Ð ð 
‡�ô#�(ó #ó ð#÷}ò }r:   