Ë
    "ž%hXh  ã                  óœ  — 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  d	dl!m"Z" d	dl#m$Z$  ejJ                  d«      Z&ejN                  dk(  rdZ(dZ)ndZ(dZ) G d„ dejT                  e&   «      Z+d)d*d„Z,	 	 	 	 	 	 	 	 d+d„Z-	 	 	 	 	 	 	 	 d+d„Z.	 	 	 	 	 	 	 	 d,d„Z/ G d „ d!«      Z0d-d.d"„Z1d/d#„Z2e
jf                  d$k(  rddl4Z4ejj                  d0d%„«       Z6d1d&„Z7yddl8Z8ddl9Z9ejj                  d0d'„«       Z6d1d(„Z7y)2z¿
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)Úwhich)ÚTracebackTypeé   )Ú_default_text_stdout)ÚCYGWIN)Úget_best_encoding)Úisatty)Úopen_stream)Ú
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Úiterabler4   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r,   r   s                     úP/var/www/skyplay_api_hub/venv/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©rA   s    rC   Ú	__enter__zProgressBar.__enter__t   s   € ØˆŒØ×ÑÔØˆrE   c                ó$   — | j                  «        y ©N)Úrender_finish)rA   Úexc_typeÚ	exc_valueÚtbs       rC   Ú__exit__zProgressBar.__exit__y   s   € ð 	×ÑÕrE   c                óp   — | j                   st        d«      ‚| j                  «        | j                  «       S )Nú.You need to use progress bars in a with block.)r=   ÚRuntimeErrorrG   Ú	generatorrH   s    rC   Ú__iter__zProgressBar.__iter__�   s.   € Ø�|Š|ÜÐOÓPÐPØ×ÑÔØ�~‰~ÓÐrE   c                ó*   — t        t        | «      «      S rK   )Únextr3   rH   s    rC   Ú__next__zProgressBar.__next__‡   s   € ô ”D˜“JÓÐrE   c                ó¨   — | j                   s| j                  sy | j                  j                  t        «       | j                  j                  «        y rK   )r"   r?   r(   ÚwriteÚ	AFTER_BARÚflushrH   s    rC   rL   zProgressBar.render_finish�   s0   € Ø�;Š;˜dŸmšmØØ�	‰	�‰œ	Ô"Ø�	‰	�‰ÕrE   c                ó„   — | j                   ryt        | j                  t        | j                  xs d«      xs dz  d«      S )Nç      ð?r	   )r;   Úminr5   Úfloatr4   rH   s    rC   ÚpctzProgressBar.pct•   s5   € à�=Š=ØÜ�4—8‘8œu T§[¡[Ò%5°AÓ6Ò;¸!Ñ<¸cÓBÐBrE   c                ó„   — | j                   syt        | j                   «      t        t        | j                   «      «      z  S ©Ng        )r6   Úsumr`   ÚlenrH   s    rC   Útime_per_iterationzProgressBar.time_per_iteration›   s,   € à�xŠxØÜ�4—8‘8‹}œu¤S¨¯©£]Ó3Ñ3Ð3rE   c                ó€   — | j                   �2| j                  s&| j                  | j                   | j                  z
  z  S yrc   )r4   r;   rf   r5   rH   s    rC   ÚetazProgressBar.eta¡   s3   € à�;‰;Ð"¨4¯=ª=Ø×*Ñ*¨d¯k©k¸D¿H¹HÑ.DÑEÐEØrE   c                óÆ   — | j                   rUt        | j                  «      }|dz  }|dz  }|dz  }|dz  }|dz  }|dz  }|dkD  r|› d|d›d|d›d|d›�S |d›d|d›d|d›�S y)Né<   é   r   zd Ú02ú:r   )r:   Úintrh   )rA   r0   ÚsecondsÚminutesÚhourss        rC   Ú
format_etazProgressBar.format_eta§   s–   € Ø�>Š>Ü�D—H‘H“ˆAØ˜"‘fˆGØ�"‰HˆAØ˜"‘fˆGØ�"‰HˆAØ˜‘FˆEØ�"‰HˆAØ�1ŠuØ˜˜B˜u R˜j¨¨'°"¨°Q°w¸r°lÐCÐCà ˜ 1 W¨R L°°'¸"°Ð>Ð>ØrE   c                ól   — t        | j                  «      }| j                  �|d| j                  › �z  }|S )Nú/)Ústrr5   r4   )rA   r5   s     rC   Ú
format_poszProgressBar.format_pos¶   s3   € Ü�$—(‘(‹mˆØ�;‰;Ð"Ø�Q�t—{‘{�mÐ$Ñ$ˆCØˆ
rE   c                ó@   — t        | j                  dz  «      d›d�dd  S )Néd   z 4ú%r	   )rn   ra   rH   s    rC   Ú
format_pctzProgressBar.format_pct¼   s&   € Ü�d—h‘h ‘nÓ% bÐ)¨Ð+¨A¨BÐ/Ð/rE   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   )r4   rn   ra   r,   r   r   r;   Úlistrf   ÚmathÚcosr5   Újoin)rA   Ú
bar_lengthÚbarÚcharss       rC   Ú
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Øˆ
rE   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$   r4   r%   Úappendrv   rz   r#   r:   r;   rr   r&   r>   r    r'   rƒ   r!   r   Úrstrip)rA   r$   Ú	info_bitsÚ	item_infos       rC   Úformat_progress_linez ProgressBar.format_progress_lineÒ   s  € Ø×(Ñ(ˆàˆ	Ø�;‰;Ð" |Ð';Ø#Ÿ}™}Ð,ˆLà�=Š=Ø×Ñ˜TŸ_™_Ó.Ô/ÙØ×Ñ˜TŸ_™_Ó.Ô/Ø�=Š=˜TŸ^š^°D·M²MØ×Ñ˜TŸ_™_Ó.Ô/Ø×ÑÐ*Ø×+Ñ+¨D×,=Ñ,=Ó>ˆIØÐ$Ø× Ñ  Ô+ð ×ÑàŸ™Ø—‘Ó(ØŸ™×*Ñ*¨9Ó5ññ÷ ‰&‹(ð	rE   c                óX  — dd l }| j                  ry | j                  sW| j                  | j                  k7  r=| j                  | _        t        | j                  | j                  | j                  ¬«       y g }| j                  r¥| 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 )Nr   )r(   r)   ú r   F)r(   r)   Únl)Úshutilr"   r?   r@   r'   r   r(   r)   r-   r,   r   rŠ   ÚmaxÚget_terminal_sizeÚcolumnsr<   r†   Ú
BEFORE_BARr   r\   )	rA   rŽ   ÚbufÚ	old_widthÚclutter_lengthÚ	new_widthÚclear_widthÚlineÚline_lens	            rC   rG   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Õð #rE   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úÿÿÿ)r5   r4   r;   r7   r9   r8   r6   r:   )rA   Ún_stepsÚsteps      rC   Ú	make_stepz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ˆ�rE   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*   r�   rG   )rA   r›   r>   s      rC   ÚupdatezProgressBar.update1  sb   € ð  Ð#Ø ,ˆDÔà×!Ò! WÑ,Õ!à×$Ñ$¨×(=Ñ(=Ò=Ø�N‰N˜4×4Ñ4Ô5Ø× Ñ Ô"Ø()ˆDÕ%ð >rE   c                ó.   — d| _         d | _        d| _        y )NFT)r:   r>   r;   rH   s    rC   ÚfinishzProgressBar.finishK  s   € ØˆŒØ ˆÔØˆ�rE   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.
        rR   Nr   r	   )	r=   rS   r?   r3   r>   r+   rG   rŸ   r¡   )rA   Úrvs     rC   rT   zProgressBar.generatorP  s’   è ø€ ð �|Š|ÜÐOÓPÐPà�}Š}Ø—y‘y× Ñ à—i‘iò 
�Ø$&�Ô!ð
 ×,Ñ,°Ò1Ø×(Ñ(Ô*à’Ø—‘˜A•ð
ð �K‰KŒMØ× Ñ Õ"ð !ús   ‚3B*µB(¶A3B*)Nú#rŒ   z%(bar)sz  FTNFNNNNr	   é   )"rB   zcabc.Iterable[V] | Noner4   z
int | Noner   ru   r   ru   r    ru   r!   ru   r"   Úboolr#   r¦   r$   úbool | Noner%   r¦   r&   z)t.Callable[[V | None], str | None] | Noner'   ú
str | Noner(   zt.TextIO | Noner)   r§   r*   rn   r,   rn   ÚreturnÚNone)r©   zProgressBar[V])rM   ztype[BaseException] | NonerN   zBaseException | NonerO   zTracebackType | Noner©   rª   )r©   zcabc.Iterator[V])r©   r   )r©   rª   )r©   r`   ©r©   ru   )r›   rn   r©   rª   rK   )r›   rn   r>   zV | Noner©   rª   )Ú__name__Ú
__module__Ú__qualname__rD   rI   rP   rU   rX   rL   Úpropertyra   rf   rh   rr   rv   rz   rƒ   rŠ   rG   r�   rŸ   r¡   rT   © rE   rC   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ô
#rE   r   c                ó@  — t        «       }|€
t        «       }t        t        j                  «      rt        |«      st        || |«      S t        j                  t        j                  j                  dd«      d¬«      }|r"t        rt        | ||«      ryt        | ||«      ryt        j                  j                  d«      dv rt        || |«      S t        st        j                  j                  d«      rt        | d	g|«      ryt        | d
g|«      ryddl}|j#                  «       \  }}t        j$                  |«       	 t        | d	g|«      r	 t        j&                  |«       yt        || |«      t        j&                  |«       S # t        j&                  |«       w xY w)z2Decide what method to use for paging through text.NÚPAGERr   F)ÚposixÚTERM)ÚdumbÚemacsÚos2ÚmoreÚlessr   )r
   r   r   ÚsysÚstdinÚ
_nullpagerÚshlexÚsplitÚosÚenvironÚgetr   Ú_tempfilepagerÚ
_pipepagerÚplatformÚ
startswithÚtempfileÚmkstempÚcloseÚunlink)rT   r)   ÚstdoutÚpager_cmd_partsrÆ   ÚfdÚfilenames          rC   ÚpagerrÎ   r  sH  € ä!Ó#€Fð €~Ü“ˆä”#—)‘)Ô¤F¨6¤NÜ˜& )¨UÓ3Ð3ô —k‘k¤"§*¡*§.¡.°¸"Ó"=ÀUÔK€OÙÝÜ˜i¨¸%Ô@ØÜ˜	 ?°EÔ:Øä	‡z�z‡~�~�fÓÐ!2Ñ2Ü˜& )¨UÓ3Ð3ÝŒs�|‰|×&Ñ& uÔ-´>Ø�F�8˜Uô4ð 	Ü�)˜f˜X uÔ-Øãà×#Ñ#Ó%�L€BˆÜ‡H�HˆR„LðÜ�i & ¨5Ô1Øô 	�	‰	�(Õô ˜& )¨UÓ3ä
�	‰	�(ÕøŒ�	‰	�(Õús   Ä?F Å$F ÆFc                óÌ  — |sy|d   }|dd }t        |«      }|syt        |«      j                  «       }|j                  }ddl}t        t        j                  «      }	|€L|dk(  rGt        j                  j                  dd«      › dj                  |«      › �}
|
sd	|	d<   d
}n
d|
v sd|
v rd
}|j                  t        |«      g|z   d
|j                  |	dd
¬«      }|j                  €J ‚	 | D ]*  }|st        |«      }|j                  j                  |«       Œ, 	 	 |j                  j'                  «        	 	 |j)                  «        	 y
# t         $ r Y Œ:t"        $ r}|j%                  «        |‚d}~ww xY w# t         $ r Y ŒLw xY w# t*        $ r Y nw xY wŒ_# 	 |j                  j'                  «        n# t         $ r Y nw xY w	 	 |j)                  «        w # t*        $ r Y nw xY wŒ"xY w)zàPage through text by feeding it to another program. Invoking a
    pager through this might support colors.

    Returns `True` if the command was found, `False` otherwise and thus another
    pager should be attempted.
    Fr   r	   Nr¹   ÚLESSr   rŒ   ú-RTÚrÚRÚreplace)Úshellr»   ÚenvÚerrorsÚtext)r   r   ÚresolveÚnameÚ
subprocessÚdictr¿   rÀ   rÁ   r   ÚPopenru   ÚPIPEr»   r   rZ   ÚBrokenPipeErrorÚ	ExceptionÚ	terminaterÈ   ÚwaitÚKeyboardInterrupt)rT   Ú	cmd_partsr)   ÚcmdÚ
cmd_paramsÚcmd_filepathÚcmd_pathÚcmd_namerÛ   rÖ   Ú
less_flagsÚcrØ   Úes                 rC   rÃ   rÃ   œ  s  € ñ ØØ
�A‰,€CØ˜1˜2�€Jä˜“:€LÙØä�LÓ!×)Ñ)Ó+€HØ�}‰}€Hãô Œr�z‰zÓ
€Cð €}˜ VÒ+ÜŸ
™
Ÿ™ v¨rÓ2Ð3°C·H±H¸ZÓ4HÐ3IÐJˆ
ÙØˆC�‰KØ‰EØ�JÑ #¨Ñ"3ØˆEà×ÑÜ	ˆX‹ˆ˜*Ñ$ØØ�o‰oØØØð 	ó 	€Að �7‰7ÐÐÐð'Øò 	 ˆDÙÜ! $Ó'�à�G‰G�M‰M˜$Õñ		 ð"	Ø�G‰G�M‰MŒOð ðØ—‘”ð àøôG ò áÜò ð
 	
�‰ŒØˆûðûô ò 	Ùð	ûô %ò Ùðúð øð	Ø�G‰G�M‰M�Oøô ò 	Ùð	úð ðØ—‘”ð øô %ò Ùðúð ús¢   Ã)/E ÄF ÄE5 Ä6F Å	E2ÅF ÅE2ÅE-Å-E2Å2F Å5	FÆ FÆ	FÆFÆG#ÆF1Æ0G#Æ1	F=Æ:G#Æ<F=Æ=G#ÇGÇG#Ç	GÇG#ÇGÇG#c                ó˜  — |sy|d   }t        |«      }|syt        |«      j                  «       }ddl}ddl}|j                  «       \  }}	dj                  | «      }
|st        |
«      }
t        t        j                  «      }t        |	d«      d   5 }|j                  |
j                  |«      «       ddd«       	 |j                  t        |«      |	g«       t#        j$                  |«       t#        j&                  |	«       y# 1 sw Y   ŒQxY w# t         $ r Y ŒBw xY w# t#        j$                  |«       t#        j&                  |	«       w xY w)z±Page through text by invoking a program on a temporary file.

    Returns `True` if the command was found, `False` otherwise and thus another
    pager should be attempted.
    Fr   Nr   ÚwbT)r   r   rÙ   rÛ   rÆ   rÇ   r   r   r   rº   rÊ   r   rZ   ÚencodeÚcallru   ÚOSErrorr¿   rÈ   rÉ   )rT   rä   r)   rå   rç   rè   rÛ   rÆ   rÌ   rÍ   rØ   ÚencodingÚfs                rC   rÂ   rÂ   ö  s  € ñ ØØ
�A‰,€Cä˜“:€LÙØä�LÓ!×)Ñ)Ó+€HãÛà×#Ñ#Ó%�L€Bˆà�7‰7�9Ó€DÙÜ˜$ÓˆÜ ¤§¡Ó,€HÜ	�X˜tÓ	$ QÑ	'ð '¨1Ø	�‰�—‘˜HÓ%Ô&÷'ðØ�‰œ˜X›¨Ð1Ô2ô
 	�‰�ŒÜ
�	‰	�(Ôà÷'ð 'ûô ò áðûô 	�‰�ŒÜ
�	‰	�(Õús0   Â!DÂ;D ÄDÄ	DÄD ÄDÄD Ä,E	c                óN   — |D ]   }|st        |«      }| j                  |«       Œ" y)z>Simply print unformatted text.  This is the ultimate fallback.N)r   rZ   )ÚstreamrT   r)   rØ   s       rC   r¼   r¼      s,   € ð ò ˆÙÜ˜dÓ#ˆDØ�‰�TÕñrE   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 rK   )ÚeditorrÖ   Úrequire_saveÚ	extension)rA   rù   rÖ   rú   rû   s        rC   rD   zEditor.__init__+  s!   € ð ˆŒØˆŒØ(ˆÔØ"ˆ�rE   c                óÆ   — | j                   �| j                   S dD ]'  }t        j                  j                  |«      }|sŒ%|c S  t        rydD ]  }t        |«      €Œ|c S  y)N)ÚVISUALÚEDITORÚnotepad)zsensible-editorÚvimÚnanoÚvi)rù   r¿   rÀ   rÁ   r   r   )rA   Úkeyr£   rù   s       rC   Ú
get_editorzEditor.get_editor7  sj   € Ø�;‰;Ð"Ø—;‘;ÐØ%ò 	ˆCÜ—‘—‘ Ó$ˆBÚØ’	ð	õ ØØ6ò 	ˆFÜ�V‹}Ñ(Ø’ð	ð rE   c                óþ  — dd l }| j                  «       }d }| j                  r9t        j                  j                  «       }|j                  | j                  «       dj                  d„ |D «       «      }	 |j                  |› d|› �|d¬«      }|j                  «       }|dk7  r$t        t        d«      j                  |¬«      «      ‚y # t        $ r+}t        t        d«      j                  ||¬	«      «      |‚d }~ww xY w)
Nr   rŒ   c              3  ó(   K  — | ]
  }d |› d �–— Œ y­w)ú"Nr°   )Ú.0rÍ   s     rC   ú	<genexpr>z$Editor.edit_files.<locals>.<genexpr>O  s   è ø€ ÒJ°H ! H :¨Q¤ÑJùs   ‚T)ÚargsrÖ   rÕ   z{editor}: Editing failed)rù   z{editor}: Editing failed: {e})rù   rì   )rÛ   r  rÖ   r¿   rÀ   ÚcopyrŸ   r   rÝ   râ   r   Ú_Úformatrñ   )	rA   Ú	filenamesrÛ   rù   rÀ   Úexc_filenamerë   Ú	exit_coderì   s	            rC   Ú
edit_fileszEditor.edit_filesE  sõ   € Ûà—‘Ó"ˆØ)-ˆà�8Š8Ü—j‘j—o‘oÓ'ˆGØ�N‰N˜4Ÿ8™8Ô$à—x‘xÑJÀ	ÔJÓJˆð	Ø× Ñ Ø�x˜q  Ð/°WÀDð !ó ˆAð Ÿ™›ˆIØ˜AŠ~Ü$ÜÐ0Ó1×8Ñ8ÀÐ8ÓGóð ð øô ò 	Ü ÜÐ1Ó2×9Ñ9ÀÈ1Ð9ÓMóàðûð	ús   Á5AC Ã	C<Ã&C7Ã7C<c                 ó   — y rK   r°   ©rA   rØ   s     rC   ÚeditzEditor.edit_  s   € Ø=@rE   c                 ó   — y rK   r°   r  s     rC   r  zEditor.editd  s   € Ø47rE   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   rE   r   z
z	utf-8-sigzutf-8zeditor-)ÚprefixÚsuffixrî   é   Úrb)rÆ   Ú
isinstanceÚbytesÚ	bytearrayÚendswithr   rÔ   rï   rÇ   rû   r¿   ÚfdopenrZ   ÚutimeÚpathÚgetatimeÚgetmtimer  rú   rÉ   ÚopenÚreadÚdecode)	rA   rØ   rÆ   ÚdatarÌ   rÚ   ró   Ú	timestampr£   s	            rC   r  zEditor.editg  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û   ru   r©   rª   r«   )r  úcabc.Iterable[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®   rD   r  r  r0   Úoverloadr  r°   rE   rC   r÷   r÷   *  s|   „ ð "Ø-1Ø!Øð
#àð
#ð +ð
#ð ð	
#ð
 ð
#ð 
ó
#óóð4 ‡Z�ZÚ@ó Ø@ð ‡Z�ZÚ7ó Ø7ô-rE   r÷   c                ó`  — 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        r\|r || «      } d
d| › �g}n8dg}|r|j                  d«       |j                  d«       |j                  | «       	 |j                  |«      S 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/ | 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.parser-  rÅ   )Úurlr-  s     rC   Ú_unquote_filezopen_url.<locals>._unquote_fileš  s&   € Ý(à�>‰>˜)Ô$Ù˜#˜a˜b˜'Ó"ˆCàˆ
rE   Údarwinr$  z-WrÑ   z	/dev/nullÚw)ÚstderrÚexplorerz/select,r8   z/WAITr   é   Úcygstartz-wú.zxdg-open)zhttp://zhttps://r	   )r0  ru   r©   ru   )rÛ   rº   rÄ   r†   r$  rÝ   râ   rÈ   r   rð   rñ   r   r¿   r!  ÚdirnamerÅ   Ú
webbrowser)	r0  râ   ÚlocaterÛ   r1  r
  Únullrë   r:  s	            rC   Úopen_urlr=  —  s  € Ûóô ‡|�|�xÒØˆxˆÙØ�K‰K˜ÔÙØ�K‰K˜ÔØ�‰‘M #Ó&Ô'Ü�K Ó%ˆð	Ø×#Ñ# D°Ð#Ó6×;Ñ;Ó=à�J‰J�LÝ	ÙÙ Ó$ˆCØ (¨3¨%Ð 0Ð1‰Dà�9ˆDÙØ—‘˜GÔ$Ø�K‰K˜ŒOØ�K‰K˜Ôð	Ø—?‘? 4Ó(Ð(õ 
ÙÙ Ó$ˆCØ¤§¡§¡°Ó 4Ð5‰Dà�<ˆDÙØ—‘˜DÔ!Ø�K‰K˜Ôð	Ø—?‘? 4Ó(Ð(ð
ÙÜ—'‘'—/‘/¡-°Ó"4Ó5Ò<¸‰Cá Ó$ˆCØ×Ñ˜j¨#Ð.Ó/ˆÙØ—6‘6“8ˆOØøðO �J‰J�Lûô ò 	áð	ûô ò 	áð	ûô ò Ø�>‰>Ð1Ô2¹6É$Ûà�O‰O˜CÔ ÙÙðúsC   Á) G Ã+G ÅG& Å(AG5 ÇGÇ	G#Ç"G#Ç&	G2Ç1G2Ç53H-È,H-c                óv   — | dk(  r
t        «       ‚| dk(  rt        s
t        «       ‚| dk(  rt        r
t        «       ‚y )Núúú)rã   r   ÚEOFError)Úchs    rC   Ú_translate_ch_to_excrD  Þ  s7   € Ø	ˆV‚|ÜÓ!Ð!à	ˆV‚|�CÜ‹jÐà	ˆV‚|�Ü‹jÐàrE   Úwin32c               #  ó   K  — d–— y ­w)Nr   r°   r°   rE   rC   Úraw_terminalrG  î  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)ú õ   Ã )r0   r1   ÚCallableru   ÚmsvcrtÚgetwcheÚgetwchrD  )r   Úfuncr£   s      rC   ÚgetcharrP  ò  ss   € ñ> Ü—6‘6œ!Ÿ*™* R¬ WÑ-¬v¯~©~Ó>‰Dä—6‘6œ!Ÿ*™* R¬ WÑ-¬v¯}©}Ó=ˆDá‹VˆàÐ!Ñ!ð ‘$“&‰LˆBä˜RÔ Øˆ	rE   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»   r$  ÚfilenoÚtermiosÚ	tcgetattrÚttyÚsetrawÚ	tcsetattrÚ	TCSADRAINrÊ   r\   rÈ   Úerror)ró   rÌ   Úold_settingss      rC   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¿   r%  r&  r   rº   r»   r   rÊ   rZ   rD  )r   rÌ   rC  s      rC   rP  rP  ?  so   € Ü‹^ð 	˜rÜ—‘˜˜R“×'Ñ'Ô(9¼#¿)¹)Ó(DÀiÓPˆBáœœsŸz™zÔ*Ü—
‘
× Ñ  Ô$ä  Ô$Ø÷	÷ 	ò 	ús   ‹BBÂB"rK   )rT   r)  r)   r§   r©   rª   )rT   r)  rä   z	list[str]r)   r§   r©   r¦   )rõ   zt.TextIOrT   r)  r)   r§   r©   rª   )FF)r0  ru   râ   r¦   r;  r¦   r©   rn   )rC  ru   r©   rª   )r©   zcabc.Iterator[int])r   r¦   r©   ru   ):Ú__doc__Ú
__future__r   Úcollections.abcÚabcÚcabcÚ
contextlibr}   r¿   r½   rº   r7   Útypingr0   r   r  Úior   Úpathlibr   rŽ   r   Útypesr   Ú_compatr
   r   r   r   r   r   r   r   Ú
exceptionsr   Úutilsr   ÚTypeVarr   rÚ   r’   r[   ÚGenericr   rÎ   rÃ   rÂ   r¼   r÷   r=  rD  rÄ   rL  ÚcontextmanagerrG  rP  rS  rU  r°   rE   rC   ú<module>rm     s‚  ðñõ #å Û Û Û 	Û Û 
Û Û Ý  Ý Ý Ý Ý å )Ý Ý &Ý Ý  Ý Ý Ý Ý &Ý à€A‡I�IˆcƒN€à‡7�7ˆd‚?Ø€JØ�Ià€JØ€IôC#�!—)‘)˜A‘,ô C#ôL
'ðTWØ!ðWØ.7ðWØ@KðWà	óWðt'Ø!ð'Ø.7ð'Ø@Kð'à	ó'ðTØðØ!3ðØ<Gðà	ó÷jñ jôZDóN
ð ‡<�<�7ÒÛà×Ñòó ðô,ó^ Ûà×Ñòó ðô4rE   