File: //lib64/python3.6/encodings/__pycache__/idna.cpython-36.opt-2.pyc
3
�Qg�#  �               @   s�   d dl Z d dlZd dlZd dlmZ ejd�ZdZdZdd� Z	dd	� Z
d
d� ZG dd
� d
ej�ZG dd� dej
�ZG dd� dej�ZG dd� deej�ZG dd� deej�Zdd� ZdS )�    N)�	ucd_3_2_0u   [.。.。]s   xn--zxn--c             C   s  g }x(| D ] }t j|�rq
|jt j|�� q
W dj|�} tjd| �} xr| D ]j}t j|�s�t j|�s�t j	|�s�t j
|�s�t j|�s�t j|�s�t j
|�s�t j|�s�t j|�rJtd| ��qJW dd� | D �}t|��rtdd� | D ��r�td��|d	  p�|d  �rtd��| S )
N� �NFKCzInvalid character %rc             S   s   g | ]}t j|��qS � )�
stringprepZin_table_d1)�.0�xr   r   �&/usr/lib64/python3.6/encodings/idna.py�
<listcomp>)   s    znameprep.<locals>.<listcomp>c             s   s   | ]}t j|�V  qd S )N)r   Zin_table_d2)r   r   r   r   r	   �	<genexpr>1   s    znameprep.<locals>.<genexpr>zViolation of BIDI requirement 2r   �   zViolation of BIDI requirement 3���)r   Zin_table_b1�appendZmap_table_b2�join�unicodedata�	normalizeZin_table_c12Zin_table_c22Zin_table_c3Zin_table_c4Zin_table_c5Zin_table_c6Zin_table_c7Zin_table_c8Zin_table_c9�UnicodeError�any)�labelZnewlabel�cZRandALr   r   r	   �nameprep   s2    
r   c             C   s�   y| j d�} W n tk
r"   Y n*X dt| �  k o:dk n  rD| S td��t| �} y| j d�} W n tk
rv   Y n*X dt| �  k o�dk n  r�| S td��| jt�r�td��| j d�} t|  } dt| �  k o�dk n  r�| S td��d S )N�asciir   �@   zlabel empty or too longzLabel starts with ACE prefix�punycode)�encoder   �lenr   �
startswith�sace_prefix�
ace_prefix)r   r   r   r	   �ToASCII<