
    aiG              	           d dl mZmZ 	 g dZ G d d          Z	 d dlmZ deeef         de	fdZ
n/# e$ r' d Zd	Zg d
ZdedededefdZdeeef         de	fdZ
Y nw xY wdeeef         de	fdZdedee         fdZdedee         fdZdS )    )UnionOptional)NoLockvalidate_utf8extract_err_messageextract_error_codec                       e Zd ZddZddZdS )r   returnNc                     d S N )selfs    `/var/www/html/Pagina-Ingenieria-Requisitos/venv/lib/python3.11/site-packages/websocket/_utils.py	__enter__zNoLock.__enter__           c                     d S r   r   )r   exc_type	exc_value	tracebacks       r   __exit__zNoLock.__exit__   r   r   )r
   N)__name__
__module____qualname__r   r   r   r   r   r   r      s<                r   r   )Utf8Validatorutfbytesr
   c                 T    t                                          |           d         }|S Nr   )r   validate)r   results     r   _validate_utf8r!   %   s#    $//99!<r      (l  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r      r#   r#   r#   r#   r#   r#   r#   r#   r#   r#   r#   r#   r#   r#   r#   	   r$   r$   r$   r$   r$   r$   r$   r$   r$   r$   r$   r$   r$   r$   r$      r%   r%   r%   r%   r%   r%   r%   r%   r%   r%   r%   r%   r%   r%   r%   r%   r%   r%   r%   r%   r%   r%   r%   r%   r%   r%   r%   r%   r%   r%   r%      r&      r'   r'   r'   r'   r'   r'   r'   r'   r'   r'   r'   r'   r'   r'   r'   r'   r'   r'   r'   r'   r'   r'   r'   r'   r'   r'   r'   r'   r'   
      r)   r)   r)   r)   r)   r)   r)   r)   r)   r)   r)      r)   r)         r,   r,      r&   r&   r&   r&   r&   r&   r&   r&   r&   r&   r&   r   r"      $   <   `   T   r"   r"   r"   0   H   r"   r"   r"   r"   r"   r"   r"   r"   r"   r"   r"   r"   r"   r   r"   r"   r"   r"   r"   r   r"   r   r"   r"   r"   r.   r"   r"   r"   r"   r"   r.   r"   r.   r"   r"   r"   r"   r"   r"   r"   r"   r"   r.   r"   r"   r"   r"   r"   r.   r"   r"   r"   r"   r"   r"   r"   r.   r"   r"   r"   r"   r"   r"   r"   r"   r"   r/   r"   r/   r"   r"   r"   r/   r"   r"   r"   r"   r"   r/   r"   r/   r"   r"   r"   r/   r"   r"   r"   r"   r"   r"   r"   r"   r"   r"   statecodepchc                     t           |         }| t          k    r|dz  |dz  z  nd|z	  |z  }t           d| z   |z            } | |fS )N?   r,         )_UTF8D_UTF8_ACCEPT)r5   r6   r7   tps       r   _decoder?     s[    BZ ,1L+@+@R$Y5A:&&PR
VXGX 	 sU{R'(e|r   c                     t           }d}| D ]1}t          ||t          |                    \  }}|t          k    r dS 2dS )Nr   FT)r=   r?   int_UTF8_REJECT)r   r5   r6   is       r   r!   r!     sT     	 	A"5%Q88LE5$$uu % tr   c                      t          |           S )z
    validate utf8 byte string.
    utfbytes: utf byte string to check.
    return value: if valid utf8 string, return true. Otherwise, return false.
    )r!   )r   s    r   r   r     s     (###r   	exceptionc                 2    | j         r| j         d         }|S d S r   )args)rE   exception_messages     r   r   r     s$    ~ !*!2  tr   c                     | j         rGt          | j                   dk    r/t          | j         d         t                    r| j         d         nd S d S )Nr#   r   )rG   len
isinstancerA   )rE   s    r   r   r     sN    ~ Q#in--11$.y~a/@#$F$FPy~a  DP4r   N)typingr   r   __all__r   wsaccel.utf8validatorr   strbytesboolr!   ImportErrorr=   rB   r<   rA   tupler?   r   	Exceptionr   r   r   r   r   <module>rU      s   " " " " " " " "$ S
R
R       U 433333sEz!2 t       L L L LLq q qFfs 3 C E    sEz!2 t      IL^$E#u*- $$ $ $ $ $9 #    )       s   3 )AA