403Webshell
Server IP : 35.80.110.71  /  Your IP : 216.73.216.221
Web Server : Apache/2.4.58 (Ubuntu)
System : Linux ip-172-31-21-44 6.17.0-1019-aws #19~24.04.1-Ubuntu SMP Tue Jun 23 18:53:06 UTC 2026 x86_64
User : ubuntu ( 1000)
PHP Version : 8.3.31
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : OFF
Directory :  /lib/python3/dist-packages/matplotlib/backends/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /lib/python3/dist-packages/matplotlib/backends/__pycache__/backend_svg.cpython-312.pyc
�

G8�c
���.�ddlZddlZddlZddlZddlZddlmZddlZddlZddl	Z	ddl
Z
ddlZddlZ
ddlmZddlZddlmZmZmZddlmZmZmZmZddlmZddlmZddlm Z dd	l!m"Z"dd
lm#Z#ddl$m%Z%m&Z&ejNe(�Z)ejTdd
��d��Z+d�Z,e
jZd�Z.ejTdd��d��Z/d�Z0ejTdd��d��Z1d�Z2d�Z3ejTdd��d��Z4d�Z5Gd�d�Z6d�Z7ejTd�d/d��Z8d �Z9ejTd�d/d!��Z:d"d#d$d%�Z;d&�Z<d'�Z=Gd(�d)e�Z>Gd*�d+e�Z?eZ@d,ZAej�Gd-�d.e��ZCy)0�N)�BytesIO)�Image)�_api�cbook�font_manager)�_Backend�FigureCanvasBase�FigureManagerBase�RendererBase)�MixedModeRenderer)�rgb2hex)�UTC)�Path)�_path)�Affine2D�Affine2DBasez3.6z a vendored copy of _escape_cdata)�alternativec��t|�S�N)�
_escape_cdata��ss �A/usr/lib/python3/dist-packages/matplotlib/backends/backend_svg.py�escape_cdatarEs
������c�r�|jdd�}|jdd�}|jdd�}|S)N�&�&amp;�<�&lt;�>�&gt;��replacers rrrJs7��	�	�	�#�w��A�	�	�	�#�v��A�	�	�	�#�v��A��Hrz-(?=-)z"a vendored copy of _escape_commentc�,�tj|�Sr)�_escape_comment�subrs r�escape_commentr(Ts�����q�!�!rc�D�t|�}tjd|�S)Nz- )r�_escape_xml_commentr'rs rr&r&Ys���a��A��"�"�4��+�+rz!a vendored copy of _escape_attribc��t|�Sr)�_escape_attribrs r�
escape_attribr-^s
���!��rc��|jdd�}|jdd�}|jdd�}|jdd�}|jd	d
�}|S)Nrr�'z&apos;�"z&quot;rr r!r"r#rs rr,r,csW��	�	�	�#�w��A�	�	�	�#�x� �A�	�	�	�#�x� �A�	�	�	�#�v��A�	�	�	�#�v��A��Hrc�x�d|vrdt|�zdzSd|vrdt|�zdzSdt|�zdzS)Nr0r/)rr,rs r�_quote_escape_attribr2lsS��,/�q�L�C�-��"�"�S�(�+�,/�q�L�C�-��"�"�S�(�+��.��#�#�c�)�+rz#a vendored copy of _short_float_fmtc��t|�Sr��_short_float_fmt��xs r�short_float_fmtr8rs
���A��rc�`�dj|�jd�jd�S)z�
    Create a short string representation of a float, which is %f
    formatting with trailing zeros and the decimal point removed.
    z{0:f}�0�.)�format�rstripr6s rr5r5ws)��
�>�>�!��#�#�C�(�/�/��4�4rc�T�eZdZdZd�Zdd�Zifd�Zd�Zd�Zd
d�Z	d	�Z
difd
�Zd�Zy)�	XMLWriterzM
    Parameters
    ----------
    file : writable text file-like object
    c��|j|_t|d�r|j|_d|_g|_g|_d|_y)N�flushrz@                                                                )�write�_XMLWriter__write�hasattrrA�_XMLWriter__open�_XMLWriter__tags�_XMLWriter__data�_XMLWriter__indentation)�self�files  r�__init__zXMLWriter.__init__�s?���z�z����4��!����D�J����������%��rc��|jr,|r|jd�n|jd�d|_|jr=dj|j�}|jt	|��g|_yy)Nz>
r!r�)rErCrG�joinr)rI�indent�datas   r�__flushzXMLWriter.__flush�sa���;�;�����U�#����S�!��D�K��;�;��7�7�4�;�;�'�D��L�L��t�,�-��D�K�rc���|j�t|�}g|_|jj	|�|j|jdt|j�dz
�|jd|z�i|�|�j�D]5\}}|s�	t|�}t|�}|jd|�d|����7d|_
t|j�dz
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�z<%s� �=)�_XMLWriter__flushrrGrF�appendrCrH�len�itemsr2rE)rI�tag�attrib�extra�k�vs      r�startzXMLWriter.start�s���&	
�����C� ����������3�����T�'�'�(=��T�[�[�)9�A�)=�>�?����U�S�[�!�'�v�'��'�-�-�/�	0�D�A�q��!�!�$��(��+������A�.�/�		0�
����4�;�;��!�#�#rc��|j�|j|jdt|j��|jdt|�z�y)z�
        Add a comment to the output stream.

        Parameters
        ----------
        comment : str
            Comment text.
        Nz<!-- %s -->
)rVrCrHrXrFr&)rI�comments  rrazXMLWriter.comment�sF��	
�������T�'�'�(9��T�[�[�)9�:�;����_��w�'?�?�@rc�:�|jj|�y)z�
        Add character data to the output stream.

        Parameters
        ----------
        text : str
            Character data.
        N)rGrW)rI�texts  rrPzXMLWriter.data�s��	
�����4� rNc��|rK|js
Jd|z��t|�|jdk(s-Jd|jd�d|����|jsJd��|jj�}|jr|j	|�n%|j
rd|_|j
d�y|r1|j
|jdt|j��|j
d	|z�y)
a
        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.
        zunbalanced end(%s)���z
expected end(z), got zunbalanced end()rz/>
Nz</%s>
)	rFr�poprGrVrErCrHrX)rIrZrOs   r�endz
XMLWriter.end�s�����;�;�:� 4�s� :�:�;� ��%����R��8�
D�.2�k�k�"�o�s�C�
D�8��;�;�2� 2�2�;��k�k�o�o����;�;��L�L�� �
�[�[��D�K��L�L�� ����L�L��+�+�,=�S����-=�>�?����Y��_�%rc��t|j�|kDr*|j�t|j�|kDr�)yy)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)rXrFrg)rI�ids  r�closezXMLWriter.close�s1���$�+�+���#��H�H�J��$�+�+���#rc�v�|j||fi|��|r|j|�|jd��y)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)rON)r_rPrg)rIrZrcr[r\s     r�elementzXMLWriter.element�s5��	��
�
�3��(�%�(���I�I�d�O������rc��y)zFlush the output stream.N��rIs rrAzXMLWriter.flush	s��r)T�NT)
�__name__�
__module__�__qualname__�__doc__rKrVr_rarPrgrjrlrArnrrr?r?sB���&��!#�$�BA�	!�&�8�!%�R�	�
rr?c	�(�g}|D]{\}}|dk(r
|dk(s|dk(s|dk(r|dk(s
|dk(r|dk(r�*|dk(r t|t�r|j�}|j|�d	d
j	d�|D���d���}d
j	|�S)
N�scale)rS)rSrS�	translate)rr�rotate)r�matrix�(rTc3�2K�|]}t|����y�wrr4)�.0r7s  r�	<genexpr>z&_generate_transform.<locals>.<genexpr>s����>�1�+�A�.�>����))�
isinstancer�	to_valuesrWrN)�transform_list�parts�type�values    r�_generate_transformr�s����E�%�A���e��G�O��$��%�6�/��;�&�5�F�?��8�#���
���8��
�5�,� ?��O�O�%�E�
����#�(�(�>��>�>�@�	A�A��8�8�E�?�rc� �t|xsg�Sr)r�)r�s r�generate_transformr�s���~�3��4�4rc�N�djd�|j�D��S)Nz; c3�0K�|]\}}|�d|�����y�w)z: Nrn)r|r]r^s   rr}z _generate_css.<locals>.<genexpr>"s����<�T�Q���s�"�Q�C�[�<�s�)rNrY�r[s r�
_generate_cssr�!s���9�9�<�V�\�\�^�<�<�<rc� �t|xsi�Sr)r�r�s r�generate_cssr�%s�����2�&�&r�square�butt�round)�
projectingr�r�c�Z�t|t�std|�dt|��d���y)N�Invalid type for z metadata. Expected str, not r;)r��str�	TypeErrorr�)�info�keys  r�
_check_is_strr�-s8���d�C� ��+�C�5�0M���:�,�a�)�*�	*�!rc	���tj|�r3|D]-}t|t�r�t	d|�dt|��d���yt	d|�dt|��d���)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�3s���	�{�{�5���	G�D��d�C�(��"3�C�5�98�8<�T�
�|�1�!F�G�G�	G�
�+�C�5�10�04�U��}�A�?�@�	@rc���eZdZd%dd��fd�Zd�Zd�Zd�Zd�Zd�Zd	�Z	d
�Z
d�Zd�Zd
�Z
d�Zd&d�Zd�Zd�Z		d'd�Zd&d�Z	d&d�Z�fd�Zd�Zd�Zd�Zd�Zd&d�Zd�Zd�Zd&d�Zd&d�Zdd�d �Zd(d!�Z d"�Z!d#�Z"d$�Z#�xZ$S))�RendererSVGN)�metadatac
�p��||_||_t|�|_||_|�t|dd�}t
|t�sd}||_i|_	tj�|_i|_
i|_d|_i|_d|_d|_t&�	|�Q�t+�|_t/|�}t/|�}|j1t2�|jj5dd|zd|zd|�d|��d	d
ddi�
�|_|j9|�|j;�y)N�namerMrF�svgz%sptz0 0 rTzhttp://www.w3.org/2000/svgz1.1zxmlns:xlinkzhttp://www.w3.org/1999/xlink)�width�height�viewBox�xmlns�versionr[)r�r�r?�writer�	image_dpi�getattrr�r��basename�_groupd�	itertools�count�_image_counter�_clipd�_markers�_path_collection_id�_hatchd�_has_gouraud�_n_gradients�superrK�dict�
_glyph_mapr5rB�	svgPrologr_�	_start_id�_write_metadata�_write_default_style)
rIr�r��	svgwriterr�r�r��
str_height�	str_width�	__class__s
         �rrKzRendererSVG.__init__?s'�����
�����	�*���"������y�&�"�5�H��h��,��� ��
����'�o�o�/��������
�#$�� ����!������
�����&���%�f�-�
�$�U�+�	����	�"����*�*���9�$��J�&�#,�j�9�.��!�#A�B�+�D���	
���X�&��!�!�#rc���|j�|j�|jj|j�|jj�yr)�_write_clips�_write_hatchesr�rjr�rAros r�finalizezRendererSVG.finalizees@���������������$�.�.�)������rc�z��|�i}dddtj�d�d�|�}|j�d|vr$|d}t|d��j	d|��|jd	d�}|��t
|t�r|g}n�t
|tjtjf�r|j�g}n�tj|�r�g}|D]�}t
|t�r|j|��%t
|tjtjf�r |j|j���otd
t|��d���ntdt|��d���d
j!|�|d	<n�d	|vr�t#j$d�}|rPtjj't)|��}|j+t,��j�|d	<n/tjj/�j�|d	<d}�fd�}|j1dd�}|�||�}�j	dd|i��dD]O}	|j1|	d�}
|
��||�}t|
|	��j	d|	j3���|
���QdD]�}	|j1|	d�}|��t
|t�r|g}t5||	�||�}�j7d|	j3����|D]7}�j7d��j	d|���j9d��9�j9d|	j3������|j1dd�}
|
��t
|
t�r|
g}
t5|
d�||�}�j7d��j7d�|
D]}�j	d|����j9d��j9d�|��j;|�|rt=ddj!|�z��y) Nz
image/svg+xmlz&http://purl.org/dc/dcmitype/StillImagezMatplotlib vz, https://matplotlib.org/)�Format�Type�Creator�Title�title)rc�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���|�|S�jd�}�jddddd����jd�|S)	Nr�zrdf:RDFz http://purl.org/dc/elements/1.1/zhttp://creativecommons.org/ns#z+http://www.w3.org/1999/02/22-rdf-syntax-ns#)zxmlns:dczxmlns:ccz	xmlns:rdfr�zcc:Work)r_)�midr�s �r�ensure_metadataz4RendererSVG._write_metadata.<locals>.ensure_metadata�sL������
��,�,�z�*�C��L�L��>�<�J�,�L�
�

�L�L��#��Jrr�zdc:typezrdf:resourcer�)	r��Coverager��Descriptionr��
Identifier�Language�Relation�Sourcezdc:)r��Contributor�	Publisher�Rightszcc:Agentzdc:title�Keywordsz
dc:subjectzrdf:Bagzrdf:liz.Unknown metadata key(s) passed to SVG writer: �,)�mpl�__version__r�r�rl�getr�r��datetime�date�	isoformatr�r�rWr�r�rN�os�getenv�utcfromtimestamp�intr$r�todayrf�lowerr�r_rgrj�
ValueError)rIr�r�r��dates�dr�r��urir�r��agents�agent�keywords�keywordr�s               @rr�zRendererSVG._write_metadataks
������H�%�<��s���/�/H�I�	
�
�
�������h���W�%�E��%��)��N�N�7��N�/��|�|�F�D�)�����$��$�����D�8�#4�#4�h�m�m�"D�E����)�*�����T�"����	/�A�!�!�S�)����Q��#�A��(9�(9�8�=�=�'I�J����Q�[�[�]�3�'�#�#'��7�)�1�.�/�/�
	/� �#4�48��J�<�q�!B�C�C� #�x�x���H�V��
�8�
#��9�9�0�1�D���(�(�9�9�#�d�)�D��#'�<�<�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�C�(�����S�Y�Y�[�M�2���>�
	?�E�	,�C��\�\�#�t�,�F��~���&�#�&� ���%�f�c�2�!�#�&�C��L�L�3�s�y�y�{�m�,�-��
'�����Z�(����z���6��
�
�:�&�
'�
�J�J��S�Y�Y�[�M�*�+�!	,�&�<�<�
�D�1�����(�C�(�$�:��%�h�
�;�!�#�&�C��L�L��&��L�L��#�#�
7�����x�g��6�
7��J�J�y�!��J�J�|�$��?��L�L�����M� �X�X�h�/�0�1�
1�rc��|j}tddd��}|jd�|jddd|z��|j	d�y)	Nr�r�)�stroke-linejoin�stroke-linecap�defs�styleztext/cssz*{%s})r�rc)r�r�r_rlrg)rIr��
default_styles   rr�z RendererSVG._write_default_style�sQ������%�&�$�'&�'�
�	���V�����w�Z�g�
�6M��N��
�
�6�rc�N�tjd}|�ttj��}tj�}|j|jd��|jt|�jd��|�|j�dd��S)Nzsvg.hashsalt�utf8�
)
r��rcParamsr��uuid�uuid4�hashlib�sha256�update�encode�	hexdigest)rIr��content�salt�ms     r�_make_idzRendererSVG._make_id�sy���|�|�N�+���<��t�z�z�|�$�D��N�N���	������V�$�%�	����W��$�$�V�,�-��q�{�{�}�S�b�1�2�2rc�p�|t�jdd�jd|j�zS)NrSrer)rrvrwr�)rI�	transforms  r�_make_flip_transformz RendererSVG._make_flip_transform�s-���8�:�+�+�A�r�2�<�<�Q����L�L�Lrc�0�|�t|�}|j�}|�t|�}|j�||f}|jj	|�}|�6|jd|�}|j
�||f|f|j|<|S|\}}|S)z,
        Create a new hatch pattern
        �h)�tuple�get_hatch_color�	get_hatchr�r�r�get_hatch_path)rI�gc�rgbFace�edge�dictkey�oid�_s       r�
_get_hatchzRendererSVG._get_hatch�s������G�n�G��!�!�#������;�D��<�<�>�7�D�1���l�l���w�'���;��-�-��W�-�C�&(�&7�&7�&9�7�D�%I�3�$O�D�L�L��!��
��F�A�s��
rc�>�t|j�syd}|j}|jd�|jj	�D�]9\\}}}}|jd|dddt|�t|���|j
|t�j|�jdd�jd	|�d
��}|�d}nt|�}|jd
ddt|dz�t|dz�|��t|�t|�ttjd�ddd�}	|ddkrt|d�|	d<|jd|t|	���|jd���<|jd�y)N�Hr��pattern�userSpaceOnUser:)ri�patternUnitsr7�yr�r���?��rF��simplify�none�rectrS)r7rr�r��fillzhatch.linewidthr��miter)r$�stroke�stroke-widthr�r���stroke-opacity�path)r�r�)rXr�r�r_�valuesr��
_convert_pathrrvrwr
rlr�r�r�rg)
rI�
HATCH_SIZEr�r*�facer&r�	path_datar$�hatch_styles
          rr�zRendererSVG._write_hatches
s����4�<�<� ���
��������V��)-���)<�)<�)>�#	"�%� �T�4��#��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�$'����5F�(G�$H�&,�'.��K��a�y�1�}�03�F�1�I���,�-��N�N���#�K�0�
�
�

�J�J�y�!�G#	"�H	�
�
�6�rc���i}|j�}|j��Dd|j||�z|d<|�zt|�dk(rl|ddk7rd|sbt	|d�|d<nP|�d|d<nHt|dd�d	k7rt
|�|d<t|�dk(r|ddk7r|st	|d�|d<|r/|j�dk7rt	|j��|d
<|j�\}}|�2djd�|D��|d
<t	t|��|d<|j�}|r�|j�}t
|�|d<|s|ddk7rt	|d�|d<|dk7rt	|�|d<|j�dk7r|j�|d<|j�dk7rt|j�|d<|S)z=Generate a style string from the GraphicsContext and rgbFace.Nzurl(#%s)r$�r(r�fill-opacityr")rrr�opacityr�c3�2K�|]}t|����y�wrr4)r|�vals  rr}z.RendererSVG._get_style_dict.<locals>.<genexpr>Ss����26�*-� ��%�26�r~zstroke-dasharrayzstroke-dashoffsetr&r)r'r�r�r�r�)�get_forced_alpharrrXr5r
r
�	get_alpha�
get_dashesrN�float�
get_linewidth�get_rgb�
get_joinstyle�get_capstyle�_capstyle_d)	rIrrr[�forced_alpha�offset�seq�	linewidth�rgbs	         r�_get_style_dictzRendererSVG._get_style_dict9s������*�*�,��
�<�<�>�%�'�$�/�/�"�g�*F�F�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��'�(��
rc�8�t|j||��Sr)r�rE)rIrrs   r�
_get_stylezRendererSVG._get_stylefs���T�1�1�"�g�>�?�?rc��|j�}|j�\}}|�(|j|�}t|�t	|�f}n.|�*|j
\}}}}	|j||	zz
}||||	f}niS|jj|�}
|
�:|jd|�}|�||f|f|j|<n||f|j|<n|
\}
}dd|�d�iS)N�pz	clip-pathzurl(#r)
�get_clip_rectangle�
get_clip_pathr
rir��boundsr�r�r�r)rIr�cliprect�clippath�clippath_transrr7r�wr�cliprs            r�_get_clip_attrszRendererSVG._get_clip_attrsis����(�(�*��#%�#3�#3�#5� ��.���!�6�6�~�F�N��(�|�S��%8�9�G�
�
!�!���J�A�q�!�Q����Q�q�S�!�A��!�Q��l�G��I��{�{���w�'���<��-�-��W�-�C��#�)1�>�(B�C�'H����G�$�(/��~����G�$��I�D�#��u�S�E��^�,�,rc
��t|j�sy|j}|jd�|jj	�D]�\}}|jd|��t|�dk(r-|\}}|j||d��}|j
d|��nA|\}}}	}
|j
d	t|�t|�t|	�t|
��
�|jd���|jd�y)Nr��clipPath�ri�Fr r*�r�r#�r7rr�r�)	rXr�r�r_r+r,rlr5rg)rIr�rQrrNrOr/r7rrPrs           rr�zRendererSVG._write_clips�s����4�;�;����������V�����+�+�-�	#�I�D�#��L�L���L�,��4�y�A�~�+/�(��.� �.�.��n�u�/�>�	����v���3�!�
��1�a������&�q�)�&�q�)�*�1�-�+�A�.��0�
�J�J�z�"�	#� 	�
�
�6�rc��|r|jjd|��y|jj|d�dz|j|<|jjdd||j|fz��y)N�grUrrSz%s_%d)r�r_r�r�)rIr�gids   r�
open_groupzRendererSVG.open_group�sh����K�K���c�c��*�"�l�l�.�.�q�!�4�q�8�D�L�L��O��K�K���c�g��D�L�L��O�0D�&D��Erc�:�|jjd�y)NrZ)r�rg)rIrs  r�close_groupzRendererSVG.close_group�s��������rc�*�tjdS)Nzimage.composite_image)r�r�ros r�option_image_nocompositez$RendererSVG.option_image_nocomposite�s���<�<� 7�8�8�8rc
��|rdd|j|jf}nd}tj|||||dgd�d�j	d�S)N��)�M�L�Q�C�zF�ascii)r�r�r�convert_to_string�decode)rIr*r	rQr!�sketchs      rr,zRendererSVG._convert_path�sO�����d�j�j�$�+�+�6�D��D��&�&��)�T�8�V�Q�*�E�3�39�6�'�?�	Crc	��|j|�}|duxr|j�du}|jxr|}|j|||||j	���}|j��,|jjdd|j�i�|jjdd|i|j|��d|j||�i��|j��|jjd�yy)N)rQr!rl�a�
xlink:hrefr�r�)r*)r
r�should_simplifyr,�get_sketch_params�get_urlr�r_rlrRrGrg)	rIrr*r	r�trans_and_fliprQr!r/s	         r�	draw_pathzRendererSVG.draw_path�s����2�2�9�=���4��?�B�$5�$5�$7�4�$?���'�'�0�D���&�&��.�t�h��'�'�)�'�+�	��:�:�<�#��K�K���c�L�"�*�*�,�#?�@�������	@�i�	@�4�3G�3G��3K�	@�"&�/�/�"�g�">�	@�
�:�:�<�#��K�K�O�O�C� �$rc	��t|j�sy|j}|j||t	�jdd�zd��}|j
||�}	|t|	�f}
|jj|
�}t|	j�D��
cic]\}}
|jd�r||
��c}
}�}	|�X|jd|
�}|jd�|jd|||	�	�|jd�||j|
<|jdi|j!|���|j#|�}dd|zi}d
d
|j$dz|j&dzf}|j)||d��D]]\}}t|�s�|dd\}}t+|�|d<t+|�|d<|j-||�|d<|jd|���_|jd
�ycc}
}w)NrrFr r&rr�r*)rir�r�rZro�#%srr)rQr!���r7rr��user��rZ)rX�verticesr�r,rrvrEr�r�r�rY�
startswithrr_rlrgrRr
r�r��
iter_segmentsr5rG)rIr�marker_path�marker_transr*�transrr�r/r�rrr]r^rsr[rQrz�coder7rs                     r�draw_markerszRendererSVG.draw_markers�s����4�=�=�!�������&�&���8�:�+�+�C��6�6��'��	��$�$�R��1���m�E�2�3���m�m����(������
�9���1�!"���h�!7� !�!�t�9�:���;��-�-��W�-�C��L�L�� ��N�N�6�c�Y�e�N�D��J�J�v��%(�D�M�M�'�"�����5�D�0�0��4�5��2�2�5�9������,���1�d�j�j��m�T�[�[��^�4��"�0�0��T�E�1�;�	5�N�H�d��8�}����}���1�.�q�1��s��.�q�1��s��"&�/�/�"�g�">��w�����u�V��4�	5�	�
�
�3���-9s�$H
c���t|�dkDrt|dj�nd}|j|||||�}|d|zzdz|dz|zk}|st� |�|||||||||	|
|||
�
S|j
}g}|j
d�t|j|||��D]�\}\}}t|j��jdd�}|j||d�	�}d
|j||jd|�fz}|jd||�
�|j!|���|j#d�|j%|||||||	|
|||
�D]�\}}}}}|j'�}|�|j
dd|i��|j)|�}|r|jdi|��d|zt+|�t+|j,|z
�|j/||�d�}|jd|��|r|j#d�|���|j#d���|xjdz
c_
y)Nr�	r(�r�rrFr z	C%x_%x_%srMr*)rir�rnror�rZrv)ror7rr�rxrSry)rXrz�_iter_collection_uses_per_pathr��draw_path_collectionr�r_�	enumerate�_iter_collection_raw_pathsr�
get_matrixrvr,r�rrlrWrg�_iter_collectionrrrRr5r�rG)!rIr�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�ir*r	r�r�xo�yo�path_id�gc0r�url�
clip_attrsr[r�s!                                �rr�z RendererSVG.draw_path_collection�sy���.1��Z�!�^�3�u�Q�x�(�(�)����;�;��>�7�J�
�D�
�
�q�=�(�(�1�,��1��
�/M�M�	�%��7�/��$�e�^���z�:��J��d��	!�
!������
����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�C��N�N�6�c�Q�N�/����c�"�	#�	�
�
�6��-1�-B�-B��J����J�
�J��d�O�.5�	 �)�B��G�S�'��+�+�-�C������S�,��)<��=��-�-�c�2�J������/�J�/�#�g�o�%�b�)�%�d�k�k�B�&6�7�����g�6�	�F�
�N�N�5��N�0���
�
�3�����
�
�3��)	 �,	
� � �A�%� rc���|j}|js~d|_|jdd��|jdddidd	d
d
��|j	d�|jdd��|jd
ddid��|j	d�tj|d��}|ddk(ry|j|�}|j|�}|jd�td�D�]/}	||	\}
}||	dzdz\}}
||	dzdz\}}||	}||k(r|}|}n?|
|k(r|
}|
}n5|
|z
||z
z}|
||zz
}d|z}|||
zz
}||z||z
z}||z|z}|jdd|j|	fzdt|
�t|�t|�t|���|jdd
tt|�t|d�d��� �|jdd!tt|�d!d��� �|j	d���2|j	d�d"t
�zd#zt�z}|d$t�zd#zt
�zz
}|d%t�zd#zt�zd&zz
}|jd'|t|�d
d(d)��*�|jd+d,d!d(d-d.��*�|jd'|d/|jzd(d0��*�|jd'|d1|jzd2d(d3��*�|jd'|d4|jzd2d(d3��*�|j	d+�|xjdz
c_
y)5NT�filter�colorAddrU�feComposite�in�
SourceGraphic�BackgroundImage�
arithmetic�1)r[�in2�operator�k2�k3�colorMat�
feColorMatrixr�ryz61 0 0 0 0 
0 1 0 0 0 
0 0 1 0 0 
1 1 1 1 0 
0 0 0 0 1 )r[r+r)�axisrer�r(rSrVr�linearGradientzGR%x_%dr)ri�
gradientUnits�x1�y1�x2�y2�stop)z
stop-colorzstop-opacity)rAr�r:zM r�z L rTz Zr*�
crispEdges)r�r$r3�shape-renderingr�rZr"zurl(#colorMat))r&r'r�r�zurl(#GR%x_0))r�r$r�zurl(#GR%x_1)zurl(#colorAdd))r�r$r�r�zurl(#GR%x_2))r�r�r_rlrgr��averager
r	�ranger�r5r�r
)rIr�points�colorsrr��	avg_colorrs�tpointsr�r�r�r�r��x3�y3�
rgba_color�xb�yb�m1�b1�m2�b2�dpaths                        r�draw_gouraud_trianglez!RendererSVG.draw_gouraud_triangle"s������� � � $�D���L�L���
�
�
�N�N���o�.�%�%��3�
�
 �
�J�J�x� ��L�L���
�
�
�N�N����)�3�
�
4�

�J�J�x� ��J�J�v�A�.�	��R�=�A����2�2�5�9�� �*�*�6�2�����V���q��&	)�A��Q�Z�F�B���a�!�e�q�[�)�F�B���a�!�e�q�[�)�F�B�����J��R�x������r�������2�g�"�r�'�*���2��7�^���R�x�[���2��7�^���c�B�h�2��7�+���"�W�r�\���L�L� ��� 1� 1�1�5�5�.�#�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���'��+�+�C�/�2B�2�2F�F��
��)�"�-�-��3�6F�r�6J�J�J��
��'��+�+�c�1�4D�R�4H�H�4�O�O�������#�I�.�$'�'3�5�	�	6�	����"(�(+�+7�"2�4�	�	5�	�����*�T�->�->�>�'3�5�	�	6�	�����*�T�->�->�>�.�'3�5�	�	6�	�����*�T�->�->�>�.�'3�5�	�	6�	�
�
�3�����Q��rc��|jjdi|j|���|j�}t	||�D]\}}|j||||��|jj
d�y)NrZry)r�r_rR�frozen�zipr�rg)rIr�triangles_array�colors_arrayr	�tri�cols       r�draw_gouraud_trianglesz"RendererSVG.draw_gouraud_triangles�sr��������:��!5�!5�b�!9�:��$�$�&�	��O�\�:�	@�H�C���&�&�r�3��Y�?�	@�������rc��yrprnros r�option_scale_imagezRendererSVG.option_scale_image����rc� �|jdzS)N�R@)r�ros r�get_image_magnificationz#RendererSVG.get_image_magnification�s���~�~��$�$rc
��|jdd\}}|dk(s|dk(ry|j|�}|r|jjdi|��|j	�}	|	�|jjdd|	i��i}
|j�}tjdr�t�}tj|�j|d�	�|xs |jd
|j��}dtj|j��j!d�z|
d<n�|j"�t%d
��dj'|j"t)|j*��}
t,j/d|
�tj|�j|
�|xsd|jd
|
�z}|
|
d<||
d<|��d|z|j0z}d|z|j0z}|jj3d
t5ddd|ffg�t7|�t7|j8|z
|z
�t7|�t7|�|
��n�|j;�}|dk7rt7|�|
d<t=�j?d|zd|z�|zt=�jA||�j?dd�jAd|j8�z}t5d|jC�fg�|
d<d|
d<|jj3d
t7|�t7|�|
��|	�|jjEd�|r|jjEd�yy) NrVrrZrnror�zsvg.image_inline�png)r<�imagezdata:image/png;base64,
rizLCannot save image data to filesystem when writing SVG to an in-memory bufferz{}.image{}.pngz$Writing image file for inclusion: %s�Im_rir�)rv)rSrerw)r	r7rr�r�r[rr4rrbryr	z5image-rendering:crisp-edges;image-rendering:pixelatedr�)r�r�r[ry)#�shaperRr�r_rr�get_gidr�r�rr�	fromarray�saver�getvalue�base64�	b64encoderkr�r�r<�nextr��_logr�r�rlr�r5r�r8rrvrwr�rg)rIrr7r�imr	rrPr�r�r[r�buf�filename�alpha�flippeds                r�
draw_imagezRendererSVG.draw_image�sF���x�x���|���1���6�Q�!�V���)�)�"�-�
��
�D�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�$7�$7�8�:�H��I�I�<�h�G��O�O�B��$�$�X�.��A�����w��!A�A�C�#+�F�<� ���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�a����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� �rc	�r�|j}|r�|jd�|j�D]X\}\}}|j|�}|j	t|dz|�d��}|j
d||tdg����Z|jd�|jj|�yy)	zn
        Emit definitions for not-yet-defined glyphs, and record them as having
        been defined.
        r��@Fr r*)rv)g�?)rir�r	N)r�r_rY�_adjust_char_idr,rrlr�rgr�r)rI�
glyph_map_newr��char_idrz�codesr/s       r�_update_glyph_map_defsz"RendererSVG._update_glyph_map_defss���
������L�L�� �.;�.A�.A�.C�
K�*��*�(�E��.�.�w�7�� �.�.���B���.��/�@�	�����w�)�1�3G�2H�I��K�
K�
�J�J�v���O�O�"�"�=�1�rc�&�|jdd�S)Nz%20rr#)rIr�s  rr�zRendererSVG._adjust_char_ids�����u�c�*�*rc		���|j}	|	j|�|j}
|j}t	|j��}|j
�}
i}|dk7r||d<|j�r|j�n|j�d}|dk7rt|�|d<|
|jz}t|�td||ffd|ffd||ffg�d	�}|	jd
|��|s�|j|�}|j|||
d�
�}|\}}}|j!|�|D]G\}}}}dd|zi}|dk7rt|�|d<|dk7rt|�|d<|	j#d|���In�|dk(r|j%|||
d�
�}n|j'|||
d�
�}|\}}}|j!|�|D]C\}}}}|j)|�}|	j#dtd||ffd|ffg�dd|zi���E|D]7\}}t+||�}|j-|d��}|	j#d|���9|	j/d
�y)a]
        Draw the text by converting them to paths using the textpath module.

        Parameters
        ----------
        s : str
            text to be converted
        prop : `matplotlib.font_manager.FontProperties`
            font property
        ismath : bool
            If True, use mathtext parser. If "TeX", use *usetex* mode.
        �#000000r$r(rSr4rwrxrv�r�r	rZr�T)�	glyph_map�return_new_glyphs_onlyrorvrbr7rrx�TeX)r	r[Fr r*rWN)r�rar��
_text2pathr
r<�get_size_in_pointsr7r8r5�
FONT_SCALEr�r�r_�	_get_font�get_glyphs_with_fontr�rl�get_glyphs_tex�get_glyphs_mathtextr�rr,rg) rIrr7rr�prop�angle�ismath�mtextr�r��	text2path�color�fontsizer�r��
font_scaler[�font�_glyphs�
glyph_infor��rects�glyph_id�	xposition�	ypositionrvr��vertsr�r*r/s                                 r�_draw_text_as_pathzRendererSVG._draw_text_as_paths����������q���O�O�	��O�O�	���
�
��%���*�*�,�����I��!�E�&�M�"$�"5�"5�"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�9�T�5�K�G�/6�,�J�
�u��'�'�
�6�9C�
5�5��)�Y��&���(8�9����#�"2�9�"=�F�3�K���#�"2�9�"=�F�3�K����u�V��4�

5����#�2�2��!�y��3�O��$�7�7��!�y��8�O��/6�,�J�
�u��'�'�
�6�8B�
<�4���I�u��.�.�w�7������1�$�y�)�&<�=� �5�(�+�3��)�%�'�/�:�
�<�
<�!&�
4���u��E�5�)�� �.�.�t�e�.�D�	����v���3�
4�
	�
�
�3�rc	�*�'�|j}	t|j��}
i}|
dk7r|
|d<|j�r|j	�n|j�d}|dk7rt|�|d<|�s�i}
g}|j
�dk7r|j|j
��|j�dk7r|j|j��tj|j�}|dk7r|j|��d��'�'fd	�}|jt|j���d
�djtj!||���g�dj|�|d
<|j#�dk7r|j#�|d<t%|�|
d<|�r<|dk(s|j'�dk(�r#|j)�}|j+|j-��\}}|j.|z
}t1j2|�}t1j4t1j6|�t1j8|�g�}t1j:|||z
||z
g�}|||dzz}|||dzz}dddd�}||j=�|d<t|�|
d<t|�|
d<t%|�|
d<t?d|||ffg�|
d<nt?d||ffd|ffg�|
d<|	jAd||
��y|	jC|�|jDjFjI|d|�\}}}}}|	jKdt%|�t?d||ffd|ffg�� �|	jKd�i}|D�]1\}}} }!}"tjL|�}#g}|#jNdk7r|j|#jN�|#jPdk7r|j|#jP�|#jRdk7r|j|#jR��|jt|��d
�|#jT�g�d
dj|�i}|#jVdk7r|#jV|d<t%|�}| d!k(rd"} |jY|g�j|!|"| f���4|j[�D]�\}}$|$j]�t_|$D���%chc]\}}}%|��
c}%}}�dk(rta|$dd�}&ndjd#�|$D��}&|djd$�|$D��|&d%�}
|	jAd&d'jd(�|$D��|
����|	jcd�|D]E\}}}}|	jAd)t|�t|dz
�t|�t|��*��G|	jcd�ycc}%}}w)+Nr�r$r(rSr4�normali�c3�tK�ddd�}|tjvr�|j||�}tjj	|�D�cgc]}|j||���}}|j|�|D]&}|tjvr|���t
|����(yt
|���ycc}w�w)Nz
sans-serif)�sansz
sans serif)�fm�font_family_aliasesr��FontManager�_expand_aliasesrW�repr)�fn�normalize_namesr�aliasesrns     r�_format_font_namez9RendererSVG._draw_text_as_text.<locals>._format_font_name�s�����(�".�#����/�/�/�)�,�,�R��4�B�
���6�6�r�:��67��+�+�A�q�1��G���N�N�2�&�$�*���� 6� 6�6�"#�G�#'�q�'�M�
*��r�(�N��#�s�AB8�
B3�&AB8c3�\�K�|j�D]}�|�Ed{����y7��wr)�
get_family)r�frs  �r�_get_all_namesz6RendererSVG._draw_text_as_text.<locals>._get_all_names�s.��������*�4�A�0��3�3�3�4�3�s�,�*�,�pxz, rTr
zfont-stretchr�r�anchorr_rg�middle)�left�right�centerztext-anchorr7rrxr	rwrcr�rrZr�� �c3�8K�|]}t|d����y�w)rSN)r��r|�cs  rr}z1RendererSVG._draw_text_as_text.<locals>.<genexpr>s����!;��#�a��d�)�!;���c3�8K�|]}t|d����y�w)rNr4r-s  rr}z1RendererSVG._draw_text_as_text.<locals>.<genexpr>s����!H�Q�"2�1�Q�4�"8�!H�r/)r�r7r�tspanrMc3�8K�|]}t|d����y�w)rVN)�chrr-s  rr}z1RendererSVG._draw_text_as_text.<locals>.<genexpr>
s����5�!�C��!��I�5�r/r#rX)2r�r
r<r7r8r5�	get_stylerW�get_variantr�weight_dict�
get_weight�extend�get_sizerNr��fromkeys�get_stretchr��get_rotation_mode�
get_transformr	�get_unitless_positionr�r��deg2rad�array�sin�cos�dot�get_har�rlrar��mathtext_parser�parser_�ttfFontPropertyr��variant�weightr��stretch�
setdefaultrY�sortrXr�rg)(rIrr7rrrrrrr�rr�r�r[�
font_partsrIr#r	�ax�ay�	angle_rad�dir_vert�v_offset�
ha_mpl_to_svgr�r��descent�glyphsr
�spansr
r�thetext�new_x�new_y�entry�chars�t�ysrs(                                       @r�_draw_text_as_textzRendererSVG._draw_text_as_textks����������
�
��%�����I��!�E�&�M�"$�"5�"5�"7�����R�Z�Z�\�!�_���A�:�/��6�E�)����F��J��~�~��8�+��!�!�$�.�.�"2�3����!�X�-��!�!�$�"2�"2�"4�5��^�^�D�O�O�$5�6�F���}��!�!�V�H�.�
#�B
4�
���#�D�M�M�O�4�5�R�8��	�	�$�-�-��t�(<�=�>��
�
 �H�H�Z�0�E�&�M����!�X�-�(,�(8�(8�(:��n�%�+�E�2�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�
�'4�U�\�\�^�'D��m�$�.�r�2��s��.�r�2��s��"/��"6��w��&9�����B�/�0�;2�'3��{�#�':� �1�a�&�)����y�)�;+�',��{�#�
�N�N�6�1�V�N�4�
�N�N�1�����/�/�5�5�a��T�B�
2�E�6�7�F�E�

�L�L��,�U�3�#6�)�A�q�6�2�&�%��	�2�84�$5�
�
�
�L�L�� ��E�9?�
M�5��h�����*�*�4�0���
��;�;�(�*��%�%�e�k�k�2��=�=�H�,��%�%�e�m�m�4��<�<�3�&��%�%�����8��!�!�'��1�2�"�5��z�z�n�#�� ����*�!5�6���=�=�H�,�,1�M�M�E�.�)�%�e�,���b�=�"�G�� � ���+�2�2�E�E�6�7�3K�L�'
M�*!&���
�
#���u��
�
����/�/�g�a��A��/�0�A�5��U�1�X�a�[�)�B����!;�U�!;�;�B�#����!H�%�!H�H���������G�G�5�u�5�5�!��#�
#�&
�J�J�v��',�
�#��1�e�V�����&�q�)�&��r�!�t�,�*�5�1�+�F�3���
�
�J�J�s�O��70s�
X)rc	�4�|j||||||d��y)Nr�)r)r)rIrr7rrrrrs        r�draw_texzRendererSVG.draw_texs������A�q�!�T�5���Grc	
��|j|�}	|	r|jjdi|	��|j��,|jjdd|j�i�tj
ddk(r|j
||||||||�n|j||||||||�|j��|jjd�|	r|jjd�yy)NrZrnrozsvg.fonttyper*ry)	rRr�r_rrr�r�rr^rg)
rIrr7rrrrrrr�s
          r�	draw_textzRendererSVG.draw_text!s����)�)�"�-�
��
�D�K�K���0�Z�0�
�:�:�<�#��K�K���c�L�"�*�*�,�#?�@��<�<��'�6�1��#�#�B��1�a��u�f�e�L��#�#�B��1�a��u�f�e�L�
�:�:�<�#��K�K�O�O�C� ���K�K�O�O�C� �rc��yrprnros r�flipyzRendererSVG.flipy8r�rc�2�|j|jfSr)r�r�ros r�get_canvas_width_heightz#RendererSVG.get_canvas_width_height<s���z�z�4�;�;�&�&rc�<�|jj|||�Sr)r��get_text_width_height_descent)rIrrrs    rrhz)RendererSVG.get_text_width_height_descent@s�����<�<�Q��f�M�Mr)Nrr)NNNN)FN)%rqrrrsrKr�r�r�rr
rr�rErGrRr�r\r^r`r,rtr�r�r�r�r�r�r�r�r�rr^r`rbrdrfrh�
__classcell__�r�s@rr�r�>s����$$�!�$$�L�y1�v�3�M��$*�X+�Z@�-�.�.F��9�GK�!�C�!�"GK�%�N8&�tB�H��%�M!�^2�&+�O�bp�d;?�H�!�.�'�Nrr�c���eZdZddd�ZdZejdd�ddd�d��Zejdd�d	��Zd
�Z	�fd�Z
�xZS)�FigureCanvasSVGzScalable Vector Graphics)r��svgzrz3.5�argsN)�bbox_inches_restorer�c��tj|dd��5}tj|�stjd�|�}|j
j}d|j
_|j
j�\}}|dz|dz}
}	t|j
|||t|	|
|||��|��}|j
j|�|j�ddd�y#1swYyxYw)a
        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_
        rPzutf-8)�encodingr)r�r�)roN)r�open_file_cm�file_requires_unicode�codecs�	getwriter�figure�dpi�get_size_inchesrr��drawr�)rIr�ror�rn�fhrwr�r�rPr�renderers            r�	print_svgzFigureCanvasSVG.print_svgKs���D�
�
��#��
@�	 �B��.�.�r�2�.�V�%�%�g�.�r�2���+�+�/�/�C� �D�K�K�O� �K�K�7�7�9�M�E�6��2�:�v��{�q�A�(����U�F�C��A�q�"��h�G�$7�9�H�
�K�K���X�&�����	 �	 �	 �s�CC5�5C>c���tj|d�5}tjd|��5}|j|fi|��cddd�cddd�S#1swYnxYwddd�y#1swYyxYw)N�wbrP)�mode�fileobj)rrr�gzip�GzipFiler|)rIr�rn�kwargsrz�
gzipwriters      r�
print_svgzzFigureCanvasSVG.print_svgz{sg��
�
�
��$�
/�	8�2��
�
�3��3�	8�7A�!�4�>�>�*�7��7�	8�	8�	8�	8��	8�	8�	8�s"�A*�A�	A*�A	�A*�*A3c��y)Nr�rnros r�get_default_filetypez$FigureCanvasSVG.get_default_filetype�s��rc�T��|jj�t�|�
�Sr)rv�draw_without_renderingr�ry)rIr�s �rryzFigureCanvasSVG.draw�s������*�*�,��w�|�~�r)rqrrrs�	filetypes�	fixed_dpir�delete_parameterr|r�r�ryrirjs@rrlrlEsq���2�3�5�I��I��T���5�&�)�=A��- �*�- �^�T���5�&�)�8�*�8�
��rrlz�<?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�(�eZdZejZeZy)�_BackendSVGN)rqrrrsr�r��backend_versionrl�FigureCanvasrnrrr�r��s���o�o�O�"�Lrr�r)Dr�rtr�r�r��iorr��loggingr��rer��numpyr��PILr�
matplotlibr�rrrr�matplotlib.backend_basesrr	r
r�!matplotlib.backends.backend_mixedr�matplotlib.colorsr
�matplotlib.datesr�matplotlib.pathrr�matplotlib.transformsrr�	getLoggerrqr��
deprecatedrr�compiler*r(r&r-r,r2r8r5r?r�r�r�r�r?r�r�r�rl�FigureManagerSVGr��exportr�rnrr�<module>r�s���
�
�������	�	�����6�6�B�B�?�%� � ��8��w����"��R�����$F�G��H��
�!�b�j�j��+�������$H�I�"�J�"�,�
�����$G�H��I��
�+������$I�J��K��5�L
�L
�^�������5��5�=�������'��'�&�v��H��*�@�DN�,�DN�N A�&�A�H%��
�	�
���#�(�#��#r

Youez - 2016 - github.com/yon3zu
LinuXploit