§
    Ètºf‘  ã                   ó¸   — d Z ddlZddlmZmZ ddlmZ ddlmZ  G d„ de¦  «        Z	 G d„ d	¦  «        Z
 ee	¦  «         G d
„ dej        ¦  «        ¦   «         ZdS )z1Support for working directly with ethernet framesé    N)Ú	InterfaceÚimplementer)Úprotocol)Úrawc                   ó   — e Zd ZdZd„ Zd„ ZdS )ÚIEthernetProtocolz6An interface for protocols that handle Ethernet framesc                 ó   — dS )z"Add an IRawPacketProtocol protocolN© )ÚnumÚprotos     úT/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/twisted/pair/ethernet.pyÚaddProtozIEthernetProtocol.addProto   ó   € € € ó    c                 ó   — dS )z#An Ethernet frame has been receivedNr
   )ÚdataÚpartials     r   ÚdatagramReceivedz"IEthernetProtocol.datagramReceived   r   r   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r
   r   r   r   r      s8   € € € € € Ø@Ð@ð1ð 1ð 1ð2ð 2ð 2ð 2ð 2r   r   c                   ó   — e Zd Zd„ ZdS )ÚEthernetHeaderc                 óf   — t          j        d|d d…         ¦  «        \  | _        | _        | _        d S )Nz!6s6sHé   )ÚstructÚunpackÚdestÚsourcer   )Úselfr   s     r   Ú__init__zEthernetHeader.__init__   s2   € Ý/5¬}Ø�d˜;˜Y˜;Ô'ñ0
ô 0
Ñ,ˆŒ�D”K ¤  r   N)r   r   r   r"   r
   r   r   r   r      s#   € € € € € ð
ð 
ð 
ð 
ð 
r   r   c                   ó"   — e Zd Zd„ Zd„ Zdd„ZdS )ÚEthernetProtocolc                 ó   — i | _         d S )N)ÚetherProtos)r!   s    r   r"   zEthernetProtocol.__init__%   s   € ØˆÔÐÐr   c                 óè   — t          j        |¦  «        }|dk     rt          d¦  «        ‚|dk    rt          d¦  «        ‚|| j        vr
g | j        |<   | j        |                              |¦  «         d S )Nr   z'Added protocol must be positive or zeroi   z"Added protocol must fit in 16 bits)r   ÚIRawPacketProtocolÚ	TypeErrorr&   Úappend)r!   r   r   s      r   r   zEthernetProtocol.addProto(   s   € ÝÔ& uÑ-Ô-ˆØ�Š7ˆ7ÝÐEÑFÔFÐFØ�%Š<ˆ<ÝÐ@ÑAÔAÐAØ�dÔ&Ð&Ð&Ø$&ˆDÔ˜SÑ!ØÔ˜Ô×$Ò$ UÑ+Ô+Ð+Ð+Ð+r   r   c                 óÜ   — t          |d d…         ¦  «        }| j                             |j        d¦  «        D ]3}|                     |dd …         ||j        |j        |j        ¬¦  «         Œ4d S )Nr   r
   )r   r   r   r    r   )r   r&   Úgetr   r   r   r    )r!   r   r   Úheaderr   s        r   r   z!EthernetProtocol.datagramReceived2   s„   € Ý  S b S¤	Ñ*Ô*ˆØÔ%×)Ò)¨&¬,¸Ñ;Ô;ð 	ð 	ˆEØ×"Ò"Ø˜"˜#˜#”YØØ”[Ø”}Øœð #ñ ô ð ð ð	ð 	r   N)r   )r   r   r   r"   r   r   r
   r   r   r$   r$   #   sF   € € € € € ðð ð ð,ð ,ð ,ð	ð 	ð 	ð 	ð 	ð 	r   r$   )r   r   Úzope.interfacer   r   Útwisted.internetr   Útwisted.pairr   r   r   ÚAbstractDatagramProtocolr$   r
   r   r   ú<module>r2      só   ðð 8Ð 7à €€€à 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1à %Ð %Ð %Ð %Ð %Ð %Ø Ð Ð Ð Ð Ð ð2ð 2ð 2ð 2ð 2˜	ñ 2ô 2ð 2ð
ð 
ð 
ð 
ð 
ñ 
ô 
ð 
ð €ÐÑÔðð ð ð ð �xÔ8ñ ô ñ  Ôðð ð r   