U e5dS��@s�ddlZddlZddlZddlmZejZddddddd d d d d ddddddddgZdd�Z dd�Z dekr�dZ dZ ddl Tzddl mZe�d�Wnek r�YnXddlZzddl mZWnek r�YnXddl Z e�e e ��[ n�d ek�r�d Z d!Z ddlTzddlmZe�d�Wnek �r>YnXddlZddlZe�e e��[zddlmZWnek �r�YnXned"��eejd#<dd$lmZmZmZmZmZmZmZm Z [e d%��r�e!�Z"d&d'�Z#e$�Z%e#d(d)�e#d*d+�e#d,d-�e#d.d/�e#d0d1�e#d2d3�e#d4d5�e#d6d7�e#d8d9�e#d:d;�e#dd?�e#d@dA�e#dBdC�e#dBdD�e#dEd1�e%Z&e$�Z%e#d(d)�e%Z'e$�Z%e#dFdG�e#dHd+�e#dId-�e#dJdK�e#dJdL�e#dMdN�e%�(e�e#dOdP�e#dQd1�e#dRd1�e#dSdT�e dU��r.e dV��r.e#dWdU�e%Z)e$�Z%e#d(d)�e#d,d-�e#d.d/�e#dXdY�e#dZd+�e d[��r~e#d\d-�e#d2d3�e#d]d1�e#d^d/�e#d.d/�e#dEd1�e#d_d/�e%Z*[%[["[#dZ+d`Z,daZ-d�ddde�Z.dfdg�Z/dhdi�Z0e�dedgdig�d�dkdl�Z1e�dl�e2ehe&k�rPe3ehe)k�rPd�dcddn�dodp�Z4dqdr�Z5e�dp�dsdt�Z6dudv�Z7dwdx�Z8dydz�Z9d{d|�Z:d}d~�Z;e�dtdvdxdzd|d~g�d�dd��ZZ>Gd�d��d�e>�Z?ze@ZAWneBk �r�d�d��ZAYnXd�ek�re�d��zeCZDWneBk �r(d�d��ZDYnXd�ek�r>e�d��d�d��ZEeE�ZF[Ed�d�d��ZGe d kZHe�d��eH�r�d�d��ZIe?eFjJeIeKeIeKeAeD�ZL[Id�d�d��ZMe�d��d�d��ZNeN�\ZOZP[Ne d���r,e d���s,e d���r,dZQd`ZRZSe�d�d�d�g�d�d��ZTd�d��ZUd�d��ZVd�d��ZWd�d��ZXe�d�d�d�d�g�e d���rTd�d��ZYd�d��ZZe�d�d�g�e d���r|d�d��Z[d�d��Z\e�d�d�g�d�d�d�Z]Gd�d��d��Z^d�d�Z_d�d��Z`e d���s�e`Zad�ea_bGd�d��d�ejc�Zde d k�r�Gd�d��d��Zed�d��ZfdS)��N)�_check_methods�altsep�curdir�pardir�sep�pathsep�linesep�defpath�name�path�devnull�SEEK_SET�SEEK_CUR�SEEK_END�fsencode�fsdecode� get_exec_path�fdopen�popen�extsepcCs |t�kS�N)�globals)r �r�/usr/lib64/python3.8/os.py�_exists'srcCs8z t|j�WStk r2dd�t|�D�YSXdS)NcSsg|]}|ddkr|�qS)r�_r)�.0�nrrr� .s z%_get_exports_list..)�list�__all__�AttributeError�dir)�modulerrr�_get_exports_list*s r$�posix� )�*)�_exitr()�_have_functions�ntz zno os specific module foundzos.path)rrrrr rrr r)cCs"|tkr|tkrt�t|�dSr)�_globalsr)�_set�add)�str�fnrrr�_addfsr0ZHAVE_FACCESSAT�accessZ HAVE_FCHMODAT�chmodZ HAVE_FCHOWNAT�chownZ HAVE_FSTATAT�statZHAVE_FUTIMESAT�utimeZ HAVE_LINKAT�linkZ HAVE_MKDIRAT�mkdirZ HAVE_MKFIFOAT�mkfifoZ HAVE_MKNODAT�mknodZ HAVE_OPENAT�openZHAVE_READLINKAT�readlinkZ HAVE_RENAMEAT�renameZHAVE_SYMLINKAT�symlinkZ HAVE_UNLINKAT�unlink�rmdirZHAVE_UTIMENSATZ HAVE_FCHDIR�chdirZ HAVE_FCHMODZ HAVE_FCHOWNZHAVE_FDOPENDIR�listdir�scandirZ HAVE_FEXECVE�execveZHAVE_FTRUNCATE�truncateZ HAVE_FUTIMENSZ HAVE_FUTIMESZHAVE_FPATHCONF�pathconf�statvfs�fstatvfsZ HAVE_FSTATVFSZ HAVE_LCHFLAGSZchflagsZ HAVE_LCHMOD�lchownZ HAVE_LCHOWNZ HAVE_LUTIMESZ HAVE_LSTATZ MS_WINDOWS����FcCs�t�|�\}}|s t�|�\}}|r||r|t�|�s|zt||d�Wntk rVYnXt}t|t�rpttd�}||kr|dSzt||�Wn$t k r�|r�t� |�s��YnXdS)N)�exist_ok�ASCII) r �split�exists�makedirs�FileExistsErrorr� isinstance�bytesr7�OSError�isdir)r �moderL�head�tail�cdirrrrrP�s$   rPcCsjt|�t�|�\}}|s(t�|�\}}|rf|rfz t|�Wntk rTYqfYnXt�|�\}}q(dSr)r?r rNrT)r rWrXrrr� removedirs�s   rZcCsnt�|�\}}|r(|r(t�|�s(t|�t||�t�|�\}}|rj|rjz t|�Wntk rhYnXdSr)r rNrOrPr<rZrT)�old�newrWrXrrr�renames�s  r]Tc cst|�}g}g}g}z t|�}Wn8tk rX}z|dk rB||�WY�dSd}~XYnX|��z.z t|�} Wntk r�YW�qpYnXWnBtk r�}z$|dk r�||�WY�W5QR�dSd}~XYnXz | ��} Wntk �r�d} YnX| �r|�| j�n |�| j�|sb| rb|�r0d} n.z | ��} Wntk �rVd} YnX| } | rb|�| j �qbW5QRX|�r�|||fVt j t j } }|D]4}|||�}|�s�| |��s�t ||||�EdH�q�n,|D]}t ||||�EdH�q�|||fVdS)NFT) �fspathrBrT�next� StopIteration�is_dir�appendr � is_symlinkr �islink�join�walk)�top�topdown�onerror� followlinks�dirs�nondirs� walk_dirs� scandir_it�error�entryra� walk_intorcrdre�dirname�new_pathrrrrfs^;  "       rf�.��follow_symlinks�dir_fdccs�t|t�rt|d�st|�}|s.t|d|d�}t|t|d�}zB|s^t� |j �r|t � |t|��r|t ||t|t�|||�EdHW5t|�XdS)N� __index__Fru�rw)rR�int�hasattrr^r4r:�O_RDONLY�close�st�S_ISDIR�st_moder �samestat�_fwalkrS)rgrhrirvrw�orig_st�topfdrrr�fwalk�s!��r�c cs�t|�}g}g}|s|rdng} |D]�} | j} |r:t| �} z4| ��rb|�| �| dk rl| �| �n |�| �Wq$tk r�z| ��r�|�| �Wntk r�YnXYq$Xq$|r�||||fV| dkr�|nt|| �D]�} z@|�s|r�t| |dd�} n| \} } | jdd�} t | t |d�} Wn>tk �r\}z|dk �rD||�WY�q�W5d}~XYnXz@|�sxt � | t| ���r�t �|| �}t| |||||�EdHW5t | �Xq�|�s�||||fVdS)NF)rwrv)rvry)rBr rrarbrTrc�zipr4r:r|r}r r�rer�)r��toppath�isbytesrhrirvrnrkrl�entriesrpr r��dirfd�err�dirpathrrrr��sZ     � r�cGst||�dSr)�execv��file�argsrrr�execlsr�cGs |d}t||dd�|�dS�N�����)rC�r�r��envrrr�execlesr�cGst||�dSr)�execvpr�rrr�execlp"sr�cGs |d}t||dd�|�dSr�)�execvper�rrr�execlpe)sr�cCst||�dSr��_execvper�rrrr�2sr�cCst|||�dSrr�r�rrrr�:sr�c Cs�|dk rt}||f}nt}|f}t}t�|�r@||f|��dSd}t|�}tdkrft|�}tt|�}|D]~}t� ||�}z||f|��Wqjt t fk r�} z| } W5d} ~ XYqjt k r�} z| } |dkr�| }W5d} ~ XYqjXqj|dk r�|�| �dS)Nr*) rCr��environr rrrr r�mapre�FileNotFoundError�NotADirectoryErrorrT) r�r�r�� exec_func�argrest� saved_exc� path_listr"�fullname�e�last_excrrrr�Es6    r�c Cs�ddl}|dkrt}|����|�dt�z|�d�}Wntk rPd}YnXtr�z |d}Wnttfk rzYnX|dk r�t d��|}|dk r�t |t �r�t |�}W5QRX|dkr�t }|�t�S)Nr�ignore�PATHsPATHz*env cannot contain 'PATH' and b'PATH' keys)�warningsr��catch_warnings� simplefilter� BytesWarning�get� TypeError�supports_bytes_environ�KeyError� ValueErrorrRrSrr rNr)r�r�r�� path_listbrrrres0     �)�MutableMappingc@sTeZdZdd�Zdd�Zdd�Zdd�Zd d �Zd d �Zd d�Z dd�Z dd�Z dS)�_EnvironcCs.||_||_||_||_||_||_||_dSr)� encodekey� decodekey� encodevalue� decodevalue�putenv�unsetenv�_data)�self�datar�r�r�r�r�r�rrr�__init__�sz_Environ.__init__cCs>z|j|�|�}Wntk r2t|�d�YnX|�|�Sr)r�r�r�r��r��key�valuerrr� __getitem__�s z_Environ.__getitem__cCs.|�|�}|�|�}|�||�||j|<dSr)r�r�r�r�r�rrr� __setitem__�s   z_Environ.__setitem__cCsD|�|�}|�|�z |j|=Wntk r>t|�d�YnXdSr)r�r�r�r�)r�r�� encodedkeyrrr� __delitem__�s    z_Environ.__delitem__ccs$t|j�}|D]}|�|�VqdSr)rr�r�)r��keysr�rrr�__iter__�s z_Environ.__iter__cCs t|j�Sr)�lenr��r�rrr�__len__�sz_Environ.__len__cs$d�d��fdd��j��D���S)Nzenviron({{{}}})z, c3s*|]"\}}d���|���|��VqdS)z {!r}: {!r}N)�formatr�r�)rr�r�r�rr� �s�z$_Environ.__repr__..)r�rer��itemsr�rr�r�__repr__�s  ��z_Environ.__repr__cCst|�Sr)�dictr�rrr�copy�sz _Environ.copycCs||kr|||<||Srrr�rrr� setdefault�sz_Environ.setdefaultN) �__name__� __module__� __qualname__r�r�r�r�r�r�r�r�r�rrrrr��s  r�cCsdSrr)r�r�rrr���r�r�cCs t|d�S)N�)�_putenv�r�rrrr��r�r�cs�tdkrHdd�}|�t}�fdd�}i}t��D]\}}||||�<q0n(t����fdd���fdd �}�}t}t|||�|tt�S) Nr*cSs t|t�stdt|�j��|S)N�str expected, not %s)rRr.r��typer��r�rrr� check_str�s z!_createenviron..check_strcs �|���Sr)�upperr�)�encoderrr��sz!_createenviron..encodekeycs(t|t�stdt|�j��|��d�S)Nr��surrogateescape)rRr.r�r�r�r�r���encodingrrr��s z_createenviron..encodecs |��d�S)Nr�)�decoder�r�rrr��sz_createenviron..decode) r r.r�r��sys�getfilesystemencodingr�r�� _unsetenv)r�r�r�r�r�r�r)r�r�r�_createenviron�s*   �r�cCs t�||�Sr)r�r��r��defaultrrr�getenv�sr�)r�r�cCs t|t�stdt|�j��|S)Nzbytes expected, not %s)rRrSr�r�r�r�rrr� _check_bytess r�cCs t�||�Sr)�environbr�r�rrr�getenvbsr�)r�r�cs4t���t�����fdd�}��fdd�}||fS)Ncs&t|�}t|t�r|����S|SdSr)r^rRr.r���filename�r��errorsrrr s  z_fscodec..fsencodecs&t|�}t|t�r|����S|SdSr)r^rRrSr�r�r�rrr,s  z_fscodec..fsdecode)r�r��getfilesystemencodeerrors)rrrr�r�_fscodecs   r��fork�spawnvr��P_WAIT�P_NOWAIT� P_NOWAITOcCs�t|ttf�std��|r"|ds*td��t�}|spz$|dkrJ|||�n ||||�Wq�td�Yq�XnR|tkr||St|d�\}}t |�r�q|q|t |�r�t |� St |�r�t |�Std��q|dS)Nzargv must be a tuple or a listrz"argv first element cannot be empty�z"Not stopped, signaled or exited???)rR�tuplerr�r�r�r(r��waitpid� WIFSTOPPED� WIFSIGNALED�WTERMSIG� WIFEXITED� WEXITSTATUSrT)rVr�r�r��func�pid�wpid�stsrrr� _spawnvefIs,   rcCst|||dt�Sr)rr��rVr�r�rrrr�hscCst||||t�Sr)rrC�rVr�r�r�rrr�spawnveqsr cCst|||dt�Sr)rr�rrrr�spawnvp}sr cCst||||t�Sr)rr�rrrr�spawnvpe�sr cGs t|||�Sr)r�rrrr�spawnl�sr cGs|d}t|||dd�|�Sr�)r rrrr�spawnle�sr cGs t|||�Sr)r rrrr�spawnlp�srcGs|d}t|||dd�|�Sr�)r rrrr�spawnlpe�sr�rr�cCs�t|t�stdt|���|dkr.td|��|dks>|dkrFtd��ddl}ddl}|dkr�|j|d|j|d�}t |� |j �|�S|j|d|j|d �}t |� |j �|�SdS) Nz&invalid cmd type (%s, expected string))r�wzinvalid mode %rrz+popen() does not support unbuffered streamsrT)�shell�stdout�bufsize)r�stdinr) rRr.r�r�r�� subprocess�io�Popen�PIPE� _wrap_close� TextIOWrapperrr)�cmdrV� bufferingrr�procrrrr�s(  ��c@s<eZdZdd�Zdd�Zdd�Zdd�Zd d �Zd d �Zd S)rcCs||_||_dSr)�_stream�_proc)r��streamrrrrr��sz_wrap_close.__init__cCs8|j��|j��}|dkr dStdkr,|S|d>SdS)Nrr*�)rr}r �waitr )r�� returncoderrrr}�s  z_wrap_close.closecCs|Srrr�rrr� __enter__�sz_wrap_close.__enter__cGs |��dSr�r}�r�r�rrr�__exit__�sz_wrap_close.__exit__cCs t|j|�Sr)�getattrr)r�r rrr� __getattr__�sz_wrap_close.__getattr__cCs t|j�Sr)�iterrr�rrrr��sz_wrap_close.__iter__N) r�r�r�r�r}r%r(r*r�rrrrr�s  rcOs4t|t�stdt|���ddl}|j|f|�|�S)Nz&invalid fd type (%s, expected integer)r)rRrzr�r�rr:)�fdr��kwargsrrrrr�s cCs�t|ttf�r|St|�}z|�|�}Wn0tk rXt|d�rF�ntd|j��YnXt|ttf�rl|Std� |jt|�j���dS)N� __fspath__z/expected str, bytes or os.PathLike object, not z7expected {}.__fspath__() to return str or bytes, not {}) rRr.rSr�r.r!r{r�r�r�)r � path_type� path_reprrrr�_fspaths" � �r1r^c@s&eZdZejdd��Zedd��ZdS)�PathLikecCst�dSr)�NotImplementedErrorr�rrrr.,szPathLike.__fspath__cCs|tkrt|d�StS)Nr.)r2r�NotImplemented)�cls�subclassrrr�__subclasshook__1s zPathLike.__subclasshook__N)r�r�r��abc�abstractmethodr.� classmethodr7rrrrr2(s r2c@s4eZdZdd�Zdd�Zdd�Zdd�Zd d �Zd S) �_AddedDllDirectorycCs||_||_||_dSr)r �_cookie�_remove_dll_directory)r�r �cookieZremove_dll_directoryrrrr�:sz_AddedDllDirectory.__init__cCs|�|j�d|_dSr)r=r<r r�rrrr}>s z_AddedDllDirectory.closecCs|Srrr�rrrr%Asz_AddedDllDirectory.__enter__cGs |��dSrr&r'rrrr(Csz_AddedDllDirectory.__exit__cCs|jrd�|j�SdS)Nzz)r r�r�rrrr�Es z_AddedDllDirectory.__repr__N)r�r�r�r�r}r%r(r�rrrrr;9s r;cCs ddl}|�|�}t|||j�S)Nr)r*Z_add_dll_directoryr;r=)r r*r>rrr�add_dll_directoryJs  �r?)rKF)TNF)rtTN)N)N)N)N)rr�)gr8r�r4r~�_collections_abcr�builtin_module_namesZ_namesr rr$r rr%r(rb� ImportError� posixpathr r)�extendr*Zntpath�modulesZos.pathrrrrr rrr rr+r0�setr,�supports_dir_fd�supports_effective_idsr-� supports_fd�supports_follow_symlinksr rrrPrZr]rfr:rBr�r�r�r�r�r�r�r�r�rr�r�r�r�� NameErrorr�r�r�r�r�r�r�r�rSr�r�r�rrr�r�r�rr�r r r r r rrrrrr1r^r��ABCr2r;r?rrrr�s�  �    (                                              08    - 7      �