§
    ¤DIhñ  ã                   óH   — d Z dZ G d„ de¦  «        ZefZd„ Zd„ Zd„ Zd„ ZdS )	z'Key functions for memoizing decorators.)ÚhashkeyÚ	methodkeyÚtypedkeyÚtypedmethodkeyc                   óX   — e Zd ZdZdZej        fd„Zej        fd„Zej        fd„Zd„ Z	dS )Ú_HashedTuplezðA tuple that ensures that hash() will be called no more than once
    per element, since cache decorators will hash the key multiple
    times on a cache miss.  See also _HashedSeq in the standard
    library functools implementation.

    Nc                 ó<   — | j         }|€ || ¦  «        x| _         }|S ©N)Ú_HashedTuple__hashvalue)ÚselfÚhashÚ	hashvalues      ú:/usr/local/lib/python3.11/dist-packages/cachetools/keys.pyÚ__hash__z_HashedTuple.__hash__   s+   € ØÔ$ˆ	ØÐØ+/¨4°©:¬:Ð5ˆDÔ˜yØÐó    c                 ó4   — t           || |¦  «        ¦  «        S r	   ©r   ©r   ÚotherÚadds      r   Ú__add__z_HashedTuple.__add__   s   € Ý˜C˜C  eÑ,Ô,Ñ-Ô-Ð-r   c                 ó4   — t           ||| ¦  «        ¦  «        S r	   r   r   s      r   Ú__radd__z_HashedTuple.__radd__   s   € Ý˜C˜C  tÑ,Ô,Ñ-Ô-Ð-r   c                 ó   — i S r	   © )r   s    r   Ú__getstate__z_HashedTuple.__getstate__   s   € Øˆ	r   )
Ú__name__Ú
__module__Ú__qualname__Ú__doc__r
   Útupler   r   r   r   r   r   r   r   r      sƒ   € € € € € ðð ð €Kà!œNð ð ð ð ð "'¤ð .ð .ð .ð .ð #(¤-ð .ð .ð .ð .ðð ð ð ð r   r   c            	      ó¬   — |rDt          | t          t          |                     ¦   «         ¦  «        t          ¦  «        z   ¦  «        S t          | ¦  «        S )z8Return a cache key for the specified hashable arguments.)r   ÚsumÚsortedÚitemsÚ_kwmark)ÚargsÚkwargss     r   r   r   %   sG   € ð ð "Ý˜D¥3¥v¨f¯lªl©n¬nÑ'=Ô'=½wÑ#GÔ#GÑGÑHÔHÐHå˜DÑ!Ô!Ð!r   c                 ó   — t          |i |¤ŽS )z/Return a cache key for use with cached methods.)r   ©r   r&   r'   s      r   r   r   .   s   € å�DÐ#˜FÐ#Ð#Ð#r   c                  óÌ   — t          | i |¤Ž}|t          d„ | D ¦   «         ¦  «        z  }|t          d„ t          |                     ¦   «         ¦  «        D ¦   «         ¦  «        z  }|S )z>Return a typed cache key for the specified hashable arguments.c              3   ó4   K  — | ]}t          |¦  «        V — Œd S r	   ©Útype)Ú.0Úvs     r   ú	<genexpr>ztypedkey.<locals>.<genexpr>7   s(   è è € Ð'Ð'˜Q•�a‘”Ð'Ð'Ð'Ð'Ð'Ð'r   c              3   ó:   K  — | ]\  }}t          |¦  «        V — Œd S r	   r,   )r.   Ú_r/   s      r   r0   ztypedkey.<locals>.<genexpr>8   s,   è è € Ð<Ð<™T˜Q •�a‘”Ð<Ð<Ð<Ð<Ð<Ð<r   )r   r    r#   r$   )r&   r'   Úkeys      r   r   r   3   sm   € õ �4Ð
"˜6Ð
"Ð
"€CØ�5Ð'Ð' $Ð'Ñ'Ô'Ñ'Ô'Ñ'€CØ�5Ð<Ð<¥V¨F¯LªL©N¬NÑ%;Ô%;Ð<Ñ<Ô<Ñ<Ô<Ñ<€CØ€Jr   c                 ó   — t          |i |¤ŽS )z5Return a typed cache key for use with cached methods.)r   r)   s      r   r   r   <   s   € å�TÐ$˜VÐ$Ð$Ð$r   N)	r   Ú__all__r    r   r%   r   r   r   r   r   r   r   ú<module>r6      s‰   ðØ -Ð -à
@€ðð ð ð ð �5ñ ô ð ð8 ˆ/€ð"ð "ð "ð$ð $ð $ð
ð ð ð%ð %ð %ð %ð %r   