File: //proc/self/root/lib/python3.6/site-packages/netaddr/ip/__pycache__/rfc1924.cpython-36.opt-1.pyc
3
��]� � @ s� d Z ddlmZ ddlmZ ddlmZ dd� Zedd�ed d
� edd� d
ddddddddddddddddddd d!d"d#g Ze eee
dd$���Zd%d&� Zd'd(� Z
d)S )*z&A basic implementation of RFC 1924 ;-)� )�AddrFormatError)� IPAddress)�_zipc C s dd� t t| �t|�d �D �S )z2Returns all characters between low and high chars.c S s g | ]}t |��qS � )�chr)�.0�ir r �/usr/lib/python3.6/rfc1924.py�
<listcomp> s zchr_range.<locals>.<listcomp>� )�range�ord)ZlowZhighr r r � chr_range s r �0�9�A�Z�a�z�!�#�$�%�&�(�)�*�+�-�;�<�=�>�?�@�^�_�`�{�|�}�~�V c C sh t | �}t|�}g }x"|dkr6|j|d � |d }qW djdd� t|�D ��}dt|� d }|| S )z*Convert a regular IPv6 address to base 85.r �U � c S s g | ]}t | �qS r )�BASE_85)r �wr r r r
( s z"ipv6_to_base85.<locals>.<listcomp>� r )r �int�append�join�reversed�len)�addr�ipZint_valZ remainderZencodedZleading_zeroesr r r �ipv6_to_base85 s
r9 c C sh t | �}t|�dkr td| ��d}x0tt|��D ] \}}t| }||d| 7 }q2W t|d�}t|�S )zC
Convert a base 85 IPv6 address to its hexadecimal format.
r1 z Invalid base 85 IPv6 address: %rr r- � )�listr6 r � enumerater5 �BASE_85_DICTr �str)r7 �tokens�resultr Znumr8 r r r �base85_to_ipv6- s
rA N)�__doc__Znetaddr.corer Z
netaddr.ipr Znetaddr.compatr r r/ �dictr r= r9 rA r r r r �<module> s