a i?@sdZdZdZdZdZdZdZdZddlZddl Z ddl Z ddl Z ddl Tgd Z d d Z d d ZddZddZddZddZe jje_ddZddZddZddZddZd d!Zd"d#Zd$Zdadad%d&Zd'd(Z d)d*Z!d+d,d-d.Z"d/d0Z#e j$d1kZ%d6d2d3Z&d4d5Z'dS)7.../:z /bin:/usr/binNz /dev/null)*)'normcaseisabsjoin splitdrivesplitsplitextbasenamedirname commonprefixgetsizegetmtimegetatimegetctimeislinkexistslexistsisdirisfileismount expanduser expandvarsnormpathabspathsamefile sameopenfilesamestatcurdirpardirseppathsepdefpathaltsepextsepdevnullrealpathsupports_unicode_filenamesrelpath commonpath ALLOW_MISSINGcCst|trdSdSdS)N/r) isinstancebytespathr3!/usr/lib64/python3.9/posixpath.py_get_sep)s r5cCs t|SNosfspath)sr3r3r4r4srcCst|}t|}||Sr6)r8r9r5 startswith)r:r#r3r3r4r<s rc Gst|}t|}|}z^|s,|dd|ttj|D]8}||rL|}q8|rZ||rd||7}q8|||7}q8Wn.tttfyt j d|g|RYn0|S)Nrr ) r8r9r5mapr;endswith TypeErrorAttributeError BytesWarning genericpath_check_arg_types)apr#r2br3r3r4r Gs    r cCs`t|}t|}||d}|d|||d}}|rX||t|krX||}||fSNr8r9r5rfindlenrstrip)rDr#iheadtailr3r3r4r ds  r cCs6t|}t|trd}d}nd}d}t||d|S)Nr..rr)r8r9r/r0rA _splitext)rDr#r'r3r3r4r us  r cCst|}|dd|fSNrr7)rDr3r3r4r s r cCs,t|}t|}||d}||dSrF)r8r9r5rI)rDr#rLr3r3r4r s r cCsNt|}t|}||d}|d|}|rJ||t|krJ||}|SrFrH)rDr#rLrMr3r3r4rs   rc Cs6zt|}Wntttfy(YdS0t|jS)NF)r8lstatOSError ValueErrorr?statS_ISLNKst_mode)r2str3r3r4rs rc Cs,zt|Wnttfy&YdS0dS)NFT)r8rRrSrTr1r3r3r4rs rc Cszt|}Wnttfy&YdS0t|jr8dSt|trNt |d}n t |d}t |}zt|}WnttfyYdS0|j }|j }||krdS|j }|j }||krdSdS)NF..rT) r8rRrSrTrUrVrWr/r0r r)st_devst_ino)r2s1parents2dev1dev2ino1ino2r3r3r4rs.    rc Cs8t|}t|trd}nd}||s,|St|}||d}|dkrPt|}|dkrdtjvrddl }z| t j }Wqt y|YS0n tjd}nTddl }|d|}t|trt|d}z||}Wnt y|YS0|j }t|trt|}d}nd}||}|||dp6|S) N~~rGrHOMEASCIIr.r)r8r9r/r0r;r5findrJenvironpwdgetpwuidgetuidpw_dirKeyErrorstrgetpwnamfsencoderK) r2tilder#rLriuserhomenamepwentrootr3r3r4rsB                rz\$(\w+|\{[^}]*\}?)cst|}t|trZd|vr |Sts@ddl}|t|j j at}ddt tddn:d|vrf|St sddl}|t|j j a t }ddtj fd d }|||S) N$r{}environb${}cs|d}|r0|s$|dS|dd}z,durRttjt|}n|}Wntyv|dYS0|SdS)NrGr)r;r=r8rprhfsdecoderm)mrsvalueendrhstartr3r4repl4s     zexpandvars..repl)r8r9r/r0_varsubbrecompile _varpatternencoderfsubgetattr_varsubrh)r2rrrr3rr4rs,  rc Cst|}t|tr&d}d}d}d}nd}d}d}d}||krB|S||}|rp||d rp||d spd }||}g}|D]J}|||fvrq||ks|s|r|r|d |kr||q|r|q|}||}|r|||}|p|S) Nr.rOrYrrrr}) r8r9r/r0r;r appendpopr ) r2r#emptydotdotdotinitial_slashescomps new_compscompr3r3r4rKsJ            rcCs@t|}t|s8t|tr&t}nt}t||}t|Sr6) r8r9rr/r0getcwdbgetcwdr r)r2cwdr3r3r4rrs    rF)strictcCs,t|}t|dd||i\}}t|SrQ)r8r9 _joinrealpathr)filenamerr2okr3r3r4r)s r)cCst|trd}d}d}nd}d}d}tj}|tur8t}n|rBd}nt}d} t|rb|dd}|}|r~||\} } }| rb| |krqb| |kr|rt |\}} | |krt |||}qb|}qbt || } zt | } Wn|yd }Yn0t | j}|s| }qb| |vr@|| }|dur qb|r2t | nt | |d fSd|| <t|t| ||\}}|stt ||d fS||| <qb|d fS) Nr.rOrYrrrr3rGFT)r/r0r8rr-FileNotFoundErrorrSr partitionr r rRrUrVrWrreadlink)r2restrseenr#r!r"r ignored_errormaxlinksrs_newpathrXis_linkrr3r3r4rsd            rdarwinc Cs|s tdt|}t|tr.d}d}d}n d}d}d}|durH|}n t|}zrdd t||D}d d t||D}tt||g}|gt||||d}|s|WSt |WSt t t t fytd ||Yn0dS) Nzno path specifiedrOr.rYrrrcSsg|] }|r|qSr3r3.0xr3r3r4 rzrelpath..cSsg|] }|r|qSr3r3rr3r3r4rrr+)rTr8r9r/r0rr rJrr r>r?r@DeprecationWarningrArB) r2rr!r#r" start_list path_listrLrel_listr3r3r4r+s0    r+c s2|s tdtttj|}t|dtr4ddnddzćfdd|D}ztfd d |D\}Wntytd dYn0fd d|D}t|}t |}|}t |D]$\}}|||kr|d|}qq|rn dd}| |WSt t fy,tjd g|RYn0dS)Nz%commonpath() arg is an empty sequencerr.rOrrcsg|]}|qSr3)r )rr2r#r3r4r rzcommonpath..c3s|]}|ddkVqdSrFr3)rrDrr3r4 rzcommonpath..z%Can't mix absolute and relative pathscsg|]}fdd|DqS)csg|]}|r|kr|qSr3r3)rcr!r3r4rrz)commonpath...r3)rr:rr3r4rrr,)rTtupler<r8r9r/r0setminmax enumerater r>r?rArB) paths split_pathsrr\r^commonrLrprefixr3)r!r#r4r,s6   r,)N)(r!r"r'r#r$r%r&r(r8sysrUrA__all__r5rrr r r rP__doc__r r rrrrrrrrrrrr)rplatformr*r+r,r3r3r3r4sL        *21' F  )