3 �L�j�]�@sddlZdZddddg\ZZZZeZeZ Gdd�de �Z d d �Z d d �Z d d�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�ZdZZy�ddlZddlZddlZdgZejjd�s�ejd�xLeD]DZyejej j!e��Z"Wne#k r�w�YnXe$e"d�r�e"j%ZPq�W[ejdk�rzreserved for NCS compatibilityzspecified in RFC 4122z$reserved for Microsoft compatibilityzreserved for future definitionc@seZdZd6dd�Zdd�Zdd�Zdd �Zd d �Zd d �Zdd�Z dd�Z dd�Z dd�Z dd�Z edd��Zedd��Zedd��Zedd��Zed d!��Zed"d#��Zed$d%��Zed&d'��Zed(d)��Zed*d+��Zed,d-��Zed.d/��Zed0d1��Zed2d3��Zed4d5��ZdS)7�UUIDNcCs�|||||gjd�dkr td��|dk rl|jdd�jdd�}|jd�jdd�}t|�dkrbtd ��t|d �}|dk r�t|�d kr�td ��|d'dd(�|d)d*d+�|d,d-d.�|dd�}|dk �r�t|�d kr�td��tj|dd�}|dk �r"t|�d k�r td��|\}}} } } } d|k�o.d/kn�s>td��d|k�oRd0kn�sbtd��d| k�ovd1kn�s�td��d| k�o�d2kn�s�td��d| k�o�d3kn�s�td��d| k�o�d4kn�s�td��| d>| B} |d>|d>B| d>B| d>B| B}|dk �rTd|k�oDd d>kn�sTtd��|dk �r�d |k�ord kn�s�td!��|d6M}|d7O}|d9M}||d%>O}||jd&<dS):N�zGone of the hex, bytes, bytes_le, fields, or int arguments must be givenzurn:�zuuid:z{}�-� z$badly formed hexadecimal UUID string�z bytes_le is not a 16-char string���zbytes is not a 16-char string�big)� byteorderzfields is not a 6-tuplerz*field 1 out of range (need a 32-bit value)z*field 2 out of range (need a 16-bit value)z*field 3 out of range (need a 16-bit value)z*field 4 out of range (need an 8-bit value)z*field 5 out of range (need an 8-bit value)�0z*field 6 out of range (need a 48-bit value)�`�P�@�z*int is out of range (need a 128-bit value)�zillegal version numberi�i�i��L�int������rrr�rrlii�rll l���� lll����) �count� TypeError�replace�strip�len� ValueError�int_� from_bytes�__dict__)�self�hex�bytes�bytes_le�fieldsr�version�time_low�time_mid�time_hi_version�clock_seq_hi_variant� clock_seq_low�node� clock_seq�r/�/usr/lib64/python3.6/uuid.py�__init__jsZ   6    $    z UUID.__init__cCst|t�r|j|jkStS)N)� isinstancerr�NotImplemented)r"�otherr/r/r0�__eq__�s  z UUID.__eq__cCst|t�r|j|jkStS)N)r2rrr3)r"r4r/r/r0�__lt__�s  z UUID.__lt__cCst|t�r|j|jkStS)N)r2rrr3)r"r4r/r/r0�__gt__�s  z UUID.__gt__cCst|t�r|j|jkStS)N)r2rrr3)r"r4r/r/r0�__le__�s  z UUID.__le__cCst|t�r|j|jkStS)N)r2rrr3)r"r4r/r/r0�__ge__�s  z UUID.__ge__cCs t|j�S)N)�hashr)r"r/r/r0�__hash__�sz UUID.__hash__cCs|jS)N)r)r"r/r/r0�__int__�sz UUID.__int__cCsd|jjt|�fS)Nz%s(%r))� __class__�__name__�str)r"r/r/r0�__repr__�sz UUID.__repr__cCs td��dS)NzUUID objects are immutable)r)r"�name�valuer/r/r0� __setattr__�szUUID.__setattr__cCsDd|j}d|dd�|dd�|dd�|dd�|dd�fS)Nz%032xz%s-%s-%s-%s-%sr � r�)r)r"r#r/r/r0�__str__�s z UUID.__str__cCs|jjdd�S)Nrr )r�to_bytes)r"r/r/r0r$�sz UUID.bytescCs<|j}|ddd�|ddd �|d d d �|dd�S) Nrrr r rrrrrrrr)r$)r"r$r/r/r0r%�s(z UUID.bytes_lecCs|j|j|j|j|j|jfS)N)r(r)r*r+r,r-)r"r/r/r0r&�s z UUID.fieldscCs |jd?S)Nr)r)r"r/r/r0r(�sz UUID.time_lowcCs|jd?d@S)Nri��)r)r"r/r/r0r)�sz UUID.time_midcCs|jd?d@S)Nri��)r)r"r/r/r0r*�szUUID.time_hi_versioncCs|jd?d@S)N�8��)r)r"r/r/r0r+szUUID.clock_seq_hi_variantcCs|jd?d@S)Nr rI)r)r"r/r/r0r,szUUID.clock_seq_lowcCs|jd@d>|jd>B|jBS)Ni�r r)r*r)r()r"r/r/r0�time sz UUID.timecCs|jd@d>|jBS)N�?r )r+r,)r"r/r/r0r.s zUUID.clock_seqcCs |jd@S)Nl���)r)r"r/r/r0r-sz UUID.nodecCs d|jS)Nz%032x)r)r"r/r/r0r#szUUID.hexcCs dt|�S)Nz urn:uuid:)r?)r"r/r/r0�urnszUUID.urncCs2|jd@stS|jd@stS|jd@s*tStSdS)Ni�r i@i lll)r� RESERVED_NCS�RFC_4122�RESERVED_MICROSOFT�RESERVED_FUTURE)r"r/r/r0�variant s   z UUID.variantcCs |jtkrt|jd?d@�SdS)Nr�)rQrNr)r"r/r/r0r'+s z UUID.version)NNNNNN)r>� __module__� __qualname__r1r5r6r7r8r9r;r<r@rCrF�propertyr$r%r&r(r)r*r+r,rJr.r-r#rLrQr'r/r/r/r0r:s60 O              rc Gs�ddl}ddl}ddl}|j|�}|dkrP|jjd�}|j||d�}|dkrPdSt|j�}d|d<|j|f||j |j |d�}|S) Nr�/sbin� /usr/sbin)�path�C�LC_ALL)�stdout�stderr�env)rVrW) �os�shutil� subprocessZwhich�pathsep�join�dict�environ�Popen�PIPEZDEVNULL) �command�argsr^r_r`� executablerXr]�procr/r/r0�_popen1s    rkc Cs�y�t|f|j���}|sdS|��x�|jD]z}|j�j�j�}xdtt|��D]T}|||krLy*|||�}t|jdd�d�} | r�| SWqLt t fk r�YqLXqLWq*WWdQRXWnt k r�YnXdS)N�:�r) rk�splitr[�lower�rstrip�rangerrrr� IndexError�OSError) rgrhZhw_identifiersZ get_indexrj�line�words�i�word�macr/r/r0� _find_macDs$   rycCs0d }x&d D]}td||d d ��}|r |Sq WdS) N�hwaddr�ether�address:�lladdrr�-a�-avZifconfigcSs|dS)Nrr/)rvr/r/r0�bsz#_ifconfig_getnode..)rzr{r|r})rr~r)ry)�keywordsrhrxr/r/r0�_ifconfig_getnode]s  r�cCs tdddgdd��}|r|SdS)NZip�links link/ethercSs|dS)Nrr/)rvr/r/r0r�isz_ip_getnode..)ry)rxr/r/r0� _ip_getnodefsr�cCs�ddl}ddl}y|j|j��}Wntk r6dSXtdd|j|�gdd��}|rZ|Stdd|j|�gdd��}|r||Stdd|jd|�gdd��}|r�|SdS) NrZarpz-ancSsdS)Nrrr/)rvr/r/r0r�vsz_arp_getnode..cSs|dS)Nrr/)rvr/r/r0r�{sz(%s)cSs|dS)N�r/)rvr/r/r0r��s)r^�socketZ gethostbynameZ gethostnamersry�fsencode)r^r�Zip_addrrxr/r/r0� _arp_getnodems r�cCstdddgdd��S)NZlanscanz-aislan0cSsdS)Nrr/)rvr/r/r0r��sz"_lanscan_getnode..)ryr/r/r/r0�_lanscan_getnode�sr�c"Cs�y�tdd�}|sdS|��|jj�j�j�}y|jd�}Wntk rNdSXxt|jD]j}yL|j�j�}||}t|�dkr�|jd�dkr�t |j dd�d�}|r�|SWqXtt fk r�YqXXqXWWdQRXWnt k r�YnXdS) NZnetstatz-iasAddress�rlrrmr) rkr[�readlinerprn�indexrrrrrrrrs)rjrurvrtrwrxr/r/r0�_netstat_getnode�s,   r�c Cs ddl}ddl}ddl}dddg}y:ddl}|jd�}|jjj|d�|jd|j j d��Wn YnXx�|D]�}y$|j |j j |d�dg|jd d �}Wntk r�wpYnX|�JxB|jD]8}|jd �dj�j�} |jd | �r�t| jdd�d�Sq�WWdQRXqpWdS)Nrrzc:\windows\system32zc:\winnt\system32i,�mbcsZipconfigz/allZoem)r[�encoding�:rz((?:[0-9a-f][0-9a-f]-){5}[0-9a-f][0-9a-f]rrr)r^�rer`�ctypes�create_string_buffer�windllZkernel32ZGetSystemDirectoryA�insertrB�decodererXrbrfrsr[rnrro� fullmatchrr) r^r�r`�dirsr��buffer�dirrjrtrBr/r/r0�_ipconfig_getnode�s*      r�cCsddl}ddl}|j�}|j|_|j�|_}|j�|j|�dkrHdS|j �x�t |j �D]�}|j �|j |_t|j|�|_|j|�dkr�q\|j �|j|_t|j|�|_djd�|_|j�|_}|j|�dkr�q\|j �|jdd�}t|�dkr�q\tj|d�SWdS)Nr�*rr r )� win32wnet�netbiosZNCBZNCBENUMZCommandZ LANA_ENUMZBufferZ_packZNetbiosZ_unpackrqZlengthZResetZNCBRESET�ordZlanaZLana_numZNCBASTAT�ljustZCallnameZADAPTER_STATUSZadapter_addressrrr )r�r�ZncbZadaptersrvZstatusr$r/r/r0�_netbios_getnode�s4  r�Zuuid�win�c�uuid_generate_time�darwin�.� ZUuidCreateSequentialZ UuidCreatecCs$tjd�}t|�tt|j�d�jS)Nr)r$)r�r��_uuid_generate_timer�bytes_�rawr-)�_bufferr/r/r0�_unixdll_getnodes r�cCs,tjd�}t|�dkr(tt|j�d�jSdS)Nrr)r$)r�r�� _UuidCreaterr�r�r-)r�r/r/r0�_windll_getnodes  r�cCsddl}|jd�dBS)Nrr l)�random� getrandbits)r�r/r/r0�_random_getnodesr�c Cs~tdk r tSddl}|jdkr$t}nt}xP|tgD]B}y |�aWnw4YnXtdk r4dtkoldknr4tSq4WdS)NrZwin32rr l)�_node�sys�platform�_NODE_GETTERS_WIN32�_NODE_GETTERS_UNIXr�)r�Zgetters�getterr/r/r0�getnode&s    r�c Cs�tr>||kodknr>tjd�}t|�tt|j�d�Sddl}t|j�d�}t|d�d}tdk r~|tkr~td}|a|dkr�ddl }|j d�}|d @}|d ?d @}|d ?d @} |d@} |d?d@} |dkr�t �}t||| | | |fdd�S)Nr)r$rge��A�dl@'Hw� r�l��ri��r i�rIr rK)r&r') r�r�r�rr�r�rJr�_last_timestampr�r�r�) r-r.r�rJZ nanosecondsZ timestampr�r(r)r*r,r+r/r/r0�uuid1Ds,     r�cCs<ddlm}||jt|d�dd�j�}t|dd�dd�S) Nr)�md5zutf-8F)Zusedforsecurityrr)r$r')�hashlibr�r$�digestr)� namespacerAr�r�r/r/r0�uuid3gs   r�cCsttjd�dd�S)Nrr)r$r')rr^�urandomr/r/r/r0�uuid4psr�cCs8ddlm}||jt|d��j�}t|dd�dd�S)Nr)�sha1zutf-8rr)r$r')r�r�r$r�r)r�rAr�r:r/r/r0�uuid5ts r�z$6ba7b810-9dad-11d1-80b4-00c04fd430c8z$6ba7b811-9dad-11d1-80b4-00c04fd430c8z$6ba7b812-9dad-11d1-80b4-00c04fd430c8z$6ba7b814-9dad-11d1-80b4-00c04fd430c8)NN)/sxx "           #