§
    eÉÝjåJ  ã                  óZ  — U d dl mZ g d¢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mZmZ d dlmZmZ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 m!Z!m"Z"m#Z# d dl$m%Z% d dl&m'Z'm(Z( erd dl)m*Z*m+Z+ d dlm,Z, d dlm-Z-m.Z. ed         Z/ed         Z0dZ1de2d<    e
d¬¦  «         G d„ d¦  «        ¦   «         Z3 e
d¬¦  «         G d„ d¦  «        ¦   «         Z4e
 G d„ d¦  «        ¦   «         Z5 G d „ d!e ¦  «        Z6 e
d¬¦  «         G d"„ d#¦  «        ¦   «         Z7g d$¢Z8dS )%é    )Úannotations)	Ú
contextlibzfilelock._errorzfilelock._identityzfilelock._softzfilelock._utilÚmathÚsecretsÚ	threadingÚweakrefN)Úsuppress)Ú	dataclass)Úisfinite)ÚEventÚThreadÚcurrent_thread)ÚTYPE_CHECKINGÚFinalÚLiteralÚcast)Ú
WeakMethod)Ú_check_timeout_maxÚ_seconds)ÚLeaseSettingsMismatch)Úowner_is_stale)ÚMarkerSoftFileLockÚ	OwnerModeÚOwnerRecordÚparse_marker)Ú_read_lock_file)Ú	pin_inodeÚtouch)ÚCallableÚMapping)ÚUnpack)ÚLockOptionsÚ_ExtraValue)úmarker-missingúowner-changedúrefresh-failedÚevicted)ÚokÚ	transientr$   r%   g      >@zFinal[float]Ú_DEFAULT_LEASE_DURATIONT)Úfrozenc                  ó@   — e Zd ZU dZded<   ded<   ded<   dZded	<   dS )
ÚLeaseCompromisezdWhy a held lease stopped being this process's to hold, and the error that ended its refresh, if any.ÚstrÚ	lock_fileÚtokenÚCompromiseReasonÚreasonNzException | NoneÚerror)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú__annotations__r3   © ó    úW/home/spazio/cosmos_universe_media/venv/lib/python3.11/site-packages/filelock/_lease.pyr-   r-   /   sG   € € € € € € ànÐnà€N€N�NØ€J€J�JØÐÐÑØ"€EÐ"Ð"Ð"Ñ"Ð"Ð"r:   r-   c                  ó(   — e Zd ZU dZded<   ded<   dS )Ú
_HeartbeatzPA running heartbeat and the event that stops it, which only ever exist together.r   Úthreadr   ÚstopN)r4   r5   r6   r7   r8   r9   r:   r;   r=   r=   9   s(   € € € € € € àZÐZà€N€N�NØ€K€K�K€K€Kr:   r=   c                  ó>   — e Zd ZU dZdZded<   dZded<   dZded<   dS )	Ú_LeaseClaimzNThe state of one claim: its token, its heartbeat, and how that claim was lost.Nú
str | Noner0   úLeaseCompromise | NoneÚ
compromisez_Heartbeat | NoneÚ	heartbeat)r4   r5   r6   r7   r0   r8   rD   rE   r9   r:   r;   rA   rA   A   sK   € € € € € € àXÐXà€EÐÐÐÑØ)-€JÐ-Ð-Ð-Ñ-Ø#'€IÐ'Ð'Ð'Ñ'Ð'Ð'r:   rA   c                  ó  ‡ — e Zd ZU dZdZded<   dZded<   dZd	ed
<   edddœd;ˆ fd„Z	d<ˆ fd„Z
ed=d„¦   «         Zed>d„¦   «         Zed?d!„¦   «         Zed@d#„¦   «         ZdAˆ fd$„ZdAˆ fd%„ZdBˆ fd'„ZdAd(„ZdCˆ fd+„ZdDd-„ZdEd4„ZdAd5„ZdFd:„Zˆ xZS )GÚSoftFileLeaseaC  
    Existence lock whose claim expires, so a peer may take it while the previous holder still runs.

    A lease trades mutual exclusion for progress. The holder publishes a claim and refreshes it every
    ``heartbeat_interval`` seconds; a contender takes the marker once it has seen no refresh for ``lease_duration``
    seconds of its own monotonic clock, so clock skew between hosts cannot expire a live claim. Nothing stops the
    expired holder: it keeps running, and it keeps using whatever the lock protects. Treat the lease as a hint about
    who *should* be working, not as a guarantee that only one worker is.

    To make a protected resource reject a superseded holder, that resource must be linearizable and must fence on a
    monotonic generation it controls. :attr:`token` names a claim; it does not fence one. Where overlap is unacceptable,
    use :class:`StrictSoftFileLock <filelock.StrictSoftFileLock>` instead.

    Every contender for a path must agree on ``lease_duration``. A contender that finds a claim published under a
    different duration raises :class:`LeaseSettingsMismatch <filelock.LeaseSettingsMismatch>` rather than apply its own
    expiry to a peer that never agreed to it.

    Expiry reclaims less on Windows, which refuses to rename or delete a file another process holds open. A peer there
    takes an expired claim only once the previous holder's process exits and its handle closes; a holder that lives on
    but stops refreshing keeps the marker. Unix reclaims the marker either way.

    ``on_compromise`` fires from the heartbeat thread when a refresh fails, or when the marker vanishes or names another
    owner. The holder should stop touching the protected resource when it runs. Because it runs on that thread, a
    ``release()`` inside it only takes effect when the lease was built with ``thread_local=False``; the default
    thread-local context hides the claim from every thread but the one that acquired it, so the release does nothing.
    Signal the acquiring thread instead when the context stays thread-local.

    .. versionadded:: 3.30.0

    Úleaser   Ú_owner_modeFÚboolÚ_lifetime_supportedz(lease_duration sets when a lease expiresr.   Ú_lifetime_unsupported_reasonN)Úlease_durationÚheartbeat_intervalÚon_compromiser/   ústr | os.PathLike[str]rM   ÚfloatrN   úfloat | NonerO   ú(Callable[[LeaseCompromise], None] | NoneÚkwargsúUnpack[LockOptions]ÚreturnÚNonec               óÈ  •— t          t          d|¦  «        x}¦  «        r|dk    rd|›�}t          |¦  «        ‚|€|dz  nt          d|¦  «        }d|cxk     r|k     sn d|›�}t          |¦  «        ‚t          d|¦  «          t	          ¦   «         j        |fi |¤Ž || _        || _        || _        |  	                    ¦   «         st          ¦   «         | j        _        dS dS )aÂ  
        Create a lease.

        :param lease_duration: seconds a contender must see the marker go unrefreshed before it may take the claim.
            Every contender for the path must pass the same value.
        :param heartbeat_interval: seconds between refreshes. Defaults to a third of ``lease_duration``, leaving room
            for two missed refreshes before a peer may take the claim. Must be shorter than ``lease_duration`` and at
            most :data:`threading.TIMEOUT_MAX`.
        :param on_compromise: called from the heartbeat thread with a :class:`LeaseCompromise` when the claim is lost.
        :param kwargs: every other :class:`BaseFileLock <filelock.BaseFileLock>` option, ``timeout`` and ``mode`` among
            them. The metaclass passes them all by keyword, and taking them here lets
            :class:`AsyncSoftFileLease <filelock.AsyncSoftFileLease>` add the async plumbing a fixed signature would
            hide.

        rM   r   z0lease_duration must be positive and finite, got Né   rN   zBheartbeat_interval must be positive and below lease_duration, got )r   r   Ú
ValueErrorr   ÚsuperÚ__init__Ú_lease_durationÚ_heartbeat_intervalÚ_on_compromiseÚis_thread_localrA   Ú_contextÚlease_claim)Úselfr/   rM   rN   rO   rT   ÚmsgÚ	__class__s          €r;   r\   zSoftFileLease.__init__p   s$  ø€ õ2 ­(Ð3CÀ^Ñ*TÔ*TÐT˜ÑUÔUð 	"ÐYgÐklÒYlÐYlØWÀ^ÐWÐWˆCÝ˜S‘/”/Ð!à"4Ð"<ˆN˜QÑÐÅ(ÐK_ÐasÑBtÔBtð 	ð Ð%Ð6Ð6Ò6Ð6¨Ò6Ð6Ð6Ð6ØmÐWiÐmÐmˆCÝ˜S‘/”/Ð!ÝÐ/Ð1CÑDÔDÐDØ�‰ŒÔ˜Ð-Ð- fÐ-Ð-Ð-Ø-ˆÔØ#5ˆÔ Ø+ˆÔà×#Ò#Ñ%Ô%ð 	6Ý(3©¬ˆDŒMÔ%Ð%Ð%ð	6ð 	6r:   úMapping[str, _ExtraValue]údict[str, tuple[str, str]]c          
     ó‚  •— t          ¦   «                              |¦  «        }t          dt          d|                     dt
          ¦  «        ¦  «        ¦  «        }|| j        k    r&t          |¦  «        t          | j        ¦  «        f|d<   |                     d¦  «        x}€
| j        dz  nt          dt          d|¦  «        ¦  «        }|| j        k    r&t          |¦  «        t          | j        ¦  «        f|d<   |                     d¦  «        x}| j	        ur&t          |¦  «        t          | j	        ¦  «        f|d<   |S )NrM   rQ   rN   rY   rO   )
r[   Ú_singleton_extra_mismatchesr   r   Úgetr*   r]   r.   r^   r_   )rc   rT   Ú
mismatchesrM   ÚpassedrN   rO   re   s          €r;   ri   z)SoftFileLease._singleton_extra_mismatches›   s:  ø€ Ý‘W”W×8Ò8¸Ñ@Ô@ˆ
Ý (Ø�d 7¨F¯JªJÐ7GÕI`Ñ,aÔ,aÑbÔbñ!
ô !
ˆð ˜TÔ1Ò1Ð1Ý,/°Ñ,?Ô,?ÅÀTÔEYÑAZÔAZÐ+[ˆJÐ'Ñ(ð !Ÿ*š*Ð%9Ñ:Ô:Ð:�ÐCð Ô  1Ñ$Ð$åÐ.µ°W¸fÑ0EÔ0EÑFÔFð 	ð
  Ô!9Ò9Ð9Ý03°F±´½SÀÔAYÑ=ZÔ=ZÐ/[ˆJÐ+Ñ,à#ŸZšZ¨Ñ8Ô8Ð8ˆMÀÔATÐTÐTÝ+.¨}Ñ+=Ô+=½sÀ4ÔCVÑ?WÔ?WÐ*XˆJ�Ñ'ØÐr:   rA   c                ój   — |                       ¦   «         }|j        x}€t          ¦   «         x}|_        |S ©N)Ú_hold_staterb   rA   )rc   ÚstateÚclaims      r;   Ú_claimzSoftFileLease._claim¯   s9   € ð ×'Ò'Ñ)Ô)ˆØÔ&Ð&ˆEÐ/Ý(3©¬Ð5ˆE�EÔ%Øˆr:   c                ó   — | j         S )zEThe staleness in seconds after which a contender may take this claim.)r]   ©rc   s    r;   rM   zSoftFileLease.lease_duration·   s   € ð Ô#Ð#r:   rB   c                ó   — | j         j        S )z½
        The token naming the claim this process published.

        :returns: the token while the lease is held, ``None`` otherwise. It identifies a claim; it does not fence one.

        )rr   r0   rt   s    r;   r0   zSoftFileLease.token¼   s   € ð Œ{Ô Ð r:   rC   c                ó   — | j         j        S )aá  
        The loss of claim the heartbeat observed.

        The value outlives ``release()``, so a holder can check after leaving the ``with`` block whether its work may
        have overlapped a successor; the next acquisition resets it, as :attr:`SoftReadWriteLock.compromise
        <filelock.SoftReadWriteLock.compromise>` does.

        :returns: the :class:`LeaseCompromise` of the latest claim, or ``None`` while that claim holds or held to its
            release

        )rr   rD   rt   s    r;   rD   zSoftFileLease.compromiseÆ   s   € ð Œ{Ô%Ð%r:   c                ón  •— | j         }|                      ¦   «          t          j        d¦  «        x|_        }d |_        	 t          ¦   «                              ¦   «          n# t          $ r	 d |_        ‚ w xY w| j	        j
        x}�)| j	        j        x}	 �|                      ||||¦  «         d S d |_        d S )Né   )rr   Ú_stop_heartbeatr   Ú	token_hexr0   rD   r[   Ú_acquireÚBaseExceptionra   Úlock_file_fdÚlock_file_fd_identityÚ_start_heartbeat)rc   rq   r0   ÚfdÚidentityre   s        €r;   r{   zSoftFileLease._acquireÕ   sÒ   ø€ Ø”ˆØ×ÒÑÔÐå%Ô/°Ñ3Ô3Ð3ˆŒ�eØˆÔð	Ý‰GŒG×ÒÑÔÐÐøÝð 	ð 	ð 	ØˆEŒKØð	øøøð
 ”-Ô,Ð,ˆBÐ9ØœÔ;Ð;ˆHØð?ð ×!Ò! %¨¨X°uÑ=Ô=Ð=Ð=Ð=àˆEŒKˆKˆKs   Á  A! Á!A4c                óˆ   •— |                       ¦   «          d | j        _        t          ¦   «                              ¦   «          d S rn   )ry   rr   r0   r[   Ú_release©rc   re   s    €r;   rƒ   zSoftFileLease._releaseé   s;   ø€ Ø×ÒÑÔÐØ ˆŒÔÝ‰Œ×ÒÑÔÐÐÐr:   r   c                óŒ   •— t          ¦   «                              ¦   «                              | j        j        | j        ¬¦  «        S )N)r0   rM   )r[   Ú_published_recordÚ_replacerr   r0   r]   r„   s    €r;   r†   zSoftFileLease._published_recordî   s5   ø€ Ý‰wŒw×(Ò(Ñ*Ô*×3Ò3¸$¼+Ô:KÐ\`Ô\pÐ3ÑqÔqÐqr:   c                óâ   — t          t          ¦  «        5  t          | j        ¦  «        5 }|                      |¦  «         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S rn   )r	   ÚOSErrorr   Ú
_lock_pathÚ_try_break_pinned_lock)rc   Úpinneds     r;   Ú_try_break_stale_lockz#SoftFileLease._try_break_stale_lockñ   së   € õ •gÑÔð 	0ð 	0¥	¨$¬/Ñ :Ô :ð 	0¸fØ×'Ò'¨Ñ/Ô/Ð/ð	0ð 	0ð 	0ñ 	0ô 	0ð 	0ð 	0ð 	0ð 	0ð 	0ð 	0øøøð 	0ð 	0ð 	0ð 	0ð 	0ð 	0ð 	0ñ 	0ô 	0ð 	0ð 	0ð 	0ð 	0ð 	0ð 	0ð 	0øøøð 	0ð 	0ð 	0ð 	0ð 	0ð 	0s4   •A$ªAÁ A$ÁA	ÁA$ÁA	ÁA$Á$A(Á+A(rŒ   ú
int | Nonec                ó:  •— |                       ¦   «         x}€"t          ¦   «                              ¦   «          d S |\  }}|d |j        hvrd S |j        dk    r9|j        | j        k    r)| j        › d|j        ›d| j        ›d�}t          |¦  «        ‚|j        dk    r=t          |j
        |j        |j        ¦  «        r|                      ||j
        ¦  «         d S |j        dk    r6|                      |¦  «        | j        k    r|                      |d ¦  «         d S d S d S )NrH   z holds a lease of z s but this contender configured z:s; every contender for a path must agree on lease_durationÚunknown)Ú
_read_peerr[   r�   Úst_inoÚmoderM   r]   r/   r   r   ÚpidÚhostnameÚstartÚ
_take_overÚ_marker_unchanged_for)rc   rŒ   ÚpeerÚownerÚmarkerrd   re   s         €r;   r‹   z$SoftFileLease._try_break_pinned_lock÷   sV  ø€ Ø—O’OÑ%Ô%Ð%ˆDÐ.õ
 ‰GŒG×)Ò)Ñ+Ô+Ð+ØˆFØ‰ˆˆvØ˜$ ¤Ð.Ð.Ð.ØˆFð Œ:˜Ò Ð  UÔ%9¸TÔ=QÒ%QÐ%Qà”>ð fð f°UÔ5Ið fð fØÔ'ðfð fð fð õ (¨Ñ,Ô,Ð,ð Œ:˜Ò"Ð"¥~°e´iÀÄÐQVÔQ\Ñ']Ô']Ð"Ø�OŠO˜F E¤IÑ.Ô.Ð.ØˆFØŒ:˜Ò Ð  T×%?Ò%?ÀÑ%GÔ%GÈ4ÔK_Ò%_Ð%_Ø�OŠO˜F DÑ)Ô)Ð)Ð)Ð)ð !Ð Ð%_Ð%_r:   ú)tuple[OwnerRecord, os.stat_result] | Nonec                óÜ   — t          t          t          ¦  «        5  t          | j        ¦  «        \  }}t          |¦  «        x}�||fcd d d ¦  «         S 	 d d d ¦  «         n# 1 swxY w Y   d S rn   )r	   r‰   rZ   r   rŠ   r   )rc   Úcontentr›   rš   s       r;   r‘   zSoftFileLease._read_peer  sÆ   € Ý•g�zÑ*Ô*ð 	%ð 	%Ý-¨d¬oÑ>Ô>‰OˆG�VÝ% gÑ.Ô.Ð.�Ð;Ø˜f�}ð	%ð 	%ð 	%ð 	%ñ 	%ô 	%ð 	%ð 	%à;ð	%ð 	%ð 	%ñ 	%ô 	%ð 	%ð 	%ð 	%ð 	%ð 	%ð 	%øøøð 	%ð 	%ð 	%ð 	%ð ˆts   ›,A!Á!A%Á(A%rq   r€   Úintr�   útuple[int, int]r0   c                óF  ‡— t          ¦   «         Št          t          | j        ˆfd„¦  «        | j        ||||‰| j        | j        ¬¦	  «	        }t          |j        dt          j
        ¦   «         › �d¬¦  «        }t          |‰¦  «        |_        |                     ¦   «          d S )Nc                ó,   •— ‰                      ¦   «         S rn   )Úset)Ú_r?   s    €r;   ú<lambda>z0SoftFileLease._start_heartbeat.<locals>.<lambda>!  s   ø€ ÀÇÂÁÄ€ r:   )	Úreportr/   rq   r€   r�   r0   r?   ÚintervalÚdurationzfilelock-lease-T)ÚtargetÚnameÚdaemon)r   Ú_RefreshLoopr   Ú_report_compromiserŠ   r^   r]   r   ÚrunÚosÚgetpidr=   rE   r–   )rc   rq   r€   r�   r0   Úloopr>   r?   s          @r;   r   zSoftFileLease._start_heartbeat  sª   ø€ õ ‘g”gˆÝ"õ ˜dÔ5Ð7KÐ7KÐ7KÐ7KÑLÔLØ”oØØØØØØÔ-ØÔ)ð
ñ 
ô 
ˆõ  d¤hÐ5TÅrÄyÁ{Ä{Ð5TÐ5TÐ]aÐbÑbÔbˆõ % V¨TÑ2Ô2ˆŒØ�Š‰Œˆˆˆr:   c                ó  — | j         }|j        x}€d S |j                             ¦   «          d |_        |j        j        �J|j        t          ¦   «         ur7t          j        ¦   «         s&|j         	                    | j
        ¬¦  «         d S d S d S d S )N)Útimeout)rr   rE   r?   r£   r>   Úidentr   ÚsysÚis_finalizingÚjoinr^   )rc   rq   rE   s      r;   ry   zSoftFileLease._stop_heartbeat2  s�   € Ø”ˆØœÐ(ˆIÐ1ØˆFØŒ×ÒÑÔÐØˆŒð ÔÔ!Ð-°)Ô2BÍ.ÑJZÔJZÐ2ZÐ2ZÕcfÔctÑcvÔcvÐ2ZØÔ×!Ò!¨$Ô*BÐ!ÑCÔCÐCÐCÐCð .Ð-Ð2ZÐ2ZÐ2ZÐ2Zr:   r2   r1   r3   úOSError | Nonec                ó†   — t          | j        |||¬¦  «        |_        | j        �|                      |j        ¦  «         d S d S )N)r/   r0   r2   r3   )r-   r/   rD   r_   )rc   rq   r2   r3   r0   s        r;   r­   z SoftFileLease._report_compromise=  sO   € õ +°T´^È5ÐY_ÐglÐmÑmÔmˆÔØÔÐ*Ø×Ò Ô 0Ñ1Ô1Ð1Ð1Ð1ð +Ð*r:   )r/   rP   rM   rQ   rN   rR   rO   rS   rT   rU   rV   rW   )rT   rf   rV   rg   )rV   rA   )rV   rQ   )rV   rB   )rV   rC   ©rV   rW   )rV   r   )rŒ   rŽ   rV   rW   )rV   rœ   )
rq   rA   r€   rŸ   r�   r    r0   r.   rV   rW   )
rq   rA   r2   r1   r3   r¸   r0   r.   rV   rW   )r4   r5   r6   r7   rI   r8   rK   rL   r*   r\   ri   Úpropertyrr   rM   r0   rD   r{   rƒ   r†   r�   r‹   r‘   r   ry   r­   Ú__classcell__)re   s   @r;   rG   rG   J   s  ø€ € € € € € ðð ð> %€KÐ$Ð$Ð$Ñ$ð !&ÐÐ%Ð%Ð%Ñ%Ø(RÐ ÐRÐRÐRÑRð !8Ø+/ØBFð)6ð )6ð )6ð )6ð )6ð )6ð )6ð )6ðVð ð ð ð ð ð( ðð ð ñ „Xðð ð$ð $ð $ñ „Xð$ð ð!ð !ð !ñ „Xð!ð ð&ð &ð &ñ „Xð&ðð ð ð ð ð ð(ð ð ð ð ð ð
rð rð rð rð rð rð0ð 0ð 0ð 0ð*ð *ð *ð *ð *ð *ð8ð ð ð ðð ð ð ð0	Dð 	Dð 	Dð 	Dð2ð 2ð 2ð 2ð 2ð 2ð 2ð 2r:   rG   c                  óŽ   — e Zd ZU dZded<   ded<   ded<   ded	<   d
ed<   ded<   ded<   ded<   ded<   dd„Zdd„Zdd„Zdd„ZdS )r¬   zYWhat a heartbeat thread needs to refresh one claim, holding the lease itself only weakly.zPWeakMethod[Callable[[_LeaseClaim, CompromiseReason, OSError | None, str], None]]r¦   r.   r/   rA   rq   rŸ   r€   r    r�   r0   r   r?   rQ   r§   r¨   rV   rW   c                ó²  — t          j        ¦   «         d}}| j                             | j        ¦  «        s¢|                      ¦   «         \  }}|dk    rt          j        ¦   «         d}}ŒR|dv r|sd}Œ[|dk    r(t          j        ¦   «         |z
  | j        | j        z
  k     rŒ‰|                      ¦   «         x}�  || j        |dk    rdn||| j	        ¦  «         d S d S )NFr(   >   r%   r$   Tr)   r&   )
ÚtimeÚ	monotonicr?   Úwaitr§   Ú_refreshr¨   r¦   rq   r0   )rc   Úlast_successÚmissingÚoutcomer3   r¦   s         r;   r®   z_RefreshLoop.runZ  sö   € õ !%¤Ñ 0Ô 0°%�gˆØ”)—.’. ¤Ñ/Ô/ð 	Ø!Ÿ]š]™_œ_‰NˆG�UØ˜$ŠˆÝ(,¬Ñ(8Ô(8¸%˜g�Øð Ð=Ð=Ð=ÀgÐ=Ø�ØØ˜+Ò%Ð%­$¬.Ñ*:Ô*:¸\Ñ*IÈDÌMÐ\`Ô\iÑLiÒ*iÐ*iØØŸ+š+™-œ-Ð'�Ð4Ø��t”z°wÀ+Ò7MÐ7MÐ#3Ð#3ÐSZÐ\aÐcgÔcmÑnÔnÐnØˆFð	ð 	r:   ú&tuple[_RefreshOutcome, OSError | None]c                ó  — 	 t          j        | j        ¦  «        }nB# t          $ r}|                      |¦  «        cY d }~S d }~wt
          $ r}d|fcY d }~S d }~ww xY w|j        |j        f| j        k    rdS |  	                    ¦   «         S )Nr)   )r%   N)
r¯   Úlstatr/   ÚFileNotFoundErrorÚ_refresh_unnamedr‰   Úst_devr’   r�   Ú_touch)rc   Ústr3   s      r;   rÂ   z_RefreshLoop._refreshn  s¸   € ð	&Ý”˜$œ.Ñ)Ô)ˆBˆBøÝ ð 	0ð 	0ð 	0Ø×(Ò(¨Ñ/Ô/Ð/Ð/Ð/Ð/Ð/Ð/øøøøÝð 	&ð 	&ð 	&Ø Ð%Ð%Ð%Ð%Ð%Ð%Ð%øøøøð	&øøøð ŒI�r”yÐ! T¤]Ò2Ð2Ø(Ð(Ø�{Š{‰}Œ}Ðs+   ‚ œ
A¦A ºAÁ AÁAÁAÁAÚ
name_errorrÉ   c                ó´   — 	 t          j        | j        ¦  «        j        dk    }n# t          $ r}d|fcY d }~S d }~ww xY w|sd|fS |                      ¦   «         S )Nr   r)   r$   )r¯   Úfstatr€   Úst_nlinkr‰   rÌ   )rc   rÎ   Úlinkedr3   s       r;   rÊ   z_RefreshLoop._refresh_unnamedz  s|   € ð	&Ý”X˜dœgÑ&Ô&Ô/°!Ò3ˆFˆFøÝð 	&ð 	&ð 	&Ø Ð%Ð%Ð%Ð%Ð%Ð%Ð%øøøøð	&øøøàð 	0Ø# ZÐ/Ð/Ø�{Š{‰}Œ}Ðs   ‚"% ¥
=¯8²=¸=c                óv   — 	 t          | j        | j        ¬¦  «         n# t          $ r}d|fcY d }~S d }~ww xY wdS )N)r€   r)   )r(   N)r   r/   r€   r‰   )rc   r3   s     r;   rÌ   z_RefreshLoop._touch…  s_   € ð	&Ý�$”. T¤WÐ-Ñ-Ô-Ð-Ð-øÝð 	&ð 	&ð 	&Ø Ð%Ð%Ð%Ð%Ð%Ð%Ð%øøøøð	&øøøàˆzs   ‚ ž
6¨1«6±6Nrº   )rV   rÆ   )rÎ   rÉ   rV   rÆ   )	r4   r5   r6   r7   r8   r®   rÂ   rÊ   rÌ   r9   r:   r;   r¬   r¬   L  sÆ   € € € € € € àcÐcà\Ð\Ð\Ñ\Ø€N€N�NØÐÐÑØ€G€G�GØÐÐÑØ€J€J�JØ€K€K�KØ€O€O�OØ€O€O�Oðð ð ð ð(
ð 
ð 
ð 
ð	ð 	ð 	ð 	ðð ð ð ð ð r:   r¬   )r1   r-   rG   rA   )9Ú
__future__r   Ú__lazy_modules__r¯   r   rµ   r¿   r   r	   Údataclassesr
   r   r   r   r   r   r   Útypingr   r   r   r   r   r   Úfilelock._apir   r   Úfilelock._errorr   Úfilelock._identityr   Úfilelock._markerr   r   r   r   Úfilelock._softr   Úfilelock._utilr   r   Úcollections.abcr   r    r!   r"   r#   r1   Ú_RefreshOutcomer*   r8   r-   r=   rA   rG   r¬   Ú__all__r9   r:   r;   ú<module>rá      s  ðØ "Ð "Ð "Ð "Ð "Ð "Ð "ð
ð 
ð 
Ð ð 
€	€	€	Ø €€€Ø 
€
€
€
Ø €€€Ø Ð Ð Ð Ð Ð Ø !Ð !Ð !Ð !Ð !Ð !Ø Ð Ð Ð Ð Ð Ø 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ø Ð Ð Ð Ð Ð à 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø -Ð -Ð -Ð -Ð -Ð -Ø UÐ UÐ UÐ UÐ UÐ UÐ UÐ UÐ UÐ UÐ UÐ UØ *Ð *Ð *Ð *Ð *Ð *Ø +Ð +Ð +Ð +Ð +Ð +Ð +Ð +àð 7Ø1Ð1Ð1Ð1Ð1Ð1Ð1Ð1ØÐÐÐÐÐà6Ð6Ð6Ð6Ð6Ð6Ð6Ð6ð ÐYÔZÐ àÐNÔO€Ø(,Ð Ð ,Ð ,Ð ,Ñ ,ð €�$ÐÑÔð#ð #ð #ð #ð #ñ #ô #ñ Ôð#ð €�$ÐÑÔðð ð ð ð ñ ô ñ Ôðð ð(ð (ð (ð (ð (ñ (ô (ñ „ð(ð2ð 2ð 2ð 2ð 2Ð&ñ 2ô 2ð 2ðD €�$ÐÑÔð=ð =ð =ð =ð =ñ =ô =ñ Ôð=ð@ð ð €€€r:   