HEX
Server: LiteSpeed
System: Linux 112.webhostingindonesia.co.id 5.14.0-570.62.1.el9_6.x86_64 #1 SMP PREEMPT_DYNAMIC Tue Nov 11 10:10:59 EST 2025 x86_64
User: iyfwylsv (10313)
PHP: 8.2.30
Disabled: NONE
Upload Files
File: //opt/plesk/python/3/lib64/python3.10/__pycache__/ntpath.cpython-310.pyc
o

p�t,��@sdZdZdZdZdZdZdZdZdZdd	l	Z	dd	l
Z
dd	lZdd	lZdd
lTgd�Z
dd
�ZzddlmZmZmZdd�ZWn
eyKdd�ZYnwdd�Zdd�Zdd�Zdd�Zdd�Zejje_dd�Zdd�Zd d!�Z d"d#�Z!zdd$l"m#Z#Wney�d	Z#Ynwd%d&�Z$d'd(�Z%d)d*�Z&d+d,�Z'd-d.�Z(zdd/l"m)Z)Wney�e(Z*Ynwd0d1�Z*z
dd2l"m+Z+m,Z-Wney�d3d4�d5d6�Z.Ynwe/fd7d8�Z0e/fd9d:�Z1d3d4�d;d6�Z.e2e
d<�o�e
�3�d=d>kZ4dDd?d@�Z5dAdB�Z6z	ddCl"m7Z8Wd	Se�y
Yd	Sw)Ez�Common pathname manipulations, WindowsNT/95 version.

Instead of importing this module directly, import os and refer to this
module as os.path.
�.�..�\�;�/z.;C:\bin�nul�N)�*)'�normcase�isabs�join�
splitdrive�split�splitext�basename�dirname�commonprefix�getsize�getmtime�getatime�getctime�islink�exists�lexists�isdir�isfile�ismount�
expanduser�
expandvars�normpath�abspath�curdir�pardir�sep�pathsep�defpath�altsep�extsep�devnull�realpath�supports_unicode_filenames�relpath�samefile�sameopenfile�samestat�
commonpath�
ALLOW_MISSINGcCst|t�rdSdS)N�\/�\/)�
isinstance�bytes��path�r6�./opt/plesk/python/3/lib64/python3.10/ntpath.py�
_get_bothseps$s
r8)�
LCMapStringEx�LOCALE_NAME_INVARIANT�LCMAP_LOWERCASEcCsdt�|�}|s	|St|t�r(t��}|�|d��dd�}tt	t
|�}|�|d�Stt	t
|�dd��S)�nNormalize case of pathname.

        Makes all characters lowercase and all slashes into backslashes.
        �surrogateescaperr)�os�fspathr2r3�sys�getfilesystemencoding�decode�replace�_LCMapStringEx�_LOCALE_NAME_INVARIANT�_LCMAP_LOWERCASE�encode)�s�encodingr6r6r7r	4s

�
�r	cCs@t�|�}t|t�rt�t�|��dd����S|�dd���S)r<rr)r>r?r2r3�fsencode�fsdecoderC�lower�rHr6r6r7r	Gs

cCsjt�|�}t|t�r|�dd��d�rdSn|�dd��d�r!dSt|�d}t|�d	ko4|d	t|�vS)
zTest whether a path is absolute�/�\�\\?\Trr�\\?\�r)	r>r?r2r3rC�
startswithr�lenr8rMr6r6r7r
Xs

�r
c

Gs@t�|�}t|t�rd}d}d}nd}d}d}zs|s"|dd�|t|�\}}ttj|�D]>}t|�\}}	|	rG|	d|vrG|sB|sD|}|	}q.|r\||kr\|��|��krZ|}|	}q.|}|rh|d|vrh||}||	}q.|r�|d|vr�|r�|dd�|kr�|||WS||WSttt	fy�t
jd	|g|�R��w)
NrOr0�:rr1�:r���r)r>r?r2r3r�maprL�	TypeError�AttributeError�BytesWarning�genericpath�_check_arg_types)
r5�pathsr"�seps�colon�result_drive�result_path�p�p_drive�p_pathr6r6r7rhsL


�
�rcCst�|�}t|�dkr�t|t�rd}d}d}nd}d}d}|�||�}|dd�|dkrq|dd	�|krq|�|d�}|d
krG|dd�|fS|�||d�}||dkr]|dd�|fS|d
kret|�}|d|�||d�fS|dd�|kr�|dd�|dd�fS|dd�|fS)
a�Split a pathname into drive/UNC sharepoint and relative path specifiers.
    Returns a 2-tuple (drive_or_unc, path); either part may be empty.

    If you assign
        result = splitdrive(p)
    It is always true that:
        result[0] + result[1] == p

    If the path contained a drive letter, drive_or_unc will contain everything
    up to and including the colon.  e.g. splitdrive("c:/dir") returns ("c:", "/dir")

    If the path contained a UNC path, the drive_or_unc will contain the host name
    and share up to but not including the fourth directory separator character.
    e.g. splitdrive("//host/computer/dir") returns ("//host/computer", "/dir")

    Paths cannot contain both a drive letter and a UNC path.

    �rOrNrUrrrVr�rWNrR)r>r?rTr2r3rC�find)rcr"r%r`�normp�index�index2r6r6r7r�s.

$rcCs�t�|�}t|�}t|�\}}t|�}|r+||d|vr+|d8}|r+||d|vs|d|�||d�}}|�|�p>|}|||fS)z~Split a pathname.

    Return tuple (head, tail) where tail is everything after the final slash.
    Either part may be empty.rRN)r>r?r8rrT�rstrip)rcr_�d�i�head�tailr6r6r7r
�s
�r
cCs4t�|�}t|t�rt�|ddd�St�|ddd�S)NrOrN�.rrr)r>r?r2r3r\�	_splitext�rcr6r6r7r�s

rcC�t|�dS)z)Returns the final component of a pathnamerR�r
rsr6r6r7r��rcCrt)z-Returns the directory component of a pathnamerrursr6r6r7r�rvrc
Cs6zt�|�}Wn
tttfyYdSwt�|j�S)zhTest whether a path is a symbolic link.
    This will always return false for Windows prior to 6.0.
    F)r>�lstat�OSError�
ValueErrorrZ�stat�S_ISLNK�st_mode�r5�str6r6r7r�s�rc	Cs*zt�|�}WdSttfyYdSw)zCTest whether a path exists.  Returns True for broken symbolic linksFT)r>rwrxryr}r6r6r7rs��r)�_getvolumepathnamecCspt�|�}t|�}t|�}t|�\}}|r"|d|vr"|p!||vS||vr(dStr6|�|�t|��|�kSdS)zaTest whether a path is a mount point (a drive root, the root of a
    share, or a mounted volume)rTF)r>r?r8rrrrl)r5r_�root�restr6r6r7r!s
rcCsJt�|�}t|t�r
d}nd}|�|�s|Sdt|�}}||kr9||t|�vr9|d7}||kr9||t|�vs)dtjvrDtjd}n"dtjvrK|Sztjd}Wnty]d}Ynwt	|tjd�}|dkr�|d|�}t|t�rzt�
|�}tj�d�}||kr�|t|�kr�|St	t
|�|�}t|t�r�t�|�}|||d	�S)
zLExpand ~ and ~user constructs.

    If user or $HOME is unknown, do nothing.�~�~rR�USERPROFILE�HOMEPATH�	HOMEDRIVE��USERNAMEN)r>r?r2r3rSrTr8�environ�KeyErrorrrK�getrrrJ)r5�tildern�n�userhome�drive�target_user�current_userr6r6r7r<s@


�

�



rcCs0t�|�}t|t�r4d|vrd|vr|Sddl}t|j|jdd�}d}d}d}d	}d}ttd
d�}n#d|vr>d|vr>|Sddl}|j|jd}d
}d}d}d}d}tj}|dd�}	d}
t	|�}|
|k�r||
|
d�}||kr�||
dd�}t	|�}z|�
|�}
|	||d|
d�7}	W�nyty�|	||7}	|d}
Y�nfw||k�r||
d|
d�|kr�|	|7}	|
d7}
�nJ||
dd�}t	|�}z|�
|�}
Wnty�|	||7}	|d}
Y�n#w|d|
�}
z|du�rt�tjt�
|
��}n||
}Wnt�y||
|}Ynw|	|7}	n�||k�r
||
d|
d�|k�r:|	|7}	|
d7}
n�||
d|
d�|k�r�||
dd�}t	|�}z|�
|�}
Wnt�yp|	|||7}	|d}
Yn�w|d|
�}
z|du�r�t�tjt�
|
��}n||
}Wnt�y�|||
|}Ynw|	|7}	nh|dd�}
|
d7}
||
|
d�}|�r�||v�r�|
|7}
|
d7}
||
|
d�}|�r�||v�s�z|du�r�t�tjt�
|
��}n||
}Wnt�y�||
}Ynw|	|7}	|�r	|
d8}
n|	|7}	|
d7}
|
|ksh|	S)zfExpand shell variables of the forms $var, ${var} and %var%.

    Unknown variables are left unchanged.�$�%rNz_-�ascii�'�{�}�environb�$�%�'�{�}rRrf)r>r?r2r3�string�
ascii_letters�digits�getattrr�rTrjryrJrKr�)r5r��varchars�quote�percent�brace�rbrace�dollarr��resrj�pathlen�c�var�valuer6r6r7rys�



�
�
��


�
��
�
����Lrc	CsNt�|�}t|t�rd}d}d}d}d}n
d}d}d}d	}d
}|�|�r&|S|�||�}t|�\}}|�|�r@||7}|�|�}|�|�}d}|t	|�kr�||rW|||kr[||=n6|||kr�|dkr{||d|kr{||d|d�=|d8}n|dkr�|�
|�r�||=n	|d7}n|d7}|t	|�ksM|s�|s�|�|�||�|�S)
z0Normalize path, eliminating double slashes, etc.rOrNrq�..)s\\.\rPrrrr)z\\.\rQrrR)
r>r?r2r3rSrCr�lstripr
rT�endswith�appendr)	r5r"r%r r!�special_prefixes�prefix�compsrnr6r6r7r�sH







�
rcCs@t�|�}t|�st|t�rt��}nt��}t||�}t|�S)z�Return the absolute version of a path as a fallback function in case
    `nt._getfullpathname` is not available or raises OSError. See bpo-31047 for
    more.

    )	r>r?r
r2r3�getcwdb�getcwdrr)r5�cwdr6r6r7�_abspath_fallbacks



r�)�_getfullpathnamec	Cs.ztt|��WSttfyt|�YSw)z&Return the absolute version of a path.)rr�rxryr�r4r6r6r7r4s
�r)�_getfinalpathname�readlinkF)�strictcCst|�S�N)r)r5r�r6r6r7r(?sr(c
Cs�d}t�}t|�|vrY|�t|��z|}t|�}t|�s/t|�s&|}W|Sttt|�|��}Wn"|yI}z
|j	|vrDWYd}~|S�d}~wt
yRY|Swt|�|vs|S)N)rRrfrg��� �2�C�Wi&i(i))�setr	�add�_nt_readlinkr
rrrr�winerrorry)r5�
ignored_error�allowed_winerror�seenZold_path�exr6r6r7�_readlink_deepBs4	��

����r�cCs�d}d}|rszt|�}|rt||�WS|WS|yp}zO|j|vr#�zt||d�}||kr>|r5t||�n|WWYd}~SWn	|yHYnwt|�\}}|r]|s]||WYd}~S|rdt||�n|}WYd}~nd}~ww|s|S)N)rRrfrgr�r�r�r��5�Ar�r��{�i�i�r��r�)r�rr�r�r
)r5r�r�rpr��new_path�namer6r6r7�_getfinalpathname_nonstrictls6
� �����r�c
Cs�t|�}t|t�r!d}d}d}t��}t|�tt�t��kr dSnd}d}d}t��}t|�tt�kr5dS|�	|�}|t
urCt}d	}n|rHd
}nt}|sUt
|�sUt||�}zt|�}d}Wn|yx}	z|	j}t||d�}WYd}	~	nd}	~	ww|s�|�	|�r�|�	|�r�||t|�d�}
n|t|�d�}
zt|
�|kr�|
}W|SW|Sty�}	z|	j|kr�|
}WYd}	~	|SWYd}	~	|Sd}	~	ww|S)
NrPs\\?\UNC\s\\s\\.\NULrQz\\?\UNC\z\\z\\.\NULTr6rr�)rr2r3r>r�r	rJr'r�rSr/�FileNotFoundErrorrxr
rr�r�r�rT)r5r�r�Z
unc_prefixZnew_unc_prefixr�Z
had_prefixr�Zinitial_winerrorr�Zspathr6r6r7r(�sj
�

���
��

����getwindowsversionrgrfcCsXt�|�}t|t�rd}d}d}nd}d}d}|dur|}|s#td��t�|�}zott|��}tt|��}t|�\}}t|�\}	}
t|�t|	�krQtd	|	|f��d
d�|�	|�D�}dd�|
�	|�D�}d
}
t
||�D]\}}t|�t|�krzn|
d7}
ql|gt|�|
||
d�}|s�|WSt|�WSt
ttttfy�t�d||��w)z#Return a relative version of a pathrOrqr�rrrNzno path specifiedz&path is on mount %r, start on mount %rcS�g|]}|r|�qSr6r6��.0�xr6r6r7�
<listcomp>��zrelpath.<locals>.<listcomp>cSr�r6r6r�r6r6r7r��r�rrRr*)r>r?r2r3ryrrrr	r
�ziprTrrYrZr[�DeprecationWarningr\r])r5�startr"r r!�	start_abs�path_abs�start_drive�
start_rest�
path_drive�	path_rest�
start_list�	path_listrn�e1�e2�rel_listr6r6r7r*�sJ


�

�r*c	s�|std��tttj|��}t|dt�rd�d�d�nd�d�d�z���fd	d
�|D�}�fdd
�|D�}zt�fdd
�|D��\}WntyPtd�d�wttdd
�|D���dkrbtd��t	|d�
����\}}|���}�fdd
�|D�}�fdd
�|D�}t|�}t
|�}t|�D]\}	}
|
||	kr�|d|	�}n	q�|dt|��}|r�|�n|}|��|�WSttfy�tjdg|�R��w)zDGiven a sequence of path names, returns the longest common sub-path.z%commonpath() arg is an empty sequencerrOrNrqrrrcs g|]}t|��������qSr6)rrCrL)r�rc)r%r"r6r7r�&s zcommonpath.<locals>.<listcomp>csg|]	\}}|����qSr6ru�r�rmrc�r"r6r7r�'sc3s$�|]
\}}|dd��kVqdS)NrRr6r�r�r6r7�	<genexpr>*s�"zcommonpath.<locals>.<genexpr>z%Can't mix absolute and relative pathsNcss�|]\}}|VqdSr�r6r�r6r6r7r�1s�rRzPaths don't have the same drivec�g|]
}|r|�kr|�qSr6r6�r�r��r r6r7r�6�csg|]}�fdd�|D��qS)cr�r6r6r�r�r6r7r�8r�z)commonpath.<locals>.<listcomp>.<listcomp>r6)r�rHr�r6r7r�8sr.)ry�tuplerXr>r?r2r3r�rTrrCr
�min�max�	enumeraterrYrZr\r])r^�drivesplits�split_pathsr
r�r5�common�s1�s2rnr�r�r6)r%r r"r7r.sL
�
��r.)�_isdirr�)9�__doc__r r!r&r"r#r%r$r'r>r@rzr\�__all__r8�_winapir9rDr:rEr;rFr	�ImportErrorr
rrr
rrrrrrr�ntrrrrrr�r�rr�r�r�r(rxr�r��hasattrr�r)r*r.r�rr6r6r6r7�<module>s�		
�/8
�=q2��*2
<�
84�