§
    `Ò³gT	  ã                  ó  — d dl m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	m
Z
  ej        d¦  «        d         Zej        ej        eee	f         e
f                  Zej        eej        ee	f         f         Zdd
„Zdd„Z	 ddd„ZdS )é    )ÚannotationsN)ÚBytesIOé   )Ú_TYPE_FIELD_VALUE_TUPLEÚRequestFieldzutf-8é   ÚreturnÚstrc                 ór   — t          j        t          j        d¦  «        ¦  «                             ¦   «         S )zN
    Our embarrassingly-simple replacement for mimetools.choose_boundary.
    é   )ÚbinasciiÚhexlifyÚosÚurandomÚdecode© ó    úN/var/www/html/mpstechhub/venv/lib/python3.11/site-packages/urllib3/filepost.pyÚchoose_boundaryr      s)   € õ Ô�BœJ r™NœNÑ+Ô+×2Ò2Ñ4Ô4Ð4r   ÚfieldsÚ_TYPE_FIELDSútyping.Iterable[RequestField]c              #  óÊ   K  — t          | t          j        ¦  «        r|                      ¦   «         }n| }|D ],}t          |t          ¦  «        r|V — Œt	          j        |Ž V — Œ-dS )z†
    Iterate over fields.

    Supports list of (k, v) tuples and dicts, and lists of
    :class:`~urllib3.fields.RequestField`.

    N)Ú
isinstanceÚtypingÚMappingÚitemsr   Úfrom_tuples)r   ÚiterableÚfields      r   Úiter_field_objectsr!      s}   è è € õ �&�&œ.Ñ)Ô)ð Ø—<’<‘>”>ˆˆàˆàð 3ð 3ˆÝ�e�\Ñ*Ô*ð 	3ØˆKˆKˆKˆKåÔ*¨EÐ2Ð2Ð2Ð2Ð2ð	3ð 3r   Úboundaryú
str | Noneútuple[bytes, str]c                óÊ  — t          ¦   «         }|€t          ¦   «         }t          | ¦  «        D ]ï}|                     d|› d�                     d¦  «        ¦  «         t          |¦  «                             |                     ¦   «         ¦  «         |j        }t          |t          ¦  «        rt          |¦  «        }t          |t          ¦  «        r#t          |¦  «                             |¦  «         n|                     |¦  «         |                     d¦  «         Œð|                     d|› d�                     d¦  «        ¦  «         d|› �}|                     ¦   «         |fS )a¢  
    Encode a dictionary of ``fields`` using the multipart/form-data MIME format.

    :param fields:
        Dictionary of fields or list of (key, :class:`~urllib3.fields.RequestField`).
        Values are processed by :func:`urllib3.fields.RequestField.from_tuples`.

    :param boundary:
        If not specified, then a random boundary will be generated using
        :func:`urllib3.filepost.choose_boundary`.
    Nz--z
zlatin-1s   
z--
zmultipart/form-data; boundary=)r   r   r!   ÚwriteÚencodeÚwriterÚrender_headersÚdatar   Úintr
   Úgetvalue)r   r"   Úbodyr    r*   Úcontent_types         r   Úencode_multipart_formdatar/   3   sM  € õ ‰9Œ9€DØÐÝ"Ñ$Ô$ˆå# FÑ+Ô+ð ð ˆØ�
Š
Ð&˜Ð&Ð&Ð&×-Ò-¨iÑ8Ô8Ñ9Ô9Ð9åˆt‰Œ×Ò˜5×/Ò/Ñ1Ô1Ñ2Ô2Ð2ØŒzˆå�d�CÑ Ô ð 	Ý�t‘9”9ˆDå�d�CÑ Ô ð 	Ý�4‰LŒL×Ò˜tÑ$Ô$Ð$Ð$à�JŠJ�tÑÔÐà�
Š
�7ÑÔÐÐà‡J‚JÐ$�HÐ$Ð$Ð$×+Ò+¨IÑ6Ô6Ñ7Ô7Ð7à>°HÐ>Ð>€Là�=Š=‰?Œ?˜LÐ(Ð(r   )r	   r
   )r   r   r	   r   )N)r   r   r"   r#   r	   r$   )Ú
__future__r   r   Úcodecsr   r   Úior   r   r   r   Úlookupr(   ÚSequenceÚUnionÚtupler
   Ú_TYPE_FIELDS_SEQUENCEr   r   r   r!   r/   r   r   r   ú<module>r8      s  ðØ "Ð "Ð "Ð "Ð "Ð "à €€€Ø €€€Ø 	€	€	€	Ø €€€Ø Ð Ð Ð Ð Ð à 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9à	ˆŒ�wÑ	Ô	 Ô	"€àœØ
„L��sÐ3Ð3Ô4°lÐBÔCôÐ ð Œ|ØØ
„N�3Ð/Ð/Ô0ð2ô€ð5ð 5ð 5ð 5ð3ð 3ð 3ð 3ð. 26ð&)ð &)ð &)ð &)ð &)ð &)ð &)r   