JFIFxxC      C  " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3RbrJFIFxxC      C  " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbrў Re 'c@sddlZddlZddlZddlZddlZddlZddlZddlZejdkrddl j j j j Znej ejZy eZWnek rdZYnXeZddlmZddlmZddlmZmZdddd gZd d ZGd ddZeed rJejgZ ngZ y'dd l!m"Z"e j#e"["Wne$k rYnXGdddeZ%ej&ej'dddj(DZ)GdddeZ*dS(iNujava(uDistutilsError(u working_set(ubuiltinsuexecfileuAbstractSandboxuDirectorySandboxuSandboxViolationu run_setupc stj}tjdd}tjdd}tjjtjj}tjj|d}tjj|stj |nt j }tj j tj}z|t _ tj|yvgt|tjddtk rztjd} | jrv| jdrvnYnXWdtj|tj jfdd tj D} tttj j| tj||tjdd<|tjdd<|t _ XdS( u8Run a distutils setup script, sandboxed in its directoryNutempicSs |jS(N(uactivate(udist((u+/tmp/pip-k8wh6o-build/setuptools/sandbox.pyu0surun_setup..cstdid6dd6S(Nusetup.pyu__file__u__main__u__name__(uexecfile((u setup_script(u+/tmp/pip-k8wh6o-build/setuptools/sandbox.pyu2sics2g|](}|kr|jd r|qS(u encodings.(u startswith(u.0umod_name(u save_modules(u+/tmp/pip-k8wh6o-build/setuptools/sandbox.pyu As  urun_setup..( uosugetcwdusysuargvupathuabspathudirnameujoinuisdirumakedirsutempfileutempdirumodulesucopyu pkg_resourcesu __getstate__uchdirulistuinsertu working_setu__init__u callbacksuappenduDirectorySandboxurunu SystemExituexc_infouargsu __setstate__uupdateumapu __delitem__( u setup_scriptuargsuold_diru save_argvu save_pathu setup_dirutemp_dirusave_tmpupr_stateuvu del_modules((u save_modulesu setup_scriptu+/tmp/pip-k8wh6o-build/setuptools/sandbox.pyu run_setups@           cBs|EeZdZdZd4ZddZddZddZdd Z x<d d d gD]+Z e e e r\e e e e Ts u,AbstractSandbox.__init__..(udiru_osu_attrs(uself((uselfu+/tmp/pip-k8wh6o-build/setuptools/sandbox.pyu__init__RsuAbstractSandbox.__init__cCs1x*|jD]}tt|t||q WdS(N(u_attrsusetattruosugetattr(uselfusourceuname((u+/tmp/pip-k8wh6o-build/setuptools/sandbox.pyu_copyXsuAbstractSandbox._copyc Cs{zB|j|tr%|jt_n|jt_d|_|SWdd|_tr`tt_ntt_|jt XdS(uRun 'func' under os sandboxingNTF( u_copyu_fileubuiltinsufileu_openuopenuTrueu_activeuFalseu_os(uselfufunc((u+/tmp/pip-k8wh6o-build/setuptools/sandbox.pyurun\s       uAbstractSandbox.runcs(ttfdd}|S(Ncs@|jr-|j||||\}}n||||S(N(u_activeu _remap_pair(uselfusrcudstuargsukw(unameuoriginal(u+/tmp/pip-k8wh6o-build/setuptools/sandbox.pyuwrapns $u3AbstractSandbox._mk_dual_path_wrapper..wrap(ugetattru_os(unameuwrap((unameuoriginalu+/tmp/pip-k8wh6o-build/setuptools/sandbox.pyu_mk_dual_path_wrapperlsu%AbstractSandbox._mk_dual_path_wrapperurenameulinkusymlinkcs.pttfdd}|S(Ncs4|jr$|j|||}n|||S(N(u_activeu _remap_input(uselfupathuargsukw(unameuoriginal(u+/tmp/pip-k8wh6o-build/setuptools/sandbox.pyuwrapys u5AbstractSandbox._mk_single_path_wrapper..wrap(ugetattru_os(unameuoriginaluwrap((unameuoriginalu+/tmp/pip-k8wh6o-build/setuptools/sandbox.pyu_mk_single_path_wrapperwsu'AbstractSandbox._mk_single_path_wrapperufileuopenustatulistdiruchdiruchmoduchownumkdiruremoveuunlinkurmdiruutimeulchownuchrootulstatu startfileumkfifoumknodupathconfuaccesscs(ttfdd}|S(NcsM|jr=|j|||}|j|||S|||S(N(u_activeu _remap_inputu _remap_output(uselfupathuargsukw(unameuoriginal(u+/tmp/pip-k8wh6o-build/setuptools/sandbox.pyuwraps u4AbstractSandbox._mk_single_with_return..wrap(ugetattru_os(unameuwrap((unameuoriginalu+/tmp/pip-k8wh6o-build/setuptools/sandbox.pyu_mk_single_with_returnsu&AbstractSandbox._mk_single_with_returnureadlinkutempnamcs(ttfdd}|S(Ncs,||}|jr(|j|S|S(N(u_activeu _remap_output(uselfuargsukwuretval(unameuoriginal(u+/tmp/pip-k8wh6o-build/setuptools/sandbox.pyuwraps u'AbstractSandbox._mk_query..wrap(ugetattru_os(unameuwrap((unameuoriginalu+/tmp/pip-k8wh6o-build/setuptools/sandbox.pyu _mk_querysuAbstractSandbox._mk_queryugetcwdutmpnamcCs|S(u=Called to remap or validate any path, whether input or output((uselfupath((u+/tmp/pip-k8wh6o-build/setuptools/sandbox.pyu_validate_pathsuAbstractSandbox._validate_pathcOs |j|S(uCalled for path inputs(u_validate_path(uselfu operationupathuargsukw((u+/tmp/pip-k8wh6o-build/setuptools/sandbox.pyu _remap_inputsuAbstractSandbox._remap_inputcCs |j|S(uCalled for path outputs(u_validate_path(uselfu operationupath((u+/tmp/pip-k8wh6o-build/setuptools/sandbox.pyu _remap_outputsuAbstractSandbox._remap_outputcOs6|j|d||||j|d|||fS(u?Called for path pairs like rename, link, and symlink operationsu-fromu-to(u _remap_input(uselfu operationusrcudstuargsukw((u+/tmp/pip-k8wh6o-build/setuptools/sandbox.pyu _remap_pairsuAbstractSandbox._remap_pairNF(u__name__u __module__u __qualname__u__doc__uFalseu_activeu__init__u_copyurunu_mk_dual_path_wrapperunameuhasattru_osulocalsuNoneu_mk_single_path_wrapperu_fileu_openu_mk_single_with_returnu _mk_queryu_validate_pathu _remap_inputu _remap_outputu _remap_pair(u __locals__((u+/tmp/pip-k8wh6o-build/setuptools/sandbox.pyuAbstractSandboxMs>         udevnull(uGetGeneratePathcBs|EeZdZdZejdddddddd d d d d dg ZdgZeddZ ddZ e rdddZ ndddZ ddZ ddZddZdd Zd!d"Zd#d$d%Zd&S('uDirectorySandboxu<Restrict operations to a single subdirectory - pseudo-chrootuopenuchmoduchownumkdiruremoveuunlinkurmdiruutimeulchownuchrootumkfifoumknodutempnamu.*lib2to3.*\.pickle$cCsctjjtjj||_tjj|jd|_dd|D|_tj |dS(NucSs.g|]$}tjjtjj|qS((uosupathunormcaseurealpath(u.0upath((u+/tmp/pip-k8wh6o-build/setuptools/sandbox.pyu s u-DirectorySandbox.__init__..( uosupathunormcaseurealpathu_sandboxujoinu_prefixu _exceptionsuAbstractSandboxu__init__(uselfusandboxu exceptions((u+/tmp/pip-k8wh6o-build/setuptools/sandbox.pyu__init__s !  uDirectorySandbox.__init__cOst|||dS(N(uSandboxViolation(uselfu operationuargsukw((u+/tmp/pip-k8wh6o-build/setuptools/sandbox.pyu _violationsuDirectorySandbox._violationurcOsK|dkr8|j| r8|jd||||nt||||S(NururturburUuUufile(ururturburUuU(u_oku _violationu_file(uselfupathumodeuargsukw((u+/tmp/pip-k8wh6o-build/setuptools/sandbox.pyu_filesuDirectorySandbox._filecOsK|dkr8|j| r8|jd||||nt||||S(NururturburUuUuopen(ururturburUuU(u_oku _violationu_open(uselfupathumodeuargsukw((u+/tmp/pip-k8wh6o-build/setuptools/sandbox.pyu_opensuDirectorySandbox._opencCs|jddS(Nutmpnam(u _violation(uself((u+/tmp/pip-k8wh6o-build/setuptools/sandbox.pyutmpnamsuDirectorySandbox.tmpnamc Css|j}zYd|_tjjtjj|}|j|p`||jkp`|j|j SWd||_XdS(NF( u_activeuFalseuosupathunormcaseurealpathu _exemptedu_sandboxu startswithu_prefix(uselfupathuactiveurealpath((u+/tmp/pip-k8wh6o-build/setuptools/sandbox.pyu_oks  uDirectorySandbox._okcsTfdd|jD}fdd|jD}tj||}t|S(Nc3s|]}j|VqdS(N(u startswith(u.0u exception(ufilepath(u+/tmp/pip-k8wh6o-build/setuptools/sandbox.pyu su-DirectorySandbox._exempted..c3s!|]}tj|VqdS(N(ureumatch(u.0upattern(ufilepath(u+/tmp/pip-k8wh6o-build/setuptools/sandbox.pyu s(u _exceptionsu_exception_patternsu itertoolsuchainuany(uselfufilepathu start_matchesupattern_matchesu candidates((ufilepathu+/tmp/pip-k8wh6o-build/setuptools/sandbox.pyu _exempteds   uDirectorySandbox._exemptedcOsH||jkrD|j| rD|j|tjj|||n|S(uCalled for path inputs(u write_opsu_oku _violationuosupathurealpath(uselfu operationupathuargsukw((u+/tmp/pip-k8wh6o-build/setuptools/sandbox.pyu _remap_inputs%uDirectorySandbox._remap_inputcOsF|j| s |j| r<|j|||||n||fS(u?Called for path pairs like rename, link, and symlink operations(u_oku _violation(uselfu operationusrcudstuargsukw((u+/tmp/pip-k8wh6o-build/setuptools/sandbox.pyu _remap_pair s uDirectorySandbox._remap_pairicOsR|t@r9|j| r9|jd|||||ntj|||||S(uCalled for low-level os.open()uos.open(u WRITE_FLAGSu_oku _violationu_osuopen(uselfufileuflagsumodeuargsukw((u+/tmp/pip-k8wh6o-build/setuptools/sandbox.pyuopensuDirectorySandbox.openN(u__name__u __module__u __qualname__u__doc__udictufromkeysu write_opsu_exception_patternsu _EXCEPTIONSu__init__u _violationu_fileu_openutmpnamu_oku _exemptedu _remap_inputu _remap_pairuopen(u __locals__((u+/tmp/pip-k8wh6o-build/setuptools/sandbox.pyuDirectorySandboxs      cCs"g|]}tt|dqS(i(ugetattru_os(u.0ua((u+/tmp/pip-k8wh6o-build/setuptools/sandbox.pyu s u u4O_WRONLY O_RDWR O_APPEND O_CREAT O_TRUNC O_TEMPORARYcBs&|EeZdZdZddZdS(uSandboxViolationuEA setup script attempted to modify the filesystem outside the sandboxcCs d|jS(NuSandboxViolation: %s%r %s The package setup script has attempted to modify files on your system that are not within the EasyInstall build area, and has been aborted. This package cannot be safely installed by EasyInstall, and may not support alternate installation locations even if you run its setup script by hand. Please inform the package's author and the EasyInstall maintainers to find out if a fix or workaround is available.(uargs(uself((u+/tmp/pip-k8wh6o-build/setuptools/sandbox.pyu__str__s uSandboxViolation.__str__N(u__name__u __module__u __qualname__u__doc__u__str__(u __locals__((u+/tmp/pip-k8wh6o-build/setuptools/sandbox.pyuSandboxViolations(+uosusysutempfileuoperatoru functoolsu itertoolsureu pkg_resourcesunameu$org.python.modules.posix.PosixModuleupythonumodulesuposixu PosixModuleu_osufileu_fileu NameErroruNoneuopenu_openudistutils.errorsuDistutilsErroru working_setusetuptools.compatubuiltinsuexecfileu__all__u run_setupuAbstractSandboxuhasattrudevnullu _EXCEPTIONSuwin32com.client.gencacheuGetGeneratePathuappendu ImportErroruDirectorySandboxureduceuor_usplitu WRITE_FLAGSuSandboxViolation(((u+/tmp/pip-k8wh6o-build/setuptools/sandbox.pyusF            0h S