Ë
    ¨ehº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�«      ‚	 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jD                   G d„ de«      «       Z#y# e$ r 	 ddl	Zn# e$ rZ
 ed«      e
‚dZ
[
ww xY wY Œ�w xY w)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                 ór   — t        |«      dk(  s|r | j                  g |d d ¢|‘­Ž  y  | j                  |Ž  y ©Né   )ÚlenÚset_source_rgba)ÚctxÚcolorÚalphaÚforced_alphas       ú_/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/matplotlib/backends/backend_cairo.pyÚ	_set_rgbar   %   s=   € Ü
ˆ5ƒz�Q‚™,Øˆ×ÑÐ.˜U 2 A˜YÐ.¨Ô.àˆ×Ñ˜UÒ#ó    c                 ó8  — |j                  |d|¬«      D �]  \  }}|t        j                  k(  r | j                  |Ž  Œ*|t        j                  k(  r| j                  «        ŒN|t        j                  k(  r | j                  |Ž  Œq|t        j                  k(  r\t        j                  | j                  «       «      }|d d }|dd  } | j                  g |dz  |dz  dz  z   ¢|dz  dz  |dz  z   ¢|¢­Ž  Œà|t        j                  k(  sŒô | j                  |Ž  �Œ y )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—;‘;ÒØˆC�K‰K˜Ò Ø”T—^‘^Ò#Ø�N‰NÕØ”T—[‘[Ò ØˆC�K‰K˜Ò Ø”T—[‘[Ò Ü—*‘*˜S×2Ñ2Ó4Ó5ˆCØ�r˜�
ˆAØ�r�s�ˆAØˆC�L‰LÐJ˜3 ™7 Q¨¡U¨Q¡YÑ.ÐJ°1°q±5¸1±9¸qÀ1¹uÑ3DÐJÈÔJØ”T—[‘[Ó ØˆC�L‰L˜&Ó!ñ"r   c                 ó  ‡ — ˆ fd„} |d«      }t        t        d |d«      j                  «       › �«      } |d«      }t        j                  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                 ód   •— 	  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   s<   ø€ ð	(Ø0”7˜4 4¨ w Ó0Ó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€   ø€ ô
(ñ �‹<€DÜ”E˜[©¨g«×)<Ñ)<Ó)>Ð(?Ð@ÓA€EÙ�(‹^€Fä×)Ñ)×-Ñ-¨f°fÓ=ÀÒCô ×&Ò&ä×)Ñ)ð ð �˜ÐÐr   c                   óv   ‡ — 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        ‰| �-  «        y )N)Úrendererr   )ÚdpiÚGraphicsContextCairoÚgcÚwidthÚheightrB   ÚContextÚImageSurfaceÚFORMAT_ARGB32Útext_ctxÚsuperÚ__init__)ÚselfrN   Ú	__class__s     €r   rX   zRendererCairo.__init__S   sW   ø€ ØˆŒÜ&°Ô5ˆŒØˆŒ
ØˆŒÜŸ™Ü×Ñœe×1Ñ1°1°aÓ8ó:ˆŒä‰ÑÕr   c                 óè  — |j                  «       }t        |d«      r-t        |d«      r!|j                  «       |j                  «       f}n‰t        |d«      r)|j	                  «       }|j
                  |j                  f}nT|j                  «        |j                  «        |j                  «       ^}}|rt        d«      ‚|^}}}|j                  «        || j                  _        |\  | _        | _        y )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Ø×$Ñ$Ó&¨×(:Ñ(:Ó(<Ð<‰DÜ�W˜mÔ,Ø×%Ñ%Ó'ˆCØ—9‘9˜cŸj™jÐ(‰Dà�H‰HŒJØ�N‰NÔØ×6Ñ6Ó8ˆKˆD�4ÙÜÐ ;Ó<Ð<ØˆKˆAˆq�4Ø�K‰KŒMØˆ�‰ŒØ"&ÑˆŒ
�D•Kr   c                 ó¤   — |�>| j                  «        t        | |||«       | j                  «        | j                  «        | j	                  «        y ©N)ra   r   Úfill_preservere   Ústroke)r   Úfill_cr   Úalpha_overridess       r   Ú_fill_and_strokezRendererCairo._fill_and_stroken   s=   € àÐØ�H‰HŒJÜ�c˜6 5¨/Ô:Ø×ÑÔØ�K‰KŒMØ�
‰
�r   c                 ó  — |j                   }|€ |j                  «       €|j                  «       nd }|t        «       j	                  dd«      j                  d| j                  «      z   }|j                  «        t        ||||«       |�Z|j                  «        t        |||j                  «       |j                  «       «       |j                  «        |j                  «        |j                  «       }|�r„t!        | j"                  «      }|j%                  «       j'                  t(        j*                  j,                  ||«      }	t)        j.                  |	«      }
t        |
|t        «       j	                  || «      j                  d|«      d «       |
j1                  | j3                  |j5                  «       «      «        |
j6                  |j9                  «       Ž  |
j                  «        |
j;                  «        t)        j<                  |	«      }|j?                  t(        j@                  jB                  «       |j                  «        |jE                  |«       |j                  «        |j                  «        |j;                  «        y ©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   sï  € à�f‰fˆð �? r§|¡|£~Ð'=ð × Ñ Ô"àð 	ð Ü“z×'Ñ'¨¨2Ó.×8Ñ8¸¸D¿K¹KÓHñIˆ	à�‰ŒÜ�S˜$ 	¨4Ô0ØÐØ�H‰HŒJÜ�c˜7 B§L¡L£N°B×4GÑ4GÓ4IÔJØ×ÑÔØ�K‰KŒMØ×&Ñ&Ó(ˆ
ÚÜ�d—h‘h“-ˆCØŸN™NÓ,×;Ñ;Ü—‘×)Ñ)¨3°ó5ˆMäŸ™ mÓ4ˆIÜ˜ JÜ!›×)Ñ)¨#°¨tÓ4×>Ñ>¸qÀ#ÓFØôð ×$Ñ$ T×%:Ñ%:¸2×;QÑ;QÓ;SÓ%TÔUØ%ˆI×%Ñ% r×'9Ñ'9Ó';Ñ<Ø×#Ñ#Ô%Ø×ÑÔÜ!×0Ñ0°Ó?ˆMØ×$Ñ$¤U§\¡\×%8Ñ%8Ô9Ø�H‰HŒJØ�N‰N˜=Ô)Ø×ÑÔØ�K‰KŒMØ�
‰
�r   c           	      ór  — |j                   }|j                  «        t        |||t        «       j	                  dd«      z   «       |j                  «       }|j                  «       \  }}	}
}|dk(  r|	dk(  r|
dk(  r
|dk(  rd}d }nd}|t        «       j	                  dd«      j                  d| j                  «      z   }|j                  «        t        |j                  |d¬«      «      D ]š  \  }\  }}t        |«      sŒ|dd  \  }}|j                  «        |j                  ||«       |j                  |«       |j                  «        |s	|dz  dk(  sŒk| j                  |||j!                  «       |j#                  «       «       Œœ |s1| j                  |||j!                  «       |j#                  «       «       y y )	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‰fˆØ�‰Œä�S˜+ |´h³j×6FÑ6FÀqÈ"Ó6MÑ'MÔNØ×(Ñ(Ó*ˆð ×)Ñ)Ó+‰ˆˆB��BØ�Š7�r˜Q’w 2¨¢7¨r°QªwØˆFà‰GàˆFàÜ“z×'Ñ'¨¨2Ó.×8Ñ8¸¸D¿K¹KÓHñIˆ	ð 	�‰ŒÜ$-Ø×"Ñ" 9°uÐ"Ó=ó%?ò 	MÑ ˆAÑ �˜%ä�8�}Ø  �}‘��1Ø—‘”
ð —‘˜a Ô#Ø—‘ Ô,à—‘”ñ ˜Q ™X¨›]Ø×)Ñ)Ø˜W b§l¡l£n°b×6IÑ6IÓ6KõMð#	Mñ* Ø×!Ñ!Ø�W˜bŸl™l›n¨b×.AÑ.AÓ.CõEð r   c                 ó   — t        j                  |d d d…   «      }t        j                  j	                  |j                  «       j                  t        j                  |j                  d   |j                  d   |j                  d   dz  «      }|j                  }| j                  |z
  |j                  d   z
  }|j                  «        |j                  |t        |«      t        |«      «       |j                  «        |j                  «        y )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ÑAÀ"ÁTÀrÀTÁ(ÓKˆÜ×$Ñ$×4Ñ4Ø�H‰H‹J�O‰OœU×0Ñ0Ø�H‰H�Q‰K˜Ÿ™ !™ b§h¡h¨q¡k°A¡oó7ˆð �f‰fˆØ�K‰K˜!‰O˜bŸh™h q™kÑ)ˆà�‰Œ
Ø×Ñ˜w¬¨a«´%¸³(Ô;Ø�	‰	ŒØ�‰�r   c	                 óV  — |r| j                  ||||||«       y |j                  }	|	j                  «        |	j                  ||«       |	j	                  «         |	j
                  t        |«      Ž  |	j                  | j                  |j                  «       «      «       t        j                  «       }
|
j                  |j                  «       «       |	j                  |
«       |r%|	j                  t!        j"                  | «      «       |	j%                  |«       |	j'                  «        y 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Ù   sä   € ñ
 Ø×Ñ  A q¨!¨T°5Õ9ð —&‘&ˆCØ�L‰LŒNØ�K‰K˜˜1Ôà�H‰HŒJØ ˆC× Ñ Ô"AÀ$Ó"GÑHØ×Ñ˜d×3Ñ3°D×4KÑ4KÓ4MÓNÔOÜ×$Ñ$Ó&ˆDØ×Ñ˜r×1Ñ1Ó3Ô4Ø× Ñ  Ô&ÙØ—
‘
œ2Ÿ:™: u fÓ-Ô.Ø�M‰M˜!ÔØ�K‰K�Mr   c                 óü  — |j                   }| j                  j                  j                  || j                  |«      \  }}	}
}}|j                  «        |j                  ||«       |r%|j                  t        j                  | «      «       |D ]†  \  }}}}}|j                  «        |j                  || «        |j                  t        t        |«      «      Ž  |j                  | j!                  |«      «       |j#                  t%        |«      «       Œˆ |D ]P  \  }}}}|j                  «        |j'                  || || «       |j)                  ddd«       |j+                  «        ŒR |j-                  «        y ©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ÚidxÚoxÚoyÚwÚhs                       r   r²   zRendererCairo._draw_mathtextñ   sH  € Ø�f‰fˆà�O‰O×+Ñ+×1Ñ1°!°T·X±X¸tÓDñ 	.ˆˆv�w ¨ð 	�‰Œ
Ø�‰�a˜ÔÙØ�J‰J”r—z‘z 5 &Ó)Ô*à+1ò 	$Ñ'ˆD�(˜C  RØ�L‰LŒNØ�K‰K˜˜R˜CÔ Ø ˆC× Ñ Ü0´ÀÓ1FÓGñIà×Ñ˜d×3Ñ3°HÓ=Ô>Ø�M‰Mœ#˜c›(Õ#ð	$ð "ò 	 ‰LˆB��A�qØ�L‰LŒNØ�M‰M˜"˜r˜c 1 q bÔ)Ø×Ñ˜q ! QÔ'Ø×ÑÕð		 ð 	�‰�r   c                 ó2   — | j                   | j                  fS rn   )rQ   rR   ©rY   s    r   Úget_canvas_width_heightz%RendererCairo.get_canvas_width_height  s   € à�z‰z˜4Ÿ;™;Ð&Ð&r   c                 óÌ  •— |dk(  rt         ‰| �  |||«      S |r:| j                  j                  j	                  || j
                  |«      ^}}}}|||fS | j                  }|j                  «         |j                  t        |«      Ž  |j                  | j                  |j                  «       «      «       |j                  |«      dd \  }	}
}|j                  «        |
|||	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Ñ8¸¸DÀ&ÓIÐIáà—‘×/Ñ/×5Ñ5°a¸¿¹À4ÓHð 'ˆE�6˜7 Qà˜& 'Ð)Ð)à�m‰mˆð 	�‰Œ
Øˆ×ÑÔ=¸dÓCÑDØ×Ñ˜$×/Ñ/°×0GÑ0GÓ0IÓJÔKà×*Ñ*¨1Ó-¨a°Ð2‰ˆ	�1�aØ�‰Œà�!�Q˜‘]Ð"Ð"r   c                 óÈ   — | j                   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'  sC   € à�‰�‰×ÑÔð
 ˆ�‰ŒØ %ˆ�‰ÔØˆ�‰ŒØ�w‰wˆr   c                 ó&   — |dz  | j                   z  S )NéH   )rN   )rY   r0   s     r   r„   zRendererCairo.points_to_pixels3  s   € à˜‰{˜TŸX™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   sV   ø„ ôò'ð$ ñó ðó#ðL "ó.Eò`óò0ò4'ô#ò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                 ó0   •— t         ‰| �  «        || _        y rn   )rW   rX   rM   )rY   rM   rZ   s     €r   rX   zGraphicsContextCairo.__init__E  s   ø€ Ü‰ÑÔØ ˆ�r   c                 ó8   — | j                   j                  «        y rn   )r   re   rÖ   s    r   re   zGraphicsContextCairo.restoreI  s   € Ø�‰×ÑÕr   c                 ó    •— t         ‰| �  |«       t        | j                  | j                  | j                  «       | j                  «       «       y rn   )rW   Ú	set_alphar   r   Ú_rgbr|   r}   )rY   r   rZ   s     €r   ró   zGraphicsContextCairo.set_alphaL  s:   ø€ Ü‰Ñ˜%Ô ÜØ�H‰H�d—i‘i §¡Ó!1°4×3HÑ3HÓ3Jõ	Lr   c                 ó„   — | j                   j                  |rt        j                  «       y t        j                  «       y rn   )r   r·   rB   ÚANTIALIAS_DEFAULTÚANTIALIAS_NONE)rY   r4   s     r   Úset_antialiasedz$GraphicsContextCairo.set_antialiasedQ  s/   € Ø�‰×ÑÙ'(ŒE×#Ñ#õ	DÜ.3×.BÑ.Bõ	Dr   c                 ó6   — | j                   j                  «       S rn   )r   Úget_antialiasrÖ   s    r   r¸   z$GraphicsContextCairo.get_antialiasedU  s   € Ø�x‰x×%Ñ%Ó'Ð'r   c                 ó†   — | j                   j                  t        j                  | j                  |¬«      «       || _        y )N)Úcapstyle)r   Úset_line_capr   Úcheck_getitemÚ_capdÚ	_capstyle)rY   Úcss     r   Úset_capstylez!GraphicsContextCairo.set_capstyleX  s,   € Ø�‰×Ñœd×0Ñ0°·±ÀbÔIÔJØˆ�r   c                 ó  — |sy t        j                  |j                  «      \  }}}}| j                  }|j	                  «        |j                  || j                  j                  |z
  |z
  ||«       |j                  «        y 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\  se   € ÙØÜ—X‘X˜i×.Ñ.Ó/‰
ˆˆ1ˆa�Ø�h‰hˆØ�‰ŒØ�‰�a˜Ÿ™×-Ñ-°Ñ1°AÑ5°q¸!Ô<Ø�‰�
r   c                 ó$  — |sy |j                  «       \  }}| j                  }|j                  «        |t        «       j	                  dd«      j                  d| j                  j                  «      z   }t        |||«       |j                  «        y 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_pathe  su   € ÙØØ×<Ñ<Ó>‰ˆˆvØ�h‰hˆØ�‰ŒØÜ“J×$Ñ$ Q¨Ó+×5Ñ5°a¸¿¹×9MÑ9MÓNñOˆä�S˜% Ô(Ø�‰�
r   c           	      óö   — ||f| _         |€| j                  j                  g d«       y | j                  j                  t        | j                  j                  t        j                  |«      «      «      |«       y rÄ   )Ú_dashesr   Úset_dashÚlistrM   r„   r)   r*   )rY   ÚoffsetÚdashess      r   Ú
set_dasheszGraphicsContextCairo.set_dashesp  s[   € Ø˜v�~ˆŒØˆ>Ø�H‰H×Ñ˜b !Õ$à�H‰H×ÑÜ�T—]‘]×3Ñ3´B·J±J¸vÓ4FÓGÓHØõr   c                 óä   •— t         ‰| �  ||«       t        | j                  «      dk(  r$ | j                  j
                  | j                  Ž  y  | j                  j                  | j                  Ž  y r   )rW   Úset_foregroundr   rô   r   rÊ   r   )rY   ÚfgÚisRGBArZ   s      €r   r  z#GraphicsContextCairo.set_foregroundy  sR   ø€ Ü‰Ñ˜r 6Ô*Üˆt�y‰y‹>˜QÒØ#ˆD�H‰H×#Ñ# T§Y¡YÒ/à$ˆD�H‰H×$Ñ$ d§i¡iÒ0r   c                 óX   — | j                   j                  «       j                  «       d d S r   )r   Ú
get_sourceÚget_rgbarÖ   s    r   Úget_rgbzGraphicsContextCairo.get_rgb€  s%   € Ø�x‰x×"Ñ"Ó$×-Ñ-Ó/°°Ð3Ð3r   c                 ó†   — | j                   j                  t        j                  | j                  |¬«      «       || _        y )N)Ú	joinstyle)r   Úset_line_joinr   rþ   Ú_joindÚ
_joinstyle)rY   Újss     r   Úset_joinstylez"GraphicsContextCairo.set_joinstyleƒ  s,   € Ø�‰×Ñœt×1Ñ1°$·+±+ÈÔLÔMØˆ�r   c                 óŒ   — t        |«      | _        | j                  j                  | j                  j                  |«      «       y rn   )r­   Ú
_linewidthr   rƒ   rM   r„   )rY   rÓ   s     r   Úset_linewidthz"GraphicsContextCairo.set_linewidth‡  s.   € Ü ›(ˆŒØ�‰×Ñ §¡× >Ñ >¸qÓ AÕ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   8  s�   ø„ à×'Ñ'Ø×'Ñ'Ø×'Ñ'ñ€Fð ×*Ñ*Ø×,Ñ,Ø×+Ñ+ñ€Eô!òôLò
Dò(òòò	òõ1ò4òöCr   rO   c                   ó   — e Zd Zd„ Zy)Ú_CairoRegionc                 ó    — || _         || _        y 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y)ÚFigureCanvasCairoc                 óz   — t        | d«      s$t        | j                  j                  «      | _        | j                  S )NÚ_cached_renderer)r`   rK   ÚfigurerN   r4  rÖ   s    r   Ú	_rendererzFigureCanvasCairo._renderer“  s0   € ô �tÐ/Ô0Ü$1°$·+±+·/±/Ó$BˆDÔ!Ø×$Ñ$Ð$r   c                 ó   — | j                   S rn   )r6  rÖ   s    r   Úget_rendererzFigureCanvasCairo.get_renderer�  s   € Ø�~‰~Ðr   c           	      ó¾  — | j                   j                  j                  j                  «       }t	        |t
        j                  «      st        d«      ‚|j                  «       }|j                  «       }t        j                  |j                  «      }t        j                  |j                  «      }t        j                  ||j                  z
  «      }t        j                  ||j                   z
  «      }d|k  rA||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*                  |j-                  «       t(        j.                  «      j1                  ||f«      |	   j3                  «       }
t5        |	|
«      S )Nz;copy_from_bbox only works when rendering to an ImageSurfacer   zInvalid bbox)r6  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š   r@  r›   Úslsrª   s              r   Úcopy_from_bboxz FigureCanvasCairo.copy_from_bbox   sp  € Ø—.‘.×#Ñ#×'Ñ'×2Ñ2Ó4ˆÜ˜'¤5×#5Ñ#5Ô6ÜØMóOð Oà×ÑÓ ˆØ×ÑÓ!ˆÜ�Y‰Y�t—w‘wÓˆÜ�Z‰Z˜Ÿ™Ó ˆÜ�Y‰Y�r˜DŸG™G‘|Ó$ˆÜ�Z‰Z˜˜TŸW™W™Ó%ˆØ�R’˜B "šH¨¯©°D·G±GÒ);Ø˜’G  b¢¨T¯W©W¸¿¹Ò-?Ü˜^Ó,Ð,Ü�B˜œS  b¡¨!›_Ñ,Ó-¬u°R¸¼cÀ"ÀrÁ'È1»oÑ9MÓ/NÐNˆÜ—‘˜g×.Ñ.Ó0´"·)±)Ó<ß‘˜"˜b˜Ó" 3ñ(ß(,©«ð 	ä˜C Ó&Ð&r   c                 óx  — | j                   j                  j                  j                  «       }t	        |t
        j                  «      st        d«      ‚|j                  «        |j                  «       }|j                  «       }|j                  \  }}|j                  t        j                  |j                  «       t        j                   «      j#                  ||f«      ||f<   |j%                  |j&                  |j&                  |j(                  |j&                  z
  |j(                  |j&                  z
  «       y )Nz;restore_region only works when rendering to an ImageSurface)r6  rP   r   r_   r:  rB   rT   r;  Úflushr\   r]   r-  r.  r)   rD  rE  rF  rG  Úmark_dirty_rectangleÚstartÚstop)rY   Úregionrf   rJ  rK  ÚslyÚslxs          r   Úrestore_regionz FigureCanvasCairo.restore_region³  së   € Ø—.‘.×#Ñ#×'Ñ'×2Ñ2Ó4ˆÜ˜'¤5×#5Ñ#5Ô6ÜØMóOð Oà�‰ŒØ×ÑÓ ˆØ×ÑÓ!ˆØ—>‘>‰ˆˆSà)/¯©ô 
�‰�w×'Ñ'Ó)¬2¯9©9Ó	5ß
‰'�2�r�(Ó
˜C ˜Hñ
&à×$Ñ$Ø�I‰I�s—y‘y #§(¡(¨S¯Y©YÑ"6¸¿¹À3Ç9Á9Ñ8Lõ	Nr   c                 óB   — | j                  «       j                  |«       y rn   )Ú_get_printed_image_surfaceÚwrite_to_png)rY   Úfobjs     r   Ú	print_pngzFigureCanvasCairo.print_pngÁ  s   € Ø×'Ñ'Ó)×6Ñ6°tÕ<r   c           	      óø   — | j                  «       \  }}| j                  «       j                  «       }|j                  t	        j
                  t        j                  |«      j                  ||df«      «      «       y )Nr¦   )	Úget_width_heightrX  rE  Úwriter   Ú._premultiplied_argb32_to_unmultiplied_rgba8888r)   r*   rG  )rY   rZ  rQ   rR   Úbufs        r   Ú
print_rgbazFigureCanvasCairo.print_rgbaÄ  sa   € Ø×-Ñ-Ó/‰ˆˆvØ×-Ñ-Ó/×8Ñ8Ó:ˆØ�
‰
”5×GÑGÜ�J‰J�s‹O×#Ñ# U¨F°AÐ$6Ó7ó9õ 	:r   c                 óf  — | j                   j                  | j                  _        | j                  «       \  }}t	        j
                  t        j                  ||«      }| j                  j                  t	        j                  |«      «       | j                   j                  | j                  «       |S rn   )
r5  rN   r6  r]  rB   rT   rU   rl   rS   Údraw)rY   rQ   rR   rf   s       r   rX  z,FigureCanvasCairo._get_printed_image_surfaceÌ  sx   € Ø!Ÿ[™[Ÿ_™_ˆ�‰ÔØ×-Ñ-Ó/‰ˆˆvÜ×$Ñ$¤U×%8Ñ%8¸%ÀÓHˆØ�‰×"Ñ"¤5§=¡=°Ó#9Ô:Ø�‰×Ñ˜Ÿ™Ô(Øˆr   Úportrait)Úorientationc                óŒ  — d}|| j                   _        | j                   j                  «       \  }}||z  ||z  }}|dk(  r||}}|dk(  r3t        t        d«      st        d«      ‚t	        j                  |||«      }	nÁ|dk(  r3t        t        d«      st        d«      ‚t	        j                  |||«      }	n‰|d	v rwt        t        d
«      st        d«      ‚|dk(  r?t        |t        «      rt        j                  |d«      }nt        j                  d d|¬«      }t	        j                  |||«      }	nt        d|›�«      ‚| j                   j                  | j                  _        | j                  j                  t	        j                   |	«      «       | j                  j"                  j$                  }
|dk(  r5|
j'                  t(        j*                  dz  «       |
j-                  d| «       | j                   j/                  | j                  «       |
j1                  «        |	j3                  «        |dk(  r|j5                  «        y y )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 enabledrm  Úwb)ÚfileobjzUnknown format: r   r   )r5  rN   Úget_size_inchesr`   rB   r;  ri  rk  r:  ÚstrÚgzipÚGzipFilern  rA  r6  rl   rS   rP   r   rº   r)   Úpirz   rc  Ú	show_pageÚfinishÚclose)rY   ÚfmtrZ  re  rN   Úw_inÚh_inÚwidth_in_pointsÚheight_in_pointsrf   r   s              r   Ú_savezFigureCanvasCairo._saveÔ  sñ  € ð ˆØˆ�‰ŒØ—[‘[×0Ñ0Ó2‰
ˆˆdØ,0°3©J¸¸s¹
Ð)ˆà˜+Ò%à  /ð .ˆOð �$Š;Üœ5 +Ô.Ü"ð $5ó 6ð 6ä—o‘o d¨OÐ=MÓN‰GØ�EŠ\Üœ5 ,Ô/Ü"ð $5ó 6ð 6ä×&Ñ& t¨_Ð>NÓO‰GØ�OÑ#Üœ5 ,Ô/Ü"ð $5ó 6ð 6à�fŠ}Ü˜d¤CÔ(ÜŸ=™=¨¨tÓ4‘DäŸ=™=¨¨t¸TÔB�DÜ×&Ñ& t¨_Ð>NÓO‰GäÐ/°¨wÐ7Ó8Ð8à!Ÿ[™[Ÿ_™_ˆ�‰ÔØ�‰×"Ñ"¤5§=¡=°Ó#9Ô:Ø�n‰n×Ñ×#Ñ#ˆà˜+Ò%Ø�J‰J”r—u‘u˜q‘yÔ!Ø�M‰M˜!Ð.Ð.Ô/ð 	�‰×Ñ˜Ÿ™Ô(à�‰ŒØ�‰ÔØ�&Š=Ø�J‰J�Lð r   rj  rh  rl  rm  N)rä   rå   ræ   Úpropertyr6  r8  rM  rV  r[  ra  Ú	print_rawrX  r~  Ú	functoolsÚpartialmethodÚ	print_pdfÚprint_psÚ	print_svgÚ
print_svgzr0  r   r   r2  r2  ’  s—   „ Øñ%ó ð%òò'ò&Nò=ò:ð €Iòð /9ô 1ðf (�	×'Ñ'¨¨uÓ5€IØ&ˆy×&Ñ& u¨dÓ3€HØ'�	×'Ñ'¨¨uÓ5€IØ(�×(Ñ(¨°Ó7�Jr   r2  c                   ó,   — e Zd Zej                  ZeZeZ	y)Ú_BackendCairoN)
rä   rå   ræ   rB   ÚversionÚbackend_versionr2  ÚFigureCanvasr   ÚFigureManagerr0  r   r   rˆ  rˆ    s   „ à—m‘m€OØ$€LØ%�Mr   rˆ  rn   )$Ú__doc__r�  rs  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+  r2  Úexportrˆ  r0  r   r   ú<module>r™     s%  ðñó Û Û ã ð%ÛØ×Ñ˜JÒ&Ùð &Ø&+×&8Ñ&8Ð%9¸ðHó Ið 	Ið '÷ )Ñ (÷õ õ 4Ý  Ý *ò$ó"ò$ô(c&�Lô c&ôLQCÐ.ô QC÷hñ ôx8Ð(ô x8ðv 
‡�ô&�Hó &ó ñ&øðu ò %ð%Ü!øØò %Ùðóà!$ð	%ûð%úñ 	"ð%ús5   ”)B8 Â8CÂ>CÃCÃCÃ	CÃCÃCÃC