python (3.11.7)

(root)/
lib/
python3.11/
__pycache__/
ntpath.cpython-311.opt-1.pyc

evZdZdZdZdZdZdZdZdZdZdd	l	Z	dd	l
Z
dd	lZdd	lZdd
lTgdZ
dZ	dd
lmZmZmZdZn#e$rdZYnwxYwdZdZdZdZdZejje_dZdZdZ dZ!	ddl"m#Z#n
#e$rd	Z#YnwxYwdZ$dZ%dZ&	ddl"m'Z'dZ(n#e$rdZ(YnwxYwd Z)	dd!l"m*Z*d"Z+n
#e$re)Z+YnwxYw	dd#l"m,Z,m-Z.d$Z/d%Z0d&d'd(Z1n
#e$re+Z1YnwxYwe2e
d)oe
j3d*d+kZ4d/d,Z5d-Z6	dd.l"m7Z8d	S#e$rYd	SwxYw)0zCommon pathname manipulations, WindowsNT/95 version.

Instead of importing this module directly, import os and refer to this
module as os.path.
...\;/z.;C:\binnulN)*)&normcaseisabsjoin
splitdrivesplitsplitextbasenamedirnamecommonprefixgetsizegetmtimegetatimegetctimeislinkexistslexistsisdirisfileismount
expanduser
expandvarsnormpathabspathcurdirpardirseppathsepdefpathaltsepextsepdevnullrealpathsupports_unicode_filenamesrelpathsamefilesameopenfilesamestat
commonpathc4t|trdSdS)N\/\/)
isinstancebytespaths :/BuggyBox/python/3.11.7/bootstrap/lib/python3.11/ntpath.py
_get_bothsepsr8#s$vu)
LCMapStringExLOCALE_NAME_INVARIANTLCMAP_LOWERCASEctj|}|s|St|trnt	j}||ddd}ttt|}||dSttt|ddS)nNormalize case of pathname.

        Makes all characters lowercase and all slashes into backslashes.
        surrogateescaperr)osfspathr3r4sysgetfilesystemencodingdecodereplace_LCMapStringEx_LOCALE_NAME_INVARIANT_LCMAP_LOWERCASEencode)sencodings  r7r
r
3s

IaLL	Ha		8022H#455==c4HHA5/44A88H&7888!"8"2"#))C"6"688
8r9c<tj|}t|trLtjtj|ddS|ddS)r>rr)r@rAr3r4fsencodefsdecoderElower)rJs r7r
r
Fsx

IaLLa	J;r{1~~55c4@@FFHHIIIyyd##))+++r9ctj|}t|trd}d}d}nd}d}d}|dd||}||s||d	rd
SdS)zTest whether a path is absolute\/s:\rrz:\NTF)r@rAr3r4rE
startswith)rJr#r&	colon_seps    r7rrWs
	!A!U				"1"

fc""A	||CALLA66t5r9ctj|}t|trd}d}d}nd}d}d}	|s
|dd|zt	|\}}ttj|D]x}t	|\}}	|	r|	d|vr	|s|s|}|	})|r7||kr1||kr|}|	}`|}|r|d|vr||z}||	z}y|r"|d|vr|r|dd|kr||z|zS||zS#tttf$rtjd	|g|RwxYw)
NrQr1:rr2:rr)r@rAr3r4r
maprO	TypeErrorAttributeErrorBytesWarninggenericpath_check_arg_types)
r6pathsr#sepscolonresult_driveresult_pathpp_drivep_paths
          r7rrks
9T??D$	!HsNN$.t$4$4!kRY&&	/	/A(mmOGV

'&)t+++,+#*L$
'W44==??l&8&8&:&:::#*L"(K&
0{2d::)C/%.KK	4KN$667)"##.%77#%33k))~|4$VT:E::::
sCDD,Ec\tj|}t|dkrt|tr	d}d}d}d}nd}d}d}d	}|||}|d
d|dzkr|dd|krdnd}|||}|d
kr||dd
fS|||dz}|d
kr||dd
fS|d|||dfS|dd|kr|dd|ddfS|dd
|fS)aSplit 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.

    rQrRrX\\?\UNC\rrrY\\?\UNC\rNrZrT)r@rAlenr3r4rEupperfind)	rfr#r&rc
unc_prefixnormpstartindexindex2s	         r7r
r
sd&		!A
1vv{{a		(CFE(JJCFE'J		&#&&1:q  rr**j88AAaEJJsE**E{{!BQB%xZZUQY//F||!BQB%xWfW:qz))1:RaR5!ABB%<RaR5!8Or9c4tj|}t|}t|\}}t	|}|r!||dz
|vr|dz}|r
||dz
|v|d|||d}}||p|}||z|fS)z~Split a pathname.

    Return tuple (head, tail) where tail is everything after the final slash.
    Either part may be empty.rTN)r@rAr8r
rnrstrip)rfrbdiheadtails      r7rrs
		!ADa==DAqAA
!A#d""	Q!A#d""2A2!""$D;;t$Dt8T>r9ctj|}t|trt	j|dddSt	j|dddS)NrQrR.rrr)r@rAr3r4r_	_splitextrfs r7rrsO
	!A!U8$QtT:::$Qc3777r9c,t|dS)z)Returns the final component of a pathnamerTrrs r7rr88A;r9c,t|dS)z-Returns the directory component of a pathnamerrrs r7rrrr9c	tj|}n#tttf$rYdSwxYwtj|jS)zhTest whether a path is a symbolic link.
    This will always return false for Windows prior to 6.0.
    F)r@lstatOSError
ValueErrorr]statS_ISLNKst_moder6sts  r7rrsQ
Xd^^Z0uu<
###s22cb	tj|}n#ttf$rYdSwxYwdS)zCTest whether a path exists.  Returns True for broken symbolic linksFT)r@rrrrs  r7rrsB
Xd^^Z uu4s,,)_getvolumepathnamectj|}t|}t|}t	|\}}|r|d|vr|p||vS|r||vrdSt
ra||}t||}||kSdS)zaTest whether a path is a mount point (a drive root, the root of a
    share, or a mounted volume)rTF)r@rAr8r r
rrwcasefold)r6rbrootrestxys      r7rr"s9T??DD4==DD!!JD$,Q4+ddl+tKKd##**400zz||qzz||++ur9ctj|}t|trd}nd}||s|Sdt|}}||kr9||t
|vr"|dz
}||kr||t
|v"dtjvrtjd}nVdtjvr|S	tjd}n#t$rd}YnwxYwt|tjd}|dkr|d|}t|trtj
|}tjd}||kr2|t|kr|Stt||}t|trtj|}|||d	zS)
zLExpand ~ and ~user constructs.

    If user or $HOME is unknown, do nothing.~~rTUSERPROFILEHOMEPATH	HOMEDRIVEUSERNAMEN)r@rAr3r4rUrnr8environKeyErrorrrNgetrrrM)r6tilderynuserhomedrivetarget_usercurrent_users        r7rr?s9T??D$??5!!c$iiqA
a%%DG=#6#666	Qa%%DG=#6#666
"":m,
2:
%
%	J{+EE			EEE	rz*566Avv1Q3ik5))	3+k22Kz~~j11,&&x1111GH--{;;H$);x((d122hsCC*)C*ctj|}t|trOd|vrd|vr|Sddl}t|j|jzdzd}d}d}d}d	}d}ttd
d}n6d|vrd|vr|Sddl}|j|jzdz}d
}d}d}d}d}tj}|dd}	d}
t|}|
|kr
||
|
dz}||kre||
dzd}t|}	|
|}
|	||d|
dzzz
}	n#t$r|	||zz
}	|dz
}
YnwxYw||kr||
dz|
dz|kr|	|z
}	|
dz
}
n`||
dzd}t|}	|
|}
|d|
}
	|7tjtjtj
|
}n||
}n#t$r||
z|z}YnwxYw|	|z
}	n#t$r|	||zz
}	|dz
}
YnwxYw||kr||
dz|
dz|kr|	|z
}	|
dz
}
n}||
dz|
dz|kr||
dzd}t|}	|
|}
|d|
}
	|7tjtjtj
|
}n||
}n#t$r||z|
z|z}YnwxYw|	|z
}	n#t$r|	||z|zz
}	|dz
}
YnwxYw|dd}
|
dz
}
||
|
dz}|r!||vr|
|z
}
|
dz
}
||
|
dz}|r||v	|7tjtjtj
|
}n||
}n#t$r||
z}YnwxYw|	|z
}	|r|
dz}
n|	|z
}	|
dz
}
|
|k
|	S)zfExpand shell variables of the forms $var, ${var} and %var%.

    Unknown variables are left unchanged.$%rNz_-ascii'{}environb$%'{}rTrj)r@rAr3r4string
ascii_lettersdigitsgetattrrrnrtrrMrNr)r6rvarcharsquotepercentbracerbracedollarrresrtpathlencvarvalues               r7rr|s$9T??D$tD 0 0K


-
=DgNN"j$//d??s$K


'&-7$>*
rr(C
E$iiG
'//uQw::	

#D$iiG
$

1

q4

+++
$
$
$q4x!
$'\\EAIeai'(G33q
E!GHH~d))! JJw//E
vv,C8"?$&K
2;s;K;K0L$M$MEE$+CLE#888 '#
 785LCC"(((7T>)C#aKEEE(&[[EAIeai'(F22q
eai	)*e33E!GHH~d))! JJv..E
vv,C>"?$&K
2;s;K;K0L$M$MEE$+CLE#>>> & 4v =>5LCC"(((6E>D00C#aKEEE(2A2h
uqy).AMM1HCQJEU519_-A.AMM) "BJr{37G7G,H I I ')))"SLEEE)uQJE1HC

W'//XJso(D++EEH
,AG..HH
H('H(L#AK%%K=<K=L#"L#&AN((N:9N:)_path_normpathctj|}t|tr5tjttj|pdSt|pdS)0Normalize path, eliminating double slashes, etc.r}r)r@rAr3r4rMrrNr5s r7rrs\ydE""	J;~bk$.?.?@@AAITId##*s*r9ctj|}t|tr	d}d}d}d}nd}d}d}d}|||}t|\}}||r||z
}||}||}d	}|t|kr||r|||kr||=n\|||krK|d	kr ||d
z
|kr||d
z
|d
z=|d
z}n*|d	kr|
|r||=n|d
z
}n|d
z
}|t|k|s|s|||||zS)rrQrRr}..rrrrrrT)
r@rAr3r4rEr
rUlstriprrnendswithappendr)r6r#r&r!r"prefixcompsrys        r7rrsydE""		CFFFFCFFF||FC((!$''??3	$cMF;;s##D

3
#e**nn8
uQx611!HHqV##q55U1Q3Z611ac!A#gFAA!VV 4 4VaFAAQ#e**nn	!e	!LL   ''r9ctj|}t|sLt|trtj}ntj}t||}t|S)zReturn 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@rArr3r4getcwdbgetcwdrr)r6cwds  r7_abspath_fallbackr"sb9T??D;;dE""	*,,CC)++CCD>>r9)_getfullpathnamec	tt|S#ttf$rt	|cYSwxYw)z&Return the absolute version of a path.)rrrrrr5s r7r r :sO	+#HTNN333$	+	+	+$T*****	+s AA)_getfinalpathnamereadlinkcd}t}t||vr|t|	|}t|}t	|s<t|s|}nht
tt||}n,#t$r}|j
|vrYd}~n%d}~wt$rYnwxYwt||v|S)N)rTrjrS 2CWi&i(i))setr
add_nt_readlinkrrrrrrwinerrorr)r6allowed_winerrorseenold_pathexs     r7_readlink_deeprGsLuutnnD((HHXd^^$$$
#D))T{{C"(++'#D):):D$A$ABBD


;"222EEEE



'tnnD((,s*1B"7*B""
C,	B;:B;;
C
Ccd}|dd}|r	t|}|rt||n|S#t$r}|j|vr	t	|}||kr|rt||n|cYd}~Sn#t$rYnwxYwt|\}}|r|s
||zcYd}~S|rt||n|}Yd}~nd}~wwxYw||S)N)rTrjrSrrrr5Arr{iir)rrrrrr)r6rr{rnew_pathnames      r7_getfinalpathname_nonstrictrqsZ$XBQBx	:
:(..+/9tD$'''T9
:
:
:;&666	 .d33H4''7;ItHd333IIIIII(D#4[[
d''$;&&&&&&+/9tD$'''T'
:		:0sJ"3
C
C(A70C6C7
BCBC!C'CCF)strictc<t|}t|trSd}d}d}tj}t|ttjtkrdSn@d}d}d}tj}t|ttkrdS|	|}|st|st||}	t|}d	}np#t$r8}|rtt|dt|}Yd}~n3d}~wt$r#}|r|j}t#|}Yd}~nd}~wwxYw|s|	|r|	|r||t%|dz}	n|t%|d}		t|	|kr|	}n6#t$r
}Yd}~n'd}~wt$r}|j|kr|	}Yd}~nd}~wwxYw|S)
Ns\\?\rks\\s\\.\NULz\\?\rlz\\z\\.\NULr)rr3r4r@rr
rMr(rrUrrrrrstrrrrn)
r6rrrqnew_unc_prefixr
had_prefixinitial_winerrorrspaths
          r7r)r)sh~~dE""	$F(J$N*,,C~~"+g*>*>!?!???$}@F'J#N)++C~~'!2!222#|__V,,
	#%++	#T??D	5$T**D 	"	"	"

1c"gg&&D0D>>DDDDDD	5	5	5
!{.t44DDDDDD		5	!doof55	!z**
+&c*oo.>.>)??S[[\\*
!$U++t33 D



!
!
!;"222 D	
!
sB/D
E..D>>
E.E))E.G&&
H5
H
HHgetwindowsversionrSrjctj|}t|trd}d}d}nd}d}d}||}|st	dtj|}	tt
|}tt
|}t|\}}t|\}	}
t|t|	krt	d	|	d
|d|	|D}d|
	|D}d
}
t||D],\}}t|t|krn|
dz
}
-|gt||
z
z||
dz}|s|St|S#ttttt f$rt#jd||wxYw)z#Return a relative version of a pathrQr}rrrrNzno path specifiedzpath is on mount z, start on mount cg|]}||Sr.0rs  r7
<listcomp>zrelpath.<locals>.<listcomp>s<<<A!<a<<<r9cg|]}||Srrrs  r7rzrelpath.<locals>.<listcomp>s:::1:Q:::r9rrTr+)r@rAr3r4rr rr
r
rziprnrr\r]r^DeprecationWarningr_r`)r6rsr#r!r"	start_abspath_absstart_drive
start_rest
path_drive	path_rest
start_list	path_listrye1e2rel_lists                 r7r+r+s
9T??D$}.,---IeEHUOO,,	8D>>**",Y"7"7Z *8 4 4
IK  HZ$8$888*

KK)**
*=<!1!1#!6!6<<<
::	 4 4:::	
*i00		FB||x||++
FAA8s:q01IabbMA	MXz><AST$Ye<<<
s!D2FF;Gc
|stdtttj|}t|dtrddd
nddd
	fd	|D}fd
|D}	tfd|D\}n#t$rtdd
wxYwttd|Ddkrtdt|d
\}}|}
fd|D}
fd|D}t|}t|}t|D]\}	}
|
||	kr|d
|	}n|d
t|}|r|zn|}||zS#t t"f$rt%jdg|RwxYw)zDGiven a sequence of path names, returns the longest common sub-path.z%commonpath() arg is an empty sequencerrQrRr}rrrczg|]7}t|8Sr)r
rErO)rrfr&r#s  r7rzcommonpath.<locals>.<listcomp>.s;QQQaz!))FC"8"8">">"@"@AAQQQr9c@g|]\}}|Srrrrxrfr#s   r7rzcommonpath.<locals>.<listcomp>/s'<<<1qwws||<<<r9c3:K|]\}}|ddkVdS)NrTrrs   r7	<genexpr>zcommonpath.<locals>.<genexpr>2s3>>$!Q2A2#>>>>>>r9z%Can't mix absolute and relative pathsNc3 K|]	\}}|V
dSNr)rrxrfs   r7rzcommonpath.<locals>.<genexpr>9s&--A1------r9rTzPaths don't have the same drivec$g|]}||k
|
Srrrrr!s  r7rzcommonpath.<locals>.<listcomp>>s#999q9Q&[[![[[r9c,g|]}fd|DS)c$g|]}||k
|
Srrrs  r7rz)commonpath.<locals>.<listcomp>.<listcomp>@s#:::a:a6kkkkkr9r)rrJr!s  r7rzcommonpath.<locals>.<listcomp>@s.PPPq::::1:::PPPr9r/)rtupler[r@rAr3r4rrnr
rErminmax	enumeraterr\r]r_r`)radrivesplitssplit_pathsrrr6commons1s2ryrrr&r!r#s            @@@r7r/r/swB@AAA#bi''((E%(E""!QQQQQ5QQQ<<<<<<<	P>>>>+>>>>>FEE	P	P	PDEE4O	Ps-------..!33>??? q!1!1&#!>!>??tC9999V999PPPPKPPP





bMM	&	&DAqBqEzzHSWWH%F %05((((~&$\:E::::
s%%GB! G!B<<DG%G=)_isdirr)9__doc__r!r"r'r#r$r&r%r(r@rBrr___all__r8_winapir:rFr;rGr<rHr
ImportErrorrrr
rrr~rrrrntrrrrrrrrr rrrrrr)hasattrrr*r+r/rrrr9r7<module>r%s

	
	


	

				



AAA!,----------
8888$	,	,	,,,,,,	,$()))^...l.888(0
$$$$%%%%%%%:---zjjj`3+!!!!!!Z++++W(((((('('('('('(((f"+######++++	   GGG ]>>>>>>>>
(((T///b"'<<<<<<HHH~&gc+>??>3c355a8A=++++p111h	
#"""""""			DD	si
=AA8A??B	B	B  B+*B+2B<<CC
CC)(C)D!!D*)D*