§
    ì phÅë  ã            +       óà  — d dl Z d dlZd dlZd dlZd dlmZmZ d dlmZ d dl	m
Z
mZ d dlmZ d dl mZmZ d dlmZ d dlmZ d d	lmZ d d
lmZmZ d dlmZmZmZ d dlmZ d dlmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/ ej0        dk    rd dlm1Z1 nd dl2m1Z1 ej0        dk    rd dlm3Z3 nd dl2m3Z3 ddl4m5Z5m6Z6 ddl7m8Z8m9Z9m:Z:m;Z; ddl<m=Z= ddl>m?Z? ddl@mAZA ddlBmCZC ddlDmEZE ddlFmGZG ddlHmIZImJZJ ddlKmLZLmMZM  e(deN¦  «        ZO e.d¦  «        ZPe g eQf         ZR ej.        de+e¦  «        ZS G d „ d!e¦  «        ZT	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d—d+e/e*eP         e%eP         f         d,eUd-e)eQ         d.eNd/eVd0e)e8         d1eVd2e)e g eQf                  d3eQd4eGd5eGd6eGd7eGd8eQd9eVd:eVd;e%eP         f"d<„ZW G d=„ d>ee¦  «        ZX G d?„ d@e!eS         e$eS         ¦  «        ZYdAd#dd$dd%d&d'd(d)d$dBœdCed-eNd,eUd/eVd0e)e8         d1eVd2e)e g eQf                  d3eQd4eGd5eGd6eGd7eGd9eVd;e!e         fdD„ZZej[        	 	 	 	 d˜ddAd#dd$dd%d&d'd(d)d$dFœdCe/eUdGe\f         dHe/e1dI         e1dJ         f         dKeNdLe)eU         dMe)eU         dNe)eU         d-e)eN         d,eUd/eVd0e)e8         d1eVd2e)e g eQf                  d3eQd4eGd5eGd6eGd7eGd9eVd;e!e+         f&dO„¦   «         Z]ej[        	 	 	 	 d˜ddAd#dd$dd%d&d'd(d)d$dFœdCe/eUdGe\f         dHe1dP         dKeNdLe)eU         dMe)eU         dNe)eU         d-e)eN         d,eUd/eVd0e)e8         d1eVd2e)e g eQf                  d3eQd4eGd5eGd6eGd7eGd9eVd;e!e         f&dQ„¦   «         Z]	 	 	 	 	 d™ddAd#dd$dd%d&d'd(d)d$dFœdCe/eUdGe\f         dHe/e1dP         e1dI         e1dJ         f         dKeNdLe)eU         dMe)eU         dNe)eU         d-e)eN         d,eUd/eVd0e)e8         d1eVd2e)e g eQf                  d3eQd4eGd5eGd6eGd7eGd9eVd;e/e!e         e!e+         f         f&dR„Z] G dS„ dTe¦  «        Z^ G dU„ dVe^¦  «        Z_ G dW„ dXe^¦  «        Z` G dY„ dZe^¦  «        Za G d[„ d\e^¦  «        Zb G d]„ d^e^¦  «        Zc G d_„ d`ea¦  «        Zd G da„ dbe^¦  «        Ze G dc„ dde^¦  «        Zf G de„ dfe^¦  «        Zg G dg„ dhe^¦  «        Zh G di„ dje^¦  «        Zi G dk„ dle^¦  «        Zj G dm„ dne'¦  «        Zke
 G do„ dp¦  «        ¦   «         Zl G dq„ dre?¦  «        Zmendsk    �rŸd dloZod dlpZpddtlqmrZr ddulsmtZt ddvlumvZv ddwlHmJZJ  evdxdyd#¬z¦  «        Zu eJd{d|d}¦  «        ZHeH w                    d~dd€¦  «         d� erd‚¦  «        dƒeHd„d…d†d‡œdˆeu etd‰¦  «        g	Zxd dŠlymzZz  ezex¦  «        Z{ e8d#¬‹¦  «        Z7 em e`¦   «         gem |                    ¦   «         ¢ ec¦   «         ‘R e7d$dŒœŽ5 Z}e} ~                    d�dŽ¬�¦  «        Ze} ~                    d�dŽ¬�¦  «        Z€e} ~                    d‘d¬�¦  «        Z�e}j‚        sxe} ƒ                    ed’¬“¦  «         e} ƒ                    e€d”¬“¦  «          epj„        d•¦  «          eoj…        d d–¦  «        dk     re} †                     e‡e{¦  «        ¦  «         e}j‚        ¯xddd¦  «         dS # 1 swxY w Y   dS dS )šé    N)ÚABCÚabstractmethod©Údeque)Ú	dataclassÚfield)Ú	timedelta)Ú	RawIOBaseÚUnsupportedOperation)Úceil)Úmmap)Úlength_hint)ÚPathLikeÚstat)ÚEventÚRLockÚThread)ÚTracebackType)ÚAnyÚBinaryIOÚCallableÚContextManagerÚDequeÚDictÚGenericÚIterableÚListÚ
NamedTupleÚNewTypeÚOptionalÚSequenceÚTextIOÚTupleÚTypeÚTypeVarÚUnion)é   é   )ÚLiteral)r'   é   )ÚSelfé   )ÚfilesizeÚget_console)ÚConsoleÚGroupÚJustifyMethodÚRenderableType)ÚHighlighter)ÚJupyterMixin)ÚLive)ÚProgressBar)ÚSpinner)Ú	StyleType)ÚColumnÚTable)ÚTextÚTextTypeÚTaskIDÚProgressTypeÚ_Ic                   óˆ   ‡ — e Zd ZdZdddddefˆ fd„Zdd
„Zdd„Zdee	e
                  dee
         dee         dd	fd„Zˆ xZS )Ú_TrackThreadz)A thread to periodically update progress.ÚprogressÚProgressÚtask_idr=   Úupdate_periodc                 óª   •— || _         || _        || _        t          ¦   «         | _        d| _        t          ¦   «                              d¬¦  «         d S )Nr   T)Údaemon)rB   rD   rE   r   ÚdoneÚ	completedÚsuperÚ__init__)ÚselfrB   rD   rE   Ú	__class__s       €úfC:\Users\Daniel\PycharmProjects\Portfolio_Website\.venv\Lib\site-packages\pip\_vendor\rich\progress.pyrK   z_TrackThread.__init__G   sL   ø€ Ø ˆŒØˆŒØ*ˆÔÝ‘G”GˆŒ	àˆŒÝ‰Œ×Ò ÐÑ%Ô%Ð%Ð%Ð%ó    ÚreturnNc                 óP  — | j         }| j        j        }| j        }d}| j        j        } ||¦  «        sK| j        j        j        r:| j        }||k    r ||||z
  ¦  «         |} ||¦  «        s| j        j        j        °:| j         	                    | j         | j        d¬¦  «         d S )Nr   T)rI   Úrefresh)
rD   rB   ÚadvancerE   rH   ÚwaitÚliveÚ
is_startedrI   Úupdate)rL   rD   rS   rE   Úlast_completedrT   rI   s          rN   Úrunz_TrackThread.runP   sÆ   € Ø”,ˆØ”-Ô'ˆØÔ*ˆØˆØŒyŒ~ˆØ�$�}Ñ%Ô%ð 	+¨$¬-Ô*<Ô*Gð 	+ØœˆIØ Ò*ð +Ø�˜ ¨^Ñ!;Ñ<Ô<Ð<Ø!*�ð	 �$�}Ñ%Ô%ð 	+¨$¬-Ô*<Ô*Gð 	+ð 	Œ×Ò˜Tœ\°T´^ÈTÐÑRÔRÐRÐRÐRrO   c                 ó.   — |                       ¦   «          | S ©N©Ústart©rL   s    rN   Ú	__enter__z_TrackThread.__enter__^   ó   € Ø�
Š
‰ŒˆØˆrO   Úexc_typeÚexc_valÚexc_tbc                 ó`   — | j                              ¦   «          |                      ¦   «          d S r[   )rH   ÚsetÚjoin©rL   ra   rb   rc   s       rN   Ú__exit__z_TrackThread.__exit__b   s$   € ð 	Œ	�Š‰ŒˆØ�	Š	‰ŒˆˆˆrO   ©rP   N)rP   rA   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚfloatrK   rY   r_   r    r$   ÚBaseExceptionr   rh   Ú__classcell__©rM   s   @rN   rA   rA   D   sÒ   ø€ € € € € Ø3Ð3ð& ð &°hð &Èuð &ð &ð &ð &ð &ð &ðSð Sð Sð Sðð ð ð ðà˜4 Ô.Ô/ðð ˜-Ô(ðð ˜Ô'ð	ð
 
ðð ð ð ð ð ð ð rO   rA   ú
Working...TFé
   úbar.backúbar.completeúbar.finishedú	bar.pulseçš™™™™™¹?ÚsequenceÚdescriptionÚtotalrI   Úauto_refreshÚconsoleÚ	transientÚget_timeÚrefresh_per_secondÚstyleÚcomplete_styleÚfinished_styleÚpulse_stylerE   ÚdisableÚ
show_speedrP   c           
   #   óX  K  — |rt          d¦  «        gng }|                     t          |	|
||¬¦  «        t          |¬¦  «        t	          d¬¦  «        f¦  «         t          ||||||pd|dœŽ}|5  |                     | ||||¬¦  «        E d	{V —† d	d	d	¦  «         d	S # 1 swxY w Y   d	S )
a=  Track progress by iterating over a sequence.

    Args:
        sequence (Iterable[ProgressType]): A sequence (must support "len") you wish to iterate over.
        description (str, optional): Description of task show next to progress bar. Defaults to "Working".
        total: (float, optional): Total number of steps. Default is len(sequence).
        completed (int, optional): Number of steps completed so far. Defaults to 0.
        auto_refresh (bool, optional): Automatic refresh, disable to force a refresh after each iteration. Default is True.
        transient: (bool, optional): Clear the progress on exit. Defaults to False.
        console (Console, optional): Console to write to. Default creates internal Console instance.
        refresh_per_second (float): Number of times per second to refresh the progress information. Defaults to 10.
        style (StyleType, optional): Style for the bar background. Defaults to "bar.back".
        complete_style (StyleType, optional): Style for the completed bar. Defaults to "bar.complete".
        finished_style (StyleType, optional): Style for a finished bar. Defaults to "bar.finished".
        pulse_style (StyleType, optional): Style for pulsing bars. Defaults to "bar.pulse".
        update_period (float, optional): Minimum time (in seconds) between calls to update(). Defaults to 0.1.
        disable (bool, optional): Disable display of progress.
        show_speed (bool, optional): Show speed if total isn't known. Defaults to True.
    Returns:
        Iterable[ProgressType]: An iterable of the values in the sequence.

    ú([progress.description]{task.description}©r�   r‚   rƒ   r„   )r†   T)Úelapsed_when_finishedrs   ©r|   r}   r~   r   r€   r…   )r{   rI   rz   rE   N)Ú
TextColumnÚextendÚ	BarColumnÚTaskProgressColumnÚTimeRemainingColumnrC   Útrack)ry   rz   r{   rI   r|   r}   r~   r   r€   r�   r‚   rƒ   r„   rE   r…   r†   ÚcolumnsrB   s                     rN   r‘   r‘   l   sg  è è € ðT EPÐW�Ð>Ñ	?Ô	?Ð@Ð@ÐUWð ð ‡N‚NåØØ-Ø-Ø'ð	ñ ô õ ¨*Ð5Ñ5Ô5Ý°dÐ;Ñ;Ô;ð		
ñô ð õ Ø	Ø!ØØØØ-Ð3°Øðð ð €Hð 
ð 
ð 
Ø—>’>ØØØØ#Ø'ð "ñ 
ô 
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð
ð 
ð 
ñ 
ô 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
øøøð 
ð 
ð 
ð 
ð 
ð 
s   Á1!BÂB#Â&B#c                   óà  — e Zd ZdZ	 d,dedddededd	f
d
„Zd-d„Zde	e
e                  de	e         de	e         dd	fd„Zdefd„Zdefd„Zedefd„¦   «         Zdefd„Zdefd„Zedefd„¦   «         Zedefd„¦   «         Zdefd„Zdefd„Zdefd„Zd.dedefd„Zdeeee f         fd„Z!d.dedefd„Z"d.d ede#e         fd!„Z$d/d"„Z%d0d$ed%edefd&„Z&defd'„Z'd(e(defd)„Z)d*e*e(         dd	fd+„Z+d	S )1Ú_Readerz9A reader that tracks progress while it's being read from.TÚhandlerB   rC   ÚtaskÚclose_handlerP   Nc                 óL   — || _         || _        || _        || _        d| _        d S ©NF)r•   rB   r–   r—   Ú_closed)rL   r•   rB   r–   r—   s        rN   rK   z_Reader.__init__»   s,   € ð ˆŒØ ˆŒØˆŒ	Ø(ˆÔØˆŒˆˆrO   c                 ó8   — | j                              ¦   «          | S r[   )r•   r_   r^   s    rN   r_   z_Reader.__enter__È   s   € ØŒ×ÒÑÔÐØˆrO   ra   rb   rc   c                 ó.   — |                       ¦   «          d S r[   )Úcloserg   s       rN   rh   z_Reader.__exit__Ì   s   € ð 	�
Š
‰ŒˆˆˆrO   c                 ó   — | S r[   © r^   s    rN   Ú__iter__z_Reader.__iter__Ô   s   € ØˆrO   c                 óŠ   — t          | j        ¦  «        }| j                             | j        t          |¦  «        ¬¦  «         |S ©N©rS   )Únextr•   rB   rS   r–   Úlen)rL   Úlines     rN   Ú__next__z_Reader.__next__×   s9   € Ý�D”KÑ Ô ˆØŒ×Ò˜dœiµ°T±´ÐÑ;Ô;Ð;ØˆrO   c                 ó   — | j         S r[   )rš   r^   s    rN   Úclosedz_Reader.closedÜ   s
   € àŒ|ÐrO   c                 ó4   — | j                              ¦   «         S r[   )r•   Úfilenor^   s    rN   r«   z_Reader.filenoà   ó   € ØŒ{×!Ò!Ñ#Ô#Ð#rO   c                 ó4   — | j                              ¦   «         S r[   )r•   Úisattyr^   s    rN   r®   z_Reader.isattyã   r¬   rO   c                 ó   — | j         j        S r[   )r•   Úmoder^   s    rN   r°   z_Reader.modeæ   ó   € àŒ{ÔÐrO   c                 ó   — | j         j        S r[   )r•   Únamer^   s    rN   r³   z_Reader.nameê   r±   rO   c                 ó4   — | j                              ¦   «         S r[   )r•   Úreadabler^   s    rN   rµ   z_Reader.readableî   ó   € ØŒ{×#Ò#Ñ%Ô%Ð%rO   c                 ó4   — | j                              ¦   «         S r[   )r•   Úseekabler^   s    rN   r¸   z_Reader.seekableñ   r¶   rO   c                 ó   — dS r™   rŸ   r^   s    rN   Úwritablez_Reader.writableô   s   € ØˆurO   éÿÿÿÿÚsizec                 ó–   — | j                              |¦  «        }| j                             | j        t          |¦  «        ¬¦  «         |S r¢   )r•   ÚreadrB   rS   r–   r¥   )rL   r¼   Úblocks      rN   r¾   z_Reader.read÷   s?   € Ø”× Ò  Ñ&Ô&ˆØŒ×Ò˜dœiµ°U±´ÐÑ<Ô<Ð<ØˆrO   Úbc                 ó|   — | j                              |¦  «        }| j                             | j        |¬¦  «         |S r¢   )r•   ÚreadintorB   rS   r–   )rL   rÀ   Úns      rN   rÂ   z_Reader.readintoü   s9   € ØŒK× Ò  Ñ#Ô#ˆØŒ×Ò˜dœi°ÐÑ3Ô3Ð3ØˆrO   c                 ó–   — | j                              |¦  «        }| j                             | j        t          |¦  «        ¬¦  «         |S r¢   )r•   ÚreadlinerB   rS   r–   r¥   )rL   r¼   r¦   s      rN   rÅ   z_Reader.readline  s?   € ØŒ{×#Ò# DÑ)Ô)ˆØŒ×Ò˜dœiµ°T±´ÐÑ;Ô;Ð;ØˆrO   Úhintc           	      ó¼   — | j                              |¦  «        }| j                             | j        t          t          t          |¦  «        ¦  «        ¬¦  «         |S r¢   )r•   Ú	readlinesrB   rS   r–   ÚsumÚmapr¥   )rL   rÆ   Úliness      rN   rÈ   z_Reader.readlines  sI   € Ø”×%Ò% dÑ+Ô+ˆØŒ×Ò˜dœiµµS½¸e±_´_Ñ1EÔ1EÐÑFÔFÐFØˆrO   c                 óT   — | j         r| j                             ¦   «          d| _        d S )NT)r—   r•   r�   rš   r^   s    rN   r�   z_Reader.close  s,   € ØÔð 	 ØŒK×ÒÑÔÐØˆŒˆˆrO   r   ÚoffsetÚwhencec                 ó~   — | j                              ||¦  «        }| j                             | j        |¬¦  «         |S )N©rI   )r•   ÚseekrB   rW   r–   )rL   rÍ   rÎ   Úposs       rN   rÑ   z_Reader.seek  s;   € ØŒk×Ò˜v vÑ.Ô.ˆØŒ×Ò˜TœY°#ÐÑ6Ô6Ð6Øˆ
rO   c                 ó4   — | j                              ¦   «         S r[   )r•   Útellr^   s    rN   rÔ   z_Reader.tell  s   € ØŒ{×ÒÑ!Ô!Ð!rO   Úsc                 ó    — t          d¦  «        ‚)NÚwrite©r   )rL   rÕ   s     rN   r×   z_Reader.write  s   € Ý" 7Ñ+Ô+Ð+rO   rË   c                 ó    — t          d¦  «        ‚)NÚ
writelinesrØ   )rL   rË   s     rN   rÚ   z_Reader.writelines  s   € Ý" <Ñ0Ô0Ð0rO   )T)rP   r”   )r»   ri   )r   ),rj   rk   rl   rm   r   r=   ÚboolrK   r_   r    r$   ro   r   rh   r    Úbytesr§   Úpropertyr©   Úintr«   r®   Ústrr°   r³   rµ   r¸   rº   r¾   r&   Ú	bytearrayÚ
memoryviewr   rÂ   rÅ   r   rÈ   r�   rÑ   rÔ   r   r×   r   rÚ   rŸ   rO   rN   r”   r”   ¸   sA  € € € € € ØCÐCð "ðð àðð ðð ð	ð
 ðð 
ðð ð ð ðð ð ð ðà˜4 Ô.Ô/ðð ˜-Ô(ðð ˜Ô'ð	ð
 
ðð ð ð ð˜(ð ð ð ð ð˜%ð ð ð ð ð
 ð˜ð ð ð ñ „Xðð$˜ð $ð $ð $ð $ð$˜ð $ð $ð $ð $ð ð �cð  ð  ð  ñ „Xð ð ð �cð  ð  ð  ñ „Xð ð&˜$ð &ð &ð &ð &ð&˜$ð &ð &ð &ð &ð˜$ð ð ð ð ðð ˜ð  eð ð ð ð ð
˜% 	¨:°tÐ ;Ô<ð ð ð ð ð
ð ˜Sð ¨%ð ð ð ð ð
ð ˜cð ¨4°¬;ð ð ð ð ð
ð ð ð ð
ð ˜3ð ¨ð °Cð ð ð ð ð
"�cð "ð "ð "ð "ð,�sð ,˜sð ,ð ,ð ,ð ,ð1 ¨¤ð 1°$ð 1ð 1ð 1ð 1ð 1ð 1rO   r”   c                   óz   — e Zd ZdZdddeddfd„Zdefd„Zd	eee	                  d
ee	         dee
         ddfd„ZdS )Ú_ReadContextzEA utility class to handle a context for both a reader and a progress.rB   rC   ÚreaderrP   Nc                 ó"   — || _         || _        d S r[   )rB   rä   )rL   rB   rä   s      rN   rK   z_ReadContext.__init__"  s   € Ø ˆŒØ ˆŒˆˆrO   c                 óf   — | j                              ¦   «          | j                             ¦   «         S r[   )rB   r]   rä   r_   r^   s    rN   r_   z_ReadContext.__enter__&  s*   € ØŒ×ÒÑÔÐØŒ{×$Ò$Ñ&Ô&Ð&rO   ra   rb   rc   c                 óp   — | j                              ¦   «          | j                             |||¦  «         d S r[   )rB   Ústoprä   rh   rg   s       rN   rh   z_ReadContext.__exit__*  s8   € ð 	Œ×ÒÑÔÐØŒ×Ò˜X w°Ñ7Ô7Ð7Ð7Ð7rO   )rj   rk   rl   rm   r?   rK   r_   r    r$   ro   r   rh   rŸ   rO   rN   rã   rã     s¬   € € € € € ØOÐOð! ð !°Rð !¸Dð !ð !ð !ð !ð'˜2ð 'ð 'ð 'ð 'ð8à˜4 Ô.Ô/ð8ð ˜-Ô(ð8ð ˜Ô'ð	8ð
 
ð8ð 8ð 8ð 8ð 8ð 8rO   rã   ú
Reading...)rz   r|   r}   r~   r   r€   r�   r‚   rƒ   r„   r…   Úfilec          
      ó"  — |rt          d¦  «        gng }|                     t          ||	|
|¬¦  «        t          ¦   «         t	          ¦   «         f¦  «         t          ||||||pd|dœŽ}|                     | ||¬¦  «        }t          ||¦  «        S )a  Read bytes from a file while tracking progress.

    Args:
        file (Union[str, PathLike[str], BinaryIO]): The path to the file to read, or a file-like object in binary mode.
        total (int): Total number of bytes to read.
        description (str, optional): Description of task show next to progress bar. Defaults to "Reading".
        auto_refresh (bool, optional): Automatic refresh, disable to force a refresh after each iteration. Default is True.
        transient: (bool, optional): Clear the progress on exit. Defaults to False.
        console (Console, optional): Console to write to. Default creates internal Console instance.
        refresh_per_second (float): Number of times per second to refresh the progress information. Defaults to 10.
        style (StyleType, optional): Style for the bar background. Defaults to "bar.back".
        complete_style (StyleType, optional): Style for the completed bar. Defaults to "bar.complete".
        finished_style (StyleType, optional): Style for a finished bar. Defaults to "bar.finished".
        pulse_style (StyleType, optional): Style for pulsing bars. Defaults to "bar.pulse".
        disable (bool, optional): Disable display of progress.
    Returns:
        ContextManager[BinaryIO]: A context manager yielding a progress reader.

    rˆ   r‰   rs   r‹   )r{   rz   )rŒ   r�   rŽ   ÚDownloadColumnr�   rC   Ú	wrap_filerã   )rê   r{   rz   r|   r}   r~   r   r€   r�   r‚   rƒ   r„   r…   r’   rB   rä   s                   rN   rí   rí   4  sÑ   € ðJ EPÐW�Ð>Ñ	?Ô	?Ð@Ð@ÐUWð ð ‡N‚NåØØ-Ø-Ø'ð	ñ ô õ ÑÔÝÑ!Ô!ð		
ñô ð õ Ø	Ø!ØØØØ-Ð3°Øðð ð €Hð ×Ò ¨E¸{ÐÑKÔK€FÝ˜ &Ñ)Ô)Ð)rO   r»   )r{   rz   r|   r}   r~   r   r€   r�   r‚   rƒ   r„   r…   úPathLike[str]r°   ÚrtÚrÚ	bufferingÚencodingÚerrorsÚnewlinec                ó   — d S r[   rŸ   ©rê   r°   rñ   rò   ró   rô   r{   rz   r|   r}   r~   r   r€   r�   r‚   rƒ   r„   r…   s                     rN   Úopenr÷   u  ó	   € ð, 	€DrO   Úrbc                ó   — d S r[   rŸ   rö   s                     rN   r÷   r÷   Ž  rø   rO   c          
      ó,  — |rt          d¦  «        gng }|                     t          ||||¬¦  «        t          ¦   «         t	          ¦   «         f¦  «         t          |||	|
||pd|dœŽ}|                     | |||||||¬¦  «        }t          ||¦  «        S )a®  Read bytes from a file while tracking progress.

    Args:
        path (Union[str, PathLike[str], BinaryIO]): The path to the file to read, or a file-like object in binary mode.
        mode (str): The mode to use to open the file. Only supports "r", "rb" or "rt".
        buffering (int): The buffering strategy to use, see :func:`io.open`.
        encoding (str, optional): The encoding to use when reading in text mode, see :func:`io.open`.
        errors (str, optional): The error handling strategy for decoding errors, see :func:`io.open`.
        newline (str, optional): The strategy for handling newlines in text mode, see :func:`io.open`
        total: (int, optional): Total number of bytes to read. Must be provided if reading from a file handle. Default for a path is os.stat(file).st_size.
        description (str, optional): Description of task show next to progress bar. Defaults to "Reading".
        auto_refresh (bool, optional): Automatic refresh, disable to force a refresh after each iteration. Default is True.
        transient: (bool, optional): Clear the progress on exit. Defaults to False.
        console (Console, optional): Console to write to. Default creates internal Console instance.
        refresh_per_second (float): Number of times per second to refresh the progress information. Defaults to 10.
        style (StyleType, optional): Style for the bar background. Defaults to "bar.back".
        complete_style (StyleType, optional): Style for the completed bar. Defaults to "bar.complete".
        finished_style (StyleType, optional): Style for a finished bar. Defaults to "bar.finished".
        pulse_style (StyleType, optional): Style for pulsing bars. Defaults to "bar.pulse".
        disable (bool, optional): Disable display of progress.
        encoding (str, optional): The encoding to use when reading in text mode.

    Returns:
        ContextManager[BinaryIO]: A context manager yielding a progress reader.

    rˆ   r‰   rs   r‹   )r°   rñ   rò   ró   rô   r{   rz   )rŒ   r�   rŽ   rì   r�   rC   r÷   rã   )rê   r°   rñ   rò   ró   rô   r{   rz   r|   r}   r~   r   r€   r�   r‚   rƒ   r„   r…   r’   rB   rä   s                        rN   r÷   r÷   §  sé   € ðb EPÐW�Ð>Ñ	?Ô	?Ð@Ð@ÐUWð ð ‡N‚NåØØ-Ø-Ø'ð	ñ ô õ ÑÔÝÑ!Ô!ð		
ñô ð õ Ø	Ø!ØØØØ-Ð3°Øðð ð €Hð �]Š]ØØØØØØØØð ñ 	ô 	€Fõ ˜ &Ñ)Ô)Ð)rO   c                   óˆ   — e Zd ZU dZdZee         ed<   ddee         ddfd„Z	defd„Z
dd	defd
„Zedd	defd„¦   «         ZdS )ÚProgressColumnz3Base class for a widget to use in progress display.NÚmax_refreshÚtable_columnrP   c                 ó0   — || _         i | _        d | _        d S r[   )Ú_table_columnÚ_renderable_cacheÚ_update_time)rL   rÿ   s     rN   rK   zProgressColumn.__init__  s    € Ø)ˆÔØMOˆÔØ-1ˆÔÐÐrO   c                 ó,   — | j         pt          ¦   «         S )z.Get a table column, used to build tasks table.)r  r9   r^   s    rN   Úget_table_columnzProgressColumn.get_table_column  s   € àÔ!Ð-¥V¡X¤XÐ-rO   r–   ÚTaskc                 ó  — |                      ¦   «         }| j        �>|j        s7	 | j        |j                 \  }}|| j        z   |k    r|S n# t
          $ r Y nw xY w|                      |¦  «        }||f| j        |j        <   |S )a  Called by the Progress object to return a renderable for the given task.

        Args:
            task (Task): An object containing information regarding the task.

        Returns:
            RenderableType: Anything renderable (including str).
        )r   rþ   rI   r  ÚidÚKeyErrorÚrender)rL   r–   Úcurrent_timeÚ	timestampÚ
renderables        rN   Ú__call__zProgressColumn.__call__  s¯   € ð —}’}‘”ˆØÔð 	&°´ð 	&ð&Ø(,Ô(>¸t¼wÔ(GÑ%�	˜:ð ˜tÔ/Ñ/°,Ò>ð &Ø%Ð%ð&øõ ð ð ð Ø�ðøøøð —[’[ Ñ&Ô&ˆ
Ø+7¸Ð*DˆÔ˜tœwÑ'ØÐs   ¤A
 Á

AÁAc                 ó   — dS )z"Should return a renderable object.NrŸ   ©rL   r–   s     rN   r
  zProgressColumn.render"  s   € € € rO   r[   )rj   rk   rl   rm   rþ   r    rn   Ú__annotations__r9   rK   r  r2   r  r   r
  rŸ   rO   rN   rý   rý   ý  sÇ   € € € € € € Ø=Ð=à#'€K�˜%”Ð'Ð'Ñ'ð2ð 2 X¨fÔ%5ð 2Àð 2ð 2ð 2ð 2ð
. &ð .ð .ð .ð .ð˜Vð ¨ð ð ð ð ð. ð1˜6ð 1 nð 1ð 1ð 1ñ „^ð1ð 1ð 1rO   rý   c                   óR   ‡ — e Zd ZdZ	 dddœdedee         fˆ fd„Zdd	d
efd„Zˆ xZ	S )ÚRenderableColumnz�A column to insert an arbitrary column.

    Args:
        renderable (RenderableType, optional): Any renderable. Defaults to empty string.
    Ú N©rÿ   r  rÿ   c                óZ   •— || _         t          ¦   «                              |¬¦  «         d S ©Nr  )r  rJ   rK   )rL   r  rÿ   rM   s      €rN   rK   zRenderableColumn.__init__.  s-   ø€ ð %ˆŒÝ‰Œ×Ò lÐÑ3Ô3Ð3Ð3Ð3rO   r–   r  rP   c                 ó   — | j         S r[   )r  r  s     rN   r
  zRenderableColumn.render4  s
   € ØŒÐrO   )r  )
rj   rk   rl   rm   r2   r    r9   rK   r
  rp   rq   s   @rN   r  r  '  s•   ø€ € € € € ðð ð ,.ð4ØSWð4ð 4ð 4Ø(ð4Ø@HÈÔ@Pð4ð 4ð 4ð 4ð 4ð 4ð˜6ð  nð ð ð ð ð ð ð ð rO   r  c                   ó–   ‡ — e Zd ZdZ	 	 	 	 	 ddedee         d	ed
edee	         f
ˆ fd„Z
	 	 ddedee         d	eddfd„Zdddefd„Zˆ xZS )ÚSpinnerColumna‰  A column with a 'spinner' animation.

    Args:
        spinner_name (str, optional): Name of spinner animation. Defaults to "dots".
        style (StyleType, optional): Style of spinner. Defaults to "progress.spinner".
        speed (float, optional): Speed factor of spinner. Defaults to 1.0.
        finished_text (TextType, optional): Text used when task is finished. Defaults to " ".
    Údotsúprogress.spinnerç      ð?ú NÚspinner_namer�   ÚspeedÚfinished_textrÿ   c                 óÚ   •— t          |||¬¦  «        | _        t          |t          ¦  «        rt	          j        |¦  «        n|| _        t          ¦   «                              |¬¦  «         d S )N©r�   r   r  )	r7   ÚspinnerÚ
isinstancerß   r;   Úfrom_markupr!  rJ   rK   )rL   r  r�   r   r!  rÿ   rM   s         €rN   rK   zSpinnerColumn.__init__B  sm   ø€ õ ˜|°5ÀÐFÑFÔFˆŒõ ˜-­Ñ-Ô-ð�DÔ˜]Ñ+Ô+Ð+àð 	Ôõ
 	‰Œ×Ò lÐÑ3Ô3Ð3Ð3Ð3rO   Úspinner_stylerP   c                 ó4   — t          |||¬¦  «        | _        dS )a-  Set a new spinner.

        Args:
            spinner_name (str): Spinner name, see python -m rich.spinner.
            spinner_style (Optional[StyleType], optional): Spinner style. Defaults to "progress.spinner".
            speed (float, optional): Speed factor of spinner. Defaults to 1.0.
        r#  N)r7   r$  )rL   r  r'  r   s       rN   Úset_spinnerzSpinnerColumn.set_spinnerR  s   € õ ˜|°=ÈÐNÑNÔNˆŒˆˆrO   r–   r  c                 óz   — |j         r| j        n+| j                             |                     ¦   «         ¦  «        }|S r[   )Úfinishedr!  r$  r
  r   )rL   r–   Útexts      rN   r
  zSpinnerColumn.rendera  s=   € ð Œ}ð6ˆDÔÐà”×$Ò$ T§]¢]¡_¤_Ñ5Ô5ð 	ð
 ˆrO   )r  r  r  r  N)r  r  )rj   rk   rl   rm   rß   r    r8   rn   r<   r9   rK   r)  r2   r
  rp   rq   s   @rN   r  r  8  s  ø€ € € € € ðð ð #Ø%7ØØ"%Ø)-ð4ð 4àð4ð ˜	Ô"ð4ð ð	4ð
  ð4ð ˜vÔ&ð4ð 4ð 4ð 4ð 4ð 4ð& .@Øð	Oð OàðOð   	Ô*ðOð ð	Oð
 
ðOð Oð Oð Oð˜6ð  nð ð ð ð ð ð ð ð rO   r  c                   ót   ‡ — e Zd ZdZ	 	 	 	 	 ddededed	ed
ee	         dee
         ddfˆ fd„Zdddefd„Zˆ xZS )rŒ   zA column containing text.ÚnoneÚleftTNÚtext_formatr�   ÚjustifyÚmarkupÚhighlighterrÿ   rP   c                 ó²   •— || _         || _        || _        || _        || _        t          ¦   «                              |pt          d¬¦  «        ¬¦  «         d S )NT©Úno_wrapr  )r0  r1  r�   r2  r3  rJ   rK   r9   )rL   r0  r�   r1  r2  r3  rÿ   rM   s          €rN   rK   zTextColumn.__init__m  s[   ø€ ð 'ˆÔØ&-ˆŒØˆŒ
ØˆŒØ&ˆÔÝ‰Œ×Ò lÐ&JµfÀTÐ6JÑ6JÔ6JÐÑKÔKÐKÐKÐKrO   r–   r  c                 ó  — | j                              |¬¦  «        }| j        r"t          j        || j        | j        ¬¦  «        }nt          || j        | j        ¬¦  «        }| j        r| j                             |¦  «         |S ©N©r–   )r�   r1  )	r0  Úformatr2  r;   r&  r�   r1  r3  Ú	highlight)rL   r–   Ú_textr,  s       rN   r
  zTextColumn.render}  s‚   € ØÔ ×'Ò'¨TÐ'Ñ2Ô2ˆØŒ;ð 	GÝÔ# E°´ÀTÄ\ÐRÑRÔRˆDˆDå˜ T¤Z¸¼ÐFÑFÔFˆDØÔð 	-ØÔ×&Ò& tÑ,Ô,Ð,ØˆrO   )r.  r/  TNN)rj   rk   rl   rm   rß   r8   r1   rÛ   r    r3   r9   rK   r;   r
  rp   rq   s   @rN   rŒ   rŒ   j  s×   ø€ € € € € Ø#Ð#ð
 "Ø!'ØØ-1Ø)-ðLð LàðLð ðLð ð	Lð
 ðLð ˜kÔ*ðLð ˜vÔ&ðLð 
ðLð Lð Lð Lð Lð Lð ˜6ð  dð ð ð ð ð ð ð ð rO   rŒ   c                   óv   ‡ — e Zd ZdZ	 	 	 	 	 	 ddee         d	ed
edededee         ddfˆ fd„Zddde	fd„Z
ˆ xZS )rŽ   a  Renders a visual progress bar.

    Args:
        bar_width (Optional[int], optional): Width of bar or None for full width. Defaults to 40.
        style (StyleType, optional): Style for the bar background. Defaults to "bar.back".
        complete_style (StyleType, optional): Style for the completed bar. Defaults to "bar.complete".
        finished_style (StyleType, optional): Style for a finished bar. Defaults to "bar.finished".
        pulse_style (StyleType, optional): Style for pulsing bars. Defaults to "bar.pulse".
    é(   rt   ru   rv   rw   NÚ	bar_widthr�   r‚   rƒ   r„   rÿ   rP   c                 ó’   •— || _         || _        || _        || _        || _        t          ¦   «                              |¬¦  «         d S r  )r?  r�   r‚   rƒ   r„   rJ   rK   )rL   r?  r�   r‚   rƒ   r„   rÿ   rM   s          €rN   rK   zBarColumn.__init__“  sL   ø€ ð #ˆŒØˆŒ
Ø,ˆÔØ,ˆÔØ&ˆÔÝ‰Œ×Ò lÐÑ3Ô3Ð3Ð3Ð3rO   r–   r  c                 ó   — t          |j        �t          d|j        ¦  «        ndt          d|j        ¦  «        | j        €dnt          d| j        ¦  «        |j         |                     ¦   «         | j        | j        | j	        | j
        ¬¦	  «	        S )z&Gets a progress bar widget for a task.Nr   r,   )	r{   rI   ÚwidthÚpulseÚanimation_timer�   r‚   rƒ   r„   )r6   r{   ÚmaxrI   r?  Ústartedr   r�   r‚   rƒ   r„   r  s     rN   r
  zBarColumn.render£  s‡   € åØ(,¬
ÐH•#�a˜œÑ$Ô$Ð$ÀDÝ˜!˜Tœ^Ñ,Ô,Øœ.ÐL�$�$µc¸!¸T¼^Ñ6LÔ6LØ”lÐ"ØŸ=š=™?œ?Ø”*ØÔ.ØÔ.ØÔ(ð

ñ 

ô 

ð 
	
rO   )r>  rt   ru   rv   rw   N)rj   rk   rl   rm   r    rÞ   r8   r9   rK   r6   r
  rp   rq   s   @rN   rŽ   rŽ   ˆ  sÏ   ø€ € € € € ðð ð $&Ø%Ø$2Ø$2Ø!,Ø)-ð4ð 4à˜C”=ð4ð ð4ð "ð	4ð
 "ð4ð ð4ð ˜vÔ&ð4ð 
ð4ð 4ð 4ð 4ð 4ð 4ð 
˜6ð 
 kð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
rO   rŽ   c                   ó"   — e Zd ZdZdddefd„ZdS )ÚTimeElapsedColumnzRenders time elapsed.r–   r  rP   c                 óä   — |j         r|j        n|j        }|€t          dd¬¦  «        S t	          t          dt          |¦  «        ¦  «        ¬¦  «        }t          t          |¦  «        d¬¦  «        S )zShow time elapsed.Nú-:--:--úprogress.elapsed©r�   r   )Úseconds)r+  Úfinished_timeÚelapsedr;   r	   rE  rÞ   rß   )rL   r–   rO  Údeltas       rN   r
  zTimeElapsedColumn.renderµ  sn   € à(,¬ÐG�$Ô$Ð$¸4¼<ˆØð 	=Ý˜	Ð);Ð<Ñ<Ô<Ð<Ý¥# a­¨W©¬Ñ"6Ô"6Ð7Ñ7Ô7ˆÝ•C˜‘J”JÐ&8Ð9Ñ9Ô9Ð9rO   N©rj   rk   rl   rm   r;   r
  rŸ   rO   rN   rH  rH  ²  s<   € € € € € ØÐð:˜6ð : dð :ð :ð :ð :ð :ð :rO   rH  c                   ó®   ‡ — e Zd ZdZ	 	 	 	 	 	 	 	 dd	ed
ededededee	         dee
         deddfˆ fd„Zedee         defd„¦   «         Zdddefd„Zˆ xZS )r�   a  Show task progress as a percentage.

    Args:
        text_format (str, optional): Format for percentage display. Defaults to "[progress.percentage]{task.percentage:>3.0f}%".
        text_format_no_percentage (str, optional): Format if percentage is unknown. Defaults to "".
        style (StyleType, optional): Style of output. Defaults to "none".
        justify (JustifyMethod, optional): Text justification. Defaults to "left".
        markup (bool, optional): Enable markup. Defaults to True.
        highlighter (Optional[Highlighter], optional): Highlighter to apply to output. Defaults to None.
        table_column (Optional[Column], optional): Table Column to use. Defaults to None.
        show_speed (bool, optional): Show speed if total is unknown. Defaults to False.
    ú-[progress.percentage]{task.percentage:>3.0f}%r  r.  r/  TNFr0  Útext_format_no_percentager�   r1  r2  r3  rÿ   r†   rP   c	                 ór   •— || _         || _        t          ¦   «                              ||||||¬¦  «         d S )N)r0  r�   r1  r2  r3  rÿ   )rT  r†   rJ   rK   )
rL   r0  rT  r�   r1  r2  r3  rÿ   r†   rM   s
            €rN   rK   zTaskProgressColumn.__init__Ì  sR   ø€ ð *CˆÔ&Ø$ˆŒÝ‰Œ×ÒØ#ØØØØ#Ø%ð 	ñ 	
ô 	
ð 	
ð 	
ð 	
rO   r   c                 ó°   — |€t          dd¬¦  «        S t          j        t          |¦  «        g d¢d¦  «        \  }}||z  }t          |d›|› d�d¬¦  «        S )	zµRender the speed in iterations per second.

        Args:
            task (Task): A Task object.

        Returns:
            Text: Text object containing the task speed.
        Nr  zprogress.percentagerL  )r  u   Ã—10Â³u   Ã—10â�¶u   Ã—10â�¹u   Ã—10Â¹Â²éè  z.1fz it/s)r;   r-   Úpick_unit_and_suffixrÞ   )Úclsr   ÚunitÚsuffixÚ
data_speeds        rN   Úrender_speedzTaskProgressColumn.render_speedâ  s{   € ð ð 	9Ý˜Ð"7Ð8Ñ8Ô8Ð8ÝÔ4Ý�‰JŒJØ<Ð<Ð<Øñ
ô 
‰ˆˆfð
 ˜T‘\ˆ
Ý�zÐ4Ð4 vÐ4Ð4Ð4Ð<QÐRÑRÔRÐRrO   r–   r  c                 ó†  — |j         €(| j        r!|                      |j        p|j        ¦  «        S |j         €| j        n| j        }|                     |¬¦  «        }| j        r"t          j
        || j        | j        ¬¦  «        }nt          || j        | j        ¬¦  «        }| j        r| j                             |¦  «         |S r8  )r{   r†   r]  Úfinished_speedr   rT  r0  r:  r2  r;   r&  r�   r1  r3  r;  )rL   r–   r0  r<  r,  s        rN   r
  zTaskProgressColumn.renderö  sÎ   € ØŒ:ð 	H $¤/ð 	HØ×$Ò$ TÔ%8Ð%F¸D¼JÑGÔGÐGà.2¬jÐVˆDÔ*Ð*ÀdÔFVð 	ð ×"Ò"¨Ð"Ñ-Ô-ˆØŒ;ð 	GÝÔ# E°´ÀTÄ\ÐRÑRÔRˆDˆDå˜ T¤Z¸¼ÐFÑFÔFˆDØÔð 	-ØÔ×&Ò& tÑ,Ô,Ð,ØˆrO   )rS  r  r.  r/  TNNF)rj   rk   rl   rm   rß   r8   r1   rÛ   r    r3   r9   rK   Úclassmethodrn   r;   r]  r
  rp   rq   s   @rN   r�   r�   ¾  s#  ø€ € € € € ðð ð KØ)+Ø!Ø!'ØØ-1Ø)-Ø ð
ð 
àð
ð $'ð
ð ð	
ð
 ð
ð ð
ð ˜kÔ*ð
ð ˜vÔ&ð
ð ð
ð 
ð
ð 
ð 
ð 
ð 
ð 
ð, ðS ¨%¤ð S°Tð Sð Sð Sñ „[ðSð&˜6ð  dð ð ð ð ð ð ð ð rO   r�   c                   óX   ‡ — e Zd ZdZdZ	 	 	 ddededee         fˆ fd„Zd	d
de	fd„Z
ˆ xZS )r�   a  Renders estimated time remaining.

    Args:
        compact (bool, optional): Render MM:SS when time remaining is less than an hour. Defaults to False.
        elapsed_when_finished (bool, optional): Render time elapsed when the task is finished. Defaults to False.
    ç      à?FNÚcompactrŠ   rÿ   c                 óh   •— || _         || _        t          ¦   «                              |¬¦  «         d S r  )rc  rŠ   rJ   rK   )rL   rc  rŠ   rÿ   rM   s       €rN   rK   zTimeRemainingColumn.__init__  s5   ø€ ð ˆŒØ%:ˆÔ"Ý‰Œ×Ò lÐÑ3Ô3Ð3Ð3Ð3rO   r–   r  rP   c                 ót  — | j         r|j        r
|j        }d}n	|j        }d}|j        €t          d|¬¦  «        S |€t          | j        rdnd|¬¦  «        S t          t          |¦  «        d¦  «        \  }}t          |d¦  «        \  }}| j        r|s
|d	›d
|d	›�}n|d›d
|d	›d
|d	›�}t          ||¬¦  «        S )zShow time remaining.rK  zprogress.remainingNr  rL  z--:--rJ  é<   Ú02dú:Úd)	rŠ   r+  rN  Útime_remainingr{   r;   rc  ÚdivmodrÞ   )rL   r–   Ú	task_timer�   ÚminutesrM  ÚhoursÚ	formatteds           rN   r
  zTimeRemainingColumn.render  s
  € àÔ%ð 	)¨$¬-ð 	)ØÔ*ˆIØ&ˆEˆEàÔ+ˆIØ(ˆEàŒ:ð 	)Ý˜ %Ð(Ñ(Ô(Ð(àð 	MÝ 4¤<Ð>˜˜°YÀeÐLÑLÔLÐLõ "¥# i¡.¤.°"Ñ5Ô5Ñˆ�Ý ¨Ñ,Ô,‰ˆˆwàŒ<ð 	A ð 	AØ"Ð6Ð6Ð6¨Ð6Ð6Ð6ˆIˆIà Ð@Ð@Ð@ WÐ@Ð@Ð@°7Ð@Ð@Ð@ˆIå�I UÐ+Ñ+Ô+Ð+rO   )FFN)rj   rk   rl   rm   rþ   rÛ   r    r9   rK   r;   r
  rp   rq   s   @rN   r�   r�     s¡   ø€ € € € € ðð ð €Kð Ø&+Ø)-ð	4ð 4àð4ð  $ð4ð ˜vÔ&ð	4ð 4ð 4ð 4ð 4ð 4ð,˜6ð , dð ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,rO   r�   c                   ó"   — e Zd ZdZdddefd„ZdS )ÚFileSizeColumnzRenders completed filesize.r–   r  rP   c                 óp   — t          j        t          |j        ¦  «        ¦  «        }t	          |d¬¦  «        S )úShow data completed.zprogress.filesizerL  )r-   ÚdecimalrÞ   rI   r;   ©rL   r–   Ú	data_sizes      rN   r
  zFileSizeColumn.render9  s0   € åÔ$¥S¨¬Ñ%8Ô%8Ñ9Ô9ˆ	Ý�IÐ%8Ð9Ñ9Ô9Ð9rO   NrQ  rŸ   rO   rN   rq  rq  6  s<   € € € € € Ø%Ð%ð:˜6ð : dð :ð :ð :ð :ð :ð :rO   rq  c                   ó"   — e Zd ZdZdddefd„ZdS )ÚTotalFileSizeColumnzRenders total filesize.r–   r  rP   c                 ó‚   — |j         �&t          j        t          |j         ¦  «        ¦  «        nd}t	          |d¬¦  «        S )rs  Nr  zprogress.filesize.totalrL  )r{   r-   rt  rÞ   r;   ru  s      rN   r
  zTotalFileSizeColumn.renderB  s;   € à9=¼ÐW•HÔ$¥S¨¬¡_¤_Ñ5Ô5Ð5ÐUWˆ	Ý�IÐ%>Ð?Ñ?Ô?Ð?rO   NrQ  rŸ   rO   rN   rx  rx  ?  sD   € € € € € Ø!Ð!ð@˜6ð @ dð @ð @ð @ð @ð @ð @rO   rx  c                   óJ   ‡ — e Zd ZdZddedee         fˆ fd„Zddd	efd
„Z	ˆ xZ
S )ÚMofNCompleteColumnaH  Renders completed count/total, e.g. '  10/1000'.

    Best for bounded tasks with int quantities.

    Space pads the completed count so that progress length does not change as task progresses
    past powers of 10.

    Args:
        separator (str, optional): Text to separate completed and total values. Defaults to "/".
    ú/NÚ	separatorrÿ   c                 óZ   •— || _         t          ¦   «                              |¬¦  «         d S r  )r}  rJ   rK   )rL   r}  rÿ   rM   s      €rN   rK   zMofNCompleteColumn.__init__T  s+   ø€ Ø"ˆŒÝ‰Œ×Ò lÐÑ3Ô3Ð3Ð3Ð3rO   r–   r  rP   c                 óÜ   — t          |j        ¦  «        }|j        �t          |j        ¦  «        nd}t          t	          |¦  «        ¦  «        }t          ||› d�›| j        › |› �d¬¦  «        S )zShow completed/total.Nú?ri  úprogress.downloadrL  )rÞ   rI   r{   r¥   rß   r;   r}  )rL   r–   rI   r{   Útotal_widths        rN   r
  zMofNCompleteColumn.renderX  st   € å˜œÑ'Ô'ˆ	Ø#'¤:ÐB•�D”J‘”�¸sˆÝ�#˜e™*œ*‘o”oˆÝØ˜+Ð@Ð@Ð@Ð@¨¬Ð@¸Ð@Ð@Ø%ð
ñ 
ô 
ð 	
rO   )r|  N)rj   rk   rl   rm   rß   r    r9   rK   r;   r
  rp   rq   s   @rN   r{  r{  H  s�   ø€ € € € € ð	ð 	ð4ð 4 #ð 4¸8ÀFÔ;Kð 4ð 4ð 4ð 4ð 4ð 4ð
˜6ð 
 dð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
rO   r{  c                   óP   ‡ — e Zd ZdZ	 ddedee         ddfˆ fd„Zdd	defd
„Z	ˆ xZ
S )rì   z¤Renders file size downloaded and total, e.g. '0.5/2.3 GB'.

    Args:
        binary_units (bool, optional): Use binary units, KiB, MiB etc. Defaults to False.
    FNÚbinary_unitsrÿ   rP   c                 óZ   •— || _         t          ¦   «                              |¬¦  «         d S r  )r„  rJ   rK   )rL   r„  rÿ   rM   s      €rN   rK   zDownloadColumn.__init__j  s.   ø€ ð )ˆÔÝ‰Œ×Ò lÐÑ3Ô3Ð3Ð3Ð3rO   r–   r  c                 óž  — t          |j        ¦  «        }|j        �t          |j        ¦  «        n|}| j        rt	          j        |g d¢d¦  «        \  }}nt	          j        |g d¢d¦  «        \  }}|dk    rdnd}||z  }|d|› d	�›}|j        �"t          |j        ¦  «        }	|	|z  }
|
d|› d	�›}nd
}|› d|› d|› �}t          |d¬¦  «        }|S )z.Calculate common unit for completed and total.N)	rÜ   ÚKiBÚMiBÚGiBÚTiBÚPiBÚEiBÚZiBÚYiBi   )	rÜ   ÚkBÚMBÚGBÚTBÚPBÚEBÚZBÚYBrW  r,   r   z,.Úfr€  r|  r  r�  rL  )rÞ   rI   r{   r„  r-   rX  r;   )rL   r–   rI   Ú unit_and_suffix_calculation_baserZ  r[  Ú	precisionÚcompleted_ratioÚcompleted_strr{   Útotal_ratioÚ	total_strÚdownload_statusÚdownload_texts                 rN   r
  zDownloadColumn.renderp  s.  € å˜œÑ'Ô'ˆ	ð  $œzÐD�C�”
‰OŒOˆO¸9ð 	)ð Ôð 	Ý#Ô8Ø0ØQÐQÐQØñô ‰LˆD�&�&õ $Ô8Ø0ØIÐIÐIØñô ‰LˆD�&ð
  šÐ)�A�A¨ˆ	à# dÑ*ˆØ*Ð;¨iÐ;Ð;Ð;Ð;ˆàŒ:ð 	Ý˜œ
‘O”OˆEØ $™,ˆKØ&Ð7¨)Ð7Ð7Ð7Ð7ˆIˆIàˆIà*ÐAÐA¨YÐAÐA¸ÐAÐAˆÝ˜_Ð4GÐHÑHÔHˆØÐrO   )FN)rj   rk   rl   rm   rÛ   r    r9   rK   r;   r
  rp   rq   s   @rN   rì   rì   c  s’   ø€ € € € € ðð ð LPð4ð 4Ø ð4Ø8@ÀÔ8Hð4à	ð4ð 4ð 4ð 4ð 4ð 4ð!˜6ð ! dð !ð !ð !ð !ð !ð !ð !ð !rO   rì   c                   ó"   — e Zd ZdZdddefd„ZdS )ÚTransferSpeedColumnz&Renders human readable transfer speed.r–   r  rP   c                 ó®   — |j         p|j        }|€t          dd¬¦  «        S t          j        t          |¦  «        ¦  «        }t          |› d�d¬¦  «        S )zShow data transfer speed.Nr€  zprogress.data.speedrL  z/s)r_  r   r;   r-   rt  rÞ   )rL   r–   r   r\  s       rN   r
  zTransferSpeedColumn.render—  s`   € àÔ#Ð1 t¤zˆØð 	:Ý˜Ð#8Ð9Ñ9Ô9Ð9ÝÔ%¥c¨%¡j¤jÑ1Ô1ˆ
Ý�zÐ%Ð%Ð%Ð-BÐCÑCÔCÐCrO   NrQ  rŸ   rO   rN   r¡  r¡  ”  sD   € € € € € Ø0Ð0ðD˜6ð D dð Dð Dð Dð Dð Dð DrO   r¡  c                   ó*   — e Zd ZU dZeed<   	 eed<   dS )ÚProgressSamplez$Sample of progress for a given time.r  rI   N)rj   rk   rl   rm   rn   r  rŸ   rO   rN   r¤  r¤     s3   € € € € € € Ø.Ð.àÐÐÑØØÐÐÑØ$Ð$rO   r¤  c                   ó¢  — e Zd ZU dZeed<   	 eed<   	 ee         ed<   	 eed<   	 e	ed<   	 dZ
ee         ed<   	 d	Zeed
<   	  ee¬¦  «        Zeeef         ed<   	  eddd¬¦  «        Zee         ed<   	  eddd¬¦  «        Zee         ed<   	 dZee         ed<   	  ed„ dd¬¦  «        Zee         ed<    ede¬¦  «        Zeed<   	 defd„Zedefd„¦   «         Zedee         fd„¦   «         Zedee         fd„¦   «         Zedefd„¦   «         Zedefd„¦   «         Z edee         fd„¦   «         Z!edee         fd„¦   «         Z"d!d „Z#dS )"r  z…Information regarding a progress task.

    This object should be considered read-only outside of the :class:`~Progress` class.

    r  rz   r{   rI   Ú	_get_timeNrN  TÚvisible)Údefault_factoryÚfieldsF)ÚdefaultÚinitÚreprÚ
start_timeÚ	stop_timer_  c                  ó"   — t          d¬¦  «        S )NrW  )Úmaxlenr   rŸ   rO   rN   ú<lambda>zTask.<lambda>Ó  s   € ¥¨TÐ 2Ñ 2Ô 2€ rO   )r¨  r«  r¬  Ú	_progress)r¬  r¨  Ú_lockrP   c                 ó*   — |                       ¦   «         S )z(float: Get the current time, in seconds.)r¦  r^   s    rN   r   zTask.get_timeÙ  s   € à�~Š~ÑÔÐrO   c                 ó   — | j         duS )z#bool: Check if the task as started.N)r­  r^   s    rN   rF  zTask.startedÝ  s   € ð Œ dÐ*Ð*rO   c                 ó2   — | j         €dS | j         | j        z
  S )zPOptional[float]: Get the number of steps remaining, if a non-None total was set.N©r{   rI   r^   s    rN   Ú	remainingzTask.remainingâ  s"   € ð Œ:ð 	Ø�4ØŒz˜DœNÑ*Ð*rO   c                 óx   — | j         €dS | j        �| j        | j         z
  S |                      ¦   «         | j         z
  S )z]Optional[float]: Time elapsed since task was started, or ``None`` if the task hasn't started.N)r­  r®  r   r^   s    rN   rO  zTask.elapsedé  sA   € ð Œ?ð 	Ø�4ØŒ>ð 	4Ø”> D¤OÑ3Ð3Ø�}Š}‰Œ ¤Ñ0Ð0rO   c                 ó   — | j         duS )zCheck if the task has finished.N)rN  r^   s    rN   r+  zTask.finishedò  s   € ð Ô!¨Ð-Ð-rO   c                 óx   — | j         sdS | j        | j         z  dz  }t          dt          d|¦  «        ¦  «        }|S )zOfloat: Get progress of task as a percentage. If a None total was set, returns 0ç        ç      Y@)r{   rI   ÚminrE  )rL   rI   s     rN   Ú
percentagezTask.percentage÷  sE   € ð Œzð 	Ø�3Ø”^ d¤jÑ0°EÑ9ˆ	Ý˜�s 3¨	Ñ2Ô2Ñ3Ô3ˆ	ØÐrO   c                 ó^  — | j         €dS | j        5  | j        }|s	 ddd¦  «         dS |d         j        |d         j        z
  }|dk    r	 ddd¦  «         dS t	          |¦  «        }t          |¦  «         t          d„ |D ¦   «         ¦  «        }||z  }|cddd¦  «         S # 1 swxY w Y   dS )z=Optional[float]: Get the estimated speed in steps per second.Nr»   r   c              3   ó$   K  — | ]}|j         V — Œd S r[   rÐ   )Ú.0Úsamples     rN   ú	<genexpr>zTask.speed.<locals>.<genexpr>  s%   è è € Ð!OÐ!O°v &Ô"2Ð!OÐ!OÐ!OÐ!OÐ!OÐ!OrO   )r­  r³  r²  r  Úiterr¤   rÉ   )rL   rB   Ú
total_timeÚiter_progressÚtotal_completedr   s         rN   r   z
Task.speed   sN  € ð Œ?ð 	Ø�4ØŒZð 	ð 	Ø”~ˆHØð Øð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð " "œÔ/°(¸1´+Ô2GÑGˆJØ˜QŠð Øð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	õ ! ™NœNˆMÝ�ÑÔÐÝ!Ð!OÐ!OÀÐ!OÑ!OÔ!OÑOÔOˆOØ# jÑ0ˆEØð	ð 	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   ‘B"©"B"Á=B"Â"B&Â)B&c                 óh   — | j         rdS | j        }|sdS | j        }|€dS t          ||z  ¦  «        }|S )zJOptional[float]: Get estimated time to completion, or ``None`` if no data.r¼  N)r+  r   r¸  r   )rL   r   r¸  Úestimates       rN   rj  zTask.time_remaining  sR   € ð Œ=ð 	Ø�3Ø”
ˆØð 	Ø�4Ø”Nˆ	Øð 	Ø�4Ý˜	 EÑ)Ñ*Ô*ˆØˆrO   c                 óT   — | j                              ¦   «          d| _        d| _        dS )zReset progress.N)r²  ÚclearrN  r_  r^   s    rN   Ú_resetzTask._reset   s,   € àŒ×ÒÑÔÐØ!ˆÔØ"ˆÔÐÐrO   ri   )$rj   rk   rl   rm   r=   r  rß   r    rn   ÚGetTimeCallablerN  r§  rÛ   r   Údictr©  r   r   r­  r®  r_  r²  r   r¤  r   r³  r   rÝ   rF  r¸  rO  r+  r¿  r   rj  rÍ  rŸ   rO   rN   r  r  ©  sÑ  € € € € € € ðð ð 	€J€J�JØGàÐÐÑØ'à�EŒ?ÐÐÑØ>àÐÐÑØ*àÐÐÑØ+à%)€M�8˜E”?Ð)Ð)Ñ)Ø(à€GˆTÐÐÑØJà"˜U°4Ð8Ñ8Ô8€FˆD��c�ŒNÐ8Ð8Ñ8Ø?à"' %°¸5ÀuÐ"MÑ"MÔ"M€J�˜”ÐMÐMÑMØNà!& ¨t¸%ÀeÐ!LÑ!LÔ!L€Iˆx˜ŒÐLÐLÑLØNà&*€N�H˜U”OÐ*Ð*Ñ*Ø>à', uØ2Ð2¸ÀUð(ñ (ô (€Iˆu�^Ô$ð ð ñ ð �5˜e°UÐ;Ñ;Ô;€Eˆ5Ð;Ð;Ñ;Øð ˜%ð  ð  ð  ð  ð ð+˜ð +ð +ð +ñ „Xð+ð ð+˜8 Eœ?ð +ð +ð +ñ „Xð+ð ð1˜ %œð 1ð 1ð 1ñ „Xð1ð ð.˜$ð .ð .ð .ñ „Xð.ð ð˜Eð ð ð ñ „Xðð ð�x ”ð ð ð ñ „Xðð" ð ¨¤ð ð ð ñ „Xðð#ð #ð #ð #ð #ð #rO   r  c                   ój  — e Zd ZdZdddddddddddœ
deeef         d	ee         d
e	de
de
de	de	de	dee         de	de	ddfd„Zedeedf         fd„¦   «         Zedefd„¦   «         Zedee         fd„¦   «         Zedee         fd„¦   «         Zede	fd„¦   «         ZdTd„ZdTd„Zdefd„Zdeee                  dee         d ee         ddfd!„Z	 	 	 	 	 dUd%ee e!         e"e!         f         d&ee
         d'e#d(ee         d)ed*e
de e!         fd+„Z$	 dVdd,d-œd.e%d&ee#         d(ee         d)ede%f
d/„Z&e'j(        	 	 	 	 dWddd,d1œd.eed2e)f         d3e*d4         d5e#d6ee         d7ee         d8ee         d&ee#         d(ee         d)ede%fd9„¦   «         Z+e'j(        	 	 	 	 dWddd,d1œd.eed2e)f         d3ee*d:         e*d;         f         d5e#d6ee         d7ee         d8ee         d&ee#         d(ee         d)ede,fd<„¦   «         Z+	 	 	 	 	 dXddd,d1œd.eed2e)f         d3ee*d4         e*d;         e*d:         f         d5e#d6ee         d7ee         d8ee         d&ee#         d(ee         d)edee%e,f         fd=„Z+d(eddfd>„Z-d(eddfd?„Z.ddddddd@œd(ed&ee
         d'ee
         dAee
         d)ee         dBee	         dCe	dDe/ddfdE„Z0ddd"dddFœd(edGe	d&ee
         d'e#dBee	         d)ee         dDe/ddfdH„Z1dYd(edAe
ddfdJ„Z2dTdK„Z3de4fdL„Z5de e4         fdM„Z6dNe e         de7fdO„Z8de4fdP„Z9	 	 	 	 dZd)edGe	d&ee
         d'e#dBe	dDe/defdR„Z:d(eddfdS„Z;dS )[rC   aŒ  Renders an auto-updating progress bar(s).

    Args:
        console (Console, optional): Optional Console instance. Defaults to an internal Console instance writing to stdout.
        auto_refresh (bool, optional): Enable auto refresh. If disabled, you will need to call `refresh()`.
        refresh_per_second (Optional[float], optional): Number of times per second to refresh the progress information or None to use default (10). Defaults to None.
        speed_estimate_period: (float, optional): Period (in seconds) used to calculate the speed estimate. Defaults to 30.
        transient: (bool, optional): Clear the progress on exit. Defaults to False.
        redirect_stdout: (bool, optional): Enable redirection of stdout, so ``print`` may be used. Defaults to True.
        redirect_stderr: (bool, optional): Enable redirection of stderr. Defaults to True.
        get_time: (Callable, optional): A callable that gets the current time, or None to use Console.get_time. Defaults to None.
        disable (bool, optional): Disable progress display. Defaults to False
        expand (bool, optional): Expand tasks table to fit width. Defaults to False.
    NTrs   g      >@F)
r}   r|   r€   Úspeed_estimate_periodr~   Úredirect_stdoutÚredirect_stderrr   r…   Úexpandr’   r}   r|   r€   rÑ  r~   rÒ  rÓ  r   r…   rÔ  rP   c       
   	      ó¨  — |dk    s
J d¦   «         ‚t          ¦   «         | _        |p|                      ¦   «         | _        || _        |	| _        |
| _        i | _        t          d¦  «        | _	        t          |pt          ¦   «         |||||| j        ¬¦  «        | _        |p| j        j        | _        | j        j        | _        | j        j        | _        d S )Nr   zrefresh_per_second must be > 0)r}   r|   r€   r~   rÒ  rÓ  Úget_renderable)r   r³  Úget_default_columnsr’   rÑ  r…   rÔ  Ú_tasksr=   Ú_task_indexr5   r.   rÖ  rU   r}   r   ÚprintÚlog)rL   r}   r|   r€   rÑ  r~   rÒ  rÓ  r   r…   rÔ  r’   s               rN   rK   zProgress.__init__7  sÒ   € ð " AÒ%ÐGÐGÐ'GÑGÔGÐGÝ‘W”WˆŒ
ØÐ< $×":Ò":Ñ"<Ô"<ˆŒØ%:ˆÔ"àˆŒØˆŒØ*,ˆŒÝ#)¨!¡9¤9ˆÔÝØÐ,�{™}œ}Ø%Ø1ØØ+Ø+ØÔ.ð
ñ 
ô 
ˆŒ	ð !Ð9 D¤LÔ$9ˆŒØ”\Ô'ˆŒ
Ø”<Ô#ˆŒˆˆrO   .c                 óp   — t          d¦  «        t          ¦   «         t          ¦   «         t          ¦   «         fS )a§  Get the default columns used for a new Progress instance:
           - a text column for the description (TextColumn)
           - the bar itself (BarColumn)
           - a text column showing completion percentage (TextColumn)
           - an estimated-time-remaining column (TimeRemainingColumn)
        If the Progress instance is created without passing a columns argument,
        the default columns defined here will be used.

        You can also create a Progress instance using custom columns before
        and/or after the defaults, as in this example:

            progress = Progress(
                SpinnerColumn(),
                *Progress.get_default_columns(),
                "Elapsed:",
                TimeElapsedColumn(),
            )

        This code shows the creation of a Progress display, containing
        a spinner to the left, the default columns, and a labeled elapsed
        time column.
        rˆ   )rŒ   rŽ   r�   r�   )rY  s    rN   r×  zProgress.get_default_columns[  s3   € õ2 ÐAÑBÔBÝ‰KŒKÝÑ Ô ÝÑ!Ô!ð	
ð 	
rO   c                 ó   — | j         j        S r[   )rU   r}   r^   s    rN   r}   zProgress.consolez  s   € àŒyÔ Ð rO   c                 ó�   — | j         5  t          | j                             ¦   «         ¦  «        cddd¦  «         S # 1 swxY w Y   dS )zGet a list of Task instances.N)r³  ÚlistrØ  Úvaluesr^   s    rN   ÚtaskszProgress.tasks~  s‰   € ð ŒZð 	.ð 	.Ý˜œ×*Ò*Ñ,Ô,Ñ-Ô-ð	.ð 	.ð 	.ð 	.ñ 	.ô 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.øøøð 	.ð 	.ð 	.ð 	.ð 	.ð 	.ó   ˆ&;»?Á?c                 ó�   — | j         5  t          | j                             ¦   «         ¦  «        cddd¦  «         S # 1 swxY w Y   dS )zA list of task IDs.N)r³  rß  rØ  Úkeysr^   s    rN   Útask_idszProgress.task_ids„  s‰   € ð ŒZð 	,ð 	,Ý˜œ×(Ò(Ñ*Ô*Ñ+Ô+ð	,ð 	,ð 	,ð 	,ñ 	,ô 	,ð 	,ð 	,ð 	,ð 	,ð 	,ð 	,øøøð 	,ð 	,ð 	,ð 	,ð 	,ð 	,râ  c                 óÎ   — | j         5  | j        s	 ddd¦  «         dS t          d„ | j                             ¦   «         D ¦   «         ¦  «        cddd¦  «         S # 1 swxY w Y   dS )z'Check if all tasks have been completed.NTc              3   ó$   K  — | ]}|j         V — Œd S r[   )r+  )rÂ  r–   s     rN   rÄ  z$Progress.finished.<locals>.<genexpr>�  s$   è è € ÐFÐF¨�t”}ÐFÐFÐFÐFÐFÐFrO   )r³  rØ  Úallrà  r^   s    rN   r+  zProgress.finishedŠ  së   € ð ŒZð 	Gð 	GØ”;ð Øð	Gð 	Gð 	Gñ 	Gô 	Gð 	Gð 	Gð 	Gõ ÐFÐF°´×1CÒ1CÑ1EÔ1EÐFÑFÔFÑFÔFð	Gð 	Gð 	Gð 	Gñ 	Gô 	Gð 	Gð 	Gð 	Gð 	Gð 	Gð 	Gøøøð 	Gð 	Gð 	Gð 	Gð 	Gð 	Gs   ˆ	Až/AÁAÁ!Ac                 óN   — | j         s| j                             d¬¦  «         dS dS )zStart the progress display.T)rR   N)r…   rU   r]   r^   s    rN   r]   zProgress.start’  s2   € àŒ|ð 	*ØŒI�OŠO DˆOÑ)Ô)Ð)Ð)Ð)ð	*ð 	*rO   c                 ó¢   — | j                              ¦   «          | j        j        s'| j        j        s| j                             ¦   «          dS dS dS )zStop the progress display.N)rU   rè   r}   Úis_interactiveÚ
is_jupyterrÚ  r^   s    rN   rè   zProgress.stop—  s[   € àŒ	�ŠÑÔÐØŒ|Ô*ð 	!°4´<Ô3Jð 	!ØŒL×ÒÑ Ô Ð Ð Ð ð	!ð 	!ð 	!ð 	!rO   c                 ó.   — |                       ¦   «          | S r[   r\   r^   s    rN   r_   zProgress.__enter__�  r`   rO   ra   rb   rc   c                 ó.   — |                       ¦   «          d S r[   )rè   rg   s       rN   rh   zProgress.__exit__¡  s   € ð 	�	Š	‰ŒˆˆˆrO   r   rr   rx   ry   r{   rI   rD   rz   rE   c              #   ó®  K  — |€t          t          |¦  «        ¦  «        pd}|€|                      |||¬¦  «        }n|                      |||¬¦  «         | j        j        rFt          | ||¦  «        5 }|D ]}|V — |xj        dz  c_        Œ	 ddd¦  «         dS # 1 swxY w Y   dS | j        }	| j	        }
|D ]}|V —  |	|d¦  «          |
¦   «          ŒdS )aß  Track progress by iterating over a sequence.

        Args:
            sequence (Sequence[ProgressType]): A sequence of values you want to iterate over and track progress.
            total: (float, optional): Total number of steps. Default is len(sequence).
            completed (int, optional): Number of steps completed so far. Defaults to 0.
            task_id: (TaskID): Task to track. Default is new task.
            description: (str, optional): Description of task, if new task is created.
            update_period (float, optional): Minimum time (in seconds) between calls to update(). Defaults to 0.1.

        Returns:
            Iterable[ProgressType]: An iterable of values taken from the provided sequence.
        Nr·  r,   )
rn   r   Úadd_taskrW   rU   r|   rA   rI   rS   rR   )rL   ry   r{   rI   rD   rz   rE   Útrack_threadÚvaluerS   rR   s              rN   r‘   zProgress.track©  si  è è € ð, ð 	9Ý�+ hÑ/Ô/Ñ0Ô0Ð8°DˆEàð 	CØ—m’m K°uÈ	�mÑRÔRˆGˆGà�KŠK˜ u¸	ˆKÑBÔBÐBàŒ9Ô!ð 	Ý˜d G¨]Ñ;Ô;ð 0¸|Ø%ð 0ð 0�EØ�K�K�KØ Ð*Ô*¨aÑ/Ð*Ô*Ð*ð0ð0ð 0ð 0ñ 0ô 0ð 0ð 0ð 0ð 0ð 0ð 0ð 0øøøð 0ð 0ð 0ð 0ð 0ð 0ð
 ”lˆGØ”lˆGØ!ð ð �Ø���Ø�˜ Ñ#Ô#Ð#Ø�‘	”	�	�	ðð s   Á3BÂBÂ"Bré   )rD   rz   rê   c                ó   — d}|�|}n3|�1| j         5  | j        |         j        }ddd¦  «         n# 1 swxY w Y   |€t          d¦  «        ‚|€|                      ||¬¦  «        }n|                      ||¬¦  «         t          || |d¬¦  «        S )aj  Track progress file reading from a binary file.

        Args:
            file (BinaryIO): A file-like object opened in binary mode.
            total (int, optional): Total number of bytes to read. This must be provided unless a task with a total is also given.
            task_id (TaskID): Task to track. Default is new task.
            description (str, optional): Description of task, if new task is created.

        Returns:
            BinaryIO: A readable file-like object in binary mode.

        Raises:
            ValueError: When no total value can be extracted from the arguments or the task.
        Nz?unable to get the total number of bytes, please specify 'total'©r{   F©r—   )r³  rØ  r{   Ú
ValueErrorrð  rW   r”   )rL   rê   r{   rD   rz   Útotal_bytess         rN   rí   zProgress.wrap_fileÔ  s÷   € ð. (,ˆØð 	9ØˆKˆKØð 	9Ø”ð 9ð 9Ø"œk¨'Ô2Ô8�ð9ð 9ð 9ñ 9ô 9ð 9ð 9ð 9ð 9ð 9ð 9øøøð 9ð 9ð 9ð 9àð 	ÝØRñô ð ð
 ð 	4Ø—m’m K°{�mÑCÔCˆGˆGà�KŠK˜ {ˆKÑ3Ô3Ð3å�t˜T 7¸Ð?Ñ?Ô?Ð?s   ‘0°4·4r»   )r{   rD   rz   rî   r°   rù   rñ   rò   ró   rô   c                ó   — d S r[   rŸ   ©
rL   rê   r°   rñ   rò   ró   rô   r{   rD   rz   s
             rN   r÷   zProgress.openþ  ó	   € ð 	ˆrO   rð   rï   c                ó   — d S r[   rŸ   rù  s
             rN   r÷   zProgress.open  rú  rO   c                ó6  — d                      t          |d¬¦  «        ¦  «        }
|
dvrt          d|›�¦  «        ‚|dk    }|
dk    r#|dk    rt          j        dt
          ¦  «         d	}n!|
d
v r|dk    rt          d¦  «        ‚|dk    rd	}|€t          |¦  «        j        }|€|                      |	|¬¦  «        }n|  	                    ||¬¦  «         t          j        |d|¬¦  «        }t          || |d¬¦  «        }|dv rt          j        |||||¬¦  «        S |S )a#  Track progress while reading from a binary file.

        Args:
            path (Union[str, PathLike[str]]): The path to the file to read.
            mode (str): The mode to use to open the file. Only supports "r", "rb" or "rt".
            buffering (int): The buffering strategy to use, see :func:`io.open`.
            encoding (str, optional): The encoding to use when reading in text mode, see :func:`io.open`.
            errors (str, optional): The error handling strategy for decoding errors, see :func:`io.open`.
            newline (str, optional): The strategy for handling newlines in text mode, see :func:`io.open`.
            total (int, optional): Total number of bytes to read. If none given, os.stat(path).st_size is used.
            task_id (TaskID): Task to track. Default is new task.
            description (str, optional): Description of task, if new task is created.

        Returns:
            BinaryIO: A readable file-like object in binary mode.

        Raises:
            ValueError: When an invalid mode is given.
        r  F)Úreverse)Úbrrï   rð   zinvalid mode r,   rþ  zaline buffering (buffering=1) isn't supported in binary mode, the default buffer size will be usedr»   )rï   rð   r   zcan't have unbuffered text I/ONrô  rù   )rñ   Trõ  )rð   rï   )rò   ró   rô   Úline_buffering)rf   Úsortedrö  ÚwarningsÚwarnÚRuntimeWarningr   Úst_sizerð  rW   Úior÷   r”   ÚTextIOWrapper)rL   rê   r°   rñ   rò   ró   rô   r{   rD   rz   Ú_moderÿ  r•   rä   s                 rN   r÷   zProgress.open  s‚  € ðB —’�˜t¨UÐ3Ñ3Ô3Ñ4Ô4ˆØÐ)Ð)ð 	7ÝÐ5¨TÐ5Ð5Ñ6Ô6Ð6ð # ašˆØ�DŠ=ð 
	˜Y¨!š^ð 
	ÝŒMØsÝñô ð ð ˆIˆIØ�kÐ!ð 	Ø˜AŠ~ð Ý Ð!AÑBÔBÐBØ˜a’ð Ø�	ð ð 	'Ý˜‘J”JÔ&ˆEð ð 	.Ø—m’m K°u�mÑ=Ô=ˆGˆGà�KŠK˜ uˆKÑ-Ô-Ð-õ ”˜˜t¨yÐ9Ñ9Ô9ˆÝ˜  w¸TÐBÑBÔBˆð �;Ðð 	ÝÔ#ØØ!ØØØ-ðñ ô ð ð ˆrO   c                 ó    — | j         5  | j        |         }|j        €|                      ¦   «         |_        ddd¦  «         dS # 1 swxY w Y   dS )zéStart a task.

        Starts a task (used when calculating elapsed time). You may need to call this manually,
        if you called ``add_task`` with ``start=False``.

        Args:
            task_id (TaskID): ID of task.
        N)r³  rØ  r­  r   )rL   rD   r–   s      rN   Ú
start_taskzProgress.start_taskk  s•   € ð ŒZð 	2ð 	2Ø”;˜wÔ'ˆDØŒð 2Ø"&§-¢-¡/¤/�”ð	2ð 	2ð 	2ñ 	2ô 	2ð 	2ð 	2ð 	2ð 	2ð 	2ð 	2ð 	2øøøð 	2ð 	2ð 	2ð 	2ð 	2ð 	2s   ˆ.AÁAÁ
Ac                 ó²   — | j         5  | j        |         }|                      ¦   «         }|j        €||_        ||_        ddd¦  «         dS # 1 swxY w Y   dS )z†Stop a task.

        This will freeze the elapsed time on the task.

        Args:
            task_id (TaskID): ID of task.
        N)r³  rØ  r   r­  r®  )rL   rD   r–   r  s       rN   Ú	stop_taskzProgress.stop_tasky  s¡   € ð ŒZð 	*ð 	*Ø”;˜wÔ'ˆDØŸ=š=™?œ?ˆLØŒð /Ø".�”Ø)ˆDŒNð	*ð 	*ð 	*ñ 	*ô 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*øøøð 	*ð 	*ð 	*ð 	*ð 	*ð 	*s   ˆ7AÁAÁA)r{   rI   rS   rz   r§  rR   rS   r§  rR   r©  c                óì  — | j         5  | j        |         }	|	j        }
|�&||	j        k    r||	_        |	                     ¦   «          |�|	xj        |z  c_        |�||	_        |�||	_        |�||	_        |	j                             |¦  «         |	j        |
z
  }|  	                    ¦   «         }|| j
        z
  }|	j        }|j        }|r.|d         j        |k     r |¦   «          |r|d         j        |k     °|dk    r#|                     t          ||¦  «        ¦  «         |	j        �#|	j        |	j        k    r|	j        €|	j        |	_        ddd¦  «         n# 1 swxY w Y   |r|                      ¦   «          dS dS )a˜  Update information associated with a task.

        Args:
            task_id (TaskID): Task id (returned by add_task).
            total (float, optional): Updates task.total if not None.
            completed (float, optional): Updates task.completed if not None.
            advance (float, optional): Add a value to task.completed if not None.
            description (str, optional): Change task description if not None.
            visible (bool, optional): Set visible flag if not None.
            refresh (bool): Force a refresh of progress information. Default is False.
            **fields (Any): Additional data fields required for rendering.
        Nr   )r³  rØ  rI   r{   rÍ  rz   r§  r©  rW   r   rÑ  r²  Úpopleftr  Úappendr¤  rN  rO  rR   )rL   rD   r{   rI   rS   rz   r§  rR   r©  r–   Úcompleted_startÚupdate_completedr  Úold_sample_timer²  r  s                   rN   rW   zProgress.updateˆ  sû  € ð0 ŒZð  	2ð  	2Ø”;˜wÔ'ˆDØ"œnˆOàð  U¨d¬jÒ%8ð Ø"�”
Ø—’‘”�Øð *Ø�” 'Ñ)�”Øð +Ø!*�”Øð /Ø#.�Ô Øð 'Ø&�”ØŒK×Ò˜vÑ&Ô&Ð&Ø#œ~°Ñ?ÐàŸ=š=™?œ?ˆLØ*¨TÔ-GÑGˆOØœˆIàÔ'ˆGØð  	¨!¤Ô 6¸Ò Hð Ø�‘	”	�	ð ð  	¨!¤Ô 6¸Ò Hð à !Ò#ð QØ× Ò ¥°Ð>NÑ!OÔ!OÑPÔPÐPà”
ð2à”N d¤jÒ0ð2ð Ô&ð2ð
 &*¤\�Ô"ðA 	2ð  	2ð  	2ñ  	2ô  	2ð  	2ð  	2ð  	2ð  	2ð  	2ð  	2øøøð  	2ð  	2ð  	2ð  	2ðD ð 	Ø�LŠL‰NŒNˆNˆNˆNð	ð 	s   ˆD=EÅEÅE)r]   r{   rI   r§  rz   r]   c                óP  — |                       ¦   «         }| j        5  | j        |         }	|	                     ¦   «          |r|nd|	_        |�||	_        ||	_        |�||	_        |r||	_        |�||	_	        d|	_
        ddd¦  «         n# 1 swxY w Y   |                      ¦   «          dS )aˆ  Reset a task so completed is 0 and the clock is reset.

        Args:
            task_id (TaskID): ID of task.
            start (bool, optional): Start the task after reset. Defaults to True.
            total (float, optional): New total steps in task, or None to use current total. Defaults to None.
            completed (int, optional): Number of steps completed. Defaults to 0.
            visible (bool, optional): Enable display of the task. Defaults to True.
            description (str, optional): Change task description if not None. Defaults to None.
            **fields (str): Additional data fields required for rendering.
        N)r   r³  rØ  rÍ  r­  r{   rI   r§  r©  rz   rN  rR   )
rL   rD   r]   r{   rI   r§  rz   r©  r  r–   s
             rN   ÚresetzProgress.resetÅ  sö   € ð, —}’}‘”ˆØŒZð 	&ð 	&Ø”;˜wÔ'ˆDØ�KŠK‰MŒMˆMØ.3Ð=˜l˜l¸ˆDŒOØð #Ø"�”
Ø&ˆDŒNØð 'Ø&�”Øð %Ø$�”Øð /Ø#.�Ô Ø!%ˆDÔð	&ð 	&ð 	&ñ 	&ô 	&ð 	&ð 	&ð 	&ð 	&ð 	&ð 	&øøøð 	&ð 	&ð 	&ð 	&ð 	�Š‰Œˆˆˆs   œABÂBÂBr,   c                 ól  — |                       ¦   «         }| j        5  | j        |         }|j        }|xj        |z  c_        |j        |z
  }|| j        z
  }|j        }|j        }	|r.|d         j        |k     r |	¦   «          |r|d         j        |k     °t          |¦  «        dk    r |	¦   «          t          |¦  «        dk    °| 	                    t          ||¦  «        ¦  «         |j        �/|j        |j        k    r|j        €|j        |_        |j        |_        ddd¦  «         dS # 1 swxY w Y   dS )z«Advance task by a number of steps.

        Args:
            task_id (TaskID): ID of task.
            advance (float): Number of steps to advance. Default is 1.
        r   rW  N)r   r³  rØ  rI   rÑ  r²  r  r  r¥   r  r¤  r{   rN  rO  r   r_  )
rL   rD   rS   r  r–   r  r  r  r²  r  s
             rN   rS   zProgress.advanceì  sœ  € ð —}’}‘”ˆØŒZð 	1ð 	1Ø”;˜wÔ'ˆDØ"œnˆOØˆNŒN˜gÑ%ˆNŒNØ#œ~°Ñ?ÐØ*¨TÔ-GÑGˆOØœˆIàÔ'ˆGØð  	¨!¤Ô 6¸Ò Hð Ø�‘	”	�	ð ð  	¨!¤Ô 6¸Ò Hð å�i‘.”. 4Ò'ð Ø�‘	”	�	õ �i‘.”. 4Ò'ð à×Ò�^¨LÐ:JÑKÔKÑLÔLÐLà”
ð1à”N d¤jÒ0ð1ð Ô&ð1ð
 &*¤\�Ô"Ø&*¤j�Ô#ð)	1ð 	1ð 	1ñ 	1ô 	1ð 	1ð 	1ð 	1ð 	1ð 	1ð 	1ð 	1øøøð 	1ð 	1ð 	1ð 	1ð 	1ð 	1s   œD D)Ä)D-Ä0D-c                 óf   — | j         s'| j        j        r| j                             ¦   «          dS dS dS )z*Refresh (render) the progress information.N)r…   rU   rV   rR   r^   s    rN   rR   zProgress.refresh
  sF   € àŒ|ð 	  ¤	Ô 4ð 	 ØŒI×ÒÑÔÐÐÐð	 ð 	 ð 	 ð 	 rO   c                 ó<   — t          |                      ¦   «         Ž }|S )z*Get a renderable for the progress display.)r0   Úget_renderables)rL   r  s     rN   rÖ  zProgress.get_renderable  s   € å˜D×0Ò0Ñ2Ô2Ð3ˆ
ØÐrO   c              #   óF   K  — |                       | j        ¦  «        }|V — dS )z5Get a number of renderables for the progress display.N)Úmake_tasks_tablerá  )rL   Útables     rN   r  zProgress.get_renderables  s(   è è € à×%Ò% d¤jÑ1Ô1ˆØˆˆˆˆˆrO   rá  c                 ó¦   ‡— d„ | j         D ¦   «         }t          j        |d| j        dœŽ}|D ]$Š‰j        r |j        ˆfd„| j         D ¦   «         Ž  Œ%|S )z×Get a table to render the Progress display.

        Args:
            tasks (Iterable[Task]): An iterable of Task instances, one per row of the table.

        Returns:
            Table: A table instance.
        c              3   ó¬   K  — | ]O}t          |t          ¦  «        rt          d ¬¦  «        n%|                     ¦   «                              ¦   «         V — ŒPdS )Tr5  N)r%  rß   r9   r  Úcopy)rÂ  Ú_columns     rN   rÄ  z,Progress.make_tasks_table.<locals>.<genexpr>"  sr   è è € ð 
ð 
ð õ ˜g¥sÑ+Ô+ð7•˜tÐ$Ñ$Ô$Ð$à×-Ò-Ñ/Ô/×4Ò4Ñ6Ô6ð	
ð 
ð 
ð 
ð 
ð 
rO   )r   r,   )ÚpaddingrÔ  c              3   ó„   •K  — | ]:}t          |t          ¦  «        r|                     ‰¬ ¦  «        n
 |‰¦  «        V — Œ;dS )r9  N)r%  rß   r:  )rÂ  Úcolumnr–   s     €rN   rÄ  z,Progress.make_tasks_table.<locals>.<genexpr>/  sf   øè è € ð ð ð #õ  *¨&µ#Ñ6Ô6ð.˜FŸMšM¨t˜MÑ4Ô4Ð4à!' ¨¡¤ð	ð ð ð ð ð rO   )r’   r:   ÚgridrÔ  r§  Úadd_row)rL   rá  Útable_columnsr  r–   s       @rN   r  zProgress.make_tasks_table  s›   ø€ ð
ð 
ð  œ<ð
ñ 
ô 
ˆõ ”
˜M°6À$Ä+ÐNÐNÐNˆàð 	ð 	ˆDØŒ|ð 
Ø�”ðð ð ð ð '+¤lðñ ô ð	ð 	øð ˆrO   c                 ól   — | j         5  |                      ¦   «         cddd¦  «         S # 1 swxY w Y   dS )z+Makes the Progress class itself renderable.N)r³  rÖ  r^   s    rN   Ú__rich__zProgress.__rich__:  s}   € àŒZð 	)ð 	)Ø×&Ò&Ñ(Ô(ð	)ð 	)ð 	)ð 	)ñ 	)ô 	)ð 	)ð 	)ð 	)ð 	)ð 	)ð 	)øøøð 	)ð 	)ð 	)ð 	)ð 	)ð 	)s   ˆ)©-°-r½  c                 ón  — | j         5  t          | j        |||||| j        | j         ¬¦  «        }|| j        | j        <   |r|                      | j        ¦  «         | j        }t          t          | j        ¦  «        dz   ¦  «        | _        ddd¦  «         n# 1 swxY w Y   |                      ¦   «          |S )a  Add a new 'task' to the Progress display.

        Args:
            description (str): A description of the task.
            start (bool, optional): Start the task immediately (to calculate elapsed time). If set to False,
                you will need to call `start` manually. Defaults to True.
            total (float, optional): Number of total steps in the progress if known.
                Set to None to render a pulsing animation. Defaults to 100.
            completed (int, optional): Number of steps completed so far. Defaults to 0.
            visible (bool, optional): Enable display of the task. Defaults to True.
            **fields (str): Additional data fields required for rendering.

        Returns:
            TaskID: An ID you can use when calling `update`.
        )r§  r©  r¦  r³  r,   N)	r³  r  rÙ  r   rØ  r	  r=   rÞ   rR   )	rL   rz   r]   r{   rI   r§  r©  r–   Únew_task_indexs	            rN   rð  zProgress.add_task?  s  € ð0 ŒZð 	Að 	AÝØÔ ØØØØØØœ-Ø”jð	ñ 	ô 	ˆDð -1ˆDŒK˜Ô(Ñ)Øð 2Ø—’ Ô 0Ñ1Ô1Ð1Ø!Ô-ˆNÝ%¥c¨$Ô*:Ñ&;Ô&;¸aÑ&?Ñ@Ô@ˆDÔð	Að 	Að 	Añ 	Aô 	Að 	Að 	Að 	Að 	Að 	Að 	Aøøøð 	Að 	Að 	Að 	Að  	�Š‰ŒˆØÐs   ˆBBÂBÂBc                 óV   — | j         5  | j        |= ddd¦  «         dS # 1 swxY w Y   dS )z]Delete a task if it exists.

        Args:
            task_id (TaskID): A task ID.

        N)r³  rØ  )rL   rD   s     rN   Úremove_taskzProgress.remove_taskj  sz   € ð ŒZð 	%ð 	%Ø”˜GÐ$ð	%ð 	%ð 	%ñ 	%ô 	%ð 	%ð 	%ð 	%ð 	%ð 	%ð 	%ð 	%øøøð 	%ð 	%ð 	%ð 	%ð 	%ð 	%s   ˆ	ž"¥"ri   )Nr   Nrr   rx   r[   ©r»   NNN©rð   r»   NNN)r,   )Tr½  r   T)<rj   rk   rl   rm   r&   rß   rý   r    r/   rÛ   rn   rÎ  rK   r`  r#   r×  rÝ   r}   r   r  rá  r=   rå  r+  r]   rè   r+   r_   r$   ro   r   rh   r   r>   r!   rÞ   r‘   r   rí   ÚtypingÚoverloadrÜ   r)   r÷   r"   r	  r  r   rW   r  rS   rR   r2   rÖ  r  r:   r  r&  rð  r*  rŸ   rO   rN   rC   rC   '  s¿  € € € € € ðð ð$ &*Ø!Ø$&Ø'+ØØ $Ø $Ø.2ØØð"$ð "$ð "$à˜˜^Ð+Ô,ð"$ð ˜'Ô"ð"$ð ð	"$ð
 "ð"$ð  %ð"$ð ð"$ð ð"$ð ð"$ð ˜?Ô+ð"$ð ð"$ð ð"$ð 
ð"$ð "$ð "$ð "$ðH ð
 E¨.¸#Ð*=Ô$>ð 
ð 
ð 
ñ „[ð
ð< ð!˜ð !ð !ð !ñ „Xð!ð ð.�t˜D”zð .ð .ð .ñ „Xð.ð
 ð,˜$˜vœ,ð ,ð ,ð ,ñ „Xð,ð
 ðG˜$ð Gð Gð Gñ „XðGð*ð *ð *ð *ð
!ð !ð !ð !ð˜4ð ð ð ð ðà˜4 Ô.Ô/ðð ˜-Ô(ðð ˜Ô'ð	ð
 
ðð ð ð ð "&ØØ$(Ø'Ø"ð)ð )à˜ Ô.°¸Ô0FÐFÔGð)ð ˜Œð)ð ð	)ð
 ˜&Ô!ð)ð ð)ð ð)ð 
�,Ô	ð)ð )ð )ð )ð\  $ð(@ð
 %)Ø'ð(@ð (@ð (@àð(@ð ˜Œ}ð(@ð
 ˜&Ô!ð(@ð ð(@ð 
ð(@ð (@ð (@ð (@ðT „_ð
 Ø"&Ø $Ø!%ðð  $Ø$(Ø'ðð ð à�C˜¨%Ð/Ô0ðð �dŒmðð ð	ð
 ˜3”-ðð ˜”ðð ˜#”ðð ˜Œ}ðð ˜&Ô!ðð ðð 
ðð ð ñ „_ðð „_ð
 Ø"&Ø $Ø!%ðð  $Ø$(Ø'ðð ð à�C˜¨%Ð/Ô0ðð �G˜C”L '¨$¤-Ð/Ô0ðð ð	ð
 ˜3”-ðð ˜”ðð ˜#”ðð ˜Œ}ðð ˜&Ô!ðð ðð 
ðð ð ñ „_ðð$ CFØØ"&Ø $Ø!%ðKð  $Ø$(Ø'ðKð Kð Kà�C˜¨%Ð/Ô0ðKð �G˜D”M 7¨4¤=°'¸#´,Ð>Ô?ðKð ð	Kð
 ˜3”-ðKð ˜”ðKð ˜#”ðKð ˜Œ}ðKð ˜&Ô!ðKð ðKð 
ˆx˜ÐÔ	 ðKð Kð Kð KðZ2 &ð 2¨Tð 2ð 2ð 2ð 2ð* ð *¨Dð *ð *ð *ð *ð& "&Ø%)Ø#'Ø%)Ø"&Øð;ð ;ð ;àð;ð ˜Œð	;ð
 ˜E”?ð;ð ˜%”ð;ð ˜c”]ð;ð ˜$”ð;ð ð;ð ð;ð 
ð;ð ;ð ;ð ;ðB Ø!%ØØ"&Ø%)ð%ð %ð %àð%ð ð	%ð
 ˜Œð%ð ð%ð ˜$”ð%ð ˜c”]ð%ð ð%ð 
ð%ð %ð %ð %ðN1ð 1˜vð 1°ð 1¸dð 1ð 1ð 1ð 1ð< ð  ð  ð  ð
 ð ð ð ð ð
 ¨.Ô!9ð ð ð ð ð
 h¨t¤nð ¸ð ð ð ð ðB)˜.ð )ð )ð )ð )ð Ø!&ØØð)ð )àð)ð ð)ð ˜Œð	)ð
 ð)ð ð)ð ð)ð 
ð)ð )ð )ð )ðV% 6ð %¨dð %ð %ð %ð %ð %ð %rO   rC   Ú__main__)ÚPanel)ÚRule)ÚSyntax)r:   a~  def loop_last(values: Iterable[T]) -> Iterable[Tuple[bool, T]]:
    """Iterate and generate a tuple with a flag for last value."""
    iter_values = iter(values)
    try:
        previous_value = next(iter_values)
    except StopIteration:
        return
    for value in iter_values:
        yield False, previous_value
        previous_value = value
    yield True, previous_valueÚpython)Úline_numbersÚfooÚbarÚbazÚ1Ú2Ú3z:Text may be printed while the progress bars are rendering.z(In fact, [i]any[/i] renderable will workzSuch as [magenta]tables[/]...zPretty printed structures...ÚexamplezPretty printed)Útyper,  z	Syntax...zGive it a try!)Úcycle)Úrecord)r}   r~   z[red]DownloadingrW  rô  z[green]Processingz[yellow]Thinkingrb  r£   g333333Ó?g{®Gáz„?éd   )rr   Nr   TNFNrs   rt   ru   rv   rw   rx   FTr+  r,  )ˆr  Úsysr-  r  Úabcr   r   Úcollectionsr   Údataclassesr   r   Údatetimer	   r
   r   Úmathr   r   Úoperatorr   Úosr   r   Ú	threadingr   r   r   Útypesr   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   Úversion_infor)   Úpip._vendor.typing_extensionsr+   r  r-   r.   r}   r/   r0   r1   r2   r3  r3   Újupyterr4   rU   r5   Úprogress_barr6   r$  r7   r�   r8   r  r9   r:   r,  r;   r<   rÞ   r=   r>   rn   rÎ  r?   rA   rß   rÛ   r‘   r”   rã   rí   r.  rÜ   r÷   rý   r  r  rŒ   rŽ   rH  r�   r�   rq  rx  r{  rì   r¡  r¤  r  rC   rj   ÚrandomÚtimeÚpanelr0  Úruler1  Úsyntaxr2  r#  Úprogress_renderablesÚ	itertoolsr=  Úexamplesr×  rB   rð  Útask1Útask2Útask3r+  rW   ÚsleepÚrandintrÛ  r¤   rŸ   rO   rN   ú<module>r[     s  ðØ 	€	€	€	Ø 
€
€
€
Ø €€€Ø €€€Ø #Ð #Ð #Ð #Ð #Ð #Ð #Ð #Ø Ð Ð Ð Ð Ð Ø (Ð (Ð (Ð (Ð (Ð (Ð (Ð (Ø Ð Ð Ð Ð Ð Ø .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø  Ð  Ð  Ð  Ð  Ð  Ø Ð Ð Ð Ð Ð Ð Ð Ø *Ð *Ð *Ð *Ð *Ð *Ð *Ð *Ð *Ð *Ø Ð Ð Ð Ð Ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð* Ô�vÒð 6ØÐÐÐÐÐÐà5Ð5Ð5Ð5Ð5Ð5àÔ�wÒð 3ØÐÐÐÐÐÐà2Ð2Ð2Ð2Ð2Ð2à #Ð #Ð #Ð #Ð #Ð #Ð #Ð #Ø BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BØ $Ð $Ð $Ð $Ð $Ð $Ø !Ð !Ð !Ð !Ð !Ð !Ø Ð Ð Ð Ð Ð Ø %Ð %Ð %Ð %Ð %Ð %Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø  Ð  Ð  Ð  Ð  Ð  Ð  Ð  Ø  Ð  Ð  Ð  Ð  Ð  Ð  Ð  à	ˆ�˜3Ñ	Ô	€àˆw�~Ñ&Ô&€à˜2˜u˜9Ô%€ð €V„^�D˜& (Ñ+Ô+€ð%ð %ð %ð %ð %�6ñ %ô %ð %ðT $Ø!ØØØ!%ØØ.2Ø "Ø!Ø .Ø .Ø(ØØØð!I
ð I
Ø�H˜\Ô*¨H°\Ô,BÐBÔCðI
àðI
ð �EŒ?ðI
ð ð	I
ð
 ðI
ð �gÔðI
ð ðI
ð �x  E 	Ô*Ô+ðI
ð ðI
ð ðI
ð ðI
ð ðI
ð ðI
ð ðI
ð ðI
ð  ð!I
ð" ˆlÔð#I
ð I
ð I
ð I
ðXd1ð d1ð d1ð d1ð d1ˆi˜ñ d1ô d1ð d1ðN8ð 8ð 8ð 8ð 8�> "Ô% w¨r¤{ñ 8ô 8ð 8ð2 $ØØ!%ØØ.2Ø "Ø!Ø .Ø .Ø(Øð>*ð >*ð >*Ø
ð>*àð>*ð ð	>*ð
 ð>*ð �gÔð>*ð ð>*ð �x  E 	Ô*Ô+ð>*ð ð>*ð ð>*ð ð>*ð ð>*ð ð>*ð ð>*ð �HÔð>*ð >*ð >*ð >*ðB „ð Ø"Ø Ø!ð	ð  Ø#ØØ!%ØØ.2Ø "Ø!Ø .Ø .Ø(Øð'	ð 	ð 	Ø
��_ eÐ+Ô
,ð	à
�˜”˜w sœ|Ð+Ô
,ð	ð ð	ð �sŒmð		ð
 �SŒMð	ð �cŒ]ð	ð �CŒ=ð	ð ð	ð ð	ð �gÔð	ð ð	ð �x  E 	Ô*Ô+ð	ð ð	ð ð	ð  ð!	ð" ð#	ð$ ð%	ð& ð'	ð( �FÔð)	ð 	ð 	ñ „ð	ð0 „ð Ø"Ø Ø!ð	ð  Ø#ØØ!%ØØ.2Ø "Ø!Ø .Ø .Ø(Øð'	ð 	ð 	Ø
��_ eÐ+Ô
,ð	à
�$Œ-ð	ð ð	ð �sŒmð		ð
 �SŒMð	ð �cŒ]ð	ð �CŒ=ð	ð ð	ð ð	ð �gÔð	ð ð	ð �x  E 	Ô*Ô+ð	ð ð	ð ð	ð  ð!	ð" ð#	ð$ ð%	ð& ð'	ð( �HÔð)	ð 	ð 	ñ „ð	ð4 ?BØØ"Ø Ø!ðS*ð  Ø#ØØ!%ØØ.2Ø "Ø!Ø .Ø .Ø(Øð'S*ð S*ð S*Ø
��_ eÐ+Ô
,ðS*à
�˜”˜w tœ}¨g°c¬lÐ:Ô
;ðS*ð ðS*ð �sŒmð	S*ð
 �SŒMðS*ð �cŒ]ðS*ð �CŒ=ðS*ð ðS*ð ðS*ð �gÔðS*ð ðS*ð �x  E 	Ô*Ô+ðS*ð ðS*ð ðS*ð  ð!S*ð" ð#S*ð$ ð%S*ð& ð'S*ð( ˆ>˜(Ô# ^°FÔ%;Ð;Ô<ð)S*ð S*ð S*ð S*ðl'1ð '1ð '1ð '1ð '1�Sñ '1ô '1ð '1ðTð ð ð ð �~ñ ô ð ð"/ð /ð /ð /ð /�Nñ /ô /ð /ðdð ð ð ð �ñ ô ð ð<'
ð '
ð '
ð '
ð '
�ñ '
ô '
ð '
ðT	:ð 	:ð 	:ð 	:ð 	:˜ñ 	:ô 	:ð 	:ðEð Eð Eð Eð E˜ñ Eô Eð EðP-,ð -,ð -,ð -,ð -,˜.ñ -,ô -,ð -,ð`:ð :ð :ð :ð :�^ñ :ô :ð :ð@ð @ð @ð @ð @˜.ñ @ô @ð @ð
ð 
ð 
ð 
ð 
˜ñ 
ô 
ð 
ð6.ð .ð .ð .ð .�^ñ .ô .ð .ðb	Dð 	Dð 	Dð 	Dð 	D˜.ñ 	Dô 	Dð 	Dð%ð %ð %ð %ð %�Zñ %ô %ð %ð ðz#ð z#ð z#ð z#ð z#ñ z#ô z#ñ „ðz#ðzK	%ð K	%ð K	%ð K	%ð K	%ˆ|ñ K	%ô K	%ð K	%ð\ ˆzÒñ >-Ø€M€M€MØ€K€K€KàÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐàˆVð
	"ð 	Øðñ ô €Fð  ˆE�%˜ Ñ&Ô&€EØ	‡M‚M�#�s˜CÑ Ô Ð ð 	EØˆÐ8Ñ9Ô9Ø'ØØ&ØÐ$4Ð5Ð5ØØØˆÐÑÔð
Ðð  ÐÐÐÐÐàˆuÐ)Ñ*Ô*€Hàˆg˜TÐ"Ñ"Ô"€Gà	ˆØˆ‰Œð
à	×	%Ò	%Ñ	'Ô	'ð
ð 	ÐÑÔð
ð 
ð Øð
ð 
ð 
ð -ð 
Ø×!Ò!Ð"4¸DÐ!ÑAÔAˆØ×!Ò!Ð"5¸TÐ!ÑBÔBˆØ×!Ò!Ð"4¸DÐ!ÑAÔAˆàÔ#ð 	-Ø�OŠO˜E¨3ˆOÑ/Ô/Ð/Ø�OŠO˜E¨3ˆOÑ/Ô/Ð/ØˆDŒJ�tÑÔÐØˆvŒ~˜a Ñ%Ô%¨Ò)ð -Ø—’˜T˜T (™^œ^Ñ,Ô,Ð,ð Ô#ð 	-ð-ð -ð -ñ -ô -ð -ð -ð -ð -ð -ð -ð -øøøð -ð -ð -ð -ð -ð -ð]>-ð >-s   ÖCY!Ù!Y%Ù(Y%