ó
    {ñ:i8Ç  ã                   óö  • S SK r S SKrS SKrS SKrS SKrS SKJr  S SKrS SKrS SK	r	S SK
r
S SKrS SKrS SKJr  S SKrS SKJrJr  S SKJrJrJrJr  S SKJr  S SKJr  S SKJr  S S	K J!r!  S S
KJ"r"  S SK#J$r$J%r%  \RL                  " \'5      r(S r)\
RT                  " S5      r+S r,S r-S r.S r/ " S S5      r0S r1S r2SSSS.r3S r4S r5 " S S\5      r6 " S S\5      r7\r8S r9\Rt                   " S! S"\5      5       r;g)#é    N)ÚBytesIO)ÚImage)ÚcbookÚfont_manager)Ú_BackendÚFigureCanvasBaseÚFigureManagerBaseÚRendererBase)ÚMixedModeRenderer)Úrgb2hex)ÚUTC)ÚPath)Ú_path)ÚAffine2DÚAffine2DBasec                 ór   • U R                  SS5      n U R                  SS5      n U R                  SS5      n U $ )NÚ&ú&amp;Ú<ú&lt;Ú>ú&gt;©Úreplace©Úss    Úb/srv/projetos/modelo_ml_acdoc/venv/lib/python3.13/site-packages/matplotlib/backends/backend_svg.pyÚ_escape_cdatar   E   s7   € Ø	�	‰	�#�wÓ€AØ	�	‰	�#�vÓ€AØ	�	‰	�#�vÓ€AØ€Hó    z-(?=-)c                 óD   • [        U 5      n [        R                  SU 5      $ )Nz- )r   Ú_escape_xml_commentÚsubr   s    r   Ú_escape_commentr#   O   s   € Ü�aÓ€AÜ×"Ñ" 4¨Ó+Ð+r   c                 óº   • U R                  SS5      n U R                  SS5      n U R                  SS5      n U R                  SS5      n U R                  S	S
5      n U $ )Nr   r   Ú'z&apos;Ú"z&quot;r   r   r   r   r   r   s    r   Ú_escape_attribr'   T   sW   € Ø	�	‰	�#�wÓ€AØ	�	‰	�#�xÓ €AØ	�	‰	�#�xÓ €AØ	�	‰	�#�vÓ€AØ	�	‰	�#�vÓ€AØ€Hr   c                 ó€   • SU ;  a  S[        U 5      -   S-   $ SU ;  a  S[        U 5      -   S-   $ S[        U 5      -   S-   $ )Nr&   r%   )r   r'   r   s    r   Ú_quote_escape_attribr)   ]   sS   € Ø,/°q«LˆC”- Ó"Ñ" SÑ(ð +Ø,/°q«LˆC”- Ó"Ñ" SÑ(ð+à”. Ó#Ñ# cÑ)ð+r   c                 óF   • U S R                  S5      R                  S5      $ )z|
Create a short string representation of a float, which is %f
formatting with trailing zeros and the decimal point removed.
ÚfÚ0Ú.)Úrstrip)Úxs    r   Ú_short_float_fmtr0   c   s"   € ð
 �ˆU�?‰?˜3Ó×&Ñ& sÓ+Ð+r   c                   ód   • \ rS rSrSrS rSS jr0 4S jrS rS r	SS	 jr
S
 rS0 4S jrS rSrg)Ú	XMLWriterék   z=
Parameters
----------
file : writable text file-like object
c                 ó¢   • UR                   U l        [        US5      (       a  UR                  U l        SU l        / U l        / U l        SU l        g )NÚflushr   z@                                                                )ÚwriteÚ_XMLWriter__writeÚhasattrr5   Ú_XMLWriter__openÚ_XMLWriter__tagsÚ_XMLWriter__dataÚ_XMLWriter__indentation)ÚselfÚfiles     r   Ú__init__ÚXMLWriter.__init__r   sB   € Ø—z‘zˆŒÜ�4˜×!Ñ!ØŸ™ˆDŒJØˆŒØˆŒØˆŒØ%ˆÕr   c                 ó$  • U R                   (       a1  U(       a  U R                  S5        OU R                  S5        SU l         U R                  (       a=  SR                  U R                  5      nU R                  [	        U5      5        / U l        g g )Nú>
r   r   Ú )r9   r7   r;   Újoinr   )r=   ÚindentÚdatas      r   Ú__flushÚXMLWriter.__flush{   sa   € à�;�;ÞØ—‘˜UÕ#à—‘˜SÔ!ØˆDŒKØ�;�;Ø—7‘7˜4Ÿ;™;Ó'ˆDØ�L‰Lœ tÓ,Ô-ØˆD�Kð r   c                 óð  • U R                  5         [        U5      n/ U l        U R                  R	                  U5        U R                  U R                  S[        U R                  5      S-
   5        U R                  SU 35        0 UEUER                  5        H;  u  pEU(       d  M  [        U5      n[        U5      nU R                  SU SU 35        M=     SU l
        [        U R                  5      S-
  $ )a®  
Open a new element.  Attributes can be given as keyword
arguments, or as a string/string dictionary. The method returns
an opaque identifier that can be passed to the :meth:`close`
method, to close all open elements up to and including this one.

Parameters
----------
tag
    Element tag.
attrib
    Attribute dictionary.  Alternatively, attributes can be given as
    keyword arguments.

Returns
-------
An element identifier.
Né   r   Ú Ú=)Ú_XMLWriter__flushr   r;   r:   Úappendr7   r<   ÚlenÚitemsr)   r9   )r=   ÚtagÚattribÚextraÚkÚvs         r   ÚstartÚXMLWriter.startˆ   s×   € ð& 	�‰ŒÜ˜CÓ ˆØˆŒØ�‰×Ñ˜3ÔØ�‰�T×'Ñ'Ð(=¬¨T¯[©[Ó)9¸AÑ)=Ð>Ô?Ø�‰�q˜˜�YÔØ'�vÐ' Ð'×-Ñ-Ö/‰DˆAßˆqÜ! !Ó$�Ü(¨Ó+�Ø—‘˜q   1 Q C˜[Ö)ñ	 0ð
 ˆŒÜ�4—;‘;Ó !Ñ#Ð#r   c                 óÂ   • U R                  5         U R                  U R                  S[        U R                  5       5        U R                  S[        U5       S35        g)z\
Add a comment to the output stream.

Parameters
----------
comment : str
    Comment text.
Nz<!-- z -->
)rM   r7   r<   rO   r:   r#   )r=   Úcomments     r   rY   ÚXMLWriter.comment©   sK   € ð 	�‰ŒØ�‰�T×'Ñ'Ð(9¬¨T¯[©[Ó)9Ð:Ô;Ø�‰�uœ_¨WÓ5Ð6°fÐ=Õ>r   c                 ó:   • U R                   R                  U5        g)z`
Add character data to the output stream.

Parameters
----------
text : str
    Character data.
N)r;   rN   )r=   Útexts     r   rF   ÚXMLWriter.data¶   s   € ð 	�‰×Ñ˜4Õ r   Nc                 óP  • U(       aS  U R                   (       d   SU S35       e[        U5      U R                   S   :X  d   SU R                   S    SU 35       eOU R                   (       d   S5       eU R                   R                  5       nU R                  (       a  U R	                  U5        O*U R
                  (       a  SU l        U R                  S5        g	U(       a1  U R                  U R                  S	[        U R                   5       5        U R                  S
U S35        g	)zô
Close the current element (opened by the most recent call to
:meth:`start`).

Parameters
----------
tag
    Element tag.  If given, the tag must match the start tag.  If
    omitted, the current element is closed.
indent : bool, default: True
zunbalanced end(Ú)éÿÿÿÿzexpected end(z), got zunbalanced end()r   z/>
Nz</rB   )	r:   r   Úpopr;   rM   r9   r7   r<   rO   )r=   rQ   rE   s      r   ÚendÚXMLWriter.endÁ   sê   € ö Ø—;—;Ð8 /°#°°aÐ 8Ó8�;Ü  Ó%¨¯©°R©Ó8ð >Ø §¡¨B¡Ð0°¸°uÐ=ó>Ñ8ð —;—;Ð2Ð 2Ó2�;Ø�k‰k�o‰oÓˆØ�;�;Ø�L‰L˜Õ Ø�[�[ØˆDŒKØ�L‰L˜Ô ØÞØ�L‰L˜×+Ñ+Ð,=¬S°·±Ó-=Ð>Ô?Ø�‰�r˜#˜˜c�]Õ#r   c                 óŽ   • [        U R                  5      U:”  a,  U R                  5         [        U R                  5      U:”  a  M+  gg)z·
Close open elements, up to (and including) the element identified
by the given identifier.

Parameters
----------
id
    Element identifier, as returned by the :meth:`start` method.
N)rO   r:   rb   )r=   Úids     r   ÚcloseÚXMLWriter.closeÞ   s1   € ô �$—+‘+Ó Ó#Ø�H‰HŒJô �$—+‘+Ó ×#r   c                 óx   • U R                   " X40 UD6  U(       a  U R                  U5        U R                  SS9  g)z“
Add an entire element.  This is the same as calling :meth:`start`,
:meth:`data`, and :meth:`end` in sequence. The *text* argument can be
omitted.
F)rE   N)rV   rF   rb   )r=   rQ   r\   rR   rS   s        r   ÚelementÚXMLWriter.elementë   s1   € ð 	�
Š
�3Ñ( %Ò(ÞØ�I‰I�dŒOØ�‰˜ˆÒr   c                 ó   • g)zFlush the output stream.N© ©r=   s    r   r5   ÚXMLWriter.flushö   s   € àr   )Ú__dataÚ__indentationÚ__openÚ__tagsÚ__writer5   )T©NT)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r?   rM   rV   rY   rF   rb   rf   ri   r5   Ú__static_attributes__rl   r   r   r2   r2   k   sA   † ñò&ôð !#ô $òB?ò	!ô$ò:ð !%¨Rô 	õr   r2   c           
      óZ  • / nU  H“  u  p#US:X  a  US:X  d  US:X  d  US:X  a  US:X  d  US:X  a  US:X  a  M1  US:X  a%  [        U[        5      (       a  UR                  5       nUR                  S	R	                  US
R                  S U 5       5      5      5        M•     S
R                  U5      $ )NÚscale)rJ   )rJ   rJ   Ú	translate)r   r   Úrotate)r   Úmatrixz{}({})rK   c              3   ó8   #   • U  H  n[        U5      v •  M     g 7f©N©r0   )Ú.0r/   s     r   Ú	<genexpr>Ú&_generate_transform.<locals>.<genexpr>  s   é € Ð>º°1Ô+¨A×.Ð.ºùó   ‚)Ú
isinstancer   Ú	to_valuesrN   ÚformatrD   )Útransform_listÚpartsÚtypeÚvalues       r   Ú_generate_transformrŽ   û   s¢   € Ø€EÛ%‰ˆØ�G‹O ¨$£°%¸6³/Ø˜;Ó&¨5°F«?Ø˜8Ó#¨°«ÙØ�8Ó¤
¨5´,× ?Ñ ?Ø—O‘OÓ%ˆEØ�‰�X—_‘_Ø�#—(‘(Ñ>¹Ó>Ó>ó@ö 	Añ &ð �8‰8�E‹?Ðr   c                 óN   • SR                  S U R                  5        5       5      $ )Nz; c              3   ó4   #   • U  H  u  pU S U 3v •  M     g7f)z: Nrl   )rƒ   rT   rU   s      r   r„   Ú _generate_css.<locals>.<genexpr>
  s   é € Ð<ª^¡T Q˜�s˜"˜Q˜C•[ª^ùs   ‚)rD   rP   ©rR   s    r   Ú_generate_cssr“   	  s   € Ø�9‰9Ñ<¨V¯\©\¬^Ó<Ó<Ð<r   ÚsquareÚbuttÚround)Ú
projectingr•   r–   c                 ód   • [        U [        5      (       d  [        SU S[        U 5       S35      eg )NúInvalid type for z metadata. Expected str, not r-   )r‡   ÚstrÚ	TypeErrorrŒ   )ÚinfoÚkeys     r   Ú_check_is_strrž     s;   € Ü�dœC× Ñ ÜÐ+¨C¨5Ð0MÜ ›:˜, að)ó *ð 	*ð !r   c           	      óâ   • [         R                  " U 5      (       a:  U  H3  n[        U[        5      (       a  M  [	        SU S[        U5       S35      e   g [	        SU S[        U 5       S35      e)Nr™   z) metadata. Expected iterable of str, not r-   z0 metadata. Expected str or iterable of str, not )ÚnpÚiterabler‡   rš   r›   rŒ   )Úinfosr�   rœ   s      r   Ú_check_is_iterable_of_strr£     s�   € Ü	‡{‚{�5×ÑÛˆDÜ˜d¤C×(Ó(ÜÐ"3°C°5ð 98Ü8<¸T»
°|À1ð!Fó Gð Gò ô
 Ð+¨C¨5ð 10Ü04°U³¨}¸Að?ó @ð 	@r   c                   ó   ^ • \ rS rSrS&SS.U 4S jjjrS rS rS rS rS	 r	S
 r
S rS rS rS rS rS rS'S jrS rS r  S(S jrS'S jr S'S jrU 4S jrS rS rS rS rS'S jrS rS rS'S jrS'S  jr S)S! jr!S" r"S# r#S$ r$S%r%U =r&$ )*ÚRendererSVGi!  N)Úmetadatac                ó¢  >• Xl         X l        [        U5      U l        XPl        Uc$  [        USS5      n[        U[        5      (       d  SnX@l        0 U l	        [        R                  " 5       U l        0 U l        0 U l        0 U l        SU l        0 U l        SU l        SU l        [(        T	U ]U  5         [-        5       U l        [1        U5      n[1        U5      nUR3                  [4        5        U R                  R7                  SU S3U S3SU SU 3S	S
[8        R:                  S   SS0S9U l        U R?                  U5        U RA                  5         g )NÚnamerC   r   FÚsvgÚptz0 0 rK   zhttp://www.w3.org/2000/svgz1.1zsvg.idzxmlns:xlinkzhttp://www.w3.org/1999/xlink)ÚwidthÚheightÚviewBoxÚxmlnsÚversionre   rR   )!r«   r¬   r2   ÚwriterÚ	image_dpiÚgetattrr‡   rš   ÚbasenameÚ_groupdÚ	itertoolsÚcountÚ_image_counterÚ_clip_path_idsÚ_clipdÚ_markersÚ_path_collection_idÚ_hatchdÚ_has_gouraudÚ_n_gradientsÚsuperr?   ÚdictÚ
_glyph_mapr0   r6   Ú	svgPrologrV   ÚmplÚrcParamsÚ	_start_idÚ_write_metadataÚ_write_default_style)
r=   r«   r¬   Ú	svgwriterr³   r±   r¦   Ú
str_heightÚ	str_widthÚ	__class__s
            €r   r?   ÚRendererSVG.__init__"  sB  ø€ àŒ
ØŒÜ 	Ó*ˆŒØ"ŒàÑÜ˜y¨&°"Ó5ˆHÜ˜h¬×,Ñ,Ø�Ø ŒàˆŒÜ'ŸošoÓ/ˆÔØ ˆÔØˆŒØˆŒØ#$ˆÔ ØˆŒØ!ˆÔØˆÔä‰ÑÔÜ›&ˆŒÜ% fÓ-ˆ
Ü$ UÓ+ˆ	Ø�‰œ	Ô"ØŸ™×*Ñ*ØØ�K˜rÐ"Ø �\ Ð$Ø˜9˜+ Q z lÐ3Ø.ØÜ�|‰|˜HÑ%Ø!Ð#AÐBð +ð DˆŒð 	×Ñ˜XÔ&Ø×!Ñ!Õ#r   c                 ó‚   • XR                   ;  a"  [        U R                   5      U R                   U'   U R                   U   $ )a^  
Returns a stable and unique identifier for the *clippath* argument
object within the current rendering context.

This allows plots that include custom clip paths to produce identical
SVG output on each render, provided that the :rc:`svg.hashsalt` config
setting and the ``SOURCE_DATE_EPOCH`` build-time environment variable
are set to fixed values.
)r¸   rO   )r=   Úclippaths     r   Ú_get_clippath_idÚRendererSVG._get_clippath_idJ  s<   € ð ×.Ñ.Ó.Ü,/°×0CÑ0CÓ,DˆD×Ñ Ñ)Ø×"Ñ" 8Ñ,Ð,r   c                 óÂ   • U R                  5         U R                  5         U R                  R                  U R                  5        U R                  R                  5         g r�   )Ú_write_clipsÚ_write_hatchesr°   rf   rÅ   r5   rm   s    r   ÚfinalizeÚRendererSVG.finalizeX  s@   € Ø×ÑÔØ×ÑÔØ�‰×Ñ˜$Ÿ.™.Ô)Ø�‰×ÑÕr   c                 ó	  ^• Uc  0 nSSS[         R                   S3S.UEnU R                  mSU;   a!  US   n[        US5        TR	                  SUS9  UR                  S	S 5      nUGb=  [        U[        5      (       a  U/nGO[        U[        R                  [        R                  45      (       a  UR                  5       /nOÍ[        R                  " U5      (       aš  / nU H‘  n[        U[        5      (       a  UR                  U5        M+  [        U[        R                  [        R                  45      (       a!  UR                  UR                  5       5        M{  [        S
[        U5       S35      e   O[        S[        U5       S35      eSR!                  U5      US	'   O¸S	U;  a²  ["        R$                  " S5      nU(       af  [        R                  R'                  [)        U5      [        R*                  R,                  5      nUR/                  [0        S9R                  5       US	'   O/[        R                  R3                  5       R                  5       US	'   S nU4S jnUR5                  SS 5      nUb  U" U5      nTR	                  SSU0S9  S HN  n	UR5                  U	S 5      n
U
c  M  U" U5      n[        X©5        TR	                  SU	R7                  5        3U
S9  MP     S HÄ  n	UR5                  U	S 5      nUc  M  [        U[        5      (       a  U/n[9        X¹5        U" U5      nTR;                  SU	R7                  5        35        U H5  nTR;                  S5        TR	                  SUS9  TR=                  S5        M7     TR=                  SU	R7                  5        35        MÆ     UR5                  SS 5      nUb‰  [        U[        5      (       a  U/n[9        US5        U" U5      nTR;                  S5        TR;                  S5        U H  nTR	                  SUS9  M     TR=                  S5        TR=                  S5        Ub  TR?                  U5        U(       a  [A        SSR!                  U5      -   5      eg ) Nzimage/svg+xmlz&http://purl.org/dc/dcmitype/StillImagezMatplotlib vz, https://matplotlib.org/)ÚFormatÚTypeÚCreatorÚTitleÚtitle)r\   ÚDatezQInvalid type for Date metadata. Expected iterable of str, date, or datetime, not r-   z[Invalid type for Date metadata. Expected str, date, datetime, or iterable of the same, not Ú/ÚSOURCE_DATE_EPOCH)Útzinfoc                 ó~   >• U b  U $ TR                  S5      n TR                  SSSSS.S9  TR                  S5        U $ )	Nr¦   zrdf:RDFz http://purl.org/dc/elements/1.1/zhttp://creativecommons.org/ns#z+http://www.w3.org/1999/02/22-rdf-syntax-ns#)zxmlns:dczxmlns:ccz	xmlns:rdfr’   zcc:Work)rV   )Úmidr°   s    €r   Úensure_metadataÚ4RendererSVG._write_metadata.<locals>.ensure_metadata–  sL   ø€ Ø‰Ø�
Ø—,‘,˜zÓ*ˆCØ�L‰L˜Ø>Ø<ØJñ,ˆLñ ð
 �L‰L˜Ô#ØˆJr   rØ   zdc:typezrdf:resourcer’   )	rÚ   ÚCoveragerÜ   ÚDescriptionr×   Ú
IdentifierÚLanguageÚRelationÚSourcezdc:)rÙ   ÚContributorÚ	PublisherÚRightszcc:Agentzdc:titleÚKeywordsz
dc:subjectzrdf:Bagzrdf:liz.Unknown metadata key(s) passed to SVG writer: Ú,)!rÃ   Ú__version__r°   rž   ri   Úgetr‡   rš   ÚdatetimeÚdateÚ	isoformatr    r¡   rN   r›   rŒ   rD   ÚosÚgetenvÚfromtimestampÚintÚtimezoneÚutcr   r   Útodayra   Úlowerr£   rV   rb   rf   Ú
ValueError)r=   r¦   rÛ   rò   ÚdatesÚdrá   râ   Úurir�   rœ   ÚagentsÚagentÚkeywordsÚkeywordr°   s                  @r   rÆ   ÚRendererSVG._write_metadata^  s  ø€ ð ÑØˆHà%Ø<àœsŸ™Ð/Ð/HÐIñ	
ð
 ð
ˆð —‘ˆà�hÓØ˜WÑ%ˆEÜ˜% Ô)Ø�N‰N˜7¨ˆNÑ/ð �|‰|˜F DÓ)ˆØÒÜ˜$¤×$Ñ$Ø˜’Ü˜D¤8×#4Ñ#4´h·m±mÐ"D×EÑEØŸ™Ó)Ð*‘Ü—’˜T×"Ñ"Ø�Û�AÜ! !¤S×)Ñ)ØŸ™ QžÜ# A¬×(9Ñ(9¼8¿=¹=Ð'I×JÑJØŸ™ Q§[¡[£]Ö3ä'ð#ä#'¨£7 )¨1ð.ó/ð /ò ô  ð #4ä48¸³J°<¸qð!Bó Cð Cð  #Ÿx™x¨›ˆH�VÒØ˜8Ó#ô —9’9Ð0Ó1ˆDÞÜ×(Ñ(×6Ñ6´s¸4³yÄ(×BSÑBS×BWÑBWÓX�Ø#'§<¡<´s <Ð#;×#EÑ#EÓ#G�˜Ò ä#+×#4Ñ#4×#:Ñ#:Ó#<×#FÑ#FÓ#H�˜Ñ àˆõ
	ð �l‰l˜6 4Ó(ˆØ‰?Ù! #Ó&ˆCØ�N‰N˜9¨n¸cÐ-BˆNÑCóDˆCà—<‘<  TÓ*ˆDØÓÙ% cÓ*�Ü˜dÔ(Ø—‘  S§Y¡Y£[ MÐ2¸�Ó>ñDó EˆCØ—\‘\ # tÓ,ˆFØ‰~Ùä˜&¤#×&Ñ&Ø ˜�ä% fÔ2á! #Ó&ˆCØ�L‰L˜3˜sŸy™y›{˜mÐ,Ô-Û�Ø—‘˜ZÔ(Ø—‘˜z°�Ñ6Ø—
‘
˜:Ö&ñ  ð �J‰J˜˜SŸY™Y›[˜MÐ*Ö+ñ! Eð& —<‘< 
¨DÓ1ˆØÑÜ˜(¤C×(Ñ(Ø$˜:�Ü% h°
Ô;á! #Ó&ˆCØ�L‰L˜Ô&Ø�L‰L˜Ô#Û#�Ø—‘˜x¨g�Ó6ñ $à�J‰J�yÔ!Ø�J‰J�|Ô$à‰?Ø�L‰L˜ÔæÜÐMØ ŸX™X hÓ/ñ0ó 1ð 1ð r   c                 ó¤   • U R                   n[        SSS.5      nUR                  S5        UR                  SSSU-  S9  UR	                  S5        g )	Nr–   r•   )ústroke-linejoinústroke-linecapÚdefsÚstyleztext/cssz*{%s})rŒ   r\   )r°   r“   rV   ri   rb   )r=   r°   Údefault_styles      r   rÇ   Ú RendererSVG._write_default_styleÙ  sQ   € Ø—‘ˆÜ%Ø&Ø$ñ'&ó 'ˆð 	�‰�VÔØ�‰�w Z°gÀÑ6MˆÑNØ�
‰
�6Õr   c                 óT  • [         R                  S   nUc  [        [        R                  " 5       5      n[
        R                  " 5       nUR                  UR                  S5      5        UR                  [        U5      R                  S5      5        U UR                  5       S S  3$ )Nzsvg.hashsaltÚutf8é
   )
rÃ   rÄ   rš   ÚuuidÚuuid4ÚhashlibÚsha256ÚupdateÚencodeÚ	hexdigest)r=   rŒ   ÚcontentÚsaltÚms        r   Ú_make_idÚRendererSVG._make_idâ  s~   € Ü�|‰|˜NÑ+ˆØ‰<Ü”t—z’z“|Ó$ˆDÜ�NŠNÓˆØ	�‰�—‘˜VÓ$Ô%Ø	�‰”�W“×$Ñ$ VÓ,Ô-Ø�˜Ÿ™› c rÐ*Ð+Ð,Ð,r   c                 óp   • U[        5       R                  SS5      R                  SU R                  5      -   $ )NrJ   r`   r   )r   r|   r}   r¬   )r=   Ú	transforms     r   Ú_make_flip_transformÚ RendererSVG._make_flip_transformë  s-   € Øœ8›:×+Ñ+¨A¨rÓ2×<Ñ<¸QÀÇÁÓLÑLÐLr   c                 óT  • Ub  [        U5      nUR                  5       nUb  [        U5      nUR                  5       nUR                  5       X#U4nU R                  R                  U5      nUc6  U R                  SU5      nUR                  5       X#U4U4U R                  U'   U$ Uu  pvU$ )z
Create a new hatch pattern
Úh)ÚtupleÚget_hatch_colorÚget_hatch_linewidthÚ	get_hatchr¼   rð   r  Úget_hatch_path)r=   ÚgcÚrgbFaceÚedgeÚlwÚdictkeyÚoidÚ_s           r   Ú
_get_hatchÚRendererSVG._get_hatchî  s±   € ð ÑÜ˜G“nˆGØ×!Ñ!Ó#ˆØÑÜ˜“;ˆDØ×#Ñ#Ó%ˆØ—<‘<“> 7°"Ð5ˆØ�l‰l×Ñ˜wÓ'ˆØ‰;Ø—-‘-  WÓ-ˆCØ&(×&7Ñ&7Ó&9¸7È"Ð%MÈsÐ$SˆD�L‰L˜Ñ!ð ˆ
ð ‰FˆAØˆ
r   c                 ó  • [        U R                  5      (       d  g SnU R                  nUR                  S5        U R                  R	                  5        GH  u  u  p4pVnUR                  SUSSS[        U5      [        U5      S9  U R                  U[        5       R                  U5      R                  SS5      R                  S	U5      S
S9nUc  Sn	O[        U5      n	UR                  SSS[        US-   5      [        US-   5      U	S9  [        U5      [        U5      [        U5      SSS.n
US   S:  a  [        US   5      U
S'   UR                  SU[        U
5      S9  UR                  S5        GM!     UR                  S5        g )NéH   r  ÚpatternÚuserSpaceOnUser,   )re   ÚpatternUnitsr/   Úyr«   r¬   ç      ð?ç      ð¿r   F©ÚsimplifyÚnoneÚrectrJ   )r/   r4  r«   r¬   Úfillr•   Úmiter)r;  Ústrokeústroke-widthr  r  é   ústroke-opacityÚpath)rþ   r	  )rO   r¼   r°   rV   Úvaluesrš   Ú_convert_pathr   r|   r}   r   ri   r“   rb   )r=   Ú
HATCH_SIZEr°   rA  Úfacer=  r)  r+  Ú	path_datar;  Úhatch_styles              r   rÓ   ÚRendererSVG._write_hatches  s‡  € Ü�4—<‘<× Ñ ØØˆ
Ø—‘ˆØ�‰�VÔØ-1¯\©\×-@Ñ-@×-BÑ)Ñ$ˆT˜ cØ�L‰LØØØ-Ø˜¤C¨
£OÜ˜:“ð ñ (ð ×*Ñ*ØÜ“
ß‘�zÓ"§5¡5¨¨dÓ#3·I±I¸aÀÓ4LØð	 +ð  ˆIð
 ‰|Ø‘ä˜t“}�Ø�N‰NØØ˜¤C¨
°1©Ó$5Ü˜: a™<Ó(Øð	 ñ ô $ F›OÜ% f›oÜ$'¨£GØ&,Ø'.ñˆKð �a‰y˜1‹}Ü03°F¸1±I³�Ð,Ñ-Ø�N‰NØØÜ# KÓ0ð ñ ð
 �J‰J�y×!ñG .CðH 	�
‰
�6Õr   c                 ó  • 0 nUR                  5       nUR                  5       bL  SU R                  X5       S3US'   Ub0  [        U5      S:X  a!  US   S:w  a  U(       d  [	        US   5      US'   OYUc  S	US'   OP[        USS 5      S
:w  a  [        U5      US'   [        U5      S:X  a!  US   S:w  a  U(       d  [	        US   5      US'   U(       a0  UR                  5       S:w  a  [	        UR                  5       5      US'   UR                  5       u  pVUb2  SR                  S U 5       5      US'   [	        [        U5      5      US'   UR                  5       nU(       a¨  UR                  5       n[        U5      US'   U(       d  US   S:w  a  [	        US   5      US'   US:w  a  [	        U5      US'   UR                  5       S:w  a  UR                  5       US'   UR                  5       S:w  a  [        UR                  5          US'   U$ )z=Generate a style string from the GraphicsContext and rgbFace.Núurl(#r_   r;  é   r?  r5  úfill-opacityr9  )r   r   r   Úopacityrî   c              3   ó8   #   • U  H  n[        U5      v •  M     g 7fr�   r‚   )rƒ   Úvals     r   r„   Ú.RendererSVG._get_style_dict.<locals>.<genexpr>G  s   é € ð 26Ú14¨#Ô  ×%Ð%²ùr†   zstroke-dasharrayzstroke-dashoffsetr=  r@  r>  r–   r  r•   r  )Úget_forced_alphar$  r-  rO   r0   r!  r   Ú	get_alphaÚ
get_dashesrD   ÚfloatÚget_linewidthÚget_rgbÚget_joinstyleÚget_capstyleÚ_capstyle_d)	r=   r&  r'  rR   Úforced_alphaÚoffsetÚseqÚ	linewidthÚrgbs	            r   Ú_get_style_dictÚRendererSVG._get_style_dict-  sê  € àˆà×*Ñ*Ó,ˆà�<‰<‹>Ñ%Ø$ T§_¡_°RÓ%AÐ$BÀ!ÐDˆF�6‰NØÑ#¬¨G«¸Ó(9¸gÀa¹jÈCÓ>OÞ(Ü)9¸'À!¹*Ó)E��~Ñ&øà‰Ø!'��v’ä˜  !˜Ó%¨Ó2Ü%,¨WÓ%5�F˜6‘NÜ˜“L AÓ%¨'°!©*¸Ó*;Þ ,Ü-=¸gÀa¹jÓ-I�F˜>Ñ*æ˜BŸL™L›N¨cÓ1Ü 0°·±³Ó @ˆF�9Ñà—m‘m“o‰ˆØ‰?Ø),¯©ñ 26Ù14ó26ó *6ˆFÐ%Ñ&ä*:¼5À»=Ó*IˆFÐ&Ñ'à×$Ñ$Ó&ˆ	ÞØ—*‘*“,ˆCÜ& s›|ˆF�8ÑÞ C¨¡F¨c£MÜ+;¸CÀ¹FÓ+C�Ð'Ñ(Ø˜CÓÜ)9¸)Ó)D��~Ñ&Ø×ÑÓ! WÓ,Ø,.×,<Ñ,<Ó,>�Ð(Ñ)Ø�‰Ó  FÓ*Ü+6°r·±Ó7HÑ+I�Ð'Ñ(àˆr   c                 ó6   • [        U R                  X5      5      $ r�   )r“   r_  )r=   r&  r'  s      r   Ú
_get_styleÚRendererSVG._get_styleZ  s   € Ü˜T×1Ñ1°"Ó>Ó?Ð?r   c                 óÂ  • UR                  5       nUR                  5       u  p4Ub.  U R                  U5      nU R                  U5      [	        U5      4nO*Ub%  UR
                  u  pgp‰U R                  Xy-   -
  nXgX‰4nO0 $ U R                  R                  U5      n
U
c9  U R                  SU5      nUb  X44U4U R                  U'   OX[4U R                  U'   OU
u  pËSSU S30$ )NÚpz	clip-pathrJ  r_   )
Úget_clip_rectangleÚget_clip_pathr  rÏ   rš   Úboundsr¬   r¹   rð   r  )r=   r&  ÚcliprectrÎ   Úclippath_transr*  r/   r4  Úwr   Úclipr+  r,  s                r   Ú_get_clip_attrsÚRendererSVG._get_clip_attrs]  sï   € Ø×(Ñ(Ó*ˆØ#%×#3Ñ#3Ó#5Ñ ˆØÑØ!×6Ñ6°~ÓFˆNØ×,Ñ,¨XÓ6¼¸NÓ8KÐL‰GØÑ!Ø!Ÿ™‰JˆA�!Ø—‘˜Q™SÑ!ˆAØ˜Q�l‰GàˆIØ�{‰{�‰˜wÓ'ˆØ‰<Ø—-‘-  WÓ-ˆCØÑ#Ø)1Ð(BÀCÐ'H�—‘˜GÒ$à(/ ~�—‘˜GÒ$à‰FˆAØ˜u S E¨˜^Ð,Ð,r   c           
      óþ  • [        U R                  5      (       d  g U R                  nUR                  S5        U R                  R	                  5        H–  u  p#UR                  SUS9  [        U5      S:X  a%  Uu  pEU R                  XESS9nUR                  SUS9  O<Uu  pxpšUR                  S	[        U5      [        U5      [        U	5      [        U
5      S
9  UR                  S5        M˜     UR                  S5        g )Nr  ÚclipPath©re   é   Fr7  rA  ©rþ   r:  ©r/   r4  r«   r¬   )	rO   r¹   r°   rV   rB  rC  ri   r0   rb   )r=   r°   rl  r+  rÎ   rj  rF  r/   r4  rk  r   s              r   rÒ   ÚRendererSVG._write_clipst  sè   € Ü�4—;‘;×ÑØØ—‘ˆØ�‰�VÔØŸ™×+Ñ+Ö-‰IˆDØ�L‰L˜¨ˆLÑ,Ü�4‹y˜A‹~Ø+/Ñ(�Ø ×.Ñ.Ø°uð /ð >�	à—‘˜v¨�Ò3à!‘
��aØ—‘ØÜ& qÓ)Ü& qÓ)Ü*¨1Ó-Ü+¨AÓ.ð ñ 0ð �J‰J�zÖ"ñ .ð  	�
‰
�6Õr   c                 óú   • U(       a  U R                   R                  SUS9  g U R                  R                  US5      S-   U R                  U'   U R                   R                  SU SU R                  U   S 3S9  g )NÚgrq  r   rJ   r,  rþ   )r°   rV   r´   rð   )r=   r   Úgids      r   Ú
open_groupÚRendererSVG.open_group‹  sl   € æØ�K‰K×Ñ˜c cÐÒ*à"Ÿl™l×.Ñ.¨q°!Ó4°qÑ8ˆD�L‰L˜‰OØ�K‰K×Ñ˜c¨¨¨1¨T¯\©\¸!©_¸QÐ,?Ð&@ÐÒAr   c                 ó:   • U R                   R                  S5        g )Nrw  )r°   rb   )r=   r   s     r   Úclose_groupÚRendererSVG.close_group“  s   € à�‰�‰˜Õr   c                 ó2   • [         R                  S   (       + $ )Nzimage.composite_image)rÃ   rÄ   rm   s    r   Úoption_image_nocompositeÚ$RendererSVG.option_image_nocomposite—  s   € ä—<‘<Ð 7Ñ8Ô8Ð8r   c           
      ó¢   • U(       a  SSU R                   U R                  4nOS n[        R                  " XX4US/ SQS5      R	                  S5      $ )Nç        é   )ó   Mó   Ló   Qó   Có   zFÚascii)r«   r¬   r   Úconvert_to_stringÚdecode)r=   rA  r  rl  r8  Úsketchs         r   rC  ÚRendererSVG._convert_path›  sK   € æØ˜˜dŸj™j¨$¯+©+Ð6‰DàˆDÜ×&Ò&Ø˜T¨V°QÚ*¨Eó3ç39±6¸'³?ð	Cr   c           	      ó  • U R                  U5      nUS L =(       a    UR                  5       S L nUR                  =(       a    UnU R                  X%XgUR	                  5       S9nUR                  5       b,  U R                  R                  SSUR                  5       05        U R                  R                  " SSU0U R                  U5      DSU R                  X5      0D6  UR                  5       b  U R                  R                  S5        g g )N)rl  r8  rŒ  Úaú
xlink:hrefrþ   r	  )rA  )r  r%  Úshould_simplifyrC  Úget_sketch_paramsÚget_urlr°   rV   ri   rm  rb  rb   )	r=   r&  rA  r  r'  Útrans_and_fliprl  r8  rF  s	            r   Ú	draw_pathÚRendererSVG.draw_path¥  sò   € à×2Ñ2°9Ó=ˆØ˜4�×? B×$5Ñ$5Ó$7¸4Ð$?ˆØ×'Ñ'×0¨DˆØ×&Ñ&Ø tØ×'Ñ'Ó)ð 'ð +ˆ	ð �:‰:‹<Ñ#Ø�K‰K×Ñ˜c L°"·*±*³,Ð#?Ô@Ø�‰×Òñ 	@ ið 	@°4×3GÑ3GÈÓ3Kñ 	@Ø"&§/¡/°"Ó">ó	@à�:‰:‹<Ñ#Ø�K‰K�O‰O˜CÕ ð $r   c           	      óð  • [        UR                  5      (       d  g U R                  nU R                  UU[	        5       R                  SS5      -   SS9nU R                  X5      n	U[        U	5      4n
U R                  R                  U
5      n[        U	R                  5        VVs0 s H  u  pÍUR                  S5      (       d  M  XÍ_M!     snn5      n	UcS  U R                  SU
5      nUR                  S5        UR                  SX¸U	S	9  UR                  S5        X°R                  U
'   UR                  " S0 U R!                  U5      D6  UR#                  5       b,  U R                  R                  SSUR#                  5       05        U R%                  U5      nSSU 30nSSU R&                  S-  U R(                  S-  4nUR+                  UUSS9 H`  u  nn[        U5      (       d  M  USS  u  nn[-        U5      US'   [-        U5      US'   U R/                  X5      US'   UR                  SUS9  Mb     UR#                  5       b  U R                  R                  S5        UR                  S
5        g s  snnf )Nr5  r6  Fr7  r=  r  r  rA  )re   rþ   r	  rw  r�  r�  Ú#r   r0  )rl  r8  éþÿÿÿr/   r4  r	  Úuser’   ©rw  )rO   Úverticesr°   rC  r   r|   r_  r“   rº   rð   rP   Ú
startswithr  rV   ri   rb   rm  r“  r  r«   r¬   Úiter_segmentsr0   rb  )r=   r&  Úmarker_pathÚmarker_transrA  Útransr'  r°   rF  r	  r*  r+  rT   rU   r”  rR   rl  rœ  Úcoder/   r4  s                        r   Údraw_markersÚRendererSVG.draw_markersµ  s9  € ô �4—=‘=×!Ñ!Øà—‘ˆØ×&Ñ&ØØœ8›:×+Ñ+¨C°Ó6Ñ6Øð 'ð ˆ	ð ×$Ñ$ RÓ1ˆØœm¨EÓ2Ð3ˆØ�m‰m×Ñ Ó(ˆÜ°·±´ô 9²©¨Ø!"§¡¨h×!7ó  $˜qšt±ò 9ó :ˆð ‰;Ø—-‘-  WÓ-ˆCØ�L‰L˜Ô Ø�N‰N˜6 c¸eˆNÑDØ�J‰J�vÔØ%(�M‰M˜'Ñ"à�ŠÑ5˜D×0Ñ0°Ó4Ò5Ø�:‰:‹<Ñ#Ø�K‰K×Ñ˜c L°"·*±*³,Ð#?Ô@Ø×2Ñ2°5Ó9ˆØ ! C 5 	Ð*ˆØ�1�d—j‘j ‘m T§[¡[°¡^Ð4ˆØ"×0Ñ0Ø T°Eð 1ó ;‰NˆH�dä�8�}‹}Ø  �}‘��1Ü.¨qÓ1��s‘Ü.¨qÓ1��s‘Ø"&§/¡/°"Ó">��w‘Ø—‘˜u¨V�Ó4ñ;ð �:‰:‹<Ñ#Ø�K‰K�O‰O˜CÔ Ø�
‰
�3�ùó59s   Â%I2
ÃI2
c                 óž  >• [        U5      S:”  a  [        US   R                  5      OSnU R                  X4XWU5      nUSU-  -   S-   US-   U-  :  nU(       d  [        T U ]  XX4XVXxXšX¼U5      $ U R
                  n/ nUR                  S5        [        U R                  X#U5      5       H’  u  nu  nn[        UR                  5       5      R                  SS5      nU R                  UUSS	9nS
R                  U R                  UU R                  SU5      5      nUR!                  SUUS9  UR#                  U5        M”     UR%                  S5        U R'                  UUXVXxXšX¼U5       HÏ  u  nnnnnUR)                  5       nUb  UR                  SSU0S9  U R+                  U5      nU(       a  UR                  " S0 UD6  SU 3[-        U5      [-        U R.                  U-
  5      U R1                  UU5      S.nUR!                  SUS9  U(       a  UR%                  S5        Uc  M¾  UR%                  S5        MÑ     U =R                  S-  sl        g )Nr   é	   r?  é   r  r5  r6  Fr7  zC{:x}_{:x}_{}rC   rA  )re   rþ   r�  r�  r’   rw  r˜  )r�  r/   r4  r	  rš  rJ   r›  )rO   rœ  Ú_iter_collection_uses_per_pathr¿   Údraw_path_collectionr°   rV   Ú	enumerateÚ_iter_collection_raw_pathsr   Ú
get_matrixr|   rC  r‰   r»   r  ri   rN   rb   Ú_iter_collectionr“  rm  r0   r¬   rb  )!r=   r&  Úmaster_transformÚpathsÚall_transformsÚoffsetsÚoffset_transÚ
facecolorsÚ
edgecolorsÚ
linewidthsÚ
linestylesÚantialiasedsÚurlsÚoffset_positionÚlen_pathÚuses_per_pathÚshould_do_optimizationr°   Ú
path_codesÚirA  r  rþ   r+  ÚxoÚyoÚpath_idÚgc0r'  ÚurlÚ
clip_attrsrR   rË   s!                                   €r   r©  Ú RendererSVG.draw_path_collectionà  sT  ø€ ô .1°«Z¸!«^”3�u˜Q‘x×(Ñ(Ô)ÀˆØ×;Ñ;Ø 7¸
óDˆð �q˜=Ñ(Ñ(¨1Ñ,°¸1±ÀÑ/MÑMð 	æ%Ü‘7Ñ/Ø eØ zØ¨Øó	!ð !ð —‘ˆØˆ
Ø�‰�VÔÜ$-¨d×.MÑ.MØ ¨ó/9ö %:Ñ ˆAÑ ��iä  ×!5Ñ!5Ó!7Ó8×>Ñ>¸sÀDÓIˆIØ×"Ñ" 4¨¸UÐ"ÐCˆAØ!×(Ñ(Ø×(Ñ(¨!¨T¯]©]¸2¸qÓ-AóCˆCà�N‰N˜6 c¨QˆNÑ/Ø×Ñ˜cÖ"ñ%:ð 	�
‰
�6Ôà-1×-BÑ-BØ�J Ø¨
Ø Oö.5Ñ)ˆB��G˜S 'ð —+‘+“-ˆCØ‰Ø—‘˜S¨,¸Ð)<�Ñ=Ø×-Ñ-¨cÓ2ˆJÞØ—’Ñ/ JÒ/à ! ' ˜mÜ% bÓ)Ü% d§k¡k°BÑ&6Ó7ØŸ™¨¨gÓ6ñ	ˆFð �N‰N˜5¨ˆNÑ0ÞØ—
‘
˜3”Ø‹Ø—
‘
˜3–ñ).5ð, 	× Ò  AÑ%Ö r   c                 ó  • [         R                  " USS9nUS   S:X  a  g U R                  nUR                  S5        [	        S5       GH   nX   u  pgXS-   S-     u  p‰XS-   S-     u  p«X%   nXŠ:X  a  UnUnO<X›:X  a  UnU	nO2X›-
  XŠ-
  -  nXŸU-  -
  nSU-  * nUUU-  -
  nU* U-   UU-
  -  nUU-  U-   nUR                  S	S
U R
                  S SUS 3S[        U5      [        U5      [        U5      [        U5      S9  UR                  SS[        [        U5      [        US   5      S.5      S9  UR                  SS[        [        U5      SS.5      S9  UR                  S	5        GM#     UR                  S5        S[        W5       S[        W5       S[        W5       S[        W	5       S[        W
5       S[        W5       S3nUR                  SU[        U5      SSS.S9  UR                  SSSSS S!.S9  UR                  SUS"U R
                  S S#3SS$.S9  UR                  SUS"U R
                  S S%3S&SS'.S9  UR                  SUS"U R
                  S S(3S&SS'.S9  UR                  S5        U =R
                  S-  sl        g ))Nr   )Úaxisr`   r  r?  rJ   rr  r5  ÚlinearGradientÚGRr/   r,  rþ   r2  )re   ÚgradientUnitsÚx1Úy1Úx2Úy2ÚstopÚ1)z
stop-colorzstop-opacity)r[  r	  r,   zM rî   z L rK   z ZrA  Ú
crispEdges)rþ   r;  rL  úshape-renderingr’   rw  r9  zurl(#colorMat))r=  r>  rÒ  Úfilterzurl(#GRz_0))rþ   r;  rÒ  z_1)zurl(#colorAdd))rþ   r;  rÓ  rÒ  z_2))r    Úaverager°   rV   Úranger¾   r0   ri   r“   r   rb   )r=   Útransformed_pointsÚcolorsÚ	avg_colorr°   r¾  rË  rÌ  rÍ  rÎ  Úx3Úy3Ú
rgba_colorÚxbÚybÚm1Úb1Úm2Úb2Údpaths                       r   Ú_draw_gouraud_triangleÚ"RendererSVG._draw_gouraud_triangle  s@  € ô —J’J˜v¨AÑ.ˆ	Ø�R‰=˜AÓàà—‘ˆØ�‰�VÔÜ�q—ˆAØ'Ñ*‰FˆBØ'¨Q©°!©Ñ4‰FˆBØ'¨Q©°!©Ñ4‰FˆBØ™ˆJà‹xØ�Ø‘Ø“Ø�Ø‘à‘g "¡'Ñ*�Ø ™7‘^�Ø˜R‘x�[�Ø˜2 ™7‘^�Ø�c˜B‘h 2¨¡7Ñ+�Ø˜"‘W˜r‘\�à�L‰LØ Ø˜×)Ñ)¨!Ð,¨A¨a°¨UÐ3Ø.Ü# BÓ'Ô,<¸RÓ,@Ü# BÓ'Ô,<¸RÓ,@ð ñ Bð �N‰NØØÜ#Ü")¨)Ó"4Ü$4°ZÀ±^Ó$Dñ%Fó Gð ñ Hð �N‰NØØÜ#´7¸:Ó3FØ47ñ%9ó :ð ñ ;ð �J‰JÐ'×(ñM ðP 	�
‰
�6Ôð Ô& rÓ*Ð+¨1Ô-=¸bÓ-AÐ,BØÔ'¨Ó+Ð,¨AÔ.>¸rÓ.BÐ-CØÔ% bÓ)Ð*¨!Ô,<¸RÓ,@Ð+AÀðEˆð 	�‰ØØÜ# IÓ.Ø$'Ø'3ñ5ð 	ñ 	6ð 	�‰ØØ"(Ø(+Ø+7Ø"2ñ4ð 	ñ 	5ð 	�‰ØØØ% d×&7Ñ&7¸Ð%:¸#Ð>Ø'3ñ5ð 	ñ 	6ð 	�‰ØØØ% d×&7Ñ&7¸Ð%:¸#Ð>Ø.Ø'3ñ5ð 	ñ 	6ð 	�‰ØØØ% d×&7Ñ&7¸Ð%:¸#Ð>Ø.Ø'3ñ5ð 	ñ 	6ð 	�
‰
�3Œà×Ò˜QÑÖr   c           	      ó2  • U R                   nUR                  " S0 U R                  U5      D6  UR                  5       nU R	                  U5      nU R
                  (       dr  SU l        UR                  SSS9  UR                  SSS0S	S
SSS9  UR                  S5        UR                  SSS9  UR                  SSS0SS9  UR                  S5        [        X#5       H&  u  pxU R                  UR                  U5      U5        M(     UR                  S5        g )Nrw  TrÓ  ÚcolorAddrq  ÚfeCompositeÚinÚSourceGraphicÚBackgroundImageÚ
arithmeticrÐ  )rR   Úin2ÚoperatorÚk2Úk3ÚcolorMatÚfeColorMatrixrŒ   r   z61 0 0 0 0 
0 1 0 0 0 
0 0 1 0 0 
1 1 1 1 0 
0 0 0 0 1 )rR   rB  r›  )r°   rV   rm  Úfrozenr  r½   ri   rb   Úziprã  r  )	r=   r&  Útriangles_arrayÚcolors_arrayr  r°   r”  Úpointsr×  s	            r   Údraw_gouraud_trianglesÚ"RendererSVG.draw_gouraud_triangles‚  s!  € à—‘ˆØ�ŠÑ5˜D×0Ñ0°Ó4Ò5Ø×$Ñ$Ó&ˆ	Ø×2Ñ2°9Ó=ˆà× × Ø $ˆDÔØ�L‰LØØð ñ ð �N‰NØØ˜oÐ.Ø%Ø%Ø˜3ð ñ  ð �J‰J�xÔ à�L‰LØØð ñ ð �N‰NØØ Ð)ØSð ñ Uð �J‰J�xÔ ä! /Ö@‰NˆFØ×'Ñ'¨×(@Ñ(@ÀÓ(HÈ&ÖQñ Aà�
‰
�3�r   c                 ó   • grt   rl   rm   s    r   Úoption_scale_imageÚRendererSVG.option_scale_image£  ó   € àr   c                 ó    • U R                   S-  $ )Nç      R@)r±   rm   s    r   Úget_image_magnificationÚ#RendererSVG.get_image_magnification§  s   € Ø�~‰~ Ñ$Ð$r   c           
      ó  • UR                   S S u  pgUS:X  d  US:X  a  g U R                  U5      nU(       a  U R                  R                  " S 0 UD6  UR	                  5       n	U	b  U R                  R                  SSU	0S9  0 n
UR                  5       n[        R                  S   (       a‘  [        5       n[        R                  " U5      R                  USS	9  U=(       d     U R                  S
UR                  5       5      nS[        R                  " UR                  5       5      R!                  S5      -   U
S'   OšU R"                  c  [%        S5      eU R"                   S['        U R(                  5       S3n[*        R-                  SU5        [        R                  " U5      R                  U5        U=(       d    SU R                  S
U5      -   nXÚS'   XºS'   Uc‰  SU-  U R.                  -  nSU-  U R.                  -  nU R                  R1                  S
[3        SSSU* 44/5      [5        U5      [5        U R6                  U-
  U-
  * 5      [5        U5      [5        U5      U
S9  OÝUR9                  5       nUS:w  a  [5        U5      U
S'   [;        5       R=                  SU-  SU-  5      U-   [;        5       R?                  X#5      R=                  SS5      R?                  SU R6                  5      -   n[3        SURA                  5       4/5      U
S'   SU
S'   U R                  R1                  S
[5        U5      [5        U5      U
S9  U	b  U R                  RC                  S5        U(       a  U R                  RC                  S5        g g )!Nrr  r   rw  r�  r�  r’   zsvg.image_inlineÚpng)r‰   Úimagezdata:image/png;base64,
r‰  zLCannot save image data to filesystem when writing SVG to an in-memory bufferz.imagez.pngz$Writing image file for inclusion: %sÚIm_re   rþ  )r|   )rJ   r`   r}   )r  r/   r4  r«   r¬   rR   r5  rM  r6  r‚  r   r  z5image-rendering:crisp-edges;image-rendering:pixelatedr	  )r«   r¬   rR   r›  )"Úshaperm  r°   rV   r“  Úget_gidrÃ   rÄ   r   r   Ú	fromarrayÚsaver  ÚgetvalueÚbase64Ú	b64encoder‹  r³   rü   Únextr·   Ú_logrœ   r±   ri   rŽ   r0   r¬   rR  r   r|   r}   rò  rb   )r=   r&  r/   r4  Úimr  r   rk  rÄ  rÃ  rR   r+  ÚbufÚfilenameÚalphaÚflippeds                   r   Ú
draw_imageÚRendererSVG.draw_imageª  s:  € ð �x‰x˜˜ˆ|‰ˆà�‹6�Q˜!“VØà×)Ñ)¨"Ó-ˆ
Þð �K‰K×ÒÑ0 ZÒ0à�j‰j‹lˆØ‰?Ø�K‰K×Ñ˜c¨<¸Ð*=ÐÑ>àˆØ�j‰j‹lˆÜ�<‰<Ð*×+Ü“)ˆCÜ�OŠO˜BÓ×$Ñ$ S°Ð$Ñ7Ø×?˜Ÿ™ w°·±³Ó?ˆCà*Ü× Ò  §¡£Ó0×7Ñ7¸Ó@ñAð �<Ò ð �}‰}Ñ$Ü ð "Fó Gð GàŸ-™-˜¨¬t°D×4GÑ4GÓ/HÐ.IÈÐNˆHÜ�I‰IÐ<¸hÔGÜ�OŠO˜BÓ×$Ñ$ XÔ.Ø×A˜ §¡¨w¸Ó!AÑAˆCØ#+�<Ñ Øˆt‰àÑØ�q‘˜4Ÿ>™>Ñ)ˆAØ�q‘˜4Ÿ>™>Ñ)ˆAà�K‰K×ÑØÜ-Ø&¨°q¸1¸"°gÐ(>ð/@ó Aä" 1Ó%Ü" T§[¡[°1¡_°qÑ%8Ð#9Ó:Ü& qÓ)Ô2BÀ1Ó2EØð  ò ð —L‘L“NˆEØ˜‹|Ü$4°UÓ$;��yÑ!ô “
× Ñ   q¡¨#°©'Ó2Øñä“
ß‘˜1“ß‘�s˜DÓ!ß‘˜3 §¡Ó,ñ-ð ô #6Ø˜GŸN™NÓ,Ð-Ð.ó#0ˆF�;Ñð,ð �7‰Oð �K‰K×ÑØÜ& qÓ)Ô2BÀ1Ó2EØð  ñ ð
 ‰?Ø�K‰K�O‰O˜CÔ ÞØ�K‰K�O‰O˜CÕ ð r   c           	      óp  • U R                   nU(       a£  UR                  S5        UR                  5        HQ  u  nu  pEU R                  U5      nU R	                  [        US-  U5      SS9nUR                  SX6[        S/5      S9  MS     UR                  S5        U R                  R                  U5        gg)	zV
Emit definitions for not-yet-defined glyphs, and record them as having
been defined.
r  é@   Fr7  rA  )r|   )g      �?)re   rþ   r  N)r°   rV   rP   Ú_adjust_char_idrC  r   ri   rŽ   rb   rÁ   r  )r=   Úglyph_map_newr°   Úchar_idrœ  ÚcodesrF  s          r   Ú_update_glyph_map_defsÚ"RendererSVG._update_glyph_map_defsø  s¶   € ð
 —‘ˆÞØ�L‰L˜Ô Ø.;×.AÑ.AÖ.CÑ*�Ñ*˜(Ø×.Ñ.¨wÓ7�à ×.Ñ.Ü˜ B™¨Ó.¸ð /ð @�	à—‘Ø˜wÜ1Ð3GÐ2HÓIð ó Kñ /Dð �J‰J�vÔØ�O‰O×"Ñ" =Õ1ð r   c                 ó&   • UR                  SS5      $ )Nz%20r,  r   )r=   r  s     r   r  ÚRendererSVG._adjust_char_id  s   € Ø�‰˜u cÓ*Ð*r   c	           	      ó†  • U R                   n	U	R                  U5        U R                  n
U R                  n[	        UR                  5       5      nUR                  5       n0 nUS:w  a  XÎS'   UR                  5       (       a  UR                  5       OUR                  5       S   nUS:w  a  [        U5      US'   XÛR                  -  n[        U5      [        SX#44SU* 44SUU* 44/5      S	.nU	R                  S
US9  U(       dp  UR                  U5      nUR                  UXJSS9nUu  nnnU R!                  U5        U H0  u  nnnnU	R#                  S[        SUU44SU44/5      SSU 30S9  M2     O¿US:X  a  UR%                  XTU
SS9nOUR'                  XTU
SS9nUu  nnnU R!                  U5        U HA  u  nnnnU R)                  U5      nU	R#                  S[        SUU44SU44/5      SSU 30S9  MC     U H2  u  nn[+        UU5      nU R-                  USS9nU	R#                  SUS9  M4     U	R/                  S
5        g )Nú#000000r;  r?  rJ   rM  r}   r~   r|   ©r	  r  rw  r’   T)Ú	glyph_mapÚreturn_new_glyphs_onlyrš  r�  r˜  )r  rR   ÚTeXFr7  rA  rs  )r°   rY   rÁ   Ú
_text2pathr   rV  Úget_size_in_pointsrQ  rR  r0   Ú
FONT_SCALEr“   rŽ   rV   Ú	_get_fontÚget_glyphs_with_fontr  ri   Úget_glyphs_texÚget_glyphs_mathtextr  r   rC  rb   ) r=   r&  r/   r4  r   ÚpropÚangleÚismathÚmtextr°   r"  Ú	text2pathÚcolorÚfontsizer	  r  Ú
font_scalerR   ÚfontÚ_glyphsÚ
glyph_infor  ÚrectsÚglyph_idÚ	xpositionÚ	ypositionr|   r  Úvertsr  rA  rF  s                                    r   Ú_draw_text_as_pathÚRendererSVG._draw_text_as_path  s¶  € à—‘ˆà�‰�qÔà—O‘Oˆ	à—O‘Oˆ	Ü˜Ÿ
™
›Ó%ˆØ×*Ñ*Ó,ˆàˆØ�IÓØ!�&‰MØ"$×"5Ñ"5×"7Ñ"7�—‘”¸R¿Z¹Z»\È!¹_ˆØ�A‹:Ü/°Ó6ˆE�)ÑØ× 4Ñ 4Ñ4ˆ
ä" 5Ó)Ü,Ø˜q˜fÐ%Ø˜U˜F˜9Ð%Ø˜:¨
 {Ð3Ð4ð.6ó 7ñ
ˆð 	�‰�S ˆÑ(æØ×&Ñ& tÓ,ˆDØ×4Ñ4Ø�aÀTð 5ð KˆGà/6Ñ,ˆJ˜ uØ×'Ñ'¨Ô6ã9CÑ5�˜) Y°Ø—‘ØÜ1Ø$ y°)Ð&<Ð=Ø  5 (Ð+ð3ó ð )¨A¨h¨Z¨.Ð9ð ó ;ò :Dð ˜‹Ø#×2Ñ2Ø yÈð 3ð O‘ð $×7Ñ7Ø yÈð 8ð O�à/6Ñ,ˆJ˜ uØ×'Ñ'¨Ô6ã8BÑ4�˜ I¨uØ×.Ñ.¨wÓ7�Ø—‘ØÜ1Ø$ y°)Ð&<Ð=Ø  5 (Ð+ð3ó ð )¨A¨g¨Y¨-Ð8ð ó :ñ 9Có !&‘��uÜ˜E 5Ó)�Ø ×.Ñ.¨t¸eÐ.ÐD�	Ø—‘˜v¨�Ó3ñ !&ð
 	�
‰
�3�r   c	           
      óÈ
  ^'^(• U R                   n	[        UR                  5       5      n
0 n0 nU
S:w  a  X¬S'   UR                  5       (       a  UR	                  5       OUR                  5       S   nUS:w  a  [        U5      US'   U(       Gdˆ  0 nUR                  5       S:w  a  UR                  5       US'   UR                  5       S:w  a  UR                  5       US'   [        R                  UR                  5          nUS	:w  a  U US
'   S m(U(4S jm'U'4S jn[        UR                  5       5       S3US'   SR                  [        R                  U" U5      5      5      US'   UR                  5       S:w  a  UR                  5       US'   [!        0 UEUE5      US'   U(       GaG  US:X  d  UR#                  5       S:X  Ga,  UR%                  5       nUR'                  UR)                  5       5      u  nnU R*                  U-
  n[,        R.                  " U5      n[,        R0                  " [,        R2                  " U5      [,        R4                  " U5      /5      n[,        R6                  " UUU-
  UU-
  /5      nUUUS   -  -   nUUUS   -  -   nSSSS.nUUR9                  5          US'   [        U5      US'   [        U5      US'   [!        0 UEUE5      US'   [;        SU* UU44/5      US'   O[;        SX#44SU* 44/5      US'   U	R=                  S XNS!9  g U	R?                  U5        U R@                  RB                  RE                  US"U5      u  nnnnnU	RG                  S#[!        0 UEUE5      [;        SX#44SU* 44/5      S$9  U	RG                  S 5        0 nU Hü  u  nnn n!n"[        RH                  " U5      n#0 nU#RJ                  S:w  a  U#RJ                  US'   U#RL                  S:w  a  U#RL                  US'   U#RN                  S	:w  a  U#RN                   US
'   [        U5       S3US'   U#RP                  < US'   U#RR                  S:w  a  U#RR                  US'   [!        0 UEUE5      n$U S%:X  a  S&n URU                  U$/ 5      RW                  U!U"* U 45        Mþ     URY                  5        HP  u  n$n%U%R[                  5         U% H4  u  p#n&U	R=                  S'[]        U&5      [        U5      [        U5      U$S(9  M6     MR     U	R_                  S 5        U HB  u  p#nnU	R=                  S)[        U5      [        U* S-
  5      [        U5      [        U5      S*9  MD     U	R_                  S#5        g )+Nr   r;  r?  rJ   rM  Únormalz
font-stylezfont-varianti�  zfont-weightc                 ó   • U S;   a  S$ U $ )N)Úsansz
sans serifz
sans-serifrl   )r¨   s    r   Ú_normalize_sansÚ7RendererSVG._draw_text_as_text.<locals>._normalize_sanss  s   € Ø'+Ð/EÓ'E�|ÐOÈ4ÐOr   c              3   ó®   >#   • T" U 5      n U [         R                  ;   a0  [         R                  R                  U 5       H  nT" U5      v •  M     U v •  g 7fr�   )ÚfmÚfont_family_aliasesÚFontManagerÚ_expand_aliases)Úfnr¨   rB  s     €r   Ú_expand_family_entryÚ<RendererSVG._draw_text_as_text.<locals>._expand_family_entryv  sL   øé € Ù$ RÓ(�àœ×/Ñ/Ó/ô !#§¡× >Ñ >¸rÖ B˜Ù-¨dÓ3Ô3ñ !Cð “ùs   ƒAAc                 ó´   >• U R                  5        VVs/ s H4  nT" U5        H$  nU[        R                  ;   a  UO
[        U5      PM&     M6     snn$ s  snnf r�   )Ú
get_familyrE  rF  Úrepr)r,  Úentryr¨   rJ  s      €r   Ú_get_all_quoted_namesÚ=RendererSVG._draw_text_as_text.<locals>._get_all_quoted_names‚  s^   ø€ ð &*§_¡_Ô%6ôAÚ%6˜EÙ$8¸×$?˜Dð !%¬×(>Ñ(>Ó >™ÄDÈÃJÒNá$?ñ OÙ%6òAð Aùó As   •;AÚpxz	font-sizez, zfont-familyzfont-stretchr	  r   ÚanchorrV   rb   Úmiddle)ÚleftÚrightÚcenterztext-anchorr/   r4  r~   r  r}   r\   r’   r0  rw  r!  é    é    Útspan)r/   r4  r	  r:  rt  )0r°   r   rV  rQ  rR  r0   Ú	get_styleÚget_variantrE  Úweight_dictÚ
get_weightÚget_sizerD   rÀ   ÚfromkeysÚget_stretchr“   Úget_rotation_modeÚget_transformr  Úget_unitless_positionr¬   r    Údeg2radÚarrayÚsinÚcosÚdotÚget_harŽ   ri   rY   r%  Úmathtext_parserÚparserV   ÚttfFontPropertyr	  ÚvariantÚweightr¨   ÚstretchÚ
setdefaultrN   rP   ÚsortÚchrrb   ))r=   r&  r/   r4  r   r,  r-  r.  r/  r°   r1  Ú
font_styleÚcolor_styler  rR   ro  rP  r  ÚaxÚayÚ	angle_radÚdir_vertÚv_offsetÚha_mpl_to_svgr«   r¬   ÚdescentÚglyphsr7  Úspansr4  r2  ÚthetextÚnew_xÚnew_yrO  r	  ÚcharsÚtrJ  rB  s)                                          @@r   Ú_draw_text_as_textÚRendererSVG._draw_text_as_textU  sb  ù€ ð —‘ˆä˜Ÿ
™
›Ó%ˆØˆ
ØˆØ�IÓØ"'˜Ñà"$×"5Ñ"5×"7Ñ"7�—‘”¸R¿Z¹Z»\È!¹_ˆØ�A‹:Ü%5°eÓ%<ˆK˜	Ñ"çØˆFð �~‰~Ó 8Ó+Ø+/¯>©>Ó+;�
˜<Ñ(Ø×ÑÓ! XÓ-Ø-1×-=Ñ-=Ó-?�
˜>Ñ*Ü—^‘^ D§O¡OÓ$5Ñ6ˆFØ˜‹}Ø/5¨h�
˜=Ñ)òPõ
õAô *:¸$¿-¹-»/Ó)JÐ(KÈ2Ð&NˆJ�{Ñ#à(,¯	©	Ü—‘Ñ3°DÓ9Ó:ó)ˆJ�}Ñ%ð ×ÑÓ! XÓ-Ø-1×-=Ñ-=Ó-?�
˜>Ñ*Ü+Ð,I¨zÐ,I¸[Ð,IÓJˆF�7‰Oç˜% 1›*¨×(?Ñ(?Ó(AÀXÔ(Mð
 "×/Ñ/Ó1�	Ø"×,Ñ,¨U×-HÑ-HÓ-JÓK‘��BØ—[‘[ 2Ñ%�ô
 ŸJšJ uÓ-�	ÜŸ8š8¤R§V¢V¨IÓ%6¼¿º¸yÓ8IÐ$JÓK�ÜŸ6š6 (¨a°"©f¸¸B¹Ð,@ÓA�Ø˜( X¨a¡[Ñ0Ñ0�Ø˜( X¨a¡[Ñ0Ñ0�à)0¸5Ø+3ñ!5�à,9¸%¿,¹,».Ñ,I�
˜=Ñ)ä.¨rÓ2��s‘Ü.¨rÓ2��s‘Ü"/Ð0M°:Ð0MÀÐ0MÓ"N��w‘Ü&9Ø  ¨¨BÐ/Ð0ð;2ó '3��{Ò#ô ':Ø  1 &Ð)Ø  ˜yÐ)ð;+ó ',��{Ñ#ð �N‰N˜6 1ˆNÒ4ð �N‰N˜1Ôð —‘×/Ñ/×5Ñ5°a¸¸TÓBñ 2ˆE�6˜7 F¨Eð
 �L‰L˜Ü,Ð-J°
Ð-J¸kÐ-JÓKÜ#6Ø)¨A¨6Ð2Ø&¨%¨¨	Ð2ð84ó $5ð ñ ð �L‰L˜Ô ð ˆEÛ9?Ñ5��h ¨°Ü×*Ò*¨4Ó0�Ø�
à—;‘; (Ó*Ø/4¯{©{�J˜|Ñ,Ø—=‘= HÓ,Ø16·±�J˜~Ñ.Ø—<‘< 3Ó&Ø38·<±<°.�J˜}Ñ-Ü-=¸hÓ-GÐ,HÈÐ*K�
˜;Ñ'Ø/4¯z©z©n�
˜=Ñ)Ø—=‘= HÓ,Ø16·±�J˜~Ñ.Ü%Ð&C¨Ð&C°{Ð&CÓD�Ø˜b“=Ø"�GØ× Ñ  ¨Ó+×2Ñ2°E¸E¸6À7Ð3KÖLñ# :@ð& !&§¡¦‘��uØ—
‘
”Û$‘G�A˜!Ø—N‘NØÜ˜A›Ü*¨1Ó-Ü*¨1Ó-Ø#ð #ó %ó  %ñ !.ð �J‰J�vÔã',Ñ#��e˜VØ—‘ØÜ& qÓ)Ü&¨ r¨!¡tÓ,Ü*¨5Ó1Ü+¨FÓ3ð ó ñ (-ð �J‰J�s�Or   c	           
      ó  • U R                  U5      n	U	(       a  U R                  R                  " S0 U	D6  UR                  5       b,  U R                  R                  SSUR                  5       05        [        R
                  S   S:X  a  U R                  XX4XVXx5        OU R                  XX4XVXx5        UR                  5       b  U R                  R                  S5        U	(       a  U R                  R                  S5        g g )Nrw  r�  r�  zsvg.fonttyperA  r›  )	rm  r°   rV   r“  rÃ   rÄ   r<  r„  rb   )
r=   r&  r/   r4  r   r,  r-  r.  r/  rÄ  s
             r   Ú	draw_textÚRendererSVG.draw_textò  sÆ   € ð ×)Ñ)¨"Ó-ˆ
Þð �K‰K×ÒÑ0 ZÒ0à�:‰:‹<Ñ#Ø�K‰K×Ñ˜c L°"·*±*³,Ð#?Ô@ä�<‰<˜Ñ'¨6Ó1Ø×#Ñ# B¨1°¸fÕLà×#Ñ# B¨1°¸fÔLà�:‰:‹<Ñ#Ø�K‰K�O‰O˜CÔ æØ�K‰K�O‰O˜CÕ ð r   c                 ó   • grt   rl   rm   s    r   ÚflipyÚRendererSVG.flipy	  rü  r   c                 ó2   • U R                   U R                  4$ r�   )r«   r¬   rm   s    r   Úget_canvas_width_heightÚ#RendererSVG.get_canvas_width_height  s   € à�z‰z˜4Ÿ;™;Ð&Ð&r   c                 ó:   • U R                   R                  XU5      $ r�   )r%  Úget_text_width_height_descent)r=   r   r,  r.  s       r   r�  Ú)RendererSVG.get_text_width_height_descent  s   € à�‰×<Ñ<¸QÀfÓMÐMr   )r¸   r¹   rÁ   r´   r½   r¼   r·   rº   r¾   r»   rÅ   r³   r¬   r±   r«   r°   )Nr0  r�   )NNNN)FN)'ru   rv   rw   rx   r?   rÏ   rÔ   rÆ   rÇ   r  r  r-  rÓ   r_  rb  rm  rÒ   ry  r|  r  rC  r•  r£  r©  rã  r÷  rú  rÿ  r  r  r  r<  r„  r‡  rŠ  r�  r�  rz   Ú__classcell__©rË   s   @r   r¥   r¥   !  sá   ø† ð&$Ø!÷&$ñ &$òP-òòy1òvò-òMòò&*òX+òZ@ò-ò.ô.Bòò9ð GKØ!ôCô!ð" GKô)õV8&òtfòPòBò%ôL!ò\2ò&+ôEôN[ôz!ò.ò'÷Nð Nr   r¥   c                   óR   ^ • \ rS rSrSSS.rSrSSS.S jrS rS	 rU 4S
 jr	Sr
U =r$ )ÚFigureCanvasSVGi  zScalable Vector Graphics)r©   Úsvgzr0  N)Úbbox_inches_restorer¦   c                ó   • [         R                  " USSS9 n[         R                  " U5      (       d  [        R                  " S5      " U5      nU R
                  R                  nSU R
                  l        U R
                  R                  5       u  pgUS-  US-  p˜[        U R
                  XgU[        X‰XEUS9US9n
U R
                  R                  U
5        U
R                  5         SSS5        g! , (       d  f       g= f)aa  
Parameters
----------
filename : str or path-like or file-like
    Output target; if a string, a file will be opened for writing.

metadata : dict[str, Any], optional
    Metadata in the SVG file defined as key-value pairs of strings,
    datetimes, or lists of strings, e.g., ``{'Creator': 'My software',
    'Contributor': ['Me', 'My Friend'], 'Title': 'Awesome'}``.

    The standard keys and their value types are:

    * *str*: ``'Coverage'``, ``'Description'``, ``'Format'``,
      ``'Identifier'``, ``'Language'``, ``'Relation'``, ``'Source'``,
      ``'Title'``, and ``'Type'``.
    * *str* or *list of str*: ``'Contributor'``, ``'Creator'``,
      ``'Keywords'``, ``'Publisher'``, and ``'Rights'``.
    * *str*, *date*, *datetime*, or *tuple* of same: ``'Date'``. If a
      non-*str*, then it will be formatted as ISO 8601.

    Values have been predefined for ``'Creator'``, ``'Date'``,
    ``'Format'``, and ``'Type'``. They can be removed by setting them
    to `None`.

    Information is encoded as `Dublin Core Metadata`__.

    .. _DC: https://www.dublincore.org/specifications/dublin-core/

    __ DC_
rk  zutf-8)Úencodingr0  )r±   r¦   )r—  N)r   Úopen_file_cmÚfile_requires_unicodeÚcodecsÚ	getwriterÚfigureÚdpiÚget_size_inchesr   r¥   ÚdrawrÔ   )r=   r  r—  r¦   ÚfhrŸ  r«   r¬   rk  r   Úrenderers              r   Ú	print_svgÚFigureCanvasSVG.print_svg  sË   € ô@ ×Ò ¨#¸Ò@ÀBÜ×.Ò.¨r×2Ñ2Ü×%Ò% gÔ.¨rÓ2�Ø—+‘+—/‘/ˆCØ ˆD�K‰KŒOØ ŸK™K×7Ñ7Ó9‰MˆEØ˜2‘:˜v¨™{ˆqÜ(Ø—‘˜U¨CÜ˜A "¸hÑGØ$7ñ9ˆHð �K‰K×Ñ˜XÔ&Ø×ÑÔ÷ A×@Ö@ús   —CC/Ã/
C=c                 ó   • [         R                  " US5       n[        R                  " SUS9 nU R                  " U40 UD6sS S S 5        sS S S 5        $ ! , (       d  f       O= f S S S 5        g ! , (       d  f       g = f)NÚwbrk  )ÚmodeÚfileobj)r   rš  ÚgzipÚGzipFiler¤  )r=   r  Úkwargsr¢  Ú
gzipwriters        r   Ú
print_svgzÚFigureCanvasSVG.print_svgzJ  s[   € Ü× Ò  ¨4Ô0°BÜ�mŠm ¨bÒ1°ZØ—>’> *Ñ7°Ñ7÷ 2Ð1÷ 1Ñ0ß1Õ1úÐ1÷ 1×0Ö0ús"   ˜A/®AÁ	A/Á
A"	ÁA/Á/
A=c                 ó   • g)Nr©   rl   rm   s    r   Úget_default_filetypeÚ$FigureCanvasSVG.get_default_filetypeO  s   € Ør   c                 óT   >• U R                   R                  5         [        TU ]  5       $ r�   )rž  Údraw_without_renderingr¿   r¡  )r=   rË   s    €r   r¡  ÚFigureCanvasSVG.drawR  s   ø€ Ø�‰×*Ñ*Ô,Ü‰w‰|‹~Ðr   rl   )ru   rv   rw   rx   Ú	filetypesÚ	fixed_dpir¤  r®  r±  r¡  rz   r’  r“  s   @r   r•  r•    s6   ø† Ø2Ø3ñ5€Ið €Ià9=Èõ , ò\8ò
÷ó r   r•  zœ<?xml version="1.0" encoding="utf-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
  "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
c                   ó0   • \ rS rSr\R
                  r\rSr	g)Ú_BackendSVGia  rl   N)
ru   rv   rw   rx   rÃ   rï   Úbackend_versionr•  ÚFigureCanvasrz   rl   r   r   r¹  r¹  a  s   † à—o‘o€OØ"ƒLr   r¹  )<r
  rœ  rñ   rª  r  Úior   rµ   Úloggingrô   Úrer  Únumpyr    ÚPILr   Ú
matplotlibrÃ   r   r   rE  Úmatplotlib.backend_basesr   r   r	   r
   Ú!matplotlib.backends.backend_mixedr   Úmatplotlib.colorsr   Úmatplotlib.datesr   Úmatplotlib.pathr   r   Úmatplotlib.transformsr   r   Ú	getLoggerru   r  r   Úcompiler!   r#   r'   r)   r0   r2   rŽ   r“   rY  rž   r£   r¥   r•  ÚFigureManagerSVGrÂ   Úexportr¹  rl   r   r   Ú<module>rÌ     s
  ðÛ Û Û Û Û Ý Û Û Û 	Û 	Û ã Ý ã ß 0÷Bó Bå ?Ý %Ý  Ý  Ý ß 8ð ×Ò˜Ó"€òRð —j’j Ó+Ð ò,ò
ò+ò,÷Mñ Mò`ò=ð &¨vÀÑH€ò*ò@ôrN�,ô rNôj>Ð&ô >ðB %Ð ð€	ð 
‡�ô#�(ó #ó ñ#r   