MINI MINI MANI MO
3
  \#                 @   s   d dl Z d dlZd dlZd dlmZ ejdZdZdZdd Z	dd	 Z
d
d ZG dd
 d
ejZG dd dej
ZG dd dejZG dd deejZG dd deejZdd 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|st j|st j	|st j
|st j|st j|st j
|st j|st j|rJtd| qJW dd | D }xH|D ]@}|rtdd | D rtd|d	  s|d  rtdqW | S )
N ZNFKCzInvalid character %rc             S   s   g | ]}t j|qS  )
stringprepZin_table_d1).0xr   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>2   s    znameprep.<locals>.<genexpr>zViolation of BIDI requirement 2r      zViolation of BIDI requirement 3)r   Zin_table_b1appendZmap_table_b2joinunicodedataZ	normalizeZin_table_c12Zin_table_c22Zin_table_c3Zin_table_c4Zin_table_c5Zin_table_c6Zin_table_c7Zin_table_c8Zin_table_c9UnicodeErrorany)labelZnewlabelcZRandALr   r   r   nameprep   s4    
r   c             C   s   y| j d} W n tk
r"   Y n*X dt|   k o:dk n  rD| S tdt| } y| j d} W n tk
rv   Y n*X dt|   k odk n  r| S td| jtrtd| j d} t|  } dt|   k odk n  r| S tdd S )Nasciir   @   zlabel empty or too longzLabel starts with ACE prefixpunycode)encoder   lenr   
startswithsace_prefix
ace_prefix)r   r   r   r   ToASCII>