§
    ‚Øj¿H  ã                   óÔ  — d Z ddlZddlZddlZddlZ	 ddlZej        dk     r edej        › d�¦  «        ‚n*# e$ r" 	 ddl	Zn# e$ rZ
 ed¦  «        e
‚dZ
[
ww xY wY nw xY wddlmZmZmZ dd	lmZmZmZmZmZ dd
lmZ ddlmZ ddlmZ d„ Zdd„Zd„ Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ d¦  «        Z  G d„ de¦  «        Z!ej"         G d„ de¦  «        ¦   «         Z#dS )z�
A Cairo backend for Matplotlib
==============================
:Author: Steve Chaplin and others

This backend depends on cairocffi or pycairo.
é    N)é   é   r   z/Cairo backend requires cairo>=1.14.0, but only z is availablezEcairo backend requires that pycairo>=1.14.0 or cairocffi is installedé   )Ú_apiÚcbookÚfont_manager)Ú_BackendÚFigureCanvasBaseÚFigureManagerBaseÚGraphicsContextBaseÚRendererBase)ÚttfFontProperty)ÚPath)ÚAffine2Dc                 óv   — t          |¦  «        dk    s|r | j        g |d d…         ¢|‘R Ž  d S  | j        |Ž  d S ©Né   )ÚlenÚset_source_rgba)ÚctxÚcolorÚalphaÚforced_alphas       ú–/Users/tedpeters/Documents/Projects/Claude Projects/Misc Tools/notename-sheets/.venv/lib/python3.11/site-packages/matplotlib/backends/backend_cairo.pyÚ	_set_rgbar   %   sW   € Ý
ˆ5�z„z�Q‚€˜,€ØˆÔÐ.˜U 2 A 2œYÐ.¨Ð.Ð.Ð.Ð.Ð.Ð.àˆÔ˜UÐ#Ð#Ð#Ð#ó    c                 ó  — |                      |d|¬¦  «        D ]î\  }}|t          j        k    r | j        |Ž  Œ |t          j        k    r|                      ¦   «          ŒE|t          j        k    r | j        |Ž  Œ`|t          j        k    rdt          j
        |                      ¦   «         ¦  «        }|d d…         }|dd …         } | j        g |dz  |dz  dz  z   ¢|dz  dz  |dz  z   ¢|¢R Ž  ŒÔ|t          j        k    r
 | j        |Ž  Œïd S )NT)Úremove_nansÚclipr   éþÿÿÿr   )Úiter_segmentsr   ÚMOVETOÚmove_toÚ	CLOSEPOLYÚ
close_pathÚLINETOÚline_toÚCURVE3ÚnpÚasarrayÚget_current_pointÚcurve_toÚCURVE4)	r   ÚpathÚ	transformr   ÚpointsÚcodeÚcurÚaÚbs	            r   Ú_append_pathr5   ,   s?  € Ø×*Ò*Ø 4¨dð +ñ 4ô 4ð "ð "‰ˆ�à•4”;ÒÐØˆCŒK˜Ð Ð Ð Ø•T”^Ò#Ð#Ø�NŠNÑÔÐÐØ•T”[Ò Ð ØˆCŒK˜Ð Ð Ð Ø•T”[Ò Ð Ý”*˜S×2Ò2Ñ4Ô4Ñ5Ô5ˆCØ�r˜�r”
ˆAØ�r�s�s”ˆAØˆCŒLÐJ˜3 ™7 Q¨¡U¨Q¡YÑ.ÐJ°1°q±5¸1±9¸qÀ1¹uÑ3DÐJÈÐJÐJÐJÐJÐJØ•T”[Ò Ð ØˆCŒL˜&Ð!Ð!øð"ð "r   c                 ó"  ‡ — ˆ fd„} |d¦  «        }t          t          d |d¦  «                             ¦   «         › �¦  «        } |d¦  «        }t          j                             ||¦  «        dk     rt          j        nt          j        }|||fS )z{
    Convert a `.FontProperties` or a `.FontEntry` to arguments that can be
    passed to `.Context.select_font_face`.
    c                 ó|   •— 	  t          ‰d| › �¦  «        ¦   «         S # t          $ r t          ‰| ¦  «        cY S w xY w)NÚget_)ÚgetattrÚAttributeError)ÚfieldÚprops    €r   Úattrz-_cairo_font_args_from_font_prop.<locals>.attrC   sW   ø€ ð	(Ø0•7˜4 ¨  Ñ0Ô0Ñ2Ô2Ð2øÝð 	(ð 	(ð 	(Ý˜4 Ñ'Ô'Ð'Ð'Ð'ð	(øøøs   ƒ ž;º;ÚnameÚFONT_SLANT_ÚstyleÚweighti&  )r9   ÚcairoÚupperr   Úweight_dictÚgetÚFONT_WEIGHT_NORMALÚFONT_WEIGHT_BOLD)r<   r=   r>   ÚslantrA   s   `    r   Ú_cairo_font_args_from_font_proprI   >   s§   ø€ ð
(ð (ð (ð (ð (ð ˆ4�‰<Œ<€DÝ•EÐ@¨¨¨g©¬×)<Ò)<Ñ)>Ô)>Ð@Ð@ÑAÔA€EØˆT�(‰^Œ^€FåÔ)×-Ò-¨f°fÑ=Ô=ÀÒCÐCõ Ô&Ð&åÔ)ð ð �˜ÐÐr   c                   ó|   ‡ — e Zd Zˆ fd„Zd„ Zed„ ¦   «         Zdd„Z	 dd„Zd„ Z	dd	„Z
d
„ Zd„ Zˆ fd„Zd„ Zd„ Zˆ xZS )ÚRendererCairoc                 ó
  •— || _         t          | ¬¦  «        | _        d | _        d | _        t          j        t          j        t
          j        dd¦  «        ¦  «        | _	        t          ¦   «                              ¦   «          d S )N)Úrendererr   )ÚdpiÚGraphicsContextCairoÚgcÚwidthÚheightrB   ÚContextÚImageSurfaceÚFORMAT_ARGB32Útext_ctxÚsuperÚ__init__)ÚselfrN   Ú	__class__s     €r   rX   zRendererCairo.__init__S   sn   ø€ ØˆŒÝ&°Ð5Ñ5Ô5ˆŒØˆŒ
ØˆŒÝœÝÔ�eÔ1°1°aÑ8Ô8ñ:ô :ˆŒå‰Œ×ÒÑÔÐÐÐr   c                 ó,  — |                      ¦   «         }t          |d¦  «        r9t          |d¦  «        r)|                     ¦   «         |                     ¦   «         f}n›t          |d¦  «        r#|                     ¦   «         }|j        |j        f}nh|                     ¦   «          |                     ¦   «          | 	                    ¦   «         ^}}|rt          d¦  «        ‚|^}}}|                     ¦   «          || j        _        |\  | _        | _        d S )NÚ	get_widthÚ
get_heightÚget_extentszCannot infer surface size)Ú
get_targetÚhasattrr\   r]   r^   rQ   rR   ÚsaveÚ
reset_clipÚcopy_clip_rectangle_listÚ	TypeErrorÚrestorerP   r   )rY   r   ÚsurfaceÚsizeÚextÚrectÚrestÚ_s           r   Úset_contextzRendererCairo.set_context\   s  € Ø—.’.Ñ"Ô"ˆÝ�7˜KÑ(Ô(ð 	­W°W¸lÑ-KÔ-Kð 	Ø×$Ò$Ñ&Ô&¨×(:Ò(:Ñ(<Ô(<Ð<ˆDˆDÝ�W˜mÑ,Ô,ð 
	Ø×%Ò%Ñ'Ô'ˆCØ”9˜cœjÐ(ˆDˆDà�HŠH‰JŒJˆJØ�NŠNÑÔÐØ×6Ò6Ñ8Ô8ˆKˆD�4Øð =ÝÐ ;Ñ<Ô<Ð<ØˆKˆAˆq�4Ø�KŠK‰MŒMˆMØˆŒŒØ"&ÑˆŒ
�D”K�K�Kr   c                 óÎ   — |�N|                       ¦   «          t          | |||¦  «         |                      ¦   «          |                      ¦   «          |                      ¦   «          d S ©N)ra   r   Úfill_preservere   Ústroke)r   Úfill_cr   Úalpha_overridess       r   Ú_fill_and_strokezRendererCairo._fill_and_stroken   sY   € àÐØ�HŠH‰JŒJˆJÝ�c˜6 5¨/Ñ:Ô:Ð:Ø×ÒÑÔÐØ�KŠK‰MŒMˆMØ�
Š
‰Œˆˆˆr   Nc                 óÎ  — |j         }|€(|                     ¦   «         €|                     ¦   «         nd }|t          ¦   «                              dd¦  «                             d| j        ¦  «        z   }|                     ¦   «          t          ||||¦  «         |�r| 	                    ¦   «          t          |||                     ¦   «         |                     ¦   «         ¦  «         |                     ¦   «          |                     ¦   «          |                     ¦   «         }|�r®t!          | j        ¦  «        }|                     ¦   «                              t(          j        j        ||¦  «        }	t)          j        |	¦  «        }
t          |
|t          ¦   «                              || ¦  «                             d|¦  «        d ¦  «         |
                     |                      |                     ¦   «         ¦  «        ¦  «          |
j        |                     ¦   «         Ž  |
                     ¦   «          |
                     ¦   «          t)          j        |	¦  «        }|                     t(          j         j!        ¦  «         | 	                    ¦   «          | "                    |¦  «         |                     ¦   «          |                     ¦   «          |                     ¦   «          d S ©Nr   éÿÿÿÿr   )#r   Ú	get_hatchÚclip_extentsr   ÚscaleÚ	translaterR   Únew_pathr5   ra   r   Ú	get_alphaÚget_forced_alpharo   re   Úget_hatch_pathÚintrN   r_   Úcreate_similarrB   ÚContentÚCOLOR_ALPHArS   Úset_line_widthÚpoints_to_pixelsÚget_hatch_linewidthr   Úget_hatch_colorrp   ÚSurfacePatternÚ
set_extendÚExtendÚREPEATÚ
set_source)rY   rP   r.   r/   ÚrgbFacer   r   Ú
hatch_pathrN   Úhatch_surfaceÚ	hatch_ctxÚhatch_patterns               r   Ú	draw_pathzRendererCairo.draw_pathw   st  € àŒfˆð �? r§|¢|¡~¤~Ð'=ð × Ò Ñ"Ô"Ð"àð 	ð Ý‘z”z×'Ò'¨¨2Ñ.Ô.×8Ò8¸¸D¼KÑHÔHñIˆ	à�Š‰ŒˆÝ�S˜$ 	¨4Ñ0Ô0Ð0ØÐØ�HŠH‰JŒJˆJÝ�c˜7 B§L¢L¡N¤N°B×4GÒ4GÑ4IÔ4IÑJÔJÐJØ×ÒÑÔÐØ�KŠK‰MŒMˆMØ×&Ò&Ñ(Ô(ˆ
Øñ 	Ý�d”h‘-”-ˆCØŸNšNÑ,Ô,×;Ò;Ý”Ô)¨3°ñ5ô 5ˆMåœ mÑ4Ô4ˆIÝ˜ JÝ!™œ×)Ò)¨#°¨tÑ4Ô4×>Ò>¸qÀ#ÑFÔFØñô ð ð ×$Ò$ T×%:Ò%:¸2×;QÒ;QÑ;SÔ;SÑ%TÔ%TÑUÔUÐUØ%ˆIÔ% r×'9Ò'9Ñ';Ô';Ð<Ð<Ø×#Ò#Ñ%Ô%Ð%Ø×ÒÑÔÐÝ!Ô0°Ñ?Ô?ˆMØ×$Ò$¥U¤\Ô%8Ñ9Ô9Ð9Ø�HŠH‰JŒJˆJØ�NŠN˜=Ñ)Ô)Ð)Ø×ÒÑÔÐØ�KŠK‰MŒMˆMØ�
Š
‰Œˆˆˆr   c           	      ó&  — |j         }|                     ¦   «          t          |||t          ¦   «                              dd¦  «        z   ¦  «         |                     ¦   «         }|                     ¦   «         \  }}	}
}|dk    r|	dk    r|
dk    r|dk    rd}d }nd}|t          ¦   «                              dd¦  «                             d| j        ¦  «        z   }|                     ¦   «          t          | 
                    |d¬¦  «        ¦  «        D ]¾\  }\  }}t          |¦  «        r§|dd …         \  }}|                     ¦   «          |                     ||¦  «         |                     |¦  «         |                     ¦   «          |s	|dz  dk    r<|                      |||                     ¦   «         |                     ¦   «         ¦  «         Œ¿|s>|                      |||                     ¦   «         |                     ¦   «         ¦  «         d S d S )	Nr   rv   r   FT)Úsimplifyr    iè  )r   r{   r5   r   ry   Úcopy_path_flatÚfill_extentsrz   rR   Ú	enumerater!   r   ra   Úappend_pathre   rs   r|   r}   )rY   rP   Úmarker_pathÚmarker_transr.   r/   rŒ   r   Úx1Úy1Úx2Úy2ÚfilledÚiÚverticesÚcodesÚxÚys                     r   Údraw_markerszRendererCairo.draw_markersœ   s,  € ð ŒfˆØ�Š‰Œˆå�S˜+ |µh±j´j×6FÒ6FÀqÈ"Ñ6MÔ6MÑ'MÑNÔNÐNØ×(Ò(Ñ*Ô*ˆð ×)Ò)Ñ+Ô+‰ˆˆB��BØ�Š7ˆ7�r˜Q’w�w 2¨¢7 7¨r°Qªw¨wØˆFàˆGˆGàˆFàÝ‘z”z×'Ò'¨¨2Ñ.Ô.×8Ò8¸¸D¼KÑHÔHñIˆ	ð 	�Š‰ŒˆÝ$-Ø×"Ò" 9°uÐ"Ñ=Ô=ñ%?ô %?ð 	Mð 	MÑ ˆAÑ �˜%å�8‰}Œ}ð MØ   ”}‘��1Ø—’‘
”
�
ð —’˜a Ñ#Ô#Ð#Ø—’ Ñ,Ô,Ð,à—’‘”�ð ð M˜Q ™X¨š]˜]Ø×)Ò)Ø˜W b§l¢l¡n¤n°b×6IÒ6IÑ6KÔ6KñMô Mð Møð ð 	EØ×!Ò!Ø�W˜bŸlšl™nœn¨b×.AÒ.AÑ.CÔ.CñEô Eð Eð Eð Eð	Eð 	Er   c                 ó(  — t          j        |d d d…         ¦  «        }t          j                             |                     ¦   «         j        t          j        |j        d         |j        d         |j        d         dz  ¦  «        }|j	        }| j
        |z
  |j        d         z
  }|                     ¦   «          |                     |t          |¦  «        t          |¦  «        ¦  «         |                     ¦   «          |                     ¦   «          d S )Nrv   r   r   é   )r   Ú._unmultiplied_rgba8888_to_premultiplied_argb32rB   rT   Úcreate_for_dataÚravelÚdatarU   Úshaper   rR   ra   Úset_source_surfaceÚfloatÚpaintre   )rY   rP   r¢   r£   Úimrf   r   s          r   Ú
draw_imagezRendererCairo.draw_imageÌ   sÑ   € ÝÔAÀ"ÀTÀTÀrÀTÄ(ÑKÔKˆÝÔ$×4Ò4Ø�HŠH‰JŒJŒO�UÔ0ØŒH�QŒK˜œ !œ b¤h¨q¤k°A¡oñ7ô 7ˆð ŒfˆØŒK˜!‰O˜bœh qœkÑ)ˆà�Š‰
Œ
ˆ
Ø×Ò˜w­¨a©¬µ%¸±(´(Ñ;Ô;Ð;Ø�	Š	‰ŒˆØ�Š‰Œˆˆˆr   Fc	                 ó²  — |r|                       ||||||¦  «         d S |j        }	|	                     ¦   «          |	                     ||¦  «         |	                     ¦   «           |	j        t          |¦  «        Ž  |	                     |                      | 	                    ¦   «         ¦  «        ¦  «         t          j        ¦   «         }
|
                     |                     ¦   «         ¦  «         |	                     |
¦  «         |r(|	                     t!          j        | ¦  «        ¦  «         |	                     |¦  «         |	                     ¦   «          d S rn   )Ú_draw_mathtextr   r{   r#   ra   Úselect_font_facerI   Úset_font_sizer„   Úget_size_in_pointsrB   ÚFontOptionsÚset_antialiasÚget_antialiasedÚset_font_optionsÚrotater)   Údeg2radÚ	show_textre   )rY   rP   r¢   r£   Úsr<   ÚangleÚismathÚmtextr   Úoptss              r   Ú	draw_textzRendererCairo.draw_textÙ   s9  € ð
 ð 	Ø×Ò  A q¨!¨T°5Ñ9Ô9Ð9Ð9Ð9ð ”&ˆCØ�LŠL‰NŒNˆNØ�KŠK˜˜1ÑÔÐà�HŠH‰JŒJˆJØ ˆCÔ Õ"AÀ$Ñ"GÔ"GÐHÐHØ×Ò˜d×3Ò3°D×4KÒ4KÑ4MÔ4MÑNÔNÑOÔOÐOÝÔ$Ñ&Ô&ˆDØ×Ò˜r×1Ò1Ñ3Ô3Ñ4Ô4Ð4Ø× Ò  Ñ&Ô&Ð&Øð /Ø—
’
�2œ: u fÑ-Ô-Ñ.Ô.Ð.Ø�MŠM˜!ÑÔÐØ�KŠK‰MŒMˆMˆMˆMr   c                 óL  — |j         }| j        j                             || j        |¦  «        \  }}	}
}}|                     ¦   «          |                     ||¦  «         |r(|                     t          j	        | ¦  «        ¦  «         |D ]¢\  }}}}}}| 
                    ¦   «          |                     || ¦  «          |j        t          t          |¦  «        ¦  «        Ž  |                     |                      |¦  «        ¦  «         |                     t%          |¦  «        ¦  «         Œ£|D ]`\  }}}}| 
                    ¦   «          |                     || || ¦  «         |                     ddd¦  «         |                     ¦   «          Œa|                     ¦   «          d S ©Nr   )r   Ú
_text2pathÚmathtext_parserÚparserN   ra   rz   rº   r)   r»   r{   r#   r³   rI   r   r´   r„   r¼   ÚchrÚ	rectangleÚset_source_rgbro   re   )rY   rP   r¢   r£   r½   r<   r¾   r   rQ   rR   ÚdescentÚglyphsÚrectsÚfontÚfontsizeÚccodeÚ_glyph_indexÚoxÚoyÚwÚhs                        r   r²   zRendererCairo._draw_mathtextñ   s™  € ØŒfˆàŒOÔ+×1Ò1°!°T´X¸tÑDÔDñ 	.ˆˆv�w ¨ð 	�Š‰
Œ
ˆ
Ø�Š�a˜ÑÔÐØð 	+Ø�JŠJ•r”z 5 &Ñ)Ô)Ñ*Ô*Ð*à;Að 	&ð 	&Ñ7ˆD�(˜E <°°RØ�LŠL‰NŒNˆNØ�KŠK˜˜R˜CÑ Ô Ð Ø ˆCÔ Õ"AÅ/ÐRVÑBWÔBWÑ"XÔ"XÐYÐYØ×Ò˜d×3Ò3°HÑ=Ô=Ñ>Ô>Ð>Ø�MŠM�#˜e™*œ*Ñ%Ô%Ð%Ð%à!ð 	 ð 	 ‰LˆB��A�qØ�LŠL‰NŒNˆNØ�MŠM˜"˜r˜c 1 q bÑ)Ô)Ð)Ø×Ò˜q ! QÑ'Ô'Ð'Ø×ÒÑÔÐÐà�Š‰Œˆˆˆr   c                 ó   — | j         | j        fS rn   )rQ   rR   ©rY   s    r   Úget_canvas_width_heightz%RendererCairo.get_canvas_width_height
  s   € àŒz˜4œ;Ð&Ð&r   c                 ó
  •— |dk    r#t          ¦   «                              |||¦  «        S |r/| j        j                             || j        |¦  «        ^}}}}|||fS | j        }|                     ¦   «           |j        t          |¦  «        Ž  | 
                    |                      |                     ¦   «         ¦  «        ¦  «         |                     |¦  «        dd…         \  }	}
}|                     ¦   «          |
|||	z   fS )NÚTeXr   r¦   )rW   Úget_text_width_height_descentrÅ   rÆ   rÇ   rN   rV   ra   r³   rI   r´   r„   rµ   Útext_extentsre   )rY   r½   r<   r¿   rQ   rR   rË   rk   r   Ú	y_bearingrÔ   rÕ   rZ   s               €r   rÛ   z+RendererCairo.get_text_width_height_descent  s  ø€ ð �UŠ?ˆ?Ý‘7”7×8Ò8¸¸DÀ&ÑIÔIÐIàð 	*à”Ô/×5Ò5°a¸¼À4ÑHÔHð 'ˆE�6˜7 Qà˜& 'Ð)Ð)àŒmˆð 	�Š‰
Œ
ˆ
ØˆÔÕ=¸dÑCÔCÐDÐDØ×Ò˜$×/Ò/°×0GÒ0GÑ0IÔ0IÑJÔJÑKÔKÐKà×*Ò*¨1Ñ-Ô-¨a°¨cÔ2‰ˆ	�1�aØ�Š‰Œˆà�!�Q˜‘]Ð"Ð"r   c                 ó”   — | j         j                             ¦   «          d| j         _        d| j         _        d | j         _        | j         S )Nr   F)rP   r   ra   Ú_alphaÚ_forced_alphaÚ_hatchr×   s    r   Únew_gczRendererCairo.new_gc&  s=   € àŒŒ×ÒÑÔÐð
 ˆŒŒØ %ˆŒÔØˆŒŒØŒwˆr   c                 ó   — |dz  | j         z  S )NéH   )rN   )rY   r0   s     r   r„   zRendererCairo.points_to_pixels2  s   € à˜‰{˜TœXÑ%Ð%r   rn   )FN)Ú__name__Ú
__module__Ú__qualname__rX   rl   Ústaticmethodrs   r‘   r¤   r°   rÂ   r²   rØ   rÛ   râ   r„   Ú__classcell__©rZ   s   @r   rK   rK   R   s  ø€ € € € € ðð ð ð ð ð'ð 'ð 'ð$ ðð ñ „\ðð#ð #ð #ð #ðL "ð.Eð .Eð .Eð .Eð`ð ð ðð ð ð ð0ð ð ð2'ð 'ð 'ð#ð #ð #ð #ð #ð0
ð 
ð 
ð&ð &ð &ð &ð &ð &ð &r   rK   c                   óÄ   ‡ — e Zd Zej        ej        ej        dœZej        ej	        ej
        dœZˆ fd„Zd„ Zˆ fd„Zd„ Zd„ Zd„ Zd	„ Zd
„ Zd„ Zdˆ fd„	Zd„ Zd„ Zd„ Zˆ xZS )rO   )ÚbevelÚmiterÚround)ÚbuttÚ
projectingrî   c                 óV   •— t          ¦   «                              ¦   «          || _        d S rn   )rW   rX   rM   )rY   rM   rZ   s     €r   rX   zGraphicsContextCairo.__init__D  s$   ø€ Ý‰Œ×ÒÑÔÐØ ˆŒˆˆr   c                 ó8   — | j                              ¦   «          d S rn   )r   re   r×   s    r   re   zGraphicsContextCairo.restoreH  s   € ØŒ×ÒÑÔÐÐÐr   c                 óÊ   •— t          ¦   «                              |¦  «         t          | j        | j        |                      ¦   «         |                      ¦   «         ¦  «         d S rn   )rW   Ú	set_alphar   r   Ú_rgbr|   r}   )rY   r   rZ   s     €r   rô   zGraphicsContextCairo.set_alphaK  s_   ø€ Ý‰Œ×Ò˜%Ñ Ô Ð ÝØŒH�d”i §¢Ñ!1Ô!1°4×3HÒ3HÑ3JÔ3Jñ	Lô 	Lð 	Lð 	Lð 	Lr   c                 ój   — | j                              |rt          j        nt          j        ¦  «         d S rn   )r   r·   rB   ÚANTIALIAS_DEFAULTÚANTIALIAS_NONE)rY   r4   s     r   Úset_antialiasedz$GraphicsContextCairo.set_antialiasedP  s>   € ØŒ×ÒØ'(ÐB�EÔ#Ð#­eÔ.Bñ	Dô 	Dð 	Dð 	Dð 	Dr   c                 ó4   — | j                              ¦   «         S rn   )r   Úget_antialiasr×   s    r   r¸   z$GraphicsContextCairo.get_antialiasedT  s   € ØŒx×%Ò%Ñ'Ô'Ð'r   c                 óz   — | j                              t          j        | j        |¬¦  «        ¦  «         || _        d S )N)Úcapstyle)r   Úset_line_capr   Úgetitem_checkedÚ_capdÚ	_capstyle)rY   Úcss     r   Úset_capstylez!GraphicsContextCairo.set_capstyleW  s5   € ØŒ×Ò�dÔ2°4´:ÈÐKÑKÔKÑLÔLÐLØˆŒˆˆr   c                 óø   — |sd S t          j        |j        ¦  «        \  }}}}| j        }|                     ¦   «          |                     || j        j        |z
  |z
  ||¦  «         |                     ¦   «          d S rn   )	r)   rî   Úboundsr   r{   rÉ   rM   rR   r   )rY   rÉ   r¢   r£   rÔ   rÕ   r   s          r   Úset_clip_rectanglez'GraphicsContextCairo.set_clip_rectangle[  su   € Øð 	ØˆFÝ”X˜iÔ.Ñ/Ô/‰
ˆˆ1ˆa�ØŒhˆØ�Š‰ŒˆØ�Š�a˜œÔ-°Ñ1°AÑ5°q¸!Ñ<Ô<Ð<Ø�Š‰
Œ
ˆ
ˆ
ˆ
r   c                 óB  — |sd S |                      ¦   «         \  }}| j        }|                     ¦   «          |t          ¦   «                              dd¦  «                             d| j        j        ¦  «        z   }t          |||¦  «         | 	                    ¦   «          d S ru   )
Úget_transformed_path_and_affiner   r{   r   ry   rz   rM   rR   r5   r   )rY   r.   ÚtpathÚaffiner   s        r   Úset_clip_pathz"GraphicsContextCairo.set_clip_pathd  s’   € Øð 	ØˆFØ×<Ò<Ñ>Ô>‰ˆˆvØŒhˆØ�Š‰ŒˆØÝ‘J”J×$Ò$ Q¨Ñ+Ô+×5Ò5°a¸¼Ô9MÑNÔNñOˆå�S˜% Ñ(Ô(Ð(Ø�Š‰
Œ
ˆ
ˆ
ˆ
r   c           	      óú   — ||f| _         |€| j                             g d¦  «         d S | j                             t          | j                             t          j        |¦  «        ¦  «        ¦  «        |¦  «         d S rÄ   )Ú_dashesr   Úset_dashÚlistrM   r„   r)   r*   )rY   ÚoffsetÚdashess      r   Ú
set_dasheszGraphicsContextCairo.set_dasheso  s|   € Ø˜v�~ˆŒØˆ>ØŒH×Ò˜b !Ñ$Ô$Ð$Ð$Ð$àŒH×ÒÝ�T”]×3Ò3µB´J¸vÑ4FÔ4FÑGÔGÑHÔHØñô ð ð ð r   Nc                 óÐ   •— t          ¦   «                              ||¦  «         t          | j        ¦  «        dk    r | j        j        | j        Ž  d S  | j        j        | j        Ž  d S r   )rW   Úset_foregroundr   rõ   r   rÊ   r   )rY   ÚfgÚisRGBArZ   s      €r   r  z#GraphicsContextCairo.set_foregroundx  sd   ø€ Ý‰Œ×Ò˜r 6Ñ*Ô*Ð*ÝˆtŒy‰>Œ>˜QÒÐØ#ˆDŒHÔ# T¤YÐ/Ð/Ð/Ð/à$ˆDŒHÔ$ d¤iÐ0Ð0Ð0Ð0r   c                 óh   — | j                              ¦   «                              ¦   «         d d…         S r   )r   Ú
get_sourceÚget_rgbar×   s    r   Úget_rgbzGraphicsContextCairo.get_rgb  s+   € ØŒx×"Ò"Ñ$Ô$×-Ò-Ñ/Ô/°°°Ô3Ð3r   c                 óz   — | j                              t          j        | j        |¬¦  «        ¦  «         || _        d S )N)Ú	joinstyle)r   Úset_line_joinr   rÿ   Ú_joindÚ
_joinstyle)rY   Újss     r   Úset_joinstylez"GraphicsContextCairo.set_joinstyle‚  s5   € ØŒ×Ò�tÔ3°D´KÈ2ÐNÑNÔNÑOÔOÐOØˆŒˆˆr   c                 ó’   — t          |¦  «        | _        | j                             | j                             |¦  «        ¦  «         d S rn   )r­   Ú
_linewidthr   rƒ   rM   r„   )rY   rÔ   s     r   Úset_linewidthz"GraphicsContextCairo.set_linewidth†  s;   € Ý ™(œ(ˆŒØŒ×Ò ¤× >Ò >¸qÑ AÔ AÑBÔBÐBÐBÐBr   rn   )rå   ræ   rç   rB   ÚLINE_JOIN_BEVELÚLINE_JOIN_MITERÚLINE_JOIN_ROUNDr  ÚLINE_CAP_BUTTÚLINE_CAP_SQUAREÚLINE_CAP_ROUNDr   rX   re   rô   rù   r¸   r  r  r  r  r  r  r!  r$  ré   rê   s   @r   rO   rO   7  sR  ø€ € € € € àÔ'ØÔ'ØÔ'ðð €Fð Ô*ØÔ,ØÔ+ðð €Eð!ð !ð !ð !ð !ðð ð ðLð Lð Lð Lð Lð
Dð Dð Dð(ð (ð (ðð ð ðð ð ð	ð 	ð 	ðð ð ð1ð 1ð 1ð 1ð 1ð 1ð4ð 4ð 4ðð ð ðCð Cð Cð Cð Cð Cð Cr   rO   c                   ó   — e Zd Zd„ ZdS )Ú_CairoRegionc                 ó"   — || _         || _        d S rn   )Ú_slicesÚ_data)rY   Úslicesrª   s      r   rX   z_CairoRegion.__init__Œ  s   € ØˆŒØˆŒ
ˆ
ˆ
r   N)rå   ræ   rç   rX   © r   r   r,  r,  ‹  s#   € € € € € ðð ð ð ð r   r,  c                   óà   — e Zd Zed„ ¦   «         Zd„ Zd„ Zd„ Zd„ Zd„ Z	e	Z
d„ Zdd	œd
„Z ej        ed¦  «        Z ej        ed¦  «        Z ej        ed¦  «        Z ej        ed¦  «        ZdS )ÚFigureCanvasCairoc                 ól   — t          | d¦  «        st          | j        j        ¦  «        | _        | j        S )NÚ_cached_renderer)r`   rK   ÚfigurerN   r5  r×   s    r   Ú	_rendererzFigureCanvasCairo._renderer’  s5   € õ �tÐ/Ñ0Ô0ð 	CÝ$1°$´+´/Ñ$BÔ$BˆDÔ!ØÔ$Ð$r   c                 ó   — | j         S rn   )r7  r×   s    r   Úget_rendererzFigureCanvasCairo.get_rendererœ  s
   € ØŒ~Ðr   c           	      ó¸  — | j         j        j                             ¦   «         }t	          |t
          j        ¦  «        st          d¦  «        ‚|                     ¦   «         }| 	                    ¦   «         }t          j        |j        ¦  «        }t          j        |j        ¦  «        }t          j        ||j        z
  ¦  «        }t          j        ||j        z
  ¦  «        }d|k    r2||k    r,|j        |j        k    rd|k    r||k    r|j        |j        k    st#          d¦  «        ‚t%          ||t'          ||z
  d¦  «        z   ¦  «        t%          ||t'          ||z
  d¦  «        z   ¦  «        f}	t)          j        |                     ¦   «         t(          j        ¦  «                             ||f¦  «        |	                              ¦   «         }
t5          |	|
¦  «        S )Nz;copy_from_bbox only works when rendering to an ImageSurfacer   zInvalid bbox)r7  rP   r   r_   Ú
isinstancerB   rT   ÚRuntimeErrorr\   r]   ÚmathÚceilÚx0Úfloorrš   r›   Úy0Ú
ValueErrorÚsliceÚmaxr)   Ú
frombufferÚget_dataÚuint32ÚreshapeÚcopyr,  )rY   Úbboxrf   ÚswÚshr?  rš   rA  r›   Úslsrª   s              r   Úcopy_from_bboxz FigureCanvasCairo.copy_from_bboxŸ  s–  € Ø”.Ô#Ô'×2Ò2Ñ4Ô4ˆÝ˜'¥5Ô#5Ñ6Ô6ð 	OÝØMñOô Oð Oà×ÒÑ Ô ˆØ×ÒÑ!Ô!ˆÝŒY�t”wÑÔˆÝŒZ˜œÑ Ô ˆÝŒY�r˜DœG‘|Ñ$Ô$ˆÝŒZ˜˜TœW™Ñ%Ô%ˆØ�R’�˜B "šH˜H¨¬°D´GÒ);Ð);Ø˜’G�G  b¢ ¨T¬W¸¼Ò-?Ð-?Ý˜^Ñ,Ô,Ð,Ý�B˜�S  b¡¨!™_œ_Ñ,Ñ-Ô-­u°R¸½cÀ"ÀrÁ'È1¹o¼oÑ9MÑ/NÔ/NÐNˆÝ”˜g×.Ò.Ñ0Ô0µ"´)Ñ<Ô<ß’˜"˜b˜Ñ"Ô" 3ô(ß(,ª©¬ð 	å˜C Ñ&Ô&Ð&r   c                 óB  — | j         j        j                             ¦   «         }t	          |t
          j        ¦  «        st          d¦  «        ‚|                     ¦   «          | 	                    ¦   «         }| 
                    ¦   «         }|j        \  }}|j        t          j        |                     ¦   «         t          j        ¦  «                             ||f¦  «        ||f<   |                     |j        |j        |j        |j        z
  |j        |j        z
  ¦  «         d S )Nz;restore_region only works when rendering to an ImageSurface)r7  rP   r   r_   r;  rB   rT   r<  Úflushr\   r]   r.  r/  r)   rE  rF  rG  rH  Úmark_dirty_rectangleÚstartÚstop)rY   Úregionrf   rK  rL  ÚslyÚslxs          r   Úrestore_regionz FigureCanvasCairo.restore_region²  s	  € Ø”.Ô#Ô'×2Ò2Ñ4Ô4ˆÝ˜'¥5Ô#5Ñ6Ô6ð 	OÝØMñOô Oð Oà�Š‰ŒˆØ×ÒÑ Ô ˆØ×ÒÑ!Ô!ˆØ”>‰ˆˆSà)/¬õ 
Œ�w×'Ò'Ñ)Ô)­2¬9Ñ	5Ô	5ß
Š'�2�r�(Ñ
Ô
˜C ˜Hñ
&à×$Ò$ØŒI�s”y #¤(¨S¬YÑ"6¸¼À3Ä9Ñ8Lñ	Nô 	Nð 	Nð 	Nð 	Nr   c                 óT   — |                       ¦   «                              |¦  «         d S rn   )Ú_get_printed_image_surfaceÚwrite_to_png)rY   Úfobjs     r   Ú	print_pngzFigureCanvasCairo.print_pngÀ  s(   € Ø×'Ò'Ñ)Ô)×6Ò6°tÑ<Ô<Ð<Ð<Ð<r   c           	      ó  — |                       ¦   «         \  }}|                      ¦   «                              ¦   «         }|                     t	          j        t          j        |¦  «                             ||df¦  «        ¦  «        ¦  «         d S )Nr¦   )	Úget_width_heightrY  rF  Úwriter   Ú._premultiplied_argb32_to_unmultiplied_rgba8888r)   r*   rH  )rY   r[  rQ   rR   Úbufs        r   Ú
print_rgbazFigureCanvasCairo.print_rgbaÃ  sƒ   € Ø×-Ò-Ñ/Ô/‰ˆˆvØ×-Ò-Ñ/Ô/×8Ò8Ñ:Ô:ˆØ�
Š
•5ÔGÝŒJ�s‰OŒO×#Ò# U¨F°AÐ$6Ñ7Ô7ñ9ô 9ñ 	:ô 	:ð 	:ð 	:ð 	:r   c                 ó6  — | j         j        | j        _        |                      ¦   «         \  }}t	          j        t          j        ||¦  «        }| j                             t	          j        |¦  «        ¦  «         | j          	                    | j        ¦  «         |S rn   )
r6  rN   r7  r^  rB   rT   rU   rl   rS   Údraw)rY   rQ   rR   rf   s       r   rY  z,FigureCanvasCairo._get_printed_image_surfaceË  sy   € Ø!œ[œ_ˆŒÔØ×-Ò-Ñ/Ô/‰ˆˆvÝÔ$¥UÔ%8¸%ÀÑHÔHˆØŒ×"Ò"¥5¤=°Ñ#9Ô#9Ñ:Ô:Ð:ØŒ×Ò˜œÑ(Ô(Ð(Øˆr   Úportrait)Úorientationc                ó¢  — d}|| j         _        | j                              ¦   «         \  }}||z  ||z  }}|dk    r||}}|dk    r;t          t          d¦  «        st          d¦  «        ‚t	          j        |||¦  «        }	nÚ|dk    r;t          t          d¦  «        st          d¦  «        ‚t	          j        |||¦  «        }	n™|d	v rƒt          t          d
¦  «        st          d¦  «        ‚|dk    rBt          |t          ¦  «        rt          j        |d¦  «        }nt          j        d d|¬¦  «        }t	          j        |||¦  «        }	nt          d|›�¦  «        ‚| j         j        | j        _        | j                             t	          j        |	¦  «        ¦  «         | j        j        j        }
|dk    r9|
                     t(          j        dz  ¦  «         |
                     d| ¦  «         | j                              | j        ¦  «         |
                     ¦   «          |	                     ¦   «          |dk    r|                     ¦   «          d S d S )Nrä   Ú	landscapeÚpsÚ	PSSurfacez3cairo has not been compiled with PS support enabledÚpdfÚ
PDFSurfacez4cairo has not been compiled with PDF support enabled)ÚsvgÚsvgzÚ
SVGSurfacez4cairo has not been compiled with SVG support enabledrn  Úwb)ÚfileobjzUnknown format: r   r   )r6  rN   Úget_size_inchesr`   rB   r<  rj  rl  r;  ÚstrÚgzipÚGzipFilero  rB  r7  rl   rS   rP   r   rº   r)   Úpirz   rd  Ú	show_pageÚfinishÚclose)rY   Úfmtr[  rf  rN   Úw_inÚh_inÚwidth_in_pointsÚheight_in_pointsrf   r   s              r   Ú_savezFigureCanvasCairo._saveÓ  sZ  € ð ˆØˆŒŒØ”[×0Ò0Ñ2Ô2‰
ˆˆdØ,0°3©J¸¸s¹
Ð)ˆà˜+Ò%Ð%à  /ð .ˆOð �$Š;ˆ;Ý�5 +Ñ.Ô.ð 6Ý"ð $5ñ 6ô 6ð 6å”o d¨OÐ=MÑNÔNˆGˆGØ�EŠ\ˆ\Ý�5 ,Ñ/Ô/ð 6Ý"ð $5ñ 6ô 6ð 6åÔ& t¨_Ð>NÑOÔOˆGˆGØ�OÐ#Ð#Ý�5 ,Ñ/Ô/ð 6Ý"ð $5ñ 6ô 6ð 6à�fŠ}ˆ}Ý˜d¥CÑ(Ô(ð CÝœ=¨¨tÑ4Ô4�D�Dåœ=¨¨t¸TÐBÑBÔB�DÝÔ& t¨_Ð>NÑOÔOˆGˆGåÐ7°Ð7Ð7Ñ8Ô8Ð8à!œ[œ_ˆŒÔØŒ×"Ò"¥5¤=°Ñ#9Ô#9Ñ:Ô:Ð:ØŒnÔÔ#ˆà˜+Ò%Ð%Ø�JŠJ•r”u˜q‘yÑ!Ô!Ð!Ø�MŠM˜!Ð.Ð.Ñ/Ô/Ð/ð 	Œ×Ò˜œÑ(Ô(Ð(à�Š‰ŒˆØ�ŠÑÔÐØ�&Š=ˆ=Ø�JŠJ‰LŒLˆLˆLˆLð ˆ=r   rk  ri  rm  rn  N)rå   ræ   rç   Úpropertyr7  r9  rN  rW  r\  rb  Ú	print_rawrY  r  Ú	functoolsÚpartialmethodÚ	print_pdfÚprint_psÚ	print_svgÚ
print_svgzr1  r   r   r3  r3  ‘  sü   € € € € € Øð%ð %ñ „Xð%ðð ð ð'ð 'ð 'ð&Nð Nð Nð=ð =ð =ð:ð :ð :ð €Iðð ð ð /9ð 1ð 1ð 1ð 1ð 1ðf (�	Ô'¨¨uÑ5Ô5€IØ&ˆyÔ& u¨dÑ3Ô3€HØ'�	Ô'¨¨uÑ5Ô5€IØ(�Ô(¨°Ñ7Ô7€J€J€Jr   r3  c                   ó$   — e Zd Zej        ZeZeZ	dS )Ú_BackendCairoN)
rå   ræ   rç   rB   ÚversionÚbackend_versionr3  ÚFigureCanvasr   ÚFigureManagerr1  r   r   r‰  r‰    s   € € € € € à”m€OØ$€LØ%€M€M€Mr   r‰  rn   )$Ú__doc__r‚  rt  r=  Únumpyr)   rB   Úversion_infoÚImportErrorÚ	cairocffiÚerrÚ r   r   r   Úmatplotlib.backend_basesr	   r
   r   r   r   Úmatplotlib.font_managerr   Úmatplotlib.pathr   Úmatplotlib.transformsr   r   r5   rI   rK   rO   r,  r3  Úexportr‰  r1  r   r   ú<module>rš     sâ  ððð ð Ð Ð Ð Ø €€€Ø €€€à Ð Ð Ð ð%Ø€L€L€LØÔ˜JÒ&Ð&Øˆkð HØ&+Ô&8ðHð Hð Hñ Iô Ið 	Ið 'øð ð %ð %ð %ð%Ø!Ð!Ð!Ð!Ð!øØð %ð %ð %Øˆkðñô à!$ð	%øøøøð%øøøð 	"Ð!ð%øøøð )Ð (Ð (Ð (Ð (Ð (Ð (Ð (Ð (Ð (ðð ð ð ð ð ð ð ð ð ð ð ð ð ð 4Ð 3Ð 3Ð 3Ð 3Ð 3Ø  Ð  Ð  Ð  Ð  Ð  Ø *Ð *Ð *Ð *Ð *Ð *ð$ð $ð $ð"ð "ð "ð "ð$ð ð ð(b&ð b&ð b&ð b&ð b&�Lñ b&ô b&ð b&ðJQCð QCð QCð QCð QCÐ.ñ QCô QCð QCðhð ð ð ð ñ ô ð ðx8ð x8ð x8ð x8ð x8Ð(ñ x8ô x8ð x8ðv 
„ð&ð &ð &ð &ð &�Hñ &ô &ñ „ð&ð &ð &s2   ”#8 ¸A¾AÁAÁAÁAÁAÁAÁA