HEX
Server: LiteSpeed
System: Linux shams.tasjeel.ae 5.14.0-611.5.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Tue Nov 11 08:09:09 EST 2025 x86_64
User: infowars (1469)
PHP: 8.2.29
Disabled: NONE
Upload Files
File: //lib/python3.9/site-packages/netaddr/strategy/__pycache__/eui64.cpython-39.pyc
a

��g�
@s�dZddlZddlZddlmZddlmZ	m
ZmZ
mZmZmZmZmZmZdZdZeZdZdZdedZGd	d
�d
e �Z!Gdd�de!�Z"Gd
d�de"�Z#Gdd�de!�Z$Gdd�de!�Z%e!Z&dd�'dgd�ddd�'dgd�ddd�'dgd�ddd�'dgd�ddd�'dgd�ddd�'dgd�d fZ(d!d"�e(D�Z(d#d$�Z)d%d&�Z*d'd(�Z+dAd)d*�Z,d+d,�Z-d-d.�Z.dBd/d0�ZdCd1d2�Z
dDd3d4�ZdEd5d6�ZdFd7d8�ZdGd9d:�ZdHd;d<�Zd=d>�Zd?d@�ZdS)Iz5
IEEE 64-bit EUI (Extended Unique Identifier) logic.
�N)�AddrFormatError)	�valid_words�int_to_words�words_to_int�
valid_bits�bits_to_int�int_to_bits�	valid_bin�
int_to_bin�
bin_to_int�@zEUI-64��c@s4eZdZdZdZeeZdedZdZdZ	dZ
dS)	�
eui64_basez%A standard IEEE EUI-64 dialect class.�r
r�-z%.2X�N)�__name__�
__module__�__qualname__�__doc__�	word_size�width�	num_wordsZmax_word�word_sep�word_fmt�	word_base�rr�:/usr/lib/python3.9/site-packages/netaddr/strategy/eui64.pyr+src@s(eZdZdZdZeeZdZdZdZ	dS)�
eui64_unixz'A UNIX-style MAC address dialect class.r�:z%xrN�
rrrrrrrrrrrrrrr@src@seZdZdZdZdS)�eui64_unix_expandedz;A UNIX-style MAC address dialect class with leading zeroes.�%.2xN)rrrrrrrrrr"Isr"c@s(eZdZdZdZeeZdZdZdZ	dS)�eui64_ciscoz2A Cisco 'triple hextet' MAC address dialect class.r�.�%.4xNr!rrrrr$Nsr$c@s(eZdZdZdZeeZdZdZdZ	dS)�
eui64_barez1A bare (no delimiters) MAC address dialect class.r�z%.16XrNr!rrrrr'Wsr'�^r z([0-9A-F]{1,2})r�$rz([0-9A-F]{1,4})�z\.z^(r(z[0-9A-F]rz)$cCsg|]}t�|tj��qSr)�_re�compile�
IGNORECASE)�.0�_rrr�
<listcomp>u�r1cCs(|D]}|�|�}|r|dSqdS)Nr)�findall)�address�formatsZregexp�matchrrr�_get_match_resultxs
r7cCs,zt|t�rWdSWnty&Yn0dS)z�
    :param addr: An IEEE EUI-64 identifier in string form.

    :return: ``True`` if EUI-64 identifier is valid, ``False`` otherwise.
    TF)r7�RE_EUI64_FORMATS�	TypeError)�addrrrr�	valid_strs

r;cCs�g}zt|t�}|st�Wn ty:td|f��Yn0t|t�rHn|f}t|�dkrvtd�dd�|D��d�}nZt|�dkr�td�dd�|D��d�}n2t|�d	kr�td
t|dd�d�}ntd|��|S)
z�
    :param addr: An IEEE EUI-64 identifier in string form.

    :return: An unsigned integer that is equivalent to value represented
        by EUI-64 string address formatted according to the dialect
    z#invalid IEEE EUI-64 identifier: %r!rr(cSsg|]}dt|d��qS)r#r��int�r/�wrrrr1�r2zstr_to_int.<locals>.<listcomp>rr+cSsg|]}dt|d��qS)r&rr<r>rrrr1�r2rz%016xrz)bad word count for EUI-64 identifier: %r!)	r7r8r9r�
isinstance�tuple�lenr=�join)r:�words�int_valrrr�
str_to_int�s(

�rFcs8�durt�t|��}�fdd�|D�}�j�|�}|S)z�
    :param int_val: An unsigned integer.

    :param dialect: (optional) a Python class defining formatting options

    :return: An IEEE EUI-64 identifier that is equivalent to unsigned integer.
    Ncsg|]}�j|�qSr)r)r/�i��dialectrrr1�r2zint_to_str.<locals>.<listcomp>)rrrrC)rErIrD�tokensr:rrHr�
int_to_str�s
rKcCst|�}tjdg|�R�S)z�
    :param int_val: the integer to be packed.

    :return: a packed string that is equivalent to value represented by an
    unsigned integer.
    �>8B)r�_struct�pack)rErDrrr�
int_to_packed�srOcCsFtt�d|��}d}tt|��D] \}}|}|d|>}||B}q |S)a
    :param packed_int: a packed string containing an unsigned integer.
        It is assumed that string is packed in network byte order.

    :return: An unsigned integer equivalent to value of network address
        represented by packed binary string.
    rLrr)�listrM�unpack�	enumerate�reversed)Z
packed_intrDrErGZnumZwordrrr�
packed_to_int�s
rTcCs|durt}t||j|j�S�N)�DEFAULT_EUI64_DIALECT�_valid_wordsrr�rDrIrrrr�srcCs|durt}t||j|j�SrU)rV�
_int_to_wordsrr�rErIrrrr�srcCs|durt}t||j|j�SrU)rV�
_words_to_intrrrXrrrr�srcCs|durt}t|t|j�SrU)rV�_valid_bitsrr��bitsrIrrrr�srcCs|durt}t|t|j�SrU)rV�_bits_to_intrrr]rrrr�srcCs |durt}t||j|j|j�SrU)rV�_int_to_bitsrrrrZrrrr�s
�rcCs|durt}t|t�SrU)rV�
_valid_binr)�bin_valrIrrrr	sr	cCs
t|t�SrU)�_int_to_binr)rErrrr
sr
cCs
t|t�SrU)�_bin_to_intr)rbrrrrsr)N)N)N)N)N)N)N)N)/r�structrM�rer,Znetaddr.corerZnetaddr.strategyrrWrrYrr[rr\rr_rr`r	rar
rcrrdZAF_EUI64rZfamilyZfamily_name�versionZmax_int�objectrrr"r$r'rVrCr8r7r;rFrKrOrTrrrr�<module>sN,			�%