Ë
    ÷eœi   ã            	      ó>  — d Z ddlmZ ddlmZmZ 	 ddlZdZddlZej                  ej                  ej                  ej                  ej                  ej                  ej                  ej                   ej"                  f	Zd	d
d„Zy# e$ r dZ	 d		 	 	 	 	 d
d„ZY yw xY w)z&An implementation of RFC4013 SASLprep.é    )Úannotations)ÚAnyÚOptionalNTc                óF  ‡— t        | t        «      s| S |rg t        ¢t        j                  ‘­}nt        }t        j
                  }t        j                  }dj                  | D �cg c]  } ||«      rŒ ||«      rdn|‘Œ c}«      } t        j                  j                  d| «      } t        j                  } || d   «      r, || d   «      st        d«      ‚g |¢t        j                  ‘­}ng |¢|‘­}| D ]!  Št        ˆfd„|D «       «      sŒt        d«      ‚ | S c c}w )	aV  An implementation of RFC4013 SASLprep.

        :param data: The string to SASLprep. Unicode strings
            (:class:`str`) are supported. Byte strings
            (:class:`bytes`) are ignored.
        :param prohibit_unassigned_code_points: True / False. RFC 3454
            and RFCs for various SASL mechanisms distinguish between
            `queries` (unassigned code points allowed) and
            `stored strings` (unassigned code points prohibited). Defaults
            to ``True`` (unassigned code points are prohibited).

        :return: The SASLprep'ed version of `data`.
        Ú ú ÚNFKCr   éÿÿÿÿz$SASLprep: failed bidirectional checkc              3  ó.   •K  — | ]  } |‰«      –— Œ y ­w)N© )Ú.0Úin_tableÚchars     €úe/var/www/html/Whatsapp_Customer_Support_Chatbot/venv/lib/python3.12/site-packages/pymongo/saslprep.pyú	<genexpr>zsaslprep.<locals>.<genexpr>q   s   øè ø€ Ò= h‘8˜D—>Ñ=ùs   ƒz+SASLprep: failed prohibited character check)Ú
isinstanceÚstrÚ_PROHIBITEDÚ
stringprepÚin_table_a1Úin_table_c12Úin_table_b1ÚjoinÚunicodedataÚ	ucd_3_2_0Ú	normalizeÚin_table_d1Ú
ValueErrorÚin_table_d2Úany)ÚdataÚprohibit_unassigned_code_pointsÚ
prohibitedr   r   Úeltr   r   s          @r   Úsaslprepr%   9   s&  ø€ ô  ˜$¤Ô$ØˆKá*Ø?œ;Ð?¬
×(>Ñ(>Ñ?‰Jä$ˆJô "×.Ñ.ˆÜ ×,Ñ,ˆØ�w‰wØ?CÖ\¸É;ÐWZÕK[™ cÔ*‰X°Ñ3Ò\ó
ˆô ×$Ñ$×.Ñ.¨v°tÓ<ˆä ×,Ñ,ˆÙ�t˜A‘wÔÙ˜t B™xÔ(ô !Ð!GÓHÐHð ?˜:Ð>¤z×'=Ñ'=Ñ>‰Jð
 4˜:Ð3 {Ñ3ˆJð ò 	PˆDÜÓ=°*Ô=Õ=Ü Ð!NÓOÐOð	Pð ˆùò9 ]s   Á%DÁ3DFc                ó<   — t        | t        «      rt        d«      ‚| S )zSASLprep dummyz[The stringprep module is not available. Usernames and passwords must be instances of bytes.)r   r   Ú	TypeError)r!   r"   s     r   r%   r%      s'   € ô
 �dœCÔ Üð8óð ð ˆó    )T)r!   r   r"   zOptional[bool]Úreturnr   )Ú__doc__Ú
__future__r   Útypingr   r   r   ÚHAVE_STRINGPREPr   r   Úin_table_c21_c22Úin_table_c3Úin_table_c4Úin_table_c5Úin_table_c6Úin_table_c7Úin_table_c8Úin_table_c9r   r%   ÚImportErrorr   r(   r   ú<module>r7      s½   ðñ -Ý "ç  ð`Ûð" €OÛð 	×ÑØ×#Ñ#Ø×ÑØ×ÑØ×ÑØ×ÑØ×ÑØ×ÑØ×Ñð€Kõ;øðG ò Ø€Oð ;?ð
Øð
à)7ð
ð 
õ
ðús   ’B ÂBÂB