§
    Ÿ/Jf“  ã                   ó,   — d Z ddlZ G d„ d¦  «        ZdS )zRetry quota implementation.


é    Nc                   ó@   — e Zd ZdZedfd„Zd„ Zd„ Zed„ ¦   «         ZdS )Ú
RetryQuotaiô  Nc                 óZ   — || _         || _        |€t          j        ¦   «         }|| _        d S ©N)Ú_max_capacityÚ_available_capacityÚ	threadingÚLockÚ_lock)ÚselfÚinitial_capacityÚlocks      úY/home/alex/cs2snipeproduction/venv/lib/python3.11/site-packages/botocore/retries/quota.pyÚ__init__zRetryQuota.__init__   s/   € Ø-ˆÔØ#3ˆÔ Øˆ<Ý”>Ñ#Ô#ˆDØˆŒ
ˆ
ˆ
ó    c                 óš   — | j         5  || j        k    r	 ddd¦  «         dS | xj        |z  c_        	 ddd¦  «         dS # 1 swxY w Y   dS )zýAttempt to aquire a certain amount of capacity.

        If there's not sufficient amount of capacity available, ``False``
        is returned.  Otherwise, ``True`` is returned, which indicates that
        capacity was successfully allocated.

        NFT)r   r   )r   Úcapacity_amounts     r   ÚacquirezRetryQuota.acquire   sÂ   € ð ŒZð 	ð 	Ø Ô!9Ò9Ð9Øð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð Ð$Ô$¨Ñ7Ð$Ô$Øð		ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   ˆA ¢A Á AÁAc                 óÄ   — | j         | j        k    rdS | j        5  t          | j         | j        z
  |¦  «        }| xj        |z  c_        ddd¦  «         dS # 1 swxY w Y   dS )z­Release capacity back to the retry quota.

        The capacity being released will be truncated if necessary
        to ensure the max capacity is never exceeded.

        N)r   r   r   Úmin)r   r   Úamounts      r   ÚreleasezRetryQuota.release"   s»   € ð Ô Ô!9Ò9Ð9ØˆFØŒZð 	/ð 	/ÝØÔ" TÔ%=Ñ=¸ñô ˆFð Ð$Ô$¨Ñ.Ð$Ô$ð		/ð 	/ð 	/ñ 	/ô 	/ð 	/ð 	/ð 	/ð 	/ð 	/ð 	/ð 	/øøøð 	/ð 	/ð 	/ð 	/ð 	/ð 	/s   š.AÁAÁAc                 ó   — | j         S r   )r   )r   s    r   Úavailable_capacityzRetryQuota.available_capacity6   s   € àÔ'Ð'r   )	Ú__name__Ú
__module__Ú__qualname__ÚINITIAL_CAPACITYr   r   r   Úpropertyr   © r   r   r   r      sl   € € € € € ØÐà(8¸tð ð ð ð ðð ð ð /ð /ð /ð( ð(ð (ñ „Xð(ð (ð (r   r   )Ú__doc__r	   r   r    r   r   ú<module>r"      sO   ððð ð Ð Ð Ð ð0(ð 0(ð 0(ð 0(ð 0(ñ 0(ô 0(ð 0(ð 0(ð 0(r   