Ë
    ±Œj,$  ã                   óð  — d Z ddlZddlZ	 ddlmZ ddlmZ ddlmZ 	 ddl	m
Z
 ddlmZ ej                  dk  rdZn	 dd	lmZ ej"                  d
kD  ZerddlmZmZ ddlZddlmZmZ nddlmZmZ ddlZddlmZ ddlmZ 	 eZ G d„ de«      Z"dZ#y# e$ r ddlmZ ddlmZ ddlmZ Y ŒŽw xY w# e$ r  	 ddlm
Z
 ddlmZ n# e$ r dZ
dZY nw xY wY Œ©w xY w# e$ r	 dd	lmZ Y Œ¡w xY w# e$ r e e!fZY Œow xY w)zþPrivate module full of compatibility hacks.

Primarily this is for downstream redistributions of requests that unvendor
urllib3 without providing a shim.

.. warning::

    This module is private. If you use it, and something breaks, you were
    warned
é    N)Úfields)Úfilepost)Úpoolmanager)ÚHTTPConnection)Ú
connectioni  )Útimeout)é   r   )ÚMappingÚMutableMapping)Ú	urlencodeÚurljoin)r   )r   c                   óø   ‡ — e Zd ZdZdˆ fd„	Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
esej                  Zej                  Z e«       Zd	„ Zd
„ Zefd„Zd„ Zd„ Zd„ Zd„ ZeZeZeZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z e!d„ «       Z"ˆ xZ#S )ÚHTTPHeaderDictap  
    :param headers:
        An iterable of field-value pairs. Must not contain multiple field names
        when compared case-insensitively.

    :param kwargs:
        Additional field-value pairs to pass in to ``dict.update``.

    A ``dict`` like container for storing HTTP Headers.

    Field names are stored and compared case-insensitively in compliance with
    RFC 7230. Iteration provides the first case-sensitive key seen for each
    case-insensitive pair.

    Using ``__setitem__`` syntax overwrites fields that compare equal
    case-insensitively in order to maintain ``dict``'s api. For fields that
    compare equal, instead create a new ``HTTPHeaderDict`` and use ``.add``
    in a loop.

    If multiple fields that are equal case-insensitively are passed to the
    constructor or ``.update``, the behavior is undefined and some will be
    lost.

    >>> headers = HTTPHeaderDict()
    >>> headers.add('Set-Cookie', 'foo=bar')
    >>> headers.add('set-cookie', 'baz=quxx')
    >>> headers['content-length'] = '7'
    >>> headers['SET-cookie']
    'foo=bar, baz=quxx'
    >>> headers['Content-Length']
    '7'
    c                 óÊ   •— t         t        | �  «        i | _        |�3t	        |t        «      r| j                  |«       n| j                  |«       |r| j                  |«       y y ©N)Úsuperr   Ú__init__Ú
_containerÚ
isinstanceÚ
_copy_fromÚextend)ÚselfÚheadersÚkwargsÚ	__class__s      €úc/var/www/html/Fitness-lenito-AI-main/venv/lib/python3.12/site-packages/requests_toolbelt/_compat.pyr   zHTTPHeaderDict.__init__`   sS   ø€ ÜŒn˜dÑ,Ô.ØˆŒØÐÜ˜'¤>Ô2Ø—‘ Õ(à—‘˜GÔ$ÙØ�K‰K˜Õð ó    c                 óz   — ||f| j                   |j                  «       <   | j                   |j                  «          S r   ©r   Úlower©r   ÚkeyÚvals      r   Ú__setitem__zHTTPHeaderDict.__setitem__k   s/   € Ø(+¨S zˆ�‰˜Ÿ	™	›Ñ$Ø�‰˜sŸy™y›{Ñ+Ð+r   c                 ód   — | j                   |j                  «          }dj                  |dd  «      S )Nú, é   ©r   r    Újoinr!   s      r   Ú__getitem__zHTTPHeaderDict.__getitem__o   s+   € Ø�o‰o˜cŸi™i›kÑ*ˆØ�y‰y˜˜Q˜R˜Ó!Ð!r   c                 ó:   — | j                   |j                  «       = y r   r   ©r   r"   s     r   Ú__delitem__zHTTPHeaderDict.__delitem__s   s   € Ø�O‰O˜CŸI™I›KÑ(r   c                 ó:   — |j                  «       | j                  v S r   )r    r   r,   s     r   Ú__contains__zHTTPHeaderDict.__contains__v   s   € Ø�y‰y‹{˜dŸo™oÐ-Ð-r   c                 ój  — t        |t        «      st        |d«      syt        |t        | «      «      s t        | «      |«      }| j	                  «       D ��ci c]  \  }}|j                  «       |“Œ c}}|j	                  «       D ��ci c]  \  }}|j                  «       |“Œ c}}k(  S c c}}w c c}}w )NÚkeysF)r   r
   ÚhasattrÚtypeÚ
itermergedr    )r   ÚotherÚkÚvs       r   Ú__eq__zHTTPHeaderDict.__eq__y   sš   € Ü˜%¤Ô)´'¸%ÀÔ2HØÜ˜%¤ d£Ô,Ø”D˜“J˜uÓ%ˆEØ*.¯/©/Ô*;Ô<Ñ*;¡$ ! Q�—‘“˜A‘Ð*;Ò<Ø*/×*:Ñ*:Ô*<Ô=Ñ*<¡$ ! Q�—‘“˜A‘Ð*<Ò=ñ>ð 	?ùÓ<ùÛ=s   ÁB)ÂB/c                 ó&   — | j                  |«       S r   )r8   )r   r5   s     r   Ú__ne__zHTTPHeaderDict.__ne__�   s   € Ø—;‘;˜uÓ%Ð%Ð%r   c                 ó,   — t        | j                  «      S r   )Úlenr   ©r   s    r   Ú__len__zHTTPHeaderDict.__len__Š   s   € Ü�4—?‘?Ó#Ð#r   c              #   óX   K  — | j                   j                  «       D ]	  }|d   –— Œ y ­w)Nr   )r   Úvalues)r   Úvalss     r   Ú__iter__zHTTPHeaderDict.__iter__�   s&   è ø€ à—O‘O×*Ñ*Ö,ˆDØ�q‘'‹Mñ -ùs   ‚(*c                 óX   — 	 | |   }| |= |S # t         $ r || j                  u r‚ |cY S w xY w)z¢D.pop(k[,d]) -> v, remove specified key and return its value.

        If key is not found, d is returned if given, otherwise KeyError is
        raised.
        )ÚKeyErrorÚ_HTTPHeaderDict__marker)r   r"   ÚdefaultÚvalues       r   ÚpopzHTTPHeaderDict.pop’   sC   € ð	Ø˜‘IˆEð �S�	ØˆLøô ò 	Ø˜$Ÿ-™-Ñ'ØØŠNð	ús   ‚ Œ)¨)c                 ó*   — 	 | |= y # t         $ r Y y w xY wr   )rD   r,   s     r   ÚdiscardzHTTPHeaderDict.discard¦   s    € ð	Ø�S‘	øÜò 	Ùð	ús   ‚ †	‘c                 óâ   — |j                  «       }||f}| j                  j                  ||«      }||ur;t        |t        «      r|j                  |«       y|d   |d   |g| j                  |<   yy)zâAdds a (name, value) pair, doesn't overwrite the value if it already
        exists.

        >>> headers = HTTPHeaderDict(foo='bar')
        >>> headers.add('Foo', 'baz')
        >>> headers['foo']
        'bar, baz'
        r   r'   N)r    r   Ú
setdefaultr   ÚlistÚappend)r   r"   r#   Ú	key_lowerÚnew_valsrA   s         r   ÚaddzHTTPHeaderDict.add¬   sp   € ð —I‘I“Kˆ	Ø˜�8ˆà�‰×)Ñ)¨)°XÓ>ˆØ˜4Ñä˜$¤Ô%à—‘˜CÕ ð /3°1©g°t¸A±wÀÐ-D�—‘ 	Ò*ð  r   c                 óZ  — t        |«      dkD  r#t        dj                  t        |«      «      «      ‚t        |«      dk\  r|d   nd}t        |t        «      r+|j                  «       D ]  \  }}| j                  ||«       Œ n€t        |t        «      r|D ]  }| j                  |||   «       Œ nSt        |d«      r+|j                  «       D ]  }| j                  |||   «       Œ n|D ]  \  }}| j                  ||«       Œ |j                  «       D ]  \  }}| j                  ||«       Œ y)zÀGeneric import function for any type of header-like object.
        Adapted version of MutableMapping.update in order to insert items
        with self.add instead of self.__setitem__
        r'   z8extend() takes at most 1 positional arguments ({} given)r   © r1   N)r<   Ú	TypeErrorÚformatr   r   Ú	iteritemsrQ   r
   r2   r1   Úitems)r   Úargsr   r5   r"   r#   rG   s          r   r   zHTTPHeaderDict.extendÃ   s  € ô
 ˆt‹9�qŠ=Üð 3ß39±6¼#¸d»)Ó3DóFð Fä˜t›9¨š>��Q’¨rˆä�eœ^Ô,Ø!ŸO™OÖ-‘��SØ—‘˜˜cÕ"ñ .ä˜œwÔ'Û�Ø—‘˜˜e C™jÕ)ñ ä�U˜FÔ#Ø—z‘z–|�Ø—‘˜˜e C™jÕ)ñ $ó $‘
��UØ—‘˜˜eÕ$ð $ð !Ÿ,™,ž.‰JˆC�Ø�H‰H�S˜%Õ ñ )r   c                 ó–   — 	 | j                   |j                  «          }t        |t        «      r|d   gS |dd S # t        $ r g cY S w xY w)zmReturns a list of all the values for the named field. Returns an
        empty list if the key doesn't exist.r'   N)r   r    r   ÚtuplerD   )r   r"   rA   s      r   ÚgetlistzHTTPHeaderDict.getlistÝ   sT   € ð	 Ø—?‘? 3§9¡9£;Ñ/ˆDô ˜$¤Ô&Ø˜Q™�yÐ à˜A˜B�x�øô ò 	ØŠIð	ús   ‚: ºAÁAc                 óf   — t        | «      j                  ›dt        | j                  «       «      ›d�S )NÚ(Ú))r3   Ú__name__Údictr4   r=   s    r   Ú__repr__zHTTPHeaderDict.__repr__ï   s#   € Ü ›:×.Ó.´°T·_±_Ó5FÕ0GÐHÐHr   c                 ó¬   — |D ]O  }|j                  |«      }t        |t        «      rt        |«      }|g|z   | j                  |j	                  «       <   ŒQ y r   )r[   r   rM   r   r    )r   r5   r"   r#   s       r   r   zHTTPHeaderDict._copy_fromò   sG   € ÛˆCØ—-‘- Ó$ˆCÜ˜#œtÔ$ä˜3“i�Ø,/¨5°3©;ˆD�O‰O˜CŸI™I›KÒ(ñ r   c                 óH   —  t        | «      «       }|j                  | «       |S r   )r3   r   )r   Úclones     r   ÚcopyzHTTPHeaderDict.copyú   s"   € Ø”�T“
“ˆØ×Ñ˜ÔØˆr   c              #   óz   K  — | D ]2  }| j                   |j                  «          }|dd D ]  }|d   |f–— Œ Œ4 y­w)z8Iterate over all header lines, including duplicate ones.r'   Nr   r   )r   r"   rA   r#   s       r   rV   zHTTPHeaderDict.iteritemsÿ   sB   è ø€ ãˆCØ—?‘? 3§9¡9£;Ñ/ˆDØ˜A˜B“x�Ø˜1‘g˜s�lÓ"ñ  ñ ùs   ‚9;c              #   óŠ   K  — | D ]:  }| j                   |j                  «          }|d   dj                  |dd «      f–— Œ< y­w)z:Iterate over all headers, merging duplicate ones together.r   r&   r'   Nr(   r!   s      r   r4   zHTTPHeaderDict.itermerged  sB   è ø€ ãˆCØ—/‘/ #§)¡)£+Ñ.ˆCØ�a‘&˜$Ÿ)™) C¨¨ GÓ,Ð,Ó,ñ ùs   ‚AAc                 ó4   — t        | j                  «       «      S r   )rM   rV   r=   s    r   rW   zHTTPHeaderDict.items  s   € Ü�D—N‘NÓ$Ó%Ð%r   c                 ó  — g }|j                   D ]m  }|j                  d«      r$|d   \  }}||dz   |j                  «       z   f|d<   Œ8|j                  dd«      \  }}|j	                  ||j                  «       f«       Œo  | |«      S )z4Read headers from a Python 2 httplib message object.)Ú Ú	éÿÿÿÿz
Ú:r'   )r   Ú
startswithÚrstripÚsplitrN   Ústrip)ÚclsÚmessager   Úliner"   rG   s         r   Úfrom_httplibzHTTPHeaderDict.from_httplib  s‡   € ð ˆà—O”OˆDØ�‰˜{Ô+Ø$ R™[‘
��UØ" E¨F¡N°T·[±[³]Ñ$BÐC�˜‘ØàŸ™ C¨Ó+‰JˆC�Ø�N‰N˜C §¡£Ð/Õ0ð $ñ �7‹|Ðr   r   )$r_   Ú
__module__Ú__qualname__Ú__doc__r   r$   r*   r-   r/   r8   r:   ÚPY3r   ÚiterkeysÚ
itervaluesÚobjectrE   r>   rB   rH   rJ   rQ   r   r[   Ú
getheadersÚgetallmatchingheadersÚigetra   r   re   rV   r4   rW   Úclassmethodru   Ú__classcell__)r   s   @r   r   r   >   s¼   ø„ ñõB	 ò,ò"ò)ò.ò?ò&ñ Ø!×*Ñ*ˆØ#×.Ñ.ˆ
á‹x€Hò$òð
  (ó ò(òEò.!ò4 ð €JØ#ÐØ€DòIò7òò
#ò-ò&ð ñó ôr   r   )
Ú
basestringr   r   r   r   r   r   Úqueuer   r   )$rx   ÚsysÚrequestsÚrequests.packages.urllib3r   r   r   ÚImportErrorÚurllib3Ú$requests.packages.urllib3.connectionr   r   Úurllib3.connectionÚ	__build__r   Úrequests.packages.urllib3.utilÚurllib3.utilÚversion_infory   Úcollections.abcr
   r   rƒ   Úurllib.parser   r   ÚcollectionsÚQueueÚurllibÚurlparser‚   Ú	NameErrorÚstrÚbytesr   Ú__all__rS   r   r   Ú<module>r™      s  ðñ	ó ã ð$Ý0Ý2Ý5ð	ÝCÝ4ð ×Ñ˜Ò Ø�Gð)Ý:ð 
×Ñ˜Ñ€áß7Ûß/Ð/ç3ÛÝ Ý ðØ€Jô
b�^ô bðJ�øða ò $ÝÝ ß#ð$ûð ò ðÝ5Þ&øØò ØˆØŠ
ðüð	ûð ò )ß(ð)ûð" ò Ø�u�‚Jðúsi   ŒB ŸB0 ¾C ÂC) ÂB-Â,B-Â0CÂ6CÃCÃ	CÃCÃCÃCÃCÃC&Ã%C&Ã)	C5Ã4C5