
    ;Si^                     n    d dl Z d dlZd dlZddlmZmZ  G d de      Z G d de      Z G d d	e      Zy)
    N   )
ConnectionPacketCodecc                        e Zd ZdZeZd Zd Zy)IntermediatePacketCodecs   c                 F    t        j                  dt        |            |z   S )N<i)structpacklen)selfdatas     p/var/www/OnlineNewsSite/project/venv/lib/python3.12/site-packages/telethon/network/connection/tcpintermediate.pyencode_packetz%IntermediatePacketCodec.encode_packet   s    {{4T+d22    c                    K   t        j                  d|j                  d       d {         d   }|j                  |       d {   S 7 $7 w)Nr	      r   )r
   unpackreadexactly)r   readerlengths      r   read_packetz#IntermediatePacketCodec.read_packet   sG     t6+=+=a+@%@A!D''/// &A/s!   %AA
AAAAN)__name__
__module____qualname__tagobfuscate_tagr   r    r   r   r   r      s    
CM30r   r   c                   4     e Zd ZdZdZdZ fdZ fdZ xZS )!RandomizedIntermediatePacketCodecz
    Data packets are aligned to 4bytes. This codec adds random bytes of size
    from 0 to 3 bytes, which are ignored by decoder.
    Ns   c                 ~    t        j                  dd      }t        j                  |      }t        |   ||z         S )Nr      )randomrandintosurandomsuperr   )r   r   pad_sizepadding	__class__s       r   r   z/RandomizedIntermediatePacketCodec.encode_packet   s5    >>!Q'**X&w$TG^44r   c                 t   K   t         |   |       d {   }t        |      dz  }|dkD  r|d |  S |S 7 w)Nr   r   )r'   r   r   )r   r   packet_with_paddingr(   r*   s       r   r   z-RandomizedIntermediatePacketCodec.read_packet!   sL     $)G$7$??*+a/a<&z	22""	 @s   86 8)	r   r   r   __doc__r   r   r   r   __classcell__)r*   s   @r   r    r       s#     C'M5
# #r   r    c                       e Zd ZdZeZy)ConnectionTcpIntermediatez
    Intermediate mode between `ConnectionTcpFull` and `ConnectionTcpAbridged`.
    Always sends 4 extra bytes for the packet length.
    N)r   r   r   r-   r   packet_codecr   r   r   r0   r0   )   s     +Lr   r0   )	r
   r#   r%   
connectionr   r   r   r    r0   r   r   r   <module>r3      s6      	 /	0k 	0#(? #*+
 +r   