
    
3j                    3   S r SSKrSSKJr  SSKJrJr  SSKJr  SSK	r	SSK
r
SSKrSSKJr  SSKJr  SSKrSSKrSSKJrJr  SS	KJr  SS
KJr  SSKJrJr  SSKJr  SSKJ r J!r!  SSK"J#r#J$r%J"r&   " S S5      r'S r(\GS~SSS.S jj5       r)S r*\)" \*5      r+S r,S r-S r.S r/SS.S jr0\0" \15      r2\0" \1SS9r3\)" \2SS9r4\0" \55      r6\0" \5SS9r7\)" \6SS 9r8\0" \95      r:\0" \9SS9r;\)" \:5      r<S! r=\)" \=S"S9r>S# r?S$ r@\A" 5       rBS% rCS& rDS' rES( rFS) rGS* rHS+ rIS, rJS- rK\)" \JSS.S/9rLS0 rMS1 rNS2 rOS3 rP\)" \P5      rQS4 rRS5 rSS6 rTS7 rUS8 rVS9 rW\'" S:/ \R                  " 5       Q\R                  " 5       QS;PS<PS=PS>PSS?9rZS@ r[SA r\\'" SB/ SCQ5      r]\)" \]5      r^SD r_\)" \_5      r`SE raSF rbSG rcSH rdSI reSJ rf\)" \f5      rg\)" \<5      rhSK ri0 SL\)" \HSSM9_SN\<_S:\)" \[5      _SO\L_SP\L_SQ\)" \ 5      _SR\)" \!5      _SS\^_ST\L_SU\<_SV\<_SW\L_SX\`_SY\<_SZ\>_S[\g_S\\h_rjSLSNS:SOSPSTSWSVSUS].	rkS^ r"S_ rlS` rm\'" Sa/ SbQSS?9rnSc roSd rpSe rq " Sf Sg\r5      rsSh rt0 Si\C_Sj\-_Sk\4_Sl\D_Sm\-_Sn\2_So\6_Sp\2_Sq\-_Sr\6_Ss\:_St\[_Su\J_Sv\=_Sw\F_Sx\F_Sy\:_0 Sz\:_S{\-_S|\ _S}\ _S~\!_S\!_S\<_S\<_S\<_S\-_SB\]_S/ SQ_S\-_S\:_S\J_S\-_S\J_E0 S\-_S\G_S\:_S\q_S\-_S\-_S\V_S\7_S\-_S\-_S\-_S\-_S\-_S\-_S\J_S\=_S\F_E0 S\J_S\:_S\:_S\[_S\:_S\J_S\:_S\[_S\J_S\:_S\[_S\J_S\:_S\[_S\J_S\:_S\[_E0 S\J_S\=_S\J_S\J_S\:_S\[_S\:_S\-_S\4_S\2_S\2_S\S_S\R_S\:_S\4_S\4_S\4_E0 S\4_S\4_S\J_S\-_SSS/_S\2_S/ SQ_S\7_S\7_S\-_S\-_S\3_S\T_S\T_S\T_S\T_S\T_E0 S\T_S\T_S/ SQ_S/ SQ_S\U_S\N_S\2_S/ SQ_S\M_S\6_SSS/_S\-_S\-_S\[_S\-_S\;_S/ SQ_E0 S\:_S\;_S\;_S/ SQ_S/ SQ_S\._S\J_S\J_S\:_S\-_S\-_S\-_S\-_S\P_S/ SQ_S\R_S\F_E0 S\;_S\:_S\-_S/ GS Q_GS/ GSQ_GS\P_GS\:_GS\R_GS\J_GS\8_GS\-_GS	\-_GS
\6_GS\-_GS\6_GS\-_GS\p_E0 GSGSGS/_GS\c_GS\c_GS\c_GS\-_GS\-_GS\-_GS\J_GS\J_GS\J_GS\-_GS\:_GS/ GSQ_GS\:_GS \:_GS!\:_GS"\=_E0 GS#\2_GS$\,_GS%\2_GS&\2_GS'\2_GS(\2_GS)\2_GS*\2_GS+\2_GS,GS-GS./_GS/\-_GS0\-_Sa\o_GS1\6_GS2\6_GS3\P_GS4\O_E0 GS5\I_GS6\:_GS7\-_GS8\-_GS9\;_GS:\;_GS;\:_GS<\:_GS=\:_GS>\:_GS?\:_GS@\:_GSA\:_GSB\E_GSC\E_GSD\-_GSE\-_E0 GSF\-_GSG\-_GSH\:_GSI\:_GSJ\:_GSK\:_GSL\:_GSM\:_GSN\J_GSO\E_GSP\-_GSQ\-_GSR\-_GSS\-_GST\-_GSU\i_GSV\P_E0 GSW/ GSXQ_GSY/ GSZQ_GS[\-_GS\\-_GS]\-_GS^\-_GS_\:_GS`\:_GSa\:_GSb\:_GSc\:_GSd\:_GSe\J_GSf\E_GSg\-_GSh\-_GSi\-_E0 GSj\-_GSk\-_GSl\i_GSm\P_GSn/ GSXQ_GSo/ GSpQ_GSq\J_GSr\[_GSs\:_GSt\:_GSu\K_GSv\\_GSw\;_GSx\;_GSy\K_GSz\\_GS{\;_E0 GS|\;_GS}\P_GS~\R_GS\P_GS\R_GS\)" \:SS 9_GS\:_GS\J_GS\J_GS\-_GS\-_GS\6_GS\-_GS/ GSQ_GS\:_GS\:_GS\:_E0 GS\:_GS\:_GS\:_GS\-_GS\:_GS\:_GS\:_GS\:_GS\/_GS\F_GS\F_GSGSGS/_GS\2_GS\a_GS\:_GS\?_GS\-_E0 GS\-_GS\s" GSGSGSGS/GS V Vs/ s H  n \u" GS5        H  o U 3PM
     M     snn Q5      _GS\-_GS\W_GS\6_GS\@_GS\6_GS\-_GS\-_GS\@_GS/ GSQ_GS\-_GS\2_GS\-_GSS<GS/_GS\3_GS\3_E0 GS\-_GS\-_GS\d_GS\-_GS\b_GS\+_GS\6_GS\4_GS\4_GS\4_GS\4_GS\4_GS\4_GS\4_GS\4_GS\4_GS\4_E0 GS\4_GS\4_GS\4_GS\4_GS\4_GS/ GSQ_GS\:_GS\2_GS\2_GS\6_GS/ GSQ_GS\?_GS\4_GS\?_GS\4_GS\-_ErvGSS0rw\vR                  5        VVs0 s H  u  p#U\t" X#5      _M     snnrv\ " GS GS5      5       ry\ " GS GS5      5       rz\ " GS GS5      5       r{/ \z" GS5      P\y" SoGS\6GSGS9P\y" SpGS\2GSGS9P\y" SrGS\6GSGS9P\y" SqS\-GSGS9P\y" SjS\-GSGS9P\y" SmS\-GS9P\y" Sk/ \4GSGS9P\y" SlGS\DGSGS9P\y" SnGS\2GSGS9P\z" GSGSGS9P\y" SsGS\:GSGS9P\y" StGS\[GSGS9P\y" SuGS\JGSGS9P\y" SvS;\=GSGS9P\y" SwGS-\FGSGS9P\y" SxGS-\FGSGS9P\y" SyGS\:GS GS9P\y" SzGS\:GSGS9P\y" S|GS\ GSGS9P\y" S~GS\!GSGS9P\y" S}GS\ GSGS9P\y" SGS\!GSGS9P\y" S{S\-GSGS9P\y" SGS	GS
/\<GSGS9P\y" S/ GSQ\<GSGS9P\y" SGSGS/\<GSGS9P\y" SS\-GS9P\y" SBGS\]GSGS9P\y" SGS-/ SQGS9P\y" SS\-GSGS9P\z" GS5      P\y" SGS\:GSGS9P\y" SGS\JGS9P\y" SGS\JGSGS9P\y" SS\-GSGS9P\y" SS\-GSGS9P\z" GS5      P\y" SGS\G5      P\y" SGS\:5      P\z" GS5      P\y" SS\-5      P\y" SS\-5      P\y" SGS\V5      P\y" SS\75      P\y" SS\-5      P\y" SS\-5      P\y" SS\-5      P\y" SS\-5      P\y" SS\-5      P\y" SS\-5      P\y" SGS\J5      P\y" SGS\=5      P\y" SS<\F5      P\y" SGS\J5      P\y" SGS\:5      P\y" SGS\:5      P\y" SS<\[5      P\y" SGS\:5      P\y" SGS\J5      P\y" SGS\:5      P\y" SGS\[5      P\y" SGS\J5      P\y" SGS\:5      P\y" SGS\[5      P\y" SGS\J5      P\y" SGS\:5      P\y" SGS\[5      P\y" SGS\J5      P\y" SGS\:5      P\y" SGS\[5      P\y" SGS\J5      P\y" SGS\=5      P\y" SGS\J5      P\y" SGS\J5      P\y" SGS\:5      P\y" SGS \[5      P\y" SGS\:5      P\z" GS!GS"GS9P\y" SGS#/\45      P\y" SGS$\25      P\y" SGS$\25      P\y" SGS$\R5      P\y" SGS$\S5      P\y" SGS%\:5      P\y" S/ GS&Q\4GS9P\y" S/ GS'Q\4GS9P\y" S/ GS(Q\4GS9P\y" S/ GS)Q\4GS9P\y" S/ GS*Q\4GS9P\y" SS\-GS+GS9P\z" GS,5      P\y" SGS\JGS9P\y" SS\3GS-GS9P\y" SGS./ SQGS/GS9P\y" SS\7GS0GS9P\y" SS\7GS1GS9P\y" SS\-GS2GS9P\y" SS\-GS3GS9P\z" GS45      P\y" SS\-GS5GS9P\y" SSSS/GS6GS9P\y" SS>\2GS7GS9P\y" SGS8/ SQGS9GS9P\y" SGS:\T5      P\y" SGS;\T5      P\y" SGS<\T5      P\y" SGS=\T5      P\y" SGS>\T5      P\y" SGS>\T5      P\y" SGS?\T5      P\y" SGS@\UGSAGS9P\y" SGS$/ SQGSBGS9P\z" GSC5      P\y" SGSD\JGSEGS9P\y" SGS\JGSFGS9P\y" SGSG\:GSHGS9P\y" SS\-GSIGS9P\y" GSGSJ/ GSQGSKGS9P\y" SGSL/ GS QGSMGS9P\y" SGSN/ SQGSOGS9P\y" SGSP\PGSQGS9P\y" SGS$\RGSRGS9P\y" SGS-\FGSSGS9P\y" SS\;GSTGS9P\y" SGS\:GSUGS9P\y" GSGSV\PGSWGS9P\y" GSGSX\:GSYGS9P\y" GSGS$\RGSZGS9P\y" GSGS\JGS9P\y" SGS[\.GS\GS9P\y" GSGS]GS^/\8GS_GS9P\y" GSS\-GS`GS9P\y" GS	S\-GSaGS9P\y" GS
S\6GSbGS9P\y" GSS\-GScGS9P\y" GSGSd\6GSeGS9P\y" SS\-GSfGS9P\y" SS\-5      P\y" SS\-5      P\y" SS\-GS9P\y" GSS\-GSgGS9P\y" GS\"" SL/ GShQ5      \pGS9P\y" GSGSi\cGSjGS9P\y" GSGSi\cGSkGS9P\y" GSGSi\cGSlGS9P\y" GSGSGSGS/GSmGS9P\{" GSn5      P\y" GSS\-GSoGS9P\{" GSp5      P\y" GSS\-GSqGS9P\y" GSS\-GSrGS9P\y" GSGSs\JGStGS9P\y" GSGSu\JGStGS9P\y" GSGSv\JGStGS9P\y" GSS\-GSwGS9P\y" GSGSx\:GSyGS9P\y" GSGSz/ GSQGS{GS9P\y" GSGS|\:GS}GS9P\y" GS GS~\:GSGS9P\z" GS5      P\y" GS!GS\:GSGS9P\y" SGSN/ SQGSGS9P\y" SGSN/ SQGSGS9P\z" GSGSGS9P\y" GS%GS\25      P\y" GS&GS\25      P\y" GS'GS\25      P\y" GS(GS\25      P\y" GS)GS\25      P\y" GS*GS\25      P\y" GS+GS\25      P\y" GS$GS\,GSGS9P\y" GS,GS-GS-GS./GSGS9P\y" GS/S\-GSGS9P\z" GS5      P\y" GSDS\-GSGS9P\y" GSES\-GSGS9P\y" GSFS\-GSGS9P\y" GSGS\-GSGS9P\y" GSHGS\:GSGS9P\y" GSIGS\:GSGS9P\y" GSJGSG\:GSGS9P\y" GSKGS\:GSGS9P\y" GSLGS\:GSGS9P\y" GSMGS\:GSGS9P\y" GSNGS\JGSGS9P\y" GSOGS\EGSGS9P\y" GSVGSV\PGSGS9P\y" GSWGS/ GSXQGSGS9P\y" GSPS\-GSGS9P\y" GSSS\-GSGS9P\y" GSTS\-GSGS9P\y" GSQS\-GSGS9P\y" GSRS\-GSGS9P\y" GSUGS-\iGSGS9P\y" GSYGSN/ GSZQGSGS9P\y" GS[S\-GSGS9P\y" GS\S\-GSGS9P\y" GS]S\-GSGS9P\y" GS^S\-GSGS9P\y" GS_GS\:GSGS9P\y" GS`GS\:GSGS9P\y" GSaGSG\:GSGS9P\y" GSbGS\:GSGS9P\y" GScGS\:GSGS9P\y" GSdGS\:GSGS9P\y" GSeGS\JGSGS9P\y" GSfGS\EGSGS9P\y" GSmGSV\PGSGS9P\y" GSnGS/ GSXQGSGS9P\y" GSgS\-GSGS9P\y" GSjS\-GSGS9P\y" GSkS\-GSGS9P\y" GShS\-GSGS9P\y" GSiS\-GSGS9P\y" GSlGS-\iGSGS9P\y" GSoGS/ GSpQGSGS9P\z" GS5      P\y" GSqGS\JGSGS9P\y" GSrGS\[GSGS9P\y" GSsGSG\:GSGS9P\y" GStGS\:GSGS9P\y" GSuS\KGSGS9P\y" GSvS\\GSGS9P\y" GSwS\;GSGS9P\y" GSxS\;GSGS9P\y" GSyS\KGSGS9P\y" GSzS\\GSGS9P\y" GS{S\;GSGS9P\y" GS|S\;GSGS9P\z" GS5      P\y" SaGS\oGS9P\y" GS8S\-GSGS9P\y" GS9GSG\;GSGS9P\y" GSBGS\EGSGS9P\y" GSCGS\EGSGS9P\y" GS:S\;GSGS9P\y" GS0S\-GSGS9P\y" GS7S\-GSGS9P\y" GS1GS\6GSGS9P\y" GS2GS\6GSGS9P\y" GS6GS\:GSGS9P\y" GS3GSV\PGS9P\y" GS5S;\IGS9P\y" GS4S\OGSGS9P\y" GS;GS\:GSGS9P\y" GS<GS\:GSGS9P\y" GS=GS\:GSGS9P\y" GS>GS\:GSGS9P\y" GS?GSG\:GSGS9P\y" GS@GS\:GSGS9P\y" GSAGS\:GSGS9P\z" GS5      P\y" GS}GSP\PGSGS9P\y" GS~GS$\RGSGS9P\y" GSGSP\PGSGS9P\y" GSGS$\RGSGS9P\y" GSGSGS/\)" \:SS 9GSGS9P\y" GSGS\:GSGS9P\y" GSGSD\JGSGS9P\y" GSGSD\JGSGS9P\y" GSS\-GSGS9P\y" GSGS\6GSGS9P\y" GSS\-GSGS9P\y" GSGS\:GSGS9P\y" GSGS\:GSGS9P\y" GSGS\:GSGS9P\y" GSGS\:GSGS9P\y" GSGS~\:GSGS9P\y" GSGS~\:GSGS9P\y" GSS\-GSGS9P\y" GSS\-GSGS9P\y" GSGS\:GSGS9P\y" GSGS\:GSGS9P\y" GSGS\:GSGS9P\y" GSGS\:GSGS9P\z" GS5      P\y" SGS\NGS GS9P\y" SGS-\2GSGS9P\y" SGS-/ SQGSGS9P\y" SGS\MGSGS9P\y" SGS\6GSGS9P\y" SSSS/GSGS9P\y" SS\-GS9P\y" SS\-GSGS9P\z" GS5      P\y" SGS	\[GS
GS9P\y" SS\-GSGS9P\y" SS\;GSGS9P\y" SGS/ SQGSGS9P\z" GS5      P\y" SGS\:GSGS9P\y" SS\;GSGS9P\y" SS\;GSGS9P\z" GS5      P\y" SGS\qGSGS9P\z" GS5      P\y" GS"GS\=GSGS9P\y" GS#GS\2GSGS9P\z" GS5      P\y" GSS\6GSGS9P\z" GS5      P\y" GSS\-GSGS9P\y" GSGS\dGS GS9P\y" GSS\-GS!GS9P\y" GSS\bGS"GS9P\y" GS/ \+GS9P\z" GS#5      P\y" GSGS\/GS$GS9P\y" GSGS-\FGS%GS9P\y" GSGS-\FGS&GS9P\y" GSGS'\2GS(GS9P\y" GSS\aGS)GS9P\y" GSGS*\:GS+GS9P\y" GSGS,\?GS-GS9P\y" GSS\-GS.GS9P\y" GSGSGSGS/GS/GS9P\{" GS05      P\y" GSGS1/ GSQGS2GS9P\{" GS35      P\y" GSS\-GS4GS9P\{" GS55      P\y" GSGS\s" GSGSGSGS/GS V Vs/ s H  n \u" GS5        H  o U 3PM
     M     snn Q5      GS6GS9P\y" GSS\-GS7GS9P\y" GSS\WGS8GS9P\y" GSGS9\6GS:GS9P\y" GSGS;\@GS<GS9P\{" GS=5      P\y" GSGS^\6GS>GS9P\y" GSGS;\@GS<GS9P\y" GSS\-GS9P\y" GSS\-GS9P\{" GS?5      P\y" GSS\-GS@GS9P\y" GSGSS<GS/GSAGS9P\y" GSS\3GSBGS9P\y" GSS\3GSCGS9P\{" GSD5      P\y" GSS\-GS9P\y" GSS>\2GSEGS9P\y" GSGSF/ GSQGS9P\{" GSG5      P\y" GSS\-GSHGS9P\z" GSIGSJGS9P\y" GSGSKGSL/\4GSMGS9P\y" GS/ GSNQ\4GSOGS9P\y" GS/ GSPQ\4GSQGS9P\y" GS/ GSRQ\4GSSGS9P\y" GSGST/\4GSUGS9P\y" GSGS/\4GSVGS9P\y" GSGSWGSX/\4GSYGS9P\y" GSGSZ/\4GS[GS9P\y" GS/ GS\Q\4GS]GS9P\y" GS/ \4GS^GS9P\y" GSGS_/\4GS`GS9P\y" GSGSa/\4GSbGS9P\y" GSGSc/\4GSdGS9P\y" GSGSeGSf/\4GSgGS9P\y" GSGShGSi/\4GSjGS9P\z" GSk5      P\y" GSS</ GSQGSlGS9P\y" GSGSm\2GSnGS9P\y" GSGSo\2GSpGS9P\y" GSGSq\6GSrGS9P\y" GSGS'/ GSQGSsGS9P\y" GSGSm\?GStGS9P\y" GS/ \4GSuGS9P\y" GSGSv\?GSwGS9P\y" GSGSxGSy/\4GSzGS9P\y" GSGS{\:GS|GS9P\y" GSS\-GS9P\y" SiS\C5      Pr|GS} r}gs  snn f s  snnf s  snn f (  a  
The rcsetup module contains the validation code for customization using
Matplotlib's rc settings.

Each rc setting is assigned a function used to validate any attempted changes
to that setting.  The validation functions are defined in the rcsetup module,
and are used to construct the rcParams global object which stores the settings
and is referenced throughout Matplotlib.

The default values of the rc settings are set in the default matplotlibrc file.
Any additions or deletions to the parameter set listed here should also be
propagated to the :file:`lib/matplotlib/mpl-data/matplotlibrc` in Matplotlib's
root source directory. New rcparams also need to be added to the RcKeyType enum
in :file:`lib/matplotlib/typing.py`.
    N)	dataclass)	lru_cachereduce)Real)Any)Callable)_apicbook)backend_registry)	ls_mapper)Colormapis_color_likeparse_fontconfig_pattern)	JoinStyleCapStyle)Cyclerconcatcyclerc                   >    \ rS rSrS
SS.S jjrS rS rS rS rS	r	g)ValidateInStrings*   N)_deprecated_sincec                ~   ^ Xl         TU l        X@l        U4S jnU Vs0 s H  oe" U5      U_M     snU l        gs  snf )z#*valid* is a list of legal strings.c                 6   > T(       a  U R                  5       $ U $ N)lower)s
ignorecases    L/home/wildlama/miniconda3/lib/python3.13/site-packages/matplotlib/rcsetup.pyfunc(ValidateInStrings.__init__.<locals>.func2   s    wwy     N)keyr   r   valid)selfr$   r%   r   r   r!   ks      `   r    __init__ValidateInStrings.__init__+   s?     $!2	
 +00%Qd1gqj%0
0s   :c                   ^  T R                   (       aD  U 4S j[        5       R                  5        5       u  n[        R                  " T R                   USS9  T R
                  (       a%  [        U[        5      (       a  UR                  5       nUT R                  ;   a  T R                  U   $ U< ST R                   S/ T R                  R                  5       Q 3n[        U[        5      (       ap  UR                  S5      (       a  UR                  S5      (       d,  UR                  S5      (       a.  UR                  S5      (       a  USS	 T R                  ;   a  US
-  n[        U5      e)Nc              3   :   >#    U  H  u  pUTL d  M  Uv   M     g 7fr    ).0r'   vr&   s      r    	<genexpr>-ValidateInStrings.__call__.<locals>.<genexpr>;   s     B#441T	QQ#4s   	function)nameobj_typez is not a valid value for z; supported values are "'   z'; remove quotes surrounding your string)r   globalsitemsr	   warn_deprecatedr   
isinstancestrr   r%   r$   values
startswithendswith
ValueError)r&   r   r2   msgs   `   r    __call__ValidateInStrings.__call__9   s   !!B79??#4BED  &&TJH??z!S11	A

?::a= 0
 ;,

))+,-/q#\\#&&1::c??S))ajjooaGtzz)<<Cor#   c                     U R                   R                   SU R                  < S/ U R                  R	                  5       Q SU R
                   S3$ )Nz(key=z, valid=z, ignorecase=))	__class____name__r$   r%   r=   r   r&   s    r    __repr__ValidateInStrings.__repr__K   sV    >>**+ ,xxl(+ATZZ->->-@+A*B C"oo.a1 	2r#   c           
      |   XL a  g[        U[        5      (       d  [        $ U R                  U R                  U R
                  [        [        U R                  R                  5       5      5      4UR                  UR                  UR
                  [        [        UR                  R                  5       5      5      4:H  $ )NT)
r;   r   NotImplementedr$   r   r   tuplesortedr%   r9   )r&   others     r    __eq__ValidateInStrings.__eq__P   s    =%!233!!HHOO""&))+,-	
 II##&**,-.	


 
	
r#   c                     [        U R                  U R                  U R                  [	        [        U R                  R                  5       5      5      45      $ r   )hashr$   r   r   rM   rN   r%   r9   rH   s    r    __hash__ValidateInStrings.__hash__a   sE    HHOO""&))+,-	
  	r#   )r   r   r$   r%   F)
rG   
__module____qualname____firstlineno__r(   rB   rI   rP   rT   __static_attributes__r,   r#   r    r   r   *   s#    1#'1$2

"r#   r   c                     [         R                  U    nU$ ! [         ad     U  Vs/ s H/  o3R                  5       (       d  M  U" UR                  5       5      PM1     Os  snf nn U$ ! [         a    [	        U < S35      ef = ff = f)z
Convert the string *s* to a list of colors interpreting it either as a
color sequence name, or a string containing single-letter colors.
zO is neither a color sequence name nor can it be interpreted as a list of colors)mplcolor_sequencesKeyErrorstripr@   )r   scalar_validatorcolorsr.   s       r    _single_string_color_listrb   j   s    
	F$$Q' M  F	F <=J1a	1&qwwy11JFJF
 M	  	Fu %E E F F	FFs+    
BA'AAA''BBF)ndocc                @  ^ ^^ UUU 4S jn T R                    S3Ul         UR                  R	                  SS5      S   S-   UR                   -   Ul        Ub  X4l        U$ T R
                  Ul        U$ ! [         a     [        T 5      R                    S3Ul          N{f = f)Nc                 ~  > [        U [        5      (       aN   U R                  S5       Vs/ s H0  nUR                  5       (       d  M  T" UR                  5       5      PM2     nnO{[        R                  " U 5      (       aR  [        U [        [        45      (       d7  U  Vs/ s H)  n[        U[        5      (       a	  U(       d  M!  T" U5      PM+     nnO[        SU  35      eTb,  [        U5      T:w  a  [        ST S[        U5       SU  35      eU$ s  snf ! [         a    T(       a  [        U T5      n NUe f = fs  snf )N,z0Expected str or other non-set iterable, but got z	Expected z values, but there are z values in )r;   r<   splitr_   	Exceptionrb   npiterableset	frozensetr@   len)r   r.   valallow_stringlistrc   r`   s      r    f_listify_validator.<locals>.f   s+   a<=GGCL %Lq'') 3'	2L % [[^^Jq3	2B$C$C
 12 31$Q,, '#A&C 3C B1#FH H=SX]A35c#hZ{1#NP P
/% #3A7GHC3s4   D DD"D  D:D:D D75D7listList.r6   r   )rG   AttributeErrortyperX   rsplit__doc__)r`   rp   rc   rd   rq   s   ```  r    _listify_validatorrz   }   s    8>(112$7
 ^^**3215;ajjHANIH -=,D,DAIH	  >-.778=
>s   A3 3'BBc                     U $ r   r,   r   s    r    validate_anyr}      s    Hr#   c                 n     [         R                  " U 5        U $ ! [         a    [        U < S35      ef = f)Nz: should be a string that can be parsed by numpy.datetime64)rj   
datetime64r@   r|   s    r    _validate_dater      sD    P
a PeMNP 	PPs    4c                     [        U [        5      (       a  U R                  5       n U S;   a  gU S;   a  g[        SU < S35      e)zConvert b to ``bool`` or raise.)tyyesontrue1r6   TT)rq   rc   noofffalse0r   FFzCannot convert z to boolr;   r<   r   r@   )bs    r    validate_boolr      sF    !SGGI99	
=	=?1%x899r#   c                      [        U 5      $ ! [         a     [        U [        5      (       a  U S:X  a   g Of = f[        U < S35      e)Nlinez0 cannot be interpreted as True, False, or "line")r   r@   r;   r<   r|   s    r    validate_axisbelowr      sV    Q aF{ u / / 0 0s   
 %77c                 v    U S:X  a  U $  [        U 5      $ ! [         a  n[        U < SU < S35      UeSnAff = f)z<Confirm s is string 'figure' or convert s to float or raise.figurez. is not string "figure" and could not convert z	 to floatNfloatr@   r   es     r    validate_dpir      sU    H}EQx EA5 !../U)= >CD	EEs   
 
838)
allow_nonec                   ^ ^ UU 4S jnST R                    3Ul         T(       a  U=R                   S-  sl         UR                  R                  SS5      S   S-   UR                   -   Ul        U$ )zd
Return a validator that converts inputs to *cls* or raises (and possibly
allows ``None`` as well).
c                   > T(       a\  U b  [         R                  " U S5      (       a=  [         R                  " U S5      (       a   U S:w  a  [        R                  " SSU < S3S9  g T[        L a%  [        U [        5      (       d  [        SU < S35      e T" U 5      $ ! [        [        4 a"  n[        SU < S	TR                   35      UeS nAff = f)
NnoneNonez3.11zUsing the capitalization z in matplotlibrc for *None* is deprecated in %(removal)s and will lead to an error from version 3.13 onward. Please use 'None' instead.)messagezCould not convert z to strz to )	r
   _str_lower_equalr	   r:   r<   r;   r@   	TypeErrorrG   )r   r   r   clss     r    	validator'_make_type_validator.<locals>.validator   s    e44Q??%%a00Q&[$$7u =' ' #:jC001!g>??	Eq6M:& 	E$QEcll^<>CDE	Es   B C,C		C	validate__or_Noneru   r6   r   )rG   rX   rx   )r   r   r   s   `` r    _make_type_validatorr      sk    E( %S\\N3Ij(%%c1-a0369K9KK r#   Tzreturn a list of strings)rd      rc   c                      [        U 5      $ ! [         a4  n [        U 5      s S nA$ ! [         a  n[        S5      UeS nAff = fS nAff = f)Nz#Supported markers are [string, int])validate_intr@   validate_stringr   s     r    _validate_markerr     sT    KA K	K"1%% 	KBCJ	KKs,   
 
A
(A
A>AAAzreturn a list of markersc                     [        U [        [        R                  45      (       a  [        R                  " U 5      $ [        U 5      $ r   )r;   r<   osPathLikefsdecoder   r|   s    r    _validate_pathliker     s3    !c2;;'(( {{1~q!!r#   c                 2   SSS.n [        U 5      nX!R                  5       ;  a%  [        S[        UR                  5       5      -  5      eU$ ! [         a@     XR	                  5          s $ ! [
         a  n[        S[        U5      -  5      UeSnAff = ff = f)zT
Confirm that this is a Postscript or PDF font type that we know how to
convert to.
   r   )type3truetypez*Supported Postscript/PDF font types are %sN)r   r=   r@   rs   r   r^   )r   	fonttypesfonttyper   s       r    validate_fonttyper     s    
 !I? ++--<Y%%'()* *   7	7WWY'' 	7I#I/ 0567	77s/   A 
BA+(B+
B5BBBc                     U [         L d  [        R                  " U 5      (       a  U $ SU  S[        R                  " 5        3n[	        U5      e)Nr5   z9' is not a valid value for backend; supported values are )_auto_backend_sentinelr   is_valid_backendlist_allr@   )r   rA   s     r    validate_backendr   5  sK    ""&6&G&G&J&J1#N"++-.0or#   c                 d    [        S/ SQSS9" U 5      n U S:X  a  [        R                  " S5        U $ )Ntoolbar)r   toolbar2toolmanagerTr   r   zyTreat the new Tool classes introduced in v1.5 as experimental for now; the API and rcParam may change in future versions.)r   r	   warn_externalr|   s    r    _validate_toolbarr   >  sB    64	IIJ	LAMJ	K Hr#   c                 T    [         R                  " U S5      (       a  U $ [        U 5      $ )Return a valid color arg.inheritr
   
_str_equalvalidate_colorr|   s    r    validate_color_or_inheritr   H  s%    9%%!r#   c                 T    [         R                  " U S5      (       a  U $ [        U 5      $ )Nautor   r|   s    r    validate_color_or_autor   O  %    6""!r#   c                 T    [         R                  " U S5      (       a  U $ [        U 5      $ )Nedger   r|   s    r    _validate_color_or_edger   U  r   r#   c                     [        U [        5      (       a,  [        R                  " SU 5      (       a  [	        SU < S35      e[        U 5      $ )Nz^C[0-9]$zCannot put cycle reference (z) in prop_cycler)r;   r<   rematchr@   r   r|   s    r    validate_color_for_prop_cycler   [  s@    !Sbhhz1557u<LMNN!r#   c                 ,   [         R                  " U S5      (       a  U $ [         R                  " U S5      (       d  [         R                  " U S5      (       a  g[         R                  " U S5      (       d  [         R                  " U S5      (       a  gU c  g [        U [        5      (       a  [	        U 5      S:X  d  [	        U 5      S:X  a-  SU -   n[        U5      (       a  U$ U R                  5       S	:X  a  g O[        U 5      (       a  U $ [        U < S
35      e)N	linecolormfcmarkerfacecolormecmarkeredgecolor      #r    does not look like a color arg)r
   r   r;   r<   rn   r   r   r@   )r   stmps     r    _validate_color_or_linecolorr   b  s    ;''			!U	#	#u'7'7;L'M'M 			!U	#	#u'7'7;L'M'M 	
	As		A!s1v{QwK779 	q		
u;<
==r#   c                    [        U [        5      (       aJ  U R                  5       S:X  a  g[        U 5      S:X  d  [        U 5      S:X  a  SU -   n[	        U5      (       a  U$ [	        U 5      (       a  U $  [
        R                  " U 5      n[	        U5      (       a  U$  [        U < S35      e! [        [        4 a     N!f = f)r   r   r   r   r   r   )	r;   r<   r   rn   r   astliteral_evalSyntaxErrorr@   )r   r   colors      r    r   r   w  s    !S779q6Q;#a&A+7DT""Q  # L   u;<
== $ s   3B+ +B>=B>c                 X    U b  [         R                  " U S5      (       a  g [        U 5      $ Nr   r   r|   s    r    _validate_color_or_Noner     s'    yE$$Q//!r#   zreturn a list of colorspecs)rp   rd   c                 D    [         R                  " [        [        4U S9  U $ )N)cmap)r	   check_isinstancer<   r   r|   s    r    _validate_cmapr     s    3/2Hr#   c                 f    U S;   a  U $  [        U 5      $ ! [         a  n[        S5      UeS nAff = f)N)r   equalz not a valid aspect specificationr   r   s     r    validate_aspectr     s?    DQx D;<!CDs   
 
0+0c                 ,    U b  U S:X  a  g [        U 5      $ r   )validate_fontsizer|   s    r    validate_fontsize_Noner     s    yAK ##r#   c                     / SQn[        U [        5      (       a  U R                  5       n X;   a  U $  [        U 5      $ ! [         a(  n[	        U < SSR                  U5      < S35      UeS nAff = f)N)	zxx-smallzx-smallsmallmediumlargezx-largezxx-largesmallerlargerz0 is not a valid font size. Valid font sizes are z, ru   )r;   r<   r   r   r@   join)r   	fontsizesr   s      r    r   r     sq    =I!SGGI~GQx G&'9)=? @EF	GGs   
= 
A/#A**A/c                 ~    / SQnX;   a  U $  [        U 5      $ ! [        [        4 a  n[        U  S35      UeS nAff = f)N)
ultralightlightnormalregularbookr   romansemibolddemibolddemiboldheavyz
extra boldblackz is not a valid font weight.intr@   r   )r   weightsr   s      r    validate_fontweightr    sQ    PG 	|D1v	" DA3:;<!CD   
 <7<c                 ~    / SQnX;   a  U $  [        U 5      $ ! [        [        4 a  n[        U  S35      UeS nAff = f)N)	zultra-condensedzextra-condensed	condensedzsemi-condensedr   zsemi-expandedexpandedzextra-expandedzultra-expandedz is not a valid font stretch.r
  )r   stretchvaluesr   s      r    validate_fontstretchr    sQ    M
 	E1v	" EA3;<=1DEr  c                     [        U 5        U $ r   r   r|   s    r    validate_font_propertiesr    s    QHr#   c                     / SQn[        U [        5      (       a  U R                  5       n U b  U S:X  a  g U R                  5       U;   a  U $ [        U  SSR	                  U5       S35      e)N)cmstixstixsansr   zB is not a valid fallback font name. Valid fallback font names are rg   z(. Passing 'None' will turn fallback off.)r;   r<   r   r@   r   )r   _fallback_fontss     r    _validate_mathtext_fallbackr    sp    0O!SGGIyAK	
o	%c /23 4 	r#   c                      [        [        SS9" U 5      $ ! [        [        4 a-     [	        U 5      s $ ! [         a  n[        S5      UeS nAff = ff = f)Nr   r   z1Not a valid whisker value [float, (float, float)])rz   validate_floatr   r@   r   r   s     r    validate_whiskersr    s`    7!.A6q99z" 7	78O 	7 / 0567	77s(    A
4A
AA

AAc                     [        U [        5      (       a  U R                  5       n U S;   a  g [        SSS/5      " U 5      $ )N)r   Nr   Fps.usedistillerghostscriptxpdf)r;   r<   r   r   r|   s    r    validate_ps_distillerr#    s>    !SGGI** !2]F4KLQOOr#   	linestyler   r     r   c                    [        U [        5      (       a   [        U 5      $ S nU" U 5      (       ai  [        U 5      S:X  a  U" U S   5      (       a  U u  p#OSnU n[        U[        5      (       a,  [        U5      S-  S:X  a  [        S U 5       5      (       a  X#4$ [        SU < S35      e! [         a     Of = f [        R
                  " U 5      n N! [        [        4 a     Nf = f)zZ
A validator for all possible line styles, the named ones *and*
the on-off ink sequences.
c                 |    [         R                  " U 5      =(       a     [        U [        [        [
        45      (       + $ r   )rj   rk   r;   r<   bytes	bytearray)xs    r    _is_iterable_not_string_like9_validate_linestyle.<locals>._is_iterable_not_string_like  s(     {{1~LjS%4K&L"LLr#   r   r6   r   c              3   B   #    U  H  n[        U[        5      v   M     g 7fr   r;   r   )r-   elems     r    r/   &_validate_linestyle.<locals>.<genexpr>*  s     A54
4..5   z
linestyle z$ is not a valid on-off ink sequence.)
r;   r<   _validate_named_linestyler@   r   r   r   rn   r   all)lsr,  offsetonoffs       r    _validate_linestyler8    s    
 "c	,R00M
 $B''r7a<8A??MFE FEvt$$JNa'A5AAA?"
z"'KL
MM5  			!!"%BZ( 		s#   
B+ +
B87B8<C C&%C&c                 X    U b  [         R                  " U S5      (       a  g [        U 5      $ r   )r
   r   r8  r|   s    r    _validate_linestyle_or_Noner:  0  s'    yE$$Q//q!!r#   zmarkers.fillstyle)fullleftrightbottomtopr   c           	         [        U [        [        [        [	        S5      45      (       a  U $ [        U [
        5      (       aJ  [        U 5      S:X  a0  [        S U  5       5      (       d  [        S U  5       5      (       a  U $ [        S5      e[        U [        5      (       a$  [        S U  5       5      (       a  U $ [        S5      e[        S5      e)	z
Validate the markevery property of a Line2D object.

Parameters
----------
s : None, int, (int, int), slice, float, (float, float), or list[int]

Returns
-------
None, int, (int, int), slice, float, (float, float), or list[int]
Nr   c              3   B   #    U  H  n[        U[        5      v   M     g 7fr   r;   r  r-   r   s     r    r/   %validate_markevery.<locals>.<genexpr>P  s     7QAs++Qr2  c              3   B   #    U  H  n[        U[        5      v   M     g 7fr   )r;   r   rC  s     r    r/   rD  Q  s     <!QJq%00!r2  z3'markevery' tuple must be pair of ints or of floatsc              3   B   #    U  H  n[        U[        5      v   M     g 7fr   rB  rC  s     r    r/   rD  X  s     -1az!S!!1r2  z3'markevery' list must have all elements of type intz!'markevery' is of an invalid type)
r;   slicer   r  rw   rM   rn   r4  r   rs   r|   s    r    validate_markeveryrH  >  s     !eUCd455!UFaK7Q777<!<<<HEG G !T-1---HEG G
7
88r#   c                     [        U [        5      (       a*  U R                  5       n U S:X  a  U $ U S:X  a  g [        S5      eU b  [        S5      eU $ )Ntightstandardz$bbox should be 'tight' or 'standard'r   r|   s    r    validate_bboxrL  c  sR    !SGGI<H
??@@	
?@@Hr#   c                 V   [        U [        5      (       aO  U R                  5       R                  5       n U R	                  S5      (       a  U R                  S5      (       a  U SS n U S:X  d  U c  g  [        [        [        SS9" U 5      5      $ ! [         a  n[        S5      UeS nAff = f)	N(rE   r6   r7   r   r   r   z,Expected a (scale, length, randomness) tuple)
r;   r<   r   r_   r>   r?   rM   rz   r  r@   )r   excs     r    validate_sketchrP  q  s    !SGGIOO<<C!BAF{aiR'!<Q?@@ RGHcQRs   0B 
B(B##B(c                 D    [        U 5      n U S:  a  U $ [        SU  35      e)Ng      zValue must be >-0.5; got r  RuntimeErrorr|   s    r    _validate_greaterthan_minushalfrT    s+    qA4x6qc:;;r#   c                 V    [        U 5      n SU s=::  a  S::  a   U $   [        SU  35      e)Nr   r6   zValue must be >=0 and <=1; got rR  r|   s    r    "_validate_greaterequal0_lessequal1rV    s6    qAA{{  <QC@AAr#   c                 D    [        U 5      n U S:  a  U $ [        SU  35      e)Nr   zValue must be >=0; got )r   rS  r|   s    r    _validate_int_greaterequal0rX    s*    QAAv4QC899r#   c                     [        U [        5      (       d  [        S5      e[        R                  " [        U S9  [        U 5      1 Sk-
  nU(       a  [        S[        U5      -  5      eU $ )z~
Validate a hatch pattern.
A hatch pattern string can have any sequence of the following
characters: ``\ / | - + * . x o O``.
zHatch pattern must be a string)hatch_pattern>
   *+-ru   /O\or+  |zUnknown hatch symbol(s): %s)r;   r<   r@   r	   r   rl   rs   )r   unknowns     r    validate_hatchrd    sY     a9::#Q/!fJJG6gFGGHr#   c                     [         R                  " U S5      (       a  U $  [        U 5      n U $ ! [        [        4 a     Of = f[	        S5      e)z
Validate ndiv parameter related to the minor ticks.
It controls the number of minor ticks to be placed between
two major ticks.
r   z5'tick.minor.ndivs' must be 'auto' or non-negative int)r
   r   rX  rS  r@   r   s    r    _validate_minor_tick_ndivsrf    sU     a(('**%  L
MMs   - A A r   )rp   	linewidth	facecolor	edgecolor	joinstylecapstyle	fillstyler   
markersizemarkeredgewidthr   	markeveryalphamarkerhatchdashes)	clwr5  fcecr   r   mewmsc                     U (       a  U(       a  [        S5      eU (       d  U(       d  [        S5      e[        U 5      S:X  a1  [        U S   [        5      (       d  [        S5      e[	        U S   5      $ [        U 5      S:X  a  U S   U S   4/nO@[        U 5      S:  a!  [
        R                  " SS[        U 5      5      eUR                  5       n/ nU H[  u  pE[        R                  XD5      n[        R                  US	5      nUc  [        S
U-  5      eU" U5      nUR                  Xe45        M]     [        [        R                  S U 5       5      $ )a  
Create a `~cycler.Cycler` object much like :func:`cycler.cycler`,
but includes input validation.

Call signatures::

  cycler(cycler)
  cycler(label=values, label2=values2, ...)
  cycler(label, values)

Form 1 copies a given `~cycler.Cycler` object.

Form 2 creates a `~cycler.Cycler` which cycles over one or more
properties simultaneously. If multiple properties are given, their
value lists must have the same length.

Form 3 creates a `~cycler.Cycler` for a single property. This form
exists for compatibility with the original cycler. Its use is
discouraged in favor of the kwarg form, i.e. ``cycler(label=values)``.

Parameters
----------
cycler : Cycler
    Copy constructor for Cycler.

label : str
    The property key. Must be a valid `.Artist` property.
    For example, 'color' or 'linestyle'. Aliases are allowed,
    such as 'c' for 'color' and 'lw' for 'linewidth'.

values : iterable
    Finite-length iterable of the property values. These values
    are validated and will raise a ValueError if invalid.

Returns
-------
Cycler
    A new :class:`~cycler.Cycler` for the given properties.

Examples
--------
Creating a cycler for a single property:

>>> c = cycler(color=['red', 'green', 'blue'])

Creating a cycler for simultaneously cycling over multiple properties
(e.g. red circle, green plus, blue cross):

>>> c = cycler(color=['red', 'green', 'blue'],
...            marker=['o', '+', 'x'])

zEcycler() can only accept positional OR keyword arguments -- not both.z2cycler() must have positional OR keyword argumentsr6   r   zDIf only one positional argument given, it must be a Cycler instance.r   r   z0-2NzUnknown artist property: %sc              3   <   #    U  H  u  p[        X5      v   M     g 7fr   )ccycler)r-   r'   r.   s      r    r/   cycler.<locals>.<genexpr>/  s      E9419s   )r   rn   r;   r   validate_cyclerr	   nargs_errorr9   _prop_aliasesget_prop_validatorsappendr   operatoradd)argskwargspairs	validatedpropvals	norm_propr   s           r    r   r     s8   j  1 2 	2&LMM
4yA~$q'6** 4 5 5tAw''	Taq'47#$	TQxD	::I
!%%d1	$((D9	9D@AA 	)*+  (,, E9 EFFr#   c                      [         R                  " U SS9n[	        UR
                  5      $ ! [         a  n[        SU < SU 35      UeSnAff = f)a8  
Parse a string representation of a cycler into a Cycler object safely,
without using eval().

Accepts expressions like::

    cycler('color', ['r', 'g', 'b'])
    cycler('color', 'rgb') + cycler('linewidth', [1, 2, 3])
    cycler(c='rgb', lw=[1, 2, 3])
    cycler('c', 'rgb') * cycler('linestyle', ['-', '--'])
eval)modezCould not parse z: N)r   parser   r@   _eval_cycler_exprbody)r   treer   s      r    _parse_cycler_stringr  2  sU    ?yy( TYY''  ?+A51#67Q>?s   , 
AA		Ac                 Z   [        U [        R                  5      (       a  [        U R                  5      n[        U R
                  5      n[        U R                  [        R                  5      (       a  X-   $ [        U R                  [        R                  5      (       a  X-  $ [        S[        U R                  5      R                   35      e[        U [        R                  5      (       a  [        U R                  [        R                  5      (       a  U R                  R                  S;   d  [        S5      eU R                  R                  S:X  a  [         O["        nU R$                   Vs/ s H  n[        U5      PM     nnU R&                   Vs0 s H"  ofR(                  [        UR*                  5      _M$     nnU" U0 UD6$ [        U [        R,                  5      (       a  U R.                  n[        U[        R0                  5      (       d  [        S5      e[/        UR2                  (       a   [        R4                  " UR2                  5      OSUR6                  (       a   [        R4                  " UR6                  5      OSUR8                  (       a   [        R4                  " UR8                  5      OS5      n	[        U R*                  5      n
X   $  [        R4                  " U 5      $ s  snf s  snf ! [        [:        4 a#    [        S[        R<                  " U 5       35      ef = f)z:Recursively evaluate an AST node to build a Cycler object.zUnsupported operator: )r   r   z8only the 'cycler()' and 'concat()' functions are allowedr   z'only slicing is supported, not indexingNz)Unsupported expression in cycler string: )r;   r   BinOpr  r<  r=  opAddMultr@   rw   rG   Callr!   Nameidr   cconcatr  keywordsargvalue	SubscriptrG  Slicer   r   upperstepr   dump)noder<  r=  r!   ar  kwr  slr   r  s              r    r  r  E  s@   $		"" +!$**-dggsww''<dggsxx((<1$tww-2H2H1IJKK$!!499chh//IILL$88JL L1vw.2ii8i!!$i8@DN"&&+BHH55NT$V$$$&&ZZ"cii((FGG*,((CRXX&*,((CRXX&)+CRWW%d

 "$**-xJ%%# 9N" 	" J77GHJ 	JJs   0K-)K2K7 73L*z
legend.loc)bestzupper rightz
upper leftz
lower leftzlower rightr=  zcenter leftzcenter rightzlower centerzupper centercenterc                    [        U [        5      (       a   [        U 5      $ [        U [        5      (       a  SU s=::  a  S::  a   U $   [        U [        5      (       a(  [        U 5      S:X  a  [        S U  5       5      (       a  U $ [        U  S35      e! [         a     Of = f [        R
                  " U 5      n N! [        [        4 a     Nf = f)a9  
Confirm that loc is a type which rc.Params["legend.loc"] supports.

.. versionadded:: 3.8

Parameters
----------
loc : str | int | (float, float) | str((float, float))
    The location of the legend.

Returns
-------
loc : str | int | (float, float) or raise ValueError exception
    The location of the legend.
r   
   r   c              3   B   #    U  H  n[        U[        5      v   M     g 7fr   r/  rC  s     r    r/   '_validate_legend_loc.<locals>.<genexpr>  s      BcAt!4!4cr2  z  is not a valid legend location.)r;   r<   _validate_named_legend_locr@   r   r   r   r  rM   rn   r4  )locs    r    _validate_legend_locr  w  s      #s	-c22 #s>r>J #us8q=S Bc BBBJ
u<=
>>  			""3'CZ( 		s#   
B 
B B $B; ;CCc                    [        U [        5      (       a   [        U 5      n [        U [
        5      (       a  U nO[	        SU < 35      eUR                  [        [        5      [        [        5      -  -
  nU(       a  [	        SU-  5      e[        5       nUR                   Hk  n[        R                  XU5      nXe:w  a#  XbR                  ;   a  [	        SU< SU< S35      eXd;   a  [	        SU< S	U< S
35      eUR                  U/5        Mm     [        U5      [        UR                  5      :X  d   eUR                   H)  n[        R                  XU5      nUR                  XV5        M+     UR                  5       R                  5        H  u  px[        U   " U5        M     U$ ! [         a  n[	        U < SU 35      UeSnAff = f)z?Return a Cycler object from a string repr or the object itself.z% is not a valid cycler construction: Nz+Object is not a string or Cycler instance: zUnknown artist properties: %szCannot specify both z and alias z in the same prop_cyclez(Another property was already aliased to z. Collision normalizing ru   )r;   r<   r  ri   r@   r   keysrl   r  r  r  updatern   
change_keyby_keyr9   )	r   r   cycler_instunknownscheckerr  r  r$   r  s	            r    r~  r~    s   !S	&$Q'A !VFqeLMM3'7#83};M#MNH88CDD eG  !%%d1	.>.>!>3I= $x'>@ A AG )},DTHAO P P	{# ! w<3{//0000   !%%d1	t/ ! !'')//1	d# 2 K  	&u$I!M $%&	&s   F$ $
G.G  Gc                     / SQn[        U [        5      (       a  X;   a  U $  [        U 5      $ ! [        [        4 a     Of = f [        U 5      $ ! [         a     Of = f[	        SU S35      e)N)r   sturgesfddoanescottricesqrtz'hist.bins' must be one of z , an int or a sequence of floats)r;   r<   r  r   r@   validate_floatlist)r   
valid_strss     r    validate_hist_binsr    s    LJ!Sao1vz" !!$$ 
2:, ?- - . .s    
- A A 
A 
AAc                       \ rS rSrSrSrg)_ignorecasei  zAA marker class indicating that a list-of-str is case-insensitive.r,   N)rG   rW   rX   rY   ry   rZ   r,   r#   r    r  r    s    Kr#   r  c                 d    [        U[        5      (       a  [        U[        5      n[        XUS9$ U$ )Nr   )r;   rs   r  r   )r$   convr   s      r    _convert_validator_specr    s-    $k2
 zBBr#   backendbackend_fallbackzfigure.hooksr   interactivetimezonezwebagg.portzwebagg.addresszwebagg.open_in_browserzwebagg.port_retrieszlines.linewidthzlines.linestylezlines.colorzlines.markerzlines.markerfacecolorzlines.markeredgecolorzlines.markeredgewidthzlines.markersizezlines.antialiasedzlines.dash_joinstylezlines.solid_joinstylezlines.dash_capstylezlines.solid_capstylezlines.dashed_patternzlines.dashdot_patternzlines.dotted_patternzlines.scale_dasheszpcolor.shading)r   flatnearestgouraudzpcolormesh.snapzpatch.linewidthzpatch.edgecolorzpatch.force_edgecolorzpatch.facecolorzpatch.antialiasedzhatch.colorzhatch.linewidthz	hist.binszboxplot.notchzboxplot.verticalzboxplot.whiskerszboxplot.bootstrapzboxplot.patchartistzboxplot.showmeanszboxplot.showcapszboxplot.showboxzboxplot.showflierszboxplot.meanlinezboxplot.flierprops.colorzboxplot.flierprops.markerz"boxplot.flierprops.markerfacecolorz"boxplot.flierprops.markeredgecolorz"boxplot.flierprops.markeredgewidthzboxplot.flierprops.markersizezboxplot.flierprops.linestylezboxplot.flierprops.linewidthzboxplot.boxprops.colorzboxplot.boxprops.linewidthzboxplot.boxprops.linestylezboxplot.whiskerprops.colorzboxplot.whiskerprops.linewidthzboxplot.whiskerprops.linestylezboxplot.capprops.colorzboxplot.capprops.linewidthzboxplot.capprops.linestylezboxplot.medianprops.colorzboxplot.medianprops.linewidthzboxplot.medianprops.linestylezboxplot.meanprops.colorzboxplot.meanprops.markerz!boxplot.meanprops.markerfacecolorz!boxplot.meanprops.markeredgecolorzboxplot.meanprops.markersizezboxplot.meanprops.linestylezboxplot.meanprops.linewidthzfont.enable_last_resortzfont.familyz
font.stylezfont.variantzfont.stretchzfont.weightz	font.sizez
font.serifzfont.sans-serifzfont.cursivezfont.fantasyzfont.monospacez
text.colorztext.usetexztext.latex.enginelatexzlatex+dvipngztext.latex.preambleztext.hinting)defaultno_autohintforce_autohint
no_hintingr   nativeeitherr   ztext.hinting_factorztext.kerning_factorztext.antialiasedztext.parse_mathztext.languagezmathtext.calzmathtext.rmzmathtext.ttzmathtext.itzmathtext.bfzmathtext.bfitzmathtext.sfzmathtext.fontset)
dejavusansdejavuserifr  r  r  customzmathtext.default)rmcalbfititttsfbfr  bbfrakscrr  r   zmathtext.fallbackzimage.aspectzimage.interpolationzimage.interpolation_stage)r   datargbaz
image.cmapz	image.lutzimage.originr  r   zimage.resamplezimage.composite_imagezcontour.negative_linestylezcontour.corner_maskzcontour.linewidthzcontour.algorithm)mpl2005mpl2014serialthreadedzerrorbar.capsizezerrorbar.capthickzerrorbar.elinewidthzxaxis.labellocation)r<  r  r=  zyaxis.labellocation)r>  r  r?  zaxes.axisbelowzaxes.facecolorzaxes.edgecolorzaxes.linewidthzaxes.spines.leftzaxes.spines.rightzaxes.spines.bottomzaxes.spines.topzaxes.titlesizezaxes.titlelocationzaxes.titleweightzaxes.titlecolorzaxes.titleyzaxes.titlepadz	axes.gridzaxes.grid.which)minorbothmajorzaxes.grid.axis)r+  r   r  zaxes.labelsizezaxes.labelpadzaxes.labelweightzaxes.labelcolorzaxes.formatter.limitszaxes.formatter.use_localezaxes.formatter.use_mathtextzaxes.formatter.min_exponentzaxes.formatter.useoffsetzaxes.formatter.offset_thresholdzaxes.unicode_minuszaxes.prop_cyclezaxes.autolimit_moder  round_numberszaxes.xmarginzaxes.ymarginzaxes.zmarginzpolaraxes.gridzaxes3d.gridzaxes3d.automarginzaxes3d.xaxis.panecolorzaxes3d.yaxis.panecolorzaxes3d.zaxis.panecolorzaxes3d.depthshadezaxes3d.depthshade_minalphazaxes3d.mouserotationstyle)azel	trackballspherearcballzaxes3d.trackballsizezaxes3d.trackballborderzaxes3d.snap_rotationzscatter.markerzscatter.edgecolorsz
date.epochzdate.autoformatter.yearzdate.autoformatter.monthzdate.autoformatter.dayzdate.autoformatter.hourzdate.autoformatter.minutezdate.autoformatter.secondzdate.autoformatter.microsecondzdate.converterr   concisezdate.interval_multipleszlegend.fancyboxzlegend.numpointszlegend.scatterpointszlegend.fontsizezlegend.title_fontsizezlegend.labelcolorzlegend.markerscalezlegend.shadowzlegend.frameonzlegend.framealphazlegend.linewidthzlegend.borderpadzlegend.labelspacingzlegend.handlelengthzlegend.handleheightzlegend.handletextpadzlegend.borderaxespadzlegend.columnspacingzlegend.facecolorzlegend.edgecolorz	xtick.topzxtick.bottomzxtick.labeltopzxtick.labelbottomzxtick.major.sizezxtick.minor.sizezxtick.major.widthzxtick.minor.widthzxtick.major.padzxtick.minor.padzxtick.colorzxtick.labelcolorzxtick.minor.visiblezxtick.minor.topzxtick.minor.bottomzxtick.major.topzxtick.major.bottomzxtick.minor.ndivszxtick.labelsizezxtick.direction)outininoutzxtick.alignment)r  r=  r<  z
ytick.leftzytick.rightzytick.labelleftzytick.labelrightzytick.major.sizezytick.minor.sizezytick.major.widthzytick.minor.widthzytick.major.padzytick.minor.padzytick.colorzytick.labelcolorzytick.minor.visiblezytick.minor.leftzytick.minor.rightzytick.major.leftzytick.major.rightzytick.minor.ndivszytick.labelsizezytick.directionzytick.alignment)r  r?  r>  baselinecenter_baselinez
grid.colorzgrid.linestylezgrid.linewidthz
grid.alphazgrid.major.colorzgrid.major.linestylezgrid.major.linewidthzgrid.major.alphazgrid.minor.colorzgrid.minor.linestylezgrid.minor.linewidthzgrid.minor.alphazfigure.titlesizezfigure.titleweightzfigure.labelsizezfigure.labelweightzfigure.figsizez
figure.dpizfigure.facecolorzfigure.edgecolorzfigure.frameonzfigure.autolayoutzfigure.max_open_warningzfigure.raise_windowzmacosx.window_mode)systemtabwindowzfigure.subplot.leftzfigure.subplot.rightzfigure.subplot.bottomzfigure.subplot.topzfigure.subplot.wspacezfigure.subplot.hspacezfigure.constrained_layout.usez figure.constrained_layout.hspacez figure.constrained_layout.wspacezfigure.constrained_layout.h_padzfigure.constrained_layout.w_padzsavefig.dpizsavefig.facecolorzsavefig.edgecolorzsavefig.orientation	landscapeportraitzsavefig.formatzsavefig.bboxzsavefig.pad_incheszsavefig.directoryzsavefig.transparentztk.window_focuszps.papersizer   letterlegalledgerab   z	ps.useafmr   zps.distiller.reszps.fonttypezpdf.compressionzpdf.inheritcolorzpdf.use14corefontszpdf.fonttypezpgf.texsystem)xelatexlualatexpdflatexzpgf.rcfontszpgf.preamblezsvg.image_inlinezsvg.fonttypepathzsvg.hashsaltzsvg.idzdocstring.hardcopyzpath.simplifyzpath.simplify_thresholdz	path.snapzpath.sketchzpath.effectszagg.path.chunksizezkeymap.fullscreenzkeymap.homezkeymap.backzkeymap.forwardz
keymap.panzkeymap.zoomzkeymap.savezkeymap.quitzkeymap.quit_allzkeymap.gridzkeymap.grid_minorzkeymap.yscalezkeymap.xscalezkeymap.helpzkeymap.copyzanimation.html)html5jshtmlr   zanimation.embed_limitzanimation.writerzanimation.codeczanimation.bitratezanimation.frame_format)
pngjpegtiffrawr  ppmsgibmppbmsvgzanimation.ffmpeg_pathzanimation.ffmpeg_argszanimation.convert_pathzanimation.convert_argsz_internal.classic_modec                   N    \ rS rSr% \\S'   \\S'   \\/\4   \S'   Sr\\S'   Sr	g)_Parami  r2   r  r   Ndescriptionr,   )
rG   rW   rX   rY   r<   __annotations__r   r   r  rZ   r,   r#   r    r  r    s'    
ILs
##Kr#   r  c                   .    \ rS rSr% \\S'   Sr\\S'   Srg)_Sectioni  titleNr  r,   rG   rW   rX   rY   r<   r  r  rZ   r,   r#   r    r  r        JKr#   r  c                   .    \ rS rSr% \\S'   Sr\\S'   Srg)_Subsectioni  r  Nr  r,   r  r,   r#   r    r  r    r  r#   r  Backendsi#  z9The port to use for the web server in the WebAgg backend.)r  r   r  z	127.0.0.1z?The address on which the WebAgg web server should be reachable.2   zqIf webagg.port is unavailable, a number of other random ports will be tried until one that is available is found.z9When True, open the web browser to the plot that is shownzIf you are running pyplot inside a GUI and your backend choice conflicts, we will automatically try to find a compatible one for you if backend_fallback is True)r  r   z/list of dotted.module.name:dotted.callable.namer   z{None, toolbar2, toolmanager}UTCz8a pytz timezone string, e.g., US/Central or Europe/ParisLineszFDefault properties for line objects, such as those returned by plot().)r  g      ?zline width in pointsr]  z
solid lineC0z,has no affect on plot(); see axes.prop_cyclezthe default markerzthe default marker face colorzthe default marker edge color      ?z'the line width around the marker symbolg      @zmarker size, in pointsroundz{miter, round, bevel}buttz{butt, round, projecting}
projectingz(render lines in antialiased (no jaggies)g@皙?z'The dash pattern for linestyle 'dashed')皙@r&  r"  r&  z(The dash pattern for linestyle 'dashdot'gffffff?z'The dash pattern for linestyle 'dotted'r;  z&{full, left, right, bottom, top, none}zWhether to snap the mesh to pixel boundaries. This is provided solely to allow old test images to remain unchanged. Set to False to obtain the previous behavior.Patcheszedge width in points.r	  zBy default, Patches and Collections do not draw edges. This value is only used if facecolor is "none" (an Artist without facecolor and edgecolor would be invisible)  or if patch.force_edgecolor is True.zBy default, Patches and Collections do not draw edges. Set this to True to draw edges with patch.edgedcolor as the default edgecolor. This is mainly relevant for styles.z*render patches in antialiased (no jaggies)Hatchesr   Boxplotra  C1C2^z--FontzThe font properties used by `.Text` See https://matplotlib.org/stable/api/font_manager_api.html for more information on font properties. The 6 font properties used for font matching are given below with their default values.
sans-serifr   g      $@)zDejaVu SerifzBitstream Vera SerifzComputer Modern RomanzNew Century SchoolbookzCentury Schoolbook LUtopiazITC BookmanBookmanzNimbus Roman No9 LzTimes New RomanTimesPalatinoCharterserif)zDejaVu SanszBitstream Vera SanszComputer Modern Sans SerifzLucida GrandeVerdanaGenevaLucidArial	HelveticazAvant Garder/  )	zApple ChanceryTextilezZapf ChancerySandz	Script MTFelipaz
Comic NeuezComic Sans MScursive)ChicagoCharcoalImpactWesternzxkcd scriptfantasy)
zDejaVu Sans MonozBitstream Vera Sans MonozComputer Modern TypewriterzAndale MonozNimbus Mono LzCourier NewCourierFixedTerminal	monospacezIf True, then Unicode Consortium's Last Resort font will be appended to all font selections. This ensures that there will always be a glyph displayed.zText propertieszThe language of the text in a format accepted by libraqm, namely `a BCP47 language code <https://www.w3.org/International/articles/language-tags/>`_. If None, then no particular language will be implied, and default font settings will be used.r  a  FreeType hinting flag ("foo" corresponds to FT_LOAD_FOO); may be one of the following (Proprietary Matplotlib-specific synonyms are given in parentheses, but their use is discouraged): - default: Use the font's native hinter if possible, else   FreeType's auto-hinter. ("either" is a synonym).- no_autohint: Use the font's native hinter if possible, else   don't hint. ("native" is a synonym.)- force_autohint: Use FreeType's auto-hinter. ("auto" is a   synonym.)- no_hinting: Disable hinting. ("none" is a synonym.)z([DEPRECATED] This setting has no effect.z[DEPRECATED] Specifies the scaling factor for kerning values. This is provided solely to allow old test images to remain unchanged. Set to 6 to obtain previous behavior. Values other than 0 or 6 have no defined meaning.zRIf True (default), the text will be antialiased. This only affects raster outputs.zBUse mathtext if there is an even number of unescaped dollar signs.zMathtext and LaTeXaB  use latex for all text handling. The following fonts are supported through the usual rc parameter settings: new century schoolbook, bookman, times, palatino, zapf chancery, charter, serif, sans-serif, helvetica, avant garde, courier, monospace, computer modern roman, computer modern sans serif, computer modern typewritera  The TeX engine/format to use.  The following values are supported:
- 'latex': The classic TeX engine (the current default).  All backends render TeX's output by parsing the DVI output into glyphs and boxes and emitting those one by one.
- 'latex+dvipng': The same as 'latex', with the exception that Agg-based backends rely on dvipng to rasterize TeX's output.  This value was the default up to Matplotlib 3.10.a  IMPROPER USE OF THIS FEATURE WILL LEAD TO LATEX FAILURES AND IS THEREFORE UNSUPPORTED. PLEASE DO NOT ASK FOR HELP IF THIS FEATURE DOES NOT DO WHAT YOU EXPECT IT TO. text.latex.preamble is a single line of LaTeX code that will be passed on to the LaTeX system. It may contain any code that is valid for the LaTeX "preamble", i.e. between the "\documentclass" and "\begin{document}" statements. Note that it has to be put on a single line, which may become quite long. The following packages are always loaded with usetex, so beware of package collisions:    color, fix-cm, geometry, graphicx, textcomp. PostScript (PSNFSS) font packages may also be loaded, depending on your font settings.r  zgShould be 'dejavusans' (default), 'dejavuserif', 'cm' (Computer Modern), 'stix', 'stixsans' or 'custom'z	sans:boldzsans:italic:boldr>  zsans:italicsansrG  r  zSelect fallback font from ['cm' (Computer Modern), 'stix', 'stixsans'] when a symbol cannot be found in one of the custom math fonts. Select 'None' to not perform fallback and replace the missing character by a dummy symbol.zThe default font to use for math. Can be any of the LaTeX font names, including the special name "regular" for the same font used in regular text.Axeswhitezaxes background colorzaxes edge colorg?zedge line widthzdisplay grid or notr  z#which axis the grid should apply tor  z(grid lines at {major, minor, both} ticksr  z-alignment of the title: {left, right, center}r   zfont size of the axes titlezfont weight of titlezGcolor of the axes title, auto falls back to text.color as default valuez8position title (axes relative units).  None implies autoz$pad between axes and title in pointsr   zfont size of the x and y labelsg      @zspace between label and axiszweight of the x and y labelsr   zrdraw axis gridlines and ticks: - below patches (True) - above patches but below lines ('line') - above all (False)r   zfuse scientific notation if log10 of the axis range is smaller than the first or larger than the secondz~When True, format tick labels according to the user's locale. For example, use ',' as a decimal separator in the fr_FR locale.z0When True, use mathtext for scientific notation.z1minimum exponent to format in scientific notationzIf True, the tick label formatter will default to labeling ticks relative to an offset when the data range is small compared to the minimum absolute value of the data.   zWhen useoffset is True, the offset will be used when it can remove at least this number of significant digits from tick labels.zdisplay axis spinesz{use Unicode for the minus symbol rather than hyphen. See https://en.wikipedia.org/wiki/Plus_and_minus_signs#Character_codes)
)g??g?)r"  ?g?)?g?rO  )g?g?g?)g?g?縷?)g?g?g?)g||||||?rM  gXXXXXX?)rN  rN  rN  )g?rP  g?)g?g?g?g?z$x margin.  See `~.axes.Axes.margins`z$y margin.  See `~.axes.Axes.margins`z$z margin.  See `~.axes.Axes.margins`zIf "data", use axes.xmargin and axes.ymargin as is. If "round_numbers", after application of margins, axis limits are further expanded to the nearest "round" number.z
Polar Axeszdisplay grid on polar axesz3D Axeszdisplay grid on 3D axesz=automatically add margin when manually setting 3D axis limits)ffffff?rQ  rQ        ?zbackground pane on 3D axes)?rS  rS  rR  )皙?rT  rT  rR  z depth shade for 3D scatter plotsg333333?z%minimum alpha value for depth shadingr  z{azel, trackball, sphere, arcball} See also https://matplotlib.org/stable/api/toolkits/mplot3d/view_angles.html#rotation-with-mousegMbX?z-trackball diameter, in units of the Axes bboxg?zYtrackball border width, in units of the Axes bbox (only for 'sphere' and 'arcball' style)Axisg      @z=Snap angle (in degrees) for 3D rotation when holding Control.z3alignment of the xaxis label: {left, right, center}z3alignment of the yaxis label: {bottom, top, center}DateszDefault properties for date tick labels. These are used by the `.AutoDateFormatter` when the appropriate time unit is detected.See https://matplotlib.org/stable/api/dates_api.html#date-formatters for more information.z%Yz%Y-%mz%Y-%m-%dz%m-%d %Hz%d %H:%Mz%H:%M:%Sz%M:%S.%fz1970-01-01T00:00:00zThe reference date for Matplotlib's internal date representation. See https://matplotlib.org/stable/gallery/ticks/date_precision_and_epochs.htmlz'auto', 'concise'z4For auto converter whether to use interval_multiplesTickszdraw ticks on the top sidezdraw ticks on the bottom sidezdraw label on the topzdraw label on the bottomg      @zmajor tick size in pointsg       @zminor tick size in pointszmajor tick width in pointsg333333?zminor tick width in pointsz&distance to major tick label in pointsg333333@z*distance to the minor tick label in pointszcolor of the ticksr   z4color of the tick labels or inherit from xtick.colorzfont size of the tick labelsr  zdirection: {in, out, inout}z#visibility of minor ticks on x-axiszdraw x axis top major tickszdraw x axis bottom major tickszdraw x axis top minor tickszdraw x axis bottom minor ticksz7number of minor ticks between the major ticks on x-axiszalignment of xtickszdraw ticks on the left sidezdraw ticks on the right sidez!draw tick labels on the left sidez"draw tick labels on the right sidez4color of the tick labels or inherit from ytick.colorz#visibility of minor ticks on y-axiszdraw y axis left major tickszdraw y axis right major tickszdraw y axis left minor tickszdraw y axis right minor ticksz7number of minor ticks between the major ticks on y-axisr  zalignment of yticksGridz#b0b0b0zb0b0b0"  # grid colorsolidz	in pointsz!transparency, between 0.0 and 1.0zIf None defaults to grid.colorz"If None defaults to grid.linestylez"If None defaults to grid.linewidthzIf None defaults to grid.alphaLegendr  z.if True, draw the legend on a background patchzlegend patch transparencyz*inherit from axes.facecolor; or color specz0.8zbackground patch boundary colorzGline width of the legend frame, None means inherit from patch.linewidthzFif True, use a rounded box for the legend background, else a rectanglez(if True, give background a shadow effectr6   z.the number of marker points in the legend lineznumber of scatter pointsz0the relative size of legend markers vs. originalz*None sets to the same as the default axes.g?zborder whitespacerR  z-the vertical space between the legend entrieszthe length of the legend linesgffffff?zthe height of the legend handlez1the space between the legend line and legend textz+the border between the axes and legend edgezcolumn separationFigurez0size of the figure title (``Figure.suptitle()``)zweight of the figure titlez5size of the figure label (``Figure.sup[x|y]label()``)zweight of the figure labelr'  g333333@zfigure size in inchesg      Y@zfigure dots per inchzfigure face colorzfigure edge colorzenable figure frame   zThe maximum number of figures to open through the pyplot interface before emitting a warning. If less than one this feature is disabled.zRaise the GUI window to front when show() is called. If set to False, we currently do not take any further actions and whether the window appears on the front may depend on the GUI framework and window manager.g      ?z+the left side of the subplots of the figurerS  z,the right side of the subplots of the figureg)\(?z(the bottom of the subplots of the figureg)\(?z%the top of the subplots of the figurezjthe amount of width reserved for space between subplots, expressed as a fraction of the average axis widthzlthe amount of height reserved for space between subplots, expressed as a fraction of the average axis heightzpWhen True, automatically adjust subplot parameters to make the plot fit the figure using `~.Figure.tight_layout`zpWhen True, automatically make plot elements fit on the figure. (Not compatible with "figure.autolayout", above).gr.U?zGPadding (in inches) around axes; defaults to 3/72 inches, i.e. 3 pointsg{Gz?zSpacing between subplots, relative to the subplot sizes.  Much smaller than for tight_layout (figure.subplot.hspace, figure.subplot.wspace) as constrained_layout already takes surrounding texts (titles, labels, # ticklabels) into account.Imagesr   z{equal, auto} or a numberzsee help(imshow) for optionsviridisz%A colormap name (plasma, magma, etc.)   z%the size of the colormap lookup tablez{lower, upper}zWhen True, all the images on a set of axes are combined into a single composite image before saving a figure as a vector graphics file, such as a PDF.zContour plotsdashedzstring or on-off ink sequencez{True, False}za{float, None} Size of the contour line widths. If set to None, it falls back to "line.linewidth".r  z${mpl2005, mpl2014, serial, threaded}zErrorbar plotsg        z)length of end cap on error bars in pixelsz-thickness of end cap on error bars in points.z,line width of the error bar lines in points.zHistogram plotsr  z/The default number of histogram bins or 'auto'.zScatter plotsz*The default marker type for scatter plots.facez*The default edge colors for scatter plots.zAGG renderinga  0 to disable; values in the range 10000 to 100000 can improve speed slightly and prevent an Agg rendering failure when plotting very large data sets, especially if they are very gappy. It may cause minor artifacts, though. A value of 20000 is probably a good starting point.PathsziWhen True, simplify paths by removing "invisible" points to reduce file size and increase rendering speedg֧qq?z_The threshold of similarity below which vertices will be removed in the simplification process.zWhen True, rectilinear axis-aligned paths will be snapped to the nearest pixel when certain criteria are met. When False, paths will never be snapped.a%  May be None, or a tuple of the form:path.sketch: (scale, length, randomness)- *scale* is the amplitude of the wiggle perpendicular to the line  (in pixels).- *length* is the length of the wiggle along the line (in pixels).- *randomness* is the factor by which the length is  randomly   scaled.zSaving figuresz figure dots per inch or 'figure'zfigure face color when savingzfigure edge color when savingr	  z{png, ps, pdf, svg}zN{tight, standard} 'tight' is incompatible with generating frames for animationg?z/padding to be used, when bbox is set to 'tight'~zdefault directory in savefig dialog, gets updated after interactive saves, unless set to the empty string (i.e. the current directory); use '.' to start at the current directory but update after interactive saveszBwhether figures are saved with a transparent background by defaultz7orientation of saved figure, for PostScript output onlyzMac OSX backend parametersr  zVHow to open new figures (system, tab, window) system uses the MacOS system preferenceszTk backend parameterszMaintain shell focus for TkAggzPS backend parametersz/{figure, letter, legal, ledger, A0-A10, B0-B10}z%use AFM fonts, results in small filesz{ghostscript, xpdf, None} Experimental: may produce smaller files. xpdf intended for production of publication quality files, but requires ghostscript, xpdf and ps2epsip  dpir   z+Output Type 3 (Type3) or Type 42 (TrueType)zPDF backend parametersz?integer from 0 to 9 0 disables compression (good for debugging)zSVG backend parametersz2Write raster image data directly into the SVG filezHow to handle SVG fonts: path: Embed characters as paths -- supported by most SVG       renderersnone: Assume fonts are installed on the machine where the SVG will be viewed.z:If not None, use this string as hash salt instead of uuid4zUIf not None, use this string as the value for the `id` attribute in the top <svg> tagzPGF parametersz)See text.latex.preamble for documentationr  zDocstring parametersz5set this when you want to generate hardcopy docstringzInteractive keymapszODefault key mappings for interactive navigation. See :ref:`key-event-handling`.rq   zctrl+ftoggling)hrhomezhome or reset mnemonic)r<  rt  	backspacezMouseButton.BACKzforward / backward keys)r=  r.   zMouseButton.FORWARDzfor quick navigationpzpan mnemoniczzoom mnemonicr   zctrl+szsaving current figuref1zdisplay help about active tools)zctrl+wzcmd+wqzclose the current figurezclose all figuresgz,switching on/off major grids in current axesGz,switching on/off minor grids in current axeslz)toggle scaling of y-axes ('log'/'linear')r'   Lz)toggle scaling of x-axes ('log'/'linear')zctrl+czcmd+czcopy figure to clipboard	AnimationzHow to display the animation as HTML in the IPython notebook: - 'html5' uses HTML5 video tag - 'jshtml' creates a JavaScript animationffmpegzMovieWriter 'backend' to useh264zCodec to use for writing movier7   zPControls size/quality trade-off for movie. -1 implies let utility auto-determinez(Controls frame format used by temp fileszKPath to ffmpeg binary.  Unqualified paths are resolved by subprocess.Popen.z&Additional arguments to pass to ffmpegconvertzPath to ImageMagick's convert binary.  Unqualified paths are resolved by subprocess.Popen, except that on Windows, we look up an install of ImageMagick in the registry (as convert is also the name of a system tool).z-layersOptimizePlusz'Additional arguments to pass to convertg      4@zQLimit, in MB, of size of base64 encoded animation in HTML (i.e. IPython notebook)c                  h    [          V s/ s H  n [        U [        5      (       d  M  U PM     sn $ s  sn f r   )_DEFINITIONr;   r  )r0  s    r    _params_listrx  d  s#    (E[TJtV,DD[EEEs   //rV   )~ry   r   dataclassesr   	functoolsr   r   numbersr   r  r   r   typingr   collections.abcr   numpyrj   
matplotlibr\   r	   r
   matplotlib.backendsr   matplotlib.cbookr   matplotlib.colorsr   r   matplotlib._fontconfig_patternr   matplotlib._enumsr   r   r   r   r   r  r|  r   rb   rz   r}   validate_anylistr   r   r   r   r   r<   r   validate_string_or_Nonevalidate_stringlistr  r   validate_int_or_Nonevalidate_intlistr   r  validate_float_or_Noner  r   _validate_markerlistr   r   objectr   r   r   r   r   r   r   r   r   r   validate_colorlistr   r   r   r   validate_fontsizelistr  r  r  r  r  r#  r  r=   r3  r8  r:  validate_fillstylevalidate_fillstylelistrH  validate_markeverylistrL  rP  rT  rV  rX  rd  validate_hatchlistvalidate_dashlistrf  r  r  r  r  r  r  r~  r  rs   r  r  range_validators_hardcoded_defaultsr9   r  r  r  rw  rx  )r  ir'   r  s   0000r    <module>r     sB  "  ! '   	 	  $   " 0 & 5 C 1 @ ?= =@& $4$ $N%l3 P	:0E -2 D 's+.stD (35 #C(+CDA %la8 %e,-eE ' K *46 ".   >*>2 (T/LN 
D$G ++<= 
DE
7P .EinnE))+EVEVESE"E "NJ" 'KM  ,,>? 9D ,,>? R<B: (7 &'9: N$#$A59; 	' 	'(;<	
 	' 	' 	'	2 	&x0 	+ 	- 	( 	- 	- 	+ 	#  	&!" 	##$ 	#% *    
RGj(&$JP /
  ?D*Z. L$ L\)\\ ,\ *	\
 \ \ l\ o\ m\ l\ ^\ 0\  ^!\" -#\$ 3%\& 3'\( ^)\* ^+\, ]-\. Y/\0 Y1\2 X3\4 X5\6 /7\8 /9\: /;\< ]=\B +C\H <I\J }K\P ^Q\R ^S\T ]U\V ^W\X ]Y\^ ._\` ~a\f #g\l =m\n =o\p ,q\r /s\t =u\v =w\x =y\z ={\| =}\~ =\B .C\D  *:E\F )*@G\H ).I\J ).K\L $.M\N #*=O\P #.Q\T .U\V !.W\X !"5Y\\ !n]\^ %n_\` %&9a\d .e\f !.g\h !"5i\l  ^m\n $^o\p $%8q\t u\v )9w\x (y\z ({\| #}\~ ")<\@ "A\F =G\H *I\J K\L M\N +O\P *Q\R ~S\T *U\V *W\X *Y\Z *[\\ *]\b >c\d =e\f G^4g\h ?i\j  Nk\n /o\p /q\r =s\t =u\v 2w\z 7{\| 7}\~ 7\@ 7A\B 7C\D 7E\F 7G\H   6I\L   JM\P :Q\T U\V W\X  !9Y\Z [\\ ]\^ '7!3_\` a\f ]g\l !"5m\n -o\p "8q\r "Ns\x y\z /{\| 1}\D 6E\F 6G\L /M\N ^O\P ^Q\R ^S\V ]W\X ]Y\Z ][\\ ]]\` +a\b 5c\d -e\f 0g\j 0k\n .o\p -q\r 4s\t ,u\v +w\x .y\z -{\| .}\B -C\F  G\H "=I\L "<M\N O\P &|Q\R -S\X Y\^ FO4_\` 3a\b 3c\d 3e\h i\j k\l m\r s\t u\v w\z {\| !.}\@  !KA\B NC\D nE\F NG\L *M\N /O\R .S\T oU\V oW\X oY\Z o[\\  o]\^  o_\` %oa\d 	2e\h }i\n }o\p &q\v \w\z \{\| .}\~ 3\B 9C\F ^G\J ]K\N ]O\R 3S\V .W\\ ^]\` ^a\d ^e\h ^i\l ^m\p ^q\t ^u\v 6w\x 6y\~ =\@	 =A	\B	 =C	\D	 =E	\F	 >G	\H	 >I	\J	 >K	\L	 >M	\N	 >O	\P	 >Q	\R	 >S	\T	 4U	\V	 =W	\X	 =Y	\Z	 =[	\\	 =]	\^	 =_	\b	 5c	\d	 ,e	\f	 1g	\h	 6i	\l	 =m	\n	 =o	\p	 =q	\r	 =s	\t	 >u	\v	 >w	\x	 >y	\z	 >{	\|	 >}	\~	 >	\@
 >A
\B
 4C
\D
 =E
\F
 =G
\H
 =I
\J
 =K
\L
 =M
\P
 5Q
\R
 ,S
\T
 1U
\V
  BW
\\
 ]
\^
 ,_
\`
 a
\b
 c
\f
 6g
\h
 :i
\j
 5k
\l
 5m
\p
 6q
\r
 :s
\t
 5u
\v
 5w
\~
 +
\@ -A\F +G\H -I\N 1.AFO\P ~Q\R ~S\T ~U\V }W\X }Y\Z |[\\ }]\^ :_\b ^c\d ^e\f ^g\h ^i\j ^k\l ^m\p $]q\v 'w\x 'y\| &~}\~ &~\D LE\F 2G\H 2I\J [*5K\L OM\N MO\P NQ\T .U\V MW\Z }[\` +!)8Wh !R8<"P"eBiT!:i:"P!RSa\f -g\j /k\l ,m\n +o\p ,q\r -s\v -w\x +y\| 8}\~ ]\@ _A\F G\H VV$I\J +K\L %M\R -S\V }W\X AY\Z }[\\ ]\^ /_\` |a\f ,g\h ,i\j ,k\l ,m\n ,o\p ,q\r ,s\t ,u\v ,w\x ,y\z ,{\| ,}\~ ,\@ ,A\B ,C\H 9I\N nO\P oQ\R oS\T lU\X  ;Y\^ 0_\b 1c\f 0g\j 1k\v mw\@ e  *//13171 )!2213      
   $pZp
O	p !U	p J	p*  O	+p6 6	7pF GpP %E	Qp\ #3	]ph !N	ipt up~  *	pJ % 	KpV  B	Wpb "(	cpn (3	opz (3	{pF  =	GpR  ,	Sp^ +	_pj /	kpv +	wpB /	CpN >	OpZ c
$=	[pf $$>	gpr d$=	sp~ pH $<	IpT 8Up^ 7	_pn Yopp  +	qp|  }pF  	GpX E	Yph @	ipt Yupv =&"9:wpx c>2ypz Y{p| ?E=1}p~ t]3p@ s$56ApB &:;CpD  %7EpF }5GpH t]3IpJ dM2KpL }5MpN um4OpP %w?QpR &-=>SpT /9OPUpV /.IWpX /nEYpZ *C@[p\ )63FG]p^ )3?_p` #Wn=apb 'n=cpd '.ABepf '.Agph +S.Aipj +S2EFkpl #Wn=mpn 'n=opp '.ABqpr &n=spt *C@upv *C1DEwpx $dN;ypz %s,<={p| .nE}p~ .nEp@ )3?ApB ($0CDCpD (#~>EpF SGpT =<.*=>UpV <?3WpX >8_5YpZ =($78[p\ >8%9:]p^ ;n-_p` 
 &	apt 

 &upF	 
 &G	pV	 V%W	p`	 

 &a	pr	 !3	s	pB
 C
pD
  E
pN
 )2		O
pb
 
	Nc
pF &>	GpR &;	Spd .	epr X	sp@ !"ApB 1	
CpX N+-Ypt ! 	upV SM	Wpd =+'?@epf ?.0HIgph >9&>?ipj =-)ABkpl =&":;mpn =&":;opp =+'?@qpr -;	spD x!,EpR VSpT  +	Up`  %	apl  %	mpx )	ypD $9	EpP ,>	Qp\ -C	]ph #1	ipt %*	up@ (	ApN (N	OpZ  :	[pf #5	gpr  2	sp~ %2	pJ  KpT $*	Upf Q"?	gpt #W	upB %F	CpN %G	OpZ ">	[pj )	kpz )	{pF }5GpH dM2IpJ KpT Y	Upd 

 "epF 1:	GpR 1:	Sp^ 1:	_pj ?+F	kpz {p| 0	}pH 	IpJ -FKpT S	Up`  ' 0	apl  $ 0	mpx  * 0	ypD 6	EpP $ ;	Qp\ #<n	o]ph  C	ipt   4	upB VCpD  S	EpP -I	Qp\ -I	]ph ,ipx $dO<ypz %w@{p| #ZA}p~ $j/Bp@ &
ODApB &
ODCpD +ZIEpF % e	fGpR 9%'	Sp^ !J	_pj Wkpl 0	mpx 3	ypD +	EpP .	Qp\  /	]ph  /	ipt  0	up@  0	ApL  <	MpX  @	Ypd  (	epp +J	qp| #2	}pH (1	IpT 9	Up` 1	apl 4	mpx 1	ypD 4	EpP ,M	Qp\ -)	]ph 1	ipt 2	up@ 7	ApL 8	MpX  /	Ypd  /	epp  0	qp|  0	}pH  <	IpT  @	Up`  (	apl +J	mpx #2	ypD (1	EpP 9	Qp\ 2	]ph 3	ipt 2	up@  3	A pL  ,M	M pX  /E,Y p`  Va pb   +	c pn  %	o pz   	{ pF!  7	G!pR! )4	S!p^! -8	_!pj! (8	k!pv! (4	w!pB" )4	C"pN" -8	O"pZ" (8	["pf" (4	g"pr" Xs"pt" &u"p~" D	"pJ# (/	K#pV# +@	W#pb# +5	c#pn# (&	o#p|#  	}#pJ$ >	K$pV$ D	W$pb$ .	c$pn$  F	o$pz$ #{$pD% .E%pN% (@	O%pZ%  '	[%pf%  C	g%pr%  4	s%p~%  5	%pJ&  G	K&pV&  A	W&pb&  .Ac&pl& Xm&pn& #F	o&pz& %0	{&pF' #K	G'pR' %0	S'p^' c
$^q9+	_'pj'  .Dk'pt'  .Au'p~'  .A'pH( -BI(pR( !+	S(pb( *	c(pt(  A	u(p@)  B	A)pL)  >	M)pX)  ;	Y)pd)  H	e)pr)  I	s)p@* H	A*pN* 'H	O*p\* ) $	]*pj* ) $	k*px* * U	y*pJ+ * U	K+p\+ X]+p^+ !/	_+pj+ !2	k+pv+ #*2	w+pB,  ;	C,pN, ;	O,pZ, G$2B[,pd, e,pn, 4	o,p~, _,p@- $%3	A-pL- _M-pV- (6	W-pd- >:	e-pp- q-pr-  ?	s-p~- (C	E-pH. (B	I.pT. U.pV. $E	W.pb. _c.pd. "@	e.pp. !@	q.p|. _}.p~. +		.pR/ WS/pT/ D	U/pb/ !45	c/pp/ -	q/p@0 ! 	A0pX0 "Y0pb0 c0pd0 6	e0pp0 (3	q0p|0 (3	}0pH1 !/DI1pR1 $	S1p`1  E	a1pl1 $5	m1p~1 X	1pL2 
+M	M2pX2 ,-Y2pZ2 -3	[2ph2 '(i2pj2 4	k2pv2 '(w2px2 x( $(<Db%)QaSz)zD<

 F	y2pL3 ;	M3pX3 '@	Y3ph3 Ei3pr3 #A	s3p~3 ()3p@4 U	A4pL4 #A	M4pX4 Y4pb4 c4pl4 ()m4pn4 H	o4pz4 6"&		{4pN5 )P	O5pZ5 )+	[5ph5  !i5pj5 k5pt5 !?	u5p@6 5A6pJ6 &'K6pL6 K	M6pX6 1Y6pb6 h%	c6pn6 "%,	o6pz6 >%3L{6pD7 5%*	E7pP7 %>Q7pZ7 %?[7pd7 h%+	e7pp7 %5	q7p|7 (%.	}7pH8 %3FI8pR8 %B	S8p^8 %B	_8pj8 %?	k8pv8 c
%?	w8pB9 7#%.	C9pN9 [O9pP9 -@	Q9p`9 !2	a9pl9 !4	m9px9 -	y9pF: #UTAG:pN: $(	O:p\: %<	]:ph:  $.	i:pz:  N+%=	{:pF;  (	G;pT;  U;p^; 9d,-_;pf;FW? #Qf3L4 =s   9 Ag%Ag+\= Ag1