Ë
    ¨ehòY  ã                   óŠ  — d dl Z d dlZd dlZd dlZd dlmZmZmZ d dlm	Z	m
Z
mZmZmZmZmZ 	 d dlZ	  ej&                  dd«       d dlmZmZmZmZmZ dd	lmZ dd
lmZmZm Z m!Z!m"Z# ejH                  dk\  Z% G d„ deejL                  «      Z' G d„ de!ejP                  «      Z) G d„ de	ejP                  «      Z* ejV                  e'«       G d„ dejX                  «      «       Z- ejV                  e'«       G d„ dej\                  «      «       Z/ ejV                  e'«       G d„ dej`                  «      «       Z1 ejV                  e'ejd                  «        ejV                  e'ejf                  «       e*Z4 G d„ de «      Z5ejl                   G d„ de«      «       Z7y# e$ rZ ed«      e‚dZ[ww xY w# e$ rZ ee«      e‚dZ[ww xY w)é    N)Ú_apiÚbackend_toolsÚcbook)ÚToolContainerBaseÚMouseButtonÚKeyEventÚLocationEventÚ
MouseEventÚResizeEventÚ
CloseEventz#The GTK4 backends require PyGObjectÚGtkz4.0)ÚGioÚGLibr   ÚGdkÚ	GdkPixbufé   )Ú_backend_gtk)Ú_BackendGTKÚ_FigureCanvasGTKÚ_FigureManagerGTKÚ_NavigationToolbar2GTKÚTimerGTK)é   é/   r   c                   óÜ   ‡ — e Zd ZdZdZ ej                  d„ «      Zdˆ fd„	Zd„ Z	d„ Z
dd„Zd„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zdd„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zˆ xZ S )ÚFigureCanvasGTK4Úgtk4Fc                 ó   — t         S ©N)ÚFigureManagerGTK4)Úclss    ú^/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/matplotlib/backends/backend_gtk4.pyú<lambda>zFigureCanvasGTK4.<lambda>&   s   € Ô3D€ ó    c                 óà  •— t         ‰	| �  |¬«       | j                  d«       | j                  d«       d| _        d | _        | j                  | j                  «       | j                  d| j                  «       | j                  d| j                  «       t        j                  «       }|j                  d«       |j                  d| j                  «       |j                  d| j                  «       | j!                  |«       t        j"                  «       }|j                  d| j$                  «       |j                  d	| j&                  «       | j!                  |«       t        j(                  «       }|j                  d
| j*                  «       |j                  d| j,                  «       |j                  d| j.                  «       | j!                  |«       t        j0                  j3                  t        j4                  j6                  «      }|j                  d| j8                  «       | j!                  |«       | j;                  d«       t        j<                  «       }d}t        j>                  ddd«      €|jA                  |d«       n |jA                  |jC                  d«      «       | jE                  «       }|jG                  |t        jH                  «       |jK                  d«       y )N)ÚfigureTr   Úresizeznotify::scale-factorÚpressedÚreleasedzkey-pressedzkey-releasedÚmotionÚenterÚleaveÚscrollz/.matplotlib-canvas { background-color: white; }é   é	   r   éÿÿÿÿzutf-8zmatplotlib-canvas)&ÚsuperÚ__init__Úset_hexpandÚset_vexpandÚ_idle_draw_idÚ_rubberband_rectÚset_draw_funcÚ
_draw_funcÚconnectÚresize_eventÚ_update_device_pixel_ratior   ÚGestureClickÚ
set_buttonÚbutton_press_eventÚbutton_release_eventÚadd_controllerÚEventControllerKeyÚkey_press_eventÚkey_release_eventÚEventControllerMotionÚmotion_notify_eventÚenter_notify_eventÚleave_notify_eventÚEventControllerScrollÚnewÚEventControllerScrollFlagsÚVERTICALÚscroll_eventÚset_focusableÚCssProviderÚcheck_versionÚload_from_dataÚencodeÚget_style_contextÚadd_providerÚ#STYLE_PROVIDER_PRIORITY_APPLICATIONÚ	add_class)
Úselfr&   ÚclickÚkeyr*   r-   ÚcssÚstyleÚ	style_ctxÚ	__class__s
            €r"   r2   zFigureCanvasGTK4.__init__(   s=  ø€ Ü‰Ñ ÐÔ'à×Ñ˜ÔØ×Ñ˜ÔàˆÔØ $ˆÔà×Ñ˜4Ÿ?™?Ô+Ø�‰�X˜t×0Ñ0Ô1Ø�‰Ð+¨T×-LÑ-LÔMä× Ñ Ó"ˆØ×Ñ˜ÔØ�‰�i ×!8Ñ!8Ô9Ø�‰�j $×";Ñ";Ô<Ø×Ñ˜EÔ"ä×$Ñ$Ó&ˆØ�‰�M 4×#7Ñ#7Ô8Ø�‰�N D×$:Ñ$:Ô;Ø×Ñ˜CÔ ä×*Ñ*Ó,ˆØ�‰�x ×!9Ñ!9Ô:Ø�‰�w × 7Ñ 7Ô8Ø�‰�w × 7Ñ 7Ô8Ø×Ñ˜FÔ#ä×*Ñ*×.Ñ.Ü×*Ñ*×3Ñ3ó5ˆà�‰�x ×!2Ñ!2Ô3Ø×Ñ˜FÔ#à×Ñ˜4Ô ä�o‰oÓˆØAˆÜ×Ñ˜Q  1Ó%Ð-Ø×Ñ˜u bÕ)à×Ñ˜uŸ|™|¨GÓ4Ô5Ø×*Ñ*Ó,ˆ	Ø×Ñ˜s¤C×$KÑ$KÔLØ×ÑÐ/Õ0r$   c                 ó8   — t        d| «      j                  «        y )NÚclose_event)r   Ú_process©rV   s    r"   ÚdestroyzFigureCanvasGTK4.destroyW   s   € Ü�= $Ó'×0Ñ0Õ2r$   c                 óL   — | j                  t        j                  |«      «       y r   )Úset_cursor_from_namer   Úmpl_to_gtk_cursor_name)rV   Úcursors     r"   Ú
set_cursorzFigureCanvasGTK4.set_cursorZ   s   € à×!Ñ!¤,×"EÑ"EÀfÓ"MÕNr$   c                 óT  — |€_| j                  «       j                  «       }|j                  | j                  «       j	                  «       j                  «       «      \  }}}}n|\  }}|| j                  z  }| j                  j                  j                  || j                  z  z
  }||fS )a™  
        Convert the *xy* position of a GTK event, or of the current cursor
        position if *xy* is None, to Matplotlib coordinates.

        GTK use logical pixels, but the figure is scaled to physical pixels for
        rendering.  Transform to physical pixels so that all of the down-stream
        transforms work as expected.

        Also, the origin is different and needs to be corrected.
        )
Ú
get_nativeÚget_surfaceÚget_device_positionÚget_displayÚget_default_seatÚget_pointerÚdevice_pixel_ratior&   ÚbboxÚheight)rV   ÚxyÚsurfaceÚis_overÚxÚyÚmasks          r"   Ú_mpl_coordszFigureCanvasGTK4._mpl_coords^   sŸ   € ð ˆ:Ø—o‘oÓ'×3Ñ3Ó5ˆGØ")×"=Ñ"=Ø× Ñ Ó"×3Ñ3Ó5×AÑAÓCó#EÑˆG�Q˜™4ð ‰DˆAˆqØ�×'Ñ'Ñ'ˆà�K‰K×Ñ×#Ñ# a¨$×*AÑ*AÑ&AÑAˆØ�!ˆtˆr$   c                 óª   — t        d| g| j                  «       ¢­|| j                  |«      t        r|j	                  «       nd dœŽj                  «        y)NrL   )ÚstepÚ	modifiersÚguiEventT)r
   rw   Ú_mpl_modifiersÚ_GOBJECT_GE_3_47Úget_current_eventr_   )rV   Ú
controllerÚdxÚdys       r"   rL   zFigureCanvasGTK4.scroll_eventt   sR   € ÜØ˜Dð	
Ø#'×#3Ñ#3Ó#5ñ	
Ø<>Ø×)Ñ)¨*Ó5Ý7G�Z×1Ñ1Ô3ÈTò	
÷ ‰(Œ*Ør$   c                 óî   — t        d| g| j                  ||f«      ¢|j                  «       ‘­| j                  |«      t        r|j                  «       nd dœŽj                  «        | j                  «        y )Nr>   ©rz   r{   )r
   rw   Úget_current_buttonr|   r}   r~   r_   Ú
grab_focus©rV   r   Ún_pressrt   ru   s        r"   r>   z#FigureCanvasGTK4.button_press_event|   so   € ÜØ  $ð	
Ø)-×)9Ñ)9¸1¸a¸&Ó)Að	
à×)Ñ)Ó+ñ	
ð ×)Ñ)¨*Ó5Ý7G�Z×1Ñ1Ô3ÈTò		
÷
 ‰(Œ*Ø�‰Õr$   c                 óÎ   — t        d| g| j                  ||f«      ¢|j                  «       ‘­| j                  |«      t        r|j                  «       nd dœŽj                  «        y )Nr?   rƒ   )r
   rw   r„   r|   r}   r~   r_   r†   s        r"   r?   z%FigureCanvasGTK4.button_release_event…   se   € ÜØ" Dð	
Ø+/×+;Ñ+;¸QÀ¸FÓ+Cð	
à×)Ñ)Ó+ñ	
ð ×)Ñ)¨*Ó5Ý7G�Z×1Ñ1Ô3ÈTò		
÷
 ‰(�*r$   c           	      ó¬   — t        d| | j                  |||«      g| j                  «       ¢­dt        r|j	                  «       nd iŽj                  «        y)NrB   r{   T©r   Ú_get_keyrw   r}   r~   r_   ©rV   r   ÚkeyvalÚkeycodeÚstates        r"   rB   z FigureCanvasGTK4.key_press_event�   sS   € ÜØ˜t T§]¡]°6¸7ÀEÓ%Jð	
à×ÑÓò	
õ 8H�Z×1Ñ1Ô3ÈTñ	
÷ ‰(Œ*Ør$   c           	      ó¬   — t        d| | j                  |||«      g| j                  «       ¢­dt        r|j	                  «       nd iŽj                  «        y)NrC   r{   TrŠ   rŒ   s        r"   rC   z"FigureCanvasGTK4.key_release_event•   sS   € ÜØ  t§}¡}°V¸WÀeÓ'Lð	
à×ÑÓò	
õ 8H�Z×1Ñ1Ô3ÈTñ	
÷ ‰(Œ*Ør$   c                 óÎ   — t        d| g| j                  ||f«      ¢­| j                  |«      | j                  |«      t        r|j                  «       nd dœŽj                  «        y )NrE   )Úbuttonsrz   r{   )r
   rw   Ú_mpl_buttonsr|   r}   r~   r_   ©rV   r   rt   ru   s       r"   rE   z$FigureCanvasGTK4.motion_notify_event�   s`   € ÜØ! 4ð	
Ø*.×*:Ñ*:¸A¸q¸6Ó*Bñ	
à×%Ñ% jÓ1Ø×)Ñ)¨*Ó5Ý7G�Z×1Ñ1Ô3ÈTò		
÷
 ‰(�*r$   c                 ó¬   — t        d| g| j                  ||f«      ¢­| j                  «       t        r|j	                  «       nd dœŽj                  «        y )NÚfigure_enter_eventrƒ   ©r	   rw   r|   r}   r~   r_   r”   s       r"   rF   z#FigureCanvasGTK4.enter_notify_event¥   sP   € ÜØ  $ð	
Ø)-×)9Ñ)9¸1¸a¸&Ó)Añ	
à×)Ñ)Ó+Ý7G�Z×1Ñ1Ô3ÈTò	
÷ ‰(�*r$   c                 ó¦   — t        d| g| j                  «       ¢­| j                  «       t        r|j	                  «       nd dœŽj                  «        y )NÚfigure_leave_eventrƒ   r—   )rV   r   s     r"   rG   z#FigureCanvasGTK4.leave_notify_event¬   sJ   € ÜØ  $ð	
Ø)-×)9Ñ)9Ó);ñ	
à×)Ñ)Ó+Ý7G�Z×1Ñ1Ô3ÈTò	
÷ ‰(�*r$   c                 ó(  — | j                  «        | j                  j                  }|| j                  z  |z  }|| j                  z  |z  }| j                  j	                  ||d¬«       t        d| «      j                  «        | j                  «        y )NF)Úforwardr:   )r;   r&   Údpirn   Úset_size_inchesr   r_   Ú	draw_idle)rV   ÚareaÚwidthrp   rœ   ÚwinchÚhinchs          r"   r:   zFigureCanvasGTK4.resize_event³   s{   € Ø×'Ñ'Ô)Ø�k‰k�o‰oˆØ˜×/Ñ/Ñ/°#Ñ5ˆØ˜×0Ñ0Ñ0°3Ñ6ˆØ�‰×#Ñ# E¨5¸%Ð#Ô@Ü�N DÓ)×2Ñ2Ô4Ø�‰Õr$   c                 óž  — | j                  «       j                  «       }|j                  | j                  «       j	                  «       j                  «       «      \  }}}}t        j                  t        j                  j                  ft        j                  t        j                  j                  ft        j                  t        j                  j                  ft        j                  t        j                  j                   ft        j"                  t        j                  j$                  fg}|D ��	ch c]  \  }}	||	z  sŒ|’Œ c}	}S c c}	}w r   )rh   ri   rj   rk   rl   rm   r   ÚLEFTr   ÚModifierTypeÚBUTTON1_MASKÚMIDDLEÚBUTTON2_MASKÚRIGHTÚBUTTON3_MASKÚBACKÚBUTTON4_MASKÚFORWARDÚBUTTON5_MASK©
rV   r   rr   rs   rt   ru   Úevent_stateÚ	mod_tableÚnamerv   s
             r"   r“   zFigureCanvasGTK4._mpl_buttons¼   sý   € ð —/‘/Ó#×/Ñ/Ó1ˆØ%,×%@Ñ%@Ø×ÑÓ×/Ñ/Ó1×=Ñ=Ó?ó&AÑ"ˆ��A�{ô ×Ñœs×/Ñ/×<Ñ<Ð=Ü×Ñ¤×!1Ñ!1×!>Ñ!>Ð?Ü×Ñ¤× 0Ñ 0× =Ñ =Ð>Ü×Ñœs×/Ñ/×<Ñ<Ð=Ü× Ñ ¤#×"2Ñ"2×"?Ñ"?Ð@ð
ˆ	ð (1×G™˜˜t°KÀ$Ó4F’ÓGÐGùÓGs   Ä3E	ÅE	c                 ó  — |€_| j                  «       j                  «       }|j                  | j                  «       j	                  «       j                  «       «      \  }}}}n|j                  «       }dt        j                  j                  fdt        j                  j                  fdt        j                  j                  fdt        j                  j                  fg}|D ��	cg c]  \  }}	||	z  sŒ|‘Œ c}	}S c c}	}w )NÚctrlÚaltÚshiftr1   )rh   ri   rj   rk   rl   rm   Úget_current_event_stater   r¥   ÚCONTROL_MASKÚALT_MASKÚ
SHIFT_MASKÚ
SUPER_MASKr¯   s
             r"   r|   zFigureCanvasGTK4._mpl_modifiersÐ   sÝ   € ØÐØ—o‘oÓ'×3Ñ3Ó5ˆGØ)0×)DÑ)DØ× Ñ Ó"×3Ñ3Ó5×AÑAÓCó*EÑ&ˆG�Q˜™;ð %×<Ñ<Ó>ˆKà”S×%Ñ%×2Ñ2Ð3Ø”C×$Ñ$×-Ñ-Ð.Ø”c×&Ñ&×1Ñ1Ð2Ø”c×&Ñ&×1Ñ1Ð2ð	
ˆ	ð (1×G™˜˜t°KÀ$Ó4F’ÓGÐGùÓGs   Ã%C;Ã3C;c                 ó  — t        t        j                  |«      «      }t        j                  |t        j
                  |«      «      }dt        j                  j                  dfdt        j                  j                  dfdt        j                  j                  dfdt        j                  j                  dfg}|D ���	cg c]'  \  }}}	|	|k7  r||z  r|dk(  r|j                  «       s|‘Œ) }
}}}	dj                  g |
¢|‘«      S c c}	}}w )Nr´   Úcontrolrµ   r¶   r1   ú+)Úchrr   Úkeyval_to_unicoder   Ú_unikey_or_keysym_to_mplkeyÚkeyval_namer¥   r¸   r¹   rº   r»   ÚisprintableÚjoin)rV   r�   rŽ   r�   ÚunikeyrX   rz   Úmodrv   Úmod_keyÚmodss              r"   r‹   zFigureCanvasGTK4._get_keyß   s  € Ü”S×*Ñ*¨6Ó2Ó3ˆÜ×/Ñ/ØÜ�O‰O˜FÓ#ó%ˆð ”S×%Ñ%×2Ñ2°IÐ>Ø”C×$Ñ$×-Ñ-¨uÐ5Ø”c×&Ñ&×1Ñ1°7Ð;Ø”c×&Ñ&×1Ñ1°7Ð;ð	
ˆ	ð +4÷Dð DÙ&�C˜˜wØ˜3’ 5¨4¢<Ø š¨F×,>Ñ,>Ô,@ò ðDˆò Dð �x‰x˜˜$˜ ˜Ó%Ð%ùô	Ds   Ã ,Dc                 ód   — | j                  | j                  «       «      r| j                  «        y y r   )Ú_set_device_pixel_ratioÚget_scale_factorÚdraw©rV   ÚargsÚkwargss      r"   r;   z+FigureCanvasGTK4._update_device_pixel_ratioð   s*   € ð ×'Ñ'¨×(=Ñ(=Ó(?Ô@Ø�I‰I�Kð Ar$   c                 ó2   — || _         | j                  «        y r   )r6   Ú
queue_draw)rV   Úrects     r"   Ú_draw_rubberbandz!FigureCanvasGTK4._draw_rubberbandö   s   € Ø $ˆÔà�‰Õr$   c                 óL   — | j                  | |«       | j                  | |«       y r   )Úon_draw_eventÚ
_post_draw)rV   Údrawing_areaÚctxr    rp   s        r"   r8   zFigureCanvasGTK4._draw_funcû   s    € Ø×Ñ˜4 Ô%Ø�‰˜˜cÕ"r$   c                 ó°  ‡ — ‰ j                   €y d}d}ˆ fd„‰ j                   D «       \  }}}}||z   }	||z   }
|j                  ||«       |j                  ||
«       |j                  ||«       |j                  |	|«       |j                  ||
«       |j                  |	|
«       |j                  |	|«       |j                  |	|
«       |j                  d«       |j	                  |«       |j                  ||fd«       |j                  ddd«       |j                  «        |j                  ||f|«       |j                  ddd«       |j                  «        y )Nr   r   c              3   ó<   •K  — | ]  }|‰j                   z  –— Œ y ­wr   )rn   )Ú.0ÚdimrV   s     €r"   ú	<genexpr>z.FigureCanvasGTK4._post_draw.<locals>.<genexpr>  s$   øè ø€ ò :Øð ˜d×5Ñ5Õ5ñ :ùs   ƒr   )	r6   Úmove_toÚline_toÚset_antialiasÚset_line_widthÚset_dashÚset_source_rgbÚstroke_preserveÚstroke)rV   ÚwidgetrØ   ÚlwÚdashÚx0Úy0ÚwÚhÚx1Úy1s   `          r"   rÖ   zFigureCanvasGTK4._post_drawÿ   s6  ø€ Ø× Ñ Ð(ØàˆØˆó:Ø#'×#8Ñ#8ô:‰ˆˆB��1à�!‰VˆØ�!‰Vˆð 	�‰�B˜ÔØ�‰�B˜ÔØ�‰�B˜ÔØ�‰�B˜ÔØ�‰�B˜ÔØ�‰�B˜ÔØ�‰�B˜ÔØ�‰�B˜Ôà×Ñ˜!ÔØ×Ñ˜2ÔØ�‰�d˜D�\ 1Ô%Ø×Ñ˜1˜a Ô#Ø×ÑÔà�‰�d˜D�\ 4Ô(Ø×Ñ˜1˜a Ô#Ø�
‰
�r$   c                  ó   — y r   © )rV   ræ   rØ   s      r"   rÕ   zFigureCanvasGTK4.on_draw_event  s   € àr$   c                 óF   — | j                  «       r| j                  «        y y r   )Úis_drawablerÑ   r`   s    r"   rÌ   zFigureCanvasGTK4.draw#  s   € à×ÑÔØ�O‰OÕð r$   c                 ód   ‡ — ‰ j                   dk7  ry ˆ fd„}t        j                  |«      ‰ _         y )Nr   c                  óN   •— 	 ‰j                  «        d‰_        y# d‰_        w xY w)Nr   F)rÌ   r5   )rÎ   rV   s    €r"   Ú	idle_drawz-FigureCanvasGTK4.draw_idle.<locals>.idle_draw,  s(   ø€ ð'Ø—	‘	”à%&�Ô"Øøð &'�Õ"ús   ƒ ›	$)r5   r   Úidle_add)rV   rõ   s   ` r"   rž   zFigureCanvasGTK4.draw_idle(  s,   ø€ à×Ñ Ò"Øô	ô "Ÿ]™]¨9Ó5ˆÕr$   c                 ó¦   — t         j                  j                  «       }|j                  «       r#|j	                  d«       |j                  «       rŒ"y y )NT)r   ÚMainContextÚdefaultÚpendingÚ	iteration)rV   Úcontexts     r"   Úflush_eventszFigureCanvasGTK4.flush_events4  s:   € ä×"Ñ"×*Ñ*Ó,ˆØ�o‰oÔØ×Ñ˜dÔ#ð �o‰o×r$   r   )!Ú__name__Ú
__module__Ú__qualname__Úrequired_interactive_frameworkÚsupports_blitr   ÚclasspropertyÚmanager_classr2   ra   rf   rw   rL   r>   r?   rB   rC   rE   rF   rG   r:   r“   r|   r‹   r;   rÓ   r8   rÖ   rÕ   rÌ   rž   rý   Ú__classcell__)r\   s   @r"   r   r   #   sž   ø„ Ø%+Ð"Ø€MØ&�D×&Ñ&Ñ'DÓE€Mõ-1ò^3òOóò,òòòòòòòòòHó(Hò&ò"òò
#òò@òò

6ö$r$   r   c                   ó   — e Zd Zd„ Zd„ Zy)ÚNavigationToolbar2GTK4c                 ó�  — t         j                  j                  | «       | j                  d«       i | _        | j
                  D �];  \  }}}}|€$| j                  t        j                  «       «       Œ/t         j                  j                  t        j                  j                  t        t        j                  d|› d�«      «      «      «      }|dv rt        j                   «       nt        j"                  «       x| j                  |<   }|j%                  |«       |j                  d«       |j                  d«       |j'                  dt)        | |«      «      |_        |j-                  |«       | j                  |«       �Œ> t        j.                  «       }|j1                  d«       |j3                  d	«       | j                  |«       t        j.                  «       | _        | j4                  j7                  t         j8                  j:                  «       | j                  | j4                  «       t=        j                  | |«       y )
NÚtoolbarÚimagesú-symbolic.svg)ÚzoomÚpanÚflatúimage-buttonÚclickedõ   <small>Â 
Â </small>T)r   ÚBoxr2   Úadd_css_classÚ_gtk_idsÚ	toolitemsÚappendÚ	SeparatorÚImageÚnew_from_giconr   ÚIconÚnew_for_stringÚstrr   Ú_get_data_pathÚToggleButtonÚButtonÚ	set_childr9   ÚgetattrÚ_signal_handlerÚset_tooltip_textÚLabelÚ
set_markupr3   ÚmessageÚset_justifyÚJustificationr©   r   )	rV   ÚcanvasÚtextÚtooltip_textÚ
image_fileÚcallbackÚimageÚbuttonÚlabels	            r"   r2   zNavigationToolbar2GTK4.__init__<  sÁ  € Ü�‰×Ñ˜Ôà×Ñ˜9Ô%àˆŒØ8<¿¹ó 	 Ñ4ˆD�, 
¨HØˆ|Ø—‘œCŸM™M›OÔ,ØÜ—I‘I×,Ñ,Ü—‘×'Ñ'Üœ×,Ñ,¨XØ0:¨|¸=Ð-IóKó LóMóNˆEð
 '/°/Ñ&A”× Ñ Ô"Ü—
‘
“ðˆD�M‰M˜$Ñ &ð ×Ñ˜UÔ#Ø× Ñ  Ô(Ø× Ñ  Ô0à%+§^¡^Øœ7 4¨Ó2ó&4ˆFÔ"à×#Ñ# LÔ1Ø�K‰K˜Öð%	 ô0 —	‘	“ˆØ×ÑØCô	Eà×Ñ˜$ÔØ�‰�EÔä—y‘y“{ˆŒØ�‰× Ñ ¤×!2Ñ!2×!8Ñ!8Ô9Ø�‰�D—L‘LÔ!ä×'Ñ'¨¨fÕ5r$   c                 óà  ‡ — t        j                  d‰ j                  j                  «       t         j                  j
                  d¬«      }|‰ _        t        j                  «       }|j                  d«       |j                  d«       |j                  |«       |j                  |«       g }d }t        ‰ j                  j                  «       j                  «       «      D ]‰  \  }\  }}t        j                  «       }|j                  |«       |D ]  }	|j                  d|	› �«       Œ |j                  |«       |j                  |«       ‰ j                  j!                  «       |v sŒˆ|}Œ‹ ||   g|d | ¢||dz   d  ¢}|j#                  dd	||«       |j%                  d|d
   «       |j'                  t(        j*                  j-                  t.        j0                  j3                  t4        j6                  d   «      «      «       |j9                  ‰ j                  j;                  «       «       t=        j>                  |j@                  d«      ˆ fd„«       }
|jC                  «        ‰ jD                  S )NzSave the figureT)ÚtitleÚtransient_forÚactionÚmodalz	All filesÚ*z*.r   ÚformatzFile formatr   úsavefig.directoryÚresponsec           
      ó  •— | j                  «       }| j                  d«      }‰j                  j                  «       |   d   }| j	                  «        d ‰_        |t        j                  j                  k7  ry t        j                  d   r1|j                  «       }|j                  «       t        j                  d<   	 ‰j                  j                  j                  |j                  «       |¬«       y # t        $ r…}t        j                   ‰j                  j#                  «       t        j$                  j&                  t        j(                  j*                  dt-        |«      ¬«      }|j/                  «        Y d }~y d }~ww xY w)Nr7  r   r8  )r7  T)r3  Úmessage_typer’   r5  r*  )Úget_fileÚ
get_choicer)  Úget_supported_filetypes_groupedra   Ú_save_dialogr   ÚResponseTypeÚACCEPTÚmplÚrcParamsÚ
get_parentÚget_pathr&   ÚsavefigÚ	ExceptionÚMessageDialogÚget_rootÚMessageTypeÚERRORÚButtonsTypeÚOKr  Úshow)Údialogr9  ÚfileÚfmtÚparentÚeÚmsgrV   s          €r"   Úon_responsez7NavigationToolbar2GTK4.save_figure.<locals>.on_response‹  s  ø€ à—?‘?Ó$ˆDØ×#Ñ# HÓ-ˆCØ—+‘+×=Ñ=Ó?ÀÑDÀQÑGˆCØ�N‰NÔØ $ˆDÔØœ3×+Ñ+×2Ñ2Ò2Øä�|‰|Ð/Ò0ØŸ™Ó*�Ø4:·O±OÓ4E”—‘Ð0Ñ1ðØ—‘×"Ñ"×*Ñ*¨4¯=©=«?À3Ð*ÕGøÜò Ü×'Ñ'Ø"&§+¡+×"6Ñ"6Ó"8Ü!$§¡×!6Ñ!6ÜŸO™O×.Ñ.°dÜ˜Q›ô	!�ð
 —‘—
‘
ûðús   Â=5C3 Ã3	FÃ<A;E<Å<F)#r   ÚFileChooserNativer)  rI  ÚFileChooserActionÚSAVEr?  Ú
FileFilterÚset_nameÚadd_patternÚ
add_filterÚ
set_filterÚ	enumerater>  Úitemsr  Úget_default_filetypeÚ
add_choiceÚ
set_choiceÚset_current_folderr   ÚFileÚnew_for_pathÚosÚpathÚ
expanduserrB  rC  Úset_current_nameÚget_default_filenameÚ	functoolsÚpartialr9   rN  ÚUNKNOWN_SAVED_STATUS)rV   rÎ   rO  ÚffÚformatsÚdefault_formatÚir²   ÚfmtsrQ  rU  s   `          r"   Úsave_figurez"NavigationToolbar2GTK4.save_figuref  s  ø€ Ü×&Ñ&Ø#ØŸ+™+×.Ñ.Ó0Ü×(Ñ(×-Ñ-Øô	ˆð
 #ˆÔä�^‰^ÓˆØ
�‰�KÔ Ø
�‰�sÔØ×Ñ˜"ÔØ×Ñ˜"ÔàˆØˆÜ(Ø—‘×;Ñ;Ó=×CÑCÓEó Gò 		#‰OˆA‰|��dä—‘Ó!ˆBØ�K‰K˜ÔØò +�Ø—‘  C 5˜zÕ*ð+à×Ñ˜bÔ!Ø�N‰N˜4Ô Ø�{‰{×/Ñ/Ó1°TÒ9Ø!"‘ð		#ð ˜>Ñ*ð 0¨W°_°nÐ-Eð 0Ø˜N¨1Ñ,Ð-Ð.ð0ˆà×Ñ˜( M°7¸GÔDØ×Ñ˜( G¨A¡JÔ/à×!Ñ!¤#§(¡(×"7Ñ"7Ü�G‰G×ÑœsŸ|™|Ð,?Ñ@ÓAó#Cô 	Dà×Ñ §¡× @Ñ @Ó BÔCä	×	Ñ	˜6Ÿ>™>¨:Ó	6ó	ó 
7ð	ð, 	�‰ŒØ×(Ñ(Ð(r$   N)rþ   rÿ   r   r2   rs  rð   r$   r"   r  r  ;  s   „ ò(6óT=)r$   r  c                   óF   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zy)ÚToolbarGTK4r  c                 ó¢  — t        j                  | |«       t        j                  j                  | «       | j	                  dt        j
                  j                  «       t        j                  «       | _        | j                  | j                  «       i | _	        i | _
        t        j                  «       }|j                  d«       |j                  d«       | j                  |«       t        j                  «       | _        | j                  j                  t        j                   j"                  «       | j                  | j                  «       y )NÚorientationr  T)r   r2   r   r  Úset_propertyÚOrientationÚ
HORIZONTALÚ	_tool_boxr  Ú_groupsÚ
_toolitemsr$  r%  r3   Ú_messager'  r(  r©   )rV   Útoolmanagerr0  s      r"   r2   zToolbarGTK4.__init__©  sß   € Ü×"Ñ" 4¨Ô5Ü�‰×Ñ˜ÔØ×Ñ˜-¬¯©×)CÑ)CÔDô Ÿ™›ˆŒØ�‰�D—N‘NÔ#ØˆŒØˆŒô —	‘	“ˆØ×ÑØCô	Eà×Ñ˜$ÔØ�‰�EÔäŸ	™	›ˆŒØ�‰×!Ñ!¤#×"3Ñ"3×"9Ñ"9Ô:Ø�‰�D—M‘MÕ"r$   c                 ó`  — |rt        j                  «       }nt        j                  «       }|j                  |«       |j	                  d«       |�^t         j
                  j                  t        j                  j                  |«      «      }|j                  |«       |j	                  d«       |€d}| j                  |||«       |j                  d| j                  |«      }	|j                  |«       | j                  j!                  |g «       | j                  |   j#                  ||	f«       y )Nr  r  r0   r  )r   r  r  Ú	set_labelr  r  r  r   r  r  r   Ú_add_buttonr9   Ú
_call_toolr#  r}  Ú
setdefaultr  )
rV   r²   ÚgroupÚpositionr,  ÚdescriptionÚtoggler/  r.  Úsignals
             r"   Úadd_toolitemzToolbarGTK4.add_toolitemÂ  só   € áÜ×%Ñ%Ó'‰Fä—Z‘Z“\ˆFØ×Ñ˜ÔØ×Ñ˜VÔ$àÐ!Ü—I‘I×,Ñ,Ü—‘×'Ñ'¨
Ó3ó5ˆEà×Ñ˜UÔ#Ø× Ñ  Ô0àÐØˆHà×Ñ˜ ¨Ô1Ø—‘ 	¨4¯?©?¸DÓAˆØ×Ñ Ô,Ø�‰×"Ñ" 4¨Ô,Ø�‰˜Ñ×$Ñ$ f¨fÐ%5Õ6r$   c                 ó˜   — d g}| j                   |   j                  «       }|�$|j                  |«       |j                  «       }|�Œ$||   S r   )r|  Úget_first_childr  Úget_next_sibling)rV   r…  r†  ÚchildrenÚchilds        r"   Ú_find_child_at_positionz#ToolbarGTK4._find_child_at_positionÚ  sU   € Ø�6ˆØ—‘˜UÑ#×3Ñ3Ó5ˆØÐØ�O‰O˜EÔ"Ø×*Ñ*Ó,ˆEð Ñð ˜Ñ!Ð!r$   c                 ó2  — || j                   vrZ| j                   r| j                  «        t        j                  «       }| j                  j                  |«       || j                   |<   | j                   |   j                  || j                  ||«      «       y r   )r|  Ú_add_separatorr   r  r{  r  Úinsert_child_afterr�  )rV   r/  r…  r†  Ú	group_boxs        r"   r‚  zToolbarGTK4._add_buttonâ  sv   € Ø˜Ÿ™Ñ$Ø�|Š|Ø×#Ñ#Ô%ÜŸ™›	ˆIØ�N‰N×!Ñ! )Ô,Ø"+ˆD�L‰L˜ÑØ�‰�UÑ×.Ñ.Ø�D×0Ñ0°¸ÓAõ	Cr$   c                 ó&   — | j                  |«       y r   )Útrigger_tool)rV   Úbtnr²   s      r"   rƒ  zToolbarGTK4._call_toolì  s   € Ø×Ñ˜$Õr$   c                 ó¶   — || j                   vry | j                   |   D ]8  \  }}|j                  |«       |j                  |«       |j                  |«       Œ: y r   )r}  Úhandler_blockÚ
set_activeÚhandler_unblock)rV   r²   ÚtoggledÚtoolitemr‰  s        r"   Útoggle_toolitemzToolbarGTK4.toggle_toolitemï  sX   € Ø�t—‘Ñ&ØØ $§¡°Ñ 5ò 	-ÑˆH�fØ×"Ñ" 6Ô*Ø×Ñ Ô(Ø×$Ñ$ VÕ,ñ	-r$   c                 óÎ   — | j                   j                  |g «      D ]F  \  }}| j                  D ]2  }|| j                  |   v sŒ| j                  |   j                  |«       Œ4 ŒH y r   )r}  Úpopr|  Úremove)rV   r²   r�  Ú_signalr…  s        r"   Úremove_toolitemzToolbarGTK4.remove_toolitem÷  sb   € Ø!%§¡×!4Ñ!4°T¸2Ó!>ò 	9ÑˆH�gØŸ™ò 9�Ø˜tŸ|™|¨EÑ2Ò2Ø—L‘L Ñ'×.Ñ.¨xÕ8ñ9ñ	9r$   c                 ó¶   — t        j                  «       }|j                  dt         j                  j                  «       | j
                  j                  |«       y )Nrw  )r   r  rx  ry  rK   r{  r  )rV   Úseps     r"   r’  zToolbarGTK4._add_separatorý  s9   € Ü�m‰m‹oˆØ×Ñ˜¬¯©×(@Ñ(@ÔAØ�‰×Ñ˜cÕ"r$   c                 ó:   — | j                   j                  |«       y r   )r~  r�  )rV   Úss     r"   Úset_messagezToolbarGTK4.set_message  s   € Ø�‰×Ñ Õ"r$   N)rþ   rÿ   r   Ú_icon_extensionr2   rŠ  r�  r‚  rƒ  rž  r£  r’  r¨  rð   r$   r"   ru  ru  ¦  s5   „ Ø%€Oò#ò27ò0"òCò ò-ò9ò#ó
#r$   ru  c                   ó   — e Zd Zd„ Zy)ÚSaveFigureGTK4c                 óJ   — t         j                  | j                  «       «       y r   )r  rs  Ú"_make_classic_style_pseudo_toolbarrÍ   s      r"   ÚtriggerzSaveFigureGTK4.trigger  s   € Ü×*Ñ*Ø×3Ñ3Ó5õ	7r$   N©rþ   rÿ   r   r®  rð   r$   r"   r«  r«    s   „ ó7r$   r«  c                   ó   — e Zd Zd„ Zd„ Zd„ Zy)ÚHelpGTK4c                 ó  — dddddœ}|j                  d«      }|dd D �cg c]
  }d	|z   d
z   ‘Œ }}|d   }||v r||   }n5t        |«      dkD  r|j                  «       }n|j                  «       r|dgz  }dj	                  |«      |z   S c c}w )z‚
        Convert Matplotlib key presses to GTK+ accelerator identifiers.

        Related to `FigureCanvasGTK4._get_key`.
        Ú	BackSpaceÚ	Page_DownÚPage_UpÚScroll_Lock)Ú	backspaceÚpagedownÚpageupÚscroll_lockr¾   Nr0   ú<ú>r   z<shift>Ú )ÚsplitÚlenÚ
capitalizeÚisupperrÄ   )rV   rX   ÚspecialÚpartsrÆ   rÈ   s         r"   Ú_normalize_shortcutzHelpGTK4._normalize_shortcut  s¤   € ð %Ø#ØØ(ñ	
ˆð —	‘	˜#“ˆØ+0°°"¨:Ö6 C��c‘	˜C“Ð6ˆÐ6Ø�B‰iˆà�'‰>Ø˜#‘,‰CÜ�‹X˜Š\Ø—.‘.Ó"‰CØ�[‰[Œ]Ø�Y�KÑˆDà�w‰w�t‹}˜sÑ"Ð"ùò 7s    B	c                 ó2   — d|vxr |j                  d«       S )zÖ
        Check for a valid shortcut to be displayed.

        - GTK will never send 'cmd+' (see `FigureCanvasGTK4._get_key`).
        - The shortcut window only shows keyboard shortcuts, not mouse buttons.
        zcmd+zMouseButton.)Ú
startswith)rV   rX   s     r"   Ú_is_valid_shortcutzHelpGTK4._is_valid_shortcut)  s    € ð ˜SÐ ÒG¨¯©¸Ó)GÐ%GÐGr$   c           	      óú  ‡ — t        j                  «       }t        ‰ j                  j                  j                  «       «      D ]Û  \  }}|j                  sŒt        j                  «       }|j                  |«       |j                  «       }|�$|j                  d«       |j                  «       }|�Œ$t        j                  dj                  ˆ fd„‰ j                  j                  |«      D «       «      |j                  |j                  ¬«      }|j                  |«       ŒÝ t        j                   dd‰ j"                  j$                  j'                  «       ¬«      }|j)                  |«       |j+                  «        y )NFú c              3   ób   •K  — | ]&  }‰j                  |«      r‰j                  |«      –— Œ( y ­wr   )rÇ  rÄ  )rÛ   rX   rV   s     €r"   rÝ   z#HelpGTK4.trigger.<locals>.<genexpr>F  s2   øè ø€ ò %5àØ×.Ñ.¨sÔ3ð ×,Ñ,¨S×1ñ%5ùs   ƒ,/)Úacceleratorr2  ÚsubtitleÚHelpT)r2  r5  r3  )r   ÚShortcutsSectionÚsortedr  Útoolsr_  r‡  ÚShortcutsGroupr  rŒ  Úset_visibler�  ÚShortcutsShortcutrÄ   Úget_tool_keymapr²   ÚShortcutsWindowÚ_figurer)  rI  r   rN  )	rV   rÎ   Úsectionr²   Útoolr…  r�  ÚshortcutÚwindows	   `        r"   r®  zHelpGTK4.trigger2  sA  ø€ Ü×&Ñ&Ó(ˆä  ×!1Ñ!1×!7Ñ!7×!=Ñ!=Ó!?Ó@ò 	#‰JˆD�$Ø×#Ò#Øô ×&Ñ&Ó(ˆEØ�N‰N˜5Ô!à×)Ñ)Ó+ˆEØÐ#Ø×!Ñ! %Ô(Ø×.Ñ.Ó0�ð Ñ#ô ×,Ñ,ØŸH™Hó %5à#×/Ñ/×?Ñ?ÀÓEô%5ó 5ð —i‘iØ×)Ñ)ô+ˆHð �L‰L˜Õ"ð/	#ô2 ×$Ñ$ØØØŸ,™,×-Ñ-×6Ñ6Ó8ô:ˆð 	×Ñ˜Ô!à�‰�r$   N)rþ   rÿ   r   rÄ  rÇ  r®  rð   r$   r"   r±  r±    s   „ ò#ò4Hó"r$   r±  c                   ó   — e Zd Zd„ Zy)ÚToolCopyToClipboardGTK4c                 ó¸  — t        j                  «       5 }| j                  j                  |«       | j                  j	                  «       \  }}t
        j                  j                  |j                  «       t
        j                  j                  dd|||dz  «      }d d d «       | j                  j                  «       }|j                  «       y # 1 sw Y   Œ5xY w)NTé   r.   )ÚioÚBytesIOr)  Ú
print_rgbaÚget_width_heightr   ÚPixbufÚnew_from_dataÚ	getbufferÚ
ColorspaceÚRGBÚget_clipboardÚset)rV   rÎ   rÏ   Úfrë   rì   ÚpbÚ	clipboards           r"   r®  zToolCopyToClipboardGTK4.triggerY  s¦   € Ü�Z‰Z‹\ð 	>˜QØ�K‰K×"Ñ" 1Ô%Ø—;‘;×/Ñ/Ó1‰DˆAˆqÜ×!Ñ!×/Ñ/°·±³Ü09×0DÑ0D×0HÑ0HÈ$Ø01°1°a¸¸1¹ó>ˆB÷	>ð —K‘K×-Ñ-Ó/ˆ	Ø�‰�bÕ÷	>ð 	>ús   •BCÃCNr¯  rð   r$   r"   rÜ  rÜ  W  s   „ ór$   rÜ  c                   ó   — e Zd ZeZeZy)r    N)rþ   rÿ   r   r  Ú_toolbar2_classru  Ú_toolmanager_toolbar_classrð   r$   r"   r    r    k  s   „ Ø,€OØ!,Ñr$   r    c                   ó   — e Zd ZeZeZy)Ú_BackendGTK4N)rþ   rÿ   r   r   ÚFigureCanvasr    ÚFigureManagerrð   r$   r"   rñ  rñ  p  s   „ à#€LØ%�Mr$   rñ  )8rk  rß  rf  Ú
matplotlibrB  r   r   r   Úmatplotlib.backend_basesr   r   r   r	   r
   r   r   ÚgiÚImportErrorÚerrÚrequire_versionÚ
ValueErrorrS  Úgi.repositoryr   r   r   r   r   r½  r   r   r   r   r   r   Ú	TimerGTK4Úversion_infor}   ÚDrawingArear   r  r  ru  Ú_register_tool_classÚSaveFigureBaser«  ÚToolHelpBaser±  ÚToolCopyToClipboardBaserÜ  ÚConfigureSubplotsGTKÚRubberbandGTKÚToolbarr    Úexportrñ  rð   r$   r"   ú<module>r     sñ  ðÛ Û 	Û 	ã ß 1Ñ 1÷B÷ Bñ BðFÛð ð €B×Ñ�u˜eÔ$÷ 9Õ 8Ý ÷õ ð
 —?‘? jÑ0Ð ôU$Ð'¨¯©ô U$ôph)Ð3°S·W±Wô h)ôV]#Ð# S§W¡Wô ]#ð@ $€×#Ñ#Ð$4Ó5ô7�]×1Ñ1ó 7ó 6ð7ð $€×#Ñ#Ð$4Ó5ôFˆ}×)Ñ)ó Fó 6ðFðR $€×#Ñ#Ð$4Ó5ô	˜m×CÑCó 	ó 6ð	ð #€× "Ñ "Ø�l×7Ñ7ô9à "€× "Ñ "Ø�l×0Ñ0ô2à
€ô-Ð)ô -ð
 ×Ñô&�;ó &ó ñ&øðI ò FÙ
Ð;Ó
<À#ÐEûðFûð ò  ñ �a‹.˜aÐûð ús.   ®F ³F/ ÆF,Æ	F'Æ'F,Æ/GÆ4	F=Æ=G