JFIFxxC      C  " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3RbrJFIFxxC      C  " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbrў f3c"@sndZddlZddlZddlTddlmZmZmZmZm Z m Z m Z ddddd d d d d ddddddddddddddddddd d!d"d#d$d%d&g"Z d'Z d(Zd'Zd)Zd*Zd+Zd,Zd-Zd.dZd/dZd0dZd1d Zd2d ZeZd3dZd4dZd5dZeZd6Z!dS(7uCommon pathname manipulations, OS/2 EMX version. Instead of importing this module directly, import os and refer to this module as os.path. iN(u*(u expanduseru expandvarsuisabsuislinku splitdriveusplitextusplitunormcaseuisabsujoinu splitdriveusplitusplitextubasenameudirnameu commonprefixugetsizeugetmtimeugetatimeugetctimeuislinkuexistsulexistsuisdiruisfileuismountu expanduseru expandvarsunormpathuabspathusplituncucurdirupardirusepupathsepudefpathualtsepuextsepudevnullurealpathusupports_unicode_filenamesu.u..u/u\u;u.;C:\binunulcCsIt|ttfs3tdj|jjn|jddjS(uZNormalize case of pathname. Makes all characters lowercase and all altseps into seps.u2normcase() argument must be str or bytes, not '{}'u\u/( u isinstanceubytesustru TypeErroruformatu __class__u__name__ureplaceulower(us((u//opt/alt/python33/lib64/python3.3/os2emxpath.pyunormcase#s cGsm|}x`|D]X}t|r(|}q |dksJ|dddkrW||}q |d|}q W|S(u=Join two or more pathname components, inserting sep as neededuiNu/\:u/i(uisabs(uaupupathub((u//opt/alt/python33/lib64/python3.3/os2emxpath.pyujoin/s   " cCs|dddkr d|fS|dd}|d ksH|d krt|}|jdd}|d kr|d|fS|jd|d}|d krt|}n|d|||dfSd|fS( u@Split a pathname into UNC mount point and relative path specifiers. Return a 2-tuple (unc, rest); either part may be empty. If unc is not empty, it has the form '//host/mount' (or similar using backslashes). unc+rest is always the input path. Paths containing drive letters never have an UNC part. iiu:uiu/u\Nu//u\\ii(unormcaseufindulen(upufirstTwounormpuindex((u//opt/alt/python33/lib64/python3.3/os2emxpath.pyusplitunc=s     cCst|dS(u)Returns the final component of a pathnamei(usplit(up((u//opt/alt/python33/lib64/python3.3/os2emxpath.pyubasename[scCst|dS(u-Returns the directory component of a pathnamei(usplit(up((u//opt/alt/python33/lib64/python3.3/os2emxpath.pyudirnamebscCsRt|\}}|r"|dkSt|d}t|dkoQ|ddkS(u?Test whether a path is a mount point (defined as root of drive)uu/u\iiu/\(uu/u\(usplituncu splitdriveulen(upathuuncurestup((u//opt/alt/python33/lib64/python3.3/os2emxpath.pyuismountps  cCsh|jdd}t|\}}x4|dddkrZ|d}|dd}q'W|jd}d}x|t|kr8||dkr||=qs||dkr|dkr||dd kr||d|d=|d}qs||dkr+|dkr+||ddkr+||=qs|d}qsW| rW| rW|jdn|dj|S( u0Normalize path, eliminating double slashes, etc.u\u/Niiu.u..u(uu..(ureplaceu splitdriveusplitulenuappendujoin(upathuprefixucompsui((u//opt/alt/python33/lib64/python3.3/os2emxpath.pyunormpath{s&  0 0 cCs.t|s$ttj|}nt|S(u%Return the absolute version of a path(uisabsujoinuosugetcwdunormpath(upath((u//opt/alt/python33/lib64/python3.3/os2emxpath.pyuabspaths F("u__doc__uosustatu genericpathuntpathu expanduseru expandvarsuisabsuislinku splitdriveusplitextusplitu__all__ucurdirupardiruextsepusepualtsepupathsepudefpathudevnullunormcaseujoinusplituncubasenameudirnameuexistsulexistsuismountunormpathuabspathurealpathuFalseusupports_unicode_filenames(((u//opt/alt/python33/lib64/python3.3/os2emxpath.pyus:   4