
    $gq              	           d Z ddlmZ ddlmZ d Z edd           edd          z    ed	d
          z   g dz   Z e ee e	dd                              Z
d Zd ZdS )z&A basic implementation of RFC 1924 ;-)    )AddrFormatError)	IPAddressc                 p    d t          t          |           t          |          dz             D             S )z2Returns all characters between low and high chars.c                 ,    g | ]}t          |          S  )chr).0is     R/var/www/html/netbox-4.1.3/venv/lib/python3.11/site-packages/netaddr/ip/rfc1924.py
<listcomp>zchr_range.<locals>.<listcomp>   s    ;;;qCFF;;;       )rangeord)lowhighs     r   	chr_ranger      s0    ;;E#c((CIIM::;;;;r   09AZaz)!#$%&()*+-;<=>?@^_`{|}~V   c                     t          |           }t          |          }g }|dk    r#|                    |dz             |dz  }|dk    #d                    d t	          |          D                       }dt          |          z
  dz  }||z   S )z*Convert a regular IPv6 address to base 85.r   U    c                 (    g | ]}t           |         S r   )BASE_85)r	   ws     r   r   z"ipv6_to_base85.<locals>.<listcomp>?   s    ???awqz???r      r   )r   intappendjoinreversedlen)addripint_val	remainderencodedleading_zeroess         r   ipv6_to_base85rD   5   s    	4B"ggGI
A++2&&&B A++ gg??8I+>+>???@@G3w<<'3.NG##r   c                     t          |           }t          |          dk    rt          d|           d}t          t	          |                    D ]\  }}t
          |         }||d|z  z  z  }t          |d          }t          |          S )zC
    Convert a base 85 IPv6 address to its hexadecimal format.
    r8   zInvalid base 85 IPv6 address: r   r3      )listr=   r   	enumerater<   BASE_85_DICTr   str)r>   tokensresultr
   numr?   s         r   base85_to_ipv6rN   D   s     $ZZF
6{{boDDJKKKFHV,,--  33#A+	61		Br77Nr   N)__doc__netaddr.corer   
netaddr.ipr   r   r6   dictzipr   rI   rD   rN   r   r   r   <module>rT      s    - , ( ( ( ( ( (            < < < Ic3iSiS   @ tCCq"..//$ $ $    r   