Ë
    7¾ªj%€  ã                  ó4  — d Z ddlmZ ddlmZ ddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddlmZ ddlmZ ddlmZ ddlmZ dd	lmZ dd
lmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddl m!Z!  ejD                  d«      Z#ejH                  dk(  rdZ%dZ&ndZ%dZ& G d„ dejN                  e#   «      Z( G d„ d«      Z)d,d„Z*	 d-	 	 	 d.d„Z+ejX                  d-d/d„«       Z-d0d„Z.ejX                  	 d-	 	 	 	 	 	 	 d1d „«       Z/ejX                  	 d-	 	 	 	 	 	 	 d1d!„«       Z0ejX                  	 d-	 	 	 	 	 d2d"„«       Z1 G d#„ d$«      Z2d3d4d%„Z3d5d&„Z4e
jj                  d'k(  rddl6Z6ejX                  d6d(„«       Z7d7d)„Z8yddl9Z9ddl:Z:ejX                  d6d*„«       Z7d7d+„Z8y)8z¿
This module contains implementations for the termui module. To keep the
import time of Click down, some infrequently used functionality is
placed in this module and only imported as needed.
é    )ÚannotationsN)Úgettext)ÚStringIO)ÚPath)ÚTracebackTypeé   )Ú_default_text_stdout)ÚCYGWIN)Úget_best_encoding)Úisatty)Ú
strip_ansi)Úterm_len)ÚWIN)ÚClickException)ÚechoÚVÚntúú
z[?25lz[?25h
c                  ó6  — e Zd Z	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd„Zdd„Z	 	 	 	 	 	 	 	 dd„Zdd„Zdd„Zdd„Ze	dd„«       Z
e	dd	„«       Ze	dd
„«       Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd d„Zdd„Zdd„Zy)!ÚProgressBarNc                óÈ  — || _         || _        || _        || _        || _        || _        |	| _        |
| _        || _        |xs d| _	        |€t        «       }|€
t        «       }|| _        || _        || _        d| _        || _        |dk(  | _        |€ddlm}  ||d«      }|dk(  rd }|€,|€t)        d«      ‚t+        j,                  dt/        |«      «      }t1        |«      | _        || _        d| _        g | _        |  |  t9        j8                  «       x| _        | _        d| _        d| _         d | _!        d| _"        d | _#        tI        | j                  «      | _%        d | _&        y )NÚ r   )Úlength_hintéÿÿÿÿziterable or length is requiredzcabc.Iterable[V]F)'Ú	fill_charÚ
empty_charÚbar_templateÚinfo_sepÚhiddenÚshow_etaÚshow_percentÚshow_posÚitem_show_funcÚlabelr	   r   ÚfileÚcolorÚupdate_min_stepsÚ_completed_intervalsÚwidthÚ	autowidthÚoperatorr   Ú	TypeErrorÚtÚcastÚrangeÚiterÚlengthÚposÚavgÚtimeÚstartÚlast_etaÚ	eta_knownÚfinishedÚ	max_widthÚenteredÚcurrent_itemr   Ú_is_attyÚ
_last_line)ÚselfÚiterabler2   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r*   r   s                     úQ/var/www/html/serviGia/entorno/lib/python3.12/site-packages/click/_termui_impl.pyÚ__init__zProgressBar.__init__,   s]  € ð& #ˆŒØ$ˆŒØ(ˆÔØ ˆŒØˆŒØ ˆŒØ(ˆÔØ ˆŒØ,ˆÔØš+ 2ˆŒ
àˆ<Ü'Ó)ˆDð ˆ|Ü“z�àˆŒ	ØˆŒ
Ø 0ˆÔØ$%ˆÔ!ØˆŒ
Ø$¨™zˆŒàˆ>Ý,á  ¨2Ó.ˆFà˜Š|Ø�ØÐØˆ~ÜÐ @ÓAÐAÜ—v‘vÐ0´%¸³-Ó@ˆHÜ&*¨8£nˆŒ	ØˆŒØˆŒØ "ˆŒÙÙÜ%)§Y¡Y£[Ð0ˆŒ
�T”]Ø$ˆŒØ#ˆŒØ%)ˆŒØ"ˆŒØ&*ˆÔÜ˜tŸy™yÓ)ˆŒØ&*ˆ�ó    c                ó4   — d| _         | j                  «        | S )NT)r;   Úrender_progress©r?   s    rA   Ú	__enter__zProgressBar.__enter__s   s   € ØˆŒØ×ÑÔØˆrC   c                ó$   — | j                  «        y ©N)Úrender_finish)r?   Úexc_typeÚ	exc_valueÚtbs       rA   Ú__exit__zProgressBar.__exit__x   s   € ð 	×ÑÕrC   c                óp   — | j                   st        d«      ‚| j                  «        | j                  «       S )Nú.You need to use progress bars in a with block.)r;   ÚRuntimeErrorrE   Ú	generatorrF   s    rA   Ú__iter__zProgressBar.__iter__€   s.   € Ø�|Š|ÜÐOÓPÐPØ×ÑÔØ�~‰~ÓÐrC   c                ó*   — t        t        | «      «      S rI   )Únextr1   rF   s    rA   Ú__next__zProgressBar.__next__†   s   € ô ”D˜“JÓÐrC   c                ó$  — | j                   r2| j                  | j                   «       d| _         | j                  «        | j                  s| j                  sy | j
                  j                  t        «       | j
                  j                  «        y )Nr   )	r)   Ú	make_steprE   r    r=   r&   ÚwriteÚ	AFTER_BARÚflushrF   s    rA   rJ   zProgressBar.render_finishŽ   sa   € ð ×$Ò$Ø�N‰N˜4×4Ñ4Ô5Ø()ˆDÔ%Ø× Ñ Ô"à�;Š;˜dŸmšmØØ�	‰	�‰œ	Ô"Ø�	‰	�‰ÕrC   c                ó„   — | j                   ryt        | j                  t        | j                  xs d«      xs dz  d«      S )Nç      ð?r   )r9   Úminr3   Úfloatr2   rF   s    rA   ÚpctzProgressBar.pctœ   s5   € à�=Š=ØÜ�4—8‘8œu T§[¡[Ò%5°AÓ6Ò;¸!Ñ<¸cÓBÐBrC   c                ó„   — | j                   syt        | j                   «      t        t        | j                   «      «      z  S ©Ng        )r4   Úsumr_   ÚlenrF   s    rA   Útime_per_iterationzProgressBar.time_per_iteration¢   s,   € à�xŠxØÜ�4—8‘8‹}œu¤S¨¯©£]Ó3Ñ3Ð3rC   c                ó€   — | j                   �2| j                  s&| j                  | j                   | j                  z
  z  S yrb   )r2   r9   re   r3   rF   s    rA   ÚetazProgressBar.eta¨   s3   € à�;‰;Ð"¨4¯=ª=Ø×*Ñ*¨d¯k©k¸D¿H¹HÑ.DÑEÐEØrC   c                óä   — | j                   rdt        | j                  «      }|dz  }|dz  }|dz  }|dz  }|dz  }|dz  }|dkD  rdj                  |t	        d«      |||¬«      S |d›d|d›d|d›�S y	)
Né<   é   r   z#{d}{day_label} {h:02}:{m:02}:{s:02}Úd)rk   Ú	day_labelÚhÚmÚsÚ02ú:r   )r8   Úintrg   ÚformatÚ_)r?   r.   ÚsecondsÚminutesÚhourss        rA   Ú
format_etazProgressBar.format_eta®   s¡   € Ø�>Š>Ü�D—H‘H“ˆAØ˜"‘fˆGØ�"‰HˆAØ˜"‘fˆGØ�"‰HˆAØ˜‘FˆEØ�"‰HˆAØ�1ŠuØ<×CÑCØÜ ›fØØØð Dó ð ð   ˜ 1 W¨R L°°'¸"°Ð>Ð>ØrC   c                ól   — t        | j                  «      }| j                  �|d| j                  › �z  }|S )Nú/)Ústrr3   r2   )r?   r3   s     rA   Ú
format_poszProgressBar.format_posÃ   s3   € Ü�$—(‘(‹mˆØ�;‰;Ð"Ø�Q�t—{‘{�mÐ$Ñ$ˆCØˆ
rC   c                ó@   — t        | j                  dz  «      d›d�dd  S )Néd   z 4ú%r   )rr   r`   rF   s    rA   Ú
format_pctzProgressBar.format_pctÉ   s&   € Ü�d—h‘h ‘nÓ% bÐ)¨Ð+¨A¨BÐ/Ð/rC   c                óF  — | j                   �Rt        | j                  | j                  z  «      }| j                  |z  }|| j
                  | j                  |z
  z  z  }|S | j                  r| j                  | j                  z  }|S t        | j
                  | j                  xs dz  «      }| j                  dk7  rU| j                  |t        t        j                  | j                  | j                  z  «      dz  dz   | j                  z  «      <   dj                  |«      }|S )Nr   r   g       @g      à?r   )r2   rr   r`   r*   r   r   r9   Úlistre   ÚmathÚcosr3   Újoin)r?   Ú
bar_lengthÚbarÚcharss       rA   Ú
format_barzProgressBar.format_barÌ   s  € Ø�;‰;Ð"Ü˜TŸX™X¨¯
©
Ñ2Ó3ˆJØ—.‘. :Ñ-ˆCØ�4—?‘? d§j¡j°:Ñ&=Ñ>Ñ>ˆCð ˆ
ð �]Š]Ø—.‘. 4§:¡:Ñ-ˆCð ˆ
ô ˜Ÿ™¨D¯J©JªO¸!Ñ<Ó=ˆEØ×&Ñ&¨!Ò+ð —N‘Nð ÜÜŸ™ $§(¡(¨T×-DÑ-DÑ"DÓEÈÑKÈcÑQØŸ*™*ñ%óñð —'‘'˜%“.ˆCØˆ
rC   c                óŠ  — | j                   }g }| j                  �|€| j                   }| j                  r|j                  | j	                  «       «       |r|j                  | j                  «       «       | j                  r7| j                  r+| j                  s|j                  | j                  «       «       | j                  �.| j                  | j                  «      }|�|j                  |«       | j                  | j                  | j                  «       | j                  j!                  |«      dœz  j#                  «       S )N)r%   r‡   Úinfo)r"   r2   r#   Úappendr|   r€   r!   r8   r9   rx   r$   r<   r   r%   r‰   r   r…   Úrstrip)r?   r"   Ú	info_bitsÚ	item_infos       rA   Úformat_progress_linez ProgressBar.format_progress_lineß   s  € Ø×(Ñ(ˆàˆ	Ø�;‰;Ð" |Ð';Ø#Ÿ}™}Ð,ˆLà�=Š=Ø×Ñ˜TŸ_™_Ó.Ô/ÙØ×Ñ˜TŸ_™_Ó.Ô/Ø�=Š=˜TŸ^š^°D·M²MØ×Ñ˜TŸ_™_Ó.Ô/Ø×ÑÐ*Ø×+Ñ+¨D×,=Ñ,=Ó>ˆIØÐ$Ø× Ñ  Ô+ð ×ÑàŸ™Ø—‘Ó(ØŸ™×*Ñ*¨9Ó5ññ÷ ‰&‹(ð	rC   c                óX  — | j                   ry | j                  sW| j                  | j                  k7  r=| j                  | _        t	        | j                  | j
                  | j                  ¬«       y g }| j                  r©dd l}| j                  }d| _	        t        | j                  «       «      }t        d|j                  «       j                  |z
  «      }||k  rF| j                  �:|j!                  t"        «       |j!                  d| j                  z  «       || _        || _	        | j                  }| j                  �| j                  }|j!                  t"        «       | j                  «       }t        |«      }| j                  �| j                  |k  r|| _        |j!                  |«       |j!                  d||z
  z  «       dj%                  |«      }|| j                  k7  rE|| _        t	        || j
                  | j                  d¬«       | j
                  j'                  «        y y )N)r&   r'   r   ú r   F)r&   r'   Únl)r    r=   r>   r%   r   r&   r'   r+   Úshutilr*   r   r�   ÚmaxÚget_terminal_sizeÚcolumnsr:   rŒ   Ú
BEFORE_BARr…   r[   )	r?   Úbufr”   Ú	old_widthÚclutter_lengthÚ	new_widthÚclear_widthÚlineÚline_lens	            rA   rE   zProgressBar.render_progressú   s£  € Ø�;Š;Øà�}Š}à�‰ $§*¡*Ò,Ø"&§*¡*�”Ü�T—Z‘Z d§i¡i°t·z±zÕBØàˆà�>Š>ÛàŸ
™
ˆIØˆDŒJÜ% d×&?Ñ&?Ó&AÓBˆNÜ˜A˜v×7Ñ7Ó9×AÑAÀNÑRÓSˆIØ˜9Ò$¨¯©Ð)CØ—
‘
œ:Ô&Ø—
‘
˜3 §¡Ñ/Ô0Ø!*�”Ø"ˆDŒJà—j‘jˆØ�>‰>Ð%ØŸ.™.ˆKà�
‰
”:ÔØ×(Ñ(Ó*ˆÜ˜D“>ˆØ�>‰>Ð! T§^¡^°hÒ%>Ø%ˆDŒNà�
‰
�4ÔØ�
‰
�3˜+¨Ñ0Ñ1Ô2Ø�w‰w�s‹|ˆð �4—?‘?Ò"Ø"ˆDŒOÜ�˜DŸI™I¨T¯Z©Z¸EÕBØ�I‰I�O‰OÕð #rC   c                ó  — | xj                   |z  c_         | j                  � | j                   | j                  k\  rd| _        t        j                  «       | j                  z
  dk  ry t        j                  «       | _        | j                   r/t        j                  «       | j
                  z
  | j                   z  }n!t        j                  «       | j
                  z
  }| j                  dd  |gz   | _        | j                  d u| _        y )NTr]   iúÿÿÿ)r3   r2   r9   r5   r7   r6   r4   r8   )r?   Ún_stepsÚsteps      rA   rX   zProgressBar.make_step(  s¹   € Ø�Š�GÑ�Ø�;‰;Ð" t§x¡x°4·;±;Ò'>Ø ˆDŒMä�I‰I‹K˜$Ÿ-™-Ñ'¨3Ò.ØäŸ	™	›ˆŒð
 �8Š8Ü—I‘I“K $§*¡*Ñ,°·±Ñ8‰Dä—9‘9“; §¡Ñ+ˆDà—8‘8˜B˜C�= D 6Ñ)ˆŒàŸ™¨DÐ0ˆ�rC   c                óØ   — |�|| _         | xj                  |z  c_        | j                  | j                  k\  r3| j                  | j                  «       | j	                  «        d| _        yy)a  Update the progress bar by advancing a specified number of
        steps, and optionally set the ``current_item`` for this new
        position.

        :param n_steps: Number of steps to advance.
        :param current_item: Optional item to set as ``current_item``
            for the updated position.

        .. versionchanged:: 8.0
            Added the ``current_item`` optional parameter.

        .. versionchanged:: 8.0
            Only render when the number of steps meets the
            ``update_min_steps`` threshold.
        Nr   )r<   r)   r(   rX   rE   )r?   r¡   r<   s      rA   ÚupdatezProgressBar.update>  sb   € ð  Ð#Ø ,ˆDÔà×!Ò! WÑ,Õ!à×$Ñ$¨×(=Ñ(=Ò=Ø�N‰N˜4×4Ñ4Ô5Ø× Ñ Ô"Ø()ˆDÕ%ð >rC   c                ó.   — d| _         d | _        d| _        y )NFT)r8   r<   r9   rF   s    rA   ÚfinishzProgressBar.finishX  s   € ØˆŒØ ˆÔØˆ�rC   c              #  óX  K  — | j                   st        d«      ‚| j                  s| j                  E d{  –—†  y| j                  D ]=  }|| _        | j
                  dk(  r| j                  «        |–— | j                  d«       Œ? | j                  «        | j                  «        y7 Œr­w)z¨Return a generator which yields the items added to the bar
        during construction, and updates the progress bar *after* the
        yielded block returns.
        rP   Nr   r   )	r;   rQ   r=   r1   r<   r)   rE   r¤   r¦   )r?   Úrvs     rA   rR   zProgressBar.generator]  s’   è ø€ ð �|Š|ÜÐOÓPÐPà�}Š}Ø—y‘y× Ñ à—i‘iò 
�Ø$&�Ô!ð
 ×,Ñ,°Ò1Ø×(Ñ(Ô*à’Ø—‘˜A•ð
ð �K‰KŒMØ× Ñ Õ"ð !ús   ‚3B*µB(¶A3B*)Nú#r’   z%(bar)sz  FTNFNNNNr   é   )"r@   zcabc.Iterable[V] | Noner2   z
int | Noner   r{   r   r{   r   r{   r   r{   r    Úboolr!   r«   r"   úbool | Noner#   r«   r$   z)t.Callable[[V | None], str | None] | Noner%   ú
str | Noner&   zt.TextIO | Noner'   r¬   r(   rr   r*   rr   ÚreturnÚNone)r®   zProgressBar[V])rK   ztype[BaseException] | NonerL   zBaseException | NonerM   zTracebackType | Noner®   r¯   )r®   zcabc.Iterator[V])r®   r   ©r®   r¯   )r®   r_   ©r®   r{   )r¡   rr   r®   r¯   rI   )r¡   rr   r<   zV | Noner®   r¯   )Ú__name__Ú
__module__Ú__qualname__rB   rG   rN   rS   rV   rJ   Úpropertyr`   re   rg   rx   r|   r€   r‰   r�   rE   rX   r¤   r¦   rR   © rC   rA   r   r   +   s¢  „ ð "ØØØ%ØØØØ$(ØØDHØ Ø $Ø!Ø !Øð#E+à)ðE+ð ðE+ð ð	E+ð
 ðE+ð ðE+ð ðE+ð ðE+ð ðE+ð "ðE+ð ðE+ð BðE+ð ðE+ð ðE+ð ðE+ð  ð!E+ð" ð#E+ð$ 
ó%E+óNð
à,ðð (ðð !ð	ð
 
óó ó óð òCó ðCð
 ò4ó ð4ð
 òó ðó
ó*ó0óó&ó6,ó\1ô,*ó4ô
#rC   r   c                  ó@   — e Zd ZdZd	d„Zd
d„Zdd„Zdd„Zdd„Zdd„Z	y)Ú_PagerWriteraL  Wrap a pager's output stream to strip ANSI styling when colors are
    disabled.

    The wrapped stream is owned by the pager strategy that produced it, so this
    wrapper never closes it: ``_pipepager`` closes its pipe to signal EOF to the
    pager process, ``_tempfilepager`` closes and removes its temporary file, and
    ``_nullpager`` leaves an external stream such as ``sys.stdout`` untouched.

    The ``color`` attribute lets :func:`click.echo` detect that ANSI stripping
    is handled here, so it doesn't strip a second time (see
    :func:`._compat.should_strip_ansi`).
    c                ó    — || _         || _        y rI   )Ú_streamr'   )r?   Ústreamr'   s      rA   rB   z_PagerWriter.__init__�  s   € ØˆŒØˆ�
rC   c                óf   — | j                   st        |«      }| j                  j                  |«      S rI   )r'   r   rº   rY   ©r?   Útexts     rA   rY   z_PagerWriter.write‘  s(   € Ø�zŠzÜ˜dÓ#ˆDà�|‰|×!Ñ! $Ó'Ð'rC   c                ó4   — |D ]  }| j                  |«       Œ y rI   )rY   )r?   Úlinesrž   s      rA   Ú
writelinesz_PagerWriter.writelines—  s   € Øò 	ˆDØ�J‰J�tÕñ	rC   c                ó8   — | j                   j                  «        y rI   ©rº   r[   rF   s    rA   r[   z_PagerWriter.flush›  s   € Ø�‰×ÑÕrC   c                ó8   — | j                   j                  «        y rI   rÃ   rF   s    rA   Úclosez_PagerWriter.closež  s   € ð 	�‰×ÑÕrC   c                ó.   — t        | j                  |«      S rI   )Úgetattrrº   )r?   Únames     rA   Ú__getattr__z_PagerWriter.__getattr__£  s   € Ü�t—|‘| TÓ*Ð*rC   N)r»   út.TextIOr'   r«   r®   r¯   )r¾   r{   r®   rr   )rÀ   zcabc.Iterable[str]r®   r¯   r°   )rÈ   r{   r®   zt.Any)
r²   r³   r´   Ú__doc__rB   rY   rÁ   r[   rÅ   rÉ   r¶   rC   rA   r¸   r¸     s%   „ ñóó(óóóô
+rC   r¸   c                óz   — | syddl }|j                  | d   «      }|syt        |«      j                  «       | dd fS )a£  Resolve a pager ``argv`` to an absolute command path and its parameters.

    The command is looked up with :func:`shutil.which`, which the
    :mod:`subprocess` docs recommend on every platform for an unqualified name:
    https://docs.python.org/3/library/subprocess.html#popen-constructor

    Returns ``None`` when there is no command to run or it is not on the path,
    leaving the caller to pick a fallback.
    Nr   r   )r”   Úwhichr   Úabsolute)Ú	cmd_partsr”   Úcmd_filepaths      rA   Ú_resolve_pager_commandrÑ   §  sF   € ñ Øãà—<‘< 	¨!¡Ó-€LáØô �Ó×&Ñ&Ó(¨)°A°B¨-Ð7Ð7rC   c                ó2  — t        «       }|€
t        «       }t        t        j                  «      rt        |«      st        || «      S t        j                  t        j                  j                  dd«      «      }|rt        }n\t        j                  j                  d«      dv rt        || «      S t        xs t        j                  j                  d«      }|rdgndg}t        |«      }|€t        || «      S |\  }}|rt        ||| «      S t!        ||| «      S )z2Decide what method to use for paging through text.ÚPAGERr   ÚTERM)ÚdumbÚemacsÚos2ÚmoreÚless)r	   r   r   ÚsysÚstdinÚ
_nullpagerÚshlexÚsplitÚosÚenvironÚgetr   ÚplatformÚ
startswithrÑ   Ú_tempfilepagerÚ
_pipepager)r'   ÚstdoutÚpager_cmd_partsÚuse_tempfileÚresolvedÚcmd_pathÚ
cmd_paramss          rA   Ú_pager_contextmanagerrì   Ã  só   € ô "Ó#€Fð €~Ü“ˆä”#—)‘)Ô¤F¨6¤NÜ˜& %Ó(Ð(ô —k‘k¤"§*¡*§.¡.°¸"Ó"=Ó>€Oáô ‰ä�:‰:�>‰>˜&Ó!Ð%6Ñ6Ü˜f eÓ,Ð,äÒ<œcŸl™l×5Ñ5°eÓ<ˆÙ&2˜6™(¸¸ˆä% oÓ6€HàÐä˜& %Ó(Ð(à#Ñ€HˆjáÜ˜h¨
°EÓ:Ð:ä�h 
¨EÓ2Ð2rC   c              #  ó  K  — t        | ¬«      5 \  }} t        |t        | «      ¬«      }	 t        j                  t        j
                  |«      –— |j                  «        	 ddd«       y# |j                  «        w xY w# 1 sw Y   yxY w­w)z÷Context manager.

    Yields a writable file-like object which can be used as an output pager.

    .. versionadded:: 8.4.0

    :param color: controls if the pager supports ANSI colors or not.  The
                  default is autodetection.
    )r'   N)rì   r¸   r«   r.   r/   ÚTextIOr[   )r'   r»   Úwriters      rA   Úget_pager_filerð   ð  sq   è ø€ ô 
 UÔ	+ð 
©°¸ô ˜f¬D°«KÔ8ˆð	Ü—&‘&œŸ™ 6Ó*Ò*à�L‰L�N÷
ð 
øð �L‰L�Nú÷
ð 
üs3   ‚B�A?ª&A*ÁA?Á!	BÁ*A<Á<A?Á?BÂBc                óD  — 	 t        j                  | «      }||z   }|D ]a  }|j                  d«      r|j	                  «       dk(  sŒ( y|j                  d«      sŒ<t        |«      dkD  sŒKd|dd j	                  «       v sŒa y y# t        $ r | j                  «       }Y Œ‡w xY w)	aw  Detect a raw-control-characters request in a ``less`` invocation.

    Parses the tokens of the ``LESS`` environment variable and the command
    line: only short-option clusters (``-R``, ``-rX``, ``-XrY``) and the
    ``--raw-control-chars`` long option request raw mode. Filenames and
    long-option values may carry the letter ``r`` without being such a
    request.
    z--z--raw-control-charsTú-r   ÚrNF)rÝ   rÞ   Ú
ValueErrorrã   Úcasefoldrd   )Úless_envrë   Ú
env_tokensÚtokensÚtokens        rA   Ú_less_uses_raw_moderú     s§   € ð&Ü—[‘[ Ó*ˆ
ð
 ˜*Ñ$€Fàò ˆØ×Ñ˜DÔ!Ø�~‰~ÓÐ#8Ó8ÙØ×Ñ˜cÕ"¤s¨5£z°A£~Ø�e˜A˜B�i×(Ñ(Ó*Ò*Ùðð øô ò &ð —^‘^Ó%Š
ð&ús   ‚B ÂBÂBc              #  ó@  K  — ddl }t        t        j                  «      }| j                  }t
        r|j                  «       }|€?|dk(  r:t        j                  j                  dd«      }t        ||«      rd}n|s	|sd|d<   d}|j                  t        | «      g|z   d|j                  |d	d¬
«      }t        j                  t        j                  |j                  «      }	 ||f–— 	 |j'                  «        	 	 |j)                  «        y# t         $ r Y Œ/t"        $ r}	|j%                  «        |	‚d}	~	ww xY w# t         $ r Y ŒKw xY w# t*        $ r Y nw xY wŒ^# 	 |j'                  «        n# t         $ r Y nw xY w	 	 |j)                  «        w # t*        $ r Y nw xY wŒ"xY w­w)a$  Page through text by feeding it to another program.

    Invokes the pager via :class:`subprocess.Popen` with an ``argv`` list.

    Invoking a pager through this might support colors: if piping to
    ``less`` and the user hasn't decided on colors, ``LESS=-R`` is set
    automatically.
    r   NrÙ   ÚLESSr   Tú-RFÚreplace)ÚshellrÛ   ÚenvÚerrorsr¾   )Ú
subprocessÚdictrß   rà   Ústemr   rõ   rá   rú   ÚPopenr{   ÚPIPEr.   r/   rî   rÛ   ÚBrokenPipeErrorÚ	ExceptionÚ	terminaterÅ   ÚwaitÚKeyboardInterrupt)
rê   rë   r'   r  r   Úcmd_namerö   ÚcrÛ   Úes
             rA   rå   rå   $  s­  è ø€ ó ô Œr�z‰zÓ
€Cð �}‰}€HÝ
ð
 ×$Ñ$Ó&ˆà€}˜ VÒ+Ü—:‘:—>‘> &¨"Ó-ˆÜ˜x¨Ô4Ø‰EÙ¡*ØˆC�‰KØˆEà×ÑÜ	ˆX‹ˆ˜*Ñ$ØØ�o‰oØØØð 	ó 	€Aô �F‰F”1—8‘8˜QŸW™WÓ%€Eð#Ø�UˆlÒð	Ø�K‰KŒMð ðØ—‘”ð øôC ò áÜò ð
 	
�‰ŒØˆûðûô ò 	Ùð	ûô %ò Ùðúð øð	Ø�K‰K�Møô ò 	Ùð	úð ðØ—‘”ð øô %ò Ùðúð üsÌ   ‚CFÃ D
 Ã'D7 Ã7FÃ9E Ä	FÄ
	D4ÄE ÄD4ÄD/Ä/D4Ä4E Ä7	EÅ FÅEÅFÅ	EÅFÅEÅFÅFÅE)Å(FÅ)	E5Å2FÅ4E5Å5FÅ:FÆ
FÆ	FÆFÆFÆFÆFc              #  ó"  K  — ddl }ddl}t        t        j                  «      }|j                  d|dd¬«      }	 t        j                  t        j                  |«      |f–— |j                  «        |j                  «        |j                  t        | «      g|¢|j                  ‘«       |j                  «        t        j                  |j                  «       y# |j                  «        t        j                  |j                  «       w xY w­w)a8  Page through text by invoking a program on a temporary file.

    Used as the primary pager strategy on Windows (where piping to
    ``more`` adds spurious ``\r\n``), and as a fallback on other
    platforms. The command is invoked with any parameters from ``PAGER``
    followed by the temporary file name.
    r   NÚwrþ   F)ÚmodeÚencodingr  Údelete)r  Útempfiler   rÚ   ræ   ÚNamedTemporaryFiler.   r/   rî   r[   rÅ   Úcallr{   rÈ   rß   Úunlink)rê   rë   r'   r  r  r  Úfs          rA   rä   rä   {  sÅ   è ø€ ó Ûä ¤§¡Ó,€Hð 	×#Ñ#Ø˜8¨I¸eð 	$ó 	€AðÜ�f‰f”Q—X‘X˜qÓ! 5Ð(Ò(Ø	�‰Œ	Ø	�‰Œ	Ø�‰œ˜X›Ð<¨Ð<°Q·V±VÐ<Ô=ð 	
�‰Œ	Ü
�	‰	�!—&‘&Õøð 	
�‰Œ	Ü
�	‰	�!—&‘&Õüs   ‚7DºA1C Â+0DÃ1DÄDc              #  ó   K  — | |f–— y­w)a&  Simply print unformatted text. This is the ultimate fallback.

    The stream comes from elsewhere (typically ``sys.stdout``), so its lifecycle
    is left untouched: :class:`_PagerWriter` never closes what it wraps, and it
    is the only thing :func:`get_pager_file` hands to the caller.
    Nr¶   )r»   r'   s     rA   rÜ   rÜ   ž  s   è ø€ ð �%ˆ-Óùs   ‚
c                  ó”   — e Zd Z	 	 	 	 d	 	 	 	 	 	 	 	 	 d	d„Zd
d„Zdd„Zej                  dd„«       Zej                  dd„«       Zdd„Zy)ÚEditorNc                ó<   — || _         || _        || _        || _        y rI   )Úeditorr   Úrequire_saveÚ	extension)r?   r  r   r  r  s        rA   rB   zEditor.__init__¬  s!   € ð ˆŒØˆŒØ(ˆÔØ"ˆ�rC   c                óÌ   — | j                   �| j                   S dD ]'  }t        j                  j                  |«      }|sŒ%|c S  t        ryddlm} dD ]  } ||«      €Œ|c S  y)N)ÚVISUALÚEDITORÚnotepadr   )rÍ   )zsensible-editorÚvimÚnanoÚvi)r  rß   rà   rá   r   r”   rÍ   )r?   Úkeyr¨   rÍ   r  s        rA   Ú
get_editorzEditor.get_editor¸  sm   € Ø�;‰;Ð"Ø—;‘;ÐØ%ò 	ˆCÜ—‘—‘ Ó$ˆBÚØ’	ð	õ Øå à6ò 	ˆFÙ�V‹}Ñ(Ø’ð	ð rC   c                ó  — ddl }ddl}| j                  «       }d}| j                  r9t        j
                  j                  «       }|j                  | j                  «       	 |j                   |j                  |«      t        |«      z   |¬«      }|j                  «       }|dk7  r$t        t        d«      j                  |¬«      «      ‚y# t        $ r+}t        t        d«      j                  ||¬«      «      |‚d}~ww xY w)z Open files in the user's editor.r   N)Úargsr   z{editor}: Editing failed)r  z{editor}: Editing failed: {e})r  r  )rÝ   r  r(  r   rß   rà   Úcopyr¤   r  rÞ   r‚   r
  r   rt   rs   ÚOSError)	r?   Ú	filenamesrÝ   r  r  rà   r  Ú	exit_coder  s	            rA   Ú
edit_fileszEditor.edit_filesÉ  sî   € ãÛà—‘Ó"ˆØ)-ˆà�8Š8Ü—j‘j—o‘oÓ'ˆGØ�N‰N˜4Ÿ8™8Ô$ð	ð × Ñ Ø �U—[‘[ Ó(¬4°	«?Ñ:Øð !ó ˆAð Ÿ™›ˆIØ˜AŠ~Ü$ÜÐ0Ó1×8Ñ8ÀÐ8ÓGóð ð øô ò 	Ü ÜÐ1Ó2×9Ñ9ÀÈ1Ð9ÓMóàðûð	ús   Á!A(C
 Ã
	C>Ã&C9Ã9C>c                 ó   — y rI   r¶   r½   s     rA   ÚeditzEditor.editç  s   € Ø=@rC   c                 ó   — y rI   r¶   r½   s     rA   r1  zEditor.editì  s   € Ø47rC   c                ó–  — dd l }|€d}njt        |t        t        f«      r|}nQ|r|j	                  d«      s|dz  }t
        r"|j                  dd«      j                  d«      }n|j                  d«      }|j                  d| j                  ¬«      \  }}	 t        j                  |d	«      5 }|j                  |«       d d d «       t        j                  |t        j                  j                  |«      t        j                  j!                  |«      d
z
  f«       t        j                  j!                  |«      }| j#                  |f«       | j$                  r9t        j                  j!                  |«      |k(  r	 t        j&                  |«       y t)        |d«      5 }|j+                  «       }d d d «       t        |t        t        f«      rt        j&                  |«       S j-                  d«      j                  dd«      t        j&                  |«       S # 1 sw Y   �Œ]xY w# 1 sw Y   ŒyxY w# t        j&                  |«       w xY w)Nr   rC   r   z
z	utf-8-sigzutf-8zeditor-)ÚprefixÚsuffixÚwbé   Úrb)r  Ú
isinstanceÚbytesÚ	bytearrayÚendswithr   rþ   ÚencodeÚmkstempr  rß   ÚfdopenrY   ÚutimeÚpathÚgetatimeÚgetmtimer/  r  r  ÚopenÚreadÚdecode)	r?   r¾   r  ÚdataÚfdrÈ   r  Ú	timestampr¨   s	            rA   r1  zEditor.editï  sÆ  € Ûàˆ<Ø&)‰DÜ˜œu¤iÐ0Ô1Ø‰Dá˜DŸM™M¨$Ô/Ø˜‘�åØ—|‘| D¨&Ó1×8Ñ8¸ÓE‘à—{‘{ 7Ó+�à×#Ñ#¨9¸T¿^¹^Ð#ÓL‰ˆˆDð	Ü—‘˜2˜tÓ$ð ¨Ø—‘˜”÷ô �H‰H�TœBŸG™G×,Ñ,¨TÓ2´B·G±G×4DÑ4DÀTÓ4JÈQÑ4NÐOÔPô Ÿ™×(Ñ(¨Ó.ˆIà�O‰O˜T˜GÔ$à× Ò ¤R§W¡W×%5Ñ%5°dÓ%;¸yÒ%HØô �I‰I�d�Oô �d˜DÓ!ð  QØ—V‘V“X�÷ô ˜$¤¬	Ð 2Ô3Øô �I‰I�d�Oð —9‘9˜[Ó)×1Ñ1°&¸$Ó?ä�I‰I�d�O÷3ñ ú÷"ð ûô �I‰I�d�OúsI   ÂH1 Â+HÂ=B<H1 ÆH1 ÆH%Æ-H1 Ç" H1 ÈH"ÈH1 È%H.È*H1 È1I)NNTz.txt)
r  r­   r   zcabc.Mapping[str, str] | Noner  r«   r  r{   r®   r¯   r±   )r-  z%cabc.Iterable[str | os.PathLike[str]]r®   r¯   )r¾   zbytes | bytearrayr®   zbytes | None)r¾   r­   r®   r­   )r¾   zstr | bytes | bytearray | Noner®   zstr | bytes | None)	r²   r³   r´   rB   r(  r/  r.   Úoverloadr1  r¶   rC   rA   r  r  «  s|   „ ð "Ø-1Ø!Øð
#àð
#ð +ð
#ð ð	
#ð
 ð
#ð 
ó
#óó"ð< ‡Z�ZÚ@ó Ø@ð ‡Z�ZÚ7ó Ø7ô-rC   r  c                ó6  — dd l }dd„}t        j                  dk(  r~dg}|r|j                  d«       |r|j                  d«       |j                   || «      «       t	        dd«      }	 |j                  ||¬	«      j                  «       |j                  «        S t        r8|r || «      } d
d| g}	 |j                  |«      S 	 t        j                  | «       yt        re|r* || «      } dt        j                  j                  | «      g}n'dg}|r|j                  d«       |j                  | «       	 |j                  |«      S 	 |r*t        j                  j                   || «      «      xs d} n || «      } |j                  d| g«      }|r|j                  «       S y# |j                  «        w xY w# t        $ r Y yw xY w# t        $ r Y yw xY w# t        $ r Y yw xY w# t        $ r/ | j!                  d«      r|s|sdd l}|j	                  | «       Y yY yw xY w)Nr   c                óJ   — ddl m} | j                  d«      r || dd  «      } | S )Nr   )Úunquotezfile://é   )Úurllib.parserM  rã   )ÚurlrM  s     rA   Ú_unquote_filezopen_url.<locals>._unquote_file"  s&   € Ý(à�>‰>˜)Ô$Ù˜#˜a˜b˜'Ó"ˆCàˆ
rC   ÚdarwinrD  z-Wrý   z	/dev/nullr  )ÚstderrÚexplorerz/select,é   Úcygstartz-wú.zxdg-open)zhttp://zhttps://r   )rP  r{   r®   r{   )r  rÚ   râ   rŒ   rD  r  r
  rÅ   r   r  r,  rß   Ú	startfiler
   rA  Údirnamerã   Ú
webbrowser)	rP  r
  Úlocater  rQ  r*  Únullr  rZ  s	            rA   Úopen_urlr]    sø  € Ûóô ‡|�|�xÒØˆxˆÙØ�K‰K˜ÔÙØ�K‰K˜ÔØ�‰‘M #Ó&Ô'Ü�K Ó%ˆð	Ø×#Ñ# D°Ð#Ó6×;Ñ;Ó=à�J‰J�LÝ	ÙÙ Ó$ˆCØ 
¨CÐ0ˆDðØ!—‘ tÓ,Ð,ðÜ—‘˜SÔ!ð Ý	ÙÙ Ó$ˆCØ¤§¡§¡°Ó 4Ð5‰Dà�<ˆDÙØ—‘˜DÔ!Ø�K‰K˜Ôð	Ø—?‘? 4Ó(Ð(ð
ÙÜ—'‘'—/‘/¡-°Ó"4Ó5Ò<¸‰Cá Ó$ˆCØ×Ñ˜j¨#Ð.Ó/ˆÙØ—6‘6“8ˆOØøðM �J‰J�Lûô ò Ùðûô
 ò Ùðûô ò 	áð	ûô ò Ø�>‰>Ð1Ô2¹6É$Ûà�O‰O˜CÔ ÙÙðúsU   Á) F Â0F3 ÃG Ä2G ÅAG  ÆF0Æ3	F?Æ>F?Ç	GÇGÇ	GÇGÇ 3HÈHc                óx   — | dk(  r
t        «       ‚| dk(  rt        s
t        «       ‚| dk(  rt        r
t        «       ‚y y )Núúú)r  r   ÚEOFError)Úchs    rA   Ú_translate_ch_to_excrd  e  s;   € Ø	ˆV‚|ÜÓ!Ð!à	ˆV‚|�CÜ‹jÐà	ˆV‚|�Ü‹jÐð €|rC   Úwin32c               #  ó   K  — d–— y ­w)Nr   r¶   r¶   rC   rA   Úraw_terminalrg  s  s   è ø€ à‹ùs   ‚c                ó8  — | r<t        j                  t         j                  g t        f   t        j
                  «      }n;t        j                  t         j                  g t        f   t        j                  «      } |«       }|dv r
| |«       z  }t        |«       |S )N)ú õ   Ã )r.   r/   ÚCallabler{   ÚmsvcrtÚgetwcheÚgetwchrd  )r   Úfuncr¨   s      rA   Úgetcharrp  w  ss   € ñ> Ü—6‘6œ!Ÿ*™* R¬ WÑ-¬v¯~©~Ó>‰Dä—6‘6œ!Ÿ*™* R¬ WÑ-¬v¯}©}Ó=ˆDá‹VˆàÐ!Ñ!ð ‘$“&‰LˆBä˜RÔ Øˆ	rC   c               #  óª  K  — t        t        j                  «      st        d«      } | j	                  «       }n t        j                  j	                  «       }d } 	 t        j                  |«      }	 t        j                  |«       |–— t        j                  |t
        j                  |«       t        j                  j                  «        | �| j                  «        y y # t        j                  |t
        j                  |«       t        j                  j                  «        | �| j                  «        w w xY w# t
        j                  $ r Y y w xY w­w)Nz/dev/tty)r   rÚ   rÛ   rD  ÚfilenoÚtermiosÚ	tcgetattrÚttyÚsetrawÚ	tcsetattrÚ	TCSADRAINræ   r[   rÅ   Úerror)r  rH  Úold_settingss      rA   rg  rg  ©  sø   è ø€ ô
 ”c—i‘iÔ Ü�ZÓ ˆAØ—‘“‰Bä—‘×!Ñ!Ó#ˆBØˆAð	Ü"×,Ñ,¨RÓ0ˆLðÜ—
‘
˜2”Ø’ä×!Ñ! "¤g×&7Ñ&7¸ÔFÜ—
‘
× Ñ Ô"à�=Ø—G‘G•Ið !øô ×!Ñ! "¤g×&7Ñ&7¸ÔFÜ—
‘
× Ñ Ô"à�=Ø—G‘G•Ið !ûä�}‰}ò 	Ùð	üsD   ‚AEÁD: Á/C ÂAD: ÃEÃAD7Ä7D: Ä:EÅEÅEÅEc                óJ  — t        «       5 }t        j                  |d«      j                  t	        t
        j                  «      d«      }| r8t        t
        j                  «      rt
        j                  j                  |«       t        |«       |cd d d «       S # 1 sw Y   y xY w)Né    rþ   )rg  rß   rE  rF  r   rÚ   rÛ   r   ræ   rY   rd  )r   rH  rc  s      rA   rp  rp  Ä  so   € Ü‹^ð 	˜rÜ—‘˜˜R“×'Ñ'Ô(9¼#¿)¹)Ó(DÀiÓPˆBáœœsŸz™zÔ*Ü—
‘
× Ñ  Ô$ä  Ô$Ø÷	÷ 	ò 	ús   ‹BBÂB")rÏ   ú	list[str]r®   ztuple[Path, list[str]] | NonerI   )r'   r¬   r®   z.t.ContextManager[tuple[t.TextIO, bool | None]])r'   r¬   r®   z!t.Generator[t.TextIO, None, None])rö   r{   rë   r}  r®   r«   )rê   r   rë   r}  r'   r¬   r®   ú(t.Iterator[tuple[t.TextIO, bool | None]])r»   rÊ   r'   r¬   r®   r~  )FF)rP  r{   r
  r«   r[  r«   r®   rr   )rc  r{   r®   r¯   )r®   zcabc.Iterator[int])r   r«   r®   r{   );rË   Ú
__future__r   Úcollections.abcÚabcÚcabcÚ
contextlibrƒ   rß   rÝ   rÚ   r5   Útypingr.   r   rt   Úior   Úpathlibr   Útypesr   Ú_compatr	   r
   r   r   r   r   r   Ú
exceptionsr   Úutilsr   ÚTypeVarr   rÈ   r˜   rZ   ÚGenericr   r¸   rÑ   rì   Úcontextmanagerrð   rú   rå   rä   rÜ   r  r]  rd  râ   rl  rg  rp  rs  ru  r¶   rC   rA   ú<module>rŽ     s  ðñõ #å Û Û Û 	Û Û 
Û Û Ý  Ý Ý Ý å )Ý Ý &Ý Ý Ý Ý Ý &Ý à€A‡I�IˆcƒN€ð ‡7�7ˆd‚?Ø€JØ�Ià€JØ€IôQ#�!—)‘)˜A‘,ô Q#÷h
%+ñ %+óP8ð: ð*3Øð*3à3ó*3ðZ ×Ñóó ðó.ð8 ×Ñà@DðSØðSØ )ðSØ2=ðSà-òSó ðSðl ×Ñà@DðØðØ )ðØ2=ðà-òó ððD ×Ñà+/ð	Øð	Ø(ð	à-ò	ó ð	÷qñ qôhCóLð ‡<�<�7ÒÛà×Ñòó ðô,ó^ Ûà×Ñòó ðô4rC   