+
    ,i%                        ^ RI t ^ RIt^ RIHt ^ RIt^ RIt^ RIt^ RIt^ RI	t	^ RI
t^ RIt
^ RIt
^ RIt
^ RIHt ^ RIt^ RIHtHt ^ RIt^ RIHtHtHtHt ^ RIHtHtHtH t H!t!H"t"H#t#H$t$H%t%H&t&H't'H(t(H)t)H*t* ^ RI+H,t,  ^RI-H.t. ^R	I.H/t/H0t0 ]Pz                  ! ]>4      t?]#P                  R]#P                  R]#P                  R]#P                  R]#P                  R]#P                  R]#P                  R/tG]R 4       tH/ tIR] P                  ! 4       P                  ,           tLR tMR/R ltN ! R R]!4      tO ! R R]4      tP ! R R]4      tQ ! R  R!] ]P                  4      tSR" tT]P                  ! ]P4       ! R# R$]P                  4      4       tW ! R% R&]"]P                  4      tX]P                  ! ]P4       ! R' R(]P                  4      4       tZ]P                  ! ]P4       ! R) R*]P                  4      4       t\]P                  ! ]P4       ! R+ R,]P                  4      4       t^]Xt_]S]Qn`        ]X]Qna        ]P                   ! R- R.]4      4       tcR#   ]1 d   t2]3! ]2R
R4      t4]3! ]4R
R4      t5]6! ]4]14      '       d_   ]6! ]5]74      '       dP   R]8! ]54      9   dC   R]Pr                  Pu                  ]	Pv                  4      9   t<]<'       d
   ]1! R4      ]2h]1! R4      ]2hh Rt2A2ii ; i)0    N)contextmanager)SimpleDialog)ImageImageTk)_apibackend_toolscbook_c_internal_utils)_BackendFigureCanvasBaseFigureManagerBaseNavigationToolbar2	TimerBaseToolContainerBasecursors_ModeMouseButton
CloseEventKeyEventLocationEvent
MouseEventResizeEvent)Gcf)_tkagg)TK_PHOTO_COMPOSITE_OVERLAYTK_PHOTO_COMPOSITE_SET	__cause__z&'_tkinter' has no attribute '__file__'z
/uv/pythonzFailed to import tkagg backend. You appear to be using an outdated version of uv's managed Python distribution which is not compatible with Tk. Please upgrade to the latest uv version, then update Python with: `uv python upgrade --reinstall`a  Failed to import tkagg backend. This is likely caused by using a Python executable based on python-build-standalone, which is not compatible with Tk. Recent versions of python-build-standalone should be compatible with Tk. Please update your python version or select another backend.fleurhand2arrow	crosshairwatchsb_h_double_arrowsb_v_double_arrowc               #   D  "   \         P                  ! 4       p  R x  V '       d8   \        P                  R,          '       d   \         P                  ! V 4       R # R # R #   T '       d6   \        P                  R,          '       d   \         P                  ! T 4       i i i ; i5i)Nztk.window_focus)r
   Win32_GetForegroundWindowmplrcParamsWin32_SetForegroundWindow)
foregrounds    A/usr/lib/python3/dist-packages/matplotlib/backends/_backend_tk.py!_restore_foreground_window_at_endr,   E   sj     "<<>JD#,,'89977
C :::#,,'89977
C ::s'   B A $B B %BBB 	mpl_blit_c                    \         P                  V 4      w  rr4pVP                  P                  RRV4      '       g   R# \        P
                  ! VP                  P                  4       \        V4      W%VV4       R# )z
Thin wrapper to blit called via tkapp.call.

*argsid* is a unique string identifier to fetch the correct arguments from
the ``_blit_args`` dict, since arguments cannot be passed directly.
infocommandsN)
_blit_argspoptkcallr   blit
interpaddrstr)argsid
photoimagedataoffsetsbbox	comp_rules   &     r+   _blitr>   T   s]     2<1G.JgY==fj*==
KK
((*C
OTg    c                R   \         P                  ! V4      pVP                  R,          w  rVVe   VP                  4       w  w  rxw  r\	        \
        P                  ! V4      ^ 4      p\        \
        P                  ! V	4      V4      p	\	        \
        P                  ! V4      ^ 4      p\        \
        P                  ! V
4      V4      p
Wy8  g   W8  d   R# WyW3p\        pM^ V^ V3p\        pWW+V3p\        \        V4      4      pV\        V&    V P                  P                  \         V4       R#   \        P"                   da   pR\        T4      9  d   h T P                  P%                  \         \&        4       T P                  P                  \         T4        Rp?R# Rp?ii ; i)a  
Blit *aggimage* to *photoimage*.

*offsets* is a tuple describing how to fill the ``offset`` field of the
``Tk_PhotoImageBlock`` struct: it should be (0, 1, 2, 3) for RGBA8888 data,
(2, 1, 0, 3) for little-endian ARBG32 (i.e. GBRA8888) data and (1, 2, 3, 0)
for big-endian ARGB32 (i.e. ARGB8888) data.

If *bbox* is passed, it defines the region that gets blitted. That region
will be composed with the previous data according to the alpha channel.
Blitting will be clipped to pixels inside the canvas, including silently
doing nothing if the *bbox* region is entirely outside the canvas.

Tcl events must be dispatched to trigger a blit from a non-Tcl thread.
:N   NNzinvalid command name)npasarrayshape	__array__maxmathfloorminceilr   r   r7   idr1   r3   r4   _blit_tcl_nameTclErrorcreatecommandr>   )r9   aggimager;   r<   r:   heightwidthx1y1x2y2bboxptrr=   argsr8   es   &&&&            r+   r5   r5   b   sH     ::hDJJrNMF!^^-(2B#2&B#2'G2".	eQ'*	 Wy8D D]FJv3>62;; 3!Q/##NE:>622	3s    D1 1F&AF!!F&c                   N   a a ] tR t^t oRtV 3R ltR tR tV 3R ltRt	Vt
V ;t# )TimerTkz<Subclass of `backend_bases.TimerBase` using Tk timer events.c                B   < R V n         \        SV `  ! V/ VB  Wn        R # N)_timersuper__init__parent)selfr`   rW   kwargs	__class__s   &&*,r+   r_   TimerTk.__init__   s!    $)&)r?   c                    V P                  4        V P                  P                  V P                  V P                  4      V n        R # r\   )_timer_stopr`   after	_interval	_on_timerr]   ra   s   &r+   _timer_startTimerTk._timer_start   s.    kk''Gr?   c                z    V P                   e&   V P                  P                  V P                   4       R V n         R # r\   )r]   r`   after_cancelrj   s   &r+   rf   TimerTk._timer_stop   s)    ;;"KK$$T[[1r?   c                X  <a  \         SS `  4        S P                  '       g   S P                  '       do   S P                  ^ 8  d8   S P
                  P                  S P                  S P                  4      S n        R# S P
                  P                  V 3R l4      S n        R# RS n        R# )r   c                  d   < S P                   P                  S P                  S P                  4      # r\   )r`   rg   rh   ri   rj   s   r+   <lambda>#TimerTk._on_timer.<locals>.<lambda>   s    DKK--dnndnnMr?   N)r^   ri   _singler]   rh   r`   rg   
after_idle)ra   rc   s   fr+   ri   TimerTk._on_timer   sq    
 |||~~!"kk//O #kk44M DKr?   )r]   r`   )__name__
__module____qualname____firstlineno____doc__r_   rk   rf   ri   __static_attributes____classdictcell____classcell__rc   __classdict__s   @@r+   rZ   rZ      s"     F
H
 r?   rZ   c                     a a ] tR t^t oRt]P                  ! R 4      tRV 3R lltRR lt	R t
R tR tR	 tR
 tR tR tR R ltR tR tR tR t]R 4       t]RR/R l4       tR tR tR tR tR tR!R ltR tR t Rt!Vt"V ;t## )"FigureCanvasTkr3   c                    \         # r\   )FigureManagerTk)clss   &r+   rr   FigureCanvasTk.<lambda>   s    ?r?   Nc           	     B  <a	a
aa \         SV `  V4       R V n        R V n        V P	                  RR7      w  r4\
        P                  ! VRW4^ ^ R7      V n        \
        P                  ! V P                  W4R7      V n	        V P                  P                  V^,          V^,          V P                  R7      V n        V P                  P                  RV P                  4       V P                  P                  RV P                  4       V P                  P                  R	V P                  4       V P                  P                  R
V P                   4       V P                  P                  RV P"                  4       V P                  P                  RV P$                  4       V P                  P                  RV P&                  4       R F(  pV P                  P                  WPP(                  4       K*  	  R F(  pV P                  P                  WPP*                  4       K*  	  R F(  pV P                  P                  WPP,                  4       K*  	  R F(  pV P                  P                  WPP.                  4       K*  	  V P                  P1                  4       p\2        P4                  ! V 4      o\2        P4                  ! V4      oV
VV3R lpVP                  RVR4      o
V	VV3R lpVP                  RVR4      o	V P                  P7                  4        R V n        R V n        R # )NTphysicalwhite)master
backgroundrQ   rP   borderwidthhighlightthickness)r   rQ   rP   imagez<Configure>z<Map>z<Key>z<Motion><Enter><Leave>z<KeyRelease>c                 z   < S! 4       pVf    S! 4       pVe   VP                  RS4       R # VP                  V 4      # )N<MouseWheel>)unbindscroll_event_windows)eventra   rootscroll_event_windows_idweakrootweakselfs   &  r+   r   5FigureCanvasTk.__init__.<locals>.scroll_event_windows   s?    :D|z#KK0GH,,U33r?   r   +c                    < S! 4       pVf    S! 4       pVe   VP                  RS4       R # V P                  VP                  J d   \        RV4      P	                  4        R # R # )N	<Destroy>close_event)r   widget	_tkcanvasr   _process)r   ra   r   filter_destroy_idr   r   s   &  r+   filter_destroy/FigureCanvasTk.__init__.<locals>.filter_destroy   sV    :D|z#KK->?||t~~-=$/88: .r?   r   )z
<Button-1>z
<Button-2>z
<Button-3>)z<Double-Button-1>z<Double-Button-2>z<Double-Button-3>)z<ButtonRelease-1>z<ButtonRelease-2>z<ButtonRelease-3>)z
<Button-4>z
<Button-5>)r^   r_   _idle_draw_id_event_loop_idget_width_heightr3   Canvasr   
PhotoImage_tkphotocreate_image_tkcanvas_image_regionbindresize_update_device_pixel_ratio	key_pressmotion_notify_evententer_notify_eventleave_notify_eventkey_releasebutton_press_eventbutton_dblclick_eventbutton_release_eventscroll_eventwinfo_toplevelweakrefref	focus_set_rubberband_rect_black_rubberband_rect_white)ra   figurer   whnamer   r   r   r   r   r   r   rc   s   &&&      @@@@r+   r_   FigureCanvasTk.__init__   si    !"$$d$3g1D >>6&*nn&A&AqD!Q$dmm 'B '-#M4;;7GT%D%DEGT^^4J(@(@AIt'>'>?It'>'>?ND,<,<=>DNN&=&=> ?ODNN&@&@AOODNN&?&?@O
 /DNN&7&78 / ~~,,. ;;t$;;t$	4 #'))N<PRU"V	; !IIk>3G  "&*#&*#r?   c                   R p\         P                  R8X  d9   \        V P                  P                  P                  RR4      R	,          ^4      pM7\         P                  R8X  d#   V P                  P                  R4      ^`,          pVeL   V P                  V4      '       d3   V P                  RR7      w  r4V P                  P                  W4R7       R # R # R # )
Nwin32r3   scalinglinux1iTr   rQ   rP   gUUUUUU?)
sysplatformroundr   r3   r4   winfo_fpixels_set_device_pixel_ratior   	configure)ra   r   ratior   r   s   &&   r+   r   )FigureCanvasTk._update_device_pixel_ratio  s    <<7" $..++00yAWMqQE\\W$NN006;E!=!=e!D!D (($(7DANN$$1$7 "Er?   c                P   VP                   VP                  r2V P                  P                  pW$,          pW4,          pV P                  P	                  WVR R7       V P
                  P                  V P                  4       V P                  P                  \        V4      \        V4      R7       V P
                  P                  \        V^,          4      \        V^,          4      V P                  R7      V n        \        RV 4      P                  4        V P                  4        R# )F)forwardr   r   resize_eventN)rQ   rP   r   dpiset_size_inchesr   deleter   r   r   intr   r   r   	draw_idle)ra   r   rQ   rP   dpivalwinchhinchs   &&     r+   r   FigureCanvasTk.resize  s    U\\v ##E%#@d99:c%jVE&*nn&A&A	NC
O4== 'B 'B#ND)224r?   c                |   a  S P                   '       d   R # V 3R lpS P                  P                  V4      S n         R # )Nc                  P   <  SP                  4        R Sn        R #   R Sn        i ; ir\   )drawr   rW   ra   s   *r+   	idle_draw+FigureCanvasTk.draw_idle.<locals>.idle_draw,  s"    *		%)"T"s    	%)r   r   ru   )ra   r   s   f r+   r   FigureCanvasTk.draw_idle'  s0    	* "^^66yAr?   c                    V P                   # )z
Return the Tk widget used to implement FigureCanvasTkAgg.

Although the initial implementation uses a Tk canvas,  this routine
is intended to hide that fact.
)r   rj   s   &r+   get_tk_widgetFigureCanvasTk.get_tk_widget4  s     ~~r?   c                    V P                   P                  VP                  4      V P                  P                  P
                  V P                   P                  VP                  4      ,
          3# r\   )r   canvasxxr   r<   rP   canvasyyra   r   s   &&r+   _event_mpl_coords FigureCanvasTk._event_mpl_coords=  sQ     &&uww/  ''$..*@*@*IIK 	Kr?   c           	         \        R V .V P                  V4      O5RV P                  V4      RV P                  V4      RV/ P	                  4        R# )r   buttons	modifiersguiEventN)r   r   _mpl_buttons_mpl_modifiersr   r   s   &&r+   r   "FigureCanvasTk.motion_notify_eventD  s]    ($ 	#**51	#,,U3	# "007	# "		# $,8:r?   c                    \        R V .V P                  V4      O5RV P                  V4      RV/ P                  4        R# )figure_enter_eventr   r   Nr   r   r   r   r   s   &&r+   r   !FigureCanvasTk.enter_notify_eventK  H    *D 	&--e4	& $ 3 3E :	&  %	& '/hjr?   c                    \        R V .V P                  V4      O5RV P                  V4      RV/ P                  4        R# )figure_leave_eventr   r   Nr   r   s   &&r+   r   !FigureCanvasTk.leave_notify_eventQ  r   r?   c           	     ,   V P                   P                  4        \        VR R4      p\        P                  R8X  d   ^^^^/P                  W34      p\        RV .V P                  V4      OVN5RVRV P                  V4      RV/ P                  4        R# )numNdarwinr   dblclickr   r   )
r   r   getattrr   r   getr   r   r   r   )ra   r   r  r  s   &&& r+   r   !FigureCanvasTk.button_press_eventW  s      "eUD)<<8#aA,""3,C' 	#**51	#36	#AI	#!007	# "	# $,8:r?   c                ,    V P                  VR R7       R# )T)r  N)r   r   s   &&r+   r   $FigureCanvasTk.button_dblclick_eventc  s    5r?   c                    \        VR R4      p\        P                  R8X  d   ^^^^/P                  W"4      p\	        RV .V P                  V4      OVN5RV P                  V4      RV/ P                  4        R# )r  Nr  r   r   r   )r  r   r   r  r   r   r   r   )ra   r   r  s   && r+   r   #FigureCanvasTk.button_release_eventf  s    eUD)<<8#aA,""3,C)4 	#**51	#36	#!007	# "	# $,8:r?   c           	         \        VR R4      pV^8X  d   ^M
V^8X  d   RM^ p\        RV .V P                  V4      O5RVRV P                  V4      RV/ P	                  4        R# )r  Nr   stepr   r   )r  r   r   r   r   )ra   r   r  r  s   &&  r+   r   FigureCanvasTk.scroll_evento  sr    eUD)1Hqq"a>4 	#**51	#8<	#!007	# "	# $,8:r?   c           
     <   VP                   P                  VP                  VP                  4      pW P                  8w  d   R# V P                  P                  VP                  VP                  4       ,
          4      pV P                  P                  P                  V P                  P                  VP                  VP                  4       ,
          4      ,
          pVP                  ^x,          p\        RV W4WPP                  V4      VR7      P                  4        R# )zMouseWheel event processorNr   )r  r   r   )r   winfo_containingx_rooty_rootr   r   winfo_rootxr   r<   rP   r   winfo_rootydeltar   r   r   )ra   r   r   r   r   r  s   &&    r+   r   #FigureCanvasTk.scroll_event_windowsw  s     LL))%,,ENN""5<<!--/#AB[[$$~~%%ellQ]]_&DEF{{S >4d.A.A%.H!	##+8:r?   c                   \         P                  R 8X  dX   \        P                  R3\        P                  R3\        P
                  R3\        P                  R3\        P                  R3.MV\        P                  R3\        P
                  R3\        P                  R3\        P                  R3\        P                  R3.pV UUu. uF"  w  r#V P                  V,          '       g   K   VNK$  	  upp# u uppi )r     i   i   i   i   )	r   r   r   LEFTRIGHTMIDDLEBACKFORWARDstate)r   r   r   masks   &   r+   r   FigureCanvasTk._mpl_buttons  s     \\X% v&')w'  '*
 v&((w'  '*,
 	  (1GyEKK$4F4FyGGGs   	C5+C5excludec                   \         P                  R 8X  d   . ROM\         P                  R8X  d   . ROM. ROpV UUUu. uF+  w  r4pV P                  V,          '       g   K!  W8w  g   K)  VNK-  	  uppp# u upppi )r   r  )ctrl   control)alti   r(  shift   r*  )r$  )r(     r(  r)  )cmd   r-  )r$  )r(  r.  r(  r)  )r^   @   r^   )r   r   r  )r   r"  r   r   r   keys   &$    r+   r   FigureCanvasTk._mpl_modifiers  sv     \\W$	
 \\X%+

,
 	 -6 :IS;;%% *1. I : 	: :s   A3 A3(A3c                    VP                   p\        P                  ! W!P                  4      pVeH   V P	                  WR7      pRV9   d   V'       d   VP                  R4       RP                  . VOVN4      # R # )N)r"  r*  r   )charr	   _unikey_or_keysym_to_mplkeykeysymr   removejoin)ra   r   unikeyr0  modss   &&   r+   _get_keyFigureCanvasTk._get_key  sh    //E?&&u&:D$6G$88LdLCL)) r?   c                    \        R V V P                  V4      .V P                  V4      O5RV/ P                  4        R# )key_press_eventr   Nr   r:  r   r   r   s   &&r+   r   FigureCanvasTk.key_press  s=    "Du%	!(,(>(>u(E	!	!!)r?   c                    \        R V V P                  V4      .V P                  V4      O5RV/ P                  4        R# )key_release_eventr   Nr>  r   s   &&r+   r   FigureCanvasTk.key_release  s=    $du%	!(,(>(>u(E	!	!!)r?   c                4    \        V P                  .VO5/ VB # r\   )rZ   r   )ra   rW   rb   s   &*,r+   	new_timerFigureCanvasTk.new_timer  s    t~~7777r?   c                :    V P                   P                  4        R # r\   )r   updaterj   s   &r+   flush_eventsFigureCanvasTk.flush_events  s    r?   c                $   V^ 8  do   \        RV,          4      pV^ 8  d,   V P                  P                  W P                  4      V n        M*V P                  P                  V P                  4      V n        V P                  P                  4        R# )r   i  N)r   r   rg   stop_event_loopr   ru   mainloop)ra   timeoutmillisecondss   && r+   start_event_loopFigureCanvasTk.start_event_loop  sq    Q;tg~.La&*nn&:&: "6"6'8# '+nn&?&?(('*#!r?   c                    V P                   '       d-   V P                  P                  V P                   4       R V n         V P                  P                  4        R # r\   )r   r   rn   quitrj   s   &r+   rK  FigureCanvasTk.stop_event_loop  s>    NN''(;(;<"&Dr?   c                     V P                   P                  \        V,          R 7       R#   \        P                   d     R# i ; i))cursorN)r   r   cursordtkinterrM   )ra   rU  s   &&r+   
set_cursorFigureCanvasTk.set_cursor  s8    	NN$$GFO$< 		s   '+ AA)r   r   r   r   r   r   r   )NNr\   )F)r   )$rw   rx   ry   rz   required_interactive_frameworkr   classpropertymanager_classr_   r   r   r   r   r   r   r   r   r   r   r   r   r   staticmethodr   r   r:  r   r   rD  rH  rO  rK  rX  r|   r}   r~   r   s   @@r+   r   r      s     %)"&&'BCMC+J8  BK.11
.6... H H* : : :2*,
,
8 
" r?   r   c                      a a ] tR tRt oRtRtV 3R lt]R 4       t]R 4       t	R t
R tR	 tR
 tR tR tR tRtVtV ;t# )r   i  z
Attributes
----------
canvas : `FigureCanvas`
    The FigureCanvas instance
num : int or str
    The Figure number
toolbar : tk.Toolbar
    The tk.Toolbar
window : tk.Window
    The tk.Window
Fc                >  < W0n         \        SV `	  W4       V P                   P                  4        V P                  P
                  P                  \        P                  \        P                  ^R7       \        VP                  4       ^4      p\        P                  ! V^`RV 2R7      V n        RV n        \        P                   ! WCP                  P#                  4       4      '       d,   V P                  P%                  RV P&                  4      V n        RV n        R# )r+  )sidefillexpand
window_dpi)r   valuer    writeFN)windowr^   r_   withdrawcanvasr   packr3   TOPBOTHr   wm_frameIntVar_window_dpi_window_dpi_cbnamer   enable_dpi_awarenessr6   	trace_add_update_window_dpi_shown)ra   ri  r  rg  window_framerc   s   &&&& r+   r_   FigureManagerTk.__init__  s    % 	""RWWQ"G
 6??,b199F",6|n*EG"$&&|YY5I5I5KLL&*&6&6&@&@00'2D# r?   c                   \        4       ;_uu_ 4        \        P                  ! 4       f+   \        P                  ! 4        \        P
                  ! 4        \        P                  ! RR7      pVP                  4        \        \        P                  ! R4      4      p\        P                  ! WTR7      p\        \        P                  ! R4      4      p\        P                  ! WtR7      pVP                  RW4       V! W$R7      p	V ! WV4      p
\        P                  ! 4       '       d!   V
P!                  4        V	P#                  4        V
uuR R R 4       #   + '       g   i     R # ; i)N
matplotlib)	classNamezimages/matplotlib.png)filer   zimages/matplotlib_large.pngFr   )r,   r	   "_get_running_interactive_framework_setup_new_guiappr
    Win32_SetProcessDpiAwareness_maxr3   Tkrh  r7   _get_data_pathr   r   	iconphotor'   is_interactiveshowr   )r   canvas_classr   r  rg  
icon_fnameicon_imgicon_fname_largeicon_img_largeri  managers   &&&&       r+   create_with_canvas"FigureManagerTk.create_with_canvas  s    /00779A'')!BBDUU\2FOO U11') *J))zIH"5#7#7-$/  0$//%6N UN=!&8F&v.G!!##  "; 1000s   D5EE$	c                    \         P                  ! 4       pV'       dT   V^ ,          p\        V4      pVP                  '       d   R# RVn         VP                  P                  4        RVn        R# R#   RTn        i ; i)r   NTF)r   get_all_fig_managerstype_owns_mainlooprg  rL  )r   managersfirst_managerr\  s   &   r+   start_main_loopFigureManagerTk.start_main_loop2  sm    ++-$QKM /M++++/M(5$$--//4,  05,s   A3 3	A<c                F   V P                   P                  4       pV P                  P                  R RV^H,          4       V P                  '       d7   \        V P                  R4      '       d   V P                  P                  4        V P                  P                  4        R# )r3   r   _rescaleN)	ro  r  rg  r4   toolbarhasattrr  ri  r   )ra   rW   newdpis   &* r+   rs  "FigureManagerTk._update_window_dpi@  si    !!%%'y&2+6<<<GDLL*==LL!!#..0r?   c           	         R pW8  g   W#8  d+   \         P                  R8X  d   \        RV RV RV R24      hV P                  P                  P                  WR7       R# )i\ r   z/You have requested to resize the Tk window to (z, z), one of which is bigger than z.  At larger sizes xorg will either exit with an error on newer versions (~1.20) or cause corruption on older version (~1.19).  We do not expect a window over a million pixel wide or tall to be intended behavior.r   N)r   r   
ValueErrorri  r   r   )ra   rQ   rP   max_sizes   &&& r+   r   FigureManagerTk.resizeG  sk     1s||w7N!!&r& 2""* ,++, , 	''e'Cr?   c                  a  \        4       ;_uu_ 4        S P                  '       gb   V 3R  lpS P                  P                  RV4       S P                  P	                  4        S P
                  P                  P                  4        MS P
                  P                  4        \        P                  R,          '       da   S P
                  P                  P                  P                  R^4       S P
                  P                  P                  P                  R^ 4       RS n        RRR4       R#   + '       g   i     R# ; i)c                  4   < \         P                  ! S4       R # r\   )r   destroyr   s   *r+   r  %FigureManagerTk.show.<locals>.destroyX  s    KK%r?   WM_DELETE_WINDOWzfigure.raise_windowz-topmostTN)r,   rt  rg  protocol	deiconifyri  r   r   r   r'   r(   r  
attributes)ra   r  s   f r+   r  FigureManagerTk.showU  s    .00;;;&$$%7A%%'%%//1%%'||122##**55j!D##**55j!DDK 1000s   B*D0?A'D00E	c                  a  S P                   P                  '       d:   S P                   P                  P                  S P                   P                  4       S P                   P                  '       d:   S P                   P                  P                  S P                   P                  4       S P
                  '       d'   S P                  P                  R S P
                  4       V 3R lp\        P                  ! 4       R8X  d4   S P                  P                  S P                  P                  ^ V4       R# S P                  P                  4        V! 4        R# )rf  c                     < S P                   P                  4        S P                  '       d:   \        P                  ! 4       '       g   S P                   P                  4        R # R # R # r\   )rg  r  r  r   get_num_fig_managersrR  rj   s   r+   delayed_destroy0FigureManagerTk.destroy.<locals>.delayed_destroyq  sF    KK!"""3+C+C+E+E  " ,F"r?   r3   N)ri  r   r   rn   r   rp  ro  trace_remover	   r|  rg  ru   rg   rG  )ra   rW   r  s   f* r+   r  FigureManagerTk.destroyd  s    ;;$$$KK!!..t{{/H/HI;;%%%KK!!..t{{/I/IJ"""))'43J3JK	# 335=KK""4;;#4#4aIKK r?   c                6    V P                   P                  4       # r\   rg  wm_titlerj   s   &r+   get_window_title FigureManagerTk.get_window_title~  s    {{##%%r?   c                <    V P                   P                  V4       R # r\   r  )ra   titles   &&r+   set_window_title FigureManagerTk.set_window_title  s    U#r?   c                    \        V P                  P                  R 4      4      pV P                  P                  R V'       * 4       R# )z-fullscreenN)boolrg  r  )ra   is_fullscreens   & r+   full_screen_toggle"FigureManagerTk.full_screen_toggle  s2    T[[33MBC}-.?@r?   )rt  ro  rp  rg  )rw   rx   ry   rz   r{   r  r_   classmethodr  r  rs  r   r  r  r  r  r  r|   r}   r~   r   s   @@r+   r   r     sj      N*  B 5 51D4&$A Ar?   r   c                      a a ] tR tRt oRRR/R lltR tR tV 3R ltV 3R ltR	 t	R
 t
R tR tR tR tR tR tRtVtV ;t# )NavigationToolbar2Tki  pack_toolbarTc               z   Vf   VP                  4       P                  p\        P                  P	                  W^\        VP                  P                  P                  4      ^2R7       / V n	        V P                   F~  w  rErgVf   V P                  4        K  V P                  V\        \        P                  ! RV R24      4      VR9   \!        W4      R7      ;V P                  V&   pVf   Ks  \#        W4       K  	  \$        P&                  P)                  V^
R7      V n        \        P,                  ! W P*                  RR7      p	V	P/                  \        P0                  R	7       \        P2                  ! V R
7      V n        \        P,                  ! W P*                  V P4                  \        P0                  R7      V n        V P6                  P/                  \        P0                  R	7       \8        P                  ! W4       V'       d2   V P/                  \        P:                  \        P<                  R7       R# R# )a  
Parameters
----------
canvas : `FigureCanvas`
    The figure canvas on which to operate.
window : tk.Window
    The tk.Window which owns this toolbar.
pack_toolbar : bool, default: True
    If True, add the toolbar to the parent's pack manager's packing
    list during initialization with ``side="bottom"`` and ``fill="x"``.
    If you want to use the toolbar with a different layout manager, use
    ``pack_toolbar=False``.
N)r   r   rQ   rP   zimages/.png)togglecommand)r   size    
 r   fonttextr`  r{  )r   r  textvariablejustifyr`  ra  )zoompan)r   r   r3   Framer_   r   r   r<   rQ   _buttons	toolitems_Spacer_Buttonr7   r	   r  r  add_tooltiprW  r  Font_label_fontLabelrj  r  	StringVarmessage_message_labelr   BOTTOMX)
ra   ri  rg  r  r  tooltip_text
image_filecallbackbuttonlabels
   &&&$      r+   r_   NavigationToolbar2Tk.__init__  s    >))+22F
$1 #FMM$6$6$<$< =b 	 	J 8<4D
|/3||,,wzl$-GHI#6#D3	 0< 0 d#f  +5 9G #<<,,&r,B +;+;FH


!||40 hhd9I9I48LL/1xx9 	  bhh /##D1II299244I0 r?   c                2   V P                  4        F  p\        V\        P                  \        P                  34      '       d,   \        VR4      '       d   \        P                  W4       K\  K^  \        V\        P                  4      '       d'   VP                  RR7       VP                  RR7       K  \        V\        P                  4      '       d   K  \        P                  RVP                  4       K  	  V P                  P                  ^
R7       R# )	at  
Scale all children of the toolbar to current DPI setting.

Before this is called, the Tk scaling setting will have been updated to
match the new DPI. Tk widgets do not update for changes to scaling, but
all measurements made after the change will match the new scaling. Thus
this function re-applies all the same sizes in points, which Tk will
scale correctly to pixels.
_image_file18p)rP   3p)padxzUnknown child class %sr  N)winfo_children
isinstancer3   ButtonCheckbuttonr  r  _set_image_for_buttonr  r   pack_configurer  _logwarningwinfo_classr  )ra   r   s   & r+   r  NavigationToolbar2Tk._rescale  s     ))+F&299bnn"=>>6=11(>>tL FBHH--   .%%4%0FBHH--5v7I7IJ , 	"""+r?   c                .   R \         P                  3R\         P                  33 Fl  w  rWP                  9   g   K  V P                  V8X  d$   V P                  V,          P                  4        KK  V P                  V,          P                  4        Kn  	  R# )ZoomPanN)r   ZOOMPANr  modeselectdeselect)ra   r  r  s   &  r+   _update_buttons_checked,NavigationToolbar2Tk._update_buttons_checked  sf    "EJJ/%1CDJD}}$99$MM$'..0MM$'002 Er?   c                D   < \         SV `  ! V!   V P                  4        R # r\   )r^   r  r  ra   rW   rc   s   &*r+   r  NavigationToolbar2Tk.pan  s    T$$&r?   c                D   < \         SV `  ! V!   V P                  4        R # r\   )r^   r  r  r  s   &*r+   r  NavigationToolbar2Tk.zoom  s    d$$&r?   c                <    V P                   P                  V4       R # r\   )r  setra   ss   &&r+   set_message NavigationToolbar2Tk.set_message  s    r?   c           	        V P                   P                  '       d:   V P                   P                  P                  V P                   P                  4       V P                   P                  '       d:   V P                   P                  P                  V P                   P                  4       V P                   P
                  P                  P                  pWc,
          pWe,
          pV P                   P                  P                  W#WE4      V P                   n        V P                   P                  P                  W#WER RR7      V P                   n        R# )r   )outlinedashN)   r  )	ri  r   r   r   r   r   r<   rP   create_rectangle)ra   r   x0y0rR   rS   rP   s   &&&&&& r+   draw_rubberband$NavigationToolbar2Tk.draw_rubberband  s    ;;---KK!!(()K)KL;;---KK!!(()K)KL##((//[[KK!!22  	* KK!!22f 3 > 	*r?   c                   V P                   P                  '       dK   V P                   P                  P                  V P                   P                  4       R V P                   n        V P                   P                  '       dM   V P                   P                  P                  V P                   P                  4       R V P                   n        R # R # r\   )ri  r   r   r   r   rj   s   &r+   remove_rubberband&NavigationToolbar2Tk.remove_rubberband   s    ;;---KK!!(()K)KL15DKK.;;---KK!!(()K)KL15DKK. .r?   c           
       aa SP                   f   R# \        P                  ! RSP                   4      pVP                  VP                  P                  RR4      4      pSP                  R4      pV3R loV3R lpR p\        P                  ! V^8  d   VP                  4       '       d   TMT4      ;_uu_ 4       pVP                  R	4      p\        P                  ! VP                  WD34      V R
7      pVSn        R\        P                   ! SP#                  SP%                  R4      4      4      ,          p	V! Wy4      p
\        P                  ! V
P                  WD34      V R
7      pVSn        RRR4       V! R4      '       d   RX/pMRX/p\)        S\*        P,                  4      '       d   SP%                  R4      R8w  dt   V P.                  R8w  d   RpMFS! R4      w  rpS! R4      w  pppVV,           ^,          VV,           ^,          VV,           ^,          3pV! V4      '       d   XVR&   MXVR&   SP0                  ! R/ VBRRRR/B  R#   + '       g   i     L; i)zu
Set the image for a button based on its pixel size.

The pixel size is determined by the DPI scaling of the window.
Nimagesr  z
_large.pngr  c                 D   < SP                  SP                  V 4      4      # r\   )	winfo_rgbcget)
color_namer  s   &r+   
_get_color>NavigationToolbar2Tk._set_image_for_button.<locals>._get_color  s    ##FKK
$;<<r?   c                 \   < \        V \        4      '       d	   S! V 4      p \        V 4      R8  # )i  g    @)r  r7   rF   )colorr  s   &r+   _is_dark<NavigationToolbar2Tk._set_image_for_button.<locals>._is_dark  s)    %%%"5)u:	))r?   c                     \         P                  ! V 4      P                  4       pVR,          ^ 8H  P                  RR7      pWVR3&   \        P
                  ! V4      # ).Nr  N)axis).r!  r  )rB   rC   copyallr   	fromarray)r   r  
image_data
black_masks   &&  r+   _recolor_iconANavigationToolbar2Tk._set_image_for_button.<locals>._recolor_icon"  sQ    E*//1J$W-277R7@J).z2~&??:..r?   RGBAr{  r*   r   r   selectcolorre  x11activebackgroundselectimagerP   rQ   g o? )r  r	   r  	with_namer   replacewinfo_pixelsr   openexistsconvertr   r   r   _ntimagerB   arrayr  r  _ntimage_altr  r3   r  _windowingsystemr   )ra   r  path_regular
path_larger  r  r(  imr   r*   im_alt	image_altimage_kwargsr+  r1g1b1r2g2b2r  s   &f                  @r+   r  *NavigationToolbar2Tk._set_image_for_button  s    % ++Hf6H6HI!++%%fl;=
""5)	=	*
	/ ZZtbyZ5F5F5H5H
)+ +.0F#B&&ryy$'>tLE#FO &  \!:;*= =J"22F**tl+D:I"+F+ L!!
 $Y/L#U+L
 vr~~..M*b0$$-+
 (6
'(:;
B "2qy2b5!)beQY?$$.7]+.3]+C<CCUCY+ +s   <B3II!	c                z   V'       g   \         P                  ! WVR R^R7      pM:\         P                  ! V R7      p\         P                  ! WVRVR R^R7      pWen        W%n        Ve   \        P                  W4       MVP                  V P                  R7       VP                  \         P                  R7       V# )flatgroove)r   r  r  relief
overreliefr   r{  F)r   r  r  indicatoronvariable	offreliefrK  r   )r  r  )r3   r  rn  r  varr  r  r  r   r  rj  r  )ra   r  r  r  r  brO  s   &&&&&  r+   r  NavigationToolbar2Tk._ButtonW  s    		(A ))4(CU8A
 E"! 66t?KKT--K.	BGGr?   c                    \         P                  ! V R \         P                  RR7      pVP                  \         P                  RR7       V# )r  DarkGray)r   rP   rJ  bgr  )r`  r  )r3   r  RIDGErj  r  r  s   & r+   r  NavigationToolbar2Tk._Spacers  s3    HHDrxxJO	BGG$'r?   c           
     
   V P                   P                  4       p\        VP                  4       4       UUu. uF  w  r4VR P	                  R V 4       4      3NK!  	  pppV P                   P                  4       pV P                   P                  4       V,          p\        P                  ! V P                   P                  4       V4      pRp	\        P                  P                  \        P                  R,          4      p
\        P                   ! V P                   P#                  4       4      P$                  p\&        P(                  P+                  V P                   P                  4       P,                  RVV	V
VVR7      pVR
9   d   R# V
R8w  d:   \        P                  P/                  \1        V4      4      \        P                  R&   \        P                   ! V4      P2                  R,          R8w  d   RpMW(P5                  4       ,          ^ ,          p V P                   P6                  P9                  WR7       V# u uppi   \:         d5   p\&        P<                  P?                  R	\1        T4      4        Rp?R# Rp?ii ; i) c              3   ,   "   T F
  pR V 2x  K  	  R# 5i)z*.Nr/  ).0exts   & r+   	<genexpr>3NavigationToolbar2Tk.save_figure.<locals>.<genexpr>|  s     7$3bJ$s   re  zsavefig.directoryzSave the figure)r   r  	filetypesdefaultextension
initialdirinitialfiletypevariableN:r+  NN)formatzError saving file)re  r/  ) ri  get_supported_filetypes_groupedsorteditemsr7  get_default_filetypeget_supported_filetypesr3   r  r   ospath
expanduserr'   r(   pathlibPathget_default_filenamestemrW  
filedialogasksaveasfilenamer   dirnamer7   suffixr  r   savefig	Exception
messagebox	showerror)ra   rW   r^  r   extstk_filetypesdefault_extensiondefault_filetypefiletype_variabler_  r`  ra  fname	extensionrX   s   &*             r+   save_figure NavigationToolbar2Tk.save_figurey  s   KK??A	 %Y__%67
7
 3887$7787 	 

 !KK<<>;;>>@ARSLL)B)B)DFVW WW''5H(IJ
 ll4;;#C#C#EFKK""44;;,,.55#"-!#* 5  HE
+ LL,-
 <<%%b)R/I!"7"7"9:1=I	FKK&&u&?L]
^  	F(()<c!fEE	Fs   %H='I J)I==Jc                   R \         P                  R\         P                  /pV P                  P                  ^ 8  pV P                  P                  \        V P                  4      ^,
          8  pRV P                  9   d   W,          V P                  R,          R&   RV P                  9   d   W,          V P                  R,          R&   R# R# )TFBackr  ForwardN)r3   NORMALDISABLED
_nav_stack_poslenr  )ra   	state_mapcan_backcan_forwards   &   r+   set_history_buttons(NavigationToolbar2Tk.set_history_buttons  s    299eR[[9	??''!+oo**S-AA-EET]]"-6-@DMM&!'*%090FDMM)$W- &r?   )r  r  r  r  r\   )rw   rx   ry   rz   r_   r  r  r  r  r  r  r  r  r  r  r  r  r|   r}   r~   r   s   @@r+   r  r    sZ     51D 51n,63''? 6MD^82FhG Gr?   r  c                 t   a aa R oVVV 3R lpV3R lpS P                  RV4       S P                  RV4       R # )Nc                t  < S'       g	   S'       g   R# SP                  R4      w  r pVSP                  4       ,           SP                  4       ,           pVSP                  4       ,           p\        P
                  ! S4      oSP                  ^4       SP                  RV RV 24        SP                  P                  RRSP                  RR4       \        P                  ! SS\        P                  \        P                  ^R7      pVP                  ^R	7       R#   \        P                   d     Lbi ; i)
zDisplay text in tooltip window.Ninsertr   z!::tk::unsupported::MacWindowStylestylehelpnoActivates)r  r  rJ  r   )ipadx)r<   r  winfo_widthr  r3   Topleveloverrideredirectgeometryr4   _wrM   r  r  SOLIDrj  )r   r   r   _r  r  	tipwindowr   s   &    r+   showtipadd_tooltip.<locals>.showtip  s     D[[*
a""$$v'9'9';;""$$KK'	""1%Qqc1#;'	LLA%y||$m5
 rww "a9


	 {{ 		s   +)D D76D7c                 <   < S'       d   SP                  4        R oR # r\   )r  )r   r  s   &r+   hidetipadd_tooltip.<locals>.hidetip  s    	r?   r   r   )r   )r   r  r  r  r  s   ff  @r+   r  r    s0    I* KK	7#
KK	7#r?   c                   ,   a  ] tR tRt o R tR tRtV tR# )RubberbandTki  c                R    \         P                  V P                  4       R WW44       R # r\   )r  r  "_make_classic_style_pseudo_toolbar)ra   r  r  rR   rS   s   &&&&&r+   r  RubberbandTk.draw_rubberband  s#    ,,335tRR	Mr?   c                L    \         P                  V P                  4       4       R # r\   )r  r  r  rj   s   &r+   r  RubberbandTk.remove_rubberband  s    ..335	7r?   r/  N)rw   rx   ry   rz   r  r  r|   r}   r   s   @r+   r  r    s     M7 7r?   r  c                   Z   a  ] tR tRt o RR ltR tR tR tR tR t	R	 t
R
 tR tRtV tR# )	ToolbarTki  Nc                   \         P                  ! W4       Vf/   V P                  P                  P	                  4       P
                  pV P                  P                  P                  P                  P                  w  r4^2WC,
          re\        P                  P                  W\        V4      \        V4      ^R7       \        P                  P                  ^
R7      V n        \        P                   ! W P                  RR7      pVP#                  \        P$                  R7       \        P&                  ! V R7      V n        \        P                   ! W P                  V P(                  R7      V n        V P*                  P#                  \        P$                  R7       / V n        V P#                  \        P.                  \        P0                  R7       / V n        R # )	N)r   rQ   rP   r   r  r  r  r  r{  )r   r  r  r  )r   r_   toolmanagerri  r   r   r   r<   	intervalxr3   r  r   rW  r  r  r  r  rj  r  r  _messager  
_toolitemsrk  r  _groups)ra   r  rg  xminxmaxrP   rQ   r  s   &&&     r+   r_   ToolbarTk.__init__  sH   ""45>%%,,::<CCF%%,,3388BB
DK
$ #E
3v;&' 	 	) #<<,,",5
 +;+;FH


!D1 hhd9I9I48MMC  bhh /		rvvBDD	)r?   c                ,    \         P                  V 4      # r\   )r  r  rj   s   &r+   r  ToolbarTk._rescale  s    #,,T22r?   c                  a a S P                  V4      pVP                  4       pV\        V4      8  g   V^ 8  d   Rp	MW,          p	\        P	                  VSWFVV 3R l4      p
V
P                  V	R7       Ve   \        W4       S P                  P                  S. 4       S P                  S,          P                  V
4       R# )r   Nc                  &   < SP                  S 4      # r\   )_button_click)r   ra   s   r+   rr   (ToolbarTk.add_toolitem.<locals>.<lambda>
  s    d6H6H6Nr?   )before)
_get_groupframepack_slavesr  r  r  r  r  r  
setdefaultappend)ra   r   grouppositionr  descriptionr  framer   r  r  s   ff&&&&&    r+   add_toolitemToolbarTk.add_toolitem  s    $$U+##%s7|#x!|F&F%--eT:.NPV,",""4,$$V,r?   c                X   WP                   9  d   V P                   '       d   V P                  4        \        P                  ! V ^ R7      pVP	                  \        P
                  \        P                  R7       V P                  Vn        W P                   V&   V P                   V,          # )r   )r   r   r  )r  _add_separatorr3   r  rj  r  Yr  )ra   r  r  s   && r+   r  ToolbarTk._get_groupframe  sr    $|||##%HHDa8EJJBGG"$$J/ $ 0 0E"'LL||E""r?   c                ,    \         P                  V 4      # r\   )r  r  rj   s   &r+   r  ToolbarTk._add_separator  s    #++D11r?   c                (    V P                  V4       R # r\   )trigger_tool)ra   r   s   &&r+   r  ToolbarTk._button_click  s    $r?   c                    WP                   9  d   R # V P                   V,           F-  pV'       d   VP                  4        K  VP                  4        K/  	  R # r\   )r  r  r  )ra   r   toggledtoolitems   &&& r+   toggle_toolitemToolbarTk.toggle_toolitem!  s>    &--H!!!#	 .r?   c                l    V P                   P                  V. 4       F  pVP                  4        K  	  R # r\   )r  r2   pack_forget)ra   r   r  s   && r+   remove_toolitemToolbarTk.remove_toolitem*  s)    ++D"5H  " 6r?   c                <    V P                   P                  V4       R # r\   )r  r  r  s   &&r+   r  ToolbarTk.set_message.  s    !r?   )r  r  r  r  r  r\   )rw   rx   ry   rz   r_   r  r  r  r  r  r  r  r  r|   r}   r  s   @r+   r  r    s7     23- #2 $# r?   r  c                   &   a  ] tR tRt o R tRtV tR# )SaveFigureTki2  c                L    \         P                  V P                  4       4       R # r\   )r  r  r  ra   rW   s   &*r+   triggerSaveFigureTk.trigger4  s    ((335	7r?   r/  Nrw   rx   ry   rz   r  r|   r}   r  s   @r+   r  r  2  s     7 7r?   r  c                   &   a  ] tR tRt o R tRtV tR# )ConfigureSubplotsTki9  c                0    \         P                  V 4       R # r\   )r  configure_subplotsr  s   &*r+   r  ConfigureSubplotsTk.trigger;  s    //5r?   r/  Nr  r  s   @r+   r  r  9  s     6 6r?   r  c                   &   a  ] tR tRt o R tRtV tR# )HelpTki?  c                   a \        V P                  P                  P                  V P	                  4       R .4      oV3R lSn        R# )OKc                 L   < SP                   P                  P                  4       # r\   )r  r   rh  )r  dialogs   &r+   rr    HelpTk.trigger.<locals>.<lambda>D  s    &,,"5"5">">"@r?   N)r   r   ri  r   _get_help_textdone)ra   rW   r  s   &*@r+   r  HelpTk.triggerA  s7    KK(($*=*=*?$I@r?   r/  Nr  r  s   @r+   r  r  ?  s     A Ar?   r  c                   N    ] tR tRt]P
                  t]t]	t
]	P                  tRtR# )
_BackendTkiL  r/  N)rw   rx   ry   rz   r3   	TkVersionbackend_versionr   FigureCanvasr   FigureManagerr  rL  r|   r/  r?   r+   r  r  L  s     llO!L#M..Hr?   r  r\   )duuidr   
contextlibr   loggingrG   os.pathri  rl  r   rW  r3   tkinter.filedialogtkinter.fonttkinter.messageboxtkinter.simpledialogr   numpyrB   PILr   r   rx  r'   r   r   r	   r
   matplotlib.backend_basesr   r   r   r   r   r   r   r   r   r   r   r   r   r   matplotlib._pylab_helpersr   re  r   r   r   ImportErrorrX   r  cause1cause2r  AttributeErrorr7   rj  realpath
executableis_uv_python	getLoggerrw   r  MOVEHANDPOINTERSELECT_REGIONWAITRESIZE_HORIZONTALRESIZE_VERTICALrV  r,   r1   uuid4hexrL   r>   r5   rZ   r   r   r  r  r  _register_tool_classRubberbandBaser  r  SaveFigureBaser  ConfigureSubplotsBaser  ToolHelpBaser  Toolbar_toolbar2_class_toolmanager_toolbar_classexportr  r/  r?   r+   <module>r     s     %     
     -    D DB B B B *J: "LL'LL'OOW;LL'20 D D 
tzz|///33l#i #Lj% jZ	[A' [A|kG-rxx kG\	$D ##N37=// 7 47K!288 K\ ##N37=// 7 47 ##N36-== 6 46
 ##N3A]'' A 4A "6 -6 * 
/ / /a!  QT*FV[$/F6;''v~..4FC#(8(8(HI?
  -  	3s$   <I
 
K1K<K KK